============================================================
Notices for file(s):
emulator
emulator-check
bin64/fsck.ext4
bin64/mkfs.ext4
bin64/tune2fs
bin64/resize2fs
bin64/e2fsck
qemu/darwin-x86_64/qemu-upstream-armel
qemu/darwin-x86_64/qemu-system-aarch64
qemu/darwin-x86_64/qemu-system-i386
qemu/darwin-x86_64/qemu-upstream-aarch64
qemu/darwin-x86_64/qemu-upstream-x86_64
qemu/darwin-x86_64/qemu-system-x86_64
qemu/darwin-x86_64/qemu-system-armel
qemu/darwin-x86_64/qemu-upstream-i386
qemu/darwin-x86_64/qemu-system-x86_64.dSYM/Contents/Info.plist
qemu/darwin-x86_64/qemu-system-x86_64.dSYM/Contents/Resources/DWARF/qemu-system-x86_64
qemu/darwin-x86_64/qemu-upstream-x86_64.dSYM/Contents/Info.plist
qemu/darwin-x86_64/qemu-upstream-x86_64.dSYM/Contents/Resources/DWARF/qemu-upstream-x86_64
qemu/darwin-x86_64/qemu-system-armel.dSYM/Contents/Info.plist
qemu/darwin-x86_64/qemu-system-armel.dSYM/Contents/Resources/DWARF/qemu-system-armel
qemu/darwin-x86_64/qemu-system-i386.dSYM/Contents/Info.plist
qemu/darwin-x86_64/qemu-system-i386.dSYM/Contents/Resources/DWARF/qemu-system-i386
qemu/darwin-x86_64/qemu-upstream-armel.dSYM/Contents/Info.plist
qemu/darwin-x86_64/qemu-upstream-armel.dSYM/Contents/Resources/DWARF/qemu-upstream-armel
qemu/darwin-x86_64/qemu-upstream-aarch64.dSYM/Contents/Info.plist
qemu/darwin-x86_64/qemu-upstream-aarch64.dSYM/Contents/Resources/DWARF/qemu-upstream-aarch64
qemu/darwin-x86_64/qemu-upstream-i386.dSYM/Contents/Info.plist
qemu/darwin-x86_64/qemu-upstream-i386.dSYM/Contents/Resources/DWARF/qemu-upstream-i386
qemu/darwin-x86_64/qemu-system-aarch64.dSYM/Contents/Info.plist
qemu/darwin-x86_64/qemu-system-aarch64.dSYM/Contents/Resources/DWARF/qemu-system-aarch64
lib/pc-bios/kvmvapic.bin
lib/pc-bios/keymaps/sl
lib/pc-bios/keymaps/pl
lib/pc-bios/keymaps/modifiers
lib/pc-bios/keymaps/sv
lib/pc-bios/keymaps/da
lib/pc-bios/keymaps/no
lib/pc-bios/keymaps/Makefile
lib/pc-bios/keymaps/ja
lib/pc-bios/keymaps/lv
lib/pc-bios/keymaps/it
lib/pc-bios/keymaps/is
lib/pc-bios/keymaps/cz
lib/pc-bios/keymaps/ru
lib/pc-bios/keymaps/en-gb
lib/pc-bios/keymaps/bepo
lib/pc-bios/keymaps/common
lib/pc-bios/keymaps/pt
lib/pc-bios/keymaps/fr-ch
lib/pc-bios/keymaps/fr-ca
lib/pc-bios/keymaps/mk
lib/pc-bios/keymaps/ar
lib/pc-bios/keymaps/hr
lib/pc-bios/keymaps/pt-br
lib/pc-bios/keymaps/hu
lib/pc-bios/keymaps/nl
lib/pc-bios/keymaps/de
lib/pc-bios/keymaps/fi
lib/pc-bios/keymaps/fr
lib/pc-bios/keymaps/es
lib/pc-bios/keymaps/et
lib/pc-bios/keymaps/lt
lib/pc-bios/keymaps/fo
lib/pc-bios/keymaps/en-us
lib/pc-bios/keymaps/de-ch
lib/pc-bios/keymaps/th
lib/pc-bios/keymaps/nl-be
lib/pc-bios/keymaps/fr-be
lib/pc-bios/keymaps/tr
lib/pc-bios/bios.bin
lib/pc-bios/vgabios-virtio.bin
lib/pc-bios/bios-256k.bin
lib/pc-bios/linuxboot_dma.bin
lib/pc-bios/linuxboot.bin
lib/pc-bios/efi-virtio.rom
lib/pc-bios/vgabios-cirrus.bin
lib/advancedFeaturesCanary.ini
lib/emu-original-feature-flags.protobuf
lib/advancedFeatures.ini
lib/ca-bundle.pem
lib64/lib64EGL_translator.dylib
lib64/libEGL_emulation.dylib
lib64/libOpenglSystemCommon.dylib
lib64/libcutils.dylib
lib64/android-emu-shared.dylib
lib64/libOpenglCodecCommon_host.dylib
lib64/gralloc.ranchu.dylib
lib64/lib_renderControl_enc.dylib
lib64/qt/plugins/platforms/libqoffscreen.dylib
lib64/qt/plugins/platforms/libqminimal.dylib
lib64/qt/plugins/platforms/libqcocoa.dylib
lib64/qt/plugins/printsupport/libcocoaprintersupport.dylib
lib64/qt/plugins/bearer/libqcorewlanbearer.dylib
lib64/qt/plugins/bearer/libqgenericbearer.dylib
lib64/qt/plugins/iconengines/libqsvgicon.dylib
lib64/qt/plugins/sqldrivers/libqsqlite.dylib
lib64/qt/plugins/imageformats/libqgif.dylib
lib64/qt/plugins/imageformats/libqwbmp.dylib
lib64/qt/plugins/imageformats/libqwebp.dylib
lib64/qt/plugins/imageformats/libqdds.dylib
lib64/qt/plugins/imageformats/libqico.dylib
lib64/qt/plugins/imageformats/libqjpeg.dylib
lib64/qt/plugins/imageformats/libqtiff.dylib
lib64/qt/plugins/imageformats/libqsvg.dylib
lib64/qt/plugins/imageformats/libqicns.dylib
lib64/qt/plugins/imageformats/libqtga.dylib
lib64/qt/plugins/imageformats/libqmacjp2.dylib
lib64/qt/plugins/generic/libqtuiotouchplugin.dylib
lib64/qt/lib/libQt5Network.5.dylib
lib64/qt/lib/libQt5Network.dylib
lib64/qt/lib/libQt5Test.dylib
lib64/qt/lib/libQt5Xml.dylib
lib64/qt/lib/libQt5OpenGL.dylib
lib64/qt/lib/libQt5Sql.dylib
lib64/qt/lib/libQt5Concurrent.5.7.dylib
lib64/qt/lib/libQt5Gui.dylib
lib64/qt/lib/libQt5Xml.5.7.0.dylib
lib64/qt/lib/libQt5PrintSupport.5.dylib
lib64/qt/lib/libQt5Concurrent.dylib
lib64/qt/lib/libQt5PrintSupport.5.7.0.dylib
lib64/qt/lib/libQt5DBus.5.dylib
lib64/qt/lib/libQt5Gui.5.7.dylib
lib64/qt/lib/libQt5OpenGL.5.7.dylib
lib64/qt/lib/libQt5Svg.dylib
lib64/qt/lib/libQt5Xml.5.dylib
lib64/qt/lib/libQt5PrintSupport.5.7.dylib
lib64/qt/lib/libQt5Gui.5.7.0.dylib
lib64/qt/lib/libQt5Core.5.7.dylib
lib64/qt/lib/libQt5Xml.5.7.dylib
lib64/qt/lib/libQt5Sql.5.7.0.dylib
lib64/qt/lib/libQt5DBus.5.7.0.dylib
lib64/qt/lib/libQt5Gui.5.dylib
lib64/qt/lib/libQt5Widgets.5.dylib
lib64/qt/lib/libQt5Core.dylib
lib64/qt/lib/libQt5Test.5.7.dylib
lib64/qt/lib/libQt5Svg.5.7.dylib
lib64/qt/lib/libQt5Svg.5.7.0.dylib
lib64/qt/lib/libQt5Network.5.7.0.dylib
lib64/qt/lib/libQt5OpenGL.5.dylib
lib64/qt/lib/libQt5Widgets.dylib
lib64/qt/lib/libQt5Concurrent.5.7.0.dylib
lib64/qt/lib/libQt5DBus.dylib
lib64/qt/lib/libQt5Core.5.dylib
lib64/qt/lib/libQt5Test.5.7.0.dylib
lib64/qt/lib/libQt5OpenGL.5.7.0.dylib
lib64/qt/lib/libQt5Core.5.7.0.dylib
lib64/qt/lib/libQt5PrintSupport.dylib
lib64/qt/lib/libQt5Network.5.7.dylib
lib64/qt/lib/libQt5Sql.5.7.dylib
lib64/qt/lib/libQt5Widgets.5.7.dylib
lib64/qt/lib/libQt5Sql.5.dylib
lib64/qt/lib/libQt5Widgets.5.7.0.dylib
lib64/qt/lib/libQt5DBus.5.7.dylib
lib64/qt/lib/libQt5Concurrent.5.dylib
lib64/qt/lib/libQt5Svg.5.dylib
lib64/qt/lib/libQt5Test.5.dylib
lib64/gles_swiftshader/libGLES_CM.dylib
lib64/gles_swiftshader/libEGL.dylib
lib64/gles_swiftshader/libGLESv2.dylib
lib64/libGLESv1_enc.dylib
lib64/lib64OpenglRender.dylib
lib64/lib64GLES_V2_translator.dylib
lib64/lib64GLES_CM_translator.dylib
lib64/vulkan/libMoltenVK.dylib
lib64/vulkan/MoltenVK_icd.json
lib64/vulkan/libvulkan.dylib
lib64/libutils.dylib
lib64/libGLESv2_enc.dylib
lib64/libGLESv2_emulation.dylib
lib64/gralloc.goldfish.dylib
lib64/libGLESv1_CM_emulation.dylib
lib64/lib64GLES12Translator.dylib
lib64/lib64emugl_test_shared_library.dylib
lib64/liblog.dylib
lib64/libOpenglCodecCommon_host.dylib.dSYM/Contents/Info.plist
lib64/libOpenglCodecCommon_host.dylib.dSYM/Contents/Resources/DWARF/libOpenglCodecCommon_host.dylib
lib64/lib64GLES_CM_translator.dylib.dSYM/Contents/Info.plist
lib64/lib64GLES_CM_translator.dylib.dSYM/Contents/Resources/DWARF/lib64GLES_CM_translator.dylib
lib64/libcutils.dylib.dSYM/Contents/Info.plist
lib64/libcutils.dylib.dSYM/Contents/Resources/DWARF/libcutils.dylib
lib64/lib_renderControl_enc.dylib.dSYM/Contents/Info.plist
lib64/lib_renderControl_enc.dylib.dSYM/Contents/Resources/DWARF/lib_renderControl_enc.dylib
lib64/gralloc.ranchu.dylib.dSYM/Contents/Info.plist
lib64/gralloc.ranchu.dylib.dSYM/Contents/Resources/DWARF/gralloc.ranchu.dylib
lib64/libutils.dylib.dSYM/Contents/Info.plist
lib64/libutils.dylib.dSYM/Contents/Resources/DWARF/libutils.dylib
lib64/liblog.dylib.dSYM/Contents/Info.plist
lib64/liblog.dylib.dSYM/Contents/Resources/DWARF/liblog.dylib
lib64/libGLESv1_CM_emulation.dylib.dSYM/Contents/Info.plist
lib64/libGLESv1_CM_emulation.dylib.dSYM/Contents/Resources/DWARF/libGLESv1_CM_emulation.dylib
lib64/qt/plugins/platforms/libqcocoa.dylib.dSYM/Contents/Info.plist
lib64/qt/plugins/platforms/libqcocoa.dylib.dSYM/Contents/Resources/DWARF/libqcocoa.dylib
lib64/qt/plugins/platforms/libqminimal.dylib.dSYM/Contents/Info.plist
lib64/qt/plugins/platforms/libqminimal.dylib.dSYM/Contents/Resources/DWARF/libqminimal.dylib
lib64/qt/plugins/platforms/libqoffscreen.dylib.dSYM/Contents/Info.plist
lib64/qt/plugins/platforms/libqoffscreen.dylib.dSYM/Contents/Resources/DWARF/libqoffscreen.dylib
lib64/qt/plugins/printsupport/libcocoaprintersupport.dylib.dSYM/Contents/Info.plist
lib64/qt/plugins/printsupport/libcocoaprintersupport.dylib.dSYM/Contents/Resources/DWARF/libcocoaprintersupport.dylib
lib64/qt/plugins/bearer/libqcorewlanbearer.dylib.dSYM/Contents/Info.plist
lib64/qt/plugins/bearer/libqcorewlanbearer.dylib.dSYM/Contents/Resources/DWARF/libqcorewlanbearer.dylib
lib64/qt/plugins/bearer/libqgenericbearer.dylib.dSYM/Contents/Info.plist
lib64/qt/plugins/bearer/libqgenericbearer.dylib.dSYM/Contents/Resources/DWARF/libqgenericbearer.dylib
lib64/qt/plugins/iconengines/libqsvgicon.dylib.dSYM/Contents/Info.plist
lib64/qt/plugins/iconengines/libqsvgicon.dylib.dSYM/Contents/Resources/DWARF/libqsvgicon.dylib
lib64/qt/plugins/sqldrivers/libqsqlite.dylib.dSYM/Contents/Info.plist
lib64/qt/plugins/sqldrivers/libqsqlite.dylib.dSYM/Contents/Resources/DWARF/libqsqlite.dylib
lib64/qt/plugins/imageformats/libqicns.dylib.dSYM/Contents/Info.plist
lib64/qt/plugins/imageformats/libqicns.dylib.dSYM/Contents/Resources/DWARF/libqicns.dylib
lib64/qt/plugins/imageformats/libqdds.dylib.dSYM/Contents/Info.plist
lib64/qt/plugins/imageformats/libqdds.dylib.dSYM/Contents/Resources/DWARF/libqdds.dylib
lib64/qt/plugins/imageformats/libqwbmp.dylib.dSYM/Contents/Info.plist
lib64/qt/plugins/imageformats/libqwbmp.dylib.dSYM/Contents/Resources/DWARF/libqwbmp.dylib
lib64/qt/plugins/imageformats/libqtga.dylib.dSYM/Contents/Info.plist
lib64/qt/plugins/imageformats/libqtga.dylib.dSYM/Contents/Resources/DWARF/libqtga.dylib
lib64/qt/plugins/imageformats/libqsvg.dylib.dSYM/Contents/Info.plist
lib64/qt/plugins/imageformats/libqsvg.dylib.dSYM/Contents/Resources/DWARF/libqsvg.dylib
lib64/qt/plugins/imageformats/libqwebp.dylib.dSYM/Contents/Info.plist
lib64/qt/plugins/imageformats/libqwebp.dylib.dSYM/Contents/Resources/DWARF/libqwebp.dylib
lib64/qt/plugins/imageformats/libqmacjp2.dylib.dSYM/Contents/Info.plist
lib64/qt/plugins/imageformats/libqmacjp2.dylib.dSYM/Contents/Resources/DWARF/libqmacjp2.dylib
lib64/qt/plugins/imageformats/libqgif.dylib.dSYM/Contents/Info.plist
lib64/qt/plugins/imageformats/libqgif.dylib.dSYM/Contents/Resources/DWARF/libqgif.dylib
lib64/qt/plugins/imageformats/libqtiff.dylib.dSYM/Contents/Info.plist
lib64/qt/plugins/imageformats/libqtiff.dylib.dSYM/Contents/Resources/DWARF/libqtiff.dylib
lib64/qt/plugins/imageformats/libqjpeg.dylib.dSYM/Contents/Info.plist
lib64/qt/plugins/imageformats/libqjpeg.dylib.dSYM/Contents/Resources/DWARF/libqjpeg.dylib
lib64/qt/plugins/imageformats/libqico.dylib.dSYM/Contents/Info.plist
lib64/qt/plugins/imageformats/libqico.dylib.dSYM/Contents/Resources/DWARF/libqico.dylib
lib64/qt/plugins/generic/libqtuiotouchplugin.dylib.dSYM/Contents/Info.plist
lib64/qt/plugins/generic/libqtuiotouchplugin.dylib.dSYM/Contents/Resources/DWARF/libqtuiotouchplugin.dylib
lib64/qt/lib/libQt5OpenGL.dylib.dSYM/Contents/Info.plist
lib64/qt/lib/libQt5OpenGL.dylib.dSYM/Contents/Resources/DWARF/libQt5OpenGL.5.7.0.dylib
lib64/qt/lib/libQt5Concurrent.5.7.0.dylib.dSYM/Contents/Info.plist
lib64/qt/lib/libQt5Concurrent.5.7.0.dylib.dSYM/Contents/Resources/DWARF/libQt5Concurrent.5.7.0.dylib
lib64/qt/lib/libQt5Xml.5.7.dylib.dSYM/Contents/Info.plist
lib64/qt/lib/libQt5Xml.5.7.dylib.dSYM/Contents/Resources/DWARF/libQt5Xml.5.7.0.dylib
lib64/qt/lib/libQt5Test.5.dylib.dSYM/Contents/Info.plist
lib64/qt/lib/libQt5Test.5.dylib.dSYM/Contents/Resources/DWARF/libQt5Test.5.7.0.dylib
lib64/qt/lib/libQt5Test.dylib.dSYM/Contents/Info.plist
lib64/qt/lib/libQt5Test.dylib.dSYM/Contents/Resources/DWARF/libQt5Test.5.7.0.dylib
lib64/qt/lib/libQt5PrintSupport.5.dylib.dSYM/Contents/Info.plist
lib64/qt/lib/libQt5PrintSupport.5.dylib.dSYM/Contents/Resources/DWARF/libQt5PrintSupport.5.7.0.dylib
lib64/qt/lib/libQt5Svg.5.7.dylib.dSYM/Contents/Info.plist
lib64/qt/lib/libQt5Svg.5.7.dylib.dSYM/Contents/Resources/DWARF/libQt5Svg.5.7.0.dylib
lib64/qt/lib/libQt5Network.dylib.dSYM/Contents/Info.plist
lib64/qt/lib/libQt5Network.dylib.dSYM/Contents/Resources/DWARF/libQt5Network.5.7.0.dylib
lib64/qt/lib/libQt5Network.5.7.0.dylib.dSYM/Contents/Info.plist
lib64/qt/lib/libQt5Network.5.7.0.dylib.dSYM/Contents/Resources/DWARF/libQt5Network.5.7.0.dylib
lib64/qt/lib/libQt5OpenGL.5.7.dylib.dSYM/Contents/Info.plist
lib64/qt/lib/libQt5OpenGL.5.7.dylib.dSYM/Contents/Resources/DWARF/libQt5OpenGL.5.7.0.dylib
lib64/qt/lib/libQt5PrintSupport.5.7.dylib.dSYM/Contents/Info.plist
lib64/qt/lib/libQt5PrintSupport.5.7.dylib.dSYM/Contents/Resources/DWARF/libQt5PrintSupport.5.7.0.dylib
lib64/qt/lib/libQt5Svg.5.dylib.dSYM/Contents/Info.plist
lib64/qt/lib/libQt5Svg.5.dylib.dSYM/Contents/Resources/DWARF/libQt5Svg.5.7.0.dylib
lib64/qt/lib/libQt5Network.5.dylib.dSYM/Contents/Info.plist
lib64/qt/lib/libQt5Network.5.dylib.dSYM/Contents/Resources/DWARF/libQt5Network.5.7.0.dylib
lib64/qt/lib/libQt5Xml.5.dylib.dSYM/Contents/Info.plist
lib64/qt/lib/libQt5Xml.5.dylib.dSYM/Contents/Resources/DWARF/libQt5Xml.5.7.0.dylib
lib64/qt/lib/libQt5PrintSupport.dylib.dSYM/Contents/Info.plist
lib64/qt/lib/libQt5PrintSupport.dylib.dSYM/Contents/Resources/DWARF/libQt5PrintSupport.5.7.0.dylib
lib64/qt/lib/libQt5Gui.5.dylib.dSYM/Contents/Info.plist
lib64/qt/lib/libQt5Gui.5.dylib.dSYM/Contents/Resources/DWARF/libQt5Gui.5.7.0.dylib
lib64/qt/lib/libQt5Core.dylib.dSYM/Contents/Info.plist
lib64/qt/lib/libQt5Core.dylib.dSYM/Contents/Resources/DWARF/libQt5Core.5.7.0.dylib
lib64/qt/lib/libQt5DBus.5.7.dylib.dSYM/Contents/Info.plist
lib64/qt/lib/libQt5DBus.5.7.dylib.dSYM/Contents/Resources/DWARF/libQt5DBus.5.7.0.dylib
lib64/qt/lib/libQt5Sql.5.dylib.dSYM/Contents/Info.plist
lib64/qt/lib/libQt5Sql.5.dylib.dSYM/Contents/Resources/DWARF/libQt5Sql.5.7.0.dylib
lib64/qt/lib/libQt5Sql.5.7.dylib.dSYM/Contents/Info.plist
lib64/qt/lib/libQt5Sql.5.7.dylib.dSYM/Contents/Resources/DWARF/libQt5Sql.5.7.0.dylib
lib64/qt/lib/libQt5OpenGL.5.dylib.dSYM/Contents/Info.plist
lib64/qt/lib/libQt5OpenGL.5.dylib.dSYM/Contents/Resources/DWARF/libQt5OpenGL.5.7.0.dylib
lib64/qt/lib/libQt5DBus.5.dylib.dSYM/Contents/Info.plist
lib64/qt/lib/libQt5DBus.5.dylib.dSYM/Contents/Resources/DWARF/libQt5DBus.5.7.0.dylib
lib64/qt/lib/libQt5Gui.dylib.dSYM/Contents/Info.plist
lib64/qt/lib/libQt5Gui.dylib.dSYM/Contents/Resources/DWARF/libQt5Gui.5.7.0.dylib
lib64/qt/lib/libQt5DBus.dylib.dSYM/Contents/Info.plist
lib64/qt/lib/libQt5DBus.dylib.dSYM/Contents/Resources/DWARF/libQt5DBus.5.7.0.dylib
lib64/qt/lib/libQt5Test.5.7.0.dylib.dSYM/Contents/Info.plist
lib64/qt/lib/libQt5Test.5.7.0.dylib.dSYM/Contents/Resources/DWARF/libQt5Test.5.7.0.dylib
lib64/qt/lib/libQt5Core.5.7.0.dylib.dSYM/Contents/Info.plist
lib64/qt/lib/libQt5Core.5.7.0.dylib.dSYM/Contents/Resources/DWARF/libQt5Core.5.7.0.dylib
lib64/qt/lib/libQt5Widgets.5.7.dylib.dSYM/Contents/Info.plist
lib64/qt/lib/libQt5Widgets.5.7.dylib.dSYM/Contents/Resources/DWARF/libQt5Widgets.5.7.0.dylib
lib64/qt/lib/libQt5Sql.dylib.dSYM/Contents/Info.plist
lib64/qt/lib/libQt5Sql.dylib.dSYM/Contents/Resources/DWARF/libQt5Sql.5.7.0.dylib
lib64/qt/lib/libQt5Widgets.dylib.dSYM/Contents/Info.plist
lib64/qt/lib/libQt5Widgets.dylib.dSYM/Contents/Resources/DWARF/libQt5Widgets.5.7.0.dylib
lib64/qt/lib/libQt5Test.5.7.dylib.dSYM/Contents/Info.plist
lib64/qt/lib/libQt5Test.5.7.dylib.dSYM/Contents/Resources/DWARF/libQt5Test.5.7.0.dylib
lib64/qt/lib/libQt5Concurrent.5.7.dylib.dSYM/Contents/Info.plist
lib64/qt/lib/libQt5Concurrent.5.7.dylib.dSYM/Contents/Resources/DWARF/libQt5Concurrent.5.7.0.dylib
lib64/qt/lib/libQt5Widgets.5.dylib.dSYM/Contents/Info.plist
lib64/qt/lib/libQt5Widgets.5.dylib.dSYM/Contents/Resources/DWARF/libQt5Widgets.5.7.0.dylib
lib64/qt/lib/libQt5Sql.5.7.0.dylib.dSYM/Contents/Info.plist
lib64/qt/lib/libQt5Sql.5.7.0.dylib.dSYM/Contents/Resources/DWARF/libQt5Sql.5.7.0.dylib
lib64/qt/lib/libQt5Widgets.5.7.0.dylib.dSYM/Contents/Info.plist
lib64/qt/lib/libQt5Widgets.5.7.0.dylib.dSYM/Contents/Resources/DWARF/libQt5Widgets.5.7.0.dylib
lib64/qt/lib/libQt5Xml.5.7.0.dylib.dSYM/Contents/Info.plist
lib64/qt/lib/libQt5Xml.5.7.0.dylib.dSYM/Contents/Resources/DWARF/libQt5Xml.5.7.0.dylib
lib64/qt/lib/libQt5Gui.5.7.dylib.dSYM/Contents/Info.plist
lib64/qt/lib/libQt5Gui.5.7.dylib.dSYM/Contents/Resources/DWARF/libQt5Gui.5.7.0.dylib
lib64/qt/lib/libQt5Svg.dylib.dSYM/Contents/Info.plist
lib64/qt/lib/libQt5Svg.dylib.dSYM/Contents/Resources/DWARF/libQt5Svg.5.7.0.dylib
lib64/qt/lib/libQt5Xml.dylib.dSYM/Contents/Info.plist
lib64/qt/lib/libQt5Xml.dylib.dSYM/Contents/Resources/DWARF/libQt5Xml.5.7.0.dylib
lib64/qt/lib/libQt5Concurrent.5.dylib.dSYM/Contents/Info.plist
lib64/qt/lib/libQt5Concurrent.5.dylib.dSYM/Contents/Resources/DWARF/libQt5Concurrent.5.7.0.dylib
lib64/qt/lib/libQt5PrintSupport.5.7.0.dylib.dSYM/Contents/Info.plist
lib64/qt/lib/libQt5PrintSupport.5.7.0.dylib.dSYM/Contents/Resources/DWARF/libQt5PrintSupport.5.7.0.dylib
lib64/qt/lib/libQt5Core.5.7.dylib.dSYM/Contents/Info.plist
lib64/qt/lib/libQt5Core.5.7.dylib.dSYM/Contents/Resources/DWARF/libQt5Core.5.7.0.dylib
lib64/qt/lib/libQt5Concurrent.dylib.dSYM/Contents/Info.plist
lib64/qt/lib/libQt5Concurrent.dylib.dSYM/Contents/Resources/DWARF/libQt5Concurrent.5.7.0.dylib
lib64/qt/lib/libQt5Svg.5.7.0.dylib.dSYM/Contents/Info.plist
lib64/qt/lib/libQt5Svg.5.7.0.dylib.dSYM/Contents/Resources/DWARF/libQt5Svg.5.7.0.dylib
lib64/qt/lib/libQt5OpenGL.5.7.0.dylib.dSYM/Contents/Info.plist
lib64/qt/lib/libQt5OpenGL.5.7.0.dylib.dSYM/Contents/Resources/DWARF/libQt5OpenGL.5.7.0.dylib
lib64/qt/lib/libQt5Gui.5.7.0.dylib.dSYM/Contents/Info.plist
lib64/qt/lib/libQt5Gui.5.7.0.dylib.dSYM/Contents/Resources/DWARF/libQt5Gui.5.7.0.dylib
lib64/qt/lib/libQt5Network.5.7.dylib.dSYM/Contents/Info.plist
lib64/qt/lib/libQt5Network.5.7.dylib.dSYM/Contents/Resources/DWARF/libQt5Network.5.7.0.dylib
lib64/qt/lib/libQt5Core.5.dylib.dSYM/Contents/Info.plist
lib64/qt/lib/libQt5Core.5.dylib.dSYM/Contents/Resources/DWARF/libQt5Core.5.7.0.dylib
lib64/qt/lib/libQt5DBus.5.7.0.dylib.dSYM/Contents/Info.plist
lib64/qt/lib/libQt5DBus.5.7.0.dylib.dSYM/Contents/Resources/DWARF/libQt5DBus.5.7.0.dylib
lib64/lib64OpenglRender.dylib.dSYM/Contents/Info.plist
lib64/lib64OpenglRender.dylib.dSYM/Contents/Resources/DWARF/lib64OpenglRender.dylib
lib64/gles_swiftshader/libGLES_CM.dylib.dSYM/Contents/Info.plist
lib64/gles_swiftshader/libGLES_CM.dylib.dSYM/Contents/Resources/DWARF/libGLES_CM.dylib
lib64/gles_swiftshader/libGLESv2.dylib.dSYM/Contents/Info.plist
lib64/gles_swiftshader/libGLESv2.dylib.dSYM/Contents/Resources/DWARF/libGLESv2.dylib
lib64/gles_swiftshader/libEGL.dylib.dSYM/Contents/Info.plist
lib64/gles_swiftshader/libEGL.dylib.dSYM/Contents/Resources/DWARF/libEGL.dylib
lib64/libEGL_emulation.dylib.dSYM/Contents/Info.plist
lib64/libEGL_emulation.dylib.dSYM/Contents/Resources/DWARF/libEGL_emulation.dylib
lib64/lib64GLES12Translator.dylib.dSYM/Contents/Info.plist
lib64/lib64GLES12Translator.dylib.dSYM/Contents/Resources/DWARF/lib64GLES12Translator.dylib
lib64/android-emu-shared.dylib.dSYM/Contents/Info.plist
lib64/android-emu-shared.dylib.dSYM/Contents/Resources/DWARF/android-emu-shared.dylib
lib64/lib64EGL_translator.dylib.dSYM/Contents/Info.plist
lib64/lib64EGL_translator.dylib.dSYM/Contents/Resources/DWARF/lib64EGL_translator.dylib
lib64/lib64emugl_test_shared_library.dylib.dSYM/Contents/Info.plist
lib64/lib64emugl_test_shared_library.dylib.dSYM/Contents/Resources/DWARF/lib64emugl_test_shared_library.dylib
lib64/libGLESv1_enc.dylib.dSYM/Contents/Info.plist
lib64/libGLESv1_enc.dylib.dSYM/Contents/Resources/DWARF/libGLESv1_enc.dylib
lib64/lib64GLES_V2_translator.dylib.dSYM/Contents/Info.plist
lib64/lib64GLES_V2_translator.dylib.dSYM/Contents/Resources/DWARF/lib64GLES_V2_translator.dylib
lib64/libGLESv2_emulation.dylib.dSYM/Contents/Info.plist
lib64/libGLESv2_emulation.dylib.dSYM/Contents/Resources/DWARF/libGLESv2_emulation.dylib
lib64/libOpenglSystemCommon.dylib.dSYM/Contents/Info.plist
lib64/libOpenglSystemCommon.dylib.dSYM/Contents/Resources/DWARF/libOpenglSystemCommon.dylib
lib64/libGLESv2_enc.dylib.dSYM/Contents/Info.plist
lib64/libGLESv2_enc.dylib.dSYM/Contents/Resources/DWARF/libGLESv2_enc.dylib
lib64/gralloc.goldfish.dylib.dSYM/Contents/Info.plist
lib64/gralloc.goldfish.dylib.dSYM/Contents/Resources/DWARF/gralloc.goldfish.dylib
resources/poster.png
resources/Toren1BD.obj
resources/Toren1BD.posters
resources/Toren1BD.mtl
resources/Toren1BD_Main.png
resources/resources.rcc
resources/Toren1BD_Decor.png
lib/pc-bios/bios.bin
lib/pc-bios/vgabios-cirrus.bin
android-info.txt
emulator64-arm
emulator64-x86
emulator64-crash-service
qemu-img
code-coverage.zip
emulator.dSYM/Contents/Info.plist
emulator.dSYM/Contents/Resources/DWARF/emulator
emulator-check.dSYM/Contents/Info.plist
emulator-check.dSYM/Contents/Resources/DWARF/emulator-check
emulator64-arm.dSYM/Contents/Info.plist
emulator64-arm.dSYM/Contents/Resources/DWARF/emulator64-arm
emulator64-x86.dSYM/Contents/Info.plist
emulator64-x86.dSYM/Contents/Resources/DWARF/emulator64-x86
emulator64-crash-service.dSYM/Contents/Info.plist
emulator64-crash-service.dSYM/Contents/Resources/DWARF/emulator64-crash-service
------------------------------------------------------------
		    GNU GENERAL PUBLIC LICENSE
		       Version 2, June 1991

 Copyright (C) 1989, 1991 Free Software Foundation, Inc.
                          675 Mass Ave, Cambridge, MA 02139, 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 Library 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

	    How to Apply These Terms to Your New Programs

  If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.

  To do so, attach the following notices to the program.  It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.

    <one line to give the program's name and a brief idea of what it does.>
    Copyright (C) 19yy  <name of author>

    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

Also add information on how to contact you by electronic and paper mail.

If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:

    Gnomovision version 69, Copyright (C) 19yy name of author
    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
    This is free software, and you are welcome to redistribute it
    under certain conditions; type `show c' for details.

The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License.  Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.

You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary.  Here is a sample; alter the names:

  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
  `Gnomovision' (which makes passes at compilers) written by James Hacker.

  <signature of Ty Coon>, 1 April 1989
  Ty Coon, President of Vice

This General Public License does not permit incorporating your program into
proprietary programs.  If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library.  If this is what you want to do, use the GNU Library General
Public License instead of this License.

============================================================
Notices for file(s):
mksdcard
------------------------------------------------------------

   Copyright (c) 2005-2014, The Android Open Source Project

   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.

   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.


                                 Apache License
                           Version 2.0, January 2004
                        http://www.apache.org/licenses/

   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

   1. Definitions.

      "License" shall mean the terms and conditions for use, reproduction,
      and distribution as defined by Sections 1 through 9 of this document.

      "Licensor" shall mean the copyright owner or entity authorized by
      the copyright owner that is granting the License.

      "Legal Entity" shall mean the union of the acting entity and all
      other entities that control, are controlled by, or are under common
      control with that entity. For the purposes of this definition,
      "control" means (i) the power, direct or indirect, to cause the
      direction or management of such entity, whether by contract or
      otherwise, or (ii) ownership of fifty percent (50%) or more of the
      outstanding shares, or (iii) beneficial ownership of such entity.

      "You" (or "Your") shall mean an individual or Legal Entity
      exercising permissions granted by this License.

      "Source" form shall mean the preferred form for making modifications,
      including but not limited to software source code, documentation
      source, and configuration files.

      "Object" form shall mean any form resulting from mechanical
      transformation or translation of a Source form, including but
      not limited to compiled object code, generated documentation,
      and conversions to other media types.

      "Work" shall mean the work of authorship, whether in Source or
      Object form, made available under the License, as indicated by a
      copyright notice that is included in or attached to the work
      (an example is provided in the Appendix below).

      "Derivative Works" shall mean any work, whether in Source or Object
      form, that is based on (or derived from) the Work and for which the
      editorial revisions, annotations, elaborations, or other modifications
      represent, as a whole, an original work of authorship. For the purposes
      of this License, Derivative Works shall not include works that remain
      separable from, or merely link (or bind by name) to the interfaces of,
      the Work and Derivative Works thereof.

      "Contribution" shall mean any work of authorship, including
      the original version of the Work and any modifications or additions
      to that Work or Derivative Works thereof, that is intentionally
      submitted to Licensor for inclusion in the Work by the copyright owner
      or by an individual or Legal Entity authorized to submit on behalf of
      the copyright owner. For the purposes of this definition, "submitted"
      means any form of electronic, verbal, or written communication sent
      to the Licensor or its representatives, including but not limited to
      communication on electronic mailing lists, source code control systems,
      and issue tracking systems that are managed by, or on behalf of, the
      Licensor for the purpose of discussing and improving the Work, but
      excluding communication that is conspicuously marked or otherwise
      designated in writing by the copyright owner as "Not a Contribution."

      "Contributor" shall mean Licensor and any individual or Legal Entity
      on behalf of whom a Contribution has been received by Licensor and
      subsequently incorporated within the Work.

   2. Grant of Copyright License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      copyright license to reproduce, prepare Derivative Works of,
      publicly display, publicly perform, sublicense, and distribute the
      Work and such Derivative Works in Source or Object form.

   3. Grant of Patent License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      (except as stated in this section) patent license to make, have made,
      use, offer to sell, sell, import, and otherwise transfer the Work,
      where such license applies only to those patent claims licensable
      by such Contributor that are necessarily infringed by their
      Contribution(s) alone or by combination of their Contribution(s)
      with the Work to which such Contribution(s) was submitted. If You
      institute patent litigation against any entity (including a
      cross-claim or counterclaim in a lawsuit) alleging that the Work
      or a Contribution incorporated within the Work constitutes direct
      or contributory patent infringement, then any patent licenses
      granted to You under this License for that Work shall terminate
      as of the date such litigation is filed.

   4. Redistribution. You may reproduce and distribute copies of the
      Work or Derivative Works thereof in any medium, with or without
      modifications, and in Source or Object form, provided that You
      meet the following conditions:

      (a) You must give any other recipients of the Work or
          Derivative Works a copy of this License; and

      (b) You must cause any modified files to carry prominent notices
          stating that You changed the files; and

      (c) You must retain, in the Source form of any Derivative Works
          that You distribute, all copyright, patent, trademark, and
          attribution notices from the Source form of the Work,
          excluding those notices that do not pertain to any part of
          the Derivative Works; and

      (d) If the Work includes a "NOTICE" text file as part of its
          distribution, then any Derivative Works that You distribute must
          include a readable copy of the attribution notices contained
          within such NOTICE file, excluding those notices that do not
          pertain to any part of the Derivative Works, in at least one
          of the following places: within a NOTICE text file distributed
          as part of the Derivative Works; within the Source form or
          documentation, if provided along with the Derivative Works; or,
          within a display generated by the Derivative Works, if and
          wherever such third-party notices normally appear. The contents
          of the NOTICE file are for informational purposes only and
          do not modify the License. You may add Your own attribution
          notices within Derivative Works that You distribute, alongside
          or as an addendum to the NOTICE text from the Work, provided
          that such additional attribution notices cannot be construed
          as modifying the License.

      You may add Your own copyright statement to Your modifications and
      may provide additional or different license terms and conditions
      for use, reproduction, or distribution of Your modifications, or
      for any such Derivative Works as a whole, provided Your use,
      reproduction, and distribution of the Work otherwise complies with
      the conditions stated in this License.

   5. Submission of Contributions. Unless You explicitly state otherwise,
      any Contribution intentionally submitted for inclusion in the Work
      by You to the Licensor shall be under the terms and conditions of
      this License, without any additional terms or conditions.
      Notwithstanding the above, nothing herein shall supersede or modify
      the terms of any separate license agreement you may have executed
      with Licensor regarding such Contributions.

   6. Trademarks. This License does not grant permission to use the trade
      names, trademarks, service marks, or product names of the Licensor,
      except as required for reasonable and customary use in describing the
      origin of the Work and reproducing the content of the NOTICE file.

   7. Disclaimer of Warranty. Unless required by applicable law or
      agreed to in writing, Licensor provides the Work (and each
      Contributor provides its Contributions) on an "AS IS" BASIS,
      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
      implied, including, without limitation, any warranties or conditions
      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
      PARTICULAR PURPOSE. You are solely responsible for determining the
      appropriateness of using or redistributing the Work and assume any
      risks associated with Your exercise of permissions under this License.

   8. Limitation of Liability. In no event and under no legal theory,
      whether in tort (including negligence), contract, or otherwise,
      unless required by applicable law (such as deliberate and grossly
      negligent acts) or agreed to in writing, shall any Contributor be
      liable to You for damages, including any direct, indirect, special,
      incidental, or consequential damages of any character arising as a
      result of this License or out of the use or inability to use the
      Work (including but not limited to damages for loss of goodwill,
      work stoppage, computer failure or malfunction, or any and all
      other commercial damages or losses), even if such Contributor
      has been advised of the possibility of such damages.

   9. Accepting Warranty or Additional Liability. While redistributing
      the Work or Derivative Works thereof, You may choose to offer,
      and charge a fee for, acceptance of support, warranty, indemnity,
      or other liability obligations and/or rights consistent with this
      License. However, in accepting such obligations, You may act only
      on Your own behalf and on Your sole responsibility, not on behalf
      of any other Contributor, and only if You agree to indemnify,
      defend, and hold each Contributor harmless for any liability
      incurred by, or claims asserted against, such Contributor by reason
      of your accepting any such warranty or additional liability.

   END OF TERMS AND CONDITIONS

