summaryrefslogtreecommitdiffstats
path: root/core
Commit message (Collapse)AuthorAgeFilesLines
* Allow flashing a squashfs system imageMohamad Ayyash2015-06-163-0/+14
| | | | | Change-Id: Ic51d11274784a8d2e9d57d5f0b821ebc89680e5a Signed-off-by: Mohamad Ayyash <mkayyash@google.com>
* Add new variable SCAN_EXCLUDE_DIRS; specifies directories to exclude when ↵C. Sean Young2015-06-105-3/+12
| | | | | | | | | | searching source tree. These directories are excluded in addition to OUT_DIR. This can be useful if your build system has other output directories beyond what OUT_DIR is set to. Change-Id: I6d98a85bcc8c89279e939406a7fec32547e8922f
* am 12f44975: Strip LOCAL_STATIC_JAVA_AAR_LIBRARIESYing Wang2015-05-271-0/+1
|\ | | | | | | | | * commit '12f449756587b83cd6a04c793e05b837ceb41563': Strip LOCAL_STATIC_JAVA_AAR_LIBRARIES
| * Strip LOCAL_STATIC_JAVA_AAR_LIBRARIESYing Wang2015-05-271-0/+1
| | | | | | | | Change-Id: I0a0c4fe0cdd9c162976ef5f4c4709d400fde2d5a
* | FORCE_BUILD_LLVM_COMPONENTS if HOST_PREFER_32_BIT.Ying Wang2015-05-191-0/+5
| | | | | | | | | | | | | | Because we don't have 32-bit prebuilt libLLVM/libclang. Change-Id: I86dac33e9bcbcb3d197f7d1e4c9d33bd4e7c473e (cherry picked from commit e5d4e74f9f8c09b79cac8125fb58bdfbb4f1aa9c)
* | am 247f5c4f: am 1bd15569: am e528e44d: Merge "Add task to print transitive ↵Ying Wang2015-05-202-0/+75
|\ \ | |/ | | | | | | | | | | dependencies and their license files." into lmp-dev * commit '247f5c4fce9e2cf1911458be1591517c1e7dbc42': Add task to print transitive dependencies and their license files.
| * am 1bd15569: am e528e44d: Merge "Add task to print transitive dependencies ↵Ying Wang2015-05-202-0/+75
| |\ | | | | | | | | | | | | | | | | | | and their license files." into lmp-dev * commit '1bd155692f2e7ddc4fb6b874fc586ba8ab86a363': Add task to print transitive dependencies and their license files.
| | * am e528e44d: Merge "Add task to print transitive dependencies and their ↵Ying Wang2015-05-202-0/+75
| | |\ | | | | | | | | | | | | | | | | | | | | | | | | license files." into lmp-dev * commit 'e528e44d31498ad83482b1860036916d0fded379': Add task to print transitive dependencies and their license files.
| | | * Merge "Add task to print transitive dependencies and their license files." ↵Ying Wang2015-05-192-0/+75
| | | |\ | | | | | | | | | | | | | | | into lmp-dev
| | | | * Add task to print transitive dependencies and their license files.Ying Wang2015-05-192-0/+75
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Print modules and their transitive dependencies with license files. To invoke, run "make deps-license PROJ_PATH=<proj-path-patterns> DEP_PATH=<dep-path-patterns>". PROJ_PATH restricts the paths of the source modules; DEP_PATH restricts the paths of the dependency modules. Both can be makefile patterns supported by makefile function $(filter). Example: $ make deps-license packages/app/% external/% prints all modules in packages/app/ with their dpendencies in external/. The printout lines look like "<module_name> :: <module_paths> :: <license_files>". Bug: 20823995 Change-Id: I06b66e85ff56c8628bffa3d948085ed45870100f (cherry-pick from 39b9b690a824c82465fe0ac9b44a0c1f5e6ae13a)
| | * | | am bf565365: Use ALL_MODULES..INSTALLED in modules-for-tag-listYing Wang2015-02-262-9/+1
| | |\ \ \ | | | |/ / | | | | | | | | | | | | | | | * commit 'bf565365debd77424dbcf0877089f6f33100d8db': Use ALL_MODULES.$(m).INSTALLED in modules-for-tag-list
| | | * | Use ALL_MODULES.$(m).INSTALLED in modules-for-tag-listYing Wang2015-02-262-9/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously we store tag's installed modules in a separate variable ALL_MODULE_TAGS.$(tag). However we only record the main installed file for a module, but omit affiliated files like .odex. With this change, we handle the tagged module the same way as modules in PRODUCT_PACKAGES. Change-Id: I7972528a4df5a4ba8bc98930864da9672d32d7fe (cherry picked from commit 0e36bfeb3ffc78658cda3ca6931c66fe3f5b3d3b)
| | * | | am 27fad66a: Merge "DO NOT MERGE. Bump version to 5.0.2." into lmp-devDianne Hackborn2014-12-111-1/+1
| | |\ \ \ | | | |/ / | | | | | | | | | | | | | | | * commit '27fad66a8c730e58b3f2aab56edc8c6078b4283e': DO NOT MERGE. Bump version to 5.0.2.
| | | * | DO NOT MERGE. Bump version to 5.0.2.Dianne Hackborn2014-12-111-1/+1
| | | |/ | | | | | | | | | | | | Change-Id: Ia6426dd03ac3b51061429b7da36e317bd3503775
| | * | Support journal size board config variables.Ying Wang2014-11-191-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A device can set up BOARD_SYSTEMIMAGE_JOURNAL_SIZE (number of journal blocks) in its BoardConfig.mk. To disable journaling, set "BOARD_SYSTEMIMAGE_JOURNAL_SIZE := 0". BOARD_VENDORIMAGE_JOURNAL_SIZE and BOARD_OEMIMAGE_JOURNAL_SIZE work in similar way. Bug: 18430740 (cherry picked from commit f3b86357e20a31ef0febe254f1f08706006f57fa) Change-Id: Icc6c7e1b3be25b8e21b6a737492d944428e4a35a
| | * | Build: Support for compiled-classes fileAndreas Gampe2014-11-182-1/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Allow a compiled-classes file for pre-opting. Bug: 18410571 (cherry picked from commit 4fec0bb265ac8cdbe883b8868abfcb56713db170) Change-Id: Id54a97af606727e354b6914e46e35fdb8952aa04
| | * | am 5e923c91: Increment Android versions to 5.0.1Dave Langemak2014-11-181-1/+1
| | |\ \ | | | |/ | | | | | | | | | | | | * commit '5e923c91b42f1df7ec3da97b1506dd9aa93795d0': Increment Android versions to 5.0.1
| | | * Increment Android versions to 5.0.1Dave Langemak2014-11-171-1/+1
| | | | | | | | | | | | | | | | Change-Id: I2880123f0d1215f2028e6d3bc3f88fee5714ae74
| | * | core: Use WITH_DEXPREOPT_PIC=true to have dex2oat build pic oat filesIgor Murashkin2014-11-102-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When WITH_DEXPREOPT=true is set, if we also set WITH_DEXPREOPT_PIC=true then the build will generate position-independent OAT images. This means that all the system applications no longer need to be relocated into /data/dalvik-cache and this can achieve saving disk space at the cost of slightly slower running code. Bug: 18035729 (cherry picked from commit da9f1a7e82b7e6d0677553f211835625078347f2) Change-Id: I9d5f12bbe7d0287784ac7e941fba090fce3ce3df
| | * | Introduce per-product per-module dex-preopt configYing Wang2014-11-106-5/+54
| | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Added LOCAL_DEX_PREOPT_FLAGS to pass extra flags to dex2oat. - Added macro add-product-dex-preopt-module-config to specify almost arbitrary dex-preopt config/flags to modules in product configuration: $(call \ add-product-dex-preopt-module-config,<module_name_list>,<config_or_flags>) How <config_or_flags> is interpreted is decided by dex_preopt_odex_install.mk and dex2oat. For now if it's "disable" we disable dexpreopt for the given modules; otherwise pass it to dex2oat as command line flags. - If there are multiple configs for the same module in the product inheritance, the first takes precedence. - Added PRODUCT_DEX_PREOPT_DEFAULT_FLAGS so you can specify default dex2oat flags in product configuration. - Added PRODUCT_DEX_PREOPT_BOOT_FLAGS to specify flags of building boot.oat. Bug: 17791867 (cherry picked from commit 20ebd2ef081f2a3e85a4adcf8837e6f5b68bdeea) (cherry picked from commit 70d617aaf57c636ca7b6aedee5b009a7c46bdd3a) Change-Id: I86f125dd02290d0969704142a4405ebd6729c4f7
* | | am 1c3bf5c3: DO NOT MERGE - Bump version to 5.1.1Bart Sears2015-03-271-1/+1
|\ \ \ | |/ / | | | | | | | | | * commit '1c3bf5c39d281be4b437bc1a367c49b72c6e10b9': DO NOT MERGE - Bump version to 5.1.1
| * | DO NOT MERGE - Bump version to 5.1.1Bart Sears2015-03-251-1/+1
| | | | | | | | | | | | | | | Bug: 19939307 Change-Id: I069f514fe6d3759aa7dde38627c54f7bed38c1bb
* | | am ad54a4da: Add selinux and verity support to custom image generation.Ying Wang2015-03-272-2/+18
|\ \ \ | |/ / | | | | | | | | | * commit 'ad54a4dab520d84f76c9ad6a83be92b5563de24e': Add selinux and verity support to custom image generation.
| * | Add selinux and verity support to custom image generation.Ying Wang2015-03-232-2/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | New custom image configuration variables: - CUSTOM_IMAGE_SELINUX, set to "true" if the image supports selinux. - CUSTOM_IMAGE_SUPPORT_VERITY, set to "true" if the product supports verity. - CUSTOM_IMAGE_VERITY_BLOCK_DEVICE Also changed the staging directory name to the mount point, like we do for other images built by the build system. Bug: 19609718 Change-Id: I6bbf06b79eee63e4c77834f2e6f1d5a7f7e00a12 (cherry picked from commit 7d51a4029590b58e22071eed919d59a0ff205bef)
* | | "LKY80"The Android Automerger2015-03-211-1/+1
|/ /
* | Support to configure and build multiple custom images.Ying Wang2015-03-145-1/+182
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Build additional images requested by the product makefile. This script gives the ability to build multiple additional images and you can configure what modules/files to include in each image. 1. Define PRODUCT_CUSTOM_IMAGE_MAKEFILES in your product makefile. PRODUCT_CUSTOM_IMAGE_MAKEFILES is a list of makefiles. Each makefile configures an image. For image configuration makefile foo/bar/xyz.mk, the built image file name will be xyz.img. So make sure they won't conflict. 2. In each image's configuration makefile, you can define variables: - CUSTOM_IMAGE_MOUNT_POINT, the mount point, such as "oem", "odm" etc. - CUSTOM_IMAGE_PARTITION_SIZE - CUSTOM_IMAGE_FILE_SYSTEM_TYPE - CUSTOM_IMAGE_DICT_FILE, a text file defining a dictionary accepted by BuildImage() in tools/releasetools/build_image.py. - CUSTOM_IMAGE_MODULES, a list of module names you want to include in the image; Not only the module itself will be installed to proper path in the image, you can also piggyback additional files/directories with the module's LOCAL_PICKUP_FILES. - CUSTOM_IMAGE_COPY_FILES, a list of "<src>:<dest>" to be copied to the image. <dest> is relativ to the root of the image. To build all those images, run "make custom_images". Bug: 19609718 Change-Id: Ic73587e08503a251be27797c7b00329716051927 (cherry picked from commit 5fcf1094f9cf4d57c2598237f99621f254130d71)
* | Use ALL_MODULES.$(m).INSTALLED in modules-for-tag-listYing Wang2015-02-262-9/+1
| | | | | | | | | | | | | | | | | | | | Previously we store tag's installed modules in a separate variable ALL_MODULE_TAGS.$(tag). However we only record the main installed file for a module, but omit affiliated files like .odex. With this change, we handle the tagged module the same way as modules in PRODUCT_PACKAGES. Change-Id: I7972528a4df5a4ba8bc98930864da9672d32d7fe
* | Support LOCAL_PREBUILT_JNI_LIBS in unbundled build.Ying Wang2015-02-121-0/+6
| | | | | | | | | | | | | | Package up LOCAL_PREBUILT_JNI_LIBS when you do tapas (apps_only) build. Change-Id: Ibdc920fee22d4940eebee080a940e8e9492c06cb (cherry picked from commit e66d7c1de0a888785cdbf697bebe53be7ed83380)
* | Support dpi specific aapt flags.Ying Wang2015-01-301-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | With this support, you can set dpi-specific aapt flags like: $(LOCAL_PACKAGE_NAME)_aapt_flags_hdpi := --version-code 100 \ --version-name "100 which will override the --version-code and --version-name set in the base apk's LOCAL_AAPT_FLAGS. Bug := 18388705 Change-Id: Ie79d7b1b6bbf7463bce51ddae04ba81384ec58dc
* | Make dangling module names in PRODUCT_FACTORY_RAMDISK_MODULES non-fatal.Ying Wang2015-01-272-3/+2
| | | | | | | | | | | | | | | | | | It's pain to maintain an inactive product's list of PRODUCT_FACTORY_RAMDISK_MODULES or PRODUCT_FACTORY_BUNDLE_MODULES. Just show a warning if a module name becomes dangling. Bug: 18779515 Change-Id: I3d137ed59feb005b186ed2a3519465da3d8f45c3
* | Let apicheck check both the public API and system API.Ying Wang2015-01-092-12/+21
| | | | | | | | | | | | | | Also "make update-api" updates both public API and system API files. Bug: 18960664 Change-Id: I35e805816e07c8aa4deaeb84b1611923583325e1
* | Remove ancient SDK cleanbuild ruleYing Wang2015-01-061-13/+1
| | | | | | | | | | | | | | | | | | In anceint time we didn't have an "sdk" product so that we had to run "make sdk" in a device product configuration. Now we have SDK specific product configuration and we don't do "make sdk" in device product configuration. Change-Id: I40d58d51261498017bbe7e574c8128afc77e9b96
* | Fix using variable intermediates.COMMON before defining.Ying Wang2014-12-182-18/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | In commit e9dd9f2bf we moved "include $(BUILD_SYSTEM)/android_manifest.mk" forward before the variable intermediates.COMMON gets defined. That's a mistake. This change replaced the tentative variables package_expected_intermediates_COMMON and guessed_intermediates with their proper counterparts defined in base_rules.mk. If their values differ in the two file, that's an error and we should fix. Bug: 18168693 Change-Id: I2bf17b0476b4a7f97810fbb0bde7630eb8878b53
* | Add support for prebuilt AARs.Ying Wang2014-12-175-9/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - You can give a .aar as source file to a prebuilt static Java library module. The build system will set up dependencies and rules to extract classes.jar and other resource files. - To build against a prebuilt AAR module, use: LOCAL_STATIC_JAVA_AAR_LIBRARIES := <module names of aar prebuilt AARs> The build system will set up rules to merge the library's AndroidManifest.xml with the main AndroidManifest.xml, add the AAR's resource dirs and link/merge the AAR's classes.jar. Bug: 18168693 Change-Id: Ic2c1d20572a93bd98dbc72f8a39e26b459e442c2 (cherry picked from commit e9dd9f2bfceed3b5f630b0edbe3feb7f34548d8b)
* | Add product variable PRODUCT_AAPT_PREBUILT_DPIYing Wang2014-12-103-1/+3
| | | | | | | | | | | | | | | | | | | | | | We use search LOCAL_DPI_VARIANTS in the list of "$(PRODUCT_AAPT_PREF_CONFIG) $(PRODUCT_AAPT_PREBUILT_DPI)" and the first takes precedence. That way if we don't have a best match, we fall back to the second best, the way how it worked with PRODUCT_AAPT_CONFIG previously. Bug: 18388705 Change-Id: I8bd646c52215c65cc6e38c728857af9b64d13469
* | Add system propery ro.build.flavor.Ying Wang2014-12-041-0/+1
| | | | | | | | | | | | | | | | | | ro.build.flavor is set to "$(TARGET_PRODUCT)-$(TARGET_BUILD_VARIANT)" in system.img build.prop at build time, and it won't be overridden by oem partition's build.prop. Bug: 18605832 Change-Id: Ic917623dd43b74d9c601119db0b457483e8c4472
* | Fix issue #18368417: 5.0 -> 5.1.Dianne Hackborn2014-12-041-1/+1
| | | | | | | | Change-Id: Icd7137fe8b1bda1c5aaf170aa7b19a58832144c8
* | Remove uses of density in PRODUCT_AAP_CONFIGAdam Lesinski2014-12-032-20/+3
| | | | | | | | Change-Id: I98594165515c07fa2e6b847266f7d8fa3283b52e
* | Support to build dpi-specific apk variants.Ying Wang2014-12-022-0/+80
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In unbundled apps_only build, in addition to the base apk, you can also build the dpi-specific apk variants, with: LOCAL_DPI_VARIANTS := <a list of dpi names> Previously user needs to include $(BUILD_PACKAGE) repeatedly with the same package definition except dpi flags. With this change, all the dpi-specific apk variants share the base apk's compiled Java code and only diverge at the point we add resources/assets to the apk. Also we set up variables/targets/rules in a way those dpi-specific apks appear to be independent apks to the users, for example, you can pass "AppName_<dpi_name>" to tapas, and AppName_<dpi_name>.apk lives in its own intermediate directory. Bug: 18388705 Change-Id: I2ba4972ea7d1f796352fab2407888f996781ae44
* | Support journal size board config variables.Ying Wang2014-11-181-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | A device can set up BOARD_SYSTEMIMAGE_JOURNAL_SIZE (number of journal blocks) in its BoardConfig.mk. To disable journaling, set "BOARD_SYSTEMIMAGE_JOURNAL_SIZE := 0". BOARD_VENDORIMAGE_JOURNAL_SIZE and BOARD_OEMIMAGE_JOURNAL_SIZE work in similar way. Bug: 18430740 Change-Id: I0594814fe19ffc54dff41ec2464e2e3a802b9419
* | Merge "Support prebuilt apk source selection based on ↵Ying Wang2014-11-192-0/+15
|\ \ | | | | | | | | | PRODUCT_AAPT_PREF_CONFIG" into lmp-mr1-dev
| * | Support prebuilt apk source selection based on PRODUCT_AAPT_PREF_CONFIGYing Wang2014-11-172-0/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Two new LOCAL variables are added to support dpi-specific prebuilt apk selection: - LOCAL_DPI_VARIANTS: specify a list of dpis the module provides with specific prebuilt. Example: LOCAL_DPI_VARIANTS := xxhdpi xhdpi hdpi mdpi - LOCAL_DPI_FILE_STEM: specify the dpi-specific source file name pattern. Example: LOCAL_DPI_FILE_STEM := MyApp-%.apk "%" will be substitued by $(PRODUCT_AAPT_PREF_CONFIG) in the core build system. If you don't set up LOCAL_DPI_FILE_STEM, the default is $(LOCAL_MODULE)_%.apk. The build system searches $(PRODUCT_AAPT_PREF_CONFIG) in a prebuilt apk module's $(LOCAL_DPI_VARIANTS). If not found, use whatever $(LOCAL_SRC_FILES) as the source file; Otherwise use $(LOCAL_DPI_FILE_STEM) to construct the dpi-specific apk's source file name, and use whatever directory name of $(LOCAL_SRC_FILES). Bug: 18388705 Change-Id: I63cae73f1b6f880302142abc476b3ce1fb5500b5
* | | Build: Support for compiled-classes fileAndreas Gampe2014-11-182-1/+11
|/ / | | | | | | | | | | | | Allow a compiled-classes file for pre-opting. Bug: 18410571 Change-Id: I8c69dd0fb8c04aaae0c4f062049cc9cce7d755c7
* | Install preloaded-classes as a standalone configuration fileYing Wang2014-11-141-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | Install preloaded-classes as a standalone configuration file /system/etc/preloaded-classes, so we can configure different file per product. To override the default frameworks/base/preloaded-classes, just override in your product configuration makefile with PRODUCT_COPY_FILES before it inherits from build/target/product/base.mk: if there are multiple items in PRODUCT_COPY_FILES with the same destination, the first one takes precedence. Bug: 18305157 Change-Id: I937632b4a1aa73310ec90e73fd708fbd0c704a21
* | Fix the buildPaul Lawrence2014-11-141-1/+1
| | | | | | | | | | Bug: 15984840 Bug: 18120110 Change-Id: I0224d5a31e03b711953d9496ecb00b6d88b8ef4c
* | DO NOT MERGE: Change verity key formatsSami Tolvanen2014-11-131-4/+4
| | | | | | | | | | | | | | | | | | | | | | Change boot, recovery, and verity metadata signing keys to use the same PKCS8 / X.509 PEM format as the other signing keys, and update build scripts to use correct arguments for the updated signing tools. Bug: 15984840 Bug: 18120110 Change-Id: I23ed5a004ecdad6cf7696487935ad5031eb8adf8 (cherry picked from commit 72d90eb1895932343586717daa1865019473b2f5)
* | Restore the diskinstaller dependency, since it's needed for GCE.Greg Hartman2014-11-111-0/+6
| | | | | | | | Change-Id: Ieb2695afbe551e829357bad56d5fe1501165b495
* | Add a hook for the syslinux bootloader.Greg Hartman2014-11-111-0/+5
| | | | | | | | Change-Id: Ia8638e9dcb025743a66c52ad43b161ee70602c89
* | core: Use WITH_DEXPREOPT_PIC=true to have dex2oat build pic oat filesIgor Murashkin2014-10-312-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | When WITH_DEXPREOPT=true is set, if we also set WITH_DEXPREOPT_PIC=true then the build will generate position-independent OAT images. This means that all the system applications no longer need to be relocated into /data/dalvik-cache and this can achieve saving disk space at the cost of slightly slower running code. Bug: 18035729 Change-Id: Ifd517c842f48bf31568bf5ff56667298d422c2c0
* | Introduce per-product per-module dex-preopt configYing Wang2014-10-316-5/+54
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Added LOCAL_DEX_PREOPT_FLAGS to pass extra flags to dex2oat. - Added macro add-product-dex-preopt-module-config to specify almost arbitrary dex-preopt config/flags to modules in product configuration: $(call \ add-product-dex-preopt-module-config,<module_name_list>,<config_or_flags>) How <config_or_flags> is interpreted is decided by dex_preopt_odex_install.mk and dex2oat. For now if it's "disable" we disable dexpreopt for the given modules; otherwise pass it to dex2oat as command line flags. - If there are multiple configs for the same module in the product inheritance, the first takes precedence. - Added PRODUCT_DEX_PREOPT_DEFAULT_FLAGS so you can specify default dex2oat flags in product configuration. - Added PRODUCT_DEX_PREOPT_BOOT_FLAGS to specify flags of building boot.oat. Bug: 17791867 (cherry picked from commit 20ebd2ef081f2a3e85a4adcf8837e6f5b68bdeea) Change-Id: I2ee36892b40655c96837ee7a663dda1d25830878