summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJan-Simon Moeller <jsmoeller@linuxfoundation.org>2020-12-08 11:12:45 +0100
committerJan-Simon Moeller <jsmoeller@linuxfoundation.org>2020-12-17 13:59:52 +0000
commit1c3c06842ac1b9c089d0a08e91c60f44e4844fac (patch)
tree21e97368be8f78a3e76b66dfda24c1d5e774519f
parentc1e048fc05542d859115990312e0753ce2dea72e (diff)
SPEC-3723: restructure meta-agl
Goal is to reach a minimal meta-agl-core as base for IVI and IC work at the same time. Trim dependencies and move most 'demo' related recipes to meta-agl-demo. v2: changed to bbapend + .inc , added description v3: testbuild of all images v4: restore -test packagegroup and -qa images, compare manifests and adapt packagegroups. v5: rebased v6: merged meta-agl-distro into meta-agl-core, due to dependency on meta-oe, moved -test packagegroup and -qa images to own layer meta-agl-core-test v7: Fixed comments from Paul Barker v8: Update the markdown files v9: restore wayland/weston/agl-compositor recipes/appends, reworked to move app f/w specific changes to bbappends in meta-app-framework and only demo specific weston-init changes to meta-agl-demo v10: fix s/agldemo/aglcore/ missed in weston-init.bbappend Description: This patch is part 1 out of 2 large patches that implement the layer rework discussed during the previous workshop. Essentially meta-agl-core is the small but versatile new core layer of AGL serving as basis for the work done by the IC and IVI EGs. All demo related work is moved to meta-agl-demo in the 2nd patchset. This should be applied together as atomic change. The resulting meta-agl/* follows these guidelines: - only bsp adaptations in meta-agl-bsp - remove the agl-profile-* layers for simplicity -- the packagegroup-agl(-profile)-graphical and so on have been kept in meta-agl-demo - meta-agl-profile-core is now meta-agl-core - meta-agl-core does pass yocto-check-layer -- therefore use the bbappend + conditional + .inc file construct found in meta-virtualization - meta-agl/meta-security has been merged into meta-agl/meta-app-framework - meta-netboot does pass yocto-check-layer - meta-pipewire does pass yocto-check-layer Migration: All packagegroups are preserved but they're now enabled by 'agl-demo'. Bug-AGL: SPEC-3723 Signed-off-by: Jan-Simon Moeller <jsmoeller@linuxfoundation.org> Signed-off-by: Scott Murray <scott.murray@konsulko.com> Change-Id: Ia6c6e5e6ce2b4ffa69ea94959cdc57c310ba7c53 Reviewed-on: https://gerrit.automotivelinux.org/gerrit/c/AGL/meta-agl/+/25769
-rwxr-xr-xagl-layers-overview.md1
-rw-r--r--meta-agl-bsp/meta-aglprofilegraphical/recipes-graphics/wayland/libva_%.bbappend4
-rw-r--r--meta-agl-bsp/meta-core/recipes-core/ovmf/ovmf_git.bbappend1
-rw-r--r--meta-agl-bsp/meta-core/recipes-graphics/mesa/mesa_%.bbappend1
-rw-r--r--meta-agl-bsp/meta-core/recipes-graphics/mesa/mesa_agl.inc (renamed from meta-agl-bsp/meta-aglprofilegraphical/recipes-graphics/mesa/mesa_%.bbappend)0
-rw-r--r--meta-agl-bsp/meta-core/recipes-graphics/wayland/weston_%.bbappend1
-rw-r--r--meta-agl-bsp/meta-core/recipes-graphics/wayland/weston_agl.inc (renamed from meta-agl-bsp/meta-aglprofilegraphical/recipes-graphics/wayland/weston_%.bbappend)0
-rw-r--r--meta-agl-bsp/meta-core/recipes-kernel/linux/linux-yocto_%.bbappend18
-rw-r--r--meta-agl-bsp/meta-core/recipes-kernel/linux/linux-yocto_agl.inc21
-rw-r--r--meta-agl-bsp/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_%.bbappend2
-rw-r--r--meta-agl-bsp/recipes-bsp/u-boot/u-boot-ota/0001-Set-up-environment-for-OSTree-integration.patch41
-rw-r--r--meta-agl-bsp/recipes-bsp/u-boot/u-boot-ota/0001-fixup-build-with-gcc6.patch86
-rw-r--r--meta-agl-bsp/recipes-bsp/u-boot/u-boot-ota/0002-Replace-wraps-with-built-in-code-to-remove-dependenc.patch138
-rw-r--r--meta-agl-bsp/recipes-bsp/u-boot/u-boot-ota/0002-fixup-build-with-gcc7.patch101
-rw-r--r--meta-agl-bsp/recipes-bsp/u-boot/u-boot-ota_2015.07.bb29
-rw-r--r--meta-agl-bsp/recipes-graphics/opencv/opencv/0004-Change-Max-Device-Count-To-16.patch13
-rw-r--r--meta-agl-bsp/recipes-graphics/opencv/opencv_4.%.bbappend5
-rw-r--r--meta-agl-bsp/recipes-graphics/wayland/weston-ini-conf.bbappend5
-rw-r--r--meta-agl-bsp/recipes-kernel/linux/linux-yocto_%.bbappend1
-rw-r--r--meta-agl-core-test/conf/include/agl-test.inc (renamed from meta-agl-profile-core/recipes-connectivity/connman/.appends.core)0
-rw-r--r--meta-agl-core-test/conf/layer.conf14
-rw-r--r--meta-agl-core-test/images/agl-image-minimal-qa.bb (renamed from meta-agl-profile-core/recipes-platform/images/agl-image-minimal-qa.bb)0
-rw-r--r--meta-agl-core-test/recipes-test/aiostress/aiostress_0.22.bb (renamed from meta-agl-profile-core/recipes-test/aiostress/aiostress_0.22.bb)0
-rw-r--r--meta-agl-core-test/recipes-test/dung/dung_3.4.25-m2.bb (renamed from meta-agl-profile-core/recipes-test/dung/dung_3.4.25-m2.bb)0
-rw-r--r--meta-agl-core-test/recipes-test/ebizzy/ebizzy_0.3.bb (renamed from meta-agl-profile-core/recipes-test/ebizzy/ebizzy_0.3.bb)0
-rw-r--r--meta-agl-core-test/recipes-test/ffsb/ffsb_6.0-rc2.bb (renamed from meta-agl-profile-core/recipes-test/ffsb/ffsb_6.0-rc2.bb)0
-rw-r--r--meta-agl-core-test/recipes-test/fontconfig/fontconfig_%.bbappend (renamed from meta-agl-profile-core/recipes-test/fontconfig/fontconfig_%.bbappend)0
-rw-r--r--meta-agl-core-test/recipes-test/freetype/files/0001-Makefile-dont-build-gfx-demos.patch (renamed from meta-agl-profile-core/recipes-test/freetype/files/0001-Makefile-dont-build-gfx-demos.patch)0
-rw-r--r--meta-agl-core-test/recipes-test/freetype/files/0001-ft2demos-Makefile-Do-not-hardcode-libtool-path.patch (renamed from meta-agl-profile-core/recipes-test/freetype/files/0001-ft2demos-Makefile-Do-not-hardcode-libtool-path.patch)0
-rw-r--r--meta-agl-core-test/recipes-test/freetype/freetype_2.%.bbappend (renamed from meta-agl-profile-core/recipes-test/freetype/freetype_2.%.bbappend)0
-rw-r--r--meta-agl-core-test/recipes-test/fsfuzzer/files/0001-fix_missing_header_sys_stat.patch (renamed from meta-agl-profile-core/recipes-test/fsfuzzer/files/0001-fix_missing_header_sys_stat.patch)0
-rw-r--r--meta-agl-core-test/recipes-test/fsfuzzer/fsfuzzer_0.7.bb (renamed from meta-agl-profile-core/recipes-test/fsfuzzer/fsfuzzer_0.7.bb)0
-rw-r--r--meta-agl-core-test/recipes-test/glmark2/glmark2_%.bbappendNOT (renamed from meta-agl-profile-core/recipes-test/glmark2/glmark2_%.bbappend)0
-rw-r--r--meta-agl-core-test/recipes-test/himeno/himeno_2.0.bb (renamed from meta-agl-profile-core/recipes-test/himeno/himeno_2.0.bb)0
-rw-r--r--meta-agl-core-test/recipes-test/interbench/files/interbench.c.patch (renamed from meta-agl-profile-core/recipes-test/interbench/files/interbench.c.patch)0
-rw-r--r--meta-agl-core-test/recipes-test/interbench/interbench_0.31.bb (renamed from meta-agl-profile-core/recipes-test/interbench/interbench_0.31.bb)0
-rw-r--r--meta-agl-core-test/recipes-test/ipv6connect/ipv6connect.bb (renamed from meta-agl-profile-core/recipes-test/ipv6connect/ipv6connect.bb)0
-rw-r--r--meta-agl-core-test/recipes-test/linpack/linpack.bb (renamed from meta-agl-profile-core/recipes-test/linpack/linpack.bb)0
-rw-r--r--meta-agl-core-test/recipes-test/linus-stress/linus-stress.bb (renamed from meta-agl-profile-core/recipes-test/linus-stress/linus-stress.bb)0
-rw-r--r--meta-agl-core-test/recipes-test/packagegroups/packagegroup-agl-test.bb (renamed from meta-agl-profile-core/recipes-test/packagegroups/packagegroup-agl-test.bb)37
-rw-r--r--meta-agl-core-test/recipes-test/trinity/trinity_git.bb (renamed from meta-agl-profile-core/recipes-test/trinity/trinity_git.bb)0
-rw-r--r--meta-agl-core/LICENSE (renamed from meta-agl-distro/LICENSE)0
-rw-r--r--meta-agl-core/LICENSE.GPL-2.0-only (renamed from meta-agl-distro/LICENSE.GPL-2.0-only)0
-rw-r--r--meta-agl-core/LICENSE.MIT (renamed from meta-agl-distro/LICENSE.MIT)0
l---------meta-agl-core/README1
-rw-r--r--meta-agl-core/README-AGL.md21
-rw-r--r--meta-agl-core/classes/cloc.bbclass (renamed from meta-agl-profile-core/classes/cloc.bbclass)0
-rw-r--r--meta-agl-core/classes/sanity-meta-agl-core.bbclass10
-rw-r--r--meta-agl-core/conf/bblayers.conf.sample12
-rw-r--r--meta-agl-core/conf/distro/include/aarch64-tune.inc (renamed from meta-agl-distro/conf/distro/include/aarch64-tune.inc)0
-rw-r--r--meta-agl-core/conf/distro/include/arc-tune.inc (renamed from meta-agl-distro/conf/distro/include/arc-tune.inc)0
-rw-r--r--meta-agl-core/conf/distro/include/arm-tune.inc (renamed from meta-agl-distro/conf/distro/include/arm-tune.inc)0
-rw-r--r--meta-agl-core/conf/distro/include/riscv64-tune.inc (renamed from meta-agl-distro/conf/distro/include/riscv64-tune.inc)0
-rw-r--r--meta-agl-core/conf/distro/include/x86_64-tune.inc (renamed from meta-agl-distro/conf/distro/include/x86_64-tune.inc)0
-rw-r--r--meta-agl-core/conf/distro/poky-agl.conf (renamed from meta-agl-distro/conf/distro/poky-agl.conf)0
-rw-r--r--meta-agl-core/conf/include/agl-devel.inc (renamed from meta-agl-profile-core/conf/include/agl-devel.inc)0
-rw-r--r--meta-agl-core/conf/include/agl-gplv2.inc (renamed from meta-agl-profile-core/conf/include/agl-gplv2.inc)0
-rw-r--r--meta-agl-core/conf/include/base-agl.inc (renamed from meta-agl-profile-core/conf/include/base-agl.inc)2
-rw-r--r--meta-agl-core/conf/layer.conf17
-rw-r--r--meta-agl-core/conf/local.conf.sample277
-rw-r--r--meta-agl-core/files/group (renamed from meta-agl-profile-core/files/group)0
-rw-r--r--meta-agl-core/files/passwd (renamed from meta-agl-profile-core/files/passwd)0
-rw-r--r--meta-agl-core/recipes-connectivity/busybox/busybox_%.bbappend1
-rw-r--r--meta-agl-core/recipes-connectivity/busybox/busybox_aglcore.inc3
-rw-r--r--meta-agl-core/recipes-connectivity/busybox/files/enable-wget-https.cfg (renamed from meta-agl-profile-core/recipes-connectivity/busybox/files/enable-wget-https.cfg)0
-rw-r--r--meta-agl-core/recipes-connectivity/connman-ncurses/connman-ncurses_git.bb (renamed from meta-agl-profile-core/recipes-connectivity/connman-ncurses/connman-ncurses_git.bb)0
-rw-r--r--meta-agl-core/recipes-connectivity/connman/connman_%.bbappend1
-rw-r--r--meta-agl-core/recipes-connectivity/connman/connman_aglcore.inc (renamed from meta-agl-profile-core/recipes-connectivity/connman/connman_%.bbappend)0
-rw-r--r--meta-agl-core/recipes-connectivity/connman/files/0001-disable-when-booting-over-nfs.patch (renamed from meta-agl-profile-core/recipes-connectivity/connman/files/0001-disable-when-booting-over-nfs.patch)0
-rw-r--r--meta-agl-core/recipes-connectivity/connman/files/main.conf (renamed from meta-agl-profile-core/recipes-connectivity/connman/files/main.conf)0
-rw-r--r--meta-agl-core/recipes-core/systemd/.appends.core (renamed from meta-agl-profile-core/recipes-core/dbus/.appends.core)0
-rw-r--r--meta-agl-core/recipes-core/systemd/systemd-conf_%.bbappend1
-rw-r--r--meta-agl-core/recipes-core/systemd/systemd-conf_aglcore.inc (renamed from meta-agl-profile-core/recipes-core/systemd/systemd-conf_%.bbappend)0
-rw-r--r--meta-agl-core/recipes-core/systemd/systemd/0001-fix-udevd-seclabel-parsing.patch34
-rw-r--r--meta-agl-core/recipes-core/systemd/systemd/0002-network-add-CAN-Termination-tristate-option.patch (renamed from meta-agl-profile-core/recipes-core/systemd/systemd/0002-network-add-CAN-Termination-tristate-option.patch)0
-rw-r--r--meta-agl-core/recipes-core/systemd/systemd/canbus-can.network (renamed from meta-agl-profile-core/recipes-core/systemd/systemd/canbus-can.network)0
-rw-r--r--meta-agl-core/recipes-core/systemd/systemd/e2fsck.conf (renamed from meta-agl-profile-core/recipes-core/systemd/systemd/e2fsck.conf)0
-rw-r--r--meta-agl-core/recipes-core/systemd/systemd/wired.network (renamed from meta-agl-profile-core/recipes-core/systemd/systemd/wired.network)0
-rw-r--r--meta-agl-core/recipes-core/systemd/systemd_%.bbappend1
-rw-r--r--meta-agl-core/recipes-core/systemd/systemd_aglcore.inc (renamed from meta-agl-profile-core/recipes-core/systemd/systemd_%.bbappend)2
-rw-r--r--meta-agl-core/recipes-devtools/cmake/cmake_%.bbappend1
-rw-r--r--meta-agl-core/recipes-devtools/cmake/cmake_aglcore.inc (renamed from meta-agl-profile-core/recipes-devtools/cmake/cmake_%.bbappend)0
-rw-r--r--meta-agl-core/recipes-devtools/cmake/files/environment.d-cmake-agl.sh (renamed from meta-agl-profile-core/recipes-devtools/cmake/files/environment.d-cmake-agl.sh)0
-rw-r--r--meta-agl-core/recipes-devtools/gdb/.appends.core (renamed from meta-agl-profile-core/recipes-core/psplash/.appends.core)0
-rw-r--r--meta-agl-core/recipes-devtools/gdb/gdb_%.bbappend1
-rw-r--r--meta-agl-core/recipes-devtools/gdb/gdb_aglcore.inc (renamed from meta-agl-profile-core/recipes-devtools/gdb/gdb_%.bbappend)0
-rw-r--r--meta-agl-core/recipes-extended/gperf/.appends.core (renamed from meta-agl-profile-core/recipes-core/systemd/.appends.core)0
-rw-r--r--meta-agl-core/recipes-extended/gperf/gperf_%.bbappend1
-rw-r--r--meta-agl-core/recipes-extended/gperf/gperf_aglcore.inc (renamed from meta-agl-profile-core/recipes-extended/gperf/gperf_%.bbappend)0
-rw-r--r--meta-agl-core/recipes-graphics/wayland/Readme.weston-ini-conf (renamed from meta-agl-profile-graphical/recipes-graphics/wayland/Readme.weston-ini-conf)0
-rw-r--r--meta-agl-core/recipes-graphics/wayland/agl-compositor_git.bb (renamed from meta-agl-profile-graphical/recipes-graphics/wayland/agl-compositor_git.bb)0
-rw-r--r--meta-agl-core/recipes-graphics/wayland/waltham-transmitter_git.bb (renamed from meta-agl-profile-graphical/recipes-graphics/wayland/waltham-transmitter_git.bb)2
-rw-r--r--meta-agl-core/recipes-graphics/wayland/waltham/0001-Use-python3-instead-of-2.patch (renamed from meta-agl-profile-graphical/recipes-graphics/wayland/waltham/0001-Use-python3-instead-of-2.patch)0
-rw-r--r--meta-agl-core/recipes-graphics/wayland/waltham/0001-waltham-Fix-compile-build-error.patch (renamed from meta-agl-profile-graphical/recipes-graphics/wayland/waltham/0001-waltham-Fix-compile-build-error.patch)0
-rw-r--r--meta-agl-core/recipes-graphics/wayland/waltham/0002-commandxml-Add-support-wthp_app_id-interface.patch (renamed from meta-agl-profile-graphical/recipes-graphics/wayland/waltham/0002-commandxml-Add-support-wthp_app_id-interface.patch)0
-rw-r--r--meta-agl-core/recipes-graphics/wayland/waltham_%.bbappend (renamed from meta-agl-profile-graphical/recipes-graphics/wayland/waltham_%.bbappend)0
-rw-r--r--meta-agl-core/recipes-graphics/wayland/waltham_git.bb (renamed from meta-agl-profile-graphical/recipes-graphics/wayland/waltham_git.bb)0
-rw-r--r--meta-agl-core/recipes-graphics/wayland/weston-ini-conf.bb (renamed from meta-agl-bsp/recipes-graphics/wayland/weston-ini-conf.bb)13
-rw-r--r--meta-agl-core/recipes-graphics/wayland/weston-ini-conf.bbappend (renamed from meta-agl-bsp/meta-aglprofilegraphical/recipes-graphics/wayland/weston-ini-conf.bbappend)5
-rw-r--r--meta-agl-core/recipes-graphics/wayland/weston-ini-conf/core.cfg (renamed from meta-agl-bsp/recipes-graphics/wayland/weston-ini-conf/core.cfg)0
-rw-r--r--meta-agl-core/recipes-graphics/wayland/weston-ini-conf/hdmi-a-1-270.cfg (renamed from meta-agl-bsp/recipes-graphics/wayland/weston-ini-conf/hdmi-a-1-270.cfg)0
-rw-r--r--meta-agl-core/recipes-graphics/wayland/weston-ini-conf/hdmi-a-1-90.cfg (renamed from meta-agl-bsp/recipes-graphics/wayland/weston-ini-conf/hdmi-a-1-90.cfg)0
-rw-r--r--meta-agl-core/recipes-graphics/wayland/weston-ini-conf/remote-output.cfg (renamed from meta-agl-bsp/recipes-graphics/wayland/weston-ini-conf/remote-output.cfg)0
-rw-r--r--meta-agl-core/recipes-graphics/wayland/weston-ini-conf/shell.cfg (renamed from meta-agl-bsp/recipes-graphics/wayland/weston-ini-conf/shell.cfg)0
-rw-r--r--meta-agl-core/recipes-graphics/wayland/weston-ini-conf/virtual.cfg (renamed from meta-agl-bsp/meta-aglprofilegraphical/recipes-graphics/wayland/weston-ini-conf/virtual.cfg)0
-rw-r--r--meta-agl-core/recipes-graphics/wayland/weston-init.bbappend1
-rw-r--r--meta-agl-core/recipes-graphics/wayland/weston-init_aglcore.inc6
-rw-r--r--meta-agl-core/recipes-graphics/wayland/weston/0001-libweston-Expose-weston_output_damage-in-libweston.patch (renamed from meta-agl-profile-graphical/recipes-graphics/wayland/weston/0001-libweston-Expose-weston_output_damage-in-libweston.patch)0
-rw-r--r--meta-agl-core/recipes-graphics/wayland/weston/0001-libweston-Migrate-weston_seat_init-release-to-public.patch (renamed from meta-agl-profile-graphical/recipes-graphics/wayland/weston/0001-libweston-Migrate-weston_seat_init-release-to-public.patch)0
-rw-r--r--meta-agl-core/recipes-graphics/wayland/weston/0005-correctly-tear-down-drm-backend.patch (renamed from meta-agl-profile-graphical/recipes-graphics/wayland/weston/0005-correctly-tear-down-drm-backend.patch)0
-rw-r--r--meta-agl-core/recipes-graphics/wayland/weston_8.0.%.bbappend1
-rw-r--r--meta-agl-core/recipes-graphics/wayland/weston_8.0_aglcore.inc11
-rw-r--r--meta-agl-core/recipes-kernel/linux/kernel-devsrc.bbappend1
-rw-r--r--meta-agl-core/recipes-kernel/linux/kernel-devsrc_agl.inc (renamed from meta-agl-bsp/recipes-kernel/linux/kernel-devsrc.bbappend)0
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux-4.14/Smack-Handle-CGROUP2-in-the-same-way-that-CGROUP.patch (renamed from meta-agl-bsp/recipes-kernel/linux/linux-4.14/Smack-Handle-CGROUP2-in-the-same-way-that-CGROUP.patch)0
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux-4.14/Smack-Privilege-check-on-key-operations.patch (renamed from meta-agl-bsp/recipes-kernel/linux/linux-4.14/Smack-Privilege-check-on-key-operations.patch)0
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux-4.14/net-sch_generic-add-if_afp.h-header-to-get-ARPHRD_CA.patch (renamed from meta-agl-bsp/recipes-kernel/linux/linux-4.14/net-sch_generic-add-if_afp.h-header-to-get-ARPHRD_CA.patch)0
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux-agl-4.14.inc (renamed from meta-agl-bsp/recipes-kernel/linux/linux-agl-4.14.inc)0
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux-agl-4.19.inc (renamed from meta-agl-bsp/recipes-kernel/linux/linux-agl-4.19.inc)0
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux-agl.inc (renamed from meta-agl-bsp/recipes-kernel/linux/linux-agl.inc)0
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux/btusb.cfg (renamed from meta-agl-bsp/recipes-kernel/linux/linux/btusb.cfg)0
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux/can-bus.cfg (renamed from meta-agl-bsp/recipes-kernel/linux/linux/can-bus.cfg)0
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux/drm.cfg (renamed from meta-agl-bsp/recipes-kernel/linux/linux/drm.cfg)0
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux/fanotify.cfg (renamed from meta-agl-bsp/recipes-kernel/linux/linux/fanotify.cfg)0
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux/hid.cfg (renamed from meta-agl-bsp/recipes-kernel/linux/linux/hid.cfg)0
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux/i2c-led.cfg (renamed from meta-agl-bsp/recipes-kernel/linux/linux/i2c-led.cfg)0
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux/iiodevice.cfg (renamed from meta-agl-bsp/recipes-kernel/linux/linux/iiodevice.cfg)0
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux/joystick.cfg (renamed from meta-agl-bsp/recipes-kernel/linux/linux/joystick.cfg)0
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux/nbd.cfg (renamed from meta-agl-bsp/recipes-kernel/linux/linux/nbd.cfg)0
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux/net-sch_generic-Use-pfifo_fast-as-fallback-scheduler.patch (renamed from meta-agl-bsp/recipes-kernel/linux/linux/net-sch_generic-Use-pfifo_fast-as-fallback-scheduler.patch)0
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux/netfilter.cfg (renamed from meta-agl-bsp/recipes-kernel/linux/linux/netfilter.cfg)0
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux/nfc.cfg (renamed from meta-agl-bsp/recipes-kernel/linux/linux/nfc.cfg)0
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux/overlayfs.cfg (renamed from meta-agl-bsp/recipes-kernel/linux/linux/overlayfs.cfg)0
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux/procevent.cfg (renamed from meta-agl-bsp/recipes-kernel/linux/linux/procevent.cfg)0
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux/ramdisk.cfg (renamed from meta-agl-bsp/recipes-kernel/linux/linux/ramdisk.cfg)0
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux/rtc.cfg (renamed from meta-agl-bsp/recipes-kernel/linux/linux/rtc.cfg)0
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux/rtl_sdr.cfg (renamed from meta-agl-bsp/recipes-kernel/linux/linux/rtl_sdr.cfg)0
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux/scheddebug.cfg (renamed from meta-agl-bsp/recipes-kernel/linux/linux/scheddebug.cfg)0
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux/sound-hda.cfg (renamed from meta-agl-bsp/recipes-kernel/linux/linux/sound-hda.cfg)0
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux/sound.cfg (renamed from meta-agl-bsp/recipes-kernel/linux/linux/sound.cfg)0
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux/systemtap.cfg (renamed from meta-agl-bsp/recipes-kernel/linux/linux/systemtap.cfg)0
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux/uinput.cfg (renamed from meta-agl-bsp/recipes-kernel/linux/linux/uinput.cfg)0
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux/usb.cfg (renamed from meta-agl-bsp/recipes-kernel/linux/linux/usb.cfg)0
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux/usbaudio.cfg (renamed from meta-agl-bsp/recipes-kernel/linux/linux/usbaudio.cfg)0
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux/usbmodem.cfg (renamed from meta-agl-bsp/recipes-kernel/linux/linux/usbmodem.cfg)0
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux/uvc.cfg (renamed from meta-agl-bsp/recipes-kernel/linux/linux/uvc.cfg)0
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux/vbox-vmware-sata.cfg (renamed from meta-agl-bsp/recipes-kernel/linux/linux/vbox-vmware-sata.cfg)0
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux/wifi.cfg (renamed from meta-agl-bsp/recipes-kernel/linux/linux/wifi.cfg)0
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux/x86-extra-graphic-devices.cfg (renamed from meta-agl-bsp/recipes-kernel/linux/linux/x86-extra-graphic-devices.cfg)0
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux/x86-net-devices.cfg (renamed from meta-agl-bsp/recipes-kernel/linux/linux/x86-net-devices.cfg)0
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux/x86-security-tpm.cfg (renamed from meta-agl-bsp/recipes-kernel/linux/linux/x86-security-tpm.cfg)0
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux/x86-upsquare.cfg (renamed from meta-agl-bsp/recipes-kernel/linux/linux/x86-upsquare.cfg)0
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux/x86-usb-devices.cfg (renamed from meta-agl-bsp/recipes-kernel/linux/linux/x86-usb-devices.cfg)0
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux/xen_domu.cfg (renamed from meta-agl-bsp/recipes-kernel/linux/linux/xen_domu.cfg)0
-rw-r--r--meta-agl-core/recipes-platform/images/agl-image-boot.bb (renamed from meta-agl-profile-core/recipes-platform/images/agl-image-boot.bb)0
-rw-r--r--meta-agl-core/recipes-platform/images/agl-image-boot.inc (renamed from meta-agl-profile-core/recipes-platform/images/agl-image-boot.inc)0
-rw-r--r--meta-agl-core/recipes-platform/images/agl-image-core-autobuilder.bb18
-rw-r--r--meta-agl-core/recipes-platform/images/agl-image-minimal-crosssdk.bb (renamed from meta-agl-profile-core/recipes-platform/images/agl-image-minimal-crosssdk.bb)0
-rw-r--r--meta-agl-core/recipes-platform/images/agl-image-minimal-crosssdk.inc24
-rw-r--r--meta-agl-core/recipes-platform/images/agl-image-minimal.bb (renamed from meta-agl-profile-core/recipes-platform/images/agl-image-minimal.bb)0
-rw-r--r--meta-agl-core/recipes-platform/images/agl-image-minimal.inc (renamed from meta-agl-profile-core/recipes-platform/images/agl-image-minimal.inc)0
-rw-r--r--meta-agl-core/recipes-platform/images/agl-image-weston.bb (renamed from meta-agl-profile-graphical/recipes-platform/images/agl-image-weston.bb)0
-rw-r--r--meta-agl-core/recipes-platform/images/agl-image-weston.inc (renamed from meta-agl-profile-graphical/recipes-platform/images/agl-image-weston.inc)0
-rw-r--r--meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-core-boot.bb (renamed from meta-agl-profile-core/recipes-platform/packagegroups/packagegroup-agl-core-boot.bb)1
-rw-r--r--meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-core-connectivity.bb (renamed from meta-agl-profile-core/recipes-platform/packagegroups/packagegroup-agl-core-connectivity.bb)2
-rw-r--r--meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-core-devel.bb (renamed from meta-agl-profile-core/recipes-devtools/packagegroups/packagegroup-agl-core-devel.bb)16
-rw-r--r--meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-core-os-commonlibs.bb (renamed from meta-agl-profile-core/recipes-platform/packagegroups/packagegroup-agl-core-os-commonlibs.bb)0
-rw-r--r--meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-core-security.bb (renamed from meta-agl-profile-core/recipes-platform/packagegroups/packagegroup-agl-core-security.bb)0
-rw-r--r--meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-graphical-multimedia.bb (renamed from meta-agl-profile-graphical/recipes-platform/packagegroups/packagegroup-agl-graphical-multimedia.bb)0
-rw-r--r--meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-graphical-weston.bb (renamed from meta-agl-profile-graphical/recipes-platform/packagegroups/packagegroup-agl-graphical-weston.bb)3
-rw-r--r--meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-image-boot.bb (renamed from meta-agl-profile-core/recipes-platform/packagegroups/packagegroup-agl-image-boot.bb)0
-rw-r--r--meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-image-minimal.bb (renamed from meta-agl-profile-core/recipes-platform/packagegroups/packagegroup-agl-image-minimal.bb)2
-rw-r--r--meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-profile-graphical.bb (renamed from meta-agl-profile-graphical/recipes-platform/packagegroups/packagegroup-agl-profile-graphical.bb)1
-rw-r--r--meta-agl-core/recipes-support/libsoup/libsoup-2.4_%.bbappend (renamed from meta-agl-profile-core/recipes-support/libsoup/libsoup-2.4_%.bbappend)0
-rw-r--r--meta-agl-core/recipes-support/ptest-runner/ptest-runner/0007-WIP-Initial-LAVA-support.patch (renamed from meta-agl-bsp/recipes-support/ptest-runner/ptest-runner/0007-WIP-Initial-LAVA-support.patch)0
-rw-r--r--meta-agl-core/recipes-support/ptest-runner/ptest-runner_2.%.bbappend2
-rw-r--r--meta-agl-core/recipes-support/ptest-runner/ptest-runner_agl.inc (renamed from meta-agl-bsp/recipes-support/ptest-runner/ptest-runner_2.%.bbappend)3
-rwxr-xr-xmeta-agl-core/scripts/oe-depends-dot (renamed from meta-agl-distro/scripts/oe-depends-dot)0
-rwxr-xr-xmeta-agl-core/scripts/run-yocto-check-layer-feature-enabled.sh50
-rwxr-xr-xmeta-agl-core/scripts/run-yocto-check-layer.sh48
-rw-r--r--meta-agl-distro/README3
-rw-r--r--meta-agl-distro/conf/layer.conf12
-rw-r--r--meta-agl-profile-cluster-qt5/LICENSE20
-rw-r--r--meta-agl-profile-cluster-qt5/LICENSE.GPL-2.0-only288
-rw-r--r--meta-agl-profile-cluster-qt5/LICENSE.MIT25
-rw-r--r--meta-agl-profile-cluster-qt5/conf/layer.conf12
-rw-r--r--meta-agl-profile-cluster-qt5/recipes-platform/images/agl-image-cluster-qt5.bb9
-rw-r--r--meta-agl-profile-cluster-qt5/recipes-platform/images/agl-image-cluster-qt5.inc7
-rw-r--r--meta-agl-profile-cluster-qt5/recipes-platform/packagegroups/packagegroup-agl-profile-cluster-qt5.bb21
-rw-r--r--meta-agl-profile-cluster-qt5/recipes-platform/packagegroups/packagegroup-agl-profile-cluster-qtcompositor.bb36
-rw-r--r--meta-agl-profile-cluster-qt5/recipes-qt/qt5/files/0001-fixed-eglfs_kms-fails-to-build.patch45
-rw-r--r--meta-agl-profile-cluster-qt5/recipes-qt/qt5/files/0002-fixed-invalid-conversion-from-EGLNativeDisplayType-to-void.patch24
-rw-r--r--meta-agl-profile-cluster-qt5/recipes-qt/qt5/qtbase_%.bbappend12
-rw-r--r--meta-agl-profile-cluster-qt5/recipes-qt/qt5/qtcompositor-conf_1.0.bb40
-rw-r--r--meta-agl-profile-cluster/LICENSE20
-rw-r--r--meta-agl-profile-cluster/LICENSE.GPL-2.0-only288
-rw-r--r--meta-agl-profile-cluster/LICENSE.MIT25
-rw-r--r--meta-agl-profile-cluster/conf/layer.conf12
-rw-r--r--meta-agl-profile-cluster/recipes-platform/images/agl-image-cluster.bb9
-rw-r--r--meta-agl-profile-cluster/recipes-platform/images/agl-image-cluster.inc7
-rw-r--r--meta-agl-profile-cluster/recipes-platform/packagegroups/packagegroup-agl-profile-cluster.bb20
-rw-r--r--meta-agl-profile-core/LICENSE20
-rw-r--r--meta-agl-profile-core/LICENSE.GPL-2.0-only288
-rw-r--r--meta-agl-profile-core/LICENSE.MIT25
-rw-r--r--meta-agl-profile-core/conf/layer.conf12
-rw-r--r--meta-agl-profile-core/recipes-apis/agl-service-bluetooth-map/agl-service-bluetooth-map_git.bb18
-rw-r--r--meta-agl-profile-core/recipes-apis/agl-service-bluetooth-pbap/agl-service-bluetooth-pbap_git.bb18
-rw-r--r--meta-agl-profile-core/recipes-apis/agl-service-bluetooth/agl-service-bluetooth_git.bb18
-rw-r--r--meta-agl-profile-core/recipes-apis/agl-service-can-low-level/agl-service-can-low-level_git.bb23
-rw-r--r--meta-agl-profile-core/recipes-apis/agl-service-can-low-level/files/run-ptest3
-rw-r--r--meta-agl-profile-core/recipes-apis/agl-service-data-persistence/agl-service-data-persistence_git.bb17
-rw-r--r--meta-agl-profile-core/recipes-apis/agl-service-geoclue/agl-service-geoclue_git.bb17
-rw-r--r--meta-agl-profile-core/recipes-apis/agl-service-geofence/agl-service-geofence_git.bb18
-rw-r--r--meta-agl-profile-core/recipes-apis/agl-service-gps/agl-service-gps_git.bb18
-rw-r--r--meta-agl-profile-core/recipes-apis/agl-service-hvac/agl-service-hvac-conf_git.bb27
-rw-r--r--meta-agl-profile-core/recipes-apis/agl-service-hvac/agl-service-hvac_git.bb20
-rw-r--r--meta-agl-profile-core/recipes-apis/agl-service-identity-agent/agl-service-identity-agent_git.bb17
-rw-r--r--meta-agl-profile-core/recipes-apis/agl-service-iiodevices/agl-service-iiodevices_git.bb19
-rw-r--r--meta-agl-profile-core/recipes-apis/agl-service-mediascanner/agl-service-mediascanner_git.bb18
-rwxr-xr-xmeta-agl-profile-core/recipes-apis/agl-service-navigation/agl-service-navigation_git.bb18
-rw-r--r--meta-agl-profile-core/recipes-apis/agl-service-network/agl-service-network_git.bb25
-rw-r--r--meta-agl-profile-core/recipes-apis/agl-service-nfc/agl-service-nfc_git.bb17
-rw-r--r--meta-agl-profile-core/recipes-apis/agl-service-platform-info/agl-service-platform-info_git.bb17
-rw-r--r--meta-agl-profile-core/recipes-apis/agl-service-signal-composer/agl-service-signal-composer_git.bb18
-rw-r--r--meta-agl-profile-core/recipes-apis/agl-service-signal-composer/files/run-ptest3
-rw-r--r--meta-agl-profile-core/recipes-apis/agl-service-telephony/agl-service-telephony_git.bb18
-rw-r--r--meta-agl-profile-core/recipes-apis/agl-service-unicens-controller/agl-service-unicens-controller_git.bb19
-rw-r--r--meta-agl-profile-core/recipes-apis/agl-service-unicens/agl-service-unicens_git.bb19
-rw-r--r--meta-agl-profile-core/recipes-apis/agl-service-weather/agl-service-weather_git.bb18
-rw-r--r--meta-agl-profile-core/recipes-config/agl-login-manager/agl-login-manager_0.1.bb19
-rw-r--r--meta-agl-profile-core/recipes-config/agl-users/agl-users_0.1.bb27
-rw-r--r--meta-agl-profile-core/recipes-config/dev-mapping/dev-mapping/dev-mapping.conf.default6
-rw-r--r--meta-agl-profile-core/recipes-config/dev-mapping/dev-mapping_0.1.bb18
-rw-r--r--meta-agl-profile-core/recipes-connectivity/bluez-alsa/bluez-alsa_git.bb43
-rw-r--r--meta-agl-profile-core/recipes-connectivity/bluez-alsa/files/bluez-alsa.service11
-rw-r--r--meta-agl-profile-core/recipes-connectivity/bluez5/bluez5/bluetooth.conf39
-rw-r--r--meta-agl-profile-core/recipes-connectivity/bluez5/bluez5/bluetooth.service21
-rw-r--r--meta-agl-profile-core/recipes-connectivity/bluez5/bluez5/obex.service10
-rw-r--r--meta-agl-profile-core/recipes-connectivity/bluez5/bluez5/tmpdir.conf2
-rw-r--r--meta-agl-profile-core/recipes-connectivity/bluez5/bluez5_%.bbappend24
-rw-r--r--meta-agl-profile-core/recipes-connectivity/busybox/busybox_%.bbappend2
-rw-r--r--meta-agl-profile-core/recipes-connectivity/neard/files/0001-systemd-neard-add-multi-user.target-to-neard.service.patch25
-rw-r--r--meta-agl-profile-core/recipes-connectivity/neard/files/0002-ndef-avoid-dbus-property_get_type-method-on-empty-re.patch33
-rw-r--r--meta-agl-profile-core/recipes-connectivity/neard/neard_0.16.bbappend7
-rw-r--r--meta-agl-profile-core/recipes-connectivity/neardal/neardal.inc22
-rw-r--r--meta-agl-profile-core/recipes-connectivity/neardal/neardal/0001-neardal-ncl-fix-segfault-on-help-page-being-displaye.patch27
-rw-r--r--meta-agl-profile-core/recipes-connectivity/neardal/neardal/0002-neardal-lib-fix-memory-corruption.patch58
-rw-r--r--meta-agl-profile-core/recipes-connectivity/neardal/neardal/ncl.patch25
-rw-r--r--meta-agl-profile-core/recipes-connectivity/neardal/neardal_0.14.bb10
-rw-r--r--meta-agl-profile-core/recipes-connectivity/ofono/files/0001-provision-allow-duplicate-entries-from-mbpi_lookup_a.patch27
-rw-r--r--meta-agl-profile-core/recipes-connectivity/ofono/files/ofono.conf30
-rw-r--r--meta-agl-profile-core/recipes-connectivity/ofono/ofono_%.bbappend11
-rw-r--r--meta-agl-profile-core/recipes-connectivity/rtl-sdr/rtl-sdr/0001-remove-I-usr-include-in-pkg-config.patch40
-rw-r--r--meta-agl-profile-core/recipes-connectivity/rtl-sdr/rtl-sdr_0.5.3.bb32
-rw-r--r--meta-agl-profile-core/recipes-core/dbus/dbus/dbus.service10
-rw-r--r--meta-agl-profile-core/recipes-core/dbus/dbus/dbus.socket9
-rw-r--r--meta-agl-profile-core/recipes-core/dbus/dbus/dbus_env.conf5
-rw-r--r--meta-agl-profile-core/recipes-core/dbus/dbus/libdbus-c++/dbus-c++-threading.patch45
-rw-r--r--meta-agl-profile-core/recipes-core/dbus/dbus_%.bbappend28
-rw-r--r--meta-agl-profile-core/recipes-core/dbus/libdbus-c++/dbus-c++-threading.patch45
-rw-r--r--meta-agl-profile-core/recipes-core/dbus/libdbus-c++_0.9.0.bbappend2
-rw-r--r--meta-agl-profile-core/recipes-core/distro-build-manifest/distro-build-manifest.bb164
-rw-r--r--meta-agl-profile-core/recipes-core/packagegroups/packagegroup-core-tools-profile.bbappend1
-rw-r--r--meta-agl-profile-core/recipes-core/psplash/files/psplash-colors.h34
-rw-r--r--meta-agl-profile-core/recipes-core/psplash/files/psplash-poky-img.h5411
-rw-r--r--meta-agl-profile-core/recipes-core/psplash/psplash_git.bbappend9
-rw-r--r--meta-agl-profile-core/recipes-devtools/gdb/.appends.core0
-rw-r--r--meta-agl-profile-core/recipes-devtools/json-c/json-c_%.bbappend1
-rw-r--r--meta-agl-profile-core/recipes-devtools/low-level-can-generator/low-level-can-generator_git.bb17
-rw-r--r--meta-agl-profile-core/recipes-devtools/packagegroups/nativesdk-packagegroup-sdk-host.bbappend4
-rw-r--r--meta-agl-profile-core/recipes-devtools/python/python3-asyncssh_2.3.0.bb15
-rw-r--r--meta-agl-profile-core/recipes-devtools/python/python3-pytest-dependency_0.5.1.bb12
-rw-r--r--meta-agl-profile-core/recipes-devtools/python/python3-pytest-reverse_1.0.1.bb12
-rw-r--r--meta-agl-profile-core/recipes-devtools/qemu/qemu_%.bbappend1
-rwxr-xr-xmeta-agl-profile-core/recipes-devtools/run-agl-postinsts/run-agl-postinsts/run-agl-postinsts48
-rw-r--r--meta-agl-profile-core/recipes-devtools/run-agl-postinsts/run-agl-postinsts/run-agl-postinsts.service17
-rw-r--r--meta-agl-profile-core/recipes-devtools/run-agl-postinsts/run-agl-postinsts_1.0.bb46
-rw-r--r--meta-agl-profile-core/recipes-extended/gperf/.appends.core0
-rw-r--r--meta-agl-profile-core/recipes-kernel/most/files/0002-src-most-add-auto-conf-feature.patch472
-rw-r--r--meta-agl-profile-core/recipes-kernel/most/files/0003-core-remove-kernel-log-for-MBO-status.patch26
-rw-r--r--meta-agl-profile-core/recipes-kernel/most/files/0004-most-video-set-device_caps.patch25
-rw-r--r--meta-agl-profile-core/recipes-kernel/most/files/0005-most-video-set-V4L2_CAP_DEVICE_CAPS-flag.patch25
-rw-r--r--meta-agl-profile-core/recipes-kernel/most/files/0006-dim2-fix-startup-sequence.patch186
-rw-r--r--meta-agl-profile-core/recipes-kernel/most/files/0007-dim2-use-device-tree.patch378
-rw-r--r--meta-agl-profile-core/recipes-kernel/most/files/0008-dim2-read-clock-speed-from-the-device-tree.patch92
-rw-r--r--meta-agl-profile-core/recipes-kernel/most/files/0009-dim2-use-device-for-coherent-memory-allocation.patch47
-rw-r--r--meta-agl-profile-core/recipes-kernel/most/files/0010-backport-usb-setup-timer.patch35
-rw-r--r--meta-agl-profile-core/recipes-kernel/most/files/0011-handle-snd_pcm_lib_mmap_vmalloc-removal.patch30
-rw-r--r--meta-agl-profile-core/recipes-kernel/most/files/0012-Fix-build-with-5.4-kernel.patch68
-rw-r--r--meta-agl-profile-core/recipes-kernel/most/most.bb14
-rw-r--r--meta-agl-profile-core/recipes-kernel/most/most.bbappend15
-rw-r--r--meta-agl-profile-core/recipes-multimedia/libmp4v2/files/0001-add-a-configure-option-to-disable-build-of-man-pages.patch40
-rw-r--r--meta-agl-profile-core/recipes-multimedia/libmp4v2/libmp4v2_git.bb18
-rw-r--r--meta-agl-profile-core/recipes-multimedia/lightmediascanner/.appends.meta-efl0
-rw-r--r--meta-agl-profile-core/recipes-multimedia/lightmediascanner/files/0001-Define-comparison_fn_t-for-non-glibc-systems.patch33
-rw-r--r--meta-agl-profile-core/recipes-multimedia/lightmediascanner/files/0002-switch-from-G_BUS_TYPE_SESSION-to-G_BUS_TYPE_SYSTEM.patch49
-rw-r--r--meta-agl-profile-core/recipes-multimedia/lightmediascanner/files/dbus-lightmediascanner.conf12
-rw-r--r--meta-agl-profile-core/recipes-multimedia/lightmediascanner/files/id3-plugin-support-out-of-tree-build.patch11
-rw-r--r--meta-agl-profile-core/recipes-multimedia/lightmediascanner/files/lightmediascanner.service16
-rw-r--r--meta-agl-profile-core/recipes-multimedia/lightmediascanner/files/plugin-ogg-fix-chucksize-issue.patch53
-rw-r--r--meta-agl-profile-core/recipes-multimedia/lightmediascanner/lightmediascanner_%.bbappend42
-rw-r--r--meta-agl-profile-core/recipes-multimedia/lightmediascanner/lightmediascanner_0.5.1.bb63
-rw-r--r--meta-agl-profile-core/recipes-navigation/geoclue/files/org.freedesktop.GeoClue2.Client.conf8
-rw-r--r--meta-agl-profile-core/recipes-navigation/geoclue/geoclue_%.bbappend11
-rw-r--r--meta-agl-profile-core/recipes-navigation/gpsd/gpsd_%.bbappend16
-rw-r--r--meta-agl-profile-core/recipes-platform/images/agl-image-minimal-crosssdk.inc18
-rw-r--r--meta-agl-profile-core/recipes-platform/packagegroups/packagegroup-agl-core-services.bb14
-rw-r--r--meta-agl-profile-core/recipes-support/curl/curl_%.bbappend5
-rw-r--r--meta-agl-profile-core/recipes-support/opencv/opencv_4.%.bbappend1
-rw-r--r--meta-agl-profile-core/recipes-support/udisks/files/99-udisks2.rules5
-rw-r--r--meta-agl-profile-core/recipes-support/udisks/files/automount.service9
-rw-r--r--meta-agl-profile-core/recipes-support/udisks/files/automount.sh93
-rw-r--r--meta-agl-profile-core/recipes-support/udisks/udisks2_%.bbappend26
-rw-r--r--meta-agl-profile-core/recipes-test/gcovr-wrapper/gcovr-wrapper/gcovr-wrapper320
-rw-r--r--meta-agl-profile-core/recipes-test/gcovr-wrapper/gcovr-wrapper_1.0.bb17
-rw-r--r--meta-agl-profile-core/recipes-test/gcovr/gcovr/0001-add-gcov-filter-source-errors-option.patch68
-rw-r--r--meta-agl-profile-core/recipes-test/gcovr/gcovr_%.bbappend2
-rw-r--r--meta-agl-profile-core/recipes-test/gcovr/gcovr_git.bb32
-rw-r--r--meta-agl-profile-core/recipes-test/pyagl/pyagl_git.bb33
-rw-r--r--meta-agl-profile-graphical-html5/conf/layer.conf12
-rw-r--r--meta-agl-profile-graphical-html5/recipes-graphics/wayland/weston-ini-conf.bbappend12
-rw-r--r--meta-agl-profile-graphical-html5/recipes-graphics/wayland/weston-ini-conf/hdmi-a-1-180.cfg4
-rw-r--r--meta-agl-profile-graphical-html5/recipes-graphics/wayland/weston-ini-conf/virtual-landscape.cfg3
-rw-r--r--meta-agl-profile-graphical-html5/recipes-platform/images/agl-image-graphical-html5.bb10
-rw-r--r--meta-agl-profile-graphical-html5/recipes-platform/images/agl-image-graphical-html5.inc9
-rw-r--r--meta-agl-profile-graphical-html5/recipes-platform/packagegroups/packagegroup-agl-appfw-html5.bb18
-rw-r--r--meta-agl-profile-graphical-html5/recipes-platform/packagegroups/packagegroup-agl-profile-graphical-html5.bb23
-rw-r--r--meta-agl-profile-graphical-html5/recipes-wam/chromium/chromium-browser-service.bb19
-rw-r--r--meta-agl-profile-graphical-html5/recipes-wam/chromium/chromium68/v8-qemu-wrapper.patch40
-rw-r--r--meta-agl-profile-graphical-html5/recipes-wam/chromium/chromium68_git.bb404
-rw-r--r--meta-agl-profile-graphical-html5/recipes-wam/chromium/gn-utils.inc157
-rw-r--r--meta-agl-profile-graphical-html5/recipes-wam/wam/files/WebAppMgr.env202
-rw-r--r--meta-agl-profile-graphical-html5/recipes-wam/wam/files/WebAppMgr@.service37
-rw-r--r--meta-agl-profile-graphical-html5/recipes-wam/wam/files/trunc-webapp-roles.patch56
-rw-r--r--meta-agl-profile-graphical-html5/recipes-wam/wam/wam_git.bb51
-rw-r--r--meta-agl-profile-graphical-qt5/LICENSE20
-rw-r--r--meta-agl-profile-graphical-qt5/LICENSE.GPL-2.0-only288
-rw-r--r--meta-agl-profile-graphical-qt5/LICENSE.MIT25
-rw-r--r--meta-agl-profile-graphical-qt5/conf/layer.conf12
-rwxr-xr-xmeta-agl-profile-graphical-qt5/recipes-platform/images/agl-image-graphical-qt5-crosssdk.bb18
-rw-r--r--meta-agl-profile-graphical-qt5/recipes-platform/images/agl-image-graphical-qt5-crosssdk.inc14
-rw-r--r--meta-agl-profile-graphical-qt5/recipes-platform/images/agl-image-graphical-qt5.bb5
-rw-r--r--meta-agl-profile-graphical-qt5/recipes-platform/images/agl-image-graphical-qt5.inc1
-rw-r--r--meta-agl-profile-graphical-qt5/recipes-platform/packagegroups/packagegroup-agl-appfw-native-qt5.bb29
-rw-r--r--meta-agl-profile-graphical-qt5/recipes-platform/packagegroups/packagegroup-agl-demo-qt-examples.bb26
-rw-r--r--meta-agl-profile-graphical-qt5/recipes-platform/packagegroups/packagegroup-agl-profile-graphical-qt5.bb23
-rw-r--r--meta-agl-profile-graphical-qt5/recipes-platform/packagegroups/packagegroup-qt5-toolchain-target.bbappend18
-rw-r--r--meta-agl-profile-graphical-qt5/recipes-qt/qlibhomescreen/qlibhomescreen_git.bb13
-rw-r--r--meta-agl-profile-graphical-qt5/recipes-qt/qml-execscript-plugin/qml-execscript-plugin_1.0.bb25
-rw-r--r--meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtbase-native_git.bbappend3
-rw-r--r--meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtbase/0001-Force-qdbus-to-make-introspect-for-every-findMetaObj.patch30
-rw-r--r--meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtbase_%.bbappend12
-rw-r--r--meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtlocation/0001-mapbox-update-API-url-to-match-new-schema.patch47
-rw-r--r--meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtlocation_%.bbappend14
-rw-r--r--meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtmultimedia/0001-metadata-image-support-with-the-data-URL-scheme-for-.patch80
-rw-r--r--meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtmultimedia_%.bbappend7
-rw-r--r--meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtsystems_%.bbappend3
-rw-r--r--meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland-config/qtwayland12
-rw-r--r--meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland-config_1.0.0.bb21
-rw-r--r--meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland/0001-protocol-update-3rd-party-ivi-application-protocol.patch56
-rw-r--r--meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland/0002-qwaylandwindow-add-support-for-IVI-Surface-ID-proper.patch34
-rw-r--r--meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland/0010-Added-manifest-file-according-to-smack-3-domain-mode.patch33
-rw-r--r--meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland/0016-xdg-shell-Add-xdg-shell-protocol-file-version-1.4.0.patch468
-rw-r--r--meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland/0017-xdg-shell-Add-minimize-feature-to-QWindow-using-wayl.patch1029
-rw-r--r--meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland/0019-xdg-shell-upgrade-to-support-current-version-weston-.patch772
-rw-r--r--meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland/0020-Add-IVI-Shell-protocol-file-version-patch-v6.patch128
-rw-r--r--meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland/0021-Implement-initial-IVI-Shell-support.patch539
-rw-r--r--meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland/0099_qtwayland_no_evdev.patch14
-rw-r--r--meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland/UNUSED_NEEDS_CHECK_YOCTO_0018-packaging-enable-xdg-shell-at-runtime.patch31
-rw-r--r--meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland_%.bbappend26
-rw-r--r--meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwebkit_%.bbappend1
-rw-r--r--meta-agl-profile-graphical/LICENSE20
-rw-r--r--meta-agl-profile-graphical/LICENSE.GPL-2.0-only288
-rw-r--r--meta-agl-profile-graphical/LICENSE.MIT25
-rw-r--r--meta-agl-profile-graphical/classes/agl-graphical.bbclass6
-rw-r--r--meta-agl-profile-graphical/conf/layer.conf12
-rw-r--r--meta-agl-profile-graphical/recipes-apis/agl-service-homescreen/agl-service-homescreen_git.bb14
-rw-r--r--meta-agl-profile-graphical/recipes-apis/agl-service-mediaplayer/agl-service-mediaplayer_git.bb18
-rw-r--r--meta-agl-profile-graphical/recipes-apis/agl-service-radio/agl-service-radio_git.bb19
-rw-r--r--meta-agl-profile-graphical/recipes-apis/agl-service-taskmanager/agl-service-taskmanager.bb18
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/hmi-debug/files/hmi-debug8
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/hmi-debug/hmi-debug_git.bb19
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/libhomescreen/libhomescreen_git.bb19
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/wayland/wayland-ivi-extension/0001-Added-ivi-id-agent-to-CMake.patch22
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/wayland/wayland-ivi-extension/0002-add-LayerManagerControl-error-status.patch21
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/wayland/wayland-ivi-extension/0002-ivi-id-agent-added-ivi-id-agent.patch530
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/wayland/wayland-ivi-extension/0003-ivi-controller-load-id-agent-module.patch67
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/wayland/wayland-ivi-extension/0004-ivi-ilmcontrol-added-focus-notification.patch29
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/wayland/wayland-ivi-extension/0005-disable-EGLWLMockNavigation-example-build.patch22
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/wayland/wayland-ivi-extension/0006-fix-plugin-registry-include.patch13
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/wayland/wayland-ivi-extension/wandboard_fix_build.patch13
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/wayland/wayland-ivi-extension_git.bb36
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/wayland/weston-init.bbappend83
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/tmpfiles.conf.in6
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/weston-dep.conf.in3
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/weston.conf.in12
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/zz-dri-imx.rules.in2
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/zz-dri.rules.in1
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/zz-input.rules.in1
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/zz-tty.rules.in1
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/wayland/weston-ready/weston-ready56
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/wayland/weston-ready/weston-ready.service10
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/wayland/weston-ready_1.0.bb21
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/wayland/weston_8.0.%.bbappend26
-rw-r--r--meta-agl-profile-graphical/recipes-multimedia/gstreamer1.0-plugins-bad/gstreamer1.0-plugins-bad/0001-gst-wayland-Install-wayland-header-from-gstwayland-l.patch28
-rw-r--r--meta-agl-profile-graphical/recipes-multimedia/gstreamer1.0-plugins-bad/gstreamer1.0-plugins-bad_1.16.%.bbappend2
-rw-r--r--meta-agl-profile-graphical/recipes-multimedia/gstreamer1.0-plugins-good/gstreamer1.0-plugins-good_%.bbappend2
-rw-r--r--meta-agl-profile-graphical/recipes-platform/packagegroups/packagegroup-agl-graphical-multimedia.bbappend5
-rw-r--r--meta-agl-profile-graphical/recipes-platform/packagegroups/packagegroup-agl-graphical-services.bb15
-rw-r--r--meta-agl-profile-hud/LICENSE20
-rw-r--r--meta-agl-profile-hud/LICENSE.GPL-2.0-only288
-rw-r--r--meta-agl-profile-hud/LICENSE.MIT25
-rw-r--r--meta-agl-profile-hud/conf/layer.conf12
-rw-r--r--meta-agl-profile-telematics/LICENSE20
-rw-r--r--meta-agl-profile-telematics/LICENSE.GPL-2.0-only288
-rw-r--r--meta-agl-profile-telematics/LICENSE.MIT25
-rw-r--r--meta-agl-profile-telematics/conf/layer.conf12
-rw-r--r--meta-agl-profile-telematics/recipes-platform/images/agl-image-telematics.bb9
-rw-r--r--meta-agl-profile-telematics/recipes-platform/images/agl-image-telematics.inc5
-rw-r--r--meta-agl-profile-telematics/recipes-platform/packagegroups/packagegroup-agl-profile-telematics.bb25
-rwxr-xr-xmeta-agl.md126
-rw-r--r--meta-agl/conf/layer.conf12
-rw-r--r--meta-app-framework/conf/include/agl-appfw-smack.inc5
-rw-r--r--meta-app-framework/conf/include/agl-sign-wgts.inc (renamed from meta-agl-profile-core/conf/include/agl-sign-wgts.inc)2
-rw-r--r--meta-app-framework/conf/layer.conf21
-rw-r--r--meta-app-framework/dynamic-layers/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-core-security.bbappend1
-rw-r--r--meta-app-framework/dynamic-layers/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-core-security_appfw.inc (renamed from meta-app-framework/recipes-platform/packagegroups/packagegroup-agl-core-security.bbappend)3
-rw-r--r--meta-app-framework/dynamic-layers/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-image-boot.bbappend1
-rw-r--r--meta-app-framework/dynamic-layers/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-image-boot_appfw.inc (renamed from meta-app-framework/recipes-platform/packagegroups/packagegroup-agl-image-boot.bbappend)2
-rw-r--r--meta-app-framework/dynamic-layers/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-image-minimal.bbappend1
-rw-r--r--meta-app-framework/dynamic-layers/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-image-minimal_appfw.inc (renamed from meta-app-framework/recipes-platform/packagegroups/packagegroup-agl-image-minimal.bbappend)2
-rw-r--r--meta-app-framework/dynamic-layers/meta-qt5/recipes-devtools/libafb-helpers-qt/libafb-helpers-qt_git.bb (renamed from meta-agl-profile-graphical-qt5/recipes-devtools/libafb-helpers-qt/libafb-helpers-qt_git.bb)0
-rw-r--r--meta-app-framework/dynamic-layers/meta-qt5/recipes-devtools/libqtappfw/libqtappfw_git.bb (renamed from meta-agl-profile-graphical-qt5/recipes-devtools/libqtappfw/libqtappfw_git.bb)0
-rw-r--r--meta-app-framework/dynamic-layers/meta-qt5/recipes-platform/packagegroups/packagegroup-agl-appfw-qt5.bb (renamed from meta-agl-profile-graphical-qt5/recipes-appfw/packagegroups/packagegroup-agl-appfw-qt5.bb)0
-rw-r--r--meta-app-framework/recipes-connectivity/bluez5/bluez5_%.bbappend1
-rw-r--r--meta-app-framework/recipes-connectivity/bluez5/bluez5_appfw.inc (renamed from meta-security/recipes-connectivity/bluez5/bluez5_%.bbappend)2
-rw-r--r--meta-app-framework/recipes-connectivity/bluez5/files/bluetooth.service.conf (renamed from meta-security/recipes-connectivity/bluez5/files/bluetooth.service.conf)0
-rw-r--r--meta-app-framework/recipes-connectivity/connman/connman_%.bbappend1
-rw-r--r--meta-app-framework/recipes-connectivity/connman/connman_appfw.inc (renamed from meta-security/recipes-connectivity/connman/connman_%.bbappend)2
-rw-r--r--meta-app-framework/recipes-connectivity/connman/files/connman.service.conf (renamed from meta-security/recipes-connectivity/connman/files/connman.service.conf)0
-rw-r--r--meta-app-framework/recipes-core/base-files/base-files_%.bbappend33
-rw-r--r--meta-app-framework/recipes-core/base-files/base-files_appfw.inc (renamed from meta-security/recipes-core/base-files/base-files_%.bbappend)34
-rw-r--r--meta-app-framework/recipes-core/coreutils/coreutils_%.bbappend1
-rw-r--r--meta-app-framework/recipes-core/coreutils/coreutils_appfw.inc (renamed from meta-security/recipes-core/coreutils/coreutils_%.bbappend)0
-rw-r--r--meta-app-framework/recipes-core/dbus-cynagora/dbus-cynagora/0001-Integration-of-Cynara-asynchronous-security-checks.patch (renamed from meta-security/recipes-core/dbus-cynagora/dbus-cynagora/0001-Integration-of-Cynara-asynchronous-security-checks.patch)0
-rw-r--r--meta-app-framework/recipes-core/dbus-cynagora/dbus-cynagora/0002-Disable-message-dispatching-when-send-rule-result-is.patch (renamed from meta-security/recipes-core/dbus-cynagora/dbus-cynagora/0002-Disable-message-dispatching-when-send-rule-result-is.patch)0
-rw-r--r--meta-app-framework/recipes-core/dbus-cynagora/dbus-cynagora/0003-Handle-unavailability-of-policy-results-for-broadcas.patch (renamed from meta-security/recipes-core/dbus-cynagora/dbus-cynagora/0003-Handle-unavailability-of-policy-results-for-broadcas.patch)0
-rw-r--r--meta-app-framework/recipes-core/dbus-cynagora/dbus-cynagora/0004-Add-own-rule-result-unavailability-handling.patch (renamed from meta-security/recipes-core/dbus-cynagora/dbus-cynagora/0004-Add-own-rule-result-unavailability-handling.patch)0
-rw-r--r--meta-app-framework/recipes-core/dbus-cynagora/dbus-cynagora/0005-Perform-Cynara-runtime-policy-checks-by-default.patch (renamed from meta-security/recipes-core/dbus-cynagora/dbus-cynagora/0005-Perform-Cynara-runtime-policy-checks-by-default.patch)0
-rw-r--r--meta-app-framework/recipes-core/dbus-cynagora/dbus-cynagora/0006-Fix-SIGSEGV-on-disconnections.patch (renamed from meta-security/recipes-core/dbus-cynagora/dbus-cynagora/0006-Fix-SIGSEGV-on-disconnections.patch)0
-rw-r--r--meta-app-framework/recipes-core/dbus-cynagora/dbus-cynagora/0007-Switch-from-cynara-to-cynagora.patch (renamed from meta-security/recipes-core/dbus-cynagora/dbus-cynagora/0007-Switch-from-cynara-to-cynagora.patch)0
-rw-r--r--meta-app-framework/recipes-core/dbus-cynagora/dbus_1.12.16.bbappend1
-rw-r--r--meta-app-framework/recipes-core/dbus-cynagora/dbus_appfw.inc (renamed from meta-security/recipes-core/dbus-cynagora/dbus_1.12.16.bbappend)0
-rw-r--r--meta-app-framework/recipes-core/packagegroups/nativesdk-packagegroup-sdk-host.bbappend2
-rw-r--r--meta-app-framework/recipes-core/security-manager/security-manager_%.bbappend7
-rw-r--r--meta-app-framework/recipes-core/shadow/shadow_%.bbappend5
-rw-r--r--meta-app-framework/recipes-core/shadow/shadow_appfw.inc3
-rw-r--r--meta-app-framework/recipes-core/smack-system-setup/files/55-udev-smack-default.rules (renamed from meta-security/recipes-core/smack-system-setup/files/55-udev-smack-default.rules)0
-rw-r--r--meta-app-framework/recipes-core/smack-system-setup/files/systemd-journald.service.conf (renamed from meta-security/recipes-core/smack-system-setup/files/systemd-journald.service.conf)0
-rw-r--r--meta-app-framework/recipes-core/smack-system-setup/files/systemd-tmpfiles-setup.service.conf (renamed from meta-security/recipes-core/smack-system-setup/files/systemd-tmpfiles-setup.service.conf)0
-rw-r--r--meta-app-framework/recipes-core/smack-system-setup/files/tmp.mount.conf (renamed from meta-security/recipes-core/smack-system-setup/files/tmp.mount.conf)0
-rw-r--r--meta-app-framework/recipes-core/smack-system-setup/smack-system-setup_1.bb (renamed from meta-security/recipes-core/smack-system-setup/smack-system-setup_1.bb)0
-rw-r--r--meta-app-framework/recipes-core/systemd-sync/systemd-agl-sync_1.0.bb39
-rw-r--r--meta-app-framework/recipes-core/systemd/systemd/0001-Switch-Smack-label-earlier.patch (renamed from meta-security/recipes-core/systemd/systemd/0001-Switch-Smack-label-earlier.patch)0
-rw-r--r--meta-app-framework/recipes-core/systemd/systemd_2%.bbappend1
-rw-r--r--meta-app-framework/recipes-core/systemd/systemd_appfw.inc (renamed from meta-security/recipes-core/systemd/systemd_2%.bbappend)2
-rw-r--r--meta-app-framework/recipes-core/util-linux/util-linux_%.bbappend1
-rw-r--r--meta-app-framework/recipes-core/util-linux/util-linux_appfw.inc (renamed from meta-security/recipes-core/util-linux/util-linux_%.bbappend)0
-rw-r--r--meta-app-framework/recipes-devtools/cmake-apps-module/cmake-apps-module_git.bb (renamed from meta-agl-profile-core/recipes-devtools/cmake-apps-module/cmake-apps-module_git.bb)0
-rw-r--r--meta-app-framework/recipes-devtools/json-c/json-c_%.bbappend1
-rw-r--r--meta-app-framework/recipes-devtools/json-c/json-c_appfw.inc1
-rw-r--r--meta-app-framework/recipes-devtools/libafb-helpers/libafb-helpers_git.bb (renamed from meta-agl-profile-core/recipes-devtools/libafb-helpers/libafb-helpers_git.bb)0
-rw-r--r--meta-app-framework/recipes-devtools/libafb-helpers/libafb-helpers_git.inc (renamed from meta-agl-profile-core/recipes-devtools/libafb-helpers/libafb-helpers_git.inc)0
-rw-r--r--meta-app-framework/recipes-devtools/libappcontroller/libappcontroller_git.bb (renamed from meta-agl-profile-core/recipes-devtools/libappcontroller/libappcontroller_git.bb)0
-rw-r--r--meta-app-framework/recipes-devtools/packagegroups/nativesdk-packagegroup-sdk-host.bbappend1
-rw-r--r--meta-app-framework/recipes-devtools/packagegroups/nativesdk-packagegroup-sdk-host_appfw.inc5
-rw-r--r--meta-app-framework/recipes-devtools/run-agl-postinsts/run-agl-postinsts_1.0.bbappend1
-rw-r--r--meta-app-framework/recipes-devtools/run-postinsts/run-postinsts/ldconfig-wait.conf (renamed from meta-agl-profile-core/recipes-devtools/run-postinsts/run-postinsts/ldconfig-wait.conf)0
-rw-r--r--meta-app-framework/recipes-devtools/run-postinsts/run-postinsts_%.bbappend1
-rw-r--r--meta-app-framework/recipes-devtools/run-postinsts/run-postinsts_appfw.inc (renamed from meta-agl-profile-core/recipes-devtools/run-postinsts/run-postinsts_%.bbappend)4
-rw-r--r--meta-app-framework/recipes-graphics/wayland/wayland/0001-Change-socket-mode-add-rw-for-group.patch (renamed from meta-agl-profile-graphical/recipes-graphics/wayland/wayland/0001-Change-socket-mode-add-rw-for-group.patch)0
-rw-r--r--meta-app-framework/recipes-graphics/wayland/wayland_%.bbappend1
-rw-r--r--meta-app-framework/recipes-graphics/wayland/wayland_appfw.inc (renamed from meta-agl-profile-graphical/recipes-graphics/wayland/wayland_%.bbappend)2
-rw-r--r--meta-app-framework/recipes-graphics/wayland/weston/0001-Allow-regular-users-to-launch-Weston_7.0.0.patch (renamed from meta-agl-profile-graphical/recipes-graphics/wayland/weston/0001-Allow-regular-users-to-launch-Weston_7.0.0.patch)0
-rw-r--r--meta-app-framework/recipes-graphics/wayland/weston/smack-weston (renamed from meta-agl-profile-graphical/recipes-graphics/wayland/weston/smack-weston)0
-rw-r--r--meta-app-framework/recipes-graphics/wayland/weston_8.0.%.bbappend1
-rw-r--r--meta-app-framework/recipes-graphics/wayland/weston_8.0_appfw.inc19
-rw-r--r--meta-app-framework/recipes-kernel/linux/linux-%.bbappend3
-rw-r--r--meta-app-framework/recipes-kernel/linux/linux-appfw.inc (renamed from meta-security/recipes-kernel/linux/linux-%.bbappend)6
-rw-r--r--meta-app-framework/recipes-kernel/linux/linux/smack-default-lsm.cfg (renamed from meta-security/recipes-kernel/linux/linux/smack-default-lsm.cfg)0
-rw-r--r--meta-app-framework/recipes-kernel/linux/linux/smack.cfg (renamed from meta-security/recipes-kernel/linux/linux/smack.cfg)0
-rw-r--r--meta-app-framework/recipes-platform/packagegroups/packagegroup-agl-app-framework-examples.bb (renamed from meta-app-framework/recipes-core/packagegroups/packagegroup-agl-app-framework-examples.bb)0
-rw-r--r--meta-app-framework/recipes-platform/packagegroups/packagegroup-agl-app-framework.bb (renamed from meta-app-framework/recipes-core/packagegroups/packagegroup-agl-app-framework.bb)5
-rw-r--r--meta-app-framework/recipes-platform/packagegroups/packagegroup-agl-appfw-native.bb (renamed from meta-agl-profile-graphical-qt5/recipes-appfw/packagegroups/packagegroup-agl-appfw-native.bb)1
-rw-r--r--meta-app-framework/recipes-platform/packagegroups/packagegroup-security-framework.bb (renamed from meta-security/recipes-core/packagegroups/packagegroup-security-framework.bb)0
-rw-r--r--meta-app-framework/recipes-security/audit/audit/0001-lib-i386_table.h-add-new-syscall.patch (renamed from meta-security/recipes-security/audit/audit/0001-lib-i386_table.h-add-new-syscall.patch)0
-rw-r--r--meta-app-framework/recipes-security/audit/audit/Add-substitue-functions-for-strndupa-rawmemchr.patch (renamed from meta-security/recipes-security/audit/audit/Add-substitue-functions-for-strndupa-rawmemchr.patch)0
-rw-r--r--meta-app-framework/recipes-security/audit/audit/Fixed-swig-host-contamination-issue.patch (renamed from meta-security/recipes-security/audit/audit/Fixed-swig-host-contamination-issue.patch)0
-rw-r--r--meta-app-framework/recipes-security/audit/audit/audit-volatile.conf (renamed from meta-security/recipes-security/audit/audit/audit-volatile.conf)0
-rwxr-xr-xmeta-app-framework/recipes-security/audit/audit/auditd (renamed from meta-security/recipes-security/audit/audit/auditd)0
-rw-r--r--meta-app-framework/recipes-security/audit/audit/auditd.service (renamed from meta-security/recipes-security/audit/audit/auditd.service)0
-rw-r--r--meta-app-framework/recipes-security/audit/audit_2.8.5.bb (renamed from meta-security/recipes-security/audit/audit_2.8.5.bb)0
-rw-r--r--meta-app-framework/recipes-security/cynagoauth/cynagoauth_0.1.bb (renamed from meta-security/recipes-security/cynagoauth/cynagoauth_0.1.bb)0
-rw-r--r--meta-app-framework/recipes-security/cynagora/cynagora-cynara-compat_2.1.bb (renamed from meta-security/recipes-security/cynagora/cynagora-cynara-compat_2.1.bb)0
-rwxr-xr-xmeta-app-framework/recipes-security/cynagora/cynagora/run-ptest (renamed from meta-security/recipes-security/cynagora/cynagora/run-ptest)0
-rw-r--r--meta-app-framework/recipes-security/cynagora/cynagora_2.1.bb (renamed from meta-security/recipes-security/cynagora/cynagora_2.1.bb)0
-rw-r--r--meta-app-framework/recipes-security/security-manager/security-manager.inc (renamed from meta-security/recipes-security/security-manager/security-manager.inc)0
-rw-r--r--meta-app-framework/recipes-security/security-manager/security-manager/0001-Adapt-rules-to-AGL.patch (renamed from meta-app-framework/recipes-core/security-manager/security-manager/0001-Adapt-rules-to-AGL.patch)0
-rw-r--r--meta-app-framework/recipes-security/security-manager/security-manager/0001-systemd-stop-using-compat-libs.patch (renamed from meta-security/recipes-security/security-manager/security-manager/0001-systemd-stop-using-compat-libs.patch)0
-rw-r--r--meta-app-framework/recipes-security/security-manager/security-manager/0002-security-manager-policy-reload-do-not-depend-on-GNU-.patch (renamed from meta-security/recipes-security/security-manager/security-manager/0002-security-manager-policy-reload-do-not-depend-on-GNU-.patch)0
-rw-r--r--meta-app-framework/recipes-security/security-manager/security-manager/0003-Smack-rules-create-two-new-functions.patch (renamed from meta-security/recipes-security/security-manager/security-manager/0003-Smack-rules-create-two-new-functions.patch)0
-rw-r--r--meta-app-framework/recipes-security/security-manager/security-manager/0004-app-install-implement-multiple-set-of-smack-rules.patch (renamed from meta-security/recipes-security/security-manager/security-manager/0004-app-install-implement-multiple-set-of-smack-rules.patch)0
-rw-r--r--meta-app-framework/recipes-security/security-manager/security-manager/0005-c-11-replace-deprecated-auto_ptr.patch (renamed from meta-security/recipes-security/security-manager/security-manager/0005-c-11-replace-deprecated-auto_ptr.patch)0
-rw-r--r--meta-app-framework/recipes-security/security-manager/security-manager/0006-socket-manager-removes-tizen-specific-call.patch (renamed from meta-security/recipes-security/security-manager/security-manager/0006-socket-manager-removes-tizen-specific-call.patch)0
-rw-r--r--meta-app-framework/recipes-security/security-manager/security-manager/0007-removes-dependency-to-libslp-db-utils.patch (renamed from meta-security/recipes-security/security-manager/security-manager/0007-removes-dependency-to-libslp-db-utils.patch)0
-rw-r--r--meta-app-framework/recipes-security/security-manager/security-manager/0008-Fix-gcc6-build.patch (renamed from meta-security/recipes-security/security-manager/security-manager/0008-Fix-gcc6-build.patch)0
-rw-r--r--meta-app-framework/recipes-security/security-manager/security-manager/0009-Fix-Cmake-conf-for-gcc6-build.patch (renamed from meta-security/recipes-security/security-manager/security-manager/0009-Fix-Cmake-conf-for-gcc6-build.patch)0
-rw-r--r--meta-app-framework/recipes-security/security-manager/security-manager/0010-gcc-7-requires-include-functional-for-std-function.patch (renamed from meta-security/recipes-security/security-manager/security-manager/0010-gcc-7-requires-include-functional-for-std-function.patch)0
-rw-r--r--meta-app-framework/recipes-security/security-manager/security-manager/0011-Fix-gcc8-warning-error-Werror-catch-value.patch (renamed from meta-security/recipes-security/security-manager/security-manager/0011-Fix-gcc8-warning-error-Werror-catch-value.patch)0
-rw-r--r--meta-app-framework/recipes-security/security-manager/security-manager/0012-Avoid-casting-from-const-T-to-void.patch (renamed from meta-security/recipes-security/security-manager/security-manager/0012-Avoid-casting-from-const-T-to-void.patch)0
-rw-r--r--meta-app-framework/recipes-security/security-manager/security-manager/0013-Removing-tizen-platform-config.patch (renamed from meta-security/recipes-security/security-manager/security-manager/0013-Removing-tizen-platform-config.patch)0
-rw-r--r--meta-app-framework/recipes-security/security-manager/security-manager/0014-Ensure-post-install-initialization-of-database.patch (renamed from meta-security/recipes-security/security-manager/security-manager/0014-Ensure-post-install-initialization-of-database.patch)0
-rw-r--r--meta-app-framework/recipes-security/security-manager/security-manager/0015-Restrict-socket-accesses.patch (renamed from meta-security/recipes-security/security-manager/security-manager/0015-Restrict-socket-accesses.patch)0
-rw-r--r--meta-app-framework/recipes-security/security-manager/security-manager_%.bbappend (renamed from meta-agl-profile-graphical/recipes-security/security-manager/security-manager_%.bbappend)7
-rw-r--r--meta-app-framework/recipes-security/security-manager/security-manager_git.bb (renamed from meta-security/recipes-security/security-manager/security-manager_git.bb)0
-rw-r--r--meta-app-framework/recipes-security/xmlsec1/xmlsec1_1.%.bbappend5
-rw-r--r--meta-app-framework/recipes-security/xmlsec1/xmlsec1_appfw.inc4
-rw-r--r--meta-app-framework/recipes-support/libcap/libcap_%.bbappend4
-rw-r--r--meta-app-framework/recipes-support/libcap/libcap_appfw.inc3
-rw-r--r--meta-app-framework/recipes-support/libzip/libzip_%.bbappend2
-rw-r--r--meta-app-framework/recipes-support/libzip/libzip_appfw.inc1
-rw-r--r--meta-app-framework/recipes-test/afb-test/afb-test_git.bb (renamed from meta-agl-profile-core/recipes-test/afb-test/afb-test_git.bb)0
-rw-r--r--meta-app-framework/recipes-test/afb-test/files/run-ptest (renamed from meta-agl-profile-core/recipes-test/afb-test/files/run-ptest)0
-rwxr-xr-xmeta-app-framework/scripts/run-yocto-check-layer-enabled-flags.sh51
-rwxr-xr-xmeta-app-framework/scripts/run-yocto-check-layer.sh49
-rw-r--r--meta-netboot/README.renesas-gen390
-rw-r--r--meta-netboot/classes/netboot.bbclass5
-rw-r--r--meta-netboot/conf/include/agl-netboot.inc3
-rw-r--r--meta-netboot/conf/layer.conf4
-rw-r--r--meta-netboot/recipes-core/busybox/busybox_%.bbappend7
-rw-r--r--meta-netboot/recipes-core/busybox/busybox_netboot.inc6
-rw-r--r--meta-netboot/recipes-core/images/initramfs-netboot-image.bb23
-rw-r--r--meta-netboot/recipes-core/images/initramfs-netboot-image_netboot.inc23
-rw-r--r--meta-netboot/recipes-support/nbd/nbd_%.bbappend7
-rw-r--r--meta-netboot/recipes-support/nbd/nbd_netboot.inc5
-rwxr-xr-xmeta-netboot/scripts/run-yocto-check-layer-flags-enabled.sh46
-rwxr-xr-xmeta-netboot/scripts/run-yocto-check-layer.sh44
-rw-r--r--meta-pipewire/conf/layer.conf5
-rw-r--r--meta-pipewire/dynamic-layers/meta-app-framework/recipes-apis/agl-service-audiomixer/agl-service-audiomixer_git.bb (renamed from meta-pipewire/recipes-multimedia/agl-service-audiomixer/agl-service-audiomixer_git.bb)0
-rw-r--r--meta-pipewire/dynamic-layers/meta-app-framework/recipes-core/packagegroups/packagegroup-pipewire.bbappend4
-rw-r--r--meta-pipewire/dynamic-layers/meta-app-framework/recipes-multimedia/pipewire/pipewire-conf-agl/client.env (renamed from meta-pipewire/recipes-multimedia/pipewire/pipewire-conf-agl/client.env)0
-rw-r--r--meta-pipewire/dynamic-layers/meta-app-framework/recipes-multimedia/pipewire/pipewire-conf-agl/pipewire.conf.in (renamed from meta-pipewire/recipes-multimedia/pipewire/pipewire-conf-agl/pipewire.conf.in)0
-rw-r--r--meta-pipewire/dynamic-layers/meta-app-framework/recipes-multimedia/pipewire/pipewire-conf-agl/server.env (renamed from meta-pipewire/recipes-multimedia/pipewire/pipewire-conf-agl/server.env)0
-rw-r--r--meta-pipewire/dynamic-layers/meta-app-framework/recipes-multimedia/pipewire/pipewire-conf-agl_git.bb (renamed from meta-pipewire/recipes-multimedia/pipewire/pipewire-conf-agl_git.bb)0
-rw-r--r--meta-pipewire/dynamic-layers/meta-app-framework/recipes-multimedia/pipewire/pipewire/pipewire@.service (renamed from meta-pipewire/recipes-multimedia/pipewire/pipewire/pipewire@.service)0
-rw-r--r--meta-pipewire/dynamic-layers/meta-app-framework/recipes-multimedia/pipewire/pipewire/pipewire@.socket (renamed from meta-pipewire/recipes-multimedia/pipewire/pipewire/pipewire@.socket)0
-rw-r--r--meta-pipewire/dynamic-layers/meta-app-framework/recipes-multimedia/pipewire/pipewire/smack-pipewire (renamed from meta-pipewire/recipes-multimedia/pipewire/pipewire/smack-pipewire)0
-rw-r--r--meta-pipewire/dynamic-layers/meta-app-framework/recipes-multimedia/pipewire/pipewire_git.bbappend (renamed from meta-pipewire/recipes-multimedia/pipewire/pipewire_git.bbappend)6
-rw-r--r--meta-pipewire/dynamic-layers/meta-app-framework/recipes-security/cynagora/cynagora_%.bbappend (renamed from meta-pipewire/recipes-security/cynagora/cynagora_%.bbappend)1
-rw-r--r--meta-pipewire/dynamic-layers/meta-app-framework/recipes-security/security-manager/security-manager_%.bbappend (renamed from meta-pipewire/recipes-security/security-manager/security-manager_%.bbappend)1
-rw-r--r--meta-pipewire/recipes-connectivity/bluez-alsa/bluez-alsa/0001-utils-add-a-gstreamer-helper-application-for-interco.patch517
-rw-r--r--meta-pipewire/recipes-connectivity/bluez-alsa/bluez-alsa/bluealsa-gst-helper@.service18
-rw-r--r--meta-pipewire/recipes-connectivity/bluez-alsa/bluez-alsa_git.bbappend35
-rw-r--r--meta-pipewire/recipes-core/packagegroups/packagegroup-pipewire.bb2
-rw-r--r--meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/30-ak4613-audio-sink.endpoint1
-rw-r--r--meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/30-rcarsound-audio-sink.endpoint1
-rwxr-xr-xmeta-pipewire/scripts/run-yocto-check-layer.sh35
-rw-r--r--meta-security/COPYING.MIT17
-rw-r--r--meta-security/README.md31
-rw-r--r--meta-security/conf/layer.conf14
-rw-r--r--meta-security/recipes-kernel/linux/linux/audit.cfg2
-rw-r--r--meta-security/recipes-security/smacknet/files/smacknet184
-rw-r--r--meta-security/recipes-security/smacknet/files/smacknet.service11
-rw-r--r--meta-security/recipes-security/smacknet/smacknet.bb29
-rw-r--r--scripts/README-mkefi-agl.md18
-rw-r--r--templates/base/00_local.conf.agl.inc3
-rw-r--r--templates/base/99_local.conf.inc2
-rw-r--r--templates/base/bblayers.conf.sample20
-rw-r--r--templates/feature/agl-appfw-smack/50_bblayers.conf.inc9
-rw-r--r--templates/feature/agl-appfw-smack/50_local.conf.inc1
-rw-r--r--templates/feature/agl-hmi-framework/50_local.conf.inc2
-rw-r--r--templates/feature/agl-localdev/80_bblayers.conf.inc3
-rw-r--r--templates/feature/agl-localdev/80_local.conf.inc2
-rw-r--r--templates/feature/agl-localdev/README_feature_agl-localdev.md9
-rw-r--r--templates/feature/agl-netboot/50_bblayers.conf.inc3
-rw-r--r--templates/feature/agl-profile-cluster-qt5/50_bblayers.conf.inc3
-rw-r--r--templates/feature/agl-profile-cluster-qt5/README_feature_agl-profile-cluster-qt5.md15
-rw-r--r--templates/feature/agl-profile-cluster-qt5/included.dep1
-rw-r--r--templates/feature/agl-profile-cluster/50_bblayers.conf.inc3
-rw-r--r--templates/feature/agl-profile-cluster/README_feature_agl-profile-cluster.md15
-rw-r--r--templates/feature/agl-profile-cluster/included.dep1
-rw-r--r--templates/feature/agl-profile-graphical-html5/50_bblayers.conf.inc6
-rw-r--r--templates/feature/agl-profile-graphical-html5/50_local.conf.inc3
-rw-r--r--templates/feature/agl-profile-graphical-html5/README_feature_agl-profile-graphical-html5.md8
-rw-r--r--templates/feature/agl-profile-graphical-html5/included.dep1
-rw-r--r--templates/feature/agl-profile-graphical-qt5/50_bblayers.conf.inc9
-rw-r--r--templates/feature/agl-profile-graphical-qt5/README_feature_agl-profile-graphical-qt5.md15
-rw-r--r--templates/feature/agl-profile-graphical-qt5/included.dep1
-rw-r--r--templates/feature/agl-profile-graphical/50_bblayers.conf.inc3
-rw-r--r--templates/feature/agl-profile-graphical/README_feature_agl-profile-graphical.md9
-rw-r--r--templates/feature/agl-profile-hud/50_bblayers.conf.inc3
-rw-r--r--templates/feature/agl-profile-hud/README_feature_agl-profile-hud.md9
-rw-r--r--templates/feature/agl-profile-telematics/50_bblayers.conf.inc3
-rw-r--r--templates/feature/agl-profile-telematics/README_feature_agl-profile-telematics.md9
-rw-r--r--templates/feature/agl-weston-remoting/included.dep2
605 files changed, 1144 insertions, 19620 deletions
diff --git a/agl-layers-overview.md b/agl-layers-overview.md
index 409eae529..e84f875bf 100755
--- a/agl-layers-overview.md
+++ b/agl-layers-overview.md
@@ -14,7 +14,6 @@ This section provides information about the layers used by the AGL Project:
* **`meta-agl`**: Minimal set of software needed to create an AGL distribution
used to boot a system.
- AGL profiles are built on top of this minimal set of software.
* **`meta-agl-demo`**: Provides a reference or demo platform and applications
for the AGL Distribution.
diff --git a/meta-agl-bsp/meta-aglprofilegraphical/recipes-graphics/wayland/libva_%.bbappend b/meta-agl-bsp/meta-aglprofilegraphical/recipes-graphics/wayland/libva_%.bbappend
deleted file mode 100644
index eda8de38a..000000000
--- a/meta-agl-bsp/meta-aglprofilegraphical/recipes-graphics/wayland/libva_%.bbappend
+++ /dev/null
@@ -1,4 +0,0 @@
-# This patch correct a bug in libva1_1.7.0.bb 1.8 inmeta-intel (no clue when it will be fixed)
-# libva.bb calls for an x11 runtime dependency even if wayland is selected
-#
-RDEPENDS_${PN}-egl_remove = "${@bb.utils.contains("DISTRO_FEATURES", "x11", "", "${PN}-x11", d)}"
diff --git a/meta-agl-bsp/meta-core/recipes-core/ovmf/ovmf_git.bbappend b/meta-agl-bsp/meta-core/recipes-core/ovmf/ovmf_git.bbappend
deleted file mode 100644
index 285847295..000000000
--- a/meta-agl-bsp/meta-core/recipes-core/ovmf/ovmf_git.bbappend
+++ /dev/null
@@ -1 +0,0 @@
-PARALLEL_MAKE = ""
diff --git a/meta-agl-bsp/meta-core/recipes-graphics/mesa/mesa_%.bbappend b/meta-agl-bsp/meta-core/recipes-graphics/mesa/mesa_%.bbappend
new file mode 100644
index 000000000..3d5903d85
--- /dev/null
+++ b/meta-agl-bsp/meta-core/recipes-graphics/mesa/mesa_%.bbappend
@@ -0,0 +1 @@
+require ${@bb.utils.contains('AGL_FEATURES', 'aglcore', '${BPN}_agl.inc', '', d)}
diff --git a/meta-agl-bsp/meta-aglprofilegraphical/recipes-graphics/mesa/mesa_%.bbappend b/meta-agl-bsp/meta-core/recipes-graphics/mesa/mesa_agl.inc
index 8ac343aa3..8ac343aa3 100644
--- a/meta-agl-bsp/meta-aglprofilegraphical/recipes-graphics/mesa/mesa_%.bbappend
+++ b/meta-agl-bsp/meta-core/recipes-graphics/mesa/mesa_agl.inc
diff --git a/meta-agl-bsp/meta-core/recipes-graphics/wayland/weston_%.bbappend b/meta-agl-bsp/meta-core/recipes-graphics/wayland/weston_%.bbappend
new file mode 100644
index 000000000..3d5903d85
--- /dev/null
+++ b/meta-agl-bsp/meta-core/recipes-graphics/wayland/weston_%.bbappend
@@ -0,0 +1 @@
+require ${@bb.utils.contains('AGL_FEATURES', 'aglcore', '${BPN}_agl.inc', '', d)}
diff --git a/meta-agl-bsp/meta-aglprofilegraphical/recipes-graphics/wayland/weston_%.bbappend b/meta-agl-bsp/meta-core/recipes-graphics/wayland/weston_agl.inc
index 9aaea5f69..9aaea5f69 100644
--- a/meta-agl-bsp/meta-aglprofilegraphical/recipes-graphics/wayland/weston_%.bbappend
+++ b/meta-agl-bsp/meta-core/recipes-graphics/wayland/weston_agl.inc
diff --git a/meta-agl-bsp/meta-core/recipes-kernel/linux/linux-yocto_%.bbappend b/meta-agl-bsp/meta-core/recipes-kernel/linux/linux-yocto_%.bbappend
index e97b8f9d1..3d5903d85 100644
--- a/meta-agl-bsp/meta-core/recipes-kernel/linux/linux-yocto_%.bbappend
+++ b/meta-agl-bsp/meta-core/recipes-kernel/linux/linux-yocto_%.bbappend
@@ -1,17 +1 @@
-FILESEXTRAPATHS_prepend := "${THISDIR}/linux-yocto:"
-
-# Extra configuration options for the QEMU kernel
-SRC_URI += "file://hciattach.cfg \
- file://virtio.cfg \
- "
-
-# Enable some things on qemuarm64 so MOST drivers will build and load.
-SRC_URI_append_qemuarm64 = " file://most_deps.cfg"
-
-# Configuration for using the virt machine (and not versatilepb)
-SRC_URI_append_qemuarm = " file://qemuarm.cfg"
-
-# Build a generic v7 kernel instead of the arm926j one that upstream
-# qemuarm defaults to.
-KBUILD_DEFCONFIG_qemuarm = "multi_v7_defconfig"
-KCONFIG_MODE = "--alldefconfig"
+require ${@bb.utils.contains('AGL_FEATURES', 'aglcore', '${BPN}_agl.inc', '', d)}
diff --git a/meta-agl-bsp/meta-core/recipes-kernel/linux/linux-yocto_agl.inc b/meta-agl-bsp/meta-core/recipes-kernel/linux/linux-yocto_agl.inc
new file mode 100644
index 000000000..30e656b17
--- /dev/null
+++ b/meta-agl-bsp/meta-core/recipes-kernel/linux/linux-yocto_agl.inc
@@ -0,0 +1,21 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/linux-yocto:"
+
+
+require recipes-kernel/linux/linux-agl.inc
+
+# Extra configuration options for the QEMU kernel
+SRC_URI += "file://hciattach.cfg \
+ file://virtio.cfg \
+ "
+
+# Enable some things on qemuarm64 so MOST drivers will build and load.
+SRC_URI_append_qemuarm64 = " file://most_deps.cfg"
+
+# Configuration for using the virt machine (and not versatilepb)
+SRC_URI_append_qemuarm = " file://qemuarm.cfg"
+
+# Build a generic v7 kernel instead of the arm926j one that upstream
+# qemuarm defaults to.
+KBUILD_DEFCONFIG_qemuarm = "multi_v7_defconfig"
+KCONFIG_MODE = "--alldefconfig"
+
diff --git a/meta-agl-bsp/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_%.bbappend b/meta-agl-bsp/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_%.bbappend
index f78e0b5eb..238dd1643 100644
--- a/meta-agl-bsp/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_%.bbappend
+++ b/meta-agl-bsp/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_%.bbappend
@@ -20,7 +20,7 @@ CMDLINE_append = ' ${@bb.utils.contains('AGL_XEN_WANTED','1','modprobe.blacklist
CMDLINE_append = " usbhid.mousepoll=0"
# Add options to allow CMA to operate
-CMDLINE_append = ' ${@oe.utils.conditional("ENABLE_CMA", "1", "coherent_pool=6M smsc95xx.turbo_mode=N", "", d)}'
+CMDLINE_append = '${@oe.utils.conditional("ENABLE_CMA", "1", " coherent_pool=6M smsc95xx.turbo_mode=N", "", d)}'
KERNEL_MODULE_AUTOLOAD += "snd-bcm2835"
KERNEL_MODULE_AUTOLOAD += "hid-multitouch"
diff --git a/meta-agl-bsp/recipes-bsp/u-boot/u-boot-ota/0001-Set-up-environment-for-OSTree-integration.patch b/meta-agl-bsp/recipes-bsp/u-boot/u-boot-ota/0001-Set-up-environment-for-OSTree-integration.patch
deleted file mode 100644
index 5172fdd3a..000000000
--- a/meta-agl-bsp/recipes-bsp/u-boot/u-boot-ota/0001-Set-up-environment-for-OSTree-integration.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From ebb26338d0c2f436a86fd4d7cb8d723a90d6a369 Mon Sep 17 00:00:00 2001
-From: Anton Gerasimov <anton@advancedtelematic.com>
-Date: Thu, 15 Sep 2016 17:52:41 +0200
-Subject: [PATCH 1/2] Set up environment for OSTree integration
-
----
- include/configs/qemu-x86.h | 20 ++++++++++++++++++++
- 1 file changed, 20 insertions(+)
-
-diff --git a/include/configs/qemu-x86.h b/include/configs/qemu-x86.h
-index 78c296f..79df455 100644
---- a/include/configs/qemu-x86.h
-+++ b/include/configs/qemu-x86.h
-@@ -74,4 +74,24 @@
- #undef CONFIG_ENV_IS_IN_SPI_FLASH
- #define CONFIG_ENV_IS_NOWHERE
-
-+#undef CONFIG_BOOTARGS
-+#define CONFIG_BOOTARGS "root=/dev/hda2 console=ttyS0"
-+
-+#undef CONFIG_BOOTDELAY
-+#define CONFIG_BOOTDELAY 3
-+
-+#undef CONFIG_BOOTCOMMAND
-+#define CONFIG_BOOTCOMMAND "run loadenv;" \
-+ "setenv bootargs $bootargs\" console=ttyS0 root=/dev/ram0 rw rootfstype=ext4 rootwait rootdelay=2 ostree_root=/dev/hda ramdisk_size=16384 \";" \
-+ "ext2load ide 0 $loadaddr \"/boot\"$kernel_image;" \
-+ "ext2load ide 0 $ramdiskaddr \"/boot\"$ramdisk_image;" \
-+ "zboot $loadaddr - $ramdiskaddr $filesize"
-+
-+#undef CONFIG_EXTRA_ENV_SETTINGS
-+#define CONFIG_EXTRA_ENV_SETTINGS "kernel_image=/bzImage\0" \
-+ "ramdisk_image=/initrd\0" \
-+ "ramdiskaddr=0x4000000\0" \
-+ "bootdelay=3\0" \
-+ "loadenv=if ext2load ide 0 $loadaddr /boot/loader/uEnv.txt; then env import -t $loadaddr $filesize; fi;"
-+
- #endif /* __CONFIG_H */
---
-2.9.3
-
diff --git a/meta-agl-bsp/recipes-bsp/u-boot/u-boot-ota/0001-fixup-build-with-gcc6.patch b/meta-agl-bsp/recipes-bsp/u-boot/u-boot-ota/0001-fixup-build-with-gcc6.patch
deleted file mode 100644
index df1f786c6..000000000
--- a/meta-agl-bsp/recipes-bsp/u-boot/u-boot-ota/0001-fixup-build-with-gcc6.patch
+++ /dev/null
@@ -1,86 +0,0 @@
-From ba619c7ec7820e80d1b5b520440fdb81c31c0baf Mon Sep 17 00:00:00 2001
-From: Ronan Le Martret <ronan.lemartret@iot.bzh>
-Date: Fri, 14 Oct 2016 09:03:11 +0200
-Subject: [PATCH] fix gcc6 build
-
-Signed-off-by: ronan <ronan@linux-pgnz.suse>
----
- include/linux/compiler-gcc6.h | 66 +++++++++++++++++++++++++++++++++++++++++++
- 1 file changed, 66 insertions(+)
- create mode 100644 include/linux/compiler-gcc6.h
-
-diff --git a/include/linux/compiler-gcc6.h b/include/linux/compiler-gcc6.h
-new file mode 100644
-index 0000000..a3d00d8
---- /dev/null
-+++ b/include/linux/compiler-gcc6.h
-@@ -0,0 +1,66 @@
-+#ifndef __LINUX_COMPILER_H
-+#error "Please don't include <linux/compiler-gcc6.h> directly, include <linux/compiler.h> instead."
-+#endif
-+
-+#define __used __attribute__((__used__))
-+#define __must_check __attribute__((warn_unused_result))
-+#define __compiler_offsetof(a, b) __builtin_offsetof(a, b)
-+
-+/* Mark functions as cold. gcc will assume any path leading to a call
-+ to them will be unlikely. This means a lot of manual unlikely()s
-+ are unnecessary now for any paths leading to the usual suspects
-+ like BUG(), printk(), panic() etc. [but let's keep them for now for
-+ older compilers]
-+
-+ Early snapshots of gcc 4.3 don't support this and we can't detect this
-+ in the preprocessor, but we can live with this because they're unreleased.
-+ Maketime probing would be overkill here.
-+
-+ gcc also has a __attribute__((__hot__)) to move hot functions into
-+ a special section, but I don't see any sense in this right now in
-+ the kernel context */
-+#define __cold __attribute__((__cold__))
-+
-+#define __UNIQUE_ID(prefix) __PASTE(__PASTE(__UNIQUE_ID_, prefix), __COUNTER__)
-+
-+#ifndef __CHECKER__
-+# define __compiletime_warning(message) __attribute__((warning(message)))
-+# define __compiletime_error(message) __attribute__((error(message)))
-+#endif /* __CHECKER__ */
-+
-+/*
-+ * Mark a position in code as unreachable. This can be used to
-+ * suppress control flow warnings after asm blocks that transfer
-+ * control elsewhere.
-+ *
-+ * Early snapshots of gcc 4.5 don't support this and we can't detect
-+ * this in the preprocessor, but we can live with this because they're
-+ * unreleased. Really, we need to have autoconf for the kernel.
-+ */
-+#define unreachable() __builtin_unreachable()
-+
-+/* Mark a function definition as prohibited from being cloned. */
-+#define __noclone __attribute__((__noclone__))
-+
-+/*
-+ * Tell the optimizer that something else uses this function or variable.
-+ */
-+#define __visible __attribute__((externally_visible))
-+
-+/*
-+ * GCC 'asm goto' miscompiles certain code sequences:
-+ *
-+ * http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58670
-+ *
-+ * Work it around via a compiler barrier quirk suggested by Jakub Jelinek.
-+ * Fixed in GCC 4.8.2 and later versions.
-+ *
-+ * (asm goto is automatically volatile - the naming reflects this.)
-+ */
-+#define asm_volatile_goto(x...) do { asm goto(x); asm (""); } while (0)
-+
-+#ifdef CONFIG_ARCH_USE_BUILTIN_BSWAP
-+#define __HAVE_BUILTIN_BSWAP32__
-+#define __HAVE_BUILTIN_BSWAP64__
-+#define __HAVE_BUILTIN_BSWAP16__
-+#endif /* CONFIG_ARCH_USE_BUILTIN_BSWAP */
---
-2.6.6
-
diff --git a/meta-agl-bsp/recipes-bsp/u-boot/u-boot-ota/0002-Replace-wraps-with-built-in-code-to-remove-dependenc.patch b/meta-agl-bsp/recipes-bsp/u-boot/u-boot-ota/0002-Replace-wraps-with-built-in-code-to-remove-dependenc.patch
deleted file mode 100644
index 7540b7467..000000000
--- a/meta-agl-bsp/recipes-bsp/u-boot/u-boot-ota/0002-Replace-wraps-with-built-in-code-to-remove-dependenc.patch
+++ /dev/null
@@ -1,138 +0,0 @@
-From ab0d7e270d89f6eb99582197d2d58bf60c9c3d26 Mon Sep 17 00:00:00 2001
-From: Anton Gerasimov <anton@advancedtelematic.com>
-Date: Thu, 15 Sep 2016 16:49:32 +0200
-Subject: [PATCH 2/2] Replace wraps with built-in code to remove dependency on
- multilib
-
----
- arch/x86/config.mk | 2 --
- arch/x86/lib/gcc.c | 104 ++++++++++++++++++++++++++++++++++++++++++++---------
- 2 files changed, 87 insertions(+), 19 deletions(-)
-
-diff --git a/arch/x86/config.mk b/arch/x86/config.mk
-index 999143e..139576e 100644
---- a/arch/x86/config.mk
-+++ b/arch/x86/config.mk
-@@ -22,5 +22,3 @@ PLATFORM_RELFLAGS += -ffunction-sections -fvisibility=hidden
- PLATFORM_LDFLAGS += --emit-relocs -Bsymbolic -Bsymbolic-functions -m elf_i386
-
- LDFLAGS_FINAL += --gc-sections -pie
--LDFLAGS_FINAL += --wrap=__divdi3 --wrap=__udivdi3
--LDFLAGS_FINAL += --wrap=__moddi3 --wrap=__umoddi3
-diff --git a/arch/x86/lib/gcc.c b/arch/x86/lib/gcc.c
-index 497ad75..c321b11 100644
---- a/arch/x86/lib/gcc.c
-+++ b/arch/x86/lib/gcc.c
-@@ -19,22 +19,92 @@
-
- #ifdef __GNUC__
-
--/*
-- * GCC's libgcc handling is quite broken. While the libgcc functions
-- * are always regparm(0) the code that calls them uses whatever the
-- * compiler call specifies. Therefore we need a wrapper around those
-- * functions. See gcc bug PR41055 for more information.
-- */
--#define WRAP_LIBGCC_CALL(type, name) \
-- type __normal_##name(type a, type b) __attribute__((regparm(0))); \
-- type __wrap_##name(type a, type b); \
-- type __attribute__((no_instrument_function)) \
-- __wrap_##name(type a, type b) \
-- { return __normal_##name(a, b); }
--
--WRAP_LIBGCC_CALL(long long, __divdi3)
--WRAP_LIBGCC_CALL(unsigned long long, __udivdi3)
--WRAP_LIBGCC_CALL(long long, __moddi3)
--WRAP_LIBGCC_CALL(unsigned long long, __umoddi3)
-+#include <stdint.h>
-+#include <stddef.h>
-+
-+uint64_t __udivmoddi4 ( uint64_t num,
-+ uint64_t den,
-+ uint64_t *rem_p )
-+{
-+ uint64_t quot = 0, qbit = 1;
-+
-+ if ( den == 0 ) {
-+ return 1/((unsigned)den); /* Intentional divide by zero, without
-+ triggering a compiler warning which
-+ would abort the build */
-+ }
-+
-+ /* Left-justify denominator and count shift */
-+ while ( (int64_t)den >= 0 ) {
-+ den <<= 1;
-+ qbit <<= 1;
-+ }
-+
-+ while ( qbit ) {
-+ if ( den <= num ) {
-+ num -= den;
-+ quot += qbit;
-+ }
-+ den >>= 1;
-+ qbit >>= 1;
-+ }
-+
-+ if ( rem_p )
-+ *rem_p = num;
-+
-+ return quot;
-+}
-+uint64_t __udivdi3( uint64_t num, uint64_t den )
-+{
-+ return __udivmoddi4(num, den, NULL);
-+}
-+
-+uint64_t __umoddi3 ( uint64_t num, uint64_t den )
-+{
-+ uint64_t v;
-+
-+ (void) __udivmoddi4(num, den, &v);
-+ return v;
-+}
-+
-+int64_t __divmoddi4 ( int64_t num,
-+ int64_t den,
-+ int64_t* rem_p )
-+{
-+ int minus = 0;
-+ int64_t v;
-+
-+ if ( num < 0 ) {
-+ num = -num;
-+ minus = 1;
-+ }
-+ if ( den < 0 ) {
-+ den = -den;
-+ minus ^= 1;
-+ }
-+
-+ v = __udivmoddi4(num, den, (uint64_t *)rem_p);
-+ if ( minus ) {
-+ v = -v;
-+ if ( rem_p )
-+ *rem_p = -(*rem_p);
-+ }
-+
-+ return v;
-+}
-+
-+
-+int64_t __moddi3 (int64_t num, int64_t den)
-+{
-+ int64_t v;
-+
-+ (void) __divmoddi4(num, den, &v);
-+ return v;
-+}
-+
-+int64_t __divdi3(int64_t num, int64_t den)
-+{
-+ return __divmoddi4(num, den, NULL);
-+}
-
- #endif
---
-2.9.3
-
diff --git a/meta-agl-bsp/recipes-bsp/u-boot/u-boot-ota/0002-fixup-build-with-gcc7.patch b/meta-agl-bsp/recipes-bsp/u-boot/u-boot-ota/0002-fixup-build-with-gcc7.patch
deleted file mode 100644
index fc7933ea0..000000000
--- a/meta-agl-bsp/recipes-bsp/u-boot/u-boot-ota/0002-fixup-build-with-gcc7.patch
+++ /dev/null
@@ -1,101 +0,0 @@
-From eea58226f0b604d3047c495985197113838d3a7a Mon Sep 17 00:00:00 2001
-From: Trevor Woerner <twoerner@gmail.com>
-Date: Tue, 20 Jun 2017 13:25:20 -0400
-Subject: [PATCH] fix build for gcc7
-
-| In file included from .../include/linux/compiler.h:54:0,
-| from .../include/uapi/linux/stddef.h:1,
-| from .../include/linux/stddef.h:4,
-| from .../include/uapi/linux/posix_types.h:4,
-| from .../include/uapi/linux/types.h:13,
-| from .../include/linux/types.h:5,
-| from .../include/linux/mod_devicetable.h:11,
-| from .../scripts/mod/devicetable-offsets.c:2:
-| .../include/linux/compiler-gcc.h:121:1: fatal error: linux/compiler-gcc7.h: No such file or directory
-| #include gcc_header(__GNUC__)
-
-Upstream-Status: Pending
-
-Signed-off-by: Trevor Woerner <twoerner@gmail.com>
-Signed-off-by: Fabio Berton <fabio.berton@gmail.com>
-Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
----
- include/linux/compiler-gcc7.h | 66 +++++++++++++++++++++++++++++++++++++++++++
- 1 file changed, 66 insertions(+)
- create mode 100644 include/linux/compiler-gcc7.h
-
-diff --git a/include/linux/compiler-gcc7.h b/include/linux/compiler-gcc7.h
-new file mode 100644
-index 0000000..cdd1cc2
---- /dev/null
-+++ b/include/linux/compiler-gcc7.h
-@@ -0,0 +1,66 @@
-+#ifndef __LINUX_COMPILER_H
-+#error "Please don't include <linux/compiler-gcc5.h> directly, include <linux/compiler.h> instead."
-+#endif
-+
-+#define __used __attribute__((__used__))
-+#define __must_check __attribute__((warn_unused_result))
-+#define __compiler_offsetof(a, b) __builtin_offsetof(a, b)
-+
-+/* Mark functions as cold. gcc will assume any path leading to a call
-+ to them will be unlikely. This means a lot of manual unlikely()s
-+ are unnecessary now for any paths leading to the usual suspects
-+ like BUG(), printk(), panic() etc. [but let's keep them for now for
-+ older compilers]
-+
-+ Early snapshots of gcc 4.3 don't support this and we can't detect this
-+ in the preprocessor, but we can live with this because they're unreleased.
-+ Maketime probing would be overkill here.
-+
-+ gcc also has a __attribute__((__hot__)) to move hot functions into
-+ a special section, but I don't see any sense in this right now in
-+ the kernel context */
-+#define __cold __attribute__((__cold__))
-+
-+#define __UNIQUE_ID(prefix) __PASTE(__PASTE(__UNIQUE_ID_, prefix), __COUNTER__)
-+
-+#ifndef __CHECKER__
-+# define __compiletime_warning(message) __attribute__((warning(message)))
-+# define __compiletime_error(message) __attribute__((error(message)))
-+#endif /* __CHECKER__ */
-+
-+/*
-+ * Mark a position in code as unreachable. This can be used to
-+ * suppress control flow warnings after asm blocks that transfer
-+ * control elsewhere.
-+ *
-+ * Early snapshots of gcc 4.5 don't support this and we can't detect
-+ * this in the preprocessor, but we can live with this because they're
-+ * unreleased. Really, we need to have autoconf for the kernel.
-+ */
-+#define unreachable() __builtin_unreachable()
-+
-+/* Mark a function definition as prohibited from being cloned. */
-+#define __noclone __attribute__((__noclone__))
-+
-+/*
-+ * Tell the optimizer that something else uses this function or variable.
-+ */
-+#define __visible __attribute__((externally_visible))
-+
-+/*
-+ * GCC 'asm goto' miscompiles certain code sequences:
-+ *
-+ * http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58670
-+ *
-+ * Work it around via a compiler barrier quirk suggested by Jakub Jelinek.
-+ * Fixed in GCC 4.8.2 and later versions.
-+ *
-+ * (asm goto is automatically volatile - the naming reflects this.)
-+ */
-+#define asm_volatile_goto(x...) do { asm goto(x); asm (""); } while (0)
-+
-+#ifdef CONFIG_ARCH_USE_BUILTIN_BSWAP
-+#define __HAVE_BUILTIN_BSWAP32__
-+#define __HAVE_BUILTIN_BSWAP64__
-+#define __HAVE_BUILTIN_BSWAP16__
-+#endif /* CONFIG_ARCH_USE_BUILTIN_BSWAP */
---
-2.7.4
-
diff --git a/meta-agl-bsp/recipes-bsp/u-boot/u-boot-ota_2015.07.bb b/meta-agl-bsp/recipes-bsp/u-boot/u-boot-ota_2015.07.bb
deleted file mode 100644
index 7ef3cacd4..000000000
--- a/meta-agl-bsp/recipes-bsp/u-boot/u-boot-ota_2015.07.bb
+++ /dev/null
@@ -1,29 +0,0 @@
-include recipes-bsp/u-boot/u-boot.inc
-DEPENDS += "dtc-native"
-
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://Licenses/README;md5=0507cd7da8e7ad6d6701926ec9b84c95"
-
-# This revision corresponds to the tag "v2015.07"
-# We use the revision in order to avoid having to fetch it from the
-# repo during parse
-SRCREV = "baba2f57e8f4ed3fa67fe213d22da0de5e00f204"
-
-SRC_URI = "\
- git://git.denx.de/u-boot.git;branch=master \
- file://0001-Set-up-environment-for-OSTree-integration.patch \
- file://0002-Replace-wraps-with-built-in-code-to-remove-dependenc.patch \
- file://0001-fixup-build-with-gcc6.patch \
- file://0002-fixup-build-with-gcc7.patch \
-"
-S = "${WORKDIR}/git"
-
-PV = "v2015.07+git${SRCPV}"
-
-EXTRA_OEMAKE_append = " KCFLAGS=-fgnu89-inline "
-EXTRA_OEMAKE_append_qemux86 = " BUILD_ROM=y"
-EXTRA_OEMAKE_append_qemux86-64 = " BUILD_ROM=y"
-
-UBOOT_SUFFIX = "bin"
-UBOOT_SUFFIX_qemux86 = "rom"
-UBOOT_SUFFIX_qemux86-64 = "rom"
diff --git a/meta-agl-bsp/recipes-graphics/opencv/opencv/0004-Change-Max-Device-Count-To-16.patch b/meta-agl-bsp/recipes-graphics/opencv/opencv/0004-Change-Max-Device-Count-To-16.patch
deleted file mode 100644
index 2ad367c8d..000000000
--- a/meta-agl-bsp/recipes-graphics/opencv/opencv/0004-Change-Max-Device-Count-To-16.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/modules/videoio/src/cap_v4l.cpp b/modules/videoio/src/cap_v4l.cpp
-index c36a619a56..0040e4574e 100644
---- a/modules/videoio/src/cap_v4l.cpp
-+++ b/modules/videoio/src/cap_v4l.cpp
-@@ -256,7 +256,7 @@ make & enjoy!
- #define DEFAULT_V4L_HEIGHT 480
- #define DEFAULT_V4L_FPS 30
-
--#define MAX_CAMERAS 8
-+#define MAX_CAMERAS 16
-
- // default and maximum number of V4L buffers, not including last, 'special' buffer
- #define MAX_V4L_BUFFERS 10
diff --git a/meta-agl-bsp/recipes-graphics/opencv/opencv_4.%.bbappend b/meta-agl-bsp/recipes-graphics/opencv/opencv_4.%.bbappend
deleted file mode 100644
index 8a68b0641..000000000
--- a/meta-agl-bsp/recipes-graphics/opencv/opencv_4.%.bbappend
+++ /dev/null
@@ -1,5 +0,0 @@
-FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
-
-SRC_URI += " \
- file://0004-Change-Max-Device-Count-To-16.patch \
- "
diff --git a/meta-agl-bsp/recipes-graphics/wayland/weston-ini-conf.bbappend b/meta-agl-bsp/recipes-graphics/wayland/weston-ini-conf.bbappend
deleted file mode 100644
index 671fa171f..000000000
--- a/meta-agl-bsp/recipes-graphics/wayland/weston-ini-conf.bbappend
+++ /dev/null
@@ -1,5 +0,0 @@
-FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
-
-PACKAGE_ARCH = "${MACHINE_ARCH}"
-
-SRC_URI += "${@bb.utils.contains("DISTRO_FEATURES", "weston-remoting", "file://remote-output.cfg", "",d)}"
diff --git a/meta-agl-bsp/recipes-kernel/linux/linux-yocto_%.bbappend b/meta-agl-bsp/recipes-kernel/linux/linux-yocto_%.bbappend
deleted file mode 100644
index 386112024..000000000
--- a/meta-agl-bsp/recipes-kernel/linux/linux-yocto_%.bbappend
+++ /dev/null
@@ -1 +0,0 @@
-require linux-agl.inc
diff --git a/meta-agl-profile-core/recipes-connectivity/connman/.appends.core b/meta-agl-core-test/conf/include/agl-test.inc
index e69de29bb..e69de29bb 100644
--- a/meta-agl-profile-core/recipes-connectivity/connman/.appends.core
+++ b/meta-agl-core-test/conf/include/agl-test.inc
diff --git a/meta-agl-core-test/conf/layer.conf b/meta-agl-core-test/conf/layer.conf
new file mode 100644
index 000000000..2ce0c18f1
--- /dev/null
+++ b/meta-agl-core-test/conf/layer.conf
@@ -0,0 +1,14 @@
+# We have a conf and classes directory, add to BBPATH
+BBPATH =. "${LAYERDIR}:"
+
+# We have recipes-* directories, add to BBFILES
+BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
+ ${LAYERDIR}/recipes-*/*/*.bbappend"
+
+BBFILE_COLLECTIONS += "aglcoretest"
+BBFILE_PATTERN_aglcoretest = "^${LAYERDIR}/"
+BBFILE_PRIORITY_aglcoretest = "60"
+
+LAYERSERIES_COMPAT_aglcoretest = "dunfell"
+LAYERDEPENDS_aglcoretest = "core aglcore"
+LAYERDEPENDS_aglcoretest += "openembedded-layer"
diff --git a/meta-agl-profile-core/recipes-platform/images/agl-image-minimal-qa.bb b/meta-agl-core-test/images/agl-image-minimal-qa.bb
index b162f2904..b162f2904 100644
--- a/meta-agl-profile-core/recipes-platform/images/agl-image-minimal-qa.bb
+++ b/meta-agl-core-test/images/agl-image-minimal-qa.bb
diff --git a/meta-agl-profile-core/recipes-test/aiostress/aiostress_0.22.bb b/meta-agl-core-test/recipes-test/aiostress/aiostress_0.22.bb
index 7803d74ed..7803d74ed 100644
--- a/meta-agl-profile-core/recipes-test/aiostress/aiostress_0.22.bb
+++ b/meta-agl-core-test/recipes-test/aiostress/aiostress_0.22.bb
diff --git a/meta-agl-profile-core/recipes-test/dung/dung_3.4.25-m2.bb b/meta-agl-core-test/recipes-test/dung/dung_3.4.25-m2.bb
index 28bf858a0..28bf858a0 100644
--- a/meta-agl-profile-core/recipes-test/dung/dung_3.4.25-m2.bb
+++ b/meta-agl-core-test/recipes-test/dung/dung_3.4.25-m2.bb
diff --git a/meta-agl-profile-core/recipes-test/ebizzy/ebizzy_0.3.bb b/meta-agl-core-test/recipes-test/ebizzy/ebizzy_0.3.bb
index 08b0425c0..08b0425c0 100644
--- a/meta-agl-profile-core/recipes-test/ebizzy/ebizzy_0.3.bb
+++ b/meta-agl-core-test/recipes-test/ebizzy/ebizzy_0.3.bb
diff --git a/meta-agl-profile-core/recipes-test/ffsb/ffsb_6.0-rc2.bb b/meta-agl-core-test/recipes-test/ffsb/ffsb_6.0-rc2.bb
index 66db133e3..66db133e3 100644
--- a/meta-agl-profile-core/recipes-test/ffsb/ffsb_6.0-rc2.bb
+++ b/meta-agl-core-test/recipes-test/ffsb/ffsb_6.0-rc2.bb
diff --git a/meta-agl-profile-core/recipes-test/fontconfig/fontconfig_%.bbappend b/meta-agl-core-test/recipes-test/fontconfig/fontconfig_%.bbappend
index e8ce1ab78..e8ce1ab78 100644
--- a/meta-agl-profile-core/recipes-test/fontconfig/fontconfig_%.bbappend
+++ b/meta-agl-core-test/recipes-test/fontconfig/fontconfig_%.bbappend
diff --git a/meta-agl-profile-core/recipes-test/freetype/files/0001-Makefile-dont-build-gfx-demos.patch b/meta-agl-core-test/recipes-test/freetype/files/0001-Makefile-dont-build-gfx-demos.patch
index 4d0d09aea..4d0d09aea 100644
--- a/meta-agl-profile-core/recipes-test/freetype/files/0001-Makefile-dont-build-gfx-demos.patch
+++ b/meta-agl-core-test/recipes-test/freetype/files/0001-Makefile-dont-build-gfx-demos.patch
diff --git a/meta-agl-profile-core/recipes-test/freetype/files/0001-ft2demos-Makefile-Do-not-hardcode-libtool-path.patch b/meta-agl-core-test/recipes-test/freetype/files/0001-ft2demos-Makefile-Do-not-hardcode-libtool-path.patch
index 7803ad7e0..7803ad7e0 100644
--- a/meta-agl-profile-core/recipes-test/freetype/files/0001-ft2demos-Makefile-Do-not-hardcode-libtool-path.patch
+++ b/meta-agl-core-test/recipes-test/freetype/files/0001-ft2demos-Makefile-Do-not-hardcode-libtool-path.patch
diff --git a/meta-agl-profile-core/recipes-test/freetype/freetype_2.%.bbappend b/meta-agl-core-test/recipes-test/freetype/freetype_2.%.bbappend
index 6aa1eabc2..6aa1eabc2 100644
--- a/meta-agl-profile-core/recipes-test/freetype/freetype_2.%.bbappend
+++ b/meta-agl-core-test/recipes-test/freetype/freetype_2.%.bbappend
diff --git a/meta-agl-profile-core/recipes-test/fsfuzzer/files/0001-fix_missing_header_sys_stat.patch b/meta-agl-core-test/recipes-test/fsfuzzer/files/0001-fix_missing_header_sys_stat.patch
index e834becf3..e834becf3 100644
--- a/meta-agl-profile-core/recipes-test/fsfuzzer/files/0001-fix_missing_header_sys_stat.patch
+++ b/meta-agl-core-test/recipes-test/fsfuzzer/files/0001-fix_missing_header_sys_stat.patch
diff --git a/meta-agl-profile-core/recipes-test/fsfuzzer/fsfuzzer_0.7.bb b/meta-agl-core-test/recipes-test/fsfuzzer/fsfuzzer_0.7.bb
index d2ddb59b1..d2ddb59b1 100644
--- a/meta-agl-profile-core/recipes-test/fsfuzzer/fsfuzzer_0.7.bb
+++ b/meta-agl-core-test/recipes-test/fsfuzzer/fsfuzzer_0.7.bb
diff --git a/meta-agl-profile-core/recipes-test/glmark2/glmark2_%.bbappend b/meta-agl-core-test/recipes-test/glmark2/glmark2_%.bbappendNOT
index 403aedd4c..403aedd4c 100644
--- a/meta-agl-profile-core/recipes-test/glmark2/glmark2_%.bbappend
+++ b/meta-agl-core-test/recipes-test/glmark2/glmark2_%.bbappendNOT
diff --git a/meta-agl-profile-core/recipes-test/himeno/himeno_2.0.bb b/meta-agl-core-test/recipes-test/himeno/himeno_2.0.bb
index f890e23a4..f890e23a4 100644
--- a/meta-agl-profile-core/recipes-test/himeno/himeno_2.0.bb
+++ b/meta-agl-core-test/recipes-test/himeno/himeno_2.0.bb
diff --git a/meta-agl-profile-core/recipes-test/interbench/files/interbench.c.patch b/meta-agl-core-test/recipes-test/interbench/files/interbench.c.patch
index c882739ba..c882739ba 100644
--- a/meta-agl-profile-core/recipes-test/interbench/files/interbench.c.patch
+++ b/meta-agl-core-test/recipes-test/interbench/files/interbench.c.patch
diff --git a/meta-agl-profile-core/recipes-test/interbench/interbench_0.31.bb b/meta-agl-core-test/recipes-test/interbench/interbench_0.31.bb
index 3e6490374..3e6490374 100644
--- a/meta-agl-profile-core/recipes-test/interbench/interbench_0.31.bb
+++ b/meta-agl-core-test/recipes-test/interbench/interbench_0.31.bb
diff --git a/meta-agl-profile-core/recipes-test/ipv6connect/ipv6connect.bb b/meta-agl-core-test/recipes-test/ipv6connect/ipv6connect.bb
index a8b93716a..a8b93716a 100644
--- a/meta-agl-profile-core/recipes-test/ipv6connect/ipv6connect.bb
+++ b/meta-agl-core-test/recipes-test/ipv6connect/ipv6connect.bb
diff --git a/meta-agl-profile-core/recipes-test/linpack/linpack.bb b/meta-agl-core-test/recipes-test/linpack/linpack.bb
index 84bed0ff6..84bed0ff6 100644
--- a/meta-agl-profile-core/recipes-test/linpack/linpack.bb
+++ b/meta-agl-core-test/recipes-test/linpack/linpack.bb
diff --git a/meta-agl-profile-core/recipes-test/linus-stress/linus-stress.bb b/meta-agl-core-test/recipes-test/linus-stress/linus-stress.bb
index 01b3cfce5..01b3cfce5 100644
--- a/meta-agl-profile-core/recipes-test/linus-stress/linus-stress.bb
+++ b/meta-agl-core-test/recipes-test/linus-stress/linus-stress.bb
diff --git a/meta-agl-profile-core/recipes-test/packagegroups/packagegroup-agl-test.bb b/meta-agl-core-test/recipes-test/packagegroups/packagegroup-agl-test.bb
index 48301078e..f3b2c4ff9 100644
--- a/meta-agl-profile-core/recipes-test/packagegroups/packagegroup-agl-test.bb
+++ b/meta-agl-core-test/recipes-test/packagegroups/packagegroup-agl-test.bb
@@ -15,44 +15,53 @@ ALLOW_EMPTY_${PN} = "1"
RDEPENDS_${PN} += "\
bc \
- dbench \
ebizzy \
evtest \
ffsb \
glmark2 \
interbench \
- iozone3 \
- iperf3 \
ipv6connect \
linpack \
linus-stress \
- lmbench \
- nbench-byte \
nmap \
rt-tests \
stress \
"
+
+
+
+
+
# to be added, but needs LICENSE_FLAGS_WHITELIST="non-commercial"
-# netperf
+# netperf # meta-networking
+
+# relocate due to dependencies
+# iperf3 \ # meta-oe
+# lmbench \ # meta-oe
+# dbench \ # meta-oe
+# nbench-byte \ # meta-oe
+# iozone3 \ # meta-oe
+#
# FTBS, SPEC-316
-# himeno
+# himeno # nowhere
# FTBS, SPEC-1384
-# trinity
+# trinity # meta-linaro (1.5)
# packagegroup-agl-test-ltp \
-# ltp \
+# ltp \ # ltp in oe-core
#
# Packages for shell commands which are required by LTP
# readelf, logrotate, vsftpd, crontab, sar, arp, ftp,
# host, rcp, rlogin, rsh, tcpdump, expect, iptables, dnsmasq,
# pgrep
-RDEPENDS_packagegroup-agl-test-ltp += " \
- initscripts-functions bind-utils binutils \
- cronie dnsmasq expect inetutils-ftp inetutils-rsh \
- iptables logrotate net-tools sysstat tcpdump vsftpd \
- "
+RDEPENDS_packagegroup-agl-test-ltp = ""
+#RDEPENDS_packagegroup-agl-test-ltp += " \
+# initscripts-functions bind-utils binutils \
+# cronie dnsmasq expect inetutils-ftp inetutils-rsh \
+# iptables logrotate net-tools sysstat tcpdump vsftpd \
+# "
RDEPENDS_packagegroup-ivi-common-test = " \
packagegroup-agl-test \
diff --git a/meta-agl-profile-core/recipes-test/trinity/trinity_git.bb b/meta-agl-core-test/recipes-test/trinity/trinity_git.bb
index f0f09a855..f0f09a855 100644
--- a/meta-agl-profile-core/recipes-test/trinity/trinity_git.bb
+++ b/meta-agl-core-test/recipes-test/trinity/trinity_git.bb
diff --git a/meta-agl-distro/LICENSE b/meta-agl-core/LICENSE
index e8758f89c..e8758f89c 100644
--- a/meta-agl-distro/LICENSE
+++ b/meta-agl-core/LICENSE
diff --git a/meta-agl-distro/LICENSE.GPL-2.0-only b/meta-agl-core/LICENSE.GPL-2.0-only
index 5db3c0a21..5db3c0a21 100644
--- a/meta-agl-distro/LICENSE.GPL-2.0-only
+++ b/meta-agl-core/LICENSE.GPL-2.0-only
diff --git a/meta-agl-distro/LICENSE.MIT b/meta-agl-core/LICENSE.MIT
index a6919eb7e..a6919eb7e 100644
--- a/meta-agl-distro/LICENSE.MIT
+++ b/meta-agl-core/LICENSE.MIT
diff --git a/meta-agl-core/README b/meta-agl-core/README
new file mode 120000
index 000000000..4a7a1a175
--- /dev/null
+++ b/meta-agl-core/README
@@ -0,0 +1 @@
+README-AGL.md \ No newline at end of file
diff --git a/meta-agl-core/README-AGL.md b/meta-agl-core/README-AGL.md
new file mode 100644
index 000000000..c7fc029e7
--- /dev/null
+++ b/meta-agl-core/README-AGL.md
@@ -0,0 +1,21 @@
+Overview
+========
+
+The
+[AGL Project](https://www.automotivelinux.org/) is an automotive-specific
+development environment that provides a Linux distribution
+[AGL UCB](https://www.automotivelinux.org/software/unified-code-base).
+
+AGL uses layers designed to be compatible with the
+[Yocto Project](https://www.yoctoproject.org) and the
+[OpenEmbedded Project (OE)](https://www.openembedded.org/wiki/Main_Page).
+
+This section provides information about the layers used by the AGL Project:
+
+* **`meta-agl/meta-agl-core`**: Minimal set of software needed to create an AGL distribution
+ used to boot a system.
+ AGL profiles are built on top of this minimal set of software.
+
+ ```
+ $ git clone https://gerrit.automotivelinux.org/gerrit/AGL/meta-agl
+ ```
diff --git a/meta-agl-profile-core/classes/cloc.bbclass b/meta-agl-core/classes/cloc.bbclass
index 9b73704e8..9b73704e8 100644
--- a/meta-agl-profile-core/classes/cloc.bbclass
+++ b/meta-agl-core/classes/cloc.bbclass
diff --git a/meta-agl-core/classes/sanity-meta-agl-core.bbclass b/meta-agl-core/classes/sanity-meta-agl-core.bbclass
new file mode 100644
index 000000000..93df587f4
--- /dev/null
+++ b/meta-agl-core/classes/sanity-meta-agl-core.bbclass
@@ -0,0 +1,10 @@
+addhandler aglcore_bbappend_distrocheck
+aglcore_bbappend_distrocheck[eventmask] = "bb.event.SanityCheck"
+python aglcore_bbappend_distrocheck() {
+ skip_check = e.data.getVar('SKIP_META_AGL_CORE_SANITY_CHECK') == "1"
+ if 'aglcore' not in e.data.getVar('AGL_FEATURES').split() and not skip_check:
+ bb.warn("You have included the meta-agl-core layer, but \
+'aglcore' has not been enabled in your AGL_FEATURES. Some bbappend files \
+may not take effect. See the meta-agl-core README for details on enabling \
+meta-agl-core support.")
+}
diff --git a/meta-agl-core/conf/bblayers.conf.sample b/meta-agl-core/conf/bblayers.conf.sample
new file mode 100644
index 000000000..8b1cbdfc5
--- /dev/null
+++ b/meta-agl-core/conf/bblayers.conf.sample
@@ -0,0 +1,12 @@
+# POKY_BBLAYERS_CONF_VERSION is increased each time build/conf/bblayers.conf
+# changes incompatibly
+POKY_BBLAYERS_CONF_VERSION = "2"
+
+BBPATH = "${TOPDIR}"
+BBFILES ?= ""
+
+BBLAYERS ?= " \
+ ##OEROOT##/meta \
+ ##OEROOT##/meta-poky \
+ ##OEROOT##/meta-yocto-bsp \
+ "
diff --git a/meta-agl-distro/conf/distro/include/aarch64-tune.inc b/meta-agl-core/conf/distro/include/aarch64-tune.inc
index 553bb5a64..553bb5a64 100644
--- a/meta-agl-distro/conf/distro/include/aarch64-tune.inc
+++ b/meta-agl-core/conf/distro/include/aarch64-tune.inc
diff --git a/meta-agl-distro/conf/distro/include/arc-tune.inc b/meta-agl-core/conf/distro/include/arc-tune.inc
index 43dabd5a9..43dabd5a9 100644
--- a/meta-agl-distro/conf/distro/include/arc-tune.inc
+++ b/meta-agl-core/conf/distro/include/arc-tune.inc
diff --git a/meta-agl-distro/conf/distro/include/arm-tune.inc b/meta-agl-core/conf/distro/include/arm-tune.inc
index fa68e05a7..fa68e05a7 100644
--- a/meta-agl-distro/conf/distro/include/arm-tune.inc
+++ b/meta-agl-core/conf/distro/include/arm-tune.inc
diff --git a/meta-agl-distro/conf/distro/include/riscv64-tune.inc b/meta-agl-core/conf/distro/include/riscv64-tune.inc
index f8118dec3..f8118dec3 100644
--- a/meta-agl-distro/conf/distro/include/riscv64-tune.inc
+++ b/meta-agl-core/conf/distro/include/riscv64-tune.inc
diff --git a/meta-agl-distro/conf/distro/include/x86_64-tune.inc b/meta-agl-core/conf/distro/include/x86_64-tune.inc
index 9f2bdc867..9f2bdc867 100644
--- a/meta-agl-distro/conf/distro/include/x86_64-tune.inc
+++ b/meta-agl-core/conf/distro/include/x86_64-tune.inc
diff --git a/meta-agl-distro/conf/distro/poky-agl.conf b/meta-agl-core/conf/distro/poky-agl.conf
index 63a1960af..63a1960af 100644
--- a/meta-agl-distro/conf/distro/poky-agl.conf
+++ b/meta-agl-core/conf/distro/poky-agl.conf
diff --git a/meta-agl-profile-core/conf/include/agl-devel.inc b/meta-agl-core/conf/include/agl-devel.inc
index 6ecd6a075..6ecd6a075 100644
--- a/meta-agl-profile-core/conf/include/agl-devel.inc
+++ b/meta-agl-core/conf/include/agl-devel.inc
diff --git a/meta-agl-profile-core/conf/include/agl-gplv2.inc b/meta-agl-core/conf/include/agl-gplv2.inc
index fc9a4072b..fc9a4072b 100644
--- a/meta-agl-profile-core/conf/include/agl-gplv2.inc
+++ b/meta-agl-core/conf/include/agl-gplv2.inc
diff --git a/meta-agl-profile-core/conf/include/base-agl.inc b/meta-agl-core/conf/include/base-agl.inc
index c5cf1a57f..5ca723a10 100644
--- a/meta-agl-profile-core/conf/include/base-agl.inc
+++ b/meta-agl-core/conf/include/base-agl.inc
@@ -18,3 +18,5 @@ USERADDEXTENSION = "useradd-staticids"
USERADD_ERROR_DYNAMIC = "error"
USERADD_GID_TABLES = "files/group"
USERADD_UID_TABLES = "files/passwd"
+
+AGL_FEATURES += "aglcore"
diff --git a/meta-agl-core/conf/layer.conf b/meta-agl-core/conf/layer.conf
new file mode 100644
index 000000000..2218e3d49
--- /dev/null
+++ b/meta-agl-core/conf/layer.conf
@@ -0,0 +1,17 @@
+# We have a conf and classes directory, add to BBPATH
+BBPATH =. "${LAYERDIR}:"
+
+# We have recipes-* directories, add to BBFILES
+BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
+ ${LAYERDIR}/recipes-*/*/*.bbappend"
+
+BBFILE_COLLECTIONS += "aglcore"
+BBFILE_PATTERN_aglcore = "^${LAYERDIR}/"
+BBFILE_PRIORITY_aglcore = "60"
+
+LAYERSERIES_COMPAT_aglcore = "dunfell"
+LAYERDEPENDS_aglcore = "core"
+
+# Sanity check for meta-virtualization layer.
+# Setting SKIP_META_VIRT_SANITY_CHECK to "1" would skip the bbappend files check.
+#INHERIT += "sanity-meta-agl-core"
diff --git a/meta-agl-core/conf/local.conf.sample b/meta-agl-core/conf/local.conf.sample
new file mode 100644
index 000000000..82c9dddc1
--- /dev/null
+++ b/meta-agl-core/conf/local.conf.sample
@@ -0,0 +1,277 @@
+#
+# This file is your local configuration file and is where all local user settings
+# are placed. The comments in this file give some guide to the options a new user
+# to the system might want to change but pretty much any configuration option can
+# be set in this file. More adventurous users can look at local.conf.extended
+# which contains other examples of configuration which can be placed in this file
+# but new users likely won't need any of them initially.
+#
+# Lines starting with the '#' character are commented out and in some cases the
+# default values are provided as comments to show people example syntax. Enabling
+# the option is a question of removing the # character and making any change to the
+# variable as required.
+
+#
+# Machine Selection
+#
+# You need to select a specific machine to target the build with. There are a selection
+# of emulated machines available which can boot and run in the QEMU emulator:
+#
+#MACHINE ?= "qemuarm"
+#MACHINE ?= "qemuarm64"
+#MACHINE ?= "qemumips"
+#MACHINE ?= "qemumips64"
+#MACHINE ?= "qemuppc"
+#MACHINE ?= "qemux86"
+#MACHINE ?= "qemux86-64"
+#
+# There are also the following hardware board target machines included for
+# demonstration purposes:
+#
+#MACHINE ?= "beaglebone-yocto"
+#MACHINE ?= "genericx86"
+#MACHINE ?= "genericx86-64"
+#MACHINE ?= "edgerouter"
+#
+# This sets the default machine to be qemux86-64 if no other machine is selected:
+MACHINE ??= "qemux86-64"
+
+#
+# Where to place downloads
+#
+# During a first build the system will download many different source code tarballs
+# from various upstream projects. This can take a while, particularly if your network
+# connection is slow. These are all stored in DL_DIR. When wiping and rebuilding you
+# can preserve this directory to speed up this part of subsequent builds. This directory
+# is safe to share between multiple builds on the same machine too.
+#
+# The default is a downloads directory under TOPDIR which is the build directory.
+#
+#DL_DIR ?= "${TOPDIR}/downloads"
+
+#
+# Where to place shared-state files
+#
+# BitBake has the capability to accelerate builds based on previously built output.
+# This is done using "shared state" files which can be thought of as cache objects
+# and this option determines where those files are placed.
+#
+# You can wipe out TMPDIR leaving this directory intact and the build would regenerate
+# from these files if no changes were made to the configuration. If changes were made
+# to the configuration, only shared state files where the state was still valid would
+# be used (done using checksums).
+#
+# The default is a sstate-cache directory under TOPDIR.
+#
+#SSTATE_DIR ?= "${TOPDIR}/sstate-cache"
+
+#
+# Where to place the build output
+#
+# This option specifies where the bulk of the building work should be done and
+# where BitBake should place its temporary files and output. Keep in mind that
+# this includes the extraction and compilation of many applications and the toolchain
+# which can use Gigabytes of hard disk space.
+#
+# The default is a tmp directory under TOPDIR.
+#
+#TMPDIR = "${TOPDIR}/tmp"
+
+#
+# Default policy config
+#
+# The distribution setting controls which policy settings are used as defaults.
+# The default value is fine for general Yocto project use, at least initially.
+# Ultimately when creating custom policy, people will likely end up subclassing
+# these defaults.
+#
+DISTRO ?= "poky"
+# As an example of a subclass there is a "bleeding" edge policy configuration
+# where many versions are set to the absolute latest code from the upstream
+# source control systems. This is just mentioned here as an example, its not
+# useful to most new users.
+# DISTRO ?= "poky-bleeding"
+
+#
+# Package Management configuration
+#
+# This variable lists which packaging formats to enable. Multiple package backends
+# can be enabled at once and the first item listed in the variable will be used
+# to generate the root filesystems.
+# Options are:
+# - 'package_deb' for debian style deb files
+# - 'package_ipk' for ipk files are used by opkg (a debian style embedded package manager)
+# - 'package_rpm' for rpm style packages
+# E.g.: PACKAGE_CLASSES ?= "package_rpm package_deb package_ipk"
+# We default to rpm:
+PACKAGE_CLASSES ?= "package_rpm"
+
+#
+# SDK target architecture
+#
+# This variable specifies the architecture to build SDK items for and means
+# you can build the SDK packages for architectures other than the machine you are
+# running the build on (i.e. building i686 packages on an x86_64 host).
+# Supported values are i686 and x86_64
+#SDKMACHINE ?= "i686"
+
+#
+# Extra image configuration defaults
+#
+# The EXTRA_IMAGE_FEATURES variable allows extra packages to be added to the generated
+# images. Some of these options are added to certain image types automatically. The
+# variable can contain the following options:
+# "dbg-pkgs" - add -dbg packages for all installed packages
+# (adds symbol information for debugging/profiling)
+# "src-pkgs" - add -src packages for all installed packages
+# (adds source code for debugging)
+# "dev-pkgs" - add -dev packages for all installed packages
+# (useful if you want to develop against libs in the image)
+# "ptest-pkgs" - add -ptest packages for all ptest-enabled packages
+# (useful if you want to run the package test suites)
+# "tools-sdk" - add development tools (gcc, make, pkgconfig etc.)
+# "tools-debug" - add debugging tools (gdb, strace)
+# "eclipse-debug" - add Eclipse remote debugging support
+# "tools-profile" - add profiling tools (oprofile, lttng, valgrind)
+# "tools-testapps" - add useful testing tools (ts_print, aplay, arecord etc.)
+# "debug-tweaks" - make an image suitable for development
+# e.g. ssh root access has a blank password
+# There are other application targets that can be used here too, see
+# meta/classes/image.bbclass and meta/classes/core-image.bbclass for more details.
+# We default to enabling the debugging tweaks.
+EXTRA_IMAGE_FEATURES ?= "debug-tweaks"
+
+#
+# Additional image features
+#
+# The following is a list of additional classes to use when building images which
+# enable extra features. Some available options which can be included in this variable
+# are:
+# - 'buildstats' collect build statistics
+# - 'image-mklibs' to reduce shared library files size for an image
+# - 'image-prelink' in order to prelink the filesystem image
+# NOTE: if listing mklibs & prelink both, then make sure mklibs is before prelink
+# NOTE: mklibs also needs to be explicitly enabled for a given image, see local.conf.extended
+USER_CLASSES ?= "buildstats image-mklibs image-prelink"
+
+#
+# Runtime testing of images
+#
+# The build system can test booting virtual machine images under qemu (an emulator)
+# after any root filesystems are created and run tests against those images. It can also
+# run tests against any SDK that are built. To enable this uncomment these lines.
+# See classes/test{image,sdk}.bbclass for further details.
+#IMAGE_CLASSES += "testimage testsdk"
+#TESTIMAGE_AUTO_qemuall = "1"
+
+#
+# Interactive shell configuration
+#
+# Under certain circumstances the system may need input from you and to do this it
+# can launch an interactive shell. It needs to do this since the build is
+# multithreaded and needs to be able to handle the case where more than one parallel
+# process may require the user's attention. The default is iterate over the available
+# terminal types to find one that works.
+#
+# Examples of the occasions this may happen are when resolving patches which cannot
+# be applied, to use the devshell or the kernel menuconfig
+#
+# Supported values are auto, gnome, xfce, rxvt, screen, konsole (KDE 3.x only), none
+# Note: currently, Konsole support only works for KDE 3.x due to the way
+# newer Konsole versions behave
+#OE_TERMINAL = "auto"
+# By default disable interactive patch resolution (tasks will just fail instead):
+PATCHRESOLVE = "noop"
+
+#
+# Disk Space Monitoring during the build
+#
+# Monitor the disk space during the build. If there is less that 1GB of space or less
+# than 100K inodes in any key build location (TMPDIR, DL_DIR, SSTATE_DIR), gracefully
+# shutdown the build. If there is less that 100MB or 1K inodes, perform a hard abort
+# of the build. The reason for this is that running completely out of space can corrupt
+# files and damages the build in ways which may not be easily recoverable.
+# It's necesary to monitor /tmp, if there is no space left the build will fail
+# with very exotic errors.
+BB_DISKMON_DIRS ??= "\
+ STOPTASKS,${TMPDIR},1G,100K \
+ STOPTASKS,${DL_DIR},1G,100K \
+ STOPTASKS,${SSTATE_DIR},1G,100K \
+ STOPTASKS,/tmp,100M,100K \
+ ABORT,${TMPDIR},100M,1K \
+ ABORT,${DL_DIR},100M,1K \
+ ABORT,${SSTATE_DIR},100M,1K \
+ ABORT,/tmp,10M,1K"
+
+#
+# Shared-state files from other locations
+#
+# As mentioned above, shared state files are prebuilt cache data objects which can
+# used to accelerate build time. This variable can be used to configure the system
+# to search other mirror locations for these objects before it builds the data itself.
+#
+# This can be a filesystem directory, or a remote url such as http or ftp. These
+# would contain the sstate-cache results from previous builds (possibly from other
+# machines). This variable works like fetcher MIRRORS/PREMIRRORS and points to the
+# cache locations to check for the shared objects.
+# NOTE: if the mirror uses the same structure as SSTATE_DIR, you need to add PATH
+# at the end as shown in the examples below. This will be substituted with the
+# correct path within the directory structure.
+#SSTATE_MIRRORS ?= "\
+#file://.* http://someserver.tld/share/sstate/PATH;downloadfilename=PATH \n \
+#file://.* file:///some/local/dir/sstate/PATH"
+
+#
+# Yocto Project SState Mirror
+#
+# The Yocto Project has prebuilt artefacts available for its releases, you can enable
+# use of these by uncommenting the following line. This will mean the build uses
+# the network to check for artefacts at the start of builds, which does slow it down
+# equally, it will also speed up the builds by not having to build things if they are
+# present in the cache. It assumes you can download something faster than you can build it
+# which will depend on your network.
+#
+#SSTATE_MIRRORS ?= "file://.* http://sstate.yoctoproject.org/2.5/PATH;downloadfilename=PATH"
+
+#
+# Qemu configuration
+#
+# By default native qemu will build with a builtin VNC server where graphical output can be
+# seen. The line below enables the SDL UI frontend too.
+PACKAGECONFIG_append_pn-qemu-system-native = " sdl"
+# By default libsdl2-native will be built, if you want to use your host's libSDL instead of
+# the minimal libsdl built by libsdl2-native then uncomment the ASSUME_PROVIDED line below.
+#ASSUME_PROVIDED += "libsdl2-native"
+
+# You can also enable the Gtk UI frontend, which takes somewhat longer to build, but adds
+# a handy set of menus for controlling the emulator.
+#PACKAGECONFIG_append_pn-qemu-system-native = " gtk+"
+
+#
+# Hash Equivalence
+#
+# Enable support for automatically running a local hash equivalence server and
+# instruct bitbake to use a hash equivalence aware signature generator. Hash
+# equivalence improves reuse of sstate by detecting when a given sstate
+# artifact can be reused as equivalent, even if the current task hash doesn't
+# match the one that generated the artifact.
+#
+# A shared hash equivalent server can be set with "<HOSTNAME>:<PORT>" format
+#
+#BB_HASHSERVE = "auto"
+#BB_SIGNATURE_HANDLER = "OEEquivHash"
+
+# CONF_VERSION is increased each time build/conf/ changes incompatibly and is used to
+# track the version of this file when it was generated. This can safely be ignored if
+# this doesn't mean anything to you.
+CONF_VERSION = "1"
+
+# meta-agl-core uses these variables
+AGL_FEATURES ?= ""
+AGL_EXTRA_IMAGE_FSTYPES ?= ""
+
+DISTRO_FEATURES_append = " systemd "
+DISTRO_FEATURES_BACKFILL_CONSIDERED_append = " sysvinit"
+VIRTUAL-RUNTIME_init_manager = "systemd"
+
+# soon: INIT_MANAGER = "systemd"
diff --git a/meta-agl-profile-core/files/group b/meta-agl-core/files/group
index c309f6a05..c309f6a05 100644
--- a/meta-agl-profile-core/files/group
+++ b/meta-agl-core/files/group
diff --git a/meta-agl-profile-core/files/passwd b/meta-agl-core/files/passwd
index ac70c0f9b..ac70c0f9b 100644
--- a/meta-agl-profile-core/files/passwd
+++ b/meta-agl-core/files/passwd
diff --git a/meta-agl-core/recipes-connectivity/busybox/busybox_%.bbappend b/meta-agl-core/recipes-connectivity/busybox/busybox_%.bbappend
new file mode 100644
index 000000000..980783236
--- /dev/null
+++ b/meta-agl-core/recipes-connectivity/busybox/busybox_%.bbappend
@@ -0,0 +1 @@
+require ${@bb.utils.contains('AGL_FEATURES', 'aglcore', '${BPN}_aglcore.inc', '', d)}
diff --git a/meta-agl-core/recipes-connectivity/busybox/busybox_aglcore.inc b/meta-agl-core/recipes-connectivity/busybox/busybox_aglcore.inc
new file mode 100644
index 000000000..babf0261f
--- /dev/null
+++ b/meta-agl-core/recipes-connectivity/busybox/busybox_aglcore.inc
@@ -0,0 +1,3 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
+SRC_URI_append = " file://enable-wget-https.cfg"
+
diff --git a/meta-agl-profile-core/recipes-connectivity/busybox/files/enable-wget-https.cfg b/meta-agl-core/recipes-connectivity/busybox/files/enable-wget-https.cfg
index e92006bef..e92006bef 100644
--- a/meta-agl-profile-core/recipes-connectivity/busybox/files/enable-wget-https.cfg
+++ b/meta-agl-core/recipes-connectivity/busybox/files/enable-wget-https.cfg
diff --git a/meta-agl-profile-core/recipes-connectivity/connman-ncurses/connman-ncurses_git.bb b/meta-agl-core/recipes-connectivity/connman-ncurses/connman-ncurses_git.bb
index 61086dfe7..61086dfe7 100644
--- a/meta-agl-profile-core/recipes-connectivity/connman-ncurses/connman-ncurses_git.bb
+++ b/meta-agl-core/recipes-connectivity/connman-ncurses/connman-ncurses_git.bb
diff --git a/meta-agl-core/recipes-connectivity/connman/connman_%.bbappend b/meta-agl-core/recipes-connectivity/connman/connman_%.bbappend
new file mode 100644
index 000000000..8078f3d34
--- /dev/null
+++ b/meta-agl-core/recipes-connectivity/connman/connman_%.bbappend
@@ -0,0 +1 @@
+require ${@bb.utils.contains('AGL_FEATURES', 'aglcore', 'connman_aglcore.inc', '', d)}
diff --git a/meta-agl-profile-core/recipes-connectivity/connman/connman_%.bbappend b/meta-agl-core/recipes-connectivity/connman/connman_aglcore.inc
index 469345880..469345880 100644
--- a/meta-agl-profile-core/recipes-connectivity/connman/connman_%.bbappend
+++ b/meta-agl-core/recipes-connectivity/connman/connman_aglcore.inc
diff --git a/meta-agl-profile-core/recipes-connectivity/connman/files/0001-disable-when-booting-over-nfs.patch b/meta-agl-core/recipes-connectivity/connman/files/0001-disable-when-booting-over-nfs.patch
index f129a6580..f129a6580 100644
--- a/meta-agl-profile-core/recipes-connectivity/connman/files/0001-disable-when-booting-over-nfs.patch
+++ b/meta-agl-core/recipes-connectivity/connman/files/0001-disable-when-booting-over-nfs.patch
diff --git a/meta-agl-profile-core/recipes-connectivity/connman/files/main.conf b/meta-agl-core/recipes-connectivity/connman/files/main.conf
index 4dba25b70..4dba25b70 100644
--- a/meta-agl-profile-core/recipes-connectivity/connman/files/main.conf
+++ b/meta-agl-core/recipes-connectivity/connman/files/main.conf
diff --git a/meta-agl-profile-core/recipes-core/dbus/.appends.core b/meta-agl-core/recipes-core/systemd/.appends.core
index e69de29bb..e69de29bb 100644
--- a/meta-agl-profile-core/recipes-core/dbus/.appends.core
+++ b/meta-agl-core/recipes-core/systemd/.appends.core
diff --git a/meta-agl-core/recipes-core/systemd/systemd-conf_%.bbappend b/meta-agl-core/recipes-core/systemd/systemd-conf_%.bbappend
new file mode 100644
index 000000000..980783236
--- /dev/null
+++ b/meta-agl-core/recipes-core/systemd/systemd-conf_%.bbappend
@@ -0,0 +1 @@
+require ${@bb.utils.contains('AGL_FEATURES', 'aglcore', '${BPN}_aglcore.inc', '', d)}
diff --git a/meta-agl-profile-core/recipes-core/systemd/systemd-conf_%.bbappend b/meta-agl-core/recipes-core/systemd/systemd-conf_aglcore.inc
index 6661eab6c..6661eab6c 100644
--- a/meta-agl-profile-core/recipes-core/systemd/systemd-conf_%.bbappend
+++ b/meta-agl-core/recipes-core/systemd/systemd-conf_aglcore.inc
diff --git a/meta-agl-core/recipes-core/systemd/systemd/0001-fix-udevd-seclabel-parsing.patch b/meta-agl-core/recipes-core/systemd/systemd/0001-fix-udevd-seclabel-parsing.patch
new file mode 100644
index 000000000..29165b58e
--- /dev/null
+++ b/meta-agl-core/recipes-core/systemd/systemd/0001-fix-udevd-seclabel-parsing.patch
@@ -0,0 +1,34 @@
+Fix udevd SECLABEL token parsing
+
+The udevd rules parsing rewrite in v243 broke SECLABEL parsing,
+with the result being that udevd crashes when it parses a line
+containing a SECLABEL token. Fix the handling of the attribute
+of SECLABEL tokens when parsing, and add a check to prevent
+crashes if the attribute is missing.
+
+Upstream-Status: Pending
+
+Signed-off-by: Scott Murray <scott.murray@konsulko.com>
+
+diff --git a/src/udev/udev-rules.c b/src/udev/udev-rules.c
+index efea16e5c5..3e757ccb06 100644
+--- a/src/udev/udev-rules.c
++++ b/src/udev/udev-rules.c
+@@ -918,7 +918,7 @@ static int parse_token(UdevRules *rules, const char *key, char *attr, UdevRuleOp
+ op = OP_ASSIGN;
+ }
+
+- r = rule_line_add_token(rule_line, TK_A_SECLABEL, op, value, NULL);
++ r = rule_line_add_token(rule_line, TK_A_SECLABEL, op, value, attr);
+ } else if (streq(key, "RUN")) {
+ if (is_match || op == OP_REMOVE)
+ return log_token_invalid_op(rules, key);
+@@ -1927,6 +1927,8 @@ static int udev_rule_apply_token_to_event(
+ _cleanup_free_ char *name = NULL, *label = NULL;
+ char label_str[UTIL_LINE_SIZE] = {};
+
++ if (!token->data)
++ break;
+ name = strdup((const char*) token->data);
+ if (!name)
+ return log_oom();
diff --git a/meta-agl-profile-core/recipes-core/systemd/systemd/0002-network-add-CAN-Termination-tristate-option.patch b/meta-agl-core/recipes-core/systemd/systemd/0002-network-add-CAN-Termination-tristate-option.patch
index feaff2736..feaff2736 100644
--- a/meta-agl-profile-core/recipes-core/systemd/systemd/0002-network-add-CAN-Termination-tristate-option.patch
+++ b/meta-agl-core/recipes-core/systemd/systemd/0002-network-add-CAN-Termination-tristate-option.patch
diff --git a/meta-agl-profile-core/recipes-core/systemd/systemd/canbus-can.network b/meta-agl-core/recipes-core/systemd/systemd/canbus-can.network
index ae5514bca..ae5514bca 100644
--- a/meta-agl-profile-core/recipes-core/systemd/systemd/canbus-can.network
+++ b/meta-agl-core/recipes-core/systemd/systemd/canbus-can.network
diff --git a/meta-agl-profile-core/recipes-core/systemd/systemd/e2fsck.conf b/meta-agl-core/recipes-core/systemd/systemd/e2fsck.conf
index b774f9ebf..b774f9ebf 100644
--- a/meta-agl-profile-core/recipes-core/systemd/systemd/e2fsck.conf
+++ b/meta-agl-core/recipes-core/systemd/systemd/e2fsck.conf
diff --git a/meta-agl-profile-core/recipes-core/systemd/systemd/wired.network b/meta-agl-core/recipes-core/systemd/systemd/wired.network
index 3559b0155..3559b0155 100644
--- a/meta-agl-profile-core/recipes-core/systemd/systemd/wired.network
+++ b/meta-agl-core/recipes-core/systemd/systemd/wired.network
diff --git a/meta-agl-core/recipes-core/systemd/systemd_%.bbappend b/meta-agl-core/recipes-core/systemd/systemd_%.bbappend
new file mode 100644
index 000000000..980783236
--- /dev/null
+++ b/meta-agl-core/recipes-core/systemd/systemd_%.bbappend
@@ -0,0 +1 @@
+require ${@bb.utils.contains('AGL_FEATURES', 'aglcore', '${BPN}_aglcore.inc', '', d)}
diff --git a/meta-agl-profile-core/recipes-core/systemd/systemd_%.bbappend b/meta-agl-core/recipes-core/systemd/systemd_aglcore.inc
index 96c4dc35c..feca107a8 100644
--- a/meta-agl-profile-core/recipes-core/systemd/systemd_%.bbappend
+++ b/meta-agl-core/recipes-core/systemd/systemd_aglcore.inc
@@ -1,4 +1,4 @@
-FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
+FILESEXTRAPATHS_prepend := "${THISDIR}/systemd:"
SRC_URI += "\
file://0002-network-add-CAN-Termination-tristate-option.patch \
diff --git a/meta-agl-core/recipes-devtools/cmake/cmake_%.bbappend b/meta-agl-core/recipes-devtools/cmake/cmake_%.bbappend
new file mode 100644
index 000000000..980783236
--- /dev/null
+++ b/meta-agl-core/recipes-devtools/cmake/cmake_%.bbappend
@@ -0,0 +1 @@
+require ${@bb.utils.contains('AGL_FEATURES', 'aglcore', '${BPN}_aglcore.inc', '', d)}
diff --git a/meta-agl-profile-core/recipes-devtools/cmake/cmake_%.bbappend b/meta-agl-core/recipes-devtools/cmake/cmake_aglcore.inc
index 2de1e6836..2de1e6836 100644
--- a/meta-agl-profile-core/recipes-devtools/cmake/cmake_%.bbappend
+++ b/meta-agl-core/recipes-devtools/cmake/cmake_aglcore.inc
diff --git a/meta-agl-profile-core/recipes-devtools/cmake/files/environment.d-cmake-agl.sh b/meta-agl-core/recipes-devtools/cmake/files/environment.d-cmake-agl.sh
index 64b6cf3c6..64b6cf3c6 100644
--- a/meta-agl-profile-core/recipes-devtools/cmake/files/environment.d-cmake-agl.sh
+++ b/meta-agl-core/recipes-devtools/cmake/files/environment.d-cmake-agl.sh
diff --git a/meta-agl-profile-core/recipes-core/psplash/.appends.core b/meta-agl-core/recipes-devtools/gdb/.appends.core
index e69de29bb..e69de29bb 100644
--- a/meta-agl-profile-core/recipes-core/psplash/.appends.core
+++ b/meta-agl-core/recipes-devtools/gdb/.appends.core
diff --git a/meta-agl-core/recipes-devtools/gdb/gdb_%.bbappend b/meta-agl-core/recipes-devtools/gdb/gdb_%.bbappend
new file mode 100644
index 000000000..980783236
--- /dev/null
+++ b/meta-agl-core/recipes-devtools/gdb/gdb_%.bbappend
@@ -0,0 +1 @@
+require ${@bb.utils.contains('AGL_FEATURES', 'aglcore', '${BPN}_aglcore.inc', '', d)}
diff --git a/meta-agl-profile-core/recipes-devtools/gdb/gdb_%.bbappend b/meta-agl-core/recipes-devtools/gdb/gdb_aglcore.inc
index 7cba933af..7cba933af 100644
--- a/meta-agl-profile-core/recipes-devtools/gdb/gdb_%.bbappend
+++ b/meta-agl-core/recipes-devtools/gdb/gdb_aglcore.inc
diff --git a/meta-agl-profile-core/recipes-core/systemd/.appends.core b/meta-agl-core/recipes-extended/gperf/.appends.core
index e69de29bb..e69de29bb 100644
--- a/meta-agl-profile-core/recipes-core/systemd/.appends.core
+++ b/meta-agl-core/recipes-extended/gperf/.appends.core
diff --git a/meta-agl-core/recipes-extended/gperf/gperf_%.bbappend b/meta-agl-core/recipes-extended/gperf/gperf_%.bbappend
new file mode 100644
index 000000000..980783236
--- /dev/null
+++ b/meta-agl-core/recipes-extended/gperf/gperf_%.bbappend
@@ -0,0 +1 @@
+require ${@bb.utils.contains('AGL_FEATURES', 'aglcore', '${BPN}_aglcore.inc', '', d)}
diff --git a/meta-agl-profile-core/recipes-extended/gperf/gperf_%.bbappend b/meta-agl-core/recipes-extended/gperf/gperf_aglcore.inc
index 2a590838b..2a590838b 100644
--- a/meta-agl-profile-core/recipes-extended/gperf/gperf_%.bbappend
+++ b/meta-agl-core/recipes-extended/gperf/gperf_aglcore.inc
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/Readme.weston-ini-conf b/meta-agl-core/recipes-graphics/wayland/Readme.weston-ini-conf
index bbd5a80c4..bbd5a80c4 100644
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/Readme.weston-ini-conf
+++ b/meta-agl-core/recipes-graphics/wayland/Readme.weston-ini-conf
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/agl-compositor_git.bb b/meta-agl-core/recipes-graphics/wayland/agl-compositor_git.bb
index 553f3a6bf..553f3a6bf 100644
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/agl-compositor_git.bb
+++ b/meta-agl-core/recipes-graphics/wayland/agl-compositor_git.bb
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/waltham-transmitter_git.bb b/meta-agl-core/recipes-graphics/wayland/waltham-transmitter_git.bb
index 89d97f513..85f760709 100644
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/waltham-transmitter_git.bb
+++ b/meta-agl-core/recipes-graphics/wayland/waltham-transmitter_git.bb
@@ -4,7 +4,7 @@ HOMEPAGE = "https://github.com/waltham/waltham"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://waltham-transmitter/COPYING;md5=f21c9af4de068fb53b83f0b37d262ec3"
-DEPENDS += "libdrm virtual/kernel wayland wayland-native waltham weston gstreamer1.0 gstreamer gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad wayland-ivi-extension"
+DEPENDS += "libdrm virtual/kernel wayland wayland-native waltham weston gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad wayland-ivi-extension"
SRC_URI = "git://gerrit.automotivelinux.org/gerrit/src/weston-ivi-plugins.git;protocol=https;branch=${AGL_BRANCH}"
SRCREV = "5287483228fa1e28f3217a54606cfe760c6582bd"
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/waltham/0001-Use-python3-instead-of-2.patch b/meta-agl-core/recipes-graphics/wayland/waltham/0001-Use-python3-instead-of-2.patch
index 32c2df3c4..32c2df3c4 100644
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/waltham/0001-Use-python3-instead-of-2.patch
+++ b/meta-agl-core/recipes-graphics/wayland/waltham/0001-Use-python3-instead-of-2.patch
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/waltham/0001-waltham-Fix-compile-build-error.patch b/meta-agl-core/recipes-graphics/wayland/waltham/0001-waltham-Fix-compile-build-error.patch
index 354bcbc15..354bcbc15 100644
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/waltham/0001-waltham-Fix-compile-build-error.patch
+++ b/meta-agl-core/recipes-graphics/wayland/waltham/0001-waltham-Fix-compile-build-error.patch
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/waltham/0002-commandxml-Add-support-wthp_app_id-interface.patch b/meta-agl-core/recipes-graphics/wayland/waltham/0002-commandxml-Add-support-wthp_app_id-interface.patch
index 5aefb922b..5aefb922b 100644
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/waltham/0002-commandxml-Add-support-wthp_app_id-interface.patch
+++ b/meta-agl-core/recipes-graphics/wayland/waltham/0002-commandxml-Add-support-wthp_app_id-interface.patch
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/waltham_%.bbappend b/meta-agl-core/recipes-graphics/wayland/waltham_%.bbappend
index 8d0436a3b..8d0436a3b 100644
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/waltham_%.bbappend
+++ b/meta-agl-core/recipes-graphics/wayland/waltham_%.bbappend
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/waltham_git.bb b/meta-agl-core/recipes-graphics/wayland/waltham_git.bb
index 01023a1f2..01023a1f2 100644
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/waltham_git.bb
+++ b/meta-agl-core/recipes-graphics/wayland/waltham_git.bb
diff --git a/meta-agl-bsp/recipes-graphics/wayland/weston-ini-conf.bb b/meta-agl-core/recipes-graphics/wayland/weston-ini-conf.bb
index 14fbd0273..16c0f046d 100644
--- a/meta-agl-bsp/recipes-graphics/wayland/weston-ini-conf.bb
+++ b/meta-agl-core/recipes-graphics/wayland/weston-ini-conf.bb
@@ -7,6 +7,19 @@ SRC_URI = "file://core.cfg \
file://hdmi-a-1-270.cfg \
"
+# cluster and html5-landscape
+# core, shell, hdmi-a-1-180.cfg, virtual-landscape.cfg
+SRC_URI_remove_landscape = " \
+ file://hdmi-a-1-270.cfg \
+ file://hdmi-a-1-90.cfg \
+ file://virtual.cfg \
+"
+SRC_URI_append_landscape = " \
+ file://hdmi-a-1-180.cfg \
+ file://virtual-landscape.cfg \
+"
+
+
S = "${WORKDIR}"
PACKAGE_ARCH = "${MACHINE_ARCH}"
diff --git a/meta-agl-bsp/meta-aglprofilegraphical/recipes-graphics/wayland/weston-ini-conf.bbappend b/meta-agl-core/recipes-graphics/wayland/weston-ini-conf.bbappend
index 4a2dc80af..179004094 100644
--- a/meta-agl-bsp/meta-aglprofilegraphical/recipes-graphics/wayland/weston-ini-conf.bbappend
+++ b/meta-agl-core/recipes-graphics/wayland/weston-ini-conf.bbappend
@@ -1,5 +1,10 @@
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+SRC_URI += "${@bb.utils.contains("DISTRO_FEATURES", "weston-remoting", "file://remote-output.cfg", "",d)}"
+
+
# For virtual machines and intel-corei7-64 we want to support both the HDMI-A-1
# and Virtual-1 outputs. This allows us to run virtual images on real hardware
# and vice versa.
diff --git a/meta-agl-bsp/recipes-graphics/wayland/weston-ini-conf/core.cfg b/meta-agl-core/recipes-graphics/wayland/weston-ini-conf/core.cfg
index 90774ed79..90774ed79 100644
--- a/meta-agl-bsp/recipes-graphics/wayland/weston-ini-conf/core.cfg
+++ b/meta-agl-core/recipes-graphics/wayland/weston-ini-conf/core.cfg
diff --git a/meta-agl-bsp/recipes-graphics/wayland/weston-ini-conf/hdmi-a-1-270.cfg b/meta-agl-core/recipes-graphics/wayland/weston-ini-conf/hdmi-a-1-270.cfg
index dffc2b6dd..dffc2b6dd 100644
--- a/meta-agl-bsp/recipes-graphics/wayland/weston-ini-conf/hdmi-a-1-270.cfg
+++ b/meta-agl-core/recipes-graphics/wayland/weston-ini-conf/hdmi-a-1-270.cfg
diff --git a/meta-agl-bsp/recipes-graphics/wayland/weston-ini-conf/hdmi-a-1-90.cfg b/meta-agl-core/recipes-graphics/wayland/weston-ini-conf/hdmi-a-1-90.cfg
index 88a692a1b..88a692a1b 100644
--- a/meta-agl-bsp/recipes-graphics/wayland/weston-ini-conf/hdmi-a-1-90.cfg
+++ b/meta-agl-core/recipes-graphics/wayland/weston-ini-conf/hdmi-a-1-90.cfg
diff --git a/meta-agl-bsp/recipes-graphics/wayland/weston-ini-conf/remote-output.cfg b/meta-agl-core/recipes-graphics/wayland/weston-ini-conf/remote-output.cfg
index f69a2e096..f69a2e096 100644
--- a/meta-agl-bsp/recipes-graphics/wayland/weston-ini-conf/remote-output.cfg
+++ b/meta-agl-core/recipes-graphics/wayland/weston-ini-conf/remote-output.cfg
diff --git a/meta-agl-bsp/recipes-graphics/wayland/weston-ini-conf/shell.cfg b/meta-agl-core/recipes-graphics/wayland/weston-ini-conf/shell.cfg
index 975e539e6..975e539e6 100644
--- a/meta-agl-bsp/recipes-graphics/wayland/weston-ini-conf/shell.cfg
+++ b/meta-agl-core/recipes-graphics/wayland/weston-ini-conf/shell.cfg
diff --git a/meta-agl-bsp/meta-aglprofilegraphical/recipes-graphics/wayland/weston-ini-conf/virtual.cfg b/meta-agl-core/recipes-graphics/wayland/weston-ini-conf/virtual.cfg
index 25a8fae94..25a8fae94 100644
--- a/meta-agl-bsp/meta-aglprofilegraphical/recipes-graphics/wayland/weston-ini-conf/virtual.cfg
+++ b/meta-agl-core/recipes-graphics/wayland/weston-ini-conf/virtual.cfg
diff --git a/meta-agl-core/recipes-graphics/wayland/weston-init.bbappend b/meta-agl-core/recipes-graphics/wayland/weston-init.bbappend
new file mode 100644
index 000000000..c09d7ccd3
--- /dev/null
+++ b/meta-agl-core/recipes-graphics/wayland/weston-init.bbappend
@@ -0,0 +1 @@
+require ${@bb.utils.contains('AGL_FEATURES', 'aglcore', 'weston-init_aglcore.inc', '', d)}
diff --git a/meta-agl-core/recipes-graphics/wayland/weston-init_aglcore.inc b/meta-agl-core/recipes-graphics/wayland/weston-init_aglcore.inc
new file mode 100644
index 000000000..51c59ae4d
--- /dev/null
+++ b/meta-agl-core/recipes-graphics/wayland/weston-init_aglcore.inc
@@ -0,0 +1,6 @@
+do_install_append() {
+ # Remove upstream weston.ini to avoid conflict with weston-ini-conf package
+ rm -f ${D}${sysconfdir}/xdg/weston/weston.ini
+}
+
+SYSTEMD_AUTO_ENABLE = "enable"
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0001-libweston-Expose-weston_output_damage-in-libweston.patch b/meta-agl-core/recipes-graphics/wayland/weston/0001-libweston-Expose-weston_output_damage-in-libweston.patch
index 32755c4b3..32755c4b3 100644
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0001-libweston-Expose-weston_output_damage-in-libweston.patch
+++ b/meta-agl-core/recipes-graphics/wayland/weston/0001-libweston-Expose-weston_output_damage-in-libweston.patch
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0001-libweston-Migrate-weston_seat_init-release-to-public.patch b/meta-agl-core/recipes-graphics/wayland/weston/0001-libweston-Migrate-weston_seat_init-release-to-public.patch
index 02af7cbaf..02af7cbaf 100644
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0001-libweston-Migrate-weston_seat_init-release-to-public.patch
+++ b/meta-agl-core/recipes-graphics/wayland/weston/0001-libweston-Migrate-weston_seat_init-release-to-public.patch
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0005-correctly-tear-down-drm-backend.patch b/meta-agl-core/recipes-graphics/wayland/weston/0005-correctly-tear-down-drm-backend.patch
index cb122590b..cb122590b 100644
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0005-correctly-tear-down-drm-backend.patch
+++ b/meta-agl-core/recipes-graphics/wayland/weston/0005-correctly-tear-down-drm-backend.patch
diff --git a/meta-agl-core/recipes-graphics/wayland/weston_8.0.%.bbappend b/meta-agl-core/recipes-graphics/wayland/weston_8.0.%.bbappend
new file mode 100644
index 000000000..f627f5cb2
--- /dev/null
+++ b/meta-agl-core/recipes-graphics/wayland/weston_8.0.%.bbappend
@@ -0,0 +1 @@
+require ${@bb.utils.contains('AGL_FEATURES', 'aglcore', 'weston_8.0_aglcore.inc', '', d)}
diff --git a/meta-agl-core/recipes-graphics/wayland/weston_8.0_aglcore.inc b/meta-agl-core/recipes-graphics/wayland/weston_8.0_aglcore.inc
new file mode 100644
index 000000000..c2495465b
--- /dev/null
+++ b/meta-agl-core/recipes-graphics/wayland/weston_8.0_aglcore.inc
@@ -0,0 +1,11 @@
+FILESEXTRAPATHS_append := ":${THISDIR}/weston"
+
+SRC_URI_append = "\
+ file://0001-libweston-Expose-weston_output_damage-in-libweston.patch \
+ file://0001-libweston-Migrate-weston_seat_init-release-to-public.patch \
+ file://0005-correctly-tear-down-drm-backend.patch \
+ "
+
+# Workaround for incorrect upstream definition
+PACKAGECONFIG[remoting] = "-Dremoting=true,-Dremoting=false,gstreamer1.0 gstreamer1.0-plugins-base"
+PACKAGECONFIG_append = "${@bb.utils.contains('DISTRO_FEATURES', 'weston-remoting', ' remoting', '', d)}"
diff --git a/meta-agl-core/recipes-kernel/linux/kernel-devsrc.bbappend b/meta-agl-core/recipes-kernel/linux/kernel-devsrc.bbappend
new file mode 100644
index 000000000..3d5903d85
--- /dev/null
+++ b/meta-agl-core/recipes-kernel/linux/kernel-devsrc.bbappend
@@ -0,0 +1 @@
+require ${@bb.utils.contains('AGL_FEATURES', 'aglcore', '${BPN}_agl.inc', '', d)}
diff --git a/meta-agl-bsp/recipes-kernel/linux/kernel-devsrc.bbappend b/meta-agl-core/recipes-kernel/linux/kernel-devsrc_agl.inc
index 52fe69d24..52fe69d24 100644
--- a/meta-agl-bsp/recipes-kernel/linux/kernel-devsrc.bbappend
+++ b/meta-agl-core/recipes-kernel/linux/kernel-devsrc_agl.inc
diff --git a/meta-agl-bsp/recipes-kernel/linux/linux-4.14/Smack-Handle-CGROUP2-in-the-same-way-that-CGROUP.patch b/meta-agl-core/recipes-kernel/linux/linux-4.14/Smack-Handle-CGROUP2-in-the-same-way-that-CGROUP.patch
index c595dfdf5..c595dfdf5 100644
--- a/meta-agl-bsp/recipes-kernel/linux/linux-4.14/Smack-Handle-CGROUP2-in-the-same-way-that-CGROUP.patch
+++ b/meta-agl-core/recipes-kernel/linux/linux-4.14/Smack-Handle-CGROUP2-in-the-same-way-that-CGROUP.patch
diff --git a/meta-agl-bsp/recipes-kernel/linux/linux-4.14/Smack-Privilege-check-on-key-operations.patch b/meta-agl-core/recipes-kernel/linux/linux-4.14/Smack-Privilege-check-on-key-operations.patch
index 4100bb8fd..4100bb8fd 100644
--- a/meta-agl-bsp/recipes-kernel/linux/linux-4.14/Smack-Privilege-check-on-key-operations.patch
+++ b/meta-agl-core/recipes-kernel/linux/linux-4.14/Smack-Privilege-check-on-key-operations.patch
diff --git a/meta-agl-bsp/recipes-kernel/linux/linux-4.14/net-sch_generic-add-if_afp.h-header-to-get-ARPHRD_CA.patch b/meta-agl-core/recipes-kernel/linux/linux-4.14/net-sch_generic-add-if_afp.h-header-to-get-ARPHRD_CA.patch
index 7c34fb306..7c34fb306 100644
--- a/meta-agl-bsp/recipes-kernel/linux/linux-4.14/net-sch_generic-add-if_afp.h-header-to-get-ARPHRD_CA.patch
+++ b/meta-agl-core/recipes-kernel/linux/linux-4.14/net-sch_generic-add-if_afp.h-header-to-get-ARPHRD_CA.patch
diff --git a/meta-agl-bsp/recipes-kernel/linux/linux-agl-4.14.inc b/meta-agl-core/recipes-kernel/linux/linux-agl-4.14.inc
index 6d5c67021..6d5c67021 100644
--- a/meta-agl-bsp/recipes-kernel/linux/linux-agl-4.14.inc
+++ b/meta-agl-core/recipes-kernel/linux/linux-agl-4.14.inc
diff --git a/meta-agl-bsp/recipes-kernel/linux/linux-agl-4.19.inc b/meta-agl-core/recipes-kernel/linux/linux-agl-4.19.inc
index da4e0c067..da4e0c067 100644
--- a/meta-agl-bsp/recipes-kernel/linux/linux-agl-4.19.inc
+++ b/meta-agl-core/recipes-kernel/linux/linux-agl-4.19.inc
diff --git a/meta-agl-bsp/recipes-kernel/linux/linux-agl.inc b/meta-agl-core/recipes-kernel/linux/linux-agl.inc
index cd960ef6d..cd960ef6d 100644
--- a/meta-agl-bsp/recipes-kernel/linux/linux-agl.inc
+++ b/meta-agl-core/recipes-kernel/linux/linux-agl.inc
diff --git a/meta-agl-bsp/recipes-kernel/linux/linux/btusb.cfg b/meta-agl-core/recipes-kernel/linux/linux/btusb.cfg
index dd7c460bb..dd7c460bb 100644
--- a/meta-agl-bsp/recipes-kernel/linux/linux/btusb.cfg
+++ b/meta-agl-core/recipes-kernel/linux/linux/btusb.cfg
diff --git a/meta-agl-bsp/recipes-kernel/linux/linux/can-bus.cfg b/meta-agl-core/recipes-kernel/linux/linux/can-bus.cfg
index 2f24b7607..2f24b7607 100644
--- a/meta-agl-bsp/recipes-kernel/linux/linux/can-bus.cfg
+++ b/meta-agl-core/recipes-kernel/linux/linux/can-bus.cfg
diff --git a/meta-agl-bsp/recipes-kernel/linux/linux/drm.cfg b/meta-agl-core/recipes-kernel/linux/linux/drm.cfg
index 65fe71cd0..65fe71cd0 100644
--- a/meta-agl-bsp/recipes-kernel/linux/linux/drm.cfg
+++ b/meta-agl-core/recipes-kernel/linux/linux/drm.cfg
diff --git a/meta-agl-bsp/recipes-kernel/linux/linux/fanotify.cfg b/meta-agl-core/recipes-kernel/linux/linux/fanotify.cfg
index de5dd8d31..de5dd8d31 100644
--- a/meta-agl-bsp/recipes-kernel/linux/linux/fanotify.cfg
+++ b/meta-agl-core/recipes-kernel/linux/linux/fanotify.cfg
diff --git a/meta-agl-bsp/recipes-kernel/linux/linux/hid.cfg b/meta-agl-core/recipes-kernel/linux/linux/hid.cfg
index 327c753ae..327c753ae 100644
--- a/meta-agl-bsp/recipes-kernel/linux/linux/hid.cfg
+++ b/meta-agl-core/recipes-kernel/linux/linux/hid.cfg
diff --git a/meta-agl-bsp/recipes-kernel/linux/linux/i2c-led.cfg b/meta-agl-core/recipes-kernel/linux/linux/i2c-led.cfg
index 248b5118a..248b5118a 100644
--- a/meta-agl-bsp/recipes-kernel/linux/linux/i2c-led.cfg
+++ b/meta-agl-core/recipes-kernel/linux/linux/i2c-led.cfg
diff --git a/meta-agl-bsp/recipes-kernel/linux/linux/iiodevice.cfg b/meta-agl-core/recipes-kernel/linux/linux/iiodevice.cfg
index c5b8ff35e..c5b8ff35e 100644
--- a/meta-agl-bsp/recipes-kernel/linux/linux/iiodevice.cfg
+++ b/meta-agl-core/recipes-kernel/linux/linux/iiodevice.cfg
diff --git a/meta-agl-bsp/recipes-kernel/linux/linux/joystick.cfg b/meta-agl-core/recipes-kernel/linux/linux/joystick.cfg
index 2201bcb00..2201bcb00 100644
--- a/meta-agl-bsp/recipes-kernel/linux/linux/joystick.cfg
+++ b/meta-agl-core/recipes-kernel/linux/linux/joystick.cfg
diff --git a/meta-agl-bsp/recipes-kernel/linux/linux/nbd.cfg b/meta-agl-core/recipes-kernel/linux/linux/nbd.cfg
index e5d897556..e5d897556 100644
--- a/meta-agl-bsp/recipes-kernel/linux/linux/nbd.cfg
+++ b/meta-agl-core/recipes-kernel/linux/linux/nbd.cfg
diff --git a/meta-agl-bsp/recipes-kernel/linux/linux/net-sch_generic-Use-pfifo_fast-as-fallback-scheduler.patch b/meta-agl-core/recipes-kernel/linux/linux/net-sch_generic-Use-pfifo_fast-as-fallback-scheduler.patch
index 37ace5a58..37ace5a58 100644
--- a/meta-agl-bsp/recipes-kernel/linux/linux/net-sch_generic-Use-pfifo_fast-as-fallback-scheduler.patch
+++ b/meta-agl-core/recipes-kernel/linux/linux/net-sch_generic-Use-pfifo_fast-as-fallback-scheduler.patch
diff --git a/meta-agl-bsp/recipes-kernel/linux/linux/netfilter.cfg b/meta-agl-core/recipes-kernel/linux/linux/netfilter.cfg
index 34be704c1..34be704c1 100644
--- a/meta-agl-bsp/recipes-kernel/linux/linux/netfilter.cfg
+++ b/meta-agl-core/recipes-kernel/linux/linux/netfilter.cfg
diff --git a/meta-agl-bsp/recipes-kernel/linux/linux/nfc.cfg b/meta-agl-core/recipes-kernel/linux/linux/nfc.cfg
index 6d863a075..6d863a075 100644
--- a/meta-agl-bsp/recipes-kernel/linux/linux/nfc.cfg
+++ b/meta-agl-core/recipes-kernel/linux/linux/nfc.cfg
diff --git a/meta-agl-bsp/recipes-kernel/linux/linux/overlayfs.cfg b/meta-agl-core/recipes-kernel/linux/linux/overlayfs.cfg
index 025118ed6..025118ed6 100644
--- a/meta-agl-bsp/recipes-kernel/linux/linux/overlayfs.cfg
+++ b/meta-agl-core/recipes-kernel/linux/linux/overlayfs.cfg
diff --git a/meta-agl-bsp/recipes-kernel/linux/linux/procevent.cfg b/meta-agl-core/recipes-kernel/linux/linux/procevent.cfg
index 6e08c25bc..6e08c25bc 100644
--- a/meta-agl-bsp/recipes-kernel/linux/linux/procevent.cfg
+++ b/meta-agl-core/recipes-kernel/linux/linux/procevent.cfg
diff --git a/meta-agl-bsp/recipes-kernel/linux/linux/ramdisk.cfg b/meta-agl-core/recipes-kernel/linux/linux/ramdisk.cfg
index 3d44de805..3d44de805 100644
--- a/meta-agl-bsp/recipes-kernel/linux/linux/ramdisk.cfg
+++ b/meta-agl-core/recipes-kernel/linux/linux/ramdisk.cfg
diff --git a/meta-agl-bsp/recipes-kernel/linux/linux/rtc.cfg b/meta-agl-core/recipes-kernel/linux/linux/rtc.cfg
index 2641958a0..2641958a0 100644
--- a/meta-agl-bsp/recipes-kernel/linux/linux/rtc.cfg
+++ b/meta-agl-core/recipes-kernel/linux/linux/rtc.cfg
diff --git a/meta-agl-bsp/recipes-kernel/linux/linux/rtl_sdr.cfg b/meta-agl-core/recipes-kernel/linux/linux/rtl_sdr.cfg
index d4574700a..d4574700a 100644
--- a/meta-agl-bsp/recipes-kernel/linux/linux/rtl_sdr.cfg
+++ b/meta-agl-core/recipes-kernel/linux/linux/rtl_sdr.cfg
diff --git a/meta-agl-bsp/recipes-kernel/linux/linux/scheddebug.cfg b/meta-agl-core/recipes-kernel/linux/linux/scheddebug.cfg
index e8b09aa7c..e8b09aa7c 100644
--- a/meta-agl-bsp/recipes-kernel/linux/linux/scheddebug.cfg
+++ b/meta-agl-core/recipes-kernel/linux/linux/scheddebug.cfg
diff --git a/meta-agl-bsp/recipes-kernel/linux/linux/sound-hda.cfg b/meta-agl-core/recipes-kernel/linux/linux/sound-hda.cfg
index 115504c39..115504c39 100644
--- a/meta-agl-bsp/recipes-kernel/linux/linux/sound-hda.cfg
+++ b/meta-agl-core/recipes-kernel/linux/linux/sound-hda.cfg
diff --git a/meta-agl-bsp/recipes-kernel/linux/linux/sound.cfg b/meta-agl-core/recipes-kernel/linux/linux/sound.cfg
index ad34ea680..ad34ea680 100644
--- a/meta-agl-bsp/recipes-kernel/linux/linux/sound.cfg
+++ b/meta-agl-core/recipes-kernel/linux/linux/sound.cfg
diff --git a/meta-agl-bsp/recipes-kernel/linux/linux/systemtap.cfg b/meta-agl-core/recipes-kernel/linux/linux/systemtap.cfg
index 4886c27f1..4886c27f1 100644
--- a/meta-agl-bsp/recipes-kernel/linux/linux/systemtap.cfg
+++ b/meta-agl-core/recipes-kernel/linux/linux/systemtap.cfg
diff --git a/meta-agl-bsp/recipes-kernel/linux/linux/uinput.cfg b/meta-agl-core/recipes-kernel/linux/linux/uinput.cfg
index 7996ef1dd..7996ef1dd 100644
--- a/meta-agl-bsp/recipes-kernel/linux/linux/uinput.cfg
+++ b/meta-agl-core/recipes-kernel/linux/linux/uinput.cfg
diff --git a/meta-agl-bsp/recipes-kernel/linux/linux/usb.cfg b/meta-agl-core/recipes-kernel/linux/linux/usb.cfg
index 8e9e98ecb..8e9e98ecb 100644
--- a/meta-agl-bsp/recipes-kernel/linux/linux/usb.cfg
+++ b/meta-agl-core/recipes-kernel/linux/linux/usb.cfg
diff --git a/meta-agl-bsp/recipes-kernel/linux/linux/usbaudio.cfg b/meta-agl-core/recipes-kernel/linux/linux/usbaudio.cfg
index 5961f43d3..5961f43d3 100644
--- a/meta-agl-bsp/recipes-kernel/linux/linux/usbaudio.cfg
+++ b/meta-agl-core/recipes-kernel/linux/linux/usbaudio.cfg
diff --git a/meta-agl-bsp/recipes-kernel/linux/linux/usbmodem.cfg b/meta-agl-core/recipes-kernel/linux/linux/usbmodem.cfg
index 3ded931e5..3ded931e5 100644
--- a/meta-agl-bsp/recipes-kernel/linux/linux/usbmodem.cfg
+++ b/meta-agl-core/recipes-kernel/linux/linux/usbmodem.cfg
diff --git a/meta-agl-bsp/recipes-kernel/linux/linux/uvc.cfg b/meta-agl-core/recipes-kernel/linux/linux/uvc.cfg
index 7c6556c11..7c6556c11 100644
--- a/meta-agl-bsp/recipes-kernel/linux/linux/uvc.cfg
+++ b/meta-agl-core/recipes-kernel/linux/linux/uvc.cfg
diff --git a/meta-agl-bsp/recipes-kernel/linux/linux/vbox-vmware-sata.cfg b/meta-agl-core/recipes-kernel/linux/linux/vbox-vmware-sata.cfg
index ce1eca1a7..ce1eca1a7 100644
--- a/meta-agl-bsp/recipes-kernel/linux/linux/vbox-vmware-sata.cfg
+++ b/meta-agl-core/recipes-kernel/linux/linux/vbox-vmware-sata.cfg
diff --git a/meta-agl-bsp/recipes-kernel/linux/linux/wifi.cfg b/meta-agl-core/recipes-kernel/linux/linux/wifi.cfg
index 00c2e06e4..00c2e06e4 100644
--- a/meta-agl-bsp/recipes-kernel/linux/linux/wifi.cfg
+++ b/meta-agl-core/recipes-kernel/linux/linux/wifi.cfg
diff --git a/meta-agl-bsp/recipes-kernel/linux/linux/x86-extra-graphic-devices.cfg b/meta-agl-core/recipes-kernel/linux/linux/x86-extra-graphic-devices.cfg
index d2b64de67..d2b64de67 100644
--- a/meta-agl-bsp/recipes-kernel/linux/linux/x86-extra-graphic-devices.cfg
+++ b/meta-agl-core/recipes-kernel/linux/linux/x86-extra-graphic-devices.cfg
diff --git a/meta-agl-bsp/recipes-kernel/linux/linux/x86-net-devices.cfg b/meta-agl-core/recipes-kernel/linux/linux/x86-net-devices.cfg
index 6c5b698a9..6c5b698a9 100644
--- a/meta-agl-bsp/recipes-kernel/linux/linux/x86-net-devices.cfg
+++ b/meta-agl-core/recipes-kernel/linux/linux/x86-net-devices.cfg
diff --git a/meta-agl-bsp/recipes-kernel/linux/linux/x86-security-tpm.cfg b/meta-agl-core/recipes-kernel/linux/linux/x86-security-tpm.cfg
index b66b1b9b1..b66b1b9b1 100644
--- a/meta-agl-bsp/recipes-kernel/linux/linux/x86-security-tpm.cfg
+++ b/meta-agl-core/recipes-kernel/linux/linux/x86-security-tpm.cfg
diff --git a/meta-agl-bsp/recipes-kernel/linux/linux/x86-upsquare.cfg b/meta-agl-core/recipes-kernel/linux/linux/x86-upsquare.cfg
index d2bed63fa..d2bed63fa 100644
--- a/meta-agl-bsp/recipes-kernel/linux/linux/x86-upsquare.cfg
+++ b/meta-agl-core/recipes-kernel/linux/linux/x86-upsquare.cfg
diff --git a/meta-agl-bsp/recipes-kernel/linux/linux/x86-usb-devices.cfg b/meta-agl-core/recipes-kernel/linux/linux/x86-usb-devices.cfg
index 19c57796e..19c57796e 100644
--- a/meta-agl-bsp/recipes-kernel/linux/linux/x86-usb-devices.cfg
+++ b/meta-agl-core/recipes-kernel/linux/linux/x86-usb-devices.cfg
diff --git a/meta-agl-bsp/recipes-kernel/linux/linux/xen_domu.cfg b/meta-agl-core/recipes-kernel/linux/linux/xen_domu.cfg
index 8bc59eb1e..8bc59eb1e 100644
--- a/meta-agl-bsp/recipes-kernel/linux/linux/xen_domu.cfg
+++ b/meta-agl-core/recipes-kernel/linux/linux/xen_domu.cfg
diff --git a/meta-agl-profile-core/recipes-platform/images/agl-image-boot.bb b/meta-agl-core/recipes-platform/images/agl-image-boot.bb
index 84cdbcf31..84cdbcf31 100644
--- a/meta-agl-profile-core/recipes-platform/images/agl-image-boot.bb
+++ b/meta-agl-core/recipes-platform/images/agl-image-boot.bb
diff --git a/meta-agl-profile-core/recipes-platform/images/agl-image-boot.inc b/meta-agl-core/recipes-platform/images/agl-image-boot.inc
index 825393978..825393978 100644
--- a/meta-agl-profile-core/recipes-platform/images/agl-image-boot.inc
+++ b/meta-agl-core/recipes-platform/images/agl-image-boot.inc
diff --git a/meta-agl-core/recipes-platform/images/agl-image-core-autobuilder.bb b/meta-agl-core/recipes-platform/images/agl-image-core-autobuilder.bb
new file mode 100644
index 000000000..3855b3c23
--- /dev/null
+++ b/meta-agl-core/recipes-platform/images/agl-image-core-autobuilder.bb
@@ -0,0 +1,18 @@
+SUMMARY = "A very basic Wayland image with a terminal"
+
+require agl-image-weston.inc
+
+LICENSE = "MIT"
+
+IMAGE_INSTALL_append = "\
+ packagegroup-agl-profile-graphical \
+ busybox \
+ psplash \
+ gdb \
+ gperf \
+ weston \
+ weston-examples \
+ curl \
+ ptest-runner \
+ libsoup-2.4 \
+ "
diff --git a/meta-agl-profile-core/recipes-platform/images/agl-image-minimal-crosssdk.bb b/meta-agl-core/recipes-platform/images/agl-image-minimal-crosssdk.bb
index 8c5aae1bf..8c5aae1bf 100644
--- a/meta-agl-profile-core/recipes-platform/images/agl-image-minimal-crosssdk.bb
+++ b/meta-agl-core/recipes-platform/images/agl-image-minimal-crosssdk.bb
diff --git a/meta-agl-core/recipes-platform/images/agl-image-minimal-crosssdk.inc b/meta-agl-core/recipes-platform/images/agl-image-minimal-crosssdk.inc
new file mode 100644
index 000000000..a69e698a1
--- /dev/null
+++ b/meta-agl-core/recipes-platform/images/agl-image-minimal-crosssdk.inc
@@ -0,0 +1,24 @@
+IMAGE_FEATURES_append = " dev-pkgs"
+IMAGE_INSTALL_append = " kernel-dev kernel-devsrc"
+
+
+
+
+
+
+# FIXME:
+# Always include the test widgets
+#IMAGE_FEATURES_append = " agl-test-wgt"
+#
+# Required dependencies for app and test builds
+#TOOLCHAIN_HOST_TASK += " \
+# nativesdk-lua \
+# "
+#
+# Required dependencies for app and test builds
+#TOOLCHAIN_TARGET_TASK += " \
+# lua-dev \
+# lua-staticdev \
+# libafb-helpers-staticdev \
+# libappcontroller-staticdev \
+# "
diff --git a/meta-agl-profile-core/recipes-platform/images/agl-image-minimal.bb b/meta-agl-core/recipes-platform/images/agl-image-minimal.bb
index 1fd213d0f..1fd213d0f 100644
--- a/meta-agl-profile-core/recipes-platform/images/agl-image-minimal.bb
+++ b/meta-agl-core/recipes-platform/images/agl-image-minimal.bb
diff --git a/meta-agl-profile-core/recipes-platform/images/agl-image-minimal.inc b/meta-agl-core/recipes-platform/images/agl-image-minimal.inc
index 825393978..825393978 100644
--- a/meta-agl-profile-core/recipes-platform/images/agl-image-minimal.inc
+++ b/meta-agl-core/recipes-platform/images/agl-image-minimal.inc
diff --git a/meta-agl-profile-graphical/recipes-platform/images/agl-image-weston.bb b/meta-agl-core/recipes-platform/images/agl-image-weston.bb
index bbb61c922..bbb61c922 100644
--- a/meta-agl-profile-graphical/recipes-platform/images/agl-image-weston.bb
+++ b/meta-agl-core/recipes-platform/images/agl-image-weston.bb
diff --git a/meta-agl-profile-graphical/recipes-platform/images/agl-image-weston.inc b/meta-agl-core/recipes-platform/images/agl-image-weston.inc
index cef3bf64e..cef3bf64e 100644
--- a/meta-agl-profile-graphical/recipes-platform/images/agl-image-weston.inc
+++ b/meta-agl-core/recipes-platform/images/agl-image-weston.inc
diff --git a/meta-agl-profile-core/recipes-platform/packagegroups/packagegroup-agl-core-boot.bb b/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-core-boot.bb
index 1633feddc..5ffa4cfff 100644
--- a/meta-agl-profile-core/recipes-platform/packagegroups/packagegroup-agl-core-boot.bb
+++ b/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-core-boot.bb
@@ -35,7 +35,6 @@ RDEPENDS_${PN} = "\
base-passwd \
busybox \
rng-tools \
- run-agl-postinsts \
${@bb.utils.contains("DISTRO_FEATURES", "sysvinit", "${SYSVINIT_SCRIPTS}", "", d)} \
${@bb.utils.contains("MACHINE_FEATURES", "keyboard", "${VIRTUAL-RUNTIME_keymaps}", "", d)} \
netbase \
diff --git a/meta-agl-profile-core/recipes-platform/packagegroups/packagegroup-agl-core-connectivity.bb b/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-core-connectivity.bb
index e209c59ca..0d7bbb58b 100644
--- a/meta-agl-profile-core/recipes-platform/packagegroups/packagegroup-agl-core-connectivity.bb
+++ b/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-core-connectivity.bb
@@ -15,5 +15,5 @@ RDEPENDS_${PN} += "\
dhcp-server \
${@bb.utils.contains('VIRTUAL-RUNTIME_net_manager','connman','connman connman-client connman-tests \
connman-tools connman-ncurses connman-plugin-session-policy-local','',d)} \
- ${@bb.utils.contains('DISTRO_FEATURES', 'agl-devel', '${PKGGROUP_ZEROCONF}', '', d)} \
+ ${@bb.utils.contains('AGL_FEATURES', 'agl-devel', '${PKGGROUP_ZEROCONF}', '', d)} \
"
diff --git a/meta-agl-profile-core/recipes-devtools/packagegroups/packagegroup-agl-core-devel.bb b/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-core-devel.bb
index c360f2a72..72fec3ff0 100644
--- a/meta-agl-profile-core/recipes-devtools/packagegroups/packagegroup-agl-core-devel.bb
+++ b/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-core-devel.bb
@@ -12,22 +12,20 @@ RDEPENDS_${PN} = "\
gdb \
valgrind \
perf \
- htop \
powertop \
screen \
usbutils \
rsync \
- tree \
pstree \
procps \
- jq \
libxslt-bin \
- agl-service-network-tools \
gcc-sanitizers \
pciutils \
- pyagl \
- gcov \
- gcov-symlinks \
- gcovr \
- gcovr-wrapper \
"
+
+# needs meta-oe present
+#RRECOMMENDS_${PN} = "\
+# jq \
+# htop \
+# tree \
+#"
diff --git a/meta-agl-profile-core/recipes-platform/packagegroups/packagegroup-agl-core-os-commonlibs.bb b/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-core-os-commonlibs.bb
index aef732838..aef732838 100644
--- a/meta-agl-profile-core/recipes-platform/packagegroups/packagegroup-agl-core-os-commonlibs.bb
+++ b/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-core-os-commonlibs.bb
diff --git a/meta-agl-profile-core/recipes-platform/packagegroups/packagegroup-agl-core-security.bb b/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-core-security.bb
index 0ae5c77a3..0ae5c77a3 100644
--- a/meta-agl-profile-core/recipes-platform/packagegroups/packagegroup-agl-core-security.bb
+++ b/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-core-security.bb
diff --git a/meta-agl-profile-graphical/recipes-platform/packagegroups/packagegroup-agl-graphical-multimedia.bb b/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-graphical-multimedia.bb
index cd37cb7d5..cd37cb7d5 100644
--- a/meta-agl-profile-graphical/recipes-platform/packagegroups/packagegroup-agl-graphical-multimedia.bb
+++ b/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-graphical-multimedia.bb
diff --git a/meta-agl-profile-graphical/recipes-platform/packagegroups/packagegroup-agl-graphical-weston.bb b/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-graphical-weston.bb
index 79577c170..6d3435d99 100644
--- a/meta-agl-profile-graphical/recipes-platform/packagegroups/packagegroup-agl-graphical-weston.bb
+++ b/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-graphical-weston.bb
@@ -12,9 +12,6 @@ ALLOW_EMPTY_${PN} = "1"
RDEPENDS_${PN} += " \
weston \
weston-init \
- weston-ini-conf \
weston-examples \
- agl-login-manager \
- agl-compositor \
"
diff --git a/meta-agl-profile-core/recipes-platform/packagegroups/packagegroup-agl-image-boot.bb b/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-image-boot.bb
index afa04e7a1..afa04e7a1 100644
--- a/meta-agl-profile-core/recipes-platform/packagegroups/packagegroup-agl-image-boot.bb
+++ b/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-image-boot.bb
diff --git a/meta-agl-profile-core/recipes-platform/packagegroups/packagegroup-agl-image-minimal.bb b/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-image-minimal.bb
index 284c961b1..45107ed9c 100644
--- a/meta-agl-profile-core/recipes-platform/packagegroups/packagegroup-agl-image-minimal.bb
+++ b/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-image-minimal.bb
@@ -15,11 +15,9 @@ RDEPENDS_${PN} += "\
packagegroup-machine-base \
"
-
RDEPENDS_${PN} += "\
packagegroup-agl-core-connectivity \
packagegroup-agl-core-os-commonlibs \
- packagegroup-agl-core-services \
packagegroup-agl-core-security \
"
diff --git a/meta-agl-profile-graphical/recipes-platform/packagegroups/packagegroup-agl-profile-graphical.bb b/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-profile-graphical.bb
index 406ebcdb4..bfc5e19e8 100644
--- a/meta-agl-profile-graphical/recipes-platform/packagegroups/packagegroup-agl-profile-graphical.bb
+++ b/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-profile-graphical.bb
@@ -14,7 +14,6 @@ ALLOW_EMPTY_${PN} = "1"
RDEPENDS_${PN} += "\
packagegroup-agl-image-minimal \
packagegroup-agl-graphical-weston \
- packagegroup-agl-graphical-services \
packagegroup-agl-graphical-multimedia \
"
# FIXME: Removed due to issues building against weston 5.0.0:
diff --git a/meta-agl-profile-core/recipes-support/libsoup/libsoup-2.4_%.bbappend b/meta-agl-core/recipes-support/libsoup/libsoup-2.4_%.bbappend
index 06651fc11..06651fc11 100644
--- a/meta-agl-profile-core/recipes-support/libsoup/libsoup-2.4_%.bbappend
+++ b/meta-agl-core/recipes-support/libsoup/libsoup-2.4_%.bbappend
diff --git a/meta-agl-bsp/recipes-support/ptest-runner/ptest-runner/0007-WIP-Initial-LAVA-support.patch b/meta-agl-core/recipes-support/ptest-runner/ptest-runner/0007-WIP-Initial-LAVA-support.patch
index 6232c4fa4..6232c4fa4 100644
--- a/meta-agl-bsp/recipes-support/ptest-runner/ptest-runner/0007-WIP-Initial-LAVA-support.patch
+++ b/meta-agl-core/recipes-support/ptest-runner/ptest-runner/0007-WIP-Initial-LAVA-support.patch
diff --git a/meta-agl-core/recipes-support/ptest-runner/ptest-runner_2.%.bbappend b/meta-agl-core/recipes-support/ptest-runner/ptest-runner_2.%.bbappend
new file mode 100644
index 000000000..5033ed7f6
--- /dev/null
+++ b/meta-agl-core/recipes-support/ptest-runner/ptest-runner_2.%.bbappend
@@ -0,0 +1,2 @@
+require ${@bb.utils.contains('AGL_FEATURES', 'aglcore', '${BPN}_agl.inc', '', d)}
+
diff --git a/meta-agl-bsp/recipes-support/ptest-runner/ptest-runner_2.%.bbappend b/meta-agl-core/recipes-support/ptest-runner/ptest-runner_agl.inc
index 7a1d2a8f8..1dcbe0b7b 100644
--- a/meta-agl-bsp/recipes-support/ptest-runner/ptest-runner_2.%.bbappend
+++ b/meta-agl-core/recipes-support/ptest-runner/ptest-runner_agl.inc
@@ -1,4 +1,3 @@
-FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
-
+FILESEXTRAPATHS_prepend := "${THISDIR}/ptest-runner:"
SRC_URI += "file://0007-WIP-Initial-LAVA-support.patch"
diff --git a/meta-agl-distro/scripts/oe-depends-dot b/meta-agl-core/scripts/oe-depends-dot
index 5cec23bf0..5cec23bf0 100755
--- a/meta-agl-distro/scripts/oe-depends-dot
+++ b/meta-agl-core/scripts/oe-depends-dot
diff --git a/meta-agl-core/scripts/run-yocto-check-layer-feature-enabled.sh b/meta-agl-core/scripts/run-yocto-check-layer-feature-enabled.sh
new file mode 100755
index 000000000..93403b974
--- /dev/null
+++ b/meta-agl-core/scripts/run-yocto-check-layer-feature-enabled.sh
@@ -0,0 +1,50 @@
+#!/bin/bash
+set -x
+
+SCRIPTPATH="$( cd $(dirname $0) >/dev/null 2>&1 ; pwd -P )"
+echo $SCRIPTPATH
+AGLROOT="$SCRIPTPATH/../../.."
+POKYDIR="$AGLROOT/external/poky"
+TMPROOT=`mktemp -d`
+
+rm -rf ${TMPROOT}/testbuild-ycl || true
+mkdir -p ${TMPROOT}/testbuild-ycl
+cd ${TMPROOT}/testbuild-ycl
+
+source $POKYDIR/oe-init-build-env .
+
+cat << EOF >> conf/local.conf
+# just define defaults
+AGL_FEATURES ?= ""
+AGL_EXTRA_IMAGE_FSTYPES ?= ""
+
+# important settings imported from poky-agl.conf
+# we do not import
+DISTRO_FEATURES_append = " systemd smack"
+DISTRO_FEATURES_BACKFILL_CONSIDERED_append = " sysvinit"
+VIRTUAL-RUNTIME_init_manager = "systemd"
+
+# workaround:
+# ERROR: Nothing PROVIDES 'smack' (but /home/dl9pf/AGL/master-newlayout/external/meta-openembedded/meta-oe/recipes-extended/ostree/ostree_2020.3.bb DEPENDS on or otherwise requires it)
+BBMASK += "meta-openembedded/meta-oe/recipes-extended/ostree/ostree_2020.3.bb"
+
+AGL_FEATURES += "aglcore"
+
+EOF
+
+
+yocto-check-layer \
+ --dependency \
+ $AGLROOT/external/meta-openembedded/meta-oe \
+ -- \
+ $AGLROOT/meta-agl/meta-agl-core
+
+
+[ $? = 0 ] && rm -rf ${TMPROOT}/testbuild-ycl
+
+exit 0
+
+ --dependency \
+ $AGLROOT/external/meta-openembedded/meta-oe \
+ $AGLROOT/external/meta-openembedded/meta-python \
+ $AGLROOT/external/meta-openembedded/meta-networking \
diff --git a/meta-agl-core/scripts/run-yocto-check-layer.sh b/meta-agl-core/scripts/run-yocto-check-layer.sh
new file mode 100755
index 000000000..9082be920
--- /dev/null
+++ b/meta-agl-core/scripts/run-yocto-check-layer.sh
@@ -0,0 +1,48 @@
+#!/bin/bash
+set -x
+
+SCRIPTPATH="$( cd $(dirname $0) >/dev/null 2>&1 ; pwd -P )"
+echo $SCRIPTPATH
+AGLROOT="$SCRIPTPATH/../../.."
+POKYDIR="$AGLROOT/external/poky"
+TMPROOT=`mktemp -d`
+
+rm -rf ${TMPROOT}/testbuild-ycl || true
+mkdir -p ${TMPROOT}/testbuild-ycl
+cd ${TMPROOT}/testbuild-ycl
+
+source $POKYDIR/oe-init-build-env .
+
+cat << EOF >> conf/local.conf
+# just define defaults
+AGL_FEATURES ?= ""
+AGL_EXTRA_IMAGE_FSTYPES ?= ""
+
+# important settings imported from poky-agl.conf
+# we do not import
+DISTRO_FEATURES_append = " systemd smack"
+DISTRO_FEATURES_BACKFILL_CONSIDERED_append = " sysvinit"
+VIRTUAL-RUNTIME_init_manager = "systemd"
+
+# workaround:
+# ERROR: Nothing PROVIDES 'smack' (but /home/dl9pf/AGL/master-newlayout/external/meta-openembedded/meta-oe/recipes-extended/ostree/ostree_2020.3.bb DEPENDS on or otherwise requires it)
+BBMASK += "meta-openembedded/meta-oe/recipes-extended/ostree/ostree_2020.3.bb"
+
+EOF
+
+
+yocto-check-layer \
+ --dependency \
+ $AGLROOT/external/meta-openembedded/meta-oe \
+ -- \
+ $AGLROOT/meta-agl/meta-agl-core
+
+
+[ $? = 0 ] && rm -rf ${TMPROOT}/testbuild-ycl
+
+exit 0
+
+ --dependency \
+ $AGLROOT/external/meta-openembedded/meta-oe \
+ $AGLROOT/external/meta-openembedded/meta-python \
+ $AGLROOT/external/meta-openembedded/meta-networking \
diff --git a/meta-agl-distro/README b/meta-agl-distro/README
deleted file mode 100644
index 08630b438..000000000
--- a/meta-agl-distro/README
+++ /dev/null
@@ -1,3 +0,0 @@
-This is meta-agl-disto.
-
-This layer holds the distro config(s) in use by AGL.
diff --git a/meta-agl-distro/conf/layer.conf b/meta-agl-distro/conf/layer.conf
deleted file mode 100644
index f8cf50c76..000000000
--- a/meta-agl-distro/conf/layer.conf
+++ /dev/null
@@ -1,12 +0,0 @@
-# We have a conf and classes directory, add to BBPATH
-BBPATH =. "${LAYERDIR}:"
-
-# We have recipes-* directories, add to BBFILES
-BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
- ${LAYERDIR}/recipes-*/*/*.bbappend"
-
-BBFILE_COLLECTIONS += "agl-distro"
-BBFILE_PATTERN_agl-distro = "^${LAYERDIR}/"
-BBFILE_PRIORITY_agl-distro = "70"
-
-LAYERSERIES_COMPAT_agl-distro = "dunfell"
diff --git a/meta-agl-profile-cluster-qt5/LICENSE b/meta-agl-profile-cluster-qt5/LICENSE
deleted file mode 100644
index e8758f89c..000000000
--- a/meta-agl-profile-cluster-qt5/LICENSE
+++ /dev/null
@@ -1,20 +0,0 @@
-Different components of the AGL layers are under different licenses (a mix
-of MIT and GPLv2). See LICENSE.GPL-2.0-only and LICENSE.MIT for further
-details of the individual licenses.
-
-All metadata (e.g. .bb, .bbappend, .bbclass, .inc, templates/* and similar)
-is MIT licensed unless otherwise stated.
-Source code included in tree for individual recipes (e.g. patches) are under
-the LICENSE stated in the associated recipe (.bb file) unless otherwise stated.
-
-License information for any other files (scripts) is either explicitly stated
-or defaults to GPL version 2 only.
-
-Individual files can contain the following style tags instead of the full
-license text to identify their license:
-
- SPDX-License-Identifier: GPL-2.0-only
- SPDX-License-Identifier: MIT
-
-This enables machine processing of license information based on the SPDX
-License Identifiers that are here available: http://spdx.org/licenses/
diff --git a/meta-agl-profile-cluster-qt5/LICENSE.GPL-2.0-only b/meta-agl-profile-cluster-qt5/LICENSE.GPL-2.0-only
deleted file mode 100644
index 5db3c0a21..000000000
--- a/meta-agl-profile-cluster-qt5/LICENSE.GPL-2.0-only
+++ /dev/null
@@ -1,288 +0,0 @@
- GNU GENERAL PUBLIC LICENSE
- Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users. This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it. (Some other Free Software Foundation software is covered by
-the GNU Lesser General Public License instead.) You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
- To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have. You must make sure that they, too, receive or can get the
-source code. And you must show them these terms so they know their
-rights.
-
- We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
- Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software. If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
- Finally, any free program is threatened constantly by software
-patents. We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary. To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- GNU GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License. The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language. (Hereinafter, translation is included without limitation in
-the term "modification".) Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
- 1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
- 2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) You must cause the modified files to carry prominent notices
- stating that you changed the files and the date of any change.
-
- b) You must cause any work that you distribute or publish, that in
- whole or in part contains or is derived from the Program or any
- part thereof, to be licensed as a whole at no charge to all third
- parties under the terms of this License.
-
- c) If the modified program normally reads commands interactively
- when run, you must cause it, when started running for such
- interactive use in the most ordinary way, to print or display an
- announcement including an appropriate copyright notice and a
- notice that there is no warranty (or else, saying that you provide
- a warranty) and that users may redistribute the program under
- these conditions, and telling the user how to view a copy of this
- License. (Exception: if the Program itself is interactive but
- does not normally print such an announcement, your work based on
- the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
- a) Accompany it with the complete corresponding machine-readable
- source code, which must be distributed under the terms of Sections
- 1 and 2 above on a medium customarily used for software interchange; or,
-
- b) Accompany it with a written offer, valid for at least three
- years, to give any third party, for a charge no more than your
- cost of physically performing source distribution, a complete
- machine-readable copy of the corresponding source code, to be
- distributed under the terms of Sections 1 and 2 above on a medium
- customarily used for software interchange; or,
-
- c) Accompany it with the information you received as to the offer
- to distribute corresponding source code. (This alternative is
- allowed only for noncommercial distribution and only if you
- received the program in object code or executable form with such
- an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it. For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable. However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License. Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
- 5. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Program or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
- 6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
- 7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all. For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded. In such case, this License incorporates
-the limitation as if written in the body of this License.
-
- 9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation. If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
- 10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission. For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this. Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
- NO WARRANTY
-
- 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
- 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
-Note:
-Individual files contain the following tag instead of the full license text.
-
- SPDX-License-Identifier: GPL-2.0-only
-
-This enables machine processing of license information based on the SPDX
-License Identifiers that are here available: http://spdx.org/licenses/
diff --git a/meta-agl-profile-cluster-qt5/LICENSE.MIT b/meta-agl-profile-cluster-qt5/LICENSE.MIT
deleted file mode 100644
index a6919eb7e..000000000
--- a/meta-agl-profile-cluster-qt5/LICENSE.MIT
+++ /dev/null
@@ -1,25 +0,0 @@
-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 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.
-
-Note:
-Individual files contain the following tag instead of the full license text.
-
- SPDX-License-Identifier: MIT
-
-This enables machine processing of license information based on the SPDX
-License Identifiers that are here available: http://spdx.org/licenses/
diff --git a/meta-agl-profile-cluster-qt5/conf/layer.conf b/meta-agl-profile-cluster-qt5/conf/layer.conf
deleted file mode 100644
index 6ed7d8ca8..000000000
--- a/meta-agl-profile-cluster-qt5/conf/layer.conf
+++ /dev/null
@@ -1,12 +0,0 @@
-# We have a conf and classes directory, add to BBPATH
-BBPATH =. "${LAYERDIR}:"
-
-# We have recipes-* directories, add to BBFILES
-BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
- ${LAYERDIR}/recipes-*/*/*.bbappend"
-
-BBFILE_COLLECTIONS += "aglprofileclusterqt5"
-BBFILE_PATTERN_aglprofileclusterqt5 = "^${LAYERDIR}/"
-BBFILE_PRIORITY_aglprofileclusterqt5 = "70"
-
-LAYERSERIES_COMPAT_aglprofileclusterqt5 = "dunfell"
diff --git a/meta-agl-profile-cluster-qt5/recipes-platform/images/agl-image-cluster-qt5.bb b/meta-agl-profile-cluster-qt5/recipes-platform/images/agl-image-cluster-qt5.bb
deleted file mode 100644
index 244e2ba48..000000000
--- a/meta-agl-profile-cluster-qt5/recipes-platform/images/agl-image-cluster-qt5.bb
+++ /dev/null
@@ -1,9 +0,0 @@
-SUMMARY = "A basic Wayland based cluster image with Qt5 support"
-
-require agl-image-cluster-qt5.inc
-
-LICENSE = "MIT"
-
-IMAGE_INSTALL_append = "\
- profile-cluster-qt5 \
- "
diff --git a/meta-agl-profile-cluster-qt5/recipes-platform/images/agl-image-cluster-qt5.inc b/meta-agl-profile-cluster-qt5/recipes-platform/images/agl-image-cluster-qt5.inc
deleted file mode 100644
index 93826aa46..000000000
--- a/meta-agl-profile-cluster-qt5/recipes-platform/images/agl-image-cluster-qt5.inc
+++ /dev/null
@@ -1,7 +0,0 @@
-require recipes-platform/images/agl-image-boot.inc
-
-IMAGE_FEATURES += "splash package-management ssh-server-dropbear"
-
-inherit features_check
-
-REQUIRED_DISTRO_FEATURES = "wayland"
diff --git a/meta-agl-profile-cluster-qt5/recipes-platform/packagegroups/packagegroup-agl-profile-cluster-qt5.bb b/meta-agl-profile-cluster-qt5/recipes-platform/packagegroups/packagegroup-agl-profile-cluster-qt5.bb
deleted file mode 100644
index 5436a5617..000000000
--- a/meta-agl-profile-cluster-qt5/recipes-platform/packagegroups/packagegroup-agl-profile-cluster-qt5.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "The middleware for AGL Qt5 based cluster profile"
-DESCRIPTION = "The set of packages required for AGL Qt5 based Cluster Distribution"
-LICENSE = "MIT"
-
-inherit packagegroup
-
-PACKAGES = "\
- packagegroup-agl-profile-cluster-qt5 \
- profile-cluster-qt5 \
- "
-
-ALLOW_EMPTY_${PN} = "1"
-
-RDEPENDS_${PN} += "\
- packagegroup-agl-image-boot \
- packagegroup-agl-core-security \
- packagegroup-agl-graphical-weston \
- packagegroup-agl-appfw-native-qt5 \
-"
-
-RDEPENDS_profile-cluster-qt5 = "${PN}"
diff --git a/meta-agl-profile-cluster-qt5/recipes-platform/packagegroups/packagegroup-agl-profile-cluster-qtcompositor.bb b/meta-agl-profile-cluster-qt5/recipes-platform/packagegroups/packagegroup-agl-profile-cluster-qtcompositor.bb
deleted file mode 100644
index 9d54b33a4..000000000
--- a/meta-agl-profile-cluster-qt5/recipes-platform/packagegroups/packagegroup-agl-profile-cluster-qtcompositor.bb
+++ /dev/null
@@ -1,36 +0,0 @@
-SUMMARY = "The middleware for AGL Qt5 based cluster qtcompositor"
-DESCRIPTION = "The set of packages required for AGL Qt5 based Cluster Demo Qtcompositor Distribution"
-LICENSE = "MIT"
-
-inherit packagegroup
-
-PACKAGES = "\
- packagegroup-agl-profile-cluster-qtcompositor \
- profile-cluster-qt5 \
- "
-
-ALLOW_EMPTY_${PN} = "1"
-
-RDEPENDS_${PN} += "\
- packagegroup-agl-image-boot \
- packagegroup-agl-core-security \
- packagegroup-agl-core-connectivity \
-"
-
-QT_LITE = " \
- qtbase \
- qtdeclarative \
- qtwayland \
- qtgraphicaleffects-qmlplugins \
- qtsvg-plugins \
- qtwebsockets \
- qtwebsockets-qmlplugins \
- qtcompositor-conf \
-"
-
-RDEPENDS_${PN}_append = " \
- ${QT_LITE} \
- agl-login-manager \
-"
-
-RDEPENDS_profile-cluster-qt5 = "${PN}"
diff --git a/meta-agl-profile-cluster-qt5/recipes-qt/qt5/files/0001-fixed-eglfs_kms-fails-to-build.patch b/meta-agl-profile-cluster-qt5/recipes-qt/qt5/files/0001-fixed-eglfs_kms-fails-to-build.patch
deleted file mode 100644
index 5c936e7ae..000000000
--- a/meta-agl-profile-cluster-qt5/recipes-qt/qt5/files/0001-fixed-eglfs_kms-fails-to-build.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-537bb3cc027eed14500fe5724ab30f Mon Sep 17 00:00:00 2001
-From: Laszlo Agocs <laszlo.agocs@qt.io>
-Date: Fri, 14 Dec 2018 10:48:43 +0100
-Subject: eglfs: avoid breaking builds without EGL_EXT_platform_base
-
-Change-Id: I9183e17b42c00435f20c00a414e1f20aa3972351
-Fixes: QTBUG-72559
-Reviewed-by: Johan Helsing <johan.helsing@qt.io>
----
- .../eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmintegration.cpp | 1 -
- .../eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmwindow.cpp | 4 ++++
- 2 files changed, 4 insertions(+), 1 deletion(-)
-
-(limited to 'src/plugins/platforms/eglfs/deviceintegration/eglfs_kms')
-
-diff --git a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmintegration.cpp b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmintegration.cpp
-index 1e4f4e72c8..f154520669 100644
---- a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmintegration.cpp
-+++ b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmintegration.cpp
-@@ -63,7 +63,6 @@ QEglFSKmsGbmIntegration::QEglFSKmsGbmIntegration()
-
- #ifndef EGL_EXT_platform_base
- typedef EGLDisplay (EGLAPIENTRYP PFNEGLGETPLATFORMDISPLAYEXTPROC) (EGLenum platform, void *native_display, const EGLint *attrib_list);
--typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATEPLATFORMWINDOWSURFACEEXTPROC) (EGLDisplay dpy, EGLConfig config, void *native_window, const EGLint *attrib_list);
- #endif
-
- #ifndef EGL_PLATFORM_GBM_KHR
-diff --git a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmwindow.cpp b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmwindow.cpp
-index 65a7c4f38a..a93762e5b4 100644
---- a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmwindow.cpp
-+++ b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmwindow.cpp
-@@ -45,6 +45,10 @@
-
- QT_BEGIN_NAMESPACE
-
-+#ifndef EGL_EXT_platform_base
-+typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATEPLATFORMWINDOWSURFACEEXTPROC) (EGLDisplay dpy, EGLConfig config, void *native_window, const EGLint *attrib_list);
-+#endif
-+
- void QEglFSKmsGbmWindow::resetSurface()
- {
- QEglFSKmsGbmScreen *gbmScreen = static_cast<QEglFSKmsGbmScreen *>(screen());
---
-cgit v1.2.1
-
diff --git a/meta-agl-profile-cluster-qt5/recipes-qt/qt5/files/0002-fixed-invalid-conversion-from-EGLNativeDisplayType-to-void.patch b/meta-agl-profile-cluster-qt5/recipes-qt/qt5/files/0002-fixed-invalid-conversion-from-EGLNativeDisplayType-to-void.patch
deleted file mode 100644
index 3c33cfc10..000000000
--- a/meta-agl-profile-cluster-qt5/recipes-qt/qt5/files/0002-fixed-invalid-conversion-from-EGLNativeDisplayType-to-void.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From 9514c51b5a6881c445586fa3a232ccd47fe4b1e5 Mon Sep 17 00:00:00 2001
-From: Stefan Zehetbauer
-Date: Fri, 14 Dec 2018 13:26:03 +0100
-Subject: [PATCH] fixed invalid conversion from EGLNativeDisplayType to void*
-
----
- .../eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmintegration.cpp | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmintegration.cpp b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmintegration.cpp
-index d495a8d..34ca9e8 100644
---- a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmintegration.cpp
-+++ b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmintegration.cpp
-@@ -82,7 +82,7 @@ EGLDisplay QEglFSKmsGbmIntegration::createDisplay(EGLNativeDisplayType nativeDis
- }
-
- if (getPlatformDisplay) {
-- display = getPlatformDisplay(EGL_PLATFORM_GBM_KHR, nativeDisplay, nullptr);
-+ display = getPlatformDisplay(EGL_PLATFORM_GBM_KHR, reinterpret_cast<void *>(&nativeDisplay), nullptr);
- } else {
- qCDebug(qLcEglfsKmsDebug, "No eglGetPlatformDisplay for GBM, falling back to eglGetDisplay");
- display = eglGetDisplay(nativeDisplay);
---
-1.9.1
diff --git a/meta-agl-profile-cluster-qt5/recipes-qt/qt5/qtbase_%.bbappend b/meta-agl-profile-cluster-qt5/recipes-qt/qt5/qtbase_%.bbappend
deleted file mode 100644
index e94ef03ae..000000000
--- a/meta-agl-profile-cluster-qt5/recipes-qt/qt5/qtbase_%.bbappend
+++ /dev/null
@@ -1,12 +0,0 @@
-#Enable eglfs for QT based application
-
-FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
-
-# FIXME: Disabled as they do not apply against 5.13.2, and it is
-# unclear if they are still required for building dra7xx-evm,
-# which fails for what looks like a different reason.
-#SRC_URI += " file://0001-fixed-eglfs_kms-fails-to-build.patch \
-# file://0002-fixed-invalid-conversion-from-EGLNativeDisplayType-to-void.patch \
-# "
-
-PACKAGECONFIG_GL_append = "${@bb.utils.contains('DISTRO_FEATURES', 'opengl', ' eglfs kms gbm', '', d)}"
diff --git a/meta-agl-profile-cluster-qt5/recipes-qt/qt5/qtcompositor-conf_1.0.bb b/meta-agl-profile-cluster-qt5/recipes-qt/qt5/qtcompositor-conf_1.0.bb
deleted file mode 100644
index 49111b6e8..000000000
--- a/meta-agl-profile-cluster-qt5/recipes-qt/qt5/qtcompositor-conf_1.0.bb
+++ /dev/null
@@ -1,40 +0,0 @@
-SUMMARY = "Configuration files for running wayland with a non-weston compositor"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
-
-inherit allarch agl-graphical
-
-do_configure[noexec] = "1"
-do_compile[noexec] = "1"
-
-do_install() {
- # Add a rule to ensure the 'display' user has permissions to
- # open the graphics device
- install -d ${D}${sysconfdir}/udev/rules.d
- cat >${D}${sysconfdir}/udev/rules.d/zz-dri.rules <<'EOF'
-SUBSYSTEM=="drm", MODE="0660", GROUP="${WESTONGROUP}", SECLABEL{smack}="*"
-EOF
-
- # user 'display' must also be able to access /dev/input/*
- cat >${D}${sysconfdir}/udev/rules.d/zz-input.rules <<'EOF'
-SUBSYSTEM=="input", MODE="0660", GROUP="input", SECLABEL{smack}="^"
-EOF
-
- # user 'display' must also be able to access /dev/media*, etc.
- cat >${D}${sysconfdir}/udev/rules.d/zz-remote-display.rules <<'EOF'
-SUBSYSTEM=="media", MODE="0660", GROUP="display", SECLABEL{smack}="*"
-SUBSYSTEM=="video4linux", MODE="0660", GROUP="display", SECLABEL{smack}="*"
-KERNEL=="uvcs", SUBSYSTEM=="misc", MODE="0660", GROUP="display", SECLABEL{smack}="*"
-KERNEL=="rgnmm", SUBSYSTEM=="misc", MODE="0660", GROUP="display", SECLABEL{smack}="*"
-EOF
-}
-
-do_install_append_imx() {
- install -d ${D}${sysconfdir}/udev/rules.d
- cat >>${D}${sysconfdir}/udev/rules.d/zz-dri.rules <<'EOF'
-SUBSYSTEM=="gpu_class", MODE="0660", GROUP="${WESTONGROUP}", SECLABEL{smack}="*"
-EOF
-
-}
-
-RCONFLICTS_${PN} = "weston-init"
diff --git a/meta-agl-profile-cluster/LICENSE b/meta-agl-profile-cluster/LICENSE
deleted file mode 100644
index e8758f89c..000000000
--- a/meta-agl-profile-cluster/LICENSE
+++ /dev/null
@@ -1,20 +0,0 @@
-Different components of the AGL layers are under different licenses (a mix
-of MIT and GPLv2). See LICENSE.GPL-2.0-only and LICENSE.MIT for further
-details of the individual licenses.
-
-All metadata (e.g. .bb, .bbappend, .bbclass, .inc, templates/* and similar)
-is MIT licensed unless otherwise stated.
-Source code included in tree for individual recipes (e.g. patches) are under
-the LICENSE stated in the associated recipe (.bb file) unless otherwise stated.
-
-License information for any other files (scripts) is either explicitly stated
-or defaults to GPL version 2 only.
-
-Individual files can contain the following style tags instead of the full
-license text to identify their license:
-
- SPDX-License-Identifier: GPL-2.0-only
- SPDX-License-Identifier: MIT
-
-This enables machine processing of license information based on the SPDX
-License Identifiers that are here available: http://spdx.org/licenses/
diff --git a/meta-agl-profile-cluster/LICENSE.GPL-2.0-only b/meta-agl-profile-cluster/LICENSE.GPL-2.0-only
deleted file mode 100644
index 5db3c0a21..000000000
--- a/meta-agl-profile-cluster/LICENSE.GPL-2.0-only
+++ /dev/null
@@ -1,288 +0,0 @@
- GNU GENERAL PUBLIC LICENSE
- Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users. This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it. (Some other Free Software Foundation software is covered by
-the GNU Lesser General Public License instead.) You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
- To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have. You must make sure that they, too, receive or can get the
-source code. And you must show them these terms so they know their
-rights.
-
- We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
- Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software. If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
- Finally, any free program is threatened constantly by software
-patents. We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary. To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- GNU GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License. The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language. (Hereinafter, translation is included without limitation in
-the term "modification".) Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
- 1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
- 2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) You must cause the modified files to carry prominent notices
- stating that you changed the files and the date of any change.
-
- b) You must cause any work that you distribute or publish, that in
- whole or in part contains or is derived from the Program or any
- part thereof, to be licensed as a whole at no charge to all third
- parties under the terms of this License.
-
- c) If the modified program normally reads commands interactively
- when run, you must cause it, when started running for such
- interactive use in the most ordinary way, to print or display an
- announcement including an appropriate copyright notice and a
- notice that there is no warranty (or else, saying that you provide
- a warranty) and that users may redistribute the program under
- these conditions, and telling the user how to view a copy of this
- License. (Exception: if the Program itself is interactive but
- does not normally print such an announcement, your work based on
- the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
- a) Accompany it with the complete corresponding machine-readable
- source code, which must be distributed under the terms of Sections
- 1 and 2 above on a medium customarily used for software interchange; or,
-
- b) Accompany it with a written offer, valid for at least three
- years, to give any third party, for a charge no more than your
- cost of physically performing source distribution, a complete
- machine-readable copy of the corresponding source code, to be
- distributed under the terms of Sections 1 and 2 above on a medium
- customarily used for software interchange; or,
-
- c) Accompany it with the information you received as to the offer
- to distribute corresponding source code. (This alternative is
- allowed only for noncommercial distribution and only if you
- received the program in object code or executable form with such
- an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it. For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable. However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License. Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
- 5. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Program or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
- 6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
- 7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all. For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded. In such case, this License incorporates
-the limitation as if written in the body of this License.
-
- 9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation. If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
- 10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission. For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this. Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
- NO WARRANTY
-
- 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
- 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
-Note:
-Individual files contain the following tag instead of the full license text.
-
- SPDX-License-Identifier: GPL-2.0-only
-
-This enables machine processing of license information based on the SPDX
-License Identifiers that are here available: http://spdx.org/licenses/
diff --git a/meta-agl-profile-cluster/LICENSE.MIT b/meta-agl-profile-cluster/LICENSE.MIT
deleted file mode 100644
index a6919eb7e..000000000
--- a/meta-agl-profile-cluster/LICENSE.MIT
+++ /dev/null
@@ -1,25 +0,0 @@
-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 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.
-
-Note:
-Individual files contain the following tag instead of the full license text.
-
- SPDX-License-Identifier: MIT
-
-This enables machine processing of license information based on the SPDX
-License Identifiers that are here available: http://spdx.org/licenses/
diff --git a/meta-agl-profile-cluster/conf/layer.conf b/meta-agl-profile-cluster/conf/layer.conf
deleted file mode 100644
index e71e04c90..000000000
--- a/meta-agl-profile-cluster/conf/layer.conf
+++ /dev/null
@@ -1,12 +0,0 @@
-# We have a conf and classes directory, add to BBPATH
-BBPATH =. "${LAYERDIR}:"
-
-# We have recipes-* directories, add to BBFILES
-BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
- ${LAYERDIR}/recipes-*/*/*.bbappend"
-
-BBFILE_COLLECTIONS += "aglprofilecluster"
-BBFILE_PATTERN_aglprofilecluster = "^${LAYERDIR}/"
-BBFILE_PRIORITY_aglprofilecluster = "70"
-
-LAYERSERIES_COMPAT_aglprofilecluster = "dunfell"
diff --git a/meta-agl-profile-cluster/recipes-platform/images/agl-image-cluster.bb b/meta-agl-profile-cluster/recipes-platform/images/agl-image-cluster.bb
deleted file mode 100644
index 552d7a74e..000000000
--- a/meta-agl-profile-cluster/recipes-platform/images/agl-image-cluster.bb
+++ /dev/null
@@ -1,9 +0,0 @@
-SUMMARY = "A basic Wayland based cluster image"
-
-require agl-image-cluster.inc
-
-LICENSE = "MIT"
-
-IMAGE_INSTALL_append = "\
- profile-cluster \
- "
diff --git a/meta-agl-profile-cluster/recipes-platform/images/agl-image-cluster.inc b/meta-agl-profile-cluster/recipes-platform/images/agl-image-cluster.inc
deleted file mode 100644
index 93826aa46..000000000
--- a/meta-agl-profile-cluster/recipes-platform/images/agl-image-cluster.inc
+++ /dev/null
@@ -1,7 +0,0 @@
-require recipes-platform/images/agl-image-boot.inc
-
-IMAGE_FEATURES += "splash package-management ssh-server-dropbear"
-
-inherit features_check
-
-REQUIRED_DISTRO_FEATURES = "wayland"
diff --git a/meta-agl-profile-cluster/recipes-platform/packagegroups/packagegroup-agl-profile-cluster.bb b/meta-agl-profile-cluster/recipes-platform/packagegroups/packagegroup-agl-profile-cluster.bb
deleted file mode 100644
index c0c612467..000000000
--- a/meta-agl-profile-cluster/recipes-platform/packagegroups/packagegroup-agl-profile-cluster.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-SUMMARY = "The middleware for AGL cluster profile"
-DESCRIPTION = "The set of packages required for AGL Cluster Distribution"
-LICENSE = "MIT"
-
-inherit packagegroup
-
-PACKAGES = "\
- packagegroup-agl-profile-cluster \
- profile-cluster \
- "
-
-ALLOW_EMPTY_${PN} = "1"
-
-RDEPENDS_${PN} += "\
- packagegroup-agl-image-boot \
- packagegroup-agl-core-security \
- packagegroup-agl-graphical-weston \
-"
-
-RDEPENDS_profile-cluster = "${PN}"
diff --git a/meta-agl-profile-core/LICENSE b/meta-agl-profile-core/LICENSE
deleted file mode 100644
index e8758f89c..000000000
--- a/meta-agl-profile-core/LICENSE
+++ /dev/null
@@ -1,20 +0,0 @@
-Different components of the AGL layers are under different licenses (a mix
-of MIT and GPLv2). See LICENSE.GPL-2.0-only and LICENSE.MIT for further
-details of the individual licenses.
-
-All metadata (e.g. .bb, .bbappend, .bbclass, .inc, templates/* and similar)
-is MIT licensed unless otherwise stated.
-Source code included in tree for individual recipes (e.g. patches) are under
-the LICENSE stated in the associated recipe (.bb file) unless otherwise stated.
-
-License information for any other files (scripts) is either explicitly stated
-or defaults to GPL version 2 only.
-
-Individual files can contain the following style tags instead of the full
-license text to identify their license:
-
- SPDX-License-Identifier: GPL-2.0-only
- SPDX-License-Identifier: MIT
-
-This enables machine processing of license information based on the SPDX
-License Identifiers that are here available: http://spdx.org/licenses/
diff --git a/meta-agl-profile-core/LICENSE.GPL-2.0-only b/meta-agl-profile-core/LICENSE.GPL-2.0-only
deleted file mode 100644
index 5db3c0a21..000000000
--- a/meta-agl-profile-core/LICENSE.GPL-2.0-only
+++ /dev/null
@@ -1,288 +0,0 @@
- GNU GENERAL PUBLIC LICENSE
- Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users. This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it. (Some other Free Software Foundation software is covered by
-the GNU Lesser General Public License instead.) You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
- To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have. You must make sure that they, too, receive or can get the
-source code. And you must show them these terms so they know their
-rights.
-
- We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
- Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software. If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
- Finally, any free program is threatened constantly by software
-patents. We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary. To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- GNU GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License. The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language. (Hereinafter, translation is included without limitation in
-the term "modification".) Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
- 1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
- 2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) You must cause the modified files to carry prominent notices
- stating that you changed the files and the date of any change.
-
- b) You must cause any work that you distribute or publish, that in
- whole or in part contains or is derived from the Program or any
- part thereof, to be licensed as a whole at no charge to all third
- parties under the terms of this License.
-
- c) If the modified program normally reads commands interactively
- when run, you must cause it, when started running for such
- interactive use in the most ordinary way, to print or display an
- announcement including an appropriate copyright notice and a
- notice that there is no warranty (or else, saying that you provide
- a warranty) and that users may redistribute the program under
- these conditions, and telling the user how to view a copy of this
- License. (Exception: if the Program itself is interactive but
- does not normally print such an announcement, your work based on
- the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
- a) Accompany it with the complete corresponding machine-readable
- source code, which must be distributed under the terms of Sections
- 1 and 2 above on a medium customarily used for software interchange; or,
-
- b) Accompany it with a written offer, valid for at least three
- years, to give any third party, for a charge no more than your
- cost of physically performing source distribution, a complete
- machine-readable copy of the corresponding source code, to be
- distributed under the terms of Sections 1 and 2 above on a medium
- customarily used for software interchange; or,
-
- c) Accompany it with the information you received as to the offer
- to distribute corresponding source code. (This alternative is
- allowed only for noncommercial distribution and only if you
- received the program in object code or executable form with such
- an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it. For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable. However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License. Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
- 5. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Program or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
- 6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
- 7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all. For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded. In such case, this License incorporates
-the limitation as if written in the body of this License.
-
- 9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation. If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
- 10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission. For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this. Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
- NO WARRANTY
-
- 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
- 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
-Note:
-Individual files contain the following tag instead of the full license text.
-
- SPDX-License-Identifier: GPL-2.0-only
-
-This enables machine processing of license information based on the SPDX
-License Identifiers that are here available: http://spdx.org/licenses/
diff --git a/meta-agl-profile-core/LICENSE.MIT b/meta-agl-profile-core/LICENSE.MIT
deleted file mode 100644
index a6919eb7e..000000000
--- a/meta-agl-profile-core/LICENSE.MIT
+++ /dev/null
@@ -1,25 +0,0 @@
-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 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.
-
-Note:
-Individual files contain the following tag instead of the full license text.
-
- SPDX-License-Identifier: MIT
-
-This enables machine processing of license information based on the SPDX
-License Identifiers that are here available: http://spdx.org/licenses/
diff --git a/meta-agl-profile-core/conf/layer.conf b/meta-agl-profile-core/conf/layer.conf
deleted file mode 100644
index fef746d76..000000000
--- a/meta-agl-profile-core/conf/layer.conf
+++ /dev/null
@@ -1,12 +0,0 @@
-# We have a conf and classes directory, add to BBPATH
-BBPATH =. "${LAYERDIR}:"
-
-# We have recipes-* directories, add to BBFILES
-BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
- ${LAYERDIR}/recipes-*/*/*.bbappend"
-
-BBFILE_COLLECTIONS += "aglprofilecore"
-BBFILE_PATTERN_aglprofilecore = "^${LAYERDIR}/"
-BBFILE_PRIORITY_aglprofilecore = "80"
-
-LAYERSERIES_COMPAT_aglprofilecore = "dunfell"
diff --git a/meta-agl-profile-core/recipes-apis/agl-service-bluetooth-map/agl-service-bluetooth-map_git.bb b/meta-agl-profile-core/recipes-apis/agl-service-bluetooth-map/agl-service-bluetooth-map_git.bb
deleted file mode 100644
index bc53051f2..000000000
--- a/meta-agl-profile-core/recipes-apis/agl-service-bluetooth-map/agl-service-bluetooth-map_git.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "Bluetooth MAP Service Binding"
-DESCRIPTION = "AGL Bluetooth MAP Service Binding"
-HOMEPAGE = "https://gerrit.automotivelinux.org/gerrit/#/admin/projects/apps/agl-service-bluetooth-map"
-SECTION = "apps"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=89aea4e17d99a7cacdbeed46a0096b10"
-
-SRC_URI = "git://gerrit.automotivelinux.org/gerrit/apps/agl-service-bluetooth-map;protocol=https;branch=${AGL_BRANCH}"
-SRCREV = "${AGL_APP_REVISION}"
-
-PV = "1.0+git${SRCPV}"
-S = "${WORKDIR}/git"
-
-DEPENDS = "glib-2.0 json-c"
-RDEPENDS_${PN} = "bluez5-obex agl-service-bluetooth"
-
-inherit cmake aglwgt pkgconfig
diff --git a/meta-agl-profile-core/recipes-apis/agl-service-bluetooth-pbap/agl-service-bluetooth-pbap_git.bb b/meta-agl-profile-core/recipes-apis/agl-service-bluetooth-pbap/agl-service-bluetooth-pbap_git.bb
deleted file mode 100644
index 3f9ff7be1..000000000
--- a/meta-agl-profile-core/recipes-apis/agl-service-bluetooth-pbap/agl-service-bluetooth-pbap_git.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "Bluetooth PBAP Service Binding"
-DESCRIPTION = "AGL Bluetooth PBAP Service Binding"
-HOMEPAGE = "https://gerrit.automotivelinux.org/gerrit/#/admin/projects/apps/agl-service-bluetooth-pbap"
-SECTION = "apps"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=ae6497158920d9524cf208c09cc4c984"
-
-SRC_URI = "git://gerrit.automotivelinux.org/gerrit/apps/agl-service-bluetooth-pbap;protocol=https;branch=${AGL_BRANCH}"
-SRCREV = "${AGL_APP_REVISION}"
-
-PV = "1.0+git${SRCPV}"
-S = "${WORKDIR}/git"
-
-DEPENDS = "glib-2.0 json-c"
-RDEPENDS_${PN} = "bluez5-obex agl-service-bluetooth agl-service-data-persistence"
-
-inherit cmake aglwgt pkgconfig
diff --git a/meta-agl-profile-core/recipes-apis/agl-service-bluetooth/agl-service-bluetooth_git.bb b/meta-agl-profile-core/recipes-apis/agl-service-bluetooth/agl-service-bluetooth_git.bb
deleted file mode 100644
index 8cfa8ec8f..000000000
--- a/meta-agl-profile-core/recipes-apis/agl-service-bluetooth/agl-service-bluetooth_git.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "Bluetooth Service Binding"
-DESCRIPTION = "AGL Bluetooth Service Binding"
-HOMEPAGE = "https://gerrit.automotivelinux.org/gerrit/#/admin/projects/apps/agl-service-bluetooth"
-SECTION = "apps"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=ae6497158920d9524cf208c09cc4c984"
-
-SRC_URI = "git://gerrit.automotivelinux.org/gerrit/apps/agl-service-bluetooth;protocol=https;branch=${AGL_BRANCH}"
-SRCREV = "${AGL_APP_REVISION}"
-
-PV = "1.0+git${SRCPV}"
-S = "${WORKDIR}/git"
-
-DEPENDS = "glib-2.0 json-c"
-RDEPENDS_${PN} = "agl-service-data-persistence agl-service-network"
-
-inherit cmake aglwgt pkgconfig
diff --git a/meta-agl-profile-core/recipes-apis/agl-service-can-low-level/agl-service-can-low-level_git.bb b/meta-agl-profile-core/recipes-apis/agl-service-can-low-level/agl-service-can-low-level_git.bb
deleted file mode 100644
index 83f6c1e75..000000000
--- a/meta-agl-profile-core/recipes-apis/agl-service-can-low-level/agl-service-can-low-level_git.bb
+++ /dev/null
@@ -1,23 +0,0 @@
-SUMMARY = "Low level CAN service"
-DESCRIPTION = "AGL Service application for read and decode CAN messages"
-HOMEPAGE = "https://gerrit.automotivelinux.org/gerrit/#/admin/projects/apps/low-level-can-service"
-SECTION = "apps"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
-
-SRC_URI = "git://gerrit.automotivelinux.org/gerrit/apps/agl-service-can-low-level;protocol=https;branch=${AGL_BRANCH}"
-SRCREV = "${AGL_APP_REVISION}"
-
-PV = "${AGLVERSION}"
-S = "${WORKDIR}/git"
-
-DEPENDS = "libafb-helpers libappcontroller"
-
-inherit cmake aglwgt pkgconfig ptest
-
-# For now, just enable J1939 on the qemu platforms where we know the
-# linux-yocto kernel is new enough (>= 5.4) and has the support enabled.
-AGLWGT_CMAKE_CONFIGURE_ARGS_append_qemuall = " -DWITH_FEATURE_J1939=ON"
-
-RDEPENDS_${PN} = "virtual/low-can-dev-mapping"
diff --git a/meta-agl-profile-core/recipes-apis/agl-service-can-low-level/files/run-ptest b/meta-agl-profile-core/recipes-apis/agl-service-can-low-level/files/run-ptest
deleted file mode 100644
index cc9c41365..000000000
--- a/meta-agl-profile-core/recipes-apis/agl-service-can-low-level/files/run-ptest
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-
-afm-test /usr/AGL/apps/testwgt/low-can-service-test.wgt
diff --git a/meta-agl-profile-core/recipes-apis/agl-service-data-persistence/agl-service-data-persistence_git.bb b/meta-agl-profile-core/recipes-apis/agl-service-data-persistence/agl-service-data-persistence_git.bb
deleted file mode 100644
index 569f0707e..000000000
--- a/meta-agl-profile-core/recipes-apis/agl-service-data-persistence/agl-service-data-persistence_git.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-DESCRIPTION = "AGL low level user database binding"
-HOMEPAGE = "https://git.automotivelinux.org/apps/agl-service-data-persistence/"
-SECTION = "base"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=ae6497158920d9524cf208c09cc4c984"
-
-SRC_URI = "git://gerrit.automotivelinux.org/gerrit/apps/agl-service-data-persistence;protocol=https;branch=${AGL_BRANCH}"
-SRCREV = "${AGL_APP_REVISION}"
-
-inherit cmake aglwgt pkgconfig
-
-PV = "1.0+git${SRCPV}"
-S = "${WORKDIR}/git"
-
-DEPENDS += " af-binder json-c gdbm "
-
diff --git a/meta-agl-profile-core/recipes-apis/agl-service-geoclue/agl-service-geoclue_git.bb b/meta-agl-profile-core/recipes-apis/agl-service-geoclue/agl-service-geoclue_git.bb
deleted file mode 100644
index a12923247..000000000
--- a/meta-agl-profile-core/recipes-apis/agl-service-geoclue/agl-service-geoclue_git.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-SUMMARY = "GeoClue Service Binding"
-DESCRIPTION = "AGL GeoClue Service Binding"
-HOMEPAGE = "https://gerrit.automotivelinux.org/gerrit/#/admin/projects/apps/agl-service-geoclue"
-SECTION = "apps"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=ae6497158920d9524cf208c09cc4c984"
-
-SRC_URI = "git://gerrit.automotivelinux.org/gerrit/apps/agl-service-geoclue;protocol=https;branch=${AGL_BRANCH}"
-SRCREV = "${AGL_APP_REVISION}"
-
-PV = "1.0+git${SRCPV}"
-S = "${WORKDIR}/git"
-
-DEPENDS = "json-c geoclue"
-
-inherit cmake aglwgt pkgconfig
diff --git a/meta-agl-profile-core/recipes-apis/agl-service-geofence/agl-service-geofence_git.bb b/meta-agl-profile-core/recipes-apis/agl-service-geofence/agl-service-geofence_git.bb
deleted file mode 100644
index 8bdcd7c93..000000000
--- a/meta-agl-profile-core/recipes-apis/agl-service-geofence/agl-service-geofence_git.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "Geofence Service Binding"
-DESCRIPTION = "AGL Geofence Service Binding"
-HOMEPAGE = "https://gerrit.automotivelinux.org/gerrit/#/admin/projects/apps/agl-service-geofence"
-SECTION = "apps"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=ae6497158920d9524cf208c09cc4c984"
-
-SRC_URI = "git://gerrit.automotivelinux.org/gerrit/apps/agl-service-geofence;protocol=https;branch=${AGL_BRANCH}"
-SRCREV = "${AGL_APP_REVISION}"
-
-PV = "1.0+git${SRCPV}"
-S = "${WORKDIR}/git"
-
-DEPENDS = "json-c glib-2.0"
-RDEPENDS_${PN} = "agl-service-gps"
-
-inherit cmake aglwgt pkgconfig
diff --git a/meta-agl-profile-core/recipes-apis/agl-service-gps/agl-service-gps_git.bb b/meta-agl-profile-core/recipes-apis/agl-service-gps/agl-service-gps_git.bb
deleted file mode 100644
index 254e5e409..000000000
--- a/meta-agl-profile-core/recipes-apis/agl-service-gps/agl-service-gps_git.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "GPS/GNSS Service Binding"
-DESCRIPTION = "AGL GPS/GNSS Service Binding"
-HOMEPAGE = "https://gerrit.automotivelinux.org/gerrit/#/admin/projects/apps/agl-service-gps"
-SECTION = "apps"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=ae6497158920d9524cf208c09cc4c984"
-
-SRC_URI = "git://gerrit.automotivelinux.org/gerrit/apps/agl-service-gps;protocol=https;branch=${AGL_BRANCH}"
-SRCREV = "${AGL_APP_REVISION}"
-
-PV = "1.0+git${SRCPV}"
-S = "${WORKDIR}/git"
-
-DEPENDS = "json-c gpsd"
-RDEPENDS_${PN} = "libgps"
-
-inherit cmake aglwgt pkgconfig
diff --git a/meta-agl-profile-core/recipes-apis/agl-service-hvac/agl-service-hvac-conf_git.bb b/meta-agl-profile-core/recipes-apis/agl-service-hvac/agl-service-hvac-conf_git.bb
deleted file mode 100644
index e4dccbf3d..000000000
--- a/meta-agl-profile-core/recipes-apis/agl-service-hvac/agl-service-hvac-conf_git.bb
+++ /dev/null
@@ -1,27 +0,0 @@
-SUMMARY = "HVAC Service Binding Configuration"
-DESCRIPTION = "AGL HVAC Service Binding Configuration"
-HOMEPAGE = "https://gerrit.automotivelinux.org/gerrit/#/admin/projects/apps/agl-service-hvac"
-SECTION = "apps"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=ae6497158920d9524cf208c09cc4c984"
-
-SRC_URI = "git://gerrit.automotivelinux.org/gerrit/apps/agl-service-hvac;protocol=https;branch=${AGL_BRANCH}"
-SRCREV = "${AGL_APP_REVISION}"
-
-PV = "1.0+git${SRCPV}"
-S = "${WORKDIR}/git"
-
-PACKAGE_ARCH = "${MACHINE_ARCH}"
-
-do_configure[noexec] = "1"
-do_compile[noexec] = "1"
-
-do_install () {
- install -D -m 644 ${S}/hvac.json ${D}${sysconfdir}/hvac.json
-}
-
-do_install_append_ulcb() {
- sed -i -e "s#vcan0#sllin0#g" ${D}${sysconfdir}/hvac.json
-}
-
diff --git a/meta-agl-profile-core/recipes-apis/agl-service-hvac/agl-service-hvac_git.bb b/meta-agl-profile-core/recipes-apis/agl-service-hvac/agl-service-hvac_git.bb
deleted file mode 100644
index 545ab6a28..000000000
--- a/meta-agl-profile-core/recipes-apis/agl-service-hvac/agl-service-hvac_git.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-SUMMARY = "HVAC Service Binding"
-DESCRIPTION = "AGL HVAC Service Binding"
-HOMEPAGE = "https://gerrit.automotivelinux.org/gerrit/#/admin/projects/apps/agl-service-hvac"
-SECTION = "apps"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=ae6497158920d9524cf208c09cc4c984"
-
-SRC_URI = "git://gerrit.automotivelinux.org/gerrit/apps/agl-service-hvac;protocol=https;branch=${AGL_BRANCH}"
-SRCREV = "${AGL_APP_REVISION}"
-
-PV = "1.0+git${SRCPV}"
-S = "${WORKDIR}/git"
-
-DEPENDS = "json-c"
-
-inherit cmake aglwgt pkgconfig
-
-RDEPENDS_${PN} += "agl-service-identity-agent agl-service-can-low-level"
-RRECOMMENDS_${PN} += "agl-service-hvac-conf"
diff --git a/meta-agl-profile-core/recipes-apis/agl-service-identity-agent/agl-service-identity-agent_git.bb b/meta-agl-profile-core/recipes-apis/agl-service-identity-agent/agl-service-identity-agent_git.bb
deleted file mode 100644
index f2474be7b..000000000
--- a/meta-agl-profile-core/recipes-apis/agl-service-identity-agent/agl-service-identity-agent_git.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-DESCRIPTION = "AGL identity agent binding"
-HOMEPAGE = "https://gitlab.com/iotbzh/aia-binding"
-SECTION = "base"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
-
-SRC_URI = "git://gerrit.automotivelinux.org/gerrit/apps/agl-service-identity-agent;protocol=https;branch=${AGL_BRANCH}"
-SRCREV = "${AGL_APP_REVISION}"
-PV = "1.0+git${SRCPV}"
-
-inherit cmake aglwgt pkgconfig
-
-S = "${WORKDIR}/git"
-
-DEPENDS = "curl af-binder json-c systemd"
-
diff --git a/meta-agl-profile-core/recipes-apis/agl-service-iiodevices/agl-service-iiodevices_git.bb b/meta-agl-profile-core/recipes-apis/agl-service-iiodevices/agl-service-iiodevices_git.bb
deleted file mode 100644
index cc893698c..000000000
--- a/meta-agl-profile-core/recipes-apis/agl-service-iiodevices/agl-service-iiodevices_git.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-SUMMARY = "IIODEVICES Service Binding"
-DESCRIPTION = "AGL IIODEVICES Service Binding"
-HOMEPAGE = "https://gerrit.automotivelinux.org/gerrit/#/admin/projects/apps/agl-service-iiodevices"
-SECTION = "apps"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=ae6497158920d9524cf208c09cc4c984"
-
-SRC_URI = "git://gerrit.automotivelinux.org/gerrit/apps/agl-service-iiodevices;protocol=https;branch=${AGL_BRANCH}"
-SRCREV = "${AGL_APP_REVISION}"
-
-PV = "1.0+git${SRCPV}"
-S = "${WORKDIR}/git"
-
-DEPENDS = "json-c libiio glib-2.0"
-
-RDEPENDS_${PN} = "libiio"
-
-inherit cmake aglwgt pkgconfig
diff --git a/meta-agl-profile-core/recipes-apis/agl-service-mediascanner/agl-service-mediascanner_git.bb b/meta-agl-profile-core/recipes-apis/agl-service-mediascanner/agl-service-mediascanner_git.bb
deleted file mode 100644
index c50a04804..000000000
--- a/meta-agl-profile-core/recipes-apis/agl-service-mediascanner/agl-service-mediascanner_git.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "Mediascanner Service Binding"
-DESCRIPTION = "AGL Mediascanner Service Binding"
-HOMEPAGE = "https://gerrit.automotivelinux.org/gerrit/#/admin/projects/apps/agl-service-mediascanner"
-SECTION = "apps"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=ae6497158920d9524cf208c09cc4c984"
-
-SRC_URI = "git://gerrit.automotivelinux.org/gerrit/apps/agl-service-mediascanner;protocol=https;branch=${AGL_BRANCH}"
-SRCREV = "${AGL_APP_REVISION}"
-
-PV = "1.0+git${SRCPV}"
-S = "${WORKDIR}/git"
-
-DEPENDS = "json-c sqlite3 glib-2.0"
-RDEPENDS_${PN} = "lightmediascanner"
-
-inherit cmake aglwgt pkgconfig
diff --git a/meta-agl-profile-core/recipes-apis/agl-service-navigation/agl-service-navigation_git.bb b/meta-agl-profile-core/recipes-apis/agl-service-navigation/agl-service-navigation_git.bb
deleted file mode 100755
index 71a615cf4..000000000
--- a/meta-agl-profile-core/recipes-apis/agl-service-navigation/agl-service-navigation_git.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "Navigation Service Binding"
-DESCRIPTION = "AGL Navigation Service API Binding"
-SECTION = "apps"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=ae6497158920d9524cf208c09cc4c984"
-
-DEPENDS = "json-c libdbus-c++"
-
-SRC_URI = "git://gerrit.automotivelinux.org/gerrit/apps/agl-service-navigation;protocol=https;branch=${AGL_BRANCH}"
-SRCREV = "${AGL_APP_REVISION}"
-
-PV = "0.1+git${SRCPV}"
-S = "${WORKDIR}/git"
-
-inherit cmake aglwgt pkgconfig
-
-RDEPENDS_${PN} += "json-c libdbus-c++"
diff --git a/meta-agl-profile-core/recipes-apis/agl-service-network/agl-service-network_git.bb b/meta-agl-profile-core/recipes-apis/agl-service-network/agl-service-network_git.bb
deleted file mode 100644
index c7fb72f22..000000000
--- a/meta-agl-profile-core/recipes-apis/agl-service-network/agl-service-network_git.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-SUMMARY = "Network Service Binding"
-DESCRIPTION = "AGL Network Service Binding"
-HOMEPAGE = "https://gerrit.automotivelinux.org/gerrit/#/admin/projects/apps/agl-service-network"
-SECTION = "apps"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=ae6497158920d9524cf208c09cc4c984"
-
-SRC_URI = "git://gerrit.automotivelinux.org/gerrit/apps/agl-service-network;protocol=https;branch=${AGL_BRANCH}"
-SRCREV = "${AGL_APP_REVISION}"
-
-PV = "1.0+git${SRCPV}"
-S = "${WORKDIR}/git"
-
-DEPENDS = "glib-2.0 json-c"
-
-inherit cmake aglwgt pkgconfig
-
-do_install_append() {
- install -d ${D}${sbindir}
- install -m 755 ${B}/build-release/test/agl-service-network-ctl ${D}${sbindir}
-}
-
-FILES_${PN}-tools = "${sbindir}/agl-service-network-ctl"
-PACKAGES_prepend = "${PN}-tools "
diff --git a/meta-agl-profile-core/recipes-apis/agl-service-nfc/agl-service-nfc_git.bb b/meta-agl-profile-core/recipes-apis/agl-service-nfc/agl-service-nfc_git.bb
deleted file mode 100644
index 1757dcb38..000000000
--- a/meta-agl-profile-core/recipes-apis/agl-service-nfc/agl-service-nfc_git.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-SUMMARY = "agl-service-nfc"
-DESCRIPTION = ""
-HOMEPAGE = "https://git.automotivelinux.org/apps/agl-service-nfc/"
-SECTION = "apps"
-DEPENDS = "af-binder json-c glib-2.0 neardal"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
-
-inherit cmake pkgconfig aglwgt
-
-SRC_URI = "git://gerrit.automotivelinux.org/gerrit/apps/agl-service-nfc;protocol=https;branch=${AGL_BRANCH}"
-SRCREV = "${AGL_APP_REVISION}"
-
-PV = "1.0+git${SRCPV}"
-S = "${WORKDIR}/git"
-
diff --git a/meta-agl-profile-core/recipes-apis/agl-service-platform-info/agl-service-platform-info_git.bb b/meta-agl-profile-core/recipes-apis/agl-service-platform-info/agl-service-platform-info_git.bb
deleted file mode 100644
index 43eed3f2e..000000000
--- a/meta-agl-profile-core/recipes-apis/agl-service-platform-info/agl-service-platform-info_git.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-SUMMARY = "Platform info provider binding"
-DESCRIPTION = "AGL Platform info provider binding"
-HOMEPAGE = "https://git.automotivelinux.org/apps/agl-service-platform-info/"
-SECTION = "apps"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
-
-SRC_URI = "git://gerrit.automotivelinux.org/gerrit/apps/agl-service-platform-info;protocol=https;branch=${AGL_BRANCH}"
-SRCREV = "${AGL_APP_REVISION}"
-
-PV = "1.0+git${SRCPV}"
-S = "${WORKDIR}/git"
-
-DEPENDS = "libafb-helpers"
-
-inherit cmake aglwgt pkgconfig
diff --git a/meta-agl-profile-core/recipes-apis/agl-service-signal-composer/agl-service-signal-composer_git.bb b/meta-agl-profile-core/recipes-apis/agl-service-signal-composer/agl-service-signal-composer_git.bb
deleted file mode 100644
index bf714f45d..000000000
--- a/meta-agl-profile-core/recipes-apis/agl-service-signal-composer/agl-service-signal-composer_git.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "agl-service-signal-composer"
-DESCRIPTION = "AGL High Level Signaling service to handle CAN, LIN, and others signaling sources"
-HOMEPAGE = "https://git.automotivelinux.org/apps/agl-service-signal-composer/"
-SECTION = "apps"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
-
-inherit cmake pkgconfig aglwgt ptest
-
-DEPENDS += "lua lua-native libappcontroller libafb-helpers"
-RDEPENDS_${PN} += "lua"
-
-SRC_URI = "git://gerrit.automotivelinux.org/gerrit/apps/agl-service-signal-composer;protocol=https;branch=${AGL_BRANCH}"
-SRCREV = "${AGL_APP_REVISION}"
-
-PV = "${AGLVERSION}"
-S = "${WORKDIR}/git"
diff --git a/meta-agl-profile-core/recipes-apis/agl-service-signal-composer/files/run-ptest b/meta-agl-profile-core/recipes-apis/agl-service-signal-composer/files/run-ptest
deleted file mode 100644
index 49187ad85..000000000
--- a/meta-agl-profile-core/recipes-apis/agl-service-signal-composer/files/run-ptest
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-
-afm-test /usr/AGL/apps/testwgt/signal-composer-test.wgt
diff --git a/meta-agl-profile-core/recipes-apis/agl-service-telephony/agl-service-telephony_git.bb b/meta-agl-profile-core/recipes-apis/agl-service-telephony/agl-service-telephony_git.bb
deleted file mode 100644
index ff3913643..000000000
--- a/meta-agl-profile-core/recipes-apis/agl-service-telephony/agl-service-telephony_git.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "Telephony Service Binding"
-DESCRIPTION = "AGL Telephony Service Binding"
-HOMEPAGE = "https://gerrit.automotivelinux.org/gerrit/#/admin/projects/apps/agl-service-telephony"
-SECTION = "apps"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=ae6497158920d9524cf208c09cc4c984"
-
-SRC_URI = "git://gerrit.automotivelinux.org/gerrit/apps/agl-service-telephony;protocol=https;branch=${AGL_BRANCH}"
-SRCREV = "${AGL_APP_REVISION}"
-
-PV = "1.0+git${SRCPV}"
-S = "${WORKDIR}/git"
-
-DEPENDS = "json-c glib-2.0"
-RDEPENDS_${PN} = "ofono"
-
-inherit cmake aglwgt pkgconfig
diff --git a/meta-agl-profile-core/recipes-apis/agl-service-unicens-controller/agl-service-unicens-controller_git.bb b/meta-agl-profile-core/recipes-apis/agl-service-unicens-controller/agl-service-unicens-controller_git.bb
deleted file mode 100644
index 85ebc90f6..000000000
--- a/meta-agl-profile-core/recipes-apis/agl-service-unicens-controller/agl-service-unicens-controller_git.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-SUMMARY = "Infotainment network device control"
-DESCRIPTION = "Abstraction layer to control INICnet devices"
-HOMEPAGE = "https://gerrit.automotivelinux.org/gerrit/#/admin/projects/apps/agl-service-unicens-controller"
-SECTION = "apps"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
-
-SRC_URI = "gitsm://gerrit.automotivelinux.org/gerrit/apps/agl-service-unicens-controller;protocol=https;branch=${AGL_BRANCH}"
-SRCREV = "${AGL_APP_REVISION}"
-
-PV = "0.1+git${SRCPV}"
-S = "${WORKDIR}/git"
-
-inherit cmake aglwgt pkgconfig
-
-DEPENDS += "json-c af-binder libafb-helpers"
-RDEPENDS_${PN} += "agl-service-unicens"
-
diff --git a/meta-agl-profile-core/recipes-apis/agl-service-unicens/agl-service-unicens_git.bb b/meta-agl-profile-core/recipes-apis/agl-service-unicens/agl-service-unicens_git.bb
deleted file mode 100644
index e7e25c74e..000000000
--- a/meta-agl-profile-core/recipes-apis/agl-service-unicens/agl-service-unicens_git.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-SUMMARY = "4A - Infotainment network setup and access"
-DESCRIPTION = "Infotainment network setup and access (using Unified Centralized Network Stack)"
-HOMEPAGE = "https://gerrit.automotivelinux.org/gerrit/#/admin/projects/apps/agl-service-unicens"
-SECTION = "apps"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=89aea4e17d99a7cacdbeed46a0096b10"
-
-SRC_URI = "gitsm://gerrit.automotivelinux.org/gerrit/apps/agl-service-unicens;protocol=https;branch=${AGL_BRANCH}"
-SRCREV = "${AGL_APP_REVISION}"
-
-PV = "0.1+git${SRCPV}"
-S = "${WORKDIR}/git"
-
-inherit cmake aglwgt pkgconfig
-
-DEPENDS += "alsa-lib json-c systemd af-binder glib-2.0 libxml2 libafb-helpers"
-RDEPENDS_${PN} += "libxml2 "
-
diff --git a/meta-agl-profile-core/recipes-apis/agl-service-weather/agl-service-weather_git.bb b/meta-agl-profile-core/recipes-apis/agl-service-weather/agl-service-weather_git.bb
deleted file mode 100644
index 75532da42..000000000
--- a/meta-agl-profile-core/recipes-apis/agl-service-weather/agl-service-weather_git.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "Weather Service Binding"
-DESCRIPTION = "AGL Weather Service Binding"
-HOMEPAGE = "https://gerrit.automotivelinux.org/gerrit/#/admin/projects/apps/agl-service-weather"
-SECTION = "apps"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=ae6497158920d9524cf208c09cc4c984"
-
-SRC_URI = "git://gerrit.automotivelinux.org/gerrit/apps/agl-service-weather;protocol=https;branch=${AGL_BRANCH}"
-SRCREV = "${AGL_APP_REVISION}"
-
-PV = "1.0+git${SRCPV}"
-S = "${WORKDIR}/git"
-
-DEPENDS = "glib-2.0 json-c"
-RDEPENDS_${PN} = "agl-service-geoclue"
-
-inherit cmake aglwgt pkgconfig
diff --git a/meta-agl-profile-core/recipes-config/agl-login-manager/agl-login-manager_0.1.bb b/meta-agl-profile-core/recipes-config/agl-login-manager/agl-login-manager_0.1.bb
deleted file mode 100644
index 49efce796..000000000
--- a/meta-agl-profile-core/recipes-config/agl-login-manager/agl-login-manager_0.1.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-SUMMARY = "AGL Login manager"
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
-
-LOGIN_USER ??="1001 1002"
-
-RDEPENDS_${PN} += "af-main"
-
-do_install_append() {
-
- install -d ${D}${systemd_system_unitdir}/multi-user.target.wants/
-
- for AGL_USER in ${LOGIN_USER};do
- ln -s ../afm-user-session@.service ${D}${systemd_system_unitdir}/multi-user.target.wants/afm-user-session@${AGL_USER}.service
- done
-}
-
-FILES_${PN} += "${systemd_system_unitdir}"
diff --git a/meta-agl-profile-core/recipes-config/agl-users/agl-users_0.1.bb b/meta-agl-profile-core/recipes-config/agl-users/agl-users_0.1.bb
deleted file mode 100644
index 709a1091f..000000000
--- a/meta-agl-profile-core/recipes-config/agl-users/agl-users_0.1.bb
+++ /dev/null
@@ -1,27 +0,0 @@
-inherit allarch useradd
-
-SUMMARY = "AGL Users Seed"
-DESCRIPTION = "This is a core framework component that\
- defines how users are managed and who are the default users."
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
-
-ALLOW_EMPTY_${PN} = "1"
-
-USERADD_PACKAGES = "${PN}"
-
-USERADDEXTENSION = "useradd-staticids"
-
-GROUPADD_PARAM_${PN} = "\
- --system display ; \
- --system weston-launch ; \
- -g 1001 agl-driver ; \
- -g 1002 agl-passenger \
-"
-
-USERADD_PARAM_${PN} = "\
- -g 1001 -u 1001 -o -d /home/1001 -m -K PASS_MAX_DAYS=-1 agl-driver ; \
- -g 1002 -u 1002 -o -d /home/1002 -m -K PASS_MAX_DAYS=-1 agl-passenger ; \
- --gid display --groups weston-launch,video,input --home-dir /run/platform/display --shell /bin/false --comment \"Display daemon\" --key PASS_MAX_DAYS=-1 display \
-"
diff --git a/meta-agl-profile-core/recipes-config/dev-mapping/dev-mapping/dev-mapping.conf.default b/meta-agl-profile-core/recipes-config/dev-mapping/dev-mapping/dev-mapping.conf.default
deleted file mode 100644
index 7bd8bf2eb..000000000
--- a/meta-agl-profile-core/recipes-config/dev-mapping/dev-mapping/dev-mapping.conf.default
+++ /dev/null
@@ -1,6 +0,0 @@
-; Default CAN device mapping
-; Format has to follow ini rules key="value", notice " around value.
-
-[CANbus-mapping]
-hs="can0"
-ls="can0"
diff --git a/meta-agl-profile-core/recipes-config/dev-mapping/dev-mapping_0.1.bb b/meta-agl-profile-core/recipes-config/dev-mapping/dev-mapping_0.1.bb
deleted file mode 100644
index 1309ffa20..000000000
--- a/meta-agl-profile-core/recipes-config/dev-mapping/dev-mapping_0.1.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "AGL Device mapping configuration file"
-DESCRIPTION = "This provide default dev-mapping.conf file \
- that defines mapping between kernel device and logical name \
- used in low-can binding by example."
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
-
-SRC_URI += "file://dev-mapping.conf.default"
-
-inherit allarch
-
-do_install() {
- install -d ${D}${sysconfdir}
- install -m 0644 ${WORKDIR}/dev-mapping.conf.default ${D}${sysconfdir}/dev-mapping.conf
-}
-
-RPROVIDES_${PN} = "virtual/low-can-dev-mapping"
diff --git a/meta-agl-profile-core/recipes-connectivity/bluez-alsa/bluez-alsa_git.bb b/meta-agl-profile-core/recipes-connectivity/bluez-alsa/bluez-alsa_git.bb
deleted file mode 100644
index 010329ee7..000000000
--- a/meta-agl-profile-core/recipes-connectivity/bluez-alsa/bluez-alsa_git.bb
+++ /dev/null
@@ -1,43 +0,0 @@
-SUMMARY = "Bluetooth Audio ALSA Backend"
-HOMEPAGE = "https://github.com/Arkq/bluez-alsa"
-SECTION = "libs"
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=3d7d6ac7e2dbd2505652dceb3acdf1fe"
-
-SRC_URI = "git://github.com/Arkq/bluez-alsa.git;protocol=https;branch=master"
-SRCREV = "2cd6e4686f7808276480b430fb37df55dfdcc02b"
-
-SRC_URI += "file://bluez-alsa.service"
-
-S = "${WORKDIR}/git"
-
-DEPENDS += "alsa-lib bluez5 systemd glib-2.0 sbc"
-
-PACKAGECONFIG[aac] = "--enable-aac, --disable-aac, "
-PACKAGECONFIG[aptx] = "--enable-aptx,--disable-aptx,"
-PACKAGECONFIG[ofono] = "--enable-ofono, --disable-ofono,"
-
-inherit autotools pkgconfig
-inherit systemd
-
-SYSTEMD_AUTO_ENABLE = "enable"
-SYSTEMD_SERVICE_${PN} = "bluez-alsa.service"
-
-PACKAGECONFIG += "ofono"
-
-# enable debug tools in devel images
-PACKAGECONFIG[hcitop] = "--enable-hcitop, --disable-hcitop, libbsd ncurses"
-PACKAGECONFIG[rfcomm] = "--enable-rfcomm, --disable-rfcomm,"
-PACKAGECONFIG_append_agl-devel = " hcitop rfcomm"
-
-do_install_append () {
- install -d ${D}${base_libdir}/systemd/system
- install -m 0644 ${WORKDIR}/bluez-alsa.service ${D}${base_libdir}/systemd/system
-}
-
-FILES_${PN} += "\
- ${datadir}/alsa/alsa.conf.d/20-bluealsa.conf\
- ${libdir}/alsa-lib/libasound_module_ctl_bluealsa.so\
- ${libdir}/alsa-lib/libasound_module_pcm_bluealsa.so\
-"
diff --git a/meta-agl-profile-core/recipes-connectivity/bluez-alsa/files/bluez-alsa.service b/meta-agl-profile-core/recipes-connectivity/bluez-alsa/files/bluez-alsa.service
deleted file mode 100644
index b59302ee4..000000000
--- a/meta-agl-profile-core/recipes-connectivity/bluez-alsa/files/bluez-alsa.service
+++ /dev/null
@@ -1,11 +0,0 @@
-[Unit]
-Description=Bluetooth Audio ALSA Backend
-After=bluetooth.service
-Requires=bluetooth.service
-
-[Service]
-Type=simple
-ExecStart=/usr/bin/bluealsa -p a2dp-sink -p hfp-ofono
-
-[Install]
-WantedBy=multi-user.target
diff --git a/meta-agl-profile-core/recipes-connectivity/bluez5/bluez5/bluetooth.conf b/meta-agl-profile-core/recipes-connectivity/bluez5/bluez5/bluetooth.conf
deleted file mode 100644
index 1f2762de7..000000000
--- a/meta-agl-profile-core/recipes-connectivity/bluez5/bluez5/bluetooth.conf
+++ /dev/null
@@ -1,39 +0,0 @@
-<!-- This configuration file specifies the required security policies
- for Bluetooth core daemon to work. -->
-
-<!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
- "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
-<busconfig>
-
- <!-- ../system.conf have denied everything, so we just punch some holes -->
-
- <policy user="root">
- <allow own="org.bluez"/>
- <allow send_destination="org.bluez"/>
- <allow send_interface="org.bluez.Agent1"/>
- <allow send_interface="org.bluez.MediaEndpoint1"/>
- <allow send_interface="org.bluez.MediaPlayer1"/>
- <allow send_interface="org.bluez.ThermometerWatcher1"/>
- <allow send_interface="org.bluez.AlertAgent1"/>
- <allow send_interface="org.bluez.Profile1"/>
- <allow send_interface="org.bluez.HeartRateWatcher1"/>
- <allow send_interface="org.bluez.CyclingSpeedWatcher1"/>
- <allow send_interface="org.bluez.GattCharacteristic1"/>
- <allow send_interface="org.bluez.GattDescriptor1"/>
- <allow send_interface="org.freedesktop.DBus.ObjectManager"/>
- <allow send_interface="org.freedesktop.DBus.Properties"/>
- <allow receive_type="signal" receive_sender="org.bluez" receive_interface="org.freedesktop.DBus.Properties"/>
- <allow receive_type="signal" receive_sender="org.bluez" receive_interface="org.freedesktop.DBus.ObjectManager"/>
- </policy>
-
- <policy at_console="true">
- <allow send_destination="org.bluez"/>
- </policy>
-
- <!-- allow users of lp group (printing subsystem) to
- communicate with bluetoothd -->
- <policy group="lp">
- <allow send_destination="org.bluez"/>
- </policy>
-
-</busconfig>
diff --git a/meta-agl-profile-core/recipes-connectivity/bluez5/bluez5/bluetooth.service b/meta-agl-profile-core/recipes-connectivity/bluez5/bluez5/bluetooth.service
deleted file mode 100644
index 8ae83bd48..000000000
--- a/meta-agl-profile-core/recipes-connectivity/bluez5/bluez5/bluetooth.service
+++ /dev/null
@@ -1,21 +0,0 @@
-[Unit]
-Description=Bluetooth service
-Documentation=man:bluetoothd(8)
-ConditionPathIsDirectory=/sys/class/bluetooth
-
-[Service]
-Type=dbus
-BusName=org.bluez
-ExecStartPre=-/usr/bin/hciconfig hci0 aclmtu 930:10
-ExecStart=/usr/libexec/bluetooth/bluetoothd
-NotifyAccess=main
-#WatchdogSec=10
-#Restart=on-failure
-CapabilityBoundingSet=CAP_NET_ADMIN CAP_NET_BIND_SERVICE
-LimitNPROC=1
-ProtectHome=true
-ProtectSystem=full
-
-[Install]
-WantedBy=bluetooth.target
-Alias=dbus-org.bluez.service
diff --git a/meta-agl-profile-core/recipes-connectivity/bluez5/bluez5/obex.service b/meta-agl-profile-core/recipes-connectivity/bluez5/bluez5/obex.service
deleted file mode 100644
index 87ffff6ae..000000000
--- a/meta-agl-profile-core/recipes-connectivity/bluez5/bluez5/obex.service
+++ /dev/null
@@ -1,10 +0,0 @@
-[Unit]
-Description=Bluetooth OBEX service
-
-[Service]
-Type=dbus
-BusName=org.bluez.obex
-ExecStart=/usr/libexec/bluetooth/obexd --root=/var/volatile/tmp
-
-[Install]
-Alias=dbus-org.bluez.obex.service
diff --git a/meta-agl-profile-core/recipes-connectivity/bluez5/bluez5/tmpdir.conf b/meta-agl-profile-core/recipes-connectivity/bluez5/bluez5/tmpdir.conf
deleted file mode 100644
index 8545d76ec..000000000
--- a/meta-agl-profile-core/recipes-connectivity/bluez5/bluez5/tmpdir.conf
+++ /dev/null
@@ -1,2 +0,0 @@
-[Service]
-Environment="TMPDIR=/run/user/%U/usrshr"
diff --git a/meta-agl-profile-core/recipes-connectivity/bluez5/bluez5_%.bbappend b/meta-agl-profile-core/recipes-connectivity/bluez5/bluez5_%.bbappend
deleted file mode 100644
index 52ae30bc5..000000000
--- a/meta-agl-profile-core/recipes-connectivity/bluez5/bluez5_%.bbappend
+++ /dev/null
@@ -1,24 +0,0 @@
-FILESEXTRAPATHS_prepend := "${THISDIR}/${BPN}:"
-SRC_URI_append = " \
- file://bluetooth.conf \
- file://tmpdir.conf \
- file://obex.service \
- file://bluetooth.service \
-"
-
-FILES_${PN} += "${systemd_user_unitdir}/obex.service.d/tmpdir.conf"
-
-do_install_append() {
- install -m 0644 ${WORKDIR}/bluetooth.conf ${D}${sysconfdir}/dbus-1/system.d/bluetooth.conf
-
- if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
- mkdir -p ${D}${systemd_user_unitdir}/obex.service.d
-
- install -m 0644 ${WORKDIR}/obex.service ${D}${systemd_user_unitdir}
- install -m 0644 ${WORKDIR}/tmpdir.conf ${D}${systemd_user_unitdir}/obex.service.d/tmpdir.conf
- mkdir -p ${D}/etc/systemd/user
- ln -sf ${systemd_user_unitdir}/obex.service ${D}/etc/systemd/user/dbus-org.bluez.obex.service
- mkdir -p ${D}${systemd_system_unitdir}
- install -m 0644 ${WORKDIR}/bluetooth.service ${D}${systemd_system_unitdir}
- fi
-}
diff --git a/meta-agl-profile-core/recipes-connectivity/busybox/busybox_%.bbappend b/meta-agl-profile-core/recipes-connectivity/busybox/busybox_%.bbappend
deleted file mode 100644
index 198b651dd..000000000
--- a/meta-agl-profile-core/recipes-connectivity/busybox/busybox_%.bbappend
+++ /dev/null
@@ -1,2 +0,0 @@
-SRC_URI += "file://enable-wget-https.cfg"
-FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
diff --git a/meta-agl-profile-core/recipes-connectivity/neard/files/0001-systemd-neard-add-multi-user.target-to-neard.service.patch b/meta-agl-profile-core/recipes-connectivity/neard/files/0001-systemd-neard-add-multi-user.target-to-neard.service.patch
deleted file mode 100644
index c32951693..000000000
--- a/meta-agl-profile-core/recipes-connectivity/neard/files/0001-systemd-neard-add-multi-user.target-to-neard.service.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From d8c03a31e2734e59af43dd50cbd7f5a94d798ab1 Mon Sep 17 00:00:00 2001
-From: Matt Ranostay <matt.ranostay@konsulko.com>
-Date: Tue, 10 Jul 2018 21:18:26 -0700
-Subject: [PATCH] systemd: neard: add multi-user.target to neard.service
-
-Allowing a service to be system level requires a WantedBy= target
-
-Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
----
- src/neard.service.in | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/src/neard.service.in b/src/neard.service.in
-index dfa238c..540da7e 100644
---- a/src/neard.service.in
-+++ b/src/neard.service.in
-@@ -9,4 +9,5 @@ ExecStart=@pkglibexecdir@/neard -n
- LimitNPROC=1
-
- [Install]
-+WantedBy=multi-user.target
- Alias=dbus-org.neard.service
---
-2.17.1
-
diff --git a/meta-agl-profile-core/recipes-connectivity/neard/files/0002-ndef-avoid-dbus-property_get_type-method-on-empty-re.patch b/meta-agl-profile-core/recipes-connectivity/neard/files/0002-ndef-avoid-dbus-property_get_type-method-on-empty-re.patch
deleted file mode 100644
index 49c11a509..000000000
--- a/meta-agl-profile-core/recipes-connectivity/neard/files/0002-ndef-avoid-dbus-property_get_type-method-on-empty-re.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From d7ea2a00e00795ad24897e3481b015a27d37d60f Mon Sep 17 00:00:00 2001
-From: Raquel Medina <raquel.medina@konsulko.com>
-Date: Tue, 22 Jan 2019 09:00:05 -0500
-Subject: [PATCH] ndef: avoid dbus property_get_type method on empty record
-
-Signed-off-by: Raquel Medina <raquel.medina@konsulko.com>
----
- src/ndef.c | 6 +++++-
- 1 file changed, 5 insertions(+), 1 deletion(-)
-
-diff --git a/src/ndef.c b/src/ndef.c
-index 5656baf..883c6f4 100644
---- a/src/ndef.c
-+++ b/src/ndef.c
-@@ -2832,10 +2832,14 @@ GList *near_ndef_parse_msg(uint8_t *ndef_data, size_t ndef_length,
- case RECORD_TYPE_WKT_ALTERNATIVE_CARRIER:
- case RECORD_TYPE_WKT_COLLISION_RESOLUTION:
- case RECORD_TYPE_WKT_ERROR:
-- case RECORD_TYPE_UNKNOWN:
- case RECORD_TYPE_ERROR:
- break;
-
-+ case RECORD_TYPE_UNKNOWN:
-+ if (record->header->tnf == RECORD_TNF_EMPTY)
-+ goto fail;
-+ break;
-+
- case RECORD_TYPE_WKT_HANDOVER_REQUEST:
- case RECORD_TYPE_WKT_HANDOVER_SELECT:
- /*
---
-2.17.1
-
diff --git a/meta-agl-profile-core/recipes-connectivity/neard/neard_0.16.bbappend b/meta-agl-profile-core/recipes-connectivity/neard/neard_0.16.bbappend
deleted file mode 100644
index 64a044cb5..000000000
--- a/meta-agl-profile-core/recipes-connectivity/neard/neard_0.16.bbappend
+++ /dev/null
@@ -1,7 +0,0 @@
-FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
-
-SRC_URI_append = "\
- file://0001-systemd-neard-add-multi-user.target-to-neard.service.patch \
- file://0002-ndef-avoid-dbus-property_get_type-method-on-empty-re.patch \
- "
-SYSTEMD_SERVICE_${PN} = "neard.service"
diff --git a/meta-agl-profile-core/recipes-connectivity/neardal/neardal.inc b/meta-agl-profile-core/recipes-connectivity/neardal/neardal.inc
deleted file mode 100644
index 3bb6b24ec..000000000
--- a/meta-agl-profile-core/recipes-connectivity/neardal/neardal.inc
+++ /dev/null
@@ -1,22 +0,0 @@
-SUMMARY = "Neard Abstraction Library (NeardAL)"
-
-DESCRIPTION = "NeardAL is a library that provides a simple C API \
-to exchange data with NFC daemon (Neard)."
-
-HOMEPAGE = "https://github.com/connectivity/neardal"
-SECTION = "libs"
-LICENSE = "LGPLv2"
-
-DEPENDS = "glib-2.0 readline glib-2.0-native"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=6a6e689d19255cf0557f3fe7d7068212 \
- file://lib/neardal.h;endline=20;md5=a53e93aea9357387078ed217565c0a99"
-
-inherit autotools pkgconfig
-
-PACKAGES =+ "${PN}-tools ${PN}-tools-dbg"
-
-FILES_${PN}-tools = "${libexecdir}/ncl"
-FILES_${PN}-tools-dbg += "${libexecdir}/.debug"
-
-RDEPENDS_${PN}-tools = "bash"
diff --git a/meta-agl-profile-core/recipes-connectivity/neardal/neardal/0001-neardal-ncl-fix-segfault-on-help-page-being-displaye.patch b/meta-agl-profile-core/recipes-connectivity/neardal/neardal/0001-neardal-ncl-fix-segfault-on-help-page-being-displaye.patch
deleted file mode 100644
index 596fe0579..000000000
--- a/meta-agl-profile-core/recipes-connectivity/neardal/neardal/0001-neardal-ncl-fix-segfault-on-help-page-being-displaye.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 795308b2452ee617da4096914b53ba3a1142e3db Mon Sep 17 00:00:00 2001
-From: Matt Ranostay <matt.ranostay@konsulko.com>
-Date: Fri, 6 Jul 2018 17:19:09 -0700
-Subject: [PATCH] neardal: ncl: fix segfault on help page being displayed
-
-LISTCMD_NAME is declared as a const char due to being defined in a
-macro so g_strdup it to stop proceeding operations from segfaulting.
-
-Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
-
----
- ncl/ncl.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/ncl/ncl.c b/ncl/ncl.c
-index 590d13b..f4165b7 100644
---- a/ncl/ncl.c
-+++ b/ncl/ncl.c
-@@ -329,7 +329,7 @@ int main(int argc, char *argv[])
- g_io_channel_unref(gNclCtx.channel);
-
- if (show_help)
-- ncl_exec(LISTCMD_NAME);
-+ ncl_exec(g_strdup(LISTCMD_NAME));
-
- rl_callback_handler_install(NCL_PROMPT, ncl_parse_line);
-
diff --git a/meta-agl-profile-core/recipes-connectivity/neardal/neardal/0002-neardal-lib-fix-memory-corruption.patch b/meta-agl-profile-core/recipes-connectivity/neardal/neardal/0002-neardal-lib-fix-memory-corruption.patch
deleted file mode 100644
index d40d9a4fe..000000000
--- a/meta-agl-profile-core/recipes-connectivity/neardal/neardal/0002-neardal-lib-fix-memory-corruption.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From ee6267f357b3d158f0a0e88460782e8b9d44274a Mon Sep 17 00:00:00 2001
-From: Raquel Medina <raquel.medina@konsulko.com>
-Date: Fri, 4 Jan 2019 07:43:03 -0500
-Subject: [PATCH] neardal: lib: fix memory corruption
-
- The current commit fixes an invalid memory access
- which manifests as a random segfault when executing
- continuous tag read operations.
-
- The corruption happens when releasing the memory allocated to a
- record: in the time between the memory being g_free'd and the
- subsequent memset operation, the memory could have been reused by
- some other process. And since memory allocation depends on
- system-wide factors, it makes this bug hard to track.
-
- Tested using ACR122U reader and NTAG213
- tags on Automotive Grade Linux (flounder,
- guppy and master branches)
-
-Signed-off-by: Raquel Medina <raquel.medina@konsulko.com>
----
- lib/neardal_record.c | 1 -
- lib/neardal_tools.c | 5 ++++-
- 2 files changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/lib/neardal_record.c b/lib/neardal_record.c
-index 669012c..cfed5e8 100644
---- a/lib/neardal_record.c
-+++ b/lib/neardal_record.c
-@@ -31,7 +31,6 @@ void neardal_record_free(neardal_record *r)
- {
- g_return_if_fail(r);
- neardal_g_strfreev((void **) r, &r->uriObjSize);
-- memset(r, 0, sizeof(*r));
- }
-
- void neardal_free_record(neardal_record *record) \
-diff --git a/lib/neardal_tools.c b/lib/neardal_tools.c
-index f0d6157..f307df6 100644
---- a/lib/neardal_tools.c
-+++ b/lib/neardal_tools.c
-@@ -32,9 +32,12 @@
- void neardal_g_strfreev(void **array, void *end)
- {
- void **p = array;
-- for (; (void *) p < end; p++)
-+ for (; (void *) p < end; p++) {
- g_free(*p);
-+ *p = NULL;
-+ }
- g_free(array);
-+ array = NULL;
- }
-
- void neardal_g_variant_add_parsed(GVariant **v, const char *format, ...)
---
-2.17.1
-
diff --git a/meta-agl-profile-core/recipes-connectivity/neardal/neardal/ncl.patch b/meta-agl-profile-core/recipes-connectivity/neardal/neardal/ncl.patch
deleted file mode 100644
index baef6ccaa..000000000
--- a/meta-agl-profile-core/recipes-connectivity/neardal/neardal/ncl.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From eab402bae42c3ea5caa8d540b6702d39e56c84c1 Mon Sep 17 00:00:00 2001
-From: Oleg Zhurakivskyy <oleg.zhurakivskyy@intel.com>
-Date: Tue, 10 Feb 2015 12:58:39 +0200
-Subject: [PATCH] build: Install ncl
-
-Signed-off-by: Oleg Zhurakivskyy <oleg.zhurakivskyy@intel.com>
----
- ncl/Makefile.am | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/ncl/Makefile.am b/ncl/Makefile.am
-index beda75b..c06742f 100644
---- a/ncl/Makefile.am
-+++ b/ncl/Makefile.am
-@@ -1,6 +1,6 @@
- AM_CPPFLAGS = @gio_CFLAGS@ -I$(top_builddir)/lib -I$(top_srcdir)/lib
-
--noinst_PROGRAMS=ncl
-+libexec_PROGRAMS = ncl
-
- ncl_SOURCES = \
- $(srcdir)/ncl.c $(srcdir)/ncl.h \
---
-2.1.0
-
diff --git a/meta-agl-profile-core/recipes-connectivity/neardal/neardal_0.14.bb b/meta-agl-profile-core/recipes-connectivity/neardal/neardal_0.14.bb
deleted file mode 100644
index f8634c468..000000000
--- a/meta-agl-profile-core/recipes-connectivity/neardal/neardal_0.14.bb
+++ /dev/null
@@ -1,10 +0,0 @@
-require neardal.inc
-
-SRC_URI = "git://github.com/connectivity/neardal.git;protocol=https \
- file://ncl.patch \
- file://0001-neardal-ncl-fix-segfault-on-help-page-being-displaye.patch \
- file://0002-neardal-lib-fix-memory-corruption.patch \
- "
-SRCREV = "fe0fa79c94e9a0f1c2cfa1f58b3acc9bdc7d5e13"
-
-S = "${WORKDIR}/git"
diff --git a/meta-agl-profile-core/recipes-connectivity/ofono/files/0001-provision-allow-duplicate-entries-from-mbpi_lookup_a.patch b/meta-agl-profile-core/recipes-connectivity/ofono/files/0001-provision-allow-duplicate-entries-from-mbpi_lookup_a.patch
deleted file mode 100644
index 7b44e483e..000000000
--- a/meta-agl-profile-core/recipes-connectivity/ofono/files/0001-provision-allow-duplicate-entries-from-mbpi_lookup_a.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 7782f8f9d9634ebeddafefedab10ba254f9cc34a Mon Sep 17 00:00:00 2001
-From: Matt Ranostay <matt.ranostay@konsulko.com>
-Date: Fri, 1 Mar 2019 17:53:17 +0900
-Subject: [PATCH] provision: allow duplicate entries from mbpi_lookup_apn()
- results
-
-Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
----
- plugins/provision.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/plugins/provision.c b/plugins/provision.c
-index 99c299eb..aa0b05e4 100644
---- a/plugins/provision.c
-+++ b/plugins/provision.c
-@@ -50,7 +50,7 @@ static int provision_get_settings(const char *mcc, const char *mnc,
-
- DBG("Provisioning for MCC %s, MNC %s, SPN '%s'", mcc, mnc, spn);
-
-- apns = mbpi_lookup_apn(mcc, mnc, FALSE, &error);
-+ apns = mbpi_lookup_apn(mcc, mnc, TRUE, &error);
- if (apns == NULL) {
- if (error != NULL) {
- ofono_error("%s", error->message);
---
-2.20.1
-
diff --git a/meta-agl-profile-core/recipes-connectivity/ofono/files/ofono.conf b/meta-agl-profile-core/recipes-connectivity/ofono/files/ofono.conf
deleted file mode 100644
index e47214c76..000000000
--- a/meta-agl-profile-core/recipes-connectivity/ofono/files/ofono.conf
+++ /dev/null
@@ -1,30 +0,0 @@
-<!-- This configuration file specifies the required security policies
- for oFono core daemon to work. -->
-
-<!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
- "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
-<busconfig>
-
- <!-- ../system.conf have denied everything, so we just punch some holes -->
-
- <policy user="root">
- <allow own="org.ofono"/>
- <allow send_destination="org.ofono"/>
- <allow send_interface="org.ofono.Manager"/>
- <allow send_interface="org.ofono.SimToolkitAgent"/>
- <allow send_interface="org.ofono.PushNotificationAgent"/>
- <allow send_interface="org.ofono.SmartMessagingAgent"/>
- <allow send_interface="org.ofono.PositioningRequestAgent"/>
- <allow send_interface="org.ofono.HandsfreeAudioAgent"/>
- <allow send_interface="org.ofono.Modem"/>
- </policy>
-
- <policy at_console="true">
- <allow send_destination="org.ofono"/>
- </policy>
-
- <policy context="default">
- <deny send_destination="org.ofono"/>
- </policy>
-
-</busconfig>
diff --git a/meta-agl-profile-core/recipes-connectivity/ofono/ofono_%.bbappend b/meta-agl-profile-core/recipes-connectivity/ofono/ofono_%.bbappend
deleted file mode 100644
index b02d6ee22..000000000
--- a/meta-agl-profile-core/recipes-connectivity/ofono/ofono_%.bbappend
+++ /dev/null
@@ -1,11 +0,0 @@
-FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
-SRC_URI_append = "\
- file://ofono.conf \
- file://0001-provision-allow-duplicate-entries-from-mbpi_lookup_a.patch \
- "
-
-do_install_append() {
- install -m 0644 ${WORKDIR}/ofono.conf ${D}${sysconfdir}/dbus-1/system.d/ofono.conf
-}
-
-SYSTEMD_AUTO_ENABLE = "enable"
diff --git a/meta-agl-profile-core/recipes-connectivity/rtl-sdr/rtl-sdr/0001-remove-I-usr-include-in-pkg-config.patch b/meta-agl-profile-core/recipes-connectivity/rtl-sdr/rtl-sdr/0001-remove-I-usr-include-in-pkg-config.patch
deleted file mode 100644
index 86b7392df..000000000
--- a/meta-agl-profile-core/recipes-connectivity/rtl-sdr/rtl-sdr/0001-remove-I-usr-include-in-pkg-config.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 3aeaf8054fcb2617ca8f6196ca32be3e69337f77 Mon Sep 17 00:00:00 2001
-From: Martin Kelly <mkelly@xevo.com>
-Date: Fri, 21 Apr 2017 10:29:19 -0700
-Subject: [PATCH] remove -I/usr/include in pkg-config
-
-This shouldn't be necessary as it's part of the default compiler include
-paths anyway. Morever, it can cause GCC 6 C++ build failures in
-downstream packages when combined with QMake (such as
-qtmultimedia-rtlfm-radio-plugin).
-
-Fix these issues by removing it.
-
-Upstream-Status: Inappropriate [disable-feature]
-
-This patch should not go upstream because it breaks the ability to build
-with --prefix. That's not a problem for Openembedded, but it is for
-upstream more generally. See this mail thread for more information:
-
-http://lists.osmocom.org/pipermail/osmocom-sdr/2017-April/001580.html
-
-Signed-off-by: Martin Kelly <mkelly@xevo.com>
----
- librtlsdr.pc.in | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/librtlsdr.pc.in b/librtlsdr.pc.in
-index 5e55049..84b6d0c 100644
---- a/librtlsdr.pc.in
-+++ b/librtlsdr.pc.in
-@@ -6,6 +6,6 @@ includedir=@includedir@
- Name: RTL-SDR Library
- Description: C Utility Library
- Version: @VERSION@
--Cflags: -I${includedir}/ @RTLSDR_PC_CFLAGS@
-+Cflags: @RTLSDR_PC_CFLAGS@
- Libs: -L${libdir} -lrtlsdr -lusb-1.0
- Libs.private: @RTLSDR_PC_LIBS@
---
-2.1.4
-
diff --git a/meta-agl-profile-core/recipes-connectivity/rtl-sdr/rtl-sdr_0.5.3.bb b/meta-agl-profile-core/recipes-connectivity/rtl-sdr/rtl-sdr_0.5.3.bb
deleted file mode 100644
index b442d9f46..000000000
--- a/meta-agl-profile-core/recipes-connectivity/rtl-sdr/rtl-sdr_0.5.3.bb
+++ /dev/null
@@ -1,32 +0,0 @@
-SUMMARY = "Turns a Realtek RTL2832U-based DVB dongle into a SDR receiver"
-DESCRIPTION = "DVB-T dongles based on the Realtek RTL2832U chipset can be used as Software Digital Radio adapters, since the chip allows transferring raw I/Q samples to the host, which is really used for DAB/DAB+/FM demodulation."
-HOMEPAGE = "http://sdr.osmocom.org/trac/wiki/rtl-sdr"
-
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe \
- file://src/librtlsdr.c;endline=18;md5=1b05599c3ebd4d74857a0a7c45f3d4ef"
-
-DEPENDS = "libusb1"
-
-SRC_URI = "git://git.osmocom.org/rtl-sdr \
- file://0001-remove-I-usr-include-in-pkg-config.patch \
- "
-SRCREV = "e3c03f738f5aef4dc51e2b741fbdb542b9cc1bb1"
-S = "${WORKDIR}/git"
-
-inherit autotools pkgconfig
-
-EXTRA_OECONF = "--enable-driver-detach"
-
-do_configure_append() {
- # remove included temporary path from pc file due to pass-through of OE CFLAGS
- # debug-prefix-map
- # See: http://lists.openembedded.org/pipermail/openembedded-devel/2016-May/107456.html
- sed -i -e "s# -fdebug-prefix-map=.*##g;s# -fmacro-prefix-map=.*##g" librtlsdr.pc
-}
-
-do_install_append() {
- install -D -m 0644 ${S}/rtl-sdr.rules ${D}${sysconfdir}/udev/rules.d/55-rtl-sdr.rules
- sed -i 's/MODE:="0666"/GROUP="audio", MODE="0660", SECLABEL{smack}="*"/' \
- ${D}${sysconfdir}/udev/rules.d/55-rtl-sdr.rules
-}
diff --git a/meta-agl-profile-core/recipes-core/dbus/dbus/dbus.service b/meta-agl-profile-core/recipes-core/dbus/dbus/dbus.service
deleted file mode 100644
index dee6ad741..000000000
--- a/meta-agl-profile-core/recipes-core/dbus/dbus/dbus.service
+++ /dev/null
@@ -1,10 +0,0 @@
-[Unit]
-Description=D-Bus User Message Bus
-Documentation=man:dbus-daemon(1)
-Requires=dbus.socket
-
-[Service]
-ExecStart=/usr/bin/dbus-daemon --session --address=systemd: --nofork --nopidfile --systemd-activation
-ExecReload=/usr/bin/dbus-send --print-reply --session --type=method_call --dest=org.freedesktop.DBus / org.freedesktop.DBus.ReloadConfig
-Restart=always
-RestartSec=1
diff --git a/meta-agl-profile-core/recipes-core/dbus/dbus/dbus.socket b/meta-agl-profile-core/recipes-core/dbus/dbus/dbus.socket
deleted file mode 100644
index af76b2f12..000000000
--- a/meta-agl-profile-core/recipes-core/dbus/dbus/dbus.socket
+++ /dev/null
@@ -1,9 +0,0 @@
-[Unit]
-Description=D-Bus User Message Bus Socket
-Before=sockets.target
-
-[Socket]
-ListenStream=%t/bus
-
-[Install]
-WantedBy=default.target
diff --git a/meta-agl-profile-core/recipes-core/dbus/dbus/dbus_env.conf b/meta-agl-profile-core/recipes-core/dbus/dbus/dbus_env.conf
deleted file mode 100644
index f8f02669b..000000000
--- a/meta-agl-profile-core/recipes-core/dbus/dbus/dbus_env.conf
+++ /dev/null
@@ -1,5 +0,0 @@
-[Unit]
-Wants=dbus.service
-
-[Service]
-Environment=DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/%I/bus
diff --git a/meta-agl-profile-core/recipes-core/dbus/dbus/libdbus-c++/dbus-c++-threading.patch b/meta-agl-profile-core/recipes-core/dbus/dbus/libdbus-c++/dbus-c++-threading.patch
deleted file mode 100644
index c4fafef62..000000000
--- a/meta-agl-profile-core/recipes-core/dbus/dbus/libdbus-c++/dbus-c++-threading.patch
+++ /dev/null
@@ -1,45 +0,0 @@
---- libdbus-c++-0.9.0/include/dbus-c++/dispatcher.h.threading 2017-02-15 13:40:53.796004263 +0000
-+++ libdbus-c++-0.9.0/include/dbus-c++/dispatcher.h 2017-02-15 13:40:46.907000493 +0000
-@@ -188,6 +188,7 @@
- /* classes for multithreading support
- */
-
-+#if 0
- class DXXAPI Mutex
- {
- public:
-@@ -243,9 +244,11 @@
- typedef bool (*CondVarWaitTimeoutFn)(CondVar *cv, Mutex *mx, int timeout);
- typedef void (*CondVarWakeOneFn)(CondVar *cv);
- typedef void (*CondVarWakeAllFn)(CondVar *cv);
-+#endif
-
- void DXXAPI _init_threading();
-
-+#if 0
- void DXXAPI _init_threading(
- MutexNewFn, MutexFreeFn, MutexLockFn, MutexUnlockFn,
- CondVarNewFn, CondVarFreeFn, CondVarWaitFn, CondVarWaitTimeoutFn, CondVarWakeOneFn, CondVarWakeAllFn
-@@ -312,6 +315,7 @@
- cv->wake_all();
- }
- };
-+#endif
-
- } /* namespace DBus */
-
---- libdbus-c++-0.9.0/src/dispatcher.cpp.threading 2017-02-15 13:48:22.627249868 +0000
-+++ libdbus-c++-0.9.0/src/dispatcher.cpp 2017-02-15 13:48:29.164253445 +0000
-@@ -253,6 +253,7 @@
- #endif//DBUS_HAS_THREADS_INIT_DEFAULT
- }
-
-+#if 0
- void DBus::_init_threading(
- MutexNewFn m1,
- MutexFreeFn m2,
-@@ -318,3 +319,4 @@
- #endif//DBUS_HAS_RECURSIVE_MUTEX
- dbus_threads_init(&functions);
- }
-+#endif
diff --git a/meta-agl-profile-core/recipes-core/dbus/dbus_%.bbappend b/meta-agl-profile-core/recipes-core/dbus/dbus_%.bbappend
deleted file mode 100644
index 379c5435e..000000000
--- a/meta-agl-profile-core/recipes-core/dbus/dbus_%.bbappend
+++ /dev/null
@@ -1,28 +0,0 @@
-FILESEXTRAPATHS_append := ":${THISDIR}/dbus"
-
-SRC_URI += "file://dbus.service \
- file://dbus.socket \
- file://dbus_env.conf \
- "
-
-inherit systemd
-
-do_install_append() {
- if [ "${PN}" != "nativesdk-dbus" ]; then
- if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
- install -m 644 -p -D ${WORKDIR}/dbus.service ${D}${systemd_user_unitdir}/dbus.service
- install -m 644 -p -D ${WORKDIR}/dbus.socket ${D}${systemd_user_unitdir}/dbus.socket
- install -m 644 -p -D ${WORKDIR}/dbus_env.conf ${D}${systemd_system_unitdir}/user@.service.d/dbus_env.conf
-
- # Execute these manually on behalf of systemctl script (from systemd-systemctl-native.bb)
- # because it does not support systemd's user mode.
- mkdir -p ${D}/etc/systemd/user/default.target.wants/
- ln -sf ${systemd_user_unitdir}/dbus.socket ${D}/etc/systemd/user/default.target.wants/dbus.socket
- fi
- fi
-}
-
-FILES_${PN} += " \
- ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '${systemd_user_unitdir}/dbus.*', '', d)} \
- ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '${systemd_system_unitdir}/user@.service.d/dbus_env.conf', '', d)} \
- "
diff --git a/meta-agl-profile-core/recipes-core/dbus/libdbus-c++/dbus-c++-threading.patch b/meta-agl-profile-core/recipes-core/dbus/libdbus-c++/dbus-c++-threading.patch
deleted file mode 100644
index c4fafef62..000000000
--- a/meta-agl-profile-core/recipes-core/dbus/libdbus-c++/dbus-c++-threading.patch
+++ /dev/null
@@ -1,45 +0,0 @@
---- libdbus-c++-0.9.0/include/dbus-c++/dispatcher.h.threading 2017-02-15 13:40:53.796004263 +0000
-+++ libdbus-c++-0.9.0/include/dbus-c++/dispatcher.h 2017-02-15 13:40:46.907000493 +0000
-@@ -188,6 +188,7 @@
- /* classes for multithreading support
- */
-
-+#if 0
- class DXXAPI Mutex
- {
- public:
-@@ -243,9 +244,11 @@
- typedef bool (*CondVarWaitTimeoutFn)(CondVar *cv, Mutex *mx, int timeout);
- typedef void (*CondVarWakeOneFn)(CondVar *cv);
- typedef void (*CondVarWakeAllFn)(CondVar *cv);
-+#endif
-
- void DXXAPI _init_threading();
-
-+#if 0
- void DXXAPI _init_threading(
- MutexNewFn, MutexFreeFn, MutexLockFn, MutexUnlockFn,
- CondVarNewFn, CondVarFreeFn, CondVarWaitFn, CondVarWaitTimeoutFn, CondVarWakeOneFn, CondVarWakeAllFn
-@@ -312,6 +315,7 @@
- cv->wake_all();
- }
- };
-+#endif
-
- } /* namespace DBus */
-
---- libdbus-c++-0.9.0/src/dispatcher.cpp.threading 2017-02-15 13:48:22.627249868 +0000
-+++ libdbus-c++-0.9.0/src/dispatcher.cpp 2017-02-15 13:48:29.164253445 +0000
-@@ -253,6 +253,7 @@
- #endif//DBUS_HAS_THREADS_INIT_DEFAULT
- }
-
-+#if 0
- void DBus::_init_threading(
- MutexNewFn m1,
- MutexFreeFn m2,
-@@ -318,3 +319,4 @@
- #endif//DBUS_HAS_RECURSIVE_MUTEX
- dbus_threads_init(&functions);
- }
-+#endif
diff --git a/meta-agl-profile-core/recipes-core/dbus/libdbus-c++_0.9.0.bbappend b/meta-agl-profile-core/recipes-core/dbus/libdbus-c++_0.9.0.bbappend
deleted file mode 100644
index dac44b5e6..000000000
--- a/meta-agl-profile-core/recipes-core/dbus/libdbus-c++_0.9.0.bbappend
+++ /dev/null
@@ -1,2 +0,0 @@
-FILESEXTRAPATHS_prepend := "${THISDIR}/${BPN}:"
-SRC_URI_append = "file://dbus-c++-threading.patch"
diff --git a/meta-agl-profile-core/recipes-core/distro-build-manifest/distro-build-manifest.bb b/meta-agl-profile-core/recipes-core/distro-build-manifest/distro-build-manifest.bb
deleted file mode 100644
index 823cc28a1..000000000
--- a/meta-agl-profile-core/recipes-core/distro-build-manifest/distro-build-manifest.bb
+++ /dev/null
@@ -1,164 +0,0 @@
-SUMMARY = "Distribution build manifest"
-DESCRIPTION = "The folder /etc/platform-info contains build manifest (SPEC-720)."
-LICENSE = "MIT"
-
-# information distributed by the package is machine specific
-PACKAGE_ARCH = "${MACHINE_ARCH}"
-
-# dependencies of ${DISTRO_MANIFEST_GENERATOR}
-DEPENDS = "coreutils-native bash-native git-native gawk-native sed-native jq-native"
-
-# force a rebuild everytime a build is started
-do_compile[nostamp] = "1"
-
-# borrowed to os-release.bb (output format is very close)
-python do_compilestep1 () {
- import shutil
- with open(d.expand('${B}/bbinfo-deploy'),'w') as f:
- allkeys=[]
- for field in d.getVar('BUILD_MANIFEST_FIELDS_DEPLOY').split():
- key='DIST_BB_{0}'.format(field)
- allkeys.append(key)
- value=d.getVar(field)
- if value:
- f.write('{0}="{1}"\n'.format(key,value))
- f.write('declare -A BITBAKE_VARS\nBITBAKE_VARS[deploy]="%s"' % ' '.join(allkeys))
-
- with open(d.expand('${B}/bbinfo-target'),'w') as f:
- allkeys=[]
- for field in d.getVar('BUILD_MANIFEST_FIELDS_TARGET').split():
- key='DIST_BB_{0}'.format(field)
- allkeys.append(key)
- value=d.getVar(field)
- if value:
- f.write('{0}="{1}"\n'.format(key,value))
- f.write('declare -A BITBAKE_VARS\nBITBAKE_VARS[target]="%s"' % ' '.join(allkeys))
-
- with open(d.expand('${B}/bbinfo-sdk'),'w') as f:
- allkeys=[]
- for field in d.getVar('BUILD_MANIFEST_FIELDS_SDK').split():
- key='DIST_BB_{0}'.format(field)
- allkeys.append(key)
- value=d.getVar(field)
- if value:
- f.write('{0}="{1}"\n'.format(key,value))
- f.write('declare -A BITBAKE_VARS\nBITBAKE_VARS[sdk]="%s"' % ' '.join(allkeys))
-}
-
-do_compilestep2 () {
- rc=99
- timestamp=${DATETIME}
- outfile=${B}/build-info
- if [ -x "${DISTRO_MANIFEST_GENERATOR}" -a -f "${DISTRO_SETUP_MANIFEST}" ]; then
- rc=0
- for format in bash json; do
- if [ "$format" = "json" ]; then
- ext=".json"
- else
- ext=""
- fi
- for mode in deploy target sdk; do
- ${DISTRO_MANIFEST_GENERATOR} -m $mode -f $format -t $timestamp -s ${B}/bbinfo-${mode} ${DISTRO_SETUP_MANIFEST} >${outfile}-${mode}${ext}
- rc=$?
- if [ $rc -ne 0 ]; then
- break
- fi
- done
- done
- else
- if [ -z "${DISTRO_MANIFEST_GENERATOR}" ]; then
- echo "The name of the generation script is not defined."
- elif [ ! -f "${DISTRO_MANIFEST_GENERATOR}" ]; then
- echo "Generation script ${DISTRO_MANIFEST_GENERATOR} is missing."
- elif [ ! -x "${DISTRO_MANIFEST_GENERATOR}" ]; then
- echo "Generation script ${DISTRO_MANIFEST_GENERATOR} isn't executable."
- fi
- if [ -z "${DISTRO_SETUP_MANIFEST}" ]; then
- echo "The name of the data file is not defined."
- elif [ ! -f "${DISTRO_SETUP_MANIFEST}" ]; then
- echo "Data file ${DISTRO_SETUP_MANIFEST} is missing."
- fi
- echo "You can try to rerun aglsetup.sh to solve that issue."
- echo "You can also try to source agl-init-build-env instead of oe-init-build-env."
- fi
-
- if [ "$rc" -ne 0 ]; then
- echo "distro-build-manifest generation failed."
- fi
- return $rc
-}
-
-do_compilestep1[vardeps] += " ${BUILD_MANIFEST_FIELDS_DEPLOY}"
-do_compilestep1[vardeps] += " ${BUILD_MANIFEST_FIELDS_TARGET}"
-do_compilestep1[vardeps] += " ${BUILD_MANIFEST_FIELDS_SDK}"
-
-# avoid errors "ERROR: When reparsing .../distro-build-manifest/distro-build-manifest.bb.do_compile, the basehash value changed from .... to .... . The metadata is not deterministic and this needs to be fixed."
-do_compilestep2[vardepsexclude] = "DATETIME"
-
-# combine the two steps
-python do_compile() {
- bb.build.exec_func("do_compilestep1",d)
- bb.build.exec_func("do_compilestep2",d)
-}
-
-do_install () {
- # install in target dir
- install -d ${D}${sysconfdir}/platform-info
- install -m 0644 build-info-target ${D}${sysconfdir}/platform-info/build
- install -m 0644 build-info-target.json ${D}${sysconfdir}/platform-info/build.json
-
- # also copy in deploy dir
- install -d ${DEPLOY_DIR_IMAGE}
- install -m 0644 build-info-deploy ${DEPLOY_DIR_IMAGE}/build-info
- install -m 0644 build-info-deploy.json ${DEPLOY_DIR_IMAGE}/build-info.json
-
- # copy into sdk deploy dir
- install -d ${DEPLOY_DIR}/sdk
- install -m 0644 build-info-sdk ${DEPLOY_DIR}/sdk/${SDK_NAME}.build-info
- install -m 0644 build-info-sdk.json ${DEPLOY_DIR}/sdk/${SDK_NAME}.build-info.json
-
- # and copy to nativesdk package
- # TODO
-}
-
-# list of variables to add to the various manifests
-# smalles one is 'target', then 'deploy' and finally 'sdk'
-BUILD_MANIFEST_FIELDS_TARGET = "\
- MACHINE_ARCH \
- MACHINEOVERRIDES \
- MACHINE_FEATURES \
- DISTRO_CODENAME \
- DISTRO_FEATURES \
- DISTRO_BRANCH_VERSION_TAG \
- AGLVERSION \
- AGL_BRANCH \
- AGLRELEASETYPE \
-"
-
-BUILD_MANIFEST_FIELDS_DEPLOY = "\
- ${BUILD_MANIFEST_FIELDS_TARGET} \
- DISTRO \
- DISTRO_VERSION \
- DISTROOVERRIDES \
- TUNE_FEATURES \
- TUNE_PKGARCH \
- ALL_MULTILIB_PACKAGE_ARCHS \
-"
-
-BUILD_MANIFEST_FIELDS_SDK = "\
- ${BUILD_MANIFEST_FIELDS_DEPLOY} \
- HOST_SYS \
- TARGET_SYS \
- TARGET_VENDOR \
- SDK_ARCH \
- SDK_VENDOR \
- SDK_VERSION \
- SDK_OS \
-"
-
-# dont exec useless tasks
-do_fetch[noexec] = "1"
-do_unpack[noexec] = "1"
-do_patch[noexec] = "1"
-do_configure[noexec] = "1"
-
diff --git a/meta-agl-profile-core/recipes-core/packagegroups/packagegroup-core-tools-profile.bbappend b/meta-agl-profile-core/recipes-core/packagegroups/packagegroup-core-tools-profile.bbappend
deleted file mode 100644
index 301a1d573..000000000
--- a/meta-agl-profile-core/recipes-core/packagegroups/packagegroup-core-tools-profile.bbappend
+++ /dev/null
@@ -1 +0,0 @@
-RDEPENDS_${PN}_remove_sota = "systemtap"
diff --git a/meta-agl-profile-core/recipes-core/psplash/files/psplash-colors.h b/meta-agl-profile-core/recipes-core/psplash/files/psplash-colors.h
deleted file mode 100644
index 447490397..000000000
--- a/meta-agl-profile-core/recipes-core/psplash/files/psplash-colors.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * pslash - a lightweight framebuffer splashscreen for embedded devices.
- *
- * Copyright (c) 2012 sleep(5) ltd
- * Author: Tomas Frydrych <tomas@sleepfive.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, 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.
- *
- */
-
-#ifndef _HAVE_PSPLASH_COLORS_H
-#define _HAVE_PSPLASH_COLORS_H
-
-/* This is the overall background color */
-#define PSPLASH_BACKGROUND_COLOR 0xff,0xff,0xff
-
-/* This is the color of any text output */
-#define PSPLASH_TEXT_COLOR 0x00,0x00,0x00
-
-/* This is the color of the progress bar indicator */
-#define PSPLASH_BAR_COLOR 0x00,0x00,0x00
-
-/* This is the color of the progress bar background */
-#define PSPLASH_BAR_BACKGROUND_COLOR 0xff,0xff,0xff
-
-#endif
diff --git a/meta-agl-profile-core/recipes-core/psplash/files/psplash-poky-img.h b/meta-agl-profile-core/recipes-core/psplash/files/psplash-poky-img.h
deleted file mode 100644
index c0e8b0818..000000000
--- a/meta-agl-profile-core/recipes-core/psplash/files/psplash-poky-img.h
+++ /dev/null
@@ -1,5411 +0,0 @@
-/* GdkPixbuf RGB C-Source image dump 1-byte-run-length-encoded */
-
-#define POKY_IMG_ROWSTRIDE (1800)
-#define POKY_IMG_WIDTH (600)
-#define POKY_IMG_HEIGHT (400)
-#define POKY_IMG_BYTES_PER_PIXEL (3) /* 3:RGB, 4:RGBA */
-#define POKY_IMG_RLE_PIXEL_DATA ((uint8*) \
- "\377\377\377\377\377\377\377\377\203\377\377\377\1\376\376\376\221\377" \
- "\377\377\1\376\376\376\215\377\377\377\1\376\376\376\203\377\377\377" \
- "\1\376\376\376\233\377\377\377\1\376\376\376\203\377\377\377\1\376\376" \
- "\376\202\377\377\377\5\376\376\376\377\377\377\376\376\376\377\377\377" \
- "\376\376\376\206\377\377\377\1\376\376\376\203\377\377\377\1\376\376" \
- "\376\204\377\377\377\1\376\376\376\203\377\377\377\5\376\376\376\377" \
- "\377\377\376\376\376\377\377\377\376\376\376\377\377\377\377\377\377" \
- "\377\377\377\377\377\377\377\377\377\377\202\376\376\376\207\377\377" \
- "\377\1\376\376\376\205\377\377\377\1\376\376\376\211\377\377\377\3\376" \
- "\376\376\377\377\377\376\376\376\235\377\377\377\1\376\376\376\203\377" \
- "\377\377\1\376\376\376\213\377\377\377\3\376\376\376\377\377\377\376" \
- "\376\376\216\377\377\377\1\376\376\376\202\377\377\377\1\376\376\376" \
- "\377\377\377\377\377\377\377\377\377\377\377\377\365\377\377\377\1\376" \
- "\376\376\203\377\377\377\1\376\376\376\207\377\377\377\1\376\376\376" \
- "\203\377\377\377\1\376\376\376\202\377\377\377\1\376\376\376\205\377" \
- "\377\377\1\376\376\376\203\377\377\377\12\376\376\376\377\377\377\346" \
- "\346\346\315\315\315\316\316\316\265\265\265\235\235\235\234\234\234" \
- "\233\233\233\204\204\204\203kkm\202lln\2EEG;;=\215::<\204kkm\3kkkxxx" \
- "\235\235\235\202\234\234\234\1\265\265\265\202\316\316\316\1\332\332" \
- "\332\207\377\377\377\202\376\376\376\2\377\377\377\376\376\376\211\377" \
- "\377\377\3\376\376\376\377\377\377\376\376\376\203\377\377\377\5\376" \
- "\376\376\377\377\377\376\376\376\377\377\377\376\376\376\377\377\377" \
- "\377\377\377\377\377\377\377\377\377\366\377\377\377\1\376\376\376\205" \
- "\377\377\377\1\376\376\376\214\377\377\377\11\376\376\376\332\332\332" \
- "\316\316\320\247\247\251\236\236\240\204\204\206kkm__a<<>\202::<\11;" \
- ";=99;;;=99;::<;;=::<;;=99;\203::<\1<<>\213::<\13;;=::<;;=::<;;=::<;;" \
- "=::<;;=::<;;=\207::<\3SSUllnxxz\202\234\234\236\202\316\316\316\2\377" \
- "\377\377\376\376\376\214\377\377\377\1\376\376\376\203\377\377\377\1" \
- "\376\376\376\377\377\377\377\377\377\377\377\377\377\377\377\376\377" \
- "\377\377\1\376\376\376\203\377\377\377\1\376\376\376\203\377\377\377" \
- "\7\332\332\334\302\302\304\234\234\236\203\203\205llnEEG;;=\202::<\6" \
- ";;=::<;;=::<;;=99;\204::<\1""99;\202;;=\1""99;\205::<\1;;=\213::<\11" \
- ";;=::<;;=::<;;=::<;;=::<;;=\202::<\1""99;\206::<\1;;=\203::<\13;;=99" \
- ";;;=::<;;=::<kkmxxz\234\234\236\300\300\302\316\316\316\203\377\377\377" \
- "\1\376\376\376\202\377\377\377\1\376\376\376\203\377\377\377\1\376\376" \
- "\376\204\377\377\377\1\376\376\376\377\377\377\377\377\377\377\377\377" \
- "\377\377\377\374\377\377\377\7\346\346\350\301\301\303\235\235\237ww" \
- "y``b99;;;=\202::<\1;;=\204::<\203;;=\3::<99;;;=\207::<\202;;=\204::<" \
- "\203;;=\215::<\1;;=\207::<\11;;=::<;;=99;::<;;=::<99;::<\202;;=\5::<" \
- ";;=::<;;=99;\202::<\2;;=::<\202;;=\6::<SSUkkm\235\235\237\264\264\266" \
- "\332\332\334\210\377\377\377\1\376\376\376\202\377\377\377\1\376\376" \
- "\376\377\377\377\377\377\377\377\377\377\377\377\377\362\377\377\377" \
- "\1\376\376\376\202\377\377\377\11\346\346\350\265\265\267\221\221\223" \
- "kkm::<;;=::<99;;;=\203::<\1;;=\202::<\3""99;::<;;=\202::<\4;;=99;::<" \
- ";;=\204::<\1;;=\202::<\202;;=\1::<\202;;=\202::<\1;;=\203::<\1;;=\211" \
- "::<\2;;=99;\202::<\2;;=99;\206::<\1;;=\202::<\2""99;;;=\210::<\1;;=\202" \
- "::<\1;;=\203::<\1;;=\203::<\1;;=\202::<\4kkm\222\222\224\265\265\267" \
- "\332\332\334\204\377\377\377\1\376\376\376\377\377\377\377\377\377\377" \
- "\377\377\377\377\377\362\377\377\377\12\363\363\363\316\316\316\235\235" \
- "\235jjjFFH;;=::<;;=::<;;=\202::<\1;;=\204::<\1""99;\202::<\2;;=::<\202" \
- ";;=\204::<\7;;=::<;;=::<;;=::<;;=\203::<\1;;=\202::<\1;;=\217::<\2""9" \
- "9;;;=\203::<\1;;=\202::<\4""99;;;=::<;;=\203::<\2;;=99;\202::<\1;;=\207" \
- "::<\1;;=\213::<\1;;=\204::<\7kkk\221\221\221\301\301\301\363\363\363" \
- "\376\376\376\377\377\377\376\376\376\377\377\377\377\377\377\377\377" \
- "\377\377\377\377\321\377\377\377\1\376\376\376\202\377\377\377\1\376" \
- "\376\376\221\377\377\377\1\376\376\376\204\377\377\377\4\363\363\365" \
- "\301\301\303\222\222\224__a\220::<\3;;=::<;;=\204::<\203;;=\203::<\2" \
- ";;=::<\202;;=\4::<;;=::<;;=\204::<\1;;=\202::<\4;;=::<99;;;=\211::<\1" \
- "99;\205::<\202;;=\210::<\5;;=::<;;=::<;;=\203::<\1;;=\212::<\4;;=99;" \
- ";;=99;\211::<\4SSU\204\204\206\266\266\270\345\345\345\221\377\377\377" \
- "\1\376\376\376\204\377\377\377\202\376\376\376\377\377\377\377\377\377" \
- "\377\377\377\377\377\377\266\377\377\377\1\376\376\376\203\377\377\377" \
- "\1\376\376\376\202\377\377\377\1\376\376\376\207\377\377\377\1\376\376" \
- "\376\210\377\377\377\10\363\363\363\301\301\301\221\221\221``b99;;;=" \
- "::<;;=\213::<\3;;=::<;;=\203::<\1;;=\204::<\2;;=99;\202::<\1""99;\202" \
- ";;=\204::<\1;;=\210::<\202;;=\202::<\2;;=99;\215::<\1;;=\204::<\1;;=" \
- "\205::<\5;;=99;;;=::<;;=\202::<\202;;=\4""99;;;=::<;;=\203::<\1;;=\204" \
- "::<\3;;=99;;;=\210::<\11;;=::<;;=99;;;=SSS\205\205\205\266\266\266\363" \
- "\363\363\202\377\377\377\1\376\376\376\206\377\377\377\1\376\376\376" \
- "\204\377\377\377\1\376\376\376\205\377\377\377\1\376\376\376\377\377" \
- "\377\377\377\377\377\377\377\377\377\377\266\377\377\377\1\376\376\376" \
- "\204\377\377\377\1\376\376\376\205\377\377\377\1\376\376\376\207\377" \
- "\377\377\5\376\376\376\333\333\335\250\250\252kkm;;=\203::<\202;;=\212" \
- "::<\10;;=::<;;=::<;;=::<;;=::<\202;;=\206::<\10;;=::<;;=::<;;=::<;;=" \
- "::<\202;;=\2::<;;=\203::<\3;;=::<;;=\202::<\1;;=\202::<\1;;=\211::<\1" \
- "99;\202;;=\203::<\1;;=\205::<\1;;=\204::<\1;;=\206::<\203;;=\202::<\1" \
- ";;=\206::<\1;;=\213::<\1;;=\204::<\1;;=\202::<\3__a\221\221\223\316\316" \
- "\316\204\377\377\377\1\376\376\376\202\377\377\377\1\376\376\376\207" \
- "\377\377\377\1\376\376\376\377\377\377\377\377\377\377\377\377\377\377" \
- "\377\267\377\377\377\202\376\376\376\210\377\377\377\1\376\376\376\207" \
- "\377\377\377\3\301\301\301\204\204\206SSU\203::<\3;;=::<;;=\202::<\2" \
- "99;;;=\215::<\1;;=\204::<\2;;=99;\202::<\202;;=\202::<\7""99;::<;;=:" \
- ":<;;=99;;;=\202::<\2""99;;;=\202::<\1;;=\207::<\1;;=\211::<\2""99;;;" \
- "=\202::<\3;;=::<;;=\202::<\2""99;;;=\206::<\4;;=::<;;=::<\202;;=\206" \
- "::<\3;;=::<;;=\202::<\5;;=::<;;=99;;;=\220::<\2;;=::<\202;;=\5""99;G" \
- "GIxxx\265\265\265\363\363\363\207\377\377\377\1\376\376\376\205\377\377" \
- "\377\1\376\376\376\377\377\377\377\377\377\377\377\377\377\377\377\274" \
- "\377\377\377\1\376\376\376\204\377\377\377\202\376\376\376\4\364\364" \
- "\364\265\265\265xxz;;=\20299;\202::<\1""99;\204::<\3;;=::<;;=\213::<" \
- "\1;;=\203::<\3;;=::<;;=\207::<\2;;=::<\202;;=\4""99;;;=::<;;=\202::<" \
- "\5__allnkkm\221\221\223\235\235\237\202\234\234\236\6\317\317\317\315" \
- "\315\315\317\317\317\315\315\315\316\316\316\346\346\346\213\377\377" \
- "\377\3\376\376\376\377\377\377\346\346\346\204\316\316\316\5\316\316" \
- "\320\251\251\253\234\234\236\233\233\235\235\235\237\203kkm\202::<\1" \
- ";;=\202::<\6;;=::<;;=99;::<;;=\205::<\2;;=::<\203;;=\202::<\1;;=\212" \
- "::<\1;;=\202::<\1;;=\202::<\1;;=\204::<\1;;=\202::<\3lln\250\250\252" \
- "\346\346\350\206\377\377\377\1\376\376\376\204\377\377\377\1\376\376" \
- "\376\377\377\377\377\377\377\377\377\377\377\377\377\271\377\377\377" \
- "\1\376\376\376\202\377\377\377\1\376\376\376\202\377\377\377\4\362\362" \
- "\362\266\266\270xxz::<\202;;=\202::<\10;;=::<99;;;=::<;;=::<;;=\203:" \
- ":<\1;;=\213::<\3;;=::<;;=\205::<\1;;=\202::<\1<<>\202::<\7llnkkm\233" \
- "\233\235\235\235\237\302\302\304\316\316\320\347\347\351\241\377\377" \
- "\377\202\376\376\376\203\377\377\377\17\376\376\376\377\377\377\376\376" \
- "\376\377\377\377\376\376\376\363\363\363\316\316\316\315\315\315\234" \
- "\234\234\235\235\235xxxllnFFH::<;;=\205::<\5;;=99;;;=::<;;=\212::<\202" \
- ";;=\212::<\5;;=99;;;=::<99;\202::<\5__a\250\250\252\346\346\346\377\377" \
- "\377\376\376\376\202\377\377\377\1\376\376\376\377\377\377\377\377\377" \
- "\377\377\377\377\377\377\271\377\377\377\202\376\376\376\2\377\377\377" \
- "\376\376\376\203\377\377\377\3\363\363\363\266\266\266wwy\202;;=\210" \
- "::<\1<<>\203::<\2<<>99;\215::<\1;;=\205::<\11;;=::<;;;___xxx\235\235" \
- "\235\266\266\266\315\315\315\364\364\364\207\377\377\377\1\376\376\376" \
- "\213\377\377\377\1\376\376\376\231\377\377\377\5\376\376\376\377\377" \
- "\377\376\376\376\377\377\377\376\376\376\202\377\377\377\1\376\376\376" \
- "\204\377\377\377\1\376\376\376\202\377\377\377\5\316\316\316\302\302" \
- "\302\233\233\233yyykkk\202::<\6;;=::<;;=::<99;;;=\211::<\1;;=\202::<" \
- "\1;;=\206::<\1""99;\202;;=\202::<\203;;=\1""99;\202::<\3__a\251\251\253" \
- "\346\346\346\204\377\377\377\3\376\376\376\377\377\377\376\376\376\377" \
- "\377\377\377\377\377\377\377\377\377\377\377\266\377\377\377\1\376\376" \
- "\376\202\377\377\377\2\302\302\302xxx\203::<\3;;=::<;;=\232::<\1;;=\202" \
- "::<\6RRTkkm\235\235\237\301\301\303\332\332\334\376\376\376\222\377\377" \
- "\377\1\376\376\376\260\377\377\377\3\376\376\376\377\377\377\376\376" \
- "\376\202\377\377\377\5\345\345\347\316\316\320\235\235\237xxzSSU\215" \
- "::<\202;;=\202::<\203;;=\2::<;;=\203::<\1;;=\204::<\10;;=::<;;=::<;;" \
- "=kkm\266\266\266\363\363\363\202\377\377\377\1\376\376\376\377\377\377" \
- "\377\377\377\377\377\377\377\377\377\245\377\377\377\1\376\376\376\214" \
- "\377\377\377\1\376\376\376\202\377\377\377\5\376\376\376\377\377\377" \
- "\332\332\332\205\205\207GGI\202::<\1;;=\211::<\202;;=\205::<\2;;=::<" \
- "\202;;=\203::<\14;;=99;::<;;=99;;;=FFFxxx\234\234\234\315\315\315\364" \
- "\364\364\376\376\376\323\377\377\377\4\317\317\317\250\250\250xxxSSS" \
- "\202::<\1;;=\206::<\2;;=::<\203;;=\202::<\2;;=99;\204::<\7;;=::<;;=:" \
- ":<;;=::<;;=\204::<\3\204\204\206\301\301\301\376\376\376\220\377\377" \
- "\377\1\376\376\376\377\377\377\377\377\377\377\377\377\377\377\377\225" \
- "\377\377\377\1\376\376\376\203\377\377\377\1\376\376\376\206\377\377" \
- "\377\1\376\376\376\202\377\377\377\4\363\363\363\251\251\251___;;=\202" \
- "::<\1;;=\202::<\202;;=\204::<\1;;=\202::<\7;;=::<;;=::<;;=::<;;=\203" \
- "::<\3""99;::<;;=\202::<\5;;=__a\221\221\223\265\265\267\346\346\346\323" \
- "\377\377\377\1\376\376\376\211\377\377\377\5\363\363\363\301\301\303" \
- "\235\235\237lln::<\202;;=\203::<\1;;=\204::<\1;;=\202::<\2""99;;;=\205" \
- "::<\2;;=99;\203::<\1""99;\204::<\3TTT\233\233\233\346\346\346\207\377" \
- "\377\377\1\376\376\376\377\377\377\377\377\377\377\377\377\377\377\377" \
- "\250\377\377\377\3\316\316\316\204\204\204;;=\203::<\1;;=\203::<\1;;" \
- "=\202::<\1;;=\205::<\3;;=::<;;=\202::<\4""99;;;=::<;;=\202::<\202;;=" \
- "\4___\221\221\221\301\301\303\363\363\365\203\377\377\377\1\376\376\376" \
- "\203\377\377\377\202\376\376\376\321\377\377\377\1\376\376\376\210\377" \
- "\377\377\1\376\376\376\202\377\377\377\4\316\316\316\235\235\235kkk;" \
- ";=\202::<\202;;=\203::<\5;;=::<;;=99;;;=\204::<\202;;=\7::<;;=99;::<" \
- ";;=::<;;=\202::<\202;;=\2xxz\302\302\304\213\377\377\377\1\376\376\376" \
- "\377\377\377\377\377\377\377\377\377\377\377\377\224\377\377\377\1\376" \
- "\376\376\212\377\377\377\3\363\363\363\266\266\266TTV\203::<\3;;=::<" \
- ";;=\202::<\203;;=\202::<\202;;=\205::<\1;;=\202::<\1;;=\204::<\4SSU\221" \
- "\221\223\301\301\301\363\363\363\206\377\377\377\1\376\376\376\203\377" \
- "\377\377\1\376\376\376\202\377\377\377\1\376\376\376\315\377\377\377" \
- "\202\376\376\376\202\377\377\377\1\376\376\376\210\377\377\377\1\376" \
- "\376\376\202\377\377\377\1\376\376\376\202\377\377\377\3\316\316\316" \
- "\221\221\223__a\203::<\1;;=\203::<\3;;=::<;;=\203::<\5;;=99;;;=::<;;" \
- "=\204::<\1""99;\205::<\3SSU\234\234\236\346\346\346\207\377\377\377\3" \
- "\376\376\376\377\377\377\376\376\376\377\377\377\377\377\377\377\377" \
- "\377\377\377\377\233\377\377\377\4\376\376\376\347\347\347\221\221\221" \
- "FFH\207::<\4""99;;;=::<;;=\20299;\202;;=\202::<\1;;=\203::<\2;;=::<\202" \
- ";;=\202::<\3xxz\250\250\252\346\346\350\215\377\377\377\203\376\376\376" \
- "\316\377\377\377\1\376\376\376\202\377\377\377\1\376\376\376\211\377" \
- "\377\377\1\376\376\376\211\377\377\377\4\363\363\363\265\265\267\205" \
- "\205\207FFH\210::<\3;;=::<;;=\204::<\1;;=\207::<\2;;=::<\202;;=\2\203" \
- "\203\205\317\317\321\206\377\377\377\1\376\376\376\377\377\377\377\377" \
- "\377\377\377\377\377\377\377\233\377\377\377\3\316\316\316yy{99;\206" \
- "::<\2;;=99;\202;;=\205::<\5""99;::<;;=::<;;=\202::<\6;;=::<;;=SSU\204" \
- "\204\204\301\301\301\226\377\377\377\1\376\376\376\317\377\377\377\1" \
- "\376\376\376\203\377\377\377\1\376\376\376\204\377\377\377\1\376\376" \
- "\376\204\377\377\377\1\376\376\376\205\377\377\377\1\376\376\376\202" \
- "\377\377\377\3\316\316\316\221\221\221SSU\203::<\3;;=::<99;\204::<\1" \
- ";;=\203::<\2""99;;;=\202::<\1;;=\204::<\5""99;<<>::<kkk\264\264\264\203" \
- "\377\377\377\1\376\376\376\377\377\377\377\377\377\377\377\377\377\377" \
- "\377\232\377\377\377\2\266\266\270__a\202::<\5;;=::<;;=::<99;\202;;=" \
- "\10::<;;=::<;;=::<;;=99;;;=\202::<\11;;=::<99;;;=::<;;=SSU\221\221\223" \
- "\331\331\331\211\377\377\377\1\376\376\376\204\377\377\377\1\376\376" \
- "\376\202\377\377\377\1\376\376\376\324\377\377\377\1\376\376\376\202" \
- "\377\377\377\3\376\376\376\377\377\377\376\376\376\212\377\377\377\1" \
- "\376\376\376\214\377\377\377\14\332\332\332\251\251\251``b::<;;=::<;" \
- ";=99;::<;;=::<;;=\202::<\3;;=99;;;=\203::<\1;;=\202::<\10;;=99;;;=::" \
- "<;;=SSU\250\250\252\363\363\363\377\377\377\377\377\377\377\377\377\377" \
- "\377\377\231\377\377\377\2\265\265\265SSU\216::<\4;;=::<99;;;=\205::" \
- "<\10;;=SSU\222\222\224\332\332\334\377\377\377\376\376\376\377\377\377" \
- "\376\376\376\205\377\377\377\1\376\376\376\203\377\377\377\1\376\376" \
- "\376\202\377\377\377\1\376\376\376\327\377\377\377\1\376\376\376\202" \
- "\377\377\377\1\376\376\376\206\377\377\377\1\376\376\376\207\377\377" \
- "\377\1\376\376\376\216\377\377\377\4\347\347\351\250\250\252``b::<\202" \
- ";;=\202::<\1;;=\203::<\1;;=\203::<\1;;=\202::<\3;;=::<;;=\202::<\6""9" \
- "9;;;=::<FFF\233\233\233\363\363\363\377\377\377\377\377\377\377\377\377" \
- "\377\377\377\206\377\377\377\3\376\376\376\377\377\377\376\376\376\213" \
- "\377\377\377\4\363\363\365\234\234\236FFH;;=\206::<\2""99;;;=\204::<" \
- "\202;;=\2::<;;=\206::<\4FFH\204\204\206\333\333\333\376\376\376\264\377" \
- "\377\377\3\376\376\376\377\377\377\376\376\376\327\377\377\377\4\346" \
- "\346\346\221\221\221SSS:::\202::<\1;;=\204::<\3;;=::<;;=\214::<\3GGI" \
- "\221\221\223\347\347\347\211\377\377\377\1\376\376\376\203\377\377\377" \
- "\1\376\376\376\377\377\377\377\377\377\377\377\371\377\377\377\1\376" \
- "\376\376\207\377\377\377\5\363\363\363\234\234\234FFH::<;;=\204::<\1" \
- ";;=\202::<\1;;=\203::<\1;;=\204::<\1;;=\203::<\5;;=xxz\300\300\302\377" \
- "\377\377\376\376\376\267\377\377\377\1\376\376\376\202\377\377\377\1" \
- "\376\376\376\215\377\377\377\1\376\376\376\303\377\377\377\3\376\376" \
- "\376\377\377\377\376\376\376\204\377\377\377\4\332\332\332\203\203\205" \
- "GGI99;\207::<\202;;=\203::<\6;;=::<;;=::<;;=99;\202;;=\202::<\3\204\204" \
- "\204\346\346\346\376\376\376\205\377\377\377\1\376\376\376\377\377\377" \
- "\377\377\377\377\377\373\377\377\377\1\376\376\376\203\377\377\377\1" \
- "\376\376\376\204\377\377\377\3\362\362\362\234\234\236GGI\203::<\15;" \
- ";=::<;;=::<;;=::<;;=99;;;=::<;;=::<99;\202;;=\7::<;;=99;::<```\250\250" \
- "\250\363\363\363\202\377\377\377\1\375\375\375\272\377\377\377\1\376" \
- "\376\376\214\377\377\377\1\376\376\376\306\377\377\377\1\375\375\375" \
- "\210\377\377\377\6\265\265\265lln::<;;=::<;;=\202::<\5;;=99;;;=::<99" \
- ";\205::<\1;;=\206::<\4\204\204\206\345\345\345\377\377\377\376\376\376" \
- "\207\377\377\377\1\376\376\376\377\377\377\377\377\377\377\377\372\377" \
- "\377\377\1\376\376\376\202\377\377\377\3\364\364\364\233\233\235GGI\202" \
- "::<\203;;=\2""99;;;=\202::<\3""99;::<;;=\202::<\13;;=99;::<;;=::<;;=" \
- "::<FFH\204\204\204\333\333\333\376\376\376\204\377\377\377\1\376\376" \
- "\376\204\377\377\377\1\376\376\376\304\377\377\377\1\376\376\376\317" \
- "\377\377\377\4\346\346\346\221\221\223GGI99;\204::<\1""99;\202;;=\2:" \
- ":<;;=\204::<\1;;=\204::<\202;;=\3::<\221\221\223\364\364\364\203\377" \
- "\377\377\1\376\376\376\203\377\377\377\1\376\376\376\377\377\377\377" \
- "\377\377\377\377\371\377\377\377\1\376\376\376\202\377\377\377\6\265" \
- "\265\267SSU::<99;::<;;=\203::<\1;;=\202::<\1;;=\204::<\3;;=::<;;=\202" \
- "::<\6;;=SSS\264\264\264\363\363\363\377\377\377\376\376\376\204\377\377" \
- "\377\3\376\376\376\377\377\377\376\376\376\267\377\377\377\1\376\376" \
- "\376\221\377\377\377\1\376\376\376\307\377\377\377\1\376\376\376\207" \
- "\377\377\377\4\376\376\376\377\377\377\266\266\266kkm\202::<\1;;=\202" \
- "::<\6;;=::<99;;;=99;;;=\205::<\3;;=::<99;\202::<\4GGI\234\234\234\363" \
- "\363\363\376\376\376\377\377\377\377\377\377\377\377\375\377\377\377" \
- "\4\376\376\376\377\377\377\265\265\265SSU\202::<\1;;=\204::<\1;;=\203" \
- "::<\3;;=99;;;=\205::<\202;;=\2yyy\316\316\316\203\377\377\377\1\376\376" \
- "\376\206\377\377\377\3\376\376\376\377\377\377\376\376\376\263\377\377" \
- "\377\1\376\376\376\205\377\377\377\2\315\315\315;;;\211::<\3;;;:::\315" \
- "\315\315\202\377\377\377\1\376\376\376\312\377\377\377\3\376\376\376" \
- "\377\377\377\376\376\376\205\377\377\377\5\346\346\346\204\204\204FF" \
- "H::<;;=\202::<\4;;=::<;;=::<\203;;=\203::<\2<<>99;\202::<\4""99;;;=F" \
- "FF\234\234\234\377\377\377\377\377\377\377\377\375\377\377\377\11\316" \
- "\316\320kkm::<;;=::<;;=99;::<;;=\203::<\202;;=\2::<99;\205::<\13;;=F" \
- "FH\221\221\221\346\346\346\376\376\376\377\377\377\376\376\376\377\377" \
- "\377\376\376\376\377\377\377\376\376\376\204\377\377\377\1\376\376\376" \
- "\273\377\377\377\2\376\376\376\317\317\317\212::<\6;;=;;;\316\316\316" \
- "\376\376\376\377\377\377\376\376\376\304\377\377\377\1\376\376\376\206" \
- "\377\377\377\5\376\376\376\377\377\377\376\376\376\377\377\377\376\376" \
- "\376\204\377\377\377\4\363\363\363\235\235\235RRT;;=\202::<\202;;=\7" \
- "::<;;=99;::<;;=::<;;=\203::<\1;;=\202::<\6;;=::<SSU\264\264\264\377\377" \
- "\377\376\376\376\377\377\377\377\377\377\377\377\367\377\377\377\3\346" \
- "\346\346xxz;;=\205::<\1;;=\203::<\3;;=::<;;=\207::<\3SSU\247\247\251" \
- "\363\363\363\217\377\377\377\1\376\376\376\272\377\377\377\1\316\316" \
- "\316\213::<\2;;=\316\316\316\306\377\377\377\3\376\376\376\377\377\377" \
- "\376\376\376\221\377\377\377\4\265\265\267SSU;;=99;\202::<\2""99;;;=" \
- "\206::<\1;;=\204::<\1;;=\202::<\3jjj\317\317\317\376\376\376\377\377" \
- "\377\377\377\377\377\377\343\377\377\377\1\376\376\376\211\377\377\377" \
- "\1\376\376\376\206\377\377\377\2\363\363\363\233\233\233\210::<\1;;=" \
- "\203::<\1;;=\203::<\1;;=\203::<\2SSS\265\265\265\315\377\377\377\1\316" \
- "\316\316\214::<\1\316\316\316\334\377\377\377\3\316\316\316kkk::<\202" \
- ";;=\206::<\1;;=\202::<\1;;=\202::<\7""99;;;=::<;;=::<\204\204\206\346" \
- "\346\350\377\377\377\377\377\377\377\377\347\377\377\377\1\376\376\376" \
- "\212\377\377\377\3\265\265\265SSS::<\202;;=\205::<\1;;=\202::<\202;;" \
- "=\202::<\1;;=\203::<\2lln\265\265\267\203\377\377\377\1\376\376\376\313" \
- "\377\377\377\1\316\316\316\214::<\1\316\316\316\336\377\377\377\6\316" \
- "\316\316kkm::<;;=::<;;=\202::<\3;;=::<;;=\204::<\10;;=99;;;=::<99;;;" \
- "=FFH\234\234\234\210\377\377\377\3\376\376\376\377\377\377\376\376\376" \
- "\377\377\377\377\377\377\377\377\327\377\377\377\2\376\376\376\377\377" \
- "\377\202\376\376\376\205\377\377\377\1\376\376\376\203\377\377\377\5" \
- "\332\332\332kkk;;=::<;;=\205::<\4;;=::<;;=::<\202;;=\2::<;;=\203::<\2" \
- "kkm\317\317\317\204\377\377\377\1\376\376\376\314\377\377\377\1\316\316" \
- "\316\214::<\1\316\316\316\336\377\377\377\14\376\376\376\377\377\377" \
- "\316\316\316\204\204\206;;=::<;;=::<;;=99;::<;;=\205::<\11;;=99;;;=9" \
- "9;::<;;;RRR\317\317\317\376\376\376\204\377\377\377\1\376\376\376\377" \
- "\377\377\377\377\377\377\377\332\377\377\377\202\376\376\376\211\377" \
- "\377\377\2\363\363\363\221\221\223\203::<\1;;=\207::<\1;;=\202::<\202" \
- ";;=\10::<99;::<lln\316\316\316\376\376\376\377\377\377\376\376\376\206" \
- "\377\377\377\1\376\376\376\311\377\377\377\1\316\316\316\214::<\1\316" \
- "\316\316\335\377\377\377\7\376\376\376\377\377\377\376\376\376\377\377" \
- "\377\376\376\376\347\347\347kkm\202::<\2""88:;;=\203::<\1;;=\204::<\3" \
- ";;=99;;;=\202::<\4;;=::<xxx\346\346\346\206\377\377\377\1\376\376\376" \
- "\377\377\377\377\377\377\377\377\331\377\377\377\3\376\376\376\377\377" \
- "\377\376\376\376\203\377\377\377\4\376\376\376\377\377\377\300\300\302" \
- "SSU\207::<\1;;=\202::<\1;;=\205::<\4""99;;;=SSU\316\316\316\204\377\377" \
- "\377\1\376\376\376\205\377\377\377\1\376\376\376\202\377\377\377\1\376" \
- "\376\376\307\377\377\377\1\316\316\316\214::<\1\316\316\316\334\377\377" \
- "\377\1\376\376\376\202\377\377\377\1\376\376\376\204\377\377\377\3\317" \
- "\317\317kkm;;=\205::<\3;;=::<99;\203::<\1;;=\204::<\3;;=FFH\250\250\250" \
- "\205\377\377\377\3\376\376\376\377\377\377\376\376\376\377\377\377\377" \
- "\377\377\377\377\326\377\377\377\1\376\376\376\204\377\377\377\4\376" \
- "\376\376\377\377\377\347\347\351xxz\202::<\1;;=\204::<\1;;=\203::<\1" \
- ";;=\204::<\4""99;;;=SSU\266\266\266\205\377\377\377\1\376\376\376\202" \
- "\377\377\377\1\376\376\376\205\377\377\377\1\375\375\375\310\377\377" \
- "\377\1\316\316\316\214::<\1\316\316\316\344\377\377\377\7\376\376\376" \
- "\377\377\377\316\316\316kkm;;=::<99;\202::<\203;;=\2::<;;=\204::<\1;" \
- ";=\202::<\3;;=__a\332\332\334\377\377\377\377\377\377\377\377\335\377" \
- "\377\377\1\376\376\376\204\377\377\377\4\250\250\252FFH::<;;=\202::<" \
- "\3;;=::<;;=\202::<\3""99;::<;;=\202::<\1;;=\202::<\4HHJ\250\250\250\377" \
- "\377\377\376\376\376\206\377\377\377\202\376\376\376\205\377\377\377" \
- "\1\376\376\376\311\377\377\377\1\316\316\316\214::<\1\316\316\316\345" \
- "\377\377\377\1\376\376\376\202\377\377\377\2\301\301\301SSU\202::<\1" \
- ";;=\202::<\2""99;;;=\212::<\3;;=\233\233\233\363\363\363\377\377\377" \
- "\377\377\377\377\377\331\377\377\377\1\376\376\376\204\377\377\377\2" \
- "\346\346\346kkk\211::<\3;;=99;;;=\206::<\2\235\235\237\363\363\363\205" \
- "\377\377\377\1\376\376\376\202\377\377\377\1\376\376\376\321\377\377" \
- "\377\1\316\316\316\214::<\1\316\316\316\352\377\377\377\2\250\250\252" \
- "GGI\206::<\5;;=::<;;=::<;;=\202::<\202;;=\4::<:::SSS\316\316\316\203" \
- "\377\377\377\1\376\376\376\377\377\377\377\377\377\377\377\330\377\377" \
- "\377\2\251\251\251FFH\203::<\1""99;\207::<\1;;=\204::<\3;;=xxx\346\346" \
- "\346\334\377\377\377\1\316\316\316\214::<\1\316\316\316\350\377\377\377" \
- "\13\376\376\376\377\377\377\376\376\376\363\363\363\234\234\23699;;;" \
- "=::<;;=99;;;=\202::<\2""99;;;=\206::<\202;;=\2\221\221\223\363\363\363" \
- "\204\377\377\377\3\376\376\376\377\377\377\376\376\376\202\377\377\377" \
- "\1\376\376\376\377\377\377\377\377\377\377\377\316\377\377\377\2\346" \
- "\346\346kkk\202;;=\206::<\1;;=\203::<\3;;=::<;;=\202::<\2``b\316\316" \
- "\320\336\377\377\377\1\316\316\316\214::<\1\316\316\316\353\377\377\377" \
- "\4\376\376\376\377\377\377\350\350\352kkm\206::<\2;;=99;\203::<\1;;=" \
- "\203::<\6;;=::<TTV\331\331\331\377\377\377\376\376\376\207\377\377\377" \
- "\1\376\376\376\377\377\377\377\377\377\377\377\306\377\377\377\1\376" \
- "\376\376\203\377\377\377\5\376\376\376\377\377\377\266\266\266EEG;;=" \
- "\203::<\1;;=\203::<\1;;=\204::<\202;;=\3::<GGI\250\250\252\205\377\377" \
- "\377\1\376\376\376\202\377\377\377\1\376\376\376\327\377\377\377\1\316" \
- "\316\316\214::<\1\316\316\316\351\377\377\377\1\376\376\376\203\377\377" \
- "\377\5\376\376\376\377\377\377\316\316\316TTV;;=\203::<\3;;=::<;;=\204" \
- "::<\202;;=\5::<;;=99;;;=\234\234\236\207\377\377\377\1\376\376\376\377" \
- "\377\377\377\377\377\377\377\303\377\377\377\3\376\376\376\377\377\377" \
- "\376\376\376\203\377\377\377\6\376\376\376\377\377\377\364\364\364ww" \
- "y::<;;=\202::<\202;;=\202::<\5;;=::<99;::<;;=\202::<\4;;=::<\204\204" \
- "\206\363\363\363\202\377\377\377\1\376\376\376\202\377\377\377\3\376" \
- "\376\376\377\377\377\376\376\376\331\377\377\377\1\316\316\316\214::" \
- "<\1\316\316\316\353\377\377\377\1\376\376\376\204\377\377\377\11\376" \
- "\376\376\234\234\234GGI::<;;=::<;;=::<;;=\207::<\1;;=\202::<\2__a\332" \
- "\332\332\377\377\377\377\377\377\377\377\320\377\377\377\4\316\316\316" \
- "FFH::<;;=\202::<\1;;=\207::<\2;;=99;\202;;=\3__a\316\316\320\376\376" \
- "\376\342\377\377\377\1\316\316\316\214::<\1\316\316\316\361\377\377\377" \
- "\5\376\376\376\347\347\347lln::<;;=\210::<\1""99;\202::<\7;;=::<99;G" \
- "GI\247\247\247\377\377\377\376\376\376\202\377\377\377\1\376\376\376" \
- "\377\377\377\377\377\377\377\377\305\377\377\377\1\376\376\376\203\377" \
- "\377\377\3\221\221\221:::;;=\203::<\1;;=\202::<\1;;=\203::<\1;;=\202" \
- "::<\4;;=FFH\234\234\234\376\376\376\202\377\377\377\1\375\375\375\202" \
- "\377\377\377\1\376\376\376\203\377\377\377\1\376\376\376\332\377\377" \
- "\377\1\316\316\316\214::<\1\316\316\316\364\377\377\377\3\301\301\303" \
- "FFH;;=\206::<\1;;=\205::<\5;;=99;;;=yy{\363\363\363\377\377\377\377\377" \
- "\377\377\377\312\377\377\377\3\346\346\346^^`;;=\207::<\1;;=\203::<\1" \
- ";;=\203::<\2jjl\346\346\350\202\377\377\377\1\376\376\376\213\377\377" \
- "\377\1\375\375\375\327\377\377\377\1\316\316\316\214::<\1\316\316\316" \
- "\360\377\377\377\3\376\376\376\377\377\377\376\376\376\202\377\377\377" \
- "\2\363\363\363\220\220\220\202;;=\203::<\2;;=99;\206::<\1;;=\202::<\2" \
- "SSU\316\316\320\202\377\377\377\1\376\376\376\377\377\377\377\377\377" \
- "\377\377\303\377\377\377\4\376\376\376\377\377\377\302\302\302FFH\217" \
- "::<\2GGI\250\250\252\205\377\377\377\1\376\376\376\211\377\377\377\3" \
- "\376\376\376\377\377\377\376\376\376\326\377\377\377\1\316\316\316\214" \
- "::<\1\316\316\316\356\377\377\377\1\376\376\376\210\377\377\377\3\316" \
- "\316\316SSU;;=\203::<\202;;=\207::<\1;;=\202::<\1\235\235\237\377\377" \
- "\377\377\377\377\377\377\306\377\377\377\1\221\221\221\202::<\2;;=99" \
- ";\203::<\3;;=::<;;=\203::<\1;;=\202::<\2kkm\346\346\346\351\377\377\377" \
- "\1\316\316\316\214::<\1\316\316\316\370\377\377\377\2\362\362\362\221" \
- "\221\221\204::<\3;;=::<;;=\206::<\1;;=\202::<\2xxz\362\362\364\377\377" \
- "\377\377\377\377\377\377\301\377\377\377\3\376\376\376\363\363\363__" \
- "_\204::<\3;;=::<;;=\202::<\2;;=99;\202;;=\4::<99;GGI\250\250\252\353" \
- "\377\377\377\1\316\316\316\214::<\1\316\316\316\366\377\377\377\1\376" \
- "\376\376\203\377\377\377\2\317\317\317SSS\211::<\202;;=\6""99;;;=99;" \
- "::<SSU\332\332\332\202\377\377\377\1\376\376\376\377\377\377\377\377" \
- "\377\377\377\267\377\377\377\11\376\376\376\377\377\377\376\376\376\377" \
- "\377\377\376\376\376\377\377\377\317\317\321FFH;;=\202::<\3;;=::<99;" \
- "\203::<\203;;=\202::<\4;;=lll\346\346\346\376\376\376\353\377\377\377" \
- "\1\316\316\316\214::<\1\316\316\316\367\377\377\377\1\376\376\376\202" \
- "\377\377\377\5\376\376\376\363\363\363\221\221\223;;=99;\202;;=\3::<" \
- "99;;;=\202::<\202;;=\6::<;;=::<;;=::<\265\265\265\202\377\377\377\1\376" \
- "\376\376\377\377\377\377\377\377\377\377\273\377\377\377\1\250\250\252" \
- "\202::<\2""99;;;=\203::<\1;;=\202::<\1;;=\204::<\3;;=\250\250\250\376" \
- "\376\376\205\377\377\377\1\376\376\376\347\377\377\377\1\316\316\316" \
- "\214::<\1\316\316\316\373\377\377\377\5\376\376\376\377\377\377\300\300" \
- "\300FFH;;=\202::<\1;;=\202::<\3;;=::<;;=\202::<\2;;=::<\202;;=\4\205" \
- "\205\207\376\376\376\377\377\377\376\376\376\377\377\377\377\377\377" \
- "\377\377\267\377\377\377\3\376\376\376\364\364\364\205\205\207\202::" \
- "<\202;;=\15""99;;;=::<;;=::<;;=::<99;;;=99;;;=__a\331\331\331\357\377" \
- "\377\377\1\316\316\316\214::<\1\316\316\316\366\377\377\377\1\376\376" \
- "\376\203\377\377\377\1\376\376\376\203\377\377\377\2\363\363\363kkm\215" \
- "::<\4;;=99;__a\363\363\363\202\377\377\377\1\376\376\376\377\377\377" \
- "\377\377\377\377\377\265\377\377\377\4\347\347\351__a::<;;=\203::<\1" \
- ";;=\202::<\1;;=\203::<\1;;=\202::<\2\221\221\223\363\363\363\360\377" \
- "\377\377\1\316\316\316\214::<\1\316\316\316\364\377\377\377\1\376\376" \
- "\376\203\377\377\377\1\376\376\376\207\377\377\377\2\251\251\253;;=\203" \
- "::<\1;;=\203::<\1;;=\203::<\203;;=\3FFH\332\332\332\376\376\376\377\377" \
- "\377\377\377\377\377\377\265\377\377\377\4\331\331\331FFH::<;;=\203:" \
- ":<\1;;=\202::<\1;;=\205::<\2FFH\302\302\302\205\377\377\377\7\376\376" \
- "\376\377\377\377\376\376\376\377\377\377\376\376\376\377\377\377\376" \
- "\376\376\346\377\377\377\1\316\316\316\214::<\1\316\316\316\377\377\377" \
- "\377\202\377\377\377\2\332\332\332SSU\203::<\1;;=\203::<\12""99;;;=:" \
- ":<99;::<;;=99;;;=\266\266\266\376\376\376\377\377\377\377\377\377\377" \
- "\377\263\377\377\377\1\265\265\265\202::<\1;;=\205::<\202;;=\202::<\1" \
- ";;=\202::<\2__a\346\346\350\203\377\377\377\1\376\376\376\357\377\377" \
- "\377\1\316\316\316\214::<\1\316\316\316\377\377\377\377\203\377\377\377" \
- "\2\363\363\363\204\204\204\202::<\1;;=\203::<\1;;=\205::<\1;;=\202::" \
- "<\1\221\221\221\377\377\377\377\377\377\377\377\262\377\377\377\4\235" \
- "\235\237;;=::<;;=\203::<\1;;=\206::<\3;;=::<\222\222\222\202\377\377" \
- "\377\1\376\376\376\362\377\377\377\1\316\316\316\214::<\1\316\316\316" \
- "\377\377\377\377\205\377\377\377\3\265\265\265:::;;=\206::<\5;;=::<;" \
- ";=::<;;=\202::<\2\204\204\206\363\363\363\212\377\377\377\1\376\376\376" \
- "\377\377\377\377\377\377\377\377\236\377\377\377\1\376\376\376\202\377" \
- "\377\377\4\376\376\376\377\377\377\376\376\377\204\204\206\206::<\12" \
- ";;=::<;;=::<;;=::<;;=::<FFH\301\301\301\366\377\377\377\1\316\316\316" \
- "\214::<\1\316\316\316\377\377\377\377\206\377\377\377\4\333\333\333S" \
- "SU::<;;=\205::<\4;;=::<;;=::<\202;;=\3::<__a\364\364\364\202\377\377" \
- "\377\1\376\376\376\205\377\377\377\1\376\376\376\202\377\377\377\1\376" \
- "\376\376\377\377\377\377\377\377\377\377\236\377\377\377\4\376\376\376" \
- "\377\377\377\363\363\365__a\203::<\10""99;;;=::<;;=99;;;=99;;;=\203:" \
- ":<\2__a\332\332\332\203\377\377\377\1\376\376\376\363\377\377\377\1\316" \
- "\316\316\214::<\1\316\316\316\377\377\377\377\207\377\377\377\7\363\363" \
- "\363kkm;;=::<;;=::<;;=\204::<\202;;=\10""99;;;=::<SSU\332\332\332\376" \
- "\376\376\377\377\377\376\376\376\205\377\377\377\1\376\376\376\377\377" \
- "\377\377\377\377\377\377\236\377\377\377\1\376\376\376\202\377\377\377" \
- "\2\346\346\350__a\202::<\4;;=::<;;=99;\204::<\1;;=\203::<\3xxz\362\362" \
- "\362\377\377\377\202\376\376\376\365\377\377\377\1\316\316\316\214::" \
- "<\1\316\316\316\377\377\377\377\210\377\377\377\5\376\376\376\234\234" \
- "\234;;=::<;;=\202::<\14;;=::<;;=99;;;=::<;;=::<;;=FFH\332\332\332\376" \
- "\376\376\203\377\377\377\1\376\376\376\203\377\377\377\3\376\376\376" \
- "\377\377\377\376\376\376\377\377\377\377\377\377\377\377\235\377\377" \
- "\377\4\332\332\332FFH::<;;=\205::<\1;;=\205::<\2;;=\234\234\234\372\377" \
- "\377\377\1\316\316\316\214::<\1\316\316\316\377\377\377\377\212\377\377" \
- "\377\2\300\300\300FFH\203::<\1""99;\202::<\2;;=99;\203::<\4;;=::<FFH" \
- "\266\266\266\205\377\377\377\1\376\376\376\202\377\377\377\1\376\376" \
- "\376\377\377\377\377\377\377\377\377\235\377\377\377\3\332\332\332FF" \
- "H;;=\205::<\1;;=\202::<\1""99;\203::<\6FFH\301\301\301\377\377\377\376" \
- "\376\376\377\377\377\376\376\376\207\377\377\377\1\376\376\376\357\377" \
- "\377\377\1\316\316\316\214::<\1\316\316\316\377\377\377\377\211\377\377" \
- "\377\4\376\376\376\377\377\377\331\331\331SSU\204::<\6""99;::<;;=::<" \
- ";;=::<\202;;=\202::<\1\266\266\270\203\377\377\377\1\376\376\376\377" \
- "\377\377\377\377\377\377\377\240\377\377\377\2\265\265\265EEG\202::<" \
- "\6;;=::<;;=::<;;=99;\203::<\4;;=::<SSU\332\332\332\203\377\377\377\1" \
- "\376\376\376\207\377\377\377\1\376\376\376\360\377\377\377\1\316\316" \
- "\316\214::<\1\316\316\316\377\377\377\377\212\377\377\377\15\376\376" \
- "\376\377\377\377\363\363\363__a::<;;=99;;;=::<99;;;=::<;;=\202::<\4;" \
- ";=99;;;=\250\250\252\204\377\377\377\1\376\376\376\377\377\377\377\377" \
- "\377\377\377\235\377\377\377\5\265\265\265::<;;=::<;;=\202::<\202;;=" \
- "\2::<;;=\204::<\2__a\364\364\364\206\377\377\377\1\376\376\376\366\377" \
- "\377\377\1\316\316\316\214::<\1\316\316\316\377\377\377\377\211\377\377" \
- "\377\1\376\376\376\204\377\377\377\2\204\204\20699;\204::<\1;;=\204:" \
- ":<\5""99;;;=99;::<\204\204\204\377\377\377\377\377\377\377\377\232\377" \
- "\377\377\1\376\376\376\205\377\377\377\2\265\265\267;;=\211::<\1;;=\203" \
- "::<\1\205\205\205\377\377\377\377\1\316\316\316\214::<\1\316\316\316" \
- "\377\377\377\377\215\377\377\377\12\376\376\376\377\377\377\250\250\250" \
- "::<;;=::<99;;;=::<;;=\202::<\3;;=::<99;\202::<\1\205\205\207\212\377" \
- "\377\377\1\376\376\376\377\377\377\377\377\377\377\377\223\377\377\377" \
- "\1\265\265\267\203::<\202;;=\1""99;\204::<\5;;=::<;;=::<\235\235\237" \
- "\377\377\377\377\2\377\377\377\316\316\316\214::<\1\316\316\316\377\377" \
- "\377\377\216\377\377\377\3\376\376\376\377\377\377\265\265\267\202::" \
- "<\3;;=::<;;=\205::<\1;;=\203::<\1\204\204\204\210\377\377\377\1\376\376" \
- "\376\202\377\377\377\1\376\376\376\377\377\377\377\377\377\377\377\220" \
- "\377\377\377\6\234\234\236::<;;=::<;;=99;\204::<\1;;=\204::<\1\265\265" \
- "\265\377\377\377\377\202\377\377\377\1\316\316\316\214::<\1\316\316\316" \
- "\377\377\377\377\215\377\377\377\1\376\376\376\203\377\377\377\2\334" \
- "\334\334FFH\207::<\202;;=\203::<\3;;=\204\204\206\376\376\376\207\377" \
- "\377\377\1\376\376\376\377\377\377\377\377\377\377\377\216\377\377\377" \
- "\11\376\376\376\377\377\377\376\376\376\204\204\206::<99;;;=::<;;=\204" \
- "::<\6;;=99;;;=::<FFH\301\301\301\377\377\377\377\203\377\377\377\1\316" \
- "\316\316\214::<\1\316\316\316\377\377\377\377\215\377\377\377\1\376\376" \
- "\376\202\377\377\377\202\376\376\376\3\332\332\332FFH::<\202;;=\203:" \
- ":<\3;;=99;;;=\204::<\2\205\205\207\376\376\376\203\377\377\377\1\376" \
- "\376\376\203\377\377\377\3\376\376\376\377\377\377\376\376\376\377\377" \
- "\377\377\377\377\377\377\212\377\377\377\7\376\376\376\377\377\377\376" \
- "\376\376\204\204\20499;::<;;=\202::<\1""99;\205::<\4;;=::<GGI\332\332" \
- "\334\377\377\377\377\204\377\377\377\1\316\316\316\214::<\1\316\316\316" \
- "\377\377\377\377\217\377\377\377\6\376\376\376\377\377\377\376\376\376" \
- "\377\377\377\362\362\362__a\203::<\202;;=\11""99;;;=::<99;;;=::<;;=:" \
- ":<\204\204\204\205\377\377\377\1\376\376\376\202\377\377\377\1\376\376" \
- "\376\377\377\377\377\377\377\377\377\215\377\377\377\1\204\204\204\202" \
- "::<\1;;=\207::<\1<<>\202::<\2FFH\331\331\333\377\377\377\377\205\377" \
- "\377\377\1\316\316\316\214::<\1\316\316\316\377\377\377\377\216\377\377" \
- "\377\1\376\376\376\203\377\377\377\4\376\376\376\377\377\377\363\363" \
- "\363__a\204::<\2;;=99;\206::<\2;;=\204\204\204\203\377\377\377\1\376" \
- "\376\376\377\377\377\377\377\377\377\377\220\377\377\377\1\204\204\204" \
- "\205::<\1;;=\203::<\1;;=\203::<\4__a\363\363\363\377\377\377\376\376" \
- "\376\377\377\377\377\204\377\377\377\1\316\316\316\214::<\1\316\316\316" \
- "\377\377\377\377\224\377\377\377\4\376\376\376\363\363\363xxx::<\202" \
- ";;=\202::<\1;;=\203::<\1;;=\203::<\1\205\205\207\204\377\377\377\1\376" \
- "\376\376\377\377\377\377\377\377\377\377\215\377\377\377\1\250\250\250" \
- "\205::<\1;;=\203::<\12;;=99;;;=::<__a\363\363\365\377\377\377\376\376" \
- "\376\377\377\377\376\376\376\377\377\377\377\203\377\377\377\1\316\316" \
- "\316\214::<\1\316\316\316\377\377\377\377\227\377\377\377\5\204\204\204" \
- "::<;;=::<;;=\204::<\1""99;\204::<\1\204\204\204\377\377\377\377\377\377" \
- "\377\377\213\377\377\377\1\376\376\376\202\377\377\377\4\376\376\376" \
- "\377\377\377\265\265\267;;=\212::<\4;;=::<__a\363\363\363\217\377\377" \
- "\377\1\376\376\376\367\377\377\377\1\316\316\316\214::<\1\316\316\316" \
- "\376\377\377\377\202\377\377\375\3\377\376\377\377\377\377\376\377\375" \
- "\224\377\377\377\3\204\204\206::<;;=\211::<\7""99;::<\203\203\205\377" \
- "\377\377\376\376\376\377\377\377\376\376\376\205\377\377\377\1\376\376" \
- "\376\202\377\377\377\202\376\376\376\377\377\377\377\377\377\377\377" \
- "\2\264\264\266;;=\202::<\202;;=\1""99;\207::<\2__a\363\363\365\217\377" \
- "\377\377\3\376\376\376\377\377\377\376\376\376\366\377\377\377\1\316" \
- "\316\316\214::<\1\316\316\316\375\377\377\377\5\377\377\375\377\376\377" \
- "\377\375\377\377\377\375\377\377\377\202\377\376\377\221\377\377\377" \
- "\1\376\376\376\202\377\377\377\1\204\204\206\203::<\1;;=\202::<\2;;=" \
- "::<\202;;=\202::<\3;;=\204\204\204\376\376\376\211\377\377\377\3\376" \
- "\376\376\377\377\377\376\376\376\377\377\377\377\375\377\377\377\7\376" \
- "\376\376\264\264\266;;=99;::<;;=99;\204::<\1;;=\203::<\2aac\363\363\363" \
- "\221\377\377\377\1\376\376\376\367\377\377\377\1\316\316\316\214::<\1" \
- "\316\316\316\375\377\377\377\202\376\376\376\203\377\377\377\202\376" \
- "\377\377\222\377\377\377\10\376\376\376\377\377\377\376\376\376\204\204" \
- "\206::<;;=::<;;=\203::<\202;;=\202::<\6""99;;;=\205\205\207\376\376\376" \
- "\377\377\377\376\376\376\203\377\377\377\202\376\376\376\202\377\377" \
- "\377\1\376\376\376\377\377\377\377\375\377\377\377\3\376\376\376\302" \
- "\302\304;;=\203::<\1;;=\204::<\6;;=99;;;=::<aac\362\362\362\223\377\377" \
- "\377\1\376\376\376\366\377\377\377\1\316\316\316\214::<\1\316\316\316" \
- "\374\377\377\377\6\375\377\376\377\377\375\377\376\377\376\377\377\376" \
- "\376\376\377\377\375\202\377\376\377\225\377\377\377\2\376\376\376\204" \
- "\204\206\206::<\1""99;\203::<\1;;=\202::<\1\251\251\253\204\377\377\377" \
- "\1\376\376\376\377\377\377\377\377\377\377\377\203\377\377\377\4\332" \
- "\332\332FFH::<;;=\202::<\1""99;\205::<\4;;=::<__a\363\363\365\202\377" \
- "\377\377\1\376\376\376\377\377\377\377\211\377\377\377\1\316\316\316" \
- "\214::<\1\316\316\316\374\377\377\377\5\376\377\377\376\376\376\377\376" \
- "\377\377\377\375\376\377\375\202\376\377\377\1\377\377\375\221\377\377" \
- "\377\3\376\376\376\377\377\377\376\376\376\203\377\377\377\2\204\204" \
- "\206;;=\205::<\1;;=\203::<\7;;=::<;;=\265\265\265\376\376\376\377\377" \
- "\377\376\376\376\202\377\377\377\5\376\376\376\377\377\377\376\376\376" \
- "\377\377\377\376\376\376\377\377\377\377\373\377\377\377\6\331\331\331" \
- "GGI::<;;=::<;;=\205::<\1<<>\202::<\2__a\363\363\365\202\377\377\377\1" \
- "\376\376\376\213\377\377\377\1\376\376\376\375\377\377\377\1\316\316" \
- "\316\214::<\1\316\316\316\374\377\377\377\7\377\376\377\376\377\377\376" \
- "\376\374\377\376\377\377\377\375\376\377\377\377\377\375\226\377\377" \
- "\377\1\376\376\376\202\377\377\377\1\203\203\203\214::<\2;;=\265\265" \
- "\265\206\377\377\377\1\376\376\376\377\377\377\377\374\377\377\377\4" \
- "\364\364\364GGI99;;;=\206::<\1;;=\203::<\2__a\363\363\363\205\377\377" \
- "\377\1\376\376\376\212\377\377\377\1\363\363\363\203\377\377\377\1\376" \
- "\376\376\370\377\377\377\1\316\316\316\214::<\1\316\316\316\374\377\377" \
- "\377\10\377\377\375\377\376\377\377\377\377\377\377\375\377\376\377\370" \
- "\373\362\370\373\364\377\376\377\220\377\377\377\1\376\376\376\202\377" \
- "\377\377\1\376\376\376\202\377\377\377\1\376\376\376\202\377\377\377" \
- "\1\204\204\204\203::<\1;;=\210::<\2FFH\332\332\334\204\377\377\377\1" \
- "\376\376\376\377\377\377\377\374\377\377\377\3\363\363\363___;;=\202" \
- "::<\1;;=\204::<\6;;=99;;;=::<__a\363\363\365\220\377\377\377\3\265\265" \
- "\265FFF\333\333\333\373\377\377\377\1\316\316\316\214::<\1\316\316\316" \
- "\376\377\377\377\6\374\377\377\377\377\375\371\374\365\242\320c\240\322" \
- "c\371\372\362\221\377\377\377\1\376\376\376\210\377\377\377\2\203\203" \
- "\203;;=\202::<\1;;=\203::<\1;;=\203::<\3;;=FFH\333\333\333\202\377\377" \
- "\377\1\376\376\376\377\377\377\377\371\377\377\377\1\376\376\376\203" \
- "\377\377\377\2kkm::<\202;;=\1""99;\205::<\202;;=\3::<__a\363\363\363" \
- "\220\377\377\377\5\265\265\267::<;;=FFH\332\332\332\206\377\377\377\3" \
- "\376\376\376\377\377\377\376\376\376\361\377\377\377\1\316\316\316\213" \
- "::<\2;;=\316\316\316\365\377\377\377\22\376\376\377\377\377\375\377\377" \
- "\377\377\377\375\377\377\377\377\376\377\377\377\375\377\377\377\376" \
- "\376\377\377\377\377\371\374\365\242\320c\215\307\77\215\305@\242\322" \
- "e\372\373\365\376\377\375\377\376\377\230\377\377\377\3\205\205\207:" \
- ":<;;=\206::<\1;;=\202::<\4;;=SSU\363\363\365\376\376\376\377\377\377" \
- "\377\374\377\377\377\13\376\376\376\204\204\204::<;;=99;::<;;=::<;;=" \
- "::<;;=\203::<\3__a\364\364\366\376\376\376\217\377\377\377\1\265\265" \
- "\267\203::<\3;;=FFF\332\332\332\206\377\377\377\1\376\376\376\361\377" \
- "\377\377\2\376\376\376\317\317\317\212::<\6;;=;;;\316\316\316\376\376" \
- "\376\377\377\377\376\376\376\361\377\377\377\6\376\376\377\377\376\377" \
- "\375\376\377\376\377\377\377\377\375\375\377\376\202\377\377\377\17\376" \
- "\376\376\377\377\377\371\372\364\240\322a\215\305@\212\307>\215\307\77" \
- "\215\305>\242\320c\370\372\365\377\377\377\377\376\377\376\377\375\377" \
- "\377\375\377\376\377\225\377\377\377\5kkm::<;;=99;;;=\210::<\4__a\364" \
- "\364\364\376\376\376\377\377\377\202\376\376\376\377\377\377\377\363" \
- "\377\377\377\3\376\376\376\377\377\377\376\376\376\202\377\377\377\4" \
- "\250\250\252::<;;=99;\202;;=\205::<\202;;=\3FFH\345\345\345\376\376\376" \
- "\217\377\377\377\4\264\264\266;;=::<;;=\203::<\2GGI\332\332\332\203\377" \
- "\377\377\1\376\376\376\356\377\377\377\1\376\376\376\205\377\377\377" \
- "\2\315\315\315;;;\211::<\3;;;:::\315\315\315\202\377\377\377\1\376\376" \
- "\376\361\377\377\377\23\377\377\375\375\376\377\376\377\377\376\377\375" \
- "\377\374\377\377\377\375\375\377\376\377\377\377\377\377\375\371\372" \
- "\364\242\321g\215\306A\212\307>\215\306A\212\306@\214\305@\212\306B\241" \
- "\322_\367\372\361\204\377\377\377\1\377\377\375\220\377\377\377\1\376" \
- "\376\376\203\377\377\377\3\363\363\363__a99;\202::<\6;;=::<99;;;=99;" \
- ";;=\203::<\1\205\205\207\204\377\377\377\1\376\376\376\377\377\377\377" \
- "\362\377\377\377\1\376\376\376\202\377\377\377\22\376\376\376\265\265" \
- "\267::<99;;;=::<;;=99;;;=::<;;=::<;;=::<FFH\331\331\331\377\377\377\376" \
- "\376\376\216\377\377\377\1\265\265\267\203::<\1;;=\202::<\4;;=::<GGI" \
- "\332\332\332\210\377\377\377\1\376\376\376\353\377\377\377\1\376\376" \
- "\376\221\377\377\377\1\376\376\376\363\377\377\377\17\376\377\377\376" \
- "\377\375\377\375\376\375\377\376\377\377\375\377\377\377\377\376\377" \
- "\367\374\365\240\320b\215\307=\213\305=\215\306A\215\305>\214\305@\214" \
- "\306>\202\214\305@\4\241\321a\371\374\365\376\376\377\377\377\375\202" \
- "\376\377\377\221\377\377\377\1\376\376\376\203\377\377\377\3\362\362" \
- "\362``b99;\205::<\1;;=\203::<\6;;=99;\235\235\237\376\376\376\377\377" \
- "\377\376\376\376\377\377\377\377\366\377\377\377\2\332\332\332FFH\202" \
- ";;=\4""99;;;=::<;;=\205::<\2FFH\332\332\334\202\377\377\377\3\376\376" \
- "\376\377\377\377\376\376\376\213\377\377\377\4\266\266\26699;::<;;=\202" \
- "::<\1;;=\202::<\4;;=::<FFF\332\332\332\203\377\377\377\1\376\376\376" \
- "\202\377\377\377\1\376\376\376\375\377\377\377\1\376\376\376\363\377" \
- "\377\377\202\377\377\375\3\377\374\377\375\377\376\376\377\377\202\377" \
- "\377\377\21\370\373\364\241\321c\216\306\77\212\306@\214\306>\215\305" \
- "@\212\306@\213\310=\214\306<\216\306\77\214\304=\214\306>\241\321c\372" \
- "\375\362\376\376\376\377\376\377\376\376\374\220\377\377\377\2\376\376" \
- "\376\377\377\377\203\376\376\376\4\377\377\377\364\364\364FFH;;=\202" \
- "::<\1;;=\202::<\1;;=\203::<\3;;=::<\265\265\265\377\377\377\377\367\377" \
- "\377\377\4\362\362\362SSU::<;;=\205::<\1""99;\202;;=\3::<;;=\265\265" \
- "\267\216\377\377\377\3\376\376\376\377\377\377\265\265\265\202::<\5;" \
- ";=99;;;=::<;;=\204::<\4;;=FFH\332\332\332\376\376\376\205\377\377\377" \
- "\1\376\376\376\355\377\377\377\1\376\376\376\214\377\377\377\1\376\376" \
- "\376\366\377\377\377\1\375\377\376\202\377\377\375\24\377\377\377\376" \
- "\376\376\373\373\363\243\322b\213\307A\214\306>\215\305@\214\305@\212" \
- "\307>\214\306>\215\305>\213\307A\214\305@\216\310@\214\306>\215\305>" \
- "\242\320c\366\373\364\375\377\376\377\376\377\221\377\377\377\1\376\376" \
- "\376\204\377\377\377\3\376\376\376\333\333\333EEG\202;;=\2::<;;=\207" \
- "::<\3GGI\332\332\332\376\376\376\377\377\377\377\365\377\377\377\1__" \
- "a\205::<\10;;=::<;;=::<;;=::<;;=\265\265\265\202\377\377\377\3\376\376" \
- "\376\377\377\377\376\376\376\213\377\377\377\1\266\266\266\203::<\5""9" \
- "9;<<>::<;;=::<\202;;=\203::<\4;;=FFH\333\333\333\376\376\376\202\377" \
- "\377\377\1\376\376\376\355\377\377\377\1\376\376\376\202\377\377\377" \
- "\1\376\376\376\215\377\377\377\1\376\376\376\363\377\377\377\3\377\376" \
- "\377\377\377\377\375\377\376\202\377\377\377\2\373\373\363\241\321d\202" \
- "\214\306>\17\216\306=\215\305@\215\307\77\214\306>\217\304>\214\306>" \
- "\214\305B\215\307\77\211\305A\215\306A\216\306\77\214\305@\242\322e\370" \
- "\373\364\377\377\375\230\377\377\377\1\333\333\335\203::<\202;;=\206" \
- "::<\3;;=FFH\363\363\363\377\377\377\377\364\377\377\377\1\204\204\206" \
- "\203::<\1;;=\207::<\2;;=\204\204\206\220\377\377\377\1\346\346\346\204" \
- "::<\1;;=\203::<\1;;=\202::<\202;;=\203::<\2FFH\332\332\332\357\377\377" \
- "\377\3\376\376\376\377\377\377\376\376\376\377\377\377\377\204\377\377" \
- "\377\1\377\377\375\202\377\377\377\17\377\376\377\370\373\364\243\322" \
- "b\214\306>\213\310\77\212\307>\214\306>\215\306C\212\307>\214\306<\213" \
- "\310\77\214\305@\214\306<\214\306>\216\306\77\203\214\306>\3\214\306" \
- "<\265\334\211\376\376\376\222\377\377\377\1\376\376\376\205\377\377\377" \
- "\4\376\376\377\265\265\267::<;;=\212::<\1___\377\377\377\377\363\377" \
- "\377\377\1\265\265\267\204::<\1;;=\206::<\2;;=\203\203\203\222\377\377" \
- "\377\2\265\265\265;;=\203::<\1;;=\205::<\1;;=\204::<\3;;=FFH\332\332" \
- "\332\206\377\377\377\3\376\376\376\377\377\377\376\376\376\377\377\377" \
- "\377\345\377\377\377\10\376\376\377\377\377\375\377\377\377\377\377\375" \
- "\377\377\377\377\376\377\377\377\375\376\377\377\202\377\377\377\6\370" \
- "\373\362\243\322b\211\307B\213\310=\214\305@\214\306<\202\215\305@\4" \
- "\214\306<\214\305@\214\306<\215\307\77\202\214\306>\6\212\307>\214\306" \
- ">\215\307\77\214\305@\244\317c\367\375\361\233\377\377\377\3\234\234" \
- "\236::<99;\211::<\2;;=\204\204\206\377\377\377\377\360\377\377\377\13" \
- "\376\376\376\332\332\33299;::<99;;;=::<99;;;=::<;;=\202::<\3;;=^^`\364" \
- "\364\364\223\377\377\377\12\265\265\267;;=::<;;=99;;;=::<;;=::<;;=\202" \
- "::<\1;;=\203::<\3;;=FFF\332\332\332\206\377\377\377\1\376\376\376\377" \
- "\377\377\377\345\377\377\377\6\376\376\377\377\376\377\375\376\377\376" \
- "\377\377\377\377\375\375\377\376\203\377\377\377\27\377\377\375\372\373" \
- "\366\241\321a\217\304@\212\307<\214\306>\215\305>\215\305@\213\310=\212" \
- "\306@\214\306>\214\305B\215\307\77\215\305>\215\306A\212\307>\214\306" \
- ">\215\307\77\214\306>\242\322b\370\373\362\376\376\377\377\375\376\233" \
- "\377\377\377\1\204\204\206\203::<\13;;=::<;;=::<;;=::<;;=::<;;=\266\266" \
- "\266\376\376\376\203\377\377\377\1\376\376\376\377\377\377\377\352\377" \
- "\377\377\2\363\363\363TTV\202::<\3;;=99;;;=\204::<\4;;=99;FFH\363\363" \
- "\363\224\377\377\377\7\376\376\376\265\265\265;;=::<;;=::<;;=\203::<" \
- "\1;;=\203::<\1;;=\203::<\2GGI\332\332\332\203\377\377\377\1\376\376\376" \
- "\377\377\377\377\347\377\377\377\7\377\377\375\375\376\377\376\377\377" \
- "\376\377\375\377\374\377\377\377\375\375\377\376\202\377\377\377\5\372" \
- "\373\366\240\320b\215\307\77\212\306@\215\305>\202\214\305@\20\215\305" \
- "@\212\306@\214\305D\216\306\77\214\306>\215\307\77\214\306>\212\306@" \
- "\214\306>\215\307\77\215\305@\242\320c\370\373\362\377\377\373\377\376" \
- "\377\377\377\375\232\377\377\377\3\376\376\376\377\377\377^^`\202;;=" \
- "\205::<\1""99;\202;;=\5::<;;=\332\332\332\377\377\377\376\376\376\377" \
- "\377\377\377\347\377\377\377\1\376\376\376\204\377\377\377\1lln\204:" \
- ":<\202;;=\203::<\6;;=99;GGI\332\332\332\377\377\377\376\376\376\225\377" \
- "\377\377\2\264\264\264;;=\202::<\2""99;;;=\202::<\3""99;;;=::<\202;;" \
- "=\202::<\4;;=::<GGI\332\332\332\210\377\377\377\1\376\376\376\377\377" \
- "\377\377\342\377\377\377\37\376\377\377\376\377\375\377\375\376\375\377" \
- "\376\377\377\375\377\377\377\377\376\377\370\373\362\241\321a\215\307" \
- "\77\215\307=\214\305@\214\306>\212\307<\214\306>\214\306<\214\306>\216" \
- "\306\77\215\305<\212\307>\213\307A\215\305>\212\307>\215\307\77\214\306" \
- ">\242\321a\373\374\364\377\377\377\376\377\377\376\376\376\376\377\377" \
- "\234\377\377\377\2\364\364\364RRT\202::<\4""99;;;=::<;;=\205::<\3SSU" \
- "\362\362\362\377\377\377\202\376\376\376\377\377\377\377\351\377\377" \
- "\377\1\234\234\236\204::<\1;;=\203::<\1;;=\203::<\1\265\265\267\231\377" \
- "\377\377\2\265\265\267;;=\203::<\2""99;;;=\202::<\1;;=\202::<\1;;=\202" \
- "::<\4;;=::<FFF\332\332\332\203\377\377\377\1\376\376\376\202\377\377" \
- "\377\1\376\376\376\377\377\377\377\342\377\377\377\202\377\377\375\3" \
- "\377\374\377\375\377\376\376\377\377\202\377\377\377\25\370\373\364\243" \
- "\322b\217\304@\212\306@\214\305@\215\305>\212\307>\212\306@\214\305B" \
- "\214\305@\214\305B\214\306>\212\307>\212\310\77\214\306>\217\304@\214" \
- "\306>\214\305@\242\322b\370\373\362\377\377\377\202\377\376\377\1\377" \
- "\377\375\235\377\377\377\3\376\376\376\332\332\334GGI\202;;=\6::<;;=" \
- "99;;;=::<;;=\203::<\1yyy\202\376\376\376\202\377\377\377\1\376\376\376" \
- "\377\377\377\377\345\377\377\377\4\376\376\376\317\317\317::<;;=\202" \
- "::<\3;;=99;;;=\204::<\6;;=\221\221\223\377\377\377\376\376\376\377\377" \
- "\377\376\376\376\226\377\377\377\3\376\376\376\265\265\267;;=\202::<" \
- "\2;;=99;\205::<\1;;=\204::<\4;;=FFH\332\332\332\376\376\376\205\377\377" \
- "\377\1\376\376\376\377\377\377\377\342\377\377\377\1\375\377\376\202" \
- "\377\377\375\34\377\377\377\376\376\376\373\373\363\243\322b\211\307" \
- "B\212\307<\215\305>\214\306>\212\307>\214\305@\217\304>\212\307<\214" \
- "\306<\214\306>\215\307\77\213\307A\214\306>\215\305@\215\307\77\212\307" \
- ">\244\317c\370\373\362\377\377\373\376\377\377\377\376\377\375\376\377" \
- "\377\377\375\377\376\377\236\377\377\377\4\265\265\267::<;;=99;\202;" \
- ";=\205::<\202;;=\1\250\250\250\202\377\377\377\1\376\376\376\377\377" \
- "\377\377\343\377\377\377\1\376\376\376\202\377\377\377\3\363\363\363" \
- "FFH;;=\202::<\5;;=::<;;=::<99;\202;;=\2::<kkm\205\377\377\377\1\376\376" \
- "\376\227\377\377\377\1\265\265\265\204::<\6;;=::<;;=::<;;=::<\202;;=" \
- "\203::<\4;;=FFH\333\333\333\376\376\376\202\377\377\377\1\376\376\376" \
- "\377\377\377\377\343\377\377\377\3\377\376\377\377\377\377\375\377\376" \
- "\202\377\377\377\11\373\373\363\241\321d\214\306>\213\310=\214\306>\214" \
- "\305@\213\310=\212\306@\217\304>\202\215\307=\14\214\306>\215\305>\214" \
- "\306>\215\305>\217\304@\215\307\77\215\307=\242\320c\367\375\361\376" \
- "\376\377\377\376\377\376\376\376\202\377\377\375\2\374\377\377\377\376" \
- "\377\234\377\377\377\1\376\376\376\202\377\377\377\10\221\221\221::<" \
- ";;=99;::<;;=::<;;=\205::<\2\333\333\333\376\376\376\377\377\377\377\347" \
- "\377\377\377\1kkk\202::<\1;;=\205::<\1;;=\202::<\2RRT\363\363\365\236" \
- "\377\377\377\1\265\265\267\203::<\2""99;;;=\203::<\1;;=\202::<\202;;" \
- "=\203::<\2FFH\332\332\332\377\377\377\377\346\377\377\377\1\377\377\375" \
- "\202\377\377\377\32\377\376\377\370\373\364\243\322b\214\306>\213\310" \
- "\77\214\305@\215\305>\215\305@\214\306>\214\305B\212\307<\215\307=\214" \
- "\305B\214\306>\215\306A\212\306@\212\307>\214\306>\212\307<\244\317c" \
- "\370\373\364\377\377\377\377\375\376\377\377\375\376\377\377\377\377" \
- "\377\202\377\376\377\241\377\377\377\2kkm::<\202;;=\1""99;\204::<\203" \
- ";;=\2SSU\364\364\364\377\377\377\377\336\377\377\377\3\376\376\376\377" \
- "\377\377\376\376\376\204\377\377\377\2\376\376\376\250\250\252\202::" \
- "<\1;;=\210::<\2FFH\333\333\333\202\377\377\377\1\376\376\376\235\377" \
- "\377\377\2\265\265\265;;=\203::<\1;;=\205::<\1;;=\204::<\3;;=FFH\332" \
- "\332\332\206\377\377\377\3\376\376\376\377\377\377\376\376\376\243\377" \
- "\377\377\4\376\377\377\377\377\375\377\376\377\376\376\377\202\377\377" \
- "\377\2\376\377\375\376\377\377\230\377\377\377\10\376\377\377\377\376" \
- "\377\376\377\377\376\377\375\376\376\376\376\377\377\377\377\377\377" \
- "\376\377\231\377\377\377\7\377\376\377\376\376\374\376\377\377\377\377" \
- "\375\374\377\377\376\377\377\377\376\377\231\377\377\377\17\375\377\374" \
- "\377\377\375\377\377\377\377\376\377\376\377\377\377\376\377\377\377" \
- "\377\376\377\377\376\376\374\377\377\377\377\377\373\377\377\377\376" \
- "\377\377\377\377\377\377\377\375\220\377\377\377\4\377\377\373\377\377" \
- "\377\377\377\375\377\377\377\202\376\377\377\2\377\377\375\377\377\373" \
- "\251\377\377\377\10\376\376\377\377\377\375\377\377\377\377\377\375\377" \
- "\377\377\377\376\377\377\377\375\376\377\377\202\377\377\377\6\370\373" \
- "\362\243\322b\211\307B\213\310=\214\305@\214\306<\202\215\305@\4\214" \
- "\306<\214\305@\214\306<\215\307\77\202\214\306>\6\212\307>\214\306>\215" \
- "\307\77\214\305@\244\317c\367\375\361\251\377\377\377\6\363\363\363T" \
- "TT::<;;=::<;;=\206::<\2;;=www\204\377\377\377\1\376\376\376\377\377\377" \
- "\377\340\377\377\377\2\332\332\332;;=\203::<\3;;=99;;;=\203::<\3;;=:" \
- ":<\265\265\267\204\377\377\377\1\376\376\376\235\377\377\377\12\265\265" \
- "\267;;=::<;;=99;;;=::<;;=::<;;=\202::<\1;;=\203::<\3;;=FFF\332\332\332" \
- "\206\377\377\377\1\376\376\376\244\377\377\377\202\377\377\375\1\377" \
- "\377\377\202\376\377\375\3\376\376\377\377\377\377\377\376\377\230\377" \
- "\377\377\3\376\377\375\377\377\377\377\377\373\202\377\376\377\2\377" \
- "\377\377\376\376\376\231\377\377\377\10\376\377\373\376\375\377\377\377" \
- "\375\377\376\377\377\375\377\377\377\373\377\376\377\377\377\375\230" \
- "\377\377\377\12\377\376\377\377\377\377\377\375\376\376\377\377\376\377" \
- "\372\376\377\377\377\377\377\376\377\375\377\376\377\377\377\375\203" \
- "\377\377\377\202\376\377\375\1\375\376\377\227\377\377\377\1\377\374" \
- "\377\250\377\377\377\6\376\376\377\377\376\377\375\376\377\376\377\377" \
- "\377\377\375\375\377\376\203\377\377\377\27\377\377\375\372\373\366\241" \
- "\321a\217\304@\212\307<\214\306>\215\305>\215\305@\213\310=\212\306@" \
- "\214\306>\214\305B\215\307\77\215\305>\215\306A\212\307>\214\306>\215" \
- "\307\77\214\306>\242\322b\370\373\362\376\376\377\377\375\376\251\377" \
- "\377\377\2\331\331\331;;=\206::<\1;;=\203::<\2;;=\265\265\265\204\377" \
- "\377\377\1\376\376\376\202\377\377\377\1\376\376\376\377\377\377\377" \
- "\322\377\377\377\1\376\376\376\203\377\377\377\3\376\376\376\377\377" \
- "\377\376\376\376\202\377\377\377\2\363\363\363SSU\203::<\2;;=::<\202" \
- ";;=\2""99;;;=\202::<\1\204\204\204\206\377\377\377\1\376\376\376\234" \
- "\377\377\377\7\376\376\376\265\265\265;;=::<;;=::<;;=\203::<\1;;=\203" \
- "::<\1;;=\203::<\2GGI\332\332\332\203\377\377\377\1\376\376\376\247\377" \
- "\377\377\1\377\377\375\202\377\376\377\1\377\375\377\202\377\377\377" \
- "\1\377\376\377\232\377\377\377\6\377\377\375\377\377\377\375\377\376" \
- "\376\377\375\377\377\375\377\375\377\230\377\377\377\202\377\377\375" \
- "\2\377\377\377\376\376\376\202\377\377\377\2\376\377\377\374\377\377" \
- "\230\377\377\377\1\377\377\375\202\377\376\377\1\375\376\377\203\377" \
- "\377\377\1\377\377\375\202\377\377\377\6\376\376\377\377\377\375\377" \
- "\377\377\377\375\377\377\376\377\377\377\375\220\377\377\377\1\376\377" \
- "\377\202\377\377\377\3\376\377\375\376\376\376\377\376\377\252\377\377" \
- "\377\7\377\377\375\375\376\377\376\377\377\376\377\375\377\374\377\377" \
- "\377\375\375\377\376\202\377\377\377\5\372\373\366\240\320b\215\307\77" \
- "\212\306@\215\305>\202\214\305@\20\215\305@\212\306@\214\305D\216\306" \
- "\77\214\306>\215\307\77\214\306>\212\306@\214\306>\215\307\77\215\305" \
- "@\242\320c\370\373\362\377\377\373\377\376\377\377\377\375\252\377\377" \
- "\377\2\250\250\25099;\204::<\12;;=99;::<;;=99;::<FFH\346\346\346\377" \
- "\377\377\376\376\376\202\377\377\377\1\376\376\376\377\377\377\377\330" \
- "\377\377\377\1\376\376\376\204\377\377\377\3\221\221\221::<;;=\202::" \
- "<\5;;=::<;;=::<;;=\202::<\4___\363\363\363\377\377\377\376\376\376\202" \
- "\377\377\377\5\376\376\376\377\377\377\376\376\376\377\377\377\376\376" \
- "\376\234\377\377\377\2\264\264\264;;=\202::<\2""99;;;=\202::<\3""99;" \
- ";;=::<\202;;=\202::<\4;;=::<GGI\332\332\332\210\377\377\377\1\376\376" \
- "\376\241\377\377\377\7\376\377\377\376\376\377\377\377\377\377\377\375" \
- "\376\377\375\375\377\376\376\377\377\230\377\377\377\3\376\376\377\376" \
- "\377\377\376\376\377\203\377\377\377\1\376\376\374\231\377\377\377\1" \
- "\377\376\377\202\377\377\377\202\376\377\377\1\376\376\376\232\377\377" \
- "\377\11\376\377\377\376\376\376\377\377\377\376\377\377\377\377\377\377" \
- "\377\375\376\377\377\376\376\377\376\377\377\202\377\377\377\5\377\377" \
- "\375\377\377\377\377\376\377\377\377\377\376\377\377\220\377\377\377" \
- "\10\376\376\377\377\376\377\377\377\377\376\376\376\377\376\377\377\377" \
- "\375\377\376\377\377\377\375\251\377\377\377\37\376\377\377\376\377\375" \
- "\377\375\376\375\377\376\377\377\375\377\377\377\377\376\377\370\373" \
- "\362\241\321a\215\307\77\215\307=\214\305@\214\306>\212\307<\214\306" \
- ">\214\306<\214\306>\216\306\77\215\305<\212\307>\213\307A\215\305>\212" \
- "\307>\215\307\77\214\306>\242\321a\373\374\364\377\377\377\376\377\377" \
- "\376\376\376\376\377\377\253\377\377\377\1yyy\205::<\3;;=::<99;\202;" \
- ";=\3::<__a\376\376\376\377\377\377\377\335\377\377\377\1\376\376\376" \
- "\202\377\377\377\5\301\301\301::<;;=99;;;=\207::<\2GGI\332\332\332\203" \
- "\377\377\377\1\376\376\376\243\377\377\377\2\265\265\267;;=\203::<\2" \
- "99;;;=\202::<\1;;=\202::<\1;;=\202::<\4;;=::<FFF\332\332\332\203\377" \
- "\377\377\1\376\376\376\202\377\377\377\1\376\376\376\242\377\377\377" \
- "\1\377\377\375\204\377\377\377\1\376\377\377\231\377\377\377\202\377" \
- "\376\377\202\377\377\377\4\377\377\375\377\377\377\376\377\377\375\377" \
- "\376\230\377\377\377\203\377\377\375\202\377\377\377\2\376\376\376\376" \
- "\377\377\231\377\377\377\1\376\376\376\202\376\377\377\13\377\376\374" \
- "\377\376\377\376\376\374\376\377\377\377\377\377\376\377\377\377\377" \
- "\377\377\377\375\376\376\376\377\377\377\377\376\377\222\377\377\377" \
- "\202\377\377\375\5\377\377\377\376\377\377\377\377\377\377\377\375\376" \
- "\377\377\251\377\377\377\202\377\377\375\3\377\374\377\375\377\376\376" \
- "\377\377\202\377\377\377\25\370\373\364\243\322b\217\304@\212\306@\214" \
- "\305@\215\305>\212\307>\212\306@\214\305B\214\305@\214\305B\214\306>" \
- "\212\307>\212\310\77\214\306>\217\304@\214\306>\214\305@\242\322b\370" \
- "\373\362\377\377\377\202\377\376\377\1\377\377\375\254\377\377\377\4" \
- "\363\363\363SSU;;=99;\202;;=\1""99;\204::<\3;;=::<\235\235\237\377\377" \
- "\377\377\334\377\377\377\1\376\376\376\202\377\377\377\2\363\363\363" \
- "GGI\202::<\7;;=::<99;::<;;=::<;;=\202::<\2\266\266\266\376\376\376\204" \
- "\377\377\377\202\376\376\376\202\377\377\377\1\376\376\376\236\377\377" \
- "\377\3\376\376\376\265\265\267;;=\202::<\2;;=99;\205::<\1;;=\204::<\4" \
- ";;=FFH\332\332\332\376\376\376\205\377\377\377\1\376\376\376\240\377" \
- "\377\377\10\376\377\375\377\375\377\377\377\375\376\377\375\377\377\377" \
- "\377\376\377\377\377\377\376\376\374\230\377\377\377\10\374\377\377\377" \
- "\376\374\377\377\377\376\376\374\377\376\377\376\377\377\377\377\377" \
- "\377\376\377\230\377\377\377\3\377\377\375\377\377\377\376\377\375\203" \
- "\377\377\377\1\377\376\377\231\377\377\377\6\377\375\377\376\376\374" \
- "\377\377\377\377\376\377\376\377\375\377\376\377\202\377\377\377\2\377" \
- "\376\377\377\377\377\202\376\377\377\2\376\376\377\376\377\377\222\377" \
- "\377\377\2\377\377\375\377\375\377\202\376\377\377\4\376\376\376\376" \
- "\377\377\375\377\374\377\375\377\251\377\377\377\1\375\377\376\202\377" \
- "\377\375\34\377\377\377\376\376\376\373\373\363\243\322b\211\307B\212" \
- "\307<\215\305>\214\306>\212\307>\214\305@\217\304>\212\307<\214\306<" \
- "\214\306>\215\307\77\213\307A\214\306>\215\305@\215\307\77\212\307>\244" \
- "\317c\370\373\362\377\377\373\376\377\377\377\376\377\375\376\377\377" \
- "\377\375\377\376\377\252\377\377\377\5\376\376\376\377\377\377\333\333" \
- "\33399;;;=\202::<\5;;=99;;;=99;;;=\203::<\1\332\332\334\377\377\377\377" \
- "\330\377\377\377\1\376\376\376\205\377\377\377\1xxx\202::<\1;;=\202:" \
- ":<\1;;=\204::<\4:::xxx\376\376\376\377\377\377\202\376\376\376\205\377" \
- "\377\377\3\376\376\376\377\377\377\376\376\376\237\377\377\377\1\265" \
- "\265\265\204::<\6;;=::<;;=::<;;=::<\202;;=\203::<\4;;=FFH\333\333\333" \
- "\376\376\376\202\377\377\377\1\376\376\376\242\377\377\377\7\376\376" \
- "\376\377\376\377\326\352\267\247\324o\247\324m\252\324r\247\324o\231" \
- "\252\324p\10\323\353\271\377\376\377\377\377\377\376\377\377\350\365" \
- "\333\253\323p\250\324r\251\324k\230\252\324p\10\250\325n\252\324p\277" \
- "\337\223\376\377\377\377\377\377\375\377\376\376\377\377\276\336\222" \
- "\230\252\324p\7\250\325p\250\324r\247\324o\253\324n\251\323m\346\364" \
- "\332\377\376\377\202\377\377\377\7\323\352\266\253\323p\251\323m\253" \
- "\323r\251\323o\247\324m\252\324r\220\252\324p\10\252\324n\253\324n\247" \
- "\324k\252\324p\254\325o\247\324m\252\324p\324\353\267\250\377\377\377" \
- "\3\377\376\377\377\377\377\375\377\376\202\377\377\377\11\373\373\363" \
- "\241\321d\214\306>\213\310=\214\306>\214\305@\213\310=\212\306@\217\304" \
- ">\202\215\307=\14\214\306>\215\305>\214\306>\215\305>\217\304@\215\307" \
- "\77\215\307=\242\320c\367\375\361\376\376\377\377\376\377\376\376\376" \
- "\202\377\377\375\2\374\377\377\377\376\377\254\377\377\377\2\376\376" \
- "\376\251\251\251\202::<\5;;=::<;;=99;;;=\204::<\1``b\377\377\377\377" \
- "\334\377\377\377\3\376\376\376\301\301\301:::\205::<\1""99;\202::<\4" \
- ";;=::<SSS\362\362\362\207\377\377\377\1\376\376\376\202\377\377\377\202" \
- "\376\376\376\240\377\377\377\1\265\265\267\203::<\2""99;;;=\203::<\1" \
- ";;=\202::<\202;;=\203::<\2FFH\332\332\332\245\377\377\377\10\376\377" \
- "\377\377\377\377\305\342\237\215\306A\215\307\77\215\305@\213\310=\214" \
- "\305@\230\214\306>\10\304\341\237\377\374\377\377\376\377\377\377\377" \
- "\341\362\322\215\305>\212\307>\215\305>\230\214\306>\4\215\305<\214\305" \
- "@\252\324r\376\377\377\202\377\377\377\2\377\377\375\250\324r\230\214" \
- "\306>\20\215\307\77\214\306>\214\306<\214\305B\212\307>\337\363\320\377" \
- "\376\377\376\377\377\376\376\374\305\342\240\214\305@\213\310=\215\305" \
- "@\214\306>\212\307<\214\305@\220\214\306>\10\214\305@\215\306C\212\307" \
- "<\214\306>\215\305>\212\306@\215\305>\304\343\237\250\377\377\377\1\377" \
- "\377\375\202\377\377\377\32\377\376\377\370\373\364\243\322b\214\306" \
- ">\213\310\77\214\305@\215\305>\215\305@\214\306>\214\305B\212\307<\215" \
- "\307=\214\305B\214\306>\215\306A\212\306@\212\307>\214\306>\212\307<" \
- "\244\317c\370\373\364\377\377\377\377\375\376\377\377\375\376\377\377" \
- "\377\377\377\202\377\376\377\257\377\377\377\1kkm\202::<\2;;=::<\202" \
- ";;=\3::<;;=::<\202;;=\1\233\233\233\377\377\377\377\330\377\377\377\1" \
- "\376\376\376\202\377\377\377\3\364\364\366FFH;;=\205::<\3;;=::<;;=\202" \
- "::<\1\316\316\316\256\377\377\377\2\265\265\265;;=\203::<\1;;=\205::" \
- "<\1;;=\204::<\3;;=FFH\332\332\332\206\377\377\377\3\376\376\376\377\377" \
- "\377\376\376\376\235\377\377\377\1\304\343\240\235\214\306>\1\305\342" \
- "\237\203\377\377\377\1\342\362\316\235\214\306>\1\250\325p\204\377\377" \
- "\377\1\252\324p\234\214\306>\2\215\307\77\342\362\316\203\377\377\377" \
- "\3\305\342\237\214\305@\215\305>\202\214\306>\1\214\305@\222\214\306" \
- ">\1\214\305@\205\214\306>\1\305\342\237\241\377\377\377\10\376\376\377" \
- "\377\377\375\377\377\377\377\377\375\377\377\377\377\376\377\377\377" \
- "\375\376\377\377\202\377\377\377\6\370\373\362\243\322b\211\307B\213" \
- "\310=\214\305@\214\306<\202\215\305@\4\214\306<\214\305@\214\306<\215" \
- "\307\77\202\214\306>\6\212\307>\214\306>\215\307\77\214\305@\244\317" \
- "c\367\375\361\267\377\377\377\2\363\363\363FFF\204::<\1;;=\203::<\4:" \
- "9>::<;;=\332\332\332\377\377\377\377\332\377\377\377\1yy{\202::<\2""9" \
- "9;;;=\202::<\6;;=99;::<;;=::<\234\234\236\260\377\377\377\12\265\265" \
- "\267;;=::<;;=99;;;=::<;;=::<;;=\202::<\1;;=\203::<\3;;=FFF\332\332\332" \
- "\206\377\377\377\1\376\376\376\236\377\377\377\1\304\343\240\235\214" \
- "\306>\1\305\342\237\203\377\377\377\1\342\362\316\235\214\306>\1\250" \
- "\325p\204\377\377\377\1\252\324p\234\214\306>\2\215\307\77\342\362\316" \
- "\203\377\377\377\3\305\342\237\214\305@\215\305>\202\214\306>\1\214\305" \
- "@\222\214\306>\1\214\305@\205\214\306>\1\305\342\237\240\377\377\377" \
- "\6\376\376\377\377\376\377\375\376\377\376\377\377\377\377\375\375\377" \
- "\376\203\377\377\377\27\377\377\375\372\373\366\241\321a\217\304@\212" \
- "\307<\214\306>\215\305>\215\305@\213\310=\212\306@\214\306>\214\305B" \
- "\215\307\77\215\305>\215\306A\212\307>\214\306>\215\307\77\214\306>\242" \
- "\322b\370\373\362\376\376\377\377\375\376\267\377\377\377\1\301\301\301" \
- "\205::<\3;;=::<;;=\202::<\2""99;```\377\377\377\377\331\377\377\377\1" \
- "\301\301\301\202::<\1;;=\203::<\1;;=\202::<\3<<>::<__a\261\377\377\377" \
- "\7\376\376\376\265\265\265;;=::<;;=::<;;=\203::<\1;;=\203::<\1;;=\203" \
- "::<\2GGI\332\332\332\203\377\377\377\1\376\376\376\240\377\377\377\1" \
- "\304\343\240\235\214\306>\1\305\342\237\203\377\377\377\1\342\362\316" \
- "\235\214\306>\1\250\325p\204\377\377\377\1\252\324p\234\214\306>\2\215" \
- "\307\77\342\362\316\203\377\377\377\3\305\342\237\214\305@\215\305>\202" \
- "\214\306>\1\214\305@\222\214\306>\1\214\305@\205\214\306>\1\305\342\237" \
- "\240\377\377\377\7\377\377\375\375\376\377\376\377\377\376\377\375\377" \
- "\374\377\377\377\375\375\377\376\202\377\377\377\5\372\373\366\240\320" \
- "b\215\307\77\212\306@\215\305>\202\214\305@\20\215\305@\212\306@\214" \
- "\305D\216\306\77\214\306>\215\307\77\214\306>\212\306@\214\306>\215\307" \
- "\77\215\305@\242\320c\370\373\362\377\377\373\377\376\377\377\377\375" \
- "\270\377\377\377\3\204\204\204::<;;=\206::<\4;;=::<;;=\234\234\236\377" \
- "\377\377\377\325\377\377\377\4\376\376\376\377\377\377\363\363\363SS" \
- "U\211::<\4""99;::<\332\332\334\376\376\376\202\377\377\377\1\376\376" \
- "\376\257\377\377\377\2\264\264\264;;=\202::<\2""99;;;=\202::<\3""99;" \
- ";;=::<\202;;=\202::<\4;;=::<GGI\332\332\332\210\377\377\377\1\376\376" \
- "\376\232\377\377\377\1\304\343\240\235\214\306>\1\305\342\237\203\377" \
- "\377\377\1\342\362\316\235\214\306>\1\250\325p\204\377\377\377\1\252" \
- "\324p\234\214\306>\2\215\307\77\342\362\316\203\377\377\377\3\305\342" \
- "\237\214\305@\215\305>\202\214\306>\1\214\305@\222\214\306>\1\214\305" \
- "@\205\214\306>\1\305\342\237\241\377\377\377\37\376\377\377\376\377\375" \
- "\377\375\376\375\377\376\377\377\375\377\377\377\377\376\377\370\373" \
- "\362\241\321a\215\307\77\215\307=\214\305@\214\306>\212\307<\214\306" \
- ">\214\306<\214\306>\216\306\77\215\305<\212\307>\213\307A\215\305>\212" \
- "\307>\215\307\77\214\306>\242\321a\373\374\364\377\377\377\376\377\377" \
- "\376\376\376\376\377\377\270\377\377\377\3\363\363\363TTT;;=\202::<\1" \
- ";;=\203::<\5""99;;;=::<;;=\332\332\332\377\377\377\377\323\377\377\377" \
- "\1\376\376\376\202\377\377\377\4\221\221\221;;=99;;;=\202::<\1;;=\202" \
- "::<\1;;=\202::<\1\233\233\233\202\377\377\377\1\376\376\376\262\377\377" \
- "\377\2\265\265\267;;=\203::<\2""99;;;=\202::<\1;;=\202::<\1;;=\202::" \
- "<\4;;=::<FFF\332\332\332\203\377\377\377\1\376\376\376\202\377\377\377" \
- "\1\376\376\376\233\377\377\377\1\304\343\240\235\214\306>\1\305\342\237" \
- "\203\377\377\377\1\342\362\316\235\214\306>\1\250\325p\204\377\377\377" \
- "\1\252\324p\234\214\306>\2\215\307\77\342\362\316\203\377\377\377\3\305" \
- "\342\237\214\305@\215\305>\202\214\306>\1\214\305@\222\214\306>\1\214" \
- "\305@\205\214\306>\1\305\342\237\240\377\377\377\202\377\377\375\3\377" \
- "\374\377\375\377\376\376\377\377\202\377\377\377\25\370\373\364\243\322" \
- "b\217\304@\212\306@\214\305@\215\305>\212\307>\212\306@\214\305B\214" \
- "\305@\214\305B\214\306>\212\307>\212\310\77\214\306>\217\304@\214\306" \
- ">\214\305@\242\322b\370\373\362\377\377\377\202\377\376\377\1\377\377" \
- "\375\272\377\377\377\7\316\316\316::<;;=::<99;::<;;=\205::<\1kkm\377" \
- "\377\377\377\325\377\377\377\1\315\315\315\206::<\6""99;::<99;;;=::<" \
- "```\206\377\377\377\1\376\376\376\257\377\377\377\3\376\376\376\265\265" \
- "\267;;=\202::<\2;;=99;\205::<\1;;=\204::<\4;;=FFH\332\332\332\376\376" \
- "\376\205\377\377\377\1\376\376\376\232\377\377\377\1\304\343\240\235" \
- "\214\306>\1\305\342\237\203\377\377\377\1\342\362\316\235\214\306>\1" \
- "\250\325p\204\377\377\377\1\252\324p\234\214\306>\2\215\307\77\342\362" \
- "\316\203\377\377\377\3\305\342\237\214\305@\215\305>\202\214\306>\1\214" \
- "\305@\222\214\306>\1\214\305@\205\214\306>\1\305\342\237\241\377\377" \
- "\377\1\375\377\376\202\377\377\375\34\377\377\377\376\376\376\373\373" \
- "\363\243\322b\211\307B\212\307<\215\305>\214\306>\212\307>\214\305@\217" \
- "\304>\212\307<\214\306<\214\306>\215\307\77\213\307A\214\306>\215\305" \
- "@\215\307\77\212\307>\244\317c\370\373\362\377\377\373\376\377\377\377" \
- "\376\377\375\376\377\377\377\375\377\376\377\272\377\377\377\2\222\222" \
- "\22299;\205::<\1;;=\203::<\2;;=\250\250\250\377\377\377\377\324\377\377" \
- "\377\4```;;=99;;;=\204::<\5;;=::<;;=::<\331\331\331\207\377\377\377\1" \
- "\376\376\376\260\377\377\377\1\265\265\265\204::<\6;;=::<;;=::<;;=::" \
- "<\202;;=\203::<\4;;=FFH\333\333\333\376\376\376\202\377\377\377\1\376" \
- "\376\376\234\377\377\377\1\304\343\240\235\214\306>\1\305\342\237\203" \
- "\377\377\377\1\342\362\316\235\214\306>\1\250\325p\204\377\377\377\1" \
- "\252\324p\234\214\306>\2\215\307\77\342\362\316\203\377\377\377\3\305" \
- "\342\237\214\305@\215\305>\202\214\306>\1\214\305@\222\214\306>\1\214" \
- "\305@\205\214\306>\1\305\342\237\240\377\377\377\3\377\376\377\377\377" \
- "\377\375\377\376\202\377\377\377\11\373\373\363\241\321d\214\306>\213" \
- "\310=\214\306>\214\305@\213\310=\212\306@\217\304>\202\215\307=\14\214" \
- "\306>\215\305>\214\306>\215\305>\217\304@\215\307\77\215\307=\242\320" \
- "c\367\375\361\376\376\377\377\376\377\376\376\376\202\377\377\375\2\374" \
- "\377\377\377\376\377\262\377\377\377\2\376\376\376\377\377\377\202\376" \
- "\376\376\204\377\377\377\5\363\363\363SSU99;::<;;=\207::<\2GGG\363\363" \
- "\363\377\377\377\377\322\377\377\377\4\234\234\234:::::<;;=\202::<\1" \
- ";;=\203::<\202;;=\1\234\234\236\207\377\377\377\1\376\376\376\262\377" \
- "\377\377\1\265\265\267\203::<\2""99;;;=\203::<\1;;=\202::<\202;;=\203" \
- "::<\2FFH\332\332\332\237\377\377\377\1\304\343\240\235\214\306>\1\305" \
- "\342\237\203\377\377\377\1\342\362\316\235\214\306>\1\250\325p\204\377" \
- "\377\377\1\252\324p\234\214\306>\2\215\307\77\342\362\316\203\377\377" \
- "\377\3\305\342\237\214\305@\215\305>\202\214\306>\1\214\305@\222\214" \
- "\306>\1\214\305@\205\214\306>\1\305\342\237\240\377\377\377\1\377\377" \
- "\375\202\377\377\377\32\377\376\377\370\373\364\243\322b\214\306>\213" \
- "\310\77\214\305@\215\305>\215\305@\214\306>\214\305B\212\307<\215\307" \
- "=\214\305B\214\306>\215\306A\212\306@\212\307>\214\306>\212\307<\244" \
- "\317c\370\373\364\377\377\377\377\375\376\377\377\375\376\377\377\377" \
- "\377\377\202\377\376\377\273\377\377\377\2\376\376\376\316\316\316\206" \
- "::<\202;;=\4::<;;=::<xxx\377\377\377\377\321\377\377\377\2\346\346\350" \
- "FFH\203::<\1;;=\206::<\1__a\202\377\377\377\1\377\377\375\271\377\377" \
- "\377\2\265\265\265;;=\203::<\1;;=\205::<\1;;=\203::<\4;;=::<GGI\331\331" \
- "\331\236\377\377\377\1\304\343\240\235\214\306>\1\305\342\237\203\377" \
- "\377\377\1\342\362\316\235\214\306>\1\250\325p\204\377\377\377\1\252" \
- "\324p\234\214\306>\2\215\307\77\342\362\316\203\377\377\377\3\305\342" \
- "\237\214\305@\215\305>\202\214\306>\1\214\305@\222\214\306>\1\214\305" \
- "@\205\214\306>\1\305\342\237\231\377\377\377\10\376\376\377\377\377\375" \
- "\377\377\377\377\377\375\377\377\377\377\376\377\377\377\375\376\377" \
- "\377\202\377\377\377\6\370\373\362\243\322b\211\307B\213\310=\214\305" \
- "@\214\306<\202\215\305@\4\214\306<\214\305@\214\306<\215\307\77\202\214" \
- "\306>\6\212\307>\214\306>\215\307\77\214\305@\244\317c\367\375\361\305" \
- "\377\377\377\2xxz;;=\203::<\3;;=::<;;=\203::<\2;;=\315\315\315\377\377" \
- "\377\377\313\377\377\377\203\376\376\376\202\377\377\377\3xxz;;=::<\202" \
- ";;=\1""99;\202;;=\202::<\4;;=::<\333\333\335\376\376\376\274\377\377" \
- "\377\12\265\265\267;;=::<;;=99;;;=::<;;=::<;;=\202::<\1;;=\202::<\4;" \
- ";=99;GGI\332\332\332\235\377\377\377\1\304\343\240\235\214\306>\1\305" \
- "\342\237\203\377\377\377\1\342\362\316\235\214\306>\1\250\325p\204\377" \
- "\377\377\1\252\324p\234\214\306>\2\215\307\77\342\362\316\203\377\377" \
- "\377\3\305\342\237\214\305@\215\305>\202\214\306>\1\214\305@\222\214" \
- "\306>\1\214\305@\205\214\306>\1\305\342\237\230\377\377\377\6\376\376" \
- "\377\377\376\377\375\376\377\376\377\377\377\377\375\375\377\376\203" \
- "\377\377\377\27\377\377\375\372\373\366\241\321a\217\304@\212\307<\214" \
- "\306>\215\305>\215\305@\213\310=\212\306@\214\306>\214\305B\215\307\77" \
- "\215\305>\215\306A\212\307>\214\306>\215\307\77\214\306>\242\322b\370" \
- "\373\362\376\376\377\377\375\376\304\377\377\377\2\364\364\364FFH\203" \
- "::<\2""99;;;=\203::<\4<<>99;TTT\376\376\376\377\377\377\377\310\377\377" \
- "\377\1\376\376\376\205\377\377\377\3\316\316\316::<99;\206::<\1;;=\202" \
- "::<\1\221\221\221\203\377\377\377\1\376\376\376\272\377\377\377\7\376" \
- "\376\376\265\265\265;;=::<;;=::<;;=\203::<\1;;=\203::<\6;;=::<;;=::<" \
- "FFH\332\332\332\234\377\377\377\1\304\343\240\235\214\306>\1\305\342" \
- "\237\203\377\377\377\1\342\362\316\235\214\306>\1\250\325p\204\377\377" \
- "\377\1\252\324p\234\214\306>\2\215\307\77\342\362\316\203\377\377\377" \
- "\3\305\342\237\214\305@\215\305>\202\214\306>\1\214\305@\222\214\306" \
- ">\1\214\305@\205\214\306>\1\305\342\237\230\377\377\377\7\377\377\375" \
- "\375\376\377\376\377\377\376\377\375\377\374\377\377\377\375\375\377" \
- "\376\202\377\377\377\5\372\373\366\240\320b\215\307\77\212\306@\215\305" \
- ">\202\214\305@\20\215\305@\212\306@\214\305D\216\306\77\214\306>\215" \
- "\307\77\214\306>\212\306@\214\306>\215\307\77\215\305@\242\320c\370\373" \
- "\362\377\377\373\377\376\377\377\377\375\304\377\377\377\3\376\376\376" \
- "\265\265\267;;=\204::<\1""99;\203::<\3;;=::<\234\234\234\203\377\377" \
- "\377\1\376\376\376\377\377\377\377\306\377\377\377\7\376\376\376\377" \
- "\377\377\376\376\376\377\377\377__a::<;;=\203::<\7;;=::<;;=::<;;=SSU" \
- "\363\363\363\300\377\377\377\2\264\264\264;;=\202::<\2""99;;;=\202::" \
- "<\3""99;;;=::<\202;;=\204::<\2FFH\332\332\332\233\377\377\377\1\304\343" \
- "\240\235\214\306>\1\305\342\237\203\377\377\377\1\342\362\316\235\214" \
- "\306>\1\250\325p\204\377\377\377\1\252\324p\234\214\306>\2\215\307\77" \
- "\342\362\316\203\377\377\377\3\305\342\237\214\305@\215\305>\202\214" \
- "\306>\1\214\305@\222\214\306>\1\214\305@\205\214\306>\1\305\342\237\231" \
- "\377\377\377\37\376\377\377\376\377\375\377\375\376\375\377\376\377\377" \
- "\375\377\377\377\377\376\377\370\373\362\241\321a\215\307\77\215\307" \
- "=\214\305@\214\306>\212\307<\214\306>\214\306<\214\306>\216\306\77\215" \
- "\305<\212\307>\213\307A\215\305>\212\307>\215\307\77\214\306>\242\321" \
- "a\373\374\364\377\377\377\376\377\377\376\376\376\376\377\377\301\377" \
- "\377\377\1\376\376\376\204\377\377\377\2kkm99;\203::<\202;;=\1""99;\203" \
- "::<\2FFH\363\363\363\377\377\377\377\310\377\377\377\1\376\376\376\203" \
- "\377\377\377\3\250\250\252::<;;=\203::<\1;;=\202::<\5;;=::<;;=\301\301" \
- "\301\376\376\376\301\377\377\377\2\265\265\267;;=\203::<\2""99;;;=\202" \
- "::<\1;;=\202::<\2;;=::<\202;;=\3::<GGI\332\332\332\232\377\377\377\1" \
- "\304\343\240\235\214\306>\1\305\342\237\203\377\377\377\1\342\362\316" \
- "\235\214\306>\1\250\325p\204\377\377\377\1\252\324p\234\214\306>\2\215" \
- "\307\77\342\362\316\203\377\377\377\3\305\342\237\214\305@\215\305>\202" \
- "\214\306>\1\214\305@\222\214\306>\1\214\305@\205\214\306>\1\305\342\237" \
- "\230\377\377\377\202\377\377\375\3\377\374\377\375\377\376\376\377\377" \
- "\202\377\377\377\25\370\373\364\243\322b\217\304@\212\306@\214\305@\215" \
- "\305>\212\307>\212\306@\214\305B\214\305@\214\305B\214\306>\212\307>" \
- "\212\310\77\214\306>\217\304@\214\306>\214\305@\242\322b\370\373\362" \
- "\377\377\377\202\377\376\377\1\377\377\375\301\377\377\377\1\376\376" \
- "\376\204\377\377\377\2\376\376\376\346\346\350\203::<\4;;=99;::<;;=\204" \
- "::<\3\203\203\203\377\377\377\376\376\376\377\377\377\377\311\377\377" \
- "\377\2\364\364\364FFH\202::<\5;;=::<;;=::<;;=\202::<\2;;=kkm\202\377" \
- "\377\377\1\376\376\376\300\377\377\377\3\376\376\376\265\265\267;;=\202" \
- "::<\2;;=99;\204::<\3;;=99;;;=\202::<\3;;=::<\265\265\265\232\377\377" \
- "\377\1\304\343\240\235\214\306>\1\305\342\237\203\377\377\377\1\342\362" \
- "\316\235\214\306>\1\250\325p\204\377\377\377\1\252\324p\234\214\306>" \
- "\2\215\307\77\342\362\316\203\377\377\377\3\305\342\237\214\305@\215" \
- "\305>\202\214\306>\1\214\305@\222\214\306>\1\214\305@\205\214\306>\1" \
- "\305\342\237\231\377\377\377\1\375\377\376\202\377\377\375\34\377\377" \
- "\377\376\376\376\373\373\363\243\322b\211\307B\212\307<\215\305>\214" \
- "\306>\212\307>\214\305@\217\304>\212\307<\214\306<\214\306>\215\307\77" \
- "\213\307A\214\306>\215\305@\215\307\77\212\307>\244\317c\370\373\362" \
- "\377\377\373\376\377\377\377\376\377\375\376\377\377\377\375\377\376" \
- "\377\301\377\377\377\202\376\376\376\2\377\377\377\376\376\376\202\377" \
- "\377\377\1\234\234\236\203::<\1;;=\206::<\2;;=\331\331\331\377\377\377" \
- "\377\306\377\377\377\1\376\376\376\203\377\377\377\4\233\233\233;;=:" \
- ":<;;=\202::<\3;;=99;;;=\203::<\1\346\346\350\305\377\377\377\1\265\265" \
- "\265\204::<\3;;=::<;;=\203::<\5;;=99;;;=::<\265\265\267\233\377\377\377" \
- "\1\304\343\240\235\214\306>\1\305\342\237\203\377\377\377\1\342\362\316" \
- "\235\214\306>\1\250\325p\204\377\377\377\1\252\324p\234\214\306>\2\215" \
- "\307\77\342\362\316\203\377\377\377\3\305\342\237\214\305@\215\305>\202" \
- "\214\306>\1\214\305@\222\214\306>\1\214\305@\205\214\306>\1\305\342\237" \
- "\230\377\377\377\3\377\376\377\377\377\377\375\377\376\202\377\377\377" \
- "\11\373\373\363\241\321d\214\306>\213\310=\214\306>\214\305@\213\310" \
- "=\212\306@\217\304>\202\215\307=\14\214\306>\215\305>\214\306>\215\305" \
- ">\217\304@\215\307\77\215\307=\242\320c\367\375\361\376\376\377\377\376" \
- "\377\376\376\376\202\377\377\375\2\374\377\377\377\376\377\301\377\377" \
- "\377\1\376\376\376\202\377\377\377\1\376\376\376\202\377\377\377\6\364" \
- "\364\364SSU::<;;=::<;;=\205::<\4""99;kkk\377\377\377\376\376\376\377" \
- "\377\377\377\307\377\377\377\2\346\346\346;;;\204::<\3;;=99;;;=\203:" \
- ":<\1\234\234\236\205\377\377\377\1\376\376\376\301\377\377\377\1\265" \
- "\265\267\203::<\2""99;;;=\202::<\1;;;\204::<\1\265\265\267\234\377\377" \
- "\377\1\304\343\240\235\214\306>\1\305\342\237\203\377\377\377\1\342\362" \
- "\316\235\214\306>\1\250\325p\204\377\377\377\1\252\324p\234\214\306>" \
- "\2\215\307\77\342\362\316\203\377\377\377\3\305\342\237\214\305@\215" \
- "\305>\202\214\306>\1\214\305@\222\214\306>\1\214\305@\205\214\306>\1" \
- "\305\342\237\230\377\377\377\1\377\377\375\202\377\377\377\32\377\376" \
- "\377\370\373\364\243\322b\214\306>\213\310\77\214\305@\215\305>\215\305" \
- "@\214\306>\214\305B\212\307<\215\307=\214\305B\214\306>\215\306A\212" \
- "\306@\212\307>\214\306>\212\307<\244\317c\370\373\364\377\377\377\377" \
- "\375\376\377\377\375\376\377\377\377\377\377\202\377\376\377\306\377" \
- "\377\377\1\376\376\376\202\377\377\377\2\301\301\303::<\202;;=\11::<" \
- ";;=::<;;=::<99;;;=::<\301\301\301\377\377\377\377\306\377\377\377\12" \
- "\376\376\376\377\377\377\204\204\204;;=::<:9>;;=::<99;;;=\203::<\5SS" \
- "U\363\363\363\376\376\376\377\377\377\376\376\376\305\377\377\377\5\265" \
- "\265\26599;;;=::<;;=\206::<\1\266\266\270\235\377\377\377\1\304\343\240" \
- "\235\214\306>\1\305\342\237\203\377\377\377\1\342\362\316\235\214\306" \
- ">\1\250\325p\204\377\377\377\1\252\324p\234\214\306>\2\215\307\77\342" \
- "\362\316\203\377\377\377\3\305\342\237\214\305@\215\305>\202\214\306" \
- ">\1\214\305@\222\214\306>\1\214\305@\205\214\306>\1\305\342\237\221\377" \
- "\377\377\10\376\376\377\377\377\375\377\377\377\377\377\375\377\377\377" \
- "\377\376\377\377\377\375\376\377\377\202\377\377\377\6\370\373\362\243" \
- "\322b\211\307B\213\310=\214\305@\214\306<\202\215\305@\4\214\306<\214" \
- "\305@\214\306<\215\307\77\202\214\306>\6\212\307>\214\306>\215\307\77" \
- "\214\305@\244\317c\367\375\361\322\377\377\377\1kkk\203::<\4;;=99;::" \
- "<;;=\203::<\1SSU\210\377\377\377\1\376\376\376\377\377\377\377\276\377" \
- "\377\377\1\316\316\316\202::<\1;;=\202::<\202;;=\202::<\4;;=::<\265\265" \
- "\267\376\376\376\307\377\377\377\3\376\376\376\377\377\377\265\265\267" \
- "\207::<\3""99;\266\266\270\376\376\377\202\377\377\377\1\376\376\376" \
- "\232\377\377\377\1\304\343\240\235\214\306>\1\305\342\237\203\377\377" \
- "\377\1\342\362\316\235\214\306>\1\250\325p\204\377\377\377\1\252\324" \
- "p\234\214\306>\2\215\307\77\342\362\316\203\377\377\377\3\305\342\237" \
- "\214\305@\215\305>\202\214\306>\1\214\305@\222\214\306>\1\214\305@\205" \
- "\214\306>\1\305\342\237\220\377\377\377\6\376\376\377\377\376\377\375" \
- "\376\377\376\377\377\377\377\375\375\377\376\203\377\377\377\27\377\377" \
- "\375\372\373\366\241\321a\217\304@\212\307<\214\306>\215\305>\215\305" \
- "@\213\310=\212\306@\214\306>\214\305B\215\307\77\215\305>\215\306A\212" \
- "\307>\214\306>\215\307\77\214\306>\242\322b\370\373\362\376\376\377\377" \
- "\375\376\321\377\377\377\1\346\346\346\204::<\1;;=\202::<\5;;=99;;;=" \
- "::<\266\266\266\205\377\377\377\202\376\376\376\2\377\377\377\376\376" \
- "\376\377\377\377\377\273\377\377\377\5\376\376\376\377\377\377kkm::<" \
- ";;=\202::<\1;;=\203::<\3;;=::<kkm\203\377\377\377\1\376\376\376\306\377" \
- "\377\377\4\376\376\376\377\377\377\265\265\265::<\202;;=\202::<\2""9" \
- "9;\266\266\270\237\377\377\377\1\304\343\240\235\214\306>\1\305\342\237" \
- "\203\377\377\377\1\342\362\316\235\214\306>\1\250\325p\204\377\377\377" \
- "\1\252\324p\234\214\306>\2\215\307\77\342\362\316\203\377\377\377\3\305" \
- "\342\237\214\305@\215\305>\202\214\306>\1\214\305@\222\214\306>\1\214" \
- "\305@\205\214\306>\1\305\342\237\220\377\377\377\7\377\377\375\375\376" \
- "\377\376\377\377\376\377\375\377\374\377\377\377\375\375\377\376\202" \
- "\377\377\377\5\372\373\366\240\320b\215\307\77\212\306@\215\305>\202" \
- "\214\305@\20\215\305@\212\306@\214\305D\216\306\77\214\306>\215\307\77" \
- "\214\306>\212\306@\214\306>\215\307\77\215\305@\242\320c\370\373\362" \
- "\377\377\373\377\376\377\377\377\375\322\377\377\377\1\221\221\223\202" \
- "::<\12;;=99;::<;;=::<;;=99;;;=EEG\364\364\364\203\377\377\377\1\376\376" \
- "\376\202\377\377\377\1\376\376\376\377\377\377\377\275\377\377\377\2" \
- "\316\316\320;;=\205::<\2""99;;;=\203::<\3\316\316\316\377\377\377\376" \
- "\376\376\313\377\377\377\3\265\265\265;;=99;\202::<\1\266\266\270\203" \
- "\377\377\377\3\376\376\376\377\377\377\376\376\376\232\377\377\377\1" \
- "\304\343\240\235\214\306>\1\305\342\237\203\377\377\377\1\342\362\316" \
- "\235\214\306>\1\250\325p\204\377\377\377\1\252\324p\234\214\306>\2\215" \
- "\307\77\342\362\316\203\377\377\377\3\305\342\237\214\305@\215\305>\202" \
- "\214\306>\1\214\305@\222\214\306>\1\214\305@\205\214\306>\1\305\342\237" \
- "\221\377\377\377\37\376\377\377\376\377\375\377\375\376\375\377\376\377" \
- "\377\375\377\377\377\377\376\377\370\373\362\241\321a\215\307\77\215" \
- "\307=\214\305@\214\306>\212\307<\214\306>\214\306<\214\306>\216\306\77" \
- "\215\305<\212\307>\213\307A\215\305>\212\307>\215\307\77\214\306>\242" \
- "\321a\373\374\364\377\377\377\376\377\377\376\376\376\376\377\377\322" \
- "\377\377\377\2\363\363\363FFH\203::<\202;;=\203::<\3;;=::<\235\235\235" \
- "\204\377\377\377\1\376\376\376\377\377\377\377\277\377\377\377\1__a\202" \
- "::<\1;;=\203::<\5;;=::<;;=::<\204\204\206\312\377\377\377\1\376\376\376" \
- "\202\377\377\377\7\376\376\376\377\377\377\265\265\267;;=99;\266\266" \
- "\270\376\376\377\203\377\377\377\202\376\376\376\233\377\377\377\1\304" \
- "\343\240\235\214\306>\1\305\342\237\203\377\377\377\1\342\362\316\235" \
- "\214\306>\1\250\325p\204\377\377\377\1\252\324p\234\214\306>\2\215\307" \
- "\77\342\362\316\203\377\377\377\3\305\342\237\214\305@\215\305>\202\214" \
- "\306>\1\214\305@\222\214\306>\1\214\305@\205\214\306>\1\305\342\237\220" \
- "\377\377\377\202\377\377\375\3\377\374\377\375\377\376\376\377\377\202" \
- "\377\377\377\25\370\373\364\243\322b\217\304@\212\306@\214\305@\215\305" \
- ">\212\307>\212\306@\214\305B\214\305@\214\305B\214\306>\212\307>\212" \
- "\310\77\214\306>\217\304@\214\306>\214\305@\242\322b\370\373\362\377" \
- "\377\377\202\377\376\377\1\377\377\375\324\377\377\377\4\234\234\234" \
- ";;=::<<<>\204::<\1;;=\202::<\2FFH\363\363\363\204\377\377\377\1\376\376" \
- "\376\202\377\377\377\1\376\376\376\377\377\377\377\272\377\377\377\1" \
- "\265\265\265\202::<\5;;=99;::<;;=::<\202;;=\3""99;;;=\346\346\346\320" \
- "\377\377\377\2\264\264\266\265\265\267\203\377\377\377\202\376\376\376" \
- "\235\377\377\377\1\304\343\240\235\214\306>\1\305\342\237\203\377\377" \
- "\377\1\342\362\316\235\214\306>\1\250\325p\204\377\377\377\1\252\324" \
- "p\234\214\306>\2\215\307\77\342\362\316\203\377\377\377\3\305\342\237" \
- "\214\305@\215\305>\202\214\306>\1\214\305@\222\214\306>\1\214\305@\205" \
- "\214\306>\1\305\342\237\221\377\377\377\1\375\377\376\202\377\377\375" \
- "\34\377\377\377\376\376\376\373\373\363\243\322b\211\307B\212\307<\215" \
- "\305>\214\306>\212\307>\214\305@\217\304>\212\307<\214\306<\214\306>" \
- "\215\307\77\213\307A\214\306>\215\305@\215\307\77\212\307>\244\317c\370" \
- "\373\362\377\377\373\376\377\377\377\376\377\375\376\377\377\377\375" \
- "\377\376\377\320\377\377\377\1\376\376\376\203\377\377\377\2SSU;;=\203" \
- "::<\1;;=\203::<\3""99;::<\234\234\236\203\377\377\377\1\376\376\376\377" \
- "\377\377\377\276\377\377\377\5RRT99;;;=99;;;=\203::<\4""99;;;=::<\234" \
- "\234\236\314\377\377\377\1\376\376\376\212\377\377\377\1\376\376\376" \
- "\235\377\377\377\1\304\343\240\235\214\306>\1\305\342\237\203\377\377" \
- "\377\1\342\362\316\235\214\306>\1\250\325p\204\377\377\377\1\252\324" \
- "p\234\214\306>\2\215\307\77\342\362\316\203\377\377\377\3\305\342\237" \
- "\214\305@\215\305>\202\214\306>\1\214\305@\222\214\306>\1\214\305@\205" \
- "\214\306>\1\305\342\237\220\377\377\377\3\377\376\377\377\377\377\375" \
- "\377\376\202\377\377\377\11\373\373\363\241\321d\214\306>\213\310=\214" \
- "\306>\214\305@\213\310=\212\306@\217\304>\202\215\307=\14\214\306>\215" \
- "\305>\214\306>\215\305>\217\304@\215\307\77\215\307=\242\320c\367\375" \
- "\361\376\376\377\377\376\377\376\376\376\202\377\377\375\2\374\377\377" \
- "\377\376\377\324\377\377\377\3\265\265\265;;=99;\202;;=\1""99;\202;;" \
- "=\5::<;;=::<GGI\363\363\363\206\377\377\377\1\376\376\376\377\377\377" \
- "\377\271\377\377\377\2\266\266\270;;=\202::<\1;;=\202::<\6;;=::<;;=:" \
- ":<FFH\363\363\363\324\377\377\377\3\376\376\376\377\377\377\376\376\376" \
- "\236\377\377\377\1\304\343\240\235\214\306>\1\305\342\237\203\377\377" \
- "\377\1\342\362\316\235\214\306>\1\250\325p\204\377\377\377\1\252\324" \
- "p\234\214\306>\2\215\307\77\342\362\316\203\377\377\377\3\305\342\237" \
- "\214\305@\215\305>\202\214\306>\1\214\305@\222\214\306>\1\214\305@\205" \
- "\214\306>\1\305\342\237\220\377\377\377\1\377\377\375\202\377\377\377" \
- "\32\377\376\377\370\373\364\243\322b\214\306>\213\310\77\214\305@\215" \
- "\305>\215\305@\214\306>\214\305B\212\307<\215\307=\214\305B\214\306>" \
- "\215\306A\212\306@\212\307>\214\306>\212\307<\244\317c\370\373\364\377" \
- "\377\377\377\375\376\377\377\375\376\377\377\377\377\377\202\377\376" \
- "\377\326\377\377\377\1__a\203::<\1;;=\203::<\1;;=\202::<\1\234\234\234" \
- "\377\377\377\377\274\377\377\377\1\376\376\376\203\377\377\377\3SSU;" \
- ";=99;\210::<\1\234\234\234\365\377\377\377\7\376\377\375\304\341\236" \
- "\215\306A\214\305B\215\307=\212\307>\212\306@\230\214\305@\1\304\341" \
- "\236\203\377\377\377\4\341\362\320\214\306>\213\310\77\215\305@\231\214" \
- "\305@\2\215\307\77\252\322q\202\377\376\377\202\377\377\377\1\250\325" \
- "n\230\214\305@\3\215\305>\215\306A\215\307\77\202\214\306<\10\342\360" \
- "\317\376\377\377\377\377\375\376\377\377\305\342\240\215\305@\212\306" \
- "@\215\305>\202\214\305@\1\215\307=\220\214\305@\10\214\306>\212\306@" \
- "\216\306A\212\307>\215\305>\215\305@\214\305@\304\343\237\211\377\377" \
- "\377\10\376\376\377\377\377\375\377\377\377\377\377\375\377\377\377\377" \
- "\376\377\377\377\375\376\377\377\202\377\377\377\6\370\373\362\243\322" \
- "b\211\307B\213\310=\214\305@\214\306<\202\215\305@\4\214\306<\214\305" \
- "@\214\306<\215\307\77\202\214\306>\6\212\307>\214\306>\215\307\77\214" \
- "\305@\244\317c\367\375\361\335\377\377\377\2\376\376\376\316\316\316" \
- "\211::<\3;;=GGI\363\363\365\203\377\377\377\1\376\376\376\377\377\377" \
- "\377\266\377\377\377\10\376\376\376\377\377\377\376\376\376\377\377\377" \
- "\265\265\265;;=::<;;=\207::<\2GGI\363\363\363\364\377\377\377\7\377\376" \
- "\377\377\377\375\304\341\236\215\305>\215\307\77\214\306>\214\305@\231" \
- "\214\306>\7\304\343\237\377\377\377\375\376\377\377\377\375\341\360\321" \
- "\215\306A\214\305@\233\214\306>\6\252\324n\376\376\376\377\377\377\376" \
- "\377\377\377\376\377\252\324p\230\214\306>\7\215\306A\212\307>\214\306" \
- ">\212\307>\214\306>\343\361\320\376\377\377\202\377\377\377\7\305\342" \
- "\237\215\305>\213\310\77\214\306>\214\305@\212\306@\215\307\77\222\214" \
- "\306>\6\215\305>\212\307>\214\306>\215\307=\215\305@\305\342\237\210" \
- "\377\377\377\6\376\376\377\377\376\377\375\376\377\376\377\377\377\377" \
- "\375\375\377\376\203\377\377\377\27\377\377\375\372\373\366\241\321a" \
- "\217\304@\212\307<\214\306>\215\305>\215\305@\213\310=\212\306@\214\306" \
- ">\214\305B\215\307\77\215\305>\215\306A\212\307>\214\306>\215\307\77" \
- "\214\306>\242\322b\370\373\362\376\376\377\377\375\376\336\377\377\377" \
- "\1kkm\202::<\1;;=\205::<\202;;=\3\233\233\235\377\377\377\376\376\376" \
- "\377\377\377\377\274\377\377\377\3SSU99;;;=\20299;\1;;=\203::<\3;;=:" \
- ":<\234\234\236\366\377\377\377\7\376\377\375\305\342\240\213\304\77\213" \
- "\310\77\214\305@\215\306A\216\306=\230\214\306>\10\305\342\240\377\377" \
- "\375\376\377\377\377\376\377\341\360\317\214\306<\214\305@\212\306@\231" \
- "\214\306>\7\215\305@\252\324p\377\377\377\377\377\375\376\377\377\377" \
- "\376\374\252\324p\230\214\306>\7\212\307>\215\307\77\216\306A\212\307" \
- ">\213\304\77\343\361\320\377\377\375\202\377\377\377\3\307\342\237\214" \
- "\304\77\213\310\77\203\214\306>\1\215\307\77\220\214\306>\4\214\305@" \
- "\214\306<\215\304B\213\310\77\202\212\307>\2\215\305@\305\342\240\210" \
- "\377\377\377\7\377\377\375\375\376\377\376\377\377\376\377\375\377\374" \
- "\377\377\377\375\375\377\376\202\377\377\377\5\372\373\366\240\320b\215" \
- "\307\77\212\306@\215\305>\202\214\305@\20\215\305@\212\306@\214\305D" \
- "\216\306\77\214\306>\215\307\77\214\306>\212\306@\214\306>\215\307\77" \
- "\215\305@\242\320c\370\373\362\377\377\373\377\376\377\377\377\375\331" \
- "\377\377\377\1\376\376\376\203\377\377\377\4\376\376\376\317\317\321" \
- "::<;;=\203::<\3;;=::<;;=\202::<\4FFH\363\363\363\377\377\377\376\376" \
- "\376\377\377\377\377\264\377\377\377\1\376\376\376\205\377\377\377\1" \
- "\265\265\267\202;;=\3::<99;;;=\202::<\202;;=\2::<SSU\366\377\377\377" \
- "\7\377\376\377\375\377\374\304\341\237\216\306\77\212\307<\213\310\77" \
- "\212\307>\231\214\306>\2\305\342\240\377\377\377\202\377\376\377\3\341" \
- "\362\316\216\306\77\214\306<\231\214\306>\3\215\305@\212\307>\252\324" \
- "p\203\377\377\377\2\377\376\377\247\324o\230\214\306>\20\215\306A\214" \
- "\305B\215\307\77\211\305\77\214\304;\342\362\315\377\377\377\377\376" \
- "\377\376\376\376\305\342\237\215\306A\210\307;\215\306A\216\306A\214" \
- "\306>\212\306@\220\214\306>\202\214\305@\6\216\305C\213\305=\214\305" \
- "B\215\307\77\216\306\77\303\344\237\211\377\377\377\37\376\377\377\376" \
- "\377\375\377\375\376\375\377\376\377\377\375\377\377\377\377\376\377" \
- "\370\373\362\241\321a\215\307\77\215\307=\214\305@\214\306>\212\307<" \
- "\214\306>\214\306<\214\306>\216\306\77\215\305<\212\307>\213\307A\215" \
- "\305>\212\307>\215\307\77\214\306>\242\321a\373\374\364\377\377\377\376" \
- "\377\377\376\376\376\376\377\377\331\377\377\377\3\376\376\376\377\377" \
- "\377\376\376\376\203\377\377\377\1kkm\202::<\6;;=::<;;=::<;;=::<\202" \
- ";;=\1\233\233\235\377\377\377\377\267\377\377\377\1\376\376\376\204\377" \
- "\377\377\2kkm;;=\202::<\2;;=::<\202;;=\203::<\5\265\265\267\377\377\377" \
- "\376\376\376\377\377\377\376\376\376\362\377\377\377\2\376\377\377\377" \
- "\376\377\202\377\377\377\202\377\376\377\2\377\377\377\377\377\375\231" \
- "\377\377\377\4\377\376\377\376\377\377\375\377\376\377\377\377\202\376" \
- "\377\377\231\377\377\377\10\374\377\375\377\376\377\377\377\375\376\376" \
- "\376\377\377\377\376\377\377\376\376\374\377\376\377\230\377\377\377" \
- "\1\377\376\377\203\377\377\375\4\376\377\377\377\375\377\377\377\377" \
- "\376\377\377\202\377\377\377\3\376\376\376\377\376\377\377\377\375\202" \
- "\376\377\377\1\377\377\375\220\377\377\377\10\377\377\375\377\377\377" \
- "\376\376\376\377\377\377\377\377\375\377\377\377\376\377\377\377\375" \
- "\377\210\377\377\377\202\377\377\375\3\377\374\377\375\377\376\376\377" \
- "\377\202\377\377\377\25\370\373\364\243\322b\217\304@\212\306@\214\305" \
- "@\215\305>\212\307>\212\306@\214\305B\214\305@\214\305B\214\306>\212" \
- "\307>\212\310\77\214\306>\217\304@\214\306>\214\305@\242\322b\370\373" \
- "\362\377\377\377\202\377\376\377\1\377\377\375\340\377\377\377\1\316" \
- "\316\316\203::<\3;;=99;;;=\204::<\2FFH\363\363\363\202\377\377\377\1" \
- "\376\376\376\377\377\377\377\264\377\377\377\1\376\376\376\202\377\377" \
- "\377\1\316\316\320\206::<\1;;=\203::<\2SSU\376\376\376\366\377\377\377" \
- "\1\377\377\375\202\377\376\377\202\377\377\377\3\377\377\375\377\377" \
- "\377\376\377\377\230\377\377\377\202\376\377\377\6\377\377\375\377\377" \
- "\377\376\377\375\377\377\377\376\377\375\377\377\375\231\377\377\377" \
- "\2\376\377\377\377\377\375\202\377\377\377\1\376\376\376\232\377\377" \
- "\377\5\377\376\377\377\377\377\376\377\375\377\377\377\377\377\375\204" \
- "\377\377\377\202\376\377\377\1\376\376\376\202\377\377\377\202\376\377" \
- "\377\220\377\377\377\1\377\377\375\202\377\377\377\4\376\376\374\377" \
- "\376\377\377\377\377\376\377\375\212\377\377\377\1\375\377\376\202\377" \
- "\377\375\34\377\377\377\376\376\376\373\373\363\243\322b\211\307B\212" \
- "\307<\215\305>\214\306>\212\307>\214\305@\217\304>\212\307<\214\306<" \
- "\214\306>\215\307\77\213\307A\214\306>\215\305@\215\307\77\212\307>\244" \
- "\317c\370\373\362\377\377\373\376\377\377\377\376\377\375\376\377\377" \
- "\377\375\377\376\377\334\377\377\377\1\376\376\376\202\377\377\377\10" \
- "\376\376\376kkm::<;;=99;;;=::<;;=\202::<\202;;=\1\234\234\236\203\377" \
- "\377\377\1\376\376\376\377\377\377\377\262\377\377\377\5\376\376\376" \
- "\377\377\377\376\376\376\377\377\377lln\210::<\3""99;;;=\265\265\265" \
- "\202\377\377\377\1\376\376\376\202\377\377\377\1\376\376\376\370\377" \
- "\377\377\1\376\377\377\230\377\377\377\7\377\376\377\377\377\375\377" \
- "\376\377\376\376\377\377\377\375\377\377\377\377\377\375\233\377\377" \
- "\377\1\377\376\377\203\377\377\377\1\376\377\375\231\377\377\377\5\377" \
- "\377\375\377\377\377\377\377\375\377\377\377\377\377\375\202\377\377" \
- "\377\1\377\377\375\203\377\377\377\2\376\376\376\377\376\377\226\377" \
- "\377\377\5\377\377\375\377\377\377\376\377\377\377\377\375\376\377\377" \
- "\210\377\377\377\3\377\376\377\377\377\377\375\377\376\202\377\377\377" \
- "\11\373\373\363\241\321d\214\306>\213\310=\214\306>\214\305@\213\310" \
- "=\212\306@\217\304>\202\215\307=\14\214\306>\215\305>\214\306>\215\305" \
- ">\217\304@\215\307\77\215\307=\242\320c\367\375\361\376\376\377\377\376" \
- "\377\376\376\376\202\377\377\375\2\374\377\377\377\376\377\333\377\377" \
- "\377\1\376\376\376\202\377\377\377\3\376\376\376\377\377\377\316\316" \
- "\320\203::<\1;;=\202::<\1;;=\203::<\2FFH\377\377\377\202\376\376\376" \
- "\377\377\377\377\262\377\377\377\5\376\376\376\377\377\377\376\376\376" \
- "\377\377\377\332\332\332\206::<\1;;=\202::<\5;;=FFH\363\363\363\377\377" \
- "\377\376\376\376\203\377\377\377\1\376\376\376\365\377\377\377\1\377" \
- "\377\375\202\377\377\377\1\377\377\375\230\377\377\377\2\376\377\377" \
- "\377\377\375\204\377\377\377\2\377\376\377\376\377\375\230\377\377\377" \
- "\4\377\377\375\377\377\377\377\377\373\376\377\377\203\377\377\377\1" \
- "\377\376\377\230\377\377\377\13\376\377\377\377\377\375\377\377\377\376" \
- "\377\377\377\375\376\377\377\377\377\377\375\376\377\377\377\376\377" \
- "\377\377\377\376\376\376\202\377\377\377\1\377\377\375\226\377\377\377" \
- "\202\376\377\377\2\377\377\375\377\376\377\210\377\377\377\1\377\377" \
- "\375\202\377\377\377\32\377\376\377\370\373\364\243\322b\214\306>\213" \
- "\310\77\214\305@\215\305>\215\305@\214\306>\214\305B\212\307<\215\307" \
- "=\214\305B\214\306>\215\306A\212\306@\212\307>\214\306>\212\307<\244" \
- "\317c\370\373\364\377\377\377\377\375\376\377\377\375\376\377\377\377" \
- "\377\377\202\377\376\377\333\377\377\377\1\376\376\376\204\377\377\377" \
- "\11\376\376\376\377\377\377kkm::<;;=99;;;=::<;;=\202::<\3;;=::<\264\264" \
- "\264\377\377\377\377\265\377\377\377\1\376\376\376\202\377\377\377\1" \
- "\204\204\204\203::<\1;;=\206::<\1\235\235\237\377\377\377\377\377\377" \
- "\377\377\203\377\377\377\10\376\376\377\377\377\375\377\377\377\377\377" \
- "\375\377\377\377\377\376\377\377\377\375\376\377\377\202\377\377\377" \
- "\6\370\373\362\243\322b\211\307B\213\310=\214\305@\214\306<\202\215\305" \
- "@\4\214\306<\214\305@\214\306<\215\307\77\202\214\306>\6\212\307>\214" \
- "\306>\215\307\77\214\305@\244\317c\367\375\361\352\377\377\377\1\316" \
- "\316\316\203::<\1;;=\203::<\202;;=\2::<RRT\377\377\377\377\267\377\377" \
- "\377\3\346\346\346::<;;=\203::<\202;;=\5""99;::<;;=FFH\363\363\365\377" \
- "\377\377\377\377\377\377\377\202\377\377\377\6\376\376\377\377\376\377" \
- "\375\376\377\376\377\377\377\377\375\375\377\376\203\377\377\377\27\377" \
- "\377\375\372\373\366\241\321a\217\304@\212\307<\214\306>\215\305>\215" \
- "\305@\213\310=\212\306@\214\306>\214\305B\215\307\77\215\305>\215\306" \
- "A\212\307>\214\306>\215\307\77\214\306>\242\322b\370\373\362\376\376" \
- "\377\377\375\376\352\377\377\377\2kkm;;=\207::<\3;;=::<\301\301\301\377" \
- "\377\377\377\266\377\377\377\2\221\221\221;;=\202::<\202;;=\202::<\1" \
- ";;=\202::<\1\235\235\237\377\377\377\377\377\377\377\377\203\377\377" \
- "\377\7\377\377\375\375\376\377\376\377\377\376\377\375\377\374\377\377" \
- "\377\375\375\377\376\202\377\377\377\5\372\373\366\240\320b\215\307\77" \
- "\212\306@\215\305>\202\214\305@\20\215\305@\212\306@\214\305D\216\306" \
- "\77\214\306>\215\307\77\214\306>\212\306@\214\306>\215\307\77\215\305" \
- "@\242\320c\370\373\362\377\377\373\377\376\377\377\377\375\350\377\377" \
- "\377\4\376\376\376\377\377\377\265\265\26799;\203::<\3;;=::<;;=\203:" \
- ":<\2kkk\376\376\376\377\377\377\377\264\377\377\377\2\362\362\362FFH" \
- "\202::<\1;;=\203::<\5;;=::<;;=::<\363\363\363\377\377\377\377\377\377" \
- "\377\377\204\377\377\377\37\376\377\377\376\377\375\377\375\376\375\377" \
- "\376\377\377\375\377\377\377\377\376\377\370\373\362\241\321a\215\307" \
- "\77\215\307=\214\305@\214\306>\212\307<\214\306>\214\306<\214\306>\216" \
- "\306\77\215\305<\212\307>\213\307A\215\305>\212\307>\215\307\77\214\306" \
- ">\242\321a\373\374\364\377\377\377\376\377\377\376\376\376\376\377\377" \
- "\352\377\377\377\2\376\376\376TTV\204::<\7;;=99;::<;;=99;::<\332\332" \
- "\332\377\377\377\377\263\377\377\377\3\376\376\376\266\266\266;;=\203" \
- "::<\202;;=\204::<\1\205\205\207\377\377\377\377\377\377\377\377\204\377" \
- "\377\377\202\377\377\375\3\377\374\377\375\377\376\376\377\377\202\377" \
- "\377\377\25\370\373\364\243\322b\217\304@\212\306@\214\305@\215\305>" \
- "\212\307>\212\306@\214\305B\214\305@\214\305B\214\306>\212\307>\212\310" \
- "\77\214\306>\217\304@\214\306>\214\305@\242\322b\370\373\362\377\377" \
- "\377\202\377\376\377\1\377\377\375\354\377\377\377\2\265\265\267::<\202" \
- ";;=\205::<\4;;=::<\204\204\204\376\376\376\377\377\377\377\263\377\377" \
- "\377\1SSU\202::<\1;;=\206::<\2;;=\346\346\346\377\377\377\377\377\377" \
- "\377\377\205\377\377\377\1\375\377\376\202\377\377\375\34\377\377\377" \
- "\376\376\376\373\373\363\243\322b\211\307B\212\307<\215\305>\214\306" \
- ">\212\307>\214\305@\217\304>\212\307<\214\306<\214\306>\215\307\77\213" \
- "\307A\214\306>\215\305@\215\307\77\212\307>\244\317c\370\373\362\377" \
- "\377\373\376\377\377\377\376\377\375\376\377\377\377\375\377\376\377" \
- "\354\377\377\377\4FFH;;=99;;;=\203::<\5;;=99;;;=99;\364\364\364\377\377" \
- "\377\377\262\377\377\377\1\316\316\316\202;;=\1""99;\203::<\1;;=\203" \
- "::<\1xxz\377\377\377\377\377\377\377\377\205\377\377\377\3\377\376\377" \
- "\377\377\377\375\377\376\202\377\377\377\11\373\373\363\241\321d\214" \
- "\306>\213\310=\214\306>\214\305@\213\310=\212\306@\217\304>\202\215\307" \
- "=\14\214\306>\215\305>\214\306>\215\305>\217\304@\215\307\77\215\307" \
- "=\242\320c\367\375\361\376\376\377\377\376\377\376\376\376\202\377\377" \
- "\375\2\374\377\377\377\376\377\354\377\377\377\1\235\235\237\204::<\1" \
- "<<>\202::<\4;;=::<;;=\247\247\251\377\377\377\377\262\377\377\377\4\204" \
- "\204\204;;=::<;;=\206::<\2;;=\316\316\316\377\377\377\377\377\377\377" \
- "\377\205\377\377\377\1\377\377\375\202\377\377\377\32\377\376\377\370" \
- "\373\364\243\322b\214\306>\213\310\77\214\305@\215\305>\215\305@\214" \
- "\306>\214\305B\212\307<\215\307=\214\305B\214\306>\215\306A\212\306@" \
- "\212\307>\214\306>\212\307<\244\317c\370\373\364\377\377\377\377\375" \
- "\376\377\377\375\376\377\377\377\377\377\202\377\376\377\355\377\377" \
- "\377\1\363\363\363\212::<\1TTV\377\377\377\377\261\377\377\377\5\347" \
- "\347\351::<;;=::<;;=\204::<\3;;=::<TTT\377\377\377\377\376\377\377\377" \
- "\10\376\376\377\377\377\375\377\377\377\377\377\375\377\377\377\377\376" \
- "\377\377\377\375\376\377\377\202\377\377\377\6\370\373\362\243\322b\211" \
- "\307B\213\310=\214\305@\214\306<\202\215\305@\4\214\306<\214\305@\214" \
- "\306<\215\307\77\202\214\306>\6\212\307>\214\306>\215\307\77\214\305" \
- "@\244\317c\367\375\361\361\377\377\377\1\376\376\376\204\377\377\377" \
- "\1\204\204\204\202;;=\203::<\1;;=\202::<\202;;=\1\302\302\302\203\377" \
- "\377\377\1\376\376\376\377\377\377\377\244\377\377\377\1\376\376\376" \
- "\203\377\377\377\1\376\376\376\203\377\377\377\1\234\234\236\202::<\1" \
- ";;=\204::<\6;;=::<;;=\264\264\264\377\377\377\376\376\376\377\377\377" \
- "\377\373\377\377\377\6\376\376\377\377\376\377\375\376\377\376\377\377" \
- "\377\377\375\375\377\376\203\377\377\377\27\377\377\375\372\373\366\241" \
- "\321a\217\304@\212\307<\214\306>\215\305>\215\305@\213\310=\212\306@" \
- "\214\306>\214\305B\215\307\77\215\305>\215\306A\212\307>\214\306>\215" \
- "\307\77\214\306>\242\322b\370\373\362\376\376\377\377\375\376\365\377" \
- "\377\377\1\332\332\332\202::<\1;;=\202::<\6""99;::<;;=99;;;=xxx\205\377" \
- "\377\377\1\376\376\376\377\377\377\377\243\377\377\377\1\376\376\376" \
- "\206\377\377\377\4SSU;;=::<;;=\202::<\1;;=\203::<\3GGI\362\362\362\376" \
- "\376\376\377\377\377\377\374\377\377\377\7\377\377\375\375\376\377\376" \
- "\377\377\376\377\375\377\374\377\377\377\375\375\377\376\202\377\377" \
- "\377\5\372\373\366\240\320b\215\307\77\212\306@\215\305>\202\214\305" \
- "@\20\215\305@\212\306@\214\305D\216\306\77\214\306>\215\307\77\214\306" \
- ">\212\306@\214\306>\215\307\77\215\305@\242\320c\370\373\362\377\377" \
- "\373\377\376\377\377\377\375\364\377\377\377\3\376\376\376\377\377\377" \
- "__a\203::<\202;;=\6::<99;;;=::<;;=\345\345\345\203\377\377\377\1\376" \
- "\376\376\377\377\377\377\245\377\377\377\3\376\376\376\377\377\377\376" \
- "\376\376\202\377\377\377\2\316\316\316::<\202;;=\205::<\202;;=\1\203" \
- "\203\205\204\377\377\377\1\376\376\376\377\377\377\377\372\377\377\377" \
- "\37\376\377\377\376\377\375\377\375\376\375\377\376\377\377\375\377\377" \
- "\377\377\376\377\370\373\362\241\321a\215\307\77\215\307=\214\305@\214" \
- "\306>\212\307<\214\306>\214\306<\214\306>\216\306\77\215\305<\212\307" \
- ">\213\307A\215\305>\212\307>\215\307\77\214\306>\242\321a\373\374\364" \
- "\377\377\377\376\377\377\376\376\376\376\377\377\362\377\377\377\202" \
- "\376\376\376\3\377\377\377\376\376\376\265\265\267\202::<\1;;=\207::" \
- "<\3\251\251\253\377\377\377\376\376\376\203\377\377\377\1\376\376\376" \
- "\377\377\377\377\247\377\377\377\2\376\376\376\204\204\206\207::<\1;" \
- ";=\202::<\3\346\346\346\377\377\377\376\376\376\377\377\377\377\374\377" \
- "\377\377\202\377\377\375\3\377\374\377\375\377\376\376\377\377\202\377" \
- "\377\377\25\370\373\364\243\322b\217\304@\212\306@\214\305@\215\305>" \
- "\212\307>\212\306@\214\305B\214\305@\214\305B\214\306>\212\307>\212\310" \
- "\77\214\306>\217\304@\214\306>\214\305@\242\322b\370\373\362\377\377" \
- "\377\202\377\376\377\1\377\377\375\364\377\377\377\17\376\376\376\377" \
- "\377\377\376\376\376\377\377\377FFH;;=99;::<;;=::<;;=99;;;=::<SSU\377" \
- "\377\377\377\251\377\377\377\1\376\376\376\203\377\377\377\3\363\363" \
- "\365::<;;=\202::<\11;;=::<;;=::<;;=::<kkm\377\377\377\376\376\376\377" \
- "\377\377\377\376\377\377\377\1\375\377\376\202\377\377\375\34\377\377" \
- "\377\376\376\376\373\373\363\243\322b\211\307B\212\307<\215\305>\214" \
- "\306>\212\307>\214\305@\217\304>\212\307<\214\306<\214\306>\215\307\77" \
- "\213\307A\214\306>\215\305@\215\307\77\212\307>\244\317c\370\373\362" \
- "\377\377\373\376\377\377\377\376\377\375\376\377\377\377\375\377\376" \
- "\377\361\377\377\377\202\376\376\376\2\377\377\377\376\376\376\202\377" \
- "\377\377\1\221\221\221\205::<\202;;=\5::<;;=99;\316\316\320\376\376\376" \
- "\377\377\377\377\250\377\377\377\1\376\376\376\202\377\377\377\4\266" \
- "\266\270::<99;;;=\203::<\1;;=\203::<\1\265\265\265\377\377\377\377\377" \
- "\377\377\377\3\377\376\377\377\377\377\375\377\376\202\377\377\377\11" \
- "\373\373\363\241\321d\214\306>\213\310=\214\306>\214\305@\213\310=\212" \
- "\306@\217\304>\202\215\307=\14\214\306>\215\305>\214\306>\215\305>\217" \
- "\304@\215\307\77\215\307=\242\320c\367\375\361\376\376\377\377\376\377" \
- "\376\376\376\202\377\377\375\2\374\377\377\377\376\377\360\377\377\377" \
- "\1\376\376\376\202\377\377\377\202\376\376\376\202\377\377\377\6\346" \
- "\346\346;;=99;::<99;;;=\204::<\2;;=\204\204\206\202\377\377\377\1\376" \
- "\376\376\377\377\377\377\251\377\377\377\1__a\203::<\3;;=::<;;=\203:" \
- ":<\4FFF\363\363\363\377\377\377\376\376\376\377\377\377\377\375\377\377" \
- "\377\1\377\377\375\202\377\377\377\32\377\376\377\370\373\364\243\322" \
- "b\214\306>\213\310\77\214\305@\215\305>\215\305@\214\306>\214\305B\212" \
- "\307<\215\307=\214\305B\214\306>\215\306A\212\306@\212\307>\214\306>" \
- "\212\307<\244\317c\370\373\364\377\377\377\377\375\376\377\377\375\376" \
- "\377\377\377\377\377\202\377\376\377\371\377\377\377\4^^`;;=::<;;=\202" \
- "::<\5;;=::<;;=::<FFH\377\377\377\377\253\377\377\377\3\346\346\346::" \
- "<;;=\210::<\1\204\204\204\202\377\377\377\202\376\376\376\377\377\377" \
- "\377\365\377\377\377\10\376\376\377\377\377\375\377\377\377\377\377\375" \
- "\377\377\377\377\376\377\377\377\375\376\377\377\202\377\377\377\6\370" \
- "\373\362\243\322b\211\307B\213\310=\214\305@\214\306<\202\215\305@\4" \
- "\214\306<\214\305@\214\306<\215\307\77\202\214\306>\6\212\307>\214\306" \
- ">\215\307\77\214\305@\244\317c\367\375\361\377\377\377\377\202\377\377" \
- "\377\3\265\265\267::<;;=\204::<\1;;=\202::<\2;;=\265\265\265\202\377" \
- "\377\377\1\376\376\376\377\377\377\377\246\377\377\377\2\376\376\376" \
- "\234\234\234\202;;=\203::<\1;;=\202::<\3""99;::<\332\332\332\377\377" \
- "\377\377\370\377\377\377\6\376\376\377\377\376\377\375\376\377\376\377" \
- "\377\377\377\375\375\377\376\203\377\377\377\27\377\377\375\372\373\366" \
- "\241\321a\217\304@\212\307<\214\306>\215\305>\215\305@\213\310=\212\306" \
- "@\214\306>\214\305B\215\307\77\215\305>\215\306A\212\307>\214\306>\215" \
- "\307\77\214\306>\242\322b\370\373\362\376\376\377\377\375\376\377\377" \
- "\377\377\5\377\377\377\363\363\365;;=::<;;=\202::<\3;;=::<;;=\202::<" \
- "\3xxz\377\377\377\376\376\376\377\377\377\377\246\377\377\377\3\376\376" \
- "\376\377\377\377SSS\202::<\1;;=\202::<\1;;=\202::<\6;;=SSU\377\377\377" \
- "\376\376\376\377\377\377\376\376\376\202\377\377\377\1\376\376\376\377" \
- "\377\377\377\362\377\377\377\7\377\377\375\375\376\377\376\377\377\376" \
- "\377\375\377\374\377\377\377\375\375\377\376\202\377\377\377\5\372\373" \
- "\366\240\320b\215\307\77\212\306@\215\305>\202\214\305@\20\215\305@\212" \
- "\306@\214\305D\216\306\77\214\306>\215\307\77\214\306>\212\306@\214\306" \
- ">\215\307\77\215\305@\242\320c\370\373\362\377\377\373\377\376\377\377" \
- "\377\375\377\377\377\377\11\377\377\377\376\376\376\204\204\206;;=::" \
- "<99;;;=::<;;=\204::<\3\362\362\362\377\377\377\376\376\376\377\377\377" \
- "\377\246\377\377\377\1\333\333\333\203::<\202;;=\202::<\5<<>99;::<\250" \
- "\250\252\376\376\376\203\377\377\377\1\376\376\376\377\377\377\377\365" \
- "\377\377\377\37\376\377\377\376\377\375\377\375\376\375\377\376\377\377" \
- "\375\377\377\377\377\376\377\370\373\362\241\321a\215\307\77\215\307" \
- "=\214\305@\214\306>\212\307<\214\306>\214\306<\214\306>\216\306\77\215" \
- "\305<\212\307>\213\307A\215\305>\212\307>\215\307\77\214\306>\242\321" \
- "a\373\374\364\377\377\377\376\377\377\376\376\376\376\377\377\377\377" \
- "\377\377\202\377\377\377\1\301\301\301\202::<\1;;=\203::<\1;;=\203::" \
- "<\1\266\266\270\377\377\377\377\250\377\377\377\2\220\220\220;;=\204" \
- "::<\6;;=::<99;;;=::<\346\346\346\205\377\377\377\1\376\376\376\377\377" \
- "\377\377\363\377\377\377\202\377\377\375\3\377\374\377\375\377\376\376" \
- "\377\377\202\377\377\377\25\370\373\364\243\322b\217\304@\212\306@\214" \
- "\305@\215\305>\212\307>\212\306@\214\305B\214\305@\214\305B\214\306>" \
- "\212\307>\212\310\77\214\306>\217\304@\214\306>\214\305@\242\322b\370" \
- "\373\362\377\377\377\202\377\376\377\1\377\377\375\377\377\377\377\204" \
- "\377\377\377\2TTV99;\202::<\1;;=\202::<\6;;=::<;;=__a\377\377\377\376" \
- "\376\376\377\377\377\377\244\377\377\377\3\376\376\376\377\377\377TT" \
- "V\207::<\3;;=99;```\377\377\377\377\373\377\377\377\1\375\377\376\202" \
- "\377\377\375\34\377\377\377\376\376\376\373\373\363\243\322b\211\307" \
- "B\212\307<\215\305>\214\306>\212\307>\214\305@\217\304>\212\307<\214" \
- "\306<\214\306>\215\307\77\213\307A\214\306>\215\305@\215\307\77\212\307" \
- ">\244\317c\370\373\362\377\377\373\376\377\377\377\376\377\375\376\377" \
- "\377\377\375\377\376\377\377\377\377\377\203\377\377\377\3\221\221\221" \
- "::<;;=\202::<\202;;=\203::<\2;;=\345\345\347\377\377\377\377\246\377" \
- "\377\377\4\332\332\332;;=::<;;=\203::<\1;;=\203::<\1\265\265\265\203" \
- "\377\377\377\3\376\376\376\377\377\377\376\376\376\377\377\377\377\364" \
- "\377\377\377\3\377\376\377\377\377\377\375\377\376\202\377\377\377\11" \
- "\373\373\363\241\321d\214\306>\213\310=\214\306>\214\305@\213\310=\212" \
- "\306@\217\304>\202\215\307=\14\214\306>\215\305>\214\306>\215\305>\217" \
- "\304@\215\307\77\215\307=\242\320c\367\375\361\376\376\377\377\376\377" \
- "\376\376\376\202\377\377\375\2\374\377\377\377\376\377\377\377\377\377" \
- "\202\377\377\377\5\376\376\376\332\332\332;;=::<;;=\202::<\6;;=::<;;" \
- "=99;::<\250\250\252\377\377\377\377\244\377\377\377\6\376\376\376\377" \
- "\377\377\221\221\223::<;;=99;\202::<\3;;=::<;;=\202::<\1\363\363\363" \
- "\377\377\377\377\372\377\377\377\1\377\377\375\202\377\377\377\32\377" \
- "\376\377\370\373\364\243\322b\214\306>\213\310\77\214\305@\215\305>\215" \
- "\305@\214\306>\214\305B\212\307<\215\307=\214\305B\214\306>\215\306A" \
- "\212\306@\212\307>\214\306>\212\307<\244\317c\370\373\364\377\377\377" \
- "\377\375\376\377\377\375\376\377\377\377\377\377\202\377\376\377\377" \
- "\377\377\377\204\377\377\377\2\376\376\376SSU\204::<\204;;=\2::<__a\377" \
- "\377\377\377\243\377\377\377\6\376\376\376\377\377\377\376\376\376TT" \
- "V99;;;=\204::<\4;;=99;<<>xxz\377\377\377\377\364\377\377\377\10\376\376" \
- "\377\377\377\375\377\377\377\377\377\375\377\377\377\377\376\377\377" \
- "\377\375\376\377\377\202\377\377\377\6\370\373\362\243\322b\211\307B" \
- "\213\310=\214\305@\214\306<\202\215\305@\4\214\306<\214\305@\214\306" \
- "<\215\307\77\202\214\306>\6\212\307>\214\306>\215\307\77\214\305@\244" \
- "\317c\367\375\361\377\377\377\377\213\377\377\377\5\376\376\376\377\377" \
- "\377\221\221\223::<;;=\204::<\5;;=::<;;=::<\363\363\363\204\377\377\377" \
- "\1\376\376\376\202\377\377\377\202\376\376\376\377\377\377\377\233\377" \
- "\377\377\5\332\332\332::<;;=99;<<>\202::<\1;;=\203::<\1\265\265\267\377" \
- "\377\377\377\363\377\377\377\6\376\376\377\377\376\377\375\376\377\376" \
- "\377\377\377\377\375\375\377\376\203\377\377\377\27\377\377\375\372\373" \
- "\366\241\321a\217\304@\212\307<\214\306>\215\305>\215\305@\213\310=\212" \
- "\306@\214\306>\214\305B\215\307\77\215\305>\215\306A\212\307>\214\306" \
- ">\215\307\77\214\306>\242\322b\370\373\362\376\376\377\377\375\376\377" \
- "\377\377\377\213\377\377\377\2\375\375\375\333\333\333\202::<\1;;=\202" \
- "::<\1;;=\202::<\3""99;::<\265\265\265\206\377\377\377\3\376\376\376\377" \
- "\377\377\376\376\376\377\377\377\377\233\377\377\377\2\235\235\23599" \
- ";\202;;=\1""99;\202;;=\202::<\3;;=::<\363\363\365\377\377\377\377\363" \
- "\377\377\377\7\377\377\375\375\376\377\376\377\377\376\377\375\377\374" \
- "\377\377\377\375\375\377\376\202\377\377\377\5\372\373\366\240\320b\215" \
- "\307\77\212\306@\215\305>\202\214\305@\20\215\305@\212\306@\214\305D" \
- "\216\306\77\214\306>\215\307\77\214\306>\212\306@\214\306>\215\307\77" \
- "\215\305@\242\320c\370\373\362\377\377\373\377\376\377\377\377\375\377" \
- "\377\377\377\214\377\377\377\2\376\376\376SSU\207::<\3;;=::<xxx\203\377" \
- "\377\377\202\376\376\376\202\377\377\377\1\376\376\376\377\377\377\377" \
- "\234\377\377\377\1^^`\211::<\3xxz\377\377\377\376\376\376\377\377\377" \
- "\377\363\377\377\377\37\376\377\377\376\377\375\377\375\376\375\377\376" \
- "\377\377\375\377\377\377\377\376\377\370\373\362\241\321a\215\307\77" \
- "\215\307=\214\305@\214\306>\212\307<\214\306>\214\306<\214\306>\216\306" \
- "\77\215\305<\212\307>\213\307A\215\305>\212\307>\215\307\77\214\306>" \
- "\242\321a\373\374\364\377\377\377\376\377\377\376\376\376\376\377\377" \
- "\377\377\377\377\212\377\377\377\4\376\376\376\377\377\377\376\376\376" \
- "\222\222\222\205::<\1;;=\20299;\202::<\3\363\363\363\377\377\377\376" \
- "\376\376\377\377\377\377\240\377\377\377\1\346\346\346\202::<\1;;=\204" \
- "::<\1;;=\202::<\1\250\250\252\202\377\377\377\1\376\376\376\377\377\377" \
- "\377\361\377\377\377\202\377\377\375\3\377\374\377\375\377\376\376\377" \
- "\377\202\377\377\377\25\370\373\364\243\322b\217\304@\212\306@\214\305" \
- "@\215\305>\212\307>\212\306@\214\305B\214\305@\214\305B\214\306>\212" \
- "\307>\212\310\77\214\306>\217\304@\214\306>\214\305@\242\322b\370\373" \
- "\362\377\377\377\202\377\376\377\1\377\377\375\377\377\377\377\212\377" \
- "\377\377\1\376\376\376\203\377\377\377\2\332\332\332<<>\203::<\3;;=:" \
- ":<<<>\203::<\2\301\301\303\376\376\376\202\377\377\377\5\376\376\376" \
- "\377\377\377\376\376\376\377\377\377\376\376\376\377\377\377\377\231" \
- "\377\377\377\4\376\376\376\251\251\253::<;;=\204::<\5;;=::<99;::<\346" \
- "\346\346\377\377\377\377\365\377\377\377\1\375\377\376\202\377\377\375" \
- "\34\377\377\377\376\376\376\373\373\363\243\322b\211\307B\212\307<\215" \
- "\305>\214\306>\212\307>\214\305@\217\304>\212\307<\214\306<\214\306>" \
- "\215\307\77\213\307A\214\306>\215\305@\215\307\77\212\307>\244\317c\370" \
- "\373\362\377\377\373\376\377\377\377\376\377\375\376\377\377\377\375" \
- "\377\376\377\377\377\377\377\212\377\377\377\1\376\376\376\203\377\377" \
- "\377\1SSS\207::<\3;;=::<\205\205\207\205\377\377\377\1\376\376\376\377" \
- "\377\377\377\234\377\377\377\3wwy::<;;=\206::<\2;;=__a\377\377\377\377" \
- "\365\377\377\377\3\377\376\377\377\377\377\375\377\376\202\377\377\377" \
- "\11\373\373\363\241\321d\214\306>\213\310=\214\306>\214\305@\213\310" \
- "=\212\306@\217\304>\202\215\307=\14\214\306>\215\305>\214\306>\215\305" \
- ">\217\304@\215\307\77\215\307=\242\320c\367\375\361\376\376\377\377\376" \
- "\377\376\376\376\202\377\377\375\2\374\377\377\377\376\377\377\377\377" \
- "\377\211\377\377\377\1\376\376\376\203\377\377\377\3\376\376\376\204" \
- "\204\204::<\202;;=\1::<\202;;=\203::<\1SSU\204\377\377\377\1\376\376" \
- "\376\377\377\377\377\235\377\377\377\1;;=\203::<\1;;=\202::<\1;;=\202" \
- "::<\1\234\234\234\202\377\377\377\1\376\376\376\377\377\377\377\362\377" \
- "\377\377\1\377\377\375\202\377\377\377\32\377\376\377\370\373\364\243" \
- "\322b\214\306>\213\310\77\214\305@\215\305>\215\305@\214\306>\214\305" \
- "B\212\307<\215\307=\214\305B\214\306>\215\306A\212\306@\212\307>\214" \
- "\306>\212\307<\244\317c\370\373\364\377\377\377\377\375\376\377\377\375" \
- "\376\377\377\377\377\377\202\377\376\377\377\377\377\377\212\377\377" \
- "\377\1\376\376\376\204\377\377\377\6\301\301\301;;=::<;;=::<;;=\205:" \
- ":<\1\333\333\333\202\377\377\377\1\376\376\376\377\377\377\377\231\377" \
- "\377\377\1\376\376\376\203\377\377\377\1\301\301\303\204::<\1;;=\202" \
- "::<\1:9>\202::<\1\332\332\332\377\377\377\377\356\377\377\377\10\376" \
- "\376\377\377\377\375\377\377\377\377\377\375\377\377\377\377\376\377" \
- "\377\377\375\376\377\377\202\377\377\377\6\370\373\362\243\322b\211\307" \
- "B\213\310=\214\305@\214\306<\202\215\305@\4\214\306<\214\305@\214\306" \
- "<\215\307\77\202\214\306>\6\212\307>\214\306>\215\307\77\214\305@\244" \
- "\317c\367\375\361\377\377\377\377\230\377\377\377\2""99;;;=\210::<\1" \
- "\250\250\250\377\377\377\377\240\377\377\377\3\221\221\223::<;;=\207" \
- "::<\2SSU\376\376\376\377\377\377\377\355\377\377\377\6\376\376\377\377" \
- "\376\377\375\376\377\376\377\377\377\377\375\375\377\376\203\377\377" \
- "\377\27\377\377\375\372\373\366\241\321a\217\304@\212\307<\214\306>\215" \
- "\305>\215\305@\213\310=\212\306@\214\306>\214\305B\215\307\77\215\305" \
- ">\215\306A\212\307>\214\306>\215\307\77\214\306>\242\322b\370\373\362" \
- "\376\376\377\377\375\376\377\377\377\377\227\377\377\377\1yy{\211::<" \
- "\6lll\376\376\376\377\377\377\376\376\376\377\377\377\376\376\376\377" \
- "\377\377\377\224\377\377\377\202\376\376\376\7\377\377\377\376\376\376" \
- "\377\377\377\376\376\376\377\377\377__a;;=\202::<\4<<>;;=::<;;=\202:" \
- ":<\1\204\204\206\203\377\377\377\1\376\376\376\377\377\377\377\352\377" \
- "\377\377\7\377\377\375\375\376\377\376\377\377\376\377\375\377\374\377" \
- "\377\377\375\375\377\376\202\377\377\377\5\372\373\366\240\320b\215\307" \
- "\77\212\306@\215\305>\202\214\305@\20\215\305@\212\306@\214\305D\216" \
- "\306\77\214\306>\215\307\77\214\306>\212\306@\214\306>\215\307\77\215" \
- "\305@\242\320c\370\373\362\377\377\373\377\376\377\377\377\375\377\377" \
- "\377\377\221\377\377\377\3\376\376\376\377\377\377\376\376\376\203\377" \
- "\377\377\1\265\265\267\212::<\1\363\363\363\377\377\377\377\227\377\377" \
- "\377\1\376\376\376\202\377\377\377\1\376\376\376\203\377\377\377\1\345" \
- "\345\345\202::<\202;;=\1""99;\203::<\4;;=::<\301\301\301\376\376\376" \
- "\203\377\377\377\1\376\376\376\377\377\377\377\352\377\377\377\37\376" \
- "\377\377\376\377\375\377\375\376\375\377\376\377\377\375\377\377\377" \
- "\377\376\377\370\373\362\241\321a\215\307\77\215\307=\214\305@\214\306" \
- ">\212\307<\214\306>\214\306<\214\306>\216\306\77\215\305<\212\307>\213" \
- "\307A\215\305>\212\307>\215\307\77\214\306>\242\321a\373\374\364\377" \
- "\377\377\376\377\377\376\376\376\376\377\377\377\377\377\377\222\377" \
- "\377\377\3\376\376\376\377\377\377\376\376\376\202\377\377\377\1\347" \
- "\347\347\212::<\1\302\302\304\205\377\377\377\1\376\376\376\377\377\377" \
- "\377\222\377\377\377\1\376\376\376\202\377\377\377\1\376\376\376\202" \
- "\377\377\377\5\265\265\265::<;;=99;;;=\203::<\1;;=\202::<\1\363\363\363" \
- "\377\377\377\377\356\377\377\377\202\377\377\375\3\377\374\377\375\377" \
- "\376\376\377\377\202\377\377\377\25\370\373\364\243\322b\217\304@\212" \
- "\306@\214\305@\215\305>\212\307>\212\306@\214\305B\214\305@\214\305B" \
- "\214\306>\212\307>\212\310\77\214\306>\217\304@\214\306>\214\305@\242" \
- "\322b\370\373\362\377\377\377\202\377\376\377\1\377\377\375\377\377\377" \
- "\377\230\377\377\377\2\376\376\376TTT\211::<\3\221\221\223\377\377\377" \
- "\376\376\376\202\377\377\377\1\376\376\376\377\377\377\377\231\377\377" \
- "\377\2\204\204\204::<\202;;=\202::<\1;;=\203::<\2``b\376\376\376\377" \
- "\377\377\377\357\377\377\377\1\375\377\376\202\377\377\375\34\377\377" \
- "\377\376\376\376\373\373\363\243\322b\211\307B\212\307<\215\305>\214" \
- "\306>\212\307>\214\305@\217\304>\212\307<\214\306<\214\306>\215\307\77" \
- "\213\307A\214\306>\215\305@\215\307\77\212\307>\244\317c\370\373\362" \
- "\377\377\373\376\377\377\377\376\377\375\376\377\377\377\375\377\376" \
- "\377\377\377\377\377\225\377\377\377\1\376\376\376\202\377\377\377\1" \
- "\221\221\221\210::<\2;;=__a\202\377\377\377\1\376\376\376\377\377\377" \
- "\377\227\377\377\377\1\376\376\376\203\377\377\377\1SSU\202::<\1;;=\204" \
- "::<\202;;=\1\234\234\234\204\377\377\377\1\376\376\376\377\377\377\377" \
- "\352\377\377\377\3\377\376\377\377\377\377\375\377\376\202\377\377\377" \
- "\11\373\373\363\241\321d\214\306>\213\310=\214\306>\214\305@\213\310" \
- "=\212\306@\217\304>\202\215\307=\14\214\306>\215\305>\214\306>\215\305" \
- ">\217\304@\215\307\77\215\307=\242\320c\367\375\361\376\376\377\377\376" \
- "\377\376\376\376\202\377\377\375\2\374\377\377\377\376\377\377\377\377" \
- "\377\222\377\377\377\1\376\376\376\205\377\377\377\1\301\301\301\210" \
- "::<\4""99;;;=\364\364\366\376\376\376\377\377\377\377\233\377\377\377" \
- "\1\346\346\346\207::<\4;;=99;::<\316\316\316\203\377\377\377\1\376\376" \
- "\376\377\377\377\377\353\377\377\377\1\377\377\375\202\377\377\377\32" \
- "\377\376\377\370\373\364\243\322b\214\306>\213\310\77\214\305@\215\305" \
- ">\215\305@\214\306>\214\305B\212\307<\215\307=\214\305B\214\306>\215" \
- "\306A\212\306@\212\307>\214\306>\212\307<\244\317c\370\373\364\377\377" \
- "\377\377\375\376\377\377\375\376\377\377\377\377\377\202\377\376\377" \
- "\377\377\377\377\224\377\377\377\1\376\376\376\204\377\377\377\1\363" \
- "\363\363\210::<\3;;=::<\302\302\304\377\377\377\377\231\377\377\377\1" \
- "\376\376\376\202\377\377\377\1\266\266\270\203::<\203;;=\203::<\1:::" \
- "\377\377\377\377\351\377\377\377\10\376\376\377\377\377\375\377\377\377" \
- "\377\377\375\377\377\377\377\376\377\377\377\375\376\377\377\202\377" \
- "\377\377\6\370\373\362\243\322b\211\307B\213\310=\214\305@\214\306<\202" \
- "\215\305@\4\214\306<\214\305@\214\306<\215\307\77\202\214\306>\6\212" \
- "\307>\214\306>\215\307\77\214\305@\244\317c\367\375\361\377\377\377\377" \
- "\242\377\377\377\3__a::<;;=\207::<\1\221\221\221\377\377\377\377\234" \
- "\377\377\377\1\204\204\206\204::<\202;;=\203::<\1lll\203\377\377\377" \
- "\1\375\375\375\377\377\377\377\344\377\377\377\6\376\376\377\377\376" \
- "\377\375\376\377\376\377\377\377\377\375\375\377\376\203\377\377\377" \
- "\27\377\377\375\372\373\366\241\321a\217\304@\212\307<\214\306>\215\305" \
- ">\215\305@\213\310=\212\306@\214\306>\214\305B\215\307\77\215\305>\215" \
- "\306A\212\307>\214\306>\215\307\77\214\306>\242\322b\370\373\362\376" \
- "\376\377\377\375\376\377\377\377\377\241\377\377\377\2\221\221\223;;" \
- "=\202::<\202;;=\203::<\2;;=^^^\204\377\377\377\1\376\376\376\377\377" \
- "\377\377\224\377\377\377\1\376\376\376\202\377\377\377\1``b\202::<\1" \
- ";;=\206::<\1\234\234\234\205\377\377\377\1\376\376\376\377\377\377\377" \
- "\342\377\377\377\7\377\377\375\375\376\377\376\377\377\376\377\375\377" \
- "\374\377\377\377\375\375\377\376\202\377\377\377\5\372\373\366\240\320" \
- "b\215\307\77\212\306@\215\305>\202\214\305@\20\215\305@\212\306@\214" \
- "\305D\216\306\77\214\306>\215\307\77\214\306>\212\306@\214\306>\215\307" \
- "\77\215\305@\242\320c\370\373\362\377\377\373\377\376\377\377\377\375" \
- "\377\377\377\377\241\377\377\377\6\301\301\303::<;;=::<99;;;=\203::<" \
- "\6;;=:::\377\377\377\376\376\376\377\377\377\376\376\376\377\377\377" \
- "\377\224\377\377\377\1\376\376\376\202\377\377\377\2\363\363\363;;=\211" \
- "::<\1\316\316\316\203\377\377\377\1\376\376\376\202\377\377\377\1\376" \
- "\376\376\377\377\377\377\342\377\377\377\37\376\377\377\376\377\375\377" \
- "\375\376\375\377\376\377\377\375\377\377\377\377\376\377\370\373\362" \
- "\241\321a\215\307\77\215\307=\214\305@\214\306>\212\307<\214\306>\214" \
- "\306<\214\306>\216\306\77\215\305<\212\307>\213\307A\215\305>\212\307" \
- ">\215\307\77\214\306>\242\321a\373\374\364\377\377\377\376\377\377\376" \
- "\376\376\376\377\377\377\377\377\377\241\377\377\377\1\363\363\365\202" \
- "::<\1;;=\202::<\2""99;;;=\202::<\2;;=\316\316\316\377\377\377\377\231" \
- "\377\377\377\10\376\376\376\316\316\316::<;;=::<;;=99;;;=\204::<\202" \
- "\377\377\377\3\376\376\376\377\377\377\376\376\376\377\377\377\377\344" \
- "\377\377\377\202\377\377\375\3\377\374\377\375\377\376\376\377\377\202" \
- "\377\377\377\25\370\373\364\243\322b\217\304@\212\306@\214\305@\215\305" \
- ">\212\307>\212\306@\214\305B\214\305@\214\305B\214\306>\212\307>\212" \
- "\310\77\214\306>\217\304@\214\306>\214\305@\242\322b\370\373\362\377" \
- "\377\377\202\377\376\377\1\377\377\375\377\377\377\377\243\377\377\377" \
- "\1``b\203::<\203;;=\6::<<<>::<\234\234\234\377\377\377\376\376\376\377" \
- "\377\377\377\230\377\377\377\1\234\234\236\204::<\12;;=99;::<;;=::<k" \
- "km\377\377\377\376\376\376\377\377\377\376\376\376\377\377\377\377\346" \
- "\377\377\377\1\375\377\376\202\377\377\375\34\377\377\377\376\376\376" \
- "\373\373\363\243\322b\211\307B\212\307<\215\305>\214\306>\212\307>\214" \
- "\305@\217\304>\212\307<\214\306<\214\306>\215\307\77\213\307A\214\306" \
- ">\215\305@\215\307\77\212\307>\244\317c\370\373\362\377\377\373\376\377" \
- "\377\377\376\377\375\376\377\377\377\375\377\376\377\377\377\377\377" \
- "\242\377\377\377\2\222\222\222::<\202;;=\7""99;::<;;=::<99;;;=lln\202" \
- "\377\377\377\1\376\376\376\377\377\377\377\225\377\377\377\3\376\376" \
- "\376\377\377\377jjl\204;;=\2""99;;;=\202::<\2;;=\221\221\223\202\377" \
- "\377\377\1\376\376\376\202\377\377\377\1\376\376\376\377\377\377\377" \
- "\343\377\377\377\3\377\376\377\377\377\377\375\377\376\202\377\377\377" \
- "\11\373\373\363\241\321d\214\306>\213\310=\214\306>\214\305@\213\310" \
- "=\212\306@\217\304>\202\215\307=\14\214\306>\215\305>\214\306>\215\305" \
- ">\217\304@\215\307\77\215\307=\242\320c\367\375\361\376\376\377\377\376" \
- "\377\376\376\376\202\377\377\375\2\374\377\377\377\376\377\377\377\377" \
- "\377\242\377\377\377\2\264\264\264;;=\206::<\6;;=::<FFH\376\376\376\377" \
- "\377\377\376\376\376\377\377\377\377\227\377\377\377\1GGI\204::<\6;;" \
- "=::<;;=::<;;=\302\302\304\206\377\377\377\1\376\376\376\377\377\377\377" \
- "\342\377\377\377\1\377\377\375\202\377\377\377\32\377\376\377\370\373" \
- "\364\243\322b\214\306>\213\310\77\214\305@\215\305>\215\305@\214\306" \
- ">\214\305B\212\307<\215\307=\214\305B\214\306>\215\306A\212\306@\212" \
- "\307>\214\306>\212\307<\244\317c\370\373\364\377\377\377\377\375\376" \
- "\377\377\375\376\377\377\377\377\377\202\377\376\377\377\377\377\377" \
- "\243\377\377\377\2\346\346\346;;=\211::<\1\346\346\350\377\377\377\377" \
- "\230\377\377\377\3\346\346\350::<;;=\202::<\1;;=\205::<\1\346\346\346" \
- "\302\377\377\377\5\376\376\376\377\377\377\376\376\376\377\377\377\376" \
- "\376\376\377\377\377\377\233\377\377\377\10\376\376\377\377\377\375\377" \
- "\377\377\377\377\375\377\377\377\377\376\377\377\377\375\376\377\377" \
- "\202\377\377\377\6\370\373\362\243\322b\211\307B\213\310=\214\305@\214" \
- "\306<\202\215\305@\4\214\306<\214\305@\214\306<\215\307\77\202\214\306" \
- ">\6\212\307>\214\306>\215\307\77\214\305@\244\317c\367\375\361\345\377" \
- "\377\377\1\376\376\376\305\377\377\377\3FFF::<;;=\202::<\3;;=::<;;=\202" \
- "::<\1\301\301\303\377\377\377\377\230\377\377\377\4\301\301\30399;::" \
- "<;;=\204::<\3;;=::<GGI\215\377\377\377\1\376\376\376\266\377\377\377" \
- "\1\376\376\376\203\377\377\377\1\376\376\376\377\377\377\377\231\377" \
- "\377\377\6\376\376\377\377\376\377\375\376\377\376\377\377\377\377\375" \
- "\375\377\376\203\377\377\377\27\377\377\375\372\373\366\241\321a\217" \
- "\304@\212\307<\214\306>\215\305>\215\305@\213\310=\212\306@\214\306>" \
- "\214\305B\215\307\77\215\305>\215\306A\212\307>\214\306>\215\307\77\214" \
- "\306>\242\322b\370\373\362\376\376\377\377\375\376\341\377\377\377\5" \
- "\376\376\376\377\377\377\376\376\376\377\377\377\376\376\376\265\377" \
- "\377\377\3\376\376\376\377\377\377\376\376\376\212\377\377\377\3\376" \
- "\376\376\377\377\377lll\206::<\202;;=\2::<\234\234\236\377\377\377\377" \
- "\224\377\377\377\1\376\376\376\203\377\377\377\2\233\233\235;;=\203:" \
- ":<\2""99;;;=\202::<\2;;=xxz\213\377\377\377\1\376\376\376\265\377\377" \
- "\377\1\376\376\376\377\377\377\377\240\377\377\377\7\377\377\375\375" \
- "\376\377\376\377\377\376\377\375\377\374\377\377\377\375\375\377\376" \
- "\202\377\377\377\5\372\373\366\240\320b\215\307\77\212\306@\215\305>" \
- "\202\214\305@\20\215\305@\212\306@\214\305D\216\306\77\214\306>\215\307" \
- "\77\214\306>\212\306@\214\306>\215\307\77\215\305@\242\320c\370\373\362" \
- "\377\377\373\377\376\377\377\377\375\377\377\377\377\233\377\377\377" \
- "\3\376\376\376\377\377\377\376\376\376\213\377\377\377\6\376\376\376" \
- "\377\377\377\233\233\233;;=::<;;=\206::<\1lln\377\377\377\377\226\377" \
- "\377\377\3\376\376\376\377\377\377kkm\210::<\2;;=\234\234\236\214\377" \
- "\377\377\1\315\315\315\202\234\234\234\262\234\234\236\2\234\234\234" \
- "\265\265\265\377\377\377\377\240\377\377\377\37\376\377\377\376\377\375" \
- "\377\375\376\375\377\376\377\377\375\377\377\377\377\376\377\370\373" \
- "\362\241\321a\215\307\77\215\307=\214\305@\214\306>\212\307<\214\306" \
- ">\214\306<\214\306>\216\306\77\215\305<\212\307>\213\307A\215\305>\212" \
- "\307>\215\307\77\214\306>\242\321a\373\374\364\377\377\377\376\377\377" \
- "\376\376\376\376\377\377\344\377\377\377\4\376\376\376\347\347\347\234" \
- "\234\234\235\235\235\260\234\234\236\204\234\234\234\216\377\377\377" \
- "\1\301\301\301\202::<\1;;=\203::<\202;;=\2::<EEG\377\377\377\377\230" \
- "\377\377\377\1FFH\204::<\202;;=\4::<;;=99;\302\302\304\212\377\377\377" \
- "\5\376\376\376\377\377\377\234\234\234::<;;=\263::<\1jjj\205\377\377" \
- "\377\1\376\376\376\377\377\377\377\231\377\377\377\202\377\377\375\3" \
- "\377\374\377\375\377\376\376\377\377\202\377\377\377\25\370\373\364\243" \
- "\322b\217\304@\212\306@\214\305@\215\305>\212\307>\212\306@\214\305B" \
- "\214\305@\214\305B\214\306>\212\307>\212\310\77\214\306>\217\304@\214" \
- "\306>\214\305@\242\322b\370\373\362\377\377\377\202\377\376\377\1\377" \
- "\377\375\346\377\377\377\2\316\316\316:::\263::<\4;;=:::\377\377\377" \
- "\376\376\376\214\377\377\377\3\346\346\346::<;;=\205::<\4;;=::<;;=\346" \
- "\346\346\377\377\377\377\226\377\377\377\2\362\362\362;;=\204::<\3""9" \
- "9;::<;;=\202::<\1\346\346\350\214\377\377\377\2\234\234\234;;=\264::" \
- "<\1kkm\377\377\377\377\240\377\377\377\1\375\377\376\202\377\377\375" \
- "\34\377\377\377\376\376\376\373\373\363\243\322b\211\307B\212\307<\215" \
- "\305>\214\306>\212\307>\214\305@\217\304>\212\307<\214\306<\214\306>" \
- "\215\307\77\213\307A\214\306>\215\305@\215\307\77\212\307>\244\317c\370" \
- "\373\362\377\377\373\376\377\377\377\376\377\375\376\377\377\377\375" \
- "\377\376\377\345\377\377\377\2\316\316\31699;\265::<\216\377\377\377" \
- "\2\376\376\376FFH\203::<\1;;=\203::<\3;;=99;\316\316\316\377\377\377" \
- "\377\226\377\377\377\1\317\317\317\206::<\202;;=\4""99;FFH\377\377\377" \
- "\376\376\376\213\377\377\377\1\234\234\236\202::<\1;;=\261::<\2;;=kk" \
- "m\205\377\377\377\1\376\376\376\377\377\377\377\231\377\377\377\3\377" \
- "\376\377\377\377\377\375\377\376\202\377\377\377\11\373\373\363\241\321" \
- "d\214\306>\213\310=\214\306>\214\305@\213\310=\212\306@\217\304>\202" \
- "\215\307=\14\214\306>\215\305>\214\306>\215\305>\217\304@\215\307\77" \
- "\215\307=\242\320c\367\375\361\376\376\377\377\376\377\376\376\376\202" \
- "\377\377\375\2\374\377\377\377\376\377\345\377\377\377\1\316\316\316" \
- "\264::<\202;;=\215\377\377\377\4\376\376\376\377\377\377lln99;\210::" \
- "<\2\234\234\234\376\376\376\377\377\377\377\225\377\377\377\5\234\234" \
- "\234::<;;=99;::<\202;;=\5::<;;=::<kkm\376\376\377\214\377\377\377\1\234" \
- "\234\236\203::<\1:9>\261::<\1kkm\377\377\377\377\237\377\377\377\1\377" \
- "\377\375\202\377\377\377\32\377\376\377\370\373\364\243\322b\214\306" \
- ">\213\310\77\214\305@\215\305>\215\305@\214\306>\214\305B\212\307<\215" \
- "\307=\214\305B\214\306>\215\306A\212\306@\212\307>\214\306>\212\307<" \
- "\244\317c\370\373\364\377\377\377\377\375\376\377\377\375\376\377\377" \
- "\377\377\377\202\377\376\377\346\377\377\377\1\316\316\316\266::<\217" \
- "\377\377\377\2\234\234\236;;=\206::<\3""99;;;=www\377\377\377\377\226" \
- "\377\377\377\3\204\204\206::<;;=\207::<\3\222\222\222\377\377\377\376" \
- "\376\376\213\377\377\377\1\234\234\236\265::<\1kkm\377\377\377\377\210" \
- "\377\377\377\7\376\376\376\377\377\377\377\377\375\376\377\375\376\377" \
- "\377\377\377\377\377\376\377\203\377\377\377\1\376\376\376\203\377\377" \
- "\377\1\376\377\377\203\377\377\377\16\377\377\375\377\377\377\377\376" \
- "\377\377\377\377\377\377\373\376\377\377\377\377\377\377\377\373\371" \
- "\372\364\242\322d\214\306<\215\307\77\214\305@\214\306<\202\215\305@" \
- "\4\214\306<\214\305@\214\306<\215\307\77\202\214\306>\6\212\307>\214" \
- "\306>\215\307\77\214\305@\244\317c\367\375\361\356\377\377\377\1\316" \
- "\316\316\266::<\214\377\377\377\1\376\376\376\202\377\377\377\1\266\266" \
- "\266\202::<\1;;=\203::<\1;;=\202::<\3__a\377\377\377\376\376\376\377" \
- "\377\377\377\224\377\377\377\2kkm;;=\202::<\202;;=\202::<\3;;=::<\265" \
- "\265\265\215\377\377\377\1\234\234\236\265::<\1kkm\377\377\377\377\214" \
- "\377\377\377\2\376\377\377\376\377\375\202\377\377\375\203\377\377\377" \
- "\204\377\377\375\205\377\377\377\1\376\376\377\202\377\377\377\6\377" \
- "\377\375\377\377\377\371\372\362\242\320c\214\305@\215\305@\202\214\306" \
- ">\20\215\305@\213\310=\212\306@\214\306>\214\305B\215\307\77\215\305" \
- ">\215\306A\212\307>\214\306>\215\307\77\214\306>\242\322b\370\373\362" \
- "\376\376\377\377\375\376\355\377\377\377\1\316\316\316\266::<\215\377" \
- "\377\377\4\376\376\376\377\377\377\315\315\315;;=\203::<\1;;=\203::<" \
- "\2;;=99;\377\377\377\377\226\377\377\377\203::<\1;;=\202::<\1;;=\203" \
- "::<\2\317\317\317\376\376\376\214\377\377\377\1\234\234\236\265::<\1" \
- "kkm\377\377\377\377\211\377\377\377\3\376\376\376\377\376\377\377\377" \
- "\377\203\377\376\377\204\377\377\377\1\376\376\376\202\377\377\377\1" \
- "\377\376\377\203\377\377\377\1\376\376\376\203\377\377\377\31\376\376" \
- "\377\377\376\377\371\372\365\241\322e\212\307<\216\306\77\212\311<\216" \
- "\303\77\212\307>\215\305@\212\306@\214\305D\216\306\77\214\306>\215\307" \
- "\77\214\306>\212\306@\214\306>\215\307\77\215\305@\242\320c\370\373\362" \
- "\377\377\373\377\376\377\377\377\375\355\377\377\377\1\316\316\316\266" \
- "::<\220\377\377\377\202::<\4;;=::<;;=::<\202;;=\3""99;;;=\346\346\346" \
- "\377\377\377\377\224\377\377\377\2\362\362\362;;=\202::<\7""99;::<;;" \
- "=88:;;=::<;;=\216\377\377\377\1\234\234\236\265::<\1kkm\377\377\377\377" \
- "\212\377\377\377\202\376\377\377\202\377\377\377\1\377\376\377\206\377" \
- "\377\377\1\376\376\376\202\377\377\377\1\376\376\376\203\377\377\377" \
- "\1\376\376\376\202\377\377\377\6\370\373\364\242\322b\214\306>\214\305" \
- "@\215\305>\214\305@\202\215\306A\20\214\306<\214\306>\216\306\77\215" \
- "\305<\212\307>\213\307A\215\305>\212\307>\215\307\77\214\306>\242\321" \
- "a\373\374\364\377\377\377\376\377\377\376\376\376\376\377\377\355\377" \
- "\377\377\1\316\316\316\266::<\216\377\377\377\6\376\376\376\377\377\377" \
- "SSU;;=99;;;=\206::<\1\316\316\316\377\377\377\377\224\377\377\377\2\316" \
- "\316\31699;\205::<\1;;=\202::<\1FFH\216\377\377\377\1\234\234\236\265" \
- "::<\1kkm\377\377\377\377\207\377\377\377\202\377\376\377\2\377\377\377" \
- "\377\377\375\203\377\377\377\1\376\377\375\202\377\377\375\203\377\377" \
- "\377\202\377\377\375\2\377\377\377\377\377\375\205\377\377\377\26\377" \
- "\377\375\371\372\362\243\322b\211\305A\215\305>\215\307\77\214\305@\214" \
- "\306>\215\305@\212\307>\214\305@\214\305B\214\306>\212\307>\212\310\77" \
- "\214\306>\217\304@\214\306>\214\305@\242\322b\370\373\362\377\377\377" \
- "\202\377\376\377\1\377\377\375\356\377\377\377\1\316\316\316\266::<\220" \
- "\377\377\377\3kkm::<;;=\202::<\6;;=::<;;=::<;;=\233\233\233\377\377\377" \
- "\377\223\377\377\377\2\376\376\376\265\265\265\205::<\1;;=\202::<\2""9" \
- "9;lln\216\377\377\377\1\234\234\236\265::<\1kkm\377\377\377\377\207\377" \
- "\377\377\3\376\377\375\375\377\376\377\377\377\202\377\376\377\3\377" \
- "\376\374\377\377\377\376\377\377\202\377\377\377\1\377\377\375\204\377" \
- "\377\377\2\375\377\376\377\377\375\202\377\377\377\1\377\377\375\202" \
- "\377\377\377\32\376\376\374\365\367\354\223\312K\215\305>\214\306<\211" \
- "\305\77\214\306>\212\307>\215\307\77\214\306>\214\306<\214\306>\215\307" \
- "\77\213\307A\214\306>\215\305@\215\307\77\212\307>\244\317c\370\373\362" \
- "\377\377\373\376\377\377\377\376\377\375\376\377\377\377\375\377\376" \
- "\377\355\377\377\377\1\316\316\316\266::<\217\377\377\377\5\376\376\376" \
- "\234\234\236;;=::<;;=\202::<\2""99;::<\202;;=\1\221\221\221\377\377\377" \
- "\377\224\377\377\377\1\235\235\235\211::<\2\221\221\223\376\376\376\215" \
- "\377\377\377\1\234\234\236\265::<\1kkm\377\377\377\377\207\377\377\377" \
- "\1\377\376\377\202\377\377\375\202\377\377\377\202\377\377\375\1\377" \
- "\377\377\202\376\377\377\1\377\377\377\202\377\377\375\5\376\376\377" \
- "\377\377\377\377\377\373\377\377\377\376\376\376\203\377\377\377\27\376" \
- "\376\376\377\377\375\376\377\372\347\365\333\225\311K\217\304>\214\305" \
- "B\215\307\77\212\306B\214\306>\215\306A\214\306>\215\305>\214\306>\215" \
- "\305>\217\304@\215\307\77\215\307=\242\320c\367\375\361\376\376\377\377" \
- "\376\377\376\376\376\202\377\377\375\2\374\377\377\377\376\377\355\377" \
- "\377\377\1\316\316\316\266::<\214\377\377\377\1\376\376\376\203\377\377" \
- "\377\3\250\250\252::<;;=\203::<\202;;=\202::<\1kkk\377\377\377\377\224" \
- "\377\377\377\4www;;=::<;;=\202::<\202;;=\202::<\1\234\234\236\216\377" \
- "\377\377\1\234\234\236\265::<\1kkm\377\377\377\377\207\377\377\377\15" \
- "\367\374\365\343\361\316\316\346\254\305\342\240\304\343\240\303\342" \
- "\236\305\342\237\312\346\251\345\356\317\365\373\357\376\377\377\376" \
- "\376\377\377\377\375\214\377\377\377\24\350\365\333\223\312K\216\306" \
- "\77\212\307>\215\304B\214\306>\215\307=\214\306>\215\306A\212\306@\212" \
- "\307>\214\306>\212\307<\244\317c\370\373\364\377\377\377\377\375\376" \
- "\377\377\375\376\377\377\377\377\377\202\377\376\377\356\377\377\377" \
- "\1\316\316\316\266::<\217\377\377\377\2\376\376\376\316\316\320\207:" \
- ":<\3;;=::<SSS\377\377\377\377\223\377\377\377\2\376\376\376kkm\202::" \
- "<\1;;=\206::<\1\316\316\316\377\377\377\377\276\377\377\377\4\377\377" \
- "\375\376\377\377\377\377\377\377\376\377\202\377\377\377\10\377\377\375" \
- "\377\376\377\376\377\375\376\376\376\377\377\377\350\365\333\277\337" \
- "\224\232\315V\210\214\306>\10\212\306@\212\307>\232\315W\277\337\224" \
- "\352\364\333\377\377\377\377\376\377\377\377\375\202\376\377\377\202" \
- "\377\377\377\2\377\376\377\377\377\375\202\377\377\377\17\377\377\375" \
- "\377\376\377\347\365\333\226\312L\215\306A\213\310=\212\306@\217\304" \
- ">\216\307<\214\305@\215\305<\214\305@\215\307=\244\317c\366\373\364\377" \
- "\377\377\377\276\377\377\377\6\346\346\346;;=99;;;=::<;;=\205::<\377" \
- "\377\377\377\224\377\377\377\1::<\202;;=\2::<;;=\203::<\4;;=::<\316\316" \
- "\316\376\376\376\377\377\377\377\274\377\377\377\14\377\375\377\377\377" \
- "\377\376\376\374\377\377\375\377\376\377\377\377\375\376\377\377\377" \
- "\377\377\376\377\377\377\376\377\324\353\265\231\316Z\202\214\306<\1" \
- "\215\305>\210\214\306>\202\215\305>\16\214\306>\213\307A\211\306;\233" \
- "\314V\324\353\265\377\377\377\377\376\377\377\377\375\375\377\376\376" \
- "\377\377\377\377\377\377\376\377\376\377\377\377\377\373\202\377\377" \
- "\377\6\376\376\377\350\365\333\222\312K\215\306A\217\304>\212\306@\202" \
- "\214\305@\6\213\310\77\212\307>\242\322d\370\373\364\377\377\377\377" \
- "\377\375\377\377\377\377\276\377\377\377\203::<\3;;=::<99;\202;;=\202" \
- "::<\1\346\346\350\377\377\377\377\222\377\377\377\2\376\376\376;;=\202" \
- "::<\202;;=\205::<\377\377\377\377\275\377\377\377\4\377\377\375\377\377" \
- "\377\377\377\373\377\376\374\202\376\377\377\12\377\377\375\377\377\377" \
- "\376\377\375\342\360\317\232\315V\214\306<\220\306=\215\306A\215\306" \
- "C\215\306A\210\214\306>\202\215\307\77\7\215\306A\214\306>\214\305@\213" \
- "\307A\214\305@\230\315W\341\361\315\203\377\377\377\2\376\376\374\374" \
- "\377\375\202\377\377\377\2\377\377\375\377\376\377\202\377\377\377\13" \
- "\352\364\331\221\311J\215\306A\213\310=\216\306\77\214\305@\214\306<" \
- "\242\322e\370\373\364\376\376\377\377\377\375\377\377\377\377\277\377" \
- "\377\377\1``b\202::<\2;;=99;\202;;=\4::<;;=::<\316\316\320\377\377\377" \
- "\377\222\377\377\377\4\316\316\316;;=::<99;\202::<\2;;=::<\202;;=\3:" \
- ":<\376\376\376\377\377\377\202\376\376\376\377\377\377\377\271\377\377" \
- "\377\17\376\377\377\376\376\374\377\376\374\376\377\377\377\377\377\377" \
- "\377\375\376\377\377\370\373\364\277\336\222\215\305<\214\305@\215\307" \
- "\77\212\307>\215\307\77\213\307A\211\214\306>\16\216\306A\214\305B\213" \
- "\307A\214\306>\215\305<\213\305=\215\306A\214\306<\215\305>\300\337\223" \
- "\370\373\362\376\376\377\377\377\375\376\377\377\204\377\377\377\16\377" \
- "\376\377\376\376\377\376\377\377\352\364\331\222\312K\215\306A\214\306" \
- "<\214\305@\243\321d\371\373\360\376\376\377\376\377\377\377\377\377\376" \
- "\377\377\377\377\377\377\273\377\377\377\4\376\376\376\377\377\377\376" \
- "\376\376lln\203::<\1;;=\20299;\1;;=\202::<\1\266\266\270\377\377\377" \
- "\377\222\377\377\377\5\316\316\316::<;;=::<;;=\205::<\3kkm\377\377\377" \
- "\376\376\376\377\377\377\377\274\377\377\377\14\377\377\375\376\377\377" \
- "\377\377\377\377\377\375\376\376\376\367\374\365\244\317c\214\305@\215" \
- "\307=\211\306=\213\307A\215\306A\202\212\306@\1\213\310<\210\214\306" \
- ">\202\212\307>\3\212\307<\214\306>\216\306\77\202\214\306>\12\215\305" \
- "<\215\307\77\212\306@\242\322b\371\374\365\377\377\375\376\376\374\376" \
- "\377\377\377\376\377\376\377\377\202\377\377\377\13\376\377\375\376\376" \
- "\377\377\377\377\350\365\333\225\311K\214\305B\242\320c\371\374\361\377" \
- "\377\377\376\377\377\377\376\377\377\377\377\377\300\377\377\377\7\221" \
- "\221\223::<99;::<;;=::<;;=\203::<\1\234\234\236\377\377\377\377\222\377" \
- "\377\377\2\250\250\25099;\206::<\3;;=::<jjl\377\377\377\377\275\377\377" \
- "\377\202\377\376\377\16\376\377\377\377\377\375\376\376\376\352\364\333" \
- "\223\312K\220\306=\215\306A\214\305B\213\310=\215\306C\215\305>\216\306" \
- "\77\215\305>\215\305@\210\214\306>\37\215\305@\215\307\77\212\306@\215" \
- "\307\77\214\304\77\215\306A\212\307;\212\306@\214\306>\216\307B\214\306" \
- ">\222\312K\354\364\334\377\376\377\377\377\377\377\377\373\376\377\377" \
- "\377\375\376\376\377\375\377\377\377\377\376\377\377\377\377\376\376" \
- "\377\347\365\333\260\327z\371\374\363\375\377\376\376\377\377\377\376" \
- "\377\377\377\377\377\377\375\377\377\377\377\276\377\377\377\3\376\376" \
- "\376\234\234\23699;\203;;=\205::<\1\221\221\223\377\377\377\377\222\377" \
- "\377\377\2\234\234\234;;=\204::<\202;;=\3::<;;=\235\235\237\377\377\377" \
- "\377\276\377\377\377\202\377\377\375\15\376\377\377\367\374\365\223\312" \
- "K\214\306>\213\310\77\215\305@\214\306<\215\307=\214\305@\213\307A\211" \
- "\305\77\215\307\77\215\305>\210\214\306>\20\215\306A\213\305=\215\307" \
- "=\214\305@\215\306A\214\306>\213\304A\220\305\77\216\306\77\212\306@" \
- "\215\305@\213\307A\221\311L\367\375\363\376\377\377\377\377\377\202\377" \
- "\377\373\1\377\375\376\202\377\377\377\4\377\376\377\376\377\377\377" \
- "\376\377\376\377\377\203\377\377\377\3\377\376\377\376\376\377\374\377" \
- "\375\377\377\377\377\277\377\377\377\2\265\265\267<<>\20299;\7::<;;=" \
- "::<99;;;=::<lln\377\377\377\377\222\377\377\377\3\221\221\221::<;;=\205" \
- "::<\3;;=::<\234\234\236\377\377\377\377\276\377\377\377\17\376\377\377" \
- "\377\377\377\366\373\364\244\317c\220\306=\213\310\77\212\306@\211\307" \
- "@\216\306\77\215\305@\215\307\77\213\310\77\215\307\77\215\305>\214\305" \
- "@\210\214\306>\22\216\306A\215\307\77\213\305=\216\306\77\214\306>\212" \
- "\307>\213\310\77\214\305@\215\306C\214\306<\215\307=\215\305>\213\310" \
- "=\242\320d\372\372\362\376\377\375\377\375\377\377\377\375\202\376\377" \
- "\377\5\377\377\377\377\377\375\377\377\377\377\377\375\377\377\377\202" \
- "\377\376\377\5\376\377\375\376\377\377\377\377\377\377\375\376\377\377" \
- "\375\377\377\377\377\274\377\377\377\5\376\376\376\377\377\377\316\316" \
- "\320::<;;=\202::<\1;;=\202::<\3""99;::<kkm\377\377\377\377\222\377\377" \
- "\377\2kkm::<\203;;=\205::<\1\264\264\264\377\377\377\377\275\377\377" \
- "\377\10\377\376\377\376\377\377\377\377\377\300\336\224\212\307>\214" \
- "\306<\214\306>\211\307>\231\214\306>\1\216\306\77\203\214\306>\2\214" \
- "\305@\266\334\207\202\377\377\377\7\377\376\377\377\377\377\377\376\377" \
- "\377\377\375\377\377\377\377\377\375\376\377\377\377\377\377\377\303" \
- "\377\377\377\1\376\376\376\202\377\377\377\1\316\316\316\206::<\6;;=" \
- "::<;;=FFH\377\377\377\376\376\376\205\377\377\377\1\376\376\376\377\377" \
- "\377\377\212\377\377\377\1lln\202::<\3;;=99;;;=\204::<\3\317\317\317" \
- "\377\377\377\376\376\376\377\377\377\377\273\377\377\377\10\377\375\377" \
- "\374\377\375\343\361\320\214\306>\215\306A\214\304=\212\307>\215\305" \
- ">\230\214\306>\20\214\306<\213\304\77\212\307>\212\306B\214\306<\212" \
- "\307>\220\304>\337\363\316\377\376\377\377\377\377\376\377\377\377\377" \
- "\377\376\376\377\377\377\377\376\376\376\376\377\377\377\377\377\377" \
- "\302\377\377\377\1\376\376\376\202\377\377\377\2\376\376\376\377\377" \
- "\377\204::<\1;;=\202::<\3;;=99;;;=\203\377\377\377\1\376\376\376\202" \
- "\377\377\377\1\376\376\376\377\377\377\377\213\377\377\377\2SSU;;=\202" \
- "::<\2;;=99;\204::<\1\315\315\315\203\377\377\377\1\376\376\376\377\377" \
- "\377\377\271\377\377\377\10\376\376\376\377\377\377\233\316W\214\305" \
- "@\212\306@\216\306=\214\305@\215\305@\230\214\306>\17\214\306<\215\306" \
- "C\211\306=\213\307A\214\304\77\212\306@\214\305B\234\313W\376\377\375" \
- "\377\377\377\376\377\375\377\377\375\376\377\377\376\376\377\376\377" \
- "\375\377\377\377\377\302\377\377\377\1\376\376\376\202\377\377\377\4" \
- "\376\376\376\377\377\377\376\376\376;;=\206::<\202;;=\3::<\377\377\377" \
- "\376\376\376\203\377\377\377\3\376\376\376\377\377\377\376\376\376\377" \
- "\377\377\377\212\377\377\377\3::<99;;;=\202::<\10;;=::<;;=99;;;=\363" \
- "\363\363\377\377\377\376\376\376\377\377\377\377\274\377\377\377\7\323" \
- "\354\265\214\305@\215\307\77\215\306A\216\305C\213\304\77\212\307<\230" \
- "\214\306>\20\215\307\77\215\304B\214\305@\214\306>\215\305>\215\307=" \
- "\212\307<\215\307\77\323\351\270\377\376\377\377\377\377\376\376\376" \
- "\376\377\375\376\376\376\376\377\377\377\376\374\377\377\377\377\302" \
- "\377\377\377\202\376\376\376\202\377\377\377\2\376\376\376FFH\210::<" \
- "\2;;=\316\316\316\202\377\377\377\1\376\376\376\377\377\377\377\215\377" \
- "\377\377\1\376\376\376\202;;=\4""99;;;=::<;;=\202::<\2;;=::<\377\377" \
- "\377\377\277\377\377\377\7\231\316X\220\304>\214\305@\215\307\77\214" \
- "\306<\214\311>\214\305@\231\214\306>\11\215\304B\214\306>\215\306A\214" \
- "\306<\215\306A\214\305B\215\307\77\234\315X\375\377\374\204\377\377\377" \
- "\2\376\377\377\377\376\377\377\377\377\377\304\377\377\377\202\376\376" \
- "\376\4\377\377\377jjl::<99;\202;;=\205::<\7\316\316\316\377\377\377\376" \
- "\376\376\377\377\377\376\376\376\377\377\377\376\376\376\377\377\377" \
- "\377\212\377\377\377\6\363\363\363::<99;;;=::<;;=\202::<\1;;=\202::<" \
- "\377\377\377\377\276\377\377\377\2\342\361\320\214\306<\202\215\305>" \
- "\4\212\307>\215\307=\211\306=\215\305>\230\214\306>\2\213\310=\214\306" \
- "<\202\214\305@\7\215\306A\214\306>\215\307=\214\304\77\211\310<\343\362" \
- "\321\377\377\375\202\377\376\377\2\377\377\375\376\376\376\377\377\377" \
- "\377\310\377\377\377\4kkm::<;;=::<\202;;=\202::<\3;;=::<\316\316\316" \
- "\202\377\377\377\1\376\376\376\377\377\377\377\215\377\377\377\3\316" \
- "\316\316::<;;=\202::<\1;;=\204::<\1__a\202\377\377\377\3\376\376\376" \
- "\377\377\377\376\376\376\377\377\377\377\271\377\377\377\4\270\333\207" \
- "\214\306>\214\305@\214\306>\203\214\305@\1\215\305>\230\214\306>\17\215" \
- "\306A\213\310=\212\307<\214\306>\214\306<\215\306A\214\306>\214\305@" \
- "\213\306E\267\332\206\377\377\375\376\377\377\377\377\375\377\377\377" \
- "\377\377\375\377\377\377\377\303\377\377\377\1\376\376\376\204\377\377" \
- "\377\6lln;;=::<99;::<;;=\204::<\1\250\250\250\204\377\377\377\1\376\376" \
- "\376\377\377\377\377\213\377\377\377\1\316\316\316\203::<\1;;=\205::" \
- "<\1lln\203\377\377\377\1\376\376\376\377\377\377\377\272\377\377\377" \
- "\10\232\315V\215\305@\212\306@\215\305>\214\306<\215\304D\215\305<\212" \
- "\306@\230\214\306>\3\217\304@\214\306<\215\306A\202\215\305@\7\214\306" \
- ">\214\305@\212\307>\215\305<\233\316W\376\376\377\376\377\375\203\377" \
- "\377\377\1\376\377\377\377\377\377\377\305\377\377\377\3\376\376\376" \
- "\377\377\377\234\234\236\203::<\2;;=99;\204::<\1\234\234\234\202\377" \
- "\377\377\1\376\376\376\377\377\377\377\215\377\377\377\5\316\316\320" \
- "::<;;=::<;;=\202::<\1;;=\202::<\1kkm\377\377\377\377\266\377\377\377" \
- "\10\375\377\374\376\377\377\376\376\376\377\377\375\377\377\377\376\377" \
- "\377\377\377\375\360\371\350\250\214\306>\4\214\305@\212\307>\360\371" \
- "\346\376\377\375\202\377\377\377\1\377\377\375\377\377\377\377\304\377" \
- "\377\377\1\376\376\376\203\377\377\377\1\234\234\234\211::<\1\234\234" \
- "\234\205\377\377\377\1\376\376\376\377\377\377\377\212\377\377\377\4" \
- "\316\316\320llnkkmlln\203kkm\1jjl\202kkm\1\221\221\223\377\377\377\377" \
- "\270\377\377\377\1\377\376\377\202\377\377\377\3\375\376\377\377\377" \
- "\375\341\361\315\251\214\306>\2\215\307\77\342\360\314\377\377\377\377" \
- "\310\377\377\377\202\376\376\376\202\377\377\377\2\266\266\266kkk\210" \
- "kkm\1\265\265\265\206\377\377\377\1\376\376\376\377\377\377\377\211\377" \
- "\377\377\1\376\376\376\203\377\377\377\3\376\376\376\377\377\377\376" \
- "\376\376\202\377\377\377\1\376\376\376\202\377\377\377\1\376\376\376" \
- "\377\377\377\377\264\377\377\377\1\377\376\377\205\377\377\377\2\375" \
- "\377\374\310\340\246\252\214\306>\1\310\340\246\377\377\377\377\307\377" \
- "\377\377\1\376\376\376\202\377\377\377\3\375\375\375\377\377\377\376" \
- "\376\376\211\377\377\377\7\376\376\376\377\377\377\376\376\376\377\377" \
- "\377\376\376\376\377\377\377\376\376\376\377\377\377\377\213\377\377" \
- "\377\1\376\376\376\204\377\377\377\1\376\376\376\206\377\377\377\1\376" \
- "\376\376\377\377\377\377\263\377\377\377\1\377\376\377\204\377\377\377" \
- "\3\376\376\377\376\377\375\304\342\234\251\214\306>\7\215\305@\305\343" \
- "\235\376\376\377\377\377\377\376\376\377\377\376\377\377\377\375\377" \
- "\377\377\377\306\377\377\377\1\376\376\376\217\377\377\377\3\376\376" \
- "\376\377\377\377\376\376\376\377\377\377\377\214\377\377\377\5\376\376" \
- "\376\377\377\377\376\376\376\377\377\377\376\376\376\203\377\377\377" \
- "\1\376\376\376\377\377\377\377\267\377\377\377\1\377\377\375\202\377" \
- "\377\377\3\377\376\377\376\377\375\305\342\237\251\214\306>\3\215\305" \
- "@\303\344\235\376\376\376\202\377\377\377\1\377\376\377\377\377\377\377" \
- "\305\377\377\377\1\376\376\376\203\377\377\377\1\376\376\376\214\377" \
- "\377\377\1\376\376\376\377\377\377\377\216\377\377\377\1\376\376\376" \
- "\203\377\377\377\1\376\376\376\206\377\377\377\1\376\376\376\377\377" \
- "\377\377\266\377\377\377\5\376\377\377\376\376\377\377\376\377\377\377" \
- "\377\305\342\242\251\214\306>\4\215\306A\302\341\236\377\377\375\376" \
- "\376\376\377\377\377\377\305\377\377\377\1\376\376\376\203\377\377\377" \
- "\1\376\376\376\214\377\377\377\1\376\376\376\377\377\377\377\231\377" \
- "\377\377\3\376\376\376\377\377\377\376\376\376\377\377\377\377\264\377" \
- "\377\377\2\376\376\376\377\376\377\202\376\377\377\202\377\377\377\1" \
- "\305\342\240\251\214\306>\7\214\305@\306\343\240\377\376\374\377\377" \
- "\377\376\377\377\377\377\377\376\376\376\377\377\377\377\325\377\377" \
- "\377\1\376\376\376\377\377\377\377\222\377\377\377\1\376\376\376\205" \
- "\377\377\377\1\376\376\376\377\377\377\377\265\377\377\377\4\377\377" \
- "\375\377\376\377\375\377\376\376\377\375\202\377\377\377\1\305\343\235" \
- "\251\214\306>\4\213\310\77\306\341\234\377\376\377\377\377\377\202\376" \
- "\377\375\377\377\377\377\311\377\377\377\1\377\377\375\215\377\377\377" \
- "\1\376\376\376\377\377\377\377\377\377\377\377\314\377\377\377\3\377" \
- "\377\375\377\377\377\376\377\375\203\377\377\377\11\376\377\377\345\360" \
- "\320\214\305@\214\306>\214\305@\214\304\77\214\306<\215\305>\212\307" \
- ">\231\214\306>\1\214\305@\202\215\307\77\205\214\306>\5\212\307>\214" \
- "\306>\342\360\315\377\377\377\376\376\376\202\377\377\377\1\377\377\375" \
- "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\244" \
- "\377\377\377\3\377\376\377\377\377\377\376\377\375\203\377\377\377\11" \
- "\376\377\377\362\371\347\214\306>\214\305B\215\310<\215\306A\214\305" \
- "@\215\307\77\214\305@\231\214\306>\4\215\307\77\213\305=\214\306>\215" \
- "\307\77\202\214\306>\5\215\307\77\214\306>\216\306\77\215\306A\360\367" \
- "\345\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" \
- "\251\377\377\377\2\377\376\377\377\377\375\203\377\377\377\13\377\377" \
- "\375\377\377\377\375\377\374\233\316W\214\305@\213\304\77\212\306@\215" \
- "\307\77\214\305@\215\306A\214\305@\230\214\306>\3\215\307\77\214\306" \
- ">\215\306A\203\214\305@\7\215\306A\214\305@\215\304B\232\315T\377\377" \
- "\375\376\377\377\377\377\375\377\377\377\377\377\377\377\377\377\377" \
- "\377\377\377\377\377\377\250\377\377\377\1\377\377\375\205\377\377\377" \
- "\11\377\376\377\267\333\204\213\307A\213\307C\215\307\77\213\304\77\215" \
- "\307\77\215\305<\212\306@\231\214\306>\1\215\307\77\203\214\305@\202" \
- "\214\306>\7\215\307\77\212\306@\267\333\204\377\376\377\376\377\377\377" \
- "\377\375\376\376\376\377\377\377\377\377\377\377\377\377\377\377\377" \
- "\377\377\377\377\247\377\377\377\17\377\377\375\377\377\377\377\377\375" \
- "\376\376\376\377\377\377\377\377\375\376\376\377\334\354\305\211\306" \
- "=\213\307A\213\305;\215\306A\214\306<\215\305>\213\307A\232\214\306>" \
- "\202\214\305@\11\214\306>\214\306<\214\306>\215\307\77\212\311=\333\355" \
- "\305\377\376\377\377\377\377\376\376\376\377\377\377\377\377\377\377" \
- "\377\377\377\377\377\377\377\377\377\252\377\377\377\3\377\377\375\377" \
- "\377\377\377\376\377\203\377\377\375\7\233\314V\215\307\77\215\305>\214" \
- "\306>\215\307\77\214\305@\212\307>\232\214\306>\14\214\305@\214\306>" \
- "\214\306<\215\307=\215\307\77\214\305@\232\315V\374\377\373\376\376\377" \
- "\377\377\375\377\377\377\376\376\376\377\377\377\377\377\377\377\377" \
- "\377\377\377\377\377\377\377\377\255\377\377\377\10\377\377\375\377\376" \
- "\377\324\353\267\214\304\77\215\305>\214\305@\212\307<\214\305@\232\214" \
- "\306>\2\215\307\77\215\306A\202\214\306>\4\215\307\77\213\304\77\215" \
- "\306E\316\346\254\202\377\377\377\3\377\377\375\376\376\377\376\377\377" \
- "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\247" \
- "\377\377\377\1\376\376\376\206\377\377\377\10\377\377\373\375\376\377" \
- "\232\315W\214\306>\215\307=\211\307>\215\306A\215\305>\232\214\306>\1" \
- "\214\305@\202\215\307\77\13\214\305@\215\306E\227\317P\377\377\377\377" \
- "\377\375\376\377\377\377\377\377\377\377\375\375\377\376\377\377\377" \
- "\377\377\375\377\377\377\377\377\377\377\377\377\377\377\377\377\377" \
- "\377\377\254\377\377\377\20\376\377\377\377\375\377\331\356\303\215\305" \
- "@\213\310\77\215\305>\216\306\77\213\307A\215\306A\214\306<\214\306>" \
- "\216\306\77\213\304\77\212\307<\214\306>\215\305@\210\214\306>\1\214" \
- "\305@\202\215\307\77\205\214\306>\10\214\305@\212\307>\215\305>\214\305" \
- "@\215\305>\214\305@\215\305>\331\356\305\377\377\377\377\377\377\377" \
- "\377\377\377\377\377\377\377\377\377\264\377\377\377\20\376\376\374\377" \
- "\377\375\376\376\374\261\330{\214\306>\216\306A\214\306>\213\307A\215" \
- "\305>\215\306A\215\307\77\213\304A\215\307\77\214\305@\214\306<\216\306" \
- "A\210\214\306>\4\215\307\77\213\305=\214\306>\215\307\77\202\214\306" \
- ">\12\215\307\77\214\306>\212\307>\220\305\77\212\307>\214\306>\213\310" \
- "=\214\306<\262\327z\376\377\377\377\377\377\377\377\377\377\377\377\377" \
- "\377\377\377\377\377\377\265\377\377\377\17\374\377\377\377\377\377\370" \
- "\373\362\241\321d\211\310<\215\305>\215\305@\216\306=\214\305@\214\306" \
- ">\215\307\77\214\306>\212\307<\212\306@\212\307<\210\214\306>\3\215\307" \
- "\77\214\306>\215\306A\203\214\305@\12\215\306A\214\305@\215\305>\212" \
- "\307>\213\307A\216\305C\215\307=\242\322e\371\372\364\375\377\376\377" \
- "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\264\377" \
- "\377\377\1\375\377\374\203\377\377\377\4\352\364\333\223\311O\212\306" \
- "@\215\305@\202\213\310\77\202\214\306>\4\216\307F\213\305=\215\307\77" \
- "\215\305@\211\214\306>\1\215\307\77\203\214\305@\202\214\306>\1\215\307" \
- "\77\202\214\305@\6\216\305C\215\307\77\225\311K\351\363\332\377\377\377" \
- "\376\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" \
- "\377\377\265\377\377\377\17\377\375\376\377\376\377\377\377\377\377\377" \
- "\375\352\365\327\223\313L\212\307<\215\305>\214\305@\215\307=\214\305" \
- "@\214\306<\213\310\77\213\304\77\220\305A\212\214\306>\202\214\305@\12" \
- "\214\306>\214\306<\214\306>\215\307\77\214\306>\213\310=\215\307=\225" \
- "\311K\347\365\334\377\377\375\377\377\377\377\377\377\377\377\377\377" \
- "\377\377\377\377\377\377\267\377\377\377\1\377\377\375\202\377\377\377" \
- "\13\377\376\377\376\377\377\353\363\334\245\320d\214\305B\214\305@\215" \
- "\306A\213\305=\214\306>\213\307A\213\310=\213\214\306>\5\214\305@\214" \
- "\306>\214\306<\215\307=\215\307\77\202\214\305@\5\214\306<\242\322e\351" \
- "\363\332\377\377\375\376\376\376\377\377\377\377\377\377\377\377\377" \
- "\377\377\377\377\377\377\377\267\377\377\377\1\376\376\374\202\377\377" \
- "\375\6\376\377\377\377\376\377\377\377\375\371\372\364\255\330|\217\304" \
- ">\202\212\306@\2\215\306A\214\303A\202\214\305@\211\214\306>\2\215\307" \
- "\77\215\306A\202\214\306>\6\215\307\77\213\304\77\215\306E\215\305>\262" \
- "\327z\371\372\364\203\377\377\377\2\376\377\377\377\377\375\377\377\377" \
- "\377\377\377\377\377\377\377\377\377\377\377\377\377\264\377\377\377" \
- "\1\376\376\376\202\377\377\377\2\377\377\375\377\376\377\203\377\377" \
- "\377\6\377\377\375\331\356\303\233\314W\215\310<\214\305@\215\307\77" \
- "\214\214\306>\1\214\305@\202\215\307\77\7\214\305@\215\306E\227\317P" \
- "\331\356\305\376\377\377\375\377\376\376\377\377\202\377\377\377\2\377" \
- "\377\375\376\377\377\377\377\377\377\377\377\377\377\377\377\377\377" \
- "\377\377\377\377\274\377\377\377\10\377\377\375\377\376\377\365\375\362" \
- "\307\342\237\234\315Z\212\306@\212\307>\214\305@\202\215\307\77\16\214" \
- "\306>\215\307\77\214\306>\215\306A\214\306>\213\310\77\214\306>\215\305" \
- "<\216\306A\213\310\77\212\307>\232\315T\307\341\242\370\373\362\377\377" \
- "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\304\377\377" \
- "\377\1\377\377\375\202\377\377\377\10\377\376\377\376\376\374\335\354" \
- "\303\270\333\207\222\311J\214\305@\215\306A\213\305=\202\214\306>\13" \
- "\215\307\77\216\306\77\215\305>\212\306@\212\307>\226\312K\270\333\211" \
- "\334\354\307\376\377\377\376\376\376\377\377\375\377\377\377\377\377" \
- "\377\377\377\377\377\377\377\377\377\377\377\306\377\377\377\2\376\377" \
- "\375\376\377\377\204\377\377\377\16\350\366\334\332\354\302\311\341\245" \
- "\306\341\234\305\342\237\304\341\237\305\342\240\305\342\237\334\355" \
- "\303\352\364\333\377\377\375\377\375\376\377\376\377\377\377\375\377" \
- "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\307\377" \
- "\377\377\15\376\376\376\377\376\377\377\377\375\377\377\373\376\377\377" \
- "\376\377\375\376\377\377\377\377\375\377\377\377\376\376\376\376\377" \
- "\377\376\377\375\377\377\377\202\377\376\377\204\377\377\377\1\376\376" \
- "\376\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" \
- "\307\377\377\377\3\376\377\377\377\377\377\376\376\376\202\377\377\377" \
- "\1\376\376\376\210\377\377\377\3\375\377\376\376\377\377\377\377\377" \
- "\203\377\376\377\4\376\377\375\376\377\377\377\377\377\377\376\377\377" \
- "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\304\377" \
- "\377\377\10\377\377\375\377\376\377\377\377\373\377\377\377\375\377\376" \
- "\376\377\377\376\376\376\377\376\377\202\376\377\377\1\377\377\377\202" \
- "\376\376\376\202\377\377\377\202\376\377\377\5\376\377\375\377\377\377" \
- "\376\376\374\377\377\377\377\377\375\377\377\377\377\377\377\377\377" \
- "\377\377\377\377\377\377\377\377\307\377\377\377\1\376\376\377\202\377" \
- "\377\377\2\377\377\375\376\376\377\202\377\377\377\2\376\377\375\377" \
- "\377\375\204\377\377\377\202\377\377\375\1\376\377\375\202\376\377\377" \
- "\202\377\377\375\202\377\377\377\1\377\376\377\377\377\377\377\377\377" \
- "\377\377\377\377\377\377\377\377\377\377\310\377\377\377\5\377\377\375" \
- "\377\376\377\377\377\375\376\376\377\377\376\377\207\377\377\377\202" \
- "\377\376\377\1\376\376\376\377\377\377\377\377\377\377\377\377\377\377" \
- "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" \
- "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" \
- "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" \
- "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" \
- "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" \
- "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" \
- "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" \
- "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" \
- "\377\377\377\377\377\377\377\377\377\377\377\377\377\261\377\377\377" \
- "\1\376\376\376\210\377\377\377\3\376\376\376\377\377\377\376\376\376" \
- "\331\377\377\377\1\376\376\376\204\377\377\377\1\376\376\376\257\377" \
- "\377\377\1\376\376\376\212\377\377\377\1\376\376\376\211\377\377\377" \
- "\1\376\376\376\221\377\377\377\1\376\376\376\203\377\377\377\1\376\376" \
- "\376\205\377\377\377\1\376\376\376\312\377\377\377\1\376\376\376\214" \
- "\377\377\377\1\376\376\376\202\377\377\377\6\377\376\375\377\377\377" \
- "\376\377\377\377\377\377\377\376\377\376\377\377\270\377\377\377\7\376" \
- "\377\377\377\376\377\376\377\377\377\377\375\377\377\377\377\375\377" \
- "\377\376\377\273\377\377\377\1\376\376\376\202\377\377\377\1\376\376" \
- "\376\302\377\377\377\1\376\376\376\305\377\377\377\1\376\376\376\241" \
- "\377\377\377\1\376\376\376\214\377\377\377\1\376\376\376\235\377\377" \
- "\377\1\376\376\376\202\377\377\377\1\376\376\376\202\377\377\377\1\376" \
- "\376\376\202\377\377\377\1\376\376\376\252\377\377\377\1\376\376\376" \
- "\212\377\377\377\3\376\376\376\377\377\377\376\376\376\202\377\377\377" \
- "\1\376\376\376\251\377\377\377\202\376\376\376\215\377\377\377\1\376" \
- "\376\376\202\377\377\377\1\376\376\376\205\377\377\377\1\376\376\376" \
- "\224\377\377\377\1\376\376\376\203\377\377\377\1\376\376\376\202\377" \
- "\377\377\1\376\376\376\232\377\377\377\1\376\376\376\202\377\377\377" \
- "\1\376\376\376\202\377\377\377\1\376\376\376\206\377\377\377\1\376\376" \
- "\376\243\377\377\377\1\376\376\376\204\377\377\377\1\376\376\376\202" \
- "\377\377\377\3\376\376\376\377\377\377\376\376\376\202\377\377\377\2" \
- "\376\376\376\377\377\377\202\377\377\375\3\377\377\377\376\377\377\377" \
- "\377\375\202\377\376\377\1\377\377\377\270\377\376\377\14\377\377\377" \
- "\377\376\377\377\376\374\377\377\375\375\376\377\376\377\377\377\377" \
- "\375\376\376\376\377\377\377\376\376\376\377\377\377\376\376\376\203" \
- "\377\377\377\1\376\376\376\266\377\377\377\1\376\376\376\203\377\377" \
- "\377\1\376\376\376\202\377\377\377\1\376\376\376\214\377\377\377\202" \
- "\376\376\376\207\377\377\377\1\376\376\376\272\377\377\377\1\376\376" \
- "\376\252\377\377\377\202\376\376\376\247\377\377\377\5\376\376\376\377" \
- "\377\377\376\376\376\377\377\377\376\376\376\202\377\377\377\1\376\376" \
- "\376\203\377\377\377\1\376\376\376\311\377\377\377\1\376\376\376\221" \
- "\377\377\377\1\376\376\376\203\377\377\377\1\376\376\376\302\377\377" \
- "\377\1\376\376\376\207\377\377\377\1\346\346\346\204\316\316\316\10\317" \
- "\317\317\315\315\315\316\316\316\363\363\365\377\377\377\376\376\376" \
- "\377\377\377\376\376\376\204\377\377\377\1\376\376\376\202\377\377\377" \
- "\1\376\376\376\234\377\377\377\1\376\376\376\262\377\377\377\1\376\376" \
- "\376\213\377\377\377\1\377\377\375\202\376\377\377\1\376\376\377\202" \
- "\377\377\377\2\377\376\377\377\377\375\270\276\317\331\1\377\376\377" \
- "\205\377\377\377\3\376\377\375\377\377\375\376\376\376\257\377\377\377" \
- "\1\376\376\376\210\377\377\377\202\376\376\376\210\377\377\377\1\376" \
- "\376\376\220\377\377\377\1\376\376\376\207\377\377\377\1\376\376\376" \
- "\243\377\377\377\1\376\376\376\203\377\377\377\3\376\376\376\377\377" \
- "\377\376\376\376\207\377\377\377\1\376\376\376\331\377\377\377\12\376" \
- "\376\376\377\377\377\235\235\235kkmllnkkmllnjjlkkm\346\346\346\202\377" \
- "\377\377\1\376\376\376\237\377\377\377\2\346\346\346\317\317\317\204" \
- "\316\316\316\2\317\317\317\346\346\346\234\377\377\377\1\376\376\376" \
- "\203\377\377\377\1\376\376\376\202\377\377\377\1\332\332\332\203\316" \
- "\316\316\1\317\317\317\202\316\316\316\213\377\377\377\5\346\346\346" \
- "\317\317\317\315\315\315\316\316\316\315\315\315\252\316\316\316\1\363" \
- "\363\363\205\377\377\377\1\376\376\376\212\377\377\377\1\376\376\376" \
- "\211\377\377\377\4\346\346\346\250\250\250\204\204\206``b\202::<\1;;" \
- "=\202::<\3;;=99;;;=\203::<\4lln\220\220\222\266\266\266\363\363\363\202" \
- "\376\376\376\240\377\377\377\1\346\346\346\202\316\316\316\10\317\317" \
- "\317\315\315\315\317\317\317\316\316\316\332\332\332\376\376\376\377" \
- "\377\377\376\376\376\203\377\377\377\1\376\376\376\241\377\377\377\6" \
- "\376\376\376\377\377\377\346\346\346\316\316\320\317\317\321\316\316" \
- "\320\203\316\316\316\2\347\347\347\376\376\376\205\377\377\377\1\376" \
- "\376\376\202\377\377\375\5\376\377\377\377\377\375\377\377\377\317\334" \
- "\344\37V\177\270\0>i\12\37U{\317\334\344\377\376\374\377\377\375\376" \
- "\377\377\377\376\374\376\377\377\376\376\376\377\377\377\363\363\363" \
- "\202\316\316\316\1\315\315\315\202\317\317\317\251\316\316\316\1\332" \
- "\332\332\202\377\377\377\1\376\376\376\203\377\377\377\202\376\376\376" \
- "\204\377\377\377\3\346\346\346\316\316\316\316\316\320\204\316\316\316" \
- "\2\346\346\346\376\376\376\212\377\377\377\1\347\347\347\206\316\316" \
- "\316\2\317\317\317\363\363\363\250\377\377\377\2\376\376\376\331\331" \
- "\331\206\316\316\316\1\332\332\332\202\377\377\377\1\376\376\376\204" \
- "\377\377\377\1\376\376\376\203\377\377\377\3\332\332\332\316\316\316" \
- "\316\316\320\250\316\316\316\1\363\363\363\205\377\377\377\1\376\376" \
- "\376\242\377\377\377\4\346\346\346::<;;=99;\204::<\1\204\204\206\237" \
- "\377\377\377\1\376\376\376\202\377\377\377\3\235\235\235::<;;=\202::" \
- "<\3;;=::<\235\235\235\202\377\377\377\1\376\376\376\232\377\377\377\1" \
- "\376\376\376\205\377\377\377\4kkm;;;99;;;=\202::<\1;;;\213\377\377\377" \
- "\4\234\234\234:::::<;;=\202::<\1;;;\250::<\1\316\316\316\202\377\377" \
- "\377\1\376\376\376\203\377\377\377\1\376\376\376\212\377\377\377\203" \
- "\376\376\376\203\377\377\377\3\346\346\346\250\250\250```\204::<\202" \
- ";;=\202::<\3;;=::<;;=\203::<\1;;=\202::<\5;;=::<```\265\265\265\362\362" \
- "\362\203\377\377\377\1\376\376\376\233\377\377\377\1\234\234\236\204" \
- "::<\5""99;;;=::<\333\333\335\376\376\376\203\377\377\377\1\376\376\376" \
- "\241\377\377\377\4\376\376\376\377\377\377\363\363\363FFH\202::<\1;;" \
- "=\203::<\1\234\234\234\210\377\377\377\6\376\377\377\377\377\375\375" \
- "\376\377\356\363\366\40Vz\0\77h\270\0=i\20\0>i\22Ip\356\363\367\376\377" \
- "\377\377\377\375\377\377\377\376\376\377\377\376\377\377\377\377\315" \
- "\315\315:::::<;;=::<99;;;;\250::<\1kkm\205\377\377\377\1\376\376\376" \
- "\203\377\377\377\4\376\376\376\377\377\377\376\376\376\234\234\234\203" \
- "::<\6;;=::<:::\234\234\234\377\377\377\376\376\376\211\377\377\377\3" \
- "\332\332\332:::;;=\202::<\202;;=\2::<\204\204\206\250\377\377\377\2\364" \
- "\364\364FFF\204::<\202:::\1\234\234\234\206\377\377\377\1\376\376\376" \
- "\204\377\377\377\2kkk;;=\251::<\1\316\316\316\202\377\377\377\1\376\376" \
- "\376\203\377\377\377\1\376\376\376\240\377\377\377\6\376\376\376\234" \
- "\234\236::<;;=::<;;=\203::<\2FFH\362\362\362\235\377\377\377\1\376\376" \
- "\376\203\377\377\377\3\234\234\236::<;;=\202::<\3;;=::<\234\234\236\203" \
- "\377\377\377\1\376\376\376\233\377\377\377\1\376\376\376\203\377\377" \
- "\377\7kkm::<;;=::<;;=::<;;=\213\377\377\377\4\235\235\235::<;;=99;\202" \
- ";;=\251::<\1\315\315\315\203\377\377\377\202\376\376\376\213\377\377" \
- "\377\1\376\376\376\202\377\377\377\6\376\376\376\377\377\377\315\315" \
- "\315\205\205\205::<;;=\213::<\4;;=::<;;=::<\203;;=\204::<\4FFF\204\204" \
- "\204\346\346\346\376\376\376\234\377\377\377\3\234\234\236::<;;=\202" \
- "::<\4;;=99;::<``b\244\377\377\377\1\376\376\376\203\377\377\377\1xxz" \
- "\202::<\10;;=99;;;=::<;;=\233\233\235\377\377\377\376\376\376\202\377" \
- "\377\377\1\376\376\376\203\377\377\377\4\375\377\376\377\376\373\377" \
- "\377\375\235\267\310\202\0>i\271\0=i\4\0\77j\237\266\306\377\376\377" \
- "\377\375\374\202\376\377\377\4\377\377\377\376\376\376\316\316\31699" \
- ";\202;;=\2::<;;=\251::<\1kkm\203\377\377\377\1\376\376\376\210\377\377" \
- "\377\4\235\235\235::<99;;;=\203::<\1\235\235\235\214\377\377\377\2ll" \
- "n99;\202;;=\1::<\203;;=\2\362\362\364\376\376\376\245\377\377\377\2\376" \
- "\376\376\250\250\250\204::<\4;;=::<:::\346\346\346\203\377\377\377\1" \
- "\376\376\376\205\377\377\377\3\376\376\376\377\377\377jjl\252::<\1\315" \
- "\315\315\203\377\377\377\202\376\376\376\242\377\377\377\3\362\362\364" \
- "GGI::<\202;;=\2""99;;;=\202::<\2""99;\235\235\235\237\377\377\377\3\376" \
- "\376\376\377\377\377\235\235\237\202::<\202;;=\202::<\3\235\235\237\377" \
- "\377\377\376\376\376\233\377\377\377\1\376\376\376\203\377\377\377\4" \
- "\376\376\376\377\377\377kkm;;=\202::<\5""99;;;=99;\377\377\377\376\376" \
- "\376\211\377\377\377\1\233\233\233\202::<\3;;=::<99;\251::<\1\317\317" \
- "\317\205\377\377\377\1\376\376\376\214\377\377\377\3\376\376\376\347" \
- "\347\347xxz\203::<\1;;=\202::<\1;;=\204::<\1;;=\203::<\1;;=\205::<\1" \
- ";;=\203::<\1;;=\203::<\2\234\234\236\362\362\362\233\377\377\377\2\233" \
- "\233\235;;=\204::<\1;;=\202::<\1\234\234\236\245\377\377\377\4\376\376" \
- "\376\302\302\304::<;;=\206::<\1\235\235\237\202\377\377\377\1\376\376" \
- "\376\203\377\377\377\7\375\376\377\377\377\377\377\377\375\376\377\377" \
- "\377\377\377\177\235\265\0\77k\271\0\77j\7\0\77k\0\77j~\236\265\377\376" \
- "\377\376\377\377\375\377\374\377\377\375\202\377\377\377\5\315\315\315" \
- ";;=::<99;;;=\252::<\3kkm\377\377\377\376\376\376\203\377\377\377\1\376" \
- "\376\376\203\377\377\377\1\376\376\376\202\377\377\377\3\233\233\233" \
- "::<;;=\202::<\3;;=::<\234\234\234\202\377\377\377\1\376\376\376\211\377" \
- "\377\377\4\264\264\264;;=::<;;=\204::<\3\247\247\251\377\377\377\376" \
- "\376\376\245\377\377\377\1SSS\203::<\1;;=\202::<\1\204\204\204\213\377" \
- "\377\377\4\376\376\376lln::<:9>\250::<\1\317\317\317\205\377\377\377" \
- "\1\376\376\376\241\377\377\377\1\265\265\267\204::<\1;;=\204::<\1FFF" \
- "\241\377\377\377\2\234\234\236;;=\204::<\2;;=\234\234\236\234\377\377" \
- "\377\3\376\376\376\377\377\377\376\376\376\204\377\377\377\1kkm\203:" \
- ":<\4;;=::<;;=\376\376\376\212\377\377\377\1\234\234\234\204::<\1;;=\251" \
- "::<\1\316\316\316\203\377\377\377\202\376\376\376\215\377\377\377\4\234" \
- "\234\234;;=::<;;=\202::<\1""99;\204::<\1;;=\203::<\1;;=\211::<\1""99" \
- ";\207::<\2FFF\301\301\301\232\377\377\377\2\234\234\23699;\210::<\1\333" \
- "\333\333\241\377\377\377\6\376\376\376\377\377\377\376\376\376\363\363" \
- "\363FFH;;=\205::<\3;;=::<\234\234\236\206\377\377\377\7\377\376\377\377" \
- "\377\377\377\377\375\375\376\377\377\376\377\201\235\263\0>g\272\0>i" \
- "\13\0>e\177\236\263\377\375\374\377\377\377\377\377\375\376\376\376\377" \
- "\376\377\377\377\377\316\316\316::<;;=\202::<\2""99;;;=\250::<\1kkm\204" \
- "\377\377\377\5\376\376\376\377\377\377\376\376\376\377\377\377\376\376" \
- "\376\202\377\377\377\2\376\376\376\234\234\234\206::<\1\234\234\234\215" \
- "\377\377\377\2RRT;;=\205::<\1SSU\246\377\377\377\2\316\316\316999\206" \
- "::<\1\316\316\316\202\377\377\377\3\376\376\376\377\377\377\376\376\376" \
- "\207\377\377\377\3jjl::<:9>\250::<\1\316\316\316\203\377\377\377\202" \
- "\376\376\376\242\377\377\377\2SSU99;\202;;=\204::<\4;;=99;::<\264\264" \
- "\266\240\377\377\377\1\234\234\234\206::<\1\234\234\234\243\377\377\377" \
- "\1kkm\206::<\213\377\377\377\2\234\234\236;;=\216::<\4""99;;;=::<;;=" \
- "\206::<\3;;=::<;;=\222::<\1\316\316\316\205\377\377\377\1\376\376\376" \
- "\207\377\377\377\1\376\376\376\202\377\377\377\2\346\346\350__a\202:" \
- ":<\3;;=::<;;=\204::<\1;;=\202::<\3;;=::<;;=\203::<\1;;=\202::<\2""99" \
- ";;;=\202::<\1;;=\204::<\7;;=::<;;=::<;;=\204\204\206\363\363\363\203" \
- "\377\377\377\3\376\376\376\377\377\377\376\376\376\222\377\377\377\4" \
- "\234\234\236::<;;=99;\204::<\3;;=::<__a\244\377\377\377\1xxx\205::<\1" \
- ";;=\203::<\1\234\234\236\213\377\377\377\3\177\236\263\0=i\0>i\211\0" \
- "=i\2\0>j\0=i\202\1>j\2\0\77k\0>j\232\0>i\2\0>j\0\77k\202\1>j\2\0=i\0" \
- ">j\211\0=i\3\0>i\0=i\177\236\263\206\377\377\377\6\316\316\316:::::<" \
- ";;=::<;;=\217::<\1;;=\203::<\1;;=\202::<\1;;=\222::<\1kkk\205\377\377" \
- "\377\1\376\376\376\206\377\377\377\1\234\234\236\206::<\1\234\234\236" \
- "\215\377\377\377\3\234\234\234;;=::<\202;;=\203::<\3\316\316\320\377" \
- "\377\377\376\376\376\240\377\377\377\1\376\376\376\202\377\377\377\3" \
- "xxz::<;;=\202::<\3;;=::<__a\215\377\377\377\1kkm\204::<\1;;=\202::<\1" \
- ";;=\242::<\1\316\316\316\205\377\377\377\1\376\376\376\240\377\377\377" \
- "\1\265\265\265\202::<\5;;=::<;;=::<;;=\204::<\2TTV\376\376\376\237\377" \
- "\377\377\1\234\234\234\206::<\1\234\234\234\243\377\377\377\1kkm\206" \
- "::<\213\377\377\377\3\234\234\23499;;;=\214::<\1""99;\207::<\1;;=\227" \
- "::<\1\316\316\316\204\377\377\377\3\376\376\376\377\377\377\376\376\376" \
- "\203\377\377\377\1\376\376\376\204\377\377\377\2\333\333\335FFH\214:" \
- ":<\16``b\221\221\223\251\251\251\315\315\315\316\316\316\363\363\363" \
- "\377\377\377\332\332\332\316\316\316\301\301\301\235\235\237jjlFFH;;" \
- "=\207::<\1;;=\202::<\3;;=__a\363\363\363\227\377\377\377\4\234\234\236" \
- "99;::<;;=\205::<\3;;=::<\233\233\233\240\377\377\377\12\376\376\376\377" \
- "\377\377\301\301\301;;=::<;;=::<;;=::<99;\203::<\1\234\234\236\213\377" \
- "\377\377\3\177\236\263\0=i\0>i\211\0=i\7\1>j\0=i\1>j\0=i\0>g\3>h\2=g" \
- "\230\0=i\7\2=g\3>h\0>g\0=i\1>j\0=i\1>j\211\0=i\3\0>i\0=i\177\236\263" \
- "\206\377\377\377\2\317\317\317:::\221::<\202;;=\202::<\3;;=::<99;\203" \
- "::<\2;;=99;\220::<\1kkk\214\377\377\377\1\234\234\236\206::<\1\234\234" \
- "\236\213\377\377\377\3\376\376\376\377\377\377\363\363\363\204::<\4;" \
- ";=::<;;=xxz\202\377\377\377\1\376\376\376\236\377\377\377\1\376\376\376" \
- "\202\377\377\377\3\346\346\346::<;;=\202::<\4;;=99;;;=\266\266\270\215" \
- "\377\377\377\1kkm\203::<\1;;=\202::<\1;;=\243::<\1\316\316\316\204\377" \
- "\377\377\3\376\376\376\377\377\377\376\376\376\232\377\377\377\1\376" \
- "\376\376\204\377\377\377\1kkm\202;;=\202::<\202;;=\2::<;;=\204::<\3\317" \
- "\317\317\377\377\377\376\376\376\235\377\377\377\1\234\234\234\206::" \
- "<\1\234\234\234\243\377\377\377\1kkm\206::<\212\377\377\377\1\376\376" \
- "\376\224\377\377\377\1lln\203::<\1;;=\202::<\1\234\234\236\234\377\377" \
- "\377\1\376\376\376\204\377\377\377\4\376\376\376\265\265\267::<;;=\202" \
- "::<\1;;=\202::<\1;;=\203::<\5__a\266\266\270\363\363\363\377\377\377" \
- "\376\376\376\204\377\377\377\1\376\376\376\203\377\377\377\1\376\376" \
- "\376\202\377\377\377\4\301\301\303\204\204\206;;=::<\203;;=\202::<\2" \
- ";;=::<\202;;=\3GGI\332\332\334\376\376\376\203\377\377\377\1\376\376" \
- "\376\221\377\377\377\2\235\235\237::<\202;;=\202::<\1;;=\202::<\4""9" \
- "9;::<;;=\331\331\331\240\377\377\377\2\363\363\363GGI\203::<\2;;=::<" \
- "\203;;=\202::<\1\234\234\236\213\377\377\377\3\177\236\263\0=i\0>i\210" \
- "\0=i\10\0\77k\0=i\1>j\0>i\0\77j\0=i\0>i\0>j\230\0>i\10\0>j\0>i\0=i\0" \
- "\77j\0>i\1>j\0=i\0\77k\210\0=i\3\0>i\0=i\177\236\263\206\377\377\377" \
- "\1\376\376\376\217\377\377\377\1\376\376\376\203\377\377\377\1\315\315" \
- "\317\204::<\3;;=::<kkm\240\377\377\377\1\234\234\236\206::<\1\234\234" \
- "\236\214\377\377\377\3\376\376\376\377\377\377\204\204\206\202::<\1;" \
- ";=\202::<\202;;=\1\345\345\345\242\377\377\377\2\376\376\376\234\234" \
- "\234\206::<\2GGI\363\363\363\215\377\377\377\1kkm\203::<\4""99;::<;;" \
- "=\316\316\320\311\377\377\377\2\317\317\32199;\203::<\5;;=::<FFH;;=:" \
- ":<\202;;=\202::<\1kkm\237\377\377\377\1\234\234\234\206::<\1\234\234" \
- "\234\243\377\377\377\1kkm\206::<\213\377\377\377\3\376\376\376\377\377" \
- "\377\376\376\376\216\377\377\377\1\376\376\376\202\377\377\377\5lln:" \
- ":<;;=::<;;=\202::<\2\234\234\234\376\376\376\227\377\377\377\1\376\376" \
- "\376\210\377\377\377\1\264\264\266\202;;=\4::<;;=::<99;\204::<\3jjl\317" \
- "\317\321\376\376\376\202\377\377\377\1\375\375\375\203\377\377\377\3" \
- "\376\376\376\377\377\377\376\376\376\204\377\377\377\1\376\376\376\203" \
- "\377\377\377\3\363\363\365\234\234\236FFH\202::<\1;;=\202::<\1;;=\203" \
- "::<\2FFH\332\332\334\225\377\377\377\1\233\233\235\202;;=\211::<\1__" \
- "a\240\377\377\377\2xxz;;=\202::<\3;;=::<;;=\205::<\1\234\234\236\213" \
- "\377\377\377\3\177\236\263\0=i\0>i\211\0=i\202\0>i\5\0<h\1>j\0=i\1>j" \
- "\0>i\230\0=i\5\0>i\1>j\0=i\1>j\0<h\202\0>i\211\0=i\3\0>i\0=i\177\236" \
- "\263\212\377\377\377\3\376\376\376\377\377\377\376\376\376\212\377\377" \
- "\377\1\376\376\376\202\377\377\377\10\316\316\320::<;;=::<;;=99;::<j" \
- "jl\225\377\377\377\1\376\376\376\202\377\377\377\1\376\376\376\207\377" \
- "\377\377\1\234\234\236\206::<\1\234\234\236\216\377\377\377\3\332\332" \
- "\332;;=99;\202::<\4;;=::<99;\234\234\236\237\377\377\377\1\376\376\376" \
- "\203\377\377\377\1SSU\202::<\1;;=\203::<\1\221\221\221\216\377\377\377" \
- "\1kkm\206::<\1\316\316\316\250\377\377\377\1\376\376\376\235\377\377" \
- "\377\1\376\376\376\202\377\377\377\5xxz::<;;=::<;;=\202::<\3\316\316" \
- "\320RRT;;=\203::<\4;;=::<\332\332\332\376\376\376\235\377\377\377\1\234" \
- "\234\234\206::<\1\234\234\234\243\377\377\377\1kkm\206::<\214\377\377" \
- "\377\3\376\376\376\377\377\377\376\376\376\213\377\377\377\1\376\376" \
- "\376\204\377\377\377\4kkm;;=::<;;=\203::<\1\235\235\235\202\377\377\377" \
- "\1\376\376\376\221\377\377\377\1\376\376\376\213\377\377\377\4\301\301" \
- "\301;;=::<;;=\203::<\202;;=\3::<RRT\316\316\316\203\377\377\377\1\376" \
- "\376\376\202\377\377\377\1\376\376\376\204\377\377\377\3\376\376\376" \
- "\377\377\377\376\376\376\203\377\377\377\1\376\376\376\204\377\377\377" \
- "\4\346\346\346xxz;;=99;\207::<\4GGI\362\362\362\377\377\377\376\376\376" \
- "\222\377\377\377\1\234\234\236\206::<\203;;=\202::<\2;;=\233\233\235" \
- "\236\377\377\377\10\301\301\301::<;;=:9>::<99;::<99;\202;;=\203::<\1" \
- "\234\234\236\213\377\377\377\3\177\236\263\0=i\0>i\210\0=i\7\2=g\0>i" \
- "\0>j\0\77j\0=i\0\77j\0=h\232\1>j\7\0=h\0\77j\0=i\0\77j\0>j\0>i\2=g\210" \
- "\0=i\3\0>i\0=i\177\236\263\213\377\377\377\1\376\376\376\216\377\377" \
- "\377\1\317\317\321\202::<\6;;=::<;;=::<lln\376\376\376\225\377\377\377" \
- "\1\376\376\376\203\377\377\377\1\376\376\376\205\377\377\377\1\234\234" \
- "\236\206::<\1\234\234\236\213\377\377\377\1\376\376\376\203\377\377\377" \
- "\2kkm;;=\204::<\2;;=GGI\236\377\377\377\1\376\376\376\203\377\377\377" \
- "\1\265\265\267\202::<\6;;=::<;;=::<;;=\345\345\345\216\377\377\377\1" \
- "kkm\202::<\5;;=99;;;=99;\317\317\317\244\377\377\377\1\376\376\376\241" \
- "\377\377\377\3\376\376\376\377\377\377\347\347\351\206::<\3``b\377\377" \
- "\377\234\234\236\202::<\1;;=\202::<\4;;=\204\204\206\377\377\377\376" \
- "\376\376\234\377\377\377\1\234\234\234\206::<\1\234\234\234\243\377\377" \
- "\377\1kkm\206::<\215\377\377\377\1\375\375\375\202\377\377\377\1\376" \
- "\376\376\213\377\377\377\5\376\376\376\377\377\377\376\376\376lln;;=" \
- "\203::<\3;;=::<\234\234\234\234\377\377\377\1\376\376\376\202\377\377" \
- "\377\4\331\331\331FFH::<;;=\202::<\11;;=::<99;;;=\203\203\203\363\363" \
- "\363\376\376\376\377\377\377\376\376\376\222\377\377\377\7\376\376\376" \
- "\377\377\377\376\376\376\377\377\377\300\300\300GGI::<\202;;=\205::<" \
- "\4``b\362\362\362\377\377\377\376\376\376\221\377\377\377\1\234\234\236" \
- "\204::<\202;;=\203::<\5;;=99;::<;;=\332\332\332\234\377\377\377\4\363" \
- "\363\363GGI;;=::<\202;;=\203::<\1;;=\202::<\3;;=::<\234\234\236\213\377" \
- "\377\377\3\177\236\263\0=i\0>i\210\0=i\10\0\77j\0>j\0\77k\0=i\3>h\2=" \
- "g\1>j\0\77k\230\0=i\10\0\77k\1>j\2=g\3>h\0=i\0\77k\0>j\0\77j\210\0=i" \
- "\3\0>i\0=i\177\236\263\232\377\377\377\12\316\316\316;;=::<;;=::<;;=" \
- "::<kkm\377\377\377\376\376\376\222\377\377\377\1\376\376\376\202\377" \
- "\377\377\1\376\376\376\210\377\377\377\1\234\234\236\206::<\1\234\234" \
- "\236\214\377\377\377\1\376\376\376\202\377\377\377\2\266\266\26699;\202" \
- "::<\202;;=\202::<\3\266\266\270\377\377\377\376\376\376\234\377\377\377" \
- "\203\376\376\376\1lln\202;;=\204::<\3xxx\377\377\377\376\376\376\215" \
- "\377\377\377\1kkm\205::<\2;;=\316\316\316\305\377\377\377\1\376\376\376" \
- "\202\377\377\377\1\203\203\205\206::<\4\265\265\267\377\377\377\363\363" \
- "\363GGG\203::<\1;;=\202::<\1\346\346\346\235\377\377\377\1\234\234\234" \
- "\206::<\1\234\234\234\243\377\377\377\1kkm\206::<\216\377\377\377\1\376" \
- "\376\376\220\377\377\377\1jjl\206::<\1\234\234\234\202\377\377\377\1" \
- "\376\376\376\232\377\377\377\3\376\376\376\364\364\364SSU\202::<\7;;" \
- "=::<;;=99;::<;;=\265\265\265\205\377\377\377\203\376\376\376\214\377" \
- "\377\377\5\376\376\376\377\377\377\376\376\376\377\377\377\376\376\376" \
- "\203\377\377\377\7\332\332\332__a::<;;=::<;;=::<\202;;=\3::<\205\205" \
- "\207\376\376\377\222\377\377\377\3\234\234\236::<;;=\202::<\2;;=99;\202" \
- ";;=\1""99;\202::<\3;;=::<__a\234\377\377\377\1xxz\202;;=\205::<\1;;=" \
- "\202::<\1;;=\202::<\1\234\234\236\213\377\377\377\3\177\236\263\0=i\0" \
- ">i\210\0=i\10\0>i\0=i\0>i\0\77k\0>j\2=g\1\77h\0>l\230\0>i\10\0>l\1\77" \
- "h\2=g\0>j\0\77k\0>i\0=i\0>i\210\0=i\3\0>i\0=i\177\236\263\205\377\377" \
- "\377\1\376\376\376\202\377\377\377\1\376\376\376\221\377\377\377\3\316" \
- "\316\316::<;;=\204::<\1kkm\225\377\377\377\202\376\376\376\211\377\377" \
- "\377\1\234\234\236\206::<\1\234\234\236\217\377\377\377\3\376\376\376" \
- "TTV99;\202::<\4""99;;;=::<kkm\240\377\377\377\1\346\346\346\202::<\1" \
- "99;\204::<\1\316\316\316\217\377\377\377\1kkm\204::<\3;;=99;\316\316" \
- "\316\305\377\377\377\7\376\376\376\377\377\377\363\363\363::<;;=::<;" \
- ";=\202::<\1SSU\203\377\377\377\2\204\204\204;;=\203::<\4;;=99;\222\222" \
- "\222\376\376\376\234\377\377\377\1\234\234\234\206::<\1\234\234\234\243" \
- "\377\377\377\1kkm\206::<\214\377\377\377\3\376\376\376\377\377\377\376" \
- "\376\376\220\377\377\377\1kkm\206::<\1\234\234\236\236\377\377\377\1" \
- "\204\204\206\203::<\1;;=\202::<\3;;=::<\265\265\267\221\377\377\377\1" \
- "\376\376\376\202\377\377\377\1\376\376\376\203\377\377\377\1\376\376" \
- "\376\204\377\377\377\11\376\376\376\363\363\365__a::<;;=::<;;=::<;;=" \
- "\202::<\1\301\301\303\222\377\377\377\2\234\234\236;;=\202::<\10;;=:" \
- ":<;;=FFH::<;;=::<;;=\203::<\1\235\235\237\232\377\377\377\2\301\301\303" \
- ";;=\205::<\2;;=RRT\204::<\3;;=::<\234\234\236\213\377\377\377\3\177\236" \
- "\263\0=i\0>i\210\0=i\7\0>j\2=g\0>g\0>j\40V|o\224\256\177\236\262\232" \
- "\177\236\263\7\177\236\262o\224\256\40V|\0>j\0>g\2=g\0>j\210\0=i\3\0" \
- ">i\0=i\177\236\263\232\377\377\377\3\316\316\316::<;;=\203::<\2;;=kk" \
- "m\232\377\377\377\1\376\376\376\205\377\377\377\1\234\234\236\206::<" \
- "\1\234\234\236\220\377\377\377\2\233\233\235;;=\202::<\1<<>\203::<\1" \
- "\346\346\346\237\377\377\377\1\204\204\204\206::<\2SSU\376\376\376\217" \
- "\377\377\377\1kkm\203::<\4;;=::<;;=\316\316\320\304\377\377\377\1\376" \
- "\376\376\202\377\377\377\2\234\234\236;;=\202::<\4;;=::<;;=\234\234\234" \
- "\203\377\377\377\1\346\346\346\205::<\3;;=FFH\363\363\365\203\377\377" \
- "\377\1\376\376\376\230\377\377\377\1\234\234\234\206::<\1\234\234\234" \
- "\243\377\377\377\1kkm\206::<\237\377\377\377\1kkm\206::<\1\234\234\236" \
- "\235\377\377\377\2\316\316\316;;=\202::<\6;;=::<;;=::<:::\265\265\265" \
- "\237\377\377\377\7\376\376\376\363\363\363___::<;;=::<;;=\203::<\2GG" \
- "I\363\363\363\204\377\377\377\1\376\376\376\214\377\377\377\1\234\234" \
- "\234\203::<\202;;=\5::<\266\266\266GGI99;;;=\202::<\1;;=\202::<\1\332" \
- "\332\332\206\377\377\377\1\376\376\376\211\377\377\377\1\376\376\376" \
- "\207\377\377\377\2\363\363\363FFH\206::<\3FFH\301\301\30399;\202::<\202" \
- ";;=\2::<\234\234\236\206\377\377\377\7\377\377\375\377\377\377\377\377" \
- "\375\376\377\377\376\376\376\200\237\263\0\77i\211\0>i\7\0>g\1>j\0>g" \
- "_\210\236\377\377\377\376\377\377\377\376\377\231\377\377\377\10\377" \
- "\377\375\376\377\375\377\377\377\377\377\375`\210\242\3>h\0\77j\1\77" \
- "h\210\0=i\3\0>i\0=i\177\236\263\232\377\377\377\1\316\316\316\206::<" \
- "\1kkm\240\377\377\377\1\234\234\236\206::<\1\234\234\236\220\377\377" \
- "\377\1\363\363\363\204::<\202;;=\2""99;\205\205\207\207\377\377\377\1" \
- "\376\376\376\224\377\377\377\4\376\376\376\377\377\377\363\363\363FF" \
- "H\202::<\5;;=99;;;=::<\265\265\265\220\377\377\377\1kkm\206::<\1\316" \
- "\316\316\305\377\377\377\5\376\376\376\364\364\364FFH::<;;=\202::<\4" \
- ";;=FFH\363\363\363\377\377\377\202\376\376\376\6\377\377\377xxz::<;;" \
- "=::<;;=\202::<\1\234\234\236\206\377\377\377\202\376\376\376\224\377" \
- "\377\377\1\234\234\234\206::<\1\234\234\234\243\377\377\377\1kkm\206" \
- "::<\237\377\377\377\1kkm\206::<\1\234\234\236\225\377\377\377\1\376\376" \
- "\376\207\377\377\377\2SSS;;=\202::<\1;;=\203::<\1\234\234\234\202\377" \
- "\377\377\3\376\376\376\377\377\377\376\376\376\232\377\377\377\1\376" \
- "\376\376\202\377\377\377\4\332\332\332FFH::<;;=\202::<\1;;=\202::<\1" \
- "\222\222\224\205\377\377\377\1\376\376\376\213\377\377\377\3\234\234" \
- "\234::<;;=\202::<\5""99;;;=\315\315\315\250\250\252;;=\206::<\2``b\376" \
- "\376\376\202\377\377\377\1\376\376\376\216\377\377\377\1\376\376\376" \
- "\205\377\377\377\2xxx;;=\202::<\1;;=\203::<\2\300\300\300\317\317\321" \
- "\203::<\1;;=\202::<\1\234\234\236\207\377\377\377\1\377\376\377\202\377" \
- "\377\377\4\377\376\377\201\235\263\0=j\3>j\210\0=i\5\1>j\0=j\37V\177" \
- "\377\376\377\376\376\376\202\377\377\377\1\376\377\377\230\377\377\377" \
- "\10\376\377\377\377\377\375\374\377\377\377\376\374\376\377\377#W\177" \
- "\0>g\0\77i\210\0=i\3\0>i\0=i\177\236\263\232\377\377\377\1\316\316\316" \
- "\206::<\1kkm\240\377\377\377\1\234\234\236\206::<\1\234\234\236\220\377" \
- "\377\377\2\376\376\376\204\204\206\205::<\3;;=FFH\362\362\362\204\377" \
- "\377\377\202\376\376\376\2\377\377\377\376\376\376\224\377\377\377\3" \
- "\376\376\376\265\265\265;;=\203::<\4;;=99;FFH\363\363\363\220\377\377" \
- "\377\1kkm\206::<\1\316\316\316\306\377\377\377\4\265\265\26599;;;=::" \
- "<\202;;=\2""99;\222\222\224\204\377\377\377\12\376\376\376\316\316\320" \
- ";;=::<;;=99;;;=99;SSU\376\376\376\202\377\377\377\3\376\376\376\377\377" \
- "\377\376\376\376\226\377\377\377\1\234\234\234\206::<\1\234\234\234\243" \
- "\377\377\377\1kkm\206::<\237\377\377\377\1kkm\206::<\1\234\234\236\234" \
- "\377\377\377\11\234\234\234::<;;=99;;;=99;::<;;=kkm\241\377\377\377\1" \
- "\376\376\376\202\377\377\377\1\301\301\303\203::<\6;;=99;::<;;=::<\346" \
- "\346\350\203\377\377\377\1\376\376\376\214\377\377\377\1\234\234\234" \
- "\203::<\202;;=\10""99;\316\316\316\377\377\377kkm::<;;=::<;;=\203::<" \
- "\1\235\235\237\203\377\377\377\1\376\376\376\214\377\377\377\1\376\376" \
- "\376\205\377\377\377\3\302\302\304::<;;=\202::<\7""99;;;=99;xxz\377\377" \
- "\377\315\315\315;;=\203::<\3:9>::<\234\234\236\206\377\377\377\3\376" \
- "\377\377\377\377\375\377\377\377\202\377\377\375\3|\237\265\0\77k\0>" \
- "g\210\0=i\10\0@h\3<i~\236\263\376\377\377\377\377\377\377\376\377\377" \
- "\376\374\377\376\377\230\377\377\377\10\377\375\377\377\377\375\377\376" \
- "\374\377\377\377\376\376\374\220\251\275\2=i\0>j\210\0=i\3\0>i\0=i\177" \
- "\236\263\232\377\377\377\1\316\316\316\206::<\1kkm\240\377\377\377\1" \
- "\234\234\236\206::<\1\234\234\236\215\377\377\377\1\376\376\376\203\377" \
- "\377\377\2\332\332\334;;=\206::<\2\266\266\266\376\376\376\202\377\377" \
- "\377\1\376\376\376\202\377\377\377\1\376\376\376\222\377\377\377\1\376" \
- "\376\376\203\377\377\377\1SSS\203::<\4""99;::<;;=\221\221\223\221\377" \
- "\377\377\1kkm\206::<\1\316\316\316\306\377\377\377\4RRT;;=::<;;=\202" \
- "::<\2;;=\345\345\345\202\377\377\377\1\376\376\376\203\377\377\377\2" \
- "__a;;=\202::<\1;;=\202::<\1\264\264\264\206\377\377\377\1\376\376\376" \
- "\224\377\377\377\1\234\234\234\206::<\1\234\234\234\243\377\377\377\1" \
- "kkm\206::<\237\377\377\377\1kkm\206::<\1\234\234\236\226\377\377\377" \
- "\1\376\376\376\204\377\377\377\2\363\363\363FFH\203::<\1;;=\202::<\2" \
- "FFH\346\346\346\204\377\377\377\1\376\376\376\233\377\377\377\1\376\376" \
- "\376\203\377\377\377\3\376\376\376xxz99;\202::<\1""99;\202::<\4;;=\204" \
- "\204\206\377\377\377\376\376\376\202\377\377\377\1\376\376\376\213\377" \
- "\377\377\1\234\234\234\202::<\10;;=99;;;=::<\317\317\317\376\376\376" \
- "\363\363\363GGI\203::<\1;;=\203::<\3\331\331\331\377\377\377\376\376" \
- "\376\202\377\377\377\1\376\376\376\217\377\377\377\5\363\363\363GGI;" \
- ";=::<;;=\202::<\7""99;FFH\363\363\363\377\377\377\316\316\316::<;;=\202" \
- "::<\3:9>::<\234\234\236\207\377\377\377\7\376\377\377\376\376\376\377" \
- "\377\377\377\377\375\377\377\377\377\375\374\376\377\377\210\377\377" \
- "\377\10\376\376\374\376\377\377\354\364\366\377\377\375\376\377\377\377" \
- "\376\374\377\377\375\376\377\377\230\377\377\377\10\377\377\375\376\377" \
- "\377\377\376\375\375\376\377\376\377\377\301\317\330\0>g\0>j\210\0=i" \
- "\3\0>i\0=i\177\236\263\232\377\377\377\1\316\316\316\206::<\1kkm\240" \
- "\377\377\377\1\234\234\236\206::<\1\234\234\236\220\377\377\377\5\376" \
- "\376\376\377\377\377kkm::<;;=\202::<\3""99;::<^^`\204\377\377\377\1\376" \
- "\376\376\227\377\377\377\1\316\316\316\202::<\203;;=\202::<\1\347\347" \
- "\347\221\377\377\377\1kkm\206::<\1\316\316\316\303\377\377\377\12\376" \
- "\376\376\377\377\377\301\301\301;;=::<;;=::<99;::<\204\204\206\204\377" \
- "\377\377\4\376\376\376\377\377\377\376\376\376\266\266\266\202::<\5;" \
- ";=::<;;=::<``b\203\377\377\377\1\376\376\376\227\377\377\377\1\234\234" \
- "\234\206::<\1\234\234\234\243\377\377\377\1kkm\206::<\237\377\377\377" \
- "\1kkm\206::<\1\234\234\236\233\377\377\377\1\265\265\267\204::<\4""9" \
- "9;;;=::<\234\234\234\203\377\377\377\3\376\376\376\377\377\377\376\376" \
- "\376\231\377\377\377\5\376\376\376\377\377\377\376\376\376\377\377\377" \
- "\376\376\376\202\377\377\377\5\363\363\363GGI99;::<;;=\202::<\3;;=::" \
- "<\346\346\346\204\377\377\377\1\376\376\376\212\377\377\377\3\234\234" \
- "\234::<99;\202;;=\202::<\1\315\315\315\202\377\377\377\3\301\301\303" \
- ";;=99;\202;;=\5::<;;=::<``b\376\376\376\202\377\377\377\1\376\376\376" \
- "\215\377\377\377\6\376\376\376\377\377\377\376\376\376xxz::<;;=\203:" \
- ":<\202;;=\1\300\300\302\202\377\377\377\3\316\316\316;;=99;\202::<\3" \
- ";:\77::<\234\234\236\206\377\377\377\2\377\377\375\376\377\375\202\376" \
- "\377\377\4\377\377\375\377\377\377\377\376\377\377\377\375\211\377\377" \
- "\377\1\376\376\374\202\377\377\377\3\377\376\377\377\377\377\375\376" \
- "\377\231\377\377\377\202\376\377\377\5\377\376\377\376\377\377\377\377" \
- "\375\277\320\332\0\77j\211\0=i\3\0>i\0=i\177\236\263\232\377\377\377" \
- "\1\316\316\316\206::<\1kkm\240\377\377\377\1\234\234\236\206::<\1\234" \
- "\234\236\213\377\377\377\3\376\376\376\377\377\377\376\376\376\204\377" \
- "\377\377\1\265\265\265\202::<\1;;=\204::<\1\315\315\317\204\377\377\377" \
- "\1\376\376\376\202\377\377\377\1\376\376\376\220\377\377\377\1\376\376" \
- "\376\202\377\377\377\3\204\204\204::<;;=\204::<\2yy{\376\376\376\221" \
- "\377\377\377\1kkm\206::<\1\316\316\316\305\377\377\377\4kkm;;=::<;;=" \
- "\203::<\1\316\316\316\210\377\377\377\1TTV\206::<\2\317\317\321\376\376" \
- "\376\231\377\377\377\1\234\234\234\206::<\1\234\234\234\243\377\377\377" \
- "\1kkm\206::<\237\377\377\377\1kkm\206::<\1\234\234\236\233\377\377\377" \
- "\1TTV\202::<\7;;=::<;;=::<RRT\377\377\377\376\376\376\203\377\377\377" \
- "\1\376\376\376\233\377\377\377\1\376\376\376\206\377\377\377\2\233\233" \
- "\235;;=\203::<\4;;=::<;;=\234\234\234\217\377\377\377\4\234\234\234:" \
- ":<;;=99;\203::<\1\316\316\316\203\377\377\377\4xxz;;=::<99;\202::<\3" \
- ";;=::<\234\234\236\216\377\377\377\1\376\376\376\202\377\377\377\16\376" \
- "\376\376\302\302\304::<;;=::<;;=::<;;=::<\221\221\223\377\377\377\376" \
- "\376\376\377\377\377\316\316\316\202::<\202;;=\202::<\1\234\234\236\206" \
- "\377\377\377\2\377\376\377\377\377\377\202\377\376\377\4\376\376\376" \
- "\353\366\374\327\355\370\323\356\371\210\326\356\372\7\325\354\372\327" \
- "\355\372\365\372\376\376\376\376\377\377\377\376\377\377\377\377\373" \
- "\231\377\377\377\2\377\376\377\376\377\375\202\377\377\377\4\374\377" \
- "\377\300\316\327\0=i\1\77h\210\0=i\3\0>i\0=i\177\236\263\232\377\377" \
- "\377\1\316\316\316\206::<\1kkm\240\377\377\377\1\234\234\236\206::<\1" \
- "\234\234\236\221\377\377\377\4\376\376\376\377\377\377SSU;;=\202::<\4" \
- ";;=99;;;=\204\204\206\203\377\377\377\1\376\376\376\226\377\377\377\11" \
- "\363\363\36399;;;=::<;;=::<;;=::<\316\316\316\202\377\377\377\1\376\376" \
- "\376\217\377\377\377\1kkm\206::<\1\316\316\316\304\377\377\377\1\316" \
- "\316\316\206::<\1kkk\211\377\377\377\2\235\235\23599;\202;;=\6::<;;=" \
- "::<kkm\377\377\377\376\376\376\203\377\377\377\1\376\376\376\224\377" \
- "\377\377\1\234\234\234\206::<\1\234\234\234\243\377\377\377\1kkm\206" \
- "::<\237\377\377\377\1kkm\206::<\1\234\234\236\232\377\377\377\1\332\332" \
- "\332\204::<\1;;=\202::<\4\266\266\270\376\376\376\377\377\377\376\376" \
- "\376\240\377\377\377\1\376\376\376\204\377\377\377\2\363\363\363FFH\202" \
- "::<\5;;=::<;;=::<SSS\217\377\377\377\2\235\235\23599;\205::<\11\316\316" \
- "\316\377\377\377\376\376\376\377\377\377\363\363\363FFH::<;;=99;\203" \
- ";;=\2::<\331\331\333\220\377\377\377\2\363\363\363FFH\202::<\6;;=::<" \
- ";;=::<TTV\364\364\364\203\377\377\377\3\316\316\316<<>99;\202::<\3;;" \
- "=::<\234\234\236\211\377\377\377\4\377\375\376\376\377\377\254\334\363" \
- "Z\266\347\211[\267\350\6\\\266\350X\267\347\326\354\367\377\376\377\376" \
- "\377\377\377\377\375\232\377\377\377\3\377\377\373\375\377\376\376\377" \
- "\377\202\377\377\375\3\276\320\336\0>g\0>i\210\0=i\3\0>i\0=i\177\236" \
- "\263\232\377\377\377\1\316\316\316\206::<\1kkm\240\377\377\377\1\234" \
- "\234\236\206::<\1\234\234\236\223\377\377\377\1\235\235\237\204::<\4" \
- "<<>::<;;=\363\363\363\206\377\377\377\1\376\376\376\222\377\377\377\2" \
- "\234\234\234;;=\205::<\1SSU\204\377\377\377\1\376\376\376\216\377\377" \
- "\377\1kkm\206::<\1\316\316\316\304\377\377\377\1\204\204\204\203::<\1" \
- "99;\202::<\1\265\265\265\211\377\377\377\2\363\363\363FFH\205::<\2;;" \
- "=\346\346\346\231\377\377\377\1\234\234\234\206::<\1\234\234\234\243" \
- "\377\377\377\1kkm\206::<\237\377\377\377\1kkm\206::<\1\234\234\236\232" \
- "\377\377\377\1\222\222\222\202::<\1;;=\202::<\3;;=FFH\362\362\364\251" \
- "\377\377\377\1\235\235\235\203::<\7;;=::<;;=;;;\331\331\331\377\377\377" \
- "\376\376\376\214\377\377\377\2\234\234\234;;=\205::<\1\316\316\316\202" \
- "\377\377\377\3\376\376\376\377\377\377\301\301\301\205::<\4;;=::<__a" \
- "\376\376\376\216\377\377\377\4\376\376\376yyy::<;;=\205::<\1\316\316" \
- "\320\204\377\377\377\2\316\316\31699;\203::<\3""99;::<\234\234\236\207" \
- "\377\377\377\2\376\377\377\376\376\374\202\377\376\377\3\254\332\362" \
- "Y\267\352[\267\350\210Y\270\350\7[\267\350Y\267\352\326\356\370\376\376" \
- "\377\377\376\377\377\375\377\376\377\377\231\377\377\377\10\377\377\375" \
- "\376\377\377\377\377\377\377\376\377\377\377\375\276\317\331\1>j\0>j" \
- "\210\0=i\3\0>i\0=i\177\236\263\232\377\377\377\1\316\316\316\206::<\1" \
- "kkm\240\377\377\377\1\234\234\236\206::<\1\234\234\236\220\377\377\377" \
- "\1\376\376\376\202\377\377\377\4\363\363\365;;=::<;;=\204::<\1\234\234" \
- "\234\231\377\377\377\1SSS\202::<\1;;=\203::<\1\265\265\267\223\377\377" \
- "\377\1kkm\206::<\1\316\316\316\300\377\377\377\1\376\376\376\202\377" \
- "\377\377\1\346\346\350\203::<\4;;=::<;;=SSU\213\377\377\377\1\204\204" \
- "\204\203::<\1;;=\202::<\1\204\204\206\202\377\377\377\1\376\376\376\226" \
- "\377\377\377\1\234\234\234\206::<\1\234\234\234\243\377\377\377\1kkm" \
- "\206::<\237\377\377\377\1kkm\206::<\1\234\234\236\227\377\377\377\1\376" \
- "\376\376\202\377\377\377\3TTV::<;;=\203::<\2;;=\205\205\205\252\377\377" \
- "\377\1\347\347\347\202::<\202;;=\203::<\1\235\235\237\204\377\377\377" \
- "\1\376\376\376\211\377\377\377\1\234\234\234\206::<\1\316\316\316\205" \
- "\377\377\377\1\205\205\205\202::<\6;;=::<;;=::<;;=\234\234\236\213\377" \
- "\377\377\1\376\376\376\202\377\377\377\1\302\302\302\202;;=\203::<\3" \
- ";;=::<\221\221\221\202\377\377\377\1\376\376\376\202\377\377\377\1\316" \
- "\316\316\206::<\1\234\234\236\213\377\377\377\2\255\333\363Y\270\350" \
- "\211[\267\350\3Y\270\350[\267\350\326\354\371\242\377\377\377\3\276\317" \
- "\331\0=i\0>i\210\0=i\3\0>i\0=i\177\236\263\232\377\377\377\1\316\316" \
- "\316\206::<\1kkm\240\377\377\377\1\234\234\236\206::<\1\234\234\236\224" \
- "\377\377\377\4\204\204\204;;=::<;;=\203::<\1TTT\204\377\377\377\1\376" \
- "\376\376\223\377\377\377\1\300\300\300\203::<\5;;=::<;;=FFF\363\363\363" \
- "\223\377\377\377\1kkm\203::<\4;;=::<;;=\316\316\320\277\377\377\377\14" \
- "\376\376\376\377\377\377\376\376\376\377\377\377\204\204\206::<;;=::" \
- "<99;<<>99;\265\265\267\213\377\377\377\3\346\346\346::<;;=\202::<\1;" \
- ";=\202::<\2\347\347\347\376\376\376\227\377\377\377\1\234\234\234\206" \
- "::<\1\234\234\234\243\377\377\377\1kkm\206::<\237\377\377\377\1kkm\206" \
- "::<\1\234\234\236\226\377\377\377\4\376\376\376\377\377\377\376\376\376" \
- "\346\346\350\202;;=\203::<\3""99;<<>\301\301\301\253\377\377\377\1aa" \
- "c\202::<\1;;=\202::<\2;;=jjl\205\377\377\377\1\376\376\376\210\377\377" \
- "\377\1\234\234\234\206::<\1\316\316\316\202\377\377\377\1\376\376\376" \
- "\202\377\377\377\3\362\362\362SSU;;=\205::<\2;;=\332\332\332\210\377" \
- "\377\377\1\376\376\376\203\377\377\377\2\363\363\363FFH\202::<\202;;" \
- "=\5::<;;=SSS\363\363\363\376\376\376\204\377\377\377\1\316\316\316\206" \
- "::<\1\234\234\236\213\377\377\377\2\255\333\363Y\270\350\211[\267\350" \
- "\3Y\270\350[\267\350\326\354\371\242\377\377\377\3\276\317\331\0=i\0" \
- ">i\210\0=i\3\0>i\0=i\177\236\263\232\377\377\377\1\316\316\316\206::" \
- "<\1kkm\240\377\377\377\1\234\234\236\206::<\1\234\234\236\224\377\377" \
- "\377\1\332\332\332\207::<\1\301\301\301\227\377\377\377\1lll\204::<\3" \
- ";;=::<\221\221\221\202\377\377\377\3\376\376\376\377\377\377\376\376" \
- "\376\217\377\377\377\1kkm\204::<\3;;=99;\316\316\316\241\377\377\377" \
- "\1\376\376\376\234\377\377\377\10\376\376\376\377\377\377\376\376\376" \
- "\377\377\377\363\363\363FFH;;=::<\202;;=\3::<FFH\364\364\364\214\377" \
- "\377\377\1xxz\204::<\3;;=::<\233\233\233\230\377\377\377\1\234\234\234" \
- "\206::<\1\234\234\234\243\377\377\377\1kkm\206::<\237\377\377\377\1k" \
- "km\206::<\1\234\234\236\224\377\377\377\1\376\376\376\204\377\377\377" \
- "\4\266\266\270;;=::<;;=\203::<\1""99;\254\377\377\377\3\234\234\234:" \
- ":<;;=\205::<\204\377\377\377\1\376\376\376\211\377\377\377\1\234\234" \
- "\234\206::<\1\316\316\316\203\377\377\377\1\376\376\376\202\377\377\377" \
- "\1\316\316\320\204::<\4;;=99;::<__a\205\377\377\377\1\376\376\376\206" \
- "\377\377\377\4yy{;;=::<;;=\202::<\3;;=::<\316\316\316\206\377\377\377" \
- "\1\316\316\316\206::<\1\234\234\236\213\377\377\377\2\255\333\363Y\270" \
- "\350\211[\267\350\3Y\270\350[\267\350\326\354\371\242\377\377\377\3\276" \
- "\317\331\0=i\0>i\210\0=i\3\0>i\0=i\177\236\263\232\377\377\377\1\316" \
- "\316\316\206::<\1kkm\240\377\377\377\1\234\234\236\206::<\1\234\234\236" \
- "\225\377\377\377\1__a\204;;=\5""99;::<yy{\377\377\377\376\376\376\216" \
- "\377\377\377\1\376\376\376\205\377\377\377\1\346\346\346\202::<\203;" \
- ";=\202::<\1\346\346\346\224\377\377\377\1kkm\205::<\2;;=\316\316\316" \
- "\235\377\377\377\1\376\376\376\244\377\377\377\1\234\234\234\202;;=\204" \
- "::<\2\235\235\235\376\376\376\212\377\377\377\4\376\376\376\377\377\377" \
- "\317\317\317::<\202;;=\202::<\3;;=GGI\362\362\362\202\377\377\377\1\376" \
- "\376\376\224\377\377\377\1\234\234\234\206::<\1\234\234\234\243\377\377" \
- "\377\1kkm\206::<\237\377\377\377\1kkm\206::<\1\234\234\236\231\377\377" \
- "\377\1\220\220\222\205::<\3;;=kkm\376\376\376\253\377\377\377\3\316\316" \
- "\316<<>99;\202::<\4;;=::<;;=\331\331\331\215\377\377\377\1\234\234\234" \
- "\206::<\1\316\316\316\207\377\377\377\1\222\222\224\202::<\3;;=99;<<" \
- ">\202::<\4\234\234\236\376\376\376\377\377\377\376\376\376\203\377\377" \
- "\377\1\376\376\376\203\377\377\377\6\302\302\304;;=99;;;=::<;;=\202:" \
- ":<\1\234\234\234\202\377\377\377\1\376\376\376\204\377\377\377\1\316" \
- "\316\316\206::<\1\234\234\236\213\377\377\377\2\255\333\363Y\270\350" \
- "\211[\267\350\3Y\270\350[\267\350\326\354\371\242\377\377\377\3\276\317" \
- "\331\0=i\0>i\210\0=i\3\0>i\0=i\177\236\263\232\377\377\377\1\316\316" \
- "\316\206::<\1kkm\240\377\377\377\1\234\234\236\206::<\1\234\234\236\225" \
- "\377\377\377\2\265\265\265;;=\202::<\2""99;;;=\202::<\2\347\347\347\376" \
- "\376\376\215\377\377\377\3\376\376\376\377\377\377\376\376\376\204\377" \
- "\377\377\3\221\221\223;;=99;\204::<\3xxz\377\377\377\376\376\376\202" \
- "\377\377\377\202\376\376\376\217\377\377\377\1kkm\202::<\5;;=99;;;=9" \
- "9;\317\317\317\233\377\377\377\1\376\376\376\237\377\377\377\1\376\376" \
- "\376\204\377\377\377\3\376\376\376\377\377\377GGI\202::<\5;;=::<;;=:" \
- ":<\346\346\346\213\377\377\377\1\376\376\376\202\377\377\377\2``b99;" \
- "\202;;=\203::<\3\247\247\247\377\377\377\376\376\376\225\377\377\377" \
- "\1\234\234\234\206::<\1\234\234\234\243\377\377\377\1kkm\206::<\237\377" \
- "\377\377\1kkm\206::<\1\234\234\236\231\377\377\377\10kkm::<;;=::<;;=" \
- "99;::<\235\235\237\255\377\377\377\202::<\1;;=\204::<\1\301\301\301\215" \
- "\377\377\377\1\234\234\234\206::<\1\316\316\316\206\377\377\377\5\376" \
- "\376\376\364\364\364TTV::<99;\202;;=\203::<\4\332\332\334\376\376\376" \
- "\377\377\377\376\376\376\203\377\377\377\6\376\376\376\377\377\377\363" \
- "\363\363FFH::<;;=\204::<\1__a\210\377\377\377\1\316\316\316\206::<\1" \
- "\234\234\236\213\377\377\377\2\255\333\363Y\270\350\211[\267\350\3Y\270" \
- "\350[\267\350\326\354\371\242\377\377\377\3\276\317\331\0=i\0>i\210\0" \
- "=i\3\0>i\0=i\177\236\263\232\377\377\377\1\316\316\316\206::<\1kkm\240" \
- "\377\377\377\1\234\234\236\206::<\1\234\234\236\224\377\377\377\5\376" \
- "\376\376\377\377\377GGI::<;;=\203::<\4;;=\220\220\222\377\377\377\376" \
- "\376\376\214\377\377\377\1\376\376\376\203\377\377\377\10\376\376\376" \
- "\377\377\377\363\363\363FFH::<;;=99;;;=\202::<\1\316\316\320\202\377" \
- "\377\377\1\376\376\376\204\377\377\377\1\376\376\376\215\377\377\377" \
- "\1kkm\206::<\1\316\316\316\277\377\377\377\3\376\376\376\377\377\377" \
- "\265\265\267\204::<\3;;=::<\205\205\205\213\377\377\377\1\376\376\376" \
- "\202\377\377\377\2\376\376\376\265\265\265\202::<\5""99;<<>::<;;=SSU" \
- "\202\377\377\377\1\376\376\376\224\377\377\377\1\234\234\234\206::<\1" \
- "\234\234\234\243\377\377\377\1kkm\206::<\237\377\377\377\1kkm\206::<" \
- "\1\234\234\236\230\377\377\377\2\376\376\376SSU\204::<\3;;=::<\266\266" \
- "\266\253\377\377\377\3\376\376\376\377\377\377^^`\206::<\1\234\234\234" \
- "\202\377\377\377\1\376\376\376\212\377\377\377\1\234\234\234\206::<\1" \
- "\316\316\316\205\377\377\377\6\376\376\376\377\377\377\376\376\376\315" \
- "\315\317::<;;=\202::<\4;;=99;::<``b\210\377\377\377\4xxz99;<<>::<\202" \
- ";;=\202::<\1\332\332\332\203\377\377\377\1\376\376\376\204\377\377\377" \
- "\1\316\316\316\206::<\1\234\234\236\213\377\377\377\2\255\333\363Y\270" \
- "\350\211[\267\350\3Y\270\350[\267\350\326\354\371\242\377\377\377\3\276" \
- "\317\331\0=i\0>i\210\0=i\3\0>i\0=i\177\236\263\232\377\377\377\1\316" \
- "\316\316\206::<\1kkm\240\377\377\377\1\234\234\236\206::<\1\234\234\236" \
- "\226\377\377\377\1\234\234\234\206::<\2FFH\376\376\376\214\377\377\377" \
- "\1\376\376\376\202\377\377\377\1\376\376\376\203\377\377\377\3\265\265" \
- "\265;;=99;\202;;=\202::<\1SSU\202\377\377\377\1\376\376\376\223\377\377" \
- "\377\1kkm\203::<\4""99;::<;;=\316\316\320\275\377\377\377\202\376\376" \
- "\376\4\377\377\377\376\376\376SSU;;=\202::<\4;;=::<;;=\332\332\332\215" \
- "\377\377\377\5\376\376\376\377\377\377\376\376\376SSU;;=\204::<\2;;=" \
- "\264\264\264\226\377\377\377\1\234\234\234\206::<\1\234\234\234\243\377" \
- "\377\377\1kkm\206::<\237\377\377\377\1kkm\206::<\1\234\234\236\231\377" \
- "\377\377\207::<\1\316\316\316\254\377\377\377\2\376\376\376lln\202::" \
- "<\1;;=\202::<\4;;=\233\233\233\377\377\377\376\376\376\202\377\377\377" \
- "\1\376\376\376\210\377\377\377\1\234\234\234\206::<\1\316\316\316\203" \
- "\377\377\377\202\376\376\376\204\377\377\377\1\234\234\234\207::<\1\234" \
- "\234\236\205\377\377\377\4\376\376\376\300\300\302::<;;=\205::<\2\234" \
- "\234\234\376\376\376\202\377\377\377\1\376\376\376\205\377\377\377\1" \
- "\316\316\316\206::<\1\234\234\236\213\377\377\377\2\255\333\363Y\270" \
- "\350\211[\267\350\3Y\270\350[\267\350\326\354\371\242\377\377\377\3\276" \
- "\317\331\0=i\0>i\210\0=i\3\0>i\0=i\177\236\263\232\377\377\377\1\316" \
- "\316\316\206::<\1kkm\240\377\377\377\1\234\234\236\206::<\1\234\234\236" \
- "\226\377\377\377\1\347\347\347\204::<\5;;=99;;;=\265\265\265\376\376" \
- "\376\222\377\377\377\2___99;\202::<\4;;=::<;;=\265\265\265\207\377\377" \
- "\377\1\376\376\376\216\377\377\377\1kkm\203::<\1;;=\202::<\1;;=\233:" \
- ":<\5""99;;;=::<:::\234\234\234\240\377\377\377\2\316\316\316;;=\204:" \
- ":<\2;;=kkm\221\377\377\377\1\234\234\236\203::<\1;;=\202::<\3kkk\377" \
- "\377\377\376\376\376\224\377\377\377\1\234\234\234\206::<\1\234\234\234" \
- "\243\377\377\377\1kkm\206::<\237\377\377\377\1kkm\206::<\1\234\234\236" \
- "\231\377\377\377\207::<\1\316\316\316\255\377\377\377\2\221\221\221;" \
- ";=\205::<\1\204\204\204\203\377\377\377\1\376\376\376\211\377\377\377" \
- "\1\234\234\234\206::<\1\316\316\316\210\377\377\377\3\376\376\376\377" \
- "\377\377``b\202::<\7;;=::<;;=::<;;=\332\332\332\376\376\376\202\377\377" \
- "\377\3\376\376\376\363\363\363GGI\203::<\4;;=::<;;=__a\206\377\377\377" \
- "\1\376\376\376\203\377\377\377\1\316\316\316\206::<\1\234\234\236\213" \
- "\377\377\377\2\255\333\363Y\270\350\211[\267\350\3Y\270\350[\267\350" \
- "\326\354\371\242\377\377\377\3\276\317\331\0=i\0>i\210\0=i\3\0>i\0=i" \
- "\177\236\263\232\377\377\377\1\316\316\316\206::<\1kkm\240\377\377\377" \
- "\1\234\234\236\206::<\1\234\234\236\227\377\377\377\1\204\204\206\204" \
- "::<\3;;=::<kkk\217\377\377\377\5\376\376\376\377\377\377\376\376\376" \
- "\333\333\333:::\202::<\1;;=\202::<\2FFH\363\363\363\226\377\377\377\1" \
- "kkm\204::<\1;;=\202::<\1;;=\234::<\4;;=::<\234\234\234\376\376\376\237" \
- "\377\377\377\1kkm\206::<\1\316\316\316\221\377\377\377\2\363\363\363" \
- "GGG\204::<\3;;=::<\315\315\315\225\377\377\377\1\234\234\234\206::<\1" \
- "\234\234\234\237\377\377\377\1\376\376\376\203\377\377\377\1kkm\206:" \
- ":<\237\377\377\377\1kkm\206::<\1\234\234\236\230\377\377\377\2\376\376" \
- "\376;;=\203::<\1;;=\202::<\1\363\363\363\252\377\377\377\6\376\376\376" \
- "\377\377\377\376\376\376\234\234\23699;;;=\204::<\1kkm\215\377\377\377" \
- "\1\234\234\234\206::<\1\316\316\316\210\377\377\377\7\377\377\375\377" \
- "\377\377\332\332\332::<;;=::<;;=\203::<\2``b\376\376\376\202\377\377" \
- "\377\2\376\376\376xxz\206::<\2:::\332\332\332\212\377\377\377\1\316\316" \
- "\316\206::<\1\234\234\236\213\377\377\377\2\255\333\363Y\270\350\211" \
- "[\267\350\3Y\270\350[\267\350\326\354\371\242\377\377\377\3\276\317\331" \
- "\0=i\0>i\210\0=i\3\0>i\0=i\177\236\263\232\377\377\377\1\316\316\316" \
- "\206::<\1kkm\240\377\377\377\1\234\234\236\206::<\1\234\234\236\227\377" \
- "\377\377\1\315\315\315\205::<\3;;=::<\332\332\334\221\377\377\377\1\204" \
- "\204\206\205::<\2;;=\205\205\205\227\377\377\377\1kkm\203::<\3;;=::<" \
- ";;=\234::<\1:9>\203::<\1\234\234\236\237\377\377\377\1\331\331\331\202" \
- ";;=\204::<\1SSU\217\377\377\377\5\376\376\376\377\377\377\376\376\376" \
- "\377\377\377\204\204\204\204::<\3;;=99;yyy\203\377\377\377\1\376\376" \
- "\376\221\377\377\377\1\234\234\234\206::<\1\234\234\234\235\377\377\377" \
- "\1\376\376\376\205\377\377\377\1kkm\206::<\237\377\377\377\1kkm\206:" \
- ":<\1\234\234\236\231\377\377\377\203::<\1;;=\203::<\202\377\377\377\1" \
- "\376\376\376\253\377\377\377\2\233\233\235;;=\205::<\3kkm\377\377\377" \
- "\376\376\376\202\377\377\377\1\376\376\376\210\377\377\377\1\234\234" \
- "\234\206::<\1\316\316\316\213\377\377\377\1\234\234\236\202;;=\1""99" \
- ";\203::<\5;;=\235\235\235\377\377\377\376\376\376\302\302\302\207::<" \
- "\1\251\251\251\213\377\377\377\1\316\316\316\206::<\1\234\234\236\213" \
- "\377\377\377\2\255\333\363Y\270\350\211[\267\350\3Y\270\350[\267\350" \
- "\326\354\371\242\377\377\377\3\276\317\331\0=i\0>i\210\0=i\3\0>i\0=i" \
- "\177\236\263\232\377\377\377\1\316\316\316\206::<\1kkm\240\377\377\377" \
- "\1\234\234\236\206::<\1\234\234\236\223\377\377\377\1\376\376\376\204" \
- "\377\377\377\1^^`\202::<\202;;=\3::<<<>\204\204\206\213\377\377\377\1" \
- "\376\376\376\204\377\377\377\1\363\363\363\205::<\3;;=::<\346\346\346" \
- "\227\377\377\377\1kkm\204::<\3;;=::<;;=\234::<\1;;=\202::<\1\234\234" \
- "\236\237\377\377\377\4\204\204\20499;::<;;=\203::<\3\266\266\270\377" \
- "\377\377\376\376\376\221\377\377\377\5\346\346\346;;=::<;;=::<\202;;" \
- "=\4::<\346\346\350\377\377\377\376\376\376\202\377\377\377\1\376\376" \
- "\376\217\377\377\377\1\234\234\234\206::<\1\234\234\234\237\377\377\377" \
- "\202\376\376\376\202\377\377\377\1kkm\206::<\237\377\377\377\1kkm\206" \
- "::<\1\234\234\236\224\377\377\377\6\376\376\376\377\377\377\376\376\376" \
- "\377\377\377\376\376\376;;=\206::<\1\331\331\331\255\377\377\377\1\234" \
- "\234\236\202::<\1;;=\203::<\2kkm\376\376\376\202\377\377\377\1\376\376" \
- "\376\211\377\377\377\1\234\234\234\206::<\1\316\316\316\212\377\377\377" \
- "\3\376\376\376\377\377\377___\204::<\7;;=99;::<\332\332\332\363\363\365" \
- "FFH;;=\204::<\3;;=kkm\376\376\376\213\377\377\377\1\316\316\316\206:" \
- ":<\1\234\234\236\213\377\377\377\2\255\333\363Y\270\350\211[\267\350" \
- "\3Y\270\350[\267\350\326\354\371\242\377\377\377\3\276\317\331\0=i\0" \
- ">i\210\0=i\3\0>i\0=i\177\236\263\232\377\377\377\1\316\316\316\206::" \
- "<\1kkm\240\377\377\377\1\234\234\236\206::<\1\234\234\236\224\377\377" \
- "\377\1\376\376\376\203\377\377\377\4\265\265\267::<;;=::<\202;;=\3::" \
- "<FFH\363\363\363\213\377\377\377\1\376\376\376\203\377\377\377\2\251" \
- "\251\251;;=\205::<\1lln\202\377\377\377\1\376\376\376\225\377\377\377" \
- "\1kkm\202::<\2;;=99;\204::<\1;;=\234::<\2;;=\234\234\234\235\377\377" \
- "\377\5\376\376\376\345\345\345;;=::<;;=\202::<\2;;=FFH\215\377\377\377" \
- "\3\376\376\376\377\377\377\376\376\376\205\377\377\377\10xxz;;=::<;;" \
- "=99;;;=::<\204\204\206\202\377\377\377\1\376\376\376\221\377\377\377" \
- "\1\234\234\234\206::<\1\234\234\234\234\377\377\377\1\376\376\376\204" \
- "\377\377\377\3\376\376\376\377\377\377kkm\206::<\237\377\377\377\1kk" \
- "m\206::<\1\234\234\236\231\377\377\377\202::<\1;;=\204::<\1\316\316\316" \
- "\253\377\377\377\3\376\376\376\377\377\377\220\220\222\202;;=\2::<;;" \
- "=\202::<\1\222\222\224\215\377\377\377\1\234\234\234\206::<\1\316\316" \
- "\316\213\377\377\377\3\376\376\376\332\332\332GGI\204::<\10;;=::<__a" \
- "xxz::<;;=::<;;=\202::<\2FFH\346\346\346\214\377\377\377\1\316\316\316" \
- "\206::<\1\234\234\236\213\377\377\377\2\255\333\363Y\270\350\211[\267" \
- "\350\3Y\270\350[\267\350\326\354\371\242\377\377\377\3\276\317\331\0" \
- "=i\0>i\210\0=i\3\0>i\0=i\177\236\263\232\377\377\377\1\316\316\316\206" \
- "::<\1kkm\240\377\377\377\1\234\234\236\206::<\1\234\234\236\231\377\377" \
- "\377\10FFH::<;;=99;;;=::<;;=\265\265\265\216\377\377\377\4\376\376\376" \
- "TTV99;;;=\202::<\202;;=\1\301\301\301\230\377\377\377\1kkm\202::<\1;" \
- ";=\204::<\3;;=::<;;=\232::<\5;;=::<\234\234\234\377\377\377\376\376\376" \
- "\232\377\377\377\3\376\376\376\377\377\377\221\221\221\202::<\1""99;" \
- "\203::<\5\234\234\236\377\377\377\376\376\376\377\377\377\376\376\376" \
- "\216\377\377\377\1\376\376\376\202\377\377\377\2\316\316\320::<\202;" \
- ";=\204::<\2\363\363\363\376\376\376\202\377\377\377\1\376\376\376\217" \
- "\377\377\377\1\234\234\234\206::<\1\234\234\234\243\377\377\377\1kkm" \
- "\206::<\237\377\377\377\1kkm\206::<\1\234\234\236\224\377\377\377\1\376" \
- "\376\376\204\377\377\377\1""99;\202::<\1;;=\203::<\1\316\316\316\252" \
- "\377\377\377\10\376\376\376\377\377\377\376\376\376kkm;;=::<;;=99;\202" \
- "::<\1\234\234\236\215\377\377\377\1\234\234\234\206::<\1\316\316\316" \
- "\215\377\377\377\5\247\247\247;;=99;::<;;=\210::<\5""99;::<\250\250\252" \
- "\377\377\377\376\376\376\213\377\377\377\1\316\316\316\206::<\1\234\234" \
- "\236\213\377\377\377\2\255\333\363Y\270\350\211[\267\350\3Y\270\350[" \
- "\267\350\326\354\371\242\377\377\377\3\276\317\331\0=i\0>i\210\0=i\3" \
- "\0>i\0=i\177\236\263\232\377\377\377\1\316\316\316\206::<\1kkm\240\377" \
- "\377\377\1\234\234\236\206::<\1\234\234\236\223\377\377\377\3\376\376" \
- "\376\377\377\377\376\376\376\203\377\377\377\1\234\234\236\202::<\1;" \
- ";=\202::<\2""99;SSU\214\377\377\377\5\376\376\376\377\377\377\301\301" \
- "\301;;=<<>\202::<\3;;=::<SSU\202\377\377\377\1\376\376\376\226\377\377" \
- "\377\1kkm\203::<\1;;=\202::<\1\204\204\206\202\234\234\234\1\235\235" \
- "\235\232\234\234\236\202\234\234\234\1\315\315\315\233\377\377\377\6" \
- "\376\376\376\377\377\377\362\362\362HHJ99;;;=\204::<\2\364\364\364\376" \
- "\376\376\220\377\377\377\1\376\376\376\204\377\377\377\1kkm\206::<\1" \
- "\234\234\234\223\377\377\377\1\234\234\234\206::<\1\234\234\234\242\377" \
- "\377\377\2\376\376\376lln\206::<\237\377\377\377\1kkm\206::<\1\234\234" \
- "\236\231\377\377\377\2TTV99;\202::<\5;;=::<;;=\250\250\250\376\376\376" \
- "\254\377\377\377\1``b\203::<\202;;=\3::<\235\235\237\376\376\376\202" \
- "\377\377\377\1\376\376\376\211\377\377\377\1\234\234\234\206::<\1\316" \
- "\316\316\216\377\377\377\2kkm;;=\203::<\5;;=::<;;=99;;;=\202::<\2;;=" \
- "jjl\216\377\377\377\1\316\316\316\206::<\1\234\234\236\213\377\377\377" \
- "\2\255\333\363Y\270\350\211[\267\350\3Y\270\350[\267\350\326\354\371" \
- "\242\377\377\377\3\276\317\331\0=i\0>i\210\0=i\3\0>i\0=i\177\236\263" \
- "\232\377\377\377\1\316\316\316\206::<\1kkm\240\377\377\377\1\234\234" \
- "\236\206::<\1\234\234\236\224\377\377\377\1\376\376\376\204\377\377\377" \
- "\2\346\346\34699;\202::<\2;;=::<\202;;=\1\315\315\315\212\377\377\377" \
- "\1\376\376\376\202\377\377\377\1yy{\203::<\4;;=99;;;=\250\250\250\202" \
- "\377\377\377\1\376\376\376\226\377\377\377\1kkm\206::<\1\317\317\317" \
- "\240\377\377\377\1\376\376\376\234\377\377\377\1\234\234\234\202::<\2" \
- "99;;;=\202::<\1\204\204\206\203\377\377\377\1\376\376\376\220\377\377" \
- "\377\1\376\376\376\202\377\377\377\2\264\264\264::<\202;;=\203::<\3G" \
- "GI\364\364\364\376\376\376\202\377\377\377\1\376\376\376\216\377\377" \
- "\377\1\234\234\234\206::<\1\234\234\234\241\377\377\377\3\376\376\376" \
- "\377\377\377kkm\206::<\237\377\377\377\1kkm\206::<\1\234\234\236\225" \
- "\377\377\377\202\376\376\376\202\377\377\377\12kkm::<;;=99;::<;;=::<" \
- "\204\204\204\377\377\377\376\376\376\251\377\377\377\4\376\376\376\377" \
- "\377\377::<99;\202;;=\203::<\1\316\316\320\215\377\377\377\1\234\234" \
- "\234\206::<\1\316\316\316\216\377\377\377\5\346\346\350GGI;;=::<;;=\202" \
- "::<\2""99;;;=\202::<\3;;=GGI\346\346\350\216\377\377\377\1\316\316\316" \
- "\206::<\1\234\234\236\213\377\377\377\2\255\333\363Y\270\350\211[\267" \
- "\350\3Y\270\350[\267\350\326\354\371\242\377\377\377\3\276\317\331\0" \
- "=i\0>i\210\0=i\3\0>i\0=i\177\236\263\232\377\377\377\1\316\316\316\206" \
- "::<\1kkm\240\377\377\377\1\234\234\236\206::<\1\234\234\236\231\377\377" \
- "\377\2\376\376\376\205\205\205\202::<\5""99;;;=::<;;=\205\205\207\213" \
- "\377\377\377\12\376\376\376\346\346\346::<;;=99;::<99;;;=FFH\363\363" \
- "\363\231\377\377\377\1kkm\202::<\2;;=::<\202;;=\3\316\316\316\377\377" \
- "\377\376\376\376\234\377\377\377\1\376\376\376\236\377\377\377\1SSS\204" \
- "::<\3;;=99;\347\347\351\204\377\377\377\1\376\376\376\215\377\377\377" \
- "\1\376\376\376\205\377\377\377\1SSU\203::<\4;;=99;::<\265\265\265\202" \
- "\377\377\377\1\376\376\376\217\377\377\377\1\234\234\234\206::<\1\234" \
- "\234\234\242\377\377\377\2\376\376\376SSU\206::<\237\377\377\377\1kk" \
- "m\206::<\1\234\234\236\231\377\377\377\4\221\221\223;;=::<;;=\202::<" \
- "\3;;=___\376\376\376\253\377\377\377\1\332\332\332\204::<\1;;=\202::" \
- "<\1\346\346\350\203\377\377\377\1\376\376\376\211\377\377\377\1\234\234" \
- "\234\206::<\1\316\316\316\217\377\377\377\1\250\250\252\204::<\202;;" \
- "=\2::<;;=\202::<\1\265\265\267\217\377\377\377\1\316\316\316\206::<\1" \
- "\234\234\236\213\377\377\377\2\255\333\363Y\270\350\211[\267\350\3Y\270" \
- "\350[\267\350\326\354\371\242\377\377\377\3\276\317\331\0=i\0>i\210\0" \
- "=i\3\0>i\0=i\177\236\263\232\377\377\377\1\316\316\316\206::<\1kkm\240" \
- "\377\377\377\1\234\234\236\206::<\1\234\234\236\232\377\377\377\1\316" \
- "\316\316\203::<\2""99;<<>\202::<\1\346\346\350\213\377\377\377\4\221" \
- "\221\223;;=::<;;=\203::<\1\204\204\206\232\377\377\377\1kkm\203::<\1" \
- ";;=\202::<\1\316\316\316\274\377\377\377\2\265\265\267;;=\205::<\1xx" \
- "x\231\377\377\377\1\250\250\250\206::<\1TTV\222\377\377\377\1\234\234" \
- "\234\204::<\3;;=::<\235\235\235\203\377\377\377\1\376\376\376\237\377" \
- "\377\377\202;;=\203::<\3;;=::<\376\376\376\236\377\377\377\1kkm\206:" \
- ":<\1\234\234\236\225\377\377\377\1\376\376\376\203\377\377\377\1\265" \
- "\265\267\204::<\1;;=\202::<\1\363\363\363\253\377\377\377\1\250\250\250" \
- "\204::<\3;;=::<GGI\216\377\377\377\1\234\234\234\206::<\1\316\316\316" \
- "\220\377\377\377\4kkm;;=::<;;=\204::<\3;;=xxx\376\376\376\217\377\377" \
- "\377\1\316\316\316\206::<\1\234\234\236\213\377\377\377\2\255\333\363" \
- "Y\270\350\212[\267\350\2X\266\351\326\356\370\202\377\377\377\3\377\377" \
- "\375\377\377\377\376\377\375\234\377\377\377\4\377\377\375\276\317\327" \
- "\0\77j\1>j\210\0=i\3\0>i\0=i\177\236\263\232\377\377\377\1\316\316\316" \
- "\206::<\1kkm\240\377\377\377\1\234\234\236\206::<\1\234\234\236\233\377" \
- "\377\377\1``b\205::<\2;;=\235\235\237\210\377\377\377\1\376\376\376\202" \
- "\377\377\377\2FFH;;=\205::<\1\346\346\346\202\377\377\377\1\376\376\376" \
- "\227\377\377\377\1kkm\206::<\1\316\316\316\266\377\377\377\1\376\376" \
- "\376\205\377\377\377\5__a::<;;=::<;;=\202::<\1SSU\202kkm\1lln\203kkm" \
- "\1lln\222kkm\4__a;;=99;;;=\204::<\3\301\301\301\377\377\377\376\376\376" \
- "\215\377\377\377\202\376\376\376\1\235\235\235\204::<\3""99;;;=\221\221" \
- "\221\243\377\377\377\203::<\1;;=\202::<\1""99;\237\377\377\377\1kkm\206" \
- "::<\1\234\234\236\231\377\377\377\1\332\332\332\202::<\3;;=::<99;\202" \
- ";;=\1\264\264\264\210\377\377\377\1\376\376\376\232\377\377\377\1\376" \
- "\376\376\206\377\377\377\2\376\376\376xxx\202::<\1;;=\203::<\1xxz\216" \
- "\377\377\377\1\234\234\234\206::<\1\316\316\316\220\377\377\377\3\363" \
- "\363\365FFH;;=\202::<\1;;=\202::<\2FFH\363\363\363\220\377\377\377\1" \
- "\316\316\316\206::<\1\234\234\236\213\377\377\377\2\255\333\363Y\270" \
- "\350\211[\267\350\10X\267\347Y\267\352\326\354\371\377\377\377\376\376" \
- "\376\377\376\377\377\377\377\377\376\377\234\377\377\377\2\376\376\374" \
- "\277\320\330\212\0=i\3\0>i\0=i\177\236\263\232\377\377\377\1\316\316" \
- "\316\206::<\1kkm\240\377\377\377\1\234\234\236\206::<\1\234\234\236\233" \
- "\377\377\377\1\265\265\267\203::<\4""99;;;=::<SSU\207\377\377\377\6\376" \
- "\376\376\377\377\377\376\376\376\265\265\265;;=99;\202;;=\4""99;;;=k" \
- "km\377\377\377\202\376\376\376\230\377\377\377\1kkm\206::<\1\316\316" \
- "\316\267\377\377\377\1\376\376\376\203\377\377\377\7\316\316\320<<>9" \
- "9;::<;;=::<99;\203::<\2;;=99;\202::<\1;;=\224::<\1;;=\202::<\1;;=\203" \
- "::<\1kkm\203\377\377\377\1\376\376\376\215\377\377\377\1\300\300\300" \
- "\202::<\11;;=::<99;;;=jjl\377\377\377\376\376\376\377\377\377\376\376" \
- "\376\236\377\377\377\1\346\346\350\206::<\1__a\237\377\377\377\1kkm\206" \
- "::<\1\234\234\236\231\377\377\377\2\376\376\376SSU\206::<\2yy{\376\376" \
- "\376\206\377\377\377\1\376\376\376\234\377\377\377\1\376\376\376\205" \
- "\377\377\377\4\363\363\363::<<<>99;\202::<\3;;=::<\265\265\267\203\377" \
- "\377\377\3\376\376\376\377\377\377\376\376\376\210\377\377\377\1\234" \
- "\234\234\206::<\1\316\316\316\221\377\377\377\4\301\301\30199;::<;;=" \
- "\202::<\6;;=\301\301\301\377\377\377\376\376\376\377\377\377\376\376" \
- "\376\215\377\377\377\1\316\316\316\206::<\1\234\234\236\213\377\377\377" \
- "\2\255\333\363Y\270\350\211[\267\350\6Y\270\350Y\267\352\325\353\370" \
- "\377\377\377\376\377\375\377\375\377\234\377\377\377\5\376\376\376\377" \
- "\377\377\377\377\375\276\317\327\2\77k\211\0=i\3\0>i\0=i\177\236\263" \
- "\232\377\377\377\1\316\316\316\206::<\1kkm\240\377\377\377\1\234\234" \
- "\236\206::<\1\234\234\236\234\377\377\377\1GGI\203::<\1;;=\202::<\2\301" \
- "\301\301\376\376\376\204\377\377\377\1\376\376\376\203\377\377\377\3" \
- "lln::<;;=\202::<\202;;=\4\301\301\303\376\376\376\377\377\377\376\376" \
- "\376\230\377\377\377\1kkm\206::<\1\316\316\316\265\377\377\377\1\376" \
- "\376\376\205\377\377\377\3kkm::<;;=\202::<\2""99;<<>\202::<\3;;=::<;" \
- ";=\202::<\1;;=\222::<\4""99;;;=::<;;=\203::<\1;;=\202::<\3\316\316\316" \
- "\377\377\377\376\376\376\215\377\377\377\3\376\376\376\316\316\316;;" \
- "=\203::<\3;;=::<FFH\234\377\377\377\202\376\376\376\202\377\377\377\3" \
- "\376\376\376\377\377\377\316\316\320\203::<\4;;=::<;;=kkm\237\377\377" \
- "\377\1kkm\206::<\1\234\234\236\226\377\377\377\7\376\376\376\377\377" \
- "\377\376\376\376\377\377\377\204\204\204::<;;=\204::<\2;;=\346\346\346" \
- "\241\377\377\377\1\376\376\376\202\377\377\377\3\376\376\376\377\377" \
- "\377\376\376\376\202\377\377\377\1\250\250\250\202::<\1<<>\204::<\3\346" \
- "\346\346\377\377\377\376\376\376\202\377\377\377\1\376\376\376\211\377" \
- "\377\377\1\234\234\234\206::<\1\316\316\316\220\377\377\377\14\376\376" \
- "\376\377\377\377yy{::<99;;;=::<xxz\377\377\377\376\376\376\377\377\377" \
- "\376\376\376\203\377\377\377\1\376\376\376\212\377\377\377\1\316\316" \
- "\316\206::<\1\234\234\236\213\377\377\377\2\255\333\363Y\270\350\211" \
- "[\267\350\10X\267\347Z\266\351\326\356\370\376\377\377\377\377\375\377" \
- "\377\377\377\376\377\376\377\377\234\377\377\377\4\376\376\374\277\320" \
- "\330\0=i\1>j\210\0=i\3\0>i\0=i\177\236\263\232\377\377\377\1\316\316" \
- "\316\206::<\1kkm\240\377\377\377\1\234\234\236\206::<\1\234\234\236\234" \
- "\377\377\377\1\234\234\234\206::<\3jjj\377\377\377\376\376\376\204\377" \
- "\377\377\4\376\376\376\377\377\377\332\332\33299;\203::<\3;;=::<SSU\202" \
- "\377\377\377\1\376\376\376\231\377\377\377\1kkm\206::<\1\316\316\316" \
- "\267\377\377\377\5\376\376\376\377\377\377\376\376\376\346\346\350;;" \
- "=\203::<\1;;=\202::<\202;;=\202::<\3""99;::<;;=\222::<\202;;=\3""99;" \
- "::<;;=\202::<\1;;=\203::<\2\204\204\206\376\376\376\217\377\377\377\1" \
- "\363\363\363\203::<\6;;=::<;;=::<\347\347\347\376\376\376\234\377\377" \
- "\377\202\376\376\376\5\377\377\377\376\376\376\234\234\236::<;;=\202" \
- "::<\3;;=::<\234\234\236\237\377\377\377\1kkm\206::<\1\234\234\236\231" \
- "\377\377\377\5\376\376\376\316\316\316;;=99;;;=\204::<\1\222\222\224" \
- "\204\377\377\377\1\376\376\376\235\377\377\377\1\376\376\376\202\377" \
- "\377\377\1\376\376\376\203\377\377\377\5SSU;;=::<99;;;=\202::<\3kkk\377" \
- "\377\377\376\376\376\203\377\377\377\1\376\376\376\211\377\377\377\1" \
- "\234\234\234\206::<\1\316\316\316\222\377\377\377\6\363\363\363GGI::" \
- "<;;=FFH\363\363\363\205\377\377\377\1\376\376\376\214\377\377\377\1\316" \
- "\316\316\206::<\1\234\234\236\213\377\377\377\2\255\333\363Y\270\350" \
- "\212[\267\350\3Y\267\352\330\354\363\376\377\377\203\377\377\377\1\377" \
- "\377\375\235\377\377\377\3\276\317\331\0=i\1>j\210\0=i\3\0>i\0=i\177" \
- "\236\263\232\377\377\377\1\316\316\316\206::<\1kkm\240\377\377\377\1" \
- "\234\234\236\206::<\1\234\234\236\233\377\377\377\2\376\376\376\347\347" \
- "\347\202::<\2;;=::<\203;;=\1\346\346\346\207\377\377\377\5\204\204\204" \
- "<<>99;::<;;=\202::<\2\251\251\251\376\376\376\205\377\377\377\1\376\376" \
- "\376\225\377\377\377\1kkm\206::<\1\316\316\316\264\377\377\377\1\376" \
- "\376\376\205\377\377\377\3\204\204\206::<;;=\203::<\1;;=\205::<\1;;=" \
- "\225::<\3;;=::<;;=\202::<\1;;=\202::<\1;;=\202::<\1\347\347\347\220\377" \
- "\377\377\2SSU;;=\203::<\3;;=::<\265\265\265\237\377\377\377\7\376\376" \
- "\376\377\377\377lln99;::<;;=99;\202::<\1\265\265\267\237\377\377\377" \
- "\1kkm\206::<\1\234\234\236\225\377\377\377\1\376\376\376\204\377\377" \
- "\377\3\376\376\376SSU;;=\204::<\3;;=FFH\346\346\346\202\377\377\377\1" \
- "\376\376\376\237\377\377\377\1\376\376\376\204\377\377\377\2\265\265" \
- "\267;;=\202::<\1;;=\203::<\1\265\265\265\217\377\377\377\1\234\234\234" \
- "\206::<\1\316\316\316\223\377\377\377\4\301\301\301::<:::\302\302\302" \
- "\223\377\377\377\1\316\316\316\206::<\1\234\234\236\213\377\377\377\2" \
- "\255\333\363Y\270\350\212[\267\350\2Y\270\350\332\354\370\202\377\377" \
- "\377\3\376\376\376\376\377\377\377\376\373\235\377\377\377\1\276\317" \
- "\331\202\0>i\210\0=i\3\0>i\0=i\177\236\263\232\377\377\377\1\316\316" \
- "\316\206::<\1kkm\240\377\377\377\1\234\234\236\206::<\1\234\234\236\235" \
- "\377\377\377\1\204\204\204\206::<\1\221\221\223\206\377\377\377\2\363" \
- "\363\363GGI\202::<\5""99;;;=::<GGI\363\363\363\204\377\377\377\202\376" \
- "\376\376\226\377\377\377\1kkm\206::<\1\316\316\316\266\377\377\377\1" \
- "\376\376\376\202\377\377\377\3\346\346\350::<;;=\204::<\5""99;;;=:::" \
- "99;;;=\203::<\3;;=99;;;=\220::<\5;;=::<;;=::<;;=\202::<\6;;=::<99;;;" \
- "=::<\204\204\206\220\377\377\377\5yy{99;::<99;;;=\202::<\1xxz\236\377" \
- "\377\377\10\376\376\376\377\377\377\363\363\36399;::<;;=99;;;=\202::" \
- "<\2\346\346\350\376\376\376\236\377\377\377\1kkm\206::<\1\234\234\236" \
- "\231\377\377\377\3\376\376\376\377\377\377\233\233\235\202::<\7;;=::" \
- "<;;=99;;;=\204\204\204\376\376\376\245\377\377\377\2\363\363\363SSU\205" \
- "::<\2;;=FFH\205\377\377\377\3\376\376\376\377\377\377\376\376\376\210" \
- "\377\377\377\1\234\234\234\206::<\1\316\316\316\224\377\377\377\3\205" \
- "\205\205\221\221\221\376\376\376\204\377\377\377\202\376\376\376\215" \
- "\377\377\377\1\316\316\316\206::<\1\234\234\236\213\377\377\377\2\255" \
- "\333\363Y\270\350\212[\267\350\7Y\270\350\321\356\376\377\376\377\377" \
- "\377\377\377\377\375\376\377\375\377\376\377\232\377\377\377\1\377\377" \
- "\375\202\377\377\377\3\275\317\333\0\77k\0>i\210\0=i\3\0>i\0=i\177\236" \
- "\263\232\377\377\377\1\316\316\316\206::<\1kkm\240\377\377\377\1\234" \
- "\234\236\206::<\1\234\234\236\235\377\377\377\1\316\316\316\206::<\1" \
- "FFH\203\377\377\377\1\376\376\376\202\377\377\377\1\250\250\250\203:" \
- ":<\1;;=\202::<\1\204\204\206\203\377\377\377\1\376\376\376\231\377\377" \
- "\377\1kkm\206::<\1\316\316\316\271\377\377\377\1\234\234\236\204::<\4" \
- ";;=::<kkm\234\234\236\202\234\234\234\1\233\233\233\202\234\234\234\3" \
- "\235\235\235\234\234\234\235\235\235\224\234\234\234\202\234\234\236" \
- "\1\204\204\206\206::<\2FFH\363\363\363\217\377\377\377\2\250\250\252" \
- ";;=\206::<\1\364\364\364\237\377\377\377\2\265\265\265;;=\205::<\1TT" \
- "V\240\377\377\377\1kkm\206::<\1\234\234\236\224\377\377\377\3\376\376" \
- "\376\377\377\377\376\376\376\204\377\377\377\3\364\364\366FFH;;=\203" \
- "::<\4;;=::<:::\316\316\316\245\377\377\377\1\221\221\221\202::<\2;;=" \
- "::<\202;;=\2::<\234\234\236\220\377\377\377\1\234\234\234\206::<\1\316" \
- "\316\316\224\377\377\377\1\376\376\376\225\377\377\377\1\316\316\316" \
- "\206::<\1\234\234\236\213\377\377\377\2\255\333\363Y\270\350\212[\267" \
- "\350\4[\267\346\265\340\361\377\376\377\376\376\377\202\377\377\375\1" \
- "\374\377\377\230\377\377\377\3\376\376\376\377\377\377\377\377\375\202" \
- "\377\377\377\3\243\265\301\0>j\0>i\210\0=i\3\0>i\0=i\177\236\263\232" \
- "\377\377\377\1\316\316\316\206::<\1kkm\240\377\377\377\1\234\234\236" \
- "\206::<\1\234\234\236\236\377\377\377\2__a;;=\204::<\5;;=\265\265\265" \
- "\376\376\376\377\377\377\376\376\376\202\377\377\377\1SSU\204::<\3;;" \
- "=::<\346\346\350\235\377\377\377\1kkm\206::<\1\316\316\316\270\377\377" \
- "\377\2\363\363\365GGI\205::<\3;;=\333\333\333\376\376\376\237\377\377" \
- "\377\10FFH::<;;=::<;;=99;;;=\233\233\235\217\377\377\377\5\346\346\346" \
- "::<;;=::<;;=\203::<\1\234\234\234\210\377\377\377\1\376\376\376\217\377" \
- "\377\377\1\376\376\376\206\377\377\377\1TTT\205::<\3;;=\221\221\221\376" \
- "\376\376\237\377\377\377\1kkm\206::<\1\234\234\236\234\377\377\377\12" \
- "\233\233\233::<;;=::<;;=::<;;=::<SSU\363\363\363\212\377\377\377\3\376" \
- "\376\376\377\377\377\376\376\376\221\377\377\377\1\376\376\376\204\377" \
- "\377\377\1\315\315\317\203::<\1;;=\203::<\2FFH\363\363\365\220\377\377" \
- "\377\1\234\234\234\206::<\1\316\316\316\252\377\377\377\1\316\316\316" \
- "\206::<\1\234\234\236\213\377\377\377\2\255\333\363Y\270\350\211[\267" \
- "\350\6Y\270\350[\267\346\227\324\363\377\375\376\377\377\377\376\377" \
- "\375\213\377\377\377\6\376\376\376\377\377\377\373\377\376\377\377\377" \
- "\377\376\377\376\377\377\211\377\377\377\10\377\376\377\374\377\377\377" \
- "\377\375\377\377\377\377\376\377_\207\240\0>l\0\77j\210\0=i\3\0>i\0=" \
- "i\177\236\263\232\377\377\377\1\316\316\316\206::<\1kkm\240\377\377\377" \
- "\1\234\234\236\206::<\1\234\234\236\236\377\377\377\1\265\265\265\204" \
- "::<\3;;=::<__a\204\377\377\377\1\317\317\321\206::<\1kkk\236\377\377" \
- "\377\1kkm\206::<\1\316\316\316\267\377\377\377\3\376\376\376\250\250" \
- "\25299;\202;;=\203::<\1kkm\233\377\377\377\1\376\376\376\205\377\377" \
- "\377\10\234\234\236;;=::<;;=::<;;=99;GGI\204\377\377\377\3\376\376\376" \
- "\377\377\377\376\376\376\210\377\377\377\5\376\376\376__a::<;;=99;\203" \
- ";;=\2FFH\363\363\363\204\377\377\377\3\376\376\376\377\377\377\376\376" \
- "\376\224\377\377\377\5\376\376\376\377\377\377\301\301\301:::;;=\202" \
- "::<\202;;=\4::<\332\332\332\377\377\377\376\376\376\236\377\377\377\1" \
- "kkm\206::<\1\234\234\236\233\377\377\377\3\376\376\376\364\364\364FF" \
- "H\205::<\4;;=99;xxx\376\376\376\203\377\377\377\1\376\376\376\203\377" \
- "\377\377\1\376\376\376\202\377\377\377\1\376\376\376\224\377\377\377" \
- "\4\376\376\376\377\377\377\362\362\362GGI\202::<\6;;=::<;;=::<99;\250" \
- "\250\252\221\377\377\377\1\234\234\234\206::<\1\316\316\316\252\377\377" \
- "\377\1\316\316\316\206::<\1\234\234\236\213\377\377\377\2\255\333\363" \
- "Y\270\350\211[\267\350\7Y\267\352X\267\347[\266\353\301\344\367\377\377" \
- "\377\376\376\376\376\377\377\211\377\377\377\6\377\376\377\377\377\377" \
- "\377\375\376\377\377\377\377\377\375\377\376\377\202\377\377\377\210" \
- "\377\376\377\10\377\377\375\376\377\377\377\377\377\376\377\375\237\266" \
- "\306\0=i\2=g\0>e\210\0=i\3\0>i\0=i\177\236\263\232\377\377\377\1\316" \
- "\316\316\206::<\1kkm\240\377\377\377\1\234\234\236\206::<\1\234\234\236" \
- "\237\377\377\377\1EEG\202::<\202;;=\11""99;;;=\332\332\332\377\377\377" \
- "\376\376\376\377\377\377xxz::<;;=\204::<\1\302\302\302\236\377\377\377" \
- "\1kkm\206::<\1\316\316\316\266\377\377\377\4\376\376\376\377\377\377" \
- "SSU;;=\202::<\1;;=\202::<\1\316\316\320\235\377\377\377\15\376\376\376" \
- "\377\377\377\376\376\376\377\377\377\363\363\365::<;;=99;;;=::<;;=::" \
- "<\265\265\265\215\377\377\377\3\376\376\376\377\377\377\266\266\270\202" \
- "::<\1;;=\203::<\2;;=\204\204\206\205\377\377\377\3\376\376\376\377\377" \
- "\377\376\376\376\213\377\377\377\1\376\376\376\205\377\377\377\1\376" \
- "\376\376\202\377\377\377\2\363\363\363SSU\203::<\4;;=99;;;=SSU\241\377" \
- "\377\377\1kkm\206::<\1\234\234\236\235\377\377\377\3\265\265\265;;=9" \
- "9;\202::<\1;;=\203::<\1\204\204\206\206\377\377\377\1\376\376\376\216" \
- "\377\377\377\3\376\376\376\377\377\377\376\376\376\206\377\377\377\6" \
- "\376\376\376\377\377\377\362\362\364``b::<;;=\202::<\1;;=\202::<\2aa" \
- "c\376\376\376\221\377\377\377\1\234\234\234\206::<\1\316\316\316\252" \
- "\377\377\377\1\316\316\316\206::<\1\234\234\236\213\377\377\377\2\255" \
- "\333\363Y\270\350\211[\267\350\10X\267\347[\267\346[\265\347[\267\346" \
- "\230\320\361\327\360\367\325\356\365\331\355\370\210\326\354\371\10\325" \
- "\355\367\323\355\372\366\373\377\377\376\374\376\377\375\276\320\332" \
- "\277\320\330\301\317\330\210\276\317\331\10\276\317\327\276\320\334\301" \
- "\316\327_\207\241\0>i\0=l\0\77k\0>i\210\0=i\3\0>i\0=i\177\236\263\232" \
- "\377\377\377\1\316\316\316\206::<\1kkm\240\377\377\377\1\234\234\236" \
- "\206::<\1\234\234\236\237\377\377\377\3\222\222\224::<;;=\202::<\3;;" \
- "=99;\205\205\207\202\377\377\377\2\346\346\346;;=\202::<\1;;=\202::<" \
- "\1SSU\237\377\377\377\1kkm\206::<\1\316\316\316\267\377\377\377\5\265" \
- "\265\26799;;;=::<;;=\202::<\1TTV\243\377\377\377\1\204\204\206\205::" \
- "<\2;;=SSU\206\377\377\377\1\376\376\376\210\377\377\377\3\376\376\376" \
- "GGI;;=\202::<\5;;=::<;;=::<\301\301\303\203\377\377\377\1\376\376\376" \
- "\214\377\377\377\1\376\376\376\202\377\377\377\1\376\376\376\202\377" \
- "\377\377\1\376\376\376\204\377\377\377\3\204\204\206;;=::<\202;;=\203" \
- "::<\1\265\265\265\241\377\377\377\1kkm\206::<\1\234\234\236\236\377\377" \
- "\377\12kkk::<99;;;=::<99;;;=::<;;=\204\204\206\210\377\377\377\202\376" \
- "\376\376\213\377\377\377\1\376\376\376\202\377\377\377\1\376\376\376" \
- "\202\377\377\377\1\376\376\376\202\377\377\377\2\364\364\366__a\206:" \
- ":<\3;;=::<\332\332\332\222\377\377\377\1\234\234\234\206::<\1\316\316" \
- "\316\252\377\377\377\1\316\316\316\206::<\1\234\234\236\213\377\377\377" \
- "\2\255\333\363Y\270\350\211[\267\350\3\\\266\350X\270\352\\\266\352\202" \
- "[\267\350\3X\267\347Y\270\350Z\266\347\210Y\270\350\10[\267\350[\265" \
- "\351\327\355\372\376\377\377\377\377\375\0>j\0>i\1\77h\210\0>i\10\0\77" \
- "k\0>g\2=g\0=i\0\77j\0<h\0\77h\1>j\210\0=i\3\0>i\0=i\177\236\263\232\377" \
- "\377\377\1\316\316\316\206::<\1kkm\240\377\377\377\1\234\234\236\206" \
- "::<\1\234\234\236\236\377\377\377\2\376\376\376\346\346\346\202::<\10" \
- ";;=::<99;;;=::<\363\363\363\377\377\377\234\234\236\202::<\6;;=::<;;" \
- "=::<\250\250\250\376\376\376\236\377\377\377\1kkm\206::<\1\316\316\316" \
- "\267\377\377\377\10kkm;;=::<;;=99;::<;;=\264\264\266\236\377\377\377" \
- "\1\376\376\376\204\377\377\377\2\346\346\346;;=\202::<\202;;=\202::<" \
- "\2\316\316\320\376\376\376\203\377\377\377\1\376\376\376\205\377\377" \
- "\377\3\376\376\376\377\377\377\376\376\376\202\377\377\377\3\234\234" \
- "\234::<;;=\202::<\6;;=::<;;=GGI\332\332\332\376\376\376\224\377\377\377" \
- "\1\376\376\376\203\377\377\377\2\266\266\266;;=\202::<\6;;=::<;;=::<" \
- "SSU\376\376\376\241\377\377\377\1kkm\206::<\1\234\234\236\236\377\377" \
- "\377\2\363\363\363GGI\203::<\1;;=\203::<\3""99;\204\204\204\363\363\363" \
- "\225\377\377\377\1\376\376\376\204\377\377\377\4\376\376\376\346\346" \
- "\346``b::<\202;;=\3::<99;<<>\202::<\1\250\250\250\223\377\377\377\1\234" \
- "\234\234\206::<\1\316\316\316\252\377\377\377\1\316\316\316\206::<\1" \
- "\234\234\236\213\377\377\377\2\255\333\363Y\270\350\211[\267\350\10Y" \
- "\270\350X\270\353Y\267\352X\266\351X\271\346[\267\350\\\266\353[\267" \
- "\350\210Y\270\350\7X\267\345]\267\351\323\355\372\377\376\377\376\377" \
- "\377\4=h\0>g\211\0=i\10\2=i\0@j\0>i\1>j\0>i\1\77h\0>g\0>j\210\0=i\3\0" \
- ">i\0=i\177\236\263\232\377\377\377\1\316\316\316\206::<\1kkm\240\377" \
- "\377\377\1\234\234\236\206::<\1\234\234\236\237\377\377\377\6\376\376" \
- "\376yy{::<;;=::<;;=\202::<\4\251\251\251\376\376\376SSU;;=\203::<\3;" \
- ";=FFH\363\363\363\237\377\377\377\1kkm\206::<\1\316\316\316\264\377\377" \
- "\377\5\376\376\376\377\377\377\315\315\317::<;;=\204::<\2FFH\376\376" \
- "\376\237\377\377\377\1\376\376\376\203\377\377\377\3\376\376\376kkm;" \
- ";=\204::<\6""99;lln\377\377\377\376\376\376\377\377\377\376\376\376\202" \
- "\377\377\377\3\376\376\376\377\377\377\376\376\376\205\377\377\377\10" \
- "\376\376\376\377\377\377SSU::<99;;;=99;;;=\202::<\2FFF\332\332\332\203" \
- "\377\377\377\1\376\376\376\212\377\377\377\1\376\376\376\210\377\377" \
- "\377\1\265\265\265\206::<\3""99;::<\265\265\265\203\377\377\377\1\376" \
- "\376\376\236\377\377\377\1kkm\206::<\1\234\234\236\233\377\377\377\1" \
- "\376\376\376\203\377\377\377\1\331\331\331\204::<\3""99;;;=99;\202;;" \
- "=\2^^^\332\332\332\202\377\377\377\1\376\376\376\216\377\377\377\1\376" \
- "\376\376\206\377\377\377\5\376\376\376\316\316\316FFH::<;;=\204::<\7" \
- "99;::<\204\204\204\377\377\377\376\376\376\377\377\377\376\376\376\220" \
- "\377\377\377\1\234\234\234\206::<\1\316\316\316\252\377\377\377\1\316" \
- "\316\316\206::<\1\234\234\236\213\377\377\377\2\255\333\363Y\270\350" \
- "\213[\267\350\6Y\270\350[\266\353[\267\350]\267\351X\266\351X\270\350" \
- "\210[\267\350\10X\266\351Z\266\351\326\354\367\377\376\377\376\377\372" \
- "\0>j\0>i\1>j\210\0=i\10\1\77h\0=h\0>i\1\77h\0>j\0=i\0>i\1>j\210\0=i\3" \
- "\0>i\0=i\177\236\263\232\377\377\377\1\316\316\316\206::<\1kkm\240\377" \
- "\377\377\1\234\234\236\206::<\1\234\234\236\237\377\377\377\2\376\376" \
- "\376\316\316\316\203::<\1;;=\202::<\4SSU\265\265\267;;=99;\202::<\5;" \
- ";=99;\204\204\204\377\377\377\376\376\376\236\377\377\377\1kkm\206::" \
- "<\1\316\316\316\263\377\377\377\1\376\376\376\202\377\377\377\1xxz\202" \
- "::<\1;;=\202::<\3""99;\234\234\236\376\376\376\236\377\377\377\1\375" \
- "\375\375\202\377\377\377\1\376\376\376\202\377\377\377\5\317\317\317" \
- "99;::<;;=::<\202;;=\2::<\332\332\332\210\377\377\377\3\376\376\376\377" \
- "\377\377\376\376\376\204\377\377\377\2\316\316\316;;=\206::<\3;;=::<" \
- "\250\250\252\217\377\377\377\1\376\376\376\204\377\377\377\2\363\363" \
- "\363\222\222\224\202::<\2;;=::<\202;;=\3""99;;;=kkm\205\377\377\377\1" \
- "\376\376\376\235\377\377\377\1kkm\206::<\1\234\234\236\235\377\377\377" \
- "\1\376\376\376\202\377\377\377\2\266\266\26699;\202::<\3;;=::<;;=\202" \
- "::<\3;;=FFH\234\234\234\202\377\377\377\1\376\376\376\223\377\377\377" \
- "\2\364\364\364\204\204\206\202::<\1;;=\202::<\1;;=\202::<\3""99;``b\376" \
- "\376\376\224\377\377\377\1\234\234\234\206::<\1\316\316\316\252\377\377" \
- "\377\1\316\316\316\206::<\1\234\234\236\213\377\377\377\2\255\333\363" \
- "Y\270\350\211[\267\350\10Y\271\353Z\266\347\\\267\344[\267\346X\267\347" \
- "[\267\350X\270\353Z\266\347\210Y\270\350\10Y\267\352\\\267\346\325\355" \
- "\371\377\377\377\376\377\377\0>g\0\77k\0>i\210\0\77j\10\0>i\3>h\0=i\0" \
- "\77i\0=j\0>g\0=j\0=f\210\0=i\3\0>i\0=i\177\236\263\232\377\377\377\1" \
- "\316\316\316\206::<\1kkm\240\377\377\377\1\234\234\236\206::<\1\234\234" \
- "\236\234\377\377\377\3\376\376\376\377\377\377\376\376\376\202\377\377" \
- "\377\2SSU;;=\202::<\202;;=\3::<SSU::<\202;;=\203::<\1\332\332\332\240" \
- "\377\377\377\1kkm\206::<\1\316\316\316\265\377\377\377\1\346\346\346" \
- "\203::<\1;;=\202::<\2;;=\363\363\365\235\377\377\377\1\376\376\376\210" \
- "\377\377\377\1SSU\202;;=\204::<\1\204\204\204\202\377\377\377\202\376" \
- "\376\376\214\377\377\377\1\221\221\221\205::<\202;;=\4::<;;=kkm\316\316" \
- "\316\221\377\377\377\2\301\301\301SSS\210::<\2FFH\363\363\365\243\377" \
- "\377\377\1kkm\206::<\1\234\234\236\241\377\377\377\1\266\266\270\203" \
- "::<\1;;=\205::<\3:::RRR\265\265\265\222\377\377\377\3\363\363\363\234" \
- "\234\234FFF\202::<\1;;=\206::<\2``b\363\363\363\225\377\377\377\1\234" \
- "\234\234\206::<\1\316\316\316\252\377\377\377\1\316\316\316\206::<\1" \
- "\234\234\236\213\377\377\377\2\255\333\363Y\270\350\211[\267\350\10Z" \
- "\266\347[\267\346Z\265\352X\266\351\\\270\351[\267\346X\267\347[\265" \
- "\347\210[\267\350\10Y\267\352[\266\345\325\355\367\376\375\377\377\377" \
- "\375\3>j\0=i\1>j\210\0>i\10\0\77j\1\77h\0>j\0>g\3>j\0\77i\0=j\0>i\210" \
- "\0=i\3\0>i\0=i\177\236\263\232\377\377\377\1\316\316\316\206::<\1kkm" \
- "\240\377\377\377\1\234\234\236\206::<\1\234\234\236\241\377\377\377\6" \
- "\266\266\270::<;;=::<99;::<\202;;=\205::<\2kkm\376\376\376\240\377\377" \
- "\377\1kkm\206::<\1\316\316\316\265\377\377\377\4\205\205\205;;=::<;;" \
- "=\203::<\3\204\204\206\377\377\377\376\376\376\245\377\377\377\1\265" \
- "\265\267\207::<\2\346\346\346\376\376\376\216\377\377\377\4\376\376\376" \
- "lll::<;;=\202::<\13;;=::<;;=::<;;=::<kkm\264\264\266\363\363\365\377" \
- "\377\377\376\376\376\202\377\377\377\1\376\376\376\206\377\377\377\3" \
- "\346\346\350\250\250\252TTV\204::<\3;;=::<;;=\202::<\2;;=\333\333\333" \
- "\202\377\377\377\1\376\376\376\237\377\377\377\3\376\376\376\377\377" \
- "\377kkm\203::<\1;;=\202::<\1\235\235\237\242\377\377\377\1\265\265\265" \
- "\203::<\1;;=\207::<\4GGI\220\220\222\332\332\334\376\376\376\206\377" \
- "\377\377\1\376\376\376\204\377\377\377\5\376\376\376\302\302\302\204" \
- "\204\206::<;;=\202::<\11""99;;;=::<;;=::<;;=::<```\363\363\363\226\377" \
- "\377\377\1\234\234\234\202::<\1;;=\202::<\2;;=\316\316\316\252\377\377" \
- "\377\4\316\316\316::<;;=99;\203::<\3\234\234\234\377\377\377\376\376" \
- "\376\204\377\377\377\7\373\377\376\377\376\377\377\377\377\376\377\377" \
- "\377\376\377\253\333\362[\265\351\203[\267\352\6Y\267\352[\267\350X\267" \
- "\345Y\270\346Y\270\350Y\267\352\220[\267\350\5X\267\347Y\270\350\325" \
- "\355\371\377\376\377\377\377\377\202\0>g\1\1>k\220\0=i\15\0>g\1>j\0>" \
- "i\0\77j\1>j\0=i\0\77j\0>j\0=i\1<h}\237\270\376\377\377\377\376\374\226" \
- "\377\377\377\3\376\376\376\377\377\377\316\316\316\204::<\3""99;;;=l" \
- "ln\240\377\377\377\5\234\234\234::<;;=::<;;=\202::<\1\235\235\237\241" \
- "\377\377\377\10\363\363\363FFF::<;;=::<;;=::<;;=\203::<\3;;=::<\265\265" \
- "\265\237\377\377\377\3\376\376\376\377\377\377kkm\202::<\1;;=\202::<" \
- "\4;;=\316\316\316\377\377\377\376\376\376\250\377\377\377\1\376\376\376" \
- "\202\377\377\377\1\376\376\376\202\377\377\377\1\376\376\376\203\377" \
- "\377\377\6\364\364\364::<99;;;=::<;;=\202::<\1\347\347\351\203\377\377" \
- "\377\1\376\376\376\244\377\377\377\4FFH;;=::<99;\203::<\1\220\220\222" \
- "\220\377\377\377\2\363\363\363``b\202::<\1;;=\203::<\1;;=\205::<\5__" \
- "_\222\222\222\234\234\234\316\316\316\317\317\317\202\316\316\316\7\301" \
- "\301\301\234\234\236\204\204\206__a;;=99;;;=\203::<\2;;=99;\203;;=\2" \
- "::<\265\265\265\204\377\377\377\1\376\376\376\235\377\377\377\5\376\376" \
- "\376\377\377\377\376\376\376kkm::<\202;;=\6::<;;=::<\234\234\236\377" \
- "\377\377\376\376\376\236\377\377\377\1\376\376\376\202\377\377\377\5" \
- "\301\301\303GGI;;=::<;;=\206::<\7;;=::<99;GGIwwy\235\235\235\300\300" \
- "\300\202\316\316\316\10\315\315\315\317\317\317\315\315\315\265\265\265" \
- "\234\234\234jjj<<>99;\203::<\1;;=\202::<\2""99;;;=\203::<\1\204\204\206" \
- "\206\377\377\377\1\376\376\376\221\377\377\377\10\234\234\234;;=::<9" \
- "9;;;=::<99;\316\316\316\252\377\377\377\4\317\317\317;;=88:;;=\202::" \
- "<\3;;=\234\234\234\376\376\376\205\377\377\377\1\377\375\377\202\377" \
- "\377\375\6\377\376\377\377\377\375\253\333\362Y\270\350X\267\347Z\266" \
- "\347\202Y\270\350\1[\267\350\202Z\266\347\2[\267\350Z\266\347\220[\267" \
- "\350\5[\267\352Z\266\351\327\355\372\377\375\376\377\376\377\202\1>j" \
- "\1\1>k\220\0>i\202\0=i\14\0\77k\0>i\0=i\1>j\0=i\0=j\0\77k\0=i\177\236" \
- "\263\377\377\377\376\377\377\375\376\377\224\377\377\377\1\376\376\376" \
- "\202\377\377\377\1\316\316\316\203::<\202;;=\3""99;kkm\376\376\376\234" \
- "\377\377\377\1\376\376\376\202\377\377\377\1\233\233\233\202::<\7;;=" \
- "::<;;=::<\234\234\236\377\377\377\376\376\376\233\377\377\377\3\376\376" \
- "\376\377\377\377\376\376\376\202\377\377\377\4\221\221\221;;=99;;;=\202" \
- "::<\202;;=\203::<\1SSU\203\377\377\377\1\376\376\376\233\377\377\377" \
- "\10\376\376\376\377\377\377\376\376\376kkm::<;;=::<;;=\202::<\1;;=\202" \
- "::<\1;;=\240::<\1kkk\207\377\377\377\1\376\376\376\203\377\377\377\3" \
- "\375\375\375\377\377\377\376\376\376\202\377\377\377\2\233\233\235::" \
- "<\202;;=\203::<\1xxz\251\377\377\377\1\235\235\237\202::<\1;;=\203::" \
- "<\3GGI\363\363\363\376\376\376\217\377\377\377\2\363\363\363yyy\204:" \
- ":<\1;;=\203::<\1;;=\206::<\1""99;\203::<\1;;=\203::<\6;;=99;;;=::<;;" \
- "=99;\202;;=\3""99;GGI\301\301\301\206\377\377\377\1\376\376\376\232\377" \
- "\377\377\1\376\376\376\204\377\377\377\1lln\202::<\1;;=\202::<\2;;=\234" \
- "\234\236\241\377\377\377\1\376\376\376\202\377\377\377\2\332\332\334" \
- "__a\211::<\1;;=\205::<\1;;=\202::<\1;;=\202::<\4;;=::<99;;;=\202::<\1" \
- ";;=\202::<\1;;=\203::<\2FFH\265\265\267\206\377\377\377\3\376\376\376" \
- "\377\377\377\376\376\376\220\377\377\377\3\234\234\236::<;;=\203::<\2" \
- ";;=\316\316\316\252\377\377\377\2\315\315\31599;\203::<\5;;=::<\234\234" \
- "\234\377\377\377\376\376\376\205\377\377\377\7\377\377\375\375\377\376" \
- "\377\377\377\375\376\377\255\333\365Z\266\345[\267\350\202Y\270\350\1" \
- "X\267\347\202Y\267\352\3Z\266\351Z\266\347Y\270\350\221[\267\350\2[\267" \
- "\352\323\355\372\202\376\377\377\1\0=j\222\0=i\204\0>i\14\1\77h\0>g\0" \
- "=f\1>j\0\77i\0>i\177\237\266\377\377\375\377\376\375\377\377\377\376" \
- "\377\377\377\376\377\225\377\377\377\2\316\316\316::<\202;;=\202::<\4" \
- ";;=kkm\377\377\377\376\376\376\235\377\377\377\2\376\376\376\235\235" \
- "\235\202::<\1;;=\202::<\2;;=\234\234\236\242\377\377\377\3\346\346\346" \
- "::<;;=\210::<\2\235\235\237\376\376\376\234\377\377\377\1\376\376\376" \
- "\204\377\377\377\1lln\202::<\3;;=::<;;=\203::<\2;;=99;\240::<\1kkk\210" \
- "\377\377\377\11\376\376\376\377\377\377\376\376\376\377\377\377\376\376" \
- "\376\377\377\377\376\376\376\364\364\366GGI\205::<\6;;=\316\316\316\377" \
- "\377\377\376\376\376\377\377\377\376\376\376\245\377\377\377\11\345\345" \
- "\345;;=::<;;=::<;;=::<;;=\234\234\236\222\377\377\377\7\234\234\234;" \
- ";=::<;;=99;;;=99;\203::<\1;;=\202::<\203;;=\2::<;;=\202::<\1;;=\202:" \
- ":<\1;;=\202::<\12;;=::<;;=99;::<``b\332\332\332\376\376\376\377\377\377" \
- "\376\376\376\202\377\377\377\5\376\376\376\377\377\377\376\376\376\377" \
- "\377\377\376\376\376\232\377\377\377\5\376\376\376\377\377\377\376\376" \
- "\376kkm;;=\202::<\1;;=\202::<\1\234\234\236\236\377\377\377\1\376\376" \
- "\376\207\377\377\377\2\234\234\236;;=\202::<\1;;=\204::<\1;;=\211::<" \
- "\1;;=\202::<\1;;=\202::<\1;;=\202::<\1;;=\203::<\3;;=kkm\346\346\346" \
- "\203\377\377\377\1\376\376\376\204\377\377\377\1\376\376\376\221\377" \
- "\377\377\2\234\234\236;;=\202::<\1;;=\202::<\1\316\316\316\252\377\377" \
- "\377\4\316\316\316;;=99;;;=\203::<\1\234\234\234\210\377\377\377\7\376" \
- "\377\377\377\375\376\377\377\375\256\332\363Y\270\350Y\267\352[\267\352" \
- "\202[\267\350\5X\270\350X\270\352Y\267\352Y\270\350X\267\347\220[\267" \
- "\350\5X\267\347[\267\350\325\355\367\377\377\373\377\377\375\202\0\77" \
- "j\1\0>g\220\0>i\1\0\77j\203\0>i\202\0=i\6\1>j\0>i\0\77h\0>g\177\236\263" \
- "\377\377\375\203\377\377\377\1\377\376\377\222\377\377\377\1\376\376" \
- "\376\202\377\377\377\1\316\316\316\203::<\1;;=\202::<\2kkm\376\376\376" \
- "\233\377\377\377\1\376\376\376\203\377\377\377\5\234\234\234::<;;=::" \
- "<;;=\202::<\1\234\234\236\235\377\377\377\202\376\376\376\202\377\377" \
- "\377\5\376\376\376\377\377\377xxz99;;;=\204::<\4;;=::<;;=\362\362\362" \
- "\237\377\377\377\5\376\376\376\377\377\377\376\376\376kkm;;=\207::<\2" \
- "99;;;=\240::<\1lll\205\377\377\377\1\376\376\376\203\377\377\377\1\376" \
- "\376\376\202\377\377\377\1\376\376\376\202\377\377\377\4\265\265\267" \
- ";;=::<;;=\202::<\2;;=__a\205\377\377\377\1\376\376\376\245\377\377\377" \
- "\3\204\204\206::<;;=\204::<\2SSU\376\376\376\215\377\377\377\1\376\376" \
- "\376\204\377\377\377\2\316\316\316__a\206::<\1;;=\214::<\5;;=::<;;=:" \
- ":<;;=\203::<\2\234\234\234\363\363\363\204\377\377\377\1\376\376\376" \
- "\243\377\377\377\1lln\206::<\2\233\233\235\376\376\376\233\377\377\377" \
- "\1\376\376\376\202\377\377\377\1\376\376\376\207\377\377\377\3\345\345" \
- "\345lln;;=\204::<\5;;=99;::<99;;;=\205::<\1;;=\203::<\3""99;;;=99;\206" \
- "::<\2TTV\265\265\265\234\377\377\377\10\234\234\234;;=::<;;=::<;;=::" \
- "<\316\316\316\252\377\377\377\1\315\315\315\206::<\4\235\235\235\376" \
- "\376\376\377\377\377\376\376\376\205\377\377\377\12\377\377\373\377\377" \
- "\377\377\377\375\267\340\366[\270\344Z\266\351[\267\352Z\266\351[\265" \
- "\347[\267\350\202Y\270\350\2\\\270\351Z\266\347\220[\267\350\10X\267" \
- "\347X\266\351\325\355\371\377\376\377\377\377\377\0\77k\0=h\3>j\220\0" \
- "\77j\16\1>j\0=i\1>j\0=i\0\77j\0>i\0=h\0\77j\0\77h\1<f\177\236\263\377" \
- "\377\375\376\376\377\376\377\377\225\377\377\377\202\376\376\376\2\317" \
- "\317\317::<\202;;=\1::<\202;;=\1kkm\235\377\377\377\1\376\376\376\202" \
- "\377\377\377\2\234\234\234;;=\205::<\2\233\233\235\376\376\376\232\377" \
- "\377\377\1\376\376\376\204\377\377\377\1\376\376\376\202\377\377\377" \
- "\1\316\316\316\203::<\1;;=\204::<\3\204\204\206\377\377\377\376\376\376" \
- "\241\377\377\377\1lln\203::<\202;;=\203::<\1;;=\241::<\1kkk\206\377\377" \
- "\377\3\376\376\376\377\377\377\376\376\376\206\377\377\377\1TTV\203:" \
- ":<\4""99;;;=99;\265\265\267\253\377\377\377\3\331\331\331;;=99;\204:" \
- ":<\2;;=\264\264\264\217\377\377\377\1\376\376\376\204\377\377\377\2\264" \
- "\264\266SSU\202::<\2""99;;;=\203::<\3;;=::<;;=\206::<\5;;=99;;;=::<;" \
- ";=\20299;\6\204\204\206\346\346\346\377\377\377\376\376\376\377\377\377" \
- "\376\376\376\203\377\377\377\202\376\376\376\202\377\377\377\1\376\376" \
- "\376\231\377\377\377\3\376\376\376\377\377\377\376\376\376\202\377\377" \
- "\377\12lll::<;;=::<99;::<;;=\234\234\236\377\377\377\376\376\376\233" \
- "\377\377\377\1\375\375\375\213\377\377\377\4\316\316\316xxx;;=99;\204" \
- "::<\1;;=\202::<\1;;=\204::<\4;;=::<;;=99;\203::<\1;;=\202::<\2SSS\265" \
- "\265\265\210\377\377\377\3\376\376\376\377\377\377\376\376\376\223\377" \
- "\377\377\1\234\234\234\206::<\1\316\316\316\250\377\377\377\3\376\376" \
- "\376\377\377\377\315\315\315\202::<\7;;=::<;;=::<\234\234\234\377\377" \
- "\377\376\376\376\202\377\377\377\21\376\376\376\377\377\377\376\377\373" \
- "\377\377\377\376\377\377\376\377\375\377\376\377\353\366\374X\266\351" \
- "X\270\350W\267\347X\270\350X\267\347Z\266\347\\\270\347X\267\345Y\270" \
- "\350\221[\267\350\7Z\266\347[\267\350\327\355\372\377\375\377\377\377" \
- "\377\0>g\0\77h\221\0=i\1\0>g\202\1\77h\1\0=i\202\0>i\11\0\77j\0>g\0>" \
- "j\0\77m\336\347\354\376\377\377\377\376\377\376\377\377\377\377\375\222" \
- "\377\377\377\1\376\376\376\203\377\377\377\1\316\316\316\202::<\1;;=" \
- "\203::<\2kkm\376\376\376\233\377\377\377\1\376\376\376\202\377\377\377" \
- "\3\376\376\376\234\234\234;;=\202::<\6""99;::<;;=\234\234\236\377\377" \
- "\377\376\376\376\237\377\377\377\1\376\376\376\202\377\377\377\1SSS\202" \
- ";;=\1""99;\204;;=\3\331\331\331\377\377\377\376\376\376\234\377\377\377" \
- "\3\376\376\376\377\377\377\376\376\376\202\377\377\377\3lll::<;;=\202" \
- "::<\202;;=\203::<\1;;=\240::<\1kkk\204\377\377\377\1\376\376\376\211" \
- "\377\377\377\3\302\302\302;;;999\202::<\3;;=::<TTT\210\377\377\377\1" \
- "\376\376\376\244\377\377\377\2kkk;;=\202::<\203:::\1TTT\226\377\377\377" \
- "\3\301\301\301xxz;;=\202::<\1;;=\202::<\1;;=\202::<\5;;=::<;;=::<;;=" \
- "\202::<\5;;=99;SSU\235\235\237\347\347\351\204\377\377\377\1\376\376" \
- "\376\207\377\377\377\3\376\376\376\377\377\377\376\376\376\235\377\377" \
- "\377\10kkk:::::<999;;;:::;;;\233\233\233\236\377\377\377\1\376\376\376" \
- "\211\377\377\377\1\376\376\376\202\377\377\377\3\346\346\350\251\251" \
- "\253``b\202::<\3;;=::<;;=\202::<\1;;=\205::<\1;;=\203::<\5;;=FFH\204" \
- "\204\204\316\316\316\376\376\376\204\377\377\377\1\376\376\376\232\377" \
- "\377\377\1\234\234\234\202::<\5""99;;;=99;;;;\315\315\315\252\377\377" \
- "\377\3\316\316\316:::;;;\202:::\3;;;::<\234\234\234\206\377\377\377\1" \
- "\377\377\375\203\377\376\377\11\377\377\377\377\377\375\303\344\367W" \
- "\270\345^\266\344X\267\347Y\271\353Z\266\351\\\266\350\202Y\270\350\221" \
- "[\267\352\3[\267\350[\265\347\325\355\371\202\376\377\377\3\2=e\0>g\0" \
- "\77m\220\0=i\6\0\77j\0>i\0=h\0\77j\0=i\0\77j\202\0>g\2\1\77h\240\266" \
- "\304\204\377\377\377\2\376\376\376\377\377\375\223\377\377\377\14\376" \
- "\376\376\377\377\377\315\315\315;;=::<:::;;;:::;;;kkk\377\377\377\376" \
- "\376\376\233\377\377\377\1\376\376\376\202\377\377\377\10\235\235\235" \
- "99;::<999;;;:::;;;\233\233\233\234\377\377\377\1\376\376\376\207\377" \
- "\377\377\1\265\265\265\202::<\1;;=\203::<\1kkk\203\377\377\377\1\376" \
- "\376\376\240\377\377\377\2kkk:::\202::<\3;;=99;;;=\244::<\1kkk\205\377" \
- "\377\377\1\376\376\376\210\377\377\377\1\346\346\346\206\316\316\316" \
- "\3\332\332\332\377\377\377\377\377\375\253\377\377\377\2\346\346\346" \
- "\316\316\316\202\316\316\320\203\316\316\316\1\315\315\315\225\377\377" \
- "\377\202\376\376\376\202\377\377\377\4\316\316\320\234\234\236kkmSSU" \
- "\205::<\1;;=\203::<\5kkm\204\204\206\264\264\266\346\346\350\376\376" \
- "\376\214\377\377\377\1\376\376\376\202\377\377\377\202\376\376\376\231" \
- "\377\377\377\1\376\376\376\203\377\377\377\2\331\331\331\317\317\317" \
- "\205\316\316\316\1\347\347\347\243\377\377\377\1\376\376\376\211\377" \
- "\377\377\5\376\376\377\347\347\351\265\265\267\204\204\206lln\212::<" \
- "\4``bxxz\234\234\236\332\332\332\207\377\377\377\1\376\376\376\210\377" \
- "\377\377\1\376\376\376\222\377\377\377\1\346\346\346\203\316\316\320" \
- "\4\316\316\316\316\316\320\315\315\315\364\364\364\251\377\377\377\2" \
- "\376\376\376\364\364\364\205\316\316\316\2\316\316\320\346\346\346\210" \
- "\377\377\377\16\377\376\377\377\377\375\376\377\377\377\377\377\377\375" \
- "\377\326\354\371\241\326\366\206\310\352\200\312\357\202\312\362\204" \
- "\310\357\204\312\356\203\311\355\205\311\360\220\204\312\356\10\203\311" \
- "\355\201\311\361\342\360\371\376\377\377\377\377\375>n\222Bm\215@n\220" \
- "\220@n\217\3@l\217An\217Bo\220\202An\217\5@m\214Dm\213l\223\260\277\320" \
- "\332\376\377\377\202\377\377\377\1\377\377\375\202\377\377\377\1\376" \
- "\377\377\225\377\377\377\3\363\363\363\317\317\321\316\316\320\204\316" \
- "\316\316\1\332\332\332\240\377\377\377\1\346\346\346\202\316\316\320" \
- "\204\316\316\316\1\347\347\347\243\377\377\377\3\376\376\376\363\363" \
- "\363lln\202kkm\1lln\202kkm\1\301\301\301\240\377\377\377\1\376\376\376" \
- "\203\377\377\377\2\331\331\331\317\317\317\202\316\316\316\202\317\317" \
- "\317\245\316\316\316\2\332\332\332\376\376\376\351\377\377\377\5\332" \
- "\332\332\315\315\315\316\316\316\315\315\315\363\363\363\361\377\377" \
- "\377\202\316\316\316\1\317\317\317\202\316\316\316\2\315\315\315\363" \
- "\363\363\377\377\377\377\377\377\377\377\377\377\377\377\334\377\377" \
- "\377\1\376\376\376\375\377\377\377\1\376\376\376\377\377\377\377\377" \
- "\377\377\377\377\377\377\377\340\377\377\377\1\376\376\376\370\377\377" \
- "\377\1\376\376\376\377\377\377\377\377\377\377\377\377\377\377\377\342" \
- "\377\377\377\1\376\376\376\377\377\377\377\377\377\377\377\377\377\377" \
- "\377\377\377\377\377\334\377\377\377\1\376\376\376\362\377\377\377\1" \
- "\376\376\376\377\377\377\377\377\377\377\377\377\377\377\377\346\377" \
- "\377\377\1\376\376\376\363\377\377\377\1\376\376\376\377\377\377\377" \
- "\377\377\377\377\377\377\377\377\342\377\377\377\1\376\376\376\373\377" \
- "\377\377\1\376\376\376\377\377\377\377\377\377\377\377\377\377\377\377" \
- "\340\377\377\377\3\376\376\376\377\377\377\376\376\376\377\377\377\377" \
- "\377\377\377\377\377\377\377\377\377\377\377\377\243\377\377\377\3\376" \
- "\376\376\377\377\377\376\376\376\203\377\377\377\1\376\376\376\233\377" \
- "\377\377\1\376\376\376\205\377\377\377\1\376\376\376\214\377\377\377" \
- "\1\376\376\376\205\377\377\377\1\376\376\376\260\377\377\377\3\376\376" \
- "\376\377\377\377\376\376\376\300\377\377\377\1\376\376\376\306\377\377" \
- "\377\1\376\376\376\233\377\377\377\4\376\377\377\376\376\376\377\376" \
- "\377\377\377\377\203\376\377\375\203\377\377\377\3\377\377\375\376\377" \
- "\375\376\377\377\265\377\377\377\4\377\377\375\377\376\377\376\377\377" \
- "\377\377\375\202\377\376\377\210\377\377\377\7\377\377\375\376\377\377" \
- "\377\377\377\375\377\376\376\377\377\377\376\377\376\377\377\211\377" \
- "\377\377\4\376\377\375\377\377\377\376\376\376\377\377\375\202\377\377" \
- "\377\2\377\377\375\376\376\376\220\377\377\377\1\376\377\375\202\377" \
- "\377\375\5\377\376\377\377\377\373\377\377\377\375\377\376\377\377\375" \
- "\210\377\377\377\1\377\376\377\202\377\377\375\202\377\377\377\3\376" \
- "\377\377\377\377\375\377\376\377\213\377\377\377\3\376\377\377\376\377" \
- "\375\377\377\375\203\377\377\377\203\376\377\375\4\377\377\377\377\376" \
- "\377\376\376\376\376\377\377\233\377\377\377\3\376\377\377\376\377\375" \
- "\377\377\375\203\377\377\377\203\376\377\375\4\377\377\377\377\376\377" \
- "\376\376\376\376\377\377\210\377\377\377\1\377\376\377\203\377\377\377" \
- "\4\376\377\377\377\377\375\377\376\377\376\377\373\211\377\377\377\4" \
- "\376\377\377\376\376\374\377\376\377\377\375\376\226\377\377\377\5\376" \
- "\377\377\375\377\374\377\377\375\376\375\377\377\377\375\210\377\377" \
- "\377\1\377\377\375\202\376\377\377\1\377\377\373\242\377\377\377\1\376" \
- "\376\376\212\377\377\377\1\376\376\376\207\377\377\377\1\376\376\376" \
- "\237\377\377\377\1\376\376\376\203\377\377\377\1\376\376\376\214\377" \
- "\377\377\1\376\376\376\204\377\377\377\202\376\376\376\257\377\377\377" \
- "\1\376\376\376\202\377\377\377\1\376\376\376\202\377\377\377\1\376\376" \
- "\376\246\377\377\377\1\376\376\376\224\377\377\377\1\376\376\376\250" \
- "\377\377\377\1\376\376\376\202\377\377\377\1\376\376\376\236\377\377" \
- "\377\3\376\376\376\377\377\377\376\376\376\230\377\377\377\4\377\377" \
- "\373\376\377\377\376\376\376\377\376\377\203\377\377\377\1\377\377\375" \
- "\202\377\377\377\1\377\376\377\202\377\377\375\3\377\377\377\377\377" \
- "\375\376\376\374\260\377\377\377\2\377\377\375\376\376\376\203\377\376" \
- "\377\214\377\377\377\7\376\377\377\377\376\377\377\377\375\377\377\377" \
- "\377\376\377\375\377\376\377\377\375\210\377\377\377\7\377\376\374\377" \
- "\377\375\377\376\377\377\377\375\376\376\376\377\377\377\376\376\376" \
- "\221\377\377\377\1\377\376\377\203\377\377\377\202\377\377\375\212\377" \
- "\377\377\2\377\377\375\377\377\377\202\377\377\375\214\377\377\377\3" \
- "\376\376\374\377\377\375\377\377\377\202\377\377\375\1\377\376\377\202" \
- "\377\377\377\1\377\377\375\203\377\377\377\4\377\376\377\376\376\376" \
- "\376\377\377\377\377\373\230\377\377\377\3\376\376\374\377\377\375\377" \
- "\377\377\202\377\377\375\1\377\376\377\202\377\377\377\1\377\377\375" \
- "\203\377\377\377\4\377\376\377\376\376\376\376\377\377\377\377\373\213" \
- "\377\377\377\1\377\376\374\214\377\377\377\2\377\377\375\377\376\377" \
- "\202\377\377\375\3\376\377\377\377\377\377\377\377\373\221\377\377\377" \
- "\3\376\377\375\376\377\377\377\376\377\204\377\377\377\1\377\377\375" \
- "\212\377\377\377\5\377\376\377\377\377\375\377\377\377\376\377\375\376" \
- "\377\373\243\377\377\377\1\376\376\376\205\377\377\377\1\376\376\376" \
- "\204\377\377\377\1\376\376\376\242\377\377\377\1\376\376\376\205\377" \
- "\377\377\1\376\376\376\213\377\377\377\1\376\376\376\206\377\377\377" \
- "\1\376\376\376\263\377\377\377\3\376\376\376\377\377\377\376\376\376" \
- "\270\377\377\377\1\376\376\376\312\377\377\377\1\376\376\376\234\377" \
- "\377\377\1\377\377\375\202\376\377\377\7\377\376\377\377\377\377\376" \
- "\377\377\377\376\377\377\377\375\377\377\377\376\377\377\202\377\376" \
- "\377\2\376\377\375\376\377\377\262\377\377\377\10\377\377\375\376\377" \
- "\377\377\376\377\377\377\373\377\377\377\377\376\377\376\377\375\377" \
- "\377\375\211\377\377\377\3\376\377\377\377\376\377\377\377\375\202\377" \
- "\377\377\2\376\377\377\376\376\376\210\377\377\377\202\377\376\377\4" \
- "\374\377\377\376\377\377\377\376\377\377\377\375\222\377\377\377\4\377" \
- "\376\375\376\377\377\377\377\377\376\377\377\202\377\376\377\202\377" \
- "\377\375\210\377\377\377\4\377\377\375\377\377\377\377\377\375\377\377" \
- "\377\202\377\376\377\2\377\377\377\376\377\377\212\377\377\377\2\376" \
- "\377\377\376\377\375\202\377\376\377\7\376\377\377\377\377\377\377\377" \
- "\375\377\376\377\376\377\377\377\377\377\377\376\377\202\376\377\377" \
- "\1\377\377\375\232\377\377\377\2\376\377\377\376\377\375\202\377\376" \
- "\377\7\376\377\377\377\377\377\377\377\375\377\376\377\376\377\377\377" \
- "\377\377\377\376\377\202\376\377\377\1\377\377\375\210\377\377\377\1" \
- "\377\377\375\202\377\377\377\4\377\377\375\377\376\377\377\377\377\376" \
- "\377\377\211\377\377\377\7\375\376\377\377\377\375\377\376\377\376\376" \
- "\377\376\377\375\375\377\376\377\377\375\222\377\377\377\6\376\377\377" \
- "\377\376\377\377\377\377\377\377\375\377\376\377\376\377\377\213\377" \
- "\377\377\202\377\376\377\3\377\377\375\376\377\377\376\377\375\236\377" \
- "\377\377\1\376\376\376\203\377\377\377\1\376\376\376\202\377\377\377" \
- "\1\376\376\376\203\377\377\377\2\376\376\376\377\377\377\202\376\376" \
- "\376\202\377\377\377\1\376\376\376\202\377\377\377\1\376\376\376\204" \
- "\377\377\377\1\376\376\376\235\377\377\377\1\376\376\376\217\377\377" \
- "\377\1\376\376\376\206\377\377\377\1\376\376\376\260\377\377\377\3\376" \
- "\376\376\377\377\377\376\376\376\241\377\377\377\202\376\376\376\204" \
- "\377\377\377\1\376\376\376\222\377\377\377\1\376\376\376\205\377\377" \
- "\377\1\376\376\376\246\377\377\377\1\376\376\376\233\377\377\377\3\376" \
- "\376\376\377\377\377\376\376\376\234\377\377\377\15\376\376\376\377\377" \
- "\377\377\376\377\377\377\375\375\377\376\377\377\377\376\377\375\377" \
- "\377\377\375\376\377\377\377\377\377\377\375\376\377\377\377\377\377" \
- "\202\377\376\377\260\377\377\377\7\377\376\377\376\377\377\377\377\377" \
- "\376\377\377\377\377\377\377\377\375\376\377\377\212\377\377\377\1\376" \
- "\376\374\203\377\377\377\3\376\376\377\377\377\375\376\377\377\210\377" \
- "\377\377\10\376\377\377\377\376\377\374\377\373\376\377\373\377\376\377" \
- "\376\376\376\377\377\377\376\377\375\220\377\377\377\2\377\376\377\377" \
- "\377\377\202\377\377\375\202\377\377\377\2\376\376\374\376\377\377\210" \
- "\377\377\377\1\376\377\377\202\377\377\377\5\376\377\377\377\377\377" \
- "\376\376\376\377\377\377\376\377\375\210\377\377\377\202\377\376\377" \
- "\15\377\377\377\376\377\377\377\377\375\377\377\377\375\376\377\377\377" \
- "\377\376\377\375\377\377\377\375\377\376\377\377\375\377\376\377\377" \
- "\377\377\376\376\376\231\377\377\377\202\377\376\377\15\377\377\377\376" \
- "\377\377\377\377\375\377\377\377\375\376\377\377\377\377\376\377\375" \
- "\377\377\377\375\377\376\377\377\375\377\376\377\377\377\377\376\376" \
- "\376\211\377\377\377\4\377\376\377\377\377\377\376\377\375\376\377\377" \
- "\202\377\377\377\2\376\377\377\376\377\375\210\377\377\377\1\376\377" \
- "\375\202\376\376\376\202\377\377\377\2\377\377\375\375\376\377\221\377" \
- "\377\377\10\377\377\375\377\377\377\376\376\374\376\377\373\376\376\376" \
- "\377\376\377\376\377\377\377\377\375\210\377\377\377\6\376\376\376\377" \
- "\377\377\377\377\375\377\377\377\374\375\377\377\377\375\242\377\377" \
- "\377\1\376\376\376\214\377\377\377\1\376\376\376\204\377\377\377\3\376" \
- "\376\376\377\377\377\376\376\376\235\377\377\377\1\376\376\376\203\377" \
- "\377\377\202\376\376\376\212\377\377\377\1\376\376\376\202\377\377\377" \
- "\202\376\376\376\264\377\377\377\5\376\376\376\377\377\377\376\376\376" \
- "\377\377\377\376\376\376\242\377\377\377\3\376\376\376\377\377\377\376" \
- "\376\376\202\377\377\377\1\376\376\376\223\377\377\377\1\376\376\376" \
- "\244\377\377\377\1\376\376\376\203\377\377\377\1\376\376\376\233\377" \
- "\377\377\1\376\376\376\202\377\377\377\1\376\376\376\234\377\377\377" \
- "\1\375\377\372\202\377\377\377\3\376\376\376\377\377\375\377\377\377" \
- "\202\376\377\377\204\377\377\377\4\376\377\377\377\377\377\377\376\377" \
- "\375\377\372\260\377\377\377\202\377\377\375\2\377\377\377\376\375\377" \
- "\202\377\377\377\1\375\377\376\212\377\377\377\6\377\377\375\377\377" \
- "\377\376\377\375\377\377\375\377\376\377\377\376\375\212\377\377\377" \
- "\1\377\376\377\202\377\377\377\4\377\375\376\377\377\377\377\377\373" \
- "\376\375\377\221\377\377\377\203\376\376\376\4\377\377\375\376\376\374" \
- "\377\376\377\376\376\374\210\377\377\377\5\377\376\377\377\377\375\377" \
- "\376\377\376\376\376\376\377\375\202\377\377\377\1\376\376\376\210\377" \
- "\377\377\4\375\377\372\377\376\377\377\377\377\376\377\377\204\377\377" \
- "\377\202\376\377\377\3\377\377\377\377\377\375\376\376\376\202\377\377" \
- "\377\1\375\377\372\230\377\377\377\4\375\377\372\377\376\377\377\377" \
- "\377\376\377\377\204\377\377\377\202\376\377\377\3\377\377\377\377\377" \
- "\375\376\376\376\202\377\377\377\1\375\377\372\210\377\377\377\3\376" \
- "\377\377\377\377\377\376\376\376\202\376\377\377\202\377\377\377\1\376" \
- "\377\375\210\377\377\377\7\376\376\377\377\377\375\376\377\375\376\376" \
- "\376\377\376\377\377\377\377\376\377\377\221\377\377\377\5\376\376\376" \
- "\376\377\377\377\377\377\375\375\375\377\376\377\202\377\377\377\1\377" \
- "\377\375\211\377\377\377\7\377\376\377\376\376\374\376\377\377\377\377" \
- "\377\377\376\377\377\377\375\377\377\373\233\377\377\377\1\376\376\376" \
- "\205\377\377\377\1\376\376\376\203\377\377\377\1\376\376\376\203\377" \
- "\377\377\1\376\376\376\204\377\377\377\3\376\376\376\377\377\377\376" \
- "\376\376\204\377\377\377\1\376\376\376\237\377\377\377\1\376\376\376" \
- "\212\377\377\377\1\376\376\376\213\377\377\377\1\376\376\376\255\377" \
- "\377\377\1\376\376\376\247\377\377\377\1\376\376\376\202\377\377\377" \
- "\1\376\376\376\224\377\377\377\1\376\376\376\247\377\377\377\1\376\376" \
- "\376\236\377\377\377\1\376\376\376\203\377\377\377\1\376\376\376\232" \
- "\377\377\377\10\377\376\377\377\377\375\377\377\377\376\377\377\376\376" \
- "\376\377\376\377\377\377\375\377\376\377\202\377\377\375\1\377\376\377" \
- "\202\377\377\377\3\377\376\377\377\375\376\377\376\377\260\377\377\377" \
- "\2\377\376\377\377\377\377\202\377\376\377\4\377\377\375\376\376\374" \
- "\377\375\377\377\376\377\210\377\377\377\3\376\376\374\377\376\377\376" \
- "\376\376\204\377\377\377\1\376\377\375\210\377\377\377\4\375\377\374" \
- "\377\377\377\377\375\376\377\376\377\203\377\377\377\1\377\377\375\220" \
- "\377\377\377\3\376\377\377\377\377\375\376\377\377\202\377\377\377\3" \
- "\377\376\377\373\377\377\376\377\377\211\377\377\377\202\376\377\375" \
- "\1\377\377\375\203\377\377\377\1\377\376\377\210\377\377\377\3\377\376" \
- "\377\377\375\376\377\376\377\202\377\377\377\1\377\376\377\202\377\377" \
- "\375\10\377\376\377\377\377\375\377\376\377\376\376\376\376\377\377\377" \
- "\377\377\377\377\375\377\376\377\230\377\377\377\3\377\376\377\377\375" \
- "\376\377\376\377\202\377\377\377\1\377\376\377\202\377\377\375\10\377" \
- "\376\377\377\377\375\377\376\377\376\376\376\376\377\377\377\377\377" \
- "\377\377\375\377\376\377\210\377\377\377\2\377\377\375\375\376\371\202" \
- "\377\376\377\3\377\377\377\377\377\375\377\376\377\212\377\377\377\1" \
- "\377\375\376\202\377\377\377\4\377\377\375\376\376\376\376\377\377\377" \
- "\376\377\220\377\377\377\2\376\377\377\376\376\377\202\377\377\377\2" \
- "\376\377\375\375\377\374\212\377\377\377\10\373\377\376\377\377\377\377" \
- "\377\375\376\376\374\377\377\375\377\376\377\377\377\377\376\377\377" \
- "\235\377\377\377\1\376\376\376\202\377\377\377\7\316\316\320\250\250" \
- "\252\221\221\223llnjjlGGI99;\204::<\7TTVkkmyy{\234\234\236\265\265\267" \
- "\332\332\332\376\376\376\237\377\377\377\3\376\376\376\377\377\377\376" \
- "\376\376\222\377\377\377\1\376\376\376\205\377\377\377\3\376\376\376" \
- "\377\377\377\376\376\376\255\377\377\377\1\376\376\376\246\377\377\377" \
- "\1\376\376\376\227\377\377\377\1\376\376\376\252\377\377\377\1\376\376" \
- "\376\233\377\377\377\1\376\376\376\236\377\377\377\17\305\344\240\303" \
- "\342\237\304\343\240\304\343\237\307\342\237\303\342\236\305\342\240" \
- "\303\342\236\305\342\237\304\343\240\304\343\237\304\341\237\304\343" \
- "\237\323\352\266\376\377\375\250\377\377\377\210\305\342\240\10\305\342" \
- "\237\303\342\234\304\343\237\306\341\236\304\343\240\322\352\270\376" \
- "\377\377\375\377\376\211\377\377\377\5\377\376\377\376\376\376\377\376" \
- "\377\360\371\350\305\342\237\202\304\341\236\210\305\342\240\5\304\341" \
- "\236\327\356\302\376\377\377\377\377\373\376\377\375\202\377\377\375" \
- "\1\377\376\377\220\377\377\377\202\377\377\375\2\376\377\377\377\377" \
- "\377\202\377\377\375\2\304\343\237\306\341\236\210\305\342\240\5\307" \
- "\342\237\303\342\236\304\341\236\341\357\314\377\377\375\213\377\377" \
- "\377\17\376\377\375\323\352\266\304\343\237\304\341\237\304\343\237\304" \
- "\343\240\305\342\237\303\342\236\305\342\240\303\342\236\307\342\237" \
- "\304\343\237\304\343\240\303\342\237\305\344\240\231\377\377\377\17\376" \
- "\377\375\323\352\266\304\343\237\304\341\237\304\343\237\304\343\240" \
- "\305\342\237\303\342\236\305\342\240\303\342\236\307\342\237\304\343" \
- "\237\304\343\240\303\342\237\305\344\240\211\377\377\377\10\360\367\347" \
- "\306\343\241\303\342\237\307\342\237\303\342\237\304\343\235\307\341" \
- "\240\304\343\240\210\305\342\240\7\315\347\252\376\377\375\377\375\376" \
- "\376\377\375\377\377\377\377\377\373\376\377\377\221\377\377\377\10\377" \
- "\377\375\376\377\375\323\352\266\307\341\240\307\342\237\305\342\240" \
- "\307\340\236\306\341\236\210\305\342\240\4\304\343\237\311\335\236\377" \
- "\377\377\377\376\377\203\377\377\377\1\376\377\377\230\377\377\377\1" \
- "\376\376\376\203\377\377\377\3\346\346\346\251\251\251jjl\202;;=\210" \
- "::<\1;;=\202::<\2;;=99;\203::<\5FFHxxx\265\265\265\363\363\363\376\376" \
- "\376\234\377\377\377\2\376\376\376\346\346\346\214\234\234\234\1\235" \
- "\235\235\203\234\234\234\3\235\235\235\234\234\234\250\250\250\203\316" \
- "\316\316\1\346\346\346\263\377\377\377\202\250\250\250\245\377\377\377" \
- "\1\316\316\316\222\234\234\234\1\302\302\302\203\316\316\316\1\363\363" \
- "\363\247\377\377\377\3\316\316\316\234\234\234\235\235\235\240\234\234" \
- "\234\1\316\316\316\231\377\377\377\6\215\305>\216\306A\215\305@\213\310" \
- "=\215\305>\212\307>\202\214\305@\6\214\306>\212\306@\214\306<\215\304" \
- "B\214\306>\252\323m\251\377\377\377\210\214\306>\10\215\305@\215\307" \
- "\77\212\307>\217\304@\214\305@\251\323m\377\377\377\377\377\375\213\377" \
- "\377\377\5\377\375\377\341\363\315\215\305>\212\307>\215\305@\210\214" \
- "\306>\6\215\306A\220\305\77\350\365\333\377\377\377\376\377\377\377\376" \
- "\377\202\376\377\377\225\377\377\377\3\377\376\377\214\306>\215\306A" \
- "\210\214\306>\6\215\305>\212\310\77\215\305@\307\341\240\376\377\377" \
- "\377\376\377\213\377\377\377\6\252\323m\214\306>\215\304B\214\306<\212" \
- "\306@\214\306>\202\214\305@\6\212\307>\215\305>\213\310=\215\305@\216" \
- "\306A\215\305>\232\377\377\377\6\252\323m\214\306>\215\304B\214\306<" \
- "\212\306@\214\306>\202\214\305@\6\212\307>\215\305>\213\310=\215\305" \
- "@\216\306A\215\305>\211\377\377\377\4\376\377\377\242\321a\213\307A\215" \
- "\305>\202\214\306>\2\215\305@\215\307\77\210\214\306>\7\215\305<\332" \
- "\354\304\377\377\377\376\377\375\376\376\376\377\376\377\376\376\376" \
- "\221\377\377\377\10\377\376\377\342\362\316\215\305>\213\310\77\212\305" \
- "D\212\307<\216\306\77\211\307>\211\214\306>\4\304\343\240\373\377\376" \
- "\377\377\377\375\377\376\202\377\377\377\1\377\377\375\225\377\377\377" \
- "\1\376\376\376\204\377\377\377\6\265\265\267__a99;;;=::<;;=\202::<\1" \
- ";;=\202::<\1;;=\202::<\1;;=\203::<\1;;=\203::<\3;;=::<99;\202::<\2xx" \
- "z\301\301\301\202\377\377\377\1\376\376\376\202\377\377\377\1\376\376" \
- "\376\206\377\377\377\1\376\376\376\217\377\377\377\1\316\316\316\205" \
- "::<\202;;=\221::<\4TTVwwy\250\250\252\346\346\350\255\377\377\377\1\316" \
- "\316\320\202::<\1\316\316\316\244\377\377\377\1\234\234\236\204::<\1" \
- ";;=\205::<\3;;=::<;;=\206::<\1;;=\204::<\6SSUkkm\204\204\206\250\250" \
- "\250\316\316\316\376\376\376\206\377\377\377\1\376\376\376\231\377\377" \
- "\377\1\234\234\234\206::<\3;;=::<;;=\222::<\1;;=\204::<\3;;=::<\234\234" \
- "\236\231\377\377\377\3\214\305@\214\306>\214\305@\207\214\306>\4\214" \
- "\305@\215\305>\214\306>\252\324p\251\377\377\377\215\214\306>\1\250\325" \
- "p\216\377\377\377\1\342\361\320\202\214\306>\1\214\305@\210\214\306>" \
- "\15\212\306@\215\307\77\233\316W\365\374\364\377\376\375\376\377\377" \
- "\377\376\377\377\377\375\377\377\377\377\377\375\376\376\376\377\377" \
- "\377\376\376\374\202\377\377\377\1\376\376\376\216\377\377\377\213\214" \
- "\306>\3\215\305>\214\306>\305\342\240\215\377\377\377\4\252\324p\214" \
- "\306>\215\305>\214\305@\207\214\306>\3\214\305@\214\306>\214\305@\232" \
- "\377\377\377\4\252\324p\214\306>\215\305>\214\305@\207\214\306>\3\214" \
- "\305@\214\306>\214\305@\212\377\377\377\7\350\364\334\215\305>\212\307" \
- "<\214\305@\215\304B\215\305@\213\310\77\210\214\306>\10\214\305@\225" \
- "\311J\370\373\362\377\376\377\376\377\377\377\377\375\377\377\377\376" \
- "\377\377\210\377\377\377\40\376\377\377\376\377\375\377\376\377\377\377" \
- "\377\375\376\377\377\377\375\377\376\377\376\377\377\370\373\364\233" \
- "\314W\215\307\77\214\304=\212\306@\215\307\77\213\305=\215\307\77\214" \
- "\306>\217\304@\215\306A\212\307>\214\306<\215\306A\214\306>\211\307@" \
- "\242\321a\377\377\377\377\376\377\376\377\377\377\376\377\377\377\377" \
- "\376\377\377\377\376\377\223\377\377\377\7\376\376\376\377\377\377\376" \
- "\376\376\377\377\377\363\363\365\234\234\236FFH\202::<\10;;=99;;;=::" \
- "<;;=::<99;;;=\203::<\1;;=\203::<\2;;=99;\204::<\11""99;;;=::<;;=::<;" \
- ";=TTV\265\265\265\363\363\363\203\377\377\377\1\376\376\376\207\377\377" \
- "\377\1\376\376\376\215\377\377\377\1\316\316\316\205::<\3;;=::<;;=\202" \
- "::<\1;;=\214::<\3;;=99;;;=\202::<\4lln\316\316\316\376\376\376\377\377" \
- "\377\202\376\376\376\246\377\377\377\2\376\376\376xxz\202::<\2xxx\376" \
- "\376\376\243\377\377\377\1\234\234\236\204::<\202;;=\205::<\1;;=\204" \
- "::<\1;;=\202::<\1""99;\206::<\1;;=\202::<\6;;=kkk\250\250\250\346\346" \
- "\346\377\377\377\376\376\376\205\377\377\377\1\376\376\376\225\377\377" \
- "\377\1\234\234\234\204::<\1;;=\202::<\4;;=::<99;;;=\225::<\3;;=::<\234" \
- "\234\236\231\377\377\377\3\214\305@\214\306>\214\305@\207\214\306>\4" \
- "\214\305@\215\305>\214\306>\252\324p\251\377\377\377\215\214\306>\1\250" \
- "\325p\216\377\377\377\1\342\361\320\202\214\306>\1\214\305@\210\214\306" \
- ">\4\215\306A\213\304\77\215\305@\262\327x\202\377\377\377\1\376\377\375" \
- "\203\377\377\375\204\377\377\377\1\376\376\376\217\377\377\377\213\214" \
- "\306>\3\215\305>\214\306>\305\342\240\215\377\377\377\4\252\324p\214" \
- "\306>\215\305>\214\305@\207\214\306>\3\214\305@\214\306>\214\305@\232" \
- "\377\377\377\4\252\324p\214\306>\215\305>\214\305@\207\214\306>\3\214" \
- "\305@\214\306>\214\305@\212\377\377\377\7\376\376\376\305\342\237\212" \
- "\307>\214\306>\212\307<\214\306>\212\307>\210\214\306>\3\214\306<\215" \
- "\306A\300\337\221\202\377\377\377\3\377\376\377\376\376\376\377\377\375" \
- "\210\377\377\377\1\377\375\377\202\377\377\377\2\376\376\377\376\377" \
- "\375\202\377\376\377\30\377\377\377\277\340\221\215\306A\213\305=\215" \
- "\305>\212\306B\214\306>\216\306\77\214\306<\212\307>\215\307=\213\305" \
- ";\215\307\77\216\305C\214\306>\214\305@\216\306\77\347\365\333\377\376" \
- "\377\377\377\375\376\377\377\377\376\374\377\377\377\377\377\375\222" \
- "\377\377\377\1\376\376\376\204\377\377\377\12\265\265\267FFH;;=::<;;" \
- "=99;::<;;=::<;;=\202::<\4<<>99;::<;;=\202::<\1;;=\203::<\1<<>\204::<" \
- "\5<<>99;;;=99;;;=\202::<\4:::SSS\266\266\266\376\376\376\203\377\377" \
- "\377\1\376\376\376\204\377\377\377\1\376\376\376\216\377\377\377\1\316" \
- "\316\316\204::<\3;;=::<;;=\204::<\1;;=\214::<\1;;=\202::<\1;;=\202::" \
- "<\2yyy\363\363\363\202\377\377\377\1\376\376\376\245\377\377\377\3\346" \
- "\346\346::<;;=\202::<\1\347\347\347\202\377\377\377\1\376\376\376\240" \
- "\377\377\377\1\234\234\236\203::<\4;;=99;::<;;=\202::<\7;;=::<;;=99;" \
- ";;=::<;;=\203::<\202;;=\210::<\1""99;\202::<\4;;=xxz\317\317\317\376" \
- "\376\376\202\377\377\377\1\376\376\376\227\377\377\377\1\234\234\234" \
- "\204::<\1""99;\203;;=\224::<\1;;=\204::<\2<<>\234\234\236\231\377\377" \
- "\377\3\214\305@\214\306>\214\305@\207\214\306>\4\214\305@\215\305>\214" \
- "\306>\252\324p\251\377\377\377\215\214\306>\1\250\325p\216\377\377\377" \
- "\1\342\361\320\202\214\306>\1\214\305@\210\214\306>\10\215\305>\214\306" \
- ">\213\307A\214\306>\315\345\253\377\377\375\377\376\377\376\377\377\226" \
- "\377\377\377\213\214\306>\3\215\305>\214\306>\305\342\240\215\377\377" \
- "\377\4\252\324p\214\306>\215\305>\214\305@\207\214\306>\3\214\305@\214" \
- "\306>\214\305@\232\377\377\377\4\252\324p\214\306>\215\305>\214\305@" \
- "\207\214\306>\3\214\305@\214\306>\214\305@\211\377\377\377\7\377\377" \
- "\375\377\376\377\376\376\376\241\321a\212\307>\211\305\77\215\306A\211" \
- "\214\306>\4\213\310\77\214\305@\213\305=\342\361\320\202\377\376\377" \
- "\2\377\377\375\377\376\377\210\377\377\377\1\377\376\377\202\377\377" \
- "\377\30\377\377\375\376\377\377\377\377\375\376\377\377\351\366\334\214" \
- "\305B\211\306;\215\307\77\214\306>\212\306@\215\305>\215\305@\212\307" \
- ">\214\305@\212\306B\214\306>\213\305=\213\310\77\215\305>\215\307\77" \
- "\314\345\253\377\375\377\377\376\374\376\377\377\203\377\377\377\1\377" \
- "\376\374\225\377\377\377\2\345\345\345kkm\205::<\202;;=\203::<\1;;=\203" \
- "::<\1;;=\202::<\202;;=\202::<\1;;=\210::<\2;;=99;\205::<\2```\331\331" \
- "\331\211\377\377\377\1\376\376\376\214\377\377\377\1\316\316\316\206" \
- "::<\5""99;::<;;=::<99;\212::<\1;;=\202::<\1;;=\204::<\4;;=::<FFF\316" \
- "\316\316\247\377\377\377\3\205\205\207;;=99;\202::<\1\204\204\206\203" \
- "\377\377\377\1\376\376\376\237\377\377\377\1\234\234\236\205::<\1;;=" \
- "\204::<\1""99;\202;;=\202::<\3;;=::<;;=\203::<\1;;=\202::<\1;;=\204:" \
- ":<\1;;=\205::<\2jjl\316\316\316\203\377\377\377\1\376\376\376\225\377" \
- "\377\377\1\234\234\234\204::<\1;;=\202::<\3;;=::<;;=\222::<\7;;=::<;" \
- ";=::<;;=::<\234\234\236\231\377\377\377\3\214\305@\214\306>\214\305@" \
- "\207\214\306>\4\214\305@\215\305>\214\306>\252\324p\251\377\377\377\215" \
- "\214\306>\1\250\325p\216\377\377\377\1\342\361\320\202\214\306>\1\214" \
- "\305@\210\214\306>\10\215\305@\212\307>\214\305@\215\306A\214\305@\352" \
- "\364\334\376\376\377\377\377\373\202\377\377\377\3\376\376\376\377\377" \
- "\377\377\377\375\202\377\377\377\1\376\376\374\216\377\377\377\213\214" \
- "\306>\3\215\305>\214\306>\305\342\240\215\377\377\377\4\252\324p\214" \
- "\306>\215\305>\214\305@\207\214\306>\3\214\305@\214\306>\214\305@\232" \
- "\377\377\377\4\252\324p\214\306>\215\305>\214\305@\207\214\306>\3\214" \
- "\305@\214\306>\214\305@\211\377\377\377\1\376\377\377\202\377\377\375" \
- "\5\347\364\332\215\307\77\215\306C\214\307;\216\306\77\210\214\306>\10" \
- "\214\305@\214\305D\215\307\77\233\314V\371\374\363\376\377\377\377\377" \
- "\377\377\377\375\210\377\377\377\20\375\377\374\377\376\377\376\376\377" \
- "\376\377\377\377\376\377\376\377\375\376\377\377\244\317d\212\307>\215" \
- "\306A\215\305@\214\305@\211\306=\215\307=\215\306A\214\305@\204\214\306" \
- ">\14\211\305A\212\307>\251\324k\377\376\377\377\375\376\376\377\377\377" \
- "\377\377\377\377\375\377\377\377\377\377\375\377\377\377\377\377\375" \
- "\217\377\377\377\1\376\376\376\203\377\377\377\2\265\265\267FFH\205:" \
- ":<\1;;=\203::<\202;;=\7:::TTT\203\203\203\235\235\235\316\316\316\332" \
- "\332\332\377\377\377\202\376\376\376\202\377\377\377\5\316\316\316\317" \
- "\317\317\234\234\234yyyFFF\202::<\1;;=\202::<\3""99;;;=99;\204::<\2;" \
- ";=\233\233\233\206\377\377\377\1\376\376\376\216\377\377\377\1\316\316" \
- "\316\204::<\1;;=\205::<\1;;=\212::<\3""99;::<;;=\202::<\2;;=99;\204:" \
- ":<\2;;=\265\265\265\245\377\377\377\4\346\346\346::<99;;;=\202::<\4""9" \
- "9;\347\347\347\377\377\377\376\376\376\240\377\377\377\1\234\234\236" \
- "\205::<\1;;=\203::<\202;;=\1""99;\203;;=\2::<;;=\203::<\1;;=\202::<\2" \
- ";;=::<\202;;=\7::<;;=99;::<;;=99;;;=\202::<\3;;=xxx\362\362\362\227\377" \
- "\377\377\1\234\234\234\205::<\202;;=\4::<;;=::<;;=\223::<\2;;=99;\202" \
- ";;=\1\234\234\236\231\377\377\377\3\214\305@\214\306>\214\305@\207\214" \
- "\306>\4\214\305@\215\305>\214\306>\252\324p\251\377\377\377\215\214\306" \
- ">\1\250\325p\216\377\377\377\1\342\361\320\202\214\306>\1\214\305@\210" \
- "\214\306>\12\212\307>\215\306A\214\305@\215\307\77\213\306:\226\312N" \
- "\372\374\361\375\376\377\377\377\375\377\377\373\224\377\377\377\213" \
- "\214\306>\3\215\305>\214\306>\305\342\240\215\377\377\377\4\252\324p" \
- "\214\306>\215\305>\214\305@\207\214\306>\3\214\305@\214\306>\214\305" \
- "@\232\377\377\377\4\252\324p\214\306>\215\305>\214\305@\207\214\306>" \
- "\3\214\305@\214\306>\214\305@\211\377\377\377\10\376\377\377\376\376" \
- "\377\376\377\377\377\375\376\307\342\237\214\306<\215\306A\214\305@\210" \
- "\214\306>\5\215\307\77\213\305=\216\306A\213\310\77\277\337\223\202\377" \
- "\377\375\1\377\376\377\210\377\377\377\14\376\377\375\376\376\376\377" \
- "\376\377\377\377\375\377\376\377\377\377\377\303\342\236\215\307\77\216" \
- "\306A\215\305>\214\306<\215\306A\203\214\306>\20\215\307\77\212\307>" \
- "\215\305@\216\306\77\214\305@\216\307<\223\312K\356\372\346\377\377\377" \
- "\376\377\377\375\377\376\377\377\377\377\376\377\377\377\375\377\377" \
- "\377\377\377\375\216\377\377\377\1\376\376\376\203\377\377\377\2\375" \
- "\375\375\205\205\207\202::<\202;;=\3::<;;=::<\202;;=\6::<:::SSS\250\250" \
- "\250\346\346\346\376\376\376\216\377\377\377\3\332\332\332\220\220\220" \
- "SSS\202::<\4;;=99;::<;;=\202::<\1""99;\202;;=\2__a\332\332\334\223\377" \
- "\377\377\1\316\316\316\204::<\6;;=RRT\235\235\237\235\235\235\233\233" \
- "\233\234\234\234\212\234\234\236\5xxzkkm__a99;;;=\204::<\202;;=\1""9" \
- "9;\202::<\1\316\316\316\244\377\377\377\4\204\204\206;;=::<;;=\202::" \
- "<\2;;=\220\220\222\203\377\377\377\1\376\376\376\236\377\377\377\1\234" \
- "\234\236\203::<\3;;=::<kkm\203\234\234\236\3\233\233\235\234\234\236" \
- "\235\235\237\204\234\234\236\2xxzlln\202kkm\1FFH\202;;=\2""99;;;=\202" \
- "::<\3""99;::<;;=\202::<\1;;=\205::<\3GGI\301\301\301\376\376\376\225" \
- "\377\377\377\1\234\234\234\205::<\5lln\234\234\236\233\233\233\235\235" \
- "\235\234\234\234\224\234\234\236\5\234\234\234\235\235\235\233\233\233" \
- "\234\234\234\316\316\316\231\377\377\377\3\214\305@\214\306>\214\305" \
- "@\207\214\306>\4\214\305@\215\305>\214\306>\252\324p\251\377\377\377" \
- "\215\214\306>\1\250\325p\216\377\377\377\1\342\361\320\202\214\306>\1" \
- "\214\305@\210\214\306>\7\212\306@\214\306<\217\307@\214\304\77\214\311" \
- ">\214\306>\251\323m\202\376\377\377\4\376\376\374\377\377\375\377\377" \
- "\377\376\376\376\202\377\377\377\1\376\376\376\216\377\377\377\213\214" \
- "\306>\3\215\305>\214\306>\305\342\240\215\377\377\377\4\252\324p\214" \
- "\306>\215\305>\214\305@\207\214\306>\3\214\305@\214\306>\214\305@\232" \
- "\377\377\377\4\252\324p\214\306>\215\305>\214\305@\207\214\306>\3\214" \
- "\305@\214\306>\214\305@\212\377\377\377\7\377\377\375\377\376\377\376" \
- "\377\377\377\376\377\251\323o\211\307>\214\305@\210\214\306>\7\212\307" \
- ">\215\305>\214\305@\214\306>\215\307\77\347\365\334\377\376\377\211\377" \
- "\377\377\2\377\376\377\375\377\374\203\377\376\377\15\352\364\333\212" \
- "\306@\215\306A\214\306>\215\307\77\213\310\77\214\306>\216\306A\215\306" \
- "A\214\306<\212\307>\213\310=\212\307>\202\214\305@\4\214\306>\314\345" \
- "\253\377\376\377\376\377\377\202\377\377\375\6\377\376\377\375\376\377" \
- "\377\377\377\377\376\377\376\377\375\377\376\377\217\377\377\377\3\376" \
- "\376\376\362\362\362lln\20299;\1;;=\204::<\202;;=\6::<\204\204\204\317" \
- "\317\317\376\376\376\377\377\377\376\376\376\206\377\377\377\1\376\376" \
- "\376\213\377\377\377\2\301\301\301kkm\211::<\6;;=FFH\301\301\301\376" \
- "\376\376\377\377\377\376\376\376\217\377\377\377\1\316\316\316\204::" \
- "<\3;;=kkm\376\376\376\221\377\377\377\3\316\316\316\204\204\204FFF\202" \
- "::<\1;;=\202::<\202;;=\2FFH\363\363\363\242\377\377\377\5\364\364\364" \
- "::<;;=99;;;=\203::<\3GGI\363\363\363\376\376\376\240\377\377\377\1\234" \
- "\234\236\205::<\1\234\234\236\210\377\377\377\1\376\376\376\204\377\377" \
- "\377\1\376\376\376\202\377\377\377\6\362\362\362\316\316\316\265\265" \
- "\265\234\234\234kkmFFH\202::<\2;;=99;\205::<\1;;=\202::<\1\221\221\221" \
- "\225\377\377\377\1\234\234\234\205::<\1\234\234\236\202\377\377\377\1" \
- "\376\376\376\225\377\377\377\1\375\375\375\235\377\377\377\3\214\305" \
- "@\214\306>\214\305@\207\214\306>\4\214\305@\215\305>\214\306>\252\324" \
- "p\251\377\377\377\215\214\306>\1\250\325p\216\377\377\377\1\342\361\320" \
- "\202\214\306>\1\214\305@\210\214\306>\4\215\307\77\214\306>\214\304\77" \
- "\214\306>\202\214\305@\6\215\307\77\307\341\240\376\377\375\376\377\377" \
- "\376\376\374\377\377\373\202\377\377\377\202\377\377\375\216\377\377" \
- "\377\213\214\306>\3\215\305>\214\306>\305\342\240\215\377\377\377\4\252" \
- "\324p\214\306>\215\305>\214\305@\207\214\306>\3\214\305@\214\306>\214" \
- "\305@\232\377\377\377\4\252\324p\214\306>\215\305>\214\305@\207\214\306" \
- ">\3\214\305@\214\306>\214\305@\212\377\377\377\7\377\376\377\376\376" \
- "\377\377\377\377\376\376\377\361\372\347\222\312K\215\305>\210\214\306" \
- ">\10\214\305@\215\306A\214\305@\214\306<\213\304A\243\322b\376\376\374" \
- "\376\377\375\211\377\377\377\24\377\377\373\377\377\377\376\377\377\377" \
- "\377\375\242\320c\215\307=\214\306>\213\310\77\213\304A\212\306@\215" \
- "\307\77\215\305@\214\306>\215\307\77\212\306@\215\305>\215\307\77\213" \
- "\310\77\213\306:\253\325q\202\377\377\377\11\377\377\375\377\376\377" \
- "\377\377\377\377\377\375\376\377\375\377\377\375\377\375\377\376\377" \
- "\377\377\377\375\214\377\377\377\7\376\376\376\377\377\377\376\376\376" \
- "\363\363\363__a::<;;=\203::<\202;;=\202::<\4xxz\347\347\351\377\377\377" \
- "\376\376\376\210\377\377\377\1\376\376\376\204\377\377\377\2\376\376" \
- "\376\377\377\377\203\376\376\376\205\377\377\377\2\316\316\320kkm\202" \
- "::<\3;;=::<;;=\202::<\202;;=\2:::\250\250\250\202\377\377\377\1\376\376" \
- "\376\216\377\377\377\1\316\316\316\205::<\1kkm\203\377\377\377\1\376" \
- "\376\376\215\377\377\377\1\376\376\376\202\377\377\377\3\363\363\363" \
- "xxx::<\202;;=\203::<\2;;=xxz\242\377\377\377\1\234\234\234\202::<\1;" \
- ";=\202::<\1;;=\202::<\1\234\234\234\241\377\377\377\1\234\234\236\202" \
- "::<\10;;=::<;;=\234\234\236\377\377\377\376\376\376\377\377\377\376\376" \
- "\376\216\377\377\377\1\376\376\376\203\377\377\377\3\332\332\332\221" \
- "\221\223FFH\205::<\2;;=::<\202;;=\2::<\204\204\204\224\377\377\377\1" \
- "\234\234\234\205::<\3\234\234\236\377\377\377\376\376\376\264\377\377" \
- "\377\3\214\305@\214\306>\214\305@\207\214\306>\4\214\305@\215\305>\214" \
- "\306>\252\324p\251\377\377\377\215\214\306>\1\250\325p\216\377\377\377" \
- "\1\342\361\320\202\214\306>\1\214\305@\210\214\306>\5\216\306\77\212" \
- "\307>\215\307=\212\306@\214\306>\202\215\305>\5\215\305@\345\356\317" \
- "\376\377\375\376\377\377\377\377\375\202\377\377\377\1\377\377\375\217" \
- "\377\377\377\213\214\306>\3\215\305>\214\306>\305\342\240\215\377\377" \
- "\377\4\252\324p\214\306>\215\305>\214\305@\207\214\306>\3\214\305@\214" \
- "\306>\214\305@\232\377\377\377\4\252\324p\214\306>\215\305>\214\305@" \
- "\207\214\306>\3\214\305@\214\306>\214\305@\211\377\377\377\4\376\377" \
- "\377\377\377\377\377\377\375\376\377\377\202\377\377\377\2\315\347\252" \
- "\212\306@\210\214\306>\10\216\306A\212\306@\212\307>\215\305<\213\310" \
- "\77\215\305>\307\341\240\376\377\377\212\377\377\377\10\375\377\374\377" \
- "\377\377\305\342\237\215\305@\212\306@\216\306\77\215\307=\215\305>\202" \
- "\214\306>\24\213\307A\213\310=\215\304B\214\306>\212\306@\215\304B\212" \
- "\307>\225\311K\370\373\362\377\377\377\376\377\375\377\377\375\377\377" \
- "\377\374\377\375\376\376\376\377\377\377\377\377\375\377\376\377\376" \
- "\377\377\377\377\375\211\377\377\377\1\376\376\376\205\377\377\377\1" \
- "___\204::<\1;;=\203::<\2SSS\316\316\316\235\377\377\377\2\317\317\317" \
- "``b\207::<\3;;=::<\204\204\206\220\377\377\377\1\316\316\316\205::<\1" \
- "kkm\226\377\377\377\3\204\204\206::<;;=\205::<\1\316\316\316\232\377" \
- "\377\377\1\376\376\376\205\377\377\377\2\364\364\364FFF\202;;=\202::" \
- "<\6;;=99;;;=::<FFH\363\363\363\240\377\377\377\1\234\234\236\205::<\1" \
- "\234\234\234\226\377\377\377\1\376\376\376\202\377\377\377\3\265\265" \
- "\265RRR:::\202::<\1;;=\202::<\4;;=::<;;=\204\204\204\203\377\377\377" \
- "\1\376\376\376\217\377\377\377\1\234\234\234\205::<\1\234\234\236\266" \
- "\377\377\377\3\214\305@\214\306>\214\305@\207\214\306>\4\214\305@\215" \
- "\305>\214\306>\252\324p\251\377\377\377\215\214\306>\1\250\325p\216\377" \
- "\377\377\1\342\361\320\202\214\306>\1\214\305@\220\214\306>\2\222\313" \
- "J\366\373\364\202\377\376\377\4\377\377\373\376\376\374\376\377\377\377" \
- "\376\377\216\377\377\377\213\214\306>\3\215\305>\214\306>\305\342\240" \
- "\215\377\377\377\4\252\324p\214\306>\215\305>\214\305@\207\214\306>\3" \
- "\214\305@\214\306>\214\305@\232\377\377\377\4\252\324p\214\306>\215\305" \
- ">\214\305@\207\214\306>\3\214\305@\214\306>\214\305@\211\377\377\377" \
- "-\377\377\375\376\377\377\377\377\377\376\376\374\376\377\377\377\376" \
- "\377\376\377\377\252\324p\212\306@\215\305>\212\307<\215\305@\215\305" \
- "<\214\305B\215\305@\214\306<\212\307>\215\305>\214\306>\211\306=\215" \
- "\305>\212\307>\214\306<\350\364\334\374\377\377\377\376\377\376\376\376" \
- "\374\377\375\377\377\377\376\377\375\377\377\375\377\376\377\377\377" \
- "\375\377\377\377\377\376\377\357\367\350\223\312K\213\310\77\215\305" \
- ">\214\306>\215\305>\213\310\77\212\306@\214\306>\215\305@\202\214\306" \
- ">\10\214\305@\216\306=\212\307>\215\305>\333\355\303\376\376\374\377" \
- "\377\377\377\377\375\223\377\377\377\1\376\376\376\203\377\377\377\1" \
- "\203\203\203\206::<\4;;=::<\204\204\206\363\363\363\230\377\377\377\1" \
- "\376\376\376\207\377\377\377\1\235\235\237\202::<\1;;=\203::<\5;;=99" \
- ";;;=\204\204\204\376\376\376\216\377\377\377\1\316\316\316\205::<\1k" \
- "km\227\377\377\377\12\204\204\206::<;;=::<99;;;=::<\204\204\204\377\377" \
- "\377\376\376\376\232\377\377\377\1\376\376\376\203\377\377\377\2\234" \
- "\234\234;;=\203::<\1;;=\204::<\3<<>\250\250\250\376\376\376\237\377\377" \
- "\377\1\234\234\236\205::<\1\234\234\234\231\377\377\377\10\376\376\376" \
- "\377\377\377\265\265\265FFH::<;;=::<;;=\203::<\2;;=\204\204\204\222\377" \
- "\377\377\1\234\234\234\205::<\1\234\234\236\266\377\377\377\3\214\305" \
- "@\214\306>\214\305@\207\214\306>\4\214\305@\215\305>\214\306>\252\324" \
- "p\251\377\377\377\215\214\306>\1\250\325p\216\377\377\377\1\342\361\320" \
- "\202\214\306>\1\214\305@\220\214\306>\4\216\306\77\250\322n\376\377\375" \
- "\376\377\373\222\377\377\377\213\214\306>\3\215\305>\214\306>\305\342" \
- "\240\215\377\377\377\4\252\324p\214\306>\215\305>\214\305@\207\214\306" \
- ">\3\214\305@\214\306>\214\305@\232\377\377\377\4\252\324p\214\306>\215" \
- "\305>\214\305@\207\214\306>\3\214\305@\214\306>\214\305@\211\377\377" \
- "\377\13\376\376\377\376\377\377\377\376\377\376\376\374\374\377\377\377" \
- "\377\375\377\376\377\356\372\346\225\311K\214\306>\213\310=\203\214\306" \
- ">\2\213\310\77\214\306>\202\214\305@\7\214\306<\213\307A\214\304\77\214" \
- "\305B\212\307>\244\317d\377\376\377\202\377\377\377\1\377\375\377\202" \
- "\377\377\377\25\376\377\377\377\376\377\377\377\377\374\377\375\376\376" \
- "\374\253\324n\214\306<\215\307\77\215\305>\211\307@\216\305C\214\305" \
- "@\215\307\77\214\305@\214\306<\212\307<\211\306=\214\306>\214\305@\213" \
- "\307A\263\327}\202\376\377\377\3\377\377\377\377\375\376\377\377\375" \
- "\221\377\377\377\1\376\376\376\203\377\377\377\1\250\250\250\204::<\1" \
- ";;=\202::<\2;;=\264\264\264\202\377\377\377\1\376\376\376\232\377\377" \
- "\377\1\376\376\376\205\377\377\377\2\332\332\332SSS\202::<\1;;=\204:" \
- ":<\4xxx\364\364\364\377\377\377\376\376\376\214\377\377\377\1\316\316" \
- "\316\205::<\1kkm\227\377\377\377\2\363\363\363SSU\202::<\4;;=99;::<;" \
- ";;\202\377\377\377\1\376\376\376\226\377\377\377\1\376\376\376\204\377" \
- "\377\377\11\376\376\376\363\363\363FFH99;;;=::<;;=99;;;=\203::<\4""9" \
- "9;SSU\377\377\377\376\376\376\236\377\377\377\1\234\234\236\205::<\1" \
- "\234\234\234\225\377\377\377\1\376\376\376\204\377\377\377\10\376\376" \
- "\376\377\377\377\363\363\363yyy::<;;=99;;;=\204::<\1\266\266\266\221" \
- "\377\377\377\1\234\234\234\205::<\1\234\234\236\266\377\377\377\3\214" \
- "\305@\214\306>\214\305@\207\214\306>\4\214\305@\215\305>\214\306>\252" \
- "\324p\251\377\377\377\215\214\306>\1\250\325p\216\377\377\377\1\342\361" \
- "\320\202\214\306>\1\214\305@\220\214\306>\4\214\306<\213\307A\275\335" \
- "\222\376\377\377\203\377\377\377\1\377\377\375\216\377\377\377\213\214" \
- "\306>\3\215\305>\214\306>\305\342\240\215\377\377\377\4\252\324p\214" \
- "\306>\215\305>\214\305@\207\214\306>\3\214\305@\214\306>\214\305@\232" \
- "\377\377\377\4\252\324p\214\306>\215\305>\214\305@\207\214\306>\3\214" \
- "\305@\214\306>\214\305@\211\377\377\377\4\377\376\377\376\376\377\377" \
- "\377\377\377\377\375\202\376\377\377\5\377\375\376\377\376\377\315\346" \
- "\255\212\307>\214\305@\202\215\306A\22\214\305@\212\307<\214\305B\214" \
- "\306>\213\307A\214\306>\213\305=\214\306>\215\305>\213\307A\211\310<" \
- "\313\347\254\377\377\375\377\375\377\376\377\377\376\377\373\376\377" \
- "\377\377\376\377\202\376\377\377\10\377\377\377\315\346\254\212\307>" \
- "\212\306@\215\306A\216\306A\212\307>\214\306<\202\215\306A\10\215\306" \
- "C\214\305B\215\307\77\214\306<\214\305@\213\310<\222\310L\372\373\363" \
- "\225\377\377\377\1\376\376\376\202\377\377\377\6\376\376\376\333\333" \
- "\333::<;;=::<;;=\202::<\3;;=FFH\315\315\315\205\377\377\377\1\376\376" \
- "\376\225\377\377\377\202\376\376\376\202\377\377\377\1\376\376\376\202" \
- "\377\377\377\1\376\376\376\202\377\377\377\2\363\363\363xxx\204::<\2" \
- ";;=\203\203\203\220\377\377\377\1\316\316\316\205::<\1kkm\230\377\377" \
- "\377\3\266\266\27099;;;=\204::<\1\316\316\316\230\377\377\377\1\376\376" \
- "\376\202\377\377\377\1\376\376\376\202\377\377\377\3\265\265\267::<;" \
- ";=\204::<\202;;=\202::<\202;;=\1\265\265\265\237\377\377\377\1\234\234" \
- "\236\205::<\1\234\234\234\236\377\377\377\5\234\234\234::<;;=::<;;=\202" \
- "::<\3;;=FFH\332\332\332\220\377\377\377\1\234\234\234\205::<\1\234\234" \
- "\236\266\377\377\377\3\214\305@\214\306>\214\305@\207\214\306>\4\214" \
- "\305@\215\305>\214\306>\252\324p\251\377\377\377\215\214\306>\1\250\325" \
- "p\216\377\377\377\1\342\361\320\202\214\306>\1\214\305@\220\214\306>" \
- "\4\215\307\77\214\304\77\213\310\77\333\355\303\202\377\377\377\1\376" \
- "\377\375\217\377\377\377\213\214\306>\3\215\305>\214\306>\305\342\240" \
- "\215\377\377\377\4\252\324p\214\306>\215\305>\214\305@\207\214\306>\3" \
- "\214\305@\214\306>\214\305@\232\377\377\377\4\252\324p\214\306>\215\305" \
- ">\214\305@\207\214\306>\3\214\305@\214\306>\214\305@\213\377\377\377" \
- "\5\377\377\373\377\376\377\377\377\377\375\377\374\376\377\377\202\376" \
- "\376\376\22\260\331{\212\307>\214\306>\215\305>\215\305@\215\307\77\215" \
- "\307=\214\305@\214\306>\215\306A\214\306>\213\307C\214\306>\214\304;" \
- "\213\307A\222\312K\357\370\345\377\377\375\202\377\377\377\15\377\375" \
- "\376\377\377\375\376\376\376\377\377\375\361\367\351\222\311J\213\310" \
- "\77\214\305B\215\310<\213\305=\216\306\77\212\307<\214\305B\202\214\306" \
- ">\6\216\306\77\215\305@\215\306A\214\305@\215\305<\333\356\301\202\377" \
- "\376\377\3\377\377\375\377\377\377\377\376\377\225\377\377\377\1``b\202" \
- "::<\6;;=::<;;=::<FFH\331\331\333\233\377\377\377\1\376\376\376\202\377" \
- "\377\377\1\376\376\376\206\377\377\377\1\376\376\376\202\377\377\377" \
- "\1\205\205\207\203::<\1\204\204\206\221\377\377\377\1\316\316\316\205" \
- "::<\1kkm\231\377\377\377\1GGI\203;;=\202::<\3\235\235\237\377\377\377" \
- "\376\376\376\233\377\377\377\2\376\376\376SSU\203::<\5;;=99;llnkkm::" \
- "<\202;;=\202::<\1SSU\237\377\377\377\1\234\234\236\205::<\1\234\234\234" \
- "\224\377\377\377\1\376\376\376\205\377\377\377\1\376\376\376\203\377" \
- "\377\377\4\376\376\376\266\266\270::<;;=\203::<\5""99;::<__a\377\377" \
- "\377\376\376\376\216\377\377\377\1\234\234\234\205::<\1\234\234\236\266" \
- "\377\377\377\3\214\305@\214\306>\214\305@\207\214\306>\4\214\305@\215" \
- "\305>\214\306>\252\324p\251\377\377\377\215\214\306>\1\250\325p\216\377" \
- "\377\377\1\342\361\320\202\214\306>\1\214\305@\220\214\306>\10\216\306" \
- "\77\215\306A\214\305@\224\310J\360\371\350\377\377\377\377\376\377\376" \
- "\377\377\216\377\377\377\213\214\306>\3\215\305>\214\306>\305\342\240" \
- "\215\377\377\377\4\252\324p\214\306>\215\305>\214\305@\207\214\306>\3" \
- "\214\305@\214\306>\214\305@\232\377\377\377\4\252\324p\214\306>\215\305" \
- ">\214\305@\207\214\306>\3\214\305@\214\306>\214\305@\212\377\377\377" \
- "\1\377\377\375\202\377\377\377\2\377\376\377\377\377\377\202\376\377" \
- "\377\25\377\377\375\370\373\362\223\312K\212\307>\215\305>\216\306A\212" \
- "\307<\214\305B\215\307\77\214\305@\214\306>\214\305@\212\306@\215\307" \
- "=\216\306A\215\305>\214\306<\252\324n\376\377\377\376\376\376\377\376" \
- "\377\202\377\377\375\4\377\376\377\376\376\377\252\324n\215\306A\202" \
- "\214\306>\21\214\305@\215\307\77\215\305>\212\307>\214\306<\213\304A" \
- "\215\307=\214\304=\215\307\77\212\307>\214\306>\277\337\226\377\376\377" \
- "\376\377\375\377\377\375\377\377\377\376\376\376\225\377\377\377\3\234" \
- "\234\236::<;;=\204::<\4;;=\265\265\267\377\377\377\376\376\376\204\377" \
- "\377\377\202\376\376\376\202\377\377\377\1\376\376\376\225\377\377\377" \
- "\1\376\376\376\203\377\377\377\1\376\376\376\202\377\377\377\1\376\376" \
- "\376\202\377\377\377\3\250\250\250::<\204\204\206\205\377\377\377\1\376" \
- "\376\376\214\377\377\377\1\316\316\316\205::<\1kkm\226\377\377\377\1" \
- "\376\376\376\202\377\377\377\2kkm99;\202::<\4;;=::<\204\204\206\376\376" \
- "\376\202\377\377\377\1\376\376\376\224\377\377\377\1\376\376\376\203" \
- "\377\377\377\2\376\376\376\265\265\265\202::<\1;;=\202::<\3;;=\316\316" \
- "\320\316\316\316\204::<\3;;=::<\266\266\266\236\377\377\377\1\234\234" \
- "\236\205::<\1\234\234\234\226\377\377\377\202\376\376\376\2\377\377\377" \
- "\376\376\376\205\377\377\377\4\376\376\376\251\251\253;;=99;\202::<\4" \
- "<<>99;::<\250\250\252\217\377\377\377\1\234\234\234\205::<\1\234\234" \
- "\236\266\377\377\377\3\214\305@\214\306>\214\305@\207\214\306>\4\214" \
- "\305@\215\305>\214\306>\252\324p\251\377\377\377\215\214\306>\1\250\325" \
- "p\216\377\377\377\1\342\361\320\202\214\306>\1\214\305@\220\214\306>" \
- "\202\214\305@\6\212\306@\215\307\77\243\321d\377\377\375\377\375\377" \
- "\376\377\377\216\377\377\377\213\214\306>\3\215\305>\214\306>\305\342" \
- "\240\215\377\377\377\4\252\324p\214\306>\215\305>\214\305@\207\214\306" \
- ">\3\214\305@\214\306>\214\305@\232\377\377\377\4\252\324p\214\306>\215" \
- "\305>\214\305@\207\214\306>\3\214\305@\214\306>\214\305@\211\377\377" \
- "\377\2\376\377\377\377\377\375\202\377\377\377\1\376\376\376\202\377" \
- "\377\377\6\376\377\372\376\377\377\377\376\377\331\357\301\213\304\77" \
- "\215\307=\202\214\305@\25\214\305B\214\306<\215\305@\212\307<\214\306" \
- ">\216\306=\212\307>\212\306B\214\305@\215\306E\212\306@\313\347\255\376" \
- "\377\375\376\376\377\376\377\377\377\376\377\377\377\377\333\355\305" \
- "\212\307>\216\306\77\215\307\77\202\214\306>\1\215\307\77\202\214\306" \
- ">\13\215\305<\212\306@\212\307<\215\307\77\211\306=\213\307A\233\314" \
- "V\370\373\362\377\377\375\377\377\377\376\377\377\202\377\377\375\2\374" \
- "\377\377\377\375\376\222\377\377\377\3\363\363\363GGI::<\202;;=\202:" \
- ":<\2;;=\234\234\234\214\377\377\377\1\376\376\376\221\377\377\377\1\376" \
- "\376\376\202\377\377\377\3\376\376\376\377\377\377\376\376\376\206\377" \
- "\377\377\3\376\376\376\377\377\377\316\316\316\203\377\377\377\1\376" \
- "\376\376\203\377\377\377\1\376\376\376\213\377\377\377\1\316\316\316" \
- "\205::<\1kkm\227\377\377\377\5\376\376\376\377\377\377\235\235\237::" \
- "<;;=\203::<\2lln\376\376\376\203\377\377\377\1\376\376\376\224\377\377" \
- "\377\13\376\376\376\377\377\377\376\376\376\377\377\377RRR::<99;::<;" \
- ";=::<kkm\202\377\377\377\1__a\203;;=\202::<\1kkk\236\377\377\377\1\234" \
- "\234\236\205::<\1\234\234\234\241\377\377\377\2\204\204\204;;=\202::" \
- "<\5""99;::<;;=FFH\363\363\363\216\377\377\377\1\234\234\234\205::<\1" \
- "\234\234\236\266\377\377\377\3\214\305@\214\306>\214\305@\207\214\306" \
- ">\4\214\305@\215\305>\214\306>\252\324p\251\377\377\377\215\214\306>" \
- "\1\250\325p\216\377\377\377\1\342\361\320\202\214\306>\1\214\305@\221" \
- "\214\306>\5\213\307A\216\306\77\212\307<\214\306>\277\337\223\220\377" \
- "\377\377\213\214\306>\3\215\305>\214\306>\305\342\240\215\377\377\377" \
- "\4\252\324p\214\306>\215\305>\214\305@\207\214\306>\3\214\305@\214\306" \
- ">\214\305@\232\377\377\377\4\252\324p\214\306>\215\305>\214\305@\207" \
- "\214\306>\3\214\305@\214\306>\214\305@\211\377\377\377\4\376\377\377" \
- "\377\377\375\377\375\377\377\377\377\202\377\377\375\202\377\376\377" \
- "\202\376\377\377\22\377\376\377\262\331~\213\304\77\213\310\77\216\306" \
- "A\212\307<\215\306A\214\304=\213\310\77\214\305@\215\304B\214\305B\214" \
- "\306<\212\307>\212\307<\216\306A\221\312I\370\373\362\203\377\377\377" \
- "\13\370\373\364\226\310K\214\306>\212\307>\215\304B\214\306>\215\306" \
- "A\213\304\77\215\306A\214\306>\215\305@\202\212\306@\13\215\307\77\213" \
- "\310=\220\303@\336\362\315\377\376\377\377\377\377\374\377\377\377\376" \
- "\377\377\377\377\376\376\374\376\377\375\223\377\377\377\1\204\204\206" \
- "\203::<\4""99;;;=::<kkm\211\377\377\377\1\376\376\376\202\377\377\377" \
- "\1\376\376\376\221\377\377\377\1\376\376\376\202\377\377\377\1\376\376" \
- "\376\237\377\377\377\1\316\316\316\205::<\1kkm\231\377\377\377\4\234" \
- "\234\236;;=::<;;=\202::<\3jjl\377\377\377\376\376\376\232\377\377\377" \
- "\10\265\265\265:::::<;;=::<99;::<\316\316\316\202\377\377\377\1\265\265" \
- "\267\204::<\3;;=::<\316\316\316\235\377\377\377\1\234\234\236\205::<" \
- "\1\234\234\234\241\377\377\377\2\363\363\363__a\203::<\4;;=::<;;=\234" \
- "\234\236\216\377\377\377\1\234\234\234\205::<\1\234\234\236\266\377\377" \
- "\377\3\214\305@\214\306>\214\305@\207\214\306>\4\214\305@\215\305>\214" \
- "\306>\252\324p\251\377\377\377\215\214\306>\1\250\325p\216\377\377\377" \
- "\1\342\361\320\202\214\306>\1\214\305@\220\214\306>\10\215\304B\214\306" \
- "<\214\305@\215\305@\212\306@\215\305>\323\354\265\377\376\377\216\377" \
- "\377\377\213\214\306>\3\215\305>\214\306>\305\342\240\215\377\377\377" \
- "\4\252\324p\214\306>\215\305>\214\305@\207\214\306>\3\214\305@\214\306" \
- ">\214\305@\232\377\377\377\4\252\324p\214\306>\215\305>\214\305@\207" \
- "\214\306>\3\214\305@\214\306>\214\305@\212\377\377\377\3\375\377\376" \
- "\377\377\377\377\377\375\202\377\377\377\26\377\377\375\375\377\374\376" \
- "\377\377\377\376\377\377\377\375\365\375\362\225\311K\212\306@\214\306" \
- ">\214\305@\212\306@\216\306=\211\306;\215\306A\214\306>\215\307\77\217" \
- "\304@\214\306>\212\307>\215\305@\214\305@\262\327z\203\377\377\377\13" \
- "\260\331{\213\310\77\214\305B\214\305@\215\305@\215\307\77\212\307<\216" \
- "\306A\213\305;\214\305@\215\305>\202\214\306>\11\215\305@\214\306<\276" \
- "\340\224\377\376\375\377\377\375\376\377\377\377\376\375\376\377\375" \
- "\377\376\377\202\377\377\377\1\376\377\375\221\377\377\377\1\346\346" \
- "\346\206::<\2:::\346\346\346\202\377\377\377\1\376\376\376\276\377\377" \
- "\377\1\316\316\316\205::<\1kkm\216\377\377\377\1\376\376\376\202\377" \
- "\377\377\1\376\376\376\207\377\377\377\3\234\234\236::<;;=\203::<\1k" \
- "km\226\377\377\377\1\376\376\376\204\377\377\377\2\376\376\376lln\205" \
- "::<\1``b\204\377\377\377\1SSS\205::<\1kkm\235\377\377\377\1\234\234\236" \
- "\205::<\1\234\234\234\242\377\377\377\2\316\316\316:::\202::<\5;;=::" \
- "<;;=FFH\363\363\363\206\377\377\377\1\376\376\376\206\377\377\377\1\234" \
- "\234\234\205::<\1\234\234\236\266\377\377\377\3\214\305@\214\306>\214" \
- "\305@\207\214\306>\4\214\305@\215\305>\214\306>\252\324p\251\377\377" \
- "\377\215\214\306>\1\250\325p\216\377\377\377\1\342\361\320\202\214\306" \
- ">\1\214\305@\210\214\306>\27\215\306A\212\307>\215\305>\215\305@\215" \
- "\307=\217\304B\214\306<\214\305@\215\307\77\215\305@\215\307\77\214\305" \
- "@\216\306\77\211\310<\226\312L\347\364\332\377\377\377\377\376\377\377" \
- "\377\375\374\377\377\377\376\377\376\376\376\376\377\377\207\377\377" \
- "\377\213\214\306>\3\215\305>\214\306>\305\342\240\215\377\377\377\4\252" \
- "\324p\214\306>\215\305>\214\305@\207\214\306>\3\214\305@\214\306>\214" \
- "\305@\232\377\377\377\4\252\324p\214\306>\215\305>\214\305@\207\214\306" \
- ">\3\214\305@\214\306>\214\305@\221\377\377\377\1\377\377\375\203\377" \
- "\377\377\5\333\355\303\214\306>\212\307<\216\306A\214\305@\202\214\306" \
- ">\15\215\305@\214\306>\212\306@\213\310\77\215\305>\216\306A\211\306" \
- "=\212\306@\212\307<\334\354\305\377\377\375\335\354\303\212\307>\210" \
- "\214\306>\10\216\306A\212\307;\215\306A\216\306A\214\305@\241\321a\371" \
- "\374\361\375\376\377\223\377\377\377\1\376\376\376\204\377\377\377\2" \
- "\376\376\376\234\234\234\203::<\1""99;\202::<\1\234\234\234\302\377\377" \
- "\377\1\316\316\316\205::<\1kkm\217\377\377\377\1\376\376\376\202\377" \
- "\377\377\3\376\376\376\377\377\377\376\376\376\202\377\377\377\3\376" \
- "\376\376\377\377\377xxz\202::<\5""99;::<;;=xxz\376\376\377\232\377\377" \
- "\377\3\317\317\31799;;;=\202::<\5;;=::<\265\265\265\377\377\377\376\376" \
- "\376\202\377\377\377\2\265\265\265;;=\202::<\203;;=\1\332\332\332\203" \
- "\377\377\377\1\376\376\376\230\377\377\377\1\234\234\236\205::<\1\234" \
- "\234\234\242\377\377\377\4\376\376\376\204\204\204::<;;=\202::<\3;;=" \
- "::<\266\266\266\207\377\377\377\1\376\376\376\205\377\377\377\1\234\234" \
- "\234\205::<\1\234\234\236\266\377\377\377\3\214\305@\214\306>\214\305" \
- "@\207\214\306>\4\214\305@\215\305>\214\306>\252\324p\251\377\377\377" \
- "\215\214\306>\1\250\325p\216\377\377\377\1\342\361\320\202\214\306>\1" \
- "\214\305@\211\214\306>\27\216\306A\214\306>\212\306@\214\306<\213\310" \
- "\77\215\305@\215\307\77\213\305=\216\306\77\212\307;\212\306@\215\305" \
- ">\215\306A\212\307>\245\320d\367\375\361\376\377\377\377\376\377\377" \
- "\377\377\376\376\377\377\376\377\375\377\376\377\377\375\206\377\377" \
- "\377\213\214\306>\3\215\305>\214\306>\305\342\240\215\377\377\377\4\252" \
- "\324p\214\306>\215\305>\214\305@\207\214\306>\3\214\305@\214\306>\214" \
- "\305@\232\377\377\377\4\252\324p\214\306>\215\305>\214\305@\207\214\306" \
- ">\3\214\305@\214\306>\214\305@\221\377\377\377\6\376\376\376\377\376" \
- "\377\377\377\377\375\377\376\376\377\377\270\333\207\203\214\306>\17" \
- "\211\306=\212\307<\214\306<\214\305@\215\307\77\214\305@\216\305C\214" \
- "\306>\212\310A\215\305@\216\306\77\223\312K\360\371\346\222\311I\214" \
- "\305@\210\214\306>\10\214\305@\212\307>\214\305@\216\306A\215\307=\350" \
- "\364\334\375\377\376\377\376\377\225\377\377\377\7\376\376\376\377\377" \
- "\377\376\376\376\377\377\377SSS::<;;=\203::<\5FFH\364\364\364\376\376" \
- "\376\377\377\377\376\376\376\277\377\377\377\1\316\316\316\205::<\1k" \
- "km\222\377\377\377\1\376\376\376\204\377\377\377\3\376\376\376\377\377" \
- "\377SSU\205::<\1\234\234\236\202\377\377\377\1\376\376\376\202\377\377" \
- "\377\1\376\376\376\220\377\377\377\1\376\376\376\204\377\377\377\2kk" \
- "m;;=\202::<\5;;=::<SSU\377\377\377\376\376\376\204\377\377\377\7SSU:" \
- ":<;;=::<;;=::<\205\205\205\234\377\377\377\1\234\234\236\205::<\1\234" \
- "\234\234\240\377\377\377\1\376\376\376\202\377\377\377\1\346\346\346" \
- "\202::<\1;;=\202::<\2;;=__a\205\377\377\377\1\376\376\376\202\377\377" \
- "\377\1\376\376\376\204\377\377\377\1\234\234\234\205::<\1\234\234\236" \
- "\266\377\377\377\3\214\305@\214\306>\214\305@\207\214\306>\4\214\305" \
- "@\215\305>\214\306>\252\324p\251\377\377\377\215\214\306>\1\250\325p" \
- "\216\377\377\377\1\342\361\320\202\214\306>\1\214\305@\211\214\306>\27" \
- "\214\304=\215\305>\213\307A\212\306@\214\305B\215\305<\213\310=\215\307" \
- "\77\215\304B\214\306<\213\307A\215\305>\216\306A\212\306@\212\307>\270" \
- "\332\204\377\376\377\377\377\377\377\376\377\376\376\374\377\377\373" \
- "\377\376\377\377\377\375\206\377\377\377\213\214\306>\3\215\305>\214" \
- "\306>\305\342\240\215\377\377\377\4\252\324p\214\306>\215\305>\214\305" \
- "@\207\214\306>\3\214\305@\214\306>\214\305@\232\377\377\377\4\252\324" \
- "p\214\306>\215\305>\214\305@\207\214\306>\3\214\305@\214\306>\214\305" \
- "@\223\377\377\377\1\377\377\375\202\377\377\377\2\371\372\364\232\315" \
- "W\202\214\305@\4\214\306<\215\307\77\214\305B\215\306C\202\215\306A\1" \
- "\214\306<\202\212\307>\6\215\305@\212\307>\215\305>\212\306B\216\306" \
- "A\212\307>\210\214\306>\10\214\305B\215\307\77\214\306<\214\306>\304" \
- "\341\237\377\377\377\377\376\377\377\377\375\220\377\377\377\1\376\376" \
- "\376\203\377\377\377\1\376\376\376\203\377\377\377\10\301\301\301::<" \
- ";;=99;;;=::<99;\234\234\236\207\377\377\377\1\376\376\376\273\377\377" \
- "\377\1\316\316\316\205::<\1kkm\216\377\377\377\1\376\376\376\202\377" \
- "\377\377\1\376\376\376\204\377\377\377\3\376\376\376\377\377\377\315" \
- "\315\315\202;;=\203::<\6;;=\265\265\267\377\377\377\376\376\376\377\377" \
- "\377\376\376\376\225\377\377\377\2\376\376\376\317\317\317\203::<\4;" \
- ";=::<;;=\264\264\264\206\377\377\377\10\234\234\234;;=::<;;=99;;;=::" \
- "<\346\346\346\233\377\377\377\1\234\234\236\205::<\1\234\234\234\237" \
- "\377\377\377\1\376\376\376\204\377\377\377\1\204\204\206\202::<\6;;=" \
- "99;;;=::<\346\346\346\376\376\376\204\377\377\377\3\376\376\376\377\377" \
- "\377\376\376\376\204\377\377\377\1\234\234\234\205::<\1\234\234\236\266" \
- "\377\377\377\3\214\305@\214\306>\214\305@\207\214\306>\4\214\305@\215" \
- "\305>\214\306>\252\324p\251\377\377\377\215\214\306>\1\250\325p\216\377" \
- "\377\377\1\342\361\320\202\214\306>\1\214\305@\210\214\306>\22\215\307" \
- "\77\212\307>\216\306A\212\304<\215\307\77\215\305@\216\306\77\213\307" \
- "A\214\306>\214\305@\215\307\77\213\310=\212\307>\214\306>\214\306<\214" \
- "\306>\216\306\77\324\353\267\202\376\376\376\3\377\377\377\376\376\377" \
- "\376\377\375\207\377\377\377\213\214\306>\3\215\305>\214\306>\305\342" \
- "\240\215\377\377\377\4\252\324p\214\306>\215\305>\214\305@\207\214\306" \
- ">\3\214\305@\214\306>\214\305@\232\377\377\377\4\252\324p\214\306>\215" \
- "\305>\214\305@\207\214\306>\3\214\305@\214\306>\214\305@\221\377\377" \
- "\377\3\376\377\377\377\377\377\376\377\375\202\377\377\377\7\377\376" \
- "\377\341\363\315\215\305@\214\305@\215\306A\215\305@\216\306\77\202\214" \
- "\306>\12\214\305B\212\307<\213\304A\213\310=\216\306A\211\306;\213\310" \
- "=\214\305@\212\307>\215\305>\210\214\306>\10\215\307\77\214\304=\212" \
- "\307>\243\322b\377\377\377\376\377\377\377\376\377\377\377\375\226\377" \
- "\377\377\4\376\376\376\377\377\377\204\204\206;;=\203::<\3""99;;;=\364" \
- "\364\364\205\377\377\377\1\376\376\376\275\377\377\377\1\316\316\316" \
- "\205::<\1kkm\217\377\377\377\202\376\376\376\202\377\377\377\1\376\376" \
- "\376\203\377\377\377\4\376\376\376xxz;;=99;\202;;=\4::<;;=\346\346\346" \
- "\376\376\376\204\377\377\377\1\376\376\376\224\377\377\377\1xxz\203:" \
- ":<\3;;=::<SSU\203\377\377\377\1\376\376\376\203\377\377\377\2\363\363" \
- "\363FFH\202::<\4;;=99;::<\204\204\206\233\377\377\377\1\234\234\236\205" \
- "::<\1\234\234\234\244\377\377\377\1\316\316\316\202;;=\5::<;;=99;;;=" \
- "\250\250\252\203\377\377\377\1\376\376\376\210\377\377\377\1\234\234" \
- "\234\205::<\1\234\234\236\266\377\377\377\3\214\305@\214\306>\214\305" \
- "@\207\214\306>\4\214\305@\215\305>\214\306>\252\324p\251\377\377\377" \
- "\215\214\306>\1\250\325p\216\377\377\377\1\342\361\320\202\214\306>\1" \
- "\214\305@\210\214\306>\7\213\305=\214\306<\210\306\77\216\306\77\215" \
- "\307=\214\306>\215\307\77\202\214\306>\14\215\307\77\214\305B\214\306" \
- "<\212\307<\214\305@\216\306\77\215\305>\214\305@\224\313L\352\364\331" \
- "\374\377\377\377\376\377\211\377\377\377\213\214\306>\3\215\305>\214" \
- "\306>\305\342\240\215\377\377\377\4\252\324p\214\306>\215\305>\214\305" \
- "@\207\214\306>\3\214\305@\214\306>\214\305@\232\377\377\377\4\252\324" \
- "p\214\306>\215\305>\214\305@\207\214\306>\3\214\305@\214\306>\214\305" \
- "@\222\377\377\377\1\376\377\377\202\377\377\377\24\376\376\374\376\377" \
- "\375\377\375\377\277\337\224\214\306>\212\307>\215\307\77\214\304=\215" \
- "\307=\213\304A\214\306<\212\307>\215\307\77\214\305@\213\304\77\215\307" \
- "\77\215\305@\214\304=\215\305<\215\306A\210\214\306>\1\212\307>\202\215" \
- "\306A\4\350\365\333\377\375\376\377\376\377\375\376\377\226\377\377\377" \
- "\1\376\376\376\202\377\377\377\3TTV::<99;\202;;=\4::<\203\203\203\377" \
- "\377\377\376\376\376\302\377\377\377\1\316\316\316\205::<\1kkm\222\377" \
- "\377\377\1\376\376\376\204\377\377\377\3\300\300\302;;=::<\202;;=\202" \
- "::<\2```\376\376\376\227\377\377\377\7\376\376\376\377\377\377\346\346" \
- "\346;;=99;::<;;=\202::<\3\251\251\251\377\377\377\376\376\376\206\377" \
- "\377\377\1\234\234\234\202::<\1;;=\202::<\2;;=\346\346\346\232\377\377" \
- "\377\1\234\234\236\205::<\1\234\234\234\235\377\377\377\1\376\376\376" \
- "\207\377\377\377\11SSU::<;;=99;<<>::<xxz\377\377\377\376\376\376\212" \
- "\377\377\377\1\234\234\234\205::<\1\234\234\236\266\377\377\377\3\214" \
- "\305@\214\306>\214\305@\207\214\306>\4\214\305@\215\305>\214\306>\252" \
- "\324p\251\377\377\377\215\214\306>\1\250\325p\216\377\377\377\1\342\361" \
- "\320\202\214\306>\1\214\305@\210\214\306>\25\213\307A\216\306A\232\315" \
- "W\215\306C\212\306@\214\305@\212\307;\216\306A\215\305>\215\307\77\214" \
- "\305@\215\307\77\214\306>\214\305@\212\306B\213\307C\214\306>\215\305" \
- "@\232\315V\372\374\367\376\376\376\202\377\377\375\1\376\376\376\206" \
- "\377\377\377\213\214\306>\3\215\305>\214\306>\305\342\240\215\377\377" \
- "\377\4\252\324p\214\306>\215\305>\214\305@\207\214\306>\3\214\305@\214" \
- "\306>\214\305@\232\377\377\377\4\252\324p\214\306>\215\305>\214\305@" \
- "\207\214\306>\3\214\305@\214\306>\214\305@\221\377\377\377\5\377\376" \
- "\377\376\377\377\377\375\376\377\376\377\376\377\377\202\377\377\377" \
- "\10\370\373\362\233\314V\213\307A\211\306=\215\307\77\212\307<\212\306" \
- "@\215\305<\202\214\306>\7\215\307=\215\306A\214\305@\212\307>\216\306" \
- "A\212\306@\215\307=\210\214\306>\10\212\307>\212\307<\313\347\254\376" \
- "\377\377\377\377\377\377\376\377\376\377\377\377\377\375\223\377\377" \
- "\377\1\376\376\376\203\377\377\377\1\332\332\332\202::<\1;;=\203::<\1" \
- "\302\302\302\203\377\377\377\5\376\376\376\377\377\377\376\376\376\377" \
- "\377\377\376\376\376\274\377\377\377\1\316\316\316\205::<\1kkm\217\377" \
- "\377\377\1\376\376\376\206\377\377\377\3\332\332\334FFH;;=\205::<\1\265" \
- "\265\265\202\377\377\377\1\376\376\376\224\377\377\377\1\376\376\376" \
- "\202\377\377\377\1\205\205\207\202::<\1;;=\202::<\2GGI\363\363\363\202" \
- "\377\377\377\1\376\376\376\205\377\377\377\1\363\363\363\202::<\1;;=" \
- "\202::<\2""99;\234\234\234\203\377\377\377\1\376\376\376\226\377\377" \
- "\377\1\234\234\236\205::<\1\234\234\234\234\377\377\377\1\376\376\376" \
- "\210\377\377\377\3\222\222\222::<99;\202;;=\5""99;GGI\376\376\376\377" \
- "\377\377\376\376\376\211\377\377\377\1\234\234\234\205::<\1\234\234\236" \
- "\266\377\377\377\3\214\305@\214\306>\214\305@\207\214\306>\4\214\305" \
- "@\215\305>\214\306>\252\324p\251\377\377\377\215\214\306>\1\250\325p" \
- "\216\377\377\377\1\342\361\320\202\214\306>\1\214\305@\210\214\306>\10" \
- "\213\307A\214\306>\331\356\303\232\315W\215\305>\215\306A\214\305B\214" \
- "\306>\202\214\305@\7\213\310=\214\306>\215\304B\215\306A\211\306;\213" \
- "\310\77\214\305@\202\215\307\77\2\257\326{\376\377\373\202\377\377\377" \
- "\1\377\377\375\206\377\377\377\213\214\306>\3\215\305>\214\306>\305\342" \
- "\240\215\377\377\377\4\252\324p\214\306>\215\305>\214\305@\207\214\306" \
- ">\3\214\305@\214\306>\214\305@\232\377\377\377\4\252\324p\214\306>\215" \
- "\305>\214\305@\207\214\306>\3\214\305@\214\306>\214\305@\221\377\377" \
- "\377\6\377\377\373\377\377\375\377\377\377\376\376\377\377\376\377\373" \
- "\377\374\202\377\376\377\4\336\362\315\220\303@\213\310=\215\307\77\202" \
- "\212\306@\1\215\305@\202\214\306>\7\213\305=\214\306>\213\305=\214\305" \
- "@\213\310\77\212\306@\213\307A\210\214\306>\10\215\307\77\252\324p\377" \
- "\377\375\376\377\377\377\377\375\377\377\377\377\376\377\377\377\375" \
- "\220\377\377\377\1\376\376\376\203\377\377\377\1\376\376\376\202\377" \
- "\377\377\1\265\265\265\204::<\5;;=::<\363\363\363\377\377\377\376\376" \
- "\376\302\377\377\377\1\316\316\316\205::<\1kkm\225\377\377\377\2\317" \
- "\317\317FFH\206::<\1SSU\204\377\377\377\1\376\376\376\225\377\377\377" \
- "\2\346\346\346;;=\203::<\3;;=::<\234\234\236\202\377\377\377\1\376\376" \
- "\376\207\377\377\377\2\204\204\206;;=\204::<\2FFF\362\362\362\231\377" \
- "\377\377\1\234\234\236\205::<\1\234\234\234\245\377\377\377\1\301\301" \
- "\301\202::<\6;;=::<;;=::<\347\347\347\376\376\376\212\377\377\377\1\234" \
- "\234\234\205::<\1\234\234\236\266\377\377\377\3\214\305@\214\306>\214" \
- "\305@\207\214\306>\4\214\305@\215\305>\214\306>\252\324p\251\377\377" \
- "\377\215\214\306>\1\250\325p\216\377\377\377\1\342\361\320\202\214\306" \
- ">\1\214\305@\210\214\306>\27\214\305@\215\305<\342\362\315\353\365\334" \
- "\223\312K\215\305<\212\306@\215\305<\212\307>\215\306A\214\306>\212\307" \
- ">\215\307\77\215\304B\215\307\77\215\305@\214\306>\215\305>\214\305@" \
- "\215\305<\315\345\253\377\377\375\376\377\377\207\377\377\377\213\214" \
- "\306>\3\215\305>\214\306>\305\342\240\215\377\377\377\4\252\324p\214" \
- "\306>\215\305>\214\305@\207\214\306>\3\214\305@\214\306>\214\305@\232" \
- "\377\377\377\4\252\324p\214\306>\215\305>\214\305@\207\214\306>\3\214" \
- "\305@\214\306>\214\305@\221\377\377\377\14\376\377\377\376\376\377\377" \
- "\377\377\377\377\373\376\377\375\377\376\377\376\377\377\377\377\377" \
- "\377\376\375\276\340\224\214\306<\215\305@\202\214\306>\12\215\305>\214" \
- "\305@\215\305@\214\305@\213\310\77\214\306>\216\306\77\211\305\77\215" \
- "\307=\214\305@\210\214\306>\4\223\312K\360\367\347\377\377\377\377\377" \
- "\375\232\377\377\377\2\376\376\376\234\234\236\204::<\2;;=___\234\377" \
- "\377\377\1\376\376\376\203\377\377\377\1\376\376\376\244\377\377\377" \
- "\1\316\316\316\205::<\1kkm\202\377\377\377\1\376\376\376\216\377\377" \
- "\377\4\376\376\376\377\377\377\347\347\347\204\204\204\203::<\6;;=::" \
- "<;;=::<;;=\301\301\303\226\377\377\377\1\376\376\376\203\377\377\377" \
- "\1\203\203\205\202;;=\5::<;;=::<GGG\363\363\363\206\377\377\377\1\376" \
- "\376\376\203\377\377\377\3\347\347\34799;;;=\202::<\202;;=\1\234\234" \
- "\236\231\377\377\377\1\234\234\236\205::<\1\234\234\234\245\377\377\377" \
- "\1\363\363\363\202::<\1""99;\203::<\1\316\316\316\213\377\377\377\1\234" \
- "\234\234\204::<\2;;=kkm\203\234\234\236\2\235\235\237\234\234\234\220" \
- "\234\234\236\204\234\234\234\4\235\235\235\234\234\234\234\234\236\346" \
- "\346\350\231\377\377\377\3\214\305@\214\306>\214\305@\207\214\306>\4" \
- "\214\305@\215\305>\214\306>\252\324p\251\377\377\377\215\214\306>\1\250" \
- "\325p\216\377\377\377\1\342\361\320\202\214\306>\1\214\305@\210\214\306" \
- ">\40\213\307A\215\305>\341\360\317\377\375\376\324\353\267\215\304B\214" \
- "\306>\215\307=\214\305@\212\307>\212\307<\215\305<\215\306A\214\306>" \
- "\214\306<\212\306@\214\305@\215\307\77\216\306=\212\306B\214\306>\352" \
- "\364\333\377\376\377\377\377\377\377\376\377\377\377\377\377\377\375" \
- "\376\377\373\375\376\377\377\376\377\214\306>\215\307\77\211\214\306" \
- ">\3\215\305>\214\306>\305\342\240\215\377\377\377\4\252\324p\214\306" \
- ">\215\305>\214\305@\207\214\306>\3\214\305@\214\306>\214\305@\232\377" \
- "\377\377\4\252\324p\214\306>\215\305>\214\305@\207\214\306>\3\214\305" \
- "@\214\306>\214\305@\232\377\377\377\7\374\377\375\242\321a\216\306A\212" \
- "\307>\214\306>\215\307\77\212\307<\210\214\306>\16\215\307\77\214\307" \
- ";\213\304\77\216\306A\214\305B\215\307\77\215\305>\212\307>\320\345\254" \
- "\374\377\377\377\376\377\377\377\375\377\376\377\375\377\372\223\377" \
- "\377\377\1\376\376\376\203\377\377\377\3\376\376\376\377\377\377kkm\203" \
- "::<\3<<>::<\221\221\221\305\377\377\377\1\316\316\316\204::<\2;;=jjl" \
- "\217\377\377\377\16\316\316\316\300\300\300\234\234\234__a::<;;=::<;" \
- ";=::<99;;;=::<;;=\204\204\206\232\377\377\377\1\362\362\362\202;;=\202" \
- "::<\3""99;::<\235\235\235\212\377\377\377\12\376\376\376\377\377\377" \
- "\205\205\20799;;;=::<;;=::<GGI\376\376\376\230\377\377\377\1\234\234" \
- "\236\205::<\1\234\234\234\246\377\377\377\10EEG::<;;=::<99;;;=\234\234" \
- "\234\377\377\377\202\376\376\376\202\377\377\377\1\376\376\376\205\377" \
- "\377\377\1\234\234\234\205::<\2;;=99;\202;;=\2""99;;;=\221::<\1""99;" \
- "\203::<\3;;=::<\316\316\316\231\377\377\377\3\214\305@\214\306>\214\305" \
- "@\207\214\306>\4\214\305@\215\305>\214\306>\252\324p\251\377\377\377" \
- "\215\214\306>\1\250\325p\216\377\377\377\1\342\361\320\202\214\306>\1" \
- "\214\305@\210\214\306>\202\214\306<\32\342\361\322\377\377\377\377\377" \
- "\375\266\334\205\212\306B\215\307\77\212\306@\220\306=\214\306>\215\307" \
- "\77\214\305B\213\305=\216\306\77\215\307\77\215\305<\212\306B\215\306" \
- "A\215\305@\216\306=\232\315V\371\373\360\377\377\375\377\377\377\375" \
- "\376\377\377\375\377\376\376\377\202\377\377\377\2\214\305@\212\307>" \
- "\211\214\306>\3\215\305>\214\306>\305\342\240\215\377\377\377\4\252\324" \
- "p\214\306>\215\305>\214\305@\207\214\306>\3\214\305@\214\306>\214\305" \
- "@\232\377\377\377\4\252\324p\214\306>\215\305>\214\305@\207\214\306>" \
- "\3\214\305@\214\306>\214\305@\233\377\377\377\5\347\365\334\211\306=" \
- "\215\305>\216\306=\214\305@\211\214\306>\2\215\304B\212\307>\202\214" \
- "\306>\14\215\306A\214\306<\215\305@\252\324p\374\377\377\377\377\377" \
- "\377\375\376\377\376\377\376\376\377\377\377\375\377\377\377\377\375" \
- "\377\222\377\377\377\1\376\376\376\203\377\377\377\4\376\376\376lln:" \
- ":<;;=\203::<\2\235\235\235\376\376\376\304\377\377\377\1\316\316\316" \
- "\205::<\202;;=\2::<;;=\202::<\1;;=\211::<\202;;=\204::<\1""99;\202::" \
- "<\5;;=::<;;=__a\376\376\376\224\377\377\377\1\376\376\376\205\377\377" \
- "\377\1\235\235\235\206::<\3\346\346\346\377\377\377\376\376\376\207\377" \
- "\377\377\5\376\376\376\377\377\377\376\376\376\346\346\350;;=\203::<" \
- "\3;;=::<\265\265\265\230\377\377\377\1\234\234\236\205::<\1\234\234\234" \
- "\246\377\377\377\1lln\202::<\4""99;;;=99;\234\234\234\213\377\377\377" \
- "\1\234\234\234\203::<\7;;=::<;;=::<;;=::<;;=\222::<\7;;=99;;;=::<;;=" \
- "::<\316\316\316\231\377\377\377\3\214\305@\214\306>\214\305@\207\214" \
- "\306>\4\214\305@\215\305>\214\306>\252\324p\251\377\377\377\215\214\306" \
- ">\1\250\325p\216\377\377\377\1\342\361\320\202\214\306>\1\214\305@\210" \
- "\214\306>\13\216\306A\213\310\77\343\361\320\377\377\375\375\377\376" \
- "\371\374\361\242\320c\213\310\77\216\306\77\214\306>\215\306A\202\214" \
- "\305@\2\216\306A\213\305=\204\214\306>\11\213\307A\216\306A\212\307>" \
- "\260\331y\377\376\377\376\377\375\377\377\373\376\377\377\377\377\377" \
- "\202\377\376\377\2\212\311=\215\306A\211\214\306>\3\215\305>\214\306" \
- ">\305\342\240\215\377\377\377\4\252\324p\214\306>\215\305>\214\305@\207" \
- "\214\306>\3\214\305@\214\306>\214\305@\232\377\377\377\4\252\324p\214" \
- "\306>\215\305>\214\305@\207\214\306>\3\214\305@\214\306>\214\305@\231" \
- "\377\377\377\6\377\376\377\377\377\373\377\376\377\305\342\240\212\310" \
- "\77\214\304=\202\215\305@\210\214\306>\4\215\305>\213\305=\212\306@\215" \
- "\306A\202\214\306>\10\222\312M\370\373\362\377\376\377\377\375\376\377" \
- "\376\377\377\377\377\376\377\375\377\377\377\202\377\376\377\221\377" \
- "\377\377\1\376\376\376\205\377\377\377\2::<;;=\202::<\202;;=\3\300\300" \
- "\300\377\377\377\376\376\376\235\377\377\377\1\376\376\376\245\377\377" \
- "\377\1\316\316\316\207::<\5;;=::<;;=::<;;=\210::<\202;;=\2""99;;;=\202" \
- "::<\3;;=::<;;=\202::<\3;;=xxz\363\363\363\225\377\377\377\3\376\376\376" \
- "\377\377\377\376\376\376\202\377\377\377\3\363\363\363FFH::<\202;;=\202" \
- "::<\1\204\204\206\205\377\377\377\1\376\376\376\205\377\377\377\1\376" \
- "\376\376\202\377\377\377\1kkm\202::<\1;;=\202::<\1SSU\230\377\377\377" \
- "\1\234\234\236\205::<\1\234\234\234\244\377\377\377\3\376\376\376\377" \
- "\377\377xxz\202::<\1;;=\202::<\3xxx\377\377\377\376\376\376\211\377\377" \
- "\377\1\234\234\234\203::<\1;;=\202::<\1;;=\224::<\5;;=99;;;=::<;;=\202" \
- "::<\1\316\316\316\231\377\377\377\3\214\305@\214\306>\214\305@\207\214" \
- "\306>\4\214\305@\215\305>\214\306>\252\324p\251\377\377\377\215\214\306" \
- ">\1\250\325p\216\377\377\377\1\342\361\320\202\214\306>\1\214\305@\210" \
- "\214\306>\3\214\305@\214\306<\343\361\316\202\377\377\377\26\377\376" \
- "\374\353\365\335\223\312K\211\305\77\215\307=\215\306C\211\306;\214\306" \
- ">\215\305@\215\307\77\214\305@\213\307A\214\306>\212\307<\216\306\77" \
- "\212\306B\215\305>\212\306@\304\341\236\377\376\377\375\377\376\377\377" \
- "\375\203\377\377\377\2\212\306@\214\306<\211\214\306>\3\215\305>\214" \
- "\306>\305\342\240\215\377\377\377\4\252\324p\214\306>\215\305>\214\305" \
- "@\207\214\306>\3\214\305@\214\306>\214\305@\232\377\377\377\4\252\324" \
- "p\214\306>\215\305>\214\305@\207\214\306>\3\214\305@\214\306>\214\305" \
- "@\231\377\377\377\2\377\377\373\376\377\377\202\377\377\377\4\241\321" \
- "c\215\306A\215\305>\213\310\77\210\214\306>\20\215\305@\215\307=\213" \
- "\310\77\214\304;\216\306\77\213\310\77\333\355\303\377\375\376\377\377" \
- "\375\377\376\377\377\377\377\375\377\374\376\377\377\377\377\377\377" \
- "\377\375\376\376\376\222\377\377\377\1\376\376\376\204\377\377\377\206" \
- "::<\2\316\316\316\376\376\376\234\377\377\377\1\376\376\376\247\377\377" \
- "\377\1\316\316\316\204::<\1;;=\205::<\1;;=\212::<\4""99;;;=::<;;=\203" \
- "::<\1;;=\202::<\1\233\233\233\234\377\377\377\3\235\235\23799;;;=\203" \
- "::<\2;;=\346\346\346\203\377\377\377\1\376\376\376\204\377\377\377\3" \
- "\376\376\376\377\377\377\376\376\376\203\377\377\377\4\316\316\320;;" \
- "=::<;;=\202::<\2;;=\264\264\264\227\377\377\377\1\234\234\236\205::<" \
- "\1\234\234\234\246\377\377\377\2\234\234\236;;=\203::<\2;;=kkk\213\377" \
- "\377\377\1\234\234\234\204::<\3;;=::<;;=\225::<\2;;=99;\202::<\3;;=:" \
- "::\316\316\316\231\377\377\377\3\214\305@\214\306>\214\305@\207\214\306" \
- ">\4\214\305@\215\305>\214\306>\252\324p\251\377\377\377\215\214\306>" \
- "\1\250\325p\216\377\377\377\1\342\361\320\202\214\306>\1\214\305@\210" \
- "\214\306>\14\215\307\77\215\305@\340\361\315\376\376\376\377\376\377" \
- "\377\377\375\377\377\377\323\353\267\212\307>\215\305@\214\305@\214\311" \
- "@\202\214\306>\22\212\307>\215\305@\214\306>\212\306@\214\305@\215\305" \
- ">\215\307=\214\306>\214\304=\215\307\77\341\362\316\377\376\377\377\377" \
- "\377\376\376\376\377\377\375\375\376\377\217\307@\212\306@\211\214\306" \
- ">\3\215\305>\214\306>\305\342\240\215\377\377\377\4\252\324p\214\306" \
- ">\215\305>\214\305@\207\214\306>\3\214\305@\214\306>\214\305@\232\377" \
- "\377\377\4\252\324p\214\306>\215\305>\214\305@\207\214\306>\3\214\305" \
- "@\214\306>\214\305@\232\377\377\377\7\377\376\377\376\377\377\377\377" \
- "\377\352\364\331\212\307<\215\307=\212\307>\211\214\306>\13\212\306@" \
- "\214\306<\216\306A\214\305@\252\322q\376\376\377\376\377\373\377\376" \
- "\377\376\376\377\377\377\375\376\377\377\203\377\377\377\1\376\377\375" \
- "\227\377\377\377\202::<\202;;=\3::<;;=\316\316\316\233\377\377\377\1" \
- "\375\375\375\251\377\377\377\1\316\316\316\211::<\1;;=\213::<\3;;=::" \
- "<;;=\204::<\3""99;\205\205\207\346\346\346\233\377\377\377\4\376\376" \
- "\376\364\364\364FFH;;=\202::<\202;;=\1\204\204\204\215\377\377\377\1" \
- "\376\376\376\202\377\377\377\7kkm::<99;::<;;=99;TTV\227\377\377\377\1" \
- "\234\234\236\205::<\1\234\234\234\246\377\377\377\1\234\234\236\202:" \
- ":<\202;;=\2::<kkk\202\377\377\377\3\376\376\376\377\377\377\376\376\376" \
- "\206\377\377\377\1\234\234\234\203::<\1;;=\202::<\2;;=::<\202;;=\223" \
- "::<\2""99;;;=\202::<\2;;;\316\316\316\231\377\377\377\3\214\305@\214" \
- "\306>\214\305@\207\214\306>\4\214\305@\215\305>\214\306>\252\324p\251" \
- "\377\377\377\215\214\306>\1\250\325p\216\377\377\377\1\342\361\320\202" \
- "\214\306>\1\214\305@\210\214\306>\202\214\305@\15\341\362\316\377\377" \
- "\375\376\377\375\377\377\377\373\377\374\377\376\377\271\332\211\212" \
- "\307>\212\307<\214\305B\214\305@\216\306\77\212\307>\202\215\307\77\11" \
- "\214\305B\215\306A\212\311=\214\303A\214\306>\215\306A\212\307>\225\311" \
- "K\371\372\362\202\377\377\375\202\377\377\377\2\214\305@\215\306A\211" \
- "\214\306>\3\215\305>\214\306>\305\342\240\215\377\377\377\4\252\324p" \
- "\214\306>\215\305>\214\305@\207\214\306>\3\214\305@\214\306>\214\305" \
- "@\232\377\377\377\4\252\324p\214\306>\215\305>\214\305@\207\214\306>" \
- "\3\214\305@\214\306>\214\305@\231\377\377\377\10\376\377\377\377\376" \
- "\377\377\377\375\377\375\376\331\356\303\214\306>\214\305B\215\307\77" \
- "\210\214\306>\12\215\305>\212\306B\215\304B\214\306>\215\307=\224\310" \
- "J\364\370\351\376\376\374\375\377\372\377\377\375\203\377\377\377\3\377" \
- "\376\377\377\377\377\376\377\375\221\377\377\377\3\376\376\376\377\377" \
- "\377\376\376\376\203\377\377\377\7::<;;=99;::<;;=::<\315\315\315\232" \
- "\377\377\377\1\376\376\376\203\377\377\377\1\376\376\376\246\377\377" \
- "\377\1\316\316\316\204::<\1;;=\202::<\1;;=\203::<\1;;=\210::<\1;;=\202" \
- "::<\1;;=\202::<\4``b\233\233\235\347\347\351\376\376\376\235\377\377" \
- "\377\2\265\265\265;;=\202::<\1;;=\202::<\1\332\332\332\216\377\377\377" \
- "\3\376\376\376\377\377\377\302\302\302\206::<\1\315\315\315\226\377\377" \
- "\377\1\234\234\236\205::<\1\234\234\234\245\377\377\377\2\376\376\376" \
- "\235\235\237\205::<\1jjj\203\377\377\377\3\376\376\376\377\377\377\376" \
- "\376\376\205\377\377\377\1\234\234\234\204::<\2;;=kkm\202\234\234\236" \
- "\1\233\233\235\223\234\234\234\202\235\235\235\1\233\233\233\203\234" \
- "\234\234\1\346\346\346\231\377\377\377\3\214\305@\214\306>\214\305@\207" \
- "\214\306>\4\214\305@\215\305>\214\306>\252\324p\251\377\377\377\215\214" \
- "\306>\1\250\325p\216\377\377\377\1\342\361\320\202\214\306>\1\214\305" \
- "@\210\214\306>\17\212\307>\216\306A\342\360\315\376\377\377\376\376\374" \
- "\375\377\376\377\376\377\377\376\374\377\377\375\242\320d\215\307=\214" \
- "\306>\214\305@\215\305@\212\306@\202\214\305@\17\215\305@\212\307>\215" \
- "\307\77\214\306<\215\306A\213\304\77\215\306A\215\307\77\252\324n\377" \
- "\377\377\375\377\376\377\376\377\377\377\375\212\307<\215\305@\211\214" \
- "\306>\3\215\305>\214\306>\305\342\240\215\377\377\377\4\252\324p\214" \
- "\306>\215\305>\214\305@\207\214\306>\3\214\305@\214\306>\214\305@\232" \
- "\377\377\377\4\252\324p\214\306>\215\305>\214\305@\207\214\306>\3\214" \
- "\305@\214\306>\214\305@\232\377\377\377\6\376\377\375\377\375\377\367" \
- "\375\363\223\312H\216\306\77\215\305>\212\214\306>\2\215\305@\214\306" \
- ">\202\212\307>\3\214\305@\247\324o\377\376\377\202\377\377\377\2\377" \
- "\376\377\377\377\375\233\377\377\377\2::<;;=\204::<\2\316\316\316\376" \
- "\376\376\236\377\377\377\3\316\316\316;;;:::\230::<\213\377\377\377\1" \
- "\316\316\316\224::<\6kkmlln\205\205\207\234\234\236\301\301\303\363\363" \
- "\363\202\377\377\377\1\376\376\376\202\377\377\377\3\376\376\376\377" \
- "\377\377\376\376\376\231\377\377\377\1SSS\204::<\2;;=lln\213\377\377" \
- "\377\1\376\376\376\205\377\377\377\2\376\376\376TTV\205::<\1lll\226\377" \
- "\377\377\1\234\234\236\205::<\1\234\234\234\246\377\377\377\2\233\233" \
- "\235;;=\204::<\2kkk\376\376\376\203\377\377\377\1\376\376\376\206\377" \
- "\377\377\1\234\234\234\205::<\1\234\234\236\266\377\377\377\3\214\305" \
- "@\214\306>\214\305@\207\214\306>\4\214\305@\215\305>\214\306>\252\324" \
- "p\251\377\377\377\215\214\306>\1\250\325p\216\377\377\377\1\342\361\320" \
- "\202\214\306>\1\214\305@\210\214\306>\3\212\307>\215\305>\342\362\315" \
- "\202\377\377\377\22\377\376\377\376\377\377\377\377\375\376\377\377\363" \
- "\367\346\225\311K\211\307@\216\306\77\212\307>\215\305@\214\306<\212" \
- "\307>\214\305@\214\306>\212\306@\215\306C\214\304\77\215\307\77\202\214" \
- "\306>\7\212\306@\307\341\240\377\376\377\376\377\372\377\377\377\212" \
- "\307>\215\305>\211\214\306>\3\215\305>\214\306>\305\342\240\215\377\377" \
- "\377\4\252\324p\214\306>\215\305>\214\305@\207\214\306>\3\214\305@\214" \
- "\306>\214\305@\232\377\377\377\4\252\324p\214\306>\215\305>\214\305@" \
- "\207\214\306>\3\214\305@\214\306>\214\305@\231\377\377\377\4\377\376" \
- "\377\376\377\375\376\377\377\257\330z\202\214\305@\1\215\307\77\211\214" \
- "\306>\14\212\307>\215\307\77\214\305@\215\305@\212\307>\215\307=\214" \
- "\305B\313\347\252\377\377\377\377\375\377\377\376\377\376\376\376\202" \
- "\376\377\375\231\377\377\377\4GGI;;=::<;;=\202::<\1\233\233\235\237\377" \
- "\377\377\3\316\316\316::<;;=\230::<\213\377\377\377\1\316\316\316\205" \
- "::<\1kkm\202\377\377\377\2\376\376\376\250\250\250\206::<\2FFH\346\346" \
- "\346\210\377\377\377\1\376\376\376\237\377\377\377\1\264\264\266\203" \
- ";;=\4::<;;=;;;\316\316\316\222\377\377\377\1\265\265\265\204::<\3;;=" \
- "::<\316\316\316\203\377\377\377\1\376\376\376\221\377\377\377\1\234\234" \
- "\236\205::<\1\234\234\234\245\377\377\377\2\376\376\376\235\235\237\205" \
- "::<\1lll\213\377\377\377\1\234\234\234\205::<\1\234\234\236\266\377\377" \
- "\377\3\214\305@\214\306>\214\305@\207\214\306>\4\214\305@\215\305>\214" \
- "\306>\252\324p\251\377\377\377\215\214\306>\1\250\325p\216\377\377\377" \
- "\1\342\361\320\202\214\306>\1\214\305@\211\214\306>\2\214\305@\343\361" \
- "\316\205\377\377\377\10\376\377\375\377\377\377\333\355\303\215\305@" \
- "\214\306>\214\306<\214\305@\215\305>\202\214\305@\207\214\306>\6\212" \
- "\306@\214\307;\330\355\304\377\376\377\377\377\377\215\305>\212\214\306" \
- ">\3\215\305>\214\306>\305\342\240\215\377\377\377\17\251\323q\214\306" \
- ">\215\307\77\214\305B\215\307\77\213\305=\215\307\77\214\305@\212\307" \
- ">\215\305@\213\310\77\214\305@\215\305<\214\306>\376\377\377\230\377" \
- "\377\377\6\376\377\377\253\323p\215\305@\213\307A\214\306<\212\306B\202" \
- "\214\306>\4\214\305@\214\306>\212\307>\214\305@\202\214\306>\2\214\305" \
- "@\376\377\375\220\377\377\377\1\377\377\375\202\377\377\377\16\376\377" \
- "\375\377\376\377\377\375\376\374\377\377\377\377\375\376\377\375\377" \
- "\377\377\336\355\304\214\306>\215\306A\214\306>\215\306A\212\306@\216" \
- "\306A\202\214\305@\4\215\307\77\214\306>\215\307\77\214\306>\202\214" \
- "\305@\16\214\306>\215\307\77\214\306>\215\307\77\214\305@\214\305B\222" \
- "\313H\361\370\346\376\377\377\377\377\377\377\376\377\377\377\377\374" \
- "\377\377\377\376\377\230\377\377\377\1kkm\202::<\1""99;\202::<\1\235" \
- "\235\237\233\377\377\377\1\376\376\376\203\377\377\377\1\316\316\316" \
- "\224::<\1;;=\205::<\213\377\377\377\1\316\316\316\205::<\1kkm\204\377" \
- "\377\377\3wwy::<;;=\202::<\4""99;;;=``b\363\363\363\206\377\377\377\1" \
- "\376\376\376\235\377\377\377\4\376\376\376\377\377\377\376\376\376TT" \
- "V\205::<\1lln\223\377\377\377\10\376\376\376SSU;;=::<;;=99;::<lll\205" \
- "\377\377\377\1\376\376\376\217\377\377\377\1\234\234\236\205::<\1\234" \
- "\234\234\246\377\377\377\1\204\204\206\202::<\1;;=\202::<\3xxx\377\377" \
- "\377\376\376\376\211\377\377\377\1\234\234\234\205::<\1\234\234\236\266" \
- "\377\377\377\3\214\305@\214\306>\214\305@\207\214\306>\4\214\305@\215" \
- "\305>\214\306>\252\324p\251\377\377\377\215\214\306>\1\250\325p\216\377" \
- "\377\377\1\342\361\320\202\214\306>\1\214\305@\211\214\306>\2\214\305" \
- "@\343\361\316\205\377\377\377\7\377\375\377\377\377\375\376\377\377\276" \
- "\337\220\213\310\77\213\304A\216\306=\207\214\306>\3\215\307\77\214\306" \
- ">\212\307>\202\215\305>\5\223\312J\361\371\344\377\375\377\212\307<\214" \
- "\305@\211\214\306>\3\215\305>\214\306>\305\342\240\214\377\377\377\14" \
- "\376\376\374\252\324n\214\306>\213\305=\215\307\77\214\305@\215\306A" \
- "\214\306>\215\307\77\213\310\77\215\305@\212\307>\202\214\306>\1\214" \
- "\305@\232\377\377\377\3\247\324m\215\305>\214\305@\202\214\306>\1\215" \
- "\307=\202\214\305@\6\214\306<\215\307=\214\305B\215\307\77\214\306>\214" \
- "\305@\224\377\377\377\15\377\377\375\376\376\376\377\377\377\377\376" \
- "\377\376\377\375\377\377\375\372\373\366\222\312M\216\306A\215\305<\214" \
- "\306>\212\307>\215\305<\202\214\306>\2\215\307\77\213\305=\204\214\306" \
- ">\1\214\305@\203\214\306>\14\215\307\77\214\305@\213\304\77\214\305B" \
- "\253\324n\376\376\377\376\377\377\377\376\377\377\377\377\376\377\375" \
- "\377\377\375\376\377\375\227\377\377\377\3lln::<;;=\203::<\2kkm\376\376" \
- "\376\236\377\377\377\2\316\316\316;;=\226::<\3;;=::<kkm\213\377\377\377" \
- "\1\316\316\316\204::<\2;;=kkm\204\377\377\377\3\363\363\363__a;;=\203" \
- "::<\4;;=99;\205\205\207\376\376\376\202\377\377\377\1\376\376\376\203" \
- "\377\377\377\1\376\376\376\236\377\377\377\1\301\301\301\204::<\4;;=" \
- "::<wwy\235\235\237\223\234\234\236\1kkm\204::<\5;;=99;\345\345\345\377" \
- "\377\377\376\376\376\222\377\377\377\1\234\234\236\205::<\1\234\234\234" \
- "\246\377\377\377\1kkm\204::<\2;;=\234\234\234\213\377\377\377\1\234\234" \
- "\234\205::<\1\234\234\236\266\377\377\377\3\214\305@\214\306>\214\305" \
- "@\207\214\306>\4\214\305@\215\305>\214\306>\252\324p\251\377\377\377" \
- "\215\214\306>\1\250\325p\216\377\377\377\1\342\361\320\202\214\306>\1" \
- "\214\305@\211\214\306>\2\214\305@\343\361\316\205\377\377\377\2\377\377" \
- "\375\377\375\377\202\377\377\377\1\242\322b\202\214\305@\2\214\305B\215" \
- "\307\77\205\214\306>\12\215\307\77\214\306>\215\306A\214\306>\212\306" \
- "@\215\307=\241\321c\377\377\377\215\304B\212\307>\211\214\306>\3\215" \
- "\305>\214\306>\305\342\240\214\377\377\377\5\376\377\375\251\323o\215" \
- "\307\77\214\306>\215\307\77\202\214\305@\2\214\306>\215\307\77\202\214" \
- "\306>\5\213\310\77\215\305>\214\305@\214\306>\377\376\377\230\377\377" \
- "\377\12\377\376\377\247\326p\213\304\77\215\307\77\214\305B\214\306<" \
- "\214\306>\215\307\77\214\305@\214\306>\202\215\307\77\3\214\306>\215" \
- "\306A\216\306\77\223\377\377\377\5\376\377\372\377\377\375\376\376\376" \
- "\377\377\377\377\377\375\202\377\376\377\4\250\325p\212\307<\214\305" \
- "@\215\307\77\202\214\305@\3\214\307;\215\307=\214\306>\202\214\305@\202" \
- "\214\306>\1\215\307\77\207\214\306>\202\214\305@\5\212\307>\307\341\240" \
- "\376\376\374\377\377\377\377\376\377\202\377\377\377\1\376\376\374\227" \
- "\377\377\377\7\234\234\236;;=99;<<>99;::<;;=\237\377\377\377\1\316\316" \
- "\316\223::<\7;;=99;;;=99;::<;;=kkm\213\377\377\377\1\316\316\316\205" \
- "::<\2mmo\376\376\377\204\377\377\377\12\332\332\332FFH;;=::<;;=99;<<" \
- ">::<\266\266\270\376\376\376\203\377\377\377\1\376\376\376\202\377\377" \
- "\377\1\376\376\376\230\377\377\377\3\376\376\376\377\377\377\376\376" \
- "\376\202\377\377\377\1kkm\205::<\202;;=\224::<\10;;=::<;;=::<;;=88:;" \
- ";=\205\205\205\224\377\377\377\1\234\234\236\205::<\1\234\234\234\246" \
- "\377\377\377\3SSU;;=::<\203;;=\1\234\234\234\206\377\377\377\1\376\376" \
- "\376\204\377\377\377\1\234\234\234\205::<\1\234\234\236\266\377\377\377" \
- "\3\214\305@\214\306>\214\305@\207\214\306>\4\214\305@\215\305>\214\306" \
- ">\252\324p\251\377\377\377\215\214\306>\1\250\325p\216\377\377\377\1" \
- "\342\361\320\202\214\306>\1\214\305@\211\214\306>\2\214\305@\343\361" \
- "\316\205\377\377\377\10\376\376\374\376\377\375\377\375\377\377\377\377" \
- "\367\372\357\224\313L\214\305B\215\305<\203\214\306>\202\215\307\77\204" \
- "\214\306>\6\215\306A\213\307A\214\306>\212\306@\277\337\223\215\305>" \
- "\212\214\306>\3\215\305>\214\306>\305\342\240\214\377\377\377\2\376\377" \
- "\377\251\322r\202\215\307\77\1\214\305B\202\214\306>\202\215\307\77\7" \
- "\214\306>\215\307\77\214\306>\214\304\77\212\306@\215\307\77\377\376" \
- "\377\230\377\377\377\7\377\377\375\215\305@\214\306>\214\305@\214\306" \
- ">\216\306\77\214\306<\203\214\305@\6\215\306C\215\307=\214\305@\215\306" \
- "A\233\314V\377\377\375\220\377\377\377\5\376\376\376\377\377\377\377" \
- "\376\377\377\375\377\377\377\375\202\376\377\377\21\377\376\377\314\346" \
- "\251\212\306B\215\307=\212\307>\216\306\77\215\306C\212\307>\215\306" \
- "C\214\305@\215\307\77\213\304\77\215\306A\214\306>\214\305@\215\307\77" \
- "\215\306A\203\214\306>\1\215\307\77\202\214\306>\202\215\307\77\10\214" \
- "\306>\214\305@\350\364\334\377\377\375\377\376\377\377\377\377\376\376" \
- "\376\377\376\377\222\377\377\377\1\376\376\376\204\377\377\377\1\301" \
- "\301\301\202::<\2""99;;;=\202::<\1\316\316\316\233\377\377\377\1\376" \
- "\376\376\202\377\377\377\2\316\316\316;;;\222::<\7""99;;;=::<;;=::<9" \
- "9;\204\204\206\213\377\377\377\1\316\316\316\205::<\1jjl\202\377\377" \
- "\377\202\376\376\376\202\377\377\377\1\265\265\267\202::<\202;;=\202" \
- "::<\2FFH\332\332\332\205\377\377\377\1\376\376\376\234\377\377\377\2" \
- "\376\376\376\317\317\317\202::<\1;;=\204::<\3;;=::<;;=\222::<\2""99;" \
- ";;=\202::<\1;;=\203::<\3\346\346\346\377\377\377\376\376\376\221\377" \
- "\377\377\1\234\234\236\205::<\1\234\234\234\246\377\377\377\1;;=\203" \
- "::<\4;;=::<\316\316\316\376\376\376\203\377\377\377\1\376\376\376\206" \
- "\377\377\377\1\234\234\234\205::<\1\234\234\236\266\377\377\377\3\214" \
- "\305@\214\306>\214\305@\207\214\306>\4\214\305@\215\305>\214\306>\252" \
- "\324p\251\377\377\377\215\214\306>\1\250\325p\216\377\377\377\1\342\361" \
- "\320\202\214\306>\1\214\305@\211\214\306>\2\214\305@\343\361\316\205" \
- "\377\377\377\203\376\377\377\202\377\376\377\2\341\361\315\214\305@\203" \
- "\215\307\77\202\214\306>\1\215\307\77\203\214\306>\10\214\305@\215\307" \
- "\77\214\306>\212\307>\216\306A\213\305;\214\305@\215\305<\211\214\306" \
- ">\3\215\305>\214\306>\305\342\240\214\377\377\377\2\376\377\377\252\324" \
- "p\202\214\306>\3\214\305B\214\306<\215\307\77\203\214\306>\6\214\306" \
- "<\214\307;\217\307@\212\307>\214\305@\376\377\377\231\377\377\377\10" \
- "\215\307=\214\305B\213\304A\216\310@\214\304\77\215\307=\214\305@\215" \
- "\307\77\203\214\306>\3\215\307\77\214\306>\247\324o\222\377\377\377\3" \
- "\377\377\375\377\377\377\377\375\376\203\377\377\377\20\360\371\346\223" \
- "\312K\216\306\77\213\304A\215\306A\213\305=\215\305@\212\307>\215\305" \
- "<\214\305B\214\305@\214\306>\214\306<\214\306>\215\307\77\213\305=\204" \
- "\214\306>\202\215\307\77\203\214\306>\10\215\306A\212\307<\243\321d\377" \
- "\377\373\375\377\376\377\376\377\377\377\377\376\376\374\223\377\377" \
- "\377\5\375\375\375\377\377\377\376\376\376\377\377\377\346\346\346\202" \
- "::<\1;;=\203::<\1\221\221\221\235\377\377\377\3\376\376\376\377\377\377" \
- "\376\376\376\222\377\377\377\1__a\204::<\2;;=\234\234\234\213\377\377" \
- "\377\1\316\316\316\205::<\3jjl\377\377\377\376\376\376\205\377\377\377" \
- "\2\204\204\206;;=\204::<\3;;=RRT\363\363\363\237\377\377\377\1\376\376" \
- "\376\202\377\377\377\2jjl;;=\206::<\4;;=::<99;;;=\223::<\1;;=\205::<" \
- "\1\204\204\206\203\377\377\377\1\376\376\376\217\377\377\377\1\234\234" \
- "\236\205::<\1\234\234\234\245\377\377\377\3\315\315\315;;=99;\202::<" \
- "\5""99;;;=\346\346\346\377\377\377\376\376\376\211\377\377\377\1\234" \
- "\234\234\205::<\1\234\234\236\266\377\377\377\3\214\305@\214\306>\214" \
- "\305@\207\214\306>\4\214\305@\215\305>\214\306>\252\324p\251\377\377" \
- "\377\215\214\306>\1\250\325p\216\377\377\377\1\342\361\320\202\214\306" \
- ">\1\214\305@\211\214\306>\2\214\305@\343\361\316\207\377\377\377\202" \
- "\377\377\375\4\376\377\377\377\377\375\303\342\237\212\306@\202\214\305" \
- "@\206\214\306>\7\216\306\77\213\305;\214\305@\216\306A\214\306>\215\307" \
- "\77\213\307A\212\214\306>\3\215\305>\214\306>\305\342\240\215\377\377" \
- "\377\17\252\323k\215\306A\214\306>\215\307\77\214\306>\215\307\77\214" \
- "\305@\214\306>\213\304A\215\306C\214\305@\213\304A\213\310=\214\306<" \
- "\342\357\321\230\377\377\377\6\360\371\346\214\305B\212\307<\215\307" \
- "=\213\305=\215\307\77\202\214\305@\7\215\306A\214\306>\214\306<\214\305" \
- "@\214\306>\214\305@\252\324p\222\377\377\377\11\377\376\377\376\377\377" \
- "\377\377\377\377\377\375\376\376\374\377\377\377\253\323p\215\307\77" \
- "\211\306;\202\215\306A\6\214\306>\214\306<\215\305>\216\305C\215\307" \
- "\77\213\304\77\202\215\307\77\2\215\307=\213\305;\202\215\307\77\2\214" \
- "\306>\215\307\77\205\214\306>\5\215\307\77\212\306@\214\306>\215\307" \
- "\77\304\341\236\202\377\377\377\2\376\376\377\374\377\377\230\377\377" \
- "\377\7SSU;;=99;::<;;=::<FFH\232\377\377\377\1\376\376\376\205\377\377" \
- "\377\1\376\376\376\220\377\377\377\2\376\376\376;;=\202::<\1;;=\202:" \
- ":<\1\316\316\316\213\377\377\377\1\316\316\316\205::<\1kkm\210\377\377" \
- "\377\2__a;;=\204::<\2;;=xxz\202\377\377\377\1\376\376\376\233\377\377" \
- "\377\1\376\376\376\202\377\377\377\2\315\315\315;;=\206::<\2;;=99;\203" \
- ";;=\223::<\1;;=\205::<\6FFH\363\363\363\377\377\377\376\376\376\377\377" \
- "\377\376\376\376\216\377\377\377\1\234\234\236\205::<\1\234\234\234\244" \
- "\377\377\377\4\376\376\376\223\223\22399;;;=\202::<\4;;=EEG\377\377\377" \
- "\376\376\376\202\377\377\377\1\376\376\376\202\377\377\377\1\376\376" \
- "\376\204\377\377\377\1\234\234\234\205::<\1\234\234\236\266\377\377\377" \
- "\3\214\305@\214\306>\214\305@\207\214\306>\4\214\305@\215\305>\214\306" \
- ">\252\324p\251\377\377\377\215\214\306>\1\250\325p\216\377\377\377\1" \
- "\342\361\320\202\214\306>\1\214\305@\211\214\306>\2\214\305@\343\361" \
- "\316\206\377\377\377\13\377\376\377\377\377\377\376\377\375\377\377\377" \
- "\377\376\377\376\377\377\253\324l\214\305B\213\304\77\214\305@\215\307" \
- "\77\203\214\306>\11\214\305@\214\306<\216\306=\214\306>\212\306@\215" \
- "\306C\214\304;\212\307>\214\305@\211\214\306>\3\215\305>\214\306>\305" \
- "\342\240\215\377\377\377\1\261\330\177\202\214\306>\2\214\306<\215\306" \
- "A\203\214\306>\7\215\307\77\214\306>\214\306<\215\307=\214\306>\215\306" \
- "C\323\353\267\230\377\377\377\4\340\361\315\215\305@\215\306A\214\305" \
- "@\202\214\306>\2\213\305=\215\306A\202\214\305@\5\214\306>\215\307\77" \
- "\214\306>\214\305@\260\330x\221\377\377\377\3\376\376\376\377\377\373" \
- "\375\377\376\202\377\377\377\25\376\377\377\314\345\253\214\305@\213" \
- "\304\77\216\306\77\212\307>\215\305@\214\306>\214\305@\215\305>\214\305" \
- "@\214\306>\214\306<\214\305@\215\306A\214\305@\215\306C\214\306>\214" \
- "\305@\214\306>\215\307\77\207\214\306>\7\212\306@\220\306=\215\306C\350" \
- "\364\336\376\377\373\377\377\375\376\377\377\230\377\377\377\1\221\221" \
- "\223\203::<\1;;=\202::<\1\265\265\265\230\377\377\377\1\376\376\376\227" \
- "\377\377\377\1\316\316\316\202::<\1;;=\203::<\1\363\363\363\213\377\377" \
- "\377\1\316\316\316\205::<\1kkm\204\377\377\377\1\376\376\376\203\377" \
- "\377\377\2\346\346\346FFH\206::<\2\234\234\236\376\376\376\237\377\377" \
- "\377\1\205\205\205\206::<\3;;=::<;;=\223::<\1;;=\203::<\202;;=\204::" \
- "<\2\234\234\234\376\376\376\221\377\377\377\1\234\234\236\205::<\1\234" \
- "\234\234\245\377\377\377\1RRR\204::<\2""99;yy{\203\377\377\377\1\376" \
- "\376\376\202\377\377\377\202\376\376\376\204\377\377\377\1\234\234\234" \
- "\205::<\1\234\234\236\266\377\377\377\3\214\305@\214\306>\214\305@\207" \
- "\214\306>\4\214\305@\215\305>\214\306>\252\324p\251\377\377\377\215\214" \
- "\306>\1\250\325p\216\377\377\377\1\342\361\320\202\214\306>\1\214\305" \
- "@\211\214\306>\2\214\305@\343\361\316\205\377\377\377\30\377\377\375" \
- "\377\377\377\375\377\376\377\377\377\377\376\377\377\377\377\376\377" \
- "\377\371\372\365\222\313H\214\305B\214\305@\215\307\77\214\306>\215\307" \
- "\77\214\306>\214\305@\212\306B\214\305@\212\307>\216\306\77\212\307>" \
- "\215\307\77\214\306<\214\305@\211\214\306>\3\215\305>\214\306>\305\342" \
- "\240\214\377\377\377\20\377\376\377\301\345\237\215\305>\215\306A\213" \
- "\304\77\215\306C\214\306>\214\306<\216\306\77\214\306>\214\305B\215\307" \
- "\77\214\306>\215\307\77\214\305@\271\332\211\230\377\377\377\10\307\341" \
- "\240\215\305>\214\305@\214\306>\215\305<\212\307>\214\305B\214\306<\202" \
- "\214\306>\5\215\305<\214\305B\215\307\77\214\306>\303\344\235\222\377" \
- "\377\377\6\376\376\377\377\377\375\376\377\377\377\376\377\352\364\333" \
- "\215\305@\202\215\307\77\16\214\306>\215\307\77\214\306>\215\307\77\214" \
- "\306<\216\306A\213\310\77\214\305D\215\3108\214\305@\215\305>\223\312" \
- "K\236\323a\215\307\77\207\214\306>\202\214\305@\10\214\306>\215\307\77" \
- "\212\307>\212\307<\241\321c\377\376\377\377\375\376\377\375\377\230\377" \
- "\377\377\3\332\332\332:::;;=\204::<\1SSU\203\377\377\377\1\376\376\376" \
- "\247\377\377\377\1\376\376\376\204\377\377\377\1\221\221\221\202::<\1" \
- ";:\77\202::<\1RRT\214\377\377\377\1\316\316\316\205::<\1kkm\211\377\377" \
- "\377\2\316\316\316;;=\202::<\5;;=::<;;=::<\316\316\316\210\377\377\377" \
- "\1\376\376\376\215\377\377\377\1\376\376\376\207\377\377\377\2\346\346" \
- "\350::<\202;;=\202::<\2:::xxx\230\234\234\234\3\235\235\235\234\234\234" \
- "kkm\203::<\4;;=::<FFH\364\364\364\203\377\377\377\1\376\376\376\215\377" \
- "\377\377\1\234\234\236\205::<\1\234\234\234\241\377\377\377\1\376\376" \
- "\376\202\377\377\377\1\332\332\334\206::<\1\250\250\252\214\377\377\377" \
- "\1\234\234\234\205::<\1\234\234\236\266\377\377\377\3\214\305@\214\306" \
- ">\214\305@\204\214\306>\2\213\307A\213\310\77\204\214\306>\1\252\324" \
- "p\232\377\377\377\1\377\377\375\216\377\377\377\215\214\306>\1\250\325" \
- "p\216\377\377\377\1\342\361\320\202\214\306>\1\214\305@\211\214\306>" \
- "\2\214\305@\343\361\316\215\377\377\377\10\352\363\336\214\306>\212\306" \
- "B\215\307\77\212\307<\215\305>\214\305@\215\307\77\221\214\306>\3\215" \
- "\305>\214\306>\305\342\240\214\377\377\377\30\377\376\377\313\347\254" \
- "\215\307\77\214\304=\215\307\77\212\306@\215\307\77\215\306A\214\305" \
- "@\214\306>\215\307\77\214\306>\215\307\77\214\305@\214\305B\222\313H" \
- "\377\376\377\377\375\376\377\376\377\377\377\377\377\376\377\377\377" \
- "\373\376\377\377\377\376\377\211\377\377\377\26\377\377\375\377\376\377" \
- "\377\377\377\376\377\377\377\377\375\376\377\375\377\377\377\241\323" \
- "b\215\304D\214\307;\215\307\77\214\305B\215\307\77\214\306<\215\306A" \
- "\212\307>\215\305@\214\306>\213\310=\215\305@\215\306A\323\352\264\221" \
- "\377\377\377\11\376\377\377\376\376\374\376\377\377\377\376\374\377\376" \
- "\377\242\320c\215\307\77\215\306A\214\306>\202\214\305@\203\214\306>" \
- "\25\214\305@\215\306A\214\305@\215\307\77\214\306>\215\307=\315\345\253" \
- "\361\370\346\215\307\77\214\306>\212\306@\216\306A\214\306>\215\305>" \
- "\215\305@\214\305@\212\307>\215\305@\212\306@\215\305<\215\305@\202\214" \
- "\306>\12\277\337\223\377\377\377\376\377\375\377\376\377\377\377\375" \
- "\376\377\377\377\377\377\376\376\376\377\377\377\377\377\375\222\377" \
- "\377\377\1___\202::<\202;;=\202::<\1\266\266\266\250\377\377\377\1\376" \
- "\376\376\202\377\377\377\1\376\376\376\203\377\377\377\1SSU\203::<\3" \
- ";;=::<\221\221\223\214\377\377\377\1\316\316\316\205::<\1kkm\210\377" \
- "\377\377\3\376\376\376\377\377\377\233\233\233\203::<\5;;=::<;;=FFH\364" \
- "\364\364\210\377\377\377\1\376\376\376\213\377\377\377\2\376\376\376" \
- "\377\377\377\202\376\376\376\205\377\377\377\1\204\204\206\202::<\1;" \
- ";=\202::<\3FFF\363\363\363\376\376\376\231\377\377\377\3\346\346\346" \
- "::<;;=\204::<\3\234\234\234\377\377\377\376\376\376\217\377\377\377\1" \
- "\234\234\236\205::<\1\234\234\234\234\377\377\377\1\376\376\376\207\377" \
- "\377\377\3\205\205\207::<;;=\204::<\1\346\346\350\214\377\377\377\1\234" \
- "\234\234\205::<\1\234\234\236\266\377\377\377\3\214\305@\214\306>\214" \
- "\305@\205\214\306>\7\214\306<\214\306>\215\307\77\214\305@\214\306>\252" \
- "\324p\376\377\375\230\377\377\377\203\377\376\377\203\377\377\377\1\376" \
- "\376\377\211\377\377\377\215\214\306>\1\250\325p\216\377\377\377\1\342" \
- "\361\320\202\214\306>\1\214\305@\211\214\306>\2\214\305@\343\361\316" \
- "\215\377\377\377\2\376\377\375\313\347\254\203\214\306>\3\214\305@\216" \
- "\306\77\211\306=\221\214\306>\3\215\305>\214\306>\305\342\240\214\377" \
- "\377\377\11\375\376\377\343\361\316\215\305>\215\307\77\213\304A\215" \
- "\307\77\215\305>\214\306<\214\305@\203\214\306>\14\215\307\77\214\305" \
- "@\213\304\77\214\305B\322\353\264\377\377\377\377\377\375\377\377\377" \
- "\377\376\377\376\377\377\377\377\377\376\377\377\210\377\377\377\13\377" \
- "\377\375\377\377\377\376\377\375\377\376\377\376\376\374\377\377\375" \
- "\377\377\377\350\364\334\215\304D\215\305>\215\307\77\202\214\305@\202" \
- "\214\306>\10\214\305@\215\306A\214\306<\215\306C\214\304=\215\307=\212" \
- "\307<\351\366\332\222\377\377\377\14\377\377\375\377\377\377\377\377" \
- "\375\304\343\237\214\306>\212\307>\217\307@\214\305@\215\307\77\214\306" \
- ">\214\305@\215\306A\202\214\306>\5\214\306<\215\305>\211\307>\216\306" \
- "=\251\323o\202\376\377\377\31\304\341\241\212\306@\215\306A\212\307>" \
- "\215\307\77\214\306<\216\305C\212\307<\216\306A\214\306<\215\307\77\215" \
- "\305>\212\307>\216\306A\214\305@\216\306A\341\361\315\377\376\377\377" \
- "\377\375\376\377\377\377\376\377\376\376\376\377\377\377\377\376\377" \
- "\376\377\375\222\377\377\377\1\265\265\265\202;;=\204::<\2SSU\364\364" \
- "\364\203\377\377\377\1\376\376\376\245\377\377\377\1\376\376\376\203" \
- "\377\377\377\1\316\316\316\203::<\1;;=\202::<\1\302\302\302\214\377\377" \
- "\377\1\316\316\316\205::<\1kkm\213\377\377\377\1lln\204::<\3;;=::<__" \
- "a\202\377\377\377\1\376\376\376\206\377\377\377\1\376\376\376\213\377" \
- "\377\377\1\376\376\376\202\377\377\377\1\376\376\376\203\377\377\377" \
- "\3\346\346\346::<;;=\204::<\1\234\234\234\234\377\377\377\1\204\204\206" \
- "\202;;=\202::<\2;;=SSU\221\377\377\377\1\234\234\236\205::<\1\234\234" \
- "\234\235\377\377\377\1\376\376\376\202\377\377\377\1\376\376\376\202" \
- "\377\377\377\2\346\346\346::<\202;;=\4""99;;;=::<kkm\215\377\377\377" \
- "\1\234\234\234\205::<\1\234\234\236\266\377\377\377\3\214\305@\214\306" \
- ">\214\305@\204\214\306>\10\214\305@\215\306A\215\305@\213\305=\214\306" \
- ">\215\307\77\252\324p\376\377\377\230\377\377\377\1\376\376\376\205\377" \
- "\377\377\2\376\377\377\376\377\375\210\377\377\377\215\214\306>\1\250" \
- "\325p\216\377\377\377\1\342\361\320\202\214\306>\1\214\305@\211\214\306" \
- ">\2\214\305@\343\361\316\215\377\377\377\10\377\377\375\377\375\376\262" \
- "\331|\214\305@\215\306A\214\306>\214\305B\215\307\77\221\214\306>\3\215" \
- "\305>\214\306>\305\342\240\214\377\377\377\10\376\377\375\377\377\377" \
- "\214\304\77\212\307>\216\306A\214\306>\215\305@\215\307\77\206\214\306" \
- ">\202\214\305@\3\233\316X\376\376\377\376\377\373\202\377\377\377\3\377" \
- "\375\376\377\377\375\377\376\377\210\377\377\377\12\377\376\377\376\377" \
- "\375\377\375\376\376\376\374\377\377\377\377\377\375\377\377\377\257" \
- "\330x\214\307;\215\307\77\202\214\305@\2\215\307\77\213\305=\202\214" \
- "\306>\1\215\305>\202\214\306>\5\216\306\77\215\306A\215\305@\376\377" \
- "\375\377\376\377\220\377\377\377\11\377\377\375\377\377\377\376\377\377" \
- "\350\364\334\212\307>\213\310\77\216\306\77\212\307>\214\305@\202\214" \
- "\306>%\215\306A\214\306>\213\305=\214\306>\215\307\77\215\305@\211\307" \
- ">\223\311M\363\367\350\376\377\375\377\377\377\377\377\375\242\320d\212" \
- "\307<\215\306A\214\305@\212\306@\215\306A\214\306>\212\307>\215\307\77" \
- "\217\304@\211\310<\215\305>\213\310\77\212\307>\214\306>\234\315W\367" \
- "\372\363\376\377\377\377\376\377\377\377\375\377\377\377\376\376\376" \
- "\377\377\375\377\377\377\376\377\375\222\377\377\377\1RRR\202::<\203" \
- ";;=\2::<\234\234\236\204\377\377\377\1\376\376\376\246\377\377\377\3" \
- "\376\376\376\377\377\377kkk\202::<\4;;=99;;;=FFH\215\377\377\377\1\316" \
- "\316\316\205::<\1kkm\211\377\377\377\5\376\376\376\377\377\377\363\363" \
- "\363SSU;;=\202::<\202;;=\2""99;\222\222\222\207\377\377\377\3\376\376" \
- "\376\377\377\377\376\376\376\214\377\377\377\1\376\376\376\204\377\377" \
- "\377\3\204\204\204;;=99;\202;;=\3::<FFH\363\363\363\230\377\377\377\1" \
- "\376\376\376\202\377\377\377\2\376\376\376\317\317\317\203::<\4;;=::" \
- "<;;=\266\266\266\220\377\377\377\1\234\234\236\205::<\1\234\234\234\243" \
- "\377\377\377\2\204\204\204;;=\204::<\2""99;\264\264\264\215\377\377\377" \
- "\1\234\234\234\205::<\1\234\234\236\266\377\377\377\3\214\305@\214\306" \
- ">\214\305@\204\214\306>\2\214\305@\214\306>\203\215\306A\2\215\307\77" \
- "\251\323q\231\377\377\377\203\377\377\375\202\377\377\377\1\377\375\376" \
- "\202\377\376\377\210\377\377\377\215\214\306>\1\250\325p\216\377\377" \
- "\377\1\342\361\320\202\214\306>\1\214\305@\211\214\306>\2\214\305@\343" \
- "\361\316\215\377\377\377\7\376\376\376\377\377\375\366\373\364\233\316" \
- "X\215\305@\215\307=\215\305>\222\214\306>\3\215\305>\214\306>\305\342" \
- "\240\216\377\377\377\6\243\322b\214\306>\215\305@\215\307\77\215\305" \
- "@\215\306A\203\214\306>\1\215\307\77\202\214\306>\202\215\307\77\2\214" \
- "\306>\315\346\254\202\377\377\377\4\377\376\375\376\377\375\376\376\377" \
- "\377\376\377\212\377\377\377\7\377\377\375\377\376\377\377\377\373\377" \
- "\377\375\327\356\304\214\306>\215\307\77\202\214\305@\203\214\306>\12" \
- "\215\307\77\214\306>\214\305@\216\306\77\214\306<\214\304\77\212\307" \
- ">\260\331{\376\377\375\377\376\377\220\377\377\377\13\376\377\377\377" \
- "\377\375\370\373\362\233\315Z\216\306A\214\305@\212\307>\215\306A\214" \
- "\306>\214\305@\215\306A\202\214\306>\6\215\307\77\214\305@\214\305B\214" \
- "\306>\215\307=\313\347\254\202\377\377\377\23\377\376\377\377\377\375" \
- "\350\364\334\212\307>\220\306=\214\305@\216\306=\214\306>\214\305@\214" \
- "\306>\212\306@\215\305>\212\306@\215\307\77\212\307>\215\307\77\214\305" \
- "@\212\306@\277\340\221\202\377\377\377\1\377\377\375\203\377\377\377" \
- "\2\377\376\377\377\377\375\220\377\377\377\4\376\376\376\377\377\377" \
- "\265\265\265::<\202;;=\5""99;::<;;=99;\317\317\317\250\377\377\377\1" \
- "\376\376\376\202\377\377\377\2\316\316\31699;\202::<\202;;=\2::<\221" \
- "\221\223\215\377\377\377\1\316\316\316\205::<\1kkm\207\377\377\377\1" \
- "\376\376\376\204\377\377\377\1\332\332\334\203::<\5;;=::<;;=99;\302\302" \
- "\302\202\377\377\377\1\376\376\376\216\377\377\377\1\376\376\376\202" \
- "\377\377\377\1\376\376\376\204\377\377\377\4\362\362\362FFH::<;;=\202" \
- "::<\2;;=\221\221\223\204\377\377\377\202\376\376\376\224\377\377\377" \
- "\1\376\376\376\203\377\377\377\1kkm\202;;=\203::<\1SSU\220\377\377\377" \
- "\1\234\234\236\205::<\1\234\234\234\240\377\377\377\3\376\376\376\377" \
- "\377\377\315\315\315\203::<\1;;=\202::<\1SSU\216\377\377\377\1\234\234" \
- "\234\205::<\1\234\234\236\266\377\377\377\3\214\305@\214\306>\214\305" \
- "@\204\214\306>\3\215\306A\214\306<\215\307=\202\214\305@\3\214\306>\253" \
- "\324n\377\377\375\230\377\377\377\2\375\376\377\376\376\376\203\377\377" \
- "\377\1\377\377\375\212\377\377\377\215\214\306>\1\250\325p\216\377\377" \
- "\377\1\342\361\320\202\214\306>\1\214\305@\211\214\306>\2\214\305@\343" \
- "\361\316\220\377\377\377\5\350\365\333\214\306>\214\305@\214\306>\215" \
- "\306A\221\214\306>\3\215\305>\214\306>\305\342\240\215\377\377\377\7" \
- "\377\377\375\277\337\224\212\306@\215\305@\212\307>\215\306A\215\307" \
- "\77\203\214\306>\202\215\307\77\203\214\306>\3\214\306<\214\306>\351" \
- "\363\330\202\377\377\377\3\376\376\376\374\377\377\376\377\377\211\377" \
- "\377\377\1\376\377\377\202\377\377\377\7\375\376\377\351\365\337\223" \
- "\311M\215\307=\214\305B\214\305@\215\307\77\202\214\306>\12\215\306A" \
- "\214\305@\214\306>\212\307>\215\306A\214\306>\215\307=\213\310\77\316" \
- "\345\255\376\377\377\221\377\377\377\7\376\377\377\377\377\375\300\337" \
- "\223\216\306A\213\305=\215\307=\215\305>\202\214\306>\1\215\307\77\203" \
- "\214\306>\202\214\305@\5\215\307\77\213\307A\251\322r\377\377\377\377" \
- "\377\375\202\377\377\377\14\377\376\377\377\377\377\305\342\237\212\307" \
- "<\220\305\77\214\306>\212\306@\215\306A\214\306<\214\305@\214\306<\216" \
- "\305C\202\214\306>\7\215\305<\214\306>\215\305>\214\305@\342\362\316" \
- "\377\377\377\377\377\375\202\377\377\377\3\376\377\377\377\376\377\376" \
- "\376\376\221\377\377\377\3\376\376\376\377\377\377___\205::<\4;;=FFH" \
- "\363\363\363\377\377\377\202\376\376\376\246\377\377\377\3\363\363\363" \
- "SSU;;=\204::<\4;;=\345\345\345\377\377\377\376\376\376\213\377\377\377" \
- "\1\316\316\316\205::<\1kkm\211\377\377\377\1\376\376\376\203\377\377" \
- "\377\4\264\264\266;;=99;::<\202;;=\3::<GGI\332\332\332\206\377\377\377" \
- "\1\376\376\376\215\377\377\377\1\376\376\376\203\377\377\377\3\234\234" \
- "\236::<;;=\204::<\2\346\346\346\376\376\376\202\377\377\377\1\376\376" \
- "\376\202\377\377\377\202\376\376\376\220\377\377\377\1\376\376\376\204" \
- "\377\377\377\2\376\376\376\317\317\317\204::<\3;;=::<\265\265\265\217" \
- "\377\377\377\1\234\234\236\205::<\1\234\234\234\235\377\377\377\1\376" \
- "\376\376\203\377\377\377\2\363\363\363TTV\203::<\5;;=99;::<\235\235\235" \
- "\376\376\376\215\377\377\377\1\234\234\234\205::<\1\234\234\236\266\377" \
- "\377\377\3\214\305@\214\306>\214\305@\204\214\306>\2\212\306@\213\310" \
- "\77\202\214\305@\3\215\307\77\214\306<\251\323o\231\377\377\377\4\377" \
- "\376\377\377\377\375\377\377\377\376\376\377\214\377\377\377\215\214" \
- "\306>\1\250\325p\216\377\377\377\1\342\361\320\202\214\306>\1\214\305" \
- "@\211\214\306>\2\214\305@\343\361\316\215\377\377\377\1\377\377\375\203" \
- "\377\377\377\4\323\353\267\212\307<\214\306<\212\306B\221\214\306>\3" \
- "\215\305>\214\306>\305\342\240\214\377\377\377\7\376\377\377\377\376" \
- "\377\350\365\331\215\307\77\215\305>\214\306>\212\307>\202\214\306>\1" \
- "\215\307\77\205\214\306>\11\215\307\77\213\304A\212\307>\222\312M\343" \
- "\361\316\376\376\377\377\376\377\377\377\377\377\375\377\210\377\377" \
- "\377\1\377\376\377\202\377\377\375\12\377\376\377\350\364\334\220\313" \
- "K\216\306=\215\305<\215\307\77\214\306>\213\305=\214\306>\215\306A\202" \
- "\214\306>\1\214\305@\202\212\307>\6\214\305@\215\306C\215\305>\360\370" \
- "\351\377\377\373\376\377\377\221\377\377\377\7\345\360\322\215\305@\214" \
- "\305@\215\307=\214\304=\213\310=\215\305>\202\214\306>\2\213\305=\215" \
- "\307\77\202\214\305@\7\215\307\77\214\307;\214\305@\363\367\346\376\377" \
- "\377\377\377\373\377\376\377\202\377\377\377\30\376\377\375\377\376\377" \
- "\241\321a\216\306\77\212\306@\213\310=\215\305@\213\307A\217\304>\215" \
- "\305@\214\306<\216\306A\215\306A\212\307>\214\306<\214\306>\212\307<" \
- "\233\314W\366\373\365\377\377\375\377\377\377\377\376\377\373\377\377" \
- "\377\376\377\224\377\377\377\1\317\317\317\205::<\4;;=::<``b\362\362" \
- "\362\247\377\377\377\2\376\376\376\221\221\221\206::<\3\204\204\206\377" \
- "\377\377\376\376\376\214\377\377\377\1\316\316\316\205::<\1kkm\212\377" \
- "\377\377\6\376\376\376\377\377\377\376\376\376\377\377\377\203\203\203" \
- ";;=\205::<\3``b\363\363\363\376\376\376\216\377\377\377\1\376\376\376" \
- "\206\377\377\377\3\363\363\363FFH;;=\203::<\2;;=\203\203\203\203\377" \
- "\377\377\3\376\376\376\377\377\377\376\376\376\225\377\377\377\1\376" \
- "\376\376\204\377\377\377\3kkk::<<<>\202::<\2;;=kkm\217\377\377\377\1" \
- "\234\234\236\205::<\1\234\234\234\236\377\377\377\4\376\376\376\377\377" \
- "\377\376\376\376kkk\202::<\5;;=::<99;;;=TTV\202\377\377\377\1\376\376" \
- "\376\214\377\377\377\1\234\234\234\205::<\1\234\234\236\266\377\377\377" \
- "\3\214\305@\214\306>\214\305@\204\214\306>\10\214\306<\214\306>\214\305" \
- "@\214\306>\215\307\77\214\306>\252\324r\376\377\377\230\377\377\377\1" \
- "\377\377\375\202\377\377\377\2\377\377\375\376\376\374\203\377\376\377" \
- "\210\377\377\377\215\214\306>\1\250\325p\216\377\377\377\1\342\361\320" \
- "\202\214\306>\1\214\305@\211\214\306>\2\214\305@\343\361\316\215\377" \
- "\377\377\10\375\377\374\377\376\377\375\377\376\376\376\377\377\377\377" \
- "\270\333\207\214\305@\215\307\77\221\214\306>\3\215\305>\214\306>\305" \
- "\342\240\214\377\377\377\12\375\376\377\377\376\377\376\377\377\234\313" \
- "Y\215\306A\214\305@\212\307>\214\305@\214\306>\215\307\77\206\214\306" \
- ">\7\215\307\77\214\306>\215\305@\213\310\77\304\343\240\371\372\364\376" \
- "\377\377\212\377\377\377\10\376\377\377\377\376\377\315\345\251\223\311" \
- "M\214\306>\216\306\77\214\305B\214\306<\202\214\306>\15\215\306A\214" \
- "\305@\214\306>\215\307\77\214\305@\214\306<\214\305@\215\307\77\213\304" \
- "A\263\330{\377\377\377\376\376\376\377\377\375\220\377\377\377\7\370" \
- "\373\364\232\315V\216\306=\212\311=\214\306>\216\306A\213\307A\202\214" \
- "\305@\202\214\306>\202\214\305@\10\215\307\77\215\305>\215\304D\304\341" \
- "\237\376\377\377\377\376\377\376\376\377\377\377\375\202\377\376\377" \
- "\24\376\377\377\377\377\373\350\365\333\215\305>\214\306<\214\306>\212" \
- "\306@\215\307\77\213\305=\215\305@\215\307\77\214\306>\215\305>\215\306" \
- "A\211\305A\215\305@\214\305B\213\310=\262\327z\374\377\377\202\377\377" \
- "\377\2\377\377\375\373\377\376\225\377\377\377\1\221\221\223\203::<\6" \
- ";;=99;;;=::<``b\362\362\362\246\377\377\377\2\265\265\265:::\202::<\1" \
- ";;=\203::<\1\346\346\350\216\377\377\377\1\316\316\316\205::<\1kkm\216" \
- "\377\377\377\6\363\363\363__a::<;;=::<;;=\202::<\1\204\204\204\204\377" \
- "\377\377\1\376\376\376\221\377\377\377\1\234\234\234\204::<\3;;=::<\347" \
- "\347\347\202\377\377\377\1\376\376\376\205\377\377\377\1\376\376\376" \
- "\225\377\377\377\3\376\376\376\377\377\377\265\265\265\202::<\202;;=" \
- "\3::<;;=\316\316\316\216\377\377\377\1\234\234\236\205::<\1\234\234\234" \
- "\240\377\377\377\2\204\204\204:::\206::<\1\301\301\303\217\377\377\377" \
- "\1\234\234\234\205::<\1\234\234\236\266\377\377\377\3\214\305@\214\306" \
- ">\214\305@\205\214\306>\7\214\305@\216\306A\215\307=\213\304\77\213\307" \
- "A\242\321a\345\356\317\230\342\362\316\7\341\361\315\342\361\322\342" \
- "\361\320\343\361\315\345\360\322\365\373\357\376\377\377\211\377\377" \
- "\377\215\214\306>\1\250\325p\216\377\377\377\1\342\361\320\202\214\306" \
- ">\1\214\305@\211\214\306>\2\214\305@\343\361\316\216\377\377\377\7\376" \
- "\377\375\377\377\375\377\377\377\377\376\377\371\374\365\242\322d\215" \
- "\306A\221\214\306>\3\215\305>\214\306>\305\342\240\214\377\377\377\10" \
- "\377\377\375\377\377\377\377\377\373\312\346\253\215\307=\212\307>\214" \
- "\305B\216\306=\206\214\306>\202\214\305@\10\214\306>\212\307>\216\306" \
- "\77\214\306>\212\307>\233\316W\306\340\237\361\370\346\210\377\377\377" \
- "\12\361\370\350\314\345\253\233\314W\214\306>\213\310\77\215\305<\214" \
- "\305@\212\307<\215\306A\214\305@\203\214\306>\202\214\305@\202\214\306" \
- ">\4\216\306A\212\306@\213\310\77\333\356\301\202\377\377\377\1\377\377" \
- "\375\220\377\377\377\26\270\332\204\215\306A\212\306B\214\306>\213\307" \
- "A\215\305@\214\306<\214\306>\215\306A\214\306<\215\307\77\214\305B\215" \
- "\307\77\214\307;\215\304D\241\323b\377\377\375\376\377\377\377\377\377" \
- "\377\377\373\377\377\377\376\377\377\202\377\377\375\16\377\377\377\376" \
- "\377\377\277\337\224\214\305@\215\306A\214\306>\215\305>\212\310\77\214" \
- "\305@\215\307\77\212\307>\214\305B\216\306=\215\306A\202\214\306<\6\214" \
- "\306>\213\307C\331\356\305\377\376\377\377\377\373\376\376\376\227\377" \
- "\377\377\3__a::<;:\77\205::<\2__a\363\363\363\203\377\377\377\1\376\376" \
- "\376\213\377\377\377\1\376\376\376\203\377\377\377\3\376\376\376\377" \
- "\377\377\376\376\376\213\377\377\377\1\376\376\376\202\377\377\377\1" \
- "\265\265\267\205::<\3;;=:::\234\234\234\217\377\377\377\1\316\316\316" \
- "\205::<\1kkm\217\377\377\377\4\332\332\332GGI::<;;=\204::<\1\250\250" \
- "\252\225\377\377\377\1FFH\205::<\1\204\204\204\242\377\377\377\1TTV\205" \
- "::<\4lln\376\376\376\377\377\377\376\376\376\203\377\377\377\1\376\376" \
- "\376\207\377\377\377\1\234\234\236\205::<\1\235\235\237\221\377\377\377" \
- "\1\376\376\376\202\377\377\377\1\376\376\376\202\377\377\377\202\376" \
- "\376\376\205\377\377\377\3\363\363\365\204\204\206;;=\204::<\3;;=:::" \
- "xxx\220\377\377\377\1\234\234\234\203::<\3;;=::<\234\234\234\204\377" \
- "\377\377\1\376\376\376\261\377\377\377\3\214\305@\214\306>\214\305@\250" \
- "\214\306>\2\215\307\77\342\362\316\212\377\377\377\215\214\306>\1\250" \
- "\325p\216\377\377\377\1\342\361\320\202\214\306>\1\214\305@\211\214\306" \
- ">\2\214\305@\343\361\316\216\377\377\377\11\375\376\377\377\376\377\377" \
- "\377\375\376\377\377\377\376\377\351\365\335\223\311M\212\307<\214\306" \
- ">\202\216\306A\4\212\307<\215\306A\215\305>\215\307\77\211\214\306>\3" \
- "\215\305>\214\306>\305\342\240\214\377\377\377\20\377\376\377\377\377" \
- "\375\377\376\377\365\374\364\223\312J\217\304>\215\307\77\212\307;\215" \
- "\306A\214\305B\214\305@\215\307\77\214\306<\213\310\77\214\305@\215\305" \
- ">\210\214\306>\10\234\315Z\257\327~\304\343\235\306\340\237\307\341\240" \
- "\304\343\237\257\327\177\241\321a\210\214\306>\20\217\304>\215\306A\212" \
- "\306@\212\307>\213\305;\216\306A\213\305=\215\306C\211\310<\216\306A" \
- "\214\306>\234\314V\377\377\377\375\377\374\376\377\377\377\376\377\211" \
- "\377\377\377\7\377\376\377\376\377\375\376\377\377\376\377\375\377\376" \
- "\377\377\377\377\333\355\303\210\214\306>\10\215\306A\214\305@\216\306" \
- "=\214\306>\215\307\77\214\305@\215\307\77\352\364\334\211\377\377\377" \
- "\6\377\376\377\367\375\363\232\315V\215\307\77\214\306>\214\305@\212" \
- "\214\306>\6\212\307>\223\311M\366\373\364\377\376\377\377\377\377\376" \
- "\377\373\221\377\377\377\1\376\376\376\204\377\377\377\2\346\346\346" \
- "FFH\203::<\1""99;\203::<\2__a\332\332\332\211\377\377\377\1\376\376\376" \
- "\203\377\377\377\1\376\376\376\205\377\377\377\1\376\376\376\206\377" \
- "\377\377\1\376\376\376\207\377\377\377\1\265\265\267\202::<\1;;=\204" \
- "::<\2```\376\376\376\217\377\377\377\1\316\316\316\205::<\1kkm\216\377" \
- "\377\377\4\376\376\376\377\377\377\301\301\301;;=\205::<\2;;=\331\331" \
- "\331\202\377\377\377\3\376\376\376\377\377\377\376\376\376\216\377\377" \
- "\377\1\265\265\267\205::<\3;;=\332\332\332\376\376\376\241\377\377\377" \
- "\1\266\266\270\205::<\2""99;\316\316\320\215\377\377\377\1\234\234\236" \
- "\203::<\5;;=::<\234\234\234\377\377\377\376\376\376\220\377\377\377\1" \
- "\376\376\376\206\377\377\377\1\376\376\376\203\377\377\377\2\346\346" \
- "\346``b\202::<\2""99;;;=\203::<\4FFF\363\363\363\377\377\377\376\376" \
- "\376\216\377\377\377\1\234\234\234\204::<\3;;=\234\234\234\376\376\376" \
- "\265\377\377\377\3\214\305@\214\306>\214\305@\250\214\306>\2\215\307" \
- "\77\342\362\316\212\377\377\377\215\214\306>\1\250\325p\216\377\377\377" \
- "\1\342\361\320\202\214\306>\1\214\305@\211\214\306>\2\214\305@\343\361" \
- "\316\215\377\377\377\16\377\376\377\376\377\377\377\376\377\377\377\377" \
- "\376\377\377\377\376\377\375\377\374\323\353\267\215\305<\215\306C\215" \
- "\305<\213\306:\213\310\77\212\306@\202\214\305@\211\214\306>\3\215\305" \
- ">\214\306>\305\342\240\215\377\377\377\4\376\377\377\377\377\375\377" \
- "\376\377\305\342\242\202\214\305@\5\216\306A\214\306>\215\307=\215\307" \
- "\77\213\304A\202\214\305@\2\214\306>\212\306@\210\214\306>\7\214\306" \
- "<\215\307=\215\307\77\213\305=\214\306>\215\307\77\213\305=\211\214\306" \
- ">\11\215\306A\215\305>\212\307;\213\304\77\215\306A\211\306=\215\306" \
- "A\212\307<\216\306A\202\215\307\77\4\343\361\320\376\377\375\377\377" \
- "\375\376\376\377\212\377\377\377\1\377\376\377\202\377\377\377\4\377" \
- "\376\377\376\377\377\367\375\363\225\311J\210\214\306>\10\215\307=\213" \
- "\310\77\214\305@\216\306\77\214\305@\212\307>\307\341\240\376\377\375" \
- "\210\377\377\377\5\377\376\377\374\377\375\377\376\377\343\361\320\212" \
- "\306@\202\214\306>\1\213\310\77\210\214\306>\10\215\306A\215\305>\214" \
- "\305@\260\327z\377\376\374\374\377\377\377\377\377\377\376\377\226\377" \
- "\377\377\1\332\332\332\210::<\2GGI\250\250\250\223\377\377\377\3\376" \
- "\376\376\377\377\377\376\376\376\202\377\377\377\1\376\376\376\202\377" \
- "\377\377\1\376\376\376\204\377\377\377\2\250\250\252;;=\204::<\202;;" \
- "=\2EEG\331\331\331\220\377\377\377\1\316\316\316\205::<\1kkm\221\377" \
- "\377\377\5\222\222\224::<;;=::<;;=\202::<\5SSU\364\364\364\376\376\376" \
- "\377\377\377\376\376\376\216\377\377\377\2\376\376\376TTV\203::<\4;;" \
- "=99;lln\376\376\376\243\377\377\377\1TTV\204::<\5;;=\204\204\206\376" \
- "\376\376\377\377\377\376\376\376\212\377\377\377\1\234\234\236\202::" \
- "<\1;;=\202::<\1\234\234\234\215\377\377\377\1\376\376\376\202\377\377" \
- "\377\1\376\376\376\212\377\377\377\6\376\376\376\250\250\252FFH99;::" \
- "<;;=\205::<\1\316\316\316\221\377\377\377\1\234\234\234\203::<\3;;=:" \
- ":<\234\234\236\266\377\377\377\3\214\305@\214\306>\214\305@\250\214\306" \
- ">\2\215\307\77\342\362\316\212\377\377\377\215\214\306>\1\250\325p\216" \
- "\377\377\377\1\342\361\320\202\214\306>\1\214\305@\211\214\306>\2\214" \
- "\305@\343\361\316\215\377\377\377\3\377\376\377\376\377\375\376\377\377" \
- "\202\377\377\377\13\377\377\375\377\376\377\376\376\374\271\332\211\215" \
- "\306A\211\306;\216\306A\212\307>\213\307A\215\306A\212\307>\211\214\306" \
- ">\3\215\305>\214\306>\305\342\240\214\377\377\377\20\376\377\375\377" \
- "\377\377\377\377\375\377\377\377\371\370\364\233\316U\214\306>\214\305" \
- "@\215\306A\214\306>\214\305@\215\307=\214\306>\215\305@\215\304B\213" \
- "\310=\210\214\306>\3\215\305@\214\306>\213\305=\202\213\310\77\3\214" \
- "\306>\215\307\77\215\305@\210\214\306>\20\212\306@\212\307;\216\306\77" \
- "\215\307\77\212\306@\214\306<\215\305>\215\307\77\220\305\77\211\307" \
- ">\263\330{\377\376\377\377\377\375\376\377\377\377\377\377\376\376\376" \
- "\211\377\377\377\7\377\377\373\377\377\377\377\375\376\377\377\377\377" \
- "\377\375\257\330|\213\310\77\211\214\306>\6\215\306C\211\306=\214\305" \
- "@\214\306>\242\322e\377\377\375\212\377\377\377\7\376\377\377\377\377" \
- "\375\377\375\376\277\337\224\216\307B\212\307>\214\305@\210\214\306>" \
- "\2\214\305@\216\306\77\202\212\307>\4\332\360\302\376\376\374\376\376" \
- "\376\377\376\377\227\377\377\377\1\266\266\266\202::<\1;;=\202::<\2;" \
- ";=::<\202;;=\2kkm\346\346\350\202\377\377\377\1\376\376\376\207\377\377" \
- "\377\1\376\376\376\203\377\377\377\5\376\376\376\377\377\377\376\376" \
- "\376\377\377\377\376\376\376\202\377\377\377\3\376\376\376\377\377\377" \
- "\376\376\376\204\377\377\377\2\364\364\364yy{\203::<\2;;=99;\203::<\3" \
- "\265\265\267\377\377\377\376\376\376\217\377\377\377\1\316\316\316\205" \
- "::<\1kkm\222\377\377\377\1kkm\203::<\1;;=\202::<\5kkm\377\377\377\376" \
- "\376\376\377\377\377\376\376\376\212\377\377\377\5\376\376\376\377\377" \
- "\377\376\376\376\265\265\267;;=\204::<\2;;=\315\315\315\244\377\377\377" \
- "\11\234\234\234::<99;;;=::<;;=::<\347\347\347\376\376\376\213\377\377" \
- "\377\1\234\234\236\204::<\2;;=\233\233\233\217\377\377\377\1\376\376" \
- "\376\206\377\377\377\6\376\376\376\377\377\377\376\376\376\377\377\377" \
- "\265\265\265TTT\202::<\202;;=\203::<\3;;=::<\266\266\270\202\377\377" \
- "\377\1\376\376\376\217\377\377\377\1\234\234\234\204::<\4;;=\235\235" \
- "\237\377\377\377\376\376\376\224\377\377\377\1\376\376\376\203\377\377" \
- "\377\1\376\376\376\233\377\377\377\3\214\305@\214\306>\214\305@\250\214" \
- "\306>\2\215\307\77\342\362\316\212\377\377\377\215\214\306>\1\250\325" \
- "p\216\377\377\377\1\342\361\320\202\214\306>\1\214\305@\211\214\306>" \
- "\2\214\305@\343\361\316\215\377\377\377\202\377\377\375\16\377\377\377" \
- "\377\377\375\377\377\377\376\377\375\376\376\374\377\376\377\375\377" \
- "\376\241\322_\215\306A\212\306B\215\305>\215\307\77\214\306<\214\305" \
- "B\211\214\306>\3\215\305>\214\306>\305\342\240\214\377\377\377\1\377" \
- "\376\377\202\377\377\375\15\376\377\377\377\375\376\340\361\317\214\306" \
- ">\212\307>\214\306>\215\307\77\214\306>\212\307<\215\307\77\215\305>" \
- "\216\306=\213\305=\210\214\306>\1\212\307>\202\214\305@\202\214\306>" \
- "\3\214\305@\215\306A\212\307>\210\214\306>\20\212\307>\213\304\77\214" \
- "\306>\211\310<\214\306>\216\306A\212\306@\215\305@\214\306>\223\313N" \
- "\367\372\363\376\377\377\377\377\377\377\376\377\376\377\373\377\376" \
- "\377\212\377\377\377\202\376\377\377\3\377\375\376\324\353\265\215\306" \
- "A\211\214\306>\7\215\305>\213\305=\215\307\77\215\306A\212\307>\351\363" \
- "\333\377\377\375\211\377\377\377\10\377\376\377\375\377\376\376\377\377" \
- "\377\376\377\370\373\362\233\314W\215\307\77\215\305<\210\214\306>\1" \
- "\215\307\77\202\214\306>\4\214\306<\225\310O\360\366\350\377\376\377" \
- "\221\377\377\377\3\376\376\376\377\377\377\376\376\376\205\377\377\377" \
- "\1\266\266\266\202::<\4;;=99;::<;;=\202::<\4;;=::<\204\204\206\346\346" \
- "\350\207\377\377\377\1\376\376\376\206\377\377\377\202\376\376\376\202" \
- "\377\377\377\1\376\376\376\203\377\377\377\1\376\376\376\202\377\377" \
- "\377\3\251\251\251FFF99;\202::<\1""99;\202::<\5;;=::<\234\234\236\377" \
- "\377\377\376\376\376\220\377\377\377\1\316\316\316\205::<\1kkm\222\377" \
- "\377\377\11\363\363\363GGI99;::<99;;;=::<;;=\234\234\234\214\377\377" \
- "\377\1\376\376\376\203\377\377\377\1SSU\202::<\1;;=\202::<\1kkm\245\377" \
- "\377\377\5\362\362\362GGI;;=::<;;=\202::<\1\204\204\206\206\377\377\377" \
- "\1\376\376\376\205\377\377\377\1\234\234\236\203::<\3""99;::<\234\234" \
- "\234\223\377\377\377\1\376\376\376\203\377\377\377\3\331\331\331\222" \
- "\222\222SSU\203::<\2;;=::<\202;;=\4::<;;=::<\265\265\267\202\377\377" \
- "\377\1\376\376\376\203\377\377\377\1\376\376\376\214\377\377\377\1\234" \
- "\234\234\205::<\1\234\234\236\203\377\377\377\1\376\376\376\223\377\377" \
- "\377\1\376\376\376\236\377\377\377\3\214\305@\214\306>\214\305@\250\214" \
- "\306>\2\215\307\77\342\362\316\212\377\377\377\215\214\306>\1\250\325" \
- "p\216\377\377\377\1\342\361\320\202\214\306>\1\214\305@\211\214\306>" \
- "\2\214\305@\343\361\316\216\377\377\377\17\377\376\377\377\377\377\376" \
- "\376\376\377\376\377\377\377\375\376\377\377\375\377\376\377\377\377" \
- "\363\367\350\222\312K\214\305@\213\310\77\214\304\77\215\307\77\216\306" \
- "A\211\214\306>\3\215\305>\214\306>\305\342\240\214\377\377\377\14\377" \
- "\376\377\376\377\375\376\377\377\377\376\377\376\377\377\376\377\375" \
- "\307\342\237\214\305@\214\306<\215\304D\214\306>\214\305D\202\212\307" \
- "<\2\212\307>\213\307A\210\214\306>\3\215\307\77\214\306>\215\307\77\202" \
- "\214\305@\213\214\306>\12\213\305;\215\306A\212\306@\214\306>\213\307" \
- "C\212\307>\215\305>\212\307>\215\305>\333\356\301\202\377\377\377\3\377" \
- "\377\375\377\377\377\377\376\377\211\377\377\377\10\376\377\375\377\377" \
- "\375\376\377\375\374\377\375\362\371\347\225\311M\215\307\77\215\305" \
- "<\210\214\306>\2\214\305@\216\306=\202\212\306@\2\305\342\237\377\375" \
- "\376\212\377\377\377\1\376\376\374\203\377\377\377\4\376\376\376\337" \
- "\363\316\215\306C\215\305<\211\214\306>\1\215\307\77\202\214\305@\4\214" \
- "\306<\253\324n\375\377\374\377\377\375\224\377\377\377\1\376\376\376" \
- "\204\377\377\377\2\301\301\301FFH\202::<\2;;=99;\202;;=\2::<;;=\202:" \
- ":<\2\204\204\206\316\316\320\207\377\377\377\1\376\376\376\203\377\377" \
- "\377\1\376\376\376\206\377\377\377\6\376\376\376\377\377\377\364\364" \
- "\364\265\265\267SSU::<\202;;=\202::<\5;;=::<;;=::<\204\204\204\223\377" \
- "\377\377\1\316\316\316\205::<\1kkm\223\377\377\377\11\315\315\315;;=" \
- "::<;;=::<;;=::<99;\302\302\302\216\377\377\377\5\301\301\303::<;;=::" \
- "<;;=\202::<\2\316\316\316\377\377\377\202\376\376\376\241\377\377\377" \
- "\14\376\376\376\377\377\377\234\234\234;;=::<;;=::<;;=::<\347\347\351" \
- "\377\377\377\376\376\376\211\377\377\377\1\234\234\236\203::<\3;;=::" \
- "<\234\234\236\216\377\377\377\202\376\376\376\1\377\377\377\202\316\316" \
- "\316\6\250\250\250\234\234\234jjjFFF;;=99;\202;;=\2::<;;=\202::<\5<<" \
- ">99;;;=::<\265\265\267\204\377\377\377\1\376\376\376\217\377\377\377" \
- "\1\234\234\234\204::<\2;;=\234\234\236\202\377\377\377\1\376\376\376" \
- "\223\377\377\377\1\376\376\376\202\377\377\377\1\376\376\376\234\377" \
- "\377\377\3\214\305@\214\306>\214\305@\250\214\306>\2\215\307\77\342\362" \
- "\316\212\377\377\377\215\214\306>\1\250\325p\216\377\377\377\1\342\361" \
- "\320\202\214\306>\1\214\305@\211\214\306>\2\214\305@\343\361\316\215" \
- "\377\377\377\202\377\376\377\16\377\377\375\376\377\377\377\377\377\377" \
- "\377\375\377\376\377\376\376\376\377\376\377\377\377\377\333\354\302" \
- "\212\307>\213\310\77\214\306<\213\310=\215\305@\211\214\306>\3\215\305" \
- ">\214\306>\305\342\240\214\377\377\377\1\377\376\377\202\376\377\377" \
- "\202\377\377\375\13\376\377\377\377\375\376\271\333\205\215\305>\214" \
- "\306>\212\307>\214\306>\215\306A\214\306>\212\306@\214\305@\210\214\306" \
- ">\3\214\305@\215\307\77\214\306>\202\212\307>\3\214\306>\215\307\77\215" \
- "\306A\210\214\306>\4\216\306A\211\306=\214\306<\216\306A\202\212\307" \
- ">\202\215\306A\10\322\352\270\377\377\375\376\376\374\377\377\377\376" \
- "\377\377\377\376\377\377\377\375\376\377\377\210\377\377\377\10\377\377" \
- "\375\377\377\377\377\376\377\374\376\373\250\325n\216\306\77\212\307" \
- ">\214\305B\210\214\306>\202\212\307>\6\214\305@\242\322d\376\376\374" \
- "\377\377\375\375\377\376\377\376\377\210\377\377\377\10\376\377\377\377" \
- "\377\375\377\375\376\377\377\375\375\376\377\376\377\375\270\333\207" \
- "\211\310<\210\214\306>\10\214\304=\216\307B\214\306>\212\307>\216\306" \
- "A\215\307\77\313\350\250\376\376\377\221\377\377\377\1\376\376\376\203" \
- "\377\377\377\1\376\376\376\204\377\377\377\7\332\332\332RRT;;=::<;;=" \
- "::<;;=\202::<\1;;=\203::<\3RRT\221\221\223\317\317\321\214\377\377\377" \
- "\11\376\376\376\377\377\377\364\364\364\301\301\301\204\204\206EEG;;" \
- "=99;;;=\204::<\1""99;\202::<\1\251\251\251\207\377\377\377\1\376\376" \
- "\376\214\377\377\377\1\316\316\316\205::<\1kkm\224\377\377\377\1\247" \
- "\247\247\203::<\5;;=::<;;=FFH\345\345\345\214\377\377\377\2\376\376\376" \
- "kkm\205::<\1SSU\202\377\377\377\1\376\376\376\244\377\377\377\2\363\363" \
- "\363FFH\204::<\2;;=\221\221\223\213\377\377\377\1\234\234\236\204::<" \
- "\4;;=SSUkkmlln\213kkm\5;;=::<;;=::<;;=\204::<\2;;=99;\202;;=\2::<;;=" \
- "\202::<\7;;=99;::<FFH\301\301\301\377\377\377\376\376\376\223\377\377" \
- "\377\1\234\234\234\205::<\1SSU\202kkm\1lln\223kkm\1lln\205kkm\1\332\332" \
- "\334\231\377\377\377\3\214\305@\214\306>\214\305@\250\214\306>\2\215" \
- "\307\77\342\362\316\212\377\377\377\215\214\306>\1\250\325p\216\377\377" \
- "\377\1\342\361\320\202\214\306>\1\214\305@\211\214\306>\2\214\305@\343" \
- "\361\316\215\377\377\377\1\377\376\377\202\377\377\375\202\377\377\377" \
- "\202\377\376\377\11\377\377\375\377\377\377\376\377\377\377\376\377\276" \
- "\336\223\214\306<\213\310\77\214\304=\215\306A\211\214\306>\3\215\305" \
- ">\214\306>\305\342\240\214\377\377\377\20\377\377\375\376\377\375\376" \
- "\376\376\377\376\377\375\377\376\377\375\377\376\377\377\376\377\375" \
- "\270\333\207\217\305<\212\307>\214\305@\216\306\77\213\305=\214\305@" \
- "\216\306=\211\214\306>\2\215\306A\215\305@\202\216\306\77\3\215\305@" \
- "\214\305@\215\307\77\210\214\306>\13\213\305=\215\306A\215\305>\212\306" \
- "@\215\305>\215\306A\220\305A\323\352\266\376\377\375\377\376\377\377" \
- "\377\375\202\377\377\377\3\376\377\377\377\375\377\376\377\375\213\377" \
- "\377\377\5\316\347\256\212\307>\213\305;\216\306A\212\307<\210\214\306" \
- ">\10\212\307>\216\306\77\215\305>\350\364\336\377\376\377\376\376\374" \
- "\377\377\377\377\376\377\210\377\377\377\1\377\376\377\202\377\377\377" \
- "\5\377\376\377\376\377\375\377\376\377\370\373\360\225\311K\210\214\306" \
- ">\10\216\306=\214\305@\215\310<\212\307>\214\306>\214\305@\223\312J\356" \
- "\371\350\231\377\377\377\4\376\376\376\377\377\377\363\363\363xxz\202" \
- "::<\1""99;\202::<\1;;=\203::<\202;;=\203::<\4__a\205\205\205\234\234" \
- "\234\250\250\250\205\316\316\316\4\250\250\250\234\234\234xxx___\202" \
- "::<\3""99;;;=99;\203::<\1;;=\203::<\2FFH\265\265\265\205\377\377\377" \
- "\1\376\376\376\217\377\377\377\1\316\316\316\205::<\1kkm\225\377\377" \
- "\377\3xxx::<;;=\204::<\1```\213\377\377\377\4\376\376\376\317\317\317" \
- "::<;;=\204::<\1\266\266\270\203\377\377\377\1\376\376\376\241\377\377" \
- "\377\1\377\377\375\202\377\377\377\1\204\204\206\202::<\1;;=\202::<\2" \
- "GGI\363\363\363\212\377\377\377\1\234\234\236\203::<\1;;=\202::<\1;;" \
- "=\221::<\1;;=\207::<\1;;=\202::<\1;;=\202::<\2``b\346\346\350\210\377" \
- "\377\377\1\376\376\376\215\377\377\377\1\234\234\234\207::<\3;;=::<;" \
- ";=\221::<\1;;=\203::<\1;;=\202::<\1\316\316\320\231\377\377\377\3\214" \
- "\305@\214\306>\214\305@\250\214\306>\2\215\307\77\342\362\316\212\377" \
- "\377\377\215\214\306>\1\250\325p\216\377\377\377\1\342\361\320\202\214" \
- "\306>\1\214\305@\211\214\306>\2\214\305@\343\361\316\215\377\377\377" \
- "\7\377\377\375\376\377\375\377\377\377\377\376\377\376\376\374\376\377" \
- "\377\377\377\377\202\376\377\377\202\377\377\375\4\377\377\377\242\320" \
- "d\211\306=\215\305@\212\214\306>\3\215\305>\214\306>\305\342\240\214" \
- "\377\377\377\6\377\376\377\377\377\377\377\377\375\377\375\377\376\377" \
- "\372\375\376\377\202\377\377\377\10\376\377\377\304\343\240\215\305@" \
- "\214\306>\216\306A\215\307\77\212\307>\215\307\77\212\214\306>\3\215" \
- "\307\77\214\306>\214\305@\202\215\307\77\211\214\306>\12\215\306C\212" \
- "\307<\215\307\77\215\305@\213\310\77\215\306A\323\352\266\377\376\377" \
- "\377\377\377\376\377\377\204\377\377\377\2\377\377\375\377\376\377\210" \
- "\377\377\377\10\376\377\377\377\376\377\361\370\346\225\311K\212\307" \
- ">\215\306A\214\305@\215\305>\210\214\306>\3\214\305@\214\306>\307\341" \
- "\240\203\376\377\377\2\377\377\375\376\377\377\210\377\377\377\5\376" \
- "\377\377\377\376\372\376\377\375\376\376\376\377\377\377\202\377\376" \
- "\377\1\334\355\301\210\214\306>\10\215\306A\213\310\77\215\305@\214\306" \
- ">\214\306<\215\306A\214\306>\254\322o\232\377\377\377\6\376\376\376\377" \
- "\377\377\376\376\376\302\302\302FFH;;=\206::<\1;;=\202::<\202;;=\203" \
- "::<\1;;=\204::<\3;;=::<;;=\202::<\1;;=\202::<\1;;=\203::<\2;;=::<\202" \
- ";;=\2__a\332\332\332\226\377\377\377\3\316\316\316::<;;=\203::<\1kkm" \
- "\222\377\377\377\7\376\376\376\377\377\377\376\376\376\363\363\363__" \
- "a::<;;=\204::<\1\203\203\203\202\377\377\377\2\376\376\376\377\377\377" \
- "\202\376\376\376\205\377\377\377\1kkm\202::<\1;;=\202::<\5TTV\377\377" \
- "\377\376\376\376\377\377\377\376\376\376\245\377\377\377\2\347\347\347" \
- "99;\202::<\1;;=\202::<\1\235\235\237\206\377\377\377\1\376\376\376\202" \
- "\377\377\377\2\376\376\376\234\234\234\224::<\1;;=\202::<\3""99;::<;" \
- ";=\204::<\1;;=\204::<\3;;=GGI\250\250\252\230\377\377\377\2\234\234\236" \
- ";;=\232::<\10;;=99;;;=::<;;=::<:::\316\316\316\230\377\377\377\10\377" \
- "\376\377\212\306@\214\305@\213\310=\214\306<\215\306A\214\307;\215\306" \
- "A\240\214\306>\10\214\305@\212\307<\214\306<\214\305@\212\306@\342\360" \
- "\315\376\377\377\377\376\377\210\377\377\377\212\214\306>\4\216\306\77" \
- "\212\306B\214\306>\250\325n\202\377\376\377\210\377\377\377\1\377\376" \
- "\377\202\377\377\377\5\376\377\375\342\362\316\214\305B\215\305@\214" \
- "\306<\210\214\306>\202\212\307>\5\343\361\320\377\377\377\377\377\375" \
- "\376\377\377\377\376\377\223\377\377\377\6\377\376\377\377\377\375\371" \
- "\372\364\223\312J\212\306@\215\305@\210\214\306>\10\214\305@\215\305" \
- ">\212\307>\304\343\240\377\377\375\377\377\377\377\377\375\377\376\377" \
- "\220\377\377\377\11\376\377\377\377\377\377\333\355\303\226\310K\213" \
- "\310\77\214\306>\215\305@\215\306A\214\305@\203\214\306>\7\215\305>\215" \
- "\305@\214\305@\212\307>\215\305>\215\307\77\215\306A\202\214\306<\5\215" \
- "\306A\213\305=\215\305@\215\307\77\213\305;\202\215\305@\13\215\307\77" \
- "\213\310\77\214\305@\215\307\77\212\307>\215\305>\214\306>\212\306@\235" \
- "\315U\347\365\334\377\376\377\220\377\377\377\15\376\376\376\377\377" \
- "\375\377\377\377\244\317c\213\307A\214\306<\213\307A\215\305>\215\305" \
- "<\215\307\77\214\306<\215\307\77\214\305@\202\215\307\77\12\214\305@" \
- "\215\306A\215\305@\234\315W\367\375\363\377\376\377\376\377\377\377\377" \
- "\375\376\377\377\377\376\377\220\377\377\377\10\260\331{\215\307=\212" \
- "\307>\213\307A\214\306>\215\305@\215\307\77\215\305>\210\214\306>\3\314" \
- "\345\253\377\377\377\376\377\375\202\377\376\377\2\377\377\377\376\377" \
- "\377\222\377\377\377\3\376\376\376\377\377\377\376\376\376\202\377\377" \
- "\377\3\364\364\364\220\220\220;;=\211::<\2;;=::<\202;;=\2::<;;=\202:" \
- ":<\4;;=::<;;=99;\203::<\2;;=99;\206::<\2GGI\247\247\251\203\377\377\377" \
- "\1\376\376\376\222\377\377\377\6\376\376\376\377\377\377\316\316\316" \
- ";;=99;;;=\202::<\2lln\376\376\376\202\377\377\377\1\376\376\376\221\377" \
- "\377\377\4\376\376\376\333\333\333FFH;;=\202::<\1;;=\202::<\1\265\265" \
- "\265\202\377\377\377\1\376\376\376\202\377\377\377\5\376\376\376\377" \
- "\377\377\376\376\376\377\377\377\316\316\320\202::<\2;;=99;\202;;=\1" \
- "\264\264\266\202\377\377\377\1\376\376\376\244\377\377\377\1\376\376" \
- "\376\202\377\377\377\1\205\205\207\204::<\3;;=FFH\363\363\363\206\377" \
- "\377\377\1\376\376\376\202\377\377\377\3\233\233\233::<;;=\220::<\3""9" \
- "9;;;=99;\202::<\1;;=\203::<\1;;=\204::<\7;;=::<SSU\250\250\252\362\362" \
- "\364\377\377\377\376\376\376\225\377\377\377\3\376\376\376\377\377\377" \
- "\235\235\237\202::<\1;;=\231::<\2;;=99;\204::<\1\316\316\316\230\377" \
- "\377\377\10\377\377\373\212\311=\212\306@\216\306A\215\305>\215\307\77" \
- "\214\306>\215\306A\240\214\306>\7\214\306<\214\306>\216\306\77\214\306" \
- ">\214\305@\343\361\320\377\377\375\211\377\377\377\210\214\306>\10\213" \
- "\307A\212\306@\215\305@\212\307<\215\307\77\247\324o\375\377\376\376" \
- "\377\377\211\377\377\377\7\376\377\375\377\377\377\377\377\375\342\360" \
- "\315\214\305@\213\305=\215\307\77\210\214\306>\10\215\305>\215\307\77" \
- "\343\361\316\376\376\376\377\376\377\376\377\377\377\377\375\376\377" \
- "\372\220\377\377\377\10\376\377\377\377\376\377\377\377\375\377\376\374" \
- "\376\377\375\343\362\321\212\307>\214\307;\210\214\306>\4\215\307=\215" \
- "\304B\213\307A\305\342\240\203\377\377\377\1\376\377\377\222\377\377" \
- "\377\21\377\376\377\367\374\365\267\332\206\215\306A\212\306@\214\306" \
- "<\214\306>\215\306A\215\307\77\214\306>\214\305@\212\306B\212\306@\212" \
- "\307<\215\307\77\214\306>\214\305@\202\215\305@\5\214\305@\214\306>\214" \
- "\305@\212\307>\215\306A\202\214\305@\11\214\307;\214\306>\215\306A\214" \
- "\305@\215\305>\212\306@\222\311I\306\343\240\366\373\364\224\377\377" \
- "\377\6\303\342\237\217\304@\214\306<\214\306>\215\306C\212\306B\204\214" \
- "\305@\1\215\306A\202\214\305@\11\215\306A\214\306<\214\306>\341\361\314" \
- "\377\377\377\376\377\375\377\377\377\377\375\377\377\377\375\221\377" \
- "\377\377\10\370\373\364\224\307N\215\305@\215\305>\212\307<\215\306A" \
- "\212\307<\215\306A\210\214\306>\10\215\307=\346\364\332\376\377\375\376" \
- "\377\373\377\377\377\376\376\377\377\376\377\377\377\375\230\377\377" \
- "\377\5\346\346\350\204\204\206GGI::<;;=\202::<\5;;=::<;;=::<;;=\202:" \
- ":<\3;;=::<;;=\202::<\5;;=99;;;=::<;;=\207::<\3FFH\234\234\234\363\363" \
- "\363\203\377\377\377\1\376\376\376\222\377\377\377\1\376\376\376\202" \
- "\377\377\377\4\316\316\316::<;;=99;\202;;=\1kkm\202\377\377\377\1\376" \
- "\376\376\220\377\377\377\1\376\376\376\202\377\377\377\5\376\376\376" \
- "\266\266\26699;;;=::<\202;;=\3::<GGG\332\332\332\207\377\377\377\2\376" \
- "\376\376\204\204\206\202;;=\4::<;;=::<SSU\252\377\377\377\2\376\376\376" \
- "\346\346\350\202::<\5;;=::<99;;;;\266\266\266\203\377\377\377\1\376\376" \
- "\376\205\377\377\377\3\235\235\235::<99;\220::<\1;;=\205::<\203;;=\1" \
- "99;\203::<\3SSS\221\221\221\316\316\316\205\377\377\377\1\376\376\376" \
- "\222\377\377\377\1\376\376\376\203\377\377\377\3\234\234\236::<;;=\232" \
- "::<\7""99;::<;:\77::<;;=99;\317\317\321\230\377\377\377\7\377\375\377" \
- "\214\306<\213\307A\215\305>\215\307\77\212\307>\216\306\77\241\214\306" \
- ">\1\215\306C\202\215\305@\5\212\306@\215\307=\343\361\320\377\377\377" \
- "\377\376\377\210\377\377\377\210\214\306>\10\215\305<\215\307\77\216" \
- "\306\77\214\306>\216\305C\252\324r\377\377\377\377\377\373\211\377\377" \
- "\377\7\375\377\376\377\377\377\377\375\376\343\361\316\215\307=\212\307" \
- ">\215\305>\210\214\306>\10\214\305@\215\305<\342\362\316\377\377\375" \
- "\377\376\377\375\377\374\376\376\377\376\377\377\222\377\377\377\1\375" \
- "\377\372\202\377\377\377\3\377\376\377\304\341\237\215\307\77\210\214" \
- "\306>\10\212\307;\215\307\77\213\305=\305\342\240\377\377\377\377\376" \
- "\374\377\377\375\376\377\377\221\377\377\377\22\377\376\377\377\377\375" \
- "\376\377\377\377\375\376\361\367\351\270\334\204\214\306>\215\307\77" \
- "\214\305@\212\306@\213\307A\212\306@\213\310\77\214\306>\215\304B\214" \
- "\306>\212\307<\214\306>\202\216\306A\6\214\306>\213\310\77\214\305@\215" \
- "\305<\215\305>\215\307=\202\213\310\77\10\215\306A\214\306>\215\306A" \
- "\222\311I\300\336\226\361\370\346\376\376\376\377\377\377\202\377\376" \
- "\377\1\376\377\373\217\377\377\377\10\377\377\375\347\365\333\214\307" \
- ";\211\305A\213\304\77\215\307\77\215\305<\213\310\77\202\214\306>\1\215" \
- "\307\77\203\214\306>\4\215\307\77\214\306>\215\306A\275\337\223\202\377" \
- "\377\377\5\377\376\377\377\377\377\376\377\375\377\376\377\376\377\377" \
- "\220\377\377\377\10\375\377\376\331\357\301\215\307\77\215\305>\216\305" \
- "C\211\306=\220\305A\211\307@\210\214\306>\10\214\305@\246\321e\377\377" \
- "\377\377\376\377\376\377\377\377\377\375\376\377\377\377\376\377\227" \
- "\377\377\377\1\376\376\376\202\377\377\377\3\363\363\363\266\266\270" \
- "__a\207::<\202;;=\203::<\2;;=99;\202;;=\2""99;::<\202;;=\1::<\203;;=" \
- "\3^^^\250\250\250\363\363\363\203\377\377\377\1\376\376\376\202\377\377" \
- "\377\1\376\376\376\224\377\377\377\4\316\316\316999::<;;=\202::<\1ll" \
- "l\205\377\377\377\1\376\376\376\217\377\377\377\6\376\376\376\377\377" \
- "\377\376\376\376\204\204\204::<;;=\203::<\3:::TTT\363\363\363\206\377" \
- "\377\377\10\347\347\347;;;99;::<;;=::<:::\234\234\236\253\377\377\377" \
- "\3\376\376\376lln;;=\202::<\3;;=999SSS\202\377\377\377\1\376\376\376" \
- "\203\377\377\377\4\376\376\376\377\377\377\376\376\376\234\234\234\223" \
- "::<\1""99;\202::<\1;;=\203::<\5kkmxxz\235\235\237\301\301\301\346\346" \
- "\346\207\377\377\377\1\376\376\376\202\377\377\377\1\376\376\376\221" \
- "\377\377\377\1\376\376\376\202\377\377\377\3\235\235\235::<;;=\232::" \
- "<\2;;=99;\202::<\3;;=::<\316\316\316\230\377\377\377\10\373\377\376\216" \
- "\306A\214\306<\213\304A\212\306@\214\305@\214\304\77\215\307\77\240\214" \
- "\306>\6\214\306<\215\306A\215\305@\216\310@\217\304@\341\361\314\212" \
- "\377\377\377\210\214\306>\7\215\307\77\213\310\77\213\305=\215\307\77" \
- "\214\304\77\253\323r\374\377\373\211\377\377\377\1\377\376\377\203\377" \
- "\377\377\3\342\362\315\215\305@\215\307=\211\214\306>\10\214\306<\215" \
- "\304B\341\363\313\374\377\375\376\376\377\377\377\377\377\375\376\377" \
- "\377\375\221\377\377\377\7\376\377\375\376\376\377\377\377\377\375\377" \
- "\374\377\377\377\377\377\375\253\323p\210\214\306>\5\215\307\77\215\305" \
- ">\217\304@\305\342\237\376\377\375\202\377\377\377\1\377\377\375\220" \
- "\377\377\377\1\376\377\377\202\377\376\377\202\376\377\375\202\377\377" \
- "\377\5\360\370\351\311\347\247\245\320e\215\305>\212\307>\202\214\306" \
- ">\5\215\306A\212\307>\215\305@\214\306>\214\306<\202\214\306>\2\214\306" \
- "<\214\306>\202\216\306A\14\214\306>\215\306A\215\305<\214\306>\213\305" \
- "=\255\331x\323\353\267\366\374\362\377\377\377\377\377\375\377\377\377" \
- "\376\377\377\217\377\377\377\2\376\376\376\377\377\377\202\377\377\375" \
- "\11\244\317d\214\306>\213\307A\214\306>\214\305@\214\306>\215\306A\214" \
- "\306<\215\307\77\202\214\306>\202\214\305@\13\215\305<\215\305@\230\316" \
- "V\370\373\360\376\377\375\377\377\377\377\376\377\376\376\376\377\377" \
- "\375\377\376\377\376\377\377\220\377\377\377\10\376\376\376\377\376\377" \
- "\262\327x\214\306>\216\306A\215\307=\215\305<\215\306A\211\214\306>\6" \
- "\215\306C\307\341\240\376\377\373\376\377\377\376\377\375\376\376\374" \
- "\236\377\377\377\4\346\346\350\266\266\270\204\204\206SSU\202::<\1;;" \
- "=\202::<\1;;=\202::<\202;;=\3""99;::<;;=\203::<\4GGIxxz\247\247\247\347" \
- "\347\347\212\377\377\377\1\376\376\376\223\377\377\377\1\364\364\364" \
- "\205\316\316\316\1\332\332\332\203\377\377\377\202\376\376\376\221\377" \
- "\377\377\1\376\376\376\202\377\377\377\202\316\316\316\203\316\316\320" \
- "\3\316\316\316\317\317\317\346\346\346\206\377\377\377\5\346\346\346" \
- "\316\316\316\317\317\317\316\316\316\315\315\315\202\316\316\316\1\363" \
- "\363\363\250\377\377\377\1\376\376\376\203\377\377\377\3\346\346\346" \
- "\315\315\315\317\317\317\202\316\316\320\3\317\317\317\315\315\315\363" \
- "\363\363\202\377\377\377\202\376\376\376\204\377\377\377\3\346\346\346" \
- "\316\316\316\316\316\320\224\316\316\316\1\315\315\315\203\377\377\377" \
- "\1\376\376\376\215\377\377\377\1\376\376\376\225\377\377\377\2\346\346" \
- "\346\317\317\317\232\316\316\316\1\317\317\317\203\316\316\316\4\317" \
- "\317\317\315\315\315\316\316\316\363\363\363\231\377\377\377\3\340\361" \
- "\317\342\360\317\342\362\316\202\343\361\316\2\342\360\315\343\361\316" \
- "\240\342\361\320\10\342\362\316\342\361\320\343\363\317\341\360\317\342" \
- "\361\320\370\373\364\376\377\375\376\377\377\210\377\377\377\210\342" \
- "\361\320\7\341\360\317\342\362\316\343\361\316\342\360\314\342\361\320" \
- "\350\364\336\377\376\374\211\377\377\377\10\377\376\377\377\377\375\377" \
- "\377\377\377\377\375\370\373\362\341\360\321\340\357\316\342\362\316" \
- "\210\342\361\320\3\342\362\316\342\361\320\371\373\360\203\377\377\377" \
- "\202\377\376\377\220\377\377\377\4\377\377\375\376\376\376\377\376\377" \
- "\376\377\375\203\377\377\377\1\365\375\362\210\342\361\320\4\341\360" \
- "\321\342\361\322\343\363\317\360\367\345\224\377\377\377\7\376\377\377" \
- "\376\377\375\377\377\375\377\376\377\377\377\375\377\375\376\377\376" \
- "\377\202\377\377\377\30\376\376\377\364\370\351\333\354\277\277\337\224" \
- "\247\324k\224\313K\214\305@\214\306>\212\306@\214\306>\214\305B\215\306" \
- "C\215\307\77\212\306@\214\306>\215\307\77\241\321c\257\330|\304\342\242" \
- "\341\361\315\377\377\377\377\376\377\376\377\373\377\377\377\202\377" \
- "\377\375\1\377\376\377\203\377\377\377\1\376\377\377\212\377\377\377" \
- "\1\376\376\376\203\377\377\377\13\376\376\374\372\372\370\342\361\320" \
- "\343\361\316\342\362\316\341\360\317\342\361\320\341\360\317\342\362" \
- "\316\342\361\322\342\361\320\202\341\361\315\6\342\361\320\341\360\317" \
- "\343\361\315\343\361\320\356\371\350\377\376\377\203\377\377\377\1\376" \
- "\377\375\202\377\377\377\1\376\377\375\222\377\377\377\6\366\373\364" \
- "\342\361\320\342\362\316\342\360\317\341\362\316\343\361\320\210\342" \
- "\361\320\10\341\362\316\341\361\315\352\364\334\377\377\377\377\376\377" \
- "\377\377\377\376\377\377\376\377\375\222\377\377\377\202\376\376\376" \
- "\202\377\377\377\1\376\376\376\202\377\377\377\1\376\376\376\202\377" \
- "\377\377\3\376\376\376\377\377\377\375\375\375\202\377\377\377\5\363" \
- "\363\363\316\316\316\264\264\264\235\235\235\233\233\233\202kkk\202k" \
- "km\3llnkkmyy{\202\234\234\236\6\316\316\320\346\346\346\377\377\377\376" \
- "\376\376\377\377\377\376\376\376\204\377\377\377\1\376\376\376\204\377" \
- "\377\377\1\376\376\376\240\377\377\377\1\376\376\376\231\377\377\377" \
- "\1\375\375\375\203\377\377\377\1\376\376\376\214\377\377\377\1\376\376" \
- "\376\202\377\377\377\1\376\376\376\242\377\377\377\1\376\376\376\206" \
- "\377\377\377\3\376\376\376\377\377\377\376\376\376\204\377\377\377\1" \
- "\376\376\376\202\377\377\377\202\376\376\376\225\377\377\377\3\376\376" \
- "\376\377\377\377\376\376\376\202\377\377\377\3\376\376\376\377\377\377" \
- "\376\376\376\214\377\377\377\3\376\376\376\377\377\377\376\376\376\265" \
- "\377\377\377\1\375\375\375\234\377\377\377\7\376\377\377\377\376\377" \
- "\376\377\377\376\376\374\377\376\377\377\377\377\377\377\375\240\377" \
- "\377\377\1\377\377\375\202\377\377\377\5\377\376\377\376\376\376\377" \
- "\376\377\376\376\377\377\377\375\221\377\377\377\7\375\376\377\377\377" \
- "\377\377\376\377\377\377\375\376\377\377\377\377\373\377\376\377\210" \
- "\377\377\377\5\377\376\377\377\377\377\376\376\374\376\377\377\377\377" \
- "\377\202\377\377\375\1\376\377\377\210\377\377\377\6\376\377\377\375" \
- "\376\377\377\376\377\377\377\377\376\377\377\377\377\377\202\377\377" \
- "\375\224\377\377\377\202\377\376\377\2\374\377\377\377\376\377\210\377" \
- "\377\377\3\376\377\377\376\376\376\376\377\377\202\377\377\377\3\375" \
- "\377\376\377\377\377\377\376\377\220\377\377\377\202\377\376\377\2\376" \
- "\377\377\375\376\377\202\377\377\377\4\377\377\375\377\376\377\377\377" \
- "\377\377\377\375\202\376\377\377\7\377\377\377\377\376\377\377\377\377" \
- "\376\377\375\370\373\364\344\357\315\342\361\320\202\342\362\315\14\340" \
- "\357\316\345\360\316\376\377\373\376\376\376\377\377\377\377\375\376" \
- "\377\377\375\377\377\377\375\377\376\377\377\377\377\376\377\377\377" \
- "\375\202\376\377\375\5\376\377\377\377\377\377\377\377\375\376\376\376" \
- "\377\376\377\214\377\377\377\1\376\376\376\202\377\377\377\5\377\377" \
- "\375\376\375\377\377\377\377\376\376\377\377\377\375\204\377\377\377" \
- "\1\377\377\375\205\377\377\377\202\377\376\377\2\377\377\377\377\377" \
- "\375\202\377\377\377\202\376\377\377\222\377\377\377\5\377\377\375\377" \
- "\377\377\377\377\375\377\377\377\377\377\375\202\377\377\377\1\377\376" \
- "\372\212\377\377\377\1\377\375\377\202\377\377\377\3\377\376\377\377" \
- "\377\377\377\377\375\225\377\377\377\1\376\376\376\211\377\377\377\1" \
- "\376\376\376\204\377\377\377\1\376\376\376\205\377\377\377\1\376\376" \
- "\376\206\377\377\377\3\376\376\376\377\377\377\376\376\376\206\377\377" \
- "\377\1\376\376\376\233\377\377\377\1\376\376\376\203\377\377\377\5\376" \
- "\376\376\377\377\377\376\376\376\377\377\377\376\376\376\223\377\377" \
- "\377\3\376\376\376\377\377\377\376\376\376\205\377\377\377\3\376\376" \
- "\376\377\377\377\376\376\376\203\377\377\377\3\376\376\376\377\377\377" \
- "\376\376\376\203\377\377\377\1\376\376\376\205\377\377\377\1\376\376" \
- "\376\246\377\377\377\3\376\376\376\377\377\377\376\376\376\220\377\377" \
- "\377\1\376\376\376\246\377\377\377\1\376\376\376\225\377\377\377\1\376" \
- "\376\376\202\377\377\377\1\376\376\376\240\377\377\377\1\376\376\376" \
- "\230\377\377\377\6\377\377\375\377\377\377\377\376\377\376\377\375\374" \
- "\377\377\376\375\377\242\377\377\377\202\377\376\377\6\376\376\376\375" \
- "\376\377\377\377\377\377\377\375\377\377\377\376\377\375\220\377\377" \
- "\377\7\377\377\375\377\377\377\377\377\375\377\375\376\376\377\375\376" \
- "\377\377\376\376\376\212\377\377\377\4\377\376\377\377\377\375\377\377" \
- "\377\377\377\375\203\377\376\377\210\377\377\377\5\377\377\375\377\377" \
- "\377\377\375\376\377\376\377\377\377\375\202\377\377\377\1\376\377\377" \
- "\221\377\377\377\1\375\376\377\203\377\377\375\2\376\377\375\377\375" \
- "\376\211\377\377\377\204\377\376\377\4\377\377\377\376\377\375\377\377" \
- "\375\377\376\377\221\377\377\377\5\376\377\377\376\376\376\377\377\373" \
- "\376\376\377\376\377\377\202\377\377\377\2\377\376\377\377\377\375\202" \
- "\377\377\377\7\377\377\375\377\376\377\376\376\377\377\377\377\376\377" \
- "\377\376\377\375\376\377\377\202\377\377\377\203\376\377\377\2\377\377" \
- "\377\376\376\374\202\377\376\377\13\376\376\376\377\377\375\377\377\377" \
- "\377\375\376\376\377\377\377\377\377\376\376\377\377\376\377\376\376" \
- "\374\376\377\377\377\377\375\221\377\377\377\203\377\377\375\4\377\377" \
- "\377\377\377\375\377\376\377\376\376\376\210\377\377\377\1\377\377\373" \
- "\203\377\377\377\1\377\377\375\202\376\377\377\222\377\377\377\1\377" \
- "\377\375\202\377\376\377\3\377\377\377\377\376\377\377\376\374\202\376" \
- "\377\377\210\377\377\377\4\377\377\375\377\377\377\376\377\375\377\375" \
- "\377\202\376\377\377\1\377\376\375\227\377\377\377\1\376\376\376\207" \
- "\377\377\377\1\376\376\376\217\377\377\377\1\376\376\376\205\377\377" \
- "\377\1\376\376\376\204\377\377\377\1\376\376\376\233\377\377\377\1\376" \
- "\376\376\211\377\377\377\1\376\376\376\222\377\377\377\1\376\376\376" \
- "\206\377\377\377\1\376\376\376\207\377\377\377\1\376\376\376\262\377" \
- "\377\377\1\376\376\376\212\377\377\377\1\376\376\376\202\377\377\377" \
- "\1\376\376\376\202\377\377\377\1\376\376\376\225\377\377\377\1\376\376" \
- "\376\306\377\377\377\1\376\376\376\235\377\377\377\7\377\376\377\376" \
- "\377\377\377\377\377\377\377\375\376\375\377\377\377\375\377\376\377" \
- "\241\377\377\377\1\376\377\377\203\377\377\377\3\377\377\375\377\375" \
- "\376\377\376\377\221\377\377\377\202\376\377\377\5\377\377\377\377\377" \
- "\375\377\377\377\377\376\377\377\377\375\211\377\377\377\203\377\377" \
- "\375\202\377\377\377\202\376\377\377\1\377\377\375\212\377\377\377\202" \
- "\376\377\375\3\376\377\377\377\377\375\377\376\377\223\377\377\377\6" \
- "\377\377\375\377\376\377\374\377\377\377\377\377\377\376\377\376\377" \
- "\375\210\377\377\377\3\377\377\375\376\377\377\377\377\375\202\377\377" \
- "\377\1\377\377\375\223\377\377\377\4\376\376\376\377\377\375\376\376" \
- "\376\377\376\377\202\377\377\375\1\376\376\376\206\377\377\377\1\377" \
- "\377\375\215\377\377\377\1\377\377\375\202\377\377\377\5\376\377\377" \
- "\377\377\377\376\376\374\377\377\377\377\376\377\202\377\377\377\1\376" \
- "\376\376\221\377\377\377\7\376\377\375\377\375\377\377\377\377\376\377" \
- "\377\377\377\377\377\377\373\377\376\377\202\377\377\377\1\377\377\375" \
- "\202\377\377\377\1\377\377\375\204\377\377\377\6\376\376\377\377\377" \
- "\375\376\377\377\377\377\375\377\376\377\375\377\374\222\377\377\377" \
- "\3\376\377\375\377\377\377\376\377\375\203\376\377\377\1\377\376\377" \
- "\211\377\377\377\7\377\377\373\377\376\377\377\377\375\377\377\377\377" \
- "\376\377\376\376\376\376\377\377")
-
-
diff --git a/meta-agl-profile-core/recipes-core/psplash/psplash_git.bbappend b/meta-agl-profile-core/recipes-core/psplash/psplash_git.bbappend
deleted file mode 100644
index 5a82fc872..000000000
--- a/meta-agl-profile-core/recipes-core/psplash/psplash_git.bbappend
+++ /dev/null
@@ -1,9 +0,0 @@
-FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
-
-SRC_URI += "file://psplash-colors.h"
-
-SPLASH_IMAGES="file://psplash-poky-img.h;outsuffix=default"
-
-do_configure_append () {
- cp -f ${WORKDIR}/psplash-colors.h ${S}
-}
diff --git a/meta-agl-profile-core/recipes-devtools/gdb/.appends.core b/meta-agl-profile-core/recipes-devtools/gdb/.appends.core
deleted file mode 100644
index e69de29bb..000000000
--- a/meta-agl-profile-core/recipes-devtools/gdb/.appends.core
+++ /dev/null
diff --git a/meta-agl-profile-core/recipes-devtools/json-c/json-c_%.bbappend b/meta-agl-profile-core/recipes-devtools/json-c/json-c_%.bbappend
deleted file mode 100644
index 43807bd12..000000000
--- a/meta-agl-profile-core/recipes-devtools/json-c/json-c_%.bbappend
+++ /dev/null
@@ -1 +0,0 @@
-EXTRA_OECONF += "--enable-threading"
diff --git a/meta-agl-profile-core/recipes-devtools/low-level-can-generator/low-level-can-generator_git.bb b/meta-agl-profile-core/recipes-devtools/low-level-can-generator/low-level-can-generator_git.bb
deleted file mode 100644
index 4c0bda071..000000000
--- a/meta-agl-profile-core/recipes-devtools/low-level-can-generator/low-level-can-generator_git.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-SUMMARY = "Low level CAN generator"
-DESCRIPTION = "Generator used to customize low level CAN service with customs signals"
-SECTION = "devel"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
-
-inherit cmake pkgconfig
-BBCLASSEXTEND = "nativesdk"
-DEPENDS = " cmake-apps-module"
-
-SRC_URI = "gitsm://gerrit.automotivelinux.org/gerrit/src/low-level-can-generator;protocol=https;branch=${AGL_BRANCH}"
-SRCREV = "0a3e354c3d81866e1a755367ab5592b3ced868bb"
-
-PV = "${AGLVERSION}"
-S = "${WORKDIR}/git"
-
diff --git a/meta-agl-profile-core/recipes-devtools/packagegroups/nativesdk-packagegroup-sdk-host.bbappend b/meta-agl-profile-core/recipes-devtools/packagegroups/nativesdk-packagegroup-sdk-host.bbappend
deleted file mode 100644
index 18621dbfe..000000000
--- a/meta-agl-profile-core/recipes-devtools/packagegroups/nativesdk-packagegroup-sdk-host.bbappend
+++ /dev/null
@@ -1,4 +0,0 @@
-RDEPENDS_${PN} += "nativesdk-low-level-can-generator \
- nativesdk-cmake-apps-module \
- nativesdk-cmake-apps-module-doc \
-"
diff --git a/meta-agl-profile-core/recipes-devtools/python/python3-asyncssh_2.3.0.bb b/meta-agl-profile-core/recipes-devtools/python/python3-asyncssh_2.3.0.bb
deleted file mode 100644
index ab7e8afa9..000000000
--- a/meta-agl-profile-core/recipes-devtools/python/python3-asyncssh_2.3.0.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-DESCRIPTION = "\
-AsyncSSH is a Python package which provides an asynchronous client and \
-server implementation of the SSHv2 protocol on top of the Python \
-asyncio framework."
-HOMEPAGE = "https://github.com/ronf/asyncssh"
-LICENSE = "EPL-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=d9fc0efef5228704e7f5b37f27192723"
-
-SRC_URI[sha256sum] = "44bda34c7123f00c3df95d24e2dc8d43c4d17b456fbb8c434ef4f4a7ebb5265e"
-
-inherit pypi setuptools3
-
-RDEPENDS_${PN} += "${PYTHON_PN}-asyncio ${PYTHON_PN}-cryptography"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-agl-profile-core/recipes-devtools/python/python3-pytest-dependency_0.5.1.bb b/meta-agl-profile-core/recipes-devtools/python/python3-pytest-dependency_0.5.1.bb
deleted file mode 100644
index 5ff2d4ecf..000000000
--- a/meta-agl-profile-core/recipes-devtools/python/python3-pytest-dependency_0.5.1.bb
+++ /dev/null
@@ -1,12 +0,0 @@
-DESCRIPTION = "pytest-dependency manages dependencies of tests."
-HOMEPAGE = "https://github.com/RKrahl/pytest-dependency"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://README.rst;md5=35b9938ae48d25e6b8306232e98463dd"
-
-SRC_URI[sha256sum] = "c2a892906192663f85030a6ab91304e508e546cddfe557d692d61ec57a1d946b"
-
-inherit pypi setuptools3
-
-DEPENDS += "${PYTHON_PN}-pytest-native"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-agl-profile-core/recipes-devtools/python/python3-pytest-reverse_1.0.1.bb b/meta-agl-profile-core/recipes-devtools/python/python3-pytest-reverse_1.0.1.bb
deleted file mode 100644
index 5ed9b1d9d..000000000
--- a/meta-agl-profile-core/recipes-devtools/python/python3-pytest-reverse_1.0.1.bb
+++ /dev/null
@@ -1,12 +0,0 @@
-DESCRIPTION = "pytest-reverse is a pytest plugin to reverse test order"
-HOMEPAGE = "https://github.com/adamchainz/pytest-reverse"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=caf1f407ae86ecd57ab721dff94079b7"
-
-SRC_URI[sha256sum] = "40cbc47df8a262fed778e500f4d0b17d2d08ef8b9fbf899c0bab9488be192aac"
-
-inherit pypi setuptools3
-
-DEPENDS += "${PYTHON_PN}-pytest-native"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-agl-profile-core/recipes-devtools/qemu/qemu_%.bbappend b/meta-agl-profile-core/recipes-devtools/qemu/qemu_%.bbappend
deleted file mode 100644
index 1a6a98b7f..000000000
--- a/meta-agl-profile-core/recipes-devtools/qemu/qemu_%.bbappend
+++ /dev/null
@@ -1 +0,0 @@
-QEMU_TARGETS_class-target_aglegvirt = " aarch64 x86_64"
diff --git a/meta-agl-profile-core/recipes-devtools/run-agl-postinsts/run-agl-postinsts/run-agl-postinsts b/meta-agl-profile-core/recipes-devtools/run-agl-postinsts/run-agl-postinsts/run-agl-postinsts
deleted file mode 100755
index 1d1a5a059..000000000
--- a/meta-agl-profile-core/recipes-devtools/run-agl-postinsts/run-agl-postinsts/run-agl-postinsts
+++ /dev/null
@@ -1,48 +0,0 @@
-#!/bin/sh
-#
-# Copyright 2017 IoT.bzh.
-
-# Author: Ronan Le Martret <ronan.lemartret@iot.bzh>
-#
-
-# The following script will run all the scriptlets found in #SYSCONFDIR#/agl-postinsts.
-
-agl_pi_dir="#SYSCONFDIR#/agl-postinsts"
-
-POSTINST_LOGGING=1
-LOGFILE=/var/log/agl-postinstall.log
-
-[ -e $LOGFILE ] && mv ${LOGFILE} ${LOGFILE}.old.$(date +%F--%H%M.%S)
-
-append_log=">>$LOGFILE 2>&1"
-
-exec_postinst_scriptlets() {
- for i in `ls $agl_pi_dir`; do
- i=$agl_pi_dir/$i
- echo "Running postinst $i..."
- [ "$POSTINST_LOGGING" = "1" ] && eval echo "Running postinst $i..." $append_log
- if [ -x $i ]; then
- eval sh -c $i $append_log
- if [ $? -eq 0 ]; then
- rm $i
- else
- echo "ERROR: postinst $i failed."
- [ "$POSTINST_LOGGING" = "1" ] && eval echo "ERROR: postinst $i failed." $append_log
- remove_agl_pi_dir=0
- fi
- else
- echo "ERROR: postinst $i do not exists or do not have execute permission."
- [ "$POSTINST_LOGGING" = "1" ] && eval echo "ERROR: postinst $i do not exists or do not have execute permission." $append_log
- remove_agl_pi_dir=0
- fi
- done
-}
-
-remove_agl_pi_dir=1
-exec_postinst_scriptlets
-systemctl daemon-reload
-
-# since all postinstalls executed successfully, remove the postinstalls directory
-if [ $remove_agl_pi_dir = 1 ]; then
- rm -rf $agl_pi_dir
-fi
diff --git a/meta-agl-profile-core/recipes-devtools/run-agl-postinsts/run-agl-postinsts/run-agl-postinsts.service b/meta-agl-profile-core/recipes-devtools/run-agl-postinsts/run-agl-postinsts/run-agl-postinsts.service
deleted file mode 100644
index 8f8667db6..000000000
--- a/meta-agl-profile-core/recipes-devtools/run-agl-postinsts/run-agl-postinsts/run-agl-postinsts.service
+++ /dev/null
@@ -1,17 +0,0 @@
-[Unit]
-Description=Run pending agl postinsts
-DefaultDependencies=no
-After=#SYSTEMD_SERVICE_AFTER#
-Before=#SYSTEMD_SERVICE_BEFORE#
-ConditionPathExists=#SYSCONFDIR#/agl-postinsts
-
-[Service]
-Type=oneshot
-StandardOutput=journal+console
-ExecStart=#SBINDIR#/run-agl-postinsts
-ExecStartPost=#BASE_BINDIR#/systemctl disable run-agl-postinsts.service
-RemainAfterExit=No
-TimeoutSec=0
-
-[Install]
-WantedBy=multi-user.target
diff --git a/meta-agl-profile-core/recipes-devtools/run-agl-postinsts/run-agl-postinsts_1.0.bb b/meta-agl-profile-core/recipes-devtools/run-agl-postinsts/run-agl-postinsts_1.0.bb
deleted file mode 100644
index 38bc66df8..000000000
--- a/meta-agl-profile-core/recipes-devtools/run-agl-postinsts/run-agl-postinsts_1.0.bb
+++ /dev/null
@@ -1,46 +0,0 @@
-SUMMARY = "Runs AGL postinstall scripts on first boot of the target device"
-SECTION = "devel"
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
-
-SRC_URI = "file://run-agl-postinsts \
- file://run-agl-postinsts.service"
-
-S = "${WORKDIR}"
-
-inherit allarch systemd
-
-SYSTEMD_SERVICE_${PN} = "run-agl-postinsts.service"
-
-SYSTEMD_SERVICE_AFTER ?= "dbus.service cynagora.service"
-
-SYSTEMD_SERVICE_BEFORE ?= "systemd-user-sessions.service"
-
-do_configure() {
- :
-}
-
-do_compile () {
- :
-}
-
-do_install() {
- install -d ${D}${sbindir}
- install -m 0755 ${WORKDIR}/run-agl-postinsts ${D}${sbindir}/
-
- install -d ${D}${systemd_unitdir}/system/
- install -m 0644 ${WORKDIR}/run-agl-postinsts.service ${D}${systemd_unitdir}/system/
-
- sed -i -e 's:#SYSCONFDIR#:${sysconfdir}:g' \
- -e 's:#SBINDIR#:${sbindir}:g' \
- -e 's:#BASE_BINDIR#:${base_bindir}:g' \
- -e 's:#LOCALSTATEDIR#:${localstatedir}:g' \
- ${D}${sbindir}/run-agl-postinsts \
- ${D}${systemd_unitdir}/system/run-agl-postinsts.service
-
- sed -i -e 's:#SYSTEMD_SERVICE_AFTER#:${SYSTEMD_SERVICE_AFTER}:g' \
- -e 's:#SYSTEMD_SERVICE_BEFORE#:${SYSTEMD_SERVICE_BEFORE}:g' \
- ${D}${systemd_unitdir}/system/run-agl-postinsts.service
-}
-
diff --git a/meta-agl-profile-core/recipes-extended/gperf/.appends.core b/meta-agl-profile-core/recipes-extended/gperf/.appends.core
deleted file mode 100644
index e69de29bb..000000000
--- a/meta-agl-profile-core/recipes-extended/gperf/.appends.core
+++ /dev/null
diff --git a/meta-agl-profile-core/recipes-kernel/most/files/0002-src-most-add-auto-conf-feature.patch b/meta-agl-profile-core/recipes-kernel/most/files/0002-src-most-add-auto-conf-feature.patch
deleted file mode 100644
index dd811c81b..000000000
--- a/meta-agl-profile-core/recipes-kernel/most/files/0002-src-most-add-auto-conf-feature.patch
+++ /dev/null
@@ -1,472 +0,0 @@
-From 9cb7cb85f59509ac445116e9458c502cf6cb74e6 Mon Sep 17 00:00:00 2001
-From: Christian Gromm <christian.gromm@microchip.com>
-Date: Thu, 9 Nov 2017 13:20:23 +0100
-Subject: [PATCH 2/2] src: most: add auto conf feature
-
-This patch adds the auto configuration feature to the driver
-sources. It is needed to have the driver configured automatically
-upon start up w/o the need for userspace to set up sysfs.
-
-Signed-off-by: Christian Gromm <christian.gromm@microchip.com>
----
- driver/Makefile | 3 +
- driver/default_conf.c | 162 ++++++++++++++++++++++++++++++++++++++++++++++
- driver/include/mostcore.h | 64 ++++++++++++++++++
- driver/mostcore/core.c | 120 ++++++++++++++++++++++++++++------
- 4 files changed, 331 insertions(+), 18 deletions(-)
- create mode 100644 driver/default_conf.c
-
-diff --git a/Makefile b/Makefile
-index e77a4b6..6d74ebe 100644
---- a/Makefile
-+++ b/Makefile
-@@ -6,6 +6,9 @@ obj-m := mostcore.o
- mostcore-y := mostcore/core.o
- CFLAGS_core.o := -I$(src)/include/
-
-+obj-m += default_conf.o
-+CFLAGL_default_conf.o := -I$(src)/include
-+
- obj-m += aim_cdev.o
- aim_cdev-y := aim-cdev/cdev.o
- CFLAGS_cdev.o := -I$(src)/include/
-diff --git a/default_conf.c b/default_conf.c
-new file mode 100644
-index 0000000..adb1786
---- /dev/null
-+++ b/default_conf.c
-@@ -0,0 +1,162 @@
-+/*
-+ * default_conf.c - Default configuration for the MOST channels.
-+ *
-+ * Copyright (C) 2017, Microchip Technology Germany II GmbH & Co. KG
-+ *
-+ * 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.
-+ *
-+ * This file is licensed under GPLv2.
-+ */
-+
-+#include "include/mostcore.h"
-+#include <linux/module.h>
-+
-+static struct most_config_probe config_probes[] = {
-+
-+ /* OS81118 Control */
-+ {
-+ .ch_name = "ep8f",
-+ .cfg = {
-+ .direction = MOST_CH_RX,
-+ .data_type = MOST_CH_CONTROL,
-+ .num_buffers = 16,
-+ .buffer_size = 64,
-+ },
-+ .aim_name = "cdev",
-+ .aim_param = "inic-usb-crx",
-+ },
-+ {
-+ .ch_name = "ep0f",
-+ .cfg = {
-+ .direction = MOST_CH_TX,
-+ .data_type = MOST_CH_CONTROL,
-+ .num_buffers = 16,
-+ .buffer_size = 64,
-+ },
-+ .aim_name = "cdev",
-+ .aim_param = "inic-usb-ctx",
-+ },
-+ /* OS81118 Async */
-+ {
-+ .ch_name = "ep8e",
-+ .cfg = {
-+ .direction = MOST_CH_RX,
-+ .data_type = MOST_CH_ASYNC,
-+ .num_buffers = 20,
-+ .buffer_size = 1522,
-+ },
-+ .aim_name = "networking",
-+ .aim_param = "inic-usb-arx",
-+ },
-+ {
-+ .ch_name = "ep0e",
-+ .cfg = {
-+ .direction = MOST_CH_TX,
-+ .data_type = MOST_CH_ASYNC,
-+ .num_buffers = 20,
-+ .buffer_size = 1522,
-+ },
-+ .aim_name = "networking",
-+ .aim_param = "inic-usb-atx",
-+ },
-+ /* OS81210 Control */
-+ {
-+ .ch_name = "ep87",
-+ .cfg = {
-+ .direction = MOST_CH_RX,
-+ .data_type = MOST_CH_CONTROL,
-+ .num_buffers = 16,
-+ .buffer_size = 64,
-+ },
-+ .aim_name = "cdev",
-+ .aim_param = "inic-usb-crx",
-+ },
-+ {
-+ .ch_name = "ep07",
-+ .cfg = {
-+ .direction = MOST_CH_TX,
-+ .data_type = MOST_CH_CONTROL,
-+ .num_buffers = 16,
-+ .buffer_size = 64,
-+ },
-+ .aim_name = "cdev",
-+ .aim_param = "inic-usb-ctx",
-+ },
-+ /* OS81210 Async */
-+ {
-+ .ch_name = "ep86",
-+ .cfg = {
-+ .direction = MOST_CH_RX,
-+ .data_type = MOST_CH_ASYNC,
-+ .num_buffers = 20,
-+ .buffer_size = 1522,
-+ },
-+ .aim_name = "networking",
-+ .aim_param = "inic-usb-arx",
-+ },
-+ {
-+ .ch_name = "ep06",
-+ .cfg = {
-+ .direction = MOST_CH_TX,
-+ .data_type = MOST_CH_ASYNC,
-+ .num_buffers = 20,
-+ .buffer_size = 1522,
-+ },
-+ .aim_name = "networking",
-+ .aim_param = "inic-usb-atx",
-+ },
-+ /* Streaming channels (common for all INICs) */
-+ {
-+ .ch_name = "ep01",
-+ .cfg = {
-+ .direction = MOST_CH_TX,
-+ .data_type = MOST_CH_SYNC,
-+ .num_buffers = 8,
-+ .buffer_size = 2 * 12 * 42,
-+ .subbuffer_size = 12,
-+ .packets_per_xact = 42,
-+ },
-+ .aim_name = "sound",
-+ .aim_param = "ep01-6ch.6x16",
-+ },
-+ {
-+ .ch_name = "ep02",
-+ .cfg = {
-+ .direction = MOST_CH_TX,
-+ .data_type = MOST_CH_ISOC,
-+ .num_buffers = 8,
-+ .buffer_size = 40 * 188,
-+ .subbuffer_size = 188,
-+ .packets_per_xact = 2,
-+ },
-+ .aim_name = "cdev",
-+ .aim_param = "inic-usb-itx1",
-+ },
-+
-+ /* sentinel */
-+ {}
-+};
-+
-+static struct most_config_set config_set = {
-+ .probes = config_probes
-+};
-+
-+static int __init mod_init(void)
-+{
-+ most_register_config_set(&config_set);
-+ return 0;
-+}
-+
-+static void __exit mod_exit(void)
-+{
-+ most_deregister_config_set(&config_set);
-+}
-+
-+module_init(mod_init);
-+module_exit(mod_exit);
-+MODULE_LICENSE("GPL");
-+MODULE_AUTHOR("Andrey Shvetsov <andrey.shvetsov@k2l.de>");
-+MODULE_DESCRIPTION("Default configuration for the MOST channels");
-diff --git a/include/mostcore.h b/include/mostcore.h
-index dc87121..3c00efb 100644
---- a/include/mostcore.h
-+++ b/include/mostcore.h
-@@ -145,6 +145,39 @@ struct most_channel_config {
- u16 dbr_size;
- };
-
-+/**
-+ * struct most_config_probe - matching rule, channel configuration and
-+ * the optional AIM name used for the automatic configuration and linking
-+ * of the channel
-+ * @dev_name: optional matching device id
-+ * ("usb_device 1-1:1.0," "dim2-12345678", etc.)
-+ * @ch_name: matching channel name ("ep8f", "ca2", etc.)
-+ * @cfg: configuration that will be applied for the found channel
-+ * @aim_name: optional name of the AIM that will be linked to the channel
-+ * ("cdev", "networking", "v4l", "sound")
-+ * @aim_param: AIM dependent parameter (it is the character device name
-+ * for the cdev AIM, PCM format for the audio AIM, etc.)
-+ */
-+struct most_config_probe {
-+ const char *dev_name;
-+ const char *ch_name;
-+ struct most_channel_config cfg;
-+ const char *aim_name;
-+ const char *aim_param;
-+};
-+
-+/**
-+ * struct most_config_set - the configuration set containing
-+ * several automatic configurations for the different channels
-+ * @probes: list of the matching rules and the configurations,
-+ * that must be ended with the empty structure
-+ * @list: list head used by the MostCore
-+ */
-+struct most_config_set {
-+ const struct most_config_probe *probes;
-+ struct list_head list;
-+};
-+
- /*
- * struct mbo - MOST Buffer Object.
- * @context: context for core completion handler
-@@ -285,6 +318,37 @@ struct most_aim {
- };
-
- /**
-+ * most_register_config_set - registers the configuration set
-+ *
-+ * @cfg_set: configuration set to be registered for the future probes
-+ *
-+ * The function registers the given configuration set.
-+ *
-+ * It is possible to register or deregister several configuration sets
-+ * independently. Different configuration sets may contain the
-+ * overlapped matching rules but later registered configuration set has
-+ * the higher priority over the prior registered set.
-+ *
-+ * The only the first matched configuration is applied for each
-+ * channel.
-+ *
-+ * The configuration for the channel is applied at the time of
-+ * registration of the parent most_interface.
-+ */
-+void most_register_config_set(struct most_config_set *cfg_set);
-+
-+/**
-+ * most_deregister_config_set - deregisters the prior registered
-+ * configuration set
-+ *
-+ * @cfg_set: configuration set to be deregistered
-+ *
-+ * The calling of this function does not change the current
-+ * configuration of the channels.
-+ */
-+void most_deregister_config_set(struct most_config_set *cfg_set);
-+
-+/**
- * most_register_interface - Registers instance of the interface.
- * @iface: Pointer to the interface instance description.
- *
-diff --git a/mostcore/core.c b/mostcore/core.c
-index 9e0a352..6035cf0 100644
---- a/mostcore/core.c
-+++ b/mostcore/core.c
-@@ -36,6 +36,8 @@ static struct class *most_class;
- static struct device *core_dev;
- static struct ida mdev_id;
- static int dummy_num_buffers;
-+static struct list_head config_probes;
-+struct mutex config_probes_mt; /* config_probes */
-
- struct most_c_aim_obj {
- struct most_aim *ptr;
-@@ -918,6 +920,30 @@ most_c_obj *get_channel_by_name(char *mdev, char *mdev_ch)
- return c;
- }
-
-+static int link_channel_to_aim(struct most_c_obj *c, struct most_aim *aim,
-+ char *aim_param)
-+{
-+ int ret;
-+ struct most_aim **aim_ptr;
-+
-+ if (!c->aim0.ptr)
-+ aim_ptr = &c->aim0.ptr;
-+ else if (!c->aim1.ptr)
-+ aim_ptr = &c->aim1.ptr;
-+ else
-+ return -ENOSPC;
-+
-+ *aim_ptr = aim;
-+ ret = aim->probe_channel(c->iface, c->channel_id,
-+ &c->cfg, &c->kobj, aim_param);
-+ if (ret) {
-+ *aim_ptr = NULL;
-+ return ret;
-+ }
-+
-+ return 0;
-+}
-+
- /**
- * add_link_store - store() function for add_link attribute
- * @aim_obj: pointer to AIM object
-@@ -946,45 +972,33 @@ static ssize_t add_link_store(struct most_aim_obj *aim_obj,
- size_t len)
- {
- struct most_c_obj *c;
-- struct most_aim **aim_ptr;
- char buffer[STRING_SIZE];
- char *mdev;
- char *mdev_ch;
-- char *mdev_devnod;
-+ char *aim_param;
- char devnod_buf[STRING_SIZE];
- int ret;
- size_t max_len = min_t(size_t, len + 1, STRING_SIZE);
-
- strlcpy(buffer, buf, max_len);
-
-- ret = split_string(buffer, &mdev, &mdev_ch, &mdev_devnod);
-+ ret = split_string(buffer, &mdev, &mdev_ch, &aim_param);
- if (ret)
- return ret;
-
-- if (!mdev_devnod || *mdev_devnod == 0) {
-+ if (!aim_param || *aim_param == 0) {
- snprintf(devnod_buf, sizeof(devnod_buf), "%s-%s", mdev,
- mdev_ch);
-- mdev_devnod = devnod_buf;
-+ aim_param = devnod_buf;
- }
-
- c = get_channel_by_name(mdev, mdev_ch);
- if (IS_ERR(c))
- return -ENODEV;
-
-- if (!c->aim0.ptr)
-- aim_ptr = &c->aim0.ptr;
-- else if (!c->aim1.ptr)
-- aim_ptr = &c->aim1.ptr;
-- else
-- return -ENOSPC;
--
-- *aim_ptr = aim_obj->driver;
-- ret = aim_obj->driver->probe_channel(c->iface, c->channel_id,
-- &c->cfg, &c->kobj, mdev_devnod);
-- if (ret) {
-- *aim_ptr = NULL;
-+ ret = link_channel_to_aim(c, aim_obj->driver, aim_param);
-+ if (ret)
- return ret;
-- }
-
- return len;
- }
-@@ -1679,6 +1693,73 @@ int most_deregister_aim(struct most_aim *aim)
- }
- EXPORT_SYMBOL_GPL(most_deregister_aim);
-
-+void most_register_config_set(struct most_config_set *cfg_set)
-+{
-+ mutex_lock(&config_probes_mt);
-+ list_add(&cfg_set->list, &config_probes);
-+ mutex_unlock(&config_probes_mt);
-+}
-+EXPORT_SYMBOL(most_register_config_set);
-+
-+void most_deregister_config_set(struct most_config_set *cfg_set)
-+{
-+ mutex_lock(&config_probes_mt);
-+ list_del(&cfg_set->list);
-+ mutex_unlock(&config_probes_mt);
-+}
-+EXPORT_SYMBOL(most_deregister_config_set);
-+
-+static int probe_aim(struct most_c_obj *c,
-+ const char *aim_name, const char *aim_param)
-+{
-+ struct most_aim_obj *aim_obj;
-+ char buf[STRING_SIZE];
-+
-+ list_for_each_entry(aim_obj, &aim_list, list) {
-+ if (!strcmp(aim_obj->driver->name, aim_name)) {
-+ strlcpy(buf, aim_param ? aim_param : "", sizeof(buf));
-+ return link_channel_to_aim(c, aim_obj->driver, buf);
-+ }
-+ }
-+ return 0;
-+}
-+
-+static bool probe_config_set(struct most_c_obj *c,
-+ const char *dev_name, const char *ch_name,
-+ const struct most_config_probe *p)
-+{
-+ int err;
-+
-+ for (; p->ch_name; p++) {
-+ if ((p->dev_name && strcmp(dev_name, p->dev_name)) ||
-+ strcmp(ch_name, p->ch_name))
-+ continue;
-+
-+ c->cfg = p->cfg;
-+ if (p->aim_name) {
-+ err = probe_aim(c, p->aim_name, p->aim_param);
-+ if (err)
-+ pr_err("failed to autolink %s to %s: %d\n",
-+ ch_name, p->aim_name, err);
-+ }
-+ return true;
-+ }
-+ return false;
-+}
-+
-+static void find_configuration(struct most_c_obj *c, const char *dev_name,
-+ const char *ch_name)
-+{
-+ struct most_config_set *plist;
-+
-+ mutex_lock(&config_probes_mt);
-+ list_for_each_entry(plist, &config_probes, list) {
-+ if (probe_config_set(c, dev_name, ch_name, plist->probes))
-+ break;
-+ }
-+ mutex_unlock(&config_probes_mt);
-+}
-+
- /**
- * most_register_interface - registers an interface with core
- * @iface: pointer to the instance of the interface description.
-@@ -1777,6 +1858,7 @@ struct kobject *most_register_interface(struct most_interface *iface)
- mutex_init(&c->start_mutex);
- mutex_init(&c->nq_mutex);
- list_add_tail(&c->list, &inst->channel_list);
-+ find_configuration(c, iface->description, channel_name);
- }
- pr_info("registered new MOST device mdev%d (%s)\n",
- inst->dev_id, iface->description);
-@@ -1880,6 +1962,8 @@ static int __init most_init(void)
- pr_info("init()\n");
- INIT_LIST_HEAD(&instance_list);
- INIT_LIST_HEAD(&aim_list);
-+ INIT_LIST_HEAD(&config_probes);
-+ mutex_init(&config_probes_mt);
- ida_init(&mdev_id);
-
- err = bus_register(&most_bus);
---
-2.7.4
-
diff --git a/meta-agl-profile-core/recipes-kernel/most/files/0003-core-remove-kernel-log-for-MBO-status.patch b/meta-agl-profile-core/recipes-kernel/most/files/0003-core-remove-kernel-log-for-MBO-status.patch
deleted file mode 100644
index 4703844a1..000000000
--- a/meta-agl-profile-core/recipes-kernel/most/files/0003-core-remove-kernel-log-for-MBO-status.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From b269994be937cbb31c0d73ecc899ca8a545a6a4a Mon Sep 17 00:00:00 2001
-From: Christian Gromm <christian.gromm@microchip.com>
-Date: Mon, 4 Sep 2017 11:09:17 +0200
-Subject: [PATCH 3/5] core: remove kernel log for MBO status
-
-Signed-off-by: Christian Gromm <christian.gromm@microchip.com>
----
- driver/mostcore/core.c | 2 --
- 1 file changed, 2 deletions(-)
-
-diff --git a/mostcore/core.c b/mostcore/core.c
-index 931efb9..595becc 100644
---- a/mostcore/core.c
-+++ b/mostcore/core.c
-@@ -1348,8 +1348,6 @@ static void most_write_completion(struct mbo *mbo)
- BUG_ON((!mbo) || (!mbo->context));
-
- c = mbo->context;
-- if (mbo->status == MBO_E_INVAL)
-- pr_info("WARN: Tx MBO status: invalid\n");
- if (unlikely(c->is_poisoned || (mbo->status == MBO_E_CLOSE)))
- trash_mbo(mbo);
- else
---
-2.7.4
-
diff --git a/meta-agl-profile-core/recipes-kernel/most/files/0004-most-video-set-device_caps.patch b/meta-agl-profile-core/recipes-kernel/most/files/0004-most-video-set-device_caps.patch
deleted file mode 100644
index 010d4b0d0..000000000
--- a/meta-agl-profile-core/recipes-kernel/most/files/0004-most-video-set-device_caps.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From a5fd2ae8d4a3b2a8f7a33a4ea469ea7ee0d946ef Mon Sep 17 00:00:00 2001
-From: Christian Gromm <christian.gromm@microchip.com>
-Date: Mon, 4 Sep 2017 15:36:38 +0200
-Subject: [PATCH 4/5] most: video: set device_caps
-
-Signed-off-by: Christian Gromm <christian.gromm@microchip.com>
----
- driver/aim-v4l2/video.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/aim-v4l2/video.c b/aim-v4l2/video.c
-index e074841..6405a03 100644
---- a/aim-v4l2/video.c
-+++ b/aim-v4l2/video.c
-@@ -263,6 +263,7 @@ static int vidioc_querycap(struct file *file, void *priv,
- snprintf(cap->bus_info, sizeof(cap->bus_info),
- "%s", mdev->iface->description);
-
-+ cap->device_caps =
- cap->capabilities =
- V4L2_CAP_READWRITE |
- V4L2_CAP_TUNER |
---
-2.7.4
-
diff --git a/meta-agl-profile-core/recipes-kernel/most/files/0005-most-video-set-V4L2_CAP_DEVICE_CAPS-flag.patch b/meta-agl-profile-core/recipes-kernel/most/files/0005-most-video-set-V4L2_CAP_DEVICE_CAPS-flag.patch
deleted file mode 100644
index ebaee9e14..000000000
--- a/meta-agl-profile-core/recipes-kernel/most/files/0005-most-video-set-V4L2_CAP_DEVICE_CAPS-flag.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From 7518453386ad3e82008186a6c9ca86ed8c136801 Mon Sep 17 00:00:00 2001
-From: Christian Gromm <christian.gromm@microchip.com>
-Date: Mon, 4 Sep 2017 16:08:38 +0200
-Subject: [PATCH 5/5] most: video: set V4L2_CAP_DEVICE_CAPS flag
-
-Signed-off-by: Christian Gromm <christian.gromm@microchip.com>
----
- driver/aim-v4l2/video.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/aim-v4l2/video.c b/aim-v4l2/video.c
-index 6405a03..db75d4d 100644
---- a/aim-v4l2/video.c
-+++ b/aim-v4l2/video.c
-@@ -265,6 +265,7 @@ static int vidioc_querycap(struct file *file, void *priv,
-
- cap->device_caps =
- cap->capabilities =
-+ V4L2_CAP_DEVICE_CAPS |
- V4L2_CAP_READWRITE |
- V4L2_CAP_TUNER |
- V4L2_CAP_VIDEO_CAPTURE;
---
-2.7.4
-
diff --git a/meta-agl-profile-core/recipes-kernel/most/files/0006-dim2-fix-startup-sequence.patch b/meta-agl-profile-core/recipes-kernel/most/files/0006-dim2-fix-startup-sequence.patch
deleted file mode 100644
index 59c6ae671..000000000
--- a/meta-agl-profile-core/recipes-kernel/most/files/0006-dim2-fix-startup-sequence.patch
+++ /dev/null
@@ -1,186 +0,0 @@
-From 63bcd9b421ae7927948bffec9566db47f40ea290 Mon Sep 17 00:00:00 2001
-From: Andrey Shvetsov <andrey.shvetsov@k2l.de>
-Date: Tue, 30 Jan 2018 17:34:09 +0100
-Subject: [PATCH] staging: most: dim2: fix startup sequence
-
-Platform specific initializations (pdata->init) must be done before DIM2
-IP module startup (dim_startup).
-
-Signed-off-by: Andrey Shvetsov <andrey.shvetsov@k2l.de>
----
- hdm-dim2/dim2_hdm.c | 90 +++++++++++++++++++++++++++++++++++++++---------------------------------------------------
- 1 file changed, 39 insertions(+), 51 deletions(-)
-
-diff --git a/hdm-dim2/dim2_hdm.c b/hdm-dim2/dim2_hdm.c
-index 893b8e4..e4629a5 100644
---- a/hdm-dim2/dim2_hdm.c
-+++ b/hdm-dim2/dim2_hdm.c
-@@ -155,38 +155,6 @@ void dimcb_on_error(u8 error_id, const char *error_message)
- }
-
- /**
-- * startup_dim - initialize the dim2 interface
-- * @pdev: platform device
-- */
--static int startup_dim(struct platform_device *pdev)
--{
-- struct dim2_hdm *dev = platform_get_drvdata(pdev);
-- struct dim2_platform_data *pdata = pdev->dev.platform_data;
-- u8 hal_ret;
-- int ret;
--
-- if (!pdata) {
-- pr_err("missing platform data\n");
-- return -EINVAL;
-- }
--
-- ret = pdata->init ? pdata->init(pdata, dev->io_base) : 0;
-- if (ret)
-- return ret;
--
-- pr_info("sync: num of frames per sub-buffer: %u\n", fcnt);
-- hal_ret = dim_startup(dev->io_base, pdata->clk_speed, fcnt);
-- if (hal_ret != DIM_NO_ERROR) {
-- pr_err("dim_startup failed: %d\n", hal_ret);
-- if (pdata && pdata->destroy)
-- pdata->destroy(pdata);
-- return -ENODEV;
-- }
--
-- return 0;
--}
--
--/**
- * try_start_dim_transfer - try to transfer a buffer on a channel
- * @hdm_ch: channel specific data
- *
-@@ -727,10 +695,12 @@ static void dma_free(struct mbo *mbo, u32 size)
- */
- static int dim2_probe(struct platform_device *pdev)
- {
-+ struct dim2_platform_data *pdata = pdev->dev.platform_data;
- struct dim2_hdm *dev;
- struct resource *res;
- int ret, i;
- struct kobject *kobj;
-+ u8 hal_ret;
- int irq;
-
- dev = devm_kzalloc(&pdev->dev, sizeof(*dev), GFP_KERNEL);
-@@ -745,38 +715,59 @@ static int dim2_probe(struct platform_device *pdev)
- if (IS_ERR(dev->io_base))
- return PTR_ERR(dev->io_base);
-
-+ if (!pdata) {
-+ dev_err(&pdev->dev, "missing platform data\n");
-+ return -EINVAL;
-+ }
-+
-+ ret = pdata->init ? pdata->init(pdata, dev->io_base) : 0;
-+ if (ret)
-+ return ret;
-+
-+ dev_info(&pdev->dev, "sync: num of frames per sub-buffer: %u\n", fcnt);
-+ hal_ret = dim_startup(dev->io_base, pdata->clk_speed, fcnt);
-+ if (hal_ret != DIM_NO_ERROR) {
-+ dev_err(&pdev->dev, "dim_startup failed: %d\n", hal_ret);
-+ ret = -ENODEV;
-+ goto err_bsp_destroy;
-+ }
-+
- irq = platform_get_irq(pdev, 0);
- if (irq < 0) {
- dev_err(&pdev->dev, "failed to get ahb0_int irq: %d\n", irq);
-- return irq;
-+ ret = irq;
-+ goto err_shutdown_dim;
- }
-
- ret = devm_request_irq(&pdev->dev, irq, dim2_ahb_isr, 0,
- "dim2_ahb0_int", dev);
- if (ret) {
- dev_err(&pdev->dev, "failed to request ahb0_int irq %d\n", irq);
-- return ret;
-+ goto err_shutdown_dim;
- }
-
- irq = platform_get_irq(pdev, 1);
- if (irq < 0) {
- dev_err(&pdev->dev, "failed to get mlb_int irq: %d\n", irq);
-- return irq;
-+ ret = irq;
-+ goto err_shutdown_dim;
- }
-
- ret = devm_request_irq(&pdev->dev, irq, dim2_mlb_isr, 0,
- "dim2_mlb_int", dev);
- if (ret) {
- dev_err(&pdev->dev, "failed to request mlb_int irq %d\n", irq);
-- return ret;
-+ goto err_shutdown_dim;
- }
-
- init_waitqueue_head(&dev->netinfo_waitq);
- dev->deliver_netinfo = 0;
-- dev->netinfo_task = kthread_run(&deliver_netinfo_thread, (void *)dev,
-+ dev->netinfo_task = kthread_run(&deliver_netinfo_thread, dev,
- "dim2_netinfo");
-- if (IS_ERR(dev->netinfo_task))
-- return PTR_ERR(dev->netinfo_task);
-+ if (IS_ERR(dev->netinfo_task)) {
-+ ret = PTR_ERR(dev->netinfo_task);
-+ goto err_shutdown_dim;
-+ }
-
- for (i = 0; i < DMA_CHANNELS; i++) {
- struct most_channel_capability *cap = dev->capabilities + i;
-@@ -833,20 +824,17 @@ static int dim2_probe(struct platform_device *pdev)
- if (ret)
- goto err_unreg_iface;
-
-- ret = startup_dim(pdev);
-- if (ret) {
-- dev_err(&pdev->dev, "failed to initialize DIM2\n");
-- goto err_destroy_bus;
-- }
--
- return 0;
-
--err_destroy_bus:
-- dim2_sysfs_destroy(&dev->bus);
- err_unreg_iface:
- most_deregister_interface(&dev->most_iface);
- err_stop_thread:
- kthread_stop(dev->netinfo_task);
-+err_shutdown_dim:
-+ dim_shutdown();
-+err_bsp_destroy:
-+ if (pdata && pdata->destroy)
-+ pdata->destroy(pdata);
-
- return ret;
- }
-@@ -863,6 +851,10 @@ static int dim2_remove(struct platform_device *pdev)
- struct dim2_platform_data *pdata = pdev->dev.platform_data;
- unsigned long flags;
-
-+ dim2_sysfs_destroy(&dev->bus);
-+ most_deregister_interface(&dev->most_iface);
-+ kthread_stop(dev->netinfo_task);
-+
- spin_lock_irqsave(&dim_lock, flags);
- dim_shutdown();
- spin_unlock_irqrestore(&dim_lock, flags);
-@@ -870,10 +862,6 @@ static int dim2_remove(struct platform_device *pdev)
- if (pdata && pdata->destroy)
- pdata->destroy(pdata);
-
-- dim2_sysfs_destroy(&dev->bus);
-- most_deregister_interface(&dev->most_iface);
-- kthread_stop(dev->netinfo_task);
--
- /*
- * break link to local platform_device_id struct
- * to prevent crash by unload platform device module
---
-libgit2 0.26.0
diff --git a/meta-agl-profile-core/recipes-kernel/most/files/0007-dim2-use-device-tree.patch b/meta-agl-profile-core/recipes-kernel/most/files/0007-dim2-use-device-tree.patch
deleted file mode 100644
index 679fab79c..000000000
--- a/meta-agl-profile-core/recipes-kernel/most/files/0007-dim2-use-device-tree.patch
+++ /dev/null
@@ -1,378 +0,0 @@
-From 8e16207392cd715ea88f6780981a3d55ab005588 Mon Sep 17 00:00:00 2001
-From: Andrey Shvetsov <andrey.shvetsov@k2l.de>
-Date: Mon, 12 Feb 2018 12:23:37 +0100
-Subject: [PATCH] staging: most: dim2: use device tree
-
-Current dim2 driver expects the existence of a platform driver that
-implements the platform specific initialization and delivery of the irq
-numbers.
-
-This patch integrates the device tree activity and platform specific
-code into the driver.
-
-Signed-off-by: Andrey Shvetsov <andrey.shvetsov@k2l.de>
----
- hdm-dim2/dim2_hdm.c | 222 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------------------------
- hdm-dim2/dim2_hdm.h | 28 ----------------------------
- hdm-dim2/platform/dim2_arwen_mlb3.c | 165 ---------------------------------------------------------------------------------------------------------------------------------------------------------------------
- hdm-dim2/platform/dim2_arwen_mlb6.c | 169 -------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- hdm-dim2/platform/dim2_h2_dt.c | 227 -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- hdm-dim2/platform/dim2_mx6q.c | 192 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- hdm-dim2/platform/dim2_mx6q_dt.c | 224 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- 7 files changed, 193 insertions(+), 1034 deletions(-)
- delete mode 100644 hdm-dim2/dim2_hdm.h
- delete mode 100644 hdm-dim2/platform/dim2_arwen_mlb3.c
- delete mode 100644 hdm-dim2/platform/dim2_arwen_mlb6.c
- delete mode 100644 hdm-dim2/platform/dim2_h2_dt.c
- delete mode 100644 hdm-dim2/platform/dim2_mx6q.c
- delete mode 100644 hdm-dim2/platform/dim2_mx6q_dt.c
-
-diff --git a/hdm-dim2/dim2_hdm.c b/hdm-dim2/dim2_hdm.c
-index e4629a5..2dba917 100644
---- a/hdm-dim2/dim2_hdm.c
-+++ b/hdm-dim2/dim2_hdm.c
-@@ -14,6 +14,7 @@
- #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
-
- #include <linux/module.h>
-+#include <linux/of_platform.h>
- #include <linux/printk.h>
- #include <linux/kernel.h>
- #include <linux/init.h>
-@@ -21,13 +22,13 @@
- #include <linux/interrupt.h>
- #include <linux/slab.h>
- #include <linux/io.h>
-+#include <linux/clk.h>
- #include <linux/dma-mapping.h>
- #include <linux/sched.h>
- #include <linux/kthread.h>
-
- #include <mostcore.h>
- #include "dim2_hal.h"
--#include "dim2_hdm.h"
- #include "dim2_errors.h"
- #include "dim2_sysfs.h"
-
-@@ -93,6 +94,9 @@ struct dim2_hdm {
- struct most_interface most_iface;
- char name[16 + sizeof "dim2-"];
- void __iomem *io_base;
-+ u8 clk_speed;
-+ struct clk *clk;
-+ struct clk *clk_pll;
- struct task_struct *netinfo_task;
- wait_queue_head_t netinfo_waitq;
- int deliver_netinfo;
-@@ -102,6 +106,12 @@ struct dim2_hdm {
- struct medialb_bus bus;
- void (*on_netinfo)(struct most_interface *,
- unsigned char, unsigned char *);
-+ void (*disable_platform)(struct platform_device *);
-+};
-+
-+struct dim2_platform_data {
-+ int (*enable)(struct platform_device *);
-+ void (*disable)(struct platform_device *);
- };
-
- #define iface_to_hdm(iface) container_of(iface, struct dim2_hdm, most_iface)
-@@ -686,6 +696,8 @@ static void dma_free(struct mbo *mbo, u32 size)
- dma_free_coherent(NULL, size, mbo->virt_address, mbo->bus_address);
- }
-
-+static const struct of_device_id dim2_of_match[];
-+
- /*
- * dim2_probe - dim2 probe handler
- * @pdev: platform device structure
-@@ -695,7 +707,7 @@ static void dma_free(struct mbo *mbo, u32 size)
- */
- static int dim2_probe(struct platform_device *pdev)
- {
-- struct dim2_platform_data *pdata = pdev->dev.platform_data;
-+ const struct dim2_platform_data *pdata;
- struct dim2_hdm *dev;
- struct resource *res;
- int ret, i;
-@@ -703,6 +715,8 @@ static int dim2_probe(struct platform_device *pdev)
- u8 hal_ret;
- int irq;
-
-+ enum { MLB_INT_IDX, AHB0_INT_IDX };
-+
- dev = devm_kzalloc(&pdev->dev, sizeof(*dev), GFP_KERNEL);
- if (!dev)
- return -ENOMEM;
-@@ -710,29 +724,30 @@ static int dim2_probe(struct platform_device *pdev)
- dev->atx_idx = -1;
-
- platform_set_drvdata(pdev, dev);
-+
-+ dev->clk_speed = CLK_4096FS;
-+
- res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
- dev->io_base = devm_ioremap_resource(&pdev->dev, res);
- if (IS_ERR(dev->io_base))
- return PTR_ERR(dev->io_base);
-
-- if (!pdata) {
-- dev_err(&pdev->dev, "missing platform data\n");
-- return -EINVAL;
-- }
--
-- ret = pdata->init ? pdata->init(pdata, dev->io_base) : 0;
-+ pdata = of_match_node(dim2_of_match, pdev->dev.of_node)->data;
-+ ret = pdata && pdata->enable ? pdata->enable(pdev) : 0;
- if (ret)
- return ret;
-
-+ dev->disable_platform = pdata ? pdata->disable : 0;
-+
- dev_info(&pdev->dev, "sync: num of frames per sub-buffer: %u\n", fcnt);
-- hal_ret = dim_startup(dev->io_base, pdata->clk_speed, fcnt);
-+ hal_ret = dim_startup(dev->io_base, dev->clk_speed, fcnt);
- if (hal_ret != DIM_NO_ERROR) {
- dev_err(&pdev->dev, "dim_startup failed: %d\n", hal_ret);
- ret = -ENODEV;
-- goto err_bsp_destroy;
-+ goto err_disable_platform;
- }
-
-- irq = platform_get_irq(pdev, 0);
-+ irq = platform_get_irq(pdev, AHB0_INT_IDX);
- if (irq < 0) {
- dev_err(&pdev->dev, "failed to get ahb0_int irq: %d\n", irq);
- ret = irq;
-@@ -746,7 +761,7 @@ static int dim2_probe(struct platform_device *pdev)
- goto err_shutdown_dim;
- }
-
-- irq = platform_get_irq(pdev, 1);
-+ irq = platform_get_irq(pdev, MLB_INT_IDX);
- if (irq < 0) {
- dev_err(&pdev->dev, "failed to get mlb_int irq: %d\n", irq);
- ret = irq;
-@@ -832,9 +847,9 @@ static int dim2_probe(struct platform_device *pdev)
- kthread_stop(dev->netinfo_task);
- err_shutdown_dim:
- dim_shutdown();
--err_bsp_destroy:
-- if (pdata && pdata->destroy)
-- pdata->destroy(pdata);
-+err_disable_platform:
-+ if (dev->disable_platform)
-+ dev->disable_platform(pdev);
-
- return ret;
- }
-@@ -848,7 +863,6 @@ static int dim2_probe(struct platform_device *pdev)
- static int dim2_remove(struct platform_device *pdev)
- {
- struct dim2_hdm *dev = platform_get_drvdata(pdev);
-- struct dim2_platform_data *pdata = pdev->dev.platform_data;
- unsigned long flags;
-
- dim2_sysfs_destroy(&dev->bus);
-@@ -859,37 +873,187 @@ static int dim2_remove(struct platform_device *pdev)
- dim_shutdown();
- spin_unlock_irqrestore(&dim_lock, flags);
-
-- if (pdata && pdata->destroy)
-- pdata->destroy(pdata);
-+ if (dev->disable_platform)
-+ dev->disable_platform(pdev);
-+
-+ return 0;
-+}
-+
-+/* platform specific functions [[ */
-+
-+static int fsl_mx6_enable(struct platform_device *pdev)
-+{
-+ struct dim2_hdm *dev = platform_get_drvdata(pdev);
-+ int ret;
-+
-+ dev->clk = devm_clk_get(&pdev->dev, "mlb");
-+ if (IS_ERR_OR_NULL(dev->clk)) {
-+ dev_err(&pdev->dev, "unable to get mlb clock\n");
-+ return -EFAULT;
-+ }
-+
-+ ret = clk_prepare_enable(dev->clk);
-+ if (ret) {
-+ dev_err(&pdev->dev, "%s\n", "clk_prepare_enable failed");
-+ return ret;
-+ }
-+
-+ if (dev->clk_speed >= CLK_2048FS) {
-+ /* enable pll */
-+ dev->clk_pll = devm_clk_get(&pdev->dev, "pll8_mlb");
-+ if (IS_ERR_OR_NULL(dev->clk_pll)) {
-+ dev_err(&pdev->dev, "unable to get mlb pll clock\n");
-+ clk_disable_unprepare(dev->clk);
-+ return -EFAULT;
-+ }
-+
-+ writel(0x888, dev->io_base + 0x38);
-+ clk_prepare_enable(dev->clk_pll);
-+ }
-+
-+ return 0;
-+}
-+
-+static void fsl_mx6_disable(struct platform_device *pdev)
-+{
-+ struct dim2_hdm *dev = platform_get_drvdata(pdev);
-+
-+ if (dev->clk_speed >= CLK_2048FS)
-+ clk_disable_unprepare(dev->clk_pll);
-+
-+ clk_disable_unprepare(dev->clk);
-+}
-+
-+static int rcar_h2_enable(struct platform_device *pdev)
-+{
-+ struct dim2_hdm *dev = platform_get_drvdata(pdev);
-+ int ret;
-+
-+ dev->clk = devm_clk_get(&pdev->dev, NULL);
-+ if (IS_ERR(dev->clk)) {
-+ dev_err(&pdev->dev, "cannot get clock\n");
-+ return PTR_ERR(dev->clk);
-+ }
-+
-+ ret = clk_prepare_enable(dev->clk);
-+ if (ret) {
-+ dev_err(&pdev->dev, "%s\n", "clk_prepare_enable failed");
-+ return ret;
-+ }
-+
-+ if (dev->clk_speed >= CLK_2048FS) {
-+ /* enable MLP pll and LVDS drivers */
-+ writel(0x03, dev->io_base + 0x600);
-+ /* set bias */
-+ writel(0x888, dev->io_base + 0x38);
-+ } else {
-+ /* PLL */
-+ writel(0x04, dev->io_base + 0x600);
-+ }
-+
-
-- /*
-- * break link to local platform_device_id struct
-- * to prevent crash by unload platform device module
-- */
-- pdev->id_entry = NULL;
-+ /* BBCR = 0b11 */
-+ writel(0x03, dev->io_base + 0x500);
-+ writel(0x0002FF02, dev->io_base + 0x508);
-
- return 0;
- }
-
--static const struct platform_device_id dim2_id[] = {
-- { "medialb_dim2" },
-- { }, /* Terminating entry */
-+static void rcar_h2_disable(struct platform_device *pdev)
-+{
-+ struct dim2_hdm *dev = platform_get_drvdata(pdev);
-+
-+ clk_disable_unprepare(dev->clk);
-+
-+ /* disable PLLs and LVDS drivers */
-+ writel(0x0, dev->io_base + 0x600);
-+}
-+
-+static int rcar_m3_enable(struct platform_device *pdev)
-+{
-+ struct dim2_hdm *dev = platform_get_drvdata(pdev);
-+ u32 enable_512fs = dev->clk_speed == CLK_512FS;
-+ int ret;
-+
-+ dev->clk = devm_clk_get(&pdev->dev, NULL);
-+ if (IS_ERR(dev->clk)) {
-+ dev_err(&pdev->dev, "cannot get clock\n");
-+ return PTR_ERR(dev->clk);
-+ }
-+
-+ ret = clk_prepare_enable(dev->clk);
-+ if (ret) {
-+ dev_err(&pdev->dev, "%s\n", "clk_prepare_enable failed");
-+ return ret;
-+ }
-+
-+ /* PLL */
-+ writel(0x04, dev->io_base + 0x600);
-+
-+ writel(enable_512fs, dev->io_base + 0x604);
-+
-+ /* BBCR = 0b11 */
-+ writel(0x03, dev->io_base + 0x500);
-+ writel(0x0002FF02, dev->io_base + 0x508);
-+
-+ return 0;
-+}
-+
-+static void rcar_m3_disable(struct platform_device *pdev)
-+{
-+ struct dim2_hdm *dev = platform_get_drvdata(pdev);
-+
-+ clk_disable_unprepare(dev->clk);
-+
-+ /* disable PLLs and LVDS drivers */
-+ writel(0x0, dev->io_base + 0x600);
-+}
-+
-+/* ]] platform specific functions */
-+
-+enum dim2_platforms { FSL_MX6, RCAR_H2, RCAR_M3 };
-+
-+static struct dim2_platform_data plat_data[] = {
-+ [FSL_MX6] = { .enable = fsl_mx6_enable, .disable = fsl_mx6_disable },
-+ [RCAR_H2] = { .enable = rcar_h2_enable, .disable = rcar_h2_disable },
-+ [RCAR_M3] = { .enable = rcar_m3_enable, .disable = rcar_m3_disable },
-+};
-+
-+static const struct of_device_id dim2_of_match[] = {
-+ {
-+ .compatible = "fsl,imx6q-mlb150",
-+ .data = plat_data + FSL_MX6
-+ },
-+ {
-+ .compatible = "renesas,mlp",
-+ .data = plat_data + RCAR_H2
-+ },
-+ {
-+ .compatible = "rcar,medialb-dim2",
-+ .data = plat_data + RCAR_M3
-+ },
-+ {
-+ .compatible = "xlnx,axi4-os62420_3pin-1.00.a",
-+ },
-+ {
-+ .compatible = "xlnx,axi4-os62420_6pin-1.00.a",
-+ },
-+ {},
- };
-
--MODULE_DEVICE_TABLE(platform, dim2_id);
-+MODULE_DEVICE_TABLE(of, dim2_of_match);
-
- static struct platform_driver dim2_driver = {
- .probe = dim2_probe,
- .remove = dim2_remove,
-- .id_table = dim2_id,
- .driver = {
- .name = "hdm_dim2",
-+ .of_match_table = dim2_of_match,
- },
- };
-
- module_platform_driver(dim2_driver);
-
--MODULE_AUTHOR("Jain Roy Ambi <JainRoy.Ambi@microchip.com>");
- MODULE_AUTHOR("Andrey Shvetsov <andrey.shvetsov@k2l.de>");
- MODULE_DESCRIPTION("MediaLB DIM2 Hardware Dependent Module");
- MODULE_LICENSE("GPL");
-libgit2 0.26.0
diff --git a/meta-agl-profile-core/recipes-kernel/most/files/0008-dim2-read-clock-speed-from-the-device-tree.patch b/meta-agl-profile-core/recipes-kernel/most/files/0008-dim2-read-clock-speed-from-the-device-tree.patch
deleted file mode 100644
index 1b01fb156..000000000
--- a/meta-agl-profile-core/recipes-kernel/most/files/0008-dim2-read-clock-speed-from-the-device-tree.patch
+++ /dev/null
@@ -1,92 +0,0 @@
-From 839ad403a2d8081a6c15f6fc2836b01919338f3c Mon Sep 17 00:00:00 2001
-From: Andrey Shvetsov <andrey.shvetsov@k2l.de>
-Date: Mon, 12 Feb 2018 12:24:37 +0100
-Subject: [PATCH] staging: most: dim2: read clock speed from the device tree
-
-This implements reading of the clock speed parameter from the device
-tree.
-
-Signed-off-by: Andrey Shvetsov <andrey.shvetsov@k2l.de>
----
- Documentation/devicetree/bindings/inic/microchip,inic-dim2.txt | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- hdm-dim2/dim2_hdm.c | 50 +++++++++++++++++++++++++++++++++++++++++++++++++-
- 2 files changed, 113 insertions(+), 1 deletion(-)
- create mode 100644 Documentation/devicetree/bindings/inic/microchip,inic-dim2.txt
-
-diff --git a/hdm-dim2/dim2_hdm.c b/hdm-dim2/dim2_hdm.c
-index 2dba917..05e1896 100644
---- a/hdm-dim2/dim2_hdm.c
-+++ b/hdm-dim2/dim2_hdm.c
-@@ -698,6 +698,42 @@ static void dma_free(struct mbo *mbo, u32 size)
-
- static const struct of_device_id dim2_of_match[];
-
-+static struct {
-+ const char *clock_speed;
-+ u8 clk_speed;
-+} clk_mt[] = {
-+ { "256fs", CLK_256FS },
-+ { "512fs", CLK_512FS },
-+ { "1024fs", CLK_1024FS },
-+ { "2048fs", CLK_2048FS },
-+ { "3072fs", CLK_3072FS },
-+ { "4096fs", CLK_4096FS },
-+ { "6144fs", CLK_6144FS },
-+ { "8192fs", CLK_8192FS },
-+};
-+
-+/**
-+ * get_dim2_clk_speed - converts string to DIM2 clock speed value
-+ *
-+ * @clock_speed: string in the format "{NUMBER}fs"
-+ * @val: pointer to get one of the CLK_{NUMBER}FS values
-+ *
-+ * By success stores one of the CLK_{NUMBER}FS in the *val and returns 0,
-+ * otherwise returns -EINVAL.
-+ */
-+static int get_dim2_clk_speed(const char *clock_speed, u8 *val)
-+{
-+ int i;
-+
-+ for (i = 0; i < ARRAY_SIZE(clk_mt); i++) {
-+ if (!strcmp(clock_speed, clk_mt[i].clock_speed)) {
-+ *val = clk_mt[i].clk_speed;
-+ return 0;
-+ }
-+ }
-+ return -EINVAL;
-+}
-+
- /*
- * dim2_probe - dim2 probe handler
- * @pdev: platform device structure
-@@ -708,6 +744,7 @@ static const struct of_device_id dim2_of_match[];
- static int dim2_probe(struct platform_device *pdev)
- {
- const struct dim2_platform_data *pdata;
-+ const char *clock_speed;
- struct dim2_hdm *dev;
- struct resource *res;
- int ret, i;
-@@ -725,7 +762,18 @@ static int dim2_probe(struct platform_device *pdev)
-
- platform_set_drvdata(pdev, dev);
-
-- dev->clk_speed = CLK_4096FS;
-+ ret = of_property_read_string(pdev->dev.of_node,
-+ "microchip,clock-speed", &clock_speed);
-+ if (ret) {
-+ dev_err(&pdev->dev, "missing dt property clock-speed\n");
-+ return ret;
-+ }
-+
-+ ret = get_dim2_clk_speed(clock_speed, &dev->clk_speed);
-+ if (ret) {
-+ dev_err(&pdev->dev, "bad dt property clock-speed\n");
-+ return ret;
-+ }
-
- res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
- dev->io_base = devm_ioremap_resource(&pdev->dev, res);
---
-libgit2 0.26.0
diff --git a/meta-agl-profile-core/recipes-kernel/most/files/0009-dim2-use-device-for-coherent-memory-allocation.patch b/meta-agl-profile-core/recipes-kernel/most/files/0009-dim2-use-device-for-coherent-memory-allocation.patch
deleted file mode 100644
index 08cd6f99d..000000000
--- a/meta-agl-profile-core/recipes-kernel/most/files/0009-dim2-use-device-for-coherent-memory-allocation.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From 756f2f1f90524c2620ed7951e436d13bdb929a6b Mon Sep 17 00:00:00 2001
-From: Andrey Shvetsov <andrey.shvetsov@k2l.de>
-Date: Mon, 12 Feb 2018 12:25:37 +0100
-Subject: [PATCH] staging: most: dim2: use device for coherent memory allocation
-
-On several modern architectures the allocation of coherent memory needs
-a device that has the dma_ops properly set. This patch enables use of
-the DIM2 platform device for the allocation process.
-
-Signed-off-by: Andrey Shvetsov <andrey.shvetsov@k2l.de>
----
- hdm-dim2/dim2_hdm.c | 9 +++++++--
- 1 file changed, 7 insertions(+), 2 deletions(-)
-
-diff --git a/hdm-dim2/dim2_hdm.c b/hdm-dim2/dim2_hdm.c
-index 05e1896..1847091 100644
---- a/hdm-dim2/dim2_hdm.c
-+++ b/hdm-dim2/dim2_hdm.c
-@@ -688,12 +688,16 @@ static int poison_channel(struct most_interface *most_iface, int ch_idx)
-
- static void *dma_alloc(struct mbo *mbo, u32 size)
- {
-- return dma_alloc_coherent(NULL, size, &mbo->bus_address, GFP_KERNEL);
-+ struct device *dev = mbo->ifp->dev;
-+
-+ return dma_alloc_coherent(dev, size, &mbo->bus_address, GFP_KERNEL);
- }
-
- static void dma_free(struct mbo *mbo, u32 size)
- {
-- dma_free_coherent(NULL, size, mbo->virt_address, mbo->bus_address);
-+ struct device *dev = mbo->ifp->dev;
-+
-+ dma_free_coherent(dev, size, mbo->virt_address, mbo->bus_address);
- }
-
- static const struct of_device_id dim2_of_match[];
-@@ -875,6 +879,7 @@ static int dim2_probe(struct platform_device *pdev)
- dev->most_iface.poison_channel = poison_channel;
- dev->most_iface.request_netinfo = request_netinfo;
- dev->most_iface.extra_attrs = DBR_ATTRS;
-+ dev->most_iface.dev = &pdev->dev;
-
- kobj = most_register_interface(&dev->most_iface);
- if (IS_ERR(kobj)) {
---
-libgit2 0.26.0
diff --git a/meta-agl-profile-core/recipes-kernel/most/files/0010-backport-usb-setup-timer.patch b/meta-agl-profile-core/recipes-kernel/most/files/0010-backport-usb-setup-timer.patch
deleted file mode 100644
index ff21b2130..000000000
--- a/meta-agl-profile-core/recipes-kernel/most/files/0010-backport-usb-setup-timer.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 8eaec876f732c7e4b238ada5f9304c6da2380eb1 Mon Sep 17 00:00:00 2001
-From: Andrey Shvetsov <andrey.shvetsov@k2l.de>
-Date: Fri, 8 Feb 2019 22:44:32 +0000
-Subject: [PATCH] backport: usb: setup_timer
-
----
- driver/hdm-usb/hdm_usb.c | 7 +++----
- 1 file changed, 3 insertions(+), 4 deletions(-)
-
-diff --git a/hdm-usb/hdm_usb.c b/hdm-usb/hdm_usb.c
-index 5b0af88..9896835 100644
---- a/hdm-usb/hdm_usb.c
-+++ b/hdm-usb/hdm_usb.c
-@@ -760,9 +760,9 @@ static void hdm_request_netinfo(struct most_interface *iface, int channel,
- * The handler runs in interrupt context. That's why we need to defer the
- * tasks to a work queue.
- */
--static void link_stat_timer_handler(unsigned long data)
-+static void link_stat_timer_handler(struct timer_list *t)
- {
-- struct most_dev *mdev = (struct most_dev *)data;
-+ struct most_dev *mdev = from_timer(mdev, t, link_stat_timer);
-
- schedule_work(&mdev->poll_work_obj);
- mdev->link_stat_timer.expires = jiffies + (2 * HZ);
-@@ -1154,8 +1154,7 @@ hdm_probe(struct usb_interface *interface, const struct usb_device_id *id)
- num_endpoints = usb_iface_desc->desc.bNumEndpoints;
- mutex_init(&mdev->io_mutex);
- INIT_WORK(&mdev->poll_work_obj, wq_netinfo);
-- setup_timer(&mdev->link_stat_timer, link_stat_timer_handler,
-- (unsigned long)mdev);
-+ timer_setup(&mdev->link_stat_timer, link_stat_timer_handler, 0);
-
- mdev->usb_device = usb_dev;
- mdev->link_stat_timer.expires = jiffies + (2 * HZ);
diff --git a/meta-agl-profile-core/recipes-kernel/most/files/0011-handle-snd_pcm_lib_mmap_vmalloc-removal.patch b/meta-agl-profile-core/recipes-kernel/most/files/0011-handle-snd_pcm_lib_mmap_vmalloc-removal.patch
deleted file mode 100644
index d4383c4f6..000000000
--- a/meta-agl-profile-core/recipes-kernel/most/files/0011-handle-snd_pcm_lib_mmap_vmalloc-removal.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-Handle snd_pcm_lib_mmap_vmalloc removal in 4.19
-
-Add .mmap field back to pcm_ops for kernels older than 4.19.
-
-Upstream-Status: Inappropriate
-
-Signed-off-by: Scott Murray <scott.murray@konsulko.com>
-
-diff --git a/aim-sound/sound.c b/aim-sound/sound.c
-index 4b3329b..c0a26be 100644
---- a/aim-sound/sound.c
-+++ b/aim-sound/sound.c
-@@ -17,6 +17,7 @@
- #include <linux/printk.h>
- #include <linux/kernel.h>
- #include <linux/init.h>
-+#include <linux/version.h>
- #include <sound/core.h>
- #include <sound/pcm.h>
- #include <sound/pcm_params.h>
-@@ -463,6 +464,9 @@ static const struct snd_pcm_ops pcm_ops = {
- .trigger = pcm_trigger,
- .pointer = pcm_pointer,
- .page = snd_pcm_lib_get_vmalloc_page,
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(4,19,0)
-+ .mmap = snd_pcm_lib_mmap_vmalloc,
-+#endif
- };
-
- static int split_arg_list(char *buf, char **card_name, u16 *ch_num,
diff --git a/meta-agl-profile-core/recipes-kernel/most/files/0012-Fix-build-with-5.4-kernel.patch b/meta-agl-profile-core/recipes-kernel/most/files/0012-Fix-build-with-5.4-kernel.patch
deleted file mode 100644
index 02eca27d2..000000000
--- a/meta-agl-profile-core/recipes-kernel/most/files/0012-Fix-build-with-5.4-kernel.patch
+++ /dev/null
@@ -1,68 +0,0 @@
-From 877d7475413bb787deb07aa83bafac03efa399fa Mon Sep 17 00:00:00 2001
-From: Paul Barker <paul.barker@sancloud.co.uk>
-Date: Mon, 24 Feb 2020 14:58:52 +0000
-Subject: [PATCH] Fix build with 5.4 kernel
-
-Signed-off-by: Paul Barker <paul.barker@sancloud.co.uk>
----
- driver/Makefile | 11 ++++++++++-
- 1 file changed, 10 insertions(+), 1 deletion(-)
-
-diff --git a/Makefile b/Makefile
-index 281241d..609e692 100644
---- a/Makefile
-+++ b/Makefile
-@@ -5,6 +5,7 @@ SRC := $(shell pwd)
- obj-m := mostcore.o
- mostcore-y := mostcore/core.o
- CFLAGS_core.o := -I$(src)/include/
-+CFLAGS_mostcore/core.o := -I$(src)/include/
-
- obj-m += default_conf.o
- CFLAGL_default_conf.o := -I$(src)/include
-@@ -12,33 +13,41 @@ CFLAGL_default_conf.o := -I$(src)/include
- obj-m += aim_cdev.o
- aim_cdev-y := aim-cdev/cdev.o
- CFLAGS_cdev.o := -I$(src)/include/
-+CFLAGS_aim-cdev/cdev.o := -I$(src)/include/
-
- obj-m += aim_network.o
- aim_network-y := aim-network/networking.o
- CFLAGS_networking.o := -I$(src)/include/
-+CFLAGS_aim-network/networking.o := -I$(src)/include/
-
- obj-m += aim_sound.o
- aim_sound-y := aim-sound/sound.o
- CFLAGS_sound.o := -I$(src)/include/
-+CFLAGS_aim-sound/sound.o := -I$(src)/include/
-
- obj-m += aim_v4l2.o
- aim_v4l2-y := aim-v4l2/video.o
- CFLAGS_video.o := -Idrivers/media/video -I$(src)/include/
-+CFLAGS_aim-v4l2/video.o := -Idrivers/media/video -I$(src)/include/
-
- obj-m += hdm_i2c.o
- hdm_i2c-y := hdm-i2c/hdm_i2c.o
- CFLAGS_hdm_i2c.o := -I$(src)/include/
-+CFLAGS_hdm-i2c/hdm_i2c.o := -I$(src)/include/
-
- ifdef CONFIG_OF
- obj-m += hdm_dim2.o
- hdm_dim2-y := hdm-dim2/dim2_hdm.o hdm-dim2/dim2_hal.o hdm-dim2/dim2_sysfs.o
- CFLAGS_dim2_hdm.o := -I$(src)/include/
-+CFLAGS_hdm-dim2/dim2_hdm.o := -I$(src)/include/
-+CFLAGS_hdm-dim2/dim2_hal.o := -I$(src)/include/
-+CFLAGS_hdm-dim2/dim2_sysfs.o := -I$(src)/include/
- endif
-
- obj-m += hdm_usb.o
- hdm_usb-y := hdm-usb/hdm_usb.o
- CFLAGS_hdm_usb.o := -I$(src)/include/
--
-+CFLAGS_hdm-usb/hdm_usb.o := -I$(src)/include/
-
- all:
- $(MAKE) -C $(KERNEL_SRC) M=$(SRC) modules
---
-2.20.1
-
diff --git a/meta-agl-profile-core/recipes-kernel/most/most.bb b/meta-agl-profile-core/recipes-kernel/most/most.bb
deleted file mode 100644
index 48959a6ee..000000000
--- a/meta-agl-profile-core/recipes-kernel/most/most.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-DESCRIPTION = "Build MOST driver"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6"
-
-inherit module
-
-PV = "0.1"
-
-SRC_URI = "git://gerrit.automotivelinux.org/gerrit/src/most;protocol=https;branch=${AGL_BRANCH}"
-
-S = "${WORKDIR}/git/driver"
-SRCREV = "e4dbbaf9e7652efaed0df3e0aab4464f5f228573"
-
-KERNEL_MODULE_AUTOLOAD += "aim_cdev aim_sound aim_network aim_v4l2 hdm_i2c hdm_dim2 hdm_usb mostcore"
diff --git a/meta-agl-profile-core/recipes-kernel/most/most.bbappend b/meta-agl-profile-core/recipes-kernel/most/most.bbappend
deleted file mode 100644
index ad422eb57..000000000
--- a/meta-agl-profile-core/recipes-kernel/most/most.bbappend
+++ /dev/null
@@ -1,15 +0,0 @@
-FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
-
-SRC_URI_append = " \
- file://0002-src-most-add-auto-conf-feature.patch \
- file://0003-core-remove-kernel-log-for-MBO-status.patch \
- file://0004-most-video-set-device_caps.patch \
- file://0005-most-video-set-V4L2_CAP_DEVICE_CAPS-flag.patch \
- file://0006-dim2-fix-startup-sequence.patch \
- file://0007-dim2-use-device-tree.patch \
- file://0008-dim2-read-clock-speed-from-the-device-tree.patch \
- file://0009-dim2-use-device-for-coherent-memory-allocation.patch \
- file://0010-backport-usb-setup-timer.patch \
- file://0011-handle-snd_pcm_lib_mmap_vmalloc-removal.patch \
- file://0012-Fix-build-with-5.4-kernel.patch \
-"
diff --git a/meta-agl-profile-core/recipes-multimedia/libmp4v2/files/0001-add-a-configure-option-to-disable-build-of-man-pages.patch b/meta-agl-profile-core/recipes-multimedia/libmp4v2/files/0001-add-a-configure-option-to-disable-build-of-man-pages.patch
deleted file mode 100644
index 51896e8db..000000000
--- a/meta-agl-profile-core/recipes-multimedia/libmp4v2/files/0001-add-a-configure-option-to-disable-build-of-man-pages.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 530a31e3eb24b2f1ed7b30859ed62a2d1b24bd91 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
-Date: Tue, 7 Feb 2017 11:51:58 +0100
-Subject: [PATCH] add a configure option to disable build of man-pages
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Upstream-Status: Pending
-
-Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
----
- configure.ac | 4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/configure.ac b/configure.ac
-index 8316c67..099fc0c 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -67,6 +67,8 @@ AC_ARG_ENABLE([largefile],
- [AS_HELP_STRING([--disable-largefile],[disable LFS (large file support)])])
- AC_ARG_ENABLE([util],
- [AS_HELP_STRING([--disable-util],[disable build of command-line utilities])])
-+AC_ARG_ENABLE([man],
-+ [AS_HELP_STRING([--disable-man],[disable build of man-pages])])
- AC_ARG_ENABLE([bi],
- [AS_HELP_STRING([--enable-bi=ARCH],[enable -mARCH for bi-arch compilation])])
- AC_ARG_ENABLE([ub],
-@@ -395,7 +397,7 @@ AM_CONDITIONAL([ADD_PLATFORM_POSIX],[test "$X_PLATFORM" = "posix"])
- AM_CONDITIONAL([ADD_PLATFORM_WIN32],[test "$X_PLATFORM" = "win32"])
-
- AM_CONDITIONAL([ADD_UTIL],[test "$enable_util" != "no"])
--AM_CONDITIONAL([ADD_MANS],[test "$X_PLATFORM" != "win32"])
-+AM_CONDITIONAL([ADD_MANS],[test "$enable_man" != "no"])
-
- ###############################################################################
- # declare common substitutions
---
-2.9.3
-
diff --git a/meta-agl-profile-core/recipes-multimedia/libmp4v2/libmp4v2_git.bb b/meta-agl-profile-core/recipes-multimedia/libmp4v2/libmp4v2_git.bb
deleted file mode 100644
index dd1b34747..000000000
--- a/meta-agl-profile-core/recipes-multimedia/libmp4v2/libmp4v2_git.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "The MP4v2 library provides an API to create and modify mp4 files"
-HOMEPAGE = "https://github.com/sergiomb2/libmp4v2/wiki"
-LICENSE = "MPLv1.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=eb3014b036b6d2151d944aef6a84c36f"
-
-inherit autotools-brokensep pkgconfig
-
-SRC_URI = " \
- git://github.com/sergiomb2/${BPN}.git \
- file://0001-add-a-configure-option-to-disable-build-of-man-pages.patch \
-"
-SRCREV = "855e9674232808ff3be7191b697dfb56917db21f"
-S = "${WORKDIR}/git"
-PV = "2.1.0+git${SRCPV}"
-
-
-SECURITY_CFLAGS = "${SECURITY_NO_PIE_CFLAGS}"
-EXTRA_OECONF = "--disable-man"
diff --git a/meta-agl-profile-core/recipes-multimedia/lightmediascanner/.appends.meta-efl b/meta-agl-profile-core/recipes-multimedia/lightmediascanner/.appends.meta-efl
deleted file mode 100644
index e69de29bb..000000000
--- a/meta-agl-profile-core/recipes-multimedia/lightmediascanner/.appends.meta-efl
+++ /dev/null
diff --git a/meta-agl-profile-core/recipes-multimedia/lightmediascanner/files/0001-Define-comparison_fn_t-for-non-glibc-systems.patch b/meta-agl-profile-core/recipes-multimedia/lightmediascanner/files/0001-Define-comparison_fn_t-for-non-glibc-systems.patch
deleted file mode 100644
index 15d4b3f0e..000000000
--- a/meta-agl-profile-core/recipes-multimedia/lightmediascanner/files/0001-Define-comparison_fn_t-for-non-glibc-systems.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 5bc5b8c5dad3edec6736fd7e7ce61250c4ce3725 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 12 Jul 2017 17:13:19 -0700
-Subject: [PATCH] Define comparison_fn_t for non-glibc systems
-
-lightmediascanner.c:324:12: error: 'comparison_fn_t' undeclared (first use in this function)
- (comparison_fn_t)_plugin_sort);
- ^~~~~~~~~~~~~~~
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/lib/lightmediascanner.c | 5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/src/lib/lightmediascanner.c b/src/lib/lightmediascanner.c
-index 344b247..b866883 100644
---- a/src/lib/lightmediascanner.c
-+++ b/src/lib/lightmediascanner.c
-@@ -37,6 +37,11 @@
- #define DEFAULT_SLAVE_TIMEOUT 1000
- #define DEFAULT_COMMIT_INTERVAL 100
-
-+#if !defined(__GLIBC__)
-+typedef int (*__compar_fn_t) (const void*, const void*);
-+typedef __compar_fn_t comparison_fn_t;
-+#endif
-+
- #ifdef HAVE_MAGIC_H
- static magic_t _magic_handle;
-
---
-2.13.2
-
diff --git a/meta-agl-profile-core/recipes-multimedia/lightmediascanner/files/0002-switch-from-G_BUS_TYPE_SESSION-to-G_BUS_TYPE_SYSTEM.patch b/meta-agl-profile-core/recipes-multimedia/lightmediascanner/files/0002-switch-from-G_BUS_TYPE_SESSION-to-G_BUS_TYPE_SYSTEM.patch
deleted file mode 100644
index 5abb980b8..000000000
--- a/meta-agl-profile-core/recipes-multimedia/lightmediascanner/files/0002-switch-from-G_BUS_TYPE_SESSION-to-G_BUS_TYPE_SYSTEM.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From 5a618b444e424483c3a9d34dd9b196796cac8e3f Mon Sep 17 00:00:00 2001
-From: Matt Ranostay <matt.ranostay@konsulko.com>
-Date: Mon, 22 Jul 2019 13:29:52 -0700
-Subject: [PATCH] switch from G_BUS_TYPE_SESSION to G_BUS_TYPE_SYSTEM
-
-Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
----
- src/bin/lightmediascannerctl.c | 4 ++--
- src/bin/lightmediascannerd.c | 2 +-
- 2 files changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/src/bin/lightmediascannerctl.c b/src/bin/lightmediascannerctl.c
-index 5764bc0..1d4d844 100644
---- a/src/bin/lightmediascannerctl.c
-+++ b/src/bin/lightmediascannerctl.c
-@@ -11,7 +11,7 @@ start_service_by_name(void)
- GVariant *var;
- GDBusConnection *conn;
-
-- conn = g_bus_get_sync(G_BUS_TYPE_SESSION, NULL, &error);
-+ conn = g_bus_get_sync(G_BUS_TYPE_SYSTEM, NULL, &error);
- if (error) {
- fprintf(stderr, "Could not get session bus connection: %s\n",
- error->message);
-@@ -526,7 +526,7 @@ main(int argc, char *argv[])
-
- app.timer = NULL;
- app.loop = g_main_loop_new(NULL, FALSE);
-- app.proxy = g_dbus_proxy_new_for_bus_sync(G_BUS_TYPE_SESSION,
-+ app.proxy = g_dbus_proxy_new_for_bus_sync(G_BUS_TYPE_SYSTEM,
- G_DBUS_PROXY_FLAGS_NONE,
- NULL,
- "org.lightmediascanner",
-diff --git a/src/bin/lightmediascannerd.c b/src/bin/lightmediascannerd.c
-index 319db42..6db81cc 100644
---- a/src/bin/lightmediascannerd.c
-+++ b/src/bin/lightmediascannerd.c
-@@ -1721,7 +1721,7 @@ main(int argc, char *argv[])
- introspection_data = g_dbus_node_info_new_for_xml(introspection_xml, NULL);
- g_assert(introspection_xml != NULL);
-
-- id = g_bus_own_name(G_BUS_TYPE_SESSION, "org.lightmediascanner",
-+ id = g_bus_own_name(G_BUS_TYPE_SYSTEM, "org.lightmediascanner",
- G_BUS_NAME_OWNER_FLAGS_NONE,
- NULL, on_name_acquired, NULL, NULL, NULL);
-
---
-2.20.1
-
diff --git a/meta-agl-profile-core/recipes-multimedia/lightmediascanner/files/dbus-lightmediascanner.conf b/meta-agl-profile-core/recipes-multimedia/lightmediascanner/files/dbus-lightmediascanner.conf
deleted file mode 100644
index 8a9e35b09..000000000
--- a/meta-agl-profile-core/recipes-multimedia/lightmediascanner/files/dbus-lightmediascanner.conf
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0"?> <!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.lightmediascanner"/>
- <allow send_destination="org.lightmediascanner"/>
- <allow receive_type="signal" receive_sender="org.lightmediascanner" receive_interface="org.freedesktop.DBus.Properties"/>
- </policy>
-
- <policy at_console="true">
- <allow send_destination="org.lightmediascanner"/>
- </policy>
-</busconfig>
diff --git a/meta-agl-profile-core/recipes-multimedia/lightmediascanner/files/id3-plugin-support-out-of-tree-build.patch b/meta-agl-profile-core/recipes-multimedia/lightmediascanner/files/id3-plugin-support-out-of-tree-build.patch
deleted file mode 100644
index 9528bec79..000000000
--- a/meta-agl-profile-core/recipes-multimedia/lightmediascanner/files/id3-plugin-support-out-of-tree-build.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/src/plugins/Makefile.am 2015-10-25 16:12:29.331415823 +0000
-+++ b/src/plugins/Makefile.am 2015-10-25 16:14:37.593415808 +0000
-@@ -93,7 +93,7 @@
- id3_id3_la_SOURCES = id3/id3.c id3/id3v1_genres.c
- id3_id3_la_LIBADD = $(PLUGINS_LIBADD)
-
--id3/id3v1_genres.c: $(srcdir)/id3/id3v1_genres.def $(srcdir)/id3/id3v1_genres_gen.awk
-+$(srcdir)/id3/id3v1_genres.c: $(srcdir)/id3/id3v1_genres.def $(srcdir)/id3/id3v1_genres_gen.awk
- $(AWK) -f $(srcdir)/id3/id3v1_genres_gen.awk $(srcdir)/id3/id3v1_genres.def > $@
-
- EXTRA_DIST += id3/id3v1_genres.def id3/id3v1_genres_gen.awk
diff --git a/meta-agl-profile-core/recipes-multimedia/lightmediascanner/files/lightmediascanner.service b/meta-agl-profile-core/recipes-multimedia/lightmediascanner/files/lightmediascanner.service
deleted file mode 100644
index 63b48ebf9..000000000
--- a/meta-agl-profile-core/recipes-multimedia/lightmediascanner/files/lightmediascanner.service
+++ /dev/null
@@ -1,16 +0,0 @@
-[Unit]
-Description=Lightmediascanner (LMS)
-After=run-agl-postinsts.service systemd-remount-fs.service systemd-tmpfiles-setup.service tmp.mount
-ConditionPathIsReadWrite=/var/volatile/tmp
-
-[Service]
-Type=dbus
-Restart=on-failure
-RestartSec=0
-BusName=org.lightmediascanner
-SmackProcessLabel=User::App::agl-service-mediascanner
-ExecStart=/usr/bin/lightmediascannerd --startup-scan --db-path=/var/volatile/tmp/lightmediascannerd.db --directory=/media
-
-[Install]
-WantedBy=multi-user.target
-Alias=dbus-org.lightmediascanner.service
diff --git a/meta-agl-profile-core/recipes-multimedia/lightmediascanner/files/plugin-ogg-fix-chucksize-issue.patch b/meta-agl-profile-core/recipes-multimedia/lightmediascanner/files/plugin-ogg-fix-chucksize-issue.patch
deleted file mode 100644
index 6a0b8ff93..000000000
--- a/meta-agl-profile-core/recipes-multimedia/lightmediascanner/files/plugin-ogg-fix-chucksize-issue.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From 3e66b97221440b17a184feb48692dce7e0561cac Mon Sep 17 00:00:00 2001
-From: Matt Ranostay <matt.ranostay@konsulko.com>
-Date: Wed, 8 Mar 2017 16:30:01 -0800
-Subject: [PATCH] plugin: ogg: fix chucksize issue
-
-There are some OGG files that have metadata chucks that go over the
-hardcoded 10 * 4096 size due to album art. This patchset just parses
-each chuck and continues till it runs out of valid chunks.
-
-Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
----
- src/plugins/ogg/ogg.c | 11 ++---------
- 1 file changed, 2 insertions(+), 9 deletions(-)
-
-diff --git a/src/plugins/ogg/ogg.c b/src/plugins/ogg/ogg.c
-index 1c0818e..c94dc38 100644
---- a/src/plugins/ogg/ogg.c
-+++ b/src/plugins/ogg/ogg.c
-@@ -47,8 +47,6 @@
- int CHUNKSIZE = 4096;
- #endif
-
--#define MAX_CHUNKS_PER_PAGE 10
--
- struct stream {
- struct lms_stream base;
- int serial;
-@@ -122,10 +120,8 @@ _set_lms_info(struct lms_string_size *info, const char *tag)
-
- static bool _ogg_read_page(FILE *fp, ogg_sync_state *osync, ogg_page *page)
- {
-- int i;
--
-- for (i = 0; i < MAX_CHUNKS_PER_PAGE && ogg_sync_pageout(osync, page) != 1;
-- i++) {
-+ while(ogg_sync_pageout(osync, page) != 1)
-+ {
- lms_ogg_buffer_t buffer = lms_get_ogg_sync_buffer(osync, CHUNKSIZE);
- int bytes = fread(buffer, 1, CHUNKSIZE, fp);
-
-@@ -136,9 +132,6 @@ static bool _ogg_read_page(FILE *fp, ogg_sync_state *osync, ogg_page *page)
- ogg_sync_wrote(osync, bytes);
- }
-
-- if (i > MAX_CHUNKS_PER_PAGE)
-- return false;
--
- return true;
- }
-
---
-2.7.4
-
diff --git a/meta-agl-profile-core/recipes-multimedia/lightmediascanner/lightmediascanner_%.bbappend b/meta-agl-profile-core/recipes-multimedia/lightmediascanner/lightmediascanner_%.bbappend
deleted file mode 100644
index b47b2796c..000000000
--- a/meta-agl-profile-core/recipes-multimedia/lightmediascanner/lightmediascanner_%.bbappend
+++ /dev/null
@@ -1,42 +0,0 @@
-# Disable everything but the roygalty-free formats
-PACKAGECONFIG = "ogg flac wave m3u pls jpeg png"
-
-FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
-
-SRC_URI += "file://lightmediascanner.service \
- file://plugin-ogg-fix-chucksize-issue.patch \
- file://0002-switch-from-G_BUS_TYPE_SESSION-to-G_BUS_TYPE_SYSTEM.patch \
- file://dbus-lightmediascanner.conf \
- "
-
-CFLAGS_append = " -D_FILE_OFFSET_BITS=64"
-
-inherit systemd
-
-SYSTEMD_PACKAGES = "${PN}"
-SYSTEMD_SERVICE_${PN} = "lightmediascanner.service"
-SYSTEMD_AUTO_ENABLE_${PN} = "enable"
-
-do_install_append() {
- # Install LMS systemd service
- if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
- install -d ${D}${systemd_system_unitdir}
- install -m 644 -p -D ${WORKDIR}/lightmediascanner.service ${D}${systemd_system_unitdir}/lightmediascanner.service
- fi
-
- install -d ${D}/etc/dbus-1/system.d
- install -m 0644 ${WORKDIR}/dbus-lightmediascanner.conf ${D}/etc/dbus-1/system.d/org.lightmediascanner.conf
-}
-
-FILES_${PN} += " \
- ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '${systemd_system_unitdir}/lightmediascanner.service', '', d)} \
- "
-
-EXTRA_OECONF = "--enable-static --with-dbus-services=${datadir}/dbus-1/system-services"
-PACKAGECONFIG[mp4] = "--enable-mp4,--disable-mp4,libmp4v2"
-
-# add support MP3 because of the format of music files for AGL CES/ALS2017 Demo
-PACKAGECONFIG_append = " id3 mp4"
-
-# add required character sets for id3 tag scanning
-RDEPENDS_${PN}_append = " glibc-gconv-utf-16 glibc-gconv-iso8859-1"
diff --git a/meta-agl-profile-core/recipes-multimedia/lightmediascanner/lightmediascanner_0.5.1.bb b/meta-agl-profile-core/recipes-multimedia/lightmediascanner/lightmediascanner_0.5.1.bb
deleted file mode 100644
index f2158760f..000000000
--- a/meta-agl-profile-core/recipes-multimedia/lightmediascanner/lightmediascanner_0.5.1.bb
+++ /dev/null
@@ -1,63 +0,0 @@
-SUMMARY = "Lightweight media scanner"
-DESCRIPTION = "Lightweight media scanner meant to be used in not-so-powerful devices, like embedded systems or old machines."
-SECTION = "libs/multimedia"
-
-LICENSE = "LGPLv2.1+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \
- file://src/lib/lightmediascanner.c;endline=21;md5=6d8889bccb4c6c27e8b786342a3eb267"
-
-DEPENDS = "file gawk glib-2.0 sqlite3"
-
-PV = "0.5.1+git${SRCPV}"
-SRCREV = "adfddb3486276a5ed2f5008c9e43a811e1271cc9"
-SRC_URI = "git://github.com/profusion/lightmediascanner.git \
- file://id3-plugin-support-out-of-tree-build.patch \
- file://0001-Define-comparison_fn_t-for-non-glibc-systems.patch \
- "
-
-S = "${WORKDIR}/git"
-
-inherit autotools pkgconfig
-
-EXTRA_OECONF = "--enable-static --disable-mp4"
-
-PACKAGECONFIG ??= "ogg flac wave id3 m3u pls asf rm jpeg png"
-PACKAGECONFIG[generic] = "--enable-generic,--disable-generic,libav"
-PACKAGECONFIG[ogg] = "--enable-ogg,--disable-ogg,libogg libvorbis libtheora"
-PACKAGECONFIG[flac] = "--enable-flac,--disable-flac,flac"
-PACKAGECONFIG[wave] = "--enable-wave,--disable-wave"
-PACKAGECONFIG[id3] = "--enable-id3,--disable-id3"
-PACKAGECONFIG[m3u] = "--enable-m3u,--disable-m3u"
-PACKAGECONFIG[pls] = "--enable-pls,--disable-pls"
-PACKAGECONFIG[asf] = "--enable-asf,--disable-asf"
-PACKAGECONFIG[rm] = "--enable-rm,--disable-rm"
-PACKAGECONFIG[jpeg] = "--enable-jpeg,--disable-jpeg"
-PACKAGECONFIG[png] = "--enable-png,--disable-png"
-
-do_install_append() {
- # Install "test" binary for corresponding package
- install -d ${D}/${bindir}
- install -m 755 ${B}/src/bin/.libs/test ${D}/${bindir}/test-lms
- # Remove .la files for loadable modules
- rm -f ${D}/${libdir}/${PN}/plugins/*.la
-}
-
-FILES_${PN} += "${datadir}/dbus-1"
-FILES_${PN}-dbg += "${libdir}/${PN}/plugins/.debug"
-
-PACKAGES_prepend = "${PN}-test "
-FILES_${PN}-test_prepend = "${bindir}/test-lms "
-
-PACKAGES += "${PN}-meta"
-ALLOW_EMPTY_${PN}-meta = "1"
-
-PACKAGES_DYNAMIC = "${PN}-plugin-*"
-
-python populate_packages_prepend () {
- lms_libdir = d.expand('${libdir}/${PN}')
- pkgs = []
-
- pkgs += do_split_packages(d, oe.path.join(lms_libdir, "plugins"), '^(.*)\.so$', d.expand('${PN}-plugin-%s'), 'LightMediaScanner plugin for %s', prepend=True, extra_depends=d.expand('${PN}'))
- metapkg = d.getVar('PN') + '-meta'
- d.setVar('RDEPENDS_' + metapkg, ' '.join(pkgs))
-}
diff --git a/meta-agl-profile-core/recipes-navigation/geoclue/files/org.freedesktop.GeoClue2.Client.conf b/meta-agl-profile-core/recipes-navigation/geoclue/files/org.freedesktop.GeoClue2.Client.conf
deleted file mode 100644
index a7486d055..000000000
--- a/meta-agl-profile-core/recipes-navigation/geoclue/files/org.freedesktop.GeoClue2.Client.conf
+++ /dev/null
@@ -1,8 +0,0 @@
-<!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 receive_type="signal" receive_interface="org.freedesktop.GeoClue2.Client" />
- </policy>
-</busconfig>
diff --git a/meta-agl-profile-core/recipes-navigation/geoclue/geoclue_%.bbappend b/meta-agl-profile-core/recipes-navigation/geoclue/geoclue_%.bbappend
deleted file mode 100644
index 40a3b46a0..000000000
--- a/meta-agl-profile-core/recipes-navigation/geoclue/geoclue_%.bbappend
+++ /dev/null
@@ -1,11 +0,0 @@
-inherit gobject-introspection
-
-FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
-SRC_URI_append = "file://org.freedesktop.GeoClue2.Client.conf"
-
-PACKAGECONFIG = "nmea lib"
-
-do_install_append() {
- install -d ${D}/etc/dbus-1/system.d
- install -m 0644 ${WORKDIR}/org.freedesktop.GeoClue2.Client.conf ${D}/etc/dbus-1/system.d/org.freedesktop.GeoClue2.Client.conf
-}
diff --git a/meta-agl-profile-core/recipes-navigation/gpsd/gpsd_%.bbappend b/meta-agl-profile-core/recipes-navigation/gpsd/gpsd_%.bbappend
deleted file mode 100644
index da434e08e..000000000
--- a/meta-agl-profile-core/recipes-navigation/gpsd/gpsd_%.bbappend
+++ /dev/null
@@ -1,16 +0,0 @@
-SYSTEMD_SERVICE_${PN} += " gpsdctl@.service"
-
-RPROVIDES_${PN}-conf += "virtual/gpsd-conf"
-
-do_install_append() {
- # use the systemd compatible gpsd.rules
- install -d ${D}/${sysconfdir}/udev/rules.d
- install -m 0644 ${S}/gpsd.rules ${D}/${sysconfdir}/udev/rules.d/60-gpsd.rules
-
- #support for systemd
- install -d ${D}${systemd_unitdir}/system/
- install -m 0644 ${S}/systemd/gpsdctl@.service ${D}${systemd_unitdir}/system
-
- #autoprobe usb gps devices
- echo 'USBAUTO="true"' >> ${D}${sysconfdir}/default/gpsd.default
-}
diff --git a/meta-agl-profile-core/recipes-platform/images/agl-image-minimal-crosssdk.inc b/meta-agl-profile-core/recipes-platform/images/agl-image-minimal-crosssdk.inc
deleted file mode 100644
index 71812943c..000000000
--- a/meta-agl-profile-core/recipes-platform/images/agl-image-minimal-crosssdk.inc
+++ /dev/null
@@ -1,18 +0,0 @@
-IMAGE_FEATURES_append = " dev-pkgs"
-IMAGE_INSTALL_append = " kernel-dev kernel-devsrc"
-
-# Always include the test widgets
-IMAGE_FEATURES_append = " agl-test-wgt"
-
-# Required dependencies for app and test builds
-TOOLCHAIN_HOST_TASK += " \
- nativesdk-lua \
- "
-
-# Required dependencies for app and test builds
-TOOLCHAIN_TARGET_TASK += " \
- lua-dev \
- lua-staticdev \
- libafb-helpers-staticdev \
- libappcontroller-staticdev \
- "
diff --git a/meta-agl-profile-core/recipes-platform/packagegroups/packagegroup-agl-core-services.bb b/meta-agl-profile-core/recipes-platform/packagegroups/packagegroup-agl-core-services.bb
deleted file mode 100644
index 2fd31d148..000000000
--- a/meta-agl-profile-core/recipes-platform/packagegroups/packagegroup-agl-core-services.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-DESCRIPTION = "The minimal set of packages for AGL core Connectivity Subsystem"
-LICENSE = "MIT"
-
-inherit packagegroup
-
-PACKAGES = "\
- packagegroup-agl-core-services \
- "
-
-RDEPENDS_${PN} += "\
- agl-service-data-persistence \
- agl-service-network \
- agl-service-platform-info \
- "
diff --git a/meta-agl-profile-core/recipes-support/curl/curl_%.bbappend b/meta-agl-profile-core/recipes-support/curl/curl_%.bbappend
deleted file mode 100644
index fc24cea15..000000000
--- a/meta-agl-profile-core/recipes-support/curl/curl_%.bbappend
+++ /dev/null
@@ -1,5 +0,0 @@
-# Cannot just append to PACKAGECONFIG, as nghttp2's dependencies do not build
-# for native/nativesdk, and appending class-target does not work because of
-# the weak definition of PACKAGECONFIG in the recipe, so need to copy the
-# definition to add nghttp2...
-PACKAGECONFIG = "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} gnutls libidn proxy threaded-resolver verbose zlib nghttp2"
diff --git a/meta-agl-profile-core/recipes-support/opencv/opencv_4.%.bbappend b/meta-agl-profile-core/recipes-support/opencv/opencv_4.%.bbappend
deleted file mode 100644
index 8656abf09..000000000
--- a/meta-agl-profile-core/recipes-support/opencv/opencv_4.%.bbappend
+++ /dev/null
@@ -1 +0,0 @@
-PACKAGECONFIG ?= "jpeg png v4l libv4l gstreamer"
diff --git a/meta-agl-profile-core/recipes-support/udisks/files/99-udisks2.rules b/meta-agl-profile-core/recipes-support/udisks/files/99-udisks2.rules
deleted file mode 100644
index 996e43439..000000000
--- a/meta-agl-profile-core/recipes-support/udisks/files/99-udisks2.rules
+++ /dev/null
@@ -1,5 +0,0 @@
-# UDISKS_FILESYSTEM_SHARED
-# ==1: mount filesystem to a shared directory (/media/VolumeName)
-# ==0: mount filesystem to a private directory (/run/media/$USER/VolumeName)
-# See udisks(8)
-ENV{ID_FS_USAGE}=="filesystem|other|crypto", ENV{UDISKS_FILESYSTEM_SHARED}="1"
diff --git a/meta-agl-profile-core/recipes-support/udisks/files/automount.service b/meta-agl-profile-core/recipes-support/udisks/files/automount.service
deleted file mode 100644
index b16515196..000000000
--- a/meta-agl-profile-core/recipes-support/udisks/files/automount.service
+++ /dev/null
@@ -1,9 +0,0 @@
-[Unit]
-Description=Automount Disk Manager
-After=udisks2.service
-
-[Service]
-ExecStart=/usr/libexec/automount.sh
-
-[Install]
-WantedBy=multi-user.target
diff --git a/meta-agl-profile-core/recipes-support/udisks/files/automount.sh b/meta-agl-profile-core/recipes-support/udisks/files/automount.sh
deleted file mode 100644
index 236791910..000000000
--- a/meta-agl-profile-core/recipes-support/udisks/files/automount.sh
+++ /dev/null
@@ -1,93 +0,0 @@
-#!/bin/sh
-
-MOUNT_OPTIONS_DEFAULT="ro,noexec"
-MOUNT_OPTIONS_VFAT="umask=0022"
-MOUNT_OPTIONS_EXT=""
-MOUNT_OPTIONS_NTFS=""
-MOUNT_OPTIONS_ISO9660=""
-
-VERBOSE=false
-
-# Source a configuration file that can override mount options if exists
-[ -f /etc/automount.conf ] && . /etc/automount.conf
-
-mount_device() {
- MOUNT_OPTIONS=""
- FSTYPE="$( udevadm info "${1}" "${2}" | awk -v FS== '/ID_FS_TYPE/ {print $2}' )"
- DEVNAME="$( udevadm info "${1}" "${2}" | awk -v FS== '/DEVNAME/ {print $2}' )"
- case $FSTYPE in
- vfat)
- MOUNT_OPTIONS="${MOUNT_OPTIONS_VFAT}"
- ;;
- ext[2-4])
- MOUNT_OPTIONS="${MOUNT_OPTIONS_EXT}"
- ;;
- ntfs)
- MOUNT_OPTIONS="${MOUNT_OPTIONS_NTFS}"
- ;;
- iso9660)
- MOUNT_OPTIONS="${MOUNT_OPTIONS_ISO9660}"
- ;;
- "")
- if $VERBOSE; then
- echo "[INFO][${DEVNAME}] Not a partition with a filesystem!"
- fi
- return
- ;;
- *)
- echo "[WARNING][${DEVNAME}] The filesystem '${FSTYPE}' is not supported!"
- return
- ;;
- esac
-
- if [ -n "${MOUNT_OPTIONS_DEFAULT}" ]; then
- if [ -z "${MOUNT_OPTIONS}" ]; then
- MOUNT_OPTIONS="${MOUNT_OPTIONS_DEFAULT}"
- else
- MOUNT_OPTIONS="${MOUNT_OPTIONS_DEFAULT},${MOUNT_OPTIONS}"
- fi
- fi
- if $VERBOSE; then
- echo "[INFO][${DEVNAME}] Mounting a ${FSTYPE}'s filesystem with options: ${MOUNT_OPTIONS}"
- fi
-
- if command -v udisksctl > /dev/null 2>&1; then
- if [ -n "${MOUNT_OPTIONS}" ]; then
- MOUNT_OPTIONS="-o ${MOUNT_OPTIONS}"
- fi
- udisksctl mount -t "${FSTYPE}" -b "${DEVNAME}" ${MOUNT_OPTIONS}
- elif command -v udisks >/dev/null 2>&1; then
- if [ -n "${MOUNT_OPTIONS}" ]; then
- MOUNT_OPTIONS="--mount-options ${MOUNT_OPTIONS}"
- fi
- udisks --mount-fstype "${FSTYPE}" --mount "${DEVNAME}" ${MOUNT_OPTIONS}
- else
- echo "[ERROR] Unable to find binary for mounting ${DEVNAME}" >&2
- return
- fi
- if [ "$?" -ne "0" ]; then
- echo "[ERROR] Failed to mount the device ${DEVNAME} of type ${FSTYPE} with options ${MOUNT_OPTIONS}" >&2
- fi
-}
-
-# At startup, remove empty directories that may exists
-rmdir /media/* > /dev/null 2>&1
-
-# Mount already plugged devices
-for DEVICE in $( lsblk -dn | cut -d' ' -f1 ); do
- REMOVABLE=$( cat "/sys/block/${DEVICE}/removable" )
- if [ "${REMOVABLE}" -eq "1" ]; then
- for PART in "/dev/${DEVICE}"*; do
- mount_device -n "${PART}"
- done
- fi
-done
-
-# Wait for plug events and mount devices
-stdbuf -oL -- udevadm monitor --udev -s block |
-while read -r -- _ _ EVENT DEVPATH _
-do
- if [ "${EVENT}" = "add" ]; then
- mount_device -p "/sys/${DEVPATH}"
- fi
-done
diff --git a/meta-agl-profile-core/recipes-support/udisks/udisks2_%.bbappend b/meta-agl-profile-core/recipes-support/udisks/udisks2_%.bbappend
deleted file mode 100644
index 34756f480..000000000
--- a/meta-agl-profile-core/recipes-support/udisks/udisks2_%.bbappend
+++ /dev/null
@@ -1,26 +0,0 @@
-FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
-
-SRC_URI += "file://automount.service \
- file://automount.sh \
- file://99-udisks2.rules \
-"
-
-SYSTEMD_AUTO_ENABLE = "enable"
-SYSTEMD_SERVICE_${PN} += "automount.service"
-
-do_install_append () {
- sed -i 's/^WantedBy=.*/WantedBy=multi-user.target/' ${D}${systemd_unitdir}/system/udisks2.service
-
- install -d ${D}${base_libdir}/systemd/system
- install -m 0644 ${WORKDIR}/automount.service ${D}${systemd_unitdir}/system
-
- install -d ${D}${libexecdir}
- install -m 0755 ${WORKDIR}/automount.sh ${D}${libexecdir}/automount.sh
-
- install -d ${D}${sysconfdir}/udev/rules.d
- install -m 0644 ${WORKDIR}/99-udisks2.rules ${D}${sysconfdir}/udev/rules.d
-}
-
-FILES_${PN} += "${base_libdir}/systemd/system/automount.service \
- ${libexecdir}/automount.sh \
-"
diff --git a/meta-agl-profile-core/recipes-test/gcovr-wrapper/gcovr-wrapper/gcovr-wrapper b/meta-agl-profile-core/recipes-test/gcovr-wrapper/gcovr-wrapper/gcovr-wrapper
deleted file mode 100644
index 12580237d..000000000
--- a/meta-agl-profile-core/recipes-test/gcovr-wrapper/gcovr-wrapper/gcovr-wrapper
+++ /dev/null
@@ -1,320 +0,0 @@
-#!/bin/bash
-#
-# Copyright (C) 2020 Konsulko Group
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-#
-# gcovr wrapper for generating coverage reports against AGL bindings
-# on target. With a given binding name or coverage widget file, the
-# coverage version will be installed, and the pyagl tests for the
-# binding run before generating a report with gcovr. The afm-test
-# test widget or a user-supplied command may be run instead of the
-# pyagl tests, see usage below, or run with "--help".
-#
-
-usage() {
- cat <<-EOF
- Usage:
- $(basename $0) [options] <binding name | widget file>
-
- Options:
- -h, --help
- Print this help and exit
-
- -k, --keep
- Do not remove temporary files/directories
-
- -o, --gcovr-options
- Additional gcovr options, multiple options should be quoted
-
- -w, --workdir
- gcov/gcovr temporary working directory, defaults to /tmp/gcov
- The directory will be removed after running without --keep if it
- is empty, use caution if specifying existing system directories!
-
- --pyagl
- Run pyagl tests for binding, enabled by default
-
- --afm-test
- Run afm-test test widget tests for binding.
- If specified, disables pyagl tests; note that the last argument in
- the command-line will take precedence.
-
- -c, --command
- Test command to use in place of pyagl or afm-test, should be quote
- If specified, disables pyagl and afm-test tests.
-
- EOF
-}
-
-# Helper to validate widget install dir
-check_wgt_install() {
- if [ ! \( -d $1 -o -f $1/config.xml \) ]; then
- echo "ERROR: No widget install at $1"
- exit 1
- elif [ ! -d $1/src ]; then
- echo "ERROR: No source in $1/src"
- exit 1
- fi
-}
-
-# Helper to run gcovr inside mount namespace environment
-gcovr_runner() {
- wgt_install_dir=/var/local/lib/afm/applications/$1
- check_wgt_install ${wgt_install_dir}
-
- if [ ! -d $workdir/$1 ]; then
- echo "ERROR: No coverage data in $workdir/$1"
- exit 1
- fi
-
- # Get original source path
- gcno=$(cd $workdir/$1 && find -name '*.gcno' | head -n 1 | cut -d/ -f2-)
- if [ -z "$gcno" ]; then
- echo "ERROR: no gcno file found in $workdir/$1"
- exit 1
- fi
- srcfile=$(strings $workdir/$1/${gcno} | grep "$(basename ${gcno%.gcno})$" | uniq)
- srcdir=$(echo $srcfile | sed "s|/${gcno%%/*}/.*$||")
-
- # Set up mounts for chroot to run gcovr in
- # NOTE: We do not unmount these later, as we assume we are in a
- # private mount namespace and they will go away on exit from
- # it.
- echo "Setting up mounts"
- tmpdir=$(mktemp -d)
- echo $tmpdir > $workdir/.runner_tmpdir
- mkdir -p $tmpdir/{lower,upper,work,merged}
- # NOTE: Could potentially use rbind here, but explicitly mounting
- # just what we need seems safer
- mount --bind / $tmpdir/lower
- mount -t overlay -o lowerdir=$tmpdir/lower,upperdir=$tmpdir/upper,workdir=$tmpdir/work overlay $tmpdir/merged
- mount --bind /proc $tmpdir/merged/proc
- mount --bind /sys $tmpdir/merged/sys
- mount --bind /dev $tmpdir/merged/dev
- mount --bind /tmp $tmpdir/merged/tmp
- # Bind in the data files
- # NOTE: $workdir is bound instead of specifically just $workdir/$1,
- # so that e.g. html output to another directory in /tmp will
- # work as expected. A determined user may be able to shoot
- # themselves in the foot, but for now the trade off seems
- # acceptable.
- mkdir -p $tmpdir/merged/$workdir
- mount --bind $workdir $tmpdir/merged/$workdir
- # Bind the source files to their expected location
- mkdir -p $tmpdir/merged/$srcdir
- mount --bind ${wgt_install_dir}/src $tmpdir/merged/$srcdir
-
- echo "Entering chroot"
- echo
- exec chroot $tmpdir/merged \
- /usr/bin/gcovr -r $srcdir --object-directory $workdir/$1 --gcov-filter-source-errors -s ${GCOV_RUNNER_GCOVR_OPTIONS}
-}
-
-# Helper to clean up after runner
-gcovr_runner_cleanup() {
- rm -rf $workdir/$1
- if [ -f $workdir/.runner_tmpdir ]; then
- tmpdir=$(cat $workdir/.runner_tmpdir)
- rm -rf $tmpdir
- rm -f $workdir/.runner_tmpdir
- fi
- if [ "$workdir" != "/tmp" ]; then
- rmdir $workdir 2>/dev/null || true
- fi
-}
-
-# Parse arguments
-OPTS=$(getopt -o +hko:pw:c: --longoptions gcovr-runner,afm-test,command:,help,keep,gcovr-options:,pyagl,workdir: -n "$(basename $0)" -- "$@")
-if [ $? -ne 0 ]; then
- exit 1
-fi
-eval set -- "$OPTS"
-
-runner=false
-keep=false
-wgt=""
-cmd=""
-options=""
-afmtest=false
-pyagl=true
-workdir="/tmp/gcov"
-
-while true; do
- case "$1" in
- --gcovr-runner) runner=true; shift;;
- --afm-test) afmtest=true; pyagl=false; shift;;
- -c|--command) cmd="$2"; shift; shift;;
- -h|--help) usage; exit 0;;
- -k|--keep) keep=true; shift;;
- -o|--gcovr-options) options="$2"; shift; shift;;
- -p|--pyagl) pyagl=true; afmtest=false; shift;;
- -w|--workdir) workdir="$2"; shift; shift;;
- --) shift; break;;
- *) break;;
- esac
-done
-
-# Encode the assumption that a specified command means it runs instead
-# of any other tests.
-if [ -s "$cmd" ]; then
- pyagl=false
- afmtest=false
-fi
-
-if [ $# -ne 1 ]; then
- # Always expect widget name as single non-option argument
- usage
- exit 1
-fi
-
-# Rationalize workdir just in case
-workdir=$(realpath "$workdir")
-
-if [ "$runner" = "true" ]; then
- if [ "${GCOV_RUNNER_READY}" != "true" ]; then
- echo "ERROR: gcovr environment not ready!"
- exit 1
- fi
- gcovr_runner $1
- # If we get here, it'd be an error, so return 1
- exit 1
-fi
-
-binding=$1
-if [ "${1%.wgt}" != "$1" ]; then
- # User has specified path to a widget file
- wgt=$(realpath $1)
- binding=$(basename "${1%-coverage.wgt}")
-else
- wgt=/usr/AGL/apps/coverage/${binding}-coverage.wgt
-fi
-if [ ! -f $wgt ]; then
- echo "ERROR: No widget $wgt"
- exit 1
-elif [ "$afmtest" = "true" -a ! -f /usr/AGL/apps/test/${binding}-test.wgt ]; then
- echo "ERROR: No test widget for $binding"
- exit 1
-fi
-
-# Determine starting systemd unit name
-service=$(systemctl --all |grep afm-service-$binding |sed 's/^[ *] \([^ ]*\).*/\1/')
-if [ -z "$service" ]; then
- echo "ERROR: Could not determine systemd service unit for $binding"
- exit 1
-fi
-
-# Install coverage widget
-echo "Removing $binding widget"
-systemctl stop $service
-afm-util remove $binding
-echo
-echo "Installing $binding coverage widget"
-afm-util install $wgt
-echo
-
-wgt_install_dir=/var/local/lib/afm/applications/$binding
-check_wgt_install ${wgt_install_dir}
-gcov_src=${wgt_install_dir}/coverage
-if [ ! -d ${gcov_src} ]; then
- echo "ERROR: No coverage information in ${gcov_src}"
- exit 1
-elif [ ! -f ${gcov_src}/gcov.env ]; then
- echo "ERROR: No gcov environment file at ${gcov_src}/gcov.env"
- exit 1
-fi
-
-#
-# NOTE: In theory, the coverage data collection could be done inside
-# the mount namespace / chroot, but the potential for issues
-# when doing that seems higher than just running gcovr there,
-# so a conservative approach is taken.
-#
-
-# Set up things for the binary to write out gcda data files
-#
-# Having the matching build directory hierarchy in place and
-# writeable by the target binary before any restart and testing is
-# key to things working.
-#
-# As well, the environment file with the GCOV_PREFIX and
-# GCOV_PREFIX_STRIP values needs to be present before running so the
-# gcda files will get written into the relocated build hierarchy.
-#
-echo "Installing coverage information for $binding"
-mkdir -p $workdir
-rm -rf $workdir/$binding
-cp -dr ${gcov_src} $workdir/$binding
-chsmack -r -a System::Log $workdir
-chmod -R go+w $workdir
-
-# Install the gcov environment file
-mkdir -p /etc/afm/widget.env.d/$binding
-if [ "${workdir}" = "/tmp/gcov" ]; then
- cp ${gcov_src}/gcov.env /etc/afm/widget.env.d/$binding/gcov
-else
- # Update GCOV_PREFIX to point into workdir
- sed "s|^GCOV_PREFIX=.*|GCOV_PREFIX=${workdir}/$binding|" ${gcov_src}/gcov.env > /etc/afm/widget.env.d/$binding/gcov
-fi
-chsmack -r -a _ /etc/afm/widget.env.d/$binding
-
-# Determine new systemd unit name (version may now be different)
-service=$(systemctl --all |grep afm-service-$binding |sed 's/^[ *] \([^ ]*\).*/\1/')
-if [ -z "$service" ]; then
- echo "ERROR: Could not determine systemd service unit for $binding"
- exit 1
-fi
-
-# Restart the binding
-systemctl start $service
-echo
-
-# Run tests or given command
-if [ -n "$cmd" ]; then
- echo "Running command: $cmd"
- export AGL_AVAILABLE_INTERFACES=${AGL_AVAILABLE_INTERFACES:-ethernet}
- eval $cmd
-elif [ "$pyagl" = "true" ]; then
- echo "Running $binding pyagl tests"
- export AGL_AVAILABLE_INTERFACES=${AGL_AVAILABLE_INTERFACES:-ethernet}
- pytest -k "${binding#agl-service-} and not hwrequired" /usr/lib/python3.?/site-packages/pyagl
-else
- echo "Running $binding test widget"
- # NOTE: su to agl-driver is required here to avoid fallout from
- # the "afm-util run" in afm-test seemingly triggering the
- # start of other per-user bindings for the root user.
- su -l -c "/usr/bin/afm-test /usr/AGL/apps/test/${binding}-test.wgt" agl-driver
-fi
-
-# Restart again to trigger data file writing
-systemctl restart $service
-echo
-
-# Run ourselves in gcovr runner mode inside a private mount namespace
-export GCOV_RUNNER_READY=true
-# NOTE: Passing gcovr options in the environment to avoid quoting hassles
-export GCOV_RUNNER_GCOVR_OPTIONS="$options"
-runner_options="--workdir ${workdir}"
-unshare -m $0 --gcovr-runner ${runner_options} $binding
-rc=$?
-
-if [ "$keep" != "true" ]; then
- # Clean up after ourselves
- gcovr_runner_cleanup $1
- rm -f /etc/afm/widget.env.d/$1/gcov
- rmdir /etc/afm/widget.env.d/$1 2>/dev/null || true
-fi
-
-exit $rc
-
diff --git a/meta-agl-profile-core/recipes-test/gcovr-wrapper/gcovr-wrapper_1.0.bb b/meta-agl-profile-core/recipes-test/gcovr-wrapper/gcovr-wrapper_1.0.bb
deleted file mode 100644
index 2ff39b211..000000000
--- a/meta-agl-profile-core/recipes-test/gcovr-wrapper/gcovr-wrapper_1.0.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-SUMMARY = "AGL gcovr wrapper"
-DESCRIPTION = "This wrapper script enables running gcovr against a \
-AGL binding to generate a coverage report of running pyagl tests, \
-the afm-test test widget, or a user-supplied command."
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
-
-SRC_URI += "file://gcovr-wrapper"
-
-inherit allarch
-
-do_install() {
- install -D -m 0755 ${WORKDIR}/gcovr-wrapper ${D}${bindir}/gcovr-wrapper
-}
-
-RDEPENDS_${PN} = "bash gcovr"
diff --git a/meta-agl-profile-core/recipes-test/gcovr/gcovr/0001-add-gcov-filter-source-errors-option.patch b/meta-agl-profile-core/recipes-test/gcovr/gcovr/0001-add-gcov-filter-source-errors-option.patch
deleted file mode 100644
index be1dcf829..000000000
--- a/meta-agl-profile-core/recipes-test/gcovr/gcovr/0001-add-gcov-filter-source-errors-option.patch
+++ /dev/null
@@ -1,68 +0,0 @@
-Add option to filter gcov source errors
-
-Add "--gcov-filter-source-errors" to apply filters to the source
-files in the errors from gcov. If all source files in the errors
-are filtered, then the error is ignored so that the file will be
-processed. This enables the usecase of running on a target where
-only the source tree for a binary is available, but not all of the
-external source headers are.
-
-Upstream-Status: pending
-
-Signed-off-by: Scott Murray <scott.murray@konsulko.com>
-
-diff --git a/gcovr/configuration.py b/gcovr/configuration.py
-index 1356097..083532c 100644
---- a/gcovr/configuration.py
-+++ b/gcovr/configuration.py
-@@ -915,6 +915,14 @@ GCOVR_CONFIG_OPTIONS = [
- "Default: {default!s}.",
- action="store_true",
- ),
-+ GcovrConfigOption(
-+ "gcov_filter_source_errors", ['--gcov-filter-source-errors'],
-+ group="gcov_options",
-+ help="Apply filters to missing source file errors in GCOV files "
-+ "instead of exiting with an error. "
-+ "Default: {default!s}.",
-+ action="store_true",
-+ ),
- GcovrConfigOption(
- "objdir", ['--object-directory'],
- group="gcov_options",
-diff --git a/gcovr/gcov.py b/gcovr/gcov.py
-index de79215..171d68d 100644
---- a/gcovr/gcov.py
-+++ b/gcovr/gcov.py
-@@ -667,11 +667,27 @@ def run_gcov_and_process_files(
- chdir=chdir,
- tempdir=tempdir)
-
-+ skip = False
- if source_re.search(err):
-- # gcov tossed errors: try the next potential_wd
-- error(err)
-- done = False
-- else:
-+ ignore = False
-+ if options.gcov_filter_source_errors:
-+ # Check if errors are all from source that is filtered
-+ ignore = True
-+ for line in err.splitlines():
-+ src_fname = line.split()[-1]
-+ filtered, excluded = apply_filter_include_exclude(
-+ src_fname, options.filter, options.exclude)
-+ if not (filtered or excluded):
-+ ignore = False
-+ break
-+
-+ if not ignore:
-+ # gcov tossed errors: try the next potential_wd
-+ error(err)
-+ skip = True
-+
-+ done = False
-+ if not skip:
- # Process *.gcov files
- for fname in active_gcov_files:
- process_gcov_data(fname, covdata, abs_filename, options)
diff --git a/meta-agl-profile-core/recipes-test/gcovr/gcovr_%.bbappend b/meta-agl-profile-core/recipes-test/gcovr/gcovr_%.bbappend
deleted file mode 100644
index 699aea214..000000000
--- a/meta-agl-profile-core/recipes-test/gcovr/gcovr_%.bbappend
+++ /dev/null
@@ -1,2 +0,0 @@
-# Add not yet upstreamed patch that enables on target gcov usage
-SRC_URI += "file://0001-add-gcov-filter-source-errors-option.patch"
diff --git a/meta-agl-profile-core/recipes-test/gcovr/gcovr_git.bb b/meta-agl-profile-core/recipes-test/gcovr/gcovr_git.bb
deleted file mode 100644
index 6da04cc53..000000000
--- a/meta-agl-profile-core/recipes-test/gcovr/gcovr_git.bb
+++ /dev/null
@@ -1,32 +0,0 @@
-SUMMARY = "Generate GCC code coverage reports"
-DESCRIPTION = "Gcovr provides a utility for managing the use of the GNU gcov \
-utility and generating summarized code coverage results."
-HOMEPAGE = "https://gcovr.com"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=221e634a1ceafe02ef74462cbff2fb16"
-
-PV = "4.2+git${SRCPV}"
-SRC_URI = "git://github.com/gcovr/gcovr.git;protocol=https"
-SRCREV = "1bc72e3bb59b9296e962b350691732ddafbd3195"
-
-S = "${WORKDIR}/git"
-
-inherit setuptools3
-
-RDEPENDS_${PN} += " \
- python3-compression \
- python3-core \
- python3-crypt \
- python3-datetime \
- python3-difflib \
- python3-io \
- python3-jinja2 \
- python3-json \
- python3-lxml \
- python3-multiprocessing \
- python3-pygments \
- python3-pytest \
- python3-shell \
- python3-threading \
- python3-typing \
-"
diff --git a/meta-agl-profile-core/recipes-test/pyagl/pyagl_git.bb b/meta-agl-profile-core/recipes-test/pyagl/pyagl_git.bb
deleted file mode 100644
index 821a1de7a..000000000
--- a/meta-agl-profile-core/recipes-test/pyagl/pyagl_git.bb
+++ /dev/null
@@ -1,33 +0,0 @@
-SUMMARY = "Python bindings and tests for Automotive Grade Linux services"
-HOMEPAGE = "https://gerrit.automotivelinux.org/gerrit/#/admin/projects/src/pyagl"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=ae6497158920d9524cf208c09cc4c984"
-
-SRC_URI = "git://gerrit.automotivelinux.org/gerrit/src/pyagl;protocol=https;branch=${AGL_BRANCH}"
-SRCREV = "dcc2f91e5ab3b70202e78ec7164a8e9d7501d70c"
-PV = "${AGL_BRANCH}+git${SRCPV}"
-
-S = "${WORKDIR}/git"
-
-inherit setuptools3
-
-do_install_append() {
- install -D -m 0755 ${S}/pyagl/scripts/pyagl ${D}${bindir}/pyagl
-}
-
-RDEPENDS_${PN} += " \
- python3-asyncio \
- python3-asyncssh \
- python3-core \
- python3-json \
- python3-logging \
- python3-math \
- python3-parse \
- python3-pprint \
- python3-pytest \
- python3-pytest-asyncio \
- python3-pytest-dependency \
- python3-pytest-reverse \
- python3-typing \
- python3-websockets \
-"
diff --git a/meta-agl-profile-graphical-html5/conf/layer.conf b/meta-agl-profile-graphical-html5/conf/layer.conf
deleted file mode 100644
index d499dd173..000000000
--- a/meta-agl-profile-graphical-html5/conf/layer.conf
+++ /dev/null
@@ -1,12 +0,0 @@
-# We have a conf and classes directory, add to BBPATH
-BBPATH .= ":${LAYERDIR}"
-
-# We have recipes-* directories, add to BBFILES
-BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
- ${LAYERDIR}/recipes-*/*/*.bbappend"
-
-BBFILE_COLLECTIONS += "html5-framework"
-BBFILE_PATTERN_html5-framework = "^${LAYERDIR}/"
-BBFILE_PRIORITY_html5-framework = "80"
-
-LAYERSERIES_COMPAT_html5-framework = "dunfell"
diff --git a/meta-agl-profile-graphical-html5/recipes-graphics/wayland/weston-ini-conf.bbappend b/meta-agl-profile-graphical-html5/recipes-graphics/wayland/weston-ini-conf.bbappend
deleted file mode 100644
index 2c5201aa8..000000000
--- a/meta-agl-profile-graphical-html5/recipes-graphics/wayland/weston-ini-conf.bbappend
+++ /dev/null
@@ -1,12 +0,0 @@
-FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
-
-SRC_URI_remove = " \
- file://hdmi-a-1-270.cfg \
- file://hdmi-a-1-90.cfg \
- file://virtual.cfg \
-"
-
-SRC_URI += " \
- file://hdmi-a-1-180.cfg \
- file://virtual-landscape.cfg \
-"
diff --git a/meta-agl-profile-graphical-html5/recipes-graphics/wayland/weston-ini-conf/hdmi-a-1-180.cfg b/meta-agl-profile-graphical-html5/recipes-graphics/wayland/weston-ini-conf/hdmi-a-1-180.cfg
deleted file mode 100644
index 59e2c2db8..000000000
--- a/meta-agl-profile-graphical-html5/recipes-graphics/wayland/weston-ini-conf/hdmi-a-1-180.cfg
+++ /dev/null
@@ -1,4 +0,0 @@
-# A display is connected to HDMI-A-1
-[output]
-name=HDMI-A-1
-transform=0
diff --git a/meta-agl-profile-graphical-html5/recipes-graphics/wayland/weston-ini-conf/virtual-landscape.cfg b/meta-agl-profile-graphical-html5/recipes-graphics/wayland/weston-ini-conf/virtual-landscape.cfg
deleted file mode 100644
index d69253639..000000000
--- a/meta-agl-profile-graphical-html5/recipes-graphics/wayland/weston-ini-conf/virtual-landscape.cfg
+++ /dev/null
@@ -1,3 +0,0 @@
-[output]
-name=Virtual-1
-mode=1920x1080
diff --git a/meta-agl-profile-graphical-html5/recipes-platform/images/agl-image-graphical-html5.bb b/meta-agl-profile-graphical-html5/recipes-platform/images/agl-image-graphical-html5.bb
deleted file mode 100644
index 0ec6829ed..000000000
--- a/meta-agl-profile-graphical-html5/recipes-platform/images/agl-image-graphical-html5.bb
+++ /dev/null
@@ -1,10 +0,0 @@
-SUMMARY = "An image containing all packages required to run web applications"
-
-require agl-image-graphical-html5.inc
-
-LICENSE = "MIT"
-
-IMAGE_INSTALL_append = "\
- packagegroup-agl-profile-graphical-html5 \
- "
-
diff --git a/meta-agl-profile-graphical-html5/recipes-platform/images/agl-image-graphical-html5.inc b/meta-agl-profile-graphical-html5/recipes-platform/images/agl-image-graphical-html5.inc
deleted file mode 100644
index e943b9903..000000000
--- a/meta-agl-profile-graphical-html5/recipes-platform/images/agl-image-graphical-html5.inc
+++ /dev/null
@@ -1,9 +0,0 @@
-require recipes-platform/images/agl-image-minimal.inc
-
-IMAGE_FEATURES += "splash"
-
-IMAGE_FEATURES += "${@bb.utils.contains('DISTRO_FEATURES', 'agl-devel', 'ssh-server-dropbear' , '', d)}"
-
-inherit features_check
-
-REQUIRED_DISTRO_FEATURES = "wayland"
diff --git a/meta-agl-profile-graphical-html5/recipes-platform/packagegroups/packagegroup-agl-appfw-html5.bb b/meta-agl-profile-graphical-html5/recipes-platform/packagegroups/packagegroup-agl-appfw-html5.bb
deleted file mode 100644
index cc9ed3d64..000000000
--- a/meta-agl-profile-graphical-html5/recipes-platform/packagegroups/packagegroup-agl-appfw-html5.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "AGL web runtime packages"
-DESCRIPTION = "Specific packages for the AGL web runtime (minus profile-graphical)"
-
-LICENSE = "MIT"
-
-inherit packagegroup
-
-PACKAGES = "\
- packagegroup-agl-appfw-html5 \
- "
-
-ALLOW_EMPTY_${PN} = "1"
-
-# add packages for WAM
-RDEPENDS_${PN} += " \
- chromium-browser-service \
- wam \
- "
diff --git a/meta-agl-profile-graphical-html5/recipes-platform/packagegroups/packagegroup-agl-profile-graphical-html5.bb b/meta-agl-profile-graphical-html5/recipes-platform/packagegroups/packagegroup-agl-profile-graphical-html5.bb
deleted file mode 100644
index 202750140..000000000
--- a/meta-agl-profile-graphical-html5/recipes-platform/packagegroups/packagegroup-agl-profile-graphical-html5.bb
+++ /dev/null
@@ -1,23 +0,0 @@
-SUMMARY = "AGL web runtime profile"
-DESCRIPTION = "The full set of packages required for AGL web runtime"
-LICENSE = "MIT"
-
-inherit packagegroup
-
-PACKAGES = "\
- packagegroup-agl-profile-graphical-html5 \
- profile-graphical-html5 \
- "
-
-ALLOW_EMPTY_${PN} = "1"
-
-RDEPENDS_${PN} += "\
- packagegroup-agl-profile-graphical \
- packagegroup-agl-appfw-html5 \
-"
-
-RDEPENDS_${PN} += "\
- agl-login-manager \
- "
-
-RDEPENDS_profile-graphical-html5 = "${PN}"
diff --git a/meta-agl-profile-graphical-html5/recipes-wam/chromium/chromium-browser-service.bb b/meta-agl-profile-graphical-html5/recipes-wam/chromium/chromium-browser-service.bb
deleted file mode 100644
index 90242d792..000000000
--- a/meta-agl-profile-graphical-html5/recipes-wam/chromium/chromium-browser-service.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-SUMMARY = "Chromium browser widget"
-DESCRIPTION = "Wgt packaging for running chromium installed browser"
-HOMEPAGE = "https://webosose.org"
-SECTION = "apps"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
-
-SRC_URI = "git://gerrit.automotivelinux.org/gerrit/apps/chromium;protocol=https;branch=${AGL_BRANCH}"
-SRCREV = "${AGL_APP_REVISION}"
-
-PV = "1.0+git${SRCPV}"
-S = "${WORKDIR}/git"
-
-#build-time dependencies
-DEPENDS += "af-binder af-main-native chromium68"
-
-inherit cmake aglwgt
-
-RDEPENDS_${PN} += "chromium68-browser"
diff --git a/meta-agl-profile-graphical-html5/recipes-wam/chromium/chromium68/v8-qemu-wrapper.patch b/meta-agl-profile-graphical-html5/recipes-wam/chromium/chromium68/v8-qemu-wrapper.patch
deleted file mode 100644
index 485766b02..000000000
--- a/meta-agl-profile-graphical-html5/recipes-wam/chromium/chromium68/v8-qemu-wrapper.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-Upstream-Status: Inappropriate [embedder specific]
-
-The patch below makes the V8 binaries run during the build be invoked through
-QEMU, as they are built for the target.
-
-Signed-off-by: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
-Signed-off-by: Maksim Sisov <msisov@igalia.com>
-
-Index: git/src/tools/v8_context_snapshot/BUILD.gn
-===================================================================
---- git.orig/src/tools/v8_context_snapshot/BUILD.gn
-+++ git/src/tools/v8_context_snapshot/BUILD.gn
-@@ -62,6 +62,7 @@ if (use_v8_context_snapshot) {
- output_path = rebase_path(output_file, root_build_dir)
-
- args = [
-+ "./v8-qemu-wrapper.sh",
- "./" + rebase_path(
- get_label_info(
- ":v8_context_snapshot_generator($v8_snapshot_toolchain)",
-Index: git/src/v8/BUILD.gn
-===================================================================
---- git.orig/src/v8/BUILD.gn
-+++ git/src/v8/BUILD.gn
-@@ -900,6 +900,7 @@ action("run_torque") {
- }
-
- args = [
-+ "./v8-qemu-wrapper.sh",
- "./" + rebase_path(get_label_info(":torque($v8_torque_toolchain)",
- "root_out_dir") + "/torque",
- root_build_dir),
-@@ -977,6 +978,7 @@ template("run_mksnapshot") {
- data = []
-
- args = [
-+ "./v8-qemu-wrapper.sh",
- "./" + rebase_path(get_label_info(":mksnapshot($v8_snapshot_toolchain)",
- "root_out_dir") + "/mksnapshot",
- root_build_dir),
diff --git a/meta-agl-profile-graphical-html5/recipes-wam/chromium/chromium68_git.bb b/meta-agl-profile-graphical-html5/recipes-wam/chromium/chromium68_git.bb
deleted file mode 100644
index 4f545c145..000000000
--- a/meta-agl-profile-graphical-html5/recipes-wam/chromium/chromium68_git.bb
+++ /dev/null
@@ -1,404 +0,0 @@
-# Copyright (c) 2018 LG Electronics, Inc.
-
-SUMMARY = "Chromium webruntime for webOS"
-AUTHOR = "Lokesh Kumar Goel <lokeshkumar.goel@lge.com>"
-SECTION = "webos/apps"
-LICENSE = "Apache-2.0 & BSD-3-Clause & LGPL-2.0 & LGPL-2.1"
-LIC_FILES_CHKSUM = "\
- file://src/LICENSE;md5=0fca02217a5d49a14dfe2d11837bb34d \
- file://src/third_party/blink/renderer/core/LICENSE-LGPL-2;md5=36357ffde2b64ae177b2494445b79d21 \
- file://src/third_party/blink/renderer/core/LICENSE-LGPL-2.1;md5=a778a33ef338abbaf8b8a7c36b6eec80 \
-"
-
-require gn-utils.inc
-
-inherit gettext qemu pythonnative
-
-DEPENDS = "virtual/gettext wayland wayland-native pixman freetype glib-2.0 fontconfig openssl pango cairo icu libxkbcommon libexif dbus pciutils udev libcap alsa-lib virtual/egl elfutils-native libdrm atk gperf-native gconf nss nss-native nspr nspr-native bison-native qemu-native"
-
-PROVIDES = "${BROWSER_APPLICATION}"
-
-SRC_URI = "\
- git://github.com/igalia/${BPN};branch=WIP@39.agl.compositor;protocol=https;rev=${SRCREV_chromium68};name=chromium68 \
- git://github.com/webosose/v8;destsuffix=git/src/v8;rev=${SRCREV_v8};name=v8 \
- file://v8-qemu-wrapper.patch \
-"
-SRCREV_chromium68 = "61e96d1ee5dfc2461697457d287bf922d8a03d9a"
-SRCREV_v8 = "1e3af71f1ff3735e8a5b639c48dfca63a7b8a647"
-
-# we don't include SRCPV in PV, so we have to manually include SRCREVs in do_fetch vardeps
-do_fetch[vardeps] += "SRCREV_v8"
-SRCREV_FORMAT = "main_v8"
-
-S = "${WORKDIR}/git"
-
-SRC_DIR = "${S}/src"
-OUT_DIR = "${WORKDIR}/build"
-BUILD_TYPE = "Release"
-
-B = "${OUT_DIR}/${BUILD_TYPE}"
-
-WEBRUNTIME_BUILD_TARGET = "webos:weboswebruntime"
-BROWSER_APP_BUILD_TARGET = "chrome"
-BROWSER_APPLICATION = "chromium68-browser"
-BROWSER_APPLICATION_DIR = "/opt/chromium68"
-
-TARGET = "${WEBRUNTIME_BUILD_TARGET} ${BROWSER_APP_BUILD_TARGET}"
-
-# Skip do_install_append of webos_system_bus. It is not compatible with this component.
-WEBOS_SYSTEM_BUS_FILES_LOCATION = "${S}/files/sysbus"
-
-PACKAGECONFIG ?= "jumbo use-upstream-wayland"
-
-# Options to enable debug-webcore build.
-# Add the following line to local.conf (or local.dev.inc) to enable them:
-# PACKAGECONFIG_append_pn-chromium68 = " debug-webcore"
-# Other debug options are controlled by sections later in this file
-PACKAGECONFIG[debug-webcore] = "remove_webcore_debug_symbols=false,remove_webcore_debug_symbols=true"
-
-# Set a default value for jumbo file merge of 8. This should be good for build
-# servers and workstations with a big number of cores. In case build is
-# happening in a machine with less cores but still enough RAM a good value could
-# be 50.
-JUMBO_FILE_MERGE_LIMIT="8"
-PACKAGECONFIG[jumbo] = "use_jumbo_build=true jumbo_file_merge_limit=${JUMBO_FILE_MERGE_LIMIT}, use_jumbo_build=false"
-
-PACKAGECONFIG[lttng] = "use_lttng=true,use_lttng=false,lttng-ust,lttng-tools lttng-modules babeltrace"
-
-# Chromium can use v4l2 device for hardware accelerated video decoding on such boards as Renesas R-car M3, for example.
-# In case of R-car m3, additional patches are required for gstreamer and v4l2apps.
-# See https://github.com/igel-oss/meta-browser-hwdecode/tree/igalia-chromium71.
-PACKAGECONFIG[use-linux-v4l2] = "use_v4l2_codec=true use_v4lplugin=true use_linux_v4l2_only=true"
-
-PACKAGECONFIG[use-upstream-wayland] = " \
- ozone_platform_wayland_external=false ozone_platform_wayland=true \
- use_system_minigbm=true, \
- ozone_platform_wayland_external=true ozone_platform_wayland=false \
-"
-
-GN_ARGS = "\
- enable_memorymanager_webapi=false\
- ffmpeg_branding=\"Chrome\"\
- host_os=\"linux\"\
- ozone_auto_platforms=false\
- proprietary_codecs=true\
- target_os=\"linux\"\
- treat_warnings_as_errors=false\
- is_agl=true\
- use_cbe=true\
- is_chrome_cbe=true\
- use_cups=false\
- use_custom_libcxx=false\
- use_kerberos=false\
- use_neva_media=false\
- use_ozone=true\
- use_xkbcommon=true\
- use_pmlog=false\
- use_system_debugger_abort=true\
- use_webos_gpu_info_collector=false\
- ${PACKAGECONFIG_CONFARGS}\
-"
-
-# From Chromium's BUILDCONFIG.gn:
-# Set to enable the official build level of optimization. This has nothing
-# to do with branding, but enables an additional level of optimization above
-# release (!is_debug). This might be better expressed as a tri-state
-# (debug, release, official) but for historical reasons there are two
-# separate flags.
-# See also: https://groups.google.com/a/chromium.org/d/msg/chromium-dev/hkcb6AOX5gE/PPT1ukWoBwAJ
-GN_ARGS += "is_debug=false is_official_build=true"
-
-# is_cfi default value is true for x86-64 builds with is_official_build=true.
-# As of M63, we explicitly need to set it to false, otherwise we fail the
-# following assertion in //build/config/sanitizers/sanitizers.gni:
-# assert(!is_cfi || is_clang,
-# "is_cfi requires setting is_clang = true in 'gn args'")
-GN_ARGS += "is_cfi=false"
-
-# By default, passing is_official_build=true to GN causes its symbol_level
-# variable to be set to "2". This means the compiler will be passed "-g2" and
-# we will end up with a very large chrome binary (around 5Gb as of M58)
-# regardless of whether DEBUG_BUILD has been set or not. In addition, binutils,
-# file and other utilities are unable to read a 32-bit binary this size, which
-# causes it not to be stripped.
-# The solution is two-fold:
-# 1. Make sure -g is not passed on 32-bit architectures via DEBUG_FLAGS. -g is
-# the same as -g2. -g1 generates an 800MB binary, which is a lot more
-# manageable.
-# 2. Explicitly pass symbol_level=0 to GN. This causes -g0 to be passed
-# instead, so that if DEBUG_BUILD is not set GN will not create a huge debug
-# binary anyway. Since our compiler flags are passed after GN's, -g0 does
-# not cause any issues if DEBUG_BUILD is set, as -g1 will be passed later.
-DEBUG_FLAGS_remove_arm = "-g"
-DEBUG_FLAGS_append_arm = "-g1"
-DEBUG_FLAGS_remove_x86 = "-g"
-DEBUG_FLAGS_append_x86 = "-g1"
-GN_ARGS += "symbol_level=0"
-
-# We do not want to use Chromium's own Debian-based sysroots, it is easier to
-# just let Chromium's build system assume we are not using a sysroot at all and
-# let Yocto handle everything.
-GN_ARGS += "use_sysroot=false"
-
-# Toolchains we will use for the build. We need to point to the toolchain file
-# we've created, set the right target architecture and make sure we are not
-# using Chromium's toolchain (bundled clang, bundled binutils etc).
-GN_ARGS += "\
- custom_toolchain=\"//build/toolchain/yocto:yocto_target\" \
- gold_path=\"\" \
- host_toolchain=\"//build/toolchain/yocto:yocto_native\" \
- is_clang=${@is_default_cc_clang(d)} \
- clang_base_path=\"${@clang_install_path(d)}\" \
- clang_use_chrome_plugins=false \
- linux_use_bundled_binutils=false \
- target_cpu=\"${@gn_target_arch_name(d)}\" \
- v8_snapshot_toolchain=\"//build/toolchain/yocto:yocto_target\" \
-"
-
-# ARM builds need special additional flags (see ${S}/build/config/arm.gni).
-# If we do not pass |arm_arch| and friends to GN, it will deduce a value that
-# will then conflict with TUNE_CCARGS and CC.
-# Note that as of M61 in some corner cases parts of the build system disable
-# the "compiler_arm_fpu" GN config, whereas -mfpu is always passed via ${CC}.
-# We might want to rework that if there are issues in the future.
-def get_compiler_flag(params, param_name, d):
- """Given a sequence of compiler arguments in |params|, returns the value of
- an option |param_name| or an empty string if the option is not present."""
- for param in params:
- if param.startswith(param_name):
- return param.split('=')[1]
- return ''
-
-ARM_FLOAT_ABI = "${@bb.utils.contains('TUNE_FEATURES', 'callconvention-hard', 'hard', 'softfp', d)}"
-ARM_FPU = "${@get_compiler_flag(d.getVar('TUNE_CCARGS').split(), '-mfpu', d)}"
-ARM_TUNE = "${@get_compiler_flag(d.getVar('TUNE_CCARGS').split(), '-mcpu', d)}"
-ARM_VERSION_aarch64 = "8"
-ARM_VERSION_armv7a = "7"
-ARM_VERSION_armv7ve = "7"
-ARM_VERSION_armv6 = "6"
-
-# GN computes and defaults to it automatically where needed
-# forcing it from cmdline breaks build on places where it ends up
-# overriding what GN wants
-TUNE_CCARGS_remove = "-mthumb"
-
-GN_ARGS_append_arm = " \
- arm_float_abi=\"${ARM_FLOAT_ABI}\" \
- arm_fpu=\"${ARM_FPU}\" \
- arm_tune=\"${ARM_TUNE}\" \
- arm_version=${ARM_VERSION} \
-"
-# tcmalloc's atomicops-internals-arm-v6plus.h uses the "dmb" instruction that
-# is not available on (some?) ARMv6 models, which causes the build to fail.
-GN_ARGS_append_armv6 += 'use_allocator="none"'
-# The WebRTC code fails to build on ARMv6 when NEON is enabled.
-# https://bugs.chromium.org/p/webrtc/issues/detail?id=6574
-GN_ARGS_append_armv6 += 'arm_use_neon=false'
-
-# Disable glibc shims on musl
-# tcmalloc does not play well with musl as of M62 (and possibly earlier).
-# https://github.com/gperftools/gperftools/issues/693
-GN_ARGS_append_libc-musl = ' use_allocator_shim=false'
-
-# V8's JIT infrastructure requires binaries such as mksnapshot and
-# mkpeephole to be run in the host during the build. However, these
-# binaries must have the same bit-width as the target (e.g. a x86_64
-# host targeting ARMv6 needs to produce a 32-bit binary). Instead of
-# depending on a third Yocto toolchain, we just build those binaries
-# for the target and run them on the host with QEMU.
-python do_create_v8_qemu_wrapper () {
- """Creates a small wrapper that invokes QEMU to run some target V8 binaries
- on the host."""
- qemu_libdirs = [d.expand('${STAGING_DIR_HOST}${libdir}'),
- d.expand('${STAGING_DIR_HOST}${base_libdir}')]
- qemu_cmd = qemu_wrapper_cmdline(d, d.getVar('STAGING_DIR_HOST', True),
- qemu_libdirs)
- wrapper_path = d.expand('${B}/v8-qemu-wrapper.sh')
- with open(wrapper_path, 'w') as wrapper_file:
- wrapper_file.write("""#!/bin/sh
-
-# This file has been generated automatically.
-# It invokes QEMU to run binaries built for the target in the host during the
-# build process.
-
-%s "$@"
-""" % qemu_cmd)
- os.chmod(wrapper_path, 0o755)
-}
-do_create_v8_qemu_wrapper[dirs] = "${B}"
-addtask create_v8_qemu_wrapper after do_patch before do_configure
-
-python do_write_toolchain_file () {
- """Writes a BUILD.gn file for Yocto detailing its toolchains."""
- toolchain_dir = d.expand("${S}/src/build/toolchain/yocto")
- bb.utils.mkdirhier(toolchain_dir)
- toolchain_file = os.path.join(toolchain_dir, "BUILD.gn")
- write_toolchain_file(d, toolchain_file)
-}
-addtask write_toolchain_file after do_patch before do_configure
-
-# More options to speed up the build
-GN_ARGS += "\
- enable_nacl=false\
- disable_ftp_support=true\
- enable_print_preview=false\
- enable_remoting=false\
- use_glib=true\
- use_gnome_keyring=false\
- use_pulseaudio=false\
-"
-
-# Respect ld-is-gold in DISTRO_FEATURES when enabling gold
-# Similar patch applied in meta-browser
-# http://patchwork.openembedded.org/patch/77755/
-EXTRA_OEGN_GOLD = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', 'use_gold=true', 'use_gold=false', d)}"
-GN_ARGS += "${EXTRA_OEGN_GOLD}"
-
-# Doesn't build for armv[45]*
-COMPATIBLE_MACHINE = "(-)"
-COMPATIBLE_MACHINE_aarch64 = "(.*)"
-COMPATIBLE_MACHINE_armv6 = "(.*)"
-COMPATIBLE_MACHINE_armv7a = "(.*)"
-COMPATIBLE_MACHINE_armv7ve = "(.*)"
-COMPATIBLE_MACHINE_x86 = "(.*)"
-COMPATIBLE_MACHINE_x86-64 = "(.*)"
-
-#CHROMIUM_PLUGINS_PATH = "${libdir}"
-CBE_DATA_PATH = "${libdir}/cbe"
-CBE_DATA_LOCALES_PATH = "${CBE_DATA_PATH}/locales"
-
-# The text relocations are intentional -- see comments in [GF-52468]
-# TODO: check if we need INSANE_SKIP on ldflags
-INSANE_SKIP_${PN} = "textrel ldflags"
-
-
-do_compile[progress] = "outof:^\[(\d+)/(\d+)\]\s+"
-do_compile() {
- if [ ! -f ${OUT_DIR}/${BUILD_TYPE}/build.ninja ]; then
- do_configure
- fi
-
- export PATH="${S}/depot_tools:$PATH"
- ${S}/depot_tools/ninja -v -C ${OUT_DIR}/${BUILD_TYPE} ${TARGET}
-}
-
-do_configure() {
- configure_env
-}
-
-configure_env() {
- export GYP_CHROMIUM_NO_ACTION=1
- export PATH="${S}/depot_tools:$PATH"
-
- GN_ARGS="${GN_ARGS}"
- echo GN_ARGS is ${GN_ARGS}
- echo BUILD_TARGETS are ${TARGET}
- cd ${SRC_DIR}
- gn gen ${OUT_DIR}/${BUILD_TYPE} --args="${GN_ARGS}"
-}
-
-WINDOW_SIZE ?= "1920,1080"
-
-configure_browser_settings() {
- USER_AGENT="Mozilla/5.0 (Linux; NetCast; U) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/${CHROMIUM_VERSION} Safari/537.31"
- echo "${USER_AGENT}" > ${D_DIR}/user_agent_conf
- #We can replace below WINDOW_SIZE values from build configuration if available
- #echo "${WINDOW_SIZE}" > ${D_DIR}/window_size_conf
-}
-
-install_chromium_browser() {
- D_DIR=${D}${BROWSER_APPLICATION_DIR}
- install -d ${D_DIR}
-
- # Install browser files
- if [ -e "${SRC_DIR}/webos/install" ]; then
- cd ${OUT_DIR}/${BUILD_TYPE}
- xargs --arg-file=${SRC_DIR}/webos/install/default_browser/binary.list cp -R --no-dereference --preserve=mode,links -v --target-directory=${D_DIR}
- cd ${SRC_DIR}
- xargs --arg-file=${SRC_DIR}/webos/install/default_browser/runtime.list cp -R --no-dereference --preserve=mode,links -v --target-directory=${D_DIR}
- fi
-
- # AGL does not have PMLOG
- sed -i.bak s/PmLogCtl.*// ${D_DIR}/run_webbrowser
-
- # To execute chromium in JAILER, Security Part needs permissions change
- # run_webbrowser: Script file for launching chromium
- chmod -v 755 ${D_DIR}/chrome
- chmod -v 755 ${D_DIR}/kill_webbrowser
- chmod -v 755 ${D_DIR}/run_webbrowser
-
- configure_browser_settings
-}
-
-install_webruntime() {
- install -d ${D}${libdir}
- install -d ${D}${includedir}/${BPN}
- install -d ${D}${CBE_DATA_PATH}
- install -d ${D}${CBE_DATA_LOCALES_PATH}
-
- # Install webos webview files
- if [ -e "${SRC_DIR}/webos/install" ]; then
- cd ${SRC_DIR}
- xargs --arg-file=${SRC_DIR}/webos/install/weboswebruntime/staging_inc.list cp --parents --target-directory=${D}${includedir}/${BPN}
-
- cd ${OUT_DIR}/${BUILD_TYPE}
-
- cp libcbe.so ${D}${libdir}/
- if [ "${WEBOS_LTTNG_ENABLED}" = "1" ]; then
- # use bindir if building non-cbe
- cp libchromium_lttng_provider.so ${D}${libdir}/
- fi
- xargs --arg-file=${SRC_DIR}/webos/install/weboswebruntime/binary.list cp --parents --target-directory=${D}${CBE_DATA_PATH}
- cat ${SRC_DIR}/webos/install/weboswebruntime/data_locales.list | xargs -I{} install -m 755 -p {} ${D}${CBE_DATA_LOCALES_PATH}
- fi
-
- # move this to separate mksnapshot-cross recipe once we figure out how to build just cross mksnapshot from chromium repository
- install -d ${D}${bindir_cross}
- gzip -c ${OUT_DIR}/${BUILD_TYPE}/${MKSNAPSHOT_PATH}mksnapshot > ${D}${bindir_cross}/${HOST_SYS}-mksnapshot.gz
-}
-
-do_install() {
- install_webruntime
- install_chromium_browser
-}
-
-WEBOS_SYSTEM_BUS_DIRS_LEGACY_BROWSER_APPLICATION = " \
- ${webos_sysbus_prvservicesdir}/${BROWSER_APPLICATION}.service \
- ${webos_sysbus_pubservicesdir}/${BROWSER_APPLICATION}.service \
- ${webos_sysbus_prvrolesdir}/${BROWSER_APPLICATION}.json \
- ${webos_sysbus_pubrolesdir}/${BROWSER_APPLICATION}.json \
-"
-
-SYSROOT_DIRS_append = " ${bindir_cross}"
-
-PACKAGES_prepend = " \
- ${PN}-cross-mksnapshot \
- ${BROWSER_APPLICATION} \
-"
-
-FILES_${BROWSER_APPLICATION} += " \
- ${BROWSER_APPLICATION_DIR} \
- ${WEBOS_SYSTEM_BUS_DIRS_LEGACY_BROWSER_APPLICATION} \
-"
-
-RDEPENDS_${BROWSER_APPLICATION} += "${PN}"
-
-VIRTUAL-RUNTIME_gpu-libs ?= ""
-RDEPENDS_${PN} += "${VIRTUAL-RUNTIME_gpu-libs}"
-
-# The text relocations are intentional -- see comments in [GF-52468]
-# TODO: check if we need INSANE_SKIP on ldflags
-INSANE_SKIP_${BROWSER_APPLICATION} += "libdir ldflags textrel"
-
-FILES_${PN} = " \
- ${libdir}/*.so \
- ${CBE_DATA_PATH}/* \
- ${libdir}/${BPN}/*.so \
- ${WEBOS_SYSTEM_BUS_DIRS} \
-"
-
-FILES_${PN}-dev = " \
- ${includedir} \
-"
-
-FILES_${PN}-cross-mksnapshot = "${bindir_cross}/${HOST_SYS}-mksnapshot.gz"
diff --git a/meta-agl-profile-graphical-html5/recipes-wam/chromium/gn-utils.inc b/meta-agl-profile-graphical-html5/recipes-wam/chromium/gn-utils.inc
deleted file mode 100644
index 0fd55a638..000000000
--- a/meta-agl-profile-graphical-html5/recipes-wam/chromium/gn-utils.inc
+++ /dev/null
@@ -1,157 +0,0 @@
-# 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 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.
-
-# GN host architecture helpers.
-#
-# BUILD_ARCH's value corresponds to what uname returns as the machine name.
-# The mapping in gn_host_arch_name() tries to match several possible values
-# returned by the Linux kernel in uname(2) into the corresponding values GN
-# understands.
-def gn_host_arch_name(d):
- """Returns a GN architecture name corresponding to the build host's machine
- architecture."""
- import re
- arch_translations = {
- r'aarch64.*': 'arm64',
- r'arm.*': 'arm',
- r'i[3456]86$': 'x86',
- r'x86_64$': 'x64',
- }
- build_arch = d.getVar("BUILD_ARCH")
- for arch_regexp, gn_arch_name in arch_translations.items():
- if re.match(arch_regexp, build_arch):
- return gn_arch_name
- bb.fatal('Unsuported BUILD_ARCH value: "%s"' % build_arch)
-
-# GN target architecture helpers.
-#
-# Determining the target architecture is more difficult, as there are many
-# different values we can use on the Yocto side (e.g. TUNE_ARCH, TARGET_ARCH,
-# MACHINEOVERRIDES etc). What we do is define the mapping with regular,
-# non-Python variables with overrides that are generic enough (i.e. "x86"
-# instead of "i586") and then use gn_target_arch_name() to return the right
-# value with some validation.
-GN_TARGET_ARCH_NAME_aarch64 = "arm64"
-GN_TARGET_ARCH_NAME_arm = "arm"
-GN_TARGET_ARCH_NAME_x86 = "x86"
-GN_TARGET_ARCH_NAME_x86-64 = "x64"
-
-BUILD_CC_toolchain-clang = "clang"
-BUILD_CXX_toolchain-clang = "clang++"
-BUILD_LD_toolchain-clang = "clang"
-
-# knob for clang, when using meta-clang to provide clang and case where
-# clang happens to be default compiler for OE we should let it use clang
-def is_default_cc_clang(d):
- """Return true if clang is default cross compiler."""
- toolchain = d.getVar("TOOLCHAIN")
- overrides = d.getVar("OVERRIDES")
- if toolchain == "clang" and "toolchain-clang" in overrides.split(":"):
- return "true"
- return "false"
-
-def clang_install_path(d):
- """Return clang compiler install path."""
- return d.getVar("STAGING_BINDIR_NATIVE")
-
-def gn_target_arch_name(d):
- """Returns a GN architecture name corresponding to the target machine's
- architecture."""
- name = d.getVar("GN_TARGET_ARCH_NAME")
- if name is None:
- bb.fatal('Unsupported target architecture. A valid override for the '
- 'GN_TARGET_ARCH_NAME variable could not be found.')
- return name
-
-def write_toolchain_file(d, file_path):
- """Creates a complete GN toolchain file in |file_path|."""
- import string
- gcc_toolchain_tmpl = string.Template(
- 'gcc_toolchain("${toolchain_name}") {\n'
- ' cc = "${cc}"\n'
- ' cxx = "${cxx}"\n'
- ' ar = "${ar}"\n'
- ' ld = cxx # GN expects a compiler, not a linker.\n'
- ' nm = "${nm}"\n'
- ' readelf = "${readelf}"\n'
- ' extra_cflags = "${extra_cflags}"\n'
- ' extra_cppflags = "${extra_cppflags}"\n'
- ' extra_cxxflags = "${extra_cxxflags}"\n'
- ' extra_ldflags = "${extra_ldflags}"\n'
- ' toolchain_args = {\n'
- ' current_cpu = "${current_cpu}"\n'
- ' current_os = "linux"\n'
- ' is_clang = false\n'
- ' }\n'
- '}\n'
- )
- clang_toolchain_tmpl = string.Template(
- 'clang_toolchain("clang_${toolchain_name}") {\n'
- ' extra_cflags = "${extra_cflags}"\n'
- ' extra_cppflags = "${extra_cppflags}"\n'
- ' extra_cxxflags = "${extra_cxxflags}"\n'
- ' extra_ldflags = "${extra_ldflags}"\n'
- ' toolchain_args = {\n'
- ' current_cpu = "${current_cpu}"\n'
- ' current_os = "linux"\n'
- ' is_clang = true\n'
- ' use_gold = true\n'
- ' }\n'
- '}\n'
- )
-
- native_toolchain = {
- 'toolchain_name': 'yocto_native',
- 'current_cpu': gn_host_arch_name(d),
- 'cc': d.expand('${BUILD_CC}'),
- 'cxx': d.expand('${BUILD_CXX}'),
- 'ar': d.expand('${BUILD_AR}'),
- 'nm': d.expand('${BUILD_NM}'),
- 'readelf': d.expand('${BUILD_PREFIX}readelf'),
- 'extra_cflags': d.expand('${BUILD_CFLAGS}'),
- 'extra_cppflags': d.expand('${BUILD_CPPFLAGS}'),
- 'extra_cxxflags': d.expand('${BUILD_CXXFLAGS}'),
- 'extra_ldflags': d.expand('${BUILD_LDFLAGS}'),
- }
- target_toolchain = {
- 'toolchain_name': 'yocto_target',
- 'current_cpu': gn_target_arch_name(d),
- 'cc': d.expand('${CC}'),
- 'cxx': d.expand('${CXX}'),
- 'ar': d.expand('${AR}'),
- 'nm': d.expand('${NM}'),
- 'readelf': d.expand('${TARGET_PREFIX}readelf'),
- 'extra_cflags': d.expand('${TARGET_CFLAGS}'),
- 'extra_cppflags': d.expand('${TARGET_CPPFLAGS}'),
- 'extra_cxxflags': d.expand('${TARGET_CXXFLAGS}'),
- 'extra_ldflags': d.expand('${TARGET_LDFLAGS}'),
- 'strip': '',
- }
-
- with open(file_path, 'w') as toolchain_file:
- toolchain_file.write(
- '# This file has been generated automatically.\n'
- '\n'
- 'import("//build/config/sysroot.gni")\n'
- 'import("//build/toolchain/gcc_toolchain.gni")\n'
- '\n'
- )
- toolchain_file.write(gcc_toolchain_tmpl.substitute(native_toolchain))
- toolchain_file.write(gcc_toolchain_tmpl.substitute(target_toolchain))
- toolchain_file.write(clang_toolchain_tmpl.substitute(native_toolchain))
- toolchain_file.write(clang_toolchain_tmpl.substitute(target_toolchain))
diff --git a/meta-agl-profile-graphical-html5/recipes-wam/wam/files/WebAppMgr.env b/meta-agl-profile-graphical-html5/recipes-wam/wam/files/WebAppMgr.env
deleted file mode 100644
index c8ddc5173..000000000
--- a/meta-agl-profile-graphical-html5/recipes-wam/wam/files/WebAppMgr.env
+++ /dev/null
@@ -1,202 +0,0 @@
-##### AGL: not set in WebAppMgr@.service
-#XDG_SESSION_ID="c2"
-
-##### AGL: set by WebAppMgr@.service (depends on user)
-#XDG_RUNTIME_DIR="/run/user/%i"
-
-# Set wam executable file path
-HOOK_SEGV=NO
-WAM_EXE_PATH="/usr/bin/WebAppMgr"
-
-# Set wam name for user-agent
-WAM_NAME="WebAppManager"
-
-# Only allow UTF8 encoding for luna-service messages.
-LS_ENABLE_UTF8=1
-
-# Set effective userid and groupid
-#WAM_UID="wam"
-#WAM_GID="compositor"
-
-# Set location of error page (will follow localization rules based on this path)
-#WAM_ERROR_PAGE="file:///usr/share/localization/wam/loaderror.html"
-
-# suspending javascript execution delay for page visibility
-WAM_SUSPEND_DELAY_IN_MS=250
-
-#if [ -e "etc/wam/make_shm.sh" ] ; then
-# /etc/wam/make_shm.sh
-#fi
-
-# Set user data directory for WebAppMgr
-##### AGL: set by WebAppMgr@.service (depends on user)
-#WAM_DATA_PATH="/home/%i/wamdata"
-
-# ensure that wam data directories exist
-#mkdir -p ${WAM_DATA_PATH}
-
-# set directories permission
-#chown ${WAM_UID}:${WAM_GID} ${WAM_DATA_PATH}
-
-# setup 50 Mb maximum for ApplicationCache
-WAM_APPCACHE_MAXSIZE=52428800
-
-# setup 10 Mb maximum for ApplicationCache per domain
-WAM_APPCACHE_DOMAINLIMIT=10485760
-
-# setup 50 Mb maximum for DiskCache
-WAM_DISKCACHE_MAXSIZE=52428800
-
-# setup 256 Kb maximum for resource buffer allocation
-WAM_RESOURCE_BUFFER_MAX_ALLOC_SIZE=262144
-
-# setup 1 Mb for resource buffer
-WAM_RESOURCE_BUFFER_SIZE=1048576
-
-# setup 200 seconds for watchdog timeout of render process
-WATCHDOG_RENDER_TIMEOUT=200
-
-# setup nubmer of raster threads to 1
-BLINK_NUM_RASTER_THREADS=2
-
-# use default tile width if not sed by recipe
-#if [ "$BLINK_NUM_RASTER_THREADS" = "WEBOS${BLINK_NUM_RASTER_THREADS#WEBOS}" ]; then
-BLINK_NUM_RASTER_THREADS=1
-#fi
-
-# setup 6 Mb maximum for the program GPU cache
-GPU_PROGRAM_CACHE_SIZE=6144
-
-# disable using enyo system app specfic optimization
-# currently used optimizations : inline caching off
-#USE_SYSTEM_APP_OPTIMIZATION="0"
-
-# Set location of NaCl modules
-#CHROMIUM_PATH="/usr/palm/applications/com.lge.app.chromium"
-#NACL_PLUGIN=${CHROMIUM_PATH}"/libppGoogleNaClPluginChrome.so"
-#NACL_IRT_LIBRARY=${CHROMIUM_PATH}"/nacl_irt_arm.nexe"
-#NACL_HELPER=${CHROMIUM_PATH}"/nacl_helper"
-#NACL_HELPER_BOOTSTRAP=${CHROMIUM_PATH}"/nacl_helper_bootstrap"
-
-# Set location of NPAPI plugins for all Apps including default Apps
-# This is for the flash plugin of Signage, webOS TV doesn't use it.
-#PRIVILEGED_PLUGIN_PATH=""
-
-# Set location of NPAPI plugins for NetCast Apps
-# NetCast Apps should access only the plugins in this path
-#NETCAST_PLUGIN_PATH="/usr/lib/BrowserPlugins"
-
-# Set location of NPAPI plugins for HbbTV app.
-#HBBTV_PLUGIN_PATH="/usr/lib/HbbtvPlugins"
-
-# Set InetTV player stored path
-#INETTV_HTML_PLAYER_PATH="/usr/share/inettv/inettv_player/index.html"
-
-# Set location of extra libraries
-#CDM_LIB_PATH="/usr/lib"
-
-# Set location of all NPAPI plugins
-NPAPI_PLUGIN_PATH=${HBBTV_PLUGIN_PATH}":"${NETCAST_PLUGIN_PATH}":"${PRIVILEGED_PLUGIN_PATH}
-
-#if [ -e "etc/wam/make_shm.sh" ] ; then
-# /etc/wam/make_shm.sh
-#fi
-
-# setup 8 Mb minimum codecache capacity
-JSC_minGlobalCodeCacheCapacity=8388608
-
-# Enable more explicit logging of timing with regards to rendering
-# export WAM2_ENABLE_DEBUG_RENDER_TIMING=1
-
-# enable Web Inspector and Tellurium if in developer mode
-TELLURIUM_NUB_PATH=/usr/palm/tellurium/telluriumnub.js
-ENABLE_INSPECTOR=1
-
-# Enable cursor by default
-ENABLE_CURSOR_BY_DEFAULT=1
-
-# Enable launch optimization
-ENABLE_LAUNCH_OPTIMIZATION=1
-
-# Set the duration(seconds) passed from last network activity (e.g. FMP Detector)
-# If set to a positive value, adjust a custom timeout for a network stable timer in FMPDetector
-NETWORK_STABLE_TIMEOUT=3
-
-# please keep it in alphabetical order
-#WAM_EXTRA_FLAGS=""
-#WAM_JS_FLAGS=""
-#WAM_COMMON_SWITCHES=" \
-# --application-cache-domain-limit=$WAM_APPCACHE_DOMAINLIMIT \
-# --application-cache-size=$WAM_APPCACHE_MAXSIZE \
-# --browser-subprocess-path=$WAM_EXE_PATH \
-# --disable-direct-npapi-requests \
-# --disable-extensions \
-# --disable-low-res-tiling \
-# --disable-new-video-renderer \
-# --disk-cache-size=$WAM_DISKCACHE_MAXSIZE \
-# --enable-aggressive-release-policy \
-# --enable-accelerated-plugin-rendering \
-# --accelerated-plugin-rendering-blacklist=device;drmAgent;sound;service \
-# --enable-gpu-rasterization \
-# --disable-gpu-rasterization-for-first-frame \
-# --enable-key-event-throttling \
-# --enable-threaded-compositing \
-# --enable-watchdog \
-# --hide-selection-handles \
-# --ignore-gpu-blacklist \
-# --ignore-netif=p2p \
-# --in-process-gpu \
-# --max-unused-resource-memory-usage-percentage=0 \
-# --network-stable-timeout=$NETWORK_STABLE_TIMEOUT \
-# --noerrdialogs \
-# --num-raster-threads=$BLINK_NUM_RASTER_THREADS \
-# --ozone-platform=wayland \
-# --remote-debugging-port=9998 \
-# --resource-buffer-max-allocation-size=$WAM_RESOURCE_BUFFER_MAX_ALLOC_SIZE \
-# --resource-buffer-size=$WAM_RESOURCE_BUFFER_SIZE \
-# --touch-events=disabled \
-# --ui-disable-opaque-shader-program \
-# --user-agent-suffix=SmartTV \
-# --user-data-dir=$WAM_DATA_PATH \
-# --enable-devtools-experiments \
-# --webos-wam \ "
-
-#WAM_LITE_SWITCHES=" --in-process-zygote "
-
-#export WAM_WEBOS_LITE=NO
-#if [ "${WAM_WEBOS_LITE}" = "YES" ] ; then
-# export WAM_SWITCHES=${WAM_COMMON_SWITCHES}${WAM_LITE_SWITCHES}
-# export SKIA_FONT_CACHE_SIZE=1
-# export SKIA_IMAGE_CACHE_SIZE=40
-# export SKIA_BACKGROUND_FONT_CACHE_SIZE=0
-#else
-# export WAM_SWITCHES=${WAM_COMMON_SWITCHES}
-# export SKIA_FONT_CACHE_SIZE=8
-# export SKIA_IMAGE_CACHE_SIZE=80
-# export SKIA_BACKGROUND_FONT_CACHE_SIZE=512
-#fi
-
-#export WAM_EXTRA_SKIA_CACHE_SWITCHES=" \
-# --skia-font-cache-size-mb=$SKIA_FONT_CACHE_SIZE \
-# --skia-image-cache-size-mb=$SKIA_IMAGE_CACHE_SIZE \
-# --skia-background-font-cache-size-kb=$SKIA_BACKGROUND_FONT_CACHE_SIZE \
-# "
-
-#export WAM_EXTRA_GPU_TUNING_SWITCHES=" \
-# --gpu-program-cache-size-kb=$GPU_PROGRAM_CACHE_SIZE \
-# "
-#export WAM_WATCHDOG_RENDER_TIMEOUT_SWITCHES=" \
-# --watchdog-render-timeout=$WATCHDOG_RENDER_TIMEOUT \
-# "
-
-#WEBOS_LOAD_ACCESSIBILITY_PLUGIN=1
-
-#WAM_V8_CODE_CACHE_SWITCHES=" --enable-local-resource-code-cache --disallow-code-cache-from-file-uris-with-query-string "
-
-# Load any special configuration from plugins
-#if [ -e "/etc/wam/plugins/conf.sh" ] ; then
-# . /etc/wam/plugins/conf.sh || true
-#fi
-
-#exec $WAM_EXE_PATH $WAM_SWITCHES $WAM_EXTRA_SKIA_CACHE_SWITCHES $WAM_EXTRA_GPU_TUNING_SWITCHES $WAM_WATCHDOG_RENDER_TIMEOUT_SWITCHES $WAM_EXTRA_FLAGS $WAM_V8_CODE_CACHE_SWITCHES --js-flags="$WAM_JS_FLAGS"
-
diff --git a/meta-agl-profile-graphical-html5/recipes-wam/wam/files/WebAppMgr@.service b/meta-agl-profile-graphical-html5/recipes-wam/wam/files/WebAppMgr@.service
deleted file mode 100644
index a855bf9f5..000000000
--- a/meta-agl-profile-graphical-html5/recipes-wam/wam/files/WebAppMgr@.service
+++ /dev/null
@@ -1,37 +0,0 @@
-# @@@LICENSE
-#
-# Copyright (c) 2017-2018 LG Electronics, Inc.
-#
-# Confidential computer software. Valid license from LG required for
-# possession, use or copying. Consistent with FAR 12.211 and 12.212,
-# Commercial Computer Software, Computer Software Documentation, and
-# Technical Data for Commercial Items are licensed to the U.S. Government
-# under vendor's standard commercial license.
-#
-# LICENSE@@@
-
-[Unit]
-Description="WebAppMgr is responsible for running web apps and manage their lifecycle"
-After=afm-service-homescreen-service--0.1--main@%i.service weston@display.service
-Wants=afm-service-homescreen-service--0.1--main@%i.service
-BindsTo=weston@display.service
-
-[Service]
-Type=simple
-User=%i
-Slice=user-%i.slice
-SmackProcessLabel=System
-SupplementaryGroups=audio display
-UMask=0077
-CapabilityBoundingSet=
-OOMScoreAdjust=-1000
-EnvironmentFile=-/etc/default/WebAppMgr.env
-Environment=XDG_RUNTIME_DIR=/run/user/%i
-Environment=DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/%i/bus
-Environment=WAM_DATA_PATH="/home/%i/wamdata"
-ExecStart=/usr/bin/WebAppMgr --no-sandbox --in-process-gpu --remote-debugging-port=9998 --user-data-dir="/home/%i/wamdata" --webos-wam
-Restart=on-failure
-RestartSec=50
-
-[Install]
-WantedBy=default.target
diff --git a/meta-agl-profile-graphical-html5/recipes-wam/wam/files/trunc-webapp-roles.patch b/meta-agl-profile-graphical-html5/recipes-wam/wam/files/trunc-webapp-roles.patch
deleted file mode 100644
index 829abe07f..000000000
--- a/meta-agl-profile-graphical-html5/recipes-wam/wam/files/trunc-webapp-roles.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From f31e93261f34abaa3dcdc4959963f5b5a8983002 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Jan-Simon=20M=C3=B6ller?= <jsmoeller@linuxfoundation.org>
-Date: Thu, 25 Jun 2020 19:47:24 +0200
-Subject: [PATCH] Set webapp roles that are max 12 characters long.
-
-From: =?UTF-8?q?Jacobo=20Aragunde=20P=C3=A9rez?= <jaragunde@igalia.com>
-
-This is a workaround for SPEC-3127. To prevent repeated roles as much
-as possible, I'm using the appid as a basis instead of "Webapp-" +
-host + port, which has many chances to be redundant in the first 12
-chars.
-
-Bug-AGL: SPEC-3127
-
----
- src/agl/WebRuntimeAGL.cpp | 10 +++-------
- 1 file changed, 3 insertions(+), 7 deletions(-)
-
-diff --git a/src/agl/WebRuntimeAGL.cpp b/src/agl/WebRuntimeAGL.cpp
-index aed928b..efd2ee4 100644
---- a/src/agl/WebRuntimeAGL.cpp
-+++ b/src/agl/WebRuntimeAGL.cpp
-@@ -274,7 +274,6 @@ int WebAppLauncherRuntime::run(int argc, const char** argv) {
-
- m_id = getAppId(args);
- m_url = getAppUrl(args);
-- m_role = "WebApp";
-
- setup_signals();
-
-@@ -326,15 +325,9 @@ bool WebAppLauncherRuntime::init() {
- if (n != std::string::npos) {
- std::string sport = authority.substr(n+1);
- m_host = authority.substr(0, n);
-- m_role.push_back('-');
-- m_role.append(m_host);
-- m_role.push_back('-');
-- m_role.append(sport);
- m_port = stringTo<int>(sport);
- } else {
- m_host = authority;
-- m_role.push_back('-');
-- m_role.append(m_host);
- }
- }
-
-@@ -375,6 +368,9 @@ bool WebAppLauncherRuntime::init() {
- m_role = "homescreen";
- else if (m_id.rfind("webapps-homescreen", 0) == 0)
- m_role = "homescreen";
-+ else {
-+ m_role = m_id.substr(0,12);
-+ }
-
- LOG_DEBUG("id=[%s], name=[%s], role=[%s], url=[%s], host=[%s], port=%d, token=[%s], width=[%s], height[%s], surface_type[%d], panel_type[%d]",
- m_id.c_str(), m_name.c_str(), m_role.c_str(), m_url.c_str(),
diff --git a/meta-agl-profile-graphical-html5/recipes-wam/wam/wam_git.bb b/meta-agl-profile-graphical-html5/recipes-wam/wam/wam_git.bb
deleted file mode 100644
index d50a14fa0..000000000
--- a/meta-agl-profile-graphical-html5/recipes-wam/wam/wam_git.bb
+++ /dev/null
@@ -1,51 +0,0 @@
-SUMMARY = "WAM"
-AUTHOR = "Jani Hautakangas <jani.hautakangas@lge.com>"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
-
-inherit cmake
-
-DEPENDS = "glib-2.0 jsoncpp boost chromium68 wayland-ivi-extension libhomescreen"
-
-EXTRA_OECMAKE = "\
- -DCMAKE_BUILD_TYPE=Release \
- -DCMAKE_INSTALL_PREFIX=${prefix} \
- -DPLATFORM_NAME=${@'${DISTRO}'.upper().replace('-', '_')} \
- -DCHROMIUM_SRC_DIR=${STAGING_INCDIR}/chromium68"
-
-PR="r0"
-
-PROVIDES += "virtual/webruntime"
-RPROVIDES_${PN} += "virtual/webruntime"
-
-SRC_URI = "\
- git://github.com/igalia/${BPN}.git;branch=WIP@6.agl.compositor;protocol=https \
- file://WebAppMgr@.service \
- file://WebAppMgr.env \
- file://trunc-webapp-roles.patch \
-"
-S = "${WORKDIR}/git"
-SRCREV = "bd650046b688eb1593ae68c16ba3912837507d08"
-
-do_install_append() {
- install -d ${D}${sysconfdir}/wam
- install -v -m 644 ${S}/files/launch/security_policy.conf ${D}${sysconfdir}/wam/security_policy.conf
- install -d ${D}${systemd_system_unitdir}
- install -v -m 644 ${WORKDIR}/WebAppMgr@.service ${D}${systemd_system_unitdir}/WebAppMgr@.service
- install -d ${D}${sysconfdir}/default/
- install -v -m 644 ${WORKDIR}/WebAppMgr.env ${D}${sysconfdir}/default/WebAppMgr.env
- ln -snf WebAppMgr ${D}${bindir}/web-runtime
- install -d ${D}${systemd_system_unitdir}/afm-user-session@.target.wants
- ln -sf ../WebAppMgr@.service ${D}${systemd_system_unitdir}/afm-user-session@.target.wants/
-}
-
-FILES_${PN} += "${sysconfdir}/init ${sysconfdir}/wam ${libdir}/webappmanager/plugins/*.so ${systemd_system_unitdir}"
-
-CXXFLAGS_append_agl-devel = " -DAGL_DEVEL"
-
-do_install_append_agl-devel() {
- # Enable remote inspector and dev mode
- install -d ${D}${localstatedir}/agl-devel/preferences
- touch ${D}${localstatedir}/agl-devel/preferences/debug_system_apps
- touch ${D}${localstatedir}/agl-devel/preferences/devmode_enabled
-}
diff --git a/meta-agl-profile-graphical-qt5/LICENSE b/meta-agl-profile-graphical-qt5/LICENSE
deleted file mode 100644
index e8758f89c..000000000
--- a/meta-agl-profile-graphical-qt5/LICENSE
+++ /dev/null
@@ -1,20 +0,0 @@
-Different components of the AGL layers are under different licenses (a mix
-of MIT and GPLv2). See LICENSE.GPL-2.0-only and LICENSE.MIT for further
-details of the individual licenses.
-
-All metadata (e.g. .bb, .bbappend, .bbclass, .inc, templates/* and similar)
-is MIT licensed unless otherwise stated.
-Source code included in tree for individual recipes (e.g. patches) are under
-the LICENSE stated in the associated recipe (.bb file) unless otherwise stated.
-
-License information for any other files (scripts) is either explicitly stated
-or defaults to GPL version 2 only.
-
-Individual files can contain the following style tags instead of the full
-license text to identify their license:
-
- SPDX-License-Identifier: GPL-2.0-only
- SPDX-License-Identifier: MIT
-
-This enables machine processing of license information based on the SPDX
-License Identifiers that are here available: http://spdx.org/licenses/
diff --git a/meta-agl-profile-graphical-qt5/LICENSE.GPL-2.0-only b/meta-agl-profile-graphical-qt5/LICENSE.GPL-2.0-only
deleted file mode 100644
index 5db3c0a21..000000000
--- a/meta-agl-profile-graphical-qt5/LICENSE.GPL-2.0-only
+++ /dev/null
@@ -1,288 +0,0 @@
- GNU GENERAL PUBLIC LICENSE
- Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users. This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it. (Some other Free Software Foundation software is covered by
-the GNU Lesser General Public License instead.) You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
- To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have. You must make sure that they, too, receive or can get the
-source code. And you must show them these terms so they know their
-rights.
-
- We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
- Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software. If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
- Finally, any free program is threatened constantly by software
-patents. We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary. To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- GNU GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License. The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language. (Hereinafter, translation is included without limitation in
-the term "modification".) Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
- 1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
- 2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) You must cause the modified files to carry prominent notices
- stating that you changed the files and the date of any change.
-
- b) You must cause any work that you distribute or publish, that in
- whole or in part contains or is derived from the Program or any
- part thereof, to be licensed as a whole at no charge to all third
- parties under the terms of this License.
-
- c) If the modified program normally reads commands interactively
- when run, you must cause it, when started running for such
- interactive use in the most ordinary way, to print or display an
- announcement including an appropriate copyright notice and a
- notice that there is no warranty (or else, saying that you provide
- a warranty) and that users may redistribute the program under
- these conditions, and telling the user how to view a copy of this
- License. (Exception: if the Program itself is interactive but
- does not normally print such an announcement, your work based on
- the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
- a) Accompany it with the complete corresponding machine-readable
- source code, which must be distributed under the terms of Sections
- 1 and 2 above on a medium customarily used for software interchange; or,
-
- b) Accompany it with a written offer, valid for at least three
- years, to give any third party, for a charge no more than your
- cost of physically performing source distribution, a complete
- machine-readable copy of the corresponding source code, to be
- distributed under the terms of Sections 1 and 2 above on a medium
- customarily used for software interchange; or,
-
- c) Accompany it with the information you received as to the offer
- to distribute corresponding source code. (This alternative is
- allowed only for noncommercial distribution and only if you
- received the program in object code or executable form with such
- an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it. For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable. However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License. Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
- 5. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Program or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
- 6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
- 7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all. For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded. In such case, this License incorporates
-the limitation as if written in the body of this License.
-
- 9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation. If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
- 10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission. For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this. Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
- NO WARRANTY
-
- 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
- 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
-Note:
-Individual files contain the following tag instead of the full license text.
-
- SPDX-License-Identifier: GPL-2.0-only
-
-This enables machine processing of license information based on the SPDX
-License Identifiers that are here available: http://spdx.org/licenses/
diff --git a/meta-agl-profile-graphical-qt5/LICENSE.MIT b/meta-agl-profile-graphical-qt5/LICENSE.MIT
deleted file mode 100644
index a6919eb7e..000000000
--- a/meta-agl-profile-graphical-qt5/LICENSE.MIT
+++ /dev/null
@@ -1,25 +0,0 @@
-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 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.
-
-Note:
-Individual files contain the following tag instead of the full license text.
-
- SPDX-License-Identifier: MIT
-
-This enables machine processing of license information based on the SPDX
-License Identifiers that are here available: http://spdx.org/licenses/
diff --git a/meta-agl-profile-graphical-qt5/conf/layer.conf b/meta-agl-profile-graphical-qt5/conf/layer.conf
deleted file mode 100644
index ef39630d8..000000000
--- a/meta-agl-profile-graphical-qt5/conf/layer.conf
+++ /dev/null
@@ -1,12 +0,0 @@
-# We have a conf and classes directory, add to BBPATH
-BBPATH =. "${LAYERDIR}:"
-
-# We have recipes-* directories, add to BBFILES
-BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
- ${LAYERDIR}/recipes-*/*/*.bbappend"
-
-BBFILE_COLLECTIONS += "aglprofilegraphicalqt5"
-BBFILE_PATTERN_aglprofilegraphicalqt5 = "^${LAYERDIR}/"
-BBFILE_PRIORITY_aglprofilegraphicalqt5 = "70"
-
-LAYERSERIES_COMPAT_aglprofilegraphicalqt5 = "dunfell"
diff --git a/meta-agl-profile-graphical-qt5/recipes-platform/images/agl-image-graphical-qt5-crosssdk.bb b/meta-agl-profile-graphical-qt5/recipes-platform/images/agl-image-graphical-qt5-crosssdk.bb
deleted file mode 100755
index 5147ea44a..000000000
--- a/meta-agl-profile-graphical-qt5/recipes-platform/images/agl-image-graphical-qt5-crosssdk.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "Cross SDK of Full AGL Distribution for IVI profile"
-
-DESCRIPTION = "SDK image for full AGL Distribution for IVI profile. \
-It includes the full meta-toolchain, plus developement headers and libraries \
-to form a standalone cross SDK."
-
-require agl-image-graphical-qt5.bb
-
-LICENSE = "MIT"
-
-require agl-image-graphical-qt5-crosssdk.inc
-
-inherit populate_sdk populate_sdk_qt5
-
-# Task do_populate_sdk and do_rootfs can't be exec simultaneously.
-# Both exec "createrepo" on the same directory, and so one of them
-# can failed (randomly).
-addtask do_populate_sdk after do_rootfs
diff --git a/meta-agl-profile-graphical-qt5/recipes-platform/images/agl-image-graphical-qt5-crosssdk.inc b/meta-agl-profile-graphical-qt5/recipes-platform/images/agl-image-graphical-qt5-crosssdk.inc
deleted file mode 100644
index f43bb07d7..000000000
--- a/meta-agl-profile-graphical-qt5/recipes-platform/images/agl-image-graphical-qt5-crosssdk.inc
+++ /dev/null
@@ -1,14 +0,0 @@
-require recipes-platform/images/agl-image-minimal-crosssdk.inc
-
-TOOLCHAIN_TARGET_TASK += "libafb-helpers-qt-staticdev"
-
-# Add wayland-scanner to SDK (SPEC-945)
-# Use TOOLCHAIN_HOST_TASK instead of adding to the packagegroup
-# wayland-scanner is in nativesdk-wayland-dev !
-# option: add also nativesdk-qtwayland-tools
-TOOLCHAIN_HOST_TASK_append = " nativesdk-wayland nativesdk-wayland-dev"
-
-TOOLCHAIN_HOST_TASK_append = " nativesdk-perl-modules "
-
-# Add qtwaylandscanner to the SDK
-TOOLCHAIN_HOST_TASK_append = " nativesdk-qtwayland-tools "
diff --git a/meta-agl-profile-graphical-qt5/recipes-platform/images/agl-image-graphical-qt5.bb b/meta-agl-profile-graphical-qt5/recipes-platform/images/agl-image-graphical-qt5.bb
deleted file mode 100644
index bcfd724fa..000000000
--- a/meta-agl-profile-graphical-qt5/recipes-platform/images/agl-image-graphical-qt5.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-SUMMARY = "A very basic Wayland image with a terminal"
-
-require agl-image-graphical-qt5.inc
-
-LICENSE = "MIT"
diff --git a/meta-agl-profile-graphical-qt5/recipes-platform/images/agl-image-graphical-qt5.inc b/meta-agl-profile-graphical-qt5/recipes-platform/images/agl-image-graphical-qt5.inc
deleted file mode 100644
index 114d06a07..000000000
--- a/meta-agl-profile-graphical-qt5/recipes-platform/images/agl-image-graphical-qt5.inc
+++ /dev/null
@@ -1 +0,0 @@
-require recipes-platform/images/agl-image-weston.inc
diff --git a/meta-agl-profile-graphical-qt5/recipes-platform/packagegroups/packagegroup-agl-appfw-native-qt5.bb b/meta-agl-profile-graphical-qt5/recipes-platform/packagegroups/packagegroup-agl-appfw-native-qt5.bb
deleted file mode 100644
index a05d69f53..000000000
--- a/meta-agl-profile-graphical-qt5/recipes-platform/packagegroups/packagegroup-agl-appfw-native-qt5.bb
+++ /dev/null
@@ -1,29 +0,0 @@
-SUMMARY = "Qt5 for native GUI framework of AGL IVI profile"
-DESCRIPTION = "A set of Qt5 packages which required by Native App Fw Subsystem"
-
-LICENSE = "MIT"
-
-inherit packagegroup
-
-PACKAGES = "\
- packagegroup-agl-appfw-native-qt5 \
- "
-
-ALLOW_EMPTY_${PN} = "1"
-
-RDEPENDS_${PN} += "\
- qtbase \
- qtbase-dev \
- qtbase-plugins \
- qtbase-staticdev \
- qtbase-tools \
- qtdeclarative \
- qtdeclarative-qmlplugins \
- qtdeclarative-tools \
- qtcharts \
- qtwayland \
- qtwayland-plugins \
- qtwayland-tools \
- qtgraphicaleffects-qmlplugins \
- qtvirtualkeyboard \
- "
diff --git a/meta-agl-profile-graphical-qt5/recipes-platform/packagegroups/packagegroup-agl-demo-qt-examples.bb b/meta-agl-profile-graphical-qt5/recipes-platform/packagegroups/packagegroup-agl-demo-qt-examples.bb
deleted file mode 100644
index adebabe76..000000000
--- a/meta-agl-profile-graphical-qt5/recipes-platform/packagegroups/packagegroup-agl-demo-qt-examples.bb
+++ /dev/null
@@ -1,26 +0,0 @@
-SUMMARY = "The examples to test Qt5 on AGL Demo Platform"
-DESCRIPTION = "A set of packages which contains Qt5 examples"
-
-LICENSE = "MIT"
-
-inherit packagegroup
-
-PACKAGES = "\
- packagegroup-agl-demo-qt-examples \
- "
-
-ALLOW_EMPTY_${PN} = "1"
-
-RDEPENDS_${PN} += "\
- qt3d-examples \
- qtbase-examples \
- qtconnectivity-examples \
- qtdeclarative-examples \
- qtlocation-examples \
- qtmultimedia-examples \
- qtsensors-examples \
- qtsystems-examples \
- qttools-examples \
- qtwayland-examples \
- qtxmlpatterns-examples \
- "
diff --git a/meta-agl-profile-graphical-qt5/recipes-platform/packagegroups/packagegroup-agl-profile-graphical-qt5.bb b/meta-agl-profile-graphical-qt5/recipes-platform/packagegroups/packagegroup-agl-profile-graphical-qt5.bb
deleted file mode 100644
index 74b35f70a..000000000
--- a/meta-agl-profile-graphical-qt5/recipes-platform/packagegroups/packagegroup-agl-profile-graphical-qt5.bb
+++ /dev/null
@@ -1,23 +0,0 @@
-SUMMARY = "The middlewares for AGL IVI profile"
-DESCRIPTION = "The set of packages required for AGL Distribution"
-LICENSE = "MIT"
-
-inherit packagegroup
-
-PACKAGES = "\
- packagegroup-agl-profile-graphical-qt5 \
- profile-graphical-qt5 \
- "
-
-ALLOW_EMPTY_${PN} = "1"
-
-RDEPENDS_${PN} += "\
- packagegroup-agl-profile-graphical \
- packagegroup-agl-appfw-native-qt5 \
-"
-
-RDEPENDS_${PN} += "\
- agl-login-manager \
- "
-
-RDEPENDS_profile-graphical-qt5 = "${PN}"
diff --git a/meta-agl-profile-graphical-qt5/recipes-platform/packagegroups/packagegroup-qt5-toolchain-target.bbappend b/meta-agl-profile-graphical-qt5/recipes-platform/packagegroups/packagegroup-qt5-toolchain-target.bbappend
deleted file mode 100644
index 08afa6c7f..000000000
--- a/meta-agl-profile-graphical-qt5/recipes-platform/packagegroups/packagegroup-qt5-toolchain-target.bbappend
+++ /dev/null
@@ -1,18 +0,0 @@
-# add missing dependencies for SDK
-
-RDEPENDS_${PN} += " \
- qttools-plugins \
- qtquickcontrols-dev \
- qtquickcontrols-qmlplugins \
- qtquickcontrols2-dev \
- qtquickcontrols2-mkspecs \
- qtquickcontrols2-qmlplugins \
-"
-
-# remove dependency on qtwebkit (still added to SDK by packagegroup-qt5-toolchain-target)
-# see SPEC-1159
-RDEPENDS_${PN}_remove = " \
- qtwebkit-dev \
- qtwebkit-mkspecs \
- qtwebkit-qmlplugins \
-"
diff --git a/meta-agl-profile-graphical-qt5/recipes-qt/qlibhomescreen/qlibhomescreen_git.bb b/meta-agl-profile-graphical-qt5/recipes-qt/qlibhomescreen/qlibhomescreen_git.bb
deleted file mode 100644
index 09a262eb7..000000000
--- a/meta-agl-profile-graphical-qt5/recipes-qt/qlibhomescreen/qlibhomescreen_git.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-SUMMARY = "A wrapper library of libhomescreen for Qt Application in AGL"
-SECTION = "libs"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=2ee41112a44fe7014dce33e26468ba93"
-
-DEPENDS = "qtbase libhomescreen"
-RDEPENDS_${PN} = "libhomescreen"
-
-inherit qmake5
-
-SRC_URI = "git://gerrit.automotivelinux.org/gerrit/src/libqthomescreen.git;protocol=https;branch=${AGL_BRANCH}"
-SRCREV = "b218476402bceda7eb42d41064552a7261ff3205"
-S = "${WORKDIR}/git"
diff --git a/meta-agl-profile-graphical-qt5/recipes-qt/qml-execscript-plugin/qml-execscript-plugin_1.0.bb b/meta-agl-profile-graphical-qt5/recipes-qt/qml-execscript-plugin/qml-execscript-plugin_1.0.bb
deleted file mode 100644
index dbeda2d11..000000000
--- a/meta-agl-profile-graphical-qt5/recipes-qt/qml-execscript-plugin/qml-execscript-plugin_1.0.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-SUMMARY = "Execute Script QML plugin"
-DESCRIPTION = "This provides a simple QML plugin able to execute script file."
-
-LICENSE = "CLOSED"
-
-DEPENDS = "qtbase-native qtdeclarative"
-
-SRC_URI = "git://github.com/ntanibata/qml-execscript-plugin.git;protocol=git;"
-SRCREV = "1f05c44cccd8aef485d8df8206c8df4e5ad6f310"
-S = "${WORKDIR}/git"
-
-inherit qmake5
-
-EXTRA_OECONF = "--with-moc-dir=${STAGING_BINDIR_NATIVE}/qt5"
-QML_LIBDIR = "${libdir}/qt5/qml"
-
-do_install() {
- install -d ${D}${libdir}/qt5/qml/execScript/
- install -m 0755 execScript/*.so ${D}${libdir}/qt5/qml/execScript/
- install -m 0644 ../git/execScript/qmldir ${D}${libdir}/qt5/qml/execScript/
-}
-
-FILES_${PN} += "${QML_LIBDIR}/execScript/libexecscriptplugin.so"
-FILES_${PN} += "${QML_LIBDIR}/execScript/qmldir"
-FILES_${PN}-dbg += "${QML_LIBDIR}/execScript/.debug"
diff --git a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtbase-native_git.bbappend b/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtbase-native_git.bbappend
deleted file mode 100644
index b7cfe8dce..000000000
--- a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtbase-native_git.bbappend
+++ /dev/null
@@ -1,3 +0,0 @@
-# Backport this fix from meta-qt5:
-# https://github.com/meta-qt5/meta-qt5/commit/bf7cdd963008f2d61bc4c324fff2bfafe511fb5f
-SRC_URI_remove = "file://0012-qdbuscpp2xml.pro-do-not-build-with-bootstrapped-depe.patch"
diff --git a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtbase/0001-Force-qdbus-to-make-introspect-for-every-findMetaObj.patch b/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtbase/0001-Force-qdbus-to-make-introspect-for-every-findMetaObj.patch
deleted file mode 100644
index 10a1ddd88..000000000
--- a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtbase/0001-Force-qdbus-to-make-introspect-for-every-findMetaObj.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From a4943bb5c7fdf5eb297223d2c3bb02d2271bea48 Mon Sep 17 00:00:00 2001
-From: Risto Avila <risto.avila@theqtcompany.com>
-Date: Thu, 17 Dec 2015 04:22:53 +0200
-Subject: [PATCH] Force qdbus to make introspect for every findMetaObject
-
----
- src/dbus/qdbusintegrator.cpp | 7 +++++--
- 1 file changed, 5 insertions(+), 2 deletions(-)
-
-diff --git a/src/dbus/qdbusintegrator.cpp b/src/dbus/qdbusintegrator.cpp
-index cce8b9c..ae2a9dc 100644
---- a/src/dbus/qdbusintegrator.cpp
-+++ b/src/dbus/qdbusintegrator.cpp
-@@ -2512,8 +2512,11 @@ QDBusConnectionPrivate::findMetaObject(const QString &service, const QString &pa
- if (!interface.isEmpty()) {
- QDBusReadLocker locker(FindMetaObject1Action, this);
- QDBusMetaObject *mo = cachedMetaObjects.value(interface, 0);
-- if (mo)
-- return mo;
-+ if (mo) {
-+ // service is not unique. Remove cached object to force introspect
-+ cachedMetaObjects.remove(interface);
-+ delete mo;
-+ }
- }
-
- // introspect the target object
---
-1.9.1
-
diff --git a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtbase_%.bbappend b/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtbase_%.bbappend
deleted file mode 100644
index e939fa35a..000000000
--- a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtbase_%.bbappend
+++ /dev/null
@@ -1,12 +0,0 @@
-FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
-
-PACKAGECONFIG_WAYLAND = "${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', '', d)}"
-PACKAGECONFIG_GL = "${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'gles2', '', d)}"
-PACKAGECONFIG_append = " ${PACKAGECONFIG_WAYLAND} icu accessibility"
-PACKAGECONFIG_append = " fontconfig"
-PACKAGECONFIG_append = " sql-sqlite"
-
-EXTRA_OECONF_append = ""
-
-# '-qpa wayland-egl' set wayland-egl as default of platform plagins
-PACKAGECONFIG[wayland]="-qpa wayland-egl -no-qpa-platform-guard"
diff --git a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtlocation/0001-mapbox-update-API-url-to-match-new-schema.patch b/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtlocation/0001-mapbox-update-API-url-to-match-new-schema.patch
deleted file mode 100644
index ba8a991ed..000000000
--- a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtlocation/0001-mapbox-update-API-url-to-match-new-schema.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From 58197439eade86e7efc6fe98116c0092ea429d29 Mon Sep 17 00:00:00 2001
-From: Matt Ranostay <matt.ranostay@konsulko.com>
-Date: Tue, 10 Mar 2020 13:59:58 -0700
-Subject: [PATCH] mapbox: update API url to match new schema
-
----
- src/plugins/geoservices/mapbox/qgeotilefetchermapbox.cpp | 7 ++++---
- src/plugins/geoservices/mapbox/qmapboxcommon.h | 2 +-
- 2 files changed, 5 insertions(+), 4 deletions(-)
-
-diff --git a/src/plugins/geoservices/mapbox/qgeotilefetchermapbox.cpp b/src/plugins/geoservices/mapbox/qgeotilefetchermapbox.cpp
-index 0b128556..bd2be6b6 100644
---- a/src/plugins/geoservices/mapbox/qgeotilefetchermapbox.cpp
-+++ b/src/plugins/geoservices/mapbox/qgeotilefetchermapbox.cpp
-@@ -88,12 +88,13 @@ QGeoTiledMapReply *QGeoTileFetcherMapbox::getTileImage(const QGeoTileSpec &spec)
- request.setRawHeader("User-Agent", m_userAgent);
-
- request.setUrl(QUrl(mapboxTilesApiPath +
-- ((spec.mapId() >= m_mapIds.size()) ? QStringLiteral("mapbox.streets") : m_mapIds[spec.mapId() - 1]) + QLatin1Char('/') +
-+ m_mapIds[m_mapIds.size() - 1] +
-+ QStringLiteral("/tiles/256/") +
- QString::number(spec.zoom()) + QLatin1Char('/') +
- QString::number(spec.x()) + QLatin1Char('/') +
- QString::number(spec.y()) +
-- ((m_scaleFactor > 1) ? (QLatin1Char('@') + QString::number(m_scaleFactor) + QLatin1String("x.")) : QLatin1String(".")) +
-- m_format + QLatin1Char('?') +
-+ ((m_scaleFactor > 1) ? (QLatin1Char('@') + QString::number(m_scaleFactor) + QLatin1String("x")) : QLatin1String("")) +
-+ QLatin1Char('?') +
- QStringLiteral("access_token=") + m_accessToken));
-
- QNetworkReply *reply = m_networkManager->get(request);
-diff --git a/src/plugins/geoservices/mapbox/qmapboxcommon.h b/src/plugins/geoservices/mapbox/qmapboxcommon.h
-index e60c4e83..4b2ea98d 100644
---- a/src/plugins/geoservices/mapbox/qmapboxcommon.h
-+++ b/src/plugins/geoservices/mapbox/qmapboxcommon.h
-@@ -46,7 +46,7 @@
-
- QT_BEGIN_NAMESPACE
-
--static const QString mapboxTilesApiPath = QStringLiteral("http://api.tiles.mapbox.com/v4/");
-+static const QString mapboxTilesApiPath = QStringLiteral("https://api.mapbox.com/");
-
- // https://www.mapbox.com/api-documentation/#geocoding
- static const QString mapboxGeocodingApiPath = QStringLiteral("https://api.mapbox.com/geocoding/v5/mapbox.places/");
---
-2.25.0
-
diff --git a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtlocation_%.bbappend b/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtlocation_%.bbappend
deleted file mode 100644
index bcda6a1e5..000000000
--- a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtlocation_%.bbappend
+++ /dev/null
@@ -1,14 +0,0 @@
-FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
-
-SRC_URI += "\
- file://0001-mapbox-update-API-url-to-match-new-schema.patch \
- "
-
-# Need to explicitly enable the various plugins
-PACKAGECONFIG += " \
- geoservices_osm \
- geoservices_here \
- geoservices_itemsoverlay \
- geoservices_mapbox \
- geoservices_mapboxgl \
-"
diff --git a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtmultimedia/0001-metadata-image-support-with-the-data-URL-scheme-for-.patch b/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtmultimedia/0001-metadata-image-support-with-the-data-URL-scheme-for-.patch
deleted file mode 100644
index 007e46763..000000000
--- a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtmultimedia/0001-metadata-image-support-with-the-data-URL-scheme-for-.patch
+++ /dev/null
@@ -1,80 +0,0 @@
-From ed61f1d932c5c6d38458fcd2e1d5d154383f017e Mon Sep 17 00:00:00 2001
-From: Tasuku Suzuki <tasuku.suzuki@qt.io>
-Date: Mon, 12 Dec 2016 16:32:47 +0900
-Subject: [PATCH] metadata image support with the "data" URL scheme for QtQuick
-
-add posterImage, coverArtImage and thumbnailImage to metadata
-
-Change-Id: I10b9bae10c219ffa41506d6e6b345020790217a6
----
- .../multimedia/qdeclarativemediametadata_p.h | 33 ++++++++++++++++++++++
- 1 file changed, 33 insertions(+)
-
-diff --git a/src/imports/multimedia/qdeclarativemediametadata_p.h b/src/imports/multimedia/qdeclarativemediametadata_p.h
-index ede7f87..6a6a815 100644
---- a/src/imports/multimedia/qdeclarativemediametadata_p.h
-+++ b/src/imports/multimedia/qdeclarativemediametadata_p.h
-@@ -51,6 +51,9 @@
- // We mean it.
- //
-
-+#include <QtCore/QBuffer>
-+#include <QtGui/QImage>
-+#include <QtGui/QImageWriter>
- #include <QtQml/qqml.h>
- #include <QtMultimedia/qmediametadata.h>
- #include <QtMultimedia/qmediaservice.h>
-@@ -153,6 +156,9 @@ class QDeclarativeMediaMetaData : public QObject
- Q_PROPERTY(QVariant gpsProcessingMethod READ gpsProcessingMethod WRITE setGPSProcessingMethod NOTIFY metaDataChanged)
- Q_PROPERTY(QVariant gpsAreaInformation READ gpsAreaInformation WRITE setGPSAreaInformation NOTIFY metaDataChanged)
-
-+ Q_PROPERTY(QVariant posterImage READ posterImage NOTIFY metaDataChanged)
-+ Q_PROPERTY(QVariant coverArtImage READ coverArtImage NOTIFY metaDataChanged)
-+ Q_PROPERTY(QVariant thumbnailImage READ thumbnailImage NOTIFY metaDataChanged)
- public:
- QDeclarativeMediaMetaData(QMediaObject *player, QObject *parent = 0)
- : QObject(parent)
-@@ -425,6 +431,16 @@ QT_WARNING_POP
- void setGPSAreaInformation(const QVariant &information) {
- setMetaData(QMediaMetaData::GPSAreaInformation, information); }
-
-+ QVariant posterImage() const {
-+ return convertImageToUrl(m_mediaObject->metaData(QMediaMetaData::PosterImage));
-+ }
-+ QVariant coverArtImage() const {
-+ return convertImageToUrl(m_mediaObject->metaData(QMediaMetaData::CoverArtImage));
-+ }
-+ QVariant thumbnailImage() const {
-+ return convertImageToUrl(m_mediaObject->metaData(QMediaMetaData::ThumbnailImage));
-+ }
-+
- Q_SIGNALS:
- void metaDataChanged();
-
-@@ -440,6 +456,23 @@ private:
- m_writerControl->setMetaData(key, value);
- }
-
-+ QUrl convertImageToUrl(const QVariant &variant) const
-+ {
-+ if (variant.type() != QVariant::Image)
-+ return QUrl();
-+
-+ QImage image = variant.value<QImage>();
-+ QByteArray data;
-+ QBuffer buffer(&data);
-+ buffer.open(QBuffer::WriteOnly);
-+ QImageWriter png(&buffer, "png");
-+ if (!png.write(image)) {
-+ return QUrl();
-+ }
-+ buffer.close();
-+ return QUrl(QStringLiteral("data:image/png;base64,") + data.toBase64());
-+ }
-+
- QMediaObject *m_mediaObject;
- QMetaDataWriterControl *m_writerControl;
- bool m_requestedWriterControl;
---
-2.7.4
-
diff --git a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtmultimedia_%.bbappend b/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtmultimedia_%.bbappend
deleted file mode 100644
index a06ac2d89..000000000
--- a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtmultimedia_%.bbappend
+++ /dev/null
@@ -1,7 +0,0 @@
-FILESEXTRAPATHS_append := ":${THISDIR}/${PN}"
-
-PACKAGECONFIG_append = " gstreamer"
-
-SRC_URI_append = " \
- file://0001-metadata-image-support-with-the-data-URL-scheme-for-.patch \
- "
diff --git a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtsystems_%.bbappend b/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtsystems_%.bbappend
deleted file mode 100644
index 550c58d05..000000000
--- a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtsystems_%.bbappend
+++ /dev/null
@@ -1,3 +0,0 @@
-DEPENDS_remove = "bluez4"
-# currently Qt5 does not support bluez5 "Nothing PROVIDES 'gconfbluez5'"
-#DEPENDS_append = "bluez5"
diff --git a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland-config/qtwayland b/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland-config/qtwayland
deleted file mode 100644
index a371c6c4e..000000000
--- a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland-config/qtwayland
+++ /dev/null
@@ -1,12 +0,0 @@
-QT_WAYLAND_SHELL_INTEGRATION=@QT_WAYLAND_DEFAULT_SHELL@
-# The following might be necessary when multiple/split surfaces are created.
-# Without this, QtWayland will sometimes maintain the same/old size even if the
-# split surface is destroyed.
-# We keep it disabled by default as it causes an additional repaint of the
-# surface until the compositor sends a configure event to scale the window to
-# the actual area. Typical windows will, by default, have an initial size set
-# by qtwayland when starting-up (without an explicit size specified by the
-# application).
-# Note that QtWayland will only test the presence of the environment variable
-# so it will be enabled even if set to 0
-# QT_WAYLAND_RESIZE_AFTER_SWAP=1
diff --git a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland-config_1.0.0.bb b/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland-config_1.0.0.bb
deleted file mode 100644
index ae7c956d4..000000000
--- a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland-config_1.0.0.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "QtWayland config file."
-DESCRIPTION = "Config file for qtwayland."
-SECTION = "apps"
-LICENSE = "MIT"
-
-LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
-
-SRC_URI = "file://qtwayland"
-
-inherit allarch
-
-QTWAYLAND_DEFAULT_SHELL ?= "xdg-shell"
-
-do_compile[noexec] = "1"
-
-do_install () {
- install -D -m 644 ${WORKDIR}/qtwayland ${D}${sysconfdir}/afm/unit.env.d/qtwayland
- sed -i -e 's/@QT_WAYLAND_DEFAULT_SHELL@/${QTWAYLAND_DEFAULT_SHELL}/' ${D}${sysconfdir}/afm/unit.env.d/qtwayland
-}
-
-RPROVIDES_${PN} += "virtual/qtwayland-config"
diff --git a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland/0001-protocol-update-3rd-party-ivi-application-protocol.patch b/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland/0001-protocol-update-3rd-party-ivi-application-protocol.patch
deleted file mode 100644
index c91e11704..000000000
--- a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland/0001-protocol-update-3rd-party-ivi-application-protocol.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From 8caaf802a8b42e9bb1d74fc335a571882c75d73e Mon Sep 17 00:00:00 2001
-From: Holger Behrens <holger.behrens@windriver.com>
-Date: Tue, 3 Feb 2015 09:52:52 +0100
-Subject: [meta-ivi-demo][PATCH 1/2] protocol: update 3rd party ivi-application
- protocol
-
-Signed-off-by: Holger Behrens <holger.behrens@windriver.com>
----
- src/3rdparty/protocol/ivi-application.xml | 31 +++----------------------------
- 1 file changed, 3 insertions(+), 28 deletions(-)
-
-diff --git a/src/3rdparty/protocol/ivi-application.xml b/src/3rdparty/protocol/ivi-application.xml
-index 833fd38..b06ae6c 100644
---- a/src/3rdparty/protocol/ivi-application.xml
-+++ b/src/3rdparty/protocol/ivi-application.xml
-@@ -42,34 +42,9 @@
- <arg name="visibility" type="int"/>
- </event>
-
-- <enum name="warning_code">
-- <description summary="possible warning codes returned by ivi compositor">
-- These define all possible warning codes returned by ivi compositor on server-side warnings.
-- invalid_wl_surface:
-- - wl_surface already has a another role.
-- - wl_surface is destroyed before the ivi_surface is destroyed.
-- ivi_id_in_use: ivi_id is already assigned by another application.
-- </description>
-- <entry name="invalid_wl_surface" value="1" summary="wl_surface is invalid"/>
-- <entry name="ivi_id_in_use" value="2" summary="ivi_id is in use and can not be shared"/>
-- </enum>
--
-- <event name="warning">
-- <description summary="server-side warning detected">
-- The ivi compositor encountered warning while processing a request by this
-- application. The warning is defined by argument warning_code and optional
-- warning_text. If the warning is detected, client shall destroy the ivi_surface
-- object.
--
-- When a warning event is sent, the compositor turns the ivi_surface object inert.
-- The ivi_surface will not deliver further events, all requests on it are ignored
-- except 'destroy', and the association to the ivi_id is removed. The client
-- should destroy the ivi_surface object. If an inert ivi_surface object is used as
-- an argument to any other object's request, that request will [produce a fatal
-- error / produce a warning / be ignored].
-- </description>
-- <arg name="warning_code" type="int"/>
-- <arg name="warning_text" type="string" allow-null="true"/>
-+ <event name="configure">
-+ <arg name="width" type="int"/>
-+ <arg name="height" type="int"/>
- </event>
-
- </interface>
---
-2.2.1
-
diff --git a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland/0002-qwaylandwindow-add-support-for-IVI-Surface-ID-proper.patch b/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland/0002-qwaylandwindow-add-support-for-IVI-Surface-ID-proper.patch
deleted file mode 100644
index 591ef71c5..000000000
--- a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland/0002-qwaylandwindow-add-support-for-IVI-Surface-ID-proper.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 31c60aedf415fd06b5c1aa16fdcef1504b67b96d Mon Sep 17 00:00:00 2001
-From: Holger Behrens <holger.behrens@windriver.com>
-Date: Tue, 3 Feb 2015 09:53:43 +0100
-Subject: [meta-ivi-demo][PATCH 2/2] qwaylandwindow: add support for
- IVI-Surface-ID property
-
-Signed-off-by: Holger Behrens <holger.behrens@windriver.com>
----
- src/client/qwaylandwindow.cpp | 9 ++++++++-
- 1 file changed, 8 insertions(+), 1 deletion(-)
-
-diff --git a/src/client/qwaylandwindow.cpp b/src/client/qwaylandwindow.cpp
-index 45a58f2..781081a 100644
---- a/src/client/qwaylandwindow.cpp
-+++ b/src/client/qwaylandwindow.cpp
-@@ -100,7 +100,14 @@ QWaylandWindow::QWaylandWindow(QWindow *window)
-
- if (!(window->flags() & Qt::BypassWindowManagerHint)) {
- if (mDisplay->shellIvi()) {
-- mShellSurface = new QWaylandIviSurface(mDisplay->shellIvi()->surface_create(IVI_SURFACE_ID + getpid(), object()), this);
-+ unsigned int id = 0;
-+ QVariant value = window->property("IVI-Surface-ID");
-+ if (value.isValid()) {
-+ id = value.toUInt();
-+ } else {
-+ id = IVI_SURFACE_ID + getpid();
-+ }
-+ mShellSurface = new QWaylandIviSurface(mDisplay->shellIvi()->surface_create(id, object()), this);
- } else if (mDisplay->shellXdg()) {
- if (window->type() & Qt::Window) {
- mShellSurface = new QWaylandXdgSurface(mDisplay->shellXdg()->get_xdg_surface(object()), this);
---
-2.2.1
-
diff --git a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland/0010-Added-manifest-file-according-to-smack-3-domain-mode.patch b/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland/0010-Added-manifest-file-according-to-smack-3-domain-mode.patch
deleted file mode 100644
index 39296c769..000000000
--- a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland/0010-Added-manifest-file-according-to-smack-3-domain-mode.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-Add qt5wayland.manifest. Removed specfile change from patch.
-
-Adapted from:
-
-From 424c23191d81b072255bd7f178ad0ee2c2ea091a Mon Sep 17 00:00:00 2001
-From: Tomasz Olszak <olszak.tomasz@gmail.com>
-Date: Fri, 25 Apr 2014 14:32:22 +0200
-Subject: [PATCH 10/21] Added manifest file according to smack 3-domain model.
-
-Bug-Tizen:TIVI-2416
-
-Change-Id: I414e245a5c8847bec32ef6a97569d0f06221e1db
-Signed-off-by: Tomasz Olszak <olszak.tomasz@gmail.com>
----
- packaging/qt5-qtwayland.manifest | 5 +++++
- packaging/qt5-qtwayland.spec | 4 ++++
- 2 files changed, 9 insertions(+)
- create mode 100644 packaging/qt5-qtwayland.manifest
-
-diff --git a/packaging/qt5-qtwayland.manifest b/packaging/qt5-qtwayland.manifest
-new file mode 100644
-index 0000000..75b0fa5
---- /dev/null
-+++ b/packaging/qt5-qtwayland.manifest
-@@ -0,0 +1,5 @@
-+<manifest>
-+ <request>
-+ <domain name="_"/>
-+ </request>
-+</manifest>
---
-1.9.1
-
diff --git a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland/0016-xdg-shell-Add-xdg-shell-protocol-file-version-1.4.0.patch b/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland/0016-xdg-shell-Add-xdg-shell-protocol-file-version-1.4.0.patch
deleted file mode 100644
index 6bea62621..000000000
--- a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland/0016-xdg-shell-Add-xdg-shell-protocol-file-version-1.4.0.patch
+++ /dev/null
@@ -1,468 +0,0 @@
-From 5cd43dc7519f54f9786fb6c686a2ce1e682d4366 Mon Sep 17 00:00:00 2001
-From: Philippe Coval <philippe.coval@open.eurogiciel.org>
-Date: Fri, 25 Apr 2014 10:31:42 +0200
-Subject: [PATCH 16/21] xdg-shell: Add xdg-shell protocol file version 1.4.0
-
-Source: http://cgit.freedesktop.org/wayland/weston/plain/protocol/xdg-shell.xml?id=1.4.0
-
-This file will need to be refreshed on protocol update
-until xdg-shell land in wayland's public headers
-
-Task-number: QTBUG-38633/part/1of2
-Change-Id: I397d863dcfc2223ac6eb234c37dbcd7449ecffff
-Reviewed-by: Giulio Camuffo <giulio.camuffo@jollamobile.com>
-Origin: https://www.qt.gitorious.org/qt/qtwayland/commit/c2a22eea6716e073875474adf624d8463eba836c
-Bug-Tizen: TIVI-3113/part
-Signed-off-by: Philippe Coval <philippe.coval@open.eurogiciel.org>
----
- src/3rdparty/protocol/xdg-shell.xml | 438 ++++++++++++++++++++++++++++++++++++
- 1 file changed, 438 insertions(+)
- create mode 100644 src/3rdparty/protocol/xdg-shell.xml
-
-diff --git a/src/3rdparty/protocol/xdg-shell.xml b/src/3rdparty/protocol/xdg-shell.xml
-new file mode 100644
-index 0000000..4e5cff8
---- /dev/null
-+++ b/src/3rdparty/protocol/xdg-shell.xml
-@@ -0,0 +1,438 @@
-+<?xml version="1.0" encoding="UTF-8"?>
-+<protocol name="xdg_shell">
-+
-+ <copyright>
-+ Copyright © 2008-2013 Kristian Høgsberg
-+ Copyright © 2013 Rafael Antognolli
-+ Copyright © 2013 Jasper St. Pierre
-+ Copyright © 2010-2013 Intel 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
-+ 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.
-+ </copyright>
-+
-+ <interface name="xdg_shell" version="1">
-+ <description summary="create desktop-style surfaces">
-+ This interface is implemented by servers that provide
-+ desktop-style user interfaces.
-+
-+ It allows clients to associate a xdg_surface with
-+ a basic surface.
-+ </description>
-+
-+ <enum name="version">
-+ <description summary="latest protocol version">
-+ Use this enum to check the protocol version, and it will be updated
-+ automatically.
-+ </description>
-+ <entry name="current" value="1" summary="Always the latest version"/>
-+ </enum>
-+
-+
-+ <request name="use_unstable_version">
-+ <description summary="enable use of this unstable version">
-+ Use this request in order to enable use of this interface.
-+
-+ Understand and agree that one is using an unstable interface,
-+ that will likely change in the future, breaking the API.
-+ </description>
-+ <arg name="version" type="int"/>
-+ </request>
-+
-+ <request name="get_xdg_surface">
-+ <description summary="create a shell surface from a surface">
-+ Create a shell surface for an existing surface.
-+
-+ Only one shell or popup surface can be associated with a given
-+ surface.
-+ </description>
-+ <arg name="id" type="new_id" interface="xdg_surface"/>
-+ <arg name="surface" type="object" interface="wl_surface"/>
-+ </request>
-+
-+ <request name="get_xdg_popup">
-+ <description summary="create a shell surface from a surface">
-+ Create a popup surface for an existing surface.
-+
-+ Only one shell or popup surface can be associated with a given
-+ surface.
-+ </description>
-+ <arg name="id" type="new_id" interface="xdg_popup"/>
-+ <arg name="surface" type="object" interface="wl_surface"/>
-+ <arg name="parent" type="object" interface="wl_surface"/>
-+ <arg name="seat" type="object" interface="wl_seat" summary="the wl_seat whose pointer is used"/>
-+ <arg name="serial" type="uint" summary="serial of the implicit grab on the pointer"/>
-+ <arg name="x" type="int"/>
-+ <arg name="y" type="int"/>
-+ <arg name="flags" type="uint"/>
-+ </request>
-+ </interface>
-+
-+ <interface name="xdg_surface" version="1">
-+
-+ <description summary="desktop-style metadata interface">
-+ An interface that may be implemented by a wl_surface, for
-+ implementations that provide a desktop-style user interface.
-+
-+ It provides requests to treat surfaces like windows, allowing to set
-+ properties like maximized, fullscreen, minimized, and to move and resize
-+ them, and associate metadata like title and app id.
-+
-+ On the server side the object is automatically destroyed when
-+ the related wl_surface is destroyed. On client side,
-+ xdg_surface.destroy() must be called before destroying
-+ the wl_surface object.
-+ </description>
-+
-+ <request name="destroy" type="destructor">
-+ <description summary="remove xdg_surface interface">
-+ The xdg_surface interface is removed from the wl_surface object
-+ that was turned into a xdg_surface with
-+ xdg_shell.get_xdg_surface request. The xdg_surface properties,
-+ like maximized and fullscreen, are lost. The wl_surface loses
-+ its role as a xdg_surface. The wl_surface is unmapped.
-+ </description>
-+ </request>
-+
-+ <request name="set_transient_for">
-+ <description summary="surface is a child of another surface">
-+ Setting a surface as transient of another means that it is child
-+ of another surface.
-+
-+ Child surfaces are stacked above their parents, and will be
-+ unmapped if the parent is unmapped too. They should not appear
-+ on task bars and alt+tab.
-+ </description>
-+ <arg name="parent" type="object" interface="wl_surface" allow-null="true"/>
-+ </request>
-+
-+ <request name="set_title">
-+ <description summary="set surface title">
-+ Set a short title for the surface.
-+
-+ This string may be used to identify the surface in a task bar,
-+ window list, or other user interface elements provided by the
-+ compositor.
-+
-+ The string must be encoded in UTF-8.
-+ </description>
-+ <arg name="title" type="string"/>
-+ </request>
-+
-+ <request name="set_app_id">
-+ <description summary="set surface class">
-+ Set an id for the surface.
-+
-+ The app id identifies the general class of applications to which
-+ the surface belongs.
-+
-+ It should be the ID that appears in the new desktop entry
-+ specification, the interface name.
-+ </description>
-+ <arg name="app_id" type="string"/>
-+ </request>
-+
-+ <request name="pong">
-+ <description summary="respond to a ping event">
-+ A client must respond to a ping event with a pong request or
-+ the client may be deemed unresponsive.
-+ </description>
-+ <arg name="serial" type="uint" summary="serial of the ping event"/>
-+ </request>
-+
-+ <event name="ping">
-+ <description summary="ping client">
-+ Ping a client to check if it is receiving events and sending
-+ requests. A client is expected to reply with a pong request.
-+ </description>
-+ <arg name="serial" type="uint"/>
-+ </event>
-+
-+ <request name="move">
-+ <description summary="start an interactive move">
-+ Start a pointer-driven move of the surface.
-+
-+ This request must be used in response to a button press event.
-+ The server may ignore move requests depending on the state of
-+ the surface (e.g. fullscreen or maximized).
-+ </description>
-+ <arg name="seat" type="object" interface="wl_seat" summary="the wl_seat whose pointer is used"/>
-+ <arg name="serial" type="uint" summary="serial of the implicit grab on the pointer"/>
-+ </request>
-+
-+ <enum name="resize_edge">
-+ <description summary="edge values for resizing">
-+ These values are used to indicate which edge of a surface
-+ is being dragged in a resize operation. The server may
-+ use this information to adapt its behavior, e.g. choose
-+ an appropriate cursor image.
-+ </description>
-+ <entry name="none" value="0"/>
-+ <entry name="top" value="1"/>
-+ <entry name="bottom" value="2"/>
-+ <entry name="left" value="4"/>
-+ <entry name="top_left" value="5"/>
-+ <entry name="bottom_left" value="6"/>
-+ <entry name="right" value="8"/>
-+ <entry name="top_right" value="9"/>
-+ <entry name="bottom_right" value="10"/>
-+ </enum>
-+
-+ <request name="resize">
-+ <description summary="start an interactive resize">
-+ Start a pointer-driven resizing of the surface.
-+
-+ This request must be used in response to a button press event.
-+ The server may ignore resize requests depending on the state of
-+ the surface (e.g. fullscreen or maximized).
-+ </description>
-+ <arg name="seat" type="object" interface="wl_seat" summary="the wl_seat whose pointer is used"/>
-+ <arg name="serial" type="uint" summary="serial of the implicit grab on the pointer"/>
-+ <arg name="edges" type="uint" summary="which edge or corner is being dragged"/>
-+ </request>
-+
-+ <event name="configure">
-+ <description summary="suggest resize">
-+ The configure event asks the client to resize its surface.
-+
-+ The size is a hint, in the sense that the client is free to
-+ ignore it if it doesn't resize, pick a smaller size (to
-+ satisfy aspect ratio or resize in steps of NxM pixels).
-+
-+ The edges parameter provides a hint about how the surface
-+ was resized. The client may use this information to decide
-+ how to adjust its content to the new size (e.g. a scrolling
-+ area might adjust its content position to leave the viewable
-+ content unmoved). Valid edge values are from resize_edge enum.
-+
-+ The client is free to dismiss all but the last configure
-+ event it received.
-+
-+ The width and height arguments specify the size of the window
-+ in surface local coordinates.
-+ </description>
-+
-+ <arg name="edges" type="uint"/>
-+ <arg name="width" type="int"/>
-+ <arg name="height" type="int"/>
-+ </event>
-+
-+ <request name="set_output">
-+ <description summary="set the default output used by this surface">
-+ Set the default output used by this surface when it is first mapped.
-+
-+ If this value is NULL (default), it's up to the compositor to choose
-+ which display will be used to map this surface.
-+
-+ When fullscreen or maximized state are set on this surface, and it
-+ wasn't mapped yet, the output set with this method will be used.
-+ Otherwise, the output where the surface is currently mapped will be
-+ used.
-+ </description>
-+ <arg name="output" type="object" interface="wl_output" allow-null="true"/>
-+ </request>
-+
-+ <event name="request_set_fullscreen">
-+ <description summary="server requests that the client set fullscreen">
-+ Event sent from the compositor to the client requesting that the client
-+ goes to a fullscreen state. It's the client job to call set_fullscreen
-+ and really trigger the fullscreen state.
-+ </description>
-+ </event>
-+
-+ <event name="request_unset_fullscreen">
-+ <description summary="server requests that the client unset fullscreen">
-+ Event sent from the compositor to the client requesting that the client
-+ leaves the fullscreen state. It's the client job to call
-+ unset_fullscreen and really leave the fullscreen state.
-+ </description>
-+ </event>
-+
-+ <request name="set_fullscreen">
-+ <description summary="set the surface state as fullscreen">
-+ Set the surface as fullscreen.
-+
-+ After this request, the compositor should send a configure event
-+ informing the output size.
-+
-+ This request informs the compositor that the next attached buffer
-+ committed will be in a fullscreen state. The buffer size should be the
-+ same size as the size informed in the configure event, if the client
-+ doesn't want to leave any empty area.
-+
-+ In other words: the next attached buffer after set_maximized is the new
-+ maximized buffer. And the surface will be positioned at the maximized
-+ position on commit.
-+
-+ A simple way to synchronize and wait for the correct configure event is
-+ to use a wl_display.sync request right after the set_fullscreen
-+ request. When the sync callback returns, the last configure event
-+ received just before it will be the correct one, and should contain the
-+ right size for the surface to maximize.
-+
-+ Setting one state won't unset another state. Use
-+ xdg_surface.unset_fullscreen for unsetting it.
-+ </description>
-+ </request>
-+
-+ <request name="unset_fullscreen">
-+ <description summary="unset the surface state as fullscreen">
-+ Unset the surface fullscreen state.
-+
-+ Same negotiation as set_fullscreen must be used.
-+ </description>
-+ </request>
-+
-+ <event name="request_set_maximized">
-+ <description summary="server requests that the client set maximized">
-+ Event sent from the compositor to the client requesting that the client
-+ goes to a maximized state. It's the client job to call set_maximized
-+ and really trigger the maximized state.
-+ </description>
-+ </event>
-+
-+ <event name="request_unset_maximized">
-+ <description summary="server requests that the client unset maximized">
-+ Event sent from the compositor to the client requesting that the client
-+ leaves the maximized state. It's the client job to call unset_maximized
-+ and really leave the maximized state.
-+ </description>
-+ </event>
-+
-+ <request name="set_maximized">
-+ <description summary="set the surface state as maximized">
-+ Set the surface as maximized.
-+
-+ After this request, the compositor will send a configure event
-+ informing the output size minus panel and other MW decorations.
-+
-+ This request informs the compositor that the next attached buffer
-+ committed will be in a maximized state. The buffer size should be the
-+ same size as the size informed in the configure event, if the client
-+ doesn't want to leave any empty area.
-+
-+ In other words: the next attached buffer after set_maximized is the new
-+ maximized buffer. And the surface will be positioned at the maximized
-+ position on commit.
-+
-+ A simple way to synchronize and wait for the correct configure event is
-+ to use a wl_display.sync request right after the set_maximized request.
-+ When the sync callback returns, the last configure event received just
-+ before it will be the correct one, and should contain the right size
-+ for the surface to maximize.
-+
-+ Setting one state won't unset another state. Use
-+ xdg_surface.unset_maximized for unsetting it.
-+ </description>
-+ </request>
-+
-+ <request name="unset_maximized">
-+ <description summary="unset the surface state as maximized">
-+ Unset the surface maximized state.
-+
-+ Same negotiation as set_maximized must be used.
-+ </description>
-+ </request>
-+
-+ <request name="set_minimized">
-+ <description summary="set the surface state as minimized">
-+ Set the surface minimized state.
-+
-+ Setting one state won't unset another state.
-+ </description>
-+ </request>
-+
-+ <event name="focused_set">
-+ <description summary="surface was focused">
-+ The focused_set event is sent when this surface has been
-+ activated. Window decorations should be updated accordingly.
-+ </description>
-+ </event>
-+
-+ <event name="focused_unset">
-+ <description summary="surface was unfocused">
-+ The focused_unset event is sent when this surface has been
-+ deactivated, because another surface has been activated. Window
-+ decorations should be updated accordingly.
-+ </description>
-+ </event>
-+ </interface>
-+
-+ <interface name="xdg_popup" version="1">
-+ <description summary="desktop-style metadata interface">
-+ An interface that may be implemented by a wl_surface, for
-+ implementations that provide a desktop-style popups/menus. A popup
-+ surface is a transient surface with an added pointer grab.
-+
-+ An existing implicit grab will be changed to owner-events mode,
-+ and the popup grab will continue after the implicit grab ends
-+ (i.e. releasing the mouse button does not cause the popup to be
-+ unmapped).
-+
-+ The popup grab continues until the window is destroyed or a mouse
-+ button is pressed in any other clients window. A click in any of
-+ the clients surfaces is reported as normal, however, clicks in
-+ other clients surfaces will be discarded and trigger the callback.
-+
-+ The x and y arguments specify the locations of the upper left
-+ corner of the surface relative to the upper left corner of the
-+ parent surface, in surface local coordinates.
-+
-+ xdg_popup surfaces are always transient for another surface.
-+ </description>
-+
-+ <request name="destroy" type="destructor">
-+ <description summary="remove xdg_surface interface">
-+ The xdg_surface interface is removed from the wl_surface object
-+ that was turned into a xdg_surface with
-+ xdg_shell.get_xdg_surface request. The xdg_surface properties,
-+ like maximized and fullscreen, are lost. The wl_surface loses
-+ its role as a xdg_surface. The wl_surface is unmapped.
-+ </description>
-+ </request>
-+
-+ <request name="pong">
-+ <description summary="respond to a ping event">
-+ A client must respond to a ping event with a pong request or
-+ the client may be deemed unresponsive.
-+ </description>
-+ <arg name="serial" type="uint" summary="serial of the ping event"/>
-+ </request>
-+
-+ <event name="ping">
-+ <description summary="ping client">
-+ Ping a client to check if it is receiving events and sending
-+ requests. A client is expected to reply with a pong request.
-+ </description>
-+ <arg name="serial" type="uint"/>
-+ </event>
-+
-+ <event name="popup_done">
-+ <description summary="popup interaction is done">
-+ The popup_done event is sent out when a popup grab is broken,
-+ that is, when the users clicks a surface that doesn't belong
-+ to the client owning the popup surface.
-+ </description>
-+ <arg name="serial" type="uint" summary="serial of the implicit grab on the pointer"/>
-+ </event>
-+
-+ </interface>
-+</protocol>
---
-1.9.1
-
diff --git a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland/0017-xdg-shell-Add-minimize-feature-to-QWindow-using-wayl.patch b/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland/0017-xdg-shell-Add-minimize-feature-to-QWindow-using-wayl.patch
deleted file mode 100644
index fe1bb50e8..000000000
--- a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland/0017-xdg-shell-Add-minimize-feature-to-QWindow-using-wayl.patch
+++ /dev/null
@@ -1,1029 +0,0 @@
-From 0edba039247ce888dbb7ff0a93c7b9ec01bac46e Mon Sep 17 00:00:00 2001
-From: Philippe Coval <philippe.coval@open.eurogiciel.org>
-Date: Wed, 26 Mar 2014 10:16:01 +0100
-Subject: [PATCH 17/21] xdg-shell: Add minimize feature to QWindow using
- wayland's xdg-shell
-
-The feature is disabled by default,
-and can be enabled at runtime
-by exporting QT_WAYLAND_USE_XDG_SHELL env variable.
-
-This patch relies on presence of protocol file
-which has been imported from weston-1.4.0 sources,
-until the xdg-shell is merge into wayland itself.
-
-Because xdg-shell is experimental,
-code fallback to WaylandShell if no XdgShell
-but keep in mind those shells are exclusive.
-
-Since xdg-shell and wayland-shell share most of the API,
-some factorization is done by an (empty) abstraction class
-to keep the code more readable.
-
-Despite xdg-shell introduces new popups concept,
-they're not used on this change for maitainance purpose.
-
-Notes:
-
-* This change depends on presence of xdg-shell protocol file.
-
-* You can check a demo video
- (qt-tizen-cinematic-experience-20140430-rzr)
- of the test case at :
- https://www.youtube.com/watch?v=pY_XXvKc_0E#
-
-* Use Super+Tab to show window again if hidden
-
-Task-number: QTBUG-38633/part/2of2
-Change-Id: I2d7ed85bea1847d82439fdfc893a3dbb2581ffff
-Reviewed-by: Giulio Camuffo <giulio.camuffo@jollamobile.com>
-Origin: https://www.qt.gitorious.org/qt/qtwayland/commit/768484daaa64bea965bef981a16f59be8db0c190
-Bug-Tizen: TIVI-3113/part
-Signed-off-by: Philippe Coval <philippe.coval@open.eurogiciel.org>
----
- src/client/client.pro | 5 +
- src/client/qwaylanddisplay.cpp | 5 +
- src/client/qwaylanddisplay_p.h | 4 +
- src/client/qwaylandshellsurface.cpp | 134 ------------------------
- src/client/qwaylandshellsurface_p.h | 40 +++-----
- src/client/qwaylandwindow.cpp | 40 ++++++--
- src/client/qwaylandwlshellsurface.cpp | 186 ++++++++++++++++++++++++++++++++++
- src/client/qwaylandwlshellsurface_p.h | 101 ++++++++++++++++++
- src/client/qwaylandxdgsurface.cpp | 173 +++++++++++++++++++++++++++++++
- src/client/qwaylandxdgsurface_p.h | 105 +++++++++++++++++++
- 10 files changed, 625 insertions(+), 168 deletions(-)
- create mode 100644 src/client/qwaylandwlshellsurface.cpp
- create mode 100644 src/client/qwaylandwlshellsurface_p.h
- create mode 100644 src/client/qwaylandxdgsurface.cpp
- create mode 100644 src/client/qwaylandxdgsurface_p.h
-
-diff --git a/src/client/client.pro b/src/client/client.pro
-index 10cbd31..9ecf82f 100644
---- a/src/client/client.pro
-+++ b/src/client/client.pro
-@@ -41,6 +41,7 @@ WAYLANDCLIENTSOURCES += \
- ../extensions/qtkey-extension.xml \
- ../extensions/windowmanager.xml \
- ../3rdparty/protocol/text.xml \
-+ ../3rdparty/protocol/xdg-shell.xml \
-
- SOURCES += qwaylandintegration.cpp \
- qwaylandnativeinterface.cpp \
-@@ -57,6 +58,8 @@ SOURCES += qwaylandintegration.cpp \
- qwaylanddatadevicemanager.cpp \
- qwaylanddatasource.cpp \
- qwaylandshellsurface.cpp \
-+ qwaylandwlshellsurface.cpp \
-+ qwaylandxdgsurface.cpp \
- qwaylandextendedoutput.cpp \
- qwaylandextendedsurface.cpp \
- qwaylandsubsurface.cpp \
-@@ -85,6 +88,8 @@ HEADERS += qwaylandintegration_p.h \
- qwaylanddatadevicemanager_p.h \
- qwaylanddatasource_p.h \
- qwaylandshellsurface_p.h \
-+ qwaylandwlshellsurface_p.h \
-+ qwaylandxdgsurface_p.h \
- qwaylandextendedoutput_p.h \
- qwaylandextendedsurface_p.h \
- qwaylandsubsurface_p.h \
-diff --git a/src/client/qwaylanddisplay.cpp b/src/client/qwaylanddisplay.cpp
-index 0b715c0..7f953ad 100644
---- a/src/client/qwaylanddisplay.cpp
-+++ b/src/client/qwaylanddisplay.cpp
-@@ -61,6 +61,7 @@
- #include "qwaylandqtkey_p.h"
-
- #include <QtWaylandClient/private/qwayland-text.h>
-+#include <QtWaylandClient/private/qwayland-xdg-shell.h>
-
- #include <QtCore/QAbstractEventDispatcher>
- #include <QtGui/private/qguiapplication_p.h>
-@@ -206,6 +207,10 @@ void QWaylandDisplay::registry_global(uint32_t id, const QString &interface, uin
- mCompositor.init(registry, id);
- } else if (interface == QStringLiteral("wl_shm")) {
- mShm = static_cast<struct wl_shm *>(wl_registry_bind(registry, id, &wl_shm_interface,1));
-+ } else if (interface == QStringLiteral("xdg_shell")
-+ && qEnvironmentVariableIsSet("QT_WAYLAND_USE_XDG_SHELL")) {
-+ mShellXdg.reset(new QtWayland::xdg_shell(registry, id));
-+ mShellXdg->use_unstable_version(QtWayland::xdg_shell::version_current);
- } else if (interface == QStringLiteral("wl_shell")){
- mShell.reset(new QtWayland::wl_shell(registry, id));
- } else if (interface == QStringLiteral("wl_seat")) {
-diff --git a/src/client/qwaylanddisplay_p.h b/src/client/qwaylanddisplay_p.h
-index 40cb2b2..cf5dfc2 100644
---- a/src/client/qwaylanddisplay_p.h
-+++ b/src/client/qwaylanddisplay_p.h
-@@ -51,6 +51,7 @@
-
- #include <QtWaylandClient/private/qwayland-wayland.h>
- #include <QtWaylandClient/private/qwaylandclientexport_p.h>
-+#include <QtWaylandClient/private/qwayland-xdg-shell.h>
-
- struct wl_cursor_image;
-
-@@ -78,6 +79,7 @@ namespace QtWayland {
- class qt_sub_surface_extension;
- class qt_surface_extension;
- class wl_text_input_manager;
-+ class xdg_shell;
- }
-
- typedef void (*RegistryListener)(void *data,
-@@ -113,6 +115,7 @@ public:
- QtWayland::wl_compositor *compositor() { return &mCompositor; }
-
- QtWayland::wl_shell *shell() { return mShell.data(); }
-+ QtWayland::xdg_shell *shellXdg() { return mShellXdg.data(); }
-
- QList<QWaylandInputDevice *> inputDevices() const { return mInputDevices; }
- QWaylandInputDevice *defaultInputDevice() const;
-@@ -168,6 +171,7 @@ private:
- QThread *mEventThread;
- QWaylandEventThread *mEventThreadObject;
- QScopedPointer<QtWayland::wl_shell> mShell;
-+ QScopedPointer<QtWayland::xdg_shell> mShellXdg;
- QList<QPlatformScreen *> mScreens;
- QList<QWaylandInputDevice *> mInputDevices;
- QList<Listener> mRegistryListeners;
-diff --git a/src/client/qwaylandshellsurface.cpp b/src/client/qwaylandshellsurface.cpp
-index b7a819f..80e509b 100644
---- a/src/client/qwaylandshellsurface.cpp
-+++ b/src/client/qwaylandshellsurface.cpp
-@@ -40,137 +40,3 @@
- ****************************************************************************/
-
- #include "qwaylandshellsurface_p.h"
--
--#include "qwaylanddisplay_p.h"
--#include "qwaylandwindow_p.h"
--#include "qwaylandinputdevice_p.h"
--#include "qwaylanddecoration_p.h"
--#include "qwaylandscreen_p.h"
--
--#include <QtCore/QDebug>
--
--QT_BEGIN_NAMESPACE
--
--QWaylandShellSurface::QWaylandShellSurface(struct ::wl_shell_surface *shell_surface, QWaylandWindow *window)
-- : QtWayland::wl_shell_surface(shell_surface)
-- , m_window(window)
-- , m_maximized(false)
-- , m_fullscreen(false)
--{
--}
--
--QWaylandShellSurface::~QWaylandShellSurface()
--{
-- wl_shell_surface_destroy(object());
--}
--
--void QWaylandShellSurface::resize(QWaylandInputDevice *inputDevice, enum wl_shell_surface_resize edges)
--{
-- resize(inputDevice->wl_seat(),
-- inputDevice->serial(),
-- edges);
--}
--
--void QWaylandShellSurface::move(QWaylandInputDevice *inputDevice)
--{
-- move(inputDevice->wl_seat(),
-- inputDevice->serial());
--}
--
--void QWaylandShellSurface::setMaximized()
--{
-- m_maximized = true;
-- m_size = m_window->window()->geometry().size();
-- set_maximized(0);
--}
--
--void QWaylandShellSurface::setFullscreen()
--{
-- m_fullscreen = true;
-- m_size = m_window->window()->geometry().size();
-- set_fullscreen(WL_SHELL_SURFACE_FULLSCREEN_METHOD_DEFAULT, 0, 0);
--}
--
--void QWaylandShellSurface::setNormal()
--{
-- if (m_fullscreen || m_maximized) {
-- m_fullscreen = m_maximized = false;
-- setTopLevel();
-- QMargins m = m_window->frameMargins();
-- m_window->configure(0, m_size.width() + m.left() + m.right(), m_size.height() + m.top() + m.bottom());
-- }
--}
--
--void QWaylandShellSurface::setMinimized()
--{
-- // TODO: There's no wl_shell_surface API for this
--}
--
--void QWaylandShellSurface::setTopLevel()
--{
-- set_toplevel();
--}
--
--void QWaylandShellSurface::updateTransientParent(QWindow *parent)
--{
-- QWaylandWindow *parent_wayland_window = static_cast<QWaylandWindow *>(parent->handle());
-- if (!parent_wayland_window)
-- return;
--
-- // set_transient expects a position relative to the parent
-- QPoint transientPos = m_window->geometry().topLeft(); // this is absolute
-- QWindow *parentWin = m_window->window()->transientParent();
-- transientPos -= parentWin->geometry().topLeft();
-- if (parent_wayland_window->decoration()) {
-- transientPos.setX(transientPos.x() + parent_wayland_window->decoration()->margins().left());
-- transientPos.setY(transientPos.y() + parent_wayland_window->decoration()->margins().top());
-- }
--
-- uint32_t flags = 0;
-- Qt::WindowFlags wf = m_window->window()->flags();
-- if (wf.testFlag(Qt::ToolTip)
-- || wf.testFlag(Qt::WindowTransparentForInput))
-- flags |= WL_SHELL_SURFACE_TRANSIENT_INACTIVE;
--
-- set_transient(parent_wayland_window->object(),
-- transientPos.x(),
-- transientPos.y(),
-- flags);
--}
--
--void QWaylandShellSurface::setPopup(QWaylandWindow *parent, QWaylandInputDevice *device, int serial)
--{
-- QWaylandWindow *parent_wayland_window = parent;
-- if (!parent_wayland_window)
-- return;
--
-- // set_popup expects a position relative to the parent
-- QPoint transientPos = m_window->geometry().topLeft(); // this is absolute
-- transientPos -= parent_wayland_window->geometry().topLeft();
-- if (parent_wayland_window->decoration()) {
-- transientPos.setX(transientPos.x() + parent_wayland_window->decoration()->margins().left());
-- transientPos.setY(transientPos.y() + parent_wayland_window->decoration()->margins().top());
-- }
--
-- set_popup(device->wl_seat(), serial, parent_wayland_window->object(),
-- transientPos.x(), transientPos.y(), 0);
--}
--
--void QWaylandShellSurface::shell_surface_ping(uint32_t serial)
--{
-- pong(serial);
--}
--
--void QWaylandShellSurface::shell_surface_configure(uint32_t edges,
-- int32_t width,
-- int32_t height)
--{
-- m_window->configure(edges, width, height);
--}
--
--void QWaylandShellSurface::shell_surface_popup_done()
--{
-- QCoreApplication::postEvent(m_window->window(), new QCloseEvent());
--}
--
--QT_END_NAMESPACE
-diff --git a/src/client/qwaylandshellsurface_p.h b/src/client/qwaylandshellsurface_p.h
-index 2477c3f..2f59f60 100644
---- a/src/client/qwaylandshellsurface_p.h
-+++ b/src/client/qwaylandshellsurface_p.h
-@@ -55,39 +55,25 @@ class QWaylandWindow;
- class QWaylandInputDevice;
- class QWindow;
-
--class Q_WAYLAND_CLIENT_EXPORT QWaylandShellSurface : public QtWayland::wl_shell_surface
-+class Q_WAYLAND_CLIENT_EXPORT QWaylandShellSurface
- {
- public:
-- QWaylandShellSurface(struct ::wl_shell_surface *shell_surface, QWaylandWindow *window);
-- ~QWaylandShellSurface();
-+ virtual ~QWaylandShellSurface() {}
-+ virtual void resize(QWaylandInputDevice * /*inputDevice*/, enum wl_shell_surface_resize /*edges*/)
-+ {}
-
-- using QtWayland::wl_shell_surface::resize;
-- void resize(QWaylandInputDevice *inputDevice, enum wl_shell_surface_resize edges);
--
-- using QtWayland::wl_shell_surface::move;
-- void move(QWaylandInputDevice *inputDevice);
-+ virtual void move(QWaylandInputDevice * /*inputDevice*/) {}
-+ virtual void setTitle(const QString & /*title*/) {}
-+ virtual void setAppId(const QString & /*appId*/) {}
-
- private:
-- void setMaximized();
-- void setFullscreen();
-- void setNormal();
-- void setMinimized();
--
-- void setTopLevel();
-- void updateTransientParent(QWindow *parent);
-- void setPopup(QWaylandWindow *parent, QWaylandInputDevice *device, int serial);
--
-- QWaylandWindow *m_window;
-- bool m_maximized;
-- bool m_fullscreen;
-- QSize m_size;
--
-- void shell_surface_ping(uint32_t serial) Q_DECL_OVERRIDE;
-- void shell_surface_configure(uint32_t edges,
-- int32_t width,
-- int32_t height) Q_DECL_OVERRIDE;
-- void shell_surface_popup_done() Q_DECL_OVERRIDE;
-+ virtual void setMaximized() {}
-+ virtual void setFullscreen() {}
-+ virtual void setNormal() {}
-+ virtual void setMinimized() {}
-
-+ virtual void setTopLevel() {}
-+ virtual void updateTransientParent(QWindow * /*parent*/) {}
- friend class QWaylandWindow;
- };
-
-diff --git a/src/client/qwaylandwindow.cpp b/src/client/qwaylandwindow.cpp
-index 920c977..3fb3a49 100644
---- a/src/client/qwaylandwindow.cpp
-+++ b/src/client/qwaylandwindow.cpp
-@@ -46,6 +46,8 @@
- #include "qwaylandinputdevice_p.h"
- #include "qwaylandscreen_p.h"
- #include "qwaylandshellsurface_p.h"
-+#include "qwaylandwlshellsurface_p.h"
-+#include "qwaylandxdgsurface_p.h"
- #include "qwaylandextendedsurface_p.h"
- #include "qwaylandsubsurface_p.h"
- #include "qwaylanddecoration_p.h"
-@@ -92,8 +94,16 @@ QWaylandWindow::QWaylandWindow(QWindow *window)
- static WId id = 1;
- mWindowId = id++;
-
-- if (mDisplay->shell() && window->type() & Qt::Window && !(window->flags() & Qt::BypassWindowManagerHint))
-- mShellSurface = new QWaylandShellSurface(mDisplay->shell()->get_shell_surface(object()), this);
-+ if (!(window->flags() & Qt::BypassWindowManagerHint)) {
-+ if (mDisplay->shellXdg()) {
-+ if (window->type() & Qt::Window) {
-+ mShellSurface = new QWaylandXdgSurface(mDisplay->shellXdg()->get_xdg_surface(object()), this);
-+ }
-+ } else if (mDisplay->shell() && window->type() & Qt::Window) {
-+ mShellSurface = new QWaylandWlShellSurface(mDisplay->shell()->get_shell_surface(object()), this);
-+ }
-+ }
-+
- if (mDisplay->windowExtension())
- mExtendedWindow = new QWaylandExtendedSurface(this, mDisplay->windowExtension()->get_extended_surface(object()));
- if (mDisplay->subSurfaceExtension())
-@@ -101,12 +111,12 @@ QWaylandWindow::QWaylandWindow(QWindow *window)
-
- if (mShellSurface) {
- // Set initial surface title
-- mShellSurface->set_title(window->title());
-+ mShellSurface->setTitle(window->title());
-
- // Set surface class to the .desktop file name (obtained from executable name)
- QFileInfo exeFileInfo(qApp->applicationFilePath());
- QString className = exeFileInfo.baseName() + QLatin1String(".desktop");
-- mShellSurface->set_class(className);
-+ mShellSurface->setAppId(className);
- }
-
- if (QPlatformWindow::parent() && mSubSurfaceWindow) {
-@@ -170,7 +180,7 @@ void QWaylandWindow::setParent(const QPlatformWindow *parent)
- void QWaylandWindow::setWindowTitle(const QString &title)
- {
- if (mShellSurface) {
-- mShellSurface->set_title(title);
-+ mShellSurface->setTitle(title);
- }
-
- if (mWindowDecoration && window()->isVisible())
-@@ -212,8 +222,10 @@ void QWaylandWindow::setVisible(bool visible)
- mMouseDevice = parent->mMouseDevice;
- mMouseSerial = parent->mMouseSerial;
-
-- if (mMouseDevice)
-- mShellSurface->setPopup(transientParent(), mMouseDevice, mMouseSerial);
-+ QWaylandWlShellSurface *wlshellSurface = dynamic_cast<QWaylandWlShellSurface*>(mShellSurface);
-+ if (mMouseDevice && wlshellSurface) {
-+ wlshellSurface->setPopup(transientParent(), mMouseDevice, mMouseSerial);
-+ }
- }
-
- if (!mSentInitialResize) {
-@@ -428,6 +440,20 @@ void QWaylandWindow::setWindowFlags(Qt::WindowFlags flags)
-
- bool QWaylandWindow::createDecoration()
- {
-+ // so far only xdg-shell support this "unminimize" trick, may be moved elsewhere
-+ if (mState == Qt::WindowMinimized) {
-+ QWaylandXdgSurface *xdgSurface = dynamic_cast<QWaylandXdgSurface *>(mShellSurface);
-+ if ( xdgSurface ) {
-+ if (xdgSurface->isFullscreen()) {
-+ setWindowStateInternal(Qt::WindowFullScreen);
-+ } else if (xdgSurface->isMaximized()) {
-+ setWindowStateInternal(Qt::WindowMaximized);
-+ } else {
-+ setWindowStateInternal(Qt::WindowNoState);
-+ }
-+ }
-+ }
-+
- static bool disableWaylandDecorations = !qgetenv("QT_WAYLAND_DISABLE_WINDOWDECORATION").isEmpty();
- if (disableWaylandDecorations)
- return false;
-diff --git a/src/client/qwaylandwlshellsurface.cpp b/src/client/qwaylandwlshellsurface.cpp
-new file mode 100644
-index 0000000..4b73ec2
---- /dev/null
-+++ b/src/client/qwaylandwlshellsurface.cpp
-@@ -0,0 +1,186 @@
-+/****************************************************************************
-+**
-+** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
-+** Contact: http://www.qt-project.org/legal
-+**
-+** This file is part of the config.tests of the Qt Toolkit.
-+**
-+** $QT_BEGIN_LICENSE:LGPL$
-+** Commercial License Usage
-+** Licensees holding valid commercial Qt licenses may use this file in
-+** accordance with the commercial license agreement provided with the
-+** Software or, alternatively, in accordance with the terms contained in
-+** a written agreement between you and Digia. For licensing terms and
-+** conditions see http://qt.digia.com/licensing. For further information
-+** use the contact form at http://qt.digia.com/contact-us.
-+**
-+** GNU Lesser General Public License Usage
-+** Alternatively, this file may be used under the terms of the GNU Lesser
-+** General Public License version 2.1 as published by the Free Software
-+** Foundation and appearing in the file LICENSE.LGPL included in the
-+** packaging of this file. Please review the following information to
-+** ensure the GNU Lesser General Public License version 2.1 requirements
-+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-+**
-+** In addition, as a special exception, Digia gives you certain additional
-+** rights. These rights are described in the Digia Qt LGPL Exception
-+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-+**
-+** GNU General Public License Usage
-+** Alternatively, this file may be used under the terms of the GNU
-+** General Public License version 3.0 as published by the Free Software
-+** Foundation and appearing in the file LICENSE.GPL included in the
-+** packaging of this file. Please review the following information to
-+** ensure the GNU General Public License version 3.0 requirements will be
-+** met: http://www.gnu.org/copyleft/gpl.html.
-+**
-+**
-+** $QT_END_LICENSE$
-+**
-+****************************************************************************/
-+
-+#include "qwaylandwlshellsurface_p.h"
-+
-+#include "qwaylanddisplay_p.h"
-+#include "qwaylandwindow_p.h"
-+#include "qwaylandinputdevice_p.h"
-+#include "qwaylanddecoration_p.h"
-+#include "qwaylandscreen_p.h"
-+
-+#include <QtCore/QDebug>
-+
-+QT_BEGIN_NAMESPACE
-+
-+QWaylandWlShellSurface::QWaylandWlShellSurface(struct ::wl_shell_surface *shell_surface, QWaylandWindow *window)
-+ : QtWayland::wl_shell_surface(shell_surface)
-+ , m_window(window)
-+ , m_maximized(false)
-+ , m_fullscreen(false)
-+{
-+}
-+
-+QWaylandWlShellSurface::~QWaylandWlShellSurface()
-+{
-+ wl_shell_surface_destroy(object());
-+}
-+
-+void QWaylandWlShellSurface::resize(QWaylandInputDevice *inputDevice, enum wl_shell_surface_resize edges)
-+{
-+ resize(inputDevice->wl_seat(),
-+ inputDevice->serial(),
-+ edges);
-+}
-+
-+void QWaylandWlShellSurface::move(QWaylandInputDevice *inputDevice)
-+{
-+ move(inputDevice->wl_seat(),
-+ inputDevice->serial());
-+}
-+
-+void QWaylandWlShellSurface::setTitle(const QString & title)
-+{
-+ return QtWayland::wl_shell_surface::set_title(title);
-+}
-+
-+void QWaylandWlShellSurface::setAppId(const QString & appId)
-+{
-+ return QtWayland::wl_shell_surface::set_class(appId);
-+}
-+
-+void QWaylandWlShellSurface::setMaximized()
-+{
-+ m_maximized = true;
-+ m_size = m_window->window()->geometry().size();
-+ set_maximized(0);
-+}
-+
-+void QWaylandWlShellSurface::setFullscreen()
-+{
-+ m_fullscreen = true;
-+ m_size = m_window->window()->geometry().size();
-+ set_fullscreen(WL_SHELL_SURFACE_FULLSCREEN_METHOD_DEFAULT, 0, 0);
-+}
-+
-+void QWaylandWlShellSurface::setNormal()
-+{
-+ if (m_fullscreen || m_maximized) {
-+ m_fullscreen = m_maximized = false;
-+ setTopLevel();
-+ QMargins m = m_window->frameMargins();
-+ m_window->configure(0, m_size.width() + m.left() + m.right(), m_size.height() + m.top() + m.bottom());
-+ }
-+}
-+
-+void QWaylandWlShellSurface::setMinimized()
-+{
-+ // TODO: There's no wl_shell_surface API for this
-+}
-+
-+void QWaylandWlShellSurface::setTopLevel()
-+{
-+ set_toplevel();
-+}
-+
-+void QWaylandWlShellSurface::updateTransientParent(QWindow *parent)
-+{
-+ QWaylandWindow *parent_wayland_window = static_cast<QWaylandWindow *>(parent->handle());
-+ if (!parent_wayland_window)
-+ return;
-+
-+ // set_transient expects a position relative to the parent
-+ QPoint transientPos = m_window->geometry().topLeft(); // this is absolute
-+ QWindow *parentWin = m_window->window()->transientParent();
-+ transientPos -= parentWin->geometry().topLeft();
-+ if (parent_wayland_window->decoration()) {
-+ transientPos.setX(transientPos.x() + parent_wayland_window->decoration()->margins().left());
-+ transientPos.setY(transientPos.y() + parent_wayland_window->decoration()->margins().top());
-+ }
-+
-+ uint32_t flags = 0;
-+ Qt::WindowFlags wf = m_window->window()->flags();
-+ if (wf.testFlag(Qt::ToolTip)
-+ || wf.testFlag(Qt::WindowTransparentForInput))
-+ flags |= WL_SHELL_SURFACE_TRANSIENT_INACTIVE;
-+
-+ set_transient(parent_wayland_window->object(),
-+ transientPos.x(),
-+ transientPos.y(),
-+ flags);
-+}
-+
-+void QWaylandWlShellSurface::setPopup(QWaylandWindow *parent, QWaylandInputDevice *device, int serial)
-+{
-+ QWaylandWindow *parent_wayland_window = parent;
-+ if (!parent_wayland_window)
-+ return;
-+
-+ // set_popup expects a position relative to the parent
-+ QPoint transientPos = m_window->geometry().topLeft(); // this is absolute
-+ transientPos -= parent_wayland_window->geometry().topLeft();
-+ if (parent_wayland_window->decoration()) {
-+ transientPos.setX(transientPos.x() + parent_wayland_window->decoration()->margins().left());
-+ transientPos.setY(transientPos.y() + parent_wayland_window->decoration()->margins().top());
-+ }
-+
-+ set_popup(device->wl_seat(), serial, parent_wayland_window->object(),
-+ transientPos.x(), transientPos.y(), 0);
-+}
-+
-+void QWaylandWlShellSurface::shell_surface_ping(uint32_t serial)
-+{
-+ pong(serial);
-+}
-+
-+void QWaylandWlShellSurface::shell_surface_configure(uint32_t edges,
-+ int32_t width,
-+ int32_t height)
-+{
-+ m_window->configure(edges, width, height);
-+}
-+
-+void QWaylandWlShellSurface::shell_surface_popup_done()
-+{
-+ QCoreApplication::postEvent(m_window->window(), new QCloseEvent());
-+}
-+
-+QT_END_NAMESPACE
-diff --git a/src/client/qwaylandwlshellsurface_p.h b/src/client/qwaylandwlshellsurface_p.h
-new file mode 100644
-index 0000000..d02bb7b
---- /dev/null
-+++ b/src/client/qwaylandwlshellsurface_p.h
-@@ -0,0 +1,101 @@
-+/****************************************************************************
-+**
-+** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
-+** Contact: http://www.qt-project.org/legal
-+**
-+** This file is part of the config.tests of the Qt Toolkit.
-+**
-+** $QT_BEGIN_LICENSE:LGPL$
-+** Commercial License Usage
-+** Licensees holding valid commercial Qt licenses may use this file in
-+** accordance with the commercial license agreement provided with the
-+** Software or, alternatively, in accordance with the terms contained in
-+** a written agreement between you and Digia. For licensing terms and
-+** conditions see http://qt.digia.com/licensing. For further information
-+** use the contact form at http://qt.digia.com/contact-us.
-+**
-+** GNU Lesser General Public License Usage
-+** Alternatively, this file may be used under the terms of the GNU Lesser
-+** General Public License version 2.1 as published by the Free Software
-+** Foundation and appearing in the file LICENSE.LGPL included in the
-+** packaging of this file. Please review the following information to
-+** ensure the GNU Lesser General Public License version 2.1 requirements
-+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-+**
-+** In addition, as a special exception, Digia gives you certain additional
-+** rights. These rights are described in the Digia Qt LGPL Exception
-+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-+**
-+** GNU General Public License Usage
-+** Alternatively, this file may be used under the terms of the GNU
-+** General Public License version 3.0 as published by the Free Software
-+** Foundation and appearing in the file LICENSE.GPL included in the
-+** packaging of this file. Please review the following information to
-+** ensure the GNU General Public License version 3.0 requirements will be
-+** met: http://www.gnu.org/copyleft/gpl.html.
-+**
-+**
-+** $QT_END_LICENSE$
-+**
-+****************************************************************************/
-+
-+#ifndef QWAYLANDWLSHELLSURFACE_H
-+#define QWAYLANDWLSHELLSURFACE_H
-+
-+#include <QtCore/QSize>
-+
-+#include <wayland-client.h>
-+
-+#include <QtWaylandClient/private/qwayland-wayland.h>
-+#include <QtWaylandClient/private/qwaylandclientexport_p.h>
-+#include "qwaylandshellsurface_p.h"
-+
-+QT_BEGIN_NAMESPACE
-+
-+class QWaylandWindow;
-+class QWaylandInputDevice;
-+class QWindow;
-+
-+class Q_WAYLAND_CLIENT_EXPORT QWaylandWlShellSurface : public QtWayland::wl_shell_surface
-+ , public QWaylandShellSurface
-+{
-+public:
-+ QWaylandWlShellSurface(struct ::wl_shell_surface *shell_surface, QWaylandWindow *window);
-+ virtual ~QWaylandWlShellSurface();
-+
-+ using QtWayland::wl_shell_surface::resize;
-+ void resize(QWaylandInputDevice *inputDevice, enum wl_shell_surface_resize edges) Q_DECL_OVERRIDE;
-+
-+ using QtWayland::wl_shell_surface::move;
-+ void move(QWaylandInputDevice *inputDevice) Q_DECL_OVERRIDE;
-+
-+ void setTitle(const QString & title) Q_DECL_OVERRIDE;
-+ void setAppId(const QString &appId) Q_DECL_OVERRIDE;
-+
-+private:
-+ void setMaximized() Q_DECL_OVERRIDE;
-+ void setFullscreen() Q_DECL_OVERRIDE;
-+ void setNormal() Q_DECL_OVERRIDE;
-+ void setMinimized() Q_DECL_OVERRIDE;
-+
-+ void setTopLevel() Q_DECL_OVERRIDE;
-+ void updateTransientParent(QWindow *parent) Q_DECL_OVERRIDE;
-+ void setPopup(QWaylandWindow *parent, QWaylandInputDevice *device, int serial);
-+
-+ QWaylandWindow *m_window;
-+ bool m_maximized;
-+ bool m_fullscreen;
-+ QSize m_size;
-+
-+ void shell_surface_ping(uint32_t serial) Q_DECL_OVERRIDE;
-+ void shell_surface_configure(uint32_t edges,
-+ int32_t width,
-+ int32_t height) Q_DECL_OVERRIDE;
-+ void shell_surface_popup_done() Q_DECL_OVERRIDE;
-+
-+ friend class QWaylandWindow;
-+};
-+
-+QT_END_NAMESPACE
-+
-+#endif // QWAYLANDSHELLSURFACE_H
-diff --git a/src/client/qwaylandxdgsurface.cpp b/src/client/qwaylandxdgsurface.cpp
-new file mode 100644
-index 0000000..1b8affa
---- /dev/null
-+++ b/src/client/qwaylandxdgsurface.cpp
-@@ -0,0 +1,173 @@
-+/****************************************************************************
-+**
-+** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
-+** Contact: http://www.qt-project.org/legal
-+**
-+** This file is part of the config.tests of the Qt Toolkit.
-+**
-+** $QT_BEGIN_LICENSE:LGPL$
-+** Commercial License Usage
-+** Licensees holding valid commercial Qt licenses may use this file in
-+** accordance with the commercial license agreement provided with the
-+** Software or, alternatively, in accordance with the terms contained in
-+** a written agreement between you and Digia. For licensing terms and
-+** conditions see http://qt.digia.com/licensing. For further information
-+** use the contact form at http://qt.digia.com/contact-us.
-+**
-+** GNU Lesser General Public License Usage
-+** Alternatively, this file may be used under the terms of the GNU Lesser
-+** General Public License version 2.1 as published by the Free Software
-+** Foundation and appearing in the file LICENSE.LGPL included in the
-+** packaging of this file. Please review the following information to
-+** ensure the GNU Lesser General Public License version 2.1 requirements
-+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-+**
-+** In addition, as a special exception, Digia gives you certain additional
-+** rights. These rights are described in the Digia Qt LGPL Exception
-+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-+**
-+** GNU General Public License Usage
-+** Alternatively, this file may be used under the terms of the GNU
-+** General Public License version 3.0 as published by the Free Software
-+** Foundation and appearing in the file LICENSE.GPL included in the
-+** packaging of this file. Please review the following information to
-+** ensure the GNU General Public License version 3.0 requirements will be
-+** met: http://www.gnu.org/copyleft/gpl.html.
-+**
-+**
-+** $QT_END_LICENSE$
-+**
-+****************************************************************************/
-+
-+#include "qwaylandxdgsurface_p.h"
-+
-+#include "qwaylanddisplay_p.h"
-+#include "qwaylandwindow_p.h"
-+#include "qwaylandinputdevice_p.h"
-+#include "qwaylanddecoration_p.h"
-+#include "qwaylandscreen_p.h"
-+
-+#include <QtCore/QDebug>
-+
-+QT_BEGIN_NAMESPACE
-+
-+QWaylandXdgSurface::QWaylandXdgSurface(struct ::xdg_surface *xdg_surface, QWaylandWindow *window)
-+ : QtWayland::xdg_surface(xdg_surface)
-+ , m_window(window)
-+ , m_maximized(false)
-+ , m_minimized(false)
-+ , m_fullscreen(false)
-+{
-+}
-+
-+QWaylandXdgSurface::~QWaylandXdgSurface()
-+{
-+ xdg_surface_destroy(object());
-+}
-+
-+void QWaylandXdgSurface::resize(QWaylandInputDevice *inputDevice, enum wl_shell_surface_resize edges)
-+{
-+ // May need some conversion if types get incompatibles, ATM they're identical
-+ enum resize_edge const * const arg = reinterpret_cast<enum resize_edge const * const>(&edges);
-+ resize(inputDevice, *arg);
-+}
-+
-+void QWaylandXdgSurface::resize(QWaylandInputDevice *inputDevice, enum resize_edge edges)
-+{
-+ resize(inputDevice->wl_seat(),
-+ inputDevice->serial(),
-+ edges);
-+}
-+
-+void QWaylandXdgSurface::move(QWaylandInputDevice *inputDevice)
-+{
-+ move(inputDevice->wl_seat(),
-+ inputDevice->serial());
-+}
-+
-+void QWaylandXdgSurface::setMaximized()
-+{
-+ m_maximized = true;
-+ m_size = m_window->window()->geometry().size();
-+ set_maximized();
-+}
-+
-+void QWaylandXdgSurface::setFullscreen()
-+{
-+ m_fullscreen = true;
-+ m_size = m_window->window()->geometry().size();
-+ set_fullscreen();
-+}
-+
-+void QWaylandXdgSurface::setNormal()
-+{
-+ if (m_fullscreen || m_maximized || m_minimized) {
-+ if (m_maximized) { unset_maximized(); }
-+ if (m_fullscreen) { unset_fullscreen(); }
-+
-+ m_fullscreen = m_maximized = m_minimized = false;
-+ setTopLevel();
-+ QMargins m = m_window->frameMargins();
-+ m_window->configure(0, m_size.width() + m.left() + m.right(), m_size.height() + m.top() + m.bottom());
-+ }
-+}
-+
-+void QWaylandXdgSurface::setMinimized()
-+{
-+ m_minimized = true;
-+ m_size = m_window->window()->geometry().size();
-+ set_minimized();
-+}
-+
-+void QWaylandXdgSurface::setTopLevel()
-+{
-+ // There's no xdg_shell_surface API for this, ignoring
-+}
-+
-+void QWaylandXdgSurface::updateTransientParent(QWindow *parent)
-+{
-+ QWaylandWindow *parent_wayland_window = static_cast<QWaylandWindow *>(parent->handle());
-+ if (!parent_wayland_window)
-+ return;
-+
-+ // set_transient expects a position relative to the parent
-+ QPoint transientPos = m_window->geometry().topLeft(); // this is absolute
-+ QWindow *parentWin = m_window->window()->transientParent();
-+ transientPos -= parentWin->geometry().topLeft();
-+ if (parent_wayland_window->decoration()) {
-+ transientPos.setX(transientPos.x() + parent_wayland_window->decoration()->margins().left());
-+ transientPos.setY(transientPos.y() + parent_wayland_window->decoration()->margins().top());
-+ }
-+
-+ uint32_t flags = 0;
-+ Qt::WindowFlags wf = m_window->window()->flags();
-+ if (wf.testFlag(Qt::ToolTip)
-+ || wf.testFlag(Qt::WindowTransparentForInput))
-+ flags |= XDG_SURFACE_SET_TRANSIENT_FOR;
-+
-+ set_transient_for(parent_wayland_window->object());
-+}
-+
-+void QWaylandXdgSurface::setTitle(const QString & title)
-+{
-+ return QtWayland::xdg_surface::set_title(title);
-+}
-+
-+void QWaylandXdgSurface::setAppId(const QString & appId)
-+{
-+ return QtWayland::xdg_surface::set_app_id(appId);
-+}
-+
-+void QWaylandXdgSurface::xdg_surface_ping(uint32_t serial)
-+{
-+ pong(serial);
-+}
-+
-+void QWaylandXdgSurface::xdg_surface_configure(uint32_t edges, int32_t width,
-+ int32_t height)
-+{
-+ m_window->configure(edges, width, height);
-+}
-+
-+
-+QT_END_NAMESPACE
-diff --git a/src/client/qwaylandxdgsurface_p.h b/src/client/qwaylandxdgsurface_p.h
-new file mode 100644
-index 0000000..744d3f3
---- /dev/null
-+++ b/src/client/qwaylandxdgsurface_p.h
-@@ -0,0 +1,105 @@
-+/****************************************************************************
-+**
-+** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
-+** Contact: http://www.qt-project.org/legal
-+**
-+** This file is part of the config.tests of the Qt Toolkit.
-+**
-+** $QT_BEGIN_LICENSE:LGPL$
-+** Commercial License Usage
-+** Licensees holding valid commercial Qt licenses may use this file in
-+** accordance with the commercial license agreement provided with the
-+** Software or, alternatively, in accordance with the terms contained in
-+** a written agreement between you and Digia. For licensing terms and
-+** conditions see http://qt.digia.com/licensing. For further information
-+** use the contact form at http://qt.digia.com/contact-us.
-+**
-+** GNU Lesser General Public License Usage
-+** Alternatively, this file may be used under the terms of the GNU Lesser
-+** General Public License version 2.1 as published by the Free Software
-+** Foundation and appearing in the file LICENSE.LGPL included in the
-+** packaging of this file. Please review the following information to
-+** ensure the GNU Lesser General Public License version 2.1 requirements
-+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-+**
-+** In addition, as a special exception, Digia gives you certain additional
-+** rights. These rights are described in the Digia Qt LGPL Exception
-+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-+**
-+** GNU General Public License Usage
-+** Alternatively, this file may be used under the terms of the GNU
-+** General Public License version 3.0 as published by the Free Software
-+** Foundation and appearing in the file LICENSE.GPL included in the
-+** packaging of this file. Please review the following information to
-+** ensure the GNU General Public License version 3.0 requirements will be
-+** met: http://www.gnu.org/copyleft/gpl.html.
-+**
-+**
-+** $QT_END_LICENSE$
-+**
-+****************************************************************************/
-+
-+#ifndef QWAYLANDXDGSURFACE_H
-+#define QWAYLANDXDGSURFACE_H
-+
-+#include <QtCore/QSize>
-+
-+#include <wayland-client.h>
-+
-+#include <QtWaylandClient/private/qwayland-xdg-shell.h>
-+#include <QtWaylandClient/private/qwaylandclientexport_p.h>
-+#include "qwaylandshellsurface_p.h"
-+
-+QT_BEGIN_NAMESPACE
-+
-+class QWaylandWindow;
-+class QWaylandInputDevice;
-+class QWindow;
-+
-+class Q_WAYLAND_CLIENT_EXPORT QWaylandXdgSurface : public QtWayland::xdg_surface
-+ , public QWaylandShellSurface
-+{
-+public:
-+ QWaylandXdgSurface(struct ::xdg_surface *shell_surface, QWaylandWindow *window);
-+ virtual ~QWaylandXdgSurface();
-+
-+ using QtWayland::xdg_surface::resize;
-+ void resize(QWaylandInputDevice *inputDevice, enum resize_edge edges);
-+
-+ void resize(QWaylandInputDevice *inputDevice, enum wl_shell_surface_resize edges) Q_DECL_OVERRIDE;
-+
-+ using QtWayland::xdg_surface::move;
-+ void move(QWaylandInputDevice *inputDevice) Q_DECL_OVERRIDE;
-+
-+ void setTitle(const QString &title) Q_DECL_OVERRIDE;
-+ void setAppId(const QString &appId) Q_DECL_OVERRIDE;
-+
-+ bool isFullscreen() const { return m_fullscreen; }
-+ bool isMaximized() const { return m_maximized; }
-+
-+private:
-+ void setMaximized() Q_DECL_OVERRIDE;
-+ void setFullscreen() Q_DECL_OVERRIDE;
-+ void setNormal() Q_DECL_OVERRIDE;
-+ void setMinimized() Q_DECL_OVERRIDE;
-+
-+ void setTopLevel() Q_DECL_OVERRIDE;
-+ void updateTransientParent(QWindow *parent) Q_DECL_OVERRIDE;
-+
-+private:
-+ QWaylandWindow *m_window;
-+ bool m_maximized;
-+ bool m_minimized;
-+ bool m_fullscreen;
-+ QSize m_size;
-+
-+ void xdg_surface_ping(uint32_t serial) Q_DECL_OVERRIDE;
-+ void xdg_surface_configure(uint32_t edges,
-+ int32_t width,
-+ int32_t height) Q_DECL_OVERRIDE;
-+ friend class QWaylandWindow;
-+};
-+
-+QT_END_NAMESPACE
-+
-+#endif // QWAYLANDXDGSURFACE_H
---
-1.9.1
-
diff --git a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland/0019-xdg-shell-upgrade-to-support-current-version-weston-.patch b/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland/0019-xdg-shell-upgrade-to-support-current-version-weston-.patch
deleted file mode 100644
index 8f0425a76..000000000
--- a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland/0019-xdg-shell-upgrade-to-support-current-version-weston-.patch
+++ /dev/null
@@ -1,772 +0,0 @@
-From c4219cca0febd7119e0bec776fdc2877b3448e0b Mon Sep 17 00:00:00 2001
-From: Philippe Coval <philippe.coval@open.eurogiciel.org>
-Date: Tue, 10 Jun 2014 16:22:17 +0200
-Subject: [PATCH 19/21] xdg-shell: upgrade to support current version
- (weston-1.5.0)
-
-The protocol file is a raw copy of
-
-Source: http://cgit.freedesktop.org/wayland/weston/plain/protocol/xdg-shell.xml?id=1.5.0
-
-Task-number: QTBUG-38633/related
-Reviewed-by: Giulio Camuffo <giulio.camuffo@jollamobile.com>
-Reviewed-by: Philippe Coval <rzr@gna.org>
-Origin: https://www.qt.gitorious.org/qt/qtwayland/commit/4bac130b97fbaa565aa9883eb302557ef0185d50
-Change-Id: I41ca2f89c09a8b6348ce2fbf6d59f44b4c81ffff
----
- src/3rdparty/protocol/xdg-shell.xml | 288 ++++++++++++++++++------------------
- src/client/client.pro | 2 +
- src/client/qwaylanddisplay.cpp | 10 +-
- src/client/qwaylanddisplay_p.h | 5 +-
- src/client/qwaylandxdgshell.cpp | 77 ++++++++++
- src/client/qwaylandxdgshell_p.h | 73 +++++++++
- src/client/qwaylandxdgsurface.cpp | 60 ++++++--
- src/client/qwaylandxdgsurface_p.h | 11 +-
- 8 files changed, 364 insertions(+), 162 deletions(-)
- create mode 100644 src/client/qwaylandxdgshell.cpp
- create mode 100644 src/client/qwaylandxdgshell_p.h
-
-diff --git a/src/3rdparty/protocol/xdg-shell.xml b/src/3rdparty/protocol/xdg-shell.xml
-index 4e5cff8..79a2831 100644
---- a/src/3rdparty/protocol/xdg-shell.xml
-+++ b/src/3rdparty/protocol/xdg-shell.xml
-@@ -40,19 +40,22 @@
-
- <enum name="version">
- <description summary="latest protocol version">
-- Use this enum to check the protocol version, and it will be updated
-- automatically.
-+ The 'current' member of this enum gives the version of the
-+ protocol. Implementations can compare this to the version
-+ they implement using static_assert to ensure the protocol and
-+ implementation versions match.
- </description>
-- <entry name="current" value="1" summary="Always the latest version"/>
-+ <entry name="current" value="3" summary="Always the latest version"/>
- </enum>
-
-
- <request name="use_unstable_version">
- <description summary="enable use of this unstable version">
-- Use this request in order to enable use of this interface.
--
-- Understand and agree that one is using an unstable interface,
-- that will likely change in the future, breaking the API.
-+ Negotiate the unstable version of the interface. This
-+ mechanism is in place to ensure client and server agree on the
-+ unstable versions of the protocol that they speak or exit
-+ cleanly if they don't agree. This request will go away once
-+ the xdg-shell protocol is stable.
- </description>
- <arg name="version" type="int"/>
- </request>
-@@ -84,6 +87,28 @@
- <arg name="y" type="int"/>
- <arg name="flags" type="uint"/>
- </request>
-+
-+ <event name="ping">
-+ <description summary="check if the client is alive">
-+ The ping event asks the client if it's still alive. Pass the
-+ serial specified in the event back to the compositor by sending
-+ a "pong" request back with the specified serial.
-+
-+ Compositors can use this to determine if the client is still
-+ alive. It's unspecified what will happen if the client doesn't
-+ respond to the ping request, or in what timeframe. Clients should
-+ try to respond in a reasonable amount of time.
-+ </description>
-+ <arg name="serial" type="uint" summary="pass this to the callback"/>
-+ </event>
-+
-+ <request name="pong">
-+ <description summary="respond to a ping event">
-+ A client must respond to a ping event with a pong request or
-+ the client may be deemed unresponsive.
-+ </description>
-+ <arg name="serial" type="uint" summary="serial of the ping event"/>
-+ </request>
- </interface>
-
- <interface name="xdg_surface" version="1">
-@@ -124,6 +149,32 @@
- <arg name="parent" type="object" interface="wl_surface" allow-null="true"/>
- </request>
-
-+ <request name="set_margin">
-+ <description summary="set the visible frame boundaries">
-+ This tells the compositor what the visible size of the window
-+ should be, so it can use it to determine what borders to use for
-+ constrainment and alignment.
-+
-+ CSD often has invisible areas for decoration purposes, like drop
-+ shadows. These "shadow" drawings need to be subtracted out of the
-+ normal boundaries of the window when computing where to place
-+ windows (e.g. to set this window so it's centered on top of another,
-+ or to put it to the left or right of the screen.)
-+
-+ This value should change as little as possible at runtime, to
-+ prevent flicker.
-+
-+ This value is also ignored when the window is maximized or
-+ fullscreen, and assumed to be 0.
-+
-+ If never called, this value is assumed to be 0.
-+ </description>
-+ <arg name="left_margin" type="int"/>
-+ <arg name="right_margin" type="int"/>
-+ <arg name="top_margin" type="int"/>
-+ <arg name="bottom_margin" type="int"/>
-+ </request>
-+
- <request name="set_title">
- <description summary="set surface title">
- Set a short title for the surface.
-@@ -150,22 +201,6 @@
- <arg name="app_id" type="string"/>
- </request>
-
-- <request name="pong">
-- <description summary="respond to a ping event">
-- A client must respond to a ping event with a pong request or
-- the client may be deemed unresponsive.
-- </description>
-- <arg name="serial" type="uint" summary="serial of the ping event"/>
-- </request>
--
-- <event name="ping">
-- <description summary="ping client">
-- Ping a client to check if it is receiving events and sending
-- requests. A client is expected to reply with a pong request.
-- </description>
-- <arg name="serial" type="uint"/>
-- </event>
--
- <request name="move">
- <description summary="start an interactive move">
- Start a pointer-driven move of the surface.
-@@ -217,12 +252,6 @@
- ignore it if it doesn't resize, pick a smaller size (to
- satisfy aspect ratio or resize in steps of NxM pixels).
-
-- The edges parameter provides a hint about how the surface
-- was resized. The client may use this information to decide
-- how to adjust its content to the new size (e.g. a scrolling
-- area might adjust its content position to leave the viewable
-- content unmoved). Valid edge values are from resize_edge enum.
--
- The client is free to dismiss all but the last configure
- event it received.
-
-@@ -230,7 +259,6 @@
- in surface local coordinates.
- </description>
-
-- <arg name="edges" type="uint"/>
- <arg name="width" type="int"/>
- <arg name="height" type="int"/>
- </event>
-@@ -250,128 +278,122 @@
- <arg name="output" type="object" interface="wl_output" allow-null="true"/>
- </request>
-
-- <event name="request_set_fullscreen">
-- <description summary="server requests that the client set fullscreen">
-- Event sent from the compositor to the client requesting that the client
-- goes to a fullscreen state. It's the client job to call set_fullscreen
-- and really trigger the fullscreen state.
-- </description>
-- </event>
--
-- <event name="request_unset_fullscreen">
-- <description summary="server requests that the client unset fullscreen">
-- Event sent from the compositor to the client requesting that the client
-- leaves the fullscreen state. It's the client job to call
-- unset_fullscreen and really leave the fullscreen state.
-- </description>
-- </event>
-+ <enum name="state">
-+ <description summary="types of state on the surface">
-+ The different state values used on the surface. This is designed for
-+ state values like maximized, fullscreen. It is paired with the
-+ request_change_state event to ensure that both the client and the
-+ compositor setting the state can be synchronized.
-
-- <request name="set_fullscreen">
-- <description summary="set the surface state as fullscreen">
-- Set the surface as fullscreen.
-+ States set in this way are double-buffered. They will get applied on
-+ the next commit.
-
-- After this request, the compositor should send a configure event
-- informing the output size.
-+ Desktop environments may extend this enum by taking up a range of
-+ values and documenting the range they chose in this description.
-+ They are not required to document the values for the range that they
-+ chose. Ideally, any good extensions from a desktop environment should
-+ make its way into standardization into this enum.
-
-- This request informs the compositor that the next attached buffer
-- committed will be in a fullscreen state. The buffer size should be the
-- same size as the size informed in the configure event, if the client
-- doesn't want to leave any empty area.
-+ The current reserved ranges are:
-
-- In other words: the next attached buffer after set_maximized is the new
-- maximized buffer. And the surface will be positioned at the maximized
-- position on commit.
--
-- A simple way to synchronize and wait for the correct configure event is
-- to use a wl_display.sync request right after the set_fullscreen
-- request. When the sync callback returns, the last configure event
-- received just before it will be the correct one, and should contain the
-- right size for the surface to maximize.
--
-- Setting one state won't unset another state. Use
-- xdg_surface.unset_fullscreen for unsetting it.
-+ 0x0000 - 0x0FFF: xdg-shell core values, documented below.
-+ 0x1000 - 0x1FFF: GNOME
- </description>
-- </request>
-+ <entry name="maximized" value="1" summary="the surface is maximized">
-+ A non-zero value indicates the surface is maximized. Otherwise,
-+ the surface is unmaximized.
-+ </entry>
-+ <entry name="fullscreen" value="2" summary="the surface is fullscreen">
-+ A non-zero value indicates the surface is fullscreen. Otherwise,
-+ the surface is not fullscreen.
-+ </entry>
-+ </enum>
-
-- <request name="unset_fullscreen">
-- <description summary="unset the surface state as fullscreen">
-- Unset the surface fullscreen state.
-+ <request name="request_change_state">
-+ <description summary="client requests to change a surface's state">
-+ This asks the compositor to change the state. If the compositor wants
-+ to change the state, it will send a change_state event with the same
-+ state_type, value, and serial, and the event flow continues as if it
-+ it was initiated by the compositor.
-
-- Same negotiation as set_fullscreen must be used.
-+ If the compositor does not want to change the state, it will send a
-+ change_state to the client with the old value of the state.
- </description>
-+ <arg name="state_type" type="uint" summary="the state to set"/>
-+ <arg name="value" type="uint" summary="the value to change the state to"/>
-+ <arg name="serial" type="uint" summary="an event serial">
-+ This serial is so the client can know which change_state event corresponds
-+ to which request_change_state request it sent out.
-+ </arg>
- </request>
-
-- <event name="request_set_maximized">
-- <description summary="server requests that the client set maximized">
-- Event sent from the compositor to the client requesting that the client
-- goes to a maximized state. It's the client job to call set_maximized
-- and really trigger the maximized state.
-+ <event name="change_state">
-+ <description summary="compositor wants to change a surface's state">
-+ This event tells the client to change a surface's state. The client
-+ should respond with an ack_change_state request to the compositor to
-+ guarantee that the compositor knows that the client has seen it.
- </description>
-- </event>
-
-- <event name="request_unset_maximized">
-- <description summary="server requests that the client unset maximized">
-- Event sent from the compositor to the client requesting that the client
-- leaves the maximized state. It's the client job to call unset_maximized
-- and really leave the maximized state.
-- </description>
-+ <arg name="state_type" type="uint" summary="the state to set"/>
-+ <arg name="value" type="uint" summary="the value to change the state to"/>
-+ <arg name="serial" type="uint" summary="a serial for the compositor's own tracking"/>
- </event>
-
-- <request name="set_maximized">
-- <description summary="set the surface state as maximized">
-- Set the surface as maximized.
--
-- After this request, the compositor will send a configure event
-- informing the output size minus panel and other MW decorations.
--
-- This request informs the compositor that the next attached buffer
-- committed will be in a maximized state. The buffer size should be the
-- same size as the size informed in the configure event, if the client
-- doesn't want to leave any empty area.
-+ <request name="ack_change_state">
-+ <description summary="ack a change_state event">
-+ When a change_state event is received, a client should then ack it
-+ using the ack_change_state request to ensure that the compositor
-+ knows the client has seen the event.
-
-- In other words: the next attached buffer after set_maximized is the new
-- maximized buffer. And the surface will be positioned at the maximized
-- position on commit.
-+ By this point, the state is confirmed, and the next attach should
-+ contain the buffer drawn for the new state value.
-
-- A simple way to synchronize and wait for the correct configure event is
-- to use a wl_display.sync request right after the set_maximized request.
-- When the sync callback returns, the last configure event received just
-- before it will be the correct one, and should contain the right size
-- for the surface to maximize.
--
-- Setting one state won't unset another state. Use
-- xdg_surface.unset_maximized for unsetting it.
-+ The values here need to be the same as the values in the cooresponding
-+ change_state event.
- </description>
-+ <arg name="state_type" type="uint" summary="the state to set"/>
-+ <arg name="value" type="uint" summary="the value to change the state to"/>
-+ <arg name="serial" type="uint" summary="a serial to pass to change_state"/>
- </request>
-
-- <request name="unset_maximized">
-- <description summary="unset the surface state as maximized">
-- Unset the surface maximized state.
--
-- Same negotiation as set_maximized must be used.
-+ <request name="set_minimized">
-+ <description summary="minimize the surface">
-+ Minimize the surface.
- </description>
- </request>
-
-- <request name="set_minimized">
-- <description summary="set the surface state as minimized">
-- Set the surface minimized state.
--
-- Setting one state won't unset another state.
-+ <event name="activated">
-+ <description summary="surface was activated">
-+ The activated_set event is sent when this surface has been
-+ activated, which means that the surface has user attention.
-+ Window decorations should be updated accordingly. You should
-+ not use this event for anything but the style of decorations
-+ you display, use wl_keyboard.enter and wl_keyboard.leave for
-+ determining keyboard focus.
- </description>
-- </request>
-+ </event>
-
-- <event name="focused_set">
-- <description summary="surface was focused">
-- The focused_set event is sent when this surface has been
-- activated. Window decorations should be updated accordingly.
-+ <event name="deactivated">
-+ <description summary="surface was deactivated">
-+ The deactivate event is sent when this surface has been
-+ deactivated, which means that the surface lost user attention.
-+ Window decorations should be updated accordingly. You should
-+ not use this event for anything but the style of decorations
-+ you display, use wl_keyboard.enter and wl_keyboard.leave for
-+ determining keyboard focus.
- </description>
- </event>
-
-- <event name="focused_unset">
-- <description summary="surface was unfocused">
-- The focused_unset event is sent when this surface has been
-- deactivated, because another surface has been activated. Window
-- decorations should be updated accordingly.
-+ <event name="close">
-+ <description summary="surface wants to be closed">
-+ The close event is sent by the compositor when the user
-+ wants the surface to be closed. This should be equivalent to
-+ the user clicking the close button in client-side decorations,
-+ if your application has any...
-+
-+ This is only a request that the user intends to close your
-+ window. The client may choose to ignore this request, or show
-+ a dialog to ask the user to save their data...
- </description>
- </event>
- </interface>
-@@ -409,22 +431,6 @@
- </description>
- </request>
-
-- <request name="pong">
-- <description summary="respond to a ping event">
-- A client must respond to a ping event with a pong request or
-- the client may be deemed unresponsive.
-- </description>
-- <arg name="serial" type="uint" summary="serial of the ping event"/>
-- </request>
--
-- <event name="ping">
-- <description summary="ping client">
-- Ping a client to check if it is receiving events and sending
-- requests. A client is expected to reply with a pong request.
-- </description>
-- <arg name="serial" type="uint"/>
-- </event>
--
- <event name="popup_done">
- <description summary="popup interaction is done">
- The popup_done event is sent out when a popup grab is broken,
-diff --git a/src/client/client.pro b/src/client/client.pro
-index 9ecf82f..73e3b7f 100644
---- a/src/client/client.pro
-+++ b/src/client/client.pro
-@@ -59,6 +59,7 @@ SOURCES += qwaylandintegration.cpp \
- qwaylanddatasource.cpp \
- qwaylandshellsurface.cpp \
- qwaylandwlshellsurface.cpp \
-+ qwaylandxdgshell.cpp \
- qwaylandxdgsurface.cpp \
- qwaylandextendedoutput.cpp \
- qwaylandextendedsurface.cpp \
-@@ -89,6 +90,7 @@ HEADERS += qwaylandintegration_p.h \
- qwaylanddatasource_p.h \
- qwaylandshellsurface_p.h \
- qwaylandwlshellsurface_p.h \
-+ qwaylandxdgshell_p.h \
- qwaylandxdgsurface_p.h \
- qwaylandextendedoutput_p.h \
- qwaylandextendedsurface_p.h \
-diff --git a/src/client/qwaylanddisplay.cpp b/src/client/qwaylanddisplay.cpp
-index 7f953ad..2e25672 100644
---- a/src/client/qwaylanddisplay.cpp
-+++ b/src/client/qwaylanddisplay.cpp
-@@ -50,7 +50,7 @@
- #include "qwaylandclipboard_p.h"
- #include "qwaylanddatadevicemanager_p.h"
- #include "qwaylandhardwareintegration_p.h"
--
-+#include "qwaylandxdgshell_p.h"
-
- #include "qwaylandwindowmanagerintegration_p.h"
-
-@@ -209,8 +209,7 @@ void QWaylandDisplay::registry_global(uint32_t id, const QString &interface, uin
- mShm = static_cast<struct wl_shm *>(wl_registry_bind(registry, id, &wl_shm_interface,1));
- } else if (interface == QStringLiteral("xdg_shell")
- && qEnvironmentVariableIsSet("QT_WAYLAND_USE_XDG_SHELL")) {
-- mShellXdg.reset(new QtWayland::xdg_shell(registry, id));
-- mShellXdg->use_unstable_version(QtWayland::xdg_shell::version_current);
-+ mShellXdg.reset(new QWaylandXdgShell(registry,id));
- } else if (interface == QStringLiteral("wl_shell")){
- mShell.reset(new QtWayland::wl_shell(registry, id));
- } else if (interface == QStringLiteral("wl_seat")) {
-@@ -275,4 +274,9 @@ void QWaylandDisplay::forceRoundTrip()
- wl_display_roundtrip(mDisplay);
- }
-
-+QtWayland::xdg_shell *QWaylandDisplay::shellXdg()
-+{
-+ return mShellXdg.data();
-+}
-+
- QT_END_NAMESPACE
-diff --git a/src/client/qwaylanddisplay_p.h b/src/client/qwaylanddisplay_p.h
-index cf5dfc2..f1b35a7 100644
---- a/src/client/qwaylanddisplay_p.h
-+++ b/src/client/qwaylanddisplay_p.h
-@@ -72,6 +72,7 @@ class QWaylandWindow;
- class QWaylandEventThread;
- class QWaylandIntegration;
- class QWaylandHardwareIntegration;
-+class QWaylandXdgShell;
-
- namespace QtWayland {
- class qt_output_extension;
-@@ -115,7 +116,7 @@ public:
- QtWayland::wl_compositor *compositor() { return &mCompositor; }
-
- QtWayland::wl_shell *shell() { return mShell.data(); }
-- QtWayland::xdg_shell *shellXdg() { return mShellXdg.data(); }
-+ QtWayland::xdg_shell *shellXdg();
-
- QList<QWaylandInputDevice *> inputDevices() const { return mInputDevices; }
- QWaylandInputDevice *defaultInputDevice() const;
-@@ -171,7 +172,7 @@ private:
- QThread *mEventThread;
- QWaylandEventThread *mEventThreadObject;
- QScopedPointer<QtWayland::wl_shell> mShell;
-- QScopedPointer<QtWayland::xdg_shell> mShellXdg;
-+ QScopedPointer<QWaylandXdgShell> mShellXdg;
- QList<QPlatformScreen *> mScreens;
- QList<QWaylandInputDevice *> mInputDevices;
- QList<Listener> mRegistryListeners;
-diff --git a/src/client/qwaylandxdgshell.cpp b/src/client/qwaylandxdgshell.cpp
-new file mode 100644
-index 0000000..eb9f91c
---- /dev/null
-+++ b/src/client/qwaylandxdgshell.cpp
-@@ -0,0 +1,77 @@
-+/****************************************************************************
-+**
-+** Copyright (C) 2014 Eurogiciel, author: <philippe.coval@eurogiciel.fr>
-+** Contact: http://www.qt-project.org/legal
-+**
-+** This file is part of the config.tests of the Qt Toolkit.
-+**
-+** $QT_BEGIN_LICENSE:LGPL$
-+** Commercial License Usage
-+** Licensees holding valid commercial Qt licenses may use this file in
-+** accordance with the commercial license agreement provided with the
-+** Software or, alternatively, in accordance with the terms contained in
-+** a written agreement between you and Digia. For licensing terms and
-+** conditions see http://qt.digia.com/licensing. For further information
-+** use the contact form at http://qt.digia.com/contact-us.
-+**
-+** GNU Lesser General Public License Usage
-+** Alternatively, this file may be used under the terms of the GNU Lesser
-+** General Public License version 2.1 as published by the Free Software
-+** Foundation and appearing in the file LICENSE.LGPL included in the
-+** packaging of this file. Please review the following information to
-+** ensure the GNU Lesser General Public License version 2.1 requirements
-+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-+**
-+** In addition, as a special exception, Digia gives you certain additional
-+** rights. These rights are described in the Digia Qt LGPL Exception
-+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-+**
-+** GNU General Public License Usage
-+** Alternatively, this file may be used under the terms of the GNU
-+** General Public License version 3.0 as published by the Free Software
-+** Foundation and appearing in the file LICENSE.GPL included in the
-+** packaging of this file. Please review the following information to
-+** ensure the GNU General Public License version 3.0 requirements will be
-+** met: http://www.gnu.org/copyleft/gpl.html.
-+**
-+**
-+** $QT_END_LICENSE$
-+**
-+****************************************************************************/
-+
-+#include "qwaylandxdgshell_p.h"
-+
-+#include "qwaylanddisplay_p.h"
-+#include "qwaylandwindow_p.h"
-+#include "qwaylandinputdevice_p.h"
-+#include "qwaylanddecoration_p.h"
-+#include "qwaylandscreen_p.h"
-+
-+#include <QtCore/QDebug>
-+
-+QT_BEGIN_NAMESPACE
-+
-+QWaylandXdgShell::QWaylandXdgShell(struct ::xdg_shell *shell)
-+ : QtWayland::xdg_shell(shell)
-+{
-+}
-+
-+QWaylandXdgShell::QWaylandXdgShell(struct ::wl_registry *registry, uint32_t id)
-+ : QtWayland::xdg_shell(registry, id)
-+{
-+ use_unstable_version(QtWayland::xdg_shell::version_current);
-+}
-+
-+QWaylandXdgShell::~QWaylandXdgShell()
-+{
-+ xdg_shell_destroy(object());
-+}
-+
-+
-+void QWaylandXdgShell::xdg_shell_ping(uint32_t serial)
-+{
-+ pong(serial);
-+}
-+
-+
-+QT_END_NAMESPACE
-diff --git a/src/client/qwaylandxdgshell_p.h b/src/client/qwaylandxdgshell_p.h
-new file mode 100644
-index 0000000..6a396bd
---- /dev/null
-+++ b/src/client/qwaylandxdgshell_p.h
-@@ -0,0 +1,73 @@
-+/****************************************************************************
-+**
-+** Copyright (C) 2014 Eurogiciel, author: <philippe.coval@eurogiciel.fr>
-+** Contact: http://www.qt-project.org/legal
-+**
-+** This file is part of the config.tests of the Qt Toolkit.
-+**
-+** $QT_BEGIN_LICENSE:LGPL$
-+** Commercial License Usage
-+** Licensees holding valid commercial Qt licenses may use this file in
-+** accordance with the commercial license agreement provided with the
-+** Software or, alternatively, in accordance with the terms contained in
-+** a written agreement between you and Digia. For licensing terms and
-+** conditions see http://qt.digia.com/licensing. For further information
-+** use the contact form at http://qt.digia.com/contact-us.
-+**
-+** GNU Lesser General Public License Usage
-+** Alternatively, this file may be used under the terms of the GNU Lesser
-+** General Public License version 2.1 as published by the Free Software
-+** Foundation and appearing in the file LICENSE.LGPL included in the
-+** packaging of this file. Please review the following information to
-+** ensure the GNU Lesser General Public License version 2.1 requirements
-+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-+**
-+** In addition, as a special exception, Digia gives you certain additional
-+** rights. These rights are described in the Digia Qt LGPL Exception
-+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-+**
-+** GNU General Public License Usage
-+** Alternatively, this file may be used under the terms of the GNU
-+** General Public License version 3.0 as published by the Free Software
-+** Foundation and appearing in the file LICENSE.GPL included in the
-+** packaging of this file. Please review the following information to
-+** ensure the GNU General Public License version 3.0 requirements will be
-+** met: http://www.gnu.org/copyleft/gpl.html.
-+**
-+**
-+** $QT_END_LICENSE$
-+**
-+****************************************************************************/
-+
-+#ifndef QWAYLANDXDGSHELL_H
-+#define QWAYLANDXDGSHELL_H
-+
-+#include <QtCore/QSize>
-+
-+#include <wayland-client.h>
-+
-+#include <QtWaylandClient/private/qwayland-xdg-shell.h>
-+#include <QtWaylandClient/private/qwaylandclientexport_p.h>
-+#include "qwaylandshellsurface_p.h"
-+
-+QT_BEGIN_NAMESPACE
-+
-+class QWaylandWindow;
-+class QWaylandInputDevice;
-+class QWindow;
-+
-+class Q_WAYLAND_CLIENT_EXPORT QWaylandXdgShell : public QtWayland::xdg_shell
-+{
-+public:
-+ QWaylandXdgShell(struct ::xdg_shell *shell);
-+ QWaylandXdgShell(struct ::wl_registry *registry, uint32_t id);
-+
-+ virtual ~QWaylandXdgShell();
-+
-+private:
-+ void xdg_shell_ping(uint32_t serial) Q_DECL_OVERRIDE;
-+};
-+
-+QT_END_NAMESPACE
-+
-+#endif // QWAYLANDXDGSHELL_H
-diff --git a/src/client/qwaylandxdgsurface.cpp b/src/client/qwaylandxdgsurface.cpp
-index 1b8affa..5fb74d2 100644
---- a/src/client/qwaylandxdgsurface.cpp
-+++ b/src/client/qwaylandxdgsurface.cpp
-@@ -87,23 +87,25 @@ void QWaylandXdgSurface::move(QWaylandInputDevice *inputDevice)
-
- void QWaylandXdgSurface::setMaximized()
- {
-- m_maximized = true;
-- m_size = m_window->window()->geometry().size();
-- set_maximized();
-+ if (!m_maximized)
-+ request_change_state(XDG_SURFACE_STATE_MAXIMIZED, true, 0);
- }
-
- void QWaylandXdgSurface::setFullscreen()
- {
-- m_fullscreen = true;
-- m_size = m_window->window()->geometry().size();
-- set_fullscreen();
-+ if (!m_fullscreen)
-+ request_change_state(XDG_SURFACE_STATE_FULLSCREEN, true, 0);
- }
-
- void QWaylandXdgSurface::setNormal()
- {
- if (m_fullscreen || m_maximized || m_minimized) {
-- if (m_maximized) { unset_maximized(); }
-- if (m_fullscreen) { unset_fullscreen(); }
-+ if (m_maximized) {
-+ request_change_state(XDG_SURFACE_STATE_MAXIMIZED, false, 0);
-+ }
-+ if (m_fullscreen) {
-+ request_change_state(XDG_SURFACE_STATE_FULLSCREEN, false, 0);
-+ }
-
- m_fullscreen = m_maximized = m_minimized = false;
- setTopLevel();
-@@ -158,16 +160,48 @@ void QWaylandXdgSurface::setAppId(const QString & appId)
- return QtWayland::xdg_surface::set_app_id(appId);
- }
-
--void QWaylandXdgSurface::xdg_surface_ping(uint32_t serial)
-+void QWaylandXdgSurface::xdg_surface_configure(int32_t width, int32_t height)
- {
-- pong(serial);
-+ m_window->configure(0 , width, height);
- }
-
--void QWaylandXdgSurface::xdg_surface_configure(uint32_t edges, int32_t width,
-- int32_t height)
-+void QWaylandXdgSurface::xdg_surface_change_state(uint32_t state,
-+ uint32_t value,
-+ uint32_t serial)
- {
-- m_window->configure(edges, width, height);
-+
-+ if (state == XDG_SURFACE_STATE_MAXIMIZED
-+ || state == XDG_SURFACE_STATE_FULLSCREEN) {
-+ if (value) {
-+ m_size = m_window->window()->geometry().size();
-+ } else {
-+ QMargins m = m_window->frameMargins();
-+ m_window->configure(0, m_size.width() + m.left() + m.right(), m_size.height() + m.top() + m.bottom());
-+ }
-+ }
-+
-+ switch (state) {
-+ case XDG_SURFACE_STATE_MAXIMIZED:
-+ m_maximized = value;
-+ break;
-+ case XDG_SURFACE_STATE_FULLSCREEN:
-+ m_fullscreen = value;
-+ break;
-+ }
-+
-+ xdg_surface_ack_change_state(object(), state, value, serial);
- }
-
-+void QWaylandXdgSurface::xdg_surface_activated()
-+{
-+}
-+
-+void QWaylandXdgSurface::xdg_surface_deactivated()
-+{
-+}
-+
-+void QWaylandXdgSurface::xdg_surface_close()
-+{
-+}
-
- QT_END_NAMESPACE
-diff --git a/src/client/qwaylandxdgsurface_p.h b/src/client/qwaylandxdgsurface_p.h
-index 744d3f3..d2a154e 100644
---- a/src/client/qwaylandxdgsurface_p.h
-+++ b/src/client/qwaylandxdgsurface_p.h
-@@ -93,10 +93,15 @@ private:
- bool m_fullscreen;
- QSize m_size;
-
-- void xdg_surface_ping(uint32_t serial) Q_DECL_OVERRIDE;
-- void xdg_surface_configure(uint32_t edges,
-- int32_t width,
-+ void xdg_surface_configure(int32_t width,
- int32_t height) Q_DECL_OVERRIDE;
-+ void xdg_surface_change_state(uint32_t state,
-+ uint32_t value,
-+ uint32_t serial) Q_DECL_OVERRIDE;
-+ void xdg_surface_activated() Q_DECL_OVERRIDE;
-+ void xdg_surface_deactivated() Q_DECL_OVERRIDE;
-+ void xdg_surface_close() Q_DECL_OVERRIDE;
-+
- friend class QWaylandWindow;
- };
-
---
-1.9.1
-
diff --git a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland/0020-Add-IVI-Shell-protocol-file-version-patch-v6.patch b/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland/0020-Add-IVI-Shell-protocol-file-version-patch-v6.patch
deleted file mode 100644
index 413459fb6..000000000
--- a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland/0020-Add-IVI-Shell-protocol-file-version-patch-v6.patch
+++ /dev/null
@@ -1,128 +0,0 @@
-From b4f032b13338ad6c21024177b031c75063ef7493 Mon Sep 17 00:00:00 2001
-From: Manuel Bachmann <manuel.bachmann@open.eurogiciel.org>
-Date: Sun, 7 Sep 2014 08:19:30 +0200
-Subject: [PATCH 20/21] Add IVI-Shell protocol file version patch v6
-
-Source : http://lists.freedesktop.org/archives/wayland-devel/2014-June/015617.html
-
-This file comes from the last proposed definition of the IVI-Shell protocol,
-and will need to be refreshed on protocol update.
-
-Task-number: QTBUG-XXXXX/part/1of2
-
-Signed-off-by: Manuel Bachmann <manuel.bachmann@open.eurogiciel.org>
----
- src/3rdparty/protocol/ivi-application.xml | 101 ++++++++++++++++++++++++++++++
- 1 file changed, 101 insertions(+)
- create mode 100644 src/3rdparty/protocol/ivi-application.xml
-
-diff --git a/src/3rdparty/protocol/ivi-application.xml b/src/3rdparty/protocol/ivi-application.xml
-new file mode 100644
-index 0000000..833fd38
---- /dev/null
-+++ b/src/3rdparty/protocol/ivi-application.xml
-@@ -0,0 +1,101 @@
-+<?xml version="1.0" encoding="UTF-8"?>
-+<protocol name="ivi_application">
-+
-+ <copyright>
-+ Copyright (C) 2013 DENSO CORPORATION
-+ Copyright (c) 2013 BMW Car IT GmbH
-+
-+ 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 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.
-+ </copyright>
-+
-+ <interface name="ivi_surface" version="1">
-+ <description summary="application interface to surface in ivi compositor"/>
-+
-+ <request name="destroy" type="destructor">
-+ <description summary="destroy ivi_surface">
-+ This removes link from ivi_id to wl_surface and destroys ivi_surface.
-+ </description>
-+ </request>
-+
-+ <event name="visibility">
-+ <description summary="visibility of surface in ivi compositor has changed">
-+ The new visibility state is provided in argument visibility.
-+ If visibility is 0, the surface has become invisible.
-+ If visibility is not 0, the surface has become visible.
-+ </description>
-+ <arg name="visibility" type="int"/>
-+ </event>
-+
-+ <enum name="warning_code">
-+ <description summary="possible warning codes returned by ivi compositor">
-+ These define all possible warning codes returned by ivi compositor on server-side warnings.
-+ invalid_wl_surface:
-+ - wl_surface already has a another role.
-+ - wl_surface is destroyed before the ivi_surface is destroyed.
-+ ivi_id_in_use: ivi_id is already assigned by another application.
-+ </description>
-+ <entry name="invalid_wl_surface" value="1" summary="wl_surface is invalid"/>
-+ <entry name="ivi_id_in_use" value="2" summary="ivi_id is in use and can not be shared"/>
-+ </enum>
-+
-+ <event name="warning">
-+ <description summary="server-side warning detected">
-+ The ivi compositor encountered warning while processing a request by this
-+ application. The warning is defined by argument warning_code and optional
-+ warning_text. If the warning is detected, client shall destroy the ivi_surface
-+ object.
-+
-+ When a warning event is sent, the compositor turns the ivi_surface object inert.
-+ The ivi_surface will not deliver further events, all requests on it are ignored
-+ except 'destroy', and the association to the ivi_id is removed. The client
-+ should destroy the ivi_surface object. If an inert ivi_surface object is used as
-+ an argument to any other object's request, that request will [produce a fatal
-+ error / produce a warning / be ignored].
-+ </description>
-+ <arg name="warning_code" type="int"/>
-+ <arg name="warning_text" type="string" allow-null="true"/>
-+ </event>
-+
-+ </interface>
-+
-+ <interface name="ivi_application" version="1">
-+ <description summary="create ivi-style surfaces">
-+ This interface is implemented by servers that provide desktop-style user interfaces.
-+ It allows clients to associate a ivi_surface with a basic surface.
-+ </description>
-+
-+ <request name="surface_create">
-+ <description summary="create ivi_surface with numeric ID in ivi compositor">
-+ surface_create will create a interface:ivi_surface with numeric ID; ivi_id in
-+ ivi compositor. These ivi_ids are defined as unique in the system to identify
-+ it inside of ivi compositor. The ivi compositor implements business logic how to
-+ set properties of the surface with ivi_id according to status of the system.
-+ E.g. a unique ID for Car Navigation application is used for implementing special
-+ logic of the application about where it shall be located.
-+ if a wl_surface which already has another role is set, the server regards this as
-+ error and disconnects the client.
-+ </description>
-+ <arg name="ivi_id" type="uint"/>
-+ <arg name="surface" type="object" interface="wl_surface"/>
-+ <arg name="id" type="new_id" interface="ivi_surface"/>
-+ </request>
-+
-+ </interface>
-+
-+</protocol>
---
-1.9.1
-
diff --git a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland/0021-Implement-initial-IVI-Shell-support.patch b/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland/0021-Implement-initial-IVI-Shell-support.patch
deleted file mode 100644
index 8723def26..000000000
--- a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland/0021-Implement-initial-IVI-Shell-support.patch
+++ /dev/null
@@ -1,539 +0,0 @@
-From 1ddfa43692cabae0f552351cfbc09377e479471e Mon Sep 17 00:00:00 2001
-From: Manuel Bachmann <manuel.bachmann@open.eurogiciel.org>
-Date: Mon, 8 Sep 2014 11:38:01 +0200
-Subject: [PATCH 21/21] Implement initial IVI-Shell support
-
-IVI-Shell provides a shell interface for Weston, which maps the GENIVI API (http://www.genivi.org) for In-Vehicle Infotainment.
-
-This patch enables detecting the IVI-Shell interface at runtime, and creating compatible surfaces if found.
-
-Task-number: QTBUG-XXXXX/part/2of2
-
-Change-Id: I1f6c11bf56b727a54fb48faab9c076b61d635440
-Signed-off-by: Manuel Bachmann <manuel.bachmann@open.eurogiciel.org>
----
- src/client/client.pro | 5 ++
- src/client/qwaylanddisplay.cpp | 9 ++++
- src/client/qwaylanddisplay_p.h | 5 ++
- src/client/qwaylandivishell.cpp | 69 +++++++++++++++++++++++++
- src/client/qwaylandivishell_p.h | 70 +++++++++++++++++++++++++
- src/client/qwaylandivisurface.cpp | 105 ++++++++++++++++++++++++++++++++++++++
- src/client/qwaylandivisurface_p.h | 90 ++++++++++++++++++++++++++++++++
- src/client/qwaylandwindow.cpp | 8 ++-
- 8 files changed, 360 insertions(+), 1 deletion(-)
- create mode 100644 src/client/qwaylandivishell.cpp
- create mode 100644 src/client/qwaylandivishell_p.h
- create mode 100644 src/client/qwaylandivisurface.cpp
- create mode 100644 src/client/qwaylandivisurface_p.h
-
-diff --git a/src/client/client.pro b/src/client/client.pro
-index 73e3b7f..adb526d 100644
---- a/src/client/client.pro
-+++ b/src/client/client.pro
-@@ -42,6 +42,7 @@ WAYLANDCLIENTSOURCES += \
- ../extensions/windowmanager.xml \
- ../3rdparty/protocol/text.xml \
- ../3rdparty/protocol/xdg-shell.xml \
-+ ../3rdparty/protocol/ivi-application.xml \
-
- SOURCES += qwaylandintegration.cpp \
- qwaylandnativeinterface.cpp \
-@@ -61,6 +62,8 @@ SOURCES += qwaylandintegration.cpp \
- qwaylandwlshellsurface.cpp \
- qwaylandxdgshell.cpp \
- qwaylandxdgsurface.cpp \
-+ qwaylandivishell.cpp \
-+ qwaylandivisurface.cpp \
- qwaylandextendedoutput.cpp \
- qwaylandextendedsurface.cpp \
- qwaylandsubsurface.cpp \
-@@ -92,6 +95,8 @@ HEADERS += qwaylandintegration_p.h \
- qwaylandwlshellsurface_p.h \
- qwaylandxdgshell_p.h \
- qwaylandxdgsurface_p.h \
-+ qwaylandivishell_p.h \
-+ qwaylandivisurface_p.h \
- qwaylandextendedoutput_p.h \
- qwaylandextendedsurface_p.h \
- qwaylandsubsurface_p.h \
-diff --git a/src/client/qwaylanddisplay.cpp b/src/client/qwaylanddisplay.cpp
-index 2e25672..2a93db7 100644
---- a/src/client/qwaylanddisplay.cpp
-+++ b/src/client/qwaylanddisplay.cpp
-@@ -51,6 +51,7 @@
- #include "qwaylanddatadevicemanager_p.h"
- #include "qwaylandhardwareintegration_p.h"
- #include "qwaylandxdgshell_p.h"
-+#include "qwaylandivishell_p.h"
-
- #include "qwaylandwindowmanagerintegration_p.h"
-
-@@ -62,6 +63,7 @@
-
- #include <QtWaylandClient/private/qwayland-text.h>
- #include <QtWaylandClient/private/qwayland-xdg-shell.h>
-+#include <QtWaylandClient/private/qwayland-ivi-application.h>
-
- #include <QtCore/QAbstractEventDispatcher>
- #include <QtGui/private/qguiapplication_p.h>
-@@ -207,6 +209,8 @@ void QWaylandDisplay::registry_global(uint32_t id, const QString &interface, uin
- mCompositor.init(registry, id);
- } else if (interface == QStringLiteral("wl_shm")) {
- mShm = static_cast<struct wl_shm *>(wl_registry_bind(registry, id, &wl_shm_interface,1));
-+ } else if (interface == QStringLiteral("ivi_application")) {
-+ mShellIvi.reset(new QWaylandIviShell(registry,id));
- } else if (interface == QStringLiteral("xdg_shell")
- && qEnvironmentVariableIsSet("QT_WAYLAND_USE_XDG_SHELL")) {
- mShellXdg.reset(new QWaylandXdgShell(registry,id));
-@@ -279,4 +283,9 @@ QtWayland::xdg_shell *QWaylandDisplay::shellXdg()
- return mShellXdg.data();
- }
-
-+QtWayland::ivi_application *QWaylandDisplay::shellIvi()
-+{
-+ return mShellIvi.data();
-+}
-+
- QT_END_NAMESPACE
-diff --git a/src/client/qwaylanddisplay_p.h b/src/client/qwaylanddisplay_p.h
-index f1b35a7..b9c686c 100644
---- a/src/client/qwaylanddisplay_p.h
-+++ b/src/client/qwaylanddisplay_p.h
-@@ -52,6 +52,7 @@
- #include <QtWaylandClient/private/qwayland-wayland.h>
- #include <QtWaylandClient/private/qwaylandclientexport_p.h>
- #include <QtWaylandClient/private/qwayland-xdg-shell.h>
-+#include <QtWaylandClient/private/qwayland-ivi-application.h>
-
- struct wl_cursor_image;
-
-@@ -72,6 +73,7 @@ class QWaylandWindow;
- class QWaylandEventThread;
- class QWaylandIntegration;
- class QWaylandHardwareIntegration;
-+class QWaylandIviShell;
- class QWaylandXdgShell;
-
- namespace QtWayland {
-@@ -81,6 +83,7 @@ namespace QtWayland {
- class qt_surface_extension;
- class wl_text_input_manager;
- class xdg_shell;
-+ class ivi_application;
- }
-
- typedef void (*RegistryListener)(void *data,
-@@ -117,6 +120,7 @@ public:
-
- QtWayland::wl_shell *shell() { return mShell.data(); }
- QtWayland::xdg_shell *shellXdg();
-+ QtWayland::ivi_application *shellIvi();
-
- QList<QWaylandInputDevice *> inputDevices() const { return mInputDevices; }
- QWaylandInputDevice *defaultInputDevice() const;
-@@ -173,6 +177,7 @@ private:
- QWaylandEventThread *mEventThreadObject;
- QScopedPointer<QtWayland::wl_shell> mShell;
- QScopedPointer<QWaylandXdgShell> mShellXdg;
-+ QScopedPointer<QWaylandIviShell> mShellIvi;
- QList<QPlatformScreen *> mScreens;
- QList<QWaylandInputDevice *> mInputDevices;
- QList<Listener> mRegistryListeners;
-diff --git a/src/client/qwaylandivishell.cpp b/src/client/qwaylandivishell.cpp
-new file mode 100644
-index 0000000..9d63d0d
---- /dev/null
-+++ b/src/client/qwaylandivishell.cpp
-@@ -0,0 +1,69 @@
-+/****************************************************************************
-+**
-+** Copyright (C) 2014 Eurogiciel, author: <manuel.bachmann@open.eurogiciel.org>
-+** Contact: http://www.qt-project.org/legal
-+**
-+** This file is part of the config.tests of the Qt Toolkit.
-+**
-+** $QT_BEGIN_LICENSE:LGPL$
-+** Commercial License Usage
-+** Licensees holding valid commercial Qt licenses may use this file in
-+** accordance with the commercial license agreement provided with the
-+** Software or, alternatively, in accordance with the terms contained in
-+** a written agreement between you and Digia. For licensing terms and
-+** conditions see http://qt.digia.com/licensing. For further information
-+** use the contact form at http://qt.digia.com/contact-us.
-+**
-+** GNU Lesser General Public License Usage
-+** Alternatively, this file may be used under the terms of the GNU Lesser
-+** General Public License version 2.1 as published by the Free Software
-+** Foundation and appearing in the file LICENSE.LGPL included in the
-+** packaging of this file. Please review the following information to
-+** ensure the GNU Lesser General Public License version 2.1 requirements
-+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-+**
-+** In addition, as a special exception, Digia gives you certain additional
-+** rights. These rights are described in the Digia Qt LGPL Exception
-+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-+**
-+** GNU General Public License Usage
-+** Alternatively, this file may be used under the terms of the GNU
-+** General Public License version 3.0 as published by the Free Software
-+** Foundation and appearing in the file LICENSE.GPL included in the
-+** packaging of this file. Please review the following information to
-+** ensure the GNU General Public License version 3.0 requirements will be
-+** met: http://www.gnu.org/copyleft/gpl.html.
-+**
-+**
-+** $QT_END_LICENSE$
-+**
-+****************************************************************************/
-+
-+#include "qwaylandivishell_p.h"
-+
-+#include "qwaylanddisplay_p.h"
-+#include "qwaylandwindow_p.h"
-+#include "qwaylandinputdevice_p.h"
-+#include "qwaylanddecoration_p.h"
-+#include "qwaylandscreen_p.h"
-+
-+#include <QtCore/QDebug>
-+
-+QT_BEGIN_NAMESPACE
-+
-+QWaylandIviShell::QWaylandIviShell(struct ::ivi_application *shell)
-+ : QtWayland::ivi_application(shell)
-+{
-+}
-+
-+QWaylandIviShell::QWaylandIviShell(struct ::wl_registry *registry, uint32_t id)
-+ : QtWayland::ivi_application(registry, id)
-+{
-+}
-+
-+QWaylandIviShell::~QWaylandIviShell()
-+{
-+ ivi_application_destroy(object());
-+}
-+
-+QT_END_NAMESPACE
-diff --git a/src/client/qwaylandivishell_p.h b/src/client/qwaylandivishell_p.h
-new file mode 100644
-index 0000000..f9f6983
---- /dev/null
-+++ b/src/client/qwaylandivishell_p.h
-@@ -0,0 +1,70 @@
-+/****************************************************************************
-+**
-+** Copyright (C) 2014 Eurogiciel, author: <manuel.bachmann@open.eurogiciel.org>
-+** Contact: http://www.qt-project.org/legal
-+**
-+** This file is part of the config.tests of the Qt Toolkit.
-+**
-+** $QT_BEGIN_LICENSE:LGPL$
-+** Commercial License Usage
-+** Licensees holding valid commercial Qt licenses may use this file in
-+** accordance with the commercial license agreement provided with the
-+** Software or, alternatively, in accordance with the terms contained in
-+** a written agreement between you and Digia. For licensing terms and
-+** conditions see http://qt.digia.com/licensing. For further information
-+** use the contact form at http://qt.digia.com/contact-us.
-+**
-+** GNU Lesser General Public License Usage
-+** Alternatively, this file may be used under the terms of the GNU Lesser
-+** General Public License version 2.1 as published by the Free Software
-+** Foundation and appearing in the file LICENSE.LGPL included in the
-+** packaging of this file. Please review the following information to
-+** ensure the GNU Lesser General Public License version 2.1 requirements
-+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-+**
-+** In addition, as a special exception, Digia gives you certain additional
-+** rights. These rights are described in the Digia Qt LGPL Exception
-+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-+**
-+** GNU General Public License Usage
-+** Alternatively, this file may be used under the terms of the GNU
-+** General Public License version 3.0 as published by the Free Software
-+** Foundation and appearing in the file LICENSE.GPL included in the
-+** packaging of this file. Please review the following information to
-+** ensure the GNU General Public License version 3.0 requirements will be
-+** met: http://www.gnu.org/copyleft/gpl.html.
-+**
-+**
-+** $QT_END_LICENSE$
-+**
-+****************************************************************************/
-+
-+#ifndef QWAYLANDIVISHELL_H
-+#define QWAYLANDIVISHELL_H
-+
-+#include <QtCore/QSize>
-+
-+#include <wayland-client.h>
-+
-+#include <QtWaylandClient/private/qwayland-ivi-application.h>
-+#include <QtWaylandClient/private/qwaylandclientexport_p.h>
-+#include "qwaylandshellsurface_p.h"
-+
-+QT_BEGIN_NAMESPACE
-+
-+class QWaylandWindow;
-+class QWaylandInputDevice;
-+class QWindow;
-+
-+class Q_WAYLAND_CLIENT_EXPORT QWaylandIviShell : public QtWayland::ivi_application
-+{
-+public:
-+ QWaylandIviShell(struct ::ivi_application *shell);
-+ QWaylandIviShell(struct ::wl_registry *registry, uint32_t id);
-+
-+ virtual ~QWaylandIviShell();
-+};
-+
-+QT_END_NAMESPACE
-+
-+#endif // QWAYLANDIVISHELL_H
-diff --git a/src/client/qwaylandivisurface.cpp b/src/client/qwaylandivisurface.cpp
-new file mode 100644
-index 0000000..a12309e
---- /dev/null
-+++ b/src/client/qwaylandivisurface.cpp
-@@ -0,0 +1,105 @@
-+/****************************************************************************
-+**
-+** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
-+** Contact: http://www.qt-project.org/legal
-+**
-+** This file is part of the config.tests of the Qt Toolkit.
-+**
-+** $QT_BEGIN_LICENSE:LGPL$
-+** Commercial License Usage
-+** Licensees holding valid commercial Qt licenses may use this file in
-+** accordance with the commercial license agreement provided with the
-+** Software or, alternatively, in accordance with the terms contained in
-+** a written agreement between you and Digia. For licensing terms and
-+** conditions see http://qt.digia.com/licensing. For further information
-+** use the contact form at http://qt.digia.com/contact-us.
-+**
-+** GNU Lesser General Public License Usage
-+** Alternatively, this file may be used under the terms of the GNU Lesser
-+** General Public License version 2.1 as published by the Free Software
-+** Foundation and appearing in the file LICENSE.LGPL included in the
-+** packaging of this file. Please review the following information to
-+** ensure the GNU Lesser General Public License version 2.1 requirements
-+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-+**
-+** In addition, as a special exception, Digia gives you certain additional
-+** rights. These rights are described in the Digia Qt LGPL Exception
-+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-+**
-+** GNU General Public License Usage
-+** Alternatively, this file may be used under the terms of the GNU
-+** General Public License version 3.0 as published by the Free Software
-+** Foundation and appearing in the file LICENSE.GPL included in the
-+** packaging of this file. Please review the following information to
-+** ensure the GNU General Public License version 3.0 requirements will be
-+** met: http://www.gnu.org/copyleft/gpl.html.
-+**
-+**
-+** $QT_END_LICENSE$
-+**
-+****************************************************************************/
-+
-+#include "qwaylandivisurface_p.h"
-+
-+#include "qwaylanddisplay_p.h"
-+#include "qwaylandwindow_p.h"
-+#include "qwaylandinputdevice_p.h"
-+#include "qwaylanddecoration_p.h"
-+#include "qwaylandscreen_p.h"
-+
-+#include <QtCore/QDebug>
-+
-+QT_BEGIN_NAMESPACE
-+
-+QWaylandIviSurface::QWaylandIviSurface(struct ::ivi_surface *ivi_surface, QWaylandWindow *window)
-+ : QtWayland::ivi_surface(ivi_surface)
-+ , m_window(window)
-+{
-+}
-+
-+QWaylandIviSurface::~QWaylandIviSurface()
-+{
-+ ivi_surface_destroy(object());
-+}
-+
-+void QWaylandIviSurface::resize(QWaylandInputDevice *inputDevice, enum wl_shell_surface_resize edges)
-+{
-+}
-+
-+void QWaylandIviSurface::move(QWaylandInputDevice *inputDevice)
-+{
-+}
-+
-+void QWaylandIviSurface::setMaximized()
-+{
-+}
-+
-+void QWaylandIviSurface::setFullscreen()
-+{
-+}
-+
-+void QWaylandIviSurface::setNormal()
-+{
-+}
-+
-+void QWaylandIviSurface::setMinimized()
-+{
-+}
-+
-+void QWaylandIviSurface::setTopLevel()
-+{
-+}
-+
-+void QWaylandIviSurface::updateTransientParent(QWindow *parent)
-+{
-+}
-+
-+void QWaylandIviSurface::setTitle(const QString & title)
-+{
-+}
-+
-+void QWaylandIviSurface::setAppId(const QString & appId)
-+{
-+}
-+
-+QT_END_NAMESPACE
-diff --git a/src/client/qwaylandivisurface_p.h b/src/client/qwaylandivisurface_p.h
-new file mode 100644
-index 0000000..c6a7ce6
---- /dev/null
-+++ b/src/client/qwaylandivisurface_p.h
-@@ -0,0 +1,90 @@
-+/****************************************************************************
-+**
-+** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
-+** Contact: http://www.qt-project.org/legal
-+**
-+** This file is part of the config.tests of the Qt Toolkit.
-+**
-+** $QT_BEGIN_LICENSE:LGPL$
-+** Commercial License Usage
-+** Licensees holding valid commercial Qt licenses may use this file in
-+** accordance with the commercial license agreement provided with the
-+** Software or, alternatively, in accordance with the terms contained in
-+** a written agreement between you and Digia. For licensing terms and
-+** conditions see http://qt.digia.com/licensing. For further information
-+** use the contact form at http://qt.digia.com/contact-us.
-+**
-+** GNU Lesser General Public License Usage
-+** Alternatively, this file may be used under the terms of the GNU Lesser
-+** General Public License version 2.1 as published by the Free Software
-+** Foundation and appearing in the file LICENSE.LGPL included in the
-+** packaging of this file. Please review the following information to
-+** ensure the GNU Lesser General Public License version 2.1 requirements
-+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-+**
-+** In addition, as a special exception, Digia gives you certain additional
-+** rights. These rights are described in the Digia Qt LGPL Exception
-+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-+**
-+** GNU General Public License Usage
-+** Alternatively, this file may be used under the terms of the GNU
-+** General Public License version 3.0 as published by the Free Software
-+** Foundation and appearing in the file LICENSE.GPL included in the
-+** packaging of this file. Please review the following information to
-+** ensure the GNU General Public License version 3.0 requirements will be
-+** met: http://www.gnu.org/copyleft/gpl.html.
-+**
-+**
-+** $QT_END_LICENSE$
-+**
-+****************************************************************************/
-+
-+#ifndef QWAYLANDIVISURFACE_H
-+#define QWAYLANDIVISURFACE_H
-+
-+#include <QtCore/QSize>
-+
-+#include <wayland-client.h>
-+
-+#include <QtWaylandClient/private/qwayland-ivi-application.h>
-+#include <QtWaylandClient/private/qwaylandclientexport_p.h>
-+#include "qwaylandshellsurface_p.h"
-+
-+QT_BEGIN_NAMESPACE
-+
-+class QWaylandWindow;
-+class QWaylandInputDevice;
-+class QWindow;
-+class QWaylandExtendedSurface;
-+
-+class Q_WAYLAND_CLIENT_EXPORT QWaylandIviSurface : public QtWayland::ivi_surface
-+ , public QWaylandShellSurface
-+{
-+public:
-+ QWaylandIviSurface(struct ::ivi_surface *shell_surface, QWaylandWindow *window);
-+ virtual ~QWaylandIviSurface();
-+
-+ void resize(QWaylandInputDevice *inputDevice, enum wl_shell_surface_resize edges) Q_DECL_OVERRIDE;
-+ void move(QWaylandInputDevice *inputDevice) Q_DECL_OVERRIDE;
-+
-+ void setTitle(const QString &title) Q_DECL_OVERRIDE;
-+ void setAppId(const QString &appId) Q_DECL_OVERRIDE;
-+
-+private:
-+ void setMaximized() Q_DECL_OVERRIDE;
-+ void setFullscreen() Q_DECL_OVERRIDE;
-+ void setNormal() Q_DECL_OVERRIDE;
-+ void setMinimized() Q_DECL_OVERRIDE;
-+
-+ void setTopLevel() Q_DECL_OVERRIDE;
-+ void updateTransientParent(QWindow *parent) Q_DECL_OVERRIDE;
-+
-+private:
-+ QWaylandWindow *m_window;
-+
-+ friend class QWaylandWindow;
-+};
-+
-+QT_END_NAMESPACE
-+
-+#endif // QWAYLANDIVISURFACE_H
-diff --git a/src/client/qwaylandwindow.cpp b/src/client/qwaylandwindow.cpp
-index 3fb3a49..45a58f2 100644
---- a/src/client/qwaylandwindow.cpp
-+++ b/src/client/qwaylandwindow.cpp
-@@ -39,6 +39,8 @@
- **
- ****************************************************************************/
-
-+#include <unistd.h>
-+
- #include "qwaylandwindow_p.h"
-
- #include "qwaylandbuffer_p.h"
-@@ -48,10 +50,12 @@
- #include "qwaylandshellsurface_p.h"
- #include "qwaylandwlshellsurface_p.h"
- #include "qwaylandxdgsurface_p.h"
-+#include "qwaylandivisurface_p.h"
- #include "qwaylandextendedsurface_p.h"
- #include "qwaylandsubsurface_p.h"
- #include "qwaylanddecoration_p.h"
- #include "qwaylandwindowmanagerintegration_p.h"
-+#define IVI_SURFACE_ID 8000
-
- #include <QtCore/QFileInfo>
- #include <QtGui/QWindow>
-@@ -95,7 +99,9 @@ QWaylandWindow::QWaylandWindow(QWindow *window)
- mWindowId = id++;
-
- if (!(window->flags() & Qt::BypassWindowManagerHint)) {
-- if (mDisplay->shellXdg()) {
-+ if (mDisplay->shellIvi()) {
-+ mShellSurface = new QWaylandIviSurface(mDisplay->shellIvi()->surface_create(IVI_SURFACE_ID + getpid(), object()), this);
-+ } else if (mDisplay->shellXdg()) {
- if (window->type() & Qt::Window) {
- mShellSurface = new QWaylandXdgSurface(mDisplay->shellXdg()->get_xdg_surface(object()), this);
- }
---
-1.9.1
-
diff --git a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland/0099_qtwayland_no_evdev.patch b/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland/0099_qtwayland_no_evdev.patch
deleted file mode 100644
index 984ae8132..000000000
--- a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland/0099_qtwayland_no_evdev.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff --git a/tests/auto/compositor/compositor/compositor.pro b/tests/auto/compositor/compositor/compositor.pro
-index 2919fa4..d9acac3 100644
---- a/tests/auto/compositor/compositor/compositor.pro
-+++ b/tests/auto/compositor/compositor/compositor.pro
-@@ -7,9 +7,6 @@ QT += core-private gui-private waylandcompositor waylandcompositor-private
-
- QMAKE_USE += wayland-client wayland-server
-
--qtConfig(xkbcommon-evdev): \
-- QMAKE_USE += xkbcommon_evdev
--
- WAYLANDCLIENTSOURCES += \
- ../../../../src/3rdparty/protocol/xdg-shell.xml \
- ../../../../src/3rdparty/protocol/ivi-application.xml \
diff --git a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland/UNUSED_NEEDS_CHECK_YOCTO_0018-packaging-enable-xdg-shell-at-runtime.patch b/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland/UNUSED_NEEDS_CHECK_YOCTO_0018-packaging-enable-xdg-shell-at-runtime.patch
deleted file mode 100644
index bca61b5db..000000000
--- a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland/UNUSED_NEEDS_CHECK_YOCTO_0018-packaging-enable-xdg-shell-at-runtime.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 9617c349a212d5407087daf4f4a2386bce94ecc1 Mon Sep 17 00:00:00 2001
-From: Philippe Coval <philippe.coval@open.eurogiciel.org>
-Date: Thu, 12 Jun 2014 11:55:29 +0200
-Subject: [PATCH 18/21] packaging: enable xdg-shell at runtime
-
-Change-Id: Iffbae496f1e09c8fa44a28d4eb515678e3bbb297
-Bug-Tizen: TIVI-3113/part
-Signed-off-by: Philippe Coval <philippe.coval@open.eurogiciel.org>
----
- packaging/qt5-qtwayland.spec | 5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/packaging/qt5-qtwayland.spec b/packaging/qt5-qtwayland.spec
-index cba18e2..ff32185 100644
---- a/packaging/qt5-qtwayland.spec
-+++ b/packaging/qt5-qtwayland.spec
-@@ -97,6 +97,11 @@ rm -rf %{buildroot}
-
- %post
- /sbin/ldconfig
-+
-+f="/etc/profile.d/qt.sh"
-+grep QT_WAYLAND_USE_XDG_SHELL $f \
-+ || echo "QT_WAYLAND_USE_XDG_SHELL='defined'; export QT_WAYLAND_USE_XDG_SHELL" >> $f
-+
- %postun
- /sbin/ldconfig
-
---
-1.9.1
-
diff --git a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland_%.bbappend b/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland_%.bbappend
deleted file mode 100644
index 2f6072acd..000000000
--- a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland_%.bbappend
+++ /dev/null
@@ -1,26 +0,0 @@
-FILESEXTRAPATHS_append := ":${THISDIR}/${PN}"
-
-# QT_MODULE_BRANCH = "5.4"
-
-# TODO:
-# These patches for IVI-SHELL are tempolary disabled because of issues. And new
-# patches are proposed.
-#
-# file://0020-Add-IVI-Shell-protocol-file-version-patch-v6.patch \
-# file://0021-Implement-initial-IVI-Shell-support.patch \
-# file://0001-protocol-update-3rd-party-ivi-application-protocol.patch \
-# file://0002-qwaylandwindow-add-support-for-IVI-Surface-ID-proper.patch \
-#
-# The xdg-shell merged into upstream, so we don't need these patch anymore.
-# But xdg-shell doesn't work well in current AGL Distro because of
-# mismatch of protocol versions between server(weston) and client(Qt Apps).
-#
-# file://0016-xdg-shell-Add-xdg-shell-protocol-file-version-1.4.0.patch \
-# file://0017-xdg-shell-Add-minimize-feature-to-QWindow-using-wayl.patch \
-# file://0019-xdg-shell-upgrade-to-support-current-version-weston-.patch \
-#
-
-SRC_URI_append = "\
- file://0010-Added-manifest-file-according-to-smack-3-domain-mode.patch \
- "
-
diff --git a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwebkit_%.bbappend b/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwebkit_%.bbappend
deleted file mode 100644
index 0420578e1..000000000
--- a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwebkit_%.bbappend
+++ /dev/null
@@ -1 +0,0 @@
-PACKAGECONFIG = "gstreamer qtlocation qtmultimedia qtsensors"
diff --git a/meta-agl-profile-graphical/LICENSE b/meta-agl-profile-graphical/LICENSE
deleted file mode 100644
index e8758f89c..000000000
--- a/meta-agl-profile-graphical/LICENSE
+++ /dev/null
@@ -1,20 +0,0 @@
-Different components of the AGL layers are under different licenses (a mix
-of MIT and GPLv2). See LICENSE.GPL-2.0-only and LICENSE.MIT for further
-details of the individual licenses.
-
-All metadata (e.g. .bb, .bbappend, .bbclass, .inc, templates/* and similar)
-is MIT licensed unless otherwise stated.
-Source code included in tree for individual recipes (e.g. patches) are under
-the LICENSE stated in the associated recipe (.bb file) unless otherwise stated.
-
-License information for any other files (scripts) is either explicitly stated
-or defaults to GPL version 2 only.
-
-Individual files can contain the following style tags instead of the full
-license text to identify their license:
-
- SPDX-License-Identifier: GPL-2.0-only
- SPDX-License-Identifier: MIT
-
-This enables machine processing of license information based on the SPDX
-License Identifiers that are here available: http://spdx.org/licenses/
diff --git a/meta-agl-profile-graphical/LICENSE.GPL-2.0-only b/meta-agl-profile-graphical/LICENSE.GPL-2.0-only
deleted file mode 100644
index 5db3c0a21..000000000
--- a/meta-agl-profile-graphical/LICENSE.GPL-2.0-only
+++ /dev/null
@@ -1,288 +0,0 @@
- GNU GENERAL PUBLIC LICENSE
- Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users. This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it. (Some other Free Software Foundation software is covered by
-the GNU Lesser General Public License instead.) You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
- To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have. You must make sure that they, too, receive or can get the
-source code. And you must show them these terms so they know their
-rights.
-
- We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
- Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software. If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
- Finally, any free program is threatened constantly by software
-patents. We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary. To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- GNU GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License. The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language. (Hereinafter, translation is included without limitation in
-the term "modification".) Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
- 1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
- 2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) You must cause the modified files to carry prominent notices
- stating that you changed the files and the date of any change.
-
- b) You must cause any work that you distribute or publish, that in
- whole or in part contains or is derived from the Program or any
- part thereof, to be licensed as a whole at no charge to all third
- parties under the terms of this License.
-
- c) If the modified program normally reads commands interactively
- when run, you must cause it, when started running for such
- interactive use in the most ordinary way, to print or display an
- announcement including an appropriate copyright notice and a
- notice that there is no warranty (or else, saying that you provide
- a warranty) and that users may redistribute the program under
- these conditions, and telling the user how to view a copy of this
- License. (Exception: if the Program itself is interactive but
- does not normally print such an announcement, your work based on
- the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
- a) Accompany it with the complete corresponding machine-readable
- source code, which must be distributed under the terms of Sections
- 1 and 2 above on a medium customarily used for software interchange; or,
-
- b) Accompany it with a written offer, valid for at least three
- years, to give any third party, for a charge no more than your
- cost of physically performing source distribution, a complete
- machine-readable copy of the corresponding source code, to be
- distributed under the terms of Sections 1 and 2 above on a medium
- customarily used for software interchange; or,
-
- c) Accompany it with the information you received as to the offer
- to distribute corresponding source code. (This alternative is
- allowed only for noncommercial distribution and only if you
- received the program in object code or executable form with such
- an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it. For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable. However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License. Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
- 5. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Program or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
- 6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
- 7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all. For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded. In such case, this License incorporates
-the limitation as if written in the body of this License.
-
- 9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation. If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
- 10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission. For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this. Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
- NO WARRANTY
-
- 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
- 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
-Note:
-Individual files contain the following tag instead of the full license text.
-
- SPDX-License-Identifier: GPL-2.0-only
-
-This enables machine processing of license information based on the SPDX
-License Identifiers that are here available: http://spdx.org/licenses/
diff --git a/meta-agl-profile-graphical/LICENSE.MIT b/meta-agl-profile-graphical/LICENSE.MIT
deleted file mode 100644
index a6919eb7e..000000000
--- a/meta-agl-profile-graphical/LICENSE.MIT
+++ /dev/null
@@ -1,25 +0,0 @@
-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 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.
-
-Note:
-Individual files contain the following tag instead of the full license text.
-
- SPDX-License-Identifier: MIT
-
-This enables machine processing of license information based on the SPDX
-License Identifiers that are here available: http://spdx.org/licenses/
diff --git a/meta-agl-profile-graphical/classes/agl-graphical.bbclass b/meta-agl-profile-graphical/classes/agl-graphical.bbclass
deleted file mode 100644
index 65106db18..000000000
--- a/meta-agl-profile-graphical/classes/agl-graphical.bbclass
+++ /dev/null
@@ -1,6 +0,0 @@
-WESTONUSER ??= "display"
-WESTONGROUP ??= "display"
-WESTONARGS ?= "--idle-time=0 --tty=7"
-WESTONLAUNCHARGS ??= "--tty /dev/tty7 --user ${WESTONUSER}"
-DISPLAY_XDG_RUNTIME_DIR ??= "/run/platform/${WESTONUSER}"
-
diff --git a/meta-agl-profile-graphical/conf/layer.conf b/meta-agl-profile-graphical/conf/layer.conf
deleted file mode 100644
index 0a6efea74..000000000
--- a/meta-agl-profile-graphical/conf/layer.conf
+++ /dev/null
@@ -1,12 +0,0 @@
-# We have a conf and classes directory, add to BBPATH
-BBPATH =. "${LAYERDIR}:"
-
-# We have recipes-* directories, add to BBFILES
-BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
- ${LAYERDIR}/recipes-*/*/*.bbappend"
-
-BBFILE_COLLECTIONS += "aglprofilegraphical"
-BBFILE_PATTERN_aglprofilegraphical = "^${LAYERDIR}/"
-BBFILE_PRIORITY_aglprofilegraphical = "70"
-
-LAYERSERIES_COMPAT_aglprofilegraphical = "dunfell"
diff --git a/meta-agl-profile-graphical/recipes-apis/agl-service-homescreen/agl-service-homescreen_git.bb b/meta-agl-profile-graphical/recipes-apis/agl-service-homescreen/agl-service-homescreen_git.bb
deleted file mode 100644
index 7d2661bc0..000000000
--- a/meta-agl-profile-graphical/recipes-apis/agl-service-homescreen/agl-service-homescreen_git.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-SUMMARY = "Homescreen binding and client library for application"
-DESCRIPTION = "agl-service-homescreen is the binding library"
-HOMEPAGE = "https://gerrit.automotivelinux.org/gerrit/apps/agl-service-homescreen"
-SECTION = "HMI"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=ae6497158920d9524cf208c09cc4c984"
-
-DEPENDS = "dbus glib-2.0 af-binder json-c"
-
-inherit cmake aglwgt
-
-SRC_URI = "git://gerrit.automotivelinux.org/gerrit/apps/agl-service-homescreen;protocol=https;branch=${AGL_BRANCH}"
-SRCREV = "${AGL_APP_REVISION}"
-S = "${WORKDIR}/git"
diff --git a/meta-agl-profile-graphical/recipes-apis/agl-service-mediaplayer/agl-service-mediaplayer_git.bb b/meta-agl-profile-graphical/recipes-apis/agl-service-mediaplayer/agl-service-mediaplayer_git.bb
deleted file mode 100644
index 4f1757c7d..000000000
--- a/meta-agl-profile-graphical/recipes-apis/agl-service-mediaplayer/agl-service-mediaplayer_git.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "Mediaplayer Service Binding"
-DESCRIPTION = "AGL Mediaplayer Service Binding"
-HOMEPAGE = "https://gerrit.automotivelinux.org/gerrit/#/admin/projects/apps/agl-service-mediaplayer"
-SECTION = "apps"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=ae6497158920d9524cf208c09cc4c984"
-
-SRC_URI = "gitsm://gerrit.automotivelinux.org/gerrit/apps/agl-service-mediaplayer;protocol=https;branch=${AGL_BRANCH}"
-SRCREV = "${AGL_APP_REVISION}"
-
-PV = "1.0+git${SRCPV}"
-S = "${WORKDIR}/git"
-
-DEPENDS = "json-c gstreamer1.0 gstreamer1.0-plugins-base"
-RDEPENDS_${PN} = "agl-service-mediascanner agl-service-bluetooth gstreamer1.0-plugins-bad-waylandsink"
-
-inherit cmake aglwgt pkgconfig
diff --git a/meta-agl-profile-graphical/recipes-apis/agl-service-radio/agl-service-radio_git.bb b/meta-agl-profile-graphical/recipes-apis/agl-service-radio/agl-service-radio_git.bb
deleted file mode 100644
index a46ce128c..000000000
--- a/meta-agl-profile-graphical/recipes-apis/agl-service-radio/agl-service-radio_git.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-SUMMARY = "Radio Service Binding"
-DESCRIPTION = "AGL Radio Service Binding"
-HOMEPAGE = "https://gerrit.automotivelinux.org/gerrit/#/admin/projects/apps/agl-service-radio"
-SECTION = "apps"
-LICENSE = "Apache-2.0 & GPLv2"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=ae6497158920d9524cf208c09cc4c984 \
- file://LICENSE.GPL-2.0-only;md5=751419260aa954499f7abaabaa882bbe"
-
-PV = "1.0+git${SRCPV}"
-
-SRC_URI = "git://gerrit.automotivelinux.org/gerrit/apps/agl-service-radio;protocol=https;branch=${AGL_BRANCH}"
-SRCREV = "${AGL_APP_REVISION}"
-
-S = "${WORKDIR}/git"
-
-# build-time dependencies
-DEPENDS = "rtl-sdr glib-2.0 gstreamer1.0 libusb-compat"
-
-inherit cmake aglwgt pkgconfig
diff --git a/meta-agl-profile-graphical/recipes-apis/agl-service-taskmanager/agl-service-taskmanager.bb b/meta-agl-profile-graphical/recipes-apis/agl-service-taskmanager/agl-service-taskmanager.bb
deleted file mode 100644
index 6c5a18107..000000000
--- a/meta-agl-profile-graphical/recipes-apis/agl-service-taskmanager/agl-service-taskmanager.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "Task Manager Service Binding"
-DESCRIPTION = "AGL Task Manager Service Binding"
-HOMEPAGE = "https://gerrit.automotivelinux.org/gerrit/#/admin/projects/apps/agl-service-taskmanager"
-SECTION = "apps"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=ae6497158920d9524cf208c09cc4c984"
-
-SRC_URI = "git://gerrit.automotivelinux.org/gerrit/apps/agl-service-taskmanager;protocol=https;branch=${AGL_BRANCH}"
-SRCREV = "${AGL_APP_REVISION}"
-
-PV = "1.0+git${SRCPV}"
-S = "${WORKDIR}/git"
-
-DEPENDS = "json-c procps"
-
-inherit cmake aglwgt pkgconfig
-
diff --git a/meta-agl-profile-graphical/recipes-graphics/hmi-debug/files/hmi-debug b/meta-agl-profile-graphical/recipes-graphics/hmi-debug/files/hmi-debug
deleted file mode 100644
index fee9573b7..000000000
--- a/meta-agl-profile-graphical/recipes-graphics/hmi-debug/files/hmi-debug
+++ /dev/null
@@ -1,8 +0,0 @@
-#You can select log level of HMI framework
-#1 ERROR
-#2 WARNING
-#3 NOTICE
-#4 INFO
-#5 DEBUG
-#If you want to output debug log about hmi-framework, please uncomment the following.
-#USE_HMI_DEBUG=5
diff --git a/meta-agl-profile-graphical/recipes-graphics/hmi-debug/hmi-debug_git.bb b/meta-agl-profile-graphical/recipes-graphics/hmi-debug/hmi-debug_git.bb
deleted file mode 100644
index 27fb60d66..000000000
--- a/meta-agl-profile-graphical/recipes-graphics/hmi-debug/hmi-debug_git.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-DESCRIPTION = "Configurations for HMI framework"
-
-SECTION = "HMI"
-LICENSE = "Apache-2.0"
-
-LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
-
-SRC_URI = " \
- file://hmi-debug \
-"
-
-FILES_${PN} = " \
- ${sysconfdir}/afm/unit.env.d \
-"
-
-do_install() {
- install -d ${D}${sysconfdir}/afm/unit.env.d
- install -m 644 ${WORKDIR}/hmi-debug ${D}${sysconfdir}/afm/unit.env.d
-}
diff --git a/meta-agl-profile-graphical/recipes-graphics/libhomescreen/libhomescreen_git.bb b/meta-agl-profile-graphical/recipes-graphics/libhomescreen/libhomescreen_git.bb
deleted file mode 100644
index da511c8a1..000000000
--- a/meta-agl-profile-graphical/recipes-graphics/libhomescreen/libhomescreen_git.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-SUMMARY = "AGL Home Screen Library"
-DESCRIPTION = "libhomescreen"
-HOMEPAGE = "http://docs.automotivelinux.org"
-LICENSE = "Apache-2.0"
-SECTION = "libs"
-
-BBCLASSEXTEND = " nativesdk"
-
-LIC_FILES_CHKSUM = "file://LICENSE;md5=ae6497158920d9524cf208c09cc4c984"
-
-DEPENDS = "af-binder json-c"
-
-inherit cmake
-
-SRC_URI = "git://gerrit.automotivelinux.org/gerrit/src/libhomescreen.git;protocol=https;branch=${AGL_BRANCH}"
-SRCREV = "0d65d54ba63508c0ef545d02e94d5702f9c8ecb3"
-S = "${WORKDIR}/git"
-
-RDEPENDS_${PN} = "agl-service-homescreen"
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/wayland-ivi-extension/0001-Added-ivi-id-agent-to-CMake.patch b/meta-agl-profile-graphical/recipes-graphics/wayland/wayland-ivi-extension/0001-Added-ivi-id-agent-to-CMake.patch
deleted file mode 100644
index 7ea0b6e9b..000000000
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/wayland-ivi-extension/0001-Added-ivi-id-agent-to-CMake.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-From 48977cb77410247df547063d9d7bcd381fb13cde Mon Sep 17 00:00:00 2001
-From: Michael Teyfel <mteyfel@de.adit-jv.com>
-Date: Fri, 12 Oct 2018 17:12:24 +0200
-Subject: [PATCH 1/3] Added ivi-id-agent to CMake
-
-Reworked for wayland-ivi-extension 2.2.0 by Scott Murray.
-
-Signed-off-by: Michael Teyfel <mteyfel@de.adit-jv.com>
-Signed-off-by: Scott Murray <scott.murray@konsulko.com>
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 7d0044a..988fc89 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -40,6 +40,7 @@ add_subdirectory(ivi-layermanagement-api/test)
- add_subdirectory(ivi-layermanagement-examples)
- add_subdirectory(ivi-layermanagement-api/ilmInput)
- add_subdirectory(ivi-input-modules/ivi-input-controller)
-+add_subdirectory(ivi-id-agent-modules/ivi-id-agent)
-
-
- #=============================================================================================
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/wayland-ivi-extension/0002-add-LayerManagerControl-error-status.patch b/meta-agl-profile-graphical/recipes-graphics/wayland/wayland-ivi-extension/0002-add-LayerManagerControl-error-status.patch
deleted file mode 100644
index 9f1ab47b7..000000000
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/wayland-ivi-extension/0002-add-LayerManagerControl-error-status.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-LayerManagerControl: add error exit status
-
-Tweak to add a non-zero exit status on errors. This is useful for
-scripting, and allows writing a simple loop to detect Weston readiness.
-
-Upstream-Status: Pending
-
-Signed-off-by: Scott Murray <scott.murray@konsulko.com>
-
-diff --git a/ivi-layermanagement-examples/LayerManagerControl/src/main.cpp b/ivi-layermanagement-examples/LayerManagerControl/src/main.cpp
-index 8ee0546..210e21e 100644
---- a/ivi-layermanagement-examples/LayerManagerControl/src/main.cpp
-+++ b/ivi-layermanagement-examples/LayerManagerControl/src/main.cpp
-@@ -45,6 +45,7 @@ int main(int argc, char* argv[])
- if (CommandSuccess != interpreter.interpretCommand(userCommand))
- {
- cerr << "Interpreter error: " << interpreter.getLastError() << endl;
-+ return 1;
- }
-
- return 0;
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/wayland-ivi-extension/0002-ivi-id-agent-added-ivi-id-agent.patch b/meta-agl-profile-graphical/recipes-graphics/wayland/wayland-ivi-extension/0002-ivi-id-agent-added-ivi-id-agent.patch
deleted file mode 100644
index 0fe2abb35..000000000
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/wayland-ivi-extension/0002-ivi-id-agent-added-ivi-id-agent.patch
+++ /dev/null
@@ -1,530 +0,0 @@
-From 42fc715a430068cdb4484e2cb119418da8ac4e6f Mon Sep 17 00:00:00 2001
-From: Michael Teyfel <mteyfel@de.adit-jv.com>
-Date: Fri, 12 Oct 2018 16:46:57 +0200
-Subject: [PATCH 2/3] ivi-id-agent: added ivi-id-agent
-
-This is a reference implementation of an ivi-id-agent plugin. It
-creates surface-ids for desktop-surfaces depending on the configuration
-provided in "weston.ini". For more please refer to the reference
-implementation in this commit.
-
-The only public interface available is the "id_agent_module_init"
-function. It is responsible for initialization of structs and reading
-the configuration.
-
-In the reference "weston.ini" two types of configurations can be found:
-
-[desktop-app] is used to configure a particular application. Therefore
-the desired surface-id must be provided. Moreover "app-title" is the
-title that is provided by the desktop application (xdg-protocol).
-"app-id" behaves accordingly. Although both parameters can be set, it
-is not mandatory. Finally at least one has to be set.
-
-[desktop-app-default] enables the id-agent to generate generic
-surface-ids for unconfigured applications, e.g. for development. This
-tag is optional. To generate the id an interval starting from
-"default-surface-id" to "default-surface-id-max" is used. The id is
-incremented until the interval is exceeded.
-
-In the function "get_id" a surface-id is assigned by means of the
-configuration. It can be adjusted, if another behavior is desired.
-In this plugin the parameters, that are described above, are evaluated.
-
-To use these patches please also apply the dedicated patches for
-weston: https://github.com/mtey/weston/tree/xdg_support_ivi_id_agent
-Since libweston-desktop is used to introduce desktop-surface support,
-xdg-protocol is supported.
-
-Reworked for wayland-ivi-extension 2.2.0 by Scott Murray.
-
-Signed-off-by: Michael Teyfel <mteyfel@de.adit-jv.com>
-Signed-off-by: Scott Murray <scott.murray@konsulko.com>
-
-diff --git a/ivi-id-agent-modules/ivi-id-agent/CMakeLists.txt b/ivi-id-agent-modules/ivi-id-agent/CMakeLists.txt
-new file mode 100644
-index 0000000..7354a7e
---- /dev/null
-+++ b/ivi-id-agent-modules/ivi-id-agent/CMakeLists.txt
-@@ -0,0 +1,69 @@
-+###############################################################################
-+#
-+# Copyright (C) 2017 Advanced Driver Information Technology Joint Venture GmbH
-+#
-+#
-+# Licensed under the Apache License, Version 2.0 (the "License");
-+# you may not use this file except in compliance with the License.
-+# You may obtain a copy of the License at
-+#
-+# http://www.apache.org/licenses/LICENSE-2.0
-+#
-+# Unless required by applicable law or agreed to in writing, software
-+# distributed under the License is distributed on an "AS IS" BASIS,
-+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-+# See the License for the specific language governing permissions and
-+# limitations under the License.
-+#
-+###############################################################################
-+
-+cmake_minimum_required (VERSION 2.6)
-+
-+project(ivi-id-agent)
-+
-+find_package(PkgConfig REQUIRED)
-+pkg_check_modules(WAYLAND_SERVER wayland-server REQUIRED)
-+pkg_check_modules(WESTON weston>=5.0.0 REQUIRED)
-+pkg_check_modules(PIXMAN pixman-1 REQUIRED)
-+pkg_check_modules(LIBWESTON_DESKTOP libweston-desktop-8 REQUIRED)
-+
-+find_package(Threads REQUIRED)
-+
-+include_directories(
-+ src
-+ ${WAYLAND_SERVER_INCLUDE_DIRS}
-+ ${WESTON_INCLUDE_DIRS}
-+ ${PIXMAN_INCLUDE_DIRS}
-+)
-+
-+link_directories(
-+ ${WAYLAND_SERVER_LIBRARY_DIRS}
-+ ${PIXMAN_LIBRARY_DIRS}
-+)
-+
-+
-+add_library(${PROJECT_NAME} MODULE
-+ src/ivi-id-agent.c
-+)
-+
-+set_target_properties(${PROJECT_NAME} PROPERTIES PREFIX "")
-+
-+add_dependencies(${PROJECT_NAME}
-+ ${WAYLAND_SERVER_LIBRARIES}
-+ ${PIXMAN_LIBRARIES}
-+)
-+
-+set(LIBS
-+ ${LIBS}
-+ ${WAYLAND_SERVER_LIBRARIES}
-+ ${LIBWESTON_DESKTOP_LIBRARIES}
-+)
-+
-+set(CMAKE_C_LDFLAGS "-module -avoid-version")
-+
-+target_link_libraries(${PROJECT_NAME} ${LIBS})
-+
-+install (
-+ TARGETS ${PROJECT_NAME}
-+ LIBRARY DESTINATION lib${LIB_SUFFIX}/weston
-+)
-diff --git a/ivi-id-agent-modules/ivi-id-agent/src/ivi-id-agent.c b/ivi-id-agent-modules/ivi-id-agent/src/ivi-id-agent.c
-new file mode 100644
-index 0000000..9bc115d
---- /dev/null
-+++ b/ivi-id-agent-modules/ivi-id-agent/src/ivi-id-agent.c
-@@ -0,0 +1,381 @@
-+/*
-+ * Copyright (C) 2017 Advanced Driver Information Technology Joint Venture GmbH
-+ *
-+ * 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 <stdlib.h>
-+#include <stdio.h>
-+#include <string.h>
-+#include <limits.h>
-+
-+#include <weston.h>
-+#include <libweston-desktop/libweston-desktop.h>
-+#include "libweston/config-parser.h"
-+#include <weston/ivi-layout-export.h>
-+
-+#ifndef INVALID_ID
-+#define INVALID_ID 0xFFFFFFFF
-+#endif
-+
-+struct db_elem
-+{
-+ struct wl_list link;
-+ uint32_t surface_id;
-+ char *cfg_app_id;
-+ char *cfg_title;
-+ struct ivi_layout_surface *layout_surface;
-+};
-+
-+struct ivi_id_agent
-+{
-+ uint32_t default_behavior_set;
-+ uint32_t default_surface_id;
-+ uint32_t default_surface_id_max;
-+ struct wl_list app_list;
-+ struct weston_compositor *compositor;
-+ const struct ivi_layout_interface *interface;
-+
-+ struct wl_listener desktop_surface_configured;
-+ struct wl_listener destroy_listener;
-+ struct wl_listener surface_removed;
-+};
-+
-+static int32_t
-+check_config_parameter(char *cfg_val, char *val)
-+{
-+ if (cfg_val == NULL)
-+ return IVI_SUCCEEDED;
-+ else if (val == NULL || strcmp(cfg_val, val) != 0)
-+ return IVI_FAILED;
-+
-+ return IVI_SUCCEEDED;
-+}
-+
-+static int32_t
-+get_id_from_config(struct ivi_id_agent *ida, struct ivi_layout_surface
-+ *layout_surface) {
-+ struct db_elem *db_elem;
-+ char *temp_app_id = NULL;
-+ char *temp_title = NULL;
-+ int ret = IVI_FAILED;
-+
-+ struct weston_surface *weston_surface =
-+ ida->interface->surface_get_weston_surface(layout_surface);
-+
-+ /* Get app id and title */
-+ struct weston_desktop_surface *wds = weston_surface_get_desktop_surface(
-+ weston_surface);
-+
-+ if (weston_desktop_surface_get_app_id(wds) != NULL)
-+ temp_app_id = strdup(weston_desktop_surface_get_app_id(wds));
-+
-+ if (weston_desktop_surface_get_title(wds) != NULL)
-+ temp_title = strdup(weston_desktop_surface_get_title(wds));
-+
-+ /*
-+ * Check for every config parameter to be fulfilled. This part must be
-+ * extended, if additional attributes are desired to be checked.
-+ */
-+ wl_list_for_each(db_elem, &ida->app_list, link)
-+ {
-+ if (check_config_parameter(db_elem->cfg_app_id, temp_app_id) == 0) {
-+ if (check_config_parameter(db_elem->cfg_title, temp_title) == 0) {
-+ /* Found configuration for application. */
-+ int res = ida->interface->surface_set_id(layout_surface,
-+ db_elem->surface_id);
-+ if (res)
-+ continue;
-+
-+ db_elem->layout_surface = layout_surface;
-+ ret = IVI_SUCCEEDED;
-+
-+ break;
-+ }
-+ }
-+ }
-+
-+ free(temp_app_id);
-+ free(temp_title);
-+
-+ return ret;
-+}
-+
-+/*
-+ * This function generates the id of a surface in regard to the desired
-+ * parameters. For implementation of different behavior in id generation please
-+ * adjust this function.
-+ * In this implementation the app_id and/or title of the application is used for
-+ * identification. It is also possible to use the pid, uid or gid for example.
-+ */
-+static int32_t
-+get_id(struct ivi_id_agent *ida, struct ivi_layout_surface *layout_surface)
-+{
-+ if (get_id_from_config(ida, layout_surface) == IVI_SUCCEEDED)
-+ return IVI_SUCCEEDED;
-+
-+ /* No default layer available */
-+ if (ida->default_behavior_set == 0) {
-+ weston_log("ivi-id-agent: Could not find configuration for application\n");
-+ goto ivi_failed;
-+
-+ /* Default behavior for unknown applications */
-+ } else if (ida->default_surface_id < ida->default_surface_id_max) {
-+ weston_log("ivi-id-agent: No configuration for application adding to "
-+ "default layer\n");
-+
-+ /*
-+ * Check if ivi-shell application already created an application with
-+ * desired surface_id
-+ */
-+ struct ivi_layout_surface *temp_layout_surf =
-+ ida->interface->get_surface_from_id(
-+ ida->default_surface_id);
-+ if ((temp_layout_surf != NULL) && (temp_layout_surf != layout_surface)) {
-+ weston_log("ivi-id-agent: surface_id already used by an ivi-shell "
-+ "application\n");
-+ goto ivi_failed;
-+ }
-+
-+ ida->interface->surface_set_id(layout_surface,
-+ ida->default_surface_id);
-+ ida->default_surface_id++;
-+
-+ } else {
-+ weston_log("ivi-id-agent: Interval for default surface_id generation "
-+ "exceeded\n");
-+ goto ivi_failed;
-+ }
-+
-+ return IVI_SUCCEEDED;
-+
-+ivi_failed:
-+ return IVI_FAILED;
-+}
-+
-+static void
-+desktop_surface_event_configure(struct wl_listener *listener,
-+ void *data)
-+{
-+ struct ivi_id_agent *ida = wl_container_of(listener, ida,
-+ desktop_surface_configured);
-+
-+ struct ivi_layout_surface *layout_surface =
-+ (struct ivi_layout_surface *) data;
-+
-+ if (get_id(ida, layout_surface) == IVI_FAILED)
-+ weston_log("ivi-id-agent: Could not create surface_id for application\n");
-+}
-+
-+static void
-+surface_event_remove(struct wl_listener *listener, void *data) {
-+ struct ivi_id_agent *ida = wl_container_of(listener, ida,
-+ surface_removed);
-+ struct ivi_layout_surface *layout_surface =
-+ (struct ivi_layout_surface *) data;
-+ struct db_elem *db_elem = NULL;
-+
-+ wl_list_for_each(db_elem, &ida->app_list, link)
-+ {
-+ if(db_elem->layout_surface == layout_surface) {
-+ db_elem->layout_surface = NULL;
-+ break;
-+ }
-+ }
-+}
-+
-+static int32_t deinit(struct ivi_id_agent *ida);
-+
-+static void
-+id_agent_module_deinit(struct wl_listener *listener, void *data) {
-+ (void)data;
-+ struct ivi_id_agent *ida = wl_container_of(listener, ida, destroy_listener);
-+
-+ deinit(ida);
-+}
-+
-+static int32_t
-+check_config(struct db_elem *curr_db_elem, struct ivi_id_agent *ida)
-+{
-+ struct db_elem *db_elem;
-+
-+ if (ida->default_surface_id <= curr_db_elem->surface_id
-+ && curr_db_elem->surface_id <= ida->default_surface_id_max) {
-+ weston_log("ivi-id-agent: surface_id: %d in default id interval "
-+ "[%d, %d] (CONFIG ERROR)\n", curr_db_elem->surface_id,
-+ ida->default_surface_id, ida->default_surface_id_max);
-+ goto ivi_failed;
-+ }
-+
-+ wl_list_for_each(db_elem, &ida->app_list, link)
-+ {
-+ if(curr_db_elem == db_elem)
-+ continue;
-+
-+ if (db_elem->surface_id == curr_db_elem->surface_id) {
-+ weston_log("ivi-id-agent: Duplicate surface_id: %d (CONFIG ERROR)\n",
-+ curr_db_elem->surface_id);
-+ goto ivi_failed;
-+ }
-+ }
-+
-+ return IVI_SUCCEEDED;
-+
-+ivi_failed:
-+ return IVI_FAILED;
-+}
-+
-+static int32_t
-+read_config(struct ivi_id_agent *ida)
-+{
-+ struct weston_config *config = NULL;
-+ struct weston_config_section *section = NULL;
-+ const char *name = NULL;
-+
-+ config = wet_get_config(ida->compositor);
-+ if (!config)
-+ goto ivi_failed;
-+
-+ section = weston_config_get_section(config, "desktop-app-default", NULL,
-+ NULL);
-+
-+ if (section) {
-+ weston_log("ivi-id-agent: Default behavior for unknown applications is "
-+ "set\n");
-+ ida->default_behavior_set = 1;
-+
-+ weston_config_section_get_uint(section, "default-surface-id",
-+ &ida->default_surface_id, INVALID_ID);
-+ weston_config_section_get_uint(section, "default-surface-id-max",
-+ &ida->default_surface_id_max, INVALID_ID);
-+
-+ if (ida->default_surface_id == INVALID_ID ||
-+ ida->default_surface_id_max == INVALID_ID) {
-+ weston_log("ivi-id-agent: Missing configuration for default "
-+ "behavior\n");
-+ ida->default_behavior_set = 0;
-+ }
-+ } else {
-+ ida->default_behavior_set = 0;
-+ }
-+
-+ section = NULL;
-+ while (weston_config_next_section(config, &section, &name)) {
-+ struct db_elem *db_elem = NULL;
-+
-+ if (strcmp(name, "desktop-app") != 0)
-+ continue;
-+
-+ db_elem = calloc(1, sizeof *db_elem);
-+ if (db_elem == NULL) {
-+ weston_log("ivi-id-agent: No memory to allocate\n");
-+ goto ivi_failed;
-+ }
-+
-+ wl_list_insert(&ida->app_list, &db_elem->link);
-+
-+ weston_config_section_get_uint(section, "surface-id",
-+ &db_elem->surface_id, INVALID_ID);
-+
-+ if (db_elem->surface_id == INVALID_ID) {
-+ weston_log("ivi-id-agent: surface-id is not set in configuration\n");
-+ goto ivi_failed;
-+ }
-+
-+ weston_config_section_get_string(section, "app-id",
-+ &db_elem->cfg_app_id, NULL);
-+ weston_config_section_get_string(section, "app-title",
-+ &db_elem->cfg_title, NULL);
-+
-+ if (db_elem->cfg_app_id == NULL && db_elem->cfg_title == NULL) {
-+ weston_log("ivi-id-agent: Every parameter is NULL in app "
-+ "configuration\n");
-+ goto ivi_failed;
-+ }
-+
-+ if (check_config(db_elem, ida) == IVI_FAILED) {
-+ weston_log("ivi-id-agent: No valid config found, deinit...\n");
-+ goto ivi_failed;
-+ }
-+ }
-+
-+ if(ida->default_behavior_set == 0 && wl_list_empty(&ida->app_list)) {
-+ weston_log("ivi-id-agent: No valid config found, deinit...\n");
-+ goto ivi_failed;
-+ }
-+
-+ return IVI_SUCCEEDED;
-+
-+ivi_failed:
-+ return IVI_FAILED;
-+}
-+
-+WL_EXPORT int32_t
-+id_agent_module_init(struct weston_compositor *compositor,
-+ const struct ivi_layout_interface *interface)
-+{
-+ struct ivi_id_agent *ida = NULL;
-+
-+ ida = calloc(1, sizeof *ida);
-+ if (ida == NULL) {
-+ weston_log("failed to allocate ivi_id_agent\n");
-+ goto ivi_failed;
-+ }
-+
-+ ida->compositor = compositor;
-+ ida->interface = interface;
-+ ida->desktop_surface_configured.notify = desktop_surface_event_configure;
-+ ida->destroy_listener.notify = id_agent_module_deinit;
-+ ida->surface_removed.notify = surface_event_remove;
-+
-+ wl_signal_add(&compositor->destroy_signal, &ida->destroy_listener);
-+ ida->interface->add_listener_configure_desktop_surface(
-+ &ida->desktop_surface_configured);
-+ interface->add_listener_remove_surface(&ida->surface_removed);
-+
-+ wl_list_init(&ida->app_list);
-+ if(read_config(ida) != 0) {
-+ weston_log("ivi-id-agent: Read config failed\n");
-+ deinit(ida);
-+ goto ivi_failed;
-+ }
-+
-+ return IVI_SUCCEEDED;
-+
-+ivi_failed:
-+ return IVI_FAILED;
-+}
-+
-+static int32_t
-+deinit(struct ivi_id_agent *ida)
-+{
-+ struct db_elem *db_elem;
-+ wl_list_for_each(db_elem, &ida->app_list, link) {
-+ free(db_elem->cfg_app_id);
-+ free(db_elem->cfg_title);
-+ free(db_elem);
-+ }
-+
-+ wl_list_remove(&ida->desktop_surface_configured.link);
-+ wl_list_remove(&ida->destroy_listener.link);
-+ wl_list_remove(&ida->surface_removed.link);
-+ free(ida);
-+
-+ return IVI_SUCCEEDED;
-+}
-diff --git a/ivi-id-agent-modules/ivi-id-agent/weston.ini.in b/ivi-id-agent-modules/ivi-id-agent/weston.ini.in
-new file mode 100644
-index 0000000..48a196c
---- /dev/null
-+++ b/ivi-id-agent-modules/ivi-id-agent/weston.ini.in
-@@ -0,0 +1,20 @@
-+[core]
-+shell=ivi-shell.so
-+require-input=false
-+
-+[ivi-shell]
-+ivi-module=ivi-controller.so
-+ivi-input-module=ivi-input-controller.so
-+ivi-id-agent-module=ivi-id-agent.so
-+
-+[desktop-app]
-+surface-id=111
-+app-title=Flower
-+
-+[desktop-app]
-+surface-id=251
-+app-title=Flower
-+
-+[desktop-app-default]
-+default-surface-id=2000000
-+default-surface-id-max=2001000
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/wayland-ivi-extension/0003-ivi-controller-load-id-agent-module.patch b/meta-agl-profile-graphical/recipes-graphics/wayland/wayland-ivi-extension/0003-ivi-controller-load-id-agent-module.patch
deleted file mode 100644
index 8985879b0..000000000
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/wayland-ivi-extension/0003-ivi-controller-load-id-agent-module.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-From 5fed5c51ca8c1574804362bfdea4930c16457d34 Mon Sep 17 00:00:00 2001
-From: Michael Teyfel <mteyfel@de.adit-jv.com>
-Date: Fri, 12 Oct 2018 16:57:24 +0200
-Subject: [PATCH 3/3] ivi-controller: load id-agent module
-
-Reworked for wayland-ivi-extension 2.2.0 by Scott Murray.
-
-Signed-off-by: Michael Teyfel <mteyfel@de.adit-jv.com>
-Signed-off-by: Scott Murray <scott.murray@konsulko.com>
-
-diff --git a/weston-ivi-shell/src/ivi-controller.c b/weston-ivi-shell/src/ivi-controller.c
-index 8faec2a..8fa51f4 100644
---- a/weston-ivi-shell/src/ivi-controller.c
-+++ b/weston-ivi-shell/src/ivi-controller.c
-@@ -2154,6 +2154,41 @@ load_input_module(struct ivishell *shell)
- return 0;
- }
-
-+static int load_id_agent_module(struct ivishell *shell)
-+{
-+ struct weston_config *config = wet_get_config(shell->compositor);
-+ struct weston_config_section *section;
-+ char *id_agent_module = NULL;
-+
-+ int (*id_agent_module_init)(struct weston_compositor *compositor,
-+ const struct ivi_layout_interface *interface);
-+
-+ section = weston_config_get_section(config, "ivi-shell", NULL, NULL);
-+
-+ if (weston_config_section_get_string(section, "ivi-id-agent-module",
-+ &id_agent_module, NULL) < 0) {
-+ /* input events are handled by weston's default grabs */
-+ weston_log("ivi-controller: No ivi-id-agent-module set\n");
-+ return 0;
-+ }
-+
-+ id_agent_module_init = wet_load_module_entrypoint(id_agent_module, "id_agent_module_init");
-+ if (!id_agent_module_init) {
-+ free(id_agent_module);
-+ return -1;
-+ }
-+
-+ if (id_agent_module_init(shell->compositor, shell->interface) != 0) {
-+ weston_log("ivi-controller: Initialization of id-agent module failed\n");
-+ free(id_agent_module);
-+ return -1;
-+ }
-+
-+ free(id_agent_module);
-+
-+ return 0;
-+}
-+
- static void
- launch_client_process(void *data)
- {
-@@ -2221,6 +2256,10 @@ wet_module_init(struct weston_compositor *compositor,
- shell->destroy_listener.notify = ivi_shell_destroy;
- wl_signal_add(&compositor->destroy_signal, &shell->destroy_listener);
-
-+ if (load_id_agent_module(shell) < 0) {
-+ weston_log("ivi-controller: id-agent module not loaded\n");
-+ }
-+
- if (shell->bkgnd_surface_id && shell->ivi_client_name) {
- loop = wl_display_get_event_loop(compositor->wl_display);
- wl_event_loop_add_idle(loop, launch_client_process, shell);
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/wayland-ivi-extension/0004-ivi-ilmcontrol-added-focus-notification.patch b/meta-agl-profile-graphical/recipes-graphics/wayland/wayland-ivi-extension/0004-ivi-ilmcontrol-added-focus-notification.patch
deleted file mode 100644
index 05d1cc238..000000000
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/wayland-ivi-extension/0004-ivi-ilmcontrol-added-focus-notification.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-diff --git a/ivi-layermanagement-api/ilmCommon/include/ilm_types.h b/ivi-layermanagement-api/ilmCommon/include/ilm_types.h
-index a88f2b0..12a2017 100644
---- a/ivi-layermanagement-api/ilmCommon/include/ilm_types.h
-+++ b/ivi-layermanagement-api/ilmCommon/include/ilm_types.h
-@@ -245,6 +245,7 @@ typedef enum
- ILM_NOTIFICATION_CONTENT_AVAILABLE = ILM_BIT(6),
- ILM_NOTIFICATION_CONTENT_REMOVED = ILM_BIT(7),
- ILM_NOTIFICATION_CONFIGURED = ILM_BIT(8),
-+ ILM_NOTIFICATION_FOCUS = ILM_BIT(9),
- ILM_NOTIFICATION_ALL = 0xffff
- } t_ilm_notification_mask;
-
-diff --git a/ivi-layermanagement-api/ilmControl/src/ilm_control_wayland_platform.c b/ivi-layermanagement-api/ilmControl/src/ilm_control_wayland_platform.c
-index a912e50..5166839 100644
---- a/ivi-layermanagement-api/ilmControl/src/ilm_control_wayland_platform.c
-+++ b/ivi-layermanagement-api/ilmControl/src/ilm_control_wayland_platform.c
-@@ -819,6 +819,12 @@ input_listener_input_focus(void *data,
- surf_ctx->prop.focus |= device;
- else
- surf_ctx->prop.focus &= ~device;
-+
-+ if (surf_ctx->notification != NULL) {
-+ surf_ctx->notification(surf_ctx->id_surface,
-+ &surf_ctx->prop,
-+ ILM_NOTIFICATION_FOCUS);
-+ }
- }
- }
-
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/wayland-ivi-extension/0005-disable-EGLWLMockNavigation-example-build.patch b/meta-agl-profile-graphical/recipes-graphics/wayland/wayland-ivi-extension/0005-disable-EGLWLMockNavigation-example-build.patch
deleted file mode 100644
index 21028d58a..000000000
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/wayland-ivi-extension/0005-disable-EGLWLMockNavigation-example-build.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-Disable EGLWLMockNavigation example build
-
-The EGLWLMockNavigation example code has build issues on TI platforms.
-To avoid needing to patch it just for those platforms, just disable
-building it since there are no known users inside AGL.
-
-Upstream-Status: Inappropriate [disable feature]
-
-Signed-off-by: Scott Murray <scott.murray@konsulko.com>
-
-diff --git a/ivi-layermanagement-examples/CMakeLists.txt b/ivi-layermanagement-examples/CMakeLists.txt
-index 1eab8e9..48bdffd 100644
---- a/ivi-layermanagement-examples/CMakeLists.txt
-+++ b/ivi-layermanagement-examples/CMakeLists.txt
-@@ -24,7 +24,6 @@ project (ivi-layermanagement-examples)
- # cmake configuration
- #===========================================================================================================
- add_subdirectory(LayerManagerControl)
--add_subdirectory(EGLWLMockNavigation)
- add_subdirectory(EGLWLInputEventExample)
- add_subdirectory(layer-add-surfaces)
- add_subdirectory(multi-touch-viewer)
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/wayland-ivi-extension/0006-fix-plugin-registry-include.patch b/meta-agl-profile-graphical/recipes-graphics/wayland/wayland-ivi-extension/0006-fix-plugin-registry-include.patch
deleted file mode 100644
index dddbfd370..000000000
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/wayland-ivi-extension/0006-fix-plugin-registry-include.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/ivi-input-modules/ivi-input-controller/src/ivi-input-controller.c b/ivi-input-modules/ivi-input-controller/src/ivi-input-controller.c
-index a0bfc48..257a1dc 100644
---- a/ivi-input-modules/ivi-input-controller/src/ivi-input-controller.c
-+++ b/ivi-input-modules/ivi-input-controller/src/ivi-input-controller.c
-@@ -31,7 +31,7 @@
- #include <fcntl.h>
- #include <unistd.h>
-
--#include "plugin-registry.h"
-+#include <libweston/plugin-registry.h>
- #include "ilm_types.h"
-
- #include "ivi-input-server-protocol.h"
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/wayland-ivi-extension/wandboard_fix_build.patch b/meta-agl-profile-graphical/recipes-graphics/wayland/wayland-ivi-extension/wandboard_fix_build.patch
deleted file mode 100644
index 86b448be1..000000000
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/wayland-ivi-extension/wandboard_fix_build.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 3610fa9..8b4614d 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -34,7 +34,7 @@ add_subdirectory(ivi-layermanagement-api/ilmCommon)
- add_subdirectory(ivi-layermanagement-api/ilmClient)
- add_subdirectory(ivi-layermanagement-api/ilmControl)
- add_subdirectory(ivi-layermanagement-api/test)
--add_subdirectory(ivi-layermanagement-examples)
-+#add_subdirectory(ivi-layermanagement-examples)
-
- if(WITH_ILM_INPUT)
- add_subdirectory(ivi-input-api/ilmInput)
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/wayland-ivi-extension_git.bb b/meta-agl-profile-graphical/recipes-graphics/wayland/wayland-ivi-extension_git.bb
deleted file mode 100644
index 68fc694a8..000000000
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/wayland-ivi-extension_git.bb
+++ /dev/null
@@ -1,36 +0,0 @@
-SUMMARY = "Wayland IVI Extension"
-DESCRIPTION = "GENIVI Layer Management API based on Wayland IVI Extension"
-HOMEPAGE = "http://projects.genivi.org/wayland-ivi-extension"
-BUGTRACKER = "http://bugs.genivi.org/enter_bug.cgi?product=Wayland%20IVI%20Extension"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=1f1a56bb2dadf5f2be8eb342acf4ed79"
-
-SRC_URI = "git://github.com/GENIVI/${BPN}.git;protocol=http \
- file://0001-Added-ivi-id-agent-to-CMake.patch \
- file://0002-ivi-id-agent-added-ivi-id-agent.patch \
- file://0003-ivi-controller-load-id-agent-module.patch \
- file://0002-add-LayerManagerControl-error-status.patch \
- file://0004-ivi-ilmcontrol-added-focus-notification.patch \
- file://0005-disable-EGLWLMockNavigation-example-build.patch \
- file://0006-fix-plugin-registry-include.patch \
-"
-SRC_URI_append_wandboard = " file://wandboard_fix_build.patch"
-SRCREV = "736fb654ac81230cf4f9e51a5772d3a02d7639bf"
-
-PV = "2.2.0+git${SRCPV}"
-S = "${WORKDIR}/git"
-
-DEPENDS = "weston virtual/libgles2 pixman wayland-native"
-
-FILESEXTRAPATHS_prepend := ":${THISDIR}/wayland-ivi-extension:"
-
-inherit cmake
-
-EXTRA_OECMAKE := "-DWITH_ILM_INPUT=1"
-
-FILES_${PN} += "${libdir}/weston/*"
-FILES_${PN} += "${datadir}/wayland-protocols/stable/ivi-application/*"
-
-FILES_${PN}-dbg += "${libdir}/weston/.debug/*"
-
-EXTRA_OECMAKE += "-DLIB_SUFFIX=${@d.getVar('baselib', True).replace('lib', '')}"
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init.bbappend b/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init.bbappend
deleted file mode 100644
index b3fecec22..000000000
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init.bbappend
+++ /dev/null
@@ -1,83 +0,0 @@
-FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
-
-inherit agl-graphical
-
-AGL_DEFAULT_WESTONSTART ??= "/usr/bin/agl-compositor --config ${sysconfdir}/xdg/weston/weston.ini"
-
-WESTONSTART ??= "${AGL_DEFAULT_WESTONSTART} ${WESTONARGS}"
-WESTONSTART_append = " ${@bb.utils.contains("IMAGE_FEATURES", "debug-tweaks", " --log=${DISPLAY_XDG_RUNTIME_DIR}/compositor.log", "",d)}"
-
-# Systemd name of DRM device to have weston/agl-compositor startup depend
-# upon, if required. Currently only x86-64 seems to need a dependency to
-# avoid failures due to racing with i915 driver init on e.g. UpSquared.
-# It seems safer for now to only apply it there rather than doing a blanket
-# default everywhere that might then need to be over-ridden for vendor BSPs.
-WESTON_DRM_DEVICE ?= ""
-
-WIFILES = " \
- file://weston.conf.in \
- file://weston-dep.conf.in \
- file://tmpfiles.conf.in \
- file://zz-dri.rules.in \
- file://zz-input.rules.in \
- file://zz-tty.rules.in \
-"
-
-WIFILES_append_imx = " \
- file://zz-dri-imx.rules.in \
-"
-
-SRC_URI_append = " ${WIFILES}"
-
-do_install_append() {
- # Remove upstream weston.ini to avoid conflict with weston-ini-conf package
- rm -f ${D}${sysconfdir}/xdg/weston/weston.ini
-
- # Remove upstream weston udev rules just to be safe
- rm -f ${D}${sysconfdir}/udev/rules.d/71-weston-drm.rules
-
- # Process ".in" files
- files=$(echo ${WIFILES} | sed s,file://,,g)
- for f in ${files}; do
- g=${f%.in}
- if [ "${f}" != "${g}" ]; then
- sed -e "s,@WESTONUSER@,${WESTONUSER},g" \
- -e "s,@WESTONGROUP@,${WESTONGROUP},g" \
- -e "s,@XDG_RUNTIME_DIR@,${DISPLAY_XDG_RUNTIME_DIR},g" \
- -e "s,@WESTONSTART@,${WESTONSTART},g" \
- -e "s,@WESTON_DRM_DEVICE@,${WESTON_DRM_DEVICE},g" \
- ${WORKDIR}/${f} > ${WORKDIR}/${g}
- fi
- done
-
- # Install weston drop-in
- install -d ${D}${systemd_system_unitdir}/weston@.service.d
- install -m644 ${WORKDIR}/weston.conf ${D}/${systemd_system_unitdir}/weston@.service.d/weston-init.conf
-
- # Install weston DRM device dependency drop-in if required
- if [ -n "${WESTON_DRM_DEVICE}" ]; then
- install -m 0644 ${WORKDIR}/weston-dep.conf ${D}/${systemd_system_unitdir}/weston@.service.d/
- fi
-
- # Install tmpfiles drop-in
- install -d ${D}${libdir}/tmpfiles.d
- install -m644 ${WORKDIR}/tmpfiles.conf ${D}${libdir}/tmpfiles.d/weston-init.conf
-
- # Install udev rules
- install -d ${D}${sysconfdir}/udev/rules.d
- for f in ${files}; do
- g=${f%.in}
- h=${g%.rules}
- if [ "${g}" != "${h}" ]; then
- install -m644 ${WORKDIR}/${g} ${D}${sysconfdir}/udev/rules.d
- fi
- done
-}
-
-FILES_${PN} += " \
- ${libdir}/tmpfiles.d/ \
- ${systemd_system_unitdir}/weston@.service.d/ \
-"
-
-SYSTEMD_AUTO_ENABLE = "enable"
-
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/tmpfiles.conf.in b/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/tmpfiles.conf.in
deleted file mode 100644
index c4b302faf..000000000
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/tmpfiles.conf.in
+++ /dev/null
@@ -1,6 +0,0 @@
-# This file is distributed to create weston XDG_RUNTIME_DIR (/run/deamon/@WESTONUSER@)
-#
-# See tmpfiles.d(5) for details
-
-d /run/platform/ 0775 root root -
-d /run/platform/@WESTONUSER@ 0770 @WESTONUSER@ @WESTONGROUP@ -
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/weston-dep.conf.in b/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/weston-dep.conf.in
deleted file mode 100644
index 2b8102096..000000000
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/weston-dep.conf.in
+++ /dev/null
@@ -1,3 +0,0 @@
-[Unit]
-Requires=@WESTON_DRM_DEVICE@
-After=@WESTON_DRM_DEVICE@
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/weston.conf.in b/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/weston.conf.in
deleted file mode 100644
index 9c3df052d..000000000
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/weston.conf.in
+++ /dev/null
@@ -1,12 +0,0 @@
-[Service]
-Type=notify
-Environment="XDG_RUNTIME_DIR=@XDG_RUNTIME_DIR@"
-# Note that clearing PAMName (thus not having PAMName=login) disables
-# logind support for the session, which allows setting XDG_RUNTIME_DIR
-# to something other than /run/user/% (as is done above).
-# Without systemd-logind support, weston needs to be patched to allow
-# its direct launcher to work for non-root users in this scenario.
-PAMName=
-ExecStart=
-ExecStart=@WESTONSTART@
-SmackProcessLabel=System::Weston
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/zz-dri-imx.rules.in b/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/zz-dri-imx.rules.in
deleted file mode 100644
index 585db6be8..000000000
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/zz-dri-imx.rules.in
+++ /dev/null
@@ -1,2 +0,0 @@
-SUBSYSTEM=="gpu_class", MODE="0660", GROUP="@WESTONGROUP@", SECLABEL{smack}="*"
-
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/zz-dri.rules.in b/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/zz-dri.rules.in
deleted file mode 100644
index 51c68c303..000000000
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/zz-dri.rules.in
+++ /dev/null
@@ -1 +0,0 @@
-SUBSYSTEM=="drm", MODE="0660", GROUP="@WESTONGROUP@", SECLABEL{smack}="*", TAG+="systemd", ENV{SYSTEMD_WANTS}="weston@@WESTONUSER@.service"
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/zz-input.rules.in b/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/zz-input.rules.in
deleted file mode 100644
index fb3e677f4..000000000
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/zz-input.rules.in
+++ /dev/null
@@ -1 +0,0 @@
-SUBSYSTEM=="input", MODE="0660", GROUP="input", SECLABEL{smack}="*", TAG+="systemd", ENV{SYSTEMD_WANTS}="weston@@WESTONUSER@.service"
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/zz-tty.rules.in b/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/zz-tty.rules.in
deleted file mode 100644
index e5ce4b553..000000000
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/zz-tty.rules.in
+++ /dev/null
@@ -1 +0,0 @@
-SUBSYSTEM=="tty", KERNEL=="tty7", OWNER="@WESTONUSER@", SECLABEL{smack}="*", TAG+="systemd", ENV{SYSTEMD_WANTS}="weston@@WESTONUSER@.service"
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/weston-ready/weston-ready b/meta-agl-profile-graphical/recipes-graphics/wayland/weston-ready/weston-ready
deleted file mode 100644
index c7cba3043..000000000
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/weston-ready/weston-ready
+++ /dev/null
@@ -1,56 +0,0 @@
-#!/bin/bash
-#
-# Copyright (c) 2018, Konsulko Group
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-#
-# Simple script to check if Weston+IVI shell is ready by calling
-# LayerManagerControl, optionally waiting for a specified timeout.
-#
-
-usage="Usage: weston-ready [-t timeout]"
-timeout=0
-
-function info() { echo "$@" >&2; }
-
-if [ $# -eq 2 ]; then
- if [ $1 = "-t" ]; then
- timeout=$(($2 * 10))
- else
- echo $usage
- exit 1
- fi
-fi
-
-info "using timeout $timeout"
-
-time=0
-rc=1
-while true; do
- if [ $time -gt $timeout ]; then
- info "Timeout reached"
- break
- elif LayerManagerControl get screens >/dev/null 2>&1; then
- info "Weston is now ready"
- rc=0
- break
- fi
- info "waiting..."
- if [ $timeout -gt 0 ]; then
- usleep 500000
- fi
- time=$(($time + 5))
-done
-exit $rc
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/weston-ready/weston-ready.service b/meta-agl-profile-graphical/recipes-graphics/wayland/weston-ready/weston-ready.service
deleted file mode 100644
index 82490fef4..000000000
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/weston-ready/weston-ready.service
+++ /dev/null
@@ -1,10 +0,0 @@
-[Unit]
-Description=Wait for Weston readiness
-Requires=weston@display.service
-After=weston@display.service
-
-[Service]
-SupplementaryGroups=display
-Environment="XDG_RUNTIME_DIR=/run/platform/display"
-ExecStart=/usr/bin/weston-ready -t 10
-Type=oneshot
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/weston-ready_1.0.bb b/meta-agl-profile-graphical/recipes-graphics/wayland/weston-ready_1.0.bb
deleted file mode 100644
index a3d0bb248..000000000
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/weston-ready_1.0.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "Weston readiness checker"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
-
-inherit systemd
-
-SRC_URI = "file://weston-ready \
- file://weston-ready.service \
-"
-
-do_install() {
- install -D -m 0755 ${WORKDIR}/weston-ready ${D}${bindir}/weston-ready
-
- if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
- install -D -m 0644 ${WORKDIR}/weston-ready.service ${D}${systemd_system_unitdir}/weston-ready.service
- fi
-}
-
-SYSTEMD_SERVICE_${PN} = "weston-ready.service"
-
-RDEPENDS_${PN} += "weston bash"
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/weston_8.0.%.bbappend b/meta-agl-profile-graphical/recipes-graphics/wayland/weston_8.0.%.bbappend
deleted file mode 100644
index d681aa133..000000000
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/weston_8.0.%.bbappend
+++ /dev/null
@@ -1,26 +0,0 @@
-FILESEXTRAPATHS_append := ":${THISDIR}/${PN}"
-
-SRC_URI_append = "\
- file://0001-Allow-regular-users-to-launch-Weston_7.0.0.patch \
- file://0001-libweston-Expose-weston_output_damage-in-libweston.patch \
- file://0001-libweston-Migrate-weston_seat_init-release-to-public.patch \
- file://0005-correctly-tear-down-drm-backend.patch \
- file://smack-weston \
- "
-
-EXTRA_OEMESON_append = " -Denable-user-start=true"
-
-# Workaround for incorrect upstream definition
-PACKAGECONFIG[remoting] = "-Dremoting=true,-Dremoting=false,gstreamer1.0 gstreamer1.0-plugins-base"
-PACKAGECONFIG_append = "${@bb.utils.contains('DISTRO_FEATURES', 'weston-remoting', ' remoting', '', d)}"
-
-do_install_append() {
- if ${@bb.utils.contains('DISTRO_FEATURES', 'smack', 'true', 'false', d)}; then
- # Install SMACK rules
- install -D -m 0644 ${WORKDIR}/smack-weston ${D}${sysconfdir}/smack/accesses.d/weston
- fi
-}
-
-FILES_${PN} += "\
- ${sysconfdir}/smack/accesses.d/* \
-"
diff --git a/meta-agl-profile-graphical/recipes-multimedia/gstreamer1.0-plugins-bad/gstreamer1.0-plugins-bad/0001-gst-wayland-Install-wayland-header-from-gstwayland-l.patch b/meta-agl-profile-graphical/recipes-multimedia/gstreamer1.0-plugins-bad/gstreamer1.0-plugins-bad/0001-gst-wayland-Install-wayland-header-from-gstwayland-l.patch
deleted file mode 100644
index 443e7db8b..000000000
--- a/meta-agl-profile-graphical/recipes-multimedia/gstreamer1.0-plugins-bad/gstreamer1.0-plugins-bad/0001-gst-wayland-Install-wayland-header-from-gstwayland-l.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 03e502084633838badfcc2b91a1aca1651c18544 Mon Sep 17 00:00:00 2001
-From: Marius Vlad <marius.vlad@collabora.com>
-Date: Wed, 24 Jun 2020 19:44:35 +0300
-Subject: [PATCH] gst/wayland/: Install wayland header from gstwayland library
-
-Necessary for cluster-receiver to pass out the wl_surface.
-
-Bug-AGL: SPEC-3382
-
-Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
----
- gst-libs/gst/wayland/meson.build | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/gst-libs/gst/wayland/meson.build b/gst-libs/gst/wayland/meson.build
-index b1ede41f1..8957381d2 100644
---- a/gst-libs/gst/wayland/meson.build
-+++ b/gst-libs/gst/wayland/meson.build
-@@ -21,4 +21,6 @@ if use_wayland
- gstwayland_dep = declare_dependency(link_with : gstwayland,
- include_directories : [libsinc],
- dependencies : [gst_dep, gstvideo_dep])
-+
-+ install_headers('wayland.h', subdir: 'gst/wayland')
- endif
---
-2.26.2
-
diff --git a/meta-agl-profile-graphical/recipes-multimedia/gstreamer1.0-plugins-bad/gstreamer1.0-plugins-bad_1.16.%.bbappend b/meta-agl-profile-graphical/recipes-multimedia/gstreamer1.0-plugins-bad/gstreamer1.0-plugins-bad_1.16.%.bbappend
deleted file mode 100644
index a74fb623d..000000000
--- a/meta-agl-profile-graphical/recipes-multimedia/gstreamer1.0-plugins-bad/gstreamer1.0-plugins-bad_1.16.%.bbappend
+++ /dev/null
@@ -1,2 +0,0 @@
-FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
-SRC_URI_append=" file://0001-gst-wayland-Install-wayland-header-from-gstwayland-l.patch"
diff --git a/meta-agl-profile-graphical/recipes-multimedia/gstreamer1.0-plugins-good/gstreamer1.0-plugins-good_%.bbappend b/meta-agl-profile-graphical/recipes-multimedia/gstreamer1.0-plugins-good/gstreamer1.0-plugins-good_%.bbappend
deleted file mode 100644
index 86a181fbb..000000000
--- a/meta-agl-profile-graphical/recipes-multimedia/gstreamer1.0-plugins-good/gstreamer1.0-plugins-good_%.bbappend
+++ /dev/null
@@ -1,2 +0,0 @@
-# libv4l2 is useful for making more efficient use of cameras via v4l2src.
-PACKAGECONFIG_append = " libv4l2"
diff --git a/meta-agl-profile-graphical/recipes-platform/packagegroups/packagegroup-agl-graphical-multimedia.bbappend b/meta-agl-profile-graphical/recipes-platform/packagegroups/packagegroup-agl-graphical-multimedia.bbappend
deleted file mode 100644
index 4a98a233c..000000000
--- a/meta-agl-profile-graphical/recipes-platform/packagegroups/packagegroup-agl-graphical-multimedia.bbappend
+++ /dev/null
@@ -1,5 +0,0 @@
-RDEPENDS_${PN}_append_ulcb = "\
- ${@bb.utils.contains('MACHINE_FEATURES','multimedia','packagegroup-multimedia-kernel-modules','',d)} \
- ${@bb.utils.contains('MACHINE_FEATURES','multimedia','packagegroup-multimedia-libs','',d)} \
- ${@bb.utils.contains('MACHINE_FEATURES','multimedia','packagegroup-gstreamer1.0-plugins','',d)} \
-"
diff --git a/meta-agl-profile-graphical/recipes-platform/packagegroups/packagegroup-agl-graphical-services.bb b/meta-agl-profile-graphical/recipes-platform/packagegroups/packagegroup-agl-graphical-services.bb
deleted file mode 100644
index e587ab21c..000000000
--- a/meta-agl-profile-graphical/recipes-platform/packagegroups/packagegroup-agl-graphical-services.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-DESCRIPTION = "The minimal set of packages for Connectivity Subsystem"
-LICENSE = "MIT"
-
-inherit packagegroup
-
-PACKAGES = "\
- packagegroup-agl-graphical-services \
- "
-
-ALLOW_EMPTY_${PN} = "1"
-
-RDEPENDS_${PN} = "\
- ${@bb.utils.contains('DISTRO_FEATURES', 'pipewire', 'agl-service-mediaplayer', '', d)} \
- ${@bb.utils.contains('DISTRO_FEATURES', 'pipewire', 'agl-service-radio', '', d)} \
- "
diff --git a/meta-agl-profile-hud/LICENSE b/meta-agl-profile-hud/LICENSE
deleted file mode 100644
index e8758f89c..000000000
--- a/meta-agl-profile-hud/LICENSE
+++ /dev/null
@@ -1,20 +0,0 @@
-Different components of the AGL layers are under different licenses (a mix
-of MIT and GPLv2). See LICENSE.GPL-2.0-only and LICENSE.MIT for further
-details of the individual licenses.
-
-All metadata (e.g. .bb, .bbappend, .bbclass, .inc, templates/* and similar)
-is MIT licensed unless otherwise stated.
-Source code included in tree for individual recipes (e.g. patches) are under
-the LICENSE stated in the associated recipe (.bb file) unless otherwise stated.
-
-License information for any other files (scripts) is either explicitly stated
-or defaults to GPL version 2 only.
-
-Individual files can contain the following style tags instead of the full
-license text to identify their license:
-
- SPDX-License-Identifier: GPL-2.0-only
- SPDX-License-Identifier: MIT
-
-This enables machine processing of license information based on the SPDX
-License Identifiers that are here available: http://spdx.org/licenses/
diff --git a/meta-agl-profile-hud/LICENSE.GPL-2.0-only b/meta-agl-profile-hud/LICENSE.GPL-2.0-only
deleted file mode 100644
index 5db3c0a21..000000000
--- a/meta-agl-profile-hud/LICENSE.GPL-2.0-only
+++ /dev/null
@@ -1,288 +0,0 @@
- GNU GENERAL PUBLIC LICENSE
- Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users. This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it. (Some other Free Software Foundation software is covered by
-the GNU Lesser General Public License instead.) You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
- To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have. You must make sure that they, too, receive or can get the
-source code. And you must show them these terms so they know their
-rights.
-
- We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
- Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software. If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
- Finally, any free program is threatened constantly by software
-patents. We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary. To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- GNU GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License. The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language. (Hereinafter, translation is included without limitation in
-the term "modification".) Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
- 1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
- 2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) You must cause the modified files to carry prominent notices
- stating that you changed the files and the date of any change.
-
- b) You must cause any work that you distribute or publish, that in
- whole or in part contains or is derived from the Program or any
- part thereof, to be licensed as a whole at no charge to all third
- parties under the terms of this License.
-
- c) If the modified program normally reads commands interactively
- when run, you must cause it, when started running for such
- interactive use in the most ordinary way, to print or display an
- announcement including an appropriate copyright notice and a
- notice that there is no warranty (or else, saying that you provide
- a warranty) and that users may redistribute the program under
- these conditions, and telling the user how to view a copy of this
- License. (Exception: if the Program itself is interactive but
- does not normally print such an announcement, your work based on
- the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
- a) Accompany it with the complete corresponding machine-readable
- source code, which must be distributed under the terms of Sections
- 1 and 2 above on a medium customarily used for software interchange; or,
-
- b) Accompany it with a written offer, valid for at least three
- years, to give any third party, for a charge no more than your
- cost of physically performing source distribution, a complete
- machine-readable copy of the corresponding source code, to be
- distributed under the terms of Sections 1 and 2 above on a medium
- customarily used for software interchange; or,
-
- c) Accompany it with the information you received as to the offer
- to distribute corresponding source code. (This alternative is
- allowed only for noncommercial distribution and only if you
- received the program in object code or executable form with such
- an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it. For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable. However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License. Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
- 5. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Program or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
- 6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
- 7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all. For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded. In such case, this License incorporates
-the limitation as if written in the body of this License.
-
- 9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation. If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
- 10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission. For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this. Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
- NO WARRANTY
-
- 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
- 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
-Note:
-Individual files contain the following tag instead of the full license text.
-
- SPDX-License-Identifier: GPL-2.0-only
-
-This enables machine processing of license information based on the SPDX
-License Identifiers that are here available: http://spdx.org/licenses/
diff --git a/meta-agl-profile-hud/LICENSE.MIT b/meta-agl-profile-hud/LICENSE.MIT
deleted file mode 100644
index a6919eb7e..000000000
--- a/meta-agl-profile-hud/LICENSE.MIT
+++ /dev/null
@@ -1,25 +0,0 @@
-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 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.
-
-Note:
-Individual files contain the following tag instead of the full license text.
-
- SPDX-License-Identifier: MIT
-
-This enables machine processing of license information based on the SPDX
-License Identifiers that are here available: http://spdx.org/licenses/
diff --git a/meta-agl-profile-hud/conf/layer.conf b/meta-agl-profile-hud/conf/layer.conf
deleted file mode 100644
index f8f18cdc9..000000000
--- a/meta-agl-profile-hud/conf/layer.conf
+++ /dev/null
@@ -1,12 +0,0 @@
-# We have a conf and classes directory, add to BBPATH
-BBPATH =. "${LAYERDIR}:"
-
-# We have recipes-* directories, add to BBFILES
-BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
- ${LAYERDIR}/recipes-*/*/*.bbappend"
-
-BBFILE_COLLECTIONS += "aglprofilehud"
-BBFILE_PATTERN_aglprofilehud = "^${LAYERDIR}/"
-BBFILE_PRIORITY_aglprofilehud = "70"
-
-LAYERSERIES_COMPAT_aglprofilehud = "dunfell"
diff --git a/meta-agl-profile-telematics/LICENSE b/meta-agl-profile-telematics/LICENSE
deleted file mode 100644
index e8758f89c..000000000
--- a/meta-agl-profile-telematics/LICENSE
+++ /dev/null
@@ -1,20 +0,0 @@
-Different components of the AGL layers are under different licenses (a mix
-of MIT and GPLv2). See LICENSE.GPL-2.0-only and LICENSE.MIT for further
-details of the individual licenses.
-
-All metadata (e.g. .bb, .bbappend, .bbclass, .inc, templates/* and similar)
-is MIT licensed unless otherwise stated.
-Source code included in tree for individual recipes (e.g. patches) are under
-the LICENSE stated in the associated recipe (.bb file) unless otherwise stated.
-
-License information for any other files (scripts) is either explicitly stated
-or defaults to GPL version 2 only.
-
-Individual files can contain the following style tags instead of the full
-license text to identify their license:
-
- SPDX-License-Identifier: GPL-2.0-only
- SPDX-License-Identifier: MIT
-
-This enables machine processing of license information based on the SPDX
-License Identifiers that are here available: http://spdx.org/licenses/
diff --git a/meta-agl-profile-telematics/LICENSE.GPL-2.0-only b/meta-agl-profile-telematics/LICENSE.GPL-2.0-only
deleted file mode 100644
index 5db3c0a21..000000000
--- a/meta-agl-profile-telematics/LICENSE.GPL-2.0-only
+++ /dev/null
@@ -1,288 +0,0 @@
- GNU GENERAL PUBLIC LICENSE
- Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users. This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it. (Some other Free Software Foundation software is covered by
-the GNU Lesser General Public License instead.) You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
- To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have. You must make sure that they, too, receive or can get the
-source code. And you must show them these terms so they know their
-rights.
-
- We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
- Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software. If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
- Finally, any free program is threatened constantly by software
-patents. We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary. To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- GNU GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License. The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language. (Hereinafter, translation is included without limitation in
-the term "modification".) Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
- 1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
- 2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) You must cause the modified files to carry prominent notices
- stating that you changed the files and the date of any change.
-
- b) You must cause any work that you distribute or publish, that in
- whole or in part contains or is derived from the Program or any
- part thereof, to be licensed as a whole at no charge to all third
- parties under the terms of this License.
-
- c) If the modified program normally reads commands interactively
- when run, you must cause it, when started running for such
- interactive use in the most ordinary way, to print or display an
- announcement including an appropriate copyright notice and a
- notice that there is no warranty (or else, saying that you provide
- a warranty) and that users may redistribute the program under
- these conditions, and telling the user how to view a copy of this
- License. (Exception: if the Program itself is interactive but
- does not normally print such an announcement, your work based on
- the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
- a) Accompany it with the complete corresponding machine-readable
- source code, which must be distributed under the terms of Sections
- 1 and 2 above on a medium customarily used for software interchange; or,
-
- b) Accompany it with a written offer, valid for at least three
- years, to give any third party, for a charge no more than your
- cost of physically performing source distribution, a complete
- machine-readable copy of the corresponding source code, to be
- distributed under the terms of Sections 1 and 2 above on a medium
- customarily used for software interchange; or,
-
- c) Accompany it with the information you received as to the offer
- to distribute corresponding source code. (This alternative is
- allowed only for noncommercial distribution and only if you
- received the program in object code or executable form with such
- an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it. For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable. However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License. Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
- 5. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Program or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
- 6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
- 7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all. For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded. In such case, this License incorporates
-the limitation as if written in the body of this License.
-
- 9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation. If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
- 10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission. For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this. Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
- NO WARRANTY
-
- 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
- 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
-Note:
-Individual files contain the following tag instead of the full license text.
-
- SPDX-License-Identifier: GPL-2.0-only
-
-This enables machine processing of license information based on the SPDX
-License Identifiers that are here available: http://spdx.org/licenses/
diff --git a/meta-agl-profile-telematics/LICENSE.MIT b/meta-agl-profile-telematics/LICENSE.MIT
deleted file mode 100644
index a6919eb7e..000000000
--- a/meta-agl-profile-telematics/LICENSE.MIT
+++ /dev/null
@@ -1,25 +0,0 @@
-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 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.
-
-Note:
-Individual files contain the following tag instead of the full license text.
-
- SPDX-License-Identifier: MIT
-
-This enables machine processing of license information based on the SPDX
-License Identifiers that are here available: http://spdx.org/licenses/
diff --git a/meta-agl-profile-telematics/conf/layer.conf b/meta-agl-profile-telematics/conf/layer.conf
deleted file mode 100644
index f9ef2e3bf..000000000
--- a/meta-agl-profile-telematics/conf/layer.conf
+++ /dev/null
@@ -1,12 +0,0 @@
-# We have a conf and classes directory, add to BBPATH
-BBPATH =. "${LAYERDIR}:"
-
-# We have recipes-* directories, add to BBFILES
-BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
- ${LAYERDIR}/recipes-*/*/*.bbappend"
-
-BBFILE_COLLECTIONS += "aglprofiletelematics"
-BBFILE_PATTERN_aglprofiletelematics = "^${LAYERDIR}/"
-BBFILE_PRIORITY_aglprofiletelematics = "70"
-
-LAYERSERIES_COMPAT_aglprofiletelematics = "dunfell"
diff --git a/meta-agl-profile-telematics/recipes-platform/images/agl-image-telematics.bb b/meta-agl-profile-telematics/recipes-platform/images/agl-image-telematics.bb
deleted file mode 100644
index ad6ef9888..000000000
--- a/meta-agl-profile-telematics/recipes-platform/images/agl-image-telematics.bb
+++ /dev/null
@@ -1,9 +0,0 @@
-SUMMARY = "A basic telematics image"
-
-require agl-image-telematics.inc
-
-LICENSE = "MIT"
-
-IMAGE_INSTALL_append = "\
- profile-telematics \
- "
diff --git a/meta-agl-profile-telematics/recipes-platform/images/agl-image-telematics.inc b/meta-agl-profile-telematics/recipes-platform/images/agl-image-telematics.inc
deleted file mode 100644
index 3e951550e..000000000
--- a/meta-agl-profile-telematics/recipes-platform/images/agl-image-telematics.inc
+++ /dev/null
@@ -1,5 +0,0 @@
-require recipes-platform/images/agl-image-boot.inc
-
-inherit features_check
-
-REQUIRED_DISTRO_FEATURES = "3g"
diff --git a/meta-agl-profile-telematics/recipes-platform/packagegroups/packagegroup-agl-profile-telematics.bb b/meta-agl-profile-telematics/recipes-platform/packagegroups/packagegroup-agl-profile-telematics.bb
deleted file mode 100644
index 66fc0f765..000000000
--- a/meta-agl-profile-telematics/recipes-platform/packagegroups/packagegroup-agl-profile-telematics.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-SUMMARY = "The middleware for AGL telematics profile"
-DESCRIPTION = "The set of packages required for AGL Telematics Distribution"
-LICENSE = "MIT"
-
-inherit packagegroup
-
-PACKAGES = "\
- packagegroup-agl-profile-telematics \
- profile-telematics \
- "
-
-ALLOW_EMPTY_${PN} = "1"
-
-RDEPENDS_${PN} += "\
- packagegroup-agl-image-boot \
- packagegroup-agl-core-security \
- ${@bb.utils.contains('VIRTUAL-RUNTIME_net_manager','connman','connman connman-client','',d)} \
- ${@bb.utils.contains("DISTRO_FEATURES", "3g", "libqmi", "", d)} \
- agl-login-manager \
- agl-service-can-low-level \
- agl-service-network \
- can-utils \
-"
-
-RDEPENDS_profile-telematics = "${PN}"
diff --git a/meta-agl.md b/meta-agl.md
index 6c3427cd5..565eff5a7 100755
--- a/meta-agl.md
+++ b/meta-agl.md
@@ -7,9 +7,6 @@ You use this layer as the minimal core on which to build AGL profiles.
**NOTE:** The `meta-agl` layer does not include a reference UI.
The reference UI is included as part of the
[`meta-agl-demo`](./meta-agl-demo.html) layer.
- Furthermore, `meta-agl` does not include additional components, such
- as security, which are part of the
- `meta-agl-extra` layer.
## Sub-Layers
@@ -17,59 +14,45 @@ The `meta-agl` layer itself contains many sub-layers and files.
Following is a "tree" look at the layer:
```
-.
-├── docs
-├── meta-agl
-├── meta-agl-bsp
-├── meta-agl-distro
-├── meta-agl-profile-cluster
-├── meta-agl-profile-cluster-qt5
-├── meta-agl-profile-core
-├── meta-agl-profile-graphical
-├── meta-agl-profile-graphical-html5
-├── meta-agl-profile-graphical-qt5
-├── meta-agl-profile-hud
-├── meta-agl-profile-telematics
-├── meta-app-framework
-├── meta-netboot
-├── meta-security
-├── README-AGL.md
-├── README.md
-├── scripts
-├── templates
+|-- LICENSE
+|-- LICENSE.GPL-2.0-only
+|-- LICENSE.MIT
+|-- README-AGL.md
+|-- README.md -> meta-agl.md
+|-- agl-layers-overview.md
+|-- docs
+|-- meta-agl-bsp
+|-- meta-agl-core
+|-- meta-agl-core-test
+|-- meta-agl-ic
+|-- meta-agl-ivi
+|-- meta-agl.md
+|-- meta-app-framework
+|-- meta-netboot
+|-- meta-pipewire
+|-- scripts
+`-- templates
```
This list provides some overview information on the files and sub-layers
in `meta-agl`:
+* LICENSE* : licenses of the various components.
+* README* : RTFM
+* agl-layers-overview.md: references to the various layers that make up AGL
* `docs`: Contains files that support AGL documentation.
-* `meta-agl`: Contains layer configuration for the `meta-agl` layer.
* `meta-agl-bsp`: Contains adaptations for recipes and required packages
to boot an AGL distribution on targeted hardware and emulation (i.e. QEMU).
-* `meta-agl-distro`: Contains distro configuration and supporting scripts.
-* `meta-agl-profile-cluster`: The middleware for the AGL cluster profile.
- The set of packages required for AGL Cluster Distribution.
- Profiles include support for Wayland images.
-* `meta-agl-profile-cluster-qt5`: The middleware for the AGL Qt5-based cluster profile.
- The set of packages required for AGL Qt5-based Cluster Distribution.
- Profiles include support for Wayland images with Qt5.
-* `meta-agl-profile-core`: Configuration and recipes for the AGL core profiles.
-* `meta-agl-profile-graphical`: Configuration and recipes supporting graphical user
- interfaces.
-* `meta-agl-profile-graphical-html5`: Configuration and recipes supporting profiles
- with HTML user interface support.
-* `meta-agl-profile-graphical-qt5`: Configuration and recipes supporting profiles
- with Qt5-based user interface support.
-* `meta-agl-profile-hud`: Configuration and recipes supporting profiles with
- Head-Up-Display (HUD) support.
-* `meta-agl-profile-telematics`: Configuration and recipes supporting profiles with
- telematics support.
+* `meta-agl-core`: This is the core layer with essential recieps and the distro.
+* `meta-agl-core-test`: recipes supporting qa images (separate layer due to external dependencies)
+* `meta-agl-ic`: Instrument Cluster platform
+* `meta-agl-ivi`: IVI platform
* `meta-app-framework`: Configuration and recipes supporting the AGL Application
Framework.
* `meta-netboot`: Contains recipes and configuration adjustments to allow network
boot through network block device (NBD) since network file system (NFS) does not
support security labels.
-* `meta-security`: Configuration and recipes supporting security applications.
+* `meta-pipewire`: Configuration and recipes supporting pipewire as audio manager
* `scripts`: AGL development setup and support scripts.
* `templates`: Base, feature, and machine templates used in the AGL development
environment.
@@ -80,41 +63,40 @@ This section describes the AGL
[packagegroup](https://yoctoproject.org/docs/2.4.4/dev-manual/dev-manual.html#usingpoky-extend-customimage-customtasks)
design:
-* packagegroup-agl-image-minimal
+### core non-ui packagegroups:
+meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-core-connectivity.bb
+meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-core-devel.bb
+meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-core-security.bb
+meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-core-os-commonlibs.bb
- packagegroup-agl-core-automotive.bb
- packagegroup-agl-core-connectivity.bb
- packagegroup-agl-core-graphics.bb
- packagegroup-agl-core-kernel.bb
- packagegroup-agl-core-multimedia.bb
- packagegroup-agl-core-navi-lbs.bb
- packagegroup-agl-core-os-commonlibs.bb
- packagegroup-agl-core-security.bb
- packagegroup-agl-core-speech-services.bb
+### graphical subsystem
+meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-profile-graphical.bb
+meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-graphical-multimedia.bb
+meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-graphical-weston.bb
- The previous list of Packagegroups are used to create the `agl-image-minimal` image,
- which is a small image just capable of allowing a device to boot.
+### image-related packagegroups
+meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-core-boot.bb
+meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-image-boot.bb
+meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-image-minimal.bb
- Subsystem should maintain packagegroup-agl-core-[subsystem].bb which should
- hold sufficient packages to build `agl-image-minimal`.
+### QA/Test related packagegroups
+meta-agl-core-test/recipes-test/packagegroups
+meta-agl-core-test/recipes-test/packagegroups/packagegroup-agl-test.bb
-* packagegroup-agl-image-ivi
+## Images
- packagegroup-agl-ivi-automotive.bb
- packagegroup-agl-ivi-connectivity.bb
- packagegroup-agl-ivi-graphics.bb
- packagegroup-agl-ivi-kernel.bb
- packagegroup-agl-ivi-multimedia.bb
- packagegroup-agl-ivi-navi-lbs.bb
- packagegroup-agl-ivi-os-commonlibs.bb
- packagegroup-agl-ivi-security.bb
- packagegroup-agl-ivi-speech-services.bb
+### (Barely) bootable image
+meta-agl-core/recipes-platform/images/agl-image-boot.bb
- The previous list of Packagegroups are used to create the `agl-image-ivi`
- image, which is a baseline image (i.e. Service Layer and Operating System
- Layer defined in AGL Spec v1.0) for the AGL profiles.
+### minimal image and SDK (console)
+meta-agl-core/recipes-platform/images/agl-image-minimal.bb
+meta-agl-core/recipes-platform/images/agl-image-minimal-crosssdk.bb
-* packagegroup-agl-test.bb
+### weston-based image for re-use
+meta-agl-core/recipes-platform/images/agl-image-weston.bb
- Additional tools used in QA tests (for agl-image*-qa).
+### image for use in the YP autobuilder
+meta-agl-core/recipes-platform/images/agl-image-core-autobuilder.bb
+### image with extra QA tooling (e.g. to run LTP)
+meta-agl-core-test/images/agl-image-minimal-qa.bb
diff --git a/meta-agl/conf/layer.conf b/meta-agl/conf/layer.conf
deleted file mode 100644
index 6f431e6ac..000000000
--- a/meta-agl/conf/layer.conf
+++ /dev/null
@@ -1,12 +0,0 @@
-# We have a conf and classes directory, add to BBPATH
-BBPATH =. "${LAYERDIR}:"
-
-# We have recipes-* directories, add to BBFILES
-BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
- ${LAYERDIR}/recipes-*/*/*.bbappend"
-
-BBFILE_COLLECTIONS += "agl"
-BBFILE_PATTERN_agl = "^${LAYERDIR}/"
-BBFILE_PRIORITY_agl = "70"
-
-LAYERSERIES_COMPAT_agl = "dunfell"
diff --git a/meta-app-framework/conf/include/agl-appfw-smack.inc b/meta-app-framework/conf/include/agl-appfw-smack.inc
index 139722402..831368a31 100644
--- a/meta-app-framework/conf/include/agl-appfw-smack.inc
+++ b/meta-app-framework/conf/include/agl-appfw-smack.inc
@@ -3,6 +3,8 @@ OVERRIDES .= ":with-lsm-smack"
DISTRO_FEATURES_append = " smack xattr"
DISTRO_FEATURES_NATIVE_append = " smack xattr"
+APPFW_ENABLED = "1"
+
# use tar-native to support SMACK extended attributes independently of host config
IMAGE_CMD_TAR = "tar --xattrs --xattrs-include='*'"
do_image_tar[depends] += "tar-replacement-native:do_populate_sysroot"
@@ -17,3 +19,6 @@ PACKAGECONFIG_append_pn-shadow-native = " attr"
# set the home directory for root
ROOT_HOME = "/home/0"
+
+# include devel wgts in images
+IMAGE_FEATURES_append = " agl-devel-wgt"
diff --git a/meta-agl-profile-core/conf/include/agl-sign-wgts.inc b/meta-app-framework/conf/include/agl-sign-wgts.inc
index 6e6674fd1..d56c01288 100644
--- a/meta-agl-profile-core/conf/include/agl-sign-wgts.inc
+++ b/meta-app-framework/conf/include/agl-sign-wgts.inc
@@ -1,3 +1,3 @@
# allows insertion of code or items specific to developement
OVERRIDES .= ":agl-sign-wgts"
-DISTRO_FEATURES_append = " agl-sign-wgts"
+AGL_FEATURES_append = " agl-sign-wgts"
diff --git a/meta-app-framework/conf/layer.conf b/meta-app-framework/conf/layer.conf
index 21b8ee530..77701bb57 100644
--- a/meta-app-framework/conf/layer.conf
+++ b/meta-app-framework/conf/layer.conf
@@ -10,3 +10,24 @@ BBFILE_PATTERN_app-framework = "^${LAYERDIR}/"
BBFILE_PRIORITY_app-framework = "70"
LAYERSERIES_COMPAT_app-framework = "dunfell"
+
+# dependency: meta-oe
+LAYERDEPENDS_app-framework = "openembedded-layer"
+# dependency: meta-security
+LAYERDEPENDS_app-framework += "security"
+
+# AGL core layer is an optional requirement
+LAYERRECOMMENDS_app-framework += "aglcore"
+LAYERRECOMMENDS_app-framework += "qt5-layer"
+
+BBFILES_DYNAMIC += " \
+ qt5-layer:${LAYERDIR}/dynamic-layers/meta-qt5/*/*/*.bb \
+ qt5-layer:${LAYERDIR}/dynamic-layers/meta-qt5/*/*/*.bbappend \
+ aglcore:${LAYERDIR}/dynamic-layers/meta-agl-core/*/*/*.bb \
+ aglcore:${LAYERDIR}/dynamic-layers/meta-agl-core/*/*/*.bbappend \
+"
+
+
+# bug in meta-security
+BBMASK += "packagegroup-core-security-ptest\.bb"
+#BBMASK += "meta-security/recipes-mac/smack/smack-test_1.0.bb
diff --git a/meta-app-framework/dynamic-layers/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-core-security.bbappend b/meta-app-framework/dynamic-layers/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-core-security.bbappend
new file mode 100644
index 000000000..048154e04
--- /dev/null
+++ b/meta-app-framework/dynamic-layers/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-core-security.bbappend
@@ -0,0 +1 @@
+require ${@bb.utils.contains('APPFW_ENABLED', '1', '${PN}_appfw.inc', '', d)}
diff --git a/meta-app-framework/recipes-platform/packagegroups/packagegroup-agl-core-security.bbappend b/meta-app-framework/dynamic-layers/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-core-security_appfw.inc
index 8445a9edd..423f15fdb 100644
--- a/meta-app-framework/recipes-platform/packagegroups/packagegroup-agl-core-security.bbappend
+++ b/meta-app-framework/dynamic-layers/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-core-security_appfw.inc
@@ -1,4 +1,4 @@
-RDEPENDS_${PN} += "\
+RDEPENDS_${PN}_append = "\
smack-system-setup \
xmlsec1 \
cynagora \
@@ -6,4 +6,3 @@ RDEPENDS_${PN} += "\
security-manager-policy \
agl-users \
"
-
diff --git a/meta-app-framework/dynamic-layers/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-image-boot.bbappend b/meta-app-framework/dynamic-layers/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-image-boot.bbappend
new file mode 100644
index 000000000..514dde79b
--- /dev/null
+++ b/meta-app-framework/dynamic-layers/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-image-boot.bbappend
@@ -0,0 +1 @@
+require ${@bb.utils.contains('APPFW_ENABLED', '1', 'packagegroup-agl-image-boot_appfw.inc', '', d)}
diff --git a/meta-app-framework/recipes-platform/packagegroups/packagegroup-agl-image-boot.bbappend b/meta-app-framework/dynamic-layers/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-image-boot_appfw.inc
index ad09e5ddf..b3383f114 100644
--- a/meta-app-framework/recipes-platform/packagegroups/packagegroup-agl-image-boot.bbappend
+++ b/meta-app-framework/dynamic-layers/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-image-boot_appfw.inc
@@ -1,3 +1,3 @@
-RDEPENDS_${PN} += "\
+RDEPENDS_${PN}_append = "\
packagegroup-agl-app-framework \
"
diff --git a/meta-app-framework/dynamic-layers/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-image-minimal.bbappend b/meta-app-framework/dynamic-layers/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-image-minimal.bbappend
new file mode 100644
index 000000000..5f890bf06
--- /dev/null
+++ b/meta-app-framework/dynamic-layers/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-image-minimal.bbappend
@@ -0,0 +1 @@
+require ${@bb.utils.contains('APPFW_ENABLED', '1', 'packagegroup-agl-image-minimal_appfw.inc', '', d)}
diff --git a/meta-app-framework/recipes-platform/packagegroups/packagegroup-agl-image-minimal.bbappend b/meta-app-framework/dynamic-layers/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-image-minimal_appfw.inc
index ad09e5ddf..b3383f114 100644
--- a/meta-app-framework/recipes-platform/packagegroups/packagegroup-agl-image-minimal.bbappend
+++ b/meta-app-framework/dynamic-layers/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-image-minimal_appfw.inc
@@ -1,3 +1,3 @@
-RDEPENDS_${PN} += "\
+RDEPENDS_${PN}_append = "\
packagegroup-agl-app-framework \
"
diff --git a/meta-agl-profile-graphical-qt5/recipes-devtools/libafb-helpers-qt/libafb-helpers-qt_git.bb b/meta-app-framework/dynamic-layers/meta-qt5/recipes-devtools/libafb-helpers-qt/libafb-helpers-qt_git.bb
index 802167b2d..802167b2d 100644
--- a/meta-agl-profile-graphical-qt5/recipes-devtools/libafb-helpers-qt/libafb-helpers-qt_git.bb
+++ b/meta-app-framework/dynamic-layers/meta-qt5/recipes-devtools/libafb-helpers-qt/libafb-helpers-qt_git.bb
diff --git a/meta-agl-profile-graphical-qt5/recipes-devtools/libqtappfw/libqtappfw_git.bb b/meta-app-framework/dynamic-layers/meta-qt5/recipes-devtools/libqtappfw/libqtappfw_git.bb
index dd270d048..dd270d048 100644
--- a/meta-agl-profile-graphical-qt5/recipes-devtools/libqtappfw/libqtappfw_git.bb
+++ b/meta-app-framework/dynamic-layers/meta-qt5/recipes-devtools/libqtappfw/libqtappfw_git.bb
diff --git a/meta-agl-profile-graphical-qt5/recipes-appfw/packagegroups/packagegroup-agl-appfw-qt5.bb b/meta-app-framework/dynamic-layers/meta-qt5/recipes-platform/packagegroups/packagegroup-agl-appfw-qt5.bb
index 2f0f01fec..2f0f01fec 100644
--- a/meta-agl-profile-graphical-qt5/recipes-appfw/packagegroups/packagegroup-agl-appfw-qt5.bb
+++ b/meta-app-framework/dynamic-layers/meta-qt5/recipes-platform/packagegroups/packagegroup-agl-appfw-qt5.bb
diff --git a/meta-app-framework/recipes-connectivity/bluez5/bluez5_%.bbappend b/meta-app-framework/recipes-connectivity/bluez5/bluez5_%.bbappend
new file mode 100644
index 000000000..20d2a68d7
--- /dev/null
+++ b/meta-app-framework/recipes-connectivity/bluez5/bluez5_%.bbappend
@@ -0,0 +1 @@
+require ${@bb.utils.contains('APPFW_ENABLED', '1', 'bluez5_appfw.inc', '', d)}
diff --git a/meta-security/recipes-connectivity/bluez5/bluez5_%.bbappend b/meta-app-framework/recipes-connectivity/bluez5/bluez5_appfw.inc
index 3767681b0..21529e96b 100644
--- a/meta-security/recipes-connectivity/bluez5/bluez5_%.bbappend
+++ b/meta-app-framework/recipes-connectivity/bluez5/bluez5_appfw.inc
@@ -48,7 +48,7 @@ SRC_URI_append_with-lsm-smack = "\
file://bluetooth.service.conf \
"
-FILES_${PN} += "${systemd_unitdir}"
+FILES_${PN}_append = " ${systemd_unitdir}"
do_install_append_with-lsm-smack() {
install -Dm0644 ${WORKDIR}/bluetooth.service.conf ${D}${systemd_unitdir}/system/bluetooth.service.d/smack.conf
diff --git a/meta-security/recipes-connectivity/bluez5/files/bluetooth.service.conf b/meta-app-framework/recipes-connectivity/bluez5/files/bluetooth.service.conf
index b93ab4fee..b93ab4fee 100644
--- a/meta-security/recipes-connectivity/bluez5/files/bluetooth.service.conf
+++ b/meta-app-framework/recipes-connectivity/bluez5/files/bluetooth.service.conf
diff --git a/meta-app-framework/recipes-connectivity/connman/connman_%.bbappend b/meta-app-framework/recipes-connectivity/connman/connman_%.bbappend
new file mode 100644
index 000000000..72aa9f276
--- /dev/null
+++ b/meta-app-framework/recipes-connectivity/connman/connman_%.bbappend
@@ -0,0 +1 @@
+require ${@bb.utils.contains('APPFW_ENABLED', '1', 'connman_appfw.inc', '', d)}
diff --git a/meta-security/recipes-connectivity/connman/connman_%.bbappend b/meta-app-framework/recipes-connectivity/connman/connman_appfw.inc
index 3b010490d..23af33104 100644
--- a/meta-security/recipes-connectivity/connman/connman_%.bbappend
+++ b/meta-app-framework/recipes-connectivity/connman/connman_appfw.inc
@@ -27,7 +27,7 @@ SRC_URI_append_with-lsm-smack = "\
RDEPENDS_${PN}_append_with-lsm-smack = " smack"
-FILES_${PN} += "${systemd_unitdir}"
+FILES_${PN}_append = " ${systemd_unitdir}"
do_install_append_with-lsm-smack() {
install -Dm0644 ${WORKDIR}/connman.service.conf ${D}${systemd_unitdir}/system/connman.service.d/smack.conf
diff --git a/meta-security/recipes-connectivity/connman/files/connman.service.conf b/meta-app-framework/recipes-connectivity/connman/files/connman.service.conf
index 6ebbf6ad1..6ebbf6ad1 100644
--- a/meta-security/recipes-connectivity/connman/files/connman.service.conf
+++ b/meta-app-framework/recipes-connectivity/connman/files/connman.service.conf
diff --git a/meta-app-framework/recipes-core/base-files/base-files_%.bbappend b/meta-app-framework/recipes-core/base-files/base-files_%.bbappend
index 1dddcd6f2..28b08face 100644
--- a/meta-app-framework/recipes-core/base-files/base-files_%.bbappend
+++ b/meta-app-framework/recipes-core/base-files/base-files_%.bbappend
@@ -1,32 +1 @@
-RDEPENDS_${PN}_append_with-lsm-smack = " smack"
-PACKAGE_WRITE_DEPS_append_with-lsm-smack = " smack-native"
-
-do_install_append() {
- install -m 0700 -d ${D}/${sysconfdir}/skel
- chmod -R 0700 ${D}/${sysconfdir}/skel
- install -m 0700 -d ${D}/${sysconfdir}/skel/app-data
- install -m 0700 -d ${D}/${sysconfdir}/skel/.config
- install -m 0755 -d ${D}/var
- if [ -d ${D}/usr/local ]; then
- mv ${D}/usr/local ${D}/var
- else
- install -m 0755 -d ${D}/var/local
- fi
- ln -s ../var/local ${D}/usr/local
-}
-
-do_install_append_with-lsm-smack () {
- install -d ${D}/${sysconfdir}/smack/accesses.d
- cat > ${D}/${sysconfdir}/smack/accesses.d/default-access-domains-no-user <<EOF
-System User::App-Shared rwxat
-System User::Home rwxat
-EOF
- chmod 0644 ${D}/${sysconfdir}/smack/accesses.d/default-access-domains-no-user
-}
-
-pkg_postinst_${PN}_append_with-lsm-smack() {
- chsmack -r -a 'User::Home' -t -D $D/${sysconfdir}/skel
- chsmack -a 'User::App-Shared' -D $D/${sysconfdir}/skel/app-data
- cp -rTf --preserve=all $D/${sysconfdir}/skel $D/${ROOT_HOME}
-}
-
+require ${@bb.utils.contains('APPFW_ENABLED', '1', 'base-files_appfw.inc', '', d)}
diff --git a/meta-security/recipes-core/base-files/base-files_%.bbappend b/meta-app-framework/recipes-core/base-files/base-files_appfw.inc
index f0e340f5b..848a39ff4 100644
--- a/meta-security/recipes-core/base-files/base-files_%.bbappend
+++ b/meta-app-framework/recipes-core/base-files/base-files_appfw.inc
@@ -1,3 +1,37 @@
+RDEPENDS_${PN}_append_with-lsm-smack = " smack"
+PACKAGE_WRITE_DEPS_append_with-lsm-smack = " smack-native"
+
+do_install_append() {
+ install -m 0700 -d ${D}/${sysconfdir}/skel
+ chmod -R 0700 ${D}/${sysconfdir}/skel
+ install -m 0700 -d ${D}/${sysconfdir}/skel/app-data
+ install -m 0700 -d ${D}/${sysconfdir}/skel/.config
+ install -m 0755 -d ${D}/var
+ if [ -d ${D}/usr/local ]; then
+ mv ${D}/usr/local ${D}/var
+ else
+ install -m 0755 -d ${D}/var/local
+ fi
+ ln -s ../var/local ${D}/usr/local
+}
+
+do_install_append_with-lsm-smack () {
+ install -d ${D}/${sysconfdir}/smack/accesses.d
+ cat > ${D}/${sysconfdir}/smack/accesses.d/default-access-domains-no-user <<EOF
+System User::App-Shared rwxat
+System User::Home rwxat
+EOF
+ chmod 0644 ${D}/${sysconfdir}/smack/accesses.d/default-access-domains-no-user
+}
+
+pkg_postinst_${PN}_append_with-lsm-smack() {
+ chsmack -r -a 'User::Home' -t -D $D/${sysconfdir}/skel
+ chsmack -a 'User::App-Shared' -D $D/${sysconfdir}/skel/app-data
+ cp -rTf --preserve=all $D/${sysconfdir}/skel $D/${ROOT_HOME}
+}
+
+
+
# Install default Smack rules, copied from a running Tizen IVI 3.0.
# Corresponds to manifest file from default-access-domains in Tizen:
# https://review.tizen.org/git?p=platform/core/security/default-ac-domains.git;a=blob;f=packaging/default-ac-domains.manifest
diff --git a/meta-app-framework/recipes-core/coreutils/coreutils_%.bbappend b/meta-app-framework/recipes-core/coreutils/coreutils_%.bbappend
new file mode 100644
index 000000000..b7bf9fff4
--- /dev/null
+++ b/meta-app-framework/recipes-core/coreutils/coreutils_%.bbappend
@@ -0,0 +1 @@
+require ${@bb.utils.contains('APPFW_ENABLED', '1', 'coreutils_appfw.inc', '', d)}
diff --git a/meta-security/recipes-core/coreutils/coreutils_%.bbappend b/meta-app-framework/recipes-core/coreutils/coreutils_appfw.inc
index 1b9b722ec..1b9b722ec 100644
--- a/meta-security/recipes-core/coreutils/coreutils_%.bbappend
+++ b/meta-app-framework/recipes-core/coreutils/coreutils_appfw.inc
diff --git a/meta-security/recipes-core/dbus-cynagora/dbus-cynagora/0001-Integration-of-Cynara-asynchronous-security-checks.patch b/meta-app-framework/recipes-core/dbus-cynagora/dbus-cynagora/0001-Integration-of-Cynara-asynchronous-security-checks.patch
index 55cedb9c7..55cedb9c7 100644
--- a/meta-security/recipes-core/dbus-cynagora/dbus-cynagora/0001-Integration-of-Cynara-asynchronous-security-checks.patch
+++ b/meta-app-framework/recipes-core/dbus-cynagora/dbus-cynagora/0001-Integration-of-Cynara-asynchronous-security-checks.patch
diff --git a/meta-security/recipes-core/dbus-cynagora/dbus-cynagora/0002-Disable-message-dispatching-when-send-rule-result-is.patch b/meta-app-framework/recipes-core/dbus-cynagora/dbus-cynagora/0002-Disable-message-dispatching-when-send-rule-result-is.patch
index bac8cf97f..bac8cf97f 100644
--- a/meta-security/recipes-core/dbus-cynagora/dbus-cynagora/0002-Disable-message-dispatching-when-send-rule-result-is.patch
+++ b/meta-app-framework/recipes-core/dbus-cynagora/dbus-cynagora/0002-Disable-message-dispatching-when-send-rule-result-is.patch
diff --git a/meta-security/recipes-core/dbus-cynagora/dbus-cynagora/0003-Handle-unavailability-of-policy-results-for-broadcas.patch b/meta-app-framework/recipes-core/dbus-cynagora/dbus-cynagora/0003-Handle-unavailability-of-policy-results-for-broadcas.patch
index 7d89a7496..7d89a7496 100644
--- a/meta-security/recipes-core/dbus-cynagora/dbus-cynagora/0003-Handle-unavailability-of-policy-results-for-broadcas.patch
+++ b/meta-app-framework/recipes-core/dbus-cynagora/dbus-cynagora/0003-Handle-unavailability-of-policy-results-for-broadcas.patch
diff --git a/meta-security/recipes-core/dbus-cynagora/dbus-cynagora/0004-Add-own-rule-result-unavailability-handling.patch b/meta-app-framework/recipes-core/dbus-cynagora/dbus-cynagora/0004-Add-own-rule-result-unavailability-handling.patch
index 9953dcaac..9953dcaac 100644
--- a/meta-security/recipes-core/dbus-cynagora/dbus-cynagora/0004-Add-own-rule-result-unavailability-handling.patch
+++ b/meta-app-framework/recipes-core/dbus-cynagora/dbus-cynagora/0004-Add-own-rule-result-unavailability-handling.patch
diff --git a/meta-security/recipes-core/dbus-cynagora/dbus-cynagora/0005-Perform-Cynara-runtime-policy-checks-by-default.patch b/meta-app-framework/recipes-core/dbus-cynagora/dbus-cynagora/0005-Perform-Cynara-runtime-policy-checks-by-default.patch
index 5f7e96a3b..5f7e96a3b 100644
--- a/meta-security/recipes-core/dbus-cynagora/dbus-cynagora/0005-Perform-Cynara-runtime-policy-checks-by-default.patch
+++ b/meta-app-framework/recipes-core/dbus-cynagora/dbus-cynagora/0005-Perform-Cynara-runtime-policy-checks-by-default.patch
diff --git a/meta-security/recipes-core/dbus-cynagora/dbus-cynagora/0006-Fix-SIGSEGV-on-disconnections.patch b/meta-app-framework/recipes-core/dbus-cynagora/dbus-cynagora/0006-Fix-SIGSEGV-on-disconnections.patch
index e51ad7ce4..e51ad7ce4 100644
--- a/meta-security/recipes-core/dbus-cynagora/dbus-cynagora/0006-Fix-SIGSEGV-on-disconnections.patch
+++ b/meta-app-framework/recipes-core/dbus-cynagora/dbus-cynagora/0006-Fix-SIGSEGV-on-disconnections.patch
diff --git a/meta-security/recipes-core/dbus-cynagora/dbus-cynagora/0007-Switch-from-cynara-to-cynagora.patch b/meta-app-framework/recipes-core/dbus-cynagora/dbus-cynagora/0007-Switch-from-cynara-to-cynagora.patch
index 7a69efcd2..7a69efcd2 100644
--- a/meta-security/recipes-core/dbus-cynagora/dbus-cynagora/0007-Switch-from-cynara-to-cynagora.patch
+++ b/meta-app-framework/recipes-core/dbus-cynagora/dbus-cynagora/0007-Switch-from-cynara-to-cynagora.patch
diff --git a/meta-app-framework/recipes-core/dbus-cynagora/dbus_1.12.16.bbappend b/meta-app-framework/recipes-core/dbus-cynagora/dbus_1.12.16.bbappend
new file mode 100644
index 000000000..028c734aa
--- /dev/null
+++ b/meta-app-framework/recipes-core/dbus-cynagora/dbus_1.12.16.bbappend
@@ -0,0 +1 @@
+require ${@bb.utils.contains('APPFW_ENABLED', '1', 'dbus_appfw.inc', '', d)}
diff --git a/meta-security/recipes-core/dbus-cynagora/dbus_1.12.16.bbappend b/meta-app-framework/recipes-core/dbus-cynagora/dbus_appfw.inc
index 177a117b8..177a117b8 100644
--- a/meta-security/recipes-core/dbus-cynagora/dbus_1.12.16.bbappend
+++ b/meta-app-framework/recipes-core/dbus-cynagora/dbus_appfw.inc
diff --git a/meta-app-framework/recipes-core/packagegroups/nativesdk-packagegroup-sdk-host.bbappend b/meta-app-framework/recipes-core/packagegroups/nativesdk-packagegroup-sdk-host.bbappend
deleted file mode 100644
index fc73e8f3d..000000000
--- a/meta-app-framework/recipes-core/packagegroups/nativesdk-packagegroup-sdk-host.bbappend
+++ /dev/null
@@ -1,2 +0,0 @@
-RDEPENDS_${PN} =+ "nativesdk-af-main-tools nativesdk-af-binder-devtools"
-
diff --git a/meta-app-framework/recipes-core/security-manager/security-manager_%.bbappend b/meta-app-framework/recipes-core/security-manager/security-manager_%.bbappend
deleted file mode 100644
index 3306d4c72..000000000
--- a/meta-app-framework/recipes-core/security-manager/security-manager_%.bbappend
+++ /dev/null
@@ -1,7 +0,0 @@
-FILESEXTRAPATHS_prepend := "${THISDIR}/security-manager:"
-
-EXTRA_OECMAKE =+ " -DGLOBALUSER=afm"
-SRC_URI += " \
- file://0001-Adapt-rules-to-AGL.patch \
-"
-
diff --git a/meta-app-framework/recipes-core/shadow/shadow_%.bbappend b/meta-app-framework/recipes-core/shadow/shadow_%.bbappend
index 4f594d47c..70a0c3c82 100644
--- a/meta-app-framework/recipes-core/shadow/shadow_%.bbappend
+++ b/meta-app-framework/recipes-core/shadow/shadow_%.bbappend
@@ -1,6 +1,3 @@
-
-do_install_append() {
- sed -i '/^UMASK/s:^.*$:UMASK 077:' ${D}${sysconfdir}/login.defs
-}
+require ${@bb.utils.contains('APPFW_ENABLED', '1', 'shadow_appfw.inc', '', d)}
diff --git a/meta-app-framework/recipes-core/shadow/shadow_appfw.inc b/meta-app-framework/recipes-core/shadow/shadow_appfw.inc
new file mode 100644
index 000000000..472ffef2c
--- /dev/null
+++ b/meta-app-framework/recipes-core/shadow/shadow_appfw.inc
@@ -0,0 +1,3 @@
+do_install_append() {
+ sed -i '/^UMASK/s:^.*$:UMASK 077:' ${D}${sysconfdir}/login.defs
+}
diff --git a/meta-security/recipes-core/smack-system-setup/files/55-udev-smack-default.rules b/meta-app-framework/recipes-core/smack-system-setup/files/55-udev-smack-default.rules
index eca65292f..eca65292f 100644
--- a/meta-security/recipes-core/smack-system-setup/files/55-udev-smack-default.rules
+++ b/meta-app-framework/recipes-core/smack-system-setup/files/55-udev-smack-default.rules
diff --git a/meta-security/recipes-core/smack-system-setup/files/systemd-journald.service.conf b/meta-app-framework/recipes-core/smack-system-setup/files/systemd-journald.service.conf
index 7035a1410..7035a1410 100644
--- a/meta-security/recipes-core/smack-system-setup/files/systemd-journald.service.conf
+++ b/meta-app-framework/recipes-core/smack-system-setup/files/systemd-journald.service.conf
diff --git a/meta-security/recipes-core/smack-system-setup/files/systemd-tmpfiles-setup.service.conf b/meta-app-framework/recipes-core/smack-system-setup/files/systemd-tmpfiles-setup.service.conf
index db43c8c51..db43c8c51 100644
--- a/meta-security/recipes-core/smack-system-setup/files/systemd-tmpfiles-setup.service.conf
+++ b/meta-app-framework/recipes-core/smack-system-setup/files/systemd-tmpfiles-setup.service.conf
diff --git a/meta-security/recipes-core/smack-system-setup/files/tmp.mount.conf b/meta-app-framework/recipes-core/smack-system-setup/files/tmp.mount.conf
index 388986e82..388986e82 100644
--- a/meta-security/recipes-core/smack-system-setup/files/tmp.mount.conf
+++ b/meta-app-framework/recipes-core/smack-system-setup/files/tmp.mount.conf
diff --git a/meta-security/recipes-core/smack-system-setup/smack-system-setup_1.bb b/meta-app-framework/recipes-core/smack-system-setup/smack-system-setup_1.bb
index 49b12ad3f..49b12ad3f 100644
--- a/meta-security/recipes-core/smack-system-setup/smack-system-setup_1.bb
+++ b/meta-app-framework/recipes-core/smack-system-setup/smack-system-setup_1.bb
diff --git a/meta-app-framework/recipes-core/systemd-sync/systemd-agl-sync_1.0.bb b/meta-app-framework/recipes-core/systemd-sync/systemd-agl-sync_1.0.bb
deleted file mode 100644
index 389ab2424..000000000
--- a/meta-app-framework/recipes-core/systemd-sync/systemd-agl-sync_1.0.bb
+++ /dev/null
@@ -1,39 +0,0 @@
-SUMMARY = "Systemd synchronization script"
-DESCRIPTION = "\
-Systemd synchronization script \
-reload daemon at the first boot. \
-"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
-
-#This script should be the last to be execute at the first boot
-POST_INSTALL_LEVEL = "X0"
-POST_INSTALL_SCRIPT ?= "${POST_INSTALL_LEVEL}-${PN}.sh"
-
-do_install() {
- install -d ${D}/${sysconfdir}/agl-postinsts
- cat > ${D}/${sysconfdir}/agl-postinsts/${POST_INSTALL_SCRIPT} <<EOF
-#!/bin/sh -e
-echo "restart daemon ..."
-result=0
-systemctl daemon-reload
-if [ \$? -ne 0 ]; then
- result=1
-fi
-systemctl restart sockets.target
-if [ \$? -ne 0 ]; then
- result=1
-fi
-
-if [ \$result -eq 0 ]; then
- echo "restart daemon OK"
- exit \$result
-else
- echo "restart daemon failed"
- exit \$result
-fi
-EOF
- chmod a+x ${D}/${sysconfdir}/agl-postinsts/${POST_INSTALL_SCRIPT}
-}
-
-FILES_${PN} = "${sysconfdir}/agl-postinsts/${POST_INSTALL_SCRIPT}"
diff --git a/meta-security/recipes-core/systemd/systemd/0001-Switch-Smack-label-earlier.patch b/meta-app-framework/recipes-core/systemd/systemd/0001-Switch-Smack-label-earlier.patch
index 46445be73..46445be73 100644
--- a/meta-security/recipes-core/systemd/systemd/0001-Switch-Smack-label-earlier.patch
+++ b/meta-app-framework/recipes-core/systemd/systemd/0001-Switch-Smack-label-earlier.patch
diff --git a/meta-app-framework/recipes-core/systemd/systemd_2%.bbappend b/meta-app-framework/recipes-core/systemd/systemd_2%.bbappend
new file mode 100644
index 000000000..11b1df9bb
--- /dev/null
+++ b/meta-app-framework/recipes-core/systemd/systemd_2%.bbappend
@@ -0,0 +1 @@
+require ${@bb.utils.contains('APPFW_ENABLED', '1', 'systemd_appfw.inc', '', d)}
diff --git a/meta-security/recipes-core/systemd/systemd_2%.bbappend b/meta-app-framework/recipes-core/systemd/systemd_appfw.inc
index 789c05f83..a5e1ae840 100644
--- a/meta-security/recipes-core/systemd/systemd_2%.bbappend
+++ b/meta-app-framework/recipes-core/systemd/systemd_appfw.inc
@@ -1,4 +1,4 @@
-FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
+FILESEXTRAPATHS_prepend := "${THISDIR}/systemd:"
# Ensures systemd runs with label "System"
EXTRA_OEMESON_append_with-lsm-smack = " -Dsmack-run-label=System"
diff --git a/meta-app-framework/recipes-core/util-linux/util-linux_%.bbappend b/meta-app-framework/recipes-core/util-linux/util-linux_%.bbappend
new file mode 100644
index 000000000..3894f57cc
--- /dev/null
+++ b/meta-app-framework/recipes-core/util-linux/util-linux_%.bbappend
@@ -0,0 +1 @@
+require ${@bb.utils.contains('APPFW_ENABLED', '1', 'util-linux_appfw.inc', '', d)}
diff --git a/meta-security/recipes-core/util-linux/util-linux_%.bbappend b/meta-app-framework/recipes-core/util-linux/util-linux_appfw.inc
index 05286f80d..05286f80d 100644
--- a/meta-security/recipes-core/util-linux/util-linux_%.bbappend
+++ b/meta-app-framework/recipes-core/util-linux/util-linux_appfw.inc
diff --git a/meta-agl-profile-core/recipes-devtools/cmake-apps-module/cmake-apps-module_git.bb b/meta-app-framework/recipes-devtools/cmake-apps-module/cmake-apps-module_git.bb
index 3fea2ed91..3fea2ed91 100644
--- a/meta-agl-profile-core/recipes-devtools/cmake-apps-module/cmake-apps-module_git.bb
+++ b/meta-app-framework/recipes-devtools/cmake-apps-module/cmake-apps-module_git.bb
diff --git a/meta-app-framework/recipes-devtools/json-c/json-c_%.bbappend b/meta-app-framework/recipes-devtools/json-c/json-c_%.bbappend
new file mode 100644
index 000000000..051f66aaf
--- /dev/null
+++ b/meta-app-framework/recipes-devtools/json-c/json-c_%.bbappend
@@ -0,0 +1 @@
+require ${@bb.utils.contains('APPFW_ENABLED', '1', 'json-c_appfw.inc', '', d)}
diff --git a/meta-app-framework/recipes-devtools/json-c/json-c_appfw.inc b/meta-app-framework/recipes-devtools/json-c/json-c_appfw.inc
new file mode 100644
index 000000000..f1547e14b
--- /dev/null
+++ b/meta-app-framework/recipes-devtools/json-c/json-c_appfw.inc
@@ -0,0 +1 @@
+EXTRA_OECONF_append = " --enable-threading"
diff --git a/meta-agl-profile-core/recipes-devtools/libafb-helpers/libafb-helpers_git.bb b/meta-app-framework/recipes-devtools/libafb-helpers/libafb-helpers_git.bb
index 1174ac4d7..1174ac4d7 100644
--- a/meta-agl-profile-core/recipes-devtools/libafb-helpers/libafb-helpers_git.bb
+++ b/meta-app-framework/recipes-devtools/libafb-helpers/libafb-helpers_git.bb
diff --git a/meta-agl-profile-core/recipes-devtools/libafb-helpers/libafb-helpers_git.inc b/meta-app-framework/recipes-devtools/libafb-helpers/libafb-helpers_git.inc
index 6753225b4..6753225b4 100644
--- a/meta-agl-profile-core/recipes-devtools/libafb-helpers/libafb-helpers_git.inc
+++ b/meta-app-framework/recipes-devtools/libafb-helpers/libafb-helpers_git.inc
diff --git a/meta-agl-profile-core/recipes-devtools/libappcontroller/libappcontroller_git.bb b/meta-app-framework/recipes-devtools/libappcontroller/libappcontroller_git.bb
index 0ee9c5e84..0ee9c5e84 100644
--- a/meta-agl-profile-core/recipes-devtools/libappcontroller/libappcontroller_git.bb
+++ b/meta-app-framework/recipes-devtools/libappcontroller/libappcontroller_git.bb
diff --git a/meta-app-framework/recipes-devtools/packagegroups/nativesdk-packagegroup-sdk-host.bbappend b/meta-app-framework/recipes-devtools/packagegroups/nativesdk-packagegroup-sdk-host.bbappend
new file mode 100644
index 000000000..837b85392
--- /dev/null
+++ b/meta-app-framework/recipes-devtools/packagegroups/nativesdk-packagegroup-sdk-host.bbappend
@@ -0,0 +1 @@
+require ${@bb.utils.contains('APPFW_ENABLED', '1', 'nativesdk-packagegroup-sdk-host_appfw.inc', '', d)}
diff --git a/meta-app-framework/recipes-devtools/packagegroups/nativesdk-packagegroup-sdk-host_appfw.inc b/meta-app-framework/recipes-devtools/packagegroups/nativesdk-packagegroup-sdk-host_appfw.inc
new file mode 100644
index 000000000..8d6ffb5b3
--- /dev/null
+++ b/meta-app-framework/recipes-devtools/packagegroups/nativesdk-packagegroup-sdk-host_appfw.inc
@@ -0,0 +1,5 @@
+RDEPENDS_${PN}_append = " \
+ nativesdk-af-main-tools \
+ nativesdk-af-binder-devtools \
+ nativesdk-cmake-apps-module \
+"
diff --git a/meta-app-framework/recipes-devtools/run-agl-postinsts/run-agl-postinsts_1.0.bbappend b/meta-app-framework/recipes-devtools/run-agl-postinsts/run-agl-postinsts_1.0.bbappend
deleted file mode 100644
index 590ab708a..000000000
--- a/meta-app-framework/recipes-devtools/run-agl-postinsts/run-agl-postinsts_1.0.bbappend
+++ /dev/null
@@ -1 +0,0 @@
-SYSTEMD_SERVICE_AFTER_append = " afm-system-daemon.service"
diff --git a/meta-agl-profile-core/recipes-devtools/run-postinsts/run-postinsts/ldconfig-wait.conf b/meta-app-framework/recipes-devtools/run-postinsts/run-postinsts/ldconfig-wait.conf
index d706cc5f7..d706cc5f7 100644
--- a/meta-agl-profile-core/recipes-devtools/run-postinsts/run-postinsts/ldconfig-wait.conf
+++ b/meta-app-framework/recipes-devtools/run-postinsts/run-postinsts/ldconfig-wait.conf
diff --git a/meta-app-framework/recipes-devtools/run-postinsts/run-postinsts_%.bbappend b/meta-app-framework/recipes-devtools/run-postinsts/run-postinsts_%.bbappend
new file mode 100644
index 000000000..6b9025dc5
--- /dev/null
+++ b/meta-app-framework/recipes-devtools/run-postinsts/run-postinsts_%.bbappend
@@ -0,0 +1 @@
+require ${@bb.utils.contains('APPFW_ENABLED', '1', 'run-postinsts_appfw.inc', '', d)}
diff --git a/meta-agl-profile-core/recipes-devtools/run-postinsts/run-postinsts_%.bbappend b/meta-app-framework/recipes-devtools/run-postinsts/run-postinsts_appfw.inc
index 4cc2edf86..2f3effce6 100644
--- a/meta-agl-profile-core/recipes-devtools/run-postinsts/run-postinsts_%.bbappend
+++ b/meta-app-framework/recipes-devtools/run-postinsts/run-postinsts_appfw.inc
@@ -1,6 +1,6 @@
-FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
+FILESEXTRAPATHS_prepend := "${THISDIR}/run-postinsts:"
-SRC_URI += "file://ldconfig-wait.conf"
+SRC_URI_append = " file://ldconfig-wait.conf"
do_configure_append() {
if ! grep -q StandardOutput= ${WORKDIR}/run-postinsts.service; then
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/wayland/0001-Change-socket-mode-add-rw-for-group.patch b/meta-app-framework/recipes-graphics/wayland/wayland/0001-Change-socket-mode-add-rw-for-group.patch
index d0dcb45af..d0dcb45af 100644
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/wayland/0001-Change-socket-mode-add-rw-for-group.patch
+++ b/meta-app-framework/recipes-graphics/wayland/wayland/0001-Change-socket-mode-add-rw-for-group.patch
diff --git a/meta-app-framework/recipes-graphics/wayland/wayland_%.bbappend b/meta-app-framework/recipes-graphics/wayland/wayland_%.bbappend
new file mode 100644
index 000000000..50cad0354
--- /dev/null
+++ b/meta-app-framework/recipes-graphics/wayland/wayland_%.bbappend
@@ -0,0 +1 @@
+require ${@bb.utils.contains('APPFW_ENABLED', '1', 'wayland_appfw.inc', '', d)}
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/wayland_%.bbappend b/meta-app-framework/recipes-graphics/wayland/wayland_appfw.inc
index 9d1822697..f39122de2 100644
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/wayland_%.bbappend
+++ b/meta-app-framework/recipes-graphics/wayland/wayland_appfw.inc
@@ -1,4 +1,4 @@
-FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
+FILESEXTRAPATHS_prepend := "${THISDIR}/wayland:"
SRC_URI_append = "\
file://0001-Change-socket-mode-add-rw-for-group.patch \
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0001-Allow-regular-users-to-launch-Weston_7.0.0.patch b/meta-app-framework/recipes-graphics/wayland/weston/0001-Allow-regular-users-to-launch-Weston_7.0.0.patch
index 362f6b064..362f6b064 100644
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0001-Allow-regular-users-to-launch-Weston_7.0.0.patch
+++ b/meta-app-framework/recipes-graphics/wayland/weston/0001-Allow-regular-users-to-launch-Weston_7.0.0.patch
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/weston/smack-weston b/meta-app-framework/recipes-graphics/wayland/weston/smack-weston
index 63a32405a..63a32405a 100644
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/weston/smack-weston
+++ b/meta-app-framework/recipes-graphics/wayland/weston/smack-weston
diff --git a/meta-app-framework/recipes-graphics/wayland/weston_8.0.%.bbappend b/meta-app-framework/recipes-graphics/wayland/weston_8.0.%.bbappend
new file mode 100644
index 000000000..00bb510bf
--- /dev/null
+++ b/meta-app-framework/recipes-graphics/wayland/weston_8.0.%.bbappend
@@ -0,0 +1 @@
+require ${@bb.utils.contains('APPFW_ENABLED', '1', 'weston_8.0_appfw.inc', '', d)}
diff --git a/meta-app-framework/recipes-graphics/wayland/weston_8.0_appfw.inc b/meta-app-framework/recipes-graphics/wayland/weston_8.0_appfw.inc
new file mode 100644
index 000000000..219ed1aef
--- /dev/null
+++ b/meta-app-framework/recipes-graphics/wayland/weston_8.0_appfw.inc
@@ -0,0 +1,19 @@
+FILESEXTRAPATHS_append := ":${THISDIR}/weston"
+
+SRC_URI_append = "\
+ file://0001-Allow-regular-users-to-launch-Weston_7.0.0.patch \
+ file://smack-weston \
+ "
+
+EXTRA_OEMESON_append = " -Denable-user-start=true"
+
+do_install_append() {
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'smack', 'true', 'false', d)}; then
+ # Install SMACK rules
+ install -D -m 0644 ${WORKDIR}/smack-weston ${D}${sysconfdir}/smack/accesses.d/weston
+ fi
+}
+
+FILES_${PN}_append = "\
+ ${sysconfdir}/smack/accesses.d/* \
+"
diff --git a/meta-app-framework/recipes-kernel/linux/linux-%.bbappend b/meta-app-framework/recipes-kernel/linux/linux-%.bbappend
index fba5bf13d..acce6cc1b 100644
--- a/meta-app-framework/recipes-kernel/linux/linux-%.bbappend
+++ b/meta-app-framework/recipes-kernel/linux/linux-%.bbappend
@@ -1,3 +1,2 @@
-FILESEXTRAPATHS_prepend := "${THISDIR}/linux:"
-SRC_URI_append_with-lsm-smack = " file://audit.cfg"
+require ${@bb.utils.contains('APPFW_ENABLED', '1', 'linux-appfw.inc', '', d)}
diff --git a/meta-security/recipes-kernel/linux/linux-%.bbappend b/meta-app-framework/recipes-kernel/linux/linux-appfw.inc
index 717d32e3a..cbf6567e0 100644
--- a/meta-security/recipes-kernel/linux/linux-%.bbappend
+++ b/meta-app-framework/recipes-kernel/linux/linux-appfw.inc
@@ -9,9 +9,13 @@ SMACK_KERNEL_SRC_URI_yes += "file://smack.cfg"
# When added, set Smack as the default LSM.
SMACK_DEFAULT_SECURITY_CFG = "file://smack-default-lsm.cfg"
-
# Add it by default, can be overridden by changing this variable here.
SMACK_DEFAULT_SECURITY ??= "${SMACK_DEFAULT_SECURITY_CFG}"
SMACK_KERNEL_SRC_URI_yes += " ${SMACK_DEFAULT_SECURITY}"
+# add audit.cfg
+SMACK_KERNEL_SRC_URI_yes += " file://audit.cfg"
+
+
SRC_URI_append_with-lsm-smack = "${SMACK_KERNEL_SRC_URI_${IS_KERNEL_RECIPE}}"
+
diff --git a/meta-security/recipes-kernel/linux/linux/smack-default-lsm.cfg b/meta-app-framework/recipes-kernel/linux/linux/smack-default-lsm.cfg
index b5c48454e..b5c48454e 100644
--- a/meta-security/recipes-kernel/linux/linux/smack-default-lsm.cfg
+++ b/meta-app-framework/recipes-kernel/linux/linux/smack-default-lsm.cfg
diff --git a/meta-security/recipes-kernel/linux/linux/smack.cfg b/meta-app-framework/recipes-kernel/linux/linux/smack.cfg
index 45a92f148..45a92f148 100644
--- a/meta-security/recipes-kernel/linux/linux/smack.cfg
+++ b/meta-app-framework/recipes-kernel/linux/linux/smack.cfg
diff --git a/meta-app-framework/recipes-core/packagegroups/packagegroup-agl-app-framework-examples.bb b/meta-app-framework/recipes-platform/packagegroups/packagegroup-agl-app-framework-examples.bb
index 7ba909162..7ba909162 100644
--- a/meta-app-framework/recipes-core/packagegroups/packagegroup-agl-app-framework-examples.bb
+++ b/meta-app-framework/recipes-platform/packagegroups/packagegroup-agl-app-framework-examples.bb
diff --git a/meta-app-framework/recipes-core/packagegroups/packagegroup-agl-app-framework.bb b/meta-app-framework/recipes-platform/packagegroups/packagegroup-agl-app-framework.bb
index 854835d4c..d15607a40 100644
--- a/meta-app-framework/recipes-core/packagegroups/packagegroup-agl-app-framework.bb
+++ b/meta-app-framework/recipes-platform/packagegroups/packagegroup-agl-app-framework.bb
@@ -4,17 +4,16 @@ LICENSE = "MIT"
inherit packagegroup
-PACKAGES = "\
+PACKAGES_${PN} = "\
packagegroup-agl-app-framework \
"
ALLOW_EMPTY_${PN} = "1"
-RDEPENDS_${PN} += "\
+RDEPENDS_${PN} = "\
af-binder \
libafbwsc \
af-main \
nss-localuser \
- systemd-agl-sync \
af-platform-setup \
"
diff --git a/meta-agl-profile-graphical-qt5/recipes-appfw/packagegroups/packagegroup-agl-appfw-native.bb b/meta-app-framework/recipes-platform/packagegroups/packagegroup-agl-appfw-native.bb
index a31c666ca..750fe678d 100644
--- a/meta-agl-profile-graphical-qt5/recipes-appfw/packagegroups/packagegroup-agl-appfw-native.bb
+++ b/meta-app-framework/recipes-platform/packagegroups/packagegroup-agl-appfw-native.bb
@@ -13,5 +13,4 @@ PACKAGES = "\
ALLOW_EMPTY_${PN} = "1"
RDEPENDS_${PN} += "\
- packagegroup-agl-appfw-native-qt5 \
"
diff --git a/meta-security/recipes-core/packagegroups/packagegroup-security-framework.bb b/meta-app-framework/recipes-platform/packagegroups/packagegroup-security-framework.bb
index bc708600f..bc708600f 100644
--- a/meta-security/recipes-core/packagegroups/packagegroup-security-framework.bb
+++ b/meta-app-framework/recipes-platform/packagegroups/packagegroup-security-framework.bb
diff --git a/meta-security/recipes-security/audit/audit/0001-lib-i386_table.h-add-new-syscall.patch b/meta-app-framework/recipes-security/audit/audit/0001-lib-i386_table.h-add-new-syscall.patch
index 6e1827c08..6e1827c08 100644
--- a/meta-security/recipes-security/audit/audit/0001-lib-i386_table.h-add-new-syscall.patch
+++ b/meta-app-framework/recipes-security/audit/audit/0001-lib-i386_table.h-add-new-syscall.patch
diff --git a/meta-security/recipes-security/audit/audit/Add-substitue-functions-for-strndupa-rawmemchr.patch b/meta-app-framework/recipes-security/audit/audit/Add-substitue-functions-for-strndupa-rawmemchr.patch
index bb6c61e80..bb6c61e80 100644
--- a/meta-security/recipes-security/audit/audit/Add-substitue-functions-for-strndupa-rawmemchr.patch
+++ b/meta-app-framework/recipes-security/audit/audit/Add-substitue-functions-for-strndupa-rawmemchr.patch
diff --git a/meta-security/recipes-security/audit/audit/Fixed-swig-host-contamination-issue.patch b/meta-app-framework/recipes-security/audit/audit/Fixed-swig-host-contamination-issue.patch
index 7c2699540..7c2699540 100644
--- a/meta-security/recipes-security/audit/audit/Fixed-swig-host-contamination-issue.patch
+++ b/meta-app-framework/recipes-security/audit/audit/Fixed-swig-host-contamination-issue.patch
diff --git a/meta-security/recipes-security/audit/audit/audit-volatile.conf b/meta-app-framework/recipes-security/audit/audit/audit-volatile.conf
index 9cbe1547a..9cbe1547a 100644
--- a/meta-security/recipes-security/audit/audit/audit-volatile.conf
+++ b/meta-app-framework/recipes-security/audit/audit/audit-volatile.conf
diff --git a/meta-security/recipes-security/audit/audit/auditd b/meta-app-framework/recipes-security/audit/audit/auditd
index cda2e43d4..cda2e43d4 100755
--- a/meta-security/recipes-security/audit/audit/auditd
+++ b/meta-app-framework/recipes-security/audit/audit/auditd
diff --git a/meta-security/recipes-security/audit/audit/auditd.service b/meta-app-framework/recipes-security/audit/audit/auditd.service
index ebc079897..ebc079897 100644
--- a/meta-security/recipes-security/audit/audit/auditd.service
+++ b/meta-app-framework/recipes-security/audit/audit/auditd.service
diff --git a/meta-security/recipes-security/audit/audit_2.8.5.bb b/meta-app-framework/recipes-security/audit/audit_2.8.5.bb
index af36ed5e2..af36ed5e2 100644
--- a/meta-security/recipes-security/audit/audit_2.8.5.bb
+++ b/meta-app-framework/recipes-security/audit/audit_2.8.5.bb
diff --git a/meta-security/recipes-security/cynagoauth/cynagoauth_0.1.bb b/meta-app-framework/recipes-security/cynagoauth/cynagoauth_0.1.bb
index c77c99189..c77c99189 100644
--- a/meta-security/recipes-security/cynagoauth/cynagoauth_0.1.bb
+++ b/meta-app-framework/recipes-security/cynagoauth/cynagoauth_0.1.bb
diff --git a/meta-security/recipes-security/cynagora/cynagora-cynara-compat_2.1.bb b/meta-app-framework/recipes-security/cynagora/cynagora-cynara-compat_2.1.bb
index f146051cd..f146051cd 100644
--- a/meta-security/recipes-security/cynagora/cynagora-cynara-compat_2.1.bb
+++ b/meta-app-framework/recipes-security/cynagora/cynagora-cynara-compat_2.1.bb
diff --git a/meta-security/recipes-security/cynagora/cynagora/run-ptest b/meta-app-framework/recipes-security/cynagora/cynagora/run-ptest
index f95f0725b..f95f0725b 100755
--- a/meta-security/recipes-security/cynagora/cynagora/run-ptest
+++ b/meta-app-framework/recipes-security/cynagora/cynagora/run-ptest
diff --git a/meta-security/recipes-security/cynagora/cynagora_2.1.bb b/meta-app-framework/recipes-security/cynagora/cynagora_2.1.bb
index 73f2f0949..73f2f0949 100644
--- a/meta-security/recipes-security/cynagora/cynagora_2.1.bb
+++ b/meta-app-framework/recipes-security/cynagora/cynagora_2.1.bb
diff --git a/meta-security/recipes-security/security-manager/security-manager.inc b/meta-app-framework/recipes-security/security-manager/security-manager.inc
index e1d1f4011..e1d1f4011 100644
--- a/meta-security/recipes-security/security-manager/security-manager.inc
+++ b/meta-app-framework/recipes-security/security-manager/security-manager.inc
diff --git a/meta-app-framework/recipes-core/security-manager/security-manager/0001-Adapt-rules-to-AGL.patch b/meta-app-framework/recipes-security/security-manager/security-manager/0001-Adapt-rules-to-AGL.patch
index 4c91f7fa3..4c91f7fa3 100644
--- a/meta-app-framework/recipes-core/security-manager/security-manager/0001-Adapt-rules-to-AGL.patch
+++ b/meta-app-framework/recipes-security/security-manager/security-manager/0001-Adapt-rules-to-AGL.patch
diff --git a/meta-security/recipes-security/security-manager/security-manager/0001-systemd-stop-using-compat-libs.patch b/meta-app-framework/recipes-security/security-manager/security-manager/0001-systemd-stop-using-compat-libs.patch
index 91ce81963..91ce81963 100644
--- a/meta-security/recipes-security/security-manager/security-manager/0001-systemd-stop-using-compat-libs.patch
+++ b/meta-app-framework/recipes-security/security-manager/security-manager/0001-systemd-stop-using-compat-libs.patch
diff --git a/meta-security/recipes-security/security-manager/security-manager/0002-security-manager-policy-reload-do-not-depend-on-GNU-.patch b/meta-app-framework/recipes-security/security-manager/security-manager/0002-security-manager-policy-reload-do-not-depend-on-GNU-.patch
index b6346480b..b6346480b 100644
--- a/meta-security/recipes-security/security-manager/security-manager/0002-security-manager-policy-reload-do-not-depend-on-GNU-.patch
+++ b/meta-app-framework/recipes-security/security-manager/security-manager/0002-security-manager-policy-reload-do-not-depend-on-GNU-.patch
diff --git a/meta-security/recipes-security/security-manager/security-manager/0003-Smack-rules-create-two-new-functions.patch b/meta-app-framework/recipes-security/security-manager/security-manager/0003-Smack-rules-create-two-new-functions.patch
index d79345e01..d79345e01 100644
--- a/meta-security/recipes-security/security-manager/security-manager/0003-Smack-rules-create-two-new-functions.patch
+++ b/meta-app-framework/recipes-security/security-manager/security-manager/0003-Smack-rules-create-two-new-functions.patch
diff --git a/meta-security/recipes-security/security-manager/security-manager/0004-app-install-implement-multiple-set-of-smack-rules.patch b/meta-app-framework/recipes-security/security-manager/security-manager/0004-app-install-implement-multiple-set-of-smack-rules.patch
index 59d4971ff..59d4971ff 100644
--- a/meta-security/recipes-security/security-manager/security-manager/0004-app-install-implement-multiple-set-of-smack-rules.patch
+++ b/meta-app-framework/recipes-security/security-manager/security-manager/0004-app-install-implement-multiple-set-of-smack-rules.patch
diff --git a/meta-security/recipes-security/security-manager/security-manager/0005-c-11-replace-deprecated-auto_ptr.patch b/meta-app-framework/recipes-security/security-manager/security-manager/0005-c-11-replace-deprecated-auto_ptr.patch
index 0739f28c7..0739f28c7 100644
--- a/meta-security/recipes-security/security-manager/security-manager/0005-c-11-replace-deprecated-auto_ptr.patch
+++ b/meta-app-framework/recipes-security/security-manager/security-manager/0005-c-11-replace-deprecated-auto_ptr.patch
diff --git a/meta-security/recipes-security/security-manager/security-manager/0006-socket-manager-removes-tizen-specific-call.patch b/meta-app-framework/recipes-security/security-manager/security-manager/0006-socket-manager-removes-tizen-specific-call.patch
index 3b8aad98c..3b8aad98c 100644
--- a/meta-security/recipes-security/security-manager/security-manager/0006-socket-manager-removes-tizen-specific-call.patch
+++ b/meta-app-framework/recipes-security/security-manager/security-manager/0006-socket-manager-removes-tizen-specific-call.patch
diff --git a/meta-security/recipes-security/security-manager/security-manager/0007-removes-dependency-to-libslp-db-utils.patch b/meta-app-framework/recipes-security/security-manager/security-manager/0007-removes-dependency-to-libslp-db-utils.patch
index bad99d25a..bad99d25a 100644
--- a/meta-security/recipes-security/security-manager/security-manager/0007-removes-dependency-to-libslp-db-utils.patch
+++ b/meta-app-framework/recipes-security/security-manager/security-manager/0007-removes-dependency-to-libslp-db-utils.patch
diff --git a/meta-security/recipes-security/security-manager/security-manager/0008-Fix-gcc6-build.patch b/meta-app-framework/recipes-security/security-manager/security-manager/0008-Fix-gcc6-build.patch
index 5ece7ef4f..5ece7ef4f 100644
--- a/meta-security/recipes-security/security-manager/security-manager/0008-Fix-gcc6-build.patch
+++ b/meta-app-framework/recipes-security/security-manager/security-manager/0008-Fix-gcc6-build.patch
diff --git a/meta-security/recipes-security/security-manager/security-manager/0009-Fix-Cmake-conf-for-gcc6-build.patch b/meta-app-framework/recipes-security/security-manager/security-manager/0009-Fix-Cmake-conf-for-gcc6-build.patch
index 706eb1a93..706eb1a93 100644
--- a/meta-security/recipes-security/security-manager/security-manager/0009-Fix-Cmake-conf-for-gcc6-build.patch
+++ b/meta-app-framework/recipes-security/security-manager/security-manager/0009-Fix-Cmake-conf-for-gcc6-build.patch
diff --git a/meta-security/recipes-security/security-manager/security-manager/0010-gcc-7-requires-include-functional-for-std-function.patch b/meta-app-framework/recipes-security/security-manager/security-manager/0010-gcc-7-requires-include-functional-for-std-function.patch
index 0f48c5f68..0f48c5f68 100644
--- a/meta-security/recipes-security/security-manager/security-manager/0010-gcc-7-requires-include-functional-for-std-function.patch
+++ b/meta-app-framework/recipes-security/security-manager/security-manager/0010-gcc-7-requires-include-functional-for-std-function.patch
diff --git a/meta-security/recipes-security/security-manager/security-manager/0011-Fix-gcc8-warning-error-Werror-catch-value.patch b/meta-app-framework/recipes-security/security-manager/security-manager/0011-Fix-gcc8-warning-error-Werror-catch-value.patch
index 5c679fc26..5c679fc26 100644
--- a/meta-security/recipes-security/security-manager/security-manager/0011-Fix-gcc8-warning-error-Werror-catch-value.patch
+++ b/meta-app-framework/recipes-security/security-manager/security-manager/0011-Fix-gcc8-warning-error-Werror-catch-value.patch
diff --git a/meta-security/recipes-security/security-manager/security-manager/0012-Avoid-casting-from-const-T-to-void.patch b/meta-app-framework/recipes-security/security-manager/security-manager/0012-Avoid-casting-from-const-T-to-void.patch
index 91ccf9ee2..91ccf9ee2 100644
--- a/meta-security/recipes-security/security-manager/security-manager/0012-Avoid-casting-from-const-T-to-void.patch
+++ b/meta-app-framework/recipes-security/security-manager/security-manager/0012-Avoid-casting-from-const-T-to-void.patch
diff --git a/meta-security/recipes-security/security-manager/security-manager/0013-Removing-tizen-platform-config.patch b/meta-app-framework/recipes-security/security-manager/security-manager/0013-Removing-tizen-platform-config.patch
index fb6215923..fb6215923 100644
--- a/meta-security/recipes-security/security-manager/security-manager/0013-Removing-tizen-platform-config.patch
+++ b/meta-app-framework/recipes-security/security-manager/security-manager/0013-Removing-tizen-platform-config.patch
diff --git a/meta-security/recipes-security/security-manager/security-manager/0014-Ensure-post-install-initialization-of-database.patch b/meta-app-framework/recipes-security/security-manager/security-manager/0014-Ensure-post-install-initialization-of-database.patch
index 542a387d2..542a387d2 100644
--- a/meta-security/recipes-security/security-manager/security-manager/0014-Ensure-post-install-initialization-of-database.patch
+++ b/meta-app-framework/recipes-security/security-manager/security-manager/0014-Ensure-post-install-initialization-of-database.patch
diff --git a/meta-security/recipes-security/security-manager/security-manager/0015-Restrict-socket-accesses.patch b/meta-app-framework/recipes-security/security-manager/security-manager/0015-Restrict-socket-accesses.patch
index d9949193b..d9949193b 100644
--- a/meta-security/recipes-security/security-manager/security-manager/0015-Restrict-socket-accesses.patch
+++ b/meta-app-framework/recipes-security/security-manager/security-manager/0015-Restrict-socket-accesses.patch
diff --git a/meta-agl-profile-graphical/recipes-security/security-manager/security-manager_%.bbappend b/meta-app-framework/recipes-security/security-manager/security-manager_%.bbappend
index d6fcb40af..ec8435369 100644
--- a/meta-agl-profile-graphical/recipes-security/security-manager/security-manager_%.bbappend
+++ b/meta-app-framework/recipes-security/security-manager/security-manager_%.bbappend
@@ -1,3 +1,10 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/security-manager:"
+
+EXTRA_OECMAKE =+ " -DGLOBALUSER=afm"
+
+SRC_URI += " \
+ file://0001-Adapt-rules-to-AGL.patch \
+"
do_install_append() {
# Needed for wayland-0 socket access and memfd usage
diff --git a/meta-security/recipes-security/security-manager/security-manager_git.bb b/meta-app-framework/recipes-security/security-manager/security-manager_git.bb
index b34973519..b34973519 100644
--- a/meta-security/recipes-security/security-manager/security-manager_git.bb
+++ b/meta-app-framework/recipes-security/security-manager/security-manager_git.bb
diff --git a/meta-app-framework/recipes-security/xmlsec1/xmlsec1_1.%.bbappend b/meta-app-framework/recipes-security/xmlsec1/xmlsec1_1.%.bbappend
index 09820be2f..afbc16c30 100644
--- a/meta-app-framework/recipes-security/xmlsec1/xmlsec1_1.%.bbappend
+++ b/meta-app-framework/recipes-security/xmlsec1/xmlsec1_1.%.bbappend
@@ -1,4 +1 @@
-# Disable nss to avoid build issues on native
-PACKAGECONFIG = "gnutls libgcrypt openssl des"
-
-BBCLASSEXTEND = "native nativesdk"
+require ${@bb.utils.contains('APPFW_ENABLED', '1', 'xmlsec1_appfw.inc', '', d)}
diff --git a/meta-app-framework/recipes-security/xmlsec1/xmlsec1_appfw.inc b/meta-app-framework/recipes-security/xmlsec1/xmlsec1_appfw.inc
new file mode 100644
index 000000000..09820be2f
--- /dev/null
+++ b/meta-app-framework/recipes-security/xmlsec1/xmlsec1_appfw.inc
@@ -0,0 +1,4 @@
+# Disable nss to avoid build issues on native
+PACKAGECONFIG = "gnutls libgcrypt openssl des"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-app-framework/recipes-support/libcap/libcap_%.bbappend b/meta-app-framework/recipes-support/libcap/libcap_%.bbappend
index ac909a64c..6107ee7f6 100644
--- a/meta-app-framework/recipes-support/libcap/libcap_%.bbappend
+++ b/meta-app-framework/recipes-support/libcap/libcap_%.bbappend
@@ -1,3 +1 @@
-FILESEXTRAPATHS_append_class-native := ":${THISDIR}/${PN}"
-# FIXME: It needs to be determined if this is still required
-#SRC_URI_append_class-native = " file://removing-capability-enforcement.patch"
+require ${@bb.utils.contains('APPFW_ENABLED', '1', 'libcap_appfw.inc', '', d)}
diff --git a/meta-app-framework/recipes-support/libcap/libcap_appfw.inc b/meta-app-framework/recipes-support/libcap/libcap_appfw.inc
new file mode 100644
index 000000000..9ece5ce27
--- /dev/null
+++ b/meta-app-framework/recipes-support/libcap/libcap_appfw.inc
@@ -0,0 +1,3 @@
+FILESEXTRAPATHS_append_class-native := ":${THISDIR}/libcap"
+# FIXME: It needs to be determined if this is still required
+#SRC_URI_append_class-native = " file://removing-capability-enforcement.patch"
diff --git a/meta-app-framework/recipes-support/libzip/libzip_%.bbappend b/meta-app-framework/recipes-support/libzip/libzip_%.bbappend
index 5174650b1..d559c2fbe 100644
--- a/meta-app-framework/recipes-support/libzip/libzip_%.bbappend
+++ b/meta-app-framework/recipes-support/libzip/libzip_%.bbappend
@@ -1 +1 @@
-BBCLASSEXTEND += "native nativesdk"
+require ${@bb.utils.contains('APPFW_ENABLED', '1', 'libzip_appfw.inc', '', d)}
diff --git a/meta-app-framework/recipes-support/libzip/libzip_appfw.inc b/meta-app-framework/recipes-support/libzip/libzip_appfw.inc
new file mode 100644
index 000000000..5174650b1
--- /dev/null
+++ b/meta-app-framework/recipes-support/libzip/libzip_appfw.inc
@@ -0,0 +1 @@
+BBCLASSEXTEND += "native nativesdk"
diff --git a/meta-agl-profile-core/recipes-test/afb-test/afb-test_git.bb b/meta-app-framework/recipes-test/afb-test/afb-test_git.bb
index 5246abb00..5246abb00 100644
--- a/meta-agl-profile-core/recipes-test/afb-test/afb-test_git.bb
+++ b/meta-app-framework/recipes-test/afb-test/afb-test_git.bb
diff --git a/meta-agl-profile-core/recipes-test/afb-test/files/run-ptest b/meta-app-framework/recipes-test/afb-test/files/run-ptest
index 883939a83..883939a83 100644
--- a/meta-agl-profile-core/recipes-test/afb-test/files/run-ptest
+++ b/meta-app-framework/recipes-test/afb-test/files/run-ptest
diff --git a/meta-app-framework/scripts/run-yocto-check-layer-enabled-flags.sh b/meta-app-framework/scripts/run-yocto-check-layer-enabled-flags.sh
new file mode 100755
index 000000000..37d2f5615
--- /dev/null
+++ b/meta-app-framework/scripts/run-yocto-check-layer-enabled-flags.sh
@@ -0,0 +1,51 @@
+#!/bin/bash
+set -x
+SCRIPTPATH="$( cd $(dirname $0) >/dev/null 2>&1 ; pwd -P )"
+echo $SCRIPTPATH
+AGLROOT="$SCRIPTPATH/../../.."
+POKYDIR="$AGLROOT/external/poky"
+TMPROOT="/tmp"
+
+rm -rf ${TMPROOT}/testbuild-ycl || true
+mkdir -p ${TMPROOT}/testbuild-ycl
+cd ${TMPROOT}/testbuild-ycl
+
+source $POKYDIR/oe-init-build-env .
+
+cat << EOF >> conf/local.conf
+# just define defaults
+AGL_FEATURES ?= ""
+AGL_EXTRA_IMAGE_FSTYPES ?= ""
+
+# important settings imported from poky-agl.conf
+# we do not import
+DISTRO_FEATURES_append = " systemd smack"
+DISTRO_FEATURES_BACKFILL_CONSIDERED_append = " sysvinit"
+VIRTUAL-RUNTIME_init_manager = "systemd"
+
+# skip unnecessary in yocto-check-layer - aka FIXME upstream
+BBMASK += "meta-security/recipes-mac/smack/smack-test_1.0.bb"
+BBMASK += "packagegroup-core-security-ptest.bb"
+
+# missing in upstream recipes ... aka FIXME upstream
+BBCLASSEXTEND_pn-libzip = "native nativesdk"
+BBCLASSEXTEND_pn-xmlsec1 = "native nativesdk"
+
+DISTRO_FEATURES_append = " appfw smack "
+
+EOF
+
+
+yocto-check-layer \
+ --dependency $AGLROOT/external/meta-openembedded/meta-oe \
+ $AGLROOT/external/meta-security \
+ $AGLROOT/external/meta-openembedded/meta-python \
+ $AGLROOT/external/meta-openembedded/meta-networking \
+ $AGLROOT/external/meta-openembedded/meta-perl \
+ $AGLROOT/external/meta-qt5/ \
+ -- \
+ $AGLROOT/meta-agl/meta-app-framework/
+
+[ $? = 0 ] && rm -rf ${TMPROOT}/testbuild-ycl
+
+
diff --git a/meta-app-framework/scripts/run-yocto-check-layer.sh b/meta-app-framework/scripts/run-yocto-check-layer.sh
new file mode 100755
index 000000000..3b19cd012
--- /dev/null
+++ b/meta-app-framework/scripts/run-yocto-check-layer.sh
@@ -0,0 +1,49 @@
+#!/bin/bash
+set -x
+SCRIPTPATH="$( cd $(dirname $0) >/dev/null 2>&1 ; pwd -P )"
+echo $SCRIPTPATH
+AGLROOT="$SCRIPTPATH/../../.."
+POKYDIR="$AGLROOT/external/poky"
+TMPROOT="/tmp"
+
+rm -rf ${TMPROOT}/testbuild-ycl || true
+mkdir -p ${TMPROOT}/testbuild-ycl
+cd ${TMPROOT}/testbuild-ycl
+
+source $POKYDIR/oe-init-build-env .
+
+cat << EOF >> conf/local.conf
+# just define defaults
+AGL_FEATURES ?= ""
+AGL_EXTRA_IMAGE_FSTYPES ?= ""
+
+# important settings imported from poky-agl.conf
+# we do not import
+DISTRO_FEATURES_append = " systemd smack"
+DISTRO_FEATURES_BACKFILL_CONSIDERED_append = " sysvinit"
+VIRTUAL-RUNTIME_init_manager = "systemd"
+
+# skip unnecessary in yocto-check-layer - aka FIXME upstream
+BBMASK += "meta-security/recipes-mac/smack/smack-test_1.0.bb"
+BBMASK += "packagegroup-core-security-ptest.bb"
+
+# missing in upstream recipes ... aka FIXME upstream
+BBCLASSEXTEND_pn-libzip = "native nativesdk"
+BBCLASSEXTEND_pn-xmlsec1 = "native nativesdk"
+
+EOF
+
+
+yocto-check-layer \
+ --dependency $AGLROOT/external/meta-openembedded/meta-oe \
+ $AGLROOT/external/meta-security \
+ $AGLROOT/external/meta-openembedded/meta-python \
+ $AGLROOT/external/meta-openembedded/meta-networking \
+ $AGLROOT/external/meta-openembedded/meta-perl \
+ $AGLROOT/external/meta-qt5/ \
+ -- \
+ $AGLROOT/meta-agl/meta-app-framework/
+
+[ $? = 0 ] && rm -rf ${TMPROOT}/testbuild-ycl
+
+
diff --git a/meta-netboot/README.renesas-gen3 b/meta-netboot/README.renesas-gen3
deleted file mode 100644
index 496141eef..000000000
--- a/meta-netboot/README.renesas-gen3
+++ /dev/null
@@ -1,90 +0,0 @@
-Below are the environment variables that can be set in the u-boot console to boot the Renesas Gen3 ULCB boards.
-
-Adjust board type with the following identifiers:
-
-* 'm3ulcb' for Renesas Gen3 Starter Kit Pro
-* 'h3ulcb' for Renesas Gen3 Starter Kit Premium
-
-################## Common options #####################
-# these options are common to all configurations:
-
-##### board info
-
-# choose board
-setenv board m3ulcb
-setenv soc r8a7796
-# or
-setenv board h3ulcb
-setenv soc r8a7795
-
-##### boot mode
-# choose bootmode:
-# netboot
-setenv bootmode net
-# or sdcard
-setenv bootmode sd
-# or sdcard with initrd
-setenv bootmode sdi
-
-##### sdcard options
-# which sdcard slot to use
-setenv bootmmc '0:1'
-
-##### netboot options
-# replace <IP> and <NUM> by appropriate addresses
-setenv ipaddr '<board_IP>'
-setenv serverip '<server_IP>'
-setenv ethact ravb
-setenv ethaddr DE:AD:C0:FF:EE:<NUM>
-
-################## Internal variables #####################
-
-# kernel file
-setenv set_bootkfile 'setenv bootkfile Image'
-setenv bootkaddr 0x48080000
-
-# dtb file
-setenv set_bootdfile 'setenv bootdfile Image-${soc}-${board}.dtb'
-setenv bootdaddr 0x48000000
-
-# initrd
-setenv set_bootifile 'setenv bootifile initramfs-netboot-image-${board}.ext4.gz'
-setenv bootiaddr 0x5C3F9520
-setenv bootisize 3A6AB6
-
-# kernel args
-setenv bootargs_console 'console=ttySC0,115200 ignore_loglevel'
-setenv bootargs_video 'vmalloc=384M video=HDMI-A-1:1920x1080-32@60'
-setenv bootargs_extra 'rw rootfstype=ext4 rootwait rootdelay=2'
-
-# final boot command
-setenv bootcmd 'run bootcmd_${bootmode}'
-
-################ Boot on MMC (SDcard) #################
-
-setenv bootkload_sd 'ext4load mmc ${bootmmc} ${bootkaddr} boot/${bootkfile}'
-setenv bootiload_sd 'ext4load mmc ${bootmmc} ${bootiaddr} boot/${bootifile}'
-setenv bootdload_sd 'ext4load mmc ${bootmmc} ${bootdaddr} boot/${bootdfile}'
-
-# without initrd
-setenv bootargs_root_sd 'root=/dev/mmcblk1p1'
-setenv bootload_sd 'run set_bootkfile; run bootkload_sd; run set_bootdfile; run bootdload_sd'
-setenv bootcmd_sd 'setenv bootargs ${bootargs_console} ${bootargs_video} ${bootargs_root_sd} ${bootargs_extra}; run bootload_sd; booti ${bootkaddr} - ${bootdaddr}'
-
-# with initrd
-setenv bootargs_root_sdi 'root=/dev/ram0 ramdisk_size=16384'
-setenv bootload_sdi 'run set_bootkfile; run bootkload_sd; run set_bootdfile; run bootdload_sd; run set_bootifile; run bootiload_sd'
-setenv bootcmd_sdi 'setenv bootargs ${bootargs_console} ${bootargs_video} ${bootargs_root_sdi} ${bootargs_extra}; run bootload_sdi; booti ${bootkaddr} ${bootiaddr}:${bootisize} ${bootdaddr}'
-
-################ Netboot through TFTP+NBD ##################
-
-setenv bootkload_net 'tftp ${bootkaddr} ${board}/${bootkfile}'
-setenv bootdload_net 'tftp ${bootdaddr} ${board}/${bootdfile}'
-setenv bootiload_net 'tftp ${bootiaddr} ${board}/${bootifile}'
-
-setenv bootargs_root_net 'root=/dev/ram0 ramdisk_size=16384 ip=dhcp'
-setenv bootload_net 'run set_bootkfile; run bootkload_net; run set_bootdfile; run bootdload_net; run set_bootifile; run bootiload_net'
-
-setenv bootcmd_net 'setenv bootargs ${bootargs_console} ${bootargs_video} ${bootargs_root_net} ${bootargs_extra} nbd.server=${serverip}; run bootload_net; booti ${bootkaddr} ${bootiaddr}:${bootisize} ${bootdaddr}'
-
-
diff --git a/meta-netboot/classes/netboot.bbclass b/meta-netboot/classes/netboot.bbclass
index 63369285f..a18d64f5b 100644
--- a/meta-netboot/classes/netboot.bbclass
+++ b/meta-netboot/classes/netboot.bbclass
@@ -1,5 +1,10 @@
# Enable network bootable image and initrd/initramfs
+OVERRIDES .= ":netboot"
+# add 512MB of extra space in ext4 output image
+IMAGE_ROOTFS_EXTRA_SPACE = "524288"
+NETBOOT_ENABLED ??= "1"
+
python () {
if (bb.utils.contains("IMAGE_FSTYPES","live",True,False,d)):
# typical case for Minnowboard Max
diff --git a/meta-netboot/conf/include/agl-netboot.inc b/meta-netboot/conf/include/agl-netboot.inc
index fcff8c318..ca6d9df12 100644
--- a/meta-netboot/conf/include/agl-netboot.inc
+++ b/meta-netboot/conf/include/agl-netboot.inc
@@ -1,5 +1,2 @@
INHERIT += "netboot"
-OVERRIDES .= ":netboot"
-# add 512MB of extra space in ext4 output image
-IMAGE_ROOTFS_EXTRA_SPACE = "524288"
diff --git a/meta-netboot/conf/layer.conf b/meta-netboot/conf/layer.conf
index 50def90fc..2af752805 100644
--- a/meta-netboot/conf/layer.conf
+++ b/meta-netboot/conf/layer.conf
@@ -1,6 +1,3 @@
-# Added for futur conditionnals tests
-DISTRO_FEATURES_append = " netboot"
-
# We have a conf and classes directory, add to BBPATH
BBPATH .= ":${LAYERDIR}"
@@ -13,3 +10,4 @@ BBFILE_PATTERN_meta-netboot = "^${LAYERDIR}/"
BBFILE_PRIORITY_meta-netboot = "60"
LAYERSERIES_COMPAT_meta-netboot = "dunfell"
+LAYERDEPENDS_meta-netboot = "core networking-layer"
diff --git a/meta-netboot/recipes-core/busybox/busybox_%.bbappend b/meta-netboot/recipes-core/busybox/busybox_%.bbappend
index 358913448..fcf6acfd1 100644
--- a/meta-netboot/recipes-core/busybox/busybox_%.bbappend
+++ b/meta-netboot/recipes-core/busybox/busybox_%.bbappend
@@ -1,6 +1 @@
-FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
-
-SRC_URI += " \
- file://enable_nbd.cfg \
- "
-
+require ${@bb.utils.contains('NETBOOT_ENABLED', '1', 'busybox_netboot.inc', '', d)}
diff --git a/meta-netboot/recipes-core/busybox/busybox_netboot.inc b/meta-netboot/recipes-core/busybox/busybox_netboot.inc
new file mode 100644
index 000000000..0bcd5afa5
--- /dev/null
+++ b/meta-netboot/recipes-core/busybox/busybox_netboot.inc
@@ -0,0 +1,6 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
+
+SRC_URI_append = " \
+ file://enable_nbd.cfg \
+ "
+
diff --git a/meta-netboot/recipes-core/images/initramfs-netboot-image.bb b/meta-netboot/recipes-core/images/initramfs-netboot-image.bb
index 965a0bd37..b5610f30d 100644
--- a/meta-netboot/recipes-core/images/initramfs-netboot-image.bb
+++ b/meta-netboot/recipes-core/images/initramfs-netboot-image.bb
@@ -1,23 +1,2 @@
-# Netboot initramfs image.
-DESCRIPTION = "Netboot initrd image"
-
-PACKAGE_INSTALL = "initramfs-netboot busybox base-passwd ${ROOTFS_BOOTSTRAP_INSTALL}"
-
-# Do not pollute the initrd image with rootfs features
-IMAGE_FEATURES = ""
-
-export IMAGE_BASENAME = "initramfs-netboot-image"
-IMAGE_LINGUAS = ""
-
LICENSE = "MIT"
-
-IMAGE_FSTYPES := "${NETBOOT_FSTYPES}"
-inherit core-image
-
-# hotfix for dragonboard (which uses _append in the bsp)
-IMAGE_FSTYPES_remove += "wic.gz"
-
-IMAGE_ROOTFS_SIZE = "8192"
-IMAGE_ROOTFS_EXTRA_SPACE = "256"
-
-BAD_RECOMMENDATIONS += "busybox-syslog"
+require ${@bb.utils.contains('NETBOOT_ENABLED', '1', 'initramfs-netboot-image_netboot.inc', '', d)}
diff --git a/meta-netboot/recipes-core/images/initramfs-netboot-image_netboot.inc b/meta-netboot/recipes-core/images/initramfs-netboot-image_netboot.inc
new file mode 100644
index 000000000..0c97b0f93
--- /dev/null
+++ b/meta-netboot/recipes-core/images/initramfs-netboot-image_netboot.inc
@@ -0,0 +1,23 @@
+# Netboot initramfs image.
+DESCRIPTION = "Netboot initrd image"
+
+PACKAGE_INSTALL = "initramfs-netboot busybox base-passwd ${ROOTFS_BOOTSTRAP_INSTALL}"
+
+# Do not pollute the initrd image with rootfs features
+IMAGE_FEATURES = ""
+
+export IMAGE_BASENAME = "initramfs-netboot-image"
+IMAGE_LINGUAS = ""
+
+LICENSE = "MIT"
+
+IMAGE_FSTYPES := "${NETBOOT_FSTYPES}"
+inherit core-image
+
+# hotfix for dragonboard (which uses _append in the bsp)
+IMAGE_FSTYPES_remove = "wic.gz"
+
+IMAGE_ROOTFS_SIZE = "8192"
+IMAGE_ROOTFS_EXTRA_SPACE = "256"
+
+BAD_RECOMMENDATIONS += "busybox-syslog"
diff --git a/meta-netboot/recipes-support/nbd/nbd_%.bbappend b/meta-netboot/recipes-support/nbd/nbd_%.bbappend
index fb11ef9c2..e67e591ff 100644
--- a/meta-netboot/recipes-support/nbd/nbd_%.bbappend
+++ b/meta-netboot/recipes-support/nbd/nbd_%.bbappend
@@ -1,6 +1 @@
-
-do_install_append() {
- mv ${D}/${sbindir}/${BPN}-client ${D}/${sbindir}/${BPN}3-client
-}
-
-FILES_${PN}-client = "${sbindir}/${BPN}3-client"
+require ${@bb.utils.contains('NETBOOT_ENABLED', '1', 'nbd_netboot.inc', '', d)}
diff --git a/meta-netboot/recipes-support/nbd/nbd_netboot.inc b/meta-netboot/recipes-support/nbd/nbd_netboot.inc
new file mode 100644
index 000000000..f2286616f
--- /dev/null
+++ b/meta-netboot/recipes-support/nbd/nbd_netboot.inc
@@ -0,0 +1,5 @@
+do_install_append() {
+ mv ${D}/${sbindir}/nbd-client ${D}/${sbindir}/nbd3-client
+}
+
+FILES_${PN}-client_append = " ${sbindir}/nbd3-client"
diff --git a/meta-netboot/scripts/run-yocto-check-layer-flags-enabled.sh b/meta-netboot/scripts/run-yocto-check-layer-flags-enabled.sh
new file mode 100755
index 000000000..c64afa714
--- /dev/null
+++ b/meta-netboot/scripts/run-yocto-check-layer-flags-enabled.sh
@@ -0,0 +1,46 @@
+#!/bin/bash
+#set -x
+
+SCRIPTPATH="$( cd $(dirname $0) >/dev/null 2>&1 ; pwd -P )"
+echo $SCRIPTPATH
+AGLROOT="$SCRIPTPATH/../../.."
+POKYDIR="$AGLROOT/external/poky"
+TMPROOT=`mktemp -d`
+
+rm -rf ${TMPROOT}/testbuild-ycl || true
+mkdir -p ${TMPROOT}/testbuild-ycl
+cd ${TMPROOT}/testbuild-ycl
+
+source $POKYDIR/oe-init-build-env .
+
+cat << EOF >> conf/local.conf
+# just define defaults
+AGL_FEATURES ?= ""
+AGL_EXTRA_IMAGE_FSTYPES ?= ""
+
+# important settings imported from poky-agl.conf
+# we do not import
+DISTRO_FEATURES_append = " systemd smack"
+DISTRO_FEATURES_BACKFILL_CONSIDERED_append = " sysvinit"
+VIRTUAL-RUNTIME_init_manager = "systemd"
+
+# workaround
+# ERROR: Nothing PROVIDES 'smack' (but meta-openembedded/meta-oe/recipes-extended/ostree/ostree_2020.3.bb DEPENDS on or otherwise requires it)
+BBMASK += "meta-oe/recipes-extended/ostree/ostree_2020.3.bb"
+
+NETBOOT_ENABLED = "1"
+NETBOOT_FSTYPES ??= "ext4.gz"
+
+EOF
+
+
+yocto-check-layer \
+ --dependency \
+ $AGLROOT/external/meta-openembedded/meta-oe \
+ $AGLROOT/external/meta-openembedded/meta-python \
+ $AGLROOT/external/meta-openembedded/meta-networking \
+ -- \
+ $AGLROOT/meta-agl/meta-netboot/
+
+
+[ $? = 0 ] && rm -rf ${TMPROOT}/testbuild-ycl
diff --git a/meta-netboot/scripts/run-yocto-check-layer.sh b/meta-netboot/scripts/run-yocto-check-layer.sh
new file mode 100755
index 000000000..b3b8e08e1
--- /dev/null
+++ b/meta-netboot/scripts/run-yocto-check-layer.sh
@@ -0,0 +1,44 @@
+#!/bin/bash
+#set -x
+
+SCRIPTPATH="$( cd $(dirname $0) >/dev/null 2>&1 ; pwd -P )"
+echo $SCRIPTPATH
+AGLROOT="$SCRIPTPATH/../../.."
+POKYDIR="$AGLROOT/external/poky"
+TMPROOT=`mktemp -d`
+
+rm -rf ${TMPROOT}/testbuild-ycl || true
+mkdir -p ${TMPROOT}/testbuild-ycl
+cd ${TMPROOT}/testbuild-ycl
+
+source $POKYDIR/oe-init-build-env .
+
+cat << EOF >> conf/local.conf
+# just define defaults
+AGL_FEATURES ?= ""
+AGL_EXTRA_IMAGE_FSTYPES ?= ""
+
+# important settings imported from poky-agl.conf
+# we do not import
+DISTRO_FEATURES_append = " systemd smack"
+DISTRO_FEATURES_BACKFILL_CONSIDERED_append = " sysvinit"
+VIRTUAL-RUNTIME_init_manager = "systemd"
+
+# workaround
+# ERROR: Nothing PROVIDES 'smack' (but meta-openembedded/meta-oe/recipes-extended/ostree/ostree_2020.3.bb DEPENDS on or otherwise requires it)
+BBMASK += "meta-oe/recipes-extended/ostree/ostree_2020.3.bb"
+
+
+EOF
+
+
+yocto-check-layer \
+ --dependency \
+ $AGLROOT/external/meta-openembedded/meta-oe \
+ $AGLROOT/external/meta-openembedded/meta-python \
+ $AGLROOT/external/meta-openembedded/meta-networking \
+ -- \
+ $AGLROOT/meta-agl/meta-netboot/
+
+
+[ $? = 0 ] && rm -rf ${TMPROOT}/testbuild-ycl
diff --git a/meta-pipewire/conf/layer.conf b/meta-pipewire/conf/layer.conf
index 68113221d..5fe2ee2fd 100644
--- a/meta-pipewire/conf/layer.conf
+++ b/meta-pipewire/conf/layer.conf
@@ -10,3 +10,8 @@ BBFILE_PATTERN_meta-pipewire = "^${LAYERDIR}/"
BBFILE_PRIORITY_meta-pipewire = "71"
LAYERSERIES_COMPAT_meta-pipewire = "dunfell"
+
+BBFILES_DYNAMIC += " \
+ app-framework:${LAYERDIR}/dynamic-layers/meta-app-framework/*/*/*.bb \
+ app-framework:${LAYERDIR}/dynamic-layers/meta-app-framework/*/*/*.bbappend \
+"
diff --git a/meta-pipewire/recipes-multimedia/agl-service-audiomixer/agl-service-audiomixer_git.bb b/meta-pipewire/dynamic-layers/meta-app-framework/recipes-apis/agl-service-audiomixer/agl-service-audiomixer_git.bb
index 2a8261195..2a8261195 100644
--- a/meta-pipewire/recipes-multimedia/agl-service-audiomixer/agl-service-audiomixer_git.bb
+++ b/meta-pipewire/dynamic-layers/meta-app-framework/recipes-apis/agl-service-audiomixer/agl-service-audiomixer_git.bb
diff --git a/meta-pipewire/dynamic-layers/meta-app-framework/recipes-core/packagegroups/packagegroup-pipewire.bbappend b/meta-pipewire/dynamic-layers/meta-app-framework/recipes-core/packagegroups/packagegroup-pipewire.bbappend
new file mode 100644
index 000000000..d87bd581e
--- /dev/null
+++ b/meta-pipewire/dynamic-layers/meta-app-framework/recipes-core/packagegroups/packagegroup-pipewire.bbappend
@@ -0,0 +1,4 @@
+RDEPENDS_${PN} += " \
+ agl-service-audiomixer \
+ bluez-alsa-pipewire \
+ "
diff --git a/meta-pipewire/recipes-multimedia/pipewire/pipewire-conf-agl/client.env b/meta-pipewire/dynamic-layers/meta-app-framework/recipes-multimedia/pipewire/pipewire-conf-agl/client.env
index 9b44cee01..9b44cee01 100644
--- a/meta-pipewire/recipes-multimedia/pipewire/pipewire-conf-agl/client.env
+++ b/meta-pipewire/dynamic-layers/meta-app-framework/recipes-multimedia/pipewire/pipewire-conf-agl/client.env
diff --git a/meta-pipewire/recipes-multimedia/pipewire/pipewire-conf-agl/pipewire.conf.in b/meta-pipewire/dynamic-layers/meta-app-framework/recipes-multimedia/pipewire/pipewire-conf-agl/pipewire.conf.in
index 6c055bcff..6c055bcff 100644
--- a/meta-pipewire/recipes-multimedia/pipewire/pipewire-conf-agl/pipewire.conf.in
+++ b/meta-pipewire/dynamic-layers/meta-app-framework/recipes-multimedia/pipewire/pipewire-conf-agl/pipewire.conf.in
diff --git a/meta-pipewire/recipes-multimedia/pipewire/pipewire-conf-agl/server.env b/meta-pipewire/dynamic-layers/meta-app-framework/recipes-multimedia/pipewire/pipewire-conf-agl/server.env
index c74b941d6..c74b941d6 100644
--- a/meta-pipewire/recipes-multimedia/pipewire/pipewire-conf-agl/server.env
+++ b/meta-pipewire/dynamic-layers/meta-app-framework/recipes-multimedia/pipewire/pipewire-conf-agl/server.env
diff --git a/meta-pipewire/recipes-multimedia/pipewire/pipewire-conf-agl_git.bb b/meta-pipewire/dynamic-layers/meta-app-framework/recipes-multimedia/pipewire/pipewire-conf-agl_git.bb
index a28c6534e..a28c6534e 100644
--- a/meta-pipewire/recipes-multimedia/pipewire/pipewire-conf-agl_git.bb
+++ b/meta-pipewire/dynamic-layers/meta-app-framework/recipes-multimedia/pipewire/pipewire-conf-agl_git.bb
diff --git a/meta-pipewire/recipes-multimedia/pipewire/pipewire/pipewire@.service b/meta-pipewire/dynamic-layers/meta-app-framework/recipes-multimedia/pipewire/pipewire/pipewire@.service
index e116dc1fa..e116dc1fa 100644
--- a/meta-pipewire/recipes-multimedia/pipewire/pipewire/pipewire@.service
+++ b/meta-pipewire/dynamic-layers/meta-app-framework/recipes-multimedia/pipewire/pipewire/pipewire@.service
diff --git a/meta-pipewire/recipes-multimedia/pipewire/pipewire/pipewire@.socket b/meta-pipewire/dynamic-layers/meta-app-framework/recipes-multimedia/pipewire/pipewire/pipewire@.socket
index 10cb32276..10cb32276 100644
--- a/meta-pipewire/recipes-multimedia/pipewire/pipewire/pipewire@.socket
+++ b/meta-pipewire/dynamic-layers/meta-app-framework/recipes-multimedia/pipewire/pipewire/pipewire@.socket
diff --git a/meta-pipewire/recipes-multimedia/pipewire/pipewire/smack-pipewire b/meta-pipewire/dynamic-layers/meta-app-framework/recipes-multimedia/pipewire/pipewire/smack-pipewire
index 8d5b541ff..8d5b541ff 100644
--- a/meta-pipewire/recipes-multimedia/pipewire/pipewire/smack-pipewire
+++ b/meta-pipewire/dynamic-layers/meta-app-framework/recipes-multimedia/pipewire/pipewire/smack-pipewire
diff --git a/meta-pipewire/recipes-multimedia/pipewire/pipewire_git.bbappend b/meta-pipewire/dynamic-layers/meta-app-framework/recipes-multimedia/pipewire/pipewire_git.bbappend
index 8a0b0741f..8c9abf23e 100644
--- a/meta-pipewire/recipes-multimedia/pipewire/pipewire_git.bbappend
+++ b/meta-pipewire/dynamic-layers/meta-app-framework/recipes-multimedia/pipewire/pipewire_git.bbappend
@@ -1,4 +1,6 @@
-SRC_URI += "\
+FILESEXTRAPATHS_prepend := "${THISDIR}/pipewire:"
+
+SRC_URI_append= "\
file://pipewire@.service \
file://pipewire@.socket \
file://smack-pipewire \
@@ -24,7 +26,7 @@ do_install_append() {
fi
}
-FILES_${PN} += "\
+FILES_${PN}_append = "\
${systemd_system_unitdir}/* \
${sysconfdir}/smack/accesses.d/* \
"
diff --git a/meta-pipewire/recipes-security/cynagora/cynagora_%.bbappend b/meta-pipewire/dynamic-layers/meta-app-framework/recipes-security/cynagora/cynagora_%.bbappend
index 9395c90c7..ccb6c4137 100644
--- a/meta-pipewire/recipes-security/cynagora/cynagora_%.bbappend
+++ b/meta-pipewire/dynamic-layers/meta-app-framework/recipes-security/cynagora/cynagora_%.bbappend
@@ -1,4 +1,3 @@
-
do_install_append() {
echo "System::Pipewire * * http://tizen.org/privilege/internal/dbus yes forever" >> ${D}${sysconfdir}/security/cynagora.initial
}
diff --git a/meta-pipewire/recipes-security/security-manager/security-manager_%.bbappend b/meta-pipewire/dynamic-layers/meta-app-framework/recipes-security/security-manager/security-manager_%.bbappend
index 594494463..47c9b9149 100644
--- a/meta-pipewire/recipes-security/security-manager/security-manager_%.bbappend
+++ b/meta-pipewire/dynamic-layers/meta-app-framework/recipes-security/security-manager/security-manager_%.bbappend
@@ -1,4 +1,3 @@
-
do_install_append() {
echo "~APP~ System::Pipewire rw" >> ${D}${datadir}/security-manager/policy/app-rules-template.smack
}
diff --git a/meta-pipewire/recipes-connectivity/bluez-alsa/bluez-alsa/0001-utils-add-a-gstreamer-helper-application-for-interco.patch b/meta-pipewire/recipes-connectivity/bluez-alsa/bluez-alsa/0001-utils-add-a-gstreamer-helper-application-for-interco.patch
deleted file mode 100644
index 6c9a388c8..000000000
--- a/meta-pipewire/recipes-connectivity/bluez-alsa/bluez-alsa/0001-utils-add-a-gstreamer-helper-application-for-interco.patch
+++ /dev/null
@@ -1,517 +0,0 @@
-From f2e6a0a324106b40195f88953e55a355875d2b1b Mon Sep 17 00:00:00 2001
-From: George Kiagiadakis <george.kiagiadakis@collabora.com>
-Date: Fri, 4 Oct 2019 20:51:24 +0300
-Subject: [PATCH] utils: add a gstreamer helper application for interconnection
- with pipewire
-
-Unfortunately, the bluez-alsa PCM plugin does not work correctly
-when it is used through pipewire (or gstreamer, or anywhere really...).
-
-Thanfully, the bluez-alsa PCM plugin is only a simple client that
-reads/writes on a file descriptor that was opened by bluealsa.
-This allows us to use bluealsa without the PCM plugin, just like it
-is done in the aplay.c util.
-
-This one uses GStreamer to implement the plumbing between pipewire
-and the file descriptor. On the reading side we are also doing some
-tricks to ensure a smooth stream, which is not the case for the
-stream that is coming out of bluealsa.
-
-This helper is implemented as a patch to bluez-alsa so that it can
-use its internal private API. In the future this needs some re-thinking.
-
-Upstream-Status: Inappropriate
----
- configure.ac | 7 +
- utils/Makefile.am | 20 +++
- utils/gst-helper.c | 432 +++++++++++++++++++++++++++++++++++++++++++++
- 3 files changed, 459 insertions(+)
- create mode 100644 utils/gst-helper.c
-
-diff --git a/configure.ac b/configure.ac
-index 4825afa..9125871 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -141,6 +141,13 @@ AM_COND_IF([ENABLE_HCITOP], [
- PKG_CHECK_MODULES([NCURSES], [ncurses])
- ])
-
-+AC_ARG_ENABLE([gsthelper],
-+ [AS_HELP_STRING([--enable-gsthelper], [enable building of gsthelper tool])])
-+AM_CONDITIONAL([ENABLE_GSTHELPER], [test "x$enable_gsthelper" = "xyes"])
-+AM_COND_IF([ENABLE_GSTHELPER], [
-+ PKG_CHECK_MODULES([GST], [gstreamer-1.0 glib-2.0])
-+])
-+
- AC_ARG_ENABLE([test],
- [AS_HELP_STRING([--enable-test], [enable unit test])])
- AM_CONDITIONAL([ENABLE_TEST], [test "x$enable_test" = "xyes"])
-diff --git a/utils/Makefile.am b/utils/Makefile.am
-index 9057f2c..9790474 100644
---- a/utils/Makefile.am
-+++ b/utils/Makefile.am
-@@ -47,3 +47,23 @@ hcitop_LDADD = \
- @LIBBSD_LIBS@ \
- @NCURSES_LIBS@
- endif
-+
-+if ENABLE_GSTHELPER
-+bin_PROGRAMS += bluealsa-gst-helper
-+bluealsa_gst_helper_SOURCES = \
-+ ../src/shared/dbus-client.c \
-+ ../src/shared/ffb.c \
-+ ../src/shared/log.c \
-+ gst-helper.c
-+bluealsa_gst_helper_CFLAGS = \
-+ -I$(top_srcdir)/src \
-+ @ALSA_CFLAGS@ \
-+ @BLUEZ_CFLAGS@ \
-+ @DBUS1_CFLAGS@ \
-+ @GST_CFLAGS@
-+bluealsa_gst_helper_LDADD = \
-+ @ALSA_LIBS@ \
-+ @BLUEZ_LIBS@ \
-+ @DBUS1_LIBS@ \
-+ @GST_LIBS@
-+endif
-diff --git a/utils/gst-helper.c b/utils/gst-helper.c
-new file mode 100644
-index 0000000..de1d47c
---- /dev/null
-+++ b/utils/gst-helper.c
-@@ -0,0 +1,432 @@
-+/* Bluez-Alsa PipeWire integration GStreamer helper
-+ *
-+ * Copyright © 2016-2019 Arkadiusz Bokowy
-+ * Copyright © 2019 Collabora Ltd.
-+ * @author George Kiagiadakis <george.kiagiadakis@collabora.com>
-+ *
-+ * SPDX-License-Identifier: MIT
-+ */
-+
-+#if HAVE_CONFIG_H
-+# include <config.h>
-+#endif
-+
-+#include <errno.h>
-+#include <getopt.h>
-+#include <poll.h>
-+#include <pthread.h>
-+#include <signal.h>
-+#include <stdbool.h>
-+#include <stdint.h>
-+#include <stdio.h>
-+#include <stdlib.h>
-+#include <string.h>
-+#include <unistd.h>
-+
-+#include <bluetooth/bluetooth.h>
-+#include <dbus/dbus.h>
-+#include <gst/gst.h>
-+
-+#include "shared/dbus-client.h"
-+#include "shared/defs.h"
-+#include "shared/ffb.h"
-+#include "shared/log.h"
-+
-+struct worker {
-+ /* used BlueALSA PCM device */
-+ struct ba_pcm ba_pcm;
-+ /* file descriptor of PCM FIFO */
-+ int ba_pcm_fd;
-+ /* file descriptor of PCM control */
-+ int ba_pcm_ctrl_fd;
-+ /* the gstreamer pipelines (sink & source) */
-+ GstElement *pipeline[2];
-+ /* the queue & pwaudiosink of the sink pipeline */
-+ GstElement *queue;
-+ GstElement *pwelem;
-+};
-+
-+static struct ba_dbus_ctx dbus_ctx;
-+static GHashTable *workers;
-+static bool main_loop_on = true;
-+
-+static void
-+main_loop_stop(int sig)
-+{
-+ /* Call to this handler restores the default action, so on the
-+ * second call the program will be forcefully terminated. */
-+
-+ struct sigaction sigact = { .sa_handler = SIG_DFL };
-+ sigaction(sig, &sigact, NULL);
-+
-+ main_loop_on = false;
-+}
-+
-+static GstBusSyncReply
-+bus_sync_handler(GstBus *bus, GstMessage *message, gpointer user_data)
-+{
-+ struct worker *w = user_data;
-+ GstState s;
-+
-+ switch (GST_MESSAGE_TYPE (message)) {
-+ case GST_MESSAGE_REQUEST_STATE:
-+ gst_message_parse_request_state (message, &s);
-+
-+ debug ("corked: %d", (s == GST_STATE_PAUSED));
-+
-+ /* drop queue data when corked */
-+ g_object_set (w->queue,
-+ "leaky", (s == GST_STATE_PAUSED) ? 2 /* downstream */ : 0 /* no */,
-+ NULL);
-+ gst_element_set_state (w->pwelem, s);
-+
-+ /* flush the queue when resuming */
-+ if (s == GST_STATE_PLAYING) {
-+ gst_element_send_event (w->queue, gst_event_new_flush_start ());
-+ gst_element_send_event (w->queue, gst_event_new_flush_stop (FALSE));
-+ }
-+ break;
-+ default:
-+ break;
-+ }
-+
-+ gst_message_unref (message);
-+ return GST_BUS_DROP;
-+}
-+
-+static int
-+worker_start_pipeline(struct worker *w, int id, int mode, int profile)
-+{
-+ GError *gerr = NULL;
-+ DBusError err = DBUS_ERROR_INIT;
-+ const gchar * role = NULL;
-+
-+ if (w->pipeline[id])
-+ return 0;
-+
-+ if (!bluealsa_dbus_pcm_open(&dbus_ctx, w->ba_pcm.pcm_path, mode,
-+ &w->ba_pcm_fd, &w->ba_pcm_ctrl_fd, &err)) {
-+ error("Couldn't open PCM: %s", err.message);
-+ dbus_error_free(&err);
-+ goto fail;
-+ }
-+
-+ if (mode == BA_PCM_FLAG_SINK) {
-+ debug("sink start");
-+ w->pipeline[id] = gst_parse_launch(
-+ /* add a silent live source to ensure a perfect live stream on the
-+ output, even when the bt device is not sending or has gaps;
-+ this also effectively changes the clock to be the system clock,
-+ which is the same clock used by bluez-alsa on the sending side */
-+ "audiotestsrc is-live=true wave=silence ! capsfilter name=capsf "
-+ "! audiomixer name=m "
-+ /* mix the input from bluez-alsa using fdsrc; rawaudioparse
-+ is necessary to convert bytes to time and align the buffers */
-+ "fdsrc name=fdelem do-timestamp=true ! capsfilter name=capsf2 "
-+ "! rawaudioparse use-sink-caps=true ! m. "
-+ /* take the mixer output, convert and push to pipewire */
-+ "m.src ! capsfilter name=capsf3 ! audioconvert ! audioresample "
-+ "! audio/x-raw,format=F32LE,rate=48000 ! identity sync=true "
-+ "! queue name=queue leaky=no max-size-time=0 max-size-buffers=0 max-size-bytes=192000 "
-+ "! pwaudiosink name=pwelem",
-+ &gerr);
-+
-+ /* a2dp is for music, sco is for calls */
-+ role = (profile == BA_PCM_FLAG_PROFILE_A2DP) ? "Multimedia" : "Communication";
-+ }
-+ else if (mode == BA_PCM_FLAG_SOURCE && profile == BA_PCM_FLAG_PROFILE_SCO) {
-+ debug("source start");
-+ w->pipeline[id] = gst_parse_launch(
-+ /* read from pipewire and put the buffers on a leaky queue, which
-+ will essentially allow pwaudiosrc to continue working while
-+ the fdsink is blocked (when there is no phone call in progress).
-+ 9600 bytes = 50ms @ F32LE/1ch/48000
-+ */
-+ "pwaudiosrc name=pwelem ! audio/x-raw,format=F32LE,rate=48000 "
-+ "! queue name=queue leaky=downstream max-size-time=0 max-size-buffers=0 max-size-bytes=9600 "
-+ "! audioconvert ! audioresample ! capsfilter name=capsf "
-+ "! fdsink name=fdelem", &gerr);
-+
-+ role = "Communication";
-+ }
-+
-+ if (gerr) {
-+ error("Failed to start pipeline: %s", gerr->message);
-+ g_error_free(gerr);
-+ goto fail;
-+ }
-+
-+ if (w->pipeline[id]) {
-+ g_autofree gchar *capsstr = NULL;
-+ g_autoptr (GstElement) fdelem = gst_bin_get_by_name(GST_BIN(w->pipeline[id]), "fdelem");
-+ g_autoptr (GstElement) pwelem = gst_bin_get_by_name(GST_BIN(w->pipeline[id]), "pwelem");
-+ g_autoptr (GstElement) queue = gst_bin_get_by_name(GST_BIN(w->pipeline[id]), "queue");
-+ g_autoptr (GstElement) capsf = gst_bin_get_by_name(GST_BIN(w->pipeline[id]), "capsf");
-+ g_autoptr (GstElement) capsf2 = gst_bin_get_by_name(GST_BIN(w->pipeline[id]), "capsf2");
-+ g_autoptr (GstElement) capsf3 = gst_bin_get_by_name(GST_BIN(w->pipeline[id]), "capsf3");
-+ g_autoptr (GstCaps) caps = gst_caps_new_simple("audio/x-raw",
-+ "format", G_TYPE_STRING, "S16LE",
-+ "layout", G_TYPE_STRING, "interleaved",
-+ "channels", G_TYPE_INT, w->ba_pcm.channels,
-+ "rate", G_TYPE_INT, w->ba_pcm.sampling,
-+ NULL);
-+ g_autoptr (GstStructure) stream_props = gst_structure_new("props",
-+ "media.role", G_TYPE_STRING, role,
-+ "bluealsa.profile", G_TYPE_STRING,
-+ (profile == BA_PCM_FLAG_PROFILE_SCO) ? "sco" : "a2dp",
-+ NULL);
-+
-+ g_object_set(capsf, "caps", caps, NULL);
-+ if (capsf2)
-+ g_object_set(capsf2, "caps", caps, NULL);
-+ if (capsf3)
-+ g_object_set(capsf3, "caps", caps, NULL);
-+
-+ capsstr = gst_caps_to_string (caps);
-+ debug(" caps: %s", capsstr);
-+
-+ g_object_set(fdelem, "fd", w->ba_pcm_fd, NULL);
-+ g_object_set(pwelem, "stream-properties", stream_props, NULL);
-+
-+ if (mode == BA_PCM_FLAG_SINK) {
-+ g_autoptr (GstBus) bus = gst_pipeline_get_bus(GST_PIPELINE(w->pipeline[id]));
-+ gst_bus_set_sync_handler(bus, bus_sync_handler, w, NULL);
-+ w->queue = queue;
-+ w->pwelem = pwelem;
-+ }
-+
-+ gst_element_set_state(w->pipeline[id], GST_STATE_PLAYING);
-+ }
-+
-+ return 0;
-+fail:
-+ g_clear_object(&w->pipeline[id]);
-+ return -1;
-+}
-+
-+static int
-+worker_start(struct worker *w)
-+{
-+ int mode = w->ba_pcm.flags & (BA_PCM_FLAG_SOURCE | BA_PCM_FLAG_SINK);
-+ int profile = w->ba_pcm.flags & (BA_PCM_FLAG_PROFILE_A2DP | BA_PCM_FLAG_PROFILE_SCO);
-+ /* human-readable BT address */
-+ char addr[18];
-+
-+ g_return_val_if_fail (profile != 0 && profile != (BA_PCM_FLAG_PROFILE_A2DP | BA_PCM_FLAG_PROFILE_SCO), -1);
-+
-+ ba2str(&w->ba_pcm.addr, addr);
-+ debug("%p: worker start addr:%s, mode:0x%x, profile:0x%x", w, addr, mode, profile);
-+
-+ if (mode & BA_PCM_FLAG_SINK)
-+ worker_start_pipeline(w, 0, BA_PCM_FLAG_SINK, profile);
-+ if (mode & BA_PCM_FLAG_SOURCE)
-+ worker_start_pipeline(w, 1, BA_PCM_FLAG_SOURCE, profile);
-+}
-+
-+static int
-+worker_stop(struct worker *w)
-+{
-+ debug("stop worker %p", w);
-+ if (w->pipeline[0]) {
-+ gst_element_set_state(w->pipeline[0], GST_STATE_NULL);
-+ g_clear_object(&w->pipeline[0]);
-+ }
-+ if (w->pipeline[1]) {
-+ gst_element_set_state(w->pipeline[1], GST_STATE_NULL);
-+ g_clear_object(&w->pipeline[1]);
-+ }
-+ if (w->ba_pcm_fd != -1) {
-+ close(w->ba_pcm_fd);
-+ w->ba_pcm_fd = -1;
-+ }
-+ if (w->ba_pcm_ctrl_fd != -1) {
-+ close(w->ba_pcm_ctrl_fd);
-+ w->ba_pcm_ctrl_fd = -1;
-+ }
-+ return 0;
-+}
-+
-+static int
-+supervise_pcm_worker(struct worker *worker)
-+{
-+ if (worker == NULL)
-+ return -1;
-+
-+ /* no mode? */
-+ if (worker->ba_pcm.flags & (BA_PCM_FLAG_SOURCE | BA_PCM_FLAG_SINK) == 0)
-+ goto stop;
-+
-+ /* no profile? */
-+ if (worker->ba_pcm.flags & (BA_PCM_FLAG_PROFILE_A2DP | BA_PCM_FLAG_PROFILE_SCO) == 0)
-+ goto stop;
-+
-+ /* check whether SCO has selected codec */
-+ if (worker->ba_pcm.flags & BA_PCM_FLAG_PROFILE_SCO &&
-+ worker->ba_pcm.codec == 0) {
-+ debug("Skipping SCO with codec not selected");
-+ goto stop;
-+ }
-+
-+start:
-+ return worker_start(worker);
-+stop:
-+ return worker_stop(worker);
-+}
-+
-+static void
-+worker_new(struct ba_pcm *pcm)
-+{
-+ struct worker *w = g_slice_new0 (struct worker);
-+ memcpy(&w->ba_pcm, pcm, sizeof(struct ba_pcm));
-+ w->ba_pcm_fd = -1;
-+ w->ba_pcm_ctrl_fd = -1;
-+ g_hash_table_insert(workers, w->ba_pcm.pcm_path, w);
-+ supervise_pcm_worker(w);
-+}
-+
-+static DBusHandlerResult
-+dbus_signal_handler(DBusConnection *conn, DBusMessage *message, void *data)
-+{
-+ (void)conn;
-+ (void)data;
-+
-+ const char *path = dbus_message_get_path(message);
-+ const char *interface = dbus_message_get_interface(message);
-+ const char *signal = dbus_message_get_member(message);
-+
-+ DBusMessageIter iter;
-+ struct worker *worker;
-+
-+ if (strcmp(interface, BLUEALSA_INTERFACE_MANAGER) == 0) {
-+
-+ if (strcmp(signal, "PCMAdded") == 0) {
-+ struct ba_pcm pcm;
-+ if (!dbus_message_iter_init(message, &iter) ||
-+ !bluealsa_dbus_message_iter_get_pcm(&iter, NULL, &pcm)) {
-+ error("Couldn't add new PCM: %s", "Invalid signal signature");
-+ goto fail;
-+ }
-+ worker_new(&pcm);
-+ return DBUS_HANDLER_RESULT_HANDLED;
-+ }
-+
-+ if (strcmp(signal, "PCMRemoved") == 0) {
-+ if (!dbus_message_iter_init(message, &iter) ||
-+ dbus_message_iter_get_arg_type(&iter) != DBUS_TYPE_OBJECT_PATH) {
-+ error("Couldn't remove PCM: %s", "Invalid signal signature");
-+ goto fail;
-+ }
-+ dbus_message_iter_get_basic(&iter, &path);
-+ g_hash_table_remove(workers, path);
-+ return DBUS_HANDLER_RESULT_HANDLED;
-+ }
-+
-+ }
-+
-+ if (strcmp(interface, DBUS_INTERFACE_PROPERTIES) == 0) {
-+ worker = g_hash_table_lookup(workers, path);
-+ if (!worker)
-+ goto fail;
-+ if (!dbus_message_iter_init(message, &iter) ||
-+ dbus_message_iter_get_arg_type(&iter) != DBUS_TYPE_STRING) {
-+ error("Couldn't update PCM: %s", "Invalid signal signature");
-+ goto fail;
-+ }
-+ dbus_message_iter_get_basic(&iter, &interface);
-+ dbus_message_iter_next(&iter);
-+ if (!bluealsa_dbus_message_iter_get_pcm_props(&iter, NULL, &worker->ba_pcm))
-+ goto fail;
-+ supervise_pcm_worker(worker);
-+ return DBUS_HANDLER_RESULT_HANDLED;
-+ }
-+
-+fail:
-+ return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
-+}
-+
-+static void
-+destroy_worker(void *worker)
-+{
-+ struct worker *w = worker;
-+ worker_stop(w);
-+ g_slice_free(struct worker, w);
-+}
-+
-+int
-+main(int argc, char *argv[])
-+{
-+ int ret = EXIT_SUCCESS;
-+
-+ log_open(argv[0], false, false);
-+ gst_init(&argc, &argv);
-+ dbus_threads_init_default();
-+
-+ DBusError err = DBUS_ERROR_INIT;
-+ if (!bluealsa_dbus_connection_ctx_init(&dbus_ctx, BLUEALSA_SERVICE, &err)) {
-+ error("Couldn't initialize D-Bus context: %s", err.message);
-+ return EXIT_FAILURE;
-+ }
-+
-+ bluealsa_dbus_connection_signal_match_add(&dbus_ctx,
-+ BLUEALSA_SERVICE, NULL, BLUEALSA_INTERFACE_MANAGER, "PCMAdded", NULL);
-+ bluealsa_dbus_connection_signal_match_add(&dbus_ctx,
-+ BLUEALSA_SERVICE, NULL, BLUEALSA_INTERFACE_MANAGER, "PCMRemoved", NULL);
-+ bluealsa_dbus_connection_signal_match_add(&dbus_ctx,
-+ BLUEALSA_SERVICE, NULL, DBUS_INTERFACE_PROPERTIES, "PropertiesChanged",
-+ "arg0='"BLUEALSA_INTERFACE_PCM"'");
-+
-+ if (!dbus_connection_add_filter(dbus_ctx.conn, dbus_signal_handler, NULL, NULL)) {
-+ error("Couldn't add D-Bus filter: %s", err.message);
-+ return EXIT_FAILURE;
-+ }
-+
-+ workers = g_hash_table_new_full(g_str_hash, g_str_equal, NULL, destroy_worker);
-+
-+ {
-+ struct ba_pcm *pcms = NULL;
-+ size_t pcms_count = 0, i;
-+
-+ if (!bluealsa_dbus_get_pcms(&dbus_ctx, &pcms, &pcms_count, &err))
-+ warn("Couldn't get BlueALSA PCM list: %s", err.message);
-+
-+ for (i = 0; i < pcms_count; i++) {
-+ worker_new(&pcms[i]);
-+ }
-+
-+ free(pcms);
-+ }
-+
-+ struct sigaction sigact = { .sa_handler = main_loop_stop };
-+ sigaction(SIGTERM, &sigact, NULL);
-+ sigaction(SIGINT, &sigact, NULL);
-+
-+ /* Ignore SIGPIPE, which may be received when writing to the bluealsa
-+ socket when it is closed on the remote end */
-+ signal(SIGPIPE, SIG_IGN);
-+
-+ debug("Starting main loop");
-+ while (main_loop_on) {
-+
-+ struct pollfd pfds[10];
-+ nfds_t pfds_len = ARRAYSIZE(pfds);
-+
-+ if (!bluealsa_dbus_connection_poll_fds(&dbus_ctx, pfds, &pfds_len)) {
-+ error("Couldn't get D-Bus connection file descriptors");
-+ ret = EXIT_FAILURE;
-+ goto out;
-+ }
-+
-+ if (poll(pfds, pfds_len, -1) == -1 &&
-+ errno == EINTR)
-+ continue;
-+
-+ if (bluealsa_dbus_connection_poll_dispatch(&dbus_ctx, pfds, pfds_len))
-+ while (dbus_connection_dispatch(dbus_ctx.conn) == DBUS_DISPATCH_DATA_REMAINS)
-+ continue;
-+
-+ }
-+
-+out:
-+ g_hash_table_unref(workers);
-+ return ret;
-+}
---
-2.24.0
-
diff --git a/meta-pipewire/recipes-connectivity/bluez-alsa/bluez-alsa/bluealsa-gst-helper@.service b/meta-pipewire/recipes-connectivity/bluez-alsa/bluez-alsa/bluealsa-gst-helper@.service
deleted file mode 100644
index 495ab6222..000000000
--- a/meta-pipewire/recipes-connectivity/bluez-alsa/bluez-alsa/bluealsa-gst-helper@.service
+++ /dev/null
@@ -1,18 +0,0 @@
-[Unit]
-Description=Bluetooth audio helper for user %i
-Requires=pipewire@%i.socket bluez-alsa.service
-After=pipewire@%i.socket bluez-alsa.service
-
-[Service]
-Type=simple
-Restart=on-failure
-ExecStart=/usr/bin/bluealsa-gst-helper
-
-Environment=XDG_RUNTIME_DIR=/run/user/%i
-Environment=DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/%i/bus
-
-User=%i
-Slice=user-%i.slice
-SupplementaryGroups=audio
-UMask=0077
-CapabilityBoundingSet=
diff --git a/meta-pipewire/recipes-connectivity/bluez-alsa/bluez-alsa_git.bbappend b/meta-pipewire/recipes-connectivity/bluez-alsa/bluez-alsa_git.bbappend
deleted file mode 100644
index 2f9699a83..000000000
--- a/meta-pipewire/recipes-connectivity/bluez-alsa/bluez-alsa_git.bbappend
+++ /dev/null
@@ -1,35 +0,0 @@
-FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
-
-SRC_URI += "\
- file://0001-utils-add-a-gstreamer-helper-application-for-interco.patch \
- file://bluealsa-gst-helper@.service \
- "
-
-PACKAGECONFIG += "gsthelper"
-PACKAGECONFIG[gsthelper] = "--enable-gsthelper, --disable-gsthelper, gstreamer1.0"
-
-do_install_append() {
- if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
- # install the service file
- mkdir -p ${D}${systemd_system_unitdir}/
- install -m 0644 ${WORKDIR}/bluealsa-gst-helper@.service ${D}${systemd_system_unitdir}/bluealsa-gst-helper@.service
-
- # enable the helper to start together with afm-user-session
- mkdir -p ${D}${systemd_system_unitdir}/afm-user-session@.target.wants
- ln -sf ../bluealsa-gst-helper@.service ${D}${systemd_system_unitdir}/afm-user-session@.target.wants/bluealsa-gst-helper@.service
- fi
-}
-
-PACKAGES =+ "${PN}-pipewire"
-
-FILES_${PN}-pipewire = "\
- ${bindir}/bluealsa-gst-helper \
- ${systemd_system_unitdir}/bluealsa-gst-helper@.service \
- ${systemd_system_unitdir}/afm-user-session@.target.wants/bluealsa-gst-helper@.service \
- "
-RDEPENDS_${PN}-pipewire += "\
- bluez-alsa \
- pipewire \
- gstreamer1.0-plugins-base \
- gstreamer1.0-pipewire \
- "
diff --git a/meta-pipewire/recipes-core/packagegroups/packagegroup-pipewire.bb b/meta-pipewire/recipes-core/packagegroups/packagegroup-pipewire.bb
index 4020f1e24..a20f8a4f7 100644
--- a/meta-pipewire/recipes-core/packagegroups/packagegroup-pipewire.bb
+++ b/meta-pipewire/recipes-core/packagegroups/packagegroup-pipewire.bb
@@ -9,9 +9,7 @@ PACKAGES = "\
"
RDEPENDS_${PN} += "\
- agl-service-audiomixer \
pipewire \
pipewire-alsa \
gstreamer1.0-pipewire \
- bluez-alsa-pipewire \
"
diff --git a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/30-ak4613-audio-sink.endpoint b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/30-ak4613-audio-sink.endpoint
index 4405f7b7a..afc4303eb 100644
--- a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/30-ak4613-audio-sink.endpoint
+++ b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/30-ak4613-audio-sink.endpoint
@@ -3,7 +3,6 @@ priority = 30
properties = [
{ name = "media.class", value = "Audio/Sink" },
{ name = "api.alsa.card.id", value = "ak4613" },
- { name = "api.alsa.pcm.device", value = "0" },
]
[endpoint]
diff --git a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/30-rcarsound-audio-sink.endpoint b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/30-rcarsound-audio-sink.endpoint
index 0c7b20805..53f9d0df7 100644
--- a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/30-rcarsound-audio-sink.endpoint
+++ b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/30-rcarsound-audio-sink.endpoint
@@ -3,7 +3,6 @@ priority = 30
properties = [
{ name = "media.class", value = "Audio/Sink" },
{ name = "api.alsa.card.id", value = "rcarsound" },
- { name = "api.alsa.pcm.device", value = "0" },
]
[endpoint]
diff --git a/meta-pipewire/scripts/run-yocto-check-layer.sh b/meta-pipewire/scripts/run-yocto-check-layer.sh
new file mode 100755
index 000000000..15b4de0e1
--- /dev/null
+++ b/meta-pipewire/scripts/run-yocto-check-layer.sh
@@ -0,0 +1,35 @@
+#!/bin/bash
+#set -x
+
+SCRIPTPATH="$( cd $(dirname $0) >/dev/null 2>&1 ; pwd -P )"
+echo $SCRIPTPATH
+AGLROOT="$SCRIPTPATH/../../.."
+POKYDIR="$AGLROOT/external/poky"
+TMPROOT=`mktemp -d`
+
+rm -rf ${TMPROOT}/testbuild-ycl || true
+mkdir -p ${TMPROOT}/testbuild-ycl
+cd ${TMPROOT}/testbuild-ycl
+
+source $POKYDIR/oe-init-build-env .
+
+cat << EOF >> conf/local.conf
+# just define defaults
+AGL_FEATURES ?= ""
+AGL_EXTRA_IMAGE_FSTYPES ?= ""
+
+# important settings imported from poky-agl.conf
+# we do not import
+DISTRO_FEATURES_append = " systemd smack"
+DISTRO_FEATURES_BACKFILL_CONSIDERED_append = " sysvinit"
+VIRTUAL-RUNTIME_init_manager = "systemd"
+
+EOF
+
+
+yocto-check-layer \
+ -- \
+ $AGLROOT/meta-agl/meta-pipewire
+
+
+[ $? = 0 ] && rm -rf ${TMPROOT}/testbuild-ycl
diff --git a/meta-security/COPYING.MIT b/meta-security/COPYING.MIT
deleted file mode 100644
index 89de35479..000000000
--- a/meta-security/COPYING.MIT
+++ /dev/null
@@ -1,17 +0,0 @@
-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 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.
diff --git a/meta-security/README.md b/meta-security/README.md
deleted file mode 100644
index 6a8024bc6..000000000
--- a/meta-security/README.md
+++ /dev/null
@@ -1,31 +0,0 @@
-This README file contains information on the contents of the
-meta-security layer.
-
-Please see the corresponding sections below for details.
-
-
-Dependencies
-============
-
-This layer depends on:
-
- URI: git://git.openembedded.org/bitbake
- branch: master
-
- URI: git://git.openembedded.org/openembedded-core
- layers: meta
- branch: master
-
- URI: git://git.yoctoproject.org/meta-security
- branch: master
-
-
-Patches
-=======
-
-Please submit any patches against the meta-security layer via gerrit
-reviews.
-
-For discussion use the discussion mailing list
-https://lists.automotivelinux.org/g/agl-dev-community
-
diff --git a/meta-security/conf/layer.conf b/meta-security/conf/layer.conf
deleted file mode 100644
index 6024d2847..000000000
--- a/meta-security/conf/layer.conf
+++ /dev/null
@@ -1,14 +0,0 @@
-# We have a conf and classes directory, add to BBPATH
-BBPATH =. "${LAYERDIR}:"
-
-# We have a packages directory, add to BBFILES
-BBFILES += " ${LAYERDIR}/recipes-*/*/*.bb \
- ${LAYERDIR}/recipes-*/*/*.bbappend \
- "
-
-# Must prioritize our rpm recipe over the default ones.
-BBFILE_COLLECTIONS += "security-smack"
-BBFILE_PATTERN_security-smack := "^${LAYERDIR}/"
-BBFILE_PRIORITY_security-smack = "60"
-
-LAYERSERIES_COMPAT_security-smack = "dunfell"
diff --git a/meta-security/recipes-kernel/linux/linux/audit.cfg b/meta-security/recipes-kernel/linux/linux/audit.cfg
deleted file mode 100644
index 214dbe33f..000000000
--- a/meta-security/recipes-kernel/linux/linux/audit.cfg
+++ /dev/null
@@ -1,2 +0,0 @@
-CONFIG_AUDIT=y
-CONFIG_AUDITSYSCALL=y
diff --git a/meta-security/recipes-security/smacknet/files/smacknet b/meta-security/recipes-security/smacknet/files/smacknet
deleted file mode 100644
index 3818d30ae..000000000
--- a/meta-security/recipes-security/smacknet/files/smacknet
+++ /dev/null
@@ -1,184 +0,0 @@
-#!/usr/bin/python
-# Copyright (c) 2012, 2013, Intel Corporation
-# Copyright (c) 2009 David Wolinsky <davidiw@ufl.edu), University of Florida
-# 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. The name of the author may not be used to endorse or promote products
-# derived from this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
-# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-import socket,fcntl, struct, thread
-import os.path
-import sys
-
-SMACKFS_LOAD="/sys/fs/smackfs/load2"
-SMACKFS_NETLABEL="/sys/fs/smackfs/netlabel"
-SIOCGIFADDR = 0x8915
-SIOCGIFNETMASK = 0x891b
-
-def get_ip_address(ifname):
- s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
- return fcntl.ioctl(s.fileno(), SIOCGIFADDR,
- struct.pack('256s', ifname.encode("utf-8")))[20:24]
-
-def get_netmask(ifname):
- s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
- return fcntl.ioctl(s.fileno(), SIOCGIFNETMASK,
- struct.pack('256s', ifname.encode("utf-8")))[20:24]
-
-def applynetlabeltags(interface, addr):
- if not interface.startswith("lo"):
- bmask = get_netmask(interface.encode("utf-8"))
- prefix = bin(struct.unpack(">L", bmask)[0]).count("1")
- tags = [
- addr+"/"+str(prefix)+" Network::Local\n",
- "0.0.0.0/0 Network::Cloud\n",
- "127.0.0.1/8 -CIPSO\n"]
- smackfs_netlabel(tags)
-
-def loadnetlabelrules():
- rulesSystem = [
- "System Network::Cloud w\n",
- "System Network::Local w\n",
- "Network::Cloud System w\n",
- "Network::Local System w\n"]
- smackfs_load2(rulesSystem)
-
-def smackfs_load2 (rules):
- with open(SMACKFS_LOAD, "w") as load2:
- for rule in rules:
- load2.write(rule)
-
-def smackfs_netlabel (tags):
- for tag in tags:
- with open(SMACKFS_NETLABEL, "w") as netlabel:
- netlabel.write(tag)
-
-"""
- Source of: Class ip monitor, and other functions named bellow.
- Original author: David Wolinsky <davidiw@ufl.edu
- Copied from: https://github.com/davidiw/Grid-Appliance/blob/master/scripts/ip_monitor.py
-
-"""
-
-"""4 byte alignment"""
-
-def align(inc):
- diff = inc % 4
- return inc + ((4 - diff) % 4)
-
-class ifaddr:
- """Parse an ifaddr packet"""
- LOCAL = 2
- LABEL = 3
-
- def __init__(self, packet):
- self.family, self.prefixlen, self.flags, self.scope, self.index = \
- struct.unpack("BBBBI", packet[:8])
-
-class rtattr:
- """Parse a rtattr packet"""
- GRP_IPV4_IFADDR = 0x10
-
- NEWADDR = 20
- DELADDR = 21
- GETADDR = 22
-
- def __init__(self, packet):
- self.len, self.type = struct.unpack("HH", packet[:4])
- if self.type == ifaddr.LOCAL:
- addr = struct.unpack("BBBB", packet[4:self.len])
- self.payload = "%s.%s.%s.%s" % (addr[0], addr[1], addr[2], addr[3])
- elif self.type == ifaddr.LABEL:
- self.payload = packet[4:self.len].strip("\0")
- else:
- self.payload = packet[4:self.len]
-
-class netlink:
- """Parse a netlink packet"""
- REQUEST = 1
- ROOT = 0x100
- MATCH = 0x200
- DONE = 3
-
- def __init__(self, packet):
- self.msglen, self.msgtype, self.flags, self.seq, self.pid = \
- struct.unpack("IHHII", packet[:16])
- self.ifa = None
- try:
- self.ifa = ifaddr(packet[16:24])
- except:
- return
-
- self.rtas = {}
- pos = 24
- while pos < self.msglen:
- try:
- rta = rtattr(packet[pos:])
- except:
- break
- pos += align(rta.len)
- self.rtas[rta.type] = rta.payload
-
-class ip_monitor:
- def __init__(self, callback = None):
- if callback == None:
- callback = self.print_cb
- self._callback = callback
-
- def print_cb(self, label, addr):
- print (label + " => " + addr)
-
- def request_addrs(self, sock):
- sock.send(struct.pack("IHHIIBBBBI", 24, rtattr.GETADDR, \
- netlink.REQUEST | netlink.ROOT | netlink.MATCH, 0, sock.getsockname()[0], \
- socket.AF_INET, 0, 0, 0, 0))
-
- def start_thread(self):
- thread.start_new_thread(self.run, ())
-
- def run(self):
- sock = socket.socket(socket.AF_NETLINK, socket.SOCK_RAW, socket.NETLINK_ROUTE)
- sock.bind((0, rtattr.GRP_IPV4_IFADDR))
- self.request_addrs(sock)
-
- while True:
- data = sock.recv(4096)
- pos = 0
- while pos < len(data):
- nl = netlink(data[pos:])
- if nl.msgtype == netlink.DONE:
- break
- pos += align(nl.msglen)
- if nl.msgtype != rtattr.NEWADDR:
- continue
- self._callback(nl.rtas[ifaddr.LABEL], nl.rtas[ifaddr.LOCAL])
-
-def main():
- if not os.path.isfile(SMACKFS_LOAD):
- print ("Smack not found.")
- return -1
- loadnetlabelrules()
-
- ip_monitor(applynetlabeltags).run()
-
-if __name__ == "__main__":
- main()
diff --git a/meta-security/recipes-security/smacknet/files/smacknet.service b/meta-security/recipes-security/smacknet/files/smacknet.service
deleted file mode 100644
index 218d8b896..000000000
--- a/meta-security/recipes-security/smacknet/files/smacknet.service
+++ /dev/null
@@ -1,11 +0,0 @@
-[Unit]
-Description=netlabels configuration for SMACK
-Wants=network.target network-online.target
-After=network.target network-online.target
-
-[Service]
-TimeoutStartSec=0
-ExecStart=@BINDIR@/smacknet
-
-[Install]
-WantedBy=multi-user.target
diff --git a/meta-security/recipes-security/smacknet/smacknet.bb b/meta-security/recipes-security/smacknet/smacknet.bb
deleted file mode 100644
index 250cdb132..000000000
--- a/meta-security/recipes-security/smacknet/smacknet.bb
+++ /dev/null
@@ -1,29 +0,0 @@
-#SMACKNET Description
-SUMMARY = "Smack network labels configuration"
-DESCRIPTION = "Provide service that will be labeling the network rules"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/BSD-3-Clause;md5=550794465ba0ec5312d6919e203a55f9"
-RDEPENDS_${PN} = "python"
-
-SRC_URI += "file://smacknet \
- file://smacknet.service \
- "
-S = "${WORKDIR}"
-
-inherit systemd
-
-inherit features_check
-REQUIRED_DISTRO_FEATURES = "smack"
-
-#netlabel configuration service
-SYSTEMD_SERVICE_${PN} = "smacknet.service"
-SYSTEMD_AUTO_ENABLE = "enable"
-do_install(){
- install -d ${D}${bindir}
- install -m 0551 ${WORKDIR}/smacknet ${D}${bindir}
-
- install -d -m 755 ${D}${systemd_unitdir}/system
- install -m 644 ${WORKDIR}/smacknet.service ${D}${systemd_unitdir}/system
- sed -i -e 's,@BINDIR@,${bindir},g' ${D}${systemd_unitdir}/system/smacknet.service
-}
-
diff --git a/scripts/README-mkefi-agl.md b/scripts/README-mkefi-agl.md
deleted file mode 100644
index 2262fb129..000000000
--- a/scripts/README-mkefi-agl.md
+++ /dev/null
@@ -1,18 +0,0 @@
-# Introduction
-
-This script will install the AGL distribution on a removable device to boot on Intel UEFI-based computer.
-
-In particular it can create a USB or SD bootable support for [MinnowBoard](www.minnowboard.org).
-
-Usage: mkefi-agl.sh [-v] IDSK_IMAGE REMOVABLE_DEVICE
- -v: Verbose debug
- HDDIMG: The DISK_IMAGE file generated by Yocto the efi disk from
- Supported formats are .hddimg, .wic .wic.xz
- REMOVABLE_DEVICE: The block device to write the image to, e.g. /dev/sdh
-ex:
- mkefi-agl.sh agl-demo-platform-intel-corei7-64.hddimg /dev/sdd
- mkefi-agl.sh agl-demo-platform-intel-corei7-64.wic.xz /dev/sdd
-
-## Documentation
-
-[Additional documentation](https://wiki.automotivelinux.org/agl-distro/developer_resources_intel)
diff --git a/templates/base/00_local.conf.agl.inc b/templates/base/00_local.conf.agl.inc
index b49c44df6..d55cbef4b 100644
--- a/templates/base/00_local.conf.agl.inc
+++ b/templates/base/00_local.conf.agl.inc
@@ -6,6 +6,3 @@ DISTRO = "poky-agl"
#see meta-agl/meta-agl-profile-core/conf/include/base-agl.inc
require conf/include/base-agl.inc
-
-#see meta-agl/meta-app-framework/conf/include/agl-appfw-smack.inc
-require conf/include/agl-appfw-smack.inc
diff --git a/templates/base/99_local.conf.inc b/templates/base/99_local.conf.inc
index c4f43998b..bbf1b2afa 100644
--- a/templates/base/99_local.conf.inc
+++ b/templates/base/99_local.conf.inc
@@ -4,7 +4,7 @@
# ARM 32bit 'medium' compiler (armv7thf instead of armv7ve)
# (only use for CPUs <= cortex-a9 / w/o virt extension - e.g. cortex-a8)
-# DISTRO_FEATURES_append = " agl-medium-arm-compiler"
+# AGL_FEATURES_append = " agl-medium-arm-compiler"
######################
diff --git a/templates/base/bblayers.conf.sample b/templates/base/bblayers.conf.sample
index 653f6dbe8..0dd28da03 100644
--- a/templates/base/bblayers.conf.sample
+++ b/templates/base/bblayers.conf.sample
@@ -24,27 +24,15 @@ YOCTO_LAYERS = " \
# with some automotive tools/libraries
#-----------------------------------------------------
AGL_CORE_LAYERS = " \
- ${METADIR}/meta-agl/meta-agl-profile-core \
- ${METADIR}/meta-agl/meta-agl-distro \
+ ${METADIR}/meta-agl/meta-agl-core \
+ ${METADIR}/meta-agl/meta-agl-core-test \
${METADIR}/meta-agl/meta-agl-bsp \
"
-AGL_APPFW_LAYERS = " \
- ${METADIR}/external/meta-security \
- ${METADIR}/external/meta-openembedded/meta-perl \
- ${METADIR}/meta-agl/meta-security \
- ${METADIR}/meta-agl/meta-app-framework \
- "
-
-
# These are the direct dependencies of the AGL CORE Layers
#---------------------------------------------------------
AGL_CORE_DEPENDENCY_LAYERS = " \
${METADIR}/external/meta-openembedded/meta-oe \
- ${METADIR}/external/meta-openembedded/meta-multimedia \
- ${METADIR}/external/meta-openembedded/meta-networking \
- ${METADIR}/external/meta-openembedded/meta-python \
- ${METADIR}/external/meta-openembedded/meta-filesystems \
"
####################
@@ -52,15 +40,13 @@ AGL_CORE_DEPENDENCY_LAYERS = " \
BBLAYERS ?= " \
${AGL_CORE_DEPENDENCY_LAYERS} \
${AGL_CORE_LAYERS} \
- ${AGL_APPFW_LAYERS} \
${YOCTO_LAYERS} \
"
BBLAYERS_NON_REMOVABLE ?= " \
${METADIR}/external/poky/meta \
${METADIR}/external/poky/meta-poky \
- ${METADIR}/meta-agl/meta-agl-profile-core \
- ${METADIR}/meta-agl/meta-agl-distro \
+ ${METADIR}/meta-agl/meta-agl-core \
"
diff --git a/templates/feature/agl-appfw-smack/50_bblayers.conf.inc b/templates/feature/agl-appfw-smack/50_bblayers.conf.inc
new file mode 100644
index 000000000..5f6847a87
--- /dev/null
+++ b/templates/feature/agl-appfw-smack/50_bblayers.conf.inc
@@ -0,0 +1,9 @@
+AGL_APPFW_LAYERS = " \
+ ${METADIR}/external/meta-security \
+ ${METADIR}/external/meta-openembedded/meta-python \
+ ${METADIR}/external/meta-openembedded/meta-networking \
+ ${METADIR}/external/meta-openembedded/meta-perl \
+ ${METADIR}/meta-agl/meta-app-framework \
+ "
+
+BBLAYERS =+ "${AGL_APPFW_LAYERS}" \ No newline at end of file
diff --git a/templates/feature/agl-appfw-smack/50_local.conf.inc b/templates/feature/agl-appfw-smack/50_local.conf.inc
index e69de29bb..8282a1cae 100644
--- a/templates/feature/agl-appfw-smack/50_local.conf.inc
+++ b/templates/feature/agl-appfw-smack/50_local.conf.inc
@@ -0,0 +1 @@
+require conf/include/agl-appfw-smack.inc
diff --git a/templates/feature/agl-hmi-framework/50_local.conf.inc b/templates/feature/agl-hmi-framework/50_local.conf.inc
index d251e183d..21fdf3abf 100644
--- a/templates/feature/agl-hmi-framework/50_local.conf.inc
+++ b/templates/feature/agl-hmi-framework/50_local.conf.inc
@@ -1,4 +1,4 @@
# In order to enable the hmi-framework features ,
# enables the following line:
#
-DISTRO_FEATURES_append = " agl-hmi-framework"
+AGL_FEATURES_append = " agl-hmi-framework"
diff --git a/templates/feature/agl-localdev/80_bblayers.conf.inc b/templates/feature/agl-localdev/80_bblayers.conf.inc
new file mode 100644
index 000000000..d9bb9d070
--- /dev/null
+++ b/templates/feature/agl-localdev/80_bblayers.conf.inc
@@ -0,0 +1,3 @@
+# Local derivations during development, just add a layer in the folder meta-localdev
+BBLAYERS =+ "${@'${METADIR}/meta-localdev' if os.path.exists('${METADIR}/meta-localdev') else ''}"
+
diff --git a/templates/feature/agl-localdev/80_local.conf.inc b/templates/feature/agl-localdev/80_local.conf.inc
new file mode 100644
index 000000000..6c9213512
--- /dev/null
+++ b/templates/feature/agl-localdev/80_local.conf.inc
@@ -0,0 +1,2 @@
+# (weak) include userspecific local.dev.inc
+include local.dev.inc
diff --git a/templates/feature/agl-localdev/README_feature_agl-localdev.md b/templates/feature/agl-localdev/README_feature_agl-localdev.md
new file mode 100644
index 000000000..111ae4ec0
--- /dev/null
+++ b/templates/feature/agl-localdev/README_feature_agl-localdev.md
@@ -0,0 +1,9 @@
+---
+description: enable local layer for development purposes
+authors: Stéphane Desneux <stephane.desneux@iot.bzh>
+---
+
+### Feature agl-localdev
+
+Adds a local layer named "meta-localdev" in meta directory and a local.dev.inc conf file if present.
+
diff --git a/templates/feature/agl-netboot/50_bblayers.conf.inc b/templates/feature/agl-netboot/50_bblayers.conf.inc
index 3d2ed6460..80ace82d4 100644
--- a/templates/feature/agl-netboot/50_bblayers.conf.inc
+++ b/templates/feature/agl-netboot/50_bblayers.conf.inc
@@ -1 +1,2 @@
-BBLAYERS =+ "${METADIR}/meta-agl/meta-netboot"
+BBLAYERS =+ " ${METADIR}/meta-agl/meta-netboot \
+ "
diff --git a/templates/feature/agl-profile-cluster-qt5/50_bblayers.conf.inc b/templates/feature/agl-profile-cluster-qt5/50_bblayers.conf.inc
deleted file mode 100644
index f1aef074d..000000000
--- a/templates/feature/agl-profile-cluster-qt5/50_bblayers.conf.inc
+++ /dev/null
@@ -1,3 +0,0 @@
-BBLAYERS =+ " \
- ${METADIR}/meta-agl/meta-agl-profile-cluster-qt5 \
-"
diff --git a/templates/feature/agl-profile-cluster-qt5/README_feature_agl-profile-cluster-qt5.md b/templates/feature/agl-profile-cluster-qt5/README_feature_agl-profile-cluster-qt5.md
deleted file mode 100644
index 095a8db18..000000000
--- a/templates/feature/agl-profile-cluster-qt5/README_feature_agl-profile-cluster-qt5.md
+++ /dev/null
@@ -1,15 +0,0 @@
----
-description: Feature agl-profile-cluster-qt5
-authors: Scott Murray <scott.murray@konsulko.com>
----
-
-### Feature agl-profile-cluster-qt5
-
-*Description is missing - please complete file meta-agl/templates/feature/agl-profile-cluster-qt5/README_feature_agl-profile-cluster-qt5.md*
-
-#### Dependent features pulled by agl-profile-cluster-qt5
-
-The following features are pulled:
-
-* agl-profile-graphical-qt5
-
diff --git a/templates/feature/agl-profile-cluster-qt5/included.dep b/templates/feature/agl-profile-cluster-qt5/included.dep
deleted file mode 100644
index 21b1fa6bc..000000000
--- a/templates/feature/agl-profile-cluster-qt5/included.dep
+++ /dev/null
@@ -1 +0,0 @@
-agl-profile-graphical-qt5
diff --git a/templates/feature/agl-profile-cluster/50_bblayers.conf.inc b/templates/feature/agl-profile-cluster/50_bblayers.conf.inc
deleted file mode 100644
index b430dc7db..000000000
--- a/templates/feature/agl-profile-cluster/50_bblayers.conf.inc
+++ /dev/null
@@ -1,3 +0,0 @@
-BBLAYERS =+ " \
- ${METADIR}/meta-agl/meta-agl-profile-cluster \
-"
diff --git a/templates/feature/agl-profile-cluster/README_feature_agl-profile-cluster.md b/templates/feature/agl-profile-cluster/README_feature_agl-profile-cluster.md
deleted file mode 100644
index 544dc7c8e..000000000
--- a/templates/feature/agl-profile-cluster/README_feature_agl-profile-cluster.md
+++ /dev/null
@@ -1,15 +0,0 @@
----
-description: Feature agl-profile-cluster
-authors: Scott Murray <scott.murray@konsulko.com>
----
-
-### Feature agl-profile-cluster
-
-*Description is missing - please complete file meta-agl/templates/feature/agl-profile-cluster/README_feature_agl-profile-cluster.md*
-
-#### Dependent features pulled by agl-profile-cluster
-
-The following features are pulled:
-
-* agl-profile-graphical
-
diff --git a/templates/feature/agl-profile-cluster/included.dep b/templates/feature/agl-profile-cluster/included.dep
deleted file mode 100644
index 032609b8a..000000000
--- a/templates/feature/agl-profile-cluster/included.dep
+++ /dev/null
@@ -1 +0,0 @@
-agl-profile-graphical
diff --git a/templates/feature/agl-profile-graphical-html5/50_bblayers.conf.inc b/templates/feature/agl-profile-graphical-html5/50_bblayers.conf.inc
deleted file mode 100644
index a35f93fb5..000000000
--- a/templates/feature/agl-profile-graphical-html5/50_bblayers.conf.inc
+++ /dev/null
@@ -1,6 +0,0 @@
-
-BBLAYERS =+ " \
- ${METADIR}/meta-agl/meta-agl-profile-graphical-html5 \
- ${METADIR}/external/meta-python2 \
- "
-
diff --git a/templates/feature/agl-profile-graphical-html5/50_local.conf.inc b/templates/feature/agl-profile-graphical-html5/50_local.conf.inc
deleted file mode 100644
index 0b2d70028..000000000
--- a/templates/feature/agl-profile-graphical-html5/50_local.conf.inc
+++ /dev/null
@@ -1,3 +0,0 @@
-
-IMAGE_INSTALL_append = " packagegroup-agl-profile-graphical-html5"
-
diff --git a/templates/feature/agl-profile-graphical-html5/README_feature_agl-profile-graphical-html5.md b/templates/feature/agl-profile-graphical-html5/README_feature_agl-profile-graphical-html5.md
deleted file mode 100644
index dc00f94c2..000000000
--- a/templates/feature/agl-profile-graphical-html5/README_feature_agl-profile-graphical-html5.md
+++ /dev/null
@@ -1,8 +0,0 @@
----
-description: Feature agl-profile-graphical-html5
-authors: Jacobo Aragunde Pérez <jaragunde@igalia.com>
----
-
-### Feature agl-profile-graphical-html5
-
-Packages required to run web applications in AGL. The provided image agl-image-graphical-html5 includes the minimum set of packages required for this purpose.
diff --git a/templates/feature/agl-profile-graphical-html5/included.dep b/templates/feature/agl-profile-graphical-html5/included.dep
deleted file mode 100644
index 032609b8a..000000000
--- a/templates/feature/agl-profile-graphical-html5/included.dep
+++ /dev/null
@@ -1 +0,0 @@
-agl-profile-graphical
diff --git a/templates/feature/agl-profile-graphical-qt5/50_bblayers.conf.inc b/templates/feature/agl-profile-graphical-qt5/50_bblayers.conf.inc
deleted file mode 100644
index 960267908..000000000
--- a/templates/feature/agl-profile-graphical-qt5/50_bblayers.conf.inc
+++ /dev/null
@@ -1,9 +0,0 @@
-BBLAYERS =+ " \
- ${METADIR}/meta-agl/meta-agl-profile-graphical-qt5 \
-"
-
-# These are the dependencies
-#---------------------------
-BBLAYERS =+ " \
- ${METADIR}/external/meta-qt5 \
-"
diff --git a/templates/feature/agl-profile-graphical-qt5/README_feature_agl-profile-graphical-qt5.md b/templates/feature/agl-profile-graphical-qt5/README_feature_agl-profile-graphical-qt5.md
deleted file mode 100644
index 387de2ca4..000000000
--- a/templates/feature/agl-profile-graphical-qt5/README_feature_agl-profile-graphical-qt5.md
+++ /dev/null
@@ -1,15 +0,0 @@
----
-description: Feature agl-profile-graphical-qt5
-authors: Jan-Simon Möller <jsmoeller@linuxfoundation.org>
----
-
-### Feature agl-profile-graphical-qt5
-
-*Description is missing - please complete file meta-agl/templates/feature/agl-profile-graphical-qt5/README_feature_agl-profile-graphical-qt5.md*
-
-#### Dependent features pulled by agl-profile-graphical-qt5
-
-The following features are pulled:
-
-* agl-profile-graphical
-
diff --git a/templates/feature/agl-profile-graphical-qt5/included.dep b/templates/feature/agl-profile-graphical-qt5/included.dep
deleted file mode 100644
index 5b54430da..000000000
--- a/templates/feature/agl-profile-graphical-qt5/included.dep
+++ /dev/null
@@ -1 +0,0 @@
-agl-profile-graphical \ No newline at end of file
diff --git a/templates/feature/agl-profile-graphical/50_bblayers.conf.inc b/templates/feature/agl-profile-graphical/50_bblayers.conf.inc
deleted file mode 100644
index 44b0885dc..000000000
--- a/templates/feature/agl-profile-graphical/50_bblayers.conf.inc
+++ /dev/null
@@ -1,3 +0,0 @@
-BBLAYERS =+ " \
- ${METADIR}/meta-agl/meta-agl-profile-graphical \
-"
diff --git a/templates/feature/agl-profile-graphical/README_feature_agl-profile-graphical.md b/templates/feature/agl-profile-graphical/README_feature_agl-profile-graphical.md
deleted file mode 100644
index 594d047e7..000000000
--- a/templates/feature/agl-profile-graphical/README_feature_agl-profile-graphical.md
+++ /dev/null
@@ -1,9 +0,0 @@
----
-description: Feature agl-profile-graphical
-authors: Jan-Simon Möller <jsmoeller@linuxfoundation.org>
----
-
-### Feature agl-profile-graphical
-
-*Description is missing - please complete file meta-agl/templates/feature/agl-profile-graphical/README_feature_agl-profile-graphical.md*
-
diff --git a/templates/feature/agl-profile-hud/50_bblayers.conf.inc b/templates/feature/agl-profile-hud/50_bblayers.conf.inc
deleted file mode 100644
index 047383710..000000000
--- a/templates/feature/agl-profile-hud/50_bblayers.conf.inc
+++ /dev/null
@@ -1,3 +0,0 @@
-BBLAYERS =+ " \
- ${METADIR}/meta-agl/meta-agl-profile-hud \
-"
diff --git a/templates/feature/agl-profile-hud/README_feature_agl-profile-hud.md b/templates/feature/agl-profile-hud/README_feature_agl-profile-hud.md
deleted file mode 100644
index b4387c129..000000000
--- a/templates/feature/agl-profile-hud/README_feature_agl-profile-hud.md
+++ /dev/null
@@ -1,9 +0,0 @@
----
-description: Feature agl-profile-hud
-authors: Jan-Simon Möller <jsmoeller@linuxfoundation.org>
----
-
-### Feature agl-profile-hud
-
-*Description is missing - please complete file meta-agl/templates/feature/agl-profile-hud/README_feature_agl-profile-hud.md*
-
diff --git a/templates/feature/agl-profile-telematics/50_bblayers.conf.inc b/templates/feature/agl-profile-telematics/50_bblayers.conf.inc
deleted file mode 100644
index 874b438f0..000000000
--- a/templates/feature/agl-profile-telematics/50_bblayers.conf.inc
+++ /dev/null
@@ -1,3 +0,0 @@
-BBLAYERS =+ " \
- ${METADIR}/meta-agl/meta-agl-profile-telematics \
-"
diff --git a/templates/feature/agl-profile-telematics/README_feature_agl-profile-telematics.md b/templates/feature/agl-profile-telematics/README_feature_agl-profile-telematics.md
deleted file mode 100644
index 6abcd5d24..000000000
--- a/templates/feature/agl-profile-telematics/README_feature_agl-profile-telematics.md
+++ /dev/null
@@ -1,9 +0,0 @@
----
-description: Feature agl-profile-telematics
-authors: Jan-Simon Möller <jsmoeller@linuxfoundation.org>
----
-
-### Feature agl-profile-telematics
-
-*Description is missing - please complete file meta-agl/templates/feature/agl-profile-telematics/README_feature_agl-profile-telematics.md*
-
diff --git a/templates/feature/agl-weston-remoting/included.dep b/templates/feature/agl-weston-remoting/included.dep
index 032609b8a..82639da07 100644
--- a/templates/feature/agl-weston-remoting/included.dep
+++ b/templates/feature/agl-weston-remoting/included.dep
@@ -1 +1 @@
-agl-profile-graphical
+agl-demo