From b243c636d820fae83229254d4e1cc68b319a3e11 Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Tue, 10 Nov 2020 21:22:16 +0800 Subject: [PATCH 001/187] Sanitize exception stack trace caught by ActivityThreadCallback --- .../instrument/ActivityThreadCallback.java | 5 ++-- .../booster/instrument/Intrinsics.java | 28 +++++++++++++++++++ 2 files changed, 31 insertions(+), 2 deletions(-) create mode 100644 booster-android-instrument/src/main/java/com/didiglobal/booster/instrument/Intrinsics.java diff --git a/booster-android-instrument-activity-thread/src/main/java/com/didiglobal/booster/instrument/ActivityThreadCallback.java b/booster-android-instrument-activity-thread/src/main/java/com/didiglobal/booster/instrument/ActivityThreadCallback.java index 7c414b513..d5beb1314 100644 --- a/booster-android-instrument-activity-thread/src/main/java/com/didiglobal/booster/instrument/ActivityThreadCallback.java +++ b/booster-android-instrument-activity-thread/src/main/java/com/didiglobal/booster/instrument/ActivityThreadCallback.java @@ -16,6 +16,7 @@ import java.util.Set; import static com.didiglobal.booster.instrument.Constants.TAG; +import static com.didiglobal.booster.instrument.Intrinsics.sanitizeStackTrace; import static com.didiglobal.booster.instrument.Reflection.getFieldValue; import static com.didiglobal.booster.instrument.Reflection.getStaticFieldValue; import static com.didiglobal.booster.instrument.Reflection.invokeMethod; @@ -103,13 +104,13 @@ public final boolean handleMessage(final Message msg) { private void rethrowIfCausedByUser(final RuntimeException e) { if (isCausedByUser(e)) { - throw e; + throw sanitizeStackTrace(e, getClass()); } } private void rethrowIfCausedByUser(final Error e) { if (isCausedByUser(e)) { - throw e; + throw sanitizeStackTrace(e, getClass()); } } diff --git a/booster-android-instrument/src/main/java/com/didiglobal/booster/instrument/Intrinsics.java b/booster-android-instrument/src/main/java/com/didiglobal/booster/instrument/Intrinsics.java new file mode 100644 index 000000000..cc3c078c6 --- /dev/null +++ b/booster-android-instrument/src/main/java/com/didiglobal/booster/instrument/Intrinsics.java @@ -0,0 +1,28 @@ +package com.didiglobal.booster.instrument; + +import java.util.ArrayList; + +public abstract class Intrinsics { + + public static T sanitizeStackTrace(T throwable, Class clazz) { + return sanitizeStackTrace(throwable, clazz.getName()); + } + + public static T sanitizeStackTrace(T throwable, String classNameToDrop) { + final StackTraceElement[] stackTrace = throwable.getStackTrace(); + final ArrayList newStackTrace = new ArrayList<>(stackTrace.length); + + for (StackTraceElement ste : stackTrace) { + if (!classNameToDrop.equals(ste.getClassName())) { + newStackTrace.add(ste); + } + } + + throwable.setStackTrace(newStackTrace.toArray(new StackTraceElement[0])); + return throwable; + } + + private Intrinsics() { + } + +} From 96ae4fb2c3568ffa7991dc7ee64618de420244d1 Mon Sep 17 00:00:00 2001 From: Hollow Man Date: Sat, 21 Nov 2020 20:53:50 +0800 Subject: [PATCH 002/187] Fix typo moudle -> module --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 3afe48cbe..af1cc4036 100644 --- a/README.md +++ b/README.md @@ -66,7 +66,7 @@ The following table lists which version of Gradle is required for each version o ## Best Practise | 最佳实践 -The best practise of using Booster is integrating the specific moudle to solve the problems you have encountered as following: +The best practise of using Booster is integrating the specific module to solve the problems you have encountered as following: > 集成 Booster 的最佳方式是集成真正需要的模块来解决项目中遇到的特定问题。 From 8b584861a05633e49052e0fff476bba3e3e58bbf Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Sat, 12 Dec 2020 22:04:09 +0800 Subject: [PATCH 003/187] Add `filter` for image compression task --- .../compression/CompressionTaskCreator.kt | 16 +++++++++++++++- .../compression/SimpleCompressionTaskCreator.kt | 4 ++-- .../booster/compression/task/CompressImages.kt | 6 ++++++ 3 files changed, 23 insertions(+), 3 deletions(-) diff --git a/booster-task-compression/src/main/kotlin/com/didiglobal/booster/compression/CompressionTaskCreator.kt b/booster-task-compression/src/main/kotlin/com/didiglobal/booster/compression/CompressionTaskCreator.kt index 8610529a2..94c8944a7 100644 --- a/booster-task-compression/src/main/kotlin/com/didiglobal/booster/compression/CompressionTaskCreator.kt +++ b/booster-task-compression/src/main/kotlin/com/didiglobal/booster/compression/CompressionTaskCreator.kt @@ -29,6 +29,20 @@ interface CompressionTaskCreator { * @param supplier The image supplier * @param deps The dependent tasks */ - fun createCompressionTask(variant: BaseVariant, results: CompressionResults, name: String, supplier: () -> Collection, vararg deps: Task): CompressImages + fun createCompressionTask(variant: BaseVariant, results: CompressionResults, name: String, supplier: () -> Collection, vararg deps: Task): CompressImages = createCompressionTask(variant, results, name, supplier, { true }, *deps) + + /** + * Returns a task for compression + * + * @param variant The build variant + * @param results The compression results for report generating + * @param name The name of task + * @param supplier The image supplier + * @param filter The resource name filter + * @param deps The dependent tasks + */ + fun createCompressionTask(variant: BaseVariant, results: CompressionResults, name: String, supplier: () -> Collection, filter: ResourceNameFilter, vararg deps: Task): CompressImages } + +typealias ResourceNameFilter = (String) -> Boolean diff --git a/booster-task-compression/src/main/kotlin/com/didiglobal/booster/compression/SimpleCompressionTaskCreator.kt b/booster-task-compression/src/main/kotlin/com/didiglobal/booster/compression/SimpleCompressionTaskCreator.kt index d7d77a1e1..edee2f941 100644 --- a/booster-task-compression/src/main/kotlin/com/didiglobal/booster/compression/SimpleCompressionTaskCreator.kt +++ b/booster-task-compression/src/main/kotlin/com/didiglobal/booster/compression/SimpleCompressionTaskCreator.kt @@ -21,7 +21,7 @@ class SimpleCompressionTaskCreator(private val tool: CompressionTool, private va override fun getCompressionTaskClass(aapt2: Boolean) = compressor(aapt2) - override fun createCompressionTask(variant: BaseVariant, results: CompressionResults, name: String, supplier: () -> Collection, vararg deps: Task): CompressImages { + override fun createCompressionTask(variant: BaseVariant, results: CompressionResults, name: String, supplier: () -> Collection, filter: (String) -> Boolean, vararg deps: Task): CompressImages { val aapt2 = variant.project.aapt2Enabled val install = getCommandInstaller(variant) @@ -30,7 +30,7 @@ class SimpleCompressionTaskCreator(private val tool: CompressionTool, private va task.variant = variant task.results = results task.supplier = { - supplier.invoke().filter { it.length() > 0 }.sortedBy { it } + supplier().filter { it.length() > 0 }.sortedBy { it } } }.apply { dependsOn(install, deps) diff --git a/booster-task-compression/src/main/kotlin/com/didiglobal/booster/compression/task/CompressImages.kt b/booster-task-compression/src/main/kotlin/com/didiglobal/booster/compression/task/CompressImages.kt index 70626ee9d..58528a880 100644 --- a/booster-task-compression/src/main/kotlin/com/didiglobal/booster/compression/task/CompressImages.kt +++ b/booster-task-compression/src/main/kotlin/com/didiglobal/booster/compression/task/CompressImages.kt @@ -7,6 +7,7 @@ import com.didiglobal.booster.command.CommandInstaller import com.didiglobal.booster.compression.CompressionOptions import com.didiglobal.booster.compression.CompressionResults import com.didiglobal.booster.compression.CompressionTool +import com.didiglobal.booster.compression.ResourceNameFilter import org.gradle.api.DefaultTask import org.gradle.api.tasks.Input import org.gradle.api.tasks.InputFiles @@ -31,6 +32,11 @@ abstract class CompressImages : DefaultTask() { lateinit var supplier: () -> Collection + /** + * The resource path filter + */ + var filter: ResourceNameFilter = { true } + val compressor: File get() = project.tasks.withType(CommandInstaller::class.java).find { it.command == tool.command From c4d808e0a241ff00cc82bbb11dd1e7f66dbee327 Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Sat, 12 Dec 2020 22:08:49 +0800 Subject: [PATCH 004/187] Support property `booster.task.compression.pngquant.ignores` to ignore resources by wildcards --- .../pngquant/PngquantCompressFlatImages.kt | 2 ++ .../pngquant/PngquantCompressImages.kt | 5 ++++- .../PngquantCompressionVariantProcessor.kt | 19 +++++++++++++++---- 3 files changed, 21 insertions(+), 5 deletions(-) diff --git a/booster-task-compression-pngquant/src/main/kotlin/com/didiglobal/booster/task/compression/pngquant/PngquantCompressFlatImages.kt b/booster-task-compression-pngquant/src/main/kotlin/com/didiglobal/booster/task/compression/pngquant/PngquantCompressFlatImages.kt index 4fb560938..46e37f7f3 100644 --- a/booster-task-compression-pngquant/src/main/kotlin/com/didiglobal/booster/task/compression/pngquant/PngquantCompressFlatImages.kt +++ b/booster-task-compression-pngquant/src/main/kotlin/com/didiglobal/booster/task/compression/pngquant/PngquantCompressFlatImages.kt @@ -47,6 +47,8 @@ internal open class PngquantCompressFlatImages : AbstractPngquantCompressImages( images.parallelStream().map { it to it.metadata + }.filter { + this.filter(it.second.resourceName) }.map { val output = compressedRes.file("${it.second.resourcePath.substringBeforeLast('.')}$DOT_PNG") Aapt2ActionData(it.first, it.second, output, diff --git a/booster-task-compression-pngquant/src/main/kotlin/com/didiglobal/booster/task/compression/pngquant/PngquantCompressImages.kt b/booster-task-compression-pngquant/src/main/kotlin/com/didiglobal/booster/task/compression/pngquant/PngquantCompressImages.kt index 54a14d31a..a2803ab6f 100644 --- a/booster-task-compression-pngquant/src/main/kotlin/com/didiglobal/booster/task/compression/pngquant/PngquantCompressImages.kt +++ b/booster-task-compression-pngquant/src/main/kotlin/com/didiglobal/booster/task/compression/pngquant/PngquantCompressImages.kt @@ -1,5 +1,6 @@ package com.didiglobal.booster.task.compression.pngquant +import com.android.SdkConstants import com.android.SdkConstants.DOT_PNG import com.didiglobal.booster.compression.CompressionResult import com.didiglobal.booster.compression.task.ActionData @@ -24,7 +25,9 @@ internal open class PngquantCompressImages : AbstractPngquantCompressImages() { override fun compress() { val pngquant = this.compressor.canonicalPath - images.parallelStream().map { + images.parallelStream().filter { + this.filter("${it.parent.substringBefore(SdkConstants.RES_QUALIFIER_SEP)}/${it.nameWithoutExtension}") + }.map { ActionData(it, it, listOf(pngquant, "--strip", "--skip-if-larger", "-f", "--ext", DOT_PNG, "-s", "${options.speed}", "-Q", "${options.quality}-100", it.absolutePath)) }.forEach { val s0 = it.input.length() diff --git a/booster-task-compression-pngquant/src/main/kotlin/com/didiglobal/booster/task/compression/pngquant/PngquantCompressionVariantProcessor.kt b/booster-task-compression-pngquant/src/main/kotlin/com/didiglobal/booster/task/compression/pngquant/PngquantCompressionVariantProcessor.kt index 53be6ab41..ce92583d4 100644 --- a/booster-task-compression-pngquant/src/main/kotlin/com/didiglobal/booster/task/compression/pngquant/PngquantCompressionVariantProcessor.kt +++ b/booster-task-compression-pngquant/src/main/kotlin/com/didiglobal/booster/task/compression/pngquant/PngquantCompressionVariantProcessor.kt @@ -3,6 +3,7 @@ package com.didiglobal.booster.task.compression.pngquant import com.android.build.gradle.api.BaseVariant import com.didiglobal.booster.annotations.Priority import com.didiglobal.booster.compression.CompressionResults +import com.didiglobal.booster.compression.ResourceNameFilter import com.didiglobal.booster.compression.generateReport import com.didiglobal.booster.compression.isFlatPngExceptRaw import com.didiglobal.booster.compression.isPngExceptRaw @@ -11,6 +12,7 @@ import com.didiglobal.booster.gradle.aapt2Enabled import com.didiglobal.booster.gradle.mergeResourcesTask import com.didiglobal.booster.gradle.mergedRes import com.didiglobal.booster.gradle.project +import com.didiglobal.booster.kotlinx.Wildcard import com.didiglobal.booster.kotlinx.search import com.didiglobal.booster.task.spi.VariantProcessor import com.google.auto.service.AutoService @@ -24,16 +26,25 @@ class PngquantCompressionVariantProcessor : VariantProcessor { override fun process(variant: BaseVariant) { val results = CompressionResults() - val filter = if (variant.project.aapt2Enabled) ::isFlatPngExceptRaw else ::isPngExceptRaw val compress = variant.project.tasks.withType(CompressImages::class.java).filter { it.variant.name == variant.name } + val filter: ResourceNameFilter = if (variant.project.hasProperty(PROPERTY_IGNORES)) { + val ignores = "${variant.project.property(PROPERTY_IGNORES)}".trim().split(',').map(Wildcard.Companion::valueOf).toSet(); + { res -> ignores.none { it.matches(res) } } + } else { + { true } + } Pngquant.get(variant)?.newCompressionTaskCreator()?.createCompressionTask(variant, results, "resources", { - variant.mergedRes.search(filter) - }, *(compress + variant.mergeResourcesTask).toTypedArray())?.doLast { + variant.mergedRes.search(if (variant.project.aapt2Enabled) ::isFlatPngExceptRaw else ::isPngExceptRaw) + }, filter, *(compress + variant.mergeResourcesTask).toTypedArray())?.doLast { results.generateReport(variant, Build.ARTIFACT) } } -} \ No newline at end of file +} + +private val PROPERTY_PREFIX = Build.ARTIFACT.replace('-', '.') + +private val PROPERTY_IGNORES = "$PROPERTY_PREFIX.ignores" \ No newline at end of file From 26390f3d458ce24b1a0d680a4ee443fbc8a20696 Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Sat, 12 Dec 2020 22:09:27 +0800 Subject: [PATCH 005/187] Support property `booster.task.compression.cwebp.ignores` to ignore resources by wildcards --- .../cwebp/CwebpCompressFlatImages.kt | 2 ++ .../compression/cwebp/CwebpCompressImages.kt | 5 ++++- .../cwebp/CwebpCompressionVariantProcessor.kt | 19 +++++++++++++++---- 3 files changed, 21 insertions(+), 5 deletions(-) diff --git a/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/CwebpCompressFlatImages.kt b/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/CwebpCompressFlatImages.kt index 0250a4bb8..2210de43d 100644 --- a/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/CwebpCompressFlatImages.kt +++ b/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/CwebpCompressFlatImages.kt @@ -59,6 +59,8 @@ internal open class CwebpCompressFlatImages : AbstractCwebpCompressImages() { images.parallelStream().map { it to it.metadata + }.filter { + this.filter(it.second.resourceName) }.filter { isNotLauncherIcon(it.first, it.second) }.filter { diff --git a/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/CwebpCompressImages.kt b/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/CwebpCompressImages.kt index d6a9b82e9..335ef1aed 100644 --- a/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/CwebpCompressImages.kt +++ b/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/CwebpCompressImages.kt @@ -1,5 +1,6 @@ package com.didiglobal.booster.task.compression.cwebp +import com.android.SdkConstants import com.didiglobal.booster.compression.CompressionResult import com.didiglobal.booster.compression.task.ActionData import com.didiglobal.booster.kotlinx.CSI_RED @@ -22,7 +23,9 @@ internal open class CwebpCompressImages : AbstractCwebpCompressImages() { override fun compress(filter: (File) -> Boolean) { val cwebp = compressor.canonicalPath - images.parallelStream().filter(filter).map { input -> + images.parallelStream().filter { + this.filter("${it.parent.substringBefore(SdkConstants.RES_QUALIFIER_SEP)}/${it.nameWithoutExtension}") + }.filter(filter).map { input -> val output = File(input.absolutePath.substringBeforeLast('.') + ".webp") ActionData(input, output, listOf(cwebp, "-mt", "-quiet", "-q", options.quality.toString(), "-o", output.absolutePath, input.absolutePath)) }.forEach { diff --git a/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/CwebpCompressionVariantProcessor.kt b/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/CwebpCompressionVariantProcessor.kt index 9d71dd84f..92e5ce95d 100644 --- a/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/CwebpCompressionVariantProcessor.kt +++ b/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/CwebpCompressionVariantProcessor.kt @@ -2,6 +2,7 @@ package com.didiglobal.booster.task.compression.cwebp import com.android.build.gradle.api.BaseVariant import com.didiglobal.booster.compression.CompressionResults +import com.didiglobal.booster.compression.ResourceNameFilter import com.didiglobal.booster.compression.generateReport import com.didiglobal.booster.compression.isFlatPngExceptRaw import com.didiglobal.booster.compression.isPngExceptRaw @@ -9,6 +10,7 @@ import com.didiglobal.booster.gradle.aapt2Enabled import com.didiglobal.booster.gradle.mergeResourcesTask import com.didiglobal.booster.gradle.mergedRes import com.didiglobal.booster.gradle.project +import com.didiglobal.booster.kotlinx.Wildcard import com.didiglobal.booster.kotlinx.search import com.didiglobal.booster.task.spi.VariantProcessor import com.google.auto.service.AutoService @@ -21,12 +23,21 @@ class CwebpCompressionVariantProcessor : VariantProcessor { override fun process(variant: BaseVariant) { val results = CompressionResults() - val filter = if (variant.project.aapt2Enabled) ::isFlatPngExceptRaw else ::isPngExceptRaw + val filter: ResourceNameFilter = if (variant.project.hasProperty(PROPERTY_IGNORES)) { + val ignores = "${variant.project.property(PROPERTY_IGNORES)}".trim().split(',').map(Wildcard.Companion::valueOf).toSet(); + { res -> ignores.none { it.matches(res) } } + } else { + { true } + } Cwebp.get(variant)?.newCompressionTaskCreator()?.createCompressionTask(variant, results, "resources", { - variant.mergedRes.search(filter) - }, variant.mergeResourcesTask)?.doLast { + variant.mergedRes.search(if (variant.project.aapt2Enabled) ::isFlatPngExceptRaw else ::isPngExceptRaw) + }, filter, variant.mergeResourcesTask)?.doLast { results.generateReport(variant, Build.ARTIFACT) } } -} \ No newline at end of file +} + +private val PROPERTY_PREFIX = Build.ARTIFACT.replace('-', '.') + +private val PROPERTY_IGNORES = "$PROPERTY_PREFIX.ignores" \ No newline at end of file From 1824b8a913a4a6bb8f0a382a21d9b4bd1ab24626 Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Sat, 12 Dec 2020 22:17:17 +0800 Subject: [PATCH 006/187] Release version 3.1.0-alpha1 --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index a73b1b918..72ab46862 100644 --- a/build.gradle +++ b/build.gradle @@ -31,7 +31,7 @@ allprojects { project -> apply plugin: 'de.marcphilipp.nexus-publish' group = 'com.didiglobal.booster' - version = '3.0.0' + version = '3.1.0-alpha1' repositories { mavenLocal() From 044c2cf68a8a3be28473c659ae887719e589738f Mon Sep 17 00:00:00 2001 From: Johnson Lee Date: Mon, 14 Dec 2020 18:22:47 +0800 Subject: [PATCH 007/187] override the resource name filter of compression task --- .../booster/compression/SimpleCompressionTaskCreator.kt | 1 + 1 file changed, 1 insertion(+) diff --git a/booster-task-compression/src/main/kotlin/com/didiglobal/booster/compression/SimpleCompressionTaskCreator.kt b/booster-task-compression/src/main/kotlin/com/didiglobal/booster/compression/SimpleCompressionTaskCreator.kt index edee2f941..35da79421 100644 --- a/booster-task-compression/src/main/kotlin/com/didiglobal/booster/compression/SimpleCompressionTaskCreator.kt +++ b/booster-task-compression/src/main/kotlin/com/didiglobal/booster/compression/SimpleCompressionTaskCreator.kt @@ -29,6 +29,7 @@ class SimpleCompressionTaskCreator(private val tool: CompressionTool, private va task.tool = tool task.variant = variant task.results = results + task.filter = filter task.supplier = { supplier().filter { it.length() > 0 }.sortedBy { it } } From 0e084290a72772a92ab14f3473bdc9d0da3b00f8 Mon Sep 17 00:00:00 2001 From: Johnson Lee Date: Mon, 14 Dec 2020 18:37:03 +0800 Subject: [PATCH 008/187] Release version 3.1.0-alpha2 --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 72ab46862..160ea3c82 100644 --- a/build.gradle +++ b/build.gradle @@ -31,7 +31,7 @@ allprojects { project -> apply plugin: 'de.marcphilipp.nexus-publish' group = 'com.didiglobal.booster' - version = '3.1.0-alpha1' + version = '3.1.0-alpha2' repositories { mavenLocal() From 5bf40a02f6b20cc32200847543022e5107960ba9 Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Mon, 14 Dec 2020 20:23:41 +0800 Subject: [PATCH 009/187] [skip ci] Update README --- booster-task-compression-cwebp/README.md | 7 ++++--- booster-task-compression-pngquant/README.md | 1 + 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/booster-task-compression-cwebp/README.md b/booster-task-compression-cwebp/README.md index 7244832ff..8d654b747 100644 --- a/booster-task-compression-cwebp/README.md +++ b/booster-task-compression-cwebp/README.md @@ -6,9 +6,10 @@ This module is used for assets and resource compression using `cwebp` The following table shows the properties that transformer supports: -| Property | Description | -| ---------------------------------------- | ---------------------------------------- | -| `booster.task.compression.cwebp.quality` | compression quality (the default is 80) | +| Property | Description | Example | +| ---------------------------------------- | ---------------------------------------- | ---------------------------------- | +| `booster.task.compression.cwebp.quality` | compression quality (the default is 80) | | +| `booster.task.compression.cwebp.ignores` | ignore wildcards (separated by comma) | `mipmap/*,drawable/abc_*` | ## Using `cwebp` diff --git a/booster-task-compression-pngquant/README.md b/booster-task-compression-pngquant/README.md index 7ad03a631..4539be668 100644 --- a/booster-task-compression-pngquant/README.md +++ b/booster-task-compression-pngquant/README.md @@ -13,6 +13,7 @@ The following table shows the properties that transformer supports: | -------------------------------------------------- | ------------------------------------------------------------ | ---------------------------------- | | `booster.task.compression.pngquant.option.quality` | compression quality (this default is 80) | | | `booster.task.compression.pngquant.option.speed` | compression speed (the default is 3) | | +| `booster.task.compression.pngquant.ignores` | ignore wildcards (separated by comma) | `mipmap/*,drawable/abc_*` | ## Using `pngquant` From 37196df1a5a6abf517711fe20d1b1ed189fded8a Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Mon, 14 Dec 2020 22:52:42 +0800 Subject: [PATCH 010/187] Refactor ignoring resources from compression --- .../booster/aapt2/Aapt2Container.kt | 10 ++++-- .../didiglobal/booster/aapt2/Aapt2Parser.kt | 11 +++--- .../cwebp/CwebpCompressFlatImages.kt | 8 ++--- .../compression/cwebp/CwebpCompressImages.kt | 5 +-- .../cwebp/CwebpCompressionVariantProcessor.kt | 13 +++---- .../pngquant/PngquantCompressFlatImages.kt | 4 +-- .../pngquant/PngquantCompressImages.kt | 5 +-- .../PngquantCompressionVariantProcessor.kt | 13 +++---- .../compression/CompressionTaskCreator.kt | 9 +++-- .../SimpleCompressionTaskCreator.kt | 7 ++-- .../compression/task/CompressImages.kt | 34 +++++++++++++++++-- 11 files changed, 70 insertions(+), 49 deletions(-) diff --git a/booster-aapt2/src/main/kotlin/com/didiglobal/booster/aapt2/Aapt2Container.kt b/booster-aapt2/src/main/kotlin/com/didiglobal/booster/aapt2/Aapt2Container.kt index a4d1831b4..7866c2d92 100644 --- a/booster-aapt2/src/main/kotlin/com/didiglobal/booster/aapt2/Aapt2Container.kt +++ b/booster-aapt2/src/main/kotlin/com/didiglobal/booster/aapt2/Aapt2Container.kt @@ -13,9 +13,13 @@ class Aapt2Container(val header: Header, private vararg val _entries: Entry<*>) data class Metadata(val resourceName: String, val sourcePath: String, val configuration: Configuration) { - val sourceFile = File(sourcePath) + val sourceFile: File by lazy { + File(sourcePath) + } - val resourcePath = "${sourceFile.parentFile.name}${File.separatorChar}${sourceFile.name}" + val resourcePath: String by lazy { + sourceFile.resourcePath + } } @@ -27,7 +31,7 @@ class Aapt2Container(val header: Header, private vararg val _entries: Entry<*>) open class Png(header: ResourcesInternal.CompiledFile, val image: ByteBuffer) : ResFile(header) - open class Xml(file: ResourcesInternal.CompiledFile, val root: Resources.XmlNode): ResFile(file) + open class Xml(file: ResourcesInternal.CompiledFile, val root: Resources.XmlNode) : ResFile(file) val entries: List> get() = listOf(*_entries) diff --git a/booster-aapt2/src/main/kotlin/com/didiglobal/booster/aapt2/Aapt2Parser.kt b/booster-aapt2/src/main/kotlin/com/didiglobal/booster/aapt2/Aapt2Parser.kt index 305dff3eb..764f9283e 100644 --- a/booster-aapt2/src/main/kotlin/com/didiglobal/booster/aapt2/Aapt2Parser.kt +++ b/booster-aapt2/src/main/kotlin/com/didiglobal/booster/aapt2/Aapt2Parser.kt @@ -261,8 +261,11 @@ private fun BinaryParser.parsePng(header: ResourcesInternal.CompiledFile): Png { } val ResourcesInternal.CompiledFile.resourcePath: String - get() { - val src = File(this.sourcePath) - return "${src.parentFile.name}${File.separatorChar}${src.name}" - } + get() = File(this.sourcePath).resourcePath + +val File.resourcePath: String + get() = "${parentFile.name}${File.separatorChar}${name}" + +val File.resourceName: String + get() = "${parentFile.name}${File.separatorChar}${nameWithoutExtension}" diff --git a/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/CwebpCompressFlatImages.kt b/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/CwebpCompressFlatImages.kt index 2210de43d..9830eac25 100644 --- a/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/CwebpCompressFlatImages.kt +++ b/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/CwebpCompressFlatImages.kt @@ -50,7 +50,7 @@ internal open class CwebpCompressFlatImages : AbstractCwebpCompressImages() { // Google Play only accept APK with PNG format launcher icon // https://developer.android.com/topic/performance/reduce-apk-size#use-webp - val isNotLauncherIcon: (File, Aapt2Container.Metadata) -> Boolean = { input, metadata -> + val isNotLauncherIcon: (Pair) -> Boolean = { (input, metadata) -> if (!icons.contains(metadata.resourceName)) true else false.also { val s0 = input.length() results.add(CompressionResult(input, s0, s0, File(metadata.sourcePath))) @@ -59,11 +59,7 @@ internal open class CwebpCompressFlatImages : AbstractCwebpCompressImages() { images.parallelStream().map { it to it.metadata - }.filter { - this.filter(it.second.resourceName) - }.filter { - isNotLauncherIcon(it.first, it.second) - }.filter { + }.filter(this::shouldIgnore).filter(isNotLauncherIcon).filter { filter(File(it.second.sourcePath)) }.map { val output = compressedRes.file("${it.second.resourcePath.substringBeforeLast('.')}.webp") diff --git a/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/CwebpCompressImages.kt b/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/CwebpCompressImages.kt index 335ef1aed..ff58a9167 100644 --- a/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/CwebpCompressImages.kt +++ b/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/CwebpCompressImages.kt @@ -1,6 +1,5 @@ package com.didiglobal.booster.task.compression.cwebp -import com.android.SdkConstants import com.didiglobal.booster.compression.CompressionResult import com.didiglobal.booster.compression.task.ActionData import com.didiglobal.booster.kotlinx.CSI_RED @@ -23,9 +22,7 @@ internal open class CwebpCompressImages : AbstractCwebpCompressImages() { override fun compress(filter: (File) -> Boolean) { val cwebp = compressor.canonicalPath - images.parallelStream().filter { - this.filter("${it.parent.substringBefore(SdkConstants.RES_QUALIFIER_SEP)}/${it.nameWithoutExtension}") - }.filter(filter).map { input -> + images.parallelStream().filter(this::shouldIgnore).filter(filter).map { input -> val output = File(input.absolutePath.substringBeforeLast('.') + ".webp") ActionData(input, output, listOf(cwebp, "-mt", "-quiet", "-q", options.quality.toString(), "-o", output.absolutePath, input.absolutePath)) }.forEach { diff --git a/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/CwebpCompressionVariantProcessor.kt b/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/CwebpCompressionVariantProcessor.kt index 92e5ce95d..312b23dd4 100644 --- a/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/CwebpCompressionVariantProcessor.kt +++ b/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/CwebpCompressionVariantProcessor.kt @@ -2,7 +2,6 @@ package com.didiglobal.booster.task.compression.cwebp import com.android.build.gradle.api.BaseVariant import com.didiglobal.booster.compression.CompressionResults -import com.didiglobal.booster.compression.ResourceNameFilter import com.didiglobal.booster.compression.generateReport import com.didiglobal.booster.compression.isFlatPngExceptRaw import com.didiglobal.booster.compression.isPngExceptRaw @@ -23,15 +22,13 @@ class CwebpCompressionVariantProcessor : VariantProcessor { override fun process(variant: BaseVariant) { val results = CompressionResults() - val filter: ResourceNameFilter = if (variant.project.hasProperty(PROPERTY_IGNORES)) { - val ignores = "${variant.project.property(PROPERTY_IGNORES)}".trim().split(',').map(Wildcard.Companion::valueOf).toSet(); - { res -> ignores.none { it.matches(res) } } - } else { - { true } - } + val ignores = variant.project.findProperty(PROPERTY_IGNORES)?.toString()?.trim()?.split(',')?.map { + Wildcard(it) + }?.toSet() ?: emptySet() + Cwebp.get(variant)?.newCompressionTaskCreator()?.createCompressionTask(variant, results, "resources", { variant.mergedRes.search(if (variant.project.aapt2Enabled) ::isFlatPngExceptRaw else ::isPngExceptRaw) - }, filter, variant.mergeResourcesTask)?.doLast { + }, ignores, variant.mergeResourcesTask)?.doLast { results.generateReport(variant, Build.ARTIFACT) } } diff --git a/booster-task-compression-pngquant/src/main/kotlin/com/didiglobal/booster/task/compression/pngquant/PngquantCompressFlatImages.kt b/booster-task-compression-pngquant/src/main/kotlin/com/didiglobal/booster/task/compression/pngquant/PngquantCompressFlatImages.kt index 46e37f7f3..58f254d2e 100644 --- a/booster-task-compression-pngquant/src/main/kotlin/com/didiglobal/booster/task/compression/pngquant/PngquantCompressFlatImages.kt +++ b/booster-task-compression-pngquant/src/main/kotlin/com/didiglobal/booster/task/compression/pngquant/PngquantCompressFlatImages.kt @@ -47,9 +47,7 @@ internal open class PngquantCompressFlatImages : AbstractPngquantCompressImages( images.parallelStream().map { it to it.metadata - }.filter { - this.filter(it.second.resourceName) - }.map { + }.filter(this::shouldIgnore).map { val output = compressedRes.file("${it.second.resourcePath.substringBeforeLast('.')}$DOT_PNG") Aapt2ActionData(it.first, it.second, output, listOf(pngquant, "--strip", "--skip-if-larger", "-f", "-o", output.absolutePath, "-s", "${options.speed}", "-Q", "${options.quality}-100", it.second.sourcePath), diff --git a/booster-task-compression-pngquant/src/main/kotlin/com/didiglobal/booster/task/compression/pngquant/PngquantCompressImages.kt b/booster-task-compression-pngquant/src/main/kotlin/com/didiglobal/booster/task/compression/pngquant/PngquantCompressImages.kt index a2803ab6f..70b67eaa3 100644 --- a/booster-task-compression-pngquant/src/main/kotlin/com/didiglobal/booster/task/compression/pngquant/PngquantCompressImages.kt +++ b/booster-task-compression-pngquant/src/main/kotlin/com/didiglobal/booster/task/compression/pngquant/PngquantCompressImages.kt @@ -1,6 +1,5 @@ package com.didiglobal.booster.task.compression.pngquant -import com.android.SdkConstants import com.android.SdkConstants.DOT_PNG import com.didiglobal.booster.compression.CompressionResult import com.didiglobal.booster.compression.task.ActionData @@ -25,9 +24,7 @@ internal open class PngquantCompressImages : AbstractPngquantCompressImages() { override fun compress() { val pngquant = this.compressor.canonicalPath - images.parallelStream().filter { - this.filter("${it.parent.substringBefore(SdkConstants.RES_QUALIFIER_SEP)}/${it.nameWithoutExtension}") - }.map { + images.parallelStream().filter(this::shouldIgnore).map { ActionData(it, it, listOf(pngquant, "--strip", "--skip-if-larger", "-f", "--ext", DOT_PNG, "-s", "${options.speed}", "-Q", "${options.quality}-100", it.absolutePath)) }.forEach { val s0 = it.input.length() diff --git a/booster-task-compression-pngquant/src/main/kotlin/com/didiglobal/booster/task/compression/pngquant/PngquantCompressionVariantProcessor.kt b/booster-task-compression-pngquant/src/main/kotlin/com/didiglobal/booster/task/compression/pngquant/PngquantCompressionVariantProcessor.kt index ce92583d4..65af7c1d3 100644 --- a/booster-task-compression-pngquant/src/main/kotlin/com/didiglobal/booster/task/compression/pngquant/PngquantCompressionVariantProcessor.kt +++ b/booster-task-compression-pngquant/src/main/kotlin/com/didiglobal/booster/task/compression/pngquant/PngquantCompressionVariantProcessor.kt @@ -3,7 +3,6 @@ package com.didiglobal.booster.task.compression.pngquant import com.android.build.gradle.api.BaseVariant import com.didiglobal.booster.annotations.Priority import com.didiglobal.booster.compression.CompressionResults -import com.didiglobal.booster.compression.ResourceNameFilter import com.didiglobal.booster.compression.generateReport import com.didiglobal.booster.compression.isFlatPngExceptRaw import com.didiglobal.booster.compression.isPngExceptRaw @@ -29,15 +28,13 @@ class PngquantCompressionVariantProcessor : VariantProcessor { val compress = variant.project.tasks.withType(CompressImages::class.java).filter { it.variant.name == variant.name } - val filter: ResourceNameFilter = if (variant.project.hasProperty(PROPERTY_IGNORES)) { - val ignores = "${variant.project.property(PROPERTY_IGNORES)}".trim().split(',').map(Wildcard.Companion::valueOf).toSet(); - { res -> ignores.none { it.matches(res) } } - } else { - { true } - } + val ignores = variant.project.findProperty(PROPERTY_IGNORES)?.toString()?.trim()?.split(',')?.map { + Wildcard(it) + }?.toSet() ?: emptySet() + Pngquant.get(variant)?.newCompressionTaskCreator()?.createCompressionTask(variant, results, "resources", { variant.mergedRes.search(if (variant.project.aapt2Enabled) ::isFlatPngExceptRaw else ::isPngExceptRaw) - }, filter, *(compress + variant.mergeResourcesTask).toTypedArray())?.doLast { + }, ignores, *(compress + variant.mergeResourcesTask).toTypedArray())?.doLast { results.generateReport(variant, Build.ARTIFACT) } diff --git a/booster-task-compression/src/main/kotlin/com/didiglobal/booster/compression/CompressionTaskCreator.kt b/booster-task-compression/src/main/kotlin/com/didiglobal/booster/compression/CompressionTaskCreator.kt index 94c8944a7..0a8dabdeb 100644 --- a/booster-task-compression/src/main/kotlin/com/didiglobal/booster/compression/CompressionTaskCreator.kt +++ b/booster-task-compression/src/main/kotlin/com/didiglobal/booster/compression/CompressionTaskCreator.kt @@ -2,6 +2,7 @@ package com.didiglobal.booster.compression import com.android.build.gradle.api.BaseVariant import com.didiglobal.booster.compression.task.CompressImages +import com.didiglobal.booster.kotlinx.Wildcard import org.gradle.api.Task import java.io.File import kotlin.reflect.KClass @@ -29,7 +30,7 @@ interface CompressionTaskCreator { * @param supplier The image supplier * @param deps The dependent tasks */ - fun createCompressionTask(variant: BaseVariant, results: CompressionResults, name: String, supplier: () -> Collection, vararg deps: Task): CompressImages = createCompressionTask(variant, results, name, supplier, { true }, *deps) + fun createCompressionTask(variant: BaseVariant, results: CompressionResults, name: String, supplier: () -> Collection, vararg deps: Task): CompressImages = createCompressionTask(variant, results, name, supplier, emptySet(), *deps) /** * Returns a task for compression @@ -38,11 +39,9 @@ interface CompressionTaskCreator { * @param results The compression results for report generating * @param name The name of task * @param supplier The image supplier - * @param filter The resource name filter + * @param ignores wildcard of the resource name which to be excluded * @param deps The dependent tasks */ - fun createCompressionTask(variant: BaseVariant, results: CompressionResults, name: String, supplier: () -> Collection, filter: ResourceNameFilter, vararg deps: Task): CompressImages + fun createCompressionTask(variant: BaseVariant, results: CompressionResults, name: String, supplier: () -> Collection, ignores: Set = emptySet(), vararg deps: Task): CompressImages } - -typealias ResourceNameFilter = (String) -> Boolean diff --git a/booster-task-compression/src/main/kotlin/com/didiglobal/booster/compression/SimpleCompressionTaskCreator.kt b/booster-task-compression/src/main/kotlin/com/didiglobal/booster/compression/SimpleCompressionTaskCreator.kt index 35da79421..8c5222c38 100644 --- a/booster-task-compression/src/main/kotlin/com/didiglobal/booster/compression/SimpleCompressionTaskCreator.kt +++ b/booster-task-compression/src/main/kotlin/com/didiglobal/booster/compression/SimpleCompressionTaskCreator.kt @@ -3,11 +3,14 @@ package com.didiglobal.booster.compression import com.android.build.gradle.api.BaseVariant import com.didiglobal.booster.command.CommandInstaller import com.didiglobal.booster.compression.task.CompressImages +import com.didiglobal.booster.compression.task.MATCH_ALL_RESOURCES +import com.didiglobal.booster.compression.task.excludes import com.didiglobal.booster.gradle.aapt2Enabled import com.didiglobal.booster.gradle.bundleResourcesTask import com.didiglobal.booster.gradle.mergeResourcesTask import com.didiglobal.booster.gradle.processResTask import com.didiglobal.booster.gradle.project +import com.didiglobal.booster.kotlinx.Wildcard import org.gradle.api.Task import java.io.File import kotlin.reflect.KClass @@ -21,7 +24,7 @@ class SimpleCompressionTaskCreator(private val tool: CompressionTool, private va override fun getCompressionTaskClass(aapt2: Boolean) = compressor(aapt2) - override fun createCompressionTask(variant: BaseVariant, results: CompressionResults, name: String, supplier: () -> Collection, filter: (String) -> Boolean, vararg deps: Task): CompressImages { + override fun createCompressionTask(variant: BaseVariant, results: CompressionResults, name: String, supplier: () -> Collection, ignores: Set, vararg deps: Task): CompressImages { val aapt2 = variant.project.aapt2Enabled val install = getCommandInstaller(variant) @@ -29,7 +32,7 @@ class SimpleCompressionTaskCreator(private val tool: CompressionTool, private va task.tool = tool task.variant = variant task.results = results - task.filter = filter + task.filter = if (ignores.isNotEmpty()) excludes(ignores) else MATCH_ALL_RESOURCES task.supplier = { supplier().filter { it.length() > 0 }.sortedBy { it } } diff --git a/booster-task-compression/src/main/kotlin/com/didiglobal/booster/compression/task/CompressImages.kt b/booster-task-compression/src/main/kotlin/com/didiglobal/booster/compression/task/CompressImages.kt index 58528a880..3ea7868e6 100644 --- a/booster-task-compression/src/main/kotlin/com/didiglobal/booster/compression/task/CompressImages.kt +++ b/booster-task-compression/src/main/kotlin/com/didiglobal/booster/compression/task/CompressImages.kt @@ -1,13 +1,15 @@ package com.didiglobal.booster.compression.task +import com.android.SdkConstants import com.android.build.gradle.api.BaseVariant import com.didiglobal.booster.aapt2.Aapt2Container import com.didiglobal.booster.command.Command import com.didiglobal.booster.command.CommandInstaller import com.didiglobal.booster.compression.CompressionOptions +import com.didiglobal.booster.compression.CompressionResult import com.didiglobal.booster.compression.CompressionResults import com.didiglobal.booster.compression.CompressionTool -import com.didiglobal.booster.compression.ResourceNameFilter +import com.didiglobal.booster.kotlinx.Wildcard import org.gradle.api.DefaultTask import org.gradle.api.tasks.Input import org.gradle.api.tasks.InputFiles @@ -35,7 +37,7 @@ abstract class CompressImages : DefaultTask() { /** * The resource path filter */ - var filter: ResourceNameFilter = { true } + var filter: ResourceNameFilter = MATCH_ALL_RESOURCES val compressor: File get() = project.tasks.withType(CommandInstaller::class.java).find { @@ -55,6 +57,34 @@ abstract class CompressImages : DefaultTask() { val images: Collection get() = supplier() + protected open fun shouldIgnore(arg: Pair): Boolean { + val (input, metadata) = arg + return if (!filter(metadata.resourceName)) true else false.also { + ignore(input, File(metadata.sourcePath)) + } + } + + protected open fun shouldIgnore(input: File): Boolean { + return if (!filter("${input.parent.substringBefore(SdkConstants.RES_QUALIFIER_SEP)}/${input.nameWithoutExtension}")) true else false.also { + ignore(input, input) + } + } + + private fun ignore(dest: File, src: File) { + val s0 = dest.length() + results.add(CompressionResult(dest, s0, s0, src)) + } + +} + +internal typealias ResourceNameFilter = (String) -> Boolean + +internal val MATCH_ALL_RESOURCES: ResourceNameFilter = { true } + +internal fun excludes(ignores: Set): ResourceNameFilter = { res -> + ignores.none { + it.matches(res) + } } data class ActionData(val input: File, val output: File, val cmdline: List) From e664d05c8c74c400bbb33bb5a2c7878029033db8 Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Mon, 14 Dec 2020 22:53:10 +0800 Subject: [PATCH 011/187] Release version 3.1.0-alpha3 --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 160ea3c82..e72116fde 100644 --- a/build.gradle +++ b/build.gradle @@ -31,7 +31,7 @@ allprojects { project -> apply plugin: 'de.marcphilipp.nexus-publish' group = 'com.didiglobal.booster' - version = '3.1.0-alpha2' + version = '3.1.0-alpha3' repositories { mavenLocal() From 4516931a4a166ed79d4799cbdc0e80de44853a5e Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Tue, 15 Dec 2020 00:51:36 +0800 Subject: [PATCH 012/187] Refactor ignoring resources from compression --- .../com/didiglobal/booster/aapt2/Aapt2Parser.kt | 2 +- .../cwebp/CwebpCompressFlatImages.kt | 5 ++--- .../compression/cwebp/CwebpCompressImages.kt | 2 +- .../pngquant/PngquantCompressFlatImages.kt | 2 +- .../pngquant/PngquantCompressImages.kt | 2 +- .../booster/compression/task/CompressImages.kt | 17 +++++++++-------- 6 files changed, 15 insertions(+), 15 deletions(-) diff --git a/booster-aapt2/src/main/kotlin/com/didiglobal/booster/aapt2/Aapt2Parser.kt b/booster-aapt2/src/main/kotlin/com/didiglobal/booster/aapt2/Aapt2Parser.kt index 764f9283e..7c67e57dd 100644 --- a/booster-aapt2/src/main/kotlin/com/didiglobal/booster/aapt2/Aapt2Parser.kt +++ b/booster-aapt2/src/main/kotlin/com/didiglobal/booster/aapt2/Aapt2Parser.kt @@ -267,5 +267,5 @@ val File.resourcePath: String get() = "${parentFile.name}${File.separatorChar}${name}" val File.resourceName: String - get() = "${parentFile.name}${File.separatorChar}${nameWithoutExtension}" + get() = "${parentFile.name.substringBefore('-')}${File.separatorChar}${nameWithoutExtension}" diff --git a/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/CwebpCompressFlatImages.kt b/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/CwebpCompressFlatImages.kt index 9830eac25..381c8cfa5 100644 --- a/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/CwebpCompressFlatImages.kt +++ b/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/CwebpCompressFlatImages.kt @@ -52,14 +52,13 @@ internal open class CwebpCompressFlatImages : AbstractCwebpCompressImages() { // https://developer.android.com/topic/performance/reduce-apk-size#use-webp val isNotLauncherIcon: (Pair) -> Boolean = { (input, metadata) -> if (!icons.contains(metadata.resourceName)) true else false.also { - val s0 = input.length() - results.add(CompressionResult(input, s0, s0, File(metadata.sourcePath))) + ignore(metadata.resourceName, input, File(metadata.sourcePath)) } } images.parallelStream().map { it to it.metadata - }.filter(this::shouldIgnore).filter(isNotLauncherIcon).filter { + }.filter(this::includes).filter(isNotLauncherIcon).filter { filter(File(it.second.sourcePath)) }.map { val output = compressedRes.file("${it.second.resourcePath.substringBeforeLast('.')}.webp") diff --git a/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/CwebpCompressImages.kt b/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/CwebpCompressImages.kt index ff58a9167..225ee66df 100644 --- a/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/CwebpCompressImages.kt +++ b/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/CwebpCompressImages.kt @@ -22,7 +22,7 @@ internal open class CwebpCompressImages : AbstractCwebpCompressImages() { override fun compress(filter: (File) -> Boolean) { val cwebp = compressor.canonicalPath - images.parallelStream().filter(this::shouldIgnore).filter(filter).map { input -> + images.parallelStream().filter(this::includes).filter(filter).map { input -> val output = File(input.absolutePath.substringBeforeLast('.') + ".webp") ActionData(input, output, listOf(cwebp, "-mt", "-quiet", "-q", options.quality.toString(), "-o", output.absolutePath, input.absolutePath)) }.forEach { diff --git a/booster-task-compression-pngquant/src/main/kotlin/com/didiglobal/booster/task/compression/pngquant/PngquantCompressFlatImages.kt b/booster-task-compression-pngquant/src/main/kotlin/com/didiglobal/booster/task/compression/pngquant/PngquantCompressFlatImages.kt index 58f254d2e..0f941ca2f 100644 --- a/booster-task-compression-pngquant/src/main/kotlin/com/didiglobal/booster/task/compression/pngquant/PngquantCompressFlatImages.kt +++ b/booster-task-compression-pngquant/src/main/kotlin/com/didiglobal/booster/task/compression/pngquant/PngquantCompressFlatImages.kt @@ -47,7 +47,7 @@ internal open class PngquantCompressFlatImages : AbstractPngquantCompressImages( images.parallelStream().map { it to it.metadata - }.filter(this::shouldIgnore).map { + }.filter(this::includes).map { val output = compressedRes.file("${it.second.resourcePath.substringBeforeLast('.')}$DOT_PNG") Aapt2ActionData(it.first, it.second, output, listOf(pngquant, "--strip", "--skip-if-larger", "-f", "-o", output.absolutePath, "-s", "${options.speed}", "-Q", "${options.quality}-100", it.second.sourcePath), diff --git a/booster-task-compression-pngquant/src/main/kotlin/com/didiglobal/booster/task/compression/pngquant/PngquantCompressImages.kt b/booster-task-compression-pngquant/src/main/kotlin/com/didiglobal/booster/task/compression/pngquant/PngquantCompressImages.kt index 70b67eaa3..3cd4d9eee 100644 --- a/booster-task-compression-pngquant/src/main/kotlin/com/didiglobal/booster/task/compression/pngquant/PngquantCompressImages.kt +++ b/booster-task-compression-pngquant/src/main/kotlin/com/didiglobal/booster/task/compression/pngquant/PngquantCompressImages.kt @@ -24,7 +24,7 @@ internal open class PngquantCompressImages : AbstractPngquantCompressImages() { override fun compress() { val pngquant = this.compressor.canonicalPath - images.parallelStream().filter(this::shouldIgnore).map { + images.parallelStream().filter(this::includes).map { ActionData(it, it, listOf(pngquant, "--strip", "--skip-if-larger", "-f", "--ext", DOT_PNG, "-s", "${options.speed}", "-Q", "${options.quality}-100", it.absolutePath)) }.forEach { val s0 = it.input.length() diff --git a/booster-task-compression/src/main/kotlin/com/didiglobal/booster/compression/task/CompressImages.kt b/booster-task-compression/src/main/kotlin/com/didiglobal/booster/compression/task/CompressImages.kt index 3ea7868e6..1fb2fff14 100644 --- a/booster-task-compression/src/main/kotlin/com/didiglobal/booster/compression/task/CompressImages.kt +++ b/booster-task-compression/src/main/kotlin/com/didiglobal/booster/compression/task/CompressImages.kt @@ -1,8 +1,8 @@ package com.didiglobal.booster.compression.task -import com.android.SdkConstants import com.android.build.gradle.api.BaseVariant import com.didiglobal.booster.aapt2.Aapt2Container +import com.didiglobal.booster.aapt2.resourceName import com.didiglobal.booster.command.Command import com.didiglobal.booster.command.CommandInstaller import com.didiglobal.booster.compression.CompressionOptions @@ -57,22 +57,23 @@ abstract class CompressImages : DefaultTask() { val images: Collection get() = supplier() - protected open fun shouldIgnore(arg: Pair): Boolean { + protected open fun includes(arg: Pair): Boolean { val (input, metadata) = arg - return if (!filter(metadata.resourceName)) true else false.also { - ignore(input, File(metadata.sourcePath)) + return if (filter(metadata.resourceName)) true else false.also { + ignore(metadata.resourceName, input, File(metadata.sourcePath)) } } - protected open fun shouldIgnore(input: File): Boolean { - return if (!filter("${input.parent.substringBefore(SdkConstants.RES_QUALIFIER_SEP)}/${input.nameWithoutExtension}")) true else false.also { - ignore(input, input) + protected open fun includes(input: File): Boolean { + return if (filter(input.resourceName)) true else false.also { + ignore(input.resourceName, input, input) } } - private fun ignore(dest: File, src: File) { + protected fun ignore(resName: String, dest: File, src: File) { val s0 = dest.length() results.add(CompressionResult(dest, s0, s0, src)) + logger.info("${tool.command.name}: exclude $resName $dest => $src") } } From 9a640166fa60c4e1fc688d755a260929ebb099be Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Tue, 15 Dec 2020 00:51:52 +0800 Subject: [PATCH 013/187] Release version 3.1.0-alpha4 --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index e72116fde..5135694ae 100644 --- a/build.gradle +++ b/build.gradle @@ -31,7 +31,7 @@ allprojects { project -> apply plugin: 'de.marcphilipp.nexus-publish' group = 'com.didiglobal.booster' - version = '3.1.0-alpha3' + version = '3.1.0-alpha4' repositories { mavenLocal() From 842cdbf302ddfa4bb65366ee6543e3b33a431124 Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Tue, 15 Dec 2020 00:57:26 +0800 Subject: [PATCH 014/187] [skip ci] Update README --- booster-task-compression-cwebp/README.md | 8 ++++---- booster-task-compression-pngquant/README.md | 10 +++++----- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/booster-task-compression-cwebp/README.md b/booster-task-compression-cwebp/README.md index 8d654b747..1dc3f5051 100644 --- a/booster-task-compression-cwebp/README.md +++ b/booster-task-compression-cwebp/README.md @@ -6,10 +6,10 @@ This module is used for assets and resource compression using `cwebp` The following table shows the properties that transformer supports: -| Property | Description | Example | -| ---------------------------------------- | ---------------------------------------- | ---------------------------------- | -| `booster.task.compression.cwebp.quality` | compression quality (the default is 80) | | -| `booster.task.compression.cwebp.ignores` | ignore wildcards (separated by comma) | `mipmap/*,drawable/abc_*` | +| Property | Description | Example | +| ---------------------------------------- | ---------------------------------------- | ------------------------------------------- | +| `booster.task.compression.cwebp.quality` | compression quality (the default is 80) | | +| `booster.task.compression.cwebp.ignores` | ignore wildcards (separated by comma) | `mipmap/ic_launcher*,drawable/ic_launcher*` | ## Using `cwebp` diff --git a/booster-task-compression-pngquant/README.md b/booster-task-compression-pngquant/README.md index 4539be668..ffa6ccad4 100644 --- a/booster-task-compression-pngquant/README.md +++ b/booster-task-compression-pngquant/README.md @@ -9,11 +9,11 @@ This module is used for assets and resource compression using `pngquant` The following table shows the properties that transformer supports: -| Property | Description | Example | -| -------------------------------------------------- | ------------------------------------------------------------ | ---------------------------------- | -| `booster.task.compression.pngquant.option.quality` | compression quality (this default is 80) | | -| `booster.task.compression.pngquant.option.speed` | compression speed (the default is 3) | | -| `booster.task.compression.pngquant.ignores` | ignore wildcards (separated by comma) | `mipmap/*,drawable/abc_*` | +| Property | Description | Example | +| -------------------------------------------------- | ----------------------------------------- | ------------------------------------------- | +| `booster.task.compression.pngquant.option.quality` | compression quality (this default is 80) | | +| `booster.task.compression.pngquant.option.speed` | compression speed (the default is 3) | | +| `booster.task.compression.pngquant.ignores` | ignore wildcards (separated by comma) | `mipmap/ic_launcher*,drawable/ic_launcher*` | ## Using `pngquant` From 58731830400d8005ee0dbd9adca98cc37aa66d8e Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Tue, 15 Dec 2020 04:17:01 +0800 Subject: [PATCH 015/187] Sanitize exception stack trace caught by ActivityThreadCallback --- .../instrument/ActivityThreadCallback.java | 10 ++++++++-- .../booster/instrument/Intrinsics.java | 17 ++++++++++++----- 2 files changed, 20 insertions(+), 7 deletions(-) diff --git a/booster-android-instrument-activity-thread/src/main/java/com/didiglobal/booster/instrument/ActivityThreadCallback.java b/booster-android-instrument-activity-thread/src/main/java/com/didiglobal/booster/instrument/ActivityThreadCallback.java index d5beb1314..de0fd3bcc 100644 --- a/booster-android-instrument-activity-thread/src/main/java/com/didiglobal/booster/instrument/ActivityThreadCallback.java +++ b/booster-android-instrument-activity-thread/src/main/java/com/didiglobal/booster/instrument/ActivityThreadCallback.java @@ -104,13 +104,19 @@ public final boolean handleMessage(final Message msg) { private void rethrowIfCausedByUser(final RuntimeException e) { if (isCausedByUser(e)) { - throw sanitizeStackTrace(e, getClass()); + for (Throwable cause = e; null != cause; cause = cause.getCause()) { + sanitizeStackTrace(cause, getClass()); + } + throw e; } } private void rethrowIfCausedByUser(final Error e) { if (isCausedByUser(e)) { - throw sanitizeStackTrace(e, getClass()); + for (Throwable cause = e; null != cause; cause = cause.getCause()) { + sanitizeStackTrace(cause, getClass()); + } + throw e; } } diff --git a/booster-android-instrument/src/main/java/com/didiglobal/booster/instrument/Intrinsics.java b/booster-android-instrument/src/main/java/com/didiglobal/booster/instrument/Intrinsics.java index cc3c078c6..d145d37f9 100644 --- a/booster-android-instrument/src/main/java/com/didiglobal/booster/instrument/Intrinsics.java +++ b/booster-android-instrument/src/main/java/com/didiglobal/booster/instrument/Intrinsics.java @@ -1,6 +1,8 @@ package com.didiglobal.booster.instrument; import java.util.ArrayList; +import java.util.Arrays; +import java.util.Iterator; public abstract class Intrinsics { @@ -8,17 +10,22 @@ public static T sanitizeStackTrace(T throwable, Class c return sanitizeStackTrace(throwable, clazz.getName()); } + @SuppressWarnings("Java8CollectionRemoveIf") public static T sanitizeStackTrace(T throwable, String classNameToDrop) { final StackTraceElement[] stackTrace = throwable.getStackTrace(); - final ArrayList newStackTrace = new ArrayList<>(stackTrace.length); + final ArrayList newStackTrace = new ArrayList<>(Arrays.asList(stackTrace)); - for (StackTraceElement ste : stackTrace) { - if (!classNameToDrop.equals(ste.getClassName())) { - newStackTrace.add(ste); + for (final Iterator i = newStackTrace.iterator(); i.hasNext();) { + final StackTraceElement ste = i.next(); + if (classNameToDrop.equals(ste.getClassName())) { + i.remove(); } } - throwable.setStackTrace(newStackTrace.toArray(new StackTraceElement[0])); + if (stackTrace.length != newStackTrace.size()) { + throwable.setStackTrace(newStackTrace.toArray(new StackTraceElement[0])); + } + return throwable; } From 8c5db4ff9f185ec79c031786b5a5813252d7e31e Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Tue, 15 Dec 2020 04:17:13 +0800 Subject: [PATCH 016/187] Release version 3.1.0-alpha5 --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 5135694ae..5bdefd23d 100644 --- a/build.gradle +++ b/build.gradle @@ -31,7 +31,7 @@ allprojects { project -> apply plugin: 'de.marcphilipp.nexus-publish' group = 'com.didiglobal.booster' - version = '3.1.0-alpha4' + version = '3.1.0-alpha5' repositories { mavenLocal() From 7bef4fc840eb3d50adf393a4d95eebd33dbf1784 Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Tue, 15 Dec 2020 22:58:24 +0800 Subject: [PATCH 017/187] Release version 3.1.0 --- README.md | 2 +- build.gradle | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index af1cc4036..c674d9302 100644 --- a/README.md +++ b/README.md @@ -72,7 +72,7 @@ The best practise of using Booster is integrating the specific module to solve t ```groovy buildscript { - ext.booster_version = '3.0.0' + ext.booster_version = '3.1.0' repositories { google() mavenCentral() diff --git a/build.gradle b/build.gradle index 5bdefd23d..9527b1774 100644 --- a/build.gradle +++ b/build.gradle @@ -31,7 +31,7 @@ allprojects { project -> apply plugin: 'de.marcphilipp.nexus-publish' group = 'com.didiglobal.booster' - version = '3.1.0-alpha5' + version = '3.1.0' repositories { mavenLocal() From c4ec3a52d9193963335c313570607a940ee8da9e Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Mon, 1 Feb 2021 21:00:13 +0800 Subject: [PATCH 018/187] Fix issue #216 --- .../main/kotlin/com/didiglobal/booster/gradle/BaseVariant.kt | 4 ++-- .../res/ProcessedResourcesCompressionVariantProcessor.kt | 2 +- .../booster/compression/SimpleCompressionTaskCreator.kt | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/BaseVariant.kt b/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/BaseVariant.kt index 69ab5ff7e..1cc233242 100644 --- a/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/BaseVariant.kt +++ b/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/BaseVariant.kt @@ -79,8 +79,8 @@ val BaseVariant.mergeResourcesTask: Task /** * The `processRes` task associates with this variant */ -val BaseVariant.processResTask: ProcessAndroidResources - get() = project.tasks.findByName(getTaskName("process", "Resources")) as ProcessAndroidResources +val BaseVariant.processResTask: ProcessAndroidResources? + get() = project.tasks.findByName(getTaskName("process", "Resources")) as? ProcessAndroidResources /** * The `bundleResources` tasks associates with this variant diff --git a/booster-task-compression-processed-res/src/main/kotlin/com/didiglobal/booster/task/compression/processed/res/ProcessedResourcesCompressionVariantProcessor.kt b/booster-task-compression-processed-res/src/main/kotlin/com/didiglobal/booster/task/compression/processed/res/ProcessedResourcesCompressionVariantProcessor.kt index b0a132d8d..cfc9a07bb 100644 --- a/booster-task-compression-processed-res/src/main/kotlin/com/didiglobal/booster/task/compression/processed/res/ProcessedResourcesCompressionVariantProcessor.kt +++ b/booster-task-compression-processed-res/src/main/kotlin/com/didiglobal/booster/task/compression/processed/res/ProcessedResourcesCompressionVariantProcessor.kt @@ -33,7 +33,7 @@ class ProcessedResourcesCompressionVariantProcessor : VariantProcessor { override fun process(variant: BaseVariant) { val results = CompressionResults() - variant.processResTask.doLast { + variant.processResTask?.doLast { variant.compressProcessedRes(results) variant.generateReport(results) } diff --git a/booster-task-compression/src/main/kotlin/com/didiglobal/booster/compression/SimpleCompressionTaskCreator.kt b/booster-task-compression/src/main/kotlin/com/didiglobal/booster/compression/SimpleCompressionTaskCreator.kt index 8c5222c38..eb3817c59 100644 --- a/booster-task-compression/src/main/kotlin/com/didiglobal/booster/compression/SimpleCompressionTaskCreator.kt +++ b/booster-task-compression/src/main/kotlin/com/didiglobal/booster/compression/SimpleCompressionTaskCreator.kt @@ -38,7 +38,7 @@ class SimpleCompressionTaskCreator(private val tool: CompressionTool, private va } }.apply { dependsOn(install, deps) - variant.processResTask.dependsOn(this) + variant.processResTask?.dependsOn(this) variant.bundleResourcesTask?.dependsOn(this) } } From 12a1824936c56813cfe907e93bbbcb4af11ef92e Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Mon, 1 Feb 2021 21:00:42 +0800 Subject: [PATCH 019/187] Release version 3.1.1-alpha-1 --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 9527b1774..5fdd74636 100644 --- a/build.gradle +++ b/build.gradle @@ -31,7 +31,7 @@ allprojects { project -> apply plugin: 'de.marcphilipp.nexus-publish' group = 'com.didiglobal.booster' - version = '3.1.0' + version = '3.1.1-alpha-1' repositories { mavenLocal() From 5a0af3ca0be9a266b2ac81c00d0a0bea01f05869 Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Tue, 9 Feb 2021 05:13:10 +0800 Subject: [PATCH 020/187] Fix integration test --- booster-android-gradle-v3_0/build.gradle | 2 +- .../src/integrationTest/resources/app.gradle | 2 +- .../src/integrationTest/resources/buildSrc/build.gradle | 2 +- .../src/integrationTest/resources/lib.gradle | 2 +- booster-android-gradle-v3_2/build.gradle | 2 +- .../src/integrationTest/resources/app.gradle | 2 +- .../src/integrationTest/resources/buildSrc/build.gradle | 2 +- .../src/integrationTest/resources/lib.gradle | 2 +- booster-android-gradle-v3_3/build.gradle | 2 +- .../src/integrationTest/resources/app.gradle | 2 +- .../src/integrationTest/resources/buildSrc/build.gradle | 2 +- .../src/integrationTest/resources/lib.gradle | 2 +- booster-android-gradle-v3_5/build.gradle | 2 +- .../src/integrationTest/resources/app.gradle | 2 +- .../src/integrationTest/resources/buildSrc/build.gradle | 2 +- .../src/integrationTest/resources/lib.gradle | 2 +- booster-android-gradle-v3_6/build.gradle | 2 +- .../src/integrationTest/resources/app.gradle | 2 +- .../src/integrationTest/resources/buildSrc/build.gradle | 2 +- .../src/integrationTest/resources/lib.gradle | 2 +- booster-android-gradle-v4_0/build.gradle | 2 +- .../src/integrationTest/resources/app.gradle | 2 +- .../src/integrationTest/resources/buildSrc/build.gradle | 2 +- .../src/integrationTest/resources/lib.gradle | 2 +- booster-android-gradle-v4_1/build.gradle | 2 +- .../src/integrationTest/resources/app.gradle | 2 +- .../src/integrationTest/resources/buildSrc/build.gradle | 2 +- .../src/integrationTest/resources/lib.gradle | 2 +- 28 files changed, 28 insertions(+), 28 deletions(-) diff --git a/booster-android-gradle-v3_0/build.gradle b/booster-android-gradle-v3_0/build.gradle index 067b75ee7..0207fbcde 100644 --- a/booster-android-gradle-v3_0/build.gradle +++ b/booster-android-gradle-v3_0/build.gradle @@ -8,7 +8,7 @@ dependencies { api project(':booster-android-gradle-compat') compileOnly 'com.android.tools.build:gradle:3.0.0' testImplementation 'com.android.tools.build:gradle:3.0.0' - testImplementation 'io.bootstage.testkit:testkit-gradle-plugin:1.1.0' + testImplementation 'io.bootstage.testkit:testkit-gradle-plugin:1.4.0' testImplementation project(':booster-build') } diff --git a/booster-android-gradle-v3_0/src/integrationTest/resources/app.gradle b/booster-android-gradle-v3_0/src/integrationTest/resources/app.gradle index 3d8254090..a90b07625 100644 --- a/booster-android-gradle-v3_0/src/integrationTest/resources/app.gradle +++ b/booster-android-gradle-v3_0/src/integrationTest/resources/app.gradle @@ -12,7 +12,7 @@ buildscript { classpath("com.didiglobal.booster:booster-gradle-plugin:${project.booster_version}") { exclude group: 'com.google.guava' } - classpath "io.bootstage.testkit:testkit-gradle-plugin:1.1.0" + classpath "io.bootstage.testkit:testkit-gradle-plugin:1.4.0" } } diff --git a/booster-android-gradle-v3_0/src/integrationTest/resources/buildSrc/build.gradle b/booster-android-gradle-v3_0/src/integrationTest/resources/buildSrc/build.gradle index fe29d688a..4d7b663b3 100644 --- a/booster-android-gradle-v3_0/src/integrationTest/resources/buildSrc/build.gradle +++ b/booster-android-gradle-v3_0/src/integrationTest/resources/buildSrc/build.gradle @@ -22,5 +22,5 @@ dependencies { implementation("com.didiglobal.booster:booster-android-gradle-api:${project.booster_version}") { exclude group: 'com.google.guava' } - implementation "io.bootstage.testkit:testkit-gradle-plugin:1.1.0" + implementation "io.bootstage.testkit:testkit-gradle-plugin:1.4.0" } diff --git a/booster-android-gradle-v3_0/src/integrationTest/resources/lib.gradle b/booster-android-gradle-v3_0/src/integrationTest/resources/lib.gradle index 6164180c7..99bbebeb1 100644 --- a/booster-android-gradle-v3_0/src/integrationTest/resources/lib.gradle +++ b/booster-android-gradle-v3_0/src/integrationTest/resources/lib.gradle @@ -12,7 +12,7 @@ buildscript { classpath("com.didiglobal.booster:booster-gradle-plugin:${project.booster_version}") { exclude group: 'com.google.guava' } - classpath "io.bootstage.testkit:testkit-gradle-plugin:1.1.0" + classpath "io.bootstage.testkit:testkit-gradle-plugin:1.4.0" } } diff --git a/booster-android-gradle-v3_2/build.gradle b/booster-android-gradle-v3_2/build.gradle index 8f3fe92d4..850d1836a 100644 --- a/booster-android-gradle-v3_2/build.gradle +++ b/booster-android-gradle-v3_2/build.gradle @@ -8,7 +8,7 @@ dependencies { api project(':booster-android-gradle-compat') compileOnly 'com.android.tools.build:gradle:3.2.0' testImplementation 'com.android.tools.build:gradle:3.2.0' - testImplementation 'io.bootstage.testkit:testkit-gradle-plugin:1.1.0' + testImplementation 'io.bootstage.testkit:testkit-gradle-plugin:1.4.0' testImplementation project(':booster-build') } diff --git a/booster-android-gradle-v3_2/src/integrationTest/resources/app.gradle b/booster-android-gradle-v3_2/src/integrationTest/resources/app.gradle index 3d8254090..a90b07625 100644 --- a/booster-android-gradle-v3_2/src/integrationTest/resources/app.gradle +++ b/booster-android-gradle-v3_2/src/integrationTest/resources/app.gradle @@ -12,7 +12,7 @@ buildscript { classpath("com.didiglobal.booster:booster-gradle-plugin:${project.booster_version}") { exclude group: 'com.google.guava' } - classpath "io.bootstage.testkit:testkit-gradle-plugin:1.1.0" + classpath "io.bootstage.testkit:testkit-gradle-plugin:1.4.0" } } diff --git a/booster-android-gradle-v3_2/src/integrationTest/resources/buildSrc/build.gradle b/booster-android-gradle-v3_2/src/integrationTest/resources/buildSrc/build.gradle index fe29d688a..4d7b663b3 100644 --- a/booster-android-gradle-v3_2/src/integrationTest/resources/buildSrc/build.gradle +++ b/booster-android-gradle-v3_2/src/integrationTest/resources/buildSrc/build.gradle @@ -22,5 +22,5 @@ dependencies { implementation("com.didiglobal.booster:booster-android-gradle-api:${project.booster_version}") { exclude group: 'com.google.guava' } - implementation "io.bootstage.testkit:testkit-gradle-plugin:1.1.0" + implementation "io.bootstage.testkit:testkit-gradle-plugin:1.4.0" } diff --git a/booster-android-gradle-v3_2/src/integrationTest/resources/lib.gradle b/booster-android-gradle-v3_2/src/integrationTest/resources/lib.gradle index 6164180c7..99bbebeb1 100644 --- a/booster-android-gradle-v3_2/src/integrationTest/resources/lib.gradle +++ b/booster-android-gradle-v3_2/src/integrationTest/resources/lib.gradle @@ -12,7 +12,7 @@ buildscript { classpath("com.didiglobal.booster:booster-gradle-plugin:${project.booster_version}") { exclude group: 'com.google.guava' } - classpath "io.bootstage.testkit:testkit-gradle-plugin:1.1.0" + classpath "io.bootstage.testkit:testkit-gradle-plugin:1.4.0" } } diff --git a/booster-android-gradle-v3_3/build.gradle b/booster-android-gradle-v3_3/build.gradle index 7e9b8ef0d..27e019498 100644 --- a/booster-android-gradle-v3_3/build.gradle +++ b/booster-android-gradle-v3_3/build.gradle @@ -8,7 +8,7 @@ dependencies { api project(':booster-android-gradle-compat') compileOnly 'com.android.tools.build:gradle:3.3.0' testImplementation 'com.android.tools.build:gradle:3.3.0' - testImplementation 'io.bootstage.testkit:testkit-gradle-plugin:1.1.0' + testImplementation 'io.bootstage.testkit:testkit-gradle-plugin:1.4.0' testImplementation project(':booster-build') } diff --git a/booster-android-gradle-v3_3/src/integrationTest/resources/app.gradle b/booster-android-gradle-v3_3/src/integrationTest/resources/app.gradle index 3d8254090..a90b07625 100644 --- a/booster-android-gradle-v3_3/src/integrationTest/resources/app.gradle +++ b/booster-android-gradle-v3_3/src/integrationTest/resources/app.gradle @@ -12,7 +12,7 @@ buildscript { classpath("com.didiglobal.booster:booster-gradle-plugin:${project.booster_version}") { exclude group: 'com.google.guava' } - classpath "io.bootstage.testkit:testkit-gradle-plugin:1.1.0" + classpath "io.bootstage.testkit:testkit-gradle-plugin:1.4.0" } } diff --git a/booster-android-gradle-v3_3/src/integrationTest/resources/buildSrc/build.gradle b/booster-android-gradle-v3_3/src/integrationTest/resources/buildSrc/build.gradle index fe29d688a..4d7b663b3 100644 --- a/booster-android-gradle-v3_3/src/integrationTest/resources/buildSrc/build.gradle +++ b/booster-android-gradle-v3_3/src/integrationTest/resources/buildSrc/build.gradle @@ -22,5 +22,5 @@ dependencies { implementation("com.didiglobal.booster:booster-android-gradle-api:${project.booster_version}") { exclude group: 'com.google.guava' } - implementation "io.bootstage.testkit:testkit-gradle-plugin:1.1.0" + implementation "io.bootstage.testkit:testkit-gradle-plugin:1.4.0" } diff --git a/booster-android-gradle-v3_3/src/integrationTest/resources/lib.gradle b/booster-android-gradle-v3_3/src/integrationTest/resources/lib.gradle index 6164180c7..99bbebeb1 100644 --- a/booster-android-gradle-v3_3/src/integrationTest/resources/lib.gradle +++ b/booster-android-gradle-v3_3/src/integrationTest/resources/lib.gradle @@ -12,7 +12,7 @@ buildscript { classpath("com.didiglobal.booster:booster-gradle-plugin:${project.booster_version}") { exclude group: 'com.google.guava' } - classpath "io.bootstage.testkit:testkit-gradle-plugin:1.1.0" + classpath "io.bootstage.testkit:testkit-gradle-plugin:1.4.0" } } diff --git a/booster-android-gradle-v3_5/build.gradle b/booster-android-gradle-v3_5/build.gradle index 328168c7e..d33371369 100644 --- a/booster-android-gradle-v3_5/build.gradle +++ b/booster-android-gradle-v3_5/build.gradle @@ -8,7 +8,7 @@ dependencies { api project(':booster-android-gradle-compat') compileOnly 'com.android.tools.build:gradle:3.5.0' testImplementation 'com.android.tools.build:gradle:3.5.0' - testImplementation 'io.bootstage.testkit:testkit-gradle-plugin:1.1.0' + testImplementation 'io.bootstage.testkit:testkit-gradle-plugin:1.4.0' testImplementation project(':booster-build') } diff --git a/booster-android-gradle-v3_5/src/integrationTest/resources/app.gradle b/booster-android-gradle-v3_5/src/integrationTest/resources/app.gradle index 3d8254090..a90b07625 100644 --- a/booster-android-gradle-v3_5/src/integrationTest/resources/app.gradle +++ b/booster-android-gradle-v3_5/src/integrationTest/resources/app.gradle @@ -12,7 +12,7 @@ buildscript { classpath("com.didiglobal.booster:booster-gradle-plugin:${project.booster_version}") { exclude group: 'com.google.guava' } - classpath "io.bootstage.testkit:testkit-gradle-plugin:1.1.0" + classpath "io.bootstage.testkit:testkit-gradle-plugin:1.4.0" } } diff --git a/booster-android-gradle-v3_5/src/integrationTest/resources/buildSrc/build.gradle b/booster-android-gradle-v3_5/src/integrationTest/resources/buildSrc/build.gradle index fe29d688a..4d7b663b3 100644 --- a/booster-android-gradle-v3_5/src/integrationTest/resources/buildSrc/build.gradle +++ b/booster-android-gradle-v3_5/src/integrationTest/resources/buildSrc/build.gradle @@ -22,5 +22,5 @@ dependencies { implementation("com.didiglobal.booster:booster-android-gradle-api:${project.booster_version}") { exclude group: 'com.google.guava' } - implementation "io.bootstage.testkit:testkit-gradle-plugin:1.1.0" + implementation "io.bootstage.testkit:testkit-gradle-plugin:1.4.0" } diff --git a/booster-android-gradle-v3_5/src/integrationTest/resources/lib.gradle b/booster-android-gradle-v3_5/src/integrationTest/resources/lib.gradle index 6164180c7..99bbebeb1 100644 --- a/booster-android-gradle-v3_5/src/integrationTest/resources/lib.gradle +++ b/booster-android-gradle-v3_5/src/integrationTest/resources/lib.gradle @@ -12,7 +12,7 @@ buildscript { classpath("com.didiglobal.booster:booster-gradle-plugin:${project.booster_version}") { exclude group: 'com.google.guava' } - classpath "io.bootstage.testkit:testkit-gradle-plugin:1.1.0" + classpath "io.bootstage.testkit:testkit-gradle-plugin:1.4.0" } } diff --git a/booster-android-gradle-v3_6/build.gradle b/booster-android-gradle-v3_6/build.gradle index 900dacb7f..25f5b02a8 100644 --- a/booster-android-gradle-v3_6/build.gradle +++ b/booster-android-gradle-v3_6/build.gradle @@ -8,7 +8,7 @@ dependencies { api project(':booster-android-gradle-compat') compileOnly 'com.android.tools.build:gradle:3.6.0' testImplementation 'com.android.tools.build:gradle:3.6.0' - testImplementation 'io.bootstage.testkit:testkit-gradle-plugin:1.1.0' + testImplementation 'io.bootstage.testkit:testkit-gradle-plugin:1.4.0' testImplementation project(':booster-build') } diff --git a/booster-android-gradle-v3_6/src/integrationTest/resources/app.gradle b/booster-android-gradle-v3_6/src/integrationTest/resources/app.gradle index 3d8254090..a90b07625 100644 --- a/booster-android-gradle-v3_6/src/integrationTest/resources/app.gradle +++ b/booster-android-gradle-v3_6/src/integrationTest/resources/app.gradle @@ -12,7 +12,7 @@ buildscript { classpath("com.didiglobal.booster:booster-gradle-plugin:${project.booster_version}") { exclude group: 'com.google.guava' } - classpath "io.bootstage.testkit:testkit-gradle-plugin:1.1.0" + classpath "io.bootstage.testkit:testkit-gradle-plugin:1.4.0" } } diff --git a/booster-android-gradle-v3_6/src/integrationTest/resources/buildSrc/build.gradle b/booster-android-gradle-v3_6/src/integrationTest/resources/buildSrc/build.gradle index fe29d688a..4d7b663b3 100644 --- a/booster-android-gradle-v3_6/src/integrationTest/resources/buildSrc/build.gradle +++ b/booster-android-gradle-v3_6/src/integrationTest/resources/buildSrc/build.gradle @@ -22,5 +22,5 @@ dependencies { implementation("com.didiglobal.booster:booster-android-gradle-api:${project.booster_version}") { exclude group: 'com.google.guava' } - implementation "io.bootstage.testkit:testkit-gradle-plugin:1.1.0" + implementation "io.bootstage.testkit:testkit-gradle-plugin:1.4.0" } diff --git a/booster-android-gradle-v3_6/src/integrationTest/resources/lib.gradle b/booster-android-gradle-v3_6/src/integrationTest/resources/lib.gradle index 6164180c7..99bbebeb1 100644 --- a/booster-android-gradle-v3_6/src/integrationTest/resources/lib.gradle +++ b/booster-android-gradle-v3_6/src/integrationTest/resources/lib.gradle @@ -12,7 +12,7 @@ buildscript { classpath("com.didiglobal.booster:booster-gradle-plugin:${project.booster_version}") { exclude group: 'com.google.guava' } - classpath "io.bootstage.testkit:testkit-gradle-plugin:1.1.0" + classpath "io.bootstage.testkit:testkit-gradle-plugin:1.4.0" } } diff --git a/booster-android-gradle-v4_0/build.gradle b/booster-android-gradle-v4_0/build.gradle index 16b5d6fd4..82cb44a50 100644 --- a/booster-android-gradle-v4_0/build.gradle +++ b/booster-android-gradle-v4_0/build.gradle @@ -8,7 +8,7 @@ dependencies { api project(':booster-android-gradle-compat') compileOnly 'com.android.tools.build:gradle:4.0.0' testImplementation 'com.android.tools.build:gradle:4.0.0' - testImplementation 'io.bootstage.testkit:testkit-gradle-plugin:1.1.0' + testImplementation 'io.bootstage.testkit:testkit-gradle-plugin:1.4.0' testImplementation project(':booster-build') } diff --git a/booster-android-gradle-v4_0/src/integrationTest/resources/app.gradle b/booster-android-gradle-v4_0/src/integrationTest/resources/app.gradle index 3d8254090..a90b07625 100644 --- a/booster-android-gradle-v4_0/src/integrationTest/resources/app.gradle +++ b/booster-android-gradle-v4_0/src/integrationTest/resources/app.gradle @@ -12,7 +12,7 @@ buildscript { classpath("com.didiglobal.booster:booster-gradle-plugin:${project.booster_version}") { exclude group: 'com.google.guava' } - classpath "io.bootstage.testkit:testkit-gradle-plugin:1.1.0" + classpath "io.bootstage.testkit:testkit-gradle-plugin:1.4.0" } } diff --git a/booster-android-gradle-v4_0/src/integrationTest/resources/buildSrc/build.gradle b/booster-android-gradle-v4_0/src/integrationTest/resources/buildSrc/build.gradle index fe29d688a..4d7b663b3 100644 --- a/booster-android-gradle-v4_0/src/integrationTest/resources/buildSrc/build.gradle +++ b/booster-android-gradle-v4_0/src/integrationTest/resources/buildSrc/build.gradle @@ -22,5 +22,5 @@ dependencies { implementation("com.didiglobal.booster:booster-android-gradle-api:${project.booster_version}") { exclude group: 'com.google.guava' } - implementation "io.bootstage.testkit:testkit-gradle-plugin:1.1.0" + implementation "io.bootstage.testkit:testkit-gradle-plugin:1.4.0" } diff --git a/booster-android-gradle-v4_0/src/integrationTest/resources/lib.gradle b/booster-android-gradle-v4_0/src/integrationTest/resources/lib.gradle index 6164180c7..99bbebeb1 100644 --- a/booster-android-gradle-v4_0/src/integrationTest/resources/lib.gradle +++ b/booster-android-gradle-v4_0/src/integrationTest/resources/lib.gradle @@ -12,7 +12,7 @@ buildscript { classpath("com.didiglobal.booster:booster-gradle-plugin:${project.booster_version}") { exclude group: 'com.google.guava' } - classpath "io.bootstage.testkit:testkit-gradle-plugin:1.1.0" + classpath "io.bootstage.testkit:testkit-gradle-plugin:1.4.0" } } diff --git a/booster-android-gradle-v4_1/build.gradle b/booster-android-gradle-v4_1/build.gradle index 6f42e876f..7e4dbb61d 100644 --- a/booster-android-gradle-v4_1/build.gradle +++ b/booster-android-gradle-v4_1/build.gradle @@ -8,7 +8,7 @@ dependencies { api project(':booster-android-gradle-compat') compileOnly 'com.android.tools.build:gradle:4.1.0' testImplementation 'com.android.tools.build:gradle:4.1.0' - testImplementation 'io.bootstage.testkit:testkit-gradle-plugin:1.1.0' + testImplementation 'io.bootstage.testkit:testkit-gradle-plugin:1.4.0' testImplementation project(':booster-build') } diff --git a/booster-android-gradle-v4_1/src/integrationTest/resources/app.gradle b/booster-android-gradle-v4_1/src/integrationTest/resources/app.gradle index 3d8254090..a90b07625 100644 --- a/booster-android-gradle-v4_1/src/integrationTest/resources/app.gradle +++ b/booster-android-gradle-v4_1/src/integrationTest/resources/app.gradle @@ -12,7 +12,7 @@ buildscript { classpath("com.didiglobal.booster:booster-gradle-plugin:${project.booster_version}") { exclude group: 'com.google.guava' } - classpath "io.bootstage.testkit:testkit-gradle-plugin:1.1.0" + classpath "io.bootstage.testkit:testkit-gradle-plugin:1.4.0" } } diff --git a/booster-android-gradle-v4_1/src/integrationTest/resources/buildSrc/build.gradle b/booster-android-gradle-v4_1/src/integrationTest/resources/buildSrc/build.gradle index fe29d688a..4d7b663b3 100644 --- a/booster-android-gradle-v4_1/src/integrationTest/resources/buildSrc/build.gradle +++ b/booster-android-gradle-v4_1/src/integrationTest/resources/buildSrc/build.gradle @@ -22,5 +22,5 @@ dependencies { implementation("com.didiglobal.booster:booster-android-gradle-api:${project.booster_version}") { exclude group: 'com.google.guava' } - implementation "io.bootstage.testkit:testkit-gradle-plugin:1.1.0" + implementation "io.bootstage.testkit:testkit-gradle-plugin:1.4.0" } diff --git a/booster-android-gradle-v4_1/src/integrationTest/resources/lib.gradle b/booster-android-gradle-v4_1/src/integrationTest/resources/lib.gradle index 6164180c7..99bbebeb1 100644 --- a/booster-android-gradle-v4_1/src/integrationTest/resources/lib.gradle +++ b/booster-android-gradle-v4_1/src/integrationTest/resources/lib.gradle @@ -12,7 +12,7 @@ buildscript { classpath("com.didiglobal.booster:booster-gradle-plugin:${project.booster_version}") { exclude group: 'com.google.guava' } - classpath "io.bootstage.testkit:testkit-gradle-plugin:1.1.0" + classpath "io.bootstage.testkit:testkit-gradle-plugin:1.4.0" } } From c315b60a09bf93d0e09c989b4a0b1393cc47c9f0 Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Tue, 9 Feb 2021 05:14:03 +0800 Subject: [PATCH 021/187] Fix compatibility issue for AGP 3.4 --- booster-android-gradle-api/build.gradle | 1 + .../com/didiglobal/booster/gradle/Version.kt | 4 +- booster-android-gradle-v3_4/build.gradle | 17 + .../android/gradle/v3_4/V34IntegrationTest.kt | 542 ++++++++++++++++++ .../src/integrationTest/resources/app.gradle | 62 ++ .../resources/buildSrc/build.gradle | 26 + .../src/integrationTest/resources/lib.gradle | 59 ++ .../resources/src/main/AndroidManifest.xml | 9 + .../booster/android/test/MainActivity.java | 6 + .../booster/android/test/TestApplication.java | 7 + .../resources/src/main/res/values/strings.xml | 4 + .../booster/android/gradle/v3_4/V34.kt | 185 ++++++ settings.gradle | 1 + 13 files changed, 922 insertions(+), 1 deletion(-) create mode 100644 booster-android-gradle-v3_4/build.gradle create mode 100644 booster-android-gradle-v3_4/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_4/V34IntegrationTest.kt create mode 100644 booster-android-gradle-v3_4/src/integrationTest/resources/app.gradle create mode 100644 booster-android-gradle-v3_4/src/integrationTest/resources/buildSrc/build.gradle create mode 100644 booster-android-gradle-v3_4/src/integrationTest/resources/lib.gradle create mode 100644 booster-android-gradle-v3_4/src/integrationTest/resources/src/main/AndroidManifest.xml create mode 100644 booster-android-gradle-v3_4/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/MainActivity.java create mode 100644 booster-android-gradle-v3_4/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/TestApplication.java create mode 100644 booster-android-gradle-v3_4/src/integrationTest/resources/src/main/res/values/strings.xml create mode 100644 booster-android-gradle-v3_4/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_4/V34.kt diff --git a/booster-android-gradle-api/build.gradle b/booster-android-gradle-api/build.gradle index 5dafd3028..ab5533328 100644 --- a/booster-android-gradle-api/build.gradle +++ b/booster-android-gradle-api/build.gradle @@ -4,6 +4,7 @@ dependencies { implementation project(':booster-android-gradle-v3_0') implementation project(':booster-android-gradle-v3_2') implementation project(':booster-android-gradle-v3_3') + implementation project(':booster-android-gradle-v3_4') implementation project(':booster-android-gradle-v3_5') implementation project(':booster-android-gradle-v3_6') implementation project(':booster-android-gradle-v4_0') diff --git a/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/Version.kt b/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/Version.kt index 85f8c7d32..4dbc7029b 100644 --- a/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/Version.kt +++ b/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/Version.kt @@ -5,6 +5,7 @@ import com.android.repository.Revision import com.didiglobal.booster.android.gradle.v3_0.V30 import com.didiglobal.booster.android.gradle.v3_2.V32 import com.didiglobal.booster.android.gradle.v3_3.V33 +import com.didiglobal.booster.android.gradle.v3_4.V34 import com.didiglobal.booster.android.gradle.v3_5.V35 import com.didiglobal.booster.android.gradle.v3_6.V36 import com.didiglobal.booster.android.gradle.v4_0.V40 @@ -28,9 +29,10 @@ internal val AGP: AGPInterface = arrayOf( GTE_V4_X to V40, GTE_V3_6 to V36, GTE_V3_5 to V35, + GTE_V3_4 to V34, GTE_V3_3 to V33, GTE_V3_2 to V32, GTE_V3_X to V30 ).firstOrNull { it.first -}?.second ?: throw TODO("Incompatible with AGP $ANDROID_GRADLE_PLUGIN_VERSION") \ No newline at end of file +}?.second ?: throw TODO("Incompatible with AGP $ANDROID_GRADLE_PLUGIN_VERSION") diff --git a/booster-android-gradle-v3_4/build.gradle b/booster-android-gradle-v3_4/build.gradle new file mode 100644 index 000000000..b103e51b6 --- /dev/null +++ b/booster-android-gradle-v3_4/build.gradle @@ -0,0 +1,17 @@ +apply plugin: 'java-gradle-plugin' + +apply from: "$rootDir/gradle/booster.gradle" +apply from: "$rootDir/gradle/integration-test.gradle" +apply from: "$rootDir/gradle/functional-test.gradle" + +dependencies { + api project(':booster-android-gradle-compat') + compileOnly 'com.android.tools.build:gradle:3.4.0' + testImplementation 'com.android.tools.build:gradle:3.4.0' + testImplementation 'io.bootstage.testkit:testkit-gradle-plugin:1.4.0' + testImplementation project(':booster-build') +} + +gradlePlugin { + testSourceSets sourceSets.functionalTest, sourceSets.integrationTest +} \ No newline at end of file diff --git a/booster-android-gradle-v3_4/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_4/V34IntegrationTest.kt b/booster-android-gradle-v3_4/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_4/V34IntegrationTest.kt new file mode 100644 index 000000000..7155d85dc --- /dev/null +++ b/booster-android-gradle-v3_4/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_4/V34IntegrationTest.kt @@ -0,0 +1,542 @@ +package com.didiglobal.booster.android.gradle.v3_4 + +import com.android.build.gradle.AppExtension +import com.android.build.gradle.BaseExtension +import com.android.build.gradle.LibraryExtension +import com.android.build.gradle.api.BaseVariant +import com.android.builder.core.VariantType +import com.android.builder.core.VariantTypeImpl +import com.android.sdklib.BuildToolInfo +import com.didiglobal.booster.gradle.getAndroid +import com.didiglobal.booster.kotlinx.search +import io.bootstage.testkit.gradle.Case +import io.bootstage.testkit.gradle.TestCase +import io.bootstage.testkit.gradle.VariantTestCase +import io.bootstage.testkit.gradle.rules.GradleExecutor +import io.bootstage.testkit.gradle.rules.LocalProperties +import io.bootstage.testkit.gradle.rules.copyFromResource +import io.bootstage.testkit.gradle.rules.rule +import org.gradle.api.Project +import org.junit.Before +import org.junit.Rule +import org.junit.rules.TemporaryFolder +import org.junit.rules.TestRule +import kotlin.test.Test +import kotlin.test.assertEquals +import kotlin.test.assertFalse +import kotlin.test.assertNotNull +import kotlin.test.fail + +private const val MIN_SDK_VERSION = 18 + +private const val TARGET_SDK_VERSION = 26 + +private val AGP = V34 + +private val ARGS = arrayOf( + "assemble", "-S", + "-Pbooster_version=${Build.VERSION}", + "-Pandroid_gradle_version=3.4.0", + "-Pcompile_sdk_version=28", + "-Pbuild_tools_version=26.0.3", + "-Pmin_sdk_version=${MIN_SDK_VERSION}", + "-Ptarget_sdk_version=${TARGET_SDK_VERSION}" +) + +@Suppress("RemoveCurlyBracesFromTemplate", "FunctionName") +abstract class V34IntegrationTest(val isLib: Boolean) { + + private val projectDir = TemporaryFolder() + + @get:Rule + val ruleChain: TestRule = rule(projectDir) { + rule(LocalProperties(projectDir::getRoot)) { + GradleExecutor(projectDir::getRoot, "5.1.1", *ARGS) + } + } + + @Before + fun setup() { + projectDir.copyFromResource("${if (isLib) "lib" else "app"}.gradle", "build.gradle") + projectDir.copyFromResource("buildSrc") + projectDir.copyFromResource("src") + } + + @Test + @Case(ScopeFullWithFeaturesTest::class) + fun `test AGPInterface#scopeFullWithFeatures`() { + } + + @Test + @Case(ScopeFullLibraryWithFeaturesTest::class) + fun `test AGPInterface#scopeFullLibraryWithFeatures`() { + } + + @Test + @Case(ProjectTest::class) + fun `test AGPInterface#project`() { + } + + @Test + @Case(JavaCompilerTaskTestUnit::class) + fun `test AGPInterface#javaCompilerTask`() { + } + + @Test + @Case(PreBuildTaskTestUnit::class) + fun `test AGPInterface#preBuildTask`() { + } + + @Test + @Case(AssembleTaskTestUnit::class) + fun `test AGPInterface#assembleTask`() { + } + + @Test + @Case(MergeAssetsTaskTestUnit::class) + fun `test AGPInterface#mergeAssetsTask`() { + } + + @Test + @Case(MergeResourcesTaskTestUnit::class) + fun `test AGPInterface#mergeResources`() { + } + + @Test + @Case(GetTaskNameTestUnit::class) + fun `test AGPInterface#getTaskName(String)`() { + } + + @Test + @Case(GetTaskName2TestUnit::class) + fun `test AGPInterface#getTaskName(String, String)`() { + } + + @Test + @Case(VariantDataTestUnit::class) + fun `test AGPInterface#variantData`() { + } + + @Test + @Case(VariantScopeTestUnit::class) + fun `test AGPInterface#variantScope`() { + } + + @Test + @Case(GlobalScopeTestCase::class) + fun `test AGPInterface#globalScope`() { + } + + @Test + @Case(OriginalApplicationIdTestUnit::class) + fun `test AGPInterface#originalApplicationId`() { + } + + @Test + @Case(HasDynamicFeatureTestUnit::class) + fun `test AGPInterface#hasDynamicFeature`() { + } + + @Test + @Case(RawAndroidResourcesTestUnit::class) + fun `test AGPInterface#rawAndroidResources`() { + } + + @Test + @Case(AllArtifactsTestUnit::class) + fun `test AGPInterface#allArtifacts`() { + } + + @Test + @Case(MinSdkVersionTestUnit::class) + fun `test AGPInterface#minSdkVersion`() { + } + + @Test + @Case(TargetSdkVersionTestUnit::class) + fun `test AGPInterface#targetSdkVersion`() { + } + + @Test + @Case(VariantTypeTestUnit::class) + fun `test AGPInterface#variantType`() { + } + + @Test + @Case(AarTestUnit::class) + fun `test AGPInterface#aar`() { + } + + @Test + @Case(ApkTestUnit::class) + fun `test AGPInterface#apk`() { + } + + @Test + @Case(MergedManifestsTestUnit::class) + fun `test AGPInterface#mergedManifests`() { + } + + @Test + @Case(MergedResourcesTestUnit::class) + fun `test AGPInterface#mergedRes`() { + } + + @Test + @Case(MergedAssetsTestUnit::class) + fun `test AGPInterface#mergedAssets`() { + } + + @Test + @Case(ProcessedResTestUnit::class) + fun `test AGPInterface#processedRes`() { + } + + @Test + @Case(SymbolListTestUnit::class) + fun `test AGPInterface#symbolList`() { + } + + @Test + @Case(SymbolListWithPackageNameTestUnit::class) + fun `test AGPInterface#symbolListWithPackageName`() { + } + + @Test + @Case(AllClassesTestUnit::class) + fun `test AGPInterface#allClasses`() { + } + + @Test + @Case(BuildToolsTestUnit::class) + fun `test AGPInterface#buildTools`() { + } + +} + +class V34AppIntegrationTest : V34IntegrationTest(false) + +class V34LibIntegrationTest : V34IntegrationTest(true) + +class ScopeFullWithFeaturesTest : TestCase { + override fun apply(project: Project) { + assertEquals("PROJECT,SUB_PROJECTS,EXTERNAL_LIBRARIES,FEATURES", AGP.scopeFullWithFeatures.joinToString(",")) + } +} + +class ScopeFullLibraryWithFeaturesTest : TestCase { + override fun apply(project: Project) { + assertEquals("FEATURES,PROJECT", AGP.scopeFullLibraryWithFeatures.joinToString(",")) + } +} + +class ProjectTest : TestCase { + override fun apply(project: Project) { + val assert: (BaseVariant) -> Unit = { variant -> + assertEquals(project, AGP.run { variant.project }) + } + project.afterEvaluate { + when (val android = project.getAndroid()) { + is AppExtension -> android.applicationVariants.forEach(assert) + is LibraryExtension -> android.libraryVariants.forEach(assert) + } + } + } +} + +class JavaCompilerTaskTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + assertNotNull(AGP.run { variant.javaCompilerTask }) + } +} + +class PreBuildTaskTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + assertNotNull(AGP.run { variant.preBuildTask }) + } +} + +class AssembleTaskTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + assertNotNull(AGP.run { variant.assembleTask }) + } +} + +class MergeAssetsTaskTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + assertNotNull(AGP.run { variant.mergeAssetsTask }) + } +} + +class MergeResourcesTaskTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + assertNotNull(AGP.run { variant.mergeResourcesTask }) + } +} + +class GetTaskNameTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + assertEquals("assemble${variant.name.capitalize()}", AGP.run { variant.getTaskName("assemble") }) + } +} + + +class GetTaskName2TestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + assertEquals("merge${variant.name.capitalize()}Resources", AGP.run { variant.getTaskName("merge", "Resources") }) + } +} + +class VariantDataTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + assertNotNull(AGP.run { variant.variantData }) + } +} + +class VariantScopeTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + assertNotNull(AGP.run { variant.variantScope }) + } +} + +class GlobalScopeTestCase : VariantTestCase() { + override fun apply(variant: BaseVariant) { + assertNotNull(AGP.run { variant.globalScope }) + } +} + +class OriginalApplicationIdTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + assertNotNull(AGP.run { variant.originalApplicationId }) + } +} + +class HasDynamicFeatureTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + assertFalse(AGP.run { variant.hasDynamicFeature }) + } +} + +class RawAndroidResourcesTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + AGP.run { variant.assembleTask }.doFirst { + val rawAndroidResources = AGP.run { variant.rawAndroidResources } + assertNotNull(rawAndroidResources) + if (rawAndroidResources.isEmpty()) { + fail("rawAndroidResources is empty") + } + rawAndroidResources.forEach { + println(" - ${it.path}") + } + } + } +} + +class AllArtifactsTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + AGP.run { variant.assembleTask }.doFirst { + val allArtifacts = AGP.run { variant.allArtifacts } + assertNotNull(allArtifacts) + if (allArtifacts.isEmpty()) { + fail("allArtifacts is empty") + } + allArtifacts.forEach { (k, v) -> + println(" - $k => $v") + } + } + } +} + +class MinSdkVersionTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + val minSdkVersion = AGP.run { variant.minSdkVersion } + assertNotNull(minSdkVersion) + assertEquals(MIN_SDK_VERSION, minSdkVersion.apiLevel) + } +} + +class TargetSdkVersionTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + val targetSdkVersion = AGP.run { variant.targetSdkVersion } + assertNotNull(targetSdkVersion) + assertEquals(TARGET_SDK_VERSION, targetSdkVersion.apiLevel) + } +} + +class VariantTypeTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + val project = AGP.run { variant.project } + val variantType = AGP.run { variant.variantType } + if (project.plugins.hasPlugin("com.android.application")) { + assertEquals(VariantTypeImpl.BASE_APK, variantType) + } else if (project.plugins.hasPlugin("com.android.library")) { + assertEquals(VariantTypeImpl.LIBRARY, variantType) + } + } +} + +class AarTestUnit : VariantTestCase() { + override fun apply(project: Project) { + if (project.plugins.hasPlugin("com.android.library")) { + super.apply(project) + } + } + + override fun apply(variant: BaseVariant) { + AGP.run { variant.assembleTask }.doFirst { + val aar = AGP.run { variant.aar }.search { + it.extension == "aar" + } + if (aar.isEmpty()) { + fail("aar is empty") + } + aar.forEach { + println(" - ${it.path}") + } + } + } +} + +class ApkTestUnit : VariantTestCase() { + override fun apply(project: Project) { + if (project.plugins.hasPlugin("com.android.application")) { + super.apply(project) + } + } + + override fun apply(variant: BaseVariant) { + AGP.run { variant.assembleTask }.doFirst { + val apk = AGP.run { variant.apk }.search { + it.extension == "apk" + } + if (apk.isEmpty()) { + fail("apk is empty") + } + apk.forEach { + println(" - ${it.path}") + } + } + } +} + +class MergedManifestsTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + AGP.run { variant.assembleTask }.doFirst { + val mergedManifests = AGP.run { variant.mergedManifests }.search { + it.name == "AndroidManifest.xml" + } + if (mergedManifests.isEmpty()) { + fail("mergedManifests is empty") + } + mergedManifests.forEach { + println(" - ${it.path}") + } + } + } +} + +class MergedResourcesTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + AGP.run { variant.assembleTask }.doFirst { + val mergedResources = AGP.run { variant.mergedRes } + if (mergedResources.isEmpty()) { + fail("mergedRes is empty") + } + mergedResources.forEach { + println(" - ${it.path}") + } + } + } +} + +class MergedAssetsTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + AGP.run { variant.assembleTask }.doFirst { + val mergedAssets = AGP.run { variant.mergedAssets } + if (mergedAssets.isEmpty()) { + fail("mergedAssets is empty") + } + mergedAssets.forEach { + println(" - ${it.path}") + } + } + } +} + +class ProcessedResTestUnit : VariantTestCase() { + override fun apply(project: Project) { + if (project.plugins.hasPlugin("com.android.application")) { + super.apply(project) + } + } + + override fun apply(variant: BaseVariant) { + AGP.run { variant.assembleTask }.doFirst { + val processedRes = AGP.run { variant.processedRes }.search { + it.extension == "ap_" + } + if (processedRes.isEmpty()) { + fail("processedRes is empty") + } + processedRes.forEach { + println(" - ${it.path}") + } + } + } +} + +class SymbolListTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + AGP.run { variant.assembleTask }.doFirst { + val symbolList = AGP.run { variant.symbolList } + if (symbolList.isEmpty()) { + fail("symbolList is empty") + } + symbolList.forEach { + println(" - ${it.path}") + } + } + } +} + +class SymbolListWithPackageNameTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + AGP.run { variant.assembleTask }.doFirst { + val symbolListWithPackageName = AGP.run { variant.symbolListWithPackageName } + if (symbolListWithPackageName.isEmpty()) { + fail("symbolListWithPackageName is empty") + } + symbolListWithPackageName.forEach { + println(" - ${it.path}") + } + } + } +} + +class AllClassesTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + AGP.run { variant.assembleTask }.doFirst { + val allClasses = AGP.run { variant.allClasses }.search { + it.extension == "class" + } + if (allClasses.isEmpty()) { + fail("allClasses is empty") + } + allClasses.forEach { + println(" - ${it.path}") + } + } + } +} + +class BuildToolsTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + val buildTools = AGP.run { variant.buildTools } + assertNotNull(buildTools) + BuildToolInfo.PathId.values().map { + it.name to buildTools.getPath(it) + }.forEach { (k, v) -> + println(" - $k => $v") + } + } +} diff --git a/booster-android-gradle-v3_4/src/integrationTest/resources/app.gradle b/booster-android-gradle-v3_4/src/integrationTest/resources/app.gradle new file mode 100644 index 000000000..a90b07625 --- /dev/null +++ b/booster-android-gradle-v3_4/src/integrationTest/resources/app.gradle @@ -0,0 +1,62 @@ +buildscript { + repositories { + mavenLocal() + mavenCentral() + google() + jcenter() + maven { url 'https://oss.sonatype.org/content/repositories/public/' } + maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } + } + dependencies { + classpath "com.android.tools.build:gradle:${project.android_gradle_version}" + classpath("com.didiglobal.booster:booster-gradle-plugin:${project.booster_version}") { + exclude group: 'com.google.guava' + } + classpath "io.bootstage.testkit:testkit-gradle-plugin:1.4.0" + } +} + +apply plugin: 'com.android.application' +apply plugin: 'com.didiglobal.booster' +apply plugin: 'io.bootstage.testkit' + +android { + compileSdkVersion project.compile_sdk_version as Integer + buildToolsVersion project.build_tools_version + defaultConfig { + applicationId 'com.didiglobal.booster.test' + minSdkVersion project.min_sdk_version as Integer + targetSdkVersion project.target_sdk_version as Integer + versionCode 1 + versionName "1.0" + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + } + buildTypes { + debug { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + } + } + flavorDimensions 'lang' + productFlavors { + en { + dimension 'lang' + applicationIdSuffix '.en' + } + cn { + dimension 'lang' + applicationIdSuffix '.cn' + } + } + lintOptions { + checkReleaseBuilds false + } +} + +repositories { + mavenLocal() + mavenCentral() + google() + jcenter() + maven { url 'https://oss.sonatype.org/content/repositories/public/' } +} diff --git a/booster-android-gradle-v3_4/src/integrationTest/resources/buildSrc/build.gradle b/booster-android-gradle-v3_4/src/integrationTest/resources/buildSrc/build.gradle new file mode 100644 index 000000000..4d7b663b3 --- /dev/null +++ b/booster-android-gradle-v3_4/src/integrationTest/resources/buildSrc/build.gradle @@ -0,0 +1,26 @@ +buildscript { + repositories { + mavenLocal() + mavenCentral() + google() + jcenter() + maven { url 'https://oss.sonatype.org/content/repositories/public/' } + maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } + } +} + +repositories { + mavenLocal() + mavenCentral() + google() + jcenter() + maven { url 'https://oss.sonatype.org/content/repositories/public/' } +} + +dependencies { + implementation "com.android.tools.build:gradle:${project.android_gradle_version}" + implementation("com.didiglobal.booster:booster-android-gradle-api:${project.booster_version}") { + exclude group: 'com.google.guava' + } + implementation "io.bootstage.testkit:testkit-gradle-plugin:1.4.0" +} diff --git a/booster-android-gradle-v3_4/src/integrationTest/resources/lib.gradle b/booster-android-gradle-v3_4/src/integrationTest/resources/lib.gradle new file mode 100644 index 000000000..99bbebeb1 --- /dev/null +++ b/booster-android-gradle-v3_4/src/integrationTest/resources/lib.gradle @@ -0,0 +1,59 @@ +buildscript { + repositories { + mavenLocal() + mavenCentral() + google() + jcenter() + maven { url 'https://oss.sonatype.org/content/repositories/public/' } + maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } + } + dependencies { + classpath "com.android.tools.build:gradle:${project.android_gradle_version}" + classpath("com.didiglobal.booster:booster-gradle-plugin:${project.booster_version}") { + exclude group: 'com.google.guava' + } + classpath "io.bootstage.testkit:testkit-gradle-plugin:1.4.0" + } +} + +apply plugin: 'com.android.library' +apply plugin: 'com.didiglobal.booster' +apply plugin: 'io.bootstage.testkit' + +android { + compileSdkVersion project.compile_sdk_version as Integer + buildToolsVersion project.build_tools_version + defaultConfig { + minSdkVersion project.min_sdk_version as Integer + targetSdkVersion project.target_sdk_version as Integer + versionCode 1 + versionName "1.0" + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + } + buildTypes { + debug { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + } + } + flavorDimensions 'lang' + productFlavors { + en { + dimension 'lang' + } + cn { + dimension 'lang' + } + } + lintOptions { + checkReleaseBuilds false + } +} + +repositories { + mavenLocal() + mavenCentral() + google() + jcenter() + maven { url 'https://oss.sonatype.org/content/repositories/public/' } +} diff --git a/booster-android-gradle-v3_4/src/integrationTest/resources/src/main/AndroidManifest.xml b/booster-android-gradle-v3_4/src/integrationTest/resources/src/main/AndroidManifest.xml new file mode 100644 index 000000000..30800c604 --- /dev/null +++ b/booster-android-gradle-v3_4/src/integrationTest/resources/src/main/AndroidManifest.xml @@ -0,0 +1,9 @@ + + + + + + \ No newline at end of file diff --git a/booster-android-gradle-v3_4/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/MainActivity.java b/booster-android-gradle-v3_4/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/MainActivity.java new file mode 100644 index 000000000..0eb4ec7b4 --- /dev/null +++ b/booster-android-gradle-v3_4/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/MainActivity.java @@ -0,0 +1,6 @@ +package com.didiglobal.booster.android.test; + +import android.app.Activity; + +public class MainActivity extends Activity { +} \ No newline at end of file diff --git a/booster-android-gradle-v3_4/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/TestApplication.java b/booster-android-gradle-v3_4/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/TestApplication.java new file mode 100644 index 000000000..3ecfb1507 --- /dev/null +++ b/booster-android-gradle-v3_4/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/TestApplication.java @@ -0,0 +1,7 @@ +package com.didiglobal.booster.android.test; + +import android.app.Application; + +public class TestApplication extends Application { + +} \ No newline at end of file diff --git a/booster-android-gradle-v3_4/src/integrationTest/resources/src/main/res/values/strings.xml b/booster-android-gradle-v3_4/src/integrationTest/resources/src/main/res/values/strings.xml new file mode 100644 index 000000000..8b2247616 --- /dev/null +++ b/booster-android-gradle-v3_4/src/integrationTest/resources/src/main/res/values/strings.xml @@ -0,0 +1,4 @@ + + + Test + \ No newline at end of file diff --git a/booster-android-gradle-v3_4/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_4/V34.kt b/booster-android-gradle-v3_4/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_4/V34.kt new file mode 100644 index 000000000..f82b275f1 --- /dev/null +++ b/booster-android-gradle-v3_4/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_4/V34.kt @@ -0,0 +1,185 @@ +package com.didiglobal.booster.android.gradle.v3_4 + +import com.android.build.api.artifact.ArtifactType +import com.android.build.api.artifact.BuildArtifactType +import com.android.build.api.transform.Context +import com.android.build.api.transform.QualifiedContent +import com.android.build.gradle.api.ApplicationVariant +import com.android.build.gradle.api.BaseVariant +import com.android.build.gradle.api.LibraryVariant +import com.android.build.gradle.internal.api.artifact.SourceArtifactType +import com.android.build.gradle.internal.pipeline.TransformManager +import com.android.build.gradle.internal.pipeline.TransformTask +import com.android.build.gradle.internal.publishing.AndroidArtifacts +import com.android.build.gradle.internal.scope.AnchorOutputType +import com.android.build.gradle.internal.scope.GlobalScope +import com.android.build.gradle.internal.scope.InternalArtifactType +import com.android.build.gradle.internal.scope.MissingTaskOutputException +import com.android.build.gradle.internal.scope.VariantScope +import com.android.build.gradle.internal.scope.getOutputDir +import com.android.build.gradle.internal.variant.BaseVariantData +import com.android.builder.core.VariantType +import com.android.builder.model.ApiVersion +import com.android.sdklib.AndroidVersion +import com.android.sdklib.BuildToolInfo +import com.didiglobal.booster.android.gradle.v3_4.V34.variantScope +import com.didiglobal.booster.gradle.AGPInterface +import org.gradle.api.Project +import org.gradle.api.Task +import org.gradle.api.artifacts.ArtifactCollection +import java.io.File +import java.util.TreeMap + +@Suppress("UnstableApiUsage") +private val ARTIFACT_TYPES = arrayOf>( + AnchorOutputType.values(), + BuildArtifactType.values(), + SourceArtifactType.values(), + InternalArtifactType.values() +).flatten().map { + it.name() to it +}.toMap() + +@Suppress("UnstableApiUsage") +private fun BaseVariant.getFinalArtifactFiles(type: ArtifactType): Collection { + return variantScope.artifacts.getFinalArtifactFiles(type).files +} + +private val BaseVariant.globalScope: GlobalScope + get() = variantScope.globalScope + +object V34 : AGPInterface { + + override val scopeFullWithFeatures: MutableSet + get() = TransformManager.SCOPE_FULL_WITH_FEATURES + + override val scopeFullLibraryWithFeatures: MutableSet + get() = (TransformManager.SCOPE_FEATURES + QualifiedContent.Scope.PROJECT).toMutableSet() + + override val BaseVariant.project: Project + get() = globalScope.project + + override val BaseVariant.javaCompilerTask: Task + get() = javaCompileProvider.get() + + override val BaseVariant.preBuildTask: Task + get() = preBuildProvider.get() + + override val BaseVariant.assembleTask: Task + get() = assembleProvider.get() + + override val BaseVariant.mergeAssetsTask: Task + get() = mergeAssetsProvider.get() + + override val BaseVariant.mergeResourcesTask: Task + get() = mergeResourcesProvider.get() + + override fun BaseVariant.getTaskName(prefix: String): String { + return variantScope.getTaskName(prefix) + } + + override fun BaseVariant.getTaskName(prefix: String, suffix: String): String { + return variantScope.getTaskName(prefix, suffix) + } + + override val BaseVariant.variantData: BaseVariantData + get() = javaClass.getDeclaredMethod("getVariantData").apply { + isAccessible = true + }.invoke(this) as BaseVariantData + + override val BaseVariant.variantScope: VariantScope + get() = variantData.scope + + override val BaseVariant.globalScope: GlobalScope + get() = variantScope.globalScope + + override val BaseVariant.originalApplicationId: String + get() = variantData.variantConfiguration.originalApplicationId + + override val BaseVariant.hasDynamicFeature: Boolean + get() = globalScope.hasDynamicFeatures() + + override val BaseVariant.rawAndroidResources: Collection + get() = variantData.allRawAndroidResources.files + + override fun BaseVariant.getArtifactCollection( + configType: AndroidArtifacts.ConsumedConfigType, + scope: AndroidArtifacts.ArtifactScope, + artifactType: AndroidArtifacts.ArtifactType + ): ArtifactCollection { + return variantScope.getArtifactCollection(configType, scope, artifactType) + } + + override val BaseVariant.allArtifacts: Map> + get() = ARTIFACT_TYPES.entries.map { + val artifacts: Collection by lazy { + try { + getFinalArtifactFiles(it.value) + } catch (e: RuntimeException) { + if (e.cause is MissingTaskOutputException) { + emptyList() + } else { + throw e + } + } + } + it.key to artifacts + }.toMap(TreeMap()) + + override val BaseVariant.minSdkVersion: AndroidVersion + get() = variantData.variantConfiguration.minSdkVersion + + override val BaseVariant.targetSdkVersion: ApiVersion + get() = variantData.variantConfiguration.targetSdkVersion + + override val BaseVariant.variantType: VariantType + get() = variantScope.type + + override val BaseVariant.aar: Collection + get() = getFinalArtifactFiles(InternalArtifactType.AAR) + + override val BaseVariant.apk: Collection + get() = getFinalArtifactFiles(InternalArtifactType.APK) + + override val BaseVariant.mergedManifests: Collection + get() =listOf(File(when (this) { + is ApplicationVariant -> InternalArtifactType.MERGED_MANIFESTS + is LibraryVariant -> InternalArtifactType.LIBRARY_MANIFEST + else -> TODO("Unsupported variant type: $variantType") + }.getOutputDir(project.buildDir), name)) + + override val BaseVariant.mergedRes: Collection + get() = getFinalArtifactFiles(InternalArtifactType.MERGED_RES) + + override val BaseVariant.mergedAssets: Collection + get() = getFinalArtifactFiles(when (this) { + is ApplicationVariant -> InternalArtifactType.MERGED_ASSETS + is LibraryVariant -> InternalArtifactType.LIBRARY_ASSETS + else -> TODO("Unsupported variant type: $variantType") + }) + + override val BaseVariant.processedRes: Collection + get() = getFinalArtifactFiles(InternalArtifactType.PROCESSED_RES) + + override val BaseVariant.symbolList: Collection + get() = getFinalArtifactFiles(InternalArtifactType.SYMBOL_LIST) + + override val BaseVariant.symbolListWithPackageName: Collection + get() = getFinalArtifactFiles(InternalArtifactType.SYMBOL_LIST_WITH_PACKAGE_NAME) + + override val BaseVariant.dataBindingDependencyArtifacts: Collection + get() = getFinalArtifactFiles(InternalArtifactType.DATA_BINDING_DEPENDENCY_ARTIFACTS) + + override val BaseVariant.allClasses: Collection + get() = getFinalArtifactFiles(AnchorOutputType.ALL_CLASSES) + + override val BaseVariant.buildTools: BuildToolInfo + get() = globalScope.androidBuilder.buildToolInfo + + override val Context.task: TransformTask + get() = this as TransformTask + + override val Project.aapt2Enabled: Boolean + get() = true + +} diff --git a/settings.gradle b/settings.gradle index 5861143c5..1237fd51b 100644 --- a/settings.gradle +++ b/settings.gradle @@ -15,6 +15,7 @@ include ':booster-android-gradle-compat' include ':booster-android-gradle-v3_0' include ':booster-android-gradle-v3_2' include ':booster-android-gradle-v3_3' +include ':booster-android-gradle-v3_4' include ':booster-android-gradle-v3_5' include ':booster-android-gradle-v3_6' include ':booster-android-gradle-v4_0' From c0f160b8de6c8765200bb6a55453437972fd70c6 Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Tue, 9 Feb 2021 05:14:48 +0800 Subject: [PATCH 022/187] Release version 3.1.1-alpha-2 --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 5fdd74636..18b5e97e2 100644 --- a/build.gradle +++ b/build.gradle @@ -31,7 +31,7 @@ allprojects { project -> apply plugin: 'de.marcphilipp.nexus-publish' group = 'com.didiglobal.booster' - version = '3.1.1-alpha-1' + version = '3.1.1-alpha-2' repositories { mavenLocal() From 2b29ec6ecc8f16cc039811a389d1d48c692c656d Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Tue, 15 Dec 2020 02:23:35 +0800 Subject: [PATCH 023/187] Support AGP 4.2 --- booster-android-gradle-api/build.gradle | 1 + .../com/didiglobal/booster/gradle/Version.kt | 8 +- .../booster/android/gradle/v4_1/V41.kt | 10 +- booster-android-gradle-v4_2/README.md | 6 + booster-android-gradle-v4_2/build.gradle | 17 + .../android/gradle/v4_2/V42IntegrationTest.kt | 547 ++++++++++++++++++ .../src/integrationTest/resources/app.gradle | 62 ++ .../resources/buildSrc/build.gradle | 26 + .../src/integrationTest/resources/lib.gradle | 59 ++ .../resources/src/main/AndroidManifest.xml | 9 + .../booster/android/test/MainActivity.java | 6 + .../booster/android/test/TestApplication.java | 7 + .../resources/src/main/res/values/strings.xml | 4 + .../booster/android/gradle/v4_2/V42.kt | 199 +++++++ settings.gradle | 1 + 15 files changed, 953 insertions(+), 9 deletions(-) create mode 100644 booster-android-gradle-v4_2/README.md create mode 100644 booster-android-gradle-v4_2/build.gradle create mode 100644 booster-android-gradle-v4_2/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42IntegrationTest.kt create mode 100644 booster-android-gradle-v4_2/src/integrationTest/resources/app.gradle create mode 100644 booster-android-gradle-v4_2/src/integrationTest/resources/buildSrc/build.gradle create mode 100644 booster-android-gradle-v4_2/src/integrationTest/resources/lib.gradle create mode 100644 booster-android-gradle-v4_2/src/integrationTest/resources/src/main/AndroidManifest.xml create mode 100644 booster-android-gradle-v4_2/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/MainActivity.java create mode 100644 booster-android-gradle-v4_2/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/TestApplication.java create mode 100644 booster-android-gradle-v4_2/src/integrationTest/resources/src/main/res/values/strings.xml create mode 100644 booster-android-gradle-v4_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42.kt diff --git a/booster-android-gradle-api/build.gradle b/booster-android-gradle-api/build.gradle index ab5533328..ec109dd4c 100644 --- a/booster-android-gradle-api/build.gradle +++ b/booster-android-gradle-api/build.gradle @@ -9,6 +9,7 @@ dependencies { implementation project(':booster-android-gradle-v3_6') implementation project(':booster-android-gradle-v4_0') implementation project(':booster-android-gradle-v4_1') + implementation project(':booster-android-gradle-v4_2') api project(':booster-kotlinx') compileOnly 'com.android.tools.build:gradle:3.0.0' testCompileOnly 'com.android.tools.build:gradle:3.0.0' diff --git a/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/Version.kt b/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/Version.kt index 4dbc7029b..8b5216118 100644 --- a/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/Version.kt +++ b/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/Version.kt @@ -10,6 +10,7 @@ import com.didiglobal.booster.android.gradle.v3_5.V35 import com.didiglobal.booster.android.gradle.v3_6.V36 import com.didiglobal.booster.android.gradle.v4_0.V40 import com.didiglobal.booster.android.gradle.v4_1.V41 +import com.didiglobal.booster.android.gradle.v4_2.V42 internal val ANDROID_GRADLE_PLUGIN_VERSION = Revision.parseRevision(Version.ANDROID_GRADLE_PLUGIN_VERSION) @@ -23,8 +24,10 @@ val GTE_V3_1 = GTE_V3_X && ANDROID_GRADLE_PLUGIN_VERSION.minor >= 1 val GTE_V4_X = ANDROID_GRADLE_PLUGIN_VERSION.major >= 4 val GTE_V4_1 = GTE_V4_X && ANDROID_GRADLE_PLUGIN_VERSION.minor >= 1 +val GTE_V4_2 = GTE_V4_X && ANDROID_GRADLE_PLUGIN_VERSION.minor >= 2 internal val AGP: AGPInterface = arrayOf( + GTE_V4_2 to V42, GTE_V4_1 to V41, GTE_V4_X to V40, GTE_V3_6 to V36, @@ -33,6 +36,5 @@ internal val AGP: AGPInterface = arrayOf( GTE_V3_3 to V33, GTE_V3_2 to V32, GTE_V3_X to V30 -).firstOrNull { - it.first -}?.second ?: throw TODO("Incompatible with AGP $ANDROID_GRADLE_PLUGIN_VERSION") +).firstOrNull(Pair::first)?.second ?: throw TODO("Incompatible with AGP $ANDROID_GRADLE_PLUGIN_VERSION") + diff --git a/booster-android-gradle-v4_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_1/V41.kt b/booster-android-gradle-v4_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_1/V41.kt index 58a032d86..6e30c0f2a 100644 --- a/booster-android-gradle-v4_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_1/V41.kt +++ b/booster-android-gradle-v4_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_1/V41.kt @@ -1,6 +1,7 @@ package com.didiglobal.booster.android.gradle.v4_1 import com.android.build.api.artifact.Artifact +import com.android.build.api.artifact.ArtifactType import com.android.build.api.artifact.impl.ArtifactsImpl import com.android.build.api.component.impl.ComponentPropertiesImpl import com.android.build.api.transform.Context @@ -31,6 +32,7 @@ import java.util.TreeMap @Suppress("UnstableApiUsage") private val ARTIFACT_TYPES = arrayOf( + ArtifactType::class, AnchorOutputType::class, InternalArtifactType::class ).map { @@ -142,14 +144,10 @@ object V41 : AGPInterface { get() = getFinalArtifactFiles(InternalArtifactType.AAR) override val BaseVariant.apk: Collection - get() = getFinalArtifactFiles(InternalArtifactType.APK) + get() = getFinalArtifactFiles(ArtifactType.APK) override val BaseVariant.mergedManifests: Collection - get() = when (this) { - is ApplicationVariant -> getFinalArtifactFiles(InternalArtifactType.MERGED_MANIFESTS) - is LibraryVariant -> getFinalArtifactFiles(InternalArtifactType.LIBRARY_MANIFEST) - else -> TODO("Unsupported variant type: $variantType") - } + get() = getFinalArtifactFiles(ArtifactType.MERGED_MANIFEST) override val BaseVariant.mergedRes: Collection get() = getFinalArtifactFiles(InternalArtifactType.MERGED_RES) diff --git a/booster-android-gradle-v4_2/README.md b/booster-android-gradle-v4_2/README.md new file mode 100644 index 000000000..5e8eec8ea --- /dev/null +++ b/booster-android-gradle-v4_2/README.md @@ -0,0 +1,6 @@ +# booster-android-gradle-v4_2 + +This module is an implementation of [booster-android-gradle-api](../booster-android-gradle-api) for Android gradle plugin above 4.2. + +本模块是 [booster-android-gradle-api](../booster-android-gradle-api) 针对 Android gradle plugin 4.2 以上版本的实现。 + diff --git a/booster-android-gradle-v4_2/build.gradle b/booster-android-gradle-v4_2/build.gradle new file mode 100644 index 000000000..06fbf1b46 --- /dev/null +++ b/booster-android-gradle-v4_2/build.gradle @@ -0,0 +1,17 @@ +apply plugin: 'java-gradle-plugin' + +apply from: "$rootDir/gradle/booster.gradle" +apply from: "$rootDir/gradle/integration-test.gradle" +apply from: "$rootDir/gradle/functional-test.gradle" + +dependencies { + api project(':booster-android-gradle-compat') + compileOnly 'com.android.tools.build:gradle:4.2.0-beta01' + testImplementation 'com.android.tools.build:gradle:4.2.0-beta01' + testImplementation 'io.bootstage.testkit:testkit-gradle-plugin:1.1.0' + testImplementation project(':booster-build') +} + +gradlePlugin { + testSourceSets sourceSets.functionalTest, sourceSets.integrationTest +} \ No newline at end of file diff --git a/booster-android-gradle-v4_2/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42IntegrationTest.kt b/booster-android-gradle-v4_2/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42IntegrationTest.kt new file mode 100644 index 000000000..ccbfe3f80 --- /dev/null +++ b/booster-android-gradle-v4_2/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42IntegrationTest.kt @@ -0,0 +1,547 @@ +package com.didiglobal.booster.android.gradle.v4_2 + +import com.android.build.gradle.AppExtension +import com.android.build.gradle.BaseExtension +import com.android.build.gradle.LibraryExtension +import com.android.build.gradle.api.BaseVariant +import com.android.builder.core.VariantTypeImpl +import com.android.sdklib.BuildToolInfo +import com.didiglobal.booster.gradle.getAndroid +import com.didiglobal.booster.kotlinx.search +import io.bootstage.testkit.gradle.Case +import io.bootstage.testkit.gradle.TestCase +import io.bootstage.testkit.gradle.VariantTestCase +import io.bootstage.testkit.gradle.rules.GradleExecutor +import io.bootstage.testkit.gradle.rules.LocalProperties +import io.bootstage.testkit.gradle.rules.copyFromResource +import io.bootstage.testkit.gradle.rules.rule +import org.gradle.api.Project +import org.junit.Before +import org.junit.Rule +import org.junit.rules.TemporaryFolder +import org.junit.rules.TestRule +import kotlin.test.Test +import kotlin.test.assertEquals +import kotlin.test.assertFalse +import kotlin.test.assertNotNull +import kotlin.test.fail + +private const val MIN_SDK_VERSION = 18 + +private const val TARGET_SDK_VERSION = 26 + +private val AGP = V42 + +private val ARGS = arrayOf( + "assemble", "-S", + "-Pbooster_version=${Build.VERSION}", + "-Pandroid_gradle_version=4.2.0-beta01", + "-Pcompile_sdk_version=28", + "-Pbuild_tools_version=26.0.3", + "-Pmin_sdk_version=${MIN_SDK_VERSION}", + "-Ptarget_sdk_version=${TARGET_SDK_VERSION}" +) + +@Suppress("RemoveCurlyBracesFromTemplate", "FunctionName") +abstract class V42IntegrationTest(val isLib: Boolean) { + + private val projectDir = TemporaryFolder() + + @get:Rule + val ruleChain: TestRule = rule(projectDir) { + rule(LocalProperties(projectDir::getRoot)) { + GradleExecutor(projectDir::getRoot, "6.7", *ARGS) + } + } + + @Before + fun setup() { + projectDir.copyFromResource("${if (isLib) "lib" else "app"}.gradle", "build.gradle") + projectDir.copyFromResource("buildSrc") + projectDir.copyFromResource("src") + } + + @Test + @Case(ScopeFullWithFeaturesTest::class) + fun `test AGPInterface#scopeFullWithFeatures`() { + } + + @Test + @Case(ScopeFullLibraryWithFeaturesTest::class) + fun `test AGPInterface#scopeFullLibraryWithFeatures`() { + } + + @Test + @Case(ProjectTest::class) + fun `test AGPInterface#project`() { + } + + @Test + @Case(JavaCompilerTaskTestUnit::class) + fun `test AGPInterface#javaCompilerTask`() { + } + + @Test + @Case(PreBuildTaskTestUnit::class) + fun `test AGPInterface#preBuildTask`() { + } + + @Test + @Case(AssembleTaskTestUnit::class) + fun `test AGPInterface#assembleTask`() { + } + + @Test + @Case(MergeAssetsTaskTestUnit::class) + fun `test AGPInterface#mergeAssetsTask`() { + } + + @Test + @Case(MergeResourcesTaskTestUnit::class) + fun `test AGPInterface#mergeResources`() { + } + + @Test + @Case(GetTaskNameTestUnit::class) + fun `test AGPInterface#getTaskName(String)`() { + } + + @Test + @Case(GetTaskName2TestUnit::class) + fun `test AGPInterface#getTaskName(String, String)`() { + } + + @Test + @Case(VariantDataTestUnit::class) + fun `test AGPInterface#variantData`() { + } + + @Test + @Case(VariantScopeTestUnit::class) + fun `test AGPInterface#variantScope`() { + } + + @Test + @Case(GlobalScopeTestCase::class) + fun `test AGPInterface#globalScope`() { + } + + @Test + @Case(OriginalApplicationIdTestUnit::class) + fun `test AGPInterface#originalApplicationId`() { + } + + @Test + @Case(HasDynamicFeatureTestUnit::class) + fun `test AGPInterface#hasDynamicFeature`() { + } + + @Test + @Case(RawAndroidResourcesTestUnit::class) + fun `test AGPInterface#rawAndroidResources`() { + } + + @Test + @Case(AllArtifactsTestUnit::class) + fun `test AGPInterface#allArtifacts`() { + } + + @Test + @Case(MinSdkVersionTestUnit::class) + fun `test AGPInterface#minSdkVersion`() { + } + + @Test + @Case(TargetSdkVersionTestUnit::class) + fun `test AGPInterface#targetSdkVersion`() { + } + + @Test + @Case(VariantTypeTestUnit::class) + fun `test AGPInterface#variantType`() { + } + + @Test + @Case(AarTestUnit::class) + fun `test AGPInterface#aar`() { + } + + @Test + @Case(ApkTestUnit::class) + fun `test AGPInterface#apk`() { + } + + @Test + @Case(MergedManifestsTestUnit::class) + fun `test AGPInterface#mergedManifests`() { + } + + @Test + @Case(MergedResourcesTestUnit::class) + fun `test AGPInterface#mergedRes`() { + } + + @Test + @Case(MergedAssetsTestUnit::class) + fun `test AGPInterface#mergedAssets`() { + } + + @Test + @Case(ProcessedResTestUnit::class) + fun `test AGPInterface#processedRes`() { + } + + @Test + @Case(SymbolListTestUnit::class) + fun `test AGPInterface#symbolList`() { + } + + @Test + @Case(SymbolListWithPackageNameTestUnit::class) + fun `test AGPInterface#symbolListWithPackageName`() { + } + + @Test + @Case(AllClassesTestUnit::class) + fun `test AGPInterface#allClasses`() { + } + + @Test + @Case(BuildToolsTestUnit::class) + fun `test AGPInterface#buildTools`() { + } + +} + +class V42AppIntegrationTest : V42IntegrationTest(false) + +class V42LibIntegrationTest : V42IntegrationTest(true) + +class ScopeFullWithFeaturesTest : TestCase { + override fun apply(project: Project) { + assertEquals("PROJECT,SUB_PROJECTS,EXTERNAL_LIBRARIES,FEATURES", AGP.scopeFullWithFeatures.joinToString(",")) + } +} + +class ScopeFullLibraryWithFeaturesTest : TestCase { + override fun apply(project: Project) { + assertEquals("FEATURES,PROJECT", AGP.scopeFullLibraryWithFeatures.joinToString(",")) + } +} + +class ProjectTest : TestCase { + override fun apply(project: Project) { + val assert: (BaseVariant) -> Unit = { variant -> + assertEquals(project, AGP.run { variant.project }) + } + project.afterEvaluate { + when (val android = project.getAndroid()) { + is AppExtension -> android.applicationVariants.forEach(assert) + is LibraryExtension -> android.libraryVariants.forEach(assert) + } + } + } +} + +class JavaCompilerTaskTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + assertNotNull(AGP.run { variant.javaCompilerTask }) + } +} + +class PreBuildTaskTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + assertNotNull(AGP.run { variant.preBuildTask }) + } +} + +class AssembleTaskTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + assertNotNull(AGP.run { variant.assembleTask }) + } +} + +class MergeAssetsTaskTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + assertNotNull(AGP.run { variant.mergeAssetsTask }) + } +} + +class MergeResourcesTaskTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + assertNotNull(AGP.run { variant.mergeResourcesTask }) + } +} + +class GetTaskNameTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + assertEquals("assemble${variant.name.capitalize()}", AGP.run { variant.getTaskName("assemble") }) + } +} + + +class GetTaskName2TestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + assertEquals("merge${variant.name.capitalize()}Resources", AGP.run { variant.getTaskName("merge", "Resources") }) + } +} + +class VariantDataTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + assertNotNull(AGP.run { variant.variantData }) + } +} + +class VariantScopeTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + assertNotNull(AGP.run { variant.variantScope }) + } +} + +class GlobalScopeTestCase : VariantTestCase() { + override fun apply(variant: BaseVariant) { + assertNotNull(AGP.run { variant.globalScope }) + } +} + +class OriginalApplicationIdTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + assertNotNull(AGP.run { variant.originalApplicationId }) + } +} + +class HasDynamicFeatureTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + assertFalse(AGP.run { variant.hasDynamicFeature }) + } +} + +class RawAndroidResourcesTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + AGP.run { variant.assembleTask }.doFirst { + val rawAndroidResources = AGP.run { variant.rawAndroidResources } + assertNotNull(rawAndroidResources) + if (rawAndroidResources.isEmpty()) { + fail("rawAndroidResources is empty") + } + rawAndroidResources.forEach { + println(" - ${it.path}") + } + } + } +} + +class AllArtifactsTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + AGP.run { variant.assembleTask }.doFirst { + val allArtifacts = AGP.run { variant.allArtifacts } + assertNotNull(allArtifacts) + if (allArtifacts.isEmpty()) { + fail("allArtifacts is empty") + } + allArtifacts.forEach { (k, v) -> + println(" - $k => $v") + } + } + } +} + +class MinSdkVersionTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + val minSdkVersion = AGP.run { variant.minSdkVersion } + assertNotNull(minSdkVersion) + assertEquals(MIN_SDK_VERSION, minSdkVersion.apiLevel) + } +} + +class TargetSdkVersionTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + val targetSdkVersion = AGP.run { variant.targetSdkVersion } + assertNotNull(targetSdkVersion) + assertEquals(TARGET_SDK_VERSION, targetSdkVersion.apiLevel) + } +} + +class VariantTypeTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + val project = AGP.run { variant.project } + val variantType = AGP.run { variant.variantType } + if (project.plugins.hasPlugin("com.android.application")) { + assertEquals(VariantTypeImpl.BASE_APK, variantType) + } else if (project.plugins.hasPlugin("com.android.library")) { + assertEquals(VariantTypeImpl.LIBRARY, variantType) + } + } +} + +class AarTestUnit : VariantTestCase() { + override fun apply(project: Project) { + if (project.plugins.hasPlugin("com.android.library")) { + super.apply(project) + } + } + + override fun apply(variant: BaseVariant) { + AGP.run { variant.assembleTask }.doFirst { + val aar = AGP.run { variant.aar }.search { + it.extension == "aar" + } + if (aar.isEmpty()) { + fail("aar is empty") + } + aar.forEach { + println(" - ${it.path}") + } + } + } +} + +class ApkTestUnit : VariantTestCase() { + override fun apply(project: Project) { + if (project.plugins.hasPlugin("com.android.application")) { + super.apply(project) + } + } + + override fun apply(variant: BaseVariant) { + AGP.run { variant.assembleTask }.doFirst { + val apk = AGP.run { variant.apk }.search { + it.extension == "apk" + } + if (apk.isEmpty()) { + fail("apk is empty") + } + apk.forEach { + println(" - ${it.path}") + } + } + } +} + +class MergedManifestsTestUnit : VariantTestCase() { + override fun apply(project: Project) { + if (project.plugins.hasPlugin("com.android.application")) { + super.apply(project) + } + } + + override fun apply(variant: BaseVariant) { + AGP.run { variant.assembleTask }.doFirst { + val mergedManifests = AGP.run { variant.mergedManifests }.search { + it.name == "AndroidManifest.xml" + } + if (mergedManifests.isEmpty()) { + fail("mergedManifests is empty") + } + mergedManifests.forEach { + println(" - ${it.path}") + } + } + } +} + +class MergedResourcesTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + AGP.run { variant.assembleTask }.doFirst { + val mergedResources = AGP.run { variant.mergedRes } + if (mergedResources.isEmpty()) { + fail("mergedRes is empty") + } + mergedResources.forEach { + println(" - ${it.path}") + } + } + } +} + +class MergedAssetsTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + AGP.run { variant.assembleTask }.doFirst { + val mergedAssets = AGP.run { variant.mergedAssets } + if (mergedAssets.isEmpty()) { + fail("mergedAssets is empty") + } + mergedAssets.forEach { + println(" - ${it.path}") + } + } + } +} + +class ProcessedResTestUnit : VariantTestCase() { + override fun apply(project: Project) { + if (project.plugins.hasPlugin("com.android.application")) { + super.apply(project) + } + } + + override fun apply(variant: BaseVariant) { + AGP.run { variant.assembleTask }.doFirst { + val processedRes = AGP.run { variant.processedRes }.search { + it.extension == "ap_" + } + if (processedRes.isEmpty()) { + fail("processedRes is empty") + } + processedRes.forEach { + println(" - ${it.path}") + } + } + } +} + +class SymbolListTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + AGP.run { variant.assembleTask }.doFirst { + val symbolList = AGP.run { variant.symbolList } + if (symbolList.isEmpty()) { + fail("symbolList is empty") + } + symbolList.forEach { + println(" - ${it.path}") + } + } + } +} + +class SymbolListWithPackageNameTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + AGP.run { variant.assembleTask }.doFirst { + val symbolListWithPackageName = AGP.run { variant.symbolListWithPackageName } + if (symbolListWithPackageName.isEmpty()) { + fail("symbolListWithPackageName is empty") + } + symbolListWithPackageName.forEach { + println(" - ${it.path}") + } + } + } +} + +class AllClassesTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + AGP.run { variant.assembleTask }.doFirst { + val allClasses = AGP.run { variant.allClasses }.search { + it.extension == "class" + } + if (allClasses.isEmpty()) { + fail("allClasses is empty") + } + allClasses.forEach { + println(" - ${it.path}") + } + } + } +} + +class BuildToolsTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + val buildTools = AGP.run { variant.buildTools } + assertNotNull(buildTools) + BuildToolInfo.PathId.values().map { + it.name to buildTools.getPath(it) + }.forEach { (k, v) -> + println(" - $k => $v") + } + } +} diff --git a/booster-android-gradle-v4_2/src/integrationTest/resources/app.gradle b/booster-android-gradle-v4_2/src/integrationTest/resources/app.gradle new file mode 100644 index 000000000..3d8254090 --- /dev/null +++ b/booster-android-gradle-v4_2/src/integrationTest/resources/app.gradle @@ -0,0 +1,62 @@ +buildscript { + repositories { + mavenLocal() + mavenCentral() + google() + jcenter() + maven { url 'https://oss.sonatype.org/content/repositories/public/' } + maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } + } + dependencies { + classpath "com.android.tools.build:gradle:${project.android_gradle_version}" + classpath("com.didiglobal.booster:booster-gradle-plugin:${project.booster_version}") { + exclude group: 'com.google.guava' + } + classpath "io.bootstage.testkit:testkit-gradle-plugin:1.1.0" + } +} + +apply plugin: 'com.android.application' +apply plugin: 'com.didiglobal.booster' +apply plugin: 'io.bootstage.testkit' + +android { + compileSdkVersion project.compile_sdk_version as Integer + buildToolsVersion project.build_tools_version + defaultConfig { + applicationId 'com.didiglobal.booster.test' + minSdkVersion project.min_sdk_version as Integer + targetSdkVersion project.target_sdk_version as Integer + versionCode 1 + versionName "1.0" + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + } + buildTypes { + debug { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + } + } + flavorDimensions 'lang' + productFlavors { + en { + dimension 'lang' + applicationIdSuffix '.en' + } + cn { + dimension 'lang' + applicationIdSuffix '.cn' + } + } + lintOptions { + checkReleaseBuilds false + } +} + +repositories { + mavenLocal() + mavenCentral() + google() + jcenter() + maven { url 'https://oss.sonatype.org/content/repositories/public/' } +} diff --git a/booster-android-gradle-v4_2/src/integrationTest/resources/buildSrc/build.gradle b/booster-android-gradle-v4_2/src/integrationTest/resources/buildSrc/build.gradle new file mode 100644 index 000000000..fe29d688a --- /dev/null +++ b/booster-android-gradle-v4_2/src/integrationTest/resources/buildSrc/build.gradle @@ -0,0 +1,26 @@ +buildscript { + repositories { + mavenLocal() + mavenCentral() + google() + jcenter() + maven { url 'https://oss.sonatype.org/content/repositories/public/' } + maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } + } +} + +repositories { + mavenLocal() + mavenCentral() + google() + jcenter() + maven { url 'https://oss.sonatype.org/content/repositories/public/' } +} + +dependencies { + implementation "com.android.tools.build:gradle:${project.android_gradle_version}" + implementation("com.didiglobal.booster:booster-android-gradle-api:${project.booster_version}") { + exclude group: 'com.google.guava' + } + implementation "io.bootstage.testkit:testkit-gradle-plugin:1.1.0" +} diff --git a/booster-android-gradle-v4_2/src/integrationTest/resources/lib.gradle b/booster-android-gradle-v4_2/src/integrationTest/resources/lib.gradle new file mode 100644 index 000000000..6164180c7 --- /dev/null +++ b/booster-android-gradle-v4_2/src/integrationTest/resources/lib.gradle @@ -0,0 +1,59 @@ +buildscript { + repositories { + mavenLocal() + mavenCentral() + google() + jcenter() + maven { url 'https://oss.sonatype.org/content/repositories/public/' } + maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } + } + dependencies { + classpath "com.android.tools.build:gradle:${project.android_gradle_version}" + classpath("com.didiglobal.booster:booster-gradle-plugin:${project.booster_version}") { + exclude group: 'com.google.guava' + } + classpath "io.bootstage.testkit:testkit-gradle-plugin:1.1.0" + } +} + +apply plugin: 'com.android.library' +apply plugin: 'com.didiglobal.booster' +apply plugin: 'io.bootstage.testkit' + +android { + compileSdkVersion project.compile_sdk_version as Integer + buildToolsVersion project.build_tools_version + defaultConfig { + minSdkVersion project.min_sdk_version as Integer + targetSdkVersion project.target_sdk_version as Integer + versionCode 1 + versionName "1.0" + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + } + buildTypes { + debug { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + } + } + flavorDimensions 'lang' + productFlavors { + en { + dimension 'lang' + } + cn { + dimension 'lang' + } + } + lintOptions { + checkReleaseBuilds false + } +} + +repositories { + mavenLocal() + mavenCentral() + google() + jcenter() + maven { url 'https://oss.sonatype.org/content/repositories/public/' } +} diff --git a/booster-android-gradle-v4_2/src/integrationTest/resources/src/main/AndroidManifest.xml b/booster-android-gradle-v4_2/src/integrationTest/resources/src/main/AndroidManifest.xml new file mode 100644 index 000000000..30800c604 --- /dev/null +++ b/booster-android-gradle-v4_2/src/integrationTest/resources/src/main/AndroidManifest.xml @@ -0,0 +1,9 @@ + + + + + + \ No newline at end of file diff --git a/booster-android-gradle-v4_2/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/MainActivity.java b/booster-android-gradle-v4_2/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/MainActivity.java new file mode 100644 index 000000000..0eb4ec7b4 --- /dev/null +++ b/booster-android-gradle-v4_2/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/MainActivity.java @@ -0,0 +1,6 @@ +package com.didiglobal.booster.android.test; + +import android.app.Activity; + +public class MainActivity extends Activity { +} \ No newline at end of file diff --git a/booster-android-gradle-v4_2/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/TestApplication.java b/booster-android-gradle-v4_2/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/TestApplication.java new file mode 100644 index 000000000..3ecfb1507 --- /dev/null +++ b/booster-android-gradle-v4_2/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/TestApplication.java @@ -0,0 +1,7 @@ +package com.didiglobal.booster.android.test; + +import android.app.Application; + +public class TestApplication extends Application { + +} \ No newline at end of file diff --git a/booster-android-gradle-v4_2/src/integrationTest/resources/src/main/res/values/strings.xml b/booster-android-gradle-v4_2/src/integrationTest/resources/src/main/res/values/strings.xml new file mode 100644 index 000000000..8b2247616 --- /dev/null +++ b/booster-android-gradle-v4_2/src/integrationTest/resources/src/main/res/values/strings.xml @@ -0,0 +1,4 @@ + + + Test + \ No newline at end of file diff --git a/booster-android-gradle-v4_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42.kt b/booster-android-gradle-v4_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42.kt new file mode 100644 index 000000000..0ea4f7477 --- /dev/null +++ b/booster-android-gradle-v4_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42.kt @@ -0,0 +1,199 @@ +package com.didiglobal.booster.android.gradle.v4_2 + +import com.android.build.api.artifact.Artifact +import com.android.build.api.artifact.ArtifactType +import com.android.build.api.artifact.impl.ArtifactsImpl +import com.android.build.api.component.impl.ComponentImpl +import com.android.build.api.transform.Context +import com.android.build.api.transform.QualifiedContent +import com.android.build.gradle.api.ApplicationVariant +import com.android.build.gradle.api.BaseVariant +import com.android.build.gradle.api.LibraryVariant +import com.android.build.gradle.internal.api.BaseVariantImpl +import com.android.build.gradle.internal.pipeline.TransformManager +import com.android.build.gradle.internal.pipeline.TransformTask +import com.android.build.gradle.internal.publishing.AndroidArtifacts +import com.android.build.gradle.internal.scope.AnchorOutputType +import com.android.build.gradle.internal.scope.GlobalScope +import com.android.build.gradle.internal.scope.InternalArtifactType +import com.android.build.gradle.internal.scope.VariantScope +import com.android.build.gradle.internal.variant.BaseVariantData +import com.android.builder.core.VariantType +import com.android.builder.model.ApiVersion +import com.android.sdklib.AndroidVersion +import com.android.sdklib.BuildToolInfo +import com.didiglobal.booster.gradle.AGPInterface +import org.gradle.api.Project +import org.gradle.api.Task +import org.gradle.api.artifacts.ArtifactCollection +import org.gradle.api.file.FileSystemLocation +import java.io.File +import java.util.TreeMap + +@Suppress("UnstableApiUsage") +private val ARTIFACT_TYPES = arrayOf( + ArtifactType::class, + AnchorOutputType::class, + InternalArtifactType::class +).map { + it.sealedSubclasses +}.flatten().map { + it.objectInstance as Artifact.SingleArtifact +}.map { + it.javaClass.simpleName to it +}.toMap() + +private val BaseVariant.component: ComponentImpl + get() = BaseVariantImpl::class.java.getDeclaredField("component").apply { + isAccessible = true + }.get(this) as ComponentImpl + +@Suppress("UnstableApiUsage") +private fun BaseVariant.getFinalArtifactFiles(type: Artifact.SingleArtifact): Collection { + return listOfNotNull(artifacts.get(type).map(FileSystemLocation::getAsFile).orNull) +} + +@Suppress("DEPRECATION") +private val BaseVariant.globalScope: GlobalScope + get() = component.globalScope + +@Suppress("UnstableApiUsage") +private val BaseVariant.artifacts: ArtifactsImpl + get() = component.artifacts + +object V42 : AGPInterface { + + override val scopeFullWithFeatures: MutableSet + get() = TransformManager.SCOPE_FULL_WITH_FEATURES + + override val scopeFullLibraryWithFeatures: MutableSet + get() = (TransformManager.SCOPE_FEATURES + QualifiedContent.Scope.PROJECT).toMutableSet() + + override val BaseVariant.project: Project + get() = globalScope.project + + override val BaseVariant.javaCompilerTask: Task + get() = javaCompileProvider.get() + + override val BaseVariant.preBuildTask: Task + get() = preBuildProvider.get() + + override val BaseVariant.assembleTask: Task + get() = assembleProvider.get() + + override val BaseVariant.mergeAssetsTask: Task + get() = mergeAssetsProvider.get() + + override val BaseVariant.mergeResourcesTask: Task + get() = mergeResourcesProvider.get() + + override fun BaseVariant.getTaskName(prefix: String): String { + return component.computeTaskName(prefix) + } + + override fun BaseVariant.getTaskName(prefix: String, suffix: String): String { + return component.computeTaskName(prefix, suffix) + } + + override val BaseVariant.variantData: BaseVariantData + get() = javaClass.getDeclaredMethod("getVariantData").apply { + isAccessible = true + }.invoke(this) as BaseVariantData + + override val BaseVariant.variantScope: VariantScope + get() = component.variantScope + + override val BaseVariant.globalScope: GlobalScope + get() = component.globalScope + + override val BaseVariant.originalApplicationId: String + get() = component.variantDslInfo.packageName.get() + + override val BaseVariant.hasDynamicFeature: Boolean + get() = globalScope.hasDynamicFeatures() + + override val BaseVariant.rawAndroidResources: Collection + get() = component.variantData.allRawAndroidResources.files + + override fun BaseVariant.getArtifactCollection( + configType: AndroidArtifacts.ConsumedConfigType, + scope: AndroidArtifacts.ArtifactScope, + artifactType: AndroidArtifacts.ArtifactType + ): ArtifactCollection { + return component.variantDependencies.getArtifactCollection(configType, scope, artifactType) + } + + override val BaseVariant.allArtifacts: Map> + get() = ARTIFACT_TYPES.entries.map { + val artifacts: Collection by lazy { + getFinalArtifactFiles(it.value) + } + it.key to artifacts + }.toMap(TreeMap()) + + override val BaseVariant.minSdkVersion: AndroidVersion + get() = component.minSdkVersion.run { + @Suppress("UnstableApiUsage") + AndroidVersion(apiLevel, codename) + } + + override val BaseVariant.targetSdkVersion: ApiVersion + get() = component.targetSdkVersion + + override val BaseVariant.variantType: VariantType + get() = component.variantType + + override val BaseVariant.aar: Collection + get() = getFinalArtifactFiles(ArtifactType.AAR) + + override val BaseVariant.apk: Collection + get() = getFinalArtifactFiles(ArtifactType.APK) + + override val BaseVariant.mergedManifests: Collection + get() = getFinalArtifactFiles(ArtifactType.MERGED_MANIFEST) + + override val BaseVariant.mergedRes: Collection + get() = getFinalArtifactFiles(InternalArtifactType.MERGED_RES) + + override val BaseVariant.mergedAssets: Collection + get() = when (this) { + is ApplicationVariant -> getFinalArtifactFiles(InternalArtifactType.MERGED_ASSETS) + is LibraryVariant -> getFinalArtifactFiles(InternalArtifactType.LIBRARY_ASSETS) + else -> TODO("Unsupported variant type: $variantType") + } + + override val BaseVariant.processedRes: Collection + get() = getFinalArtifactFiles(InternalArtifactType.PROCESSED_RES) + + override val BaseVariant.symbolList: Collection + get() = when (this) { + is ApplicationVariant -> getFinalArtifactFiles(InternalArtifactType.RUNTIME_SYMBOL_LIST) + is LibraryVariant -> getFinalArtifactFiles(InternalArtifactType.COMPILE_SYMBOL_LIST) + else -> TODO("Unsupported variant type : $variantType") + } + + override val BaseVariant.symbolListWithPackageName: Collection + get() = getFinalArtifactFiles(InternalArtifactType.SYMBOL_LIST_WITH_PACKAGE_NAME) + + override val BaseVariant.dataBindingDependencyArtifacts: Collection + get() = getFinalArtifactFiles(InternalArtifactType.DATA_BINDING_DEPENDENCY_ARTIFACTS) + + override val BaseVariant.allClasses: Collection + get() = getFinalArtifactFiles(InternalArtifactType.JAVAC) + + override val BaseVariant.buildTools: BuildToolInfo + get() = globalScope.sdkComponents.get().buildToolInfoProvider.get() + + override val Context.task: TransformTask + get() = javaClass.getDeclaredField("this$1").apply { + isAccessible = true + }.get(this).run { + javaClass.getDeclaredField("this$0").apply { + isAccessible = true + }.get(this) + } as TransformTask + + override val Project.aapt2Enabled: Boolean + get() = true + +} diff --git a/settings.gradle b/settings.gradle index 1237fd51b..a1c2d4c40 100644 --- a/settings.gradle +++ b/settings.gradle @@ -20,6 +20,7 @@ include ':booster-android-gradle-v3_5' include ':booster-android-gradle-v3_6' include ':booster-android-gradle-v4_0' include ':booster-android-gradle-v4_1' +include ':booster-android-gradle-v4_2' include ':booster-annotations' include ':booster-api' include ':booster-build' From b1a5ff9c8f0bf197ded313e79169cbadbfd5d986 Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Tue, 15 Dec 2020 23:28:15 +0800 Subject: [PATCH 024/187] Release version 3.2.0-alpha1 --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 18b5e97e2..135f12d07 100644 --- a/build.gradle +++ b/build.gradle @@ -31,7 +31,7 @@ allprojects { project -> apply plugin: 'de.marcphilipp.nexus-publish' group = 'com.didiglobal.booster' - version = '3.1.1-alpha-2' + version = '3.2.0-alpha1' repositories { mavenLocal() From e428660b82c905b79da68bf0fbb43fe86c592f21 Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Sat, 19 Dec 2020 15:26:01 +0800 Subject: [PATCH 025/187] Fix AGP version comparison --- .../com/didiglobal/booster/gradle/Version.kt | 24 ++++++++++--------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/Version.kt b/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/Version.kt index 8b5216118..d70f81f70 100644 --- a/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/Version.kt +++ b/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/Version.kt @@ -12,19 +12,21 @@ import com.didiglobal.booster.android.gradle.v4_0.V40 import com.didiglobal.booster.android.gradle.v4_1.V41 import com.didiglobal.booster.android.gradle.v4_2.V42 -internal val ANDROID_GRADLE_PLUGIN_VERSION = Revision.parseRevision(Version.ANDROID_GRADLE_PLUGIN_VERSION) +internal val ANDROID_GRADLE_PLUGIN_VERSION: Revision = Revision.parseRevision(Version.ANDROID_GRADLE_PLUGIN_VERSION) +internal val MAJOR = ANDROID_GRADLE_PLUGIN_VERSION.major +internal val MINOR = ANDROID_GRADLE_PLUGIN_VERSION.minor -val GTE_V3_X = ANDROID_GRADLE_PLUGIN_VERSION.major >= 3 -val GTE_V3_6 = GTE_V3_X && ANDROID_GRADLE_PLUGIN_VERSION.minor >= 6 -val GTE_V3_5 = GTE_V3_X && ANDROID_GRADLE_PLUGIN_VERSION.minor >= 5 -val GTE_V3_4 = GTE_V3_X && ANDROID_GRADLE_PLUGIN_VERSION.minor >= 4 -val GTE_V3_3 = GTE_V3_X && ANDROID_GRADLE_PLUGIN_VERSION.minor >= 3 -val GTE_V3_2 = GTE_V3_X && ANDROID_GRADLE_PLUGIN_VERSION.minor >= 2 -val GTE_V3_1 = GTE_V3_X && ANDROID_GRADLE_PLUGIN_VERSION.minor >= 1 +val GTE_V3_X = MAJOR >= 3 +val GTE_V3_6 = MAJOR > 3 || (MAJOR == 3 && MINOR >= 6) +val GTE_V3_5 = MAJOR > 3 || (MAJOR == 3 && MINOR >= 5) +val GTE_V3_4 = MAJOR > 3 || (MAJOR == 3 && MINOR >= 4) +val GTE_V3_3 = MAJOR > 3 || (MAJOR == 3 && MINOR >= 3) +val GTE_V3_2 = MAJOR > 3 || (MAJOR == 3 && MINOR >= 2) +val GTE_V3_1 = MAJOR > 3 || (MAJOR == 3 && MINOR >= 1) -val GTE_V4_X = ANDROID_GRADLE_PLUGIN_VERSION.major >= 4 -val GTE_V4_1 = GTE_V4_X && ANDROID_GRADLE_PLUGIN_VERSION.minor >= 1 -val GTE_V4_2 = GTE_V4_X && ANDROID_GRADLE_PLUGIN_VERSION.minor >= 2 +val GTE_V4_X = MAJOR >= 4 +val GTE_V4_2 = MAJOR > 4 || (MAJOR == 4 && MINOR >= 2) +val GTE_V4_1 = MAJOR > 4 || (MAJOR == 4 && MINOR >= 1) internal val AGP: AGPInterface = arrayOf( GTE_V4_2 to V42, From 967d00f120d6f7bb8c0c3f981c37eb25cf5fa5c5 Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Sat, 19 Dec 2020 15:28:23 +0800 Subject: [PATCH 026/187] Support disabling variant transformation by setting property `booster.transform.${variantName}.enabled` to `false` --- .../booster/gradle/BoosterPlugin.kt | 4 +-- .../booster/gradle/BoosterTransform.kt | 12 ++++++++- .../gradle/BoosterTransformInvocation.kt | 26 +++--------------- .../gradle/internal/BoosterTransformV34.kt | 23 ++++++++++++++++ .../didiglobal/booster/gradle/util/Dexer.kt | 27 +++++++++++++++++++ 5 files changed, 67 insertions(+), 25 deletions(-) create mode 100644 booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/internal/BoosterTransformV34.kt create mode 100644 booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/util/Dexer.kt diff --git a/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/BoosterPlugin.kt b/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/BoosterPlugin.kt index 53407e521..ecf330eb2 100644 --- a/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/BoosterPlugin.kt +++ b/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/BoosterPlugin.kt @@ -17,7 +17,7 @@ class BoosterPlugin : Plugin { when { project.plugins.hasPlugin("com.android.application") || project.plugins.hasPlugin("com.android.dynamic-feature") -> project.getAndroid().let { android -> - android.registerTransform(BoosterTransform(project)) + android.registerTransform(BoosterTransform.newInstance(project)) project.afterEvaluate { loadVariantProcessors(project).let { processors -> android.applicationVariants.forEach { variant -> @@ -29,7 +29,7 @@ class BoosterPlugin : Plugin { } } project.plugins.hasPlugin("com.android.library") -> project.getAndroid().let { android -> - android.registerTransform(BoosterTransform(project)) + android.registerTransform(BoosterTransform.newInstance(project)) project.afterEvaluate { loadVariantProcessors(project).let { processors -> android.libraryVariants.forEach { variant -> diff --git a/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/BoosterTransform.kt b/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/BoosterTransform.kt index e865dcca8..991beab5f 100644 --- a/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/BoosterTransform.kt +++ b/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/BoosterTransform.kt @@ -6,6 +6,7 @@ import com.android.build.api.transform.TransformInvocation import com.android.build.gradle.BaseExtension import com.android.build.gradle.internal.pipeline.TransformManager import com.didiglobal.booster.annotations.Priority +import com.didiglobal.booster.gradle.internal.BoosterTransformV34 import com.didiglobal.booster.transform.AbstractKlassPool import org.gradle.api.Project @@ -14,7 +15,7 @@ import org.gradle.api.Project * * @author johnsonlee */ -open class BoosterTransform(val project: Project) : Transform() { +open class BoosterTransform protected constructor(val project: Project) : Transform() { /* * Preload transformers as List to fix NoSuchElementException caused by ServiceLoader in parallel mode @@ -75,6 +76,15 @@ open class BoosterTransform(val project: Project) : Transform() { } } + companion object { + + fun newInstance(project: Project): BoosterTransform = when { + GTE_V3_4 -> BoosterTransformV34(project) + else -> BoosterTransform(project) + } + + } + } /** diff --git a/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/BoosterTransformInvocation.kt b/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/BoosterTransformInvocation.kt index 09cec0981..0435260aa 100644 --- a/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/BoosterTransformInvocation.kt +++ b/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/BoosterTransformInvocation.kt @@ -10,7 +10,7 @@ import com.android.build.api.transform.Status.NOTCHANGED import com.android.build.api.transform.Status.REMOVED import com.android.build.api.transform.TransformInvocation import com.android.dex.DexFormat -import com.android.dx.command.dexer.Main +import com.didiglobal.booster.gradle.util.dex import com.didiglobal.booster.kotlinx.NCPU import com.didiglobal.booster.kotlinx.file import com.didiglobal.booster.kotlinx.green @@ -184,28 +184,10 @@ internal class BoosterTransformInvocation( private fun doVerify() { outputs.sortedBy(File::nameWithoutExtension).forEach { output -> - val dex = temporaryDir.file(output.name) - val args = Main.Arguments().apply { - numThreads = NCPU - debug = true - warnings = true - emptyOk = true - multiDex = true - jarOutput = true - optimize = false - minSdkVersion = variant.extension.defaultConfig.targetSdkVersion?.apiLevel ?: DexFormat.API_NO_EXTENDED_OPCODES - fileNames = arrayOf(output.absolutePath) - outName = dex.absolutePath - } - val rc = try { - Main.run(args) - } catch (t: Throwable) { - t.printStackTrace() - -1 - } - + val out = temporaryDir.file(output.name) + val rc = out.dex(output, variant.extension.defaultConfig.targetSdkVersion?.apiLevel ?: DexFormat.API_NO_EXTENDED_OPCODES) println("${if (rc != 0) red("✗") else green("✓")} $output") - dex.deleteRecursively() + out.deleteRecursively() } } diff --git a/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/internal/BoosterTransformV34.kt b/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/internal/BoosterTransformV34.kt new file mode 100644 index 000000000..7c1596b6d --- /dev/null +++ b/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/internal/BoosterTransformV34.kt @@ -0,0 +1,23 @@ +package com.didiglobal.booster.gradle.internal + +import com.android.build.api.variant.VariantInfo +import com.didiglobal.booster.gradle.BoosterTransform +import org.gradle.api.Project + +internal class BoosterTransformV34(project: Project) : BoosterTransform(project) { + + @Suppress("UnstableApiUsage") + override fun applyToVariant(variant: VariantInfo): Boolean { + return variant.buildTypeEnabled || (variant.flavorNames.isNotEmpty() && variant.fullVariantEnabled) + } + + @Suppress("UnstableApiUsage") + private val VariantInfo.fullVariantEnabled: Boolean + get() = project.findProperty("booster.transform.${fullVariantName}.enabled")?.toString()?.toBoolean() ?: true + + @Suppress("UnstableApiUsage") + private val VariantInfo.buildTypeEnabled: Boolean + get() = project.findProperty("booster.transform.${buildTypeName}.enabled")?.toString()?.toBoolean() ?: true + +} + diff --git a/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/util/Dexer.kt b/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/util/Dexer.kt new file mode 100644 index 000000000..1917ac3b2 --- /dev/null +++ b/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/util/Dexer.kt @@ -0,0 +1,27 @@ +package com.didiglobal.booster.gradle.util + +import com.android.dex.DexFormat +import com.android.dx.command.dexer.Main +import com.didiglobal.booster.kotlinx.NCPU +import java.io.File + +internal fun File.dex(output: File, api: Int = DexFormat.API_NO_EXTENDED_OPCODES): Int { + val args = Main.Arguments().apply { + numThreads = NCPU + debug = true + warnings = true + emptyOk = true + multiDex = true + jarOutput = true + optimize = false + minSdkVersion = api + fileNames = arrayOf(output.absolutePath) + outName = absolutePath + } + return try { + Main.run(args) + } catch (t: Throwable) { + t.printStackTrace() + -1 + } +} From 877fa1c8ab0d60ed37f680f77d8b9ee6eaaeb514 Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Sat, 19 Dec 2020 23:19:48 +0800 Subject: [PATCH 027/187] Replace `absolutePath` with `canonicalPath` --- .../kotlin/com/didiglobal/booster/aapt2/Aapt2Parser.kt | 4 ++-- .../kotlin/com/didiglobal/booster/aapt2/BinaryParser.kt | 2 +- .../kotlin/com/didiglobal/booster/cha/ArchivedClassSet.kt | 2 +- .../com/didiglobal/booster/cha/DirectoryClassSet.kt | 2 +- .../com/didiglobal/booster/command/CommandInstaller.kt | 4 ++-- .../kotlin/com/didiglobal/booster/gradle/util/Dexer.kt | 4 ++-- .../task/compression/cwebp/CwebpCompressFlatImages.kt | 4 ++-- .../booster/task/compression/cwebp/CwebpCompressImages.kt | 4 ++-- .../task/compression/cwebp/CwebpCompressOpaqueImages.kt | 2 +- .../compression/pngquant/PngquantCompressFlatImages.kt | 4 ++-- .../task/compression/pngquant/PngquantCompressImages.kt | 2 +- .../didiglobal/booster/task/permission/ListPermission.kt | 8 ++++---- .../booster/transform/r/inline/RInlineTransformer.kt | 2 +- .../booster/transform/r/inline/RetainedSymbolCollector.kt | 6 +++--- .../didiglobal/booster/transform/r/inline/SymbolList.kt | 2 +- .../com/didiglobal/booster/transform/util/transform.kt | 4 ++-- 16 files changed, 28 insertions(+), 28 deletions(-) diff --git a/booster-aapt2/src/main/kotlin/com/didiglobal/booster/aapt2/Aapt2Parser.kt b/booster-aapt2/src/main/kotlin/com/didiglobal/booster/aapt2/Aapt2Parser.kt index 7c67e57dd..fcd666dd7 100644 --- a/booster-aapt2/src/main/kotlin/com/didiglobal/booster/aapt2/Aapt2Parser.kt +++ b/booster-aapt2/src/main/kotlin/com/didiglobal/booster/aapt2/Aapt2Parser.kt @@ -29,11 +29,11 @@ val File.metadata: Metadata when (type) { RES_FILE -> parser.parseResFileMetadata() - else -> throw RuntimeException("Unsupported entry type 0x${type.toString(16)} `$absolutePath`") + else -> throw RuntimeException("Unsupported entry type 0x${type.toString(16)} `$canonicalPath`") } } RES_FILE -> parser.parseLegacyMetadata() - else -> throw Aapt2ParseException("Unrecognized file `$absolutePath`") + else -> throw Aapt2ParseException("Unrecognized file `$canonicalPath`") } } diff --git a/booster-aapt2/src/main/kotlin/com/didiglobal/booster/aapt2/BinaryParser.kt b/booster-aapt2/src/main/kotlin/com/didiglobal/booster/aapt2/BinaryParser.kt index ce66ebf14..0b0f32527 100644 --- a/booster-aapt2/src/main/kotlin/com/didiglobal/booster/aapt2/BinaryParser.kt +++ b/booster-aapt2/src/main/kotlin/com/didiglobal/booster/aapt2/BinaryParser.kt @@ -48,7 +48,7 @@ class BinaryParser : Closeable { constructor(file: File, order: ByteOrder = ByteOrder.LITTLE_ENDIAN) { _channel = FileChannel.open(file.toPath(), StandardOpenOption.READ) _buffer = _channel.map(FileChannel.MapMode.READ_ONLY, 0, file.length()).order(order) - _file = file.absolutePath + _file = file.canonicalPath } /** diff --git a/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/ArchivedClassSet.kt b/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/ArchivedClassSet.kt index 9adf8e688..c6d9e3a23 100644 --- a/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/ArchivedClassSet.kt +++ b/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/ArchivedClassSet.kt @@ -48,6 +48,6 @@ internal class ArchivedClassSet(val location: File) : AbstractClassSet() { override fun close() = zip.close() - override fun toString(): String = this.location.absolutePath + override fun toString(): String = this.location.canonicalPath } \ No newline at end of file diff --git a/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/DirectoryClassSet.kt b/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/DirectoryClassSet.kt index c4fdb461a..3e66934a3 100644 --- a/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/DirectoryClassSet.kt +++ b/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/DirectoryClassSet.kt @@ -41,7 +41,7 @@ internal class DirectoryClassSet(val location: File) : AbstractClassSet() { override fun iterator(): Iterator = this.classes.values.iterator() - override fun toString(): String = this.location.absolutePath + override fun toString(): String = this.location.canonicalPath override fun close() { } diff --git a/booster-command/src/main/kotlin/com/didiglobal/booster/command/CommandInstaller.kt b/booster-command/src/main/kotlin/com/didiglobal/booster/command/CommandInstaller.kt index 99b566875..cb75850d3 100644 --- a/booster-command/src/main/kotlin/com/didiglobal/booster/command/CommandInstaller.kt +++ b/booster-command/src/main/kotlin/com/didiglobal/booster/command/CommandInstaller.kt @@ -33,8 +33,8 @@ open class CommandInstaller : DefaultTask() { FileUtils.copyInputStreamToFile(input, location) project.exec { it.commandLine = when { - OS.isLinux() || OS.isMac() -> listOf("chmod", "+x", location.absolutePath) - OS.isWindows() -> listOf("cmd", "/c echo Y|cacls ${location.absolutePath} /t /p everyone:f") + OS.isLinux() || OS.isMac() -> listOf("chmod", "+x", location.canonicalPath) + OS.isWindows() -> listOf("cmd", "/c echo Y|cacls ${location.canonicalPath} /t /p everyone:f") else -> TODO("Unsupported OS ${OS.name}") } } diff --git a/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/util/Dexer.kt b/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/util/Dexer.kt index 1917ac3b2..9c0b455ed 100644 --- a/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/util/Dexer.kt +++ b/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/util/Dexer.kt @@ -15,8 +15,8 @@ internal fun File.dex(output: File, api: Int = DexFormat.API_NO_EXTENDED_OPCODES jarOutput = true optimize = false minSdkVersion = api - fileNames = arrayOf(output.absolutePath) - outName = absolutePath + fileNames = arrayOf(output.canonicalPath) + outName = canonicalPath } return try { Main.run(args) diff --git a/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/CwebpCompressFlatImages.kt b/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/CwebpCompressFlatImages.kt index 381c8cfa5..e060c2fef 100644 --- a/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/CwebpCompressFlatImages.kt +++ b/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/CwebpCompressFlatImages.kt @@ -63,8 +63,8 @@ internal open class CwebpCompressFlatImages : AbstractCwebpCompressImages() { }.map { val output = compressedRes.file("${it.second.resourcePath.substringBeforeLast('.')}.webp") Aapt2ActionData(it.first, it.second, output, - listOf(cwebp, "-mt", "-quiet", "-q", options.quality.toString(), it.second.sourcePath, "-o", output.absolutePath), - listOf(aapt2, "compile", "-o", it.first.parent, output.absolutePath)) + listOf(cwebp, "-mt", "-quiet", "-q", options.quality.toString(), it.second.sourcePath, "-o", output.canonicalPath), + listOf(aapt2, "compile", "-o", it.first.parent, output.canonicalPath)) }.forEach { it.output.parentFile.mkdirs() val s0 = File(it.metadata.sourcePath).length() diff --git a/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/CwebpCompressImages.kt b/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/CwebpCompressImages.kt index 225ee66df..7ce6cb857 100644 --- a/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/CwebpCompressImages.kt +++ b/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/CwebpCompressImages.kt @@ -23,8 +23,8 @@ internal open class CwebpCompressImages : AbstractCwebpCompressImages() { override fun compress(filter: (File) -> Boolean) { val cwebp = compressor.canonicalPath images.parallelStream().filter(this::includes).filter(filter).map { input -> - val output = File(input.absolutePath.substringBeforeLast('.') + ".webp") - ActionData(input, output, listOf(cwebp, "-mt", "-quiet", "-q", options.quality.toString(), "-o", output.absolutePath, input.absolutePath)) + val output = File(input.canonicalPath.substringBeforeLast('.') + ".webp") + ActionData(input, output, listOf(cwebp, "-mt", "-quiet", "-q", options.quality.toString(), "-o", output.canonicalPath, input.canonicalPath)) }.forEach { val s0 = it.input.length() val rc = project.exec { spec -> diff --git a/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/CwebpCompressOpaqueImages.kt b/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/CwebpCompressOpaqueImages.kt index 733f10212..c5fe66ffd 100644 --- a/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/CwebpCompressOpaqueImages.kt +++ b/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/CwebpCompressOpaqueImages.kt @@ -25,7 +25,7 @@ internal fun File.hasAlpha() = try { it.colorModel.hasAlpha() && it.hasAlpha() } } catch (e: IIOException) { - throw IIOException("${e.message}: ${this.absolutePath}", e.cause) + throw IIOException("${e.message}: ${this.canonicalPath}", e.cause) } internal fun BufferedImage.hasAlpha(): Boolean { diff --git a/booster-task-compression-pngquant/src/main/kotlin/com/didiglobal/booster/task/compression/pngquant/PngquantCompressFlatImages.kt b/booster-task-compression-pngquant/src/main/kotlin/com/didiglobal/booster/task/compression/pngquant/PngquantCompressFlatImages.kt index 0f941ca2f..cf1fbae15 100644 --- a/booster-task-compression-pngquant/src/main/kotlin/com/didiglobal/booster/task/compression/pngquant/PngquantCompressFlatImages.kt +++ b/booster-task-compression-pngquant/src/main/kotlin/com/didiglobal/booster/task/compression/pngquant/PngquantCompressFlatImages.kt @@ -50,8 +50,8 @@ internal open class PngquantCompressFlatImages : AbstractPngquantCompressImages( }.filter(this::includes).map { val output = compressedRes.file("${it.second.resourcePath.substringBeforeLast('.')}$DOT_PNG") Aapt2ActionData(it.first, it.second, output, - listOf(pngquant, "--strip", "--skip-if-larger", "-f", "-o", output.absolutePath, "-s", "${options.speed}", "-Q", "${options.quality}-100", it.second.sourcePath), - listOf(aapt2, "compile", "-o", it.first.parent, output.absolutePath)) + listOf(pngquant, "--strip", "--skip-if-larger", "-f", "-o", output.canonicalPath, "-s", "${options.speed}", "-Q", "${options.quality}-100", it.second.sourcePath), + listOf(aapt2, "compile", "-o", it.first.parent, output.canonicalPath)) }.forEach { it.output.parentFile.mkdirs() val s0 = File(it.metadata.sourcePath).length() diff --git a/booster-task-compression-pngquant/src/main/kotlin/com/didiglobal/booster/task/compression/pngquant/PngquantCompressImages.kt b/booster-task-compression-pngquant/src/main/kotlin/com/didiglobal/booster/task/compression/pngquant/PngquantCompressImages.kt index 3cd4d9eee..60f892f32 100644 --- a/booster-task-compression-pngquant/src/main/kotlin/com/didiglobal/booster/task/compression/pngquant/PngquantCompressImages.kt +++ b/booster-task-compression-pngquant/src/main/kotlin/com/didiglobal/booster/task/compression/pngquant/PngquantCompressImages.kt @@ -25,7 +25,7 @@ internal open class PngquantCompressImages : AbstractPngquantCompressImages() { val pngquant = this.compressor.canonicalPath images.parallelStream().filter(this::includes).map { - ActionData(it, it, listOf(pngquant, "--strip", "--skip-if-larger", "-f", "--ext", DOT_PNG, "-s", "${options.speed}", "-Q", "${options.quality}-100", it.absolutePath)) + ActionData(it, it, listOf(pngquant, "--strip", "--skip-if-larger", "-f", "--ext", DOT_PNG, "-s", "${options.speed}", "-Q", "${options.quality}-100", it.canonicalPath)) }.forEach { val s0 = it.input.length() val rc = project.exec { spec -> diff --git a/booster-task-list-permission/src/main/kotlin/com/didiglobal/booster/task/permission/ListPermission.kt b/booster-task-list-permission/src/main/kotlin/com/didiglobal/booster/task/permission/ListPermission.kt index 59b1126f0..a303003ae 100644 --- a/booster-task-list-permission/src/main/kotlin/com/didiglobal/booster/task/permission/ListPermission.kt +++ b/booster-task-list-permission/src/main/kotlin/com/didiglobal/booster/task/permission/ListPermission.kt @@ -69,21 +69,21 @@ internal val File.componentId: String return "${group.name}:${artifact.name}:${version.name}" } - this.absolutePath.let { + this.canonicalPath.let { val idxAndroidM2 = it.indexOf(EXTRA_ANDROID_M2REPOSITORY) if (idxAndroidM2 > -1) { val artifact = parent.parentFile - val group = artifact.parentFile.absolutePath.substring(idxAndroidM2 + LEN_EXTRA_ANDROID_M2REPOSITORY).replace(File.separatorChar, '.') + val group = artifact.parentFile.canonicalPath.substring(idxAndroidM2 + LEN_EXTRA_ANDROID_M2REPOSITORY).replace(File.separatorChar, '.') return "$group:${artifact.name}:${parent.name}" } val idxGoogleM2 = it.indexOf(EXTRA_GOOGLE_M2REPOSITORY) if (idxGoogleM2 > -1) { val artifact = parent.parentFile - val group = artifact.parentFile.absolutePath.substring(idxGoogleM2 + LEN_EXTRA_GOOGLE_M2REPOSITORY).replace(File.separatorChar, '.') + val group = artifact.parentFile.canonicalPath.substring(idxGoogleM2 + LEN_EXTRA_GOOGLE_M2REPOSITORY).replace(File.separatorChar, '.') return "$group:${artifact.name}:${parent.name}" } - TODO("Unrecognizable AAR: $absolutePath") + TODO("Unrecognizable AAR: $canonicalPath") } } diff --git a/booster-transform-r-inline/src/main/kotlin/com/didiglobal/booster/transform/r/inline/RInlineTransformer.kt b/booster-transform-r-inline/src/main/kotlin/com/didiglobal/booster/transform/r/inline/RInlineTransformer.kt index 53f38ccbf..b08fed324 100644 --- a/booster-transform-r-inline/src/main/kotlin/com/didiglobal/booster/transform/r/inline/RInlineTransformer.kt +++ b/booster-transform-r-inline/src/main/kotlin/com/didiglobal/booster/transform/r/inline/RInlineTransformer.kt @@ -59,7 +59,7 @@ class RInlineTransformer : ClassTransformer { } val retainedSymbols: Set - val classpath = context.compileClasspath.map { it.absolutePath } + val classpath = context.compileClasspath.map { it.canonicalPath} if (classpath.any { it.contains(PREFIX_SUPPORT_CONSTRAINT_LAYOUT) || it.contains(PREFIX_JETPACK_CONSTRAINT_LAYOUT) }) { // Find symbols that should be retained retainedSymbols = context.findRetainedSymbols() diff --git a/booster-transform-r-inline/src/main/kotlin/com/didiglobal/booster/transform/r/inline/RetainedSymbolCollector.kt b/booster-transform-r-inline/src/main/kotlin/com/didiglobal/booster/transform/r/inline/RetainedSymbolCollector.kt index a9adf5517..022229d86 100644 --- a/booster-transform-r-inline/src/main/kotlin/com/didiglobal/booster/transform/r/inline/RetainedSymbolCollector.kt +++ b/booster-transform-r-inline/src/main/kotlin/com/didiglobal/booster/transform/r/inline/RetainedSymbolCollector.kt @@ -43,19 +43,19 @@ internal fun File.parseLayoutXml(): Collection { BinaryParser(this).use { parser -> val magic = parser.readInt() if (MAGIC != magic) { - logger.error("Invalid AAPT2 container file: $absolutePath") + logger.error("Invalid AAPT2 container file: $canonicalPath") return emptySet() } val version = parser.readInt() if (version <= 0) { - logger.error("Invalid AAPT2 container version: $absolutePath") + logger.error("Invalid AAPT2 container version: $canonicalPath") return emptySet() } val count = parser.readInt() if (count <= 0) { - logger.warn("Empty AAPT2 container: $absolutePath") + logger.warn("Empty AAPT2 container: $canonicalPath") return emptySet() } diff --git a/booster-transform-r-inline/src/main/kotlin/com/didiglobal/booster/transform/r/inline/SymbolList.kt b/booster-transform-r-inline/src/main/kotlin/com/didiglobal/booster/transform/r/inline/SymbolList.kt index 5e1642b2c..7a9ed1406 100644 --- a/booster-transform-r-inline/src/main/kotlin/com/didiglobal/booster/transform/r/inline/SymbolList.kt +++ b/booster-transform-r-inline/src/main/kotlin/com/didiglobal/booster/transform/r/inline/SymbolList.kt @@ -112,7 +112,7 @@ class SymbolList private constructor(builder: Builder) : Iterable throw MalformedSymbolListException(file.absolutePath) + else -> throw MalformedSymbolListException(file.canonicalPath) } } } diff --git a/booster-transform-util/src/main/kotlin/com/didiglobal/booster/transform/util/transform.kt b/booster-transform-util/src/main/kotlin/com/didiglobal/booster/transform/util/transform.kt index 434370607..72d0c7725 100644 --- a/booster-transform-util/src/main/kotlin/com/didiglobal/booster/transform/util/transform.kt +++ b/booster-transform-util/src/main/kotlin/com/didiglobal/booster/transform/util/transform.kt @@ -2,8 +2,8 @@ package com.didiglobal.booster.transform.util import com.didiglobal.booster.kotlinx.NCPU import com.didiglobal.booster.kotlinx.redirect -import com.didiglobal.booster.kotlinx.touch import com.didiglobal.booster.kotlinx.search +import com.didiglobal.booster.kotlinx.touch import org.apache.commons.compress.archivers.jar.JarArchiveEntry import org.apache.commons.compress.archivers.zip.ParallelScatterZipCreator import org.apache.commons.compress.archivers.zip.ZipArchiveEntry @@ -46,7 +46,7 @@ fun File.transform(output: File, transformer: (ByteArray) -> ByteArray = { it -> } else -> this.copyTo(output, true) } - else -> throw IOException("Unexpected file: ${this.absolutePath}") + else -> throw IOException("Unexpected file: ${this.canonicalPath}") } } From aa59640f411798a75a60bcf0b79b0ebbc6fca1fd Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Sat, 19 Dec 2020 23:41:15 +0800 Subject: [PATCH 028/187] Refactor `ClassTransformer` API --- .../ActivityThreadTransformer.kt | 5 +++-- .../booster/transform/asm/ClassTransformer.kt | 21 +++++++++++++++++++ .../br/inline/BRInlineTransformer.kt | 7 ++++--- .../FinalizerWatchdogDaemonTransformer.kt | 5 +++-- .../transform/javassist/ClassTransformer.kt | 9 ++++++++ .../transform/logcat/LogcatTransformer.kt | 5 +++-- .../mediaplayer/MediaPlayerTransformer.kt | 5 +++-- .../transform/r/inline/RInlineTransformer.kt | 5 +++-- .../res/check/ResCheckTransformer.kt | 5 +++-- .../SharedPreferencesTransformer.kt | 11 +++++----- .../transform/thread/ThreadTransformer.kt | 7 ++++--- .../transform/toast/ToastTransformer.kt | 6 +++--- .../transform/usage/UsageTransformer.kt | 2 ++ .../transform/webview/WebViewTransformer.kt | 5 +++-- 14 files changed, 70 insertions(+), 28 deletions(-) diff --git a/booster-transform-activity-thread/src/main/kotlin/com/didiglobal/booster/transform/activitythread/ActivityThreadTransformer.kt b/booster-transform-activity-thread/src/main/kotlin/com/didiglobal/booster/transform/activitythread/ActivityThreadTransformer.kt index d2a990cff..91319246f 100644 --- a/booster-transform-activity-thread/src/main/kotlin/com/didiglobal/booster/transform/activitythread/ActivityThreadTransformer.kt +++ b/booster-transform-activity-thread/src/main/kotlin/com/didiglobal/booster/transform/activitythread/ActivityThreadTransformer.kt @@ -1,6 +1,5 @@ package com.didiglobal.booster.transform.activitythread -import com.didiglobal.booster.kotlinx.file import com.didiglobal.booster.kotlinx.touch import com.didiglobal.booster.transform.ArtifactManager import com.didiglobal.booster.transform.TransformContext @@ -32,6 +31,8 @@ class ActivityThreadTransformer : ClassTransformer { private lateinit var packagesIgnore: String + override val name: String = Build.ARTIFACT + override fun onPreTransform(context: TransformContext) { val parser = SAXParserFactory.newInstance().newSAXParser() context.artifacts.get(ArtifactManager.MERGED_MANIFESTS).forEach { manifest -> @@ -40,7 +41,7 @@ class ActivityThreadTransformer : ClassTransformer { applications.addAll(handler.applications) } - this.logger = context.reportsDir.file(Build.ARTIFACT).file(context.name).file("report.txt").touch().printWriter() + this.logger = getReport(context, "report.txt").touch().printWriter() this.packagesIgnore = context.getProperty(PROPERTY_PACKAGES_IGNORE, "") } diff --git a/booster-transform-asm/src/main/kotlin/com/didiglobal/booster/transform/asm/ClassTransformer.kt b/booster-transform-asm/src/main/kotlin/com/didiglobal/booster/transform/asm/ClassTransformer.kt index c5a6a7065..d9b33b1ca 100644 --- a/booster-transform-asm/src/main/kotlin/com/didiglobal/booster/transform/asm/ClassTransformer.kt +++ b/booster-transform-asm/src/main/kotlin/com/didiglobal/booster/transform/asm/ClassTransformer.kt @@ -3,6 +3,7 @@ package com.didiglobal.booster.transform.asm import com.didiglobal.booster.transform.TransformContext import com.didiglobal.booster.transform.TransformListener import org.objectweb.asm.tree.ClassNode +import java.io.File /** * Represents class transformer @@ -11,6 +12,26 @@ import org.objectweb.asm.tree.ClassNode */ interface ClassTransformer : TransformListener { + val name: String + get() = javaClass.simpleName + + fun getReportDir(context: TransformContext): File = File(File(context.reportsDir, name), context.name) + + fun getReport(context: TransformContext, name: String): File { + val report: File by lazy { + val dir = getReportDir(context) + if (!dir.exists()) { + dir.mkdirs() + } + val file = File(dir, name) + if (!file.exists()) { + file.createNewFile() + } + file + } + return report + } + /** * Transform the specified class node * diff --git a/booster-transform-br-inline/src/main/kotlin/com/didiglobal/booster/transform/br/inline/BRInlineTransformer.kt b/booster-transform-br-inline/src/main/kotlin/com/didiglobal/booster/transform/br/inline/BRInlineTransformer.kt index c238c324e..daf54a0c6 100644 --- a/booster-transform-br-inline/src/main/kotlin/com/didiglobal/booster/transform/br/inline/BRInlineTransformer.kt +++ b/booster-transform-br-inline/src/main/kotlin/com/didiglobal/booster/transform/br/inline/BRInlineTransformer.kt @@ -1,13 +1,12 @@ package com.didiglobal.booster.transform.br.inline import com.didiglobal.booster.kotlinx.asIterable -import com.didiglobal.booster.kotlinx.file +import com.didiglobal.booster.kotlinx.search import com.didiglobal.booster.kotlinx.touch import com.didiglobal.booster.transform.ArtifactManager.Companion.ALL_CLASSES import com.didiglobal.booster.transform.ArtifactManager.Companion.DATA_BINDING_DEPENDENCY_ARTIFACTS import com.didiglobal.booster.transform.TransformContext import com.didiglobal.booster.transform.asm.ClassTransformer -import com.didiglobal.booster.kotlinx.search import com.google.auto.service.AutoService import org.gradle.api.logging.Logging import org.objectweb.asm.Opcodes.GETSTATIC @@ -31,8 +30,10 @@ class BRInlineTransformer : ClassTransformer { private lateinit var logger: PrintWriter private lateinit var validClasses: Set + override val name: String = Build.ARTIFACT + override fun onPreTransform(context: TransformContext) { - logger = context.reportsDir.file(Build.ARTIFACT).file(context.name).file("report.txt").touch().printWriter() + logger = getReport(context, "report.txt").touch().printWriter() validClasses = context.findValidClasses() val allBR = context.findAllBR() symbols = allBR.find { it.second == context.appBR }?.first?.let { diff --git a/booster-transform-finalizer-watchdog-daemon/src/main/kotlin/com/didiglobal/booster/transform/finalizer/watchdog/daemon/FinalizerWatchdogDaemonTransformer.kt b/booster-transform-finalizer-watchdog-daemon/src/main/kotlin/com/didiglobal/booster/transform/finalizer/watchdog/daemon/FinalizerWatchdogDaemonTransformer.kt index e6bb7c42d..21fdf9bb9 100644 --- a/booster-transform-finalizer-watchdog-daemon/src/main/kotlin/com/didiglobal/booster/transform/finalizer/watchdog/daemon/FinalizerWatchdogDaemonTransformer.kt +++ b/booster-transform-finalizer-watchdog-daemon/src/main/kotlin/com/didiglobal/booster/transform/finalizer/watchdog/daemon/FinalizerWatchdogDaemonTransformer.kt @@ -1,6 +1,5 @@ package com.didiglobal.booster.transform.finalizer.watchdog.daemon -import com.didiglobal.booster.kotlinx.file import com.didiglobal.booster.kotlinx.touch import com.didiglobal.booster.transform.ArtifactManager import com.didiglobal.booster.transform.TransformContext @@ -34,6 +33,8 @@ class FinalizerWatchdogDaemonTransformer : ClassTransformer { private lateinit var logger: PrintWriter private val applications = mutableSetOf() + override val name: String = Build.ARTIFACT + override fun onPreTransform(context: TransformContext) { val parser = SAXParserFactory.newInstance().newSAXParser() context.artifacts.get(ArtifactManager.MERGED_MANIFESTS).forEach { manifest -> @@ -42,7 +43,7 @@ class FinalizerWatchdogDaemonTransformer : ClassTransformer { applications.addAll(handler.applications) } - this.logger = context.reportsDir.file(Build.ARTIFACT).file(context.name).file("report.txt").touch().printWriter() + this.logger = getReport(context, "report.txt").touch().printWriter() } override fun onPostTransform(context: TransformContext) { diff --git a/booster-transform-javassist/src/main/kotlin/com/didiglobal/booster/transform/javassist/ClassTransformer.kt b/booster-transform-javassist/src/main/kotlin/com/didiglobal/booster/transform/javassist/ClassTransformer.kt index 785a12626..b1945562a 100644 --- a/booster-transform-javassist/src/main/kotlin/com/didiglobal/booster/transform/javassist/ClassTransformer.kt +++ b/booster-transform-javassist/src/main/kotlin/com/didiglobal/booster/transform/javassist/ClassTransformer.kt @@ -3,6 +3,7 @@ package com.didiglobal.booster.transform.javassist import com.didiglobal.booster.transform.TransformContext import com.didiglobal.booster.transform.TransformListener import javassist.CtClass +import java.io.File /** * Represents class transformer @@ -11,6 +12,14 @@ import javassist.CtClass */ interface ClassTransformer : TransformListener { + val name: String + get() = javaClass.simpleName + + fun getReportDir(context: TransformContext): File = File(File(context.reportsDir, name), context.name) + + fun getReport(context: TransformContext, name: String): File = File(getReportDir(context), name) + + /** * Transform the specified class node * diff --git a/booster-transform-logcat/src/main/kotlin/com/didiglobal/booster/transform/logcat/LogcatTransformer.kt b/booster-transform-logcat/src/main/kotlin/com/didiglobal/booster/transform/logcat/LogcatTransformer.kt index d858fca14..45d71e714 100644 --- a/booster-transform-logcat/src/main/kotlin/com/didiglobal/booster/transform/logcat/LogcatTransformer.kt +++ b/booster-transform-logcat/src/main/kotlin/com/didiglobal/booster/transform/logcat/LogcatTransformer.kt @@ -1,7 +1,6 @@ package com.didiglobal.booster.transform.logcat import com.didiglobal.booster.kotlinx.asIterable -import com.didiglobal.booster.kotlinx.file import com.didiglobal.booster.kotlinx.touch import com.didiglobal.booster.transform.TransformContext import com.didiglobal.booster.transform.asm.ClassTransformer @@ -31,8 +30,10 @@ class LogcatTransformer : ClassTransformer { private lateinit var logger: PrintWriter + override val name: String = Build.ARTIFACT + override fun onPreTransform(context: TransformContext) { - this.logger = context.reportsDir.file(Build.ARTIFACT).file(context.name).file("report.txt").touch().printWriter() + this.logger = getReport(context, "report.txt").touch().printWriter() } override fun onPostTransform(context: TransformContext) { diff --git a/booster-transform-media-player/src/main/kotlin/com/didiglobal/booster/transform/mediaplayer/MediaPlayerTransformer.kt b/booster-transform-media-player/src/main/kotlin/com/didiglobal/booster/transform/mediaplayer/MediaPlayerTransformer.kt index e5e4d783a..6b5dce064 100644 --- a/booster-transform-media-player/src/main/kotlin/com/didiglobal/booster/transform/mediaplayer/MediaPlayerTransformer.kt +++ b/booster-transform-media-player/src/main/kotlin/com/didiglobal/booster/transform/mediaplayer/MediaPlayerTransformer.kt @@ -1,7 +1,6 @@ package com.didiglobal.booster.transform.mediaplayer import com.didiglobal.booster.kotlinx.asIterable -import com.didiglobal.booster.kotlinx.file import com.didiglobal.booster.kotlinx.touch import com.didiglobal.booster.transform.TransformContext import com.didiglobal.booster.transform.asm.ClassTransformer @@ -26,8 +25,10 @@ class MediaPlayerTransformer : ClassTransformer { private lateinit var logger: PrintWriter + override val name: String = Build.ARTIFACT + override fun onPreTransform(context: TransformContext) { - this.logger = context.reportsDir.file(Build.ARTIFACT).file(context.name).file("report.txt").touch().printWriter() + this.logger = getReport(context, "report.txt").touch().printWriter() } override fun onPostTransform(context: TransformContext) { diff --git a/booster-transform-r-inline/src/main/kotlin/com/didiglobal/booster/transform/r/inline/RInlineTransformer.kt b/booster-transform-r-inline/src/main/kotlin/com/didiglobal/booster/transform/r/inline/RInlineTransformer.kt index b08fed324..9fa768ca0 100644 --- a/booster-transform-r-inline/src/main/kotlin/com/didiglobal/booster/transform/r/inline/RInlineTransformer.kt +++ b/booster-transform-r-inline/src/main/kotlin/com/didiglobal/booster/transform/r/inline/RInlineTransformer.kt @@ -3,7 +3,6 @@ package com.didiglobal.booster.transform.r.inline import com.didiglobal.booster.kotlinx.Wildcard import com.didiglobal.booster.kotlinx.asIterable import com.didiglobal.booster.kotlinx.execute -import com.didiglobal.booster.kotlinx.file import com.didiglobal.booster.kotlinx.ifNotEmpty import com.didiglobal.booster.kotlinx.touch import com.didiglobal.booster.transform.ArtifactManager.Companion.MERGED_RES @@ -45,9 +44,11 @@ class RInlineTransformer : ClassTransformer { ConcurrentHashMap() } + override val name: String = Build.ARTIFACT + override fun onPreTransform(context: TransformContext) { this.appPackage = context.originalApplicationId.replace('.', '/') - this.logger = context.reportsDir.file(Build.ARTIFACT).file(context.name).file("report.txt").touch().printWriter() + this.logger = getReport(context, "report.txt").touch().printWriter() this.symbols = SymbolList.from(context.artifacts.get(SYMBOL_LIST).single()) this.appRStyleable = "$appPackage/$R_STYLEABLE" this.ignores = context.getProperty(PROPERTY_IGNORES, "").trim().split(',').map(Wildcard.Companion::valueOf).toSet() diff --git a/booster-transform-res-check/src/main/kotlin/com/didiglobal/booster/transform/res/check/ResCheckTransformer.kt b/booster-transform-res-check/src/main/kotlin/com/didiglobal/booster/transform/res/check/ResCheckTransformer.kt index 2336ca52d..670aa1c93 100644 --- a/booster-transform-res-check/src/main/kotlin/com/didiglobal/booster/transform/res/check/ResCheckTransformer.kt +++ b/booster-transform-res-check/src/main/kotlin/com/didiglobal/booster/transform/res/check/ResCheckTransformer.kt @@ -1,7 +1,6 @@ package com.didiglobal.booster.transform.res.check import com.didiglobal.booster.kotlinx.asIterable -import com.didiglobal.booster.kotlinx.file import com.didiglobal.booster.kotlinx.touch import com.didiglobal.booster.transform.ArtifactManager import com.didiglobal.booster.transform.TransformContext @@ -34,6 +33,8 @@ class ResCheckTransformer : ClassTransformer { private lateinit var logger: PrintWriter private val applications = mutableSetOf() + override val name: String = Build.ARTIFACT + override fun onPreTransform(context: TransformContext) { val parser = SAXParserFactory.newInstance().newSAXParser() context.artifacts.get(ArtifactManager.MERGED_MANIFESTS).forEach { manifest -> @@ -42,7 +43,7 @@ class ResCheckTransformer : ClassTransformer { applications.addAll(handler.applications) } - this.logger = context.reportsDir.file(Build.ARTIFACT).file(context.name).file("report.txt").touch().printWriter() + this.logger = getReport(context, "report.txt").touch().printWriter() } override fun onPostTransform(context: TransformContext) { diff --git a/booster-transform-shared-preferences/src/main/kotlin/com/didiglobal/booster/transform/sharedpreferences/SharedPreferencesTransformer.kt b/booster-transform-shared-preferences/src/main/kotlin/com/didiglobal/booster/transform/sharedpreferences/SharedPreferencesTransformer.kt index 79dede90d..c0b6736ef 100644 --- a/booster-transform-shared-preferences/src/main/kotlin/com/didiglobal/booster/transform/sharedpreferences/SharedPreferencesTransformer.kt +++ b/booster-transform-shared-preferences/src/main/kotlin/com/didiglobal/booster/transform/sharedpreferences/SharedPreferencesTransformer.kt @@ -1,7 +1,6 @@ package com.didiglobal.booster.transform.sharedpreferences import com.didiglobal.booster.kotlinx.asIterable -import com.didiglobal.booster.kotlinx.file import com.didiglobal.booster.kotlinx.touch import com.didiglobal.booster.transform.ArtifactManager import com.didiglobal.booster.transform.TransformContext @@ -27,6 +26,8 @@ class SharedPreferencesTransformer : ClassTransformer { private lateinit var logger: PrintWriter private val applications = mutableSetOf() + override val name: String = Build.ARTIFACT + override fun onPreTransform(context: TransformContext) { val parser = SAXParserFactory.newInstance().newSAXParser() context.artifacts.get(ArtifactManager.MERGED_MANIFESTS).forEach { manifest -> @@ -34,7 +35,7 @@ class SharedPreferencesTransformer : ClassTransformer { parser.parse(manifest, handler) applications.addAll(handler.applications) } - logger = context.reportsDir.file(Build.ARTIFACT).file(context.name).file("report.txt").touch().printWriter() + logger = getReport(context, "report.txt").touch().printWriter() } override fun onPostTransform(context: TransformContext) { @@ -55,9 +56,9 @@ class SharedPreferencesTransformer : ClassTransformer { it as MethodInsnNode }.forEach { mapOf( - CONTEXT_GET_SHARED_PREFERENCES to SHADOW_CONTEXT_GET_SHARED_PREFERENCES, - ACTIVITY_GET_PREFERENCES to SHADOW_ACTIVITY_GET_PREFERENCES, - PREFERENCE_MANAGER_GET_DEFAULT_SHARED_PREFERENCES to SHADOW_PREFERENCE_MANAGER_GET_DEFAULT_SHARED_PREFERENCES + CONTEXT_GET_SHARED_PREFERENCES to SHADOW_CONTEXT_GET_SHARED_PREFERENCES, + ACTIVITY_GET_PREFERENCES to SHADOW_ACTIVITY_GET_PREFERENCES, + PREFERENCE_MANAGER_GET_DEFAULT_SHARED_PREFERENCES to SHADOW_PREFERENCE_MANAGER_GET_DEFAULT_SHARED_PREFERENCES ).forEach { (original, shadow) -> if (it.opcode == original.opcode && it.name == original.name && it.desc == original.desc && context.klassPool.get(original.owner).isAssignableFrom(it.owner)) { logger.println(" * ${shadow.owner}${shadow.name}${shadow.desc} => ${it.owner}.${it.name}${it.desc}: ${klass.name}.${method.name}${method.desc}") diff --git a/booster-transform-thread/src/main/kotlin/com/didiglobal/booster/transform/thread/ThreadTransformer.kt b/booster-transform-thread/src/main/kotlin/com/didiglobal/booster/transform/thread/ThreadTransformer.kt index 6c8bd1dcc..0efa93106 100644 --- a/booster-transform-thread/src/main/kotlin/com/didiglobal/booster/transform/thread/ThreadTransformer.kt +++ b/booster-transform-thread/src/main/kotlin/com/didiglobal/booster/transform/thread/ThreadTransformer.kt @@ -1,7 +1,6 @@ package com.didiglobal.booster.transform.thread import com.didiglobal.booster.kotlinx.asIterable -import com.didiglobal.booster.kotlinx.file import com.didiglobal.booster.kotlinx.touch import com.didiglobal.booster.transform.ArtifactManager import com.didiglobal.booster.transform.TransformContext @@ -35,6 +34,8 @@ class ThreadTransformer : ClassTransformer { private var optimizationEnabled = DEFAULT_OPTIMIZATION_ENABLED private val applications = mutableSetOf() + override val name: String = Build.ARTIFACT + override fun onPreTransform(context: TransformContext) { val parser = SAXParserFactory.newInstance().newSAXParser() context.artifacts.get(ArtifactManager.MERGED_MANIFESTS).forEach { manifest -> @@ -43,7 +44,7 @@ class ThreadTransformer : ClassTransformer { applications.addAll(handler.applications) } this.optimizationEnabled = context.getProperty(PROPERTY_OPTIMIZATION_ENABLED, "$DEFAULT_OPTIMIZATION_ENABLED").toBoolean() - this.logger = context.reportsDir.file(Build.ARTIFACT).file(context.name).file("report.txt").touch().printWriter() + this.logger = getReport(context, "report.txt").touch().printWriter() } override fun onPostTransform(context: TransformContext) { @@ -319,7 +320,7 @@ class ThreadTransformer : ClassTransformer { "newSingleThreadExecutor", "newSingleThreadScheduledExecutor", "newScheduledThreadPool", - "newWorkStealingPool"-> { + "newWorkStealingPool" -> { val r = this.desc.lastIndexOf(')') val name = if (optimizationEnabled) this.name.replace("new", "newOptimized") else this.name val desc = "${this.desc.substring(0, r)}Ljava/lang/String;${this.desc.substring(r)}" diff --git a/booster-transform-toast/src/main/kotlin/com/didiglobal/booster/transform/toast/ToastTransformer.kt b/booster-transform-toast/src/main/kotlin/com/didiglobal/booster/transform/toast/ToastTransformer.kt index 8a0f46467..6a6f73425 100644 --- a/booster-transform-toast/src/main/kotlin/com/didiglobal/booster/transform/toast/ToastTransformer.kt +++ b/booster-transform-toast/src/main/kotlin/com/didiglobal/booster/transform/toast/ToastTransformer.kt @@ -1,9 +1,7 @@ package com.didiglobal.booster.transform.toast import com.didiglobal.booster.kotlinx.asIterable -import com.didiglobal.booster.kotlinx.file import com.didiglobal.booster.kotlinx.touch -import com.didiglobal.booster.transform.Klass import com.didiglobal.booster.transform.TransformContext import com.didiglobal.booster.transform.asm.ClassTransformer import com.google.auto.service.AutoService @@ -23,8 +21,10 @@ class ToastTransformer : ClassTransformer { private lateinit var logger: PrintWriter + override val name: String = Build.ARTIFACT + override fun onPreTransform(context: TransformContext) { - this.logger = context.reportsDir.file(Build.ARTIFACT).file(context.name).file("report.txt").touch().printWriter() + this.logger = getReport(context, "report.txt").touch().printWriter() } override fun onPostTransform(context: TransformContext) { diff --git a/booster-transform-usage/src/main/kotlin/com/didiglobal/booster/transform/usage/UsageTransformer.kt b/booster-transform-usage/src/main/kotlin/com/didiglobal/booster/transform/usage/UsageTransformer.kt index e9b01b4ac..faf7d0820 100644 --- a/booster-transform-usage/src/main/kotlin/com/didiglobal/booster/transform/usage/UsageTransformer.kt +++ b/booster-transform-usage/src/main/kotlin/com/didiglobal/booster/transform/usage/UsageTransformer.kt @@ -19,6 +19,8 @@ class UsageTransformer : ClassTransformer { private lateinit var usedApis: Set + override val name: String = Build.ARTIFACT + override fun onPreTransform(context: TransformContext) { this.usedApis = context.getProperty(PROPERTY_USED_APIS, null)?.let { uri -> URL(uri).openStream().bufferedReader().use { diff --git a/booster-transform-webview/src/main/kotlin/com/didiglobal/booster/transform/webview/WebViewTransformer.kt b/booster-transform-webview/src/main/kotlin/com/didiglobal/booster/transform/webview/WebViewTransformer.kt index b3887666f..2582d4b71 100644 --- a/booster-transform-webview/src/main/kotlin/com/didiglobal/booster/transform/webview/WebViewTransformer.kt +++ b/booster-transform-webview/src/main/kotlin/com/didiglobal/booster/transform/webview/WebViewTransformer.kt @@ -1,6 +1,5 @@ package com.didiglobal.booster.transform.webview -import com.didiglobal.booster.kotlinx.file import com.didiglobal.booster.kotlinx.touch import com.didiglobal.booster.transform.ArtifactManager import com.didiglobal.booster.transform.TransformContext @@ -35,6 +34,8 @@ class WebViewTransformer : ClassTransformer { private lateinit var logger: PrintWriter private val applications = mutableSetOf() + override val name: String = Build.ARTIFACT + override fun onPreTransform(context: TransformContext) { val parser = SAXParserFactory.newInstance().newSAXParser() context.artifacts.get(ArtifactManager.MERGED_MANIFESTS).forEach { manifest -> @@ -43,7 +44,7 @@ class WebViewTransformer : ClassTransformer { applications.addAll(handler.applications) } - this.logger = context.reportsDir.file(Build.ARTIFACT).file(context.name).file("report.txt").touch().printWriter() + this.logger = getReport(context, "report.txt").touch().printWriter() } override fun onPostTransform(context: TransformContext) { From 2752feeb8dce9fab2bbeaa7847952c443b4d0412 Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Sat, 19 Dec 2020 23:42:46 +0800 Subject: [PATCH 029/187] Support generating transform diff by setting property `booster.transform.diff` to `true` --- .../com/didiglobal/booster/kotlinx/Process.kt | 11 +++++++ .../didiglobal/booster/kotlinx/ProcessTest.kt | 15 ++++++++++ .../booster/transform/asm/AsmTransformer.kt | 19 ++++++++++-- .../booster/transform/asm/ClassNode.kt | 30 +++++++++++-------- .../booster/transform/asm/ClassNodeTest.kt | 18 +++++++++++ booster-transform-javassist/build.gradle | 1 + .../booster/transform/javassist/ClassPool.kt | 14 +++++++++ .../booster/transform/javassist/CtClass.kt | 7 +++++ .../javassist/JavassistTransformer.kt | 21 +++++++++++-- .../transform/javassist/CtClassTest.kt | 17 +++++++++++ booster-transform-util/build.gradle | 1 + .../booster/transform/util/HistogramDiff.kt | 20 +++++++++++++ 12 files changed, 156 insertions(+), 18 deletions(-) create mode 100644 booster-kotlinx/src/main/kotlin/com/didiglobal/booster/kotlinx/Process.kt create mode 100644 booster-kotlinx/src/test/kotlin/com/didiglobal/booster/kotlinx/ProcessTest.kt create mode 100644 booster-transform-asm/src/test/kotlin/com/didiglobal/booster/transform/asm/ClassNodeTest.kt create mode 100644 booster-transform-javassist/src/main/kotlin/com/didiglobal/booster/transform/javassist/ClassPool.kt create mode 100644 booster-transform-javassist/src/main/kotlin/com/didiglobal/booster/transform/javassist/CtClass.kt create mode 100644 booster-transform-javassist/src/test/kotlin/com/didiglobal/booster/transform/javassist/CtClassTest.kt create mode 100644 booster-transform-util/src/main/kotlin/com/didiglobal/booster/transform/util/HistogramDiff.kt diff --git a/booster-kotlinx/src/main/kotlin/com/didiglobal/booster/kotlinx/Process.kt b/booster-kotlinx/src/main/kotlin/com/didiglobal/booster/kotlinx/Process.kt new file mode 100644 index 000000000..693df9327 --- /dev/null +++ b/booster-kotlinx/src/main/kotlin/com/didiglobal/booster/kotlinx/Process.kt @@ -0,0 +1,11 @@ +package com.didiglobal.booster.kotlinx + +import java.io.BufferedReader + +fun String.execute(): Process = Runtime.getRuntime().exec(this) + +val Process.stdout: String + get() = inputStream.bufferedReader().use(BufferedReader::readText) + +val Process.stderr: String + get() = errorStream.bufferedReader().use(BufferedReader::readText) diff --git a/booster-kotlinx/src/test/kotlin/com/didiglobal/booster/kotlinx/ProcessTest.kt b/booster-kotlinx/src/test/kotlin/com/didiglobal/booster/kotlinx/ProcessTest.kt new file mode 100644 index 000000000..e97366f32 --- /dev/null +++ b/booster-kotlinx/src/test/kotlin/com/didiglobal/booster/kotlinx/ProcessTest.kt @@ -0,0 +1,15 @@ +package com.didiglobal.booster.kotlinx + +import kotlin.test.Test +import kotlin.test.assertNotNull + +class ProcessTest { + + @Test + fun `test execute`() { + val output = "java -showversion".execute().stderr + print(output) + assertNotNull(output) + } + +} \ No newline at end of file diff --git a/booster-transform-asm/src/main/kotlin/com/didiglobal/booster/transform/asm/AsmTransformer.kt b/booster-transform-asm/src/main/kotlin/com/didiglobal/booster/transform/asm/AsmTransformer.kt index dbcd4ef6c..dfe073ebf 100644 --- a/booster-transform-asm/src/main/kotlin/com/didiglobal/booster/transform/asm/AsmTransformer.kt +++ b/booster-transform-asm/src/main/kotlin/com/didiglobal/booster/transform/asm/AsmTransformer.kt @@ -1,8 +1,10 @@ package com.didiglobal.booster.transform.asm import com.didiglobal.booster.annotations.Priority +import com.didiglobal.booster.kotlinx.touch import com.didiglobal.booster.transform.TransformContext import com.didiglobal.booster.transform.Transformer +import com.didiglobal.booster.transform.util.diff import com.google.auto.service.AutoService import org.objectweb.asm.ClassReader import org.objectweb.asm.ClassWriter @@ -50,12 +52,25 @@ class AsmTransformer : Transformer { } override fun transform(context: TransformContext, bytecode: ByteArray): ByteArray { + val diffEnabled = context.getProperty("booster.transform.diff", false) return ClassWriter(ClassWriter.COMPUTE_MAXS).also { writer -> this.transformers.fold(ClassNode().also { klass -> ClassReader(bytecode).accept(klass, 0) - }) { klass, transformer -> + }) { a, transformer -> this.threadMxBean.sumCpuTime(transformer) { - transformer.transform(context, klass) + if (diffEnabled) { + val left = a.textify() + transformer.transform(context, a).also trans@{ b -> + val right = b.textify() + val diff = if (left == right) "" else left diff right + if (diff.isEmpty() || diff.isBlank()) { + return@trans + } + transformer.getReport(context, "${a.className}.diff").touch().writeText(diff) + } + } else { + transformer.transform(context, a) + } } }.accept(writer) }.toByteArray() diff --git a/booster-transform-asm/src/main/kotlin/com/didiglobal/booster/transform/asm/ClassNode.kt b/booster-transform-asm/src/main/kotlin/com/didiglobal/booster/transform/asm/ClassNode.kt index 532a3ee73..87acd1307 100644 --- a/booster-transform-asm/src/main/kotlin/com/didiglobal/booster/transform/asm/ClassNode.kt +++ b/booster-transform-asm/src/main/kotlin/com/didiglobal/booster/transform/asm/ClassNode.kt @@ -1,12 +1,16 @@ package com.didiglobal.booster.transform.asm import org.objectweb.asm.Opcodes +import org.objectweb.asm.tree.AnnotationNode import org.objectweb.asm.tree.ClassNode import org.objectweb.asm.tree.InsnList import org.objectweb.asm.tree.InsnNode import org.objectweb.asm.tree.MethodInsnNode import org.objectweb.asm.tree.MethodNode import org.objectweb.asm.tree.VarInsnNode +import org.objectweb.asm.util.TraceClassVisitor +import java.io.PrintWriter +import java.io.StringWriter /** * The simple name of class @@ -44,19 +48,6 @@ val ClassNode.isStatic: Boolean val ClassNode.isFinal: Boolean get() = 0 != (access and Opcodes.ACC_FINAL) -fun ClassNode.isInvisibleAnnotationPresent(annotations: Iterable) = this.invisibleAnnotations?.map { - it.desc -}?.any(annotations::contains) ?: false - -fun ClassNode.isInvisibleAnnotationPresent(vararg annotations: String) = isInvisibleAnnotationPresent(annotations.asIterable()) - - -fun ClassNode.isVisibleAnnotationPresent(annotations: Iterable) = this.visibleAnnotations?.map { - it.desc -}?.any(annotations::contains) ?: false - -fun ClassNode.isVisibleAnnotationPresent(vararg annotations: String) = isVisibleAnnotationPresent(annotations.asIterable()) - val ClassNode.defaultClinit: MethodNode get() = MethodNode(Opcodes.ACC_STATIC, "", "()V", null, null).apply { maxStack = 1 @@ -82,3 +73,16 @@ val ClassNode.defaultOnCreate: MethodNode }) maxStack = 1 } + +fun ClassNode.isInvisibleAnnotationPresent(annotations: Iterable) = invisibleAnnotations?.map(AnnotationNode::desc)?.any(annotations::contains) ?: false + +fun ClassNode.isInvisibleAnnotationPresent(vararg annotations: String) = isInvisibleAnnotationPresent(annotations.asIterable()) + +fun ClassNode.isVisibleAnnotationPresent(annotations: Iterable) = visibleAnnotations?.map(AnnotationNode::desc)?.any(annotations::contains) ?: false + +fun ClassNode.isVisibleAnnotationPresent(vararg annotations: String) = isVisibleAnnotationPresent(annotations.asIterable()) + +fun ClassNode.textify(): String = StringWriter().run { + accept(TraceClassVisitor(PrintWriter(this))) + toString() +} diff --git a/booster-transform-asm/src/test/kotlin/com/didiglobal/booster/transform/asm/ClassNodeTest.kt b/booster-transform-asm/src/test/kotlin/com/didiglobal/booster/transform/asm/ClassNodeTest.kt new file mode 100644 index 000000000..35e5f07f7 --- /dev/null +++ b/booster-transform-asm/src/test/kotlin/com/didiglobal/booster/transform/asm/ClassNodeTest.kt @@ -0,0 +1,18 @@ +package com.didiglobal.booster.transform.asm + +import com.didiglobal.booster.build.AndroidSdk +import java.io.InputStream +import java.util.jar.JarFile +import kotlin.test.Test + +class ClassNodeTest { + + @Test + fun `test textify`() { + JarFile(AndroidSdk.getAndroidJar()).use { jar -> + val clazz = jar.getInputStream(jar.getJarEntry("android/content/Intent.class")).use(InputStream::asClassNode) + print(clazz.textify()) + } + } + +} \ No newline at end of file diff --git a/booster-transform-javassist/build.gradle b/booster-transform-javassist/build.gradle index bfd77d9c8..f5fc809d3 100644 --- a/booster-transform-javassist/build.gradle +++ b/booster-transform-javassist/build.gradle @@ -5,6 +5,7 @@ dependencies { api project(':booster-annotations') api project(':booster-build') api project(':booster-transform-spi') + api project(':booster-transform-util') api 'org.javassist:javassist:3.25.0-GA' api 'com.google.auto.service:auto-service:1.0-rc6' } diff --git a/booster-transform-javassist/src/main/kotlin/com/didiglobal/booster/transform/javassist/ClassPool.kt b/booster-transform-javassist/src/main/kotlin/com/didiglobal/booster/transform/javassist/ClassPool.kt new file mode 100644 index 000000000..6c1ce66fa --- /dev/null +++ b/booster-transform-javassist/src/main/kotlin/com/didiglobal/booster/transform/javassist/ClassPool.kt @@ -0,0 +1,14 @@ +package com.didiglobal.booster.transform.javassist + +import javassist.ClassPool +import java.io.File + +val ClassPool.classpath: String + get() = toString() + .split(File.pathSeparatorChar) + .asSequence() + .filter(String::isNotEmpty) + .distinct() + .map(::File) + .filter(File::exists) + .joinToString(File.pathSeparator, transform = File::getCanonicalPath) diff --git a/booster-transform-javassist/src/main/kotlin/com/didiglobal/booster/transform/javassist/CtClass.kt b/booster-transform-javassist/src/main/kotlin/com/didiglobal/booster/transform/javassist/CtClass.kt new file mode 100644 index 000000000..6e94cfb8e --- /dev/null +++ b/booster-transform-javassist/src/main/kotlin/com/didiglobal/booster/transform/javassist/CtClass.kt @@ -0,0 +1,7 @@ +package com.didiglobal.booster.transform.javassist + +import com.didiglobal.booster.kotlinx.execute +import com.didiglobal.booster.kotlinx.stdout +import javassist.CtClass + +fun CtClass.textify(): String = "javap -c -cp ${classPool.classpath} $name".execute().stdout diff --git a/booster-transform-javassist/src/main/kotlin/com/didiglobal/booster/transform/javassist/JavassistTransformer.kt b/booster-transform-javassist/src/main/kotlin/com/didiglobal/booster/transform/javassist/JavassistTransformer.kt index 414100d30..749740fc8 100644 --- a/booster-transform-javassist/src/main/kotlin/com/didiglobal/booster/transform/javassist/JavassistTransformer.kt +++ b/booster-transform-javassist/src/main/kotlin/com/didiglobal/booster/transform/javassist/JavassistTransformer.kt @@ -1,8 +1,10 @@ package com.didiglobal.booster.transform.javassist import com.didiglobal.booster.annotations.Priority +import com.didiglobal.booster.kotlinx.touch import com.didiglobal.booster.transform.TransformContext import com.didiglobal.booster.transform.Transformer +import com.didiglobal.booster.transform.util.diff import com.google.auto.service.AutoService import javassist.ClassPool import java.io.ByteArrayOutputStream @@ -42,7 +44,7 @@ class JavassistTransformer : Transformer { override fun onPreTransform(context: TransformContext) { context.bootClasspath.forEach { - this.pool.appendClassPath(it.absolutePath) + this.pool.appendClassPath(it.canonicalPath) } this.transformers.forEach { transformer -> @@ -53,11 +55,24 @@ class JavassistTransformer : Transformer { } override fun transform(context: TransformContext, bytecode: ByteArray): ByteArray { + val diffEnabled = context.getProperty("booster.transform.diff", false) return ByteArrayOutputStream().use { output -> bytecode.inputStream().use { input -> - this.transformers.fold(this.pool.makeClass(input)) { klass, transformer -> + this.transformers.fold(this.pool.makeClass(input)) { a, transformer -> this.threadMxBean.sumCpuTime(transformer) { - transformer.transform(context, klass) + if (diffEnabled) { + val left = a.textify() + transformer.transform(context, a).also trans@{ b -> + val right = b.textify() + val diff = if (left == right) "" else left diff right + if (diff.isEmpty() || diff.isBlank()) { + return@trans + } + transformer.getReport(context, "${a.name}.diff").touch().writeText(diff) + } + } else { + transformer.transform(context, a) + } } }.classFile.write(DataOutputStream(output)) } diff --git a/booster-transform-javassist/src/test/kotlin/com/didiglobal/booster/transform/javassist/CtClassTest.kt b/booster-transform-javassist/src/test/kotlin/com/didiglobal/booster/transform/javassist/CtClassTest.kt new file mode 100644 index 000000000..78027f2a0 --- /dev/null +++ b/booster-transform-javassist/src/test/kotlin/com/didiglobal/booster/transform/javassist/CtClassTest.kt @@ -0,0 +1,17 @@ +package com.didiglobal.booster.transform.javassist + +import com.didiglobal.booster.build.AndroidSdk +import javassist.ClassPool +import kotlin.test.Test + +class CtClassTest { + + @Test + fun `test textify`() { + val pool = ClassPool().apply { + appendClassPath(AndroidSdk.getAndroidJar().canonicalPath) + } + print(pool.get("android.content.Intent").textify()) + } + +} \ No newline at end of file diff --git a/booster-transform-util/build.gradle b/booster-transform-util/build.gradle index 4ea483030..5d5afdbf1 100644 --- a/booster-transform-util/build.gradle +++ b/booster-transform-util/build.gradle @@ -4,5 +4,6 @@ dependencies { api project(':booster-transform-spi') api project(':booster-build') api 'org.apache.commons:commons-compress:1.19' + implementation 'org.eclipse.jgit:org.eclipse.jgit:5.10.0.202012080955-r' testImplementation project(':booster-transform-asm') } diff --git a/booster-transform-util/src/main/kotlin/com/didiglobal/booster/transform/util/HistogramDiff.kt b/booster-transform-util/src/main/kotlin/com/didiglobal/booster/transform/util/HistogramDiff.kt new file mode 100644 index 000000000..aa018b6f6 --- /dev/null +++ b/booster-transform-util/src/main/kotlin/com/didiglobal/booster/transform/util/HistogramDiff.kt @@ -0,0 +1,20 @@ +package com.didiglobal.booster.transform.util + +import org.eclipse.jgit.diff.DiffAlgorithm +import org.eclipse.jgit.diff.DiffFormatter +import org.eclipse.jgit.diff.HistogramDiff +import org.eclipse.jgit.diff.RawText +import org.eclipse.jgit.diff.RawTextComparator +import java.io.ByteArrayOutputStream + +infix fun String.diff(other: String): String { + val a = RawText(this.toByteArray()) + val b = RawText(other.toByteArray()) + val diff = HistogramDiff().diff(RawTextComparator.DEFAULT, a, b) + val patch = ByteArrayOutputStream() + DiffFormatter(patch).apply { + setDiffAlgorithm(DiffAlgorithm.getAlgorithm(DiffAlgorithm.SupportedAlgorithm.HISTOGRAM)) + setDiffComparator(RawTextComparator.DEFAULT) + }.format(diff, a, b) + return patch.toString() +} From 961d82bcc29e5f816b7d26564a8448c4db8652af Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Sun, 20 Dec 2020 00:13:24 +0800 Subject: [PATCH 030/187] Release version 3.2.0-alpha2 --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 135f12d07..bb2474253 100644 --- a/build.gradle +++ b/build.gradle @@ -31,7 +31,7 @@ allprojects { project -> apply plugin: 'de.marcphilipp.nexus-publish' group = 'com.didiglobal.booster' - version = '3.2.0-alpha1' + version = '3.2.0-alpha2' repositories { mavenLocal() From 81a163d576914f472219d42de19f0ff22fc4bd52 Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Fri, 1 Jan 2021 13:02:25 +0800 Subject: [PATCH 031/187] Fix java.lang.ClassCastException caused by TransformContext.getProperty(...) --- .../src/main/kotlin/com/didiglobal/booster/gradle/Project.kt | 3 ++- .../didiglobal/booster/gradle/BoosterTransformInvocation.kt | 3 +-- .../didiglobal/booster/transform/thread/ThreadTransformer.kt | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/Project.kt b/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/Project.kt index 5f9a5a6e9..a2afa4c86 100644 --- a/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/Project.kt +++ b/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/Project.kt @@ -20,7 +20,8 @@ val Project.gradleVersion: Revision val Project.aapt2Enabled: Boolean get() = AGP.run { aapt2Enabled } -inline fun Project.getProperty(name: String, defaultValue: T): T { +@Suppress("UNCHECKED_CAST") +fun Project.getProperty(name: String, defaultValue: T): T { val value = findProperty(name) ?: return defaultValue return when (defaultValue) { is Boolean -> if (value is Boolean) value as T else value.toString().toBoolean() as T diff --git a/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/BoosterTransformInvocation.kt b/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/BoosterTransformInvocation.kt index 0435260aa..bddede0b7 100644 --- a/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/BoosterTransformInvocation.kt +++ b/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/BoosterTransformInvocation.kt @@ -72,8 +72,7 @@ internal class BoosterTransformInvocation( override fun hasProperty(name: String) = project.hasProperty(name) - @Suppress("UNCHECKED_CAST") - override fun getProperty(name: String, default: T): T = project.properties[name] as? T ?: default + override fun getProperty(name: String, default: T): T = project.getProperty(name, default) override fun get(type: String) = variant.artifacts.get(type) diff --git a/booster-transform-thread/src/main/kotlin/com/didiglobal/booster/transform/thread/ThreadTransformer.kt b/booster-transform-thread/src/main/kotlin/com/didiglobal/booster/transform/thread/ThreadTransformer.kt index 0efa93106..8183b42fc 100644 --- a/booster-transform-thread/src/main/kotlin/com/didiglobal/booster/transform/thread/ThreadTransformer.kt +++ b/booster-transform-thread/src/main/kotlin/com/didiglobal/booster/transform/thread/ThreadTransformer.kt @@ -43,7 +43,7 @@ class ThreadTransformer : ClassTransformer { parser.parse(manifest, handler) applications.addAll(handler.applications) } - this.optimizationEnabled = context.getProperty(PROPERTY_OPTIMIZATION_ENABLED, "$DEFAULT_OPTIMIZATION_ENABLED").toBoolean() + this.optimizationEnabled = context.getProperty(PROPERTY_OPTIMIZATION_ENABLED, DEFAULT_OPTIMIZATION_ENABLED) this.logger = getReport(context, "report.txt").touch().printWriter() } From b232ef87ef42c07afe26c56da8d5d4e72dda80f3 Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Fri, 1 Jan 2021 13:02:44 +0800 Subject: [PATCH 032/187] Release version 3.2.0-alpha3 --- build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.gradle b/build.gradle index bb2474253..e01c7ee3d 100644 --- a/build.gradle +++ b/build.gradle @@ -14,7 +14,7 @@ buildscript { classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath "io.codearte.gradle.nexus:gradle-nexus-staging-plugin:0.21.2" classpath "de.marcphilipp.gradle:nexus-publish-plugin:0.4.0" - classpath "io.johnsonlee.buildprops:buildprops-gradle-plugin:1.0.0" + classpath "io.johnsonlee.buildprops:buildprops-gradle-plugin:1.2.0" classpath "org.jetbrains.dokka:dokka-gradle-plugin:0.10.1" } } @@ -31,7 +31,7 @@ allprojects { project -> apply plugin: 'de.marcphilipp.nexus-publish' group = 'com.didiglobal.booster' - version = '3.2.0-alpha2' + version = '3.2.0-alpha3' repositories { mavenLocal() From 687031a4e67a42679d3d24cd766c9c01c46fb6b3 Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Mon, 1 Feb 2021 23:11:35 +0800 Subject: [PATCH 033/187] Release version 3.2.0-alpha4 --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index e01c7ee3d..eac3c716e 100644 --- a/build.gradle +++ b/build.gradle @@ -31,7 +31,7 @@ allprojects { project -> apply plugin: 'de.marcphilipp.nexus-publish' group = 'com.didiglobal.booster' - version = '3.2.0-alpha3' + version = '3.2.0-alpha4' repositories { mavenLocal() From 9ca546c20f5dea531d9d63adf198d0ff0b39018e Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Tue, 9 Feb 2021 05:14:03 +0800 Subject: [PATCH 034/187] Fix compatibility issue for AGP 3.4 --- .../src/main/kotlin/com/didiglobal/booster/gradle/Version.kt | 1 - 1 file changed, 1 deletion(-) diff --git a/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/Version.kt b/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/Version.kt index d70f81f70..33d03de72 100644 --- a/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/Version.kt +++ b/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/Version.kt @@ -39,4 +39,3 @@ internal val AGP: AGPInterface = arrayOf( GTE_V3_2 to V32, GTE_V3_X to V30 ).firstOrNull(Pair::first)?.second ?: throw TODO("Incompatible with AGP $ANDROID_GRADLE_PLUGIN_VERSION") - From 02df950d76ad0d918902eaad86fcbe7e4b3a5001 Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Tue, 9 Feb 2021 11:47:43 +0800 Subject: [PATCH 035/187] Release version 3.2.0-alpha5 --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index eac3c716e..65bd3d49b 100644 --- a/build.gradle +++ b/build.gradle @@ -31,7 +31,7 @@ allprojects { project -> apply plugin: 'de.marcphilipp.nexus-publish' group = 'com.didiglobal.booster' - version = '3.2.0-alpha4' + version = '3.2.0-alpha5' repositories { mavenLocal() From 8e632a892e95485828037215105e853c2a676756 Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Wed, 5 May 2021 15:40:09 +0800 Subject: [PATCH 036/187] Fix compatibility issue for AGP 4.2 --- booster-android-gradle-v4_2/build.gradle | 4 ++-- .../com/didiglobal/booster/android/gradle/v4_2/V42.kt | 9 ++++++++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/booster-android-gradle-v4_2/build.gradle b/booster-android-gradle-v4_2/build.gradle index 06fbf1b46..c4ac72ddd 100644 --- a/booster-android-gradle-v4_2/build.gradle +++ b/booster-android-gradle-v4_2/build.gradle @@ -6,8 +6,8 @@ apply from: "$rootDir/gradle/functional-test.gradle" dependencies { api project(':booster-android-gradle-compat') - compileOnly 'com.android.tools.build:gradle:4.2.0-beta01' - testImplementation 'com.android.tools.build:gradle:4.2.0-beta01' + compileOnly 'com.android.tools.build:gradle:4.2.0' + testImplementation 'com.android.tools.build:gradle:4.2.0' testImplementation 'io.bootstage.testkit:testkit-gradle-plugin:1.1.0' testImplementation project(':booster-build') } diff --git a/booster-android-gradle-v4_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42.kt b/booster-android-gradle-v4_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42.kt index 0ea4f7477..701ee8ec3 100644 --- a/booster-android-gradle-v4_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42.kt +++ b/booster-android-gradle-v4_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42.kt @@ -6,6 +6,7 @@ import com.android.build.api.artifact.impl.ArtifactsImpl import com.android.build.api.component.impl.ComponentImpl import com.android.build.api.transform.Context import com.android.build.api.transform.QualifiedContent +import com.android.build.gradle.BaseExtension import com.android.build.gradle.api.ApplicationVariant import com.android.build.gradle.api.BaseVariant import com.android.build.gradle.api.LibraryVariant @@ -23,6 +24,7 @@ import com.android.builder.model.ApiVersion import com.android.sdklib.AndroidVersion import com.android.sdklib.BuildToolInfo import com.didiglobal.booster.gradle.AGPInterface +import com.didiglobal.booster.gradle.getAndroid import org.gradle.api.Project import org.gradle.api.Task import org.gradle.api.artifacts.ArtifactCollection @@ -103,6 +105,7 @@ object V42 : AGPInterface { override val BaseVariant.variantScope: VariantScope get() = component.variantScope + @Suppress("DEPRECATION") override val BaseVariant.globalScope: GlobalScope get() = component.globalScope @@ -182,7 +185,11 @@ object V42 : AGPInterface { get() = getFinalArtifactFiles(InternalArtifactType.JAVAC) override val BaseVariant.buildTools: BuildToolInfo - get() = globalScope.sdkComponents.get().buildToolInfoProvider.get() + get() { + val compileSdkVersion = project.provider { globalScope.extension.compileSdkVersion!! } + val buildToolRevision = project.provider(globalScope.extension::buildToolsRevision) + return globalScope.sdkComponents.get().sdkLoader(compileSdkVersion, buildToolRevision).buildToolInfoProvider.get() + } override val Context.task: TransformTask get() = javaClass.getDeclaredField("this$1").apply { From 589155fb3de8935637753ef915bd1cd4d13f6763 Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Wed, 5 May 2021 17:26:47 +0800 Subject: [PATCH 037/187] Fix compilation issue --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 65bd3d49b..8342c0f95 100644 --- a/build.gradle +++ b/build.gradle @@ -14,7 +14,7 @@ buildscript { classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath "io.codearte.gradle.nexus:gradle-nexus-staging-plugin:0.21.2" classpath "de.marcphilipp.gradle:nexus-publish-plugin:0.4.0" - classpath "io.johnsonlee.buildprops:buildprops-gradle-plugin:1.2.0" + classpath "io.johnsonlee.buildprops:buildprops-gradle-plugin:1.1.0" classpath "org.jetbrains.dokka:dokka-gradle-plugin:0.10.1" } } From a88ac25779fbf82c9e63d7052904c8eca3835d59 Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Wed, 5 May 2021 15:40:49 +0800 Subject: [PATCH 038/187] Release version 3.2.0-rc1 --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 8342c0f95..7c311400f 100644 --- a/build.gradle +++ b/build.gradle @@ -31,7 +31,7 @@ allprojects { project -> apply plugin: 'de.marcphilipp.nexus-publish' group = 'com.didiglobal.booster' - version = '3.2.0-alpha5' + version = '3.2.0-rc1' repositories { mavenLocal() From 69c120b8805426c18780b81fb32db8a6c59fdc2e Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Wed, 5 May 2021 19:05:34 +0800 Subject: [PATCH 039/187] Update README.md --- README.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index c674d9302..17d68fa72 100644 --- a/README.md +++ b/README.md @@ -63,6 +63,7 @@ The following table lists which version of Gradle is required for each version o | 3.6.0 - 3.6.4 | 5.6.4+ | | 4.0.0+ | 6.1.1+ | | 4.1.0+ | 6.5+ | +| 4.2.0+ | 6.7.1+ | ## Best Practise | 最佳实践 @@ -72,11 +73,10 @@ The best practise of using Booster is integrating the specific module to solve t ```groovy buildscript { - ext.booster_version = '3.1.0' + ext.booster_version = '3.2.0' repositories { google() mavenCentral() - jcenter() // OPTIONAL If you want to use SNAPSHOT version, sonatype repository is required. maven { url 'https://oss.sonatype.org/content/repositories/public' } @@ -92,7 +92,6 @@ allprojects { repositories { google() mavenCentral() - jcenter() // OPTIONAL If you want to use SNAPSHOT version, sonatype repository is required. maven { url 'https://oss.sonatype.org/content/repositories/public' } From 1dc9b4b732f9e3be5442888ab45044739c12a72e Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Wed, 5 May 2021 21:32:12 +0800 Subject: [PATCH 040/187] Release version 3.2.0 --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 7c311400f..5886114a1 100644 --- a/build.gradle +++ b/build.gradle @@ -31,7 +31,7 @@ allprojects { project -> apply plugin: 'de.marcphilipp.nexus-publish' group = 'com.didiglobal.booster' - version = '3.2.0-rc1' + version = '3.2.0' repositories { mavenLocal() From c2afbe53da09f2e2a0c0b0d494180050db82f73d Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Sat, 8 May 2021 16:35:17 +0800 Subject: [PATCH 041/187] fix issue #226 --- .../com/didiglobal/booster/kotlinx/text.kt | 5 +++ .../didiglobal/booster/kotlinx/TextTest.kt | 32 +++++++++++++++++++ .../r/inline/RetainedSymbolCollector.kt | 20 ++++++++++-- .../booster/transform/r/inline/RegexTest.kt | 9 +++++- 4 files changed, 62 insertions(+), 4 deletions(-) create mode 100644 booster-kotlinx/src/test/kotlin/com/didiglobal/booster/kotlinx/TextTest.kt diff --git a/booster-kotlinx/src/main/kotlin/com/didiglobal/booster/kotlinx/text.kt b/booster-kotlinx/src/main/kotlin/com/didiglobal/booster/kotlinx/text.kt index a276f6fa0..4d004cd39 100644 --- a/booster-kotlinx/src/main/kotlin/com/didiglobal/booster/kotlinx/text.kt +++ b/booster-kotlinx/src/main/kotlin/com/didiglobal/booster/kotlinx/text.kt @@ -3,6 +3,9 @@ package com.didiglobal.booster.kotlinx import java.io.File import java.math.BigInteger import java.security.MessageDigest +import java.util.regex.Pattern + +private val PATTERN_JAVA_IDENTIFIER = Pattern.compile("[a-zA-Z_\$][a-zA-Z\\d_\$]*") fun String.separatorsToUnix(): String { return if ('/' == File.separatorChar) this else this.replace(File.separatorChar, '/') @@ -19,3 +22,5 @@ fun String.md5(): String { fun String.matches(wildcard: Wildcard): Boolean { return wildcard.matches(this) } + +fun String.isValidJavaIdentifier(): Boolean = PATTERN_JAVA_IDENTIFIER.matcher(this).matches() diff --git a/booster-kotlinx/src/test/kotlin/com/didiglobal/booster/kotlinx/TextTest.kt b/booster-kotlinx/src/test/kotlin/com/didiglobal/booster/kotlinx/TextTest.kt new file mode 100644 index 000000000..e8c8576e8 --- /dev/null +++ b/booster-kotlinx/src/test/kotlin/com/didiglobal/booster/kotlinx/TextTest.kt @@ -0,0 +1,32 @@ +package com.didiglobal.booster.kotlinx + +import kotlin.test.Test +import kotlin.test.assertFalse +import kotlin.test.assertTrue + +/** + * Unit test for String extension + * + * @author johnsonlee + */ +class TextTest { + + @Test + fun `test java identifier validation`() { + assertFalse("".isValidJavaIdentifier()) + assertFalse("1".isValidJavaIdentifier()) + assertFalse(".".isValidJavaIdentifier()) + assertTrue("_".isValidJavaIdentifier()) + assertTrue("$".isValidJavaIdentifier()) + assertFalse("1a".isValidJavaIdentifier()) + assertFalse(".a".isValidJavaIdentifier()) + assertTrue("_a".isValidJavaIdentifier()) + assertTrue("\$a".isValidJavaIdentifier()) + assertTrue("ab".isValidJavaIdentifier()) + assertTrue("ab1".isValidJavaIdentifier()) + assertTrue("ab$".isValidJavaIdentifier()) + assertTrue("ab_".isValidJavaIdentifier()) + assertFalse("ab.".isValidJavaIdentifier()) + } + +} diff --git a/booster-transform-r-inline/src/main/kotlin/com/didiglobal/booster/transform/r/inline/RetainedSymbolCollector.kt b/booster-transform-r-inline/src/main/kotlin/com/didiglobal/booster/transform/r/inline/RetainedSymbolCollector.kt index 022229d86..59d2c00fb 100644 --- a/booster-transform-r-inline/src/main/kotlin/com/didiglobal/booster/transform/r/inline/RetainedSymbolCollector.kt +++ b/booster-transform-r-inline/src/main/kotlin/com/didiglobal/booster/transform/r/inline/RetainedSymbolCollector.kt @@ -5,6 +5,7 @@ import com.didiglobal.booster.aapt2.MAGIC import com.didiglobal.booster.aapt2.RES_FILE import com.didiglobal.booster.aapt2.Resources import com.didiglobal.booster.aapt2.ResourcesInternal +import com.didiglobal.booster.kotlinx.isValidJavaIdentifier import com.didiglobal.booster.kotlinx.stackTraceAsString import org.gradle.api.logging.Logging import java.io.File @@ -112,10 +113,21 @@ internal fun Resources.XmlNode.findAllRetainedSymbols(): Collection { }.attributeList?.forEach { attr -> when (attr.name) { "constraint_referenced_ids" -> addAll(attr.value.split(PATTERN_COMMA)) + "layout_constraintHorizontal_bias", + "layout_constraintVertical_bias", + "layout_constraintCircleRadius", + "layout_constraintCircleAngle", + "layout_constraintDimensionRatio", + "layout_constraintWidth_default", + "layout_constraintHeight_default", + "layout_constraintWidth_percent", + "layout_constraintHeight_percent", + "layout_constraintHorizontal_chainStyle", + "layout_constraintVertical_chainStyle", + "layout_constraintHorizontal_weight", + "layout_constraintVertical_weight" -> Unit // just ignore else -> if (attr.name.startsWith("layout_constraint")) { - addAll(attr.value.split(PATTERN_COMMA).filter { - it != "parent" - }.map { + addAll(attr.value.split(PATTERN_COMMA).filter(::isValidSymbol).map { it.substringAfter('/') }) } @@ -125,6 +137,8 @@ internal fun Resources.XmlNode.findAllRetainedSymbols(): Collection { } } +internal fun isValidSymbol(token: String) = token.isNotEmpty() && "parent" != token && token.isValidJavaIdentifier() + private val logger = Logging.getLogger(RetainedSymbolCollector::class.java) private val PATTERN_COMMA = Pattern.compile("\\s*,\\s*") diff --git a/booster-transform-r-inline/src/test/kotlin/com/didiglobal/booster/transform/r/inline/RegexTest.kt b/booster-transform-r-inline/src/test/kotlin/com/didiglobal/booster/transform/r/inline/RegexTest.kt index 07908a5d5..e73f70318 100644 --- a/booster-transform-r-inline/src/test/kotlin/com/didiglobal/booster/transform/r/inline/RegexTest.kt +++ b/booster-transform-r-inline/src/test/kotlin/com/didiglobal/booster/transform/r/inline/RegexTest.kt @@ -1,6 +1,5 @@ package com.didiglobal.booster.transform.r.inline -import java.io.File import java.util.regex.Pattern import kotlin.test.Test import kotlin.test.assertFalse @@ -23,4 +22,12 @@ class RegexTest { } } + @Test + fun `valid symbol`() { + assertTrue(isValidSymbol("H")) + assertTrue(isValidSymbol("icon")) + assertTrue(isValidSymbol("ic_app")) + assertFalse(isValidSymbol("4:1")) + } + } From 910d8c171d808972fc21e3e11ea06fc6494221ac Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Sat, 8 May 2021 17:31:06 +0800 Subject: [PATCH 042/187] Add property `dependencies` to `TransformContext` --- .../didiglobal/booster/gradle/ResolvedArtifactResults.kt | 2 -- .../didiglobal/booster/gradle/BoosterTransformInvocation.kt | 6 ++++++ .../booster/transform/AbstractTransformContext.kt | 4 ++++ .../com/didiglobal/booster/transform/TransformContext.kt | 5 +++++ 4 files changed, 15 insertions(+), 2 deletions(-) diff --git a/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/ResolvedArtifactResults.kt b/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/ResolvedArtifactResults.kt index 683fc1c4b..ebe4c1254 100644 --- a/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/ResolvedArtifactResults.kt +++ b/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/ResolvedArtifactResults.kt @@ -8,7 +8,6 @@ import com.android.build.gradle.internal.publishing.AndroidArtifacts.ConsumedCon import com.didiglobal.booster.kotlinx.file import com.didiglobal.booster.kotlinx.separatorsToSystem import com.didiglobal.booster.kotlinx.touch -import org.gradle.api.artifacts.component.ProjectComponentIdentifier import org.gradle.api.artifacts.result.ResolvedArtifactResult import java.io.File import java.io.PrintWriter @@ -26,7 +25,6 @@ class ResolvedArtifactResults(private val variant: BaseVariant) : Collection by lazy { + ResolvedArtifactResults(variant).map { + it.id.displayName + } + } + override val klassPool: AbstractKlassPool = object : AbstractKlassPool(compileClasspath, transform.bootKlassPool) {} override val applicationId = delegate.applicationId diff --git a/booster-transform-spi/src/main/kotlin/com/didiglobal/booster/transform/AbstractTransformContext.kt b/booster-transform-spi/src/main/kotlin/com/didiglobal/booster/transform/AbstractTransformContext.kt index 90f6a5b35..c215cab42 100644 --- a/booster-transform-spi/src/main/kotlin/com/didiglobal/booster/transform/AbstractTransformContext.kt +++ b/booster-transform-spi/src/main/kotlin/com/didiglobal/booster/transform/AbstractTransformContext.kt @@ -24,6 +24,10 @@ abstract class AbstractTransformContext( override val artifacts = object : ArtifactManager {} + override val dependencies: Collection by lazy { + compileClasspath.map { it.canonicalPath } + } + override val klassPool = object : AbstractKlassPool(runtimeClasspath, bootKlassPool) {} override val originalApplicationId = applicationId diff --git a/booster-transform-spi/src/main/kotlin/com/didiglobal/booster/transform/TransformContext.kt b/booster-transform-spi/src/main/kotlin/com/didiglobal/booster/transform/TransformContext.kt index 534c235ff..7d3096e00 100644 --- a/booster-transform-spi/src/main/kotlin/com/didiglobal/booster/transform/TransformContext.kt +++ b/booster-transform-spi/src/main/kotlin/com/didiglobal/booster/transform/TransformContext.kt @@ -54,6 +54,11 @@ interface TransformContext { */ val artifacts: ArtifactManager + /** + * The original dependencies, may be same to [compileClasspath] if booster is the first applied plugin + */ + val dependencies: Collection + /** * The class pool */ From 6424b1b918ec1aa855924f862aff25de2519de64 Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Sat, 8 May 2021 17:33:53 +0800 Subject: [PATCH 043/187] fix issue #187 --- .../booster/transform/r/inline/RInlineTransformer.kt | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/booster-transform-r-inline/src/main/kotlin/com/didiglobal/booster/transform/r/inline/RInlineTransformer.kt b/booster-transform-r-inline/src/main/kotlin/com/didiglobal/booster/transform/r/inline/RInlineTransformer.kt index 9fa768ca0..e29c581d5 100644 --- a/booster-transform-r-inline/src/main/kotlin/com/didiglobal/booster/transform/r/inline/RInlineTransformer.kt +++ b/booster-transform-r-inline/src/main/kotlin/com/didiglobal/booster/transform/r/inline/RInlineTransformer.kt @@ -17,7 +17,6 @@ import org.objectweb.asm.Opcodes.GETSTATIC import org.objectweb.asm.tree.ClassNode import org.objectweb.asm.tree.FieldInsnNode import org.objectweb.asm.tree.LdcInsnNode -import java.io.File import java.io.PrintWriter import java.util.concurrent.ConcurrentHashMap import java.util.regex.Pattern @@ -60,8 +59,8 @@ class RInlineTransformer : ClassTransformer { } val retainedSymbols: Set - val classpath = context.compileClasspath.map { it.canonicalPath} - if (classpath.any { it.contains(PREFIX_SUPPORT_CONSTRAINT_LAYOUT) || it.contains(PREFIX_JETPACK_CONSTRAINT_LAYOUT) }) { + val deps = context.dependencies + if (deps.any { it.contains(SUPPORT_CONSTRAINT_LAYOUT) || it.contains(JETPACK_CONSTRAINT_LAYOUT) }) { // Find symbols that should be retained retainedSymbols = context.findRetainedSymbols() if (retainedSymbols.isNotEmpty()) { @@ -72,7 +71,7 @@ class RInlineTransformer : ClassTransformer { retainedSymbols = emptySet() } - logger.println(classpath.joinToString("\n - ", "classpath:\n - ", "\n")) + logger.println(deps.joinToString("\n - ", "dependencies:\n - ", "\n")) logger.println("$PROPERTY_IGNORES=$ignores\n") retainedSymbols.ifNotEmpty { symbols -> @@ -171,8 +170,7 @@ private val PROPERTY_PREFIX = Build.ARTIFACT.replace('-', '.') private val PROPERTY_IGNORES = "$PROPERTY_PREFIX.ignores" -private val PREFIX_SUPPORT_CONSTRAINT_LAYOUT = "${File.separatorChar}com.android.support.constraint${File.separatorChar}constraint-layout" - -private val PREFIX_JETPACK_CONSTRAINT_LAYOUT = "${File.separator}androidx.constraintlayout${File.separator}constraintlayout" +private const val SUPPORT_CONSTRAINT_LAYOUT = "com.android.support.constraint:constraint-layout:" +private const val JETPACK_CONSTRAINT_LAYOUT = "androidx.constraintlayout:constraintlayout:" private val logger_ = Logging.getLogger(RInlineTransformer::class.java) From fccc28d10b5114e482a5ea3ad032fb17c6e035de Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Sat, 8 May 2021 17:34:51 +0800 Subject: [PATCH 044/187] Release version 3.3.0-rc1 --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 5886114a1..36b3e4221 100644 --- a/build.gradle +++ b/build.gradle @@ -31,7 +31,7 @@ allprojects { project -> apply plugin: 'de.marcphilipp.nexus-publish' group = 'com.didiglobal.booster' - version = '3.2.0' + version = '3.3.0-rc1' repositories { mavenLocal() From e878be4903b15c4e3a2f4f678e6314bb27cfe134 Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Sat, 8 May 2021 18:32:05 +0800 Subject: [PATCH 045/187] Update comments --- .../kotlin/com/didiglobal/booster/transform/TransformContext.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/booster-transform-spi/src/main/kotlin/com/didiglobal/booster/transform/TransformContext.kt b/booster-transform-spi/src/main/kotlin/com/didiglobal/booster/transform/TransformContext.kt index 7d3096e00..65b753d96 100644 --- a/booster-transform-spi/src/main/kotlin/com/didiglobal/booster/transform/TransformContext.kt +++ b/booster-transform-spi/src/main/kotlin/com/didiglobal/booster/transform/TransformContext.kt @@ -55,7 +55,7 @@ interface TransformContext { val artifacts: ArtifactManager /** - * The original dependencies, may be same to [compileClasspath] if booster is the first applied plugin + * The original dependencies, may be same to [compileClasspath] */ val dependencies: Collection From 17476587a9d2ce9b42966b6daf16d5d58dfc5e25 Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Sat, 8 May 2021 20:26:11 +0800 Subject: [PATCH 046/187] Fix retained symbols of booster-transform-r-inline --- .../transform/r/inline/RInlineTransformer.kt | 4 +- .../r/inline/RetainedSymbolCollector.kt | 71 +++++++++++-------- 2 files changed, 44 insertions(+), 31 deletions(-) diff --git a/booster-transform-r-inline/src/main/kotlin/com/didiglobal/booster/transform/r/inline/RInlineTransformer.kt b/booster-transform-r-inline/src/main/kotlin/com/didiglobal/booster/transform/r/inline/RInlineTransformer.kt index e29c581d5..55def16bd 100644 --- a/booster-transform-r-inline/src/main/kotlin/com/didiglobal/booster/transform/r/inline/RInlineTransformer.kt +++ b/booster-transform-r-inline/src/main/kotlin/com/didiglobal/booster/transform/r/inline/RInlineTransformer.kt @@ -50,7 +50,9 @@ class RInlineTransformer : ClassTransformer { this.logger = getReport(context, "report.txt").touch().printWriter() this.symbols = SymbolList.from(context.artifacts.get(SYMBOL_LIST).single()) this.appRStyleable = "$appPackage/$R_STYLEABLE" - this.ignores = context.getProperty(PROPERTY_IGNORES, "").trim().split(',').map(Wildcard.Companion::valueOf).toSet() + this.ignores = context.getProperty(PROPERTY_IGNORES, "").trim().split(',') + .filter(String::isNotEmpty) + .map(Wildcard.Companion::valueOf).toSet() if (this.symbols.isEmpty()) { logger_.error("Inline R symbols failed: R.txt doesn't exist or blank") diff --git a/booster-transform-r-inline/src/main/kotlin/com/didiglobal/booster/transform/r/inline/RetainedSymbolCollector.kt b/booster-transform-r-inline/src/main/kotlin/com/didiglobal/booster/transform/r/inline/RetainedSymbolCollector.kt index 59d2c00fb..c23a33c12 100644 --- a/booster-transform-r-inline/src/main/kotlin/com/didiglobal/booster/transform/r/inline/RetainedSymbolCollector.kt +++ b/booster-transform-r-inline/src/main/kotlin/com/didiglobal/booster/transform/r/inline/RetainedSymbolCollector.kt @@ -104,41 +104,52 @@ internal fun Resources.XmlNode.findAllRetainedSymbols(): Collection { return mutableSetOf().apply { while (stack.isNotEmpty()) { - stack.pop().also { element -> - element.childList.filter { - it.hasElement() - }.forEach { - stack.push(it.element) - } - }.attributeList?.forEach { attr -> - when (attr.name) { - "constraint_referenced_ids" -> addAll(attr.value.split(PATTERN_COMMA)) - "layout_constraintHorizontal_bias", - "layout_constraintVertical_bias", - "layout_constraintCircleRadius", - "layout_constraintCircleAngle", - "layout_constraintDimensionRatio", - "layout_constraintWidth_default", - "layout_constraintHeight_default", - "layout_constraintWidth_percent", - "layout_constraintHeight_percent", - "layout_constraintHorizontal_chainStyle", - "layout_constraintVertical_chainStyle", - "layout_constraintHorizontal_weight", - "layout_constraintVertical_weight" -> Unit // just ignore - else -> if (attr.name.startsWith("layout_constraint")) { - addAll(attr.value.split(PATTERN_COMMA).filter(::isValidSymbol).map { - it.substringAfter('/') - }) - } - } - } + val next = stack.pop() + next.childList.filter(Resources.XmlNode::hasElement) + .map(Resources.XmlNode::getElement) + .let(stack::addAll) + next.findRetainedSymbols()?.let(this::addAll) } } } -internal fun isValidSymbol(token: String) = token.isNotEmpty() && "parent" != token && token.isValidJavaIdentifier() +internal fun Resources.XmlElement.findRetainedSymbols(): Collection? = attributeList?.filter { + it.name !in IGNORED_CONSTRAINT_LAYOUT_ATTRS +}?.map { attr -> + when { + attr.name == "constraint_referenced_ids" -> attr.value.split(PATTERN_COMMA) + attr.name.startsWith("layout_constraint") -> attr.value.split(PATTERN_COMMA).filter { + "parent" != it + }.map { + it.substringAfter('/') + }.filter(String::isValidJavaIdentifier) + else -> emptyList() + } +}?.flatten() private val logger = Logging.getLogger(RetainedSymbolCollector::class.java) +/** + * ref: https://developer.android.com/reference/androidx/constraintlayout/widget/ConstraintLayout + */ +private val IGNORED_CONSTRAINT_LAYOUT_ATTRS = setOf( + "layout_constraintHorizontal_bias", + "layout_constraintVertical_bias", + "layout_constraintCircleRadius", + "layout_constraintCircleAngle", + "layout_constraintDimensionRatio", + "layout_constraintHeight_default", + "layout_constraintHeight_min", + "layout_constraintHeight_max", + "layout_constraintHeight_percent", + "layout_constraintWidth_default", + "layout_constraintWidth_min", + "layout_constraintWidth_max", + "layout_constraintWidth_percent", + "layout_constraintHorizontal_chainStyle", + "layout_constraintVertical_chainStyle", + "layout_constraintHorizontal_weight", + "layout_constraintVertical_weight" +) + private val PATTERN_COMMA = Pattern.compile("\\s*,\\s*") From ed457493b660478e81b1ad03ba8815536d1c9ef0 Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Sat, 8 May 2021 20:26:29 +0800 Subject: [PATCH 047/187] Release version 3.3.0-rc2 --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 36b3e4221..b72ffe656 100644 --- a/build.gradle +++ b/build.gradle @@ -31,7 +31,7 @@ allprojects { project -> apply plugin: 'de.marcphilipp.nexus-publish' group = 'com.didiglobal.booster' - version = '3.3.0-rc1' + version = '3.3.0-rc2' repositories { mavenLocal() From 11228288610812d4a5b032ef30471afb0da9faa6 Mon Sep 17 00:00:00 2001 From: Johnson Lee Date: Mon, 10 May 2021 09:55:32 +0800 Subject: [PATCH 048/187] Release version 3.3.0 --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index b72ffe656..ee4d4198a 100644 --- a/build.gradle +++ b/build.gradle @@ -31,7 +31,7 @@ allprojects { project -> apply plugin: 'de.marcphilipp.nexus-publish' group = 'com.didiglobal.booster' - version = '3.3.0-rc2' + version = '3.3.0' repositories { mavenLocal() From 845b711200781b0902a26b877375995b4f0b2bcd Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Mon, 10 May 2021 20:47:18 +0800 Subject: [PATCH 049/187] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 17d68fa72..255f97147 100644 --- a/README.md +++ b/README.md @@ -73,7 +73,7 @@ The best practise of using Booster is integrating the specific module to solve t ```groovy buildscript { - ext.booster_version = '3.2.0' + ext.booster_version = '3.3.0' repositories { google() mavenCentral() From 028ceafb0fd0a22be15bc8da5cb1f2890bdd292d Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Mon, 10 May 2021 22:53:34 +0800 Subject: [PATCH 050/187] Fix issue #224 : Context.getFilesDir() returns null --- .../src/main/java/android/content/Context.java | 3 +++ .../main/java/android/content/ContextWrapper.java | 6 ++++++ .../java/android/content/pm/ApplicationInfo.java | 9 +++++++++ .../java/android/content/pm/PackageItemInfo.java | 4 ++++ .../SharedPreferencesManager.java | 14 +++++++++++++- 5 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 booster-android-api/src/main/java/android/content/pm/ApplicationInfo.java create mode 100644 booster-android-api/src/main/java/android/content/pm/PackageItemInfo.java diff --git a/booster-android-api/src/main/java/android/content/Context.java b/booster-android-api/src/main/java/android/content/Context.java index 9588c3218..8d826014f 100644 --- a/booster-android-api/src/main/java/android/content/Context.java +++ b/booster-android-api/src/main/java/android/content/Context.java @@ -4,6 +4,7 @@ import android.content.res.Resources; import android.os.Handler; import android.os.Looper; +import android.content.pm.ApplicationInfo; import java.io.File; @@ -33,4 +34,6 @@ public abstract class Context { public abstract String getPackageName(); + public abstract ApplicationInfo getApplicationInfo(); + } \ No newline at end of file diff --git a/booster-android-api/src/main/java/android/content/ContextWrapper.java b/booster-android-api/src/main/java/android/content/ContextWrapper.java index 0acc948d9..a730f2f8a 100644 --- a/booster-android-api/src/main/java/android/content/ContextWrapper.java +++ b/booster-android-api/src/main/java/android/content/ContextWrapper.java @@ -1,5 +1,6 @@ package android.content; +import android.content.pm.ApplicationInfo; import android.content.res.AssetManager; import android.content.res.Resources; import android.os.Handler; @@ -77,4 +78,9 @@ public String getPackageName() { throw new RuntimeException("Stub!"); } + @Override + public ApplicationInfo getApplicationInfo() { + throw new RuntimeException("Stub!"); + } + } \ No newline at end of file diff --git a/booster-android-api/src/main/java/android/content/pm/ApplicationInfo.java b/booster-android-api/src/main/java/android/content/pm/ApplicationInfo.java new file mode 100644 index 000000000..c4a8ffc8f --- /dev/null +++ b/booster-android-api/src/main/java/android/content/pm/ApplicationInfo.java @@ -0,0 +1,9 @@ +package android.content.pm; + +import android.os.Parcelable; + +public class ApplicationInfo extends PackageItemInfo implements Parcelable { + + public String dataDir; + +} diff --git a/booster-android-api/src/main/java/android/content/pm/PackageItemInfo.java b/booster-android-api/src/main/java/android/content/pm/PackageItemInfo.java new file mode 100644 index 000000000..9c33021a3 --- /dev/null +++ b/booster-android-api/src/main/java/android/content/pm/PackageItemInfo.java @@ -0,0 +1,4 @@ +package android.content.pm; + +public class PackageItemInfo { +} diff --git a/booster-android-instrument-shared-preferences/src/main/java/com/didiglobal/booster/instrument/sharedpreferences/SharedPreferencesManager.java b/booster-android-instrument-shared-preferences/src/main/java/com/didiglobal/booster/instrument/sharedpreferences/SharedPreferencesManager.java index 2c9e0fb84..ab70dfa89 100755 --- a/booster-android-instrument-shared-preferences/src/main/java/com/didiglobal/booster/instrument/sharedpreferences/SharedPreferencesManager.java +++ b/booster-android-instrument-shared-preferences/src/main/java/com/didiglobal/booster/instrument/sharedpreferences/SharedPreferencesManager.java @@ -33,7 +33,7 @@ class SharedPreferencesManager { private final File mTempFile; SharedPreferencesManager(Context context, String name) { - this.mSpFile = new File(context.getFilesDir().getParent(), "shared_prefs" + File.separator + name + ".xml"); + this.mSpFile = new File(getPreferencesDir(context), name + ".xml"); this.mTempFile = new File(mSpFile.getPath() + ".tmp"); } @@ -128,4 +128,16 @@ private static void sync(FileOutputStream stream) { } catch (IOException ignored) { } } + + private static File getPreferencesDir(Context context) { + final File files = context.getFilesDir(); + final File data = null != files ? files.getParentFile() : getDataDirFile(context); + return new File(data, "shared_prefs"); + } + + private static File getDataDirFile(Context context) { + final String dataDir = context.getApplicationInfo().dataDir; + return new File(null != dataDir ? dataDir : "/data/data/" + context.getPackageName()); + } + } From 2d6503250bcf60d1897b4db6f945e2509e4ab7d7 Mon Sep 17 00:00:00 2001 From: Johnson Lee Date: Mon, 10 May 2021 23:53:29 +0800 Subject: [PATCH 051/187] Setup github workflow --- .github/workflows/build.yml | 27 +++++++++++++++++++++++++++ .github/workflows/publish.yml | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 62 insertions(+) create mode 100644 .github/workflows/build.yml create mode 100644 .github/workflows/publish.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 000000000..e8d5b2c4a --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,27 @@ +name: Run unit tests + +on: + push: + branches: [ '*' ] + pull_request: + branches: [ '*' ] + + repository_dispatch: + types: [test] + +jobs: + run-unit-test: + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: Setup Java + uses: actions/setup-java@v2 + with: + distribution: 'adopt' + java-version: '11' + + - name: build + run: ./gradlew assemble -S --no-daemon diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml new file mode 100644 index 000000000..c0a032b17 --- /dev/null +++ b/.github/workflows/publish.yml @@ -0,0 +1,35 @@ +name: Publish build to Sonatype + +on: + push: + tags: + - '*' + repository_dispatch: + types: [publish] + +jobs: + publish: + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: Setup Java + uses: actions/setup-java@v2 + with: + distribution: 'adopt' + java-version: '11' + + - name: publish to sonatype + run: | + echo "Create GPG private key" + echo $GPG_KEY_ARMOR | base64 --decode > $GITHUB_WORKSPACE/secring.gpg + ./gradlew clean publishToSonatype -POSSRH_USERNAME=${OSSRH_USERNAME} -POSSRH_PASSWORD=${OSSRH_PASSWORD} -Psigning.keyId=${GPG_KEY_ID} -Psigning.password=${GPG_PASSPHRASE} -Psigning.secretKeyRingFile=${GITHUB_WORKSPACE}/secring.gpg -S --no-daemon + ./gradlew closeAndReleaseRepository -POSSRH_USERNAME=${OSSRH_USERNAME} -POSSRH_PASSWORD=${OSSRH_PASSWORD} --no-daemon + env: + GPG_KEY_ARMOR: ${{ secrets.GPG_KEY_ARMOR }} + GPG_KEY_ID: ${{ secrets.GPG_KEY_ID }} + GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }} + OSSRH_PASSWORD: ${{ secrets.OSSRH_PASSWORD }} + OSSRH_USERNAME: ${{ secrets.OSSRH_USERNAME }} From 7f2834cf830d266f469904c12e5fa8a163ef8561 Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Tue, 11 May 2021 01:03:08 +0800 Subject: [PATCH 052/187] Release version 3.3.1-rc1 --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index ee4d4198a..127a01e47 100644 --- a/build.gradle +++ b/build.gradle @@ -31,7 +31,7 @@ allprojects { project -> apply plugin: 'de.marcphilipp.nexus-publish' group = 'com.didiglobal.booster' - version = '3.3.0' + version = '3.3.1-rc1' repositories { mavenLocal() From 1b14144de1c1e664f312e16ff2685d456fd7c564 Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Tue, 11 May 2021 02:16:27 +0800 Subject: [PATCH 053/187] Drop travis CI --- .travis.yml | 51 ---------------------------------------- .travis/deploy.sh | 9 ------- .travis/gnirces.gpg.enc | Bin 2640 -> 0 bytes .travis/secring.gpg.enc | Bin 2640 -> 0 bytes 4 files changed, 60 deletions(-) delete mode 100644 .travis.yml delete mode 100755 .travis/deploy.sh delete mode 100644 .travis/gnirces.gpg.enc delete mode 100644 .travis/secring.gpg.enc diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 6f66068d9..000000000 --- a/.travis.yml +++ /dev/null @@ -1,51 +0,0 @@ -language: android -os: linux -dist: trusty -jdk: oraclejdk8 -android: - components: - - build-tools-26.0.3 - - build-tools-27.0.3 - - build-tools-28.0.2 - - build-tools-28.0.3 - - build-tools-29.0.2 - - build-tools-29.0.3 - - build-tools-30.0.2 - - android-25 - - android-26 - - android-27 - - android-28 - - android-29 - - android-30 - - extra-android-m2repository - licenses: - - android-sdk-license-.+ -before_cache: -- rm -f $HOME/.gradle/caches/modules-2/modules-2.lock -- rm -fr $HOME/.gradle/caches/*/plugin-resolution/ -cache: - directories: - - "$HOME/.m2/" - - "$HOME/.gradle/caches/" - - "$HOME/.gradle/wrapper/" - - "/usr/local/android-sdk*/" -before_install: -- if [ "$encrypted_3571c34b0299_key" != "" ] && [ "$encrypted_3571c34b0299_iv" != "" ]; then - openssl aes-256-cbc -K $encrypted_3571c34b0299_key -iv $encrypted_3571c34b0299_iv -in .travis/secring.gpg.enc -out .travis/secring.gpg -d; - fi -- if [ "$encrypted_d32d0189ba50_key" != "" ] && [ "$encrypted_d32d0189ba50_iv" != "" ]; then - openssl aes-256-cbc -K $encrypted_d32d0189ba50_key -iv $encrypted_d32d0189ba50_iv -in .travis/gnirces.gpg.enc -out .travis/secring.gpg -d; - fi -before_script: -- chmod +x gradlew -script: -- "./gradlew assemble -S --no-daemon" -deploy: - skip_cleanup: true - provider: script - script: bash .travis/deploy.sh - on: - tags: true -after_deploy: -- "./gradlew closeAndReleaseRepository --no-daemon" -- shred -u .travis/secring.gpg diff --git a/.travis/deploy.sh b/.travis/deploy.sh deleted file mode 100755 index 7c78b4ee5..000000000 --- a/.travis/deploy.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env sh - -./gradlew publishToSonatype \ - -POSSRH_USERNAME=${OSSRH_USERNAME} \ - -POSSRH_PASSWORD=${OSSRH_PASSWORD} \ - -Psigning.keyId=${GPG_KEY_ID} \ - -Psigning.password=${GPG_PASSPHRASE} \ - -Psigning.secretKeyRingFile=${TRAVIS_BUILD_DIR}/.travis/secring.gpg - diff --git a/.travis/gnirces.gpg.enc b/.travis/gnirces.gpg.enc deleted file mode 100644 index e7d102601ed5299e02a6db51916fda91b589bb25..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2640 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 diff --git a/.travis/secring.gpg.enc b/.travis/secring.gpg.enc deleted file mode 100644 index 818ba8ee74b000dab6903f57b362b365e8d6b394..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2640 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 From e339dffc94820f20b1ed37b4be463fafebaa1318 Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Tue, 11 May 2021 02:23:01 +0800 Subject: [PATCH 054/187] Fix issue #231 --- booster-command/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/booster-command/build.gradle b/booster-command/build.gradle index a022f8f5b..0a530d921 100644 --- a/booster-command/build.gradle +++ b/booster-command/build.gradle @@ -3,5 +3,5 @@ apply from: "$rootDir/gradle/booster.gradle" dependencies { api gradleApi() api project(":booster-build") - api "commons-io:commons-io:2.6" + api "commons-io:commons-io:2.7" } From 08669118e9c9f955bdccfbce80fc249e1b106c89 Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Tue, 11 May 2021 02:27:41 +0800 Subject: [PATCH 055/187] Fix issue #222 --- .../booster/transform/javassist/JavassistTransformer.kt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/booster-transform-javassist/src/main/kotlin/com/didiglobal/booster/transform/javassist/JavassistTransformer.kt b/booster-transform-javassist/src/main/kotlin/com/didiglobal/booster/transform/javassist/JavassistTransformer.kt index 749740fc8..268581276 100644 --- a/booster-transform-javassist/src/main/kotlin/com/didiglobal/booster/transform/javassist/JavassistTransformer.kt +++ b/booster-transform-javassist/src/main/kotlin/com/didiglobal/booster/transform/javassist/JavassistTransformer.kt @@ -9,6 +9,7 @@ import com.google.auto.service.AutoService import javassist.ClassPool import java.io.ByteArrayOutputStream import java.io.DataOutputStream +import java.io.File import java.lang.management.ManagementFactory import java.lang.management.ThreadMXBean import java.util.ServiceLoader @@ -43,9 +44,8 @@ class JavassistTransformer : Transformer { } override fun onPreTransform(context: TransformContext) { - context.bootClasspath.forEach { - this.pool.appendClassPath(it.canonicalPath) - } + this.pool.appendClassPath(context.bootClasspath.joinToString(File.pathSeparator) { it.canonicalPath }) + this.pool.appendClassPath(context.compileClasspath.joinToString(File.pathSeparator) { it.canonicalPath }) this.transformers.forEach { transformer -> this.threadMxBean.sumCpuTime(transformer) { From 9050c2ed3369f74fc5a5398f23894c1217f7c494 Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Tue, 11 May 2021 02:29:15 +0800 Subject: [PATCH 056/187] Release version 3.3.1-rc2 --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 127a01e47..a06cb6a30 100644 --- a/build.gradle +++ b/build.gradle @@ -31,7 +31,7 @@ allprojects { project -> apply plugin: 'de.marcphilipp.nexus-publish' group = 'com.didiglobal.booster' - version = '3.3.1-rc1' + version = '3.3.1-rc2' repositories { mavenLocal() From 150e557908b789563ed3030ff6ebfee5164f9ff4 Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Tue, 11 May 2021 13:52:09 +0800 Subject: [PATCH 057/187] Downgrade Java version from 11 to 8 --- .github/workflows/build.yml | 2 +- .github/workflows/publish.yml | 2 +- gradle.properties | 1 + 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index e8d5b2c4a..86f360257 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -21,7 +21,7 @@ jobs: uses: actions/setup-java@v2 with: distribution: 'adopt' - java-version: '11' + java-version: '8' - name: build run: ./gradlew assemble -S --no-daemon diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index c0a032b17..cba518d73 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -19,7 +19,7 @@ jobs: uses: actions/setup-java@v2 with: distribution: 'adopt' - java-version: '11' + java-version: '8' - name: publish to sonatype run: | diff --git a/gradle.properties b/gradle.properties index 2a89a15e8..528b28cab 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,4 @@ systemProp.org.gradle.internal.publish.checksums.insecure=true org.gradle.caching=true org.gradle.parallel=true +org.gradle.jvmargs=-Xmx4096m -XX:MaxPermSize=512m -Dfile.encoding=UTF-8 From 965a09fdf38a93b14ac3b76e00db1232ca154cb4 Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Tue, 11 May 2021 13:59:17 +0800 Subject: [PATCH 058/187] Release version 3.3.1-rc3 --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index a06cb6a30..6beee9c0a 100644 --- a/build.gradle +++ b/build.gradle @@ -31,7 +31,7 @@ allprojects { project -> apply plugin: 'de.marcphilipp.nexus-publish' group = 'com.didiglobal.booster' - version = '3.3.1-rc2' + version = '3.3.1-rc3' repositories { mavenLocal() From e5654d63bb01a97480725a6522574712102c0dd4 Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Tue, 11 May 2021 20:59:17 +0800 Subject: [PATCH 059/187] Release version 3.3.1 --- README.md | 2 +- build.gradle | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 255f97147..25ecce690 100644 --- a/README.md +++ b/README.md @@ -73,7 +73,7 @@ The best practise of using Booster is integrating the specific module to solve t ```groovy buildscript { - ext.booster_version = '3.3.0' + ext.booster_version = '3.3.1' repositories { google() mavenCentral() diff --git a/build.gradle b/build.gradle index 6beee9c0a..6d4cfc334 100644 --- a/build.gradle +++ b/build.gradle @@ -31,7 +31,7 @@ allprojects { project -> apply plugin: 'de.marcphilipp.nexus-publish' group = 'com.didiglobal.booster' - version = '3.3.1-rc3' + version = '3.3.1' repositories { mavenLocal() From caa84c5c7d49be3982025e3dfd3c17cea5eebed3 Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Tue, 11 May 2021 22:51:23 +0800 Subject: [PATCH 060/187] Update github workflow --- .github/workflows/publish.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index cba518d73..00313f2d4 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -10,6 +10,7 @@ on: jobs: publish: runs-on: ubuntu-latest + if: ${{ secrets.GPG_KEY_ARMOR != '' && secrets.GPG_KEY_ID != '' && secrets.GPG_PASSPHRASE != '' && secrets.OSSRH_PASSWORD != '' }} steps: - name: Checkout From 2b4dd6f9e4ff20bc4ca92784d73c7b8fea8f0d99 Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Tue, 11 May 2021 23:23:09 +0800 Subject: [PATCH 061/187] [skip ci] Update README.md --- README.md | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 25ecce690..d24a67f04 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ ![Booster](assets/booster-logo.png) ![GitHub](https://img.shields.io/github/license/didi/booster.svg?style=for-the-badge) -![Travis (.org)](https://img.shields.io/travis/didi/booster.svg?style=for-the-badge) -![GitHub release](https://img.shields.io/github/release/didi/booster.svg?style=for-the-badge) +![Build Status](https://img.shields.io/github/workflow/status/didi/booster/Run%20unit%20tests?style=for-the-badge) +![GitHub Release](https://img.shields.io/github/release/didi/booster.svg?style=for-the-badge) ## Overview | 概览 @@ -102,7 +102,28 @@ apply plugin: 'com.android.application' apply plugin: 'com.didiglobal.booster' // ③ ``` -The `plugins` DSL also supported since Booster 3.0.0 +Then using the following command in terminal to check if Booster enabled + +> 然后在终端用如下命令来确认 Booster 是否启用: + +```bash +./gradlew assembleDebug --dry-run +``` + +If *transformClassesWithBoosterForDebug* can be found in the output, it means *Booster* is enabled. Congratulations! 🎉🎉🎉 + +> 如果在命令行输出中能搜到 *transformClassesWithBoosterForDebug* 说明 *Booster* 已经启用了,那么恭喜你! 🎉🎉🎉 + + +The `plugins` DSL also supported since Booster *3.0.0* + +> *Booster* 从 *3.0.0* 开始支持 `plugins` *DSL* 的方式来启用 + +```groovy +plugins { + id 'com.didiglobal.booster' version '3.3.1' +} +``` Here are all the modules of Booster: From a243652f2c83956783586ff1093e21faeff8ba30 Mon Sep 17 00:00:00 2001 From: neighbWang Date: Wed, 12 May 2021 01:38:04 +0800 Subject: [PATCH 062/187] Add java compile compatibility --- gradle/booster.gradle | 3 +++ 1 file changed, 3 insertions(+) diff --git a/gradle/booster.gradle b/gradle/booster.gradle index 534fd41b7..e53909d3f 100644 --- a/gradle/booster.gradle +++ b/gradle/booster.gradle @@ -2,6 +2,9 @@ apply plugin: 'kotlin' apply plugin: 'kotlin-kapt' apply plugin: 'io.johnsonlee.buildprops' +sourceCompatibility = JavaVersion.VERSION_1_8 +targetCompatibility = JavaVersion.VERSION_1_8 + sourceSets { main { java { From 205b1c4534b6d6399ea58190c8a89c72f3c34fc2 Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Sat, 22 May 2021 02:08:14 +0800 Subject: [PATCH 063/187] Using AGP stable version for 4.2 integration test --- .../booster/android/gradle/v4_2/V42IntegrationTest.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/booster-android-gradle-v4_2/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42IntegrationTest.kt b/booster-android-gradle-v4_2/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42IntegrationTest.kt index ccbfe3f80..6042f297f 100644 --- a/booster-android-gradle-v4_2/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42IntegrationTest.kt +++ b/booster-android-gradle-v4_2/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42IntegrationTest.kt @@ -35,7 +35,7 @@ private val AGP = V42 private val ARGS = arrayOf( "assemble", "-S", "-Pbooster_version=${Build.VERSION}", - "-Pandroid_gradle_version=4.2.0-beta01", + "-Pandroid_gradle_version=4.2.1", "-Pcompile_sdk_version=28", "-Pbuild_tools_version=26.0.3", "-Pmin_sdk_version=${MIN_SDK_VERSION}", From 892042dfe16e3f0f4dfccc4192e70ec773783134 Mon Sep 17 00:00:00 2001 From: lihenair Date: Wed, 2 Jun 2021 18:11:45 +0800 Subject: [PATCH 064/187] Update RInlineTransformer.kt MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 增加androidx.constraint v2.0相关支持 --- .../didiglobal/booster/transform/r/inline/RInlineTransformer.kt | 1 + 1 file changed, 1 insertion(+) diff --git a/booster-transform-r-inline/src/main/kotlin/com/didiglobal/booster/transform/r/inline/RInlineTransformer.kt b/booster-transform-r-inline/src/main/kotlin/com/didiglobal/booster/transform/r/inline/RInlineTransformer.kt index 55def16bd..562252129 100644 --- a/booster-transform-r-inline/src/main/kotlin/com/didiglobal/booster/transform/r/inline/RInlineTransformer.kt +++ b/booster-transform-r-inline/src/main/kotlin/com/didiglobal/booster/transform/r/inline/RInlineTransformer.kt @@ -68,6 +68,7 @@ class RInlineTransformer : ClassTransformer { if (retainedSymbols.isNotEmpty()) { this.ignores += setOf(Wildcard.valueOf("android/support/constraint/R\$id")) this.ignores += setOf(Wildcard.valueOf("androidx/constraintlayout/R\$id")) + this.ignores += setOf(Wildcard.valueOf("androidx/constraintlayout/widget/R\$id")) } } else { retainedSymbols = emptySet() From 7ef6cc1fb98ba0c355d7e01e6704bc0fe3e073c4 Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Sat, 22 May 2021 03:30:24 +0800 Subject: [PATCH 065/187] Refactor booster CHA to support generic class file parser --- booster-cha/build.gradle | 2 +- .../booster/cha/AbstractClassSet.kt | 11 ++-- .../booster/cha/ArchivedClassSet.kt | 21 ++++--- .../didiglobal/booster/cha/ClassFileParser.kt | 25 ++++++++ .../didiglobal/booster/cha/ClassHierarchy.kt | 62 +++++++++---------- .../com/didiglobal/booster/cha/ClassSet.kt | 40 ++++++++---- .../booster/cha/CompositeClassSet.kt | 33 +++++----- .../booster/cha/DirectoryClassSet.kt | 23 +++---- .../didiglobal/booster/cha/EmptyClassSet.kt | 15 ++--- .../booster/cha/NullClassFileParser.kt | 13 ++++ .../booster/task/analyser/Analyser.kt | 8 ++- .../task/analyser/AsmClassFileParser.kt | 22 +++++++ 12 files changed, 178 insertions(+), 97 deletions(-) create mode 100644 booster-cha/src/main/kotlin/com/didiglobal/booster/cha/ClassFileParser.kt create mode 100644 booster-cha/src/main/kotlin/com/didiglobal/booster/cha/NullClassFileParser.kt create mode 100644 booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/AsmClassFileParser.kt diff --git a/booster-cha/build.gradle b/booster-cha/build.gradle index 9b4f543f4..59824ae7c 100644 --- a/booster-cha/build.gradle +++ b/booster-cha/build.gradle @@ -1,5 +1,5 @@ apply from: "$rootDir/gradle/booster.gradle" dependencies { - api project(':booster-transform-asm') + api project(':booster-transform-util') } diff --git a/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/AbstractClassSet.kt b/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/AbstractClassSet.kt index b7658521c..9b91b183f 100644 --- a/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/AbstractClassSet.kt +++ b/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/AbstractClassSet.kt @@ -1,17 +1,14 @@ package com.didiglobal.booster.cha -import com.didiglobal.booster.transform.asm.className -import org.objectweb.asm.tree.ClassNode - /** * @author johnsonlee */ -abstract class AbstractClassSet : ClassSet { +abstract class AbstractClassSet> : ClassSet { - override fun contains(element: ClassNode) = contains(element.className) + override fun contains(element: ClassFile) = contains(parser.getClassName(element)) - override fun containsAll(elements: Collection) = elements.all { - contains(it.className) + override fun containsAll(elements: Collection) = elements.all { + contains(parser.getClassName(it)) } override fun load() = this diff --git a/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/ArchivedClassSet.kt b/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/ArchivedClassSet.kt index c6d9e3a23..c174ad7da 100644 --- a/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/ArchivedClassSet.kt +++ b/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/ArchivedClassSet.kt @@ -3,8 +3,6 @@ package com.didiglobal.booster.cha import com.didiglobal.booster.kotlinx.asIterable import com.didiglobal.booster.kotlinx.green import com.didiglobal.booster.kotlinx.parallelStream -import com.didiglobal.booster.transform.asm.asClassNode -import org.objectweb.asm.tree.ClassNode import java.io.File import java.io.FileNotFoundException import java.util.stream.Collectors.toMap @@ -16,19 +14,22 @@ private val CLASS_ENTRY_FILTER = { entry: ZipEntry -> entry.name.endsWith(".clas /** * @author johnsonlee */ -internal class ArchivedClassSet(val location: File) : AbstractClassSet() { +internal class ArchivedClassSet>( + val location: File, + override val parser: ClassParser +) : AbstractClassSet() { private val zip = ZipFile(location) - private val classes: Map by lazy { + private val classes: Map by lazy { zip.entries().iterator().asIterable().parallelStream().filter(CLASS_ENTRY_FILTER).map { entry -> - zip.getInputStream(entry).asClassNode() - }.collect(toMap(ClassNode::name) { it }) + parser.parse(zip.getInputStream(entry)) + }.collect(toMap(parser::getClassName) { it }) } - constructor(location: String) : this(File(location).takeIf { + constructor(location: String, parser: ClassParser) : this(File(location).takeIf { it.exists() - } ?: throw FileNotFoundException(location)) + } ?: throw FileNotFoundException(location), parser) override fun get(name: String) = this.classes[name] @@ -39,12 +40,12 @@ internal class ArchivedClassSet(val location: File) : AbstractClassSet() { override fun isEmpty() = this.size <= 0 - override fun load(): ArchivedClassSet { + override fun load(): ArchivedClassSet { println("Load ${green(this.classes.size)} classes from $location") return this } - override fun iterator(): Iterator = this.classes.values.iterator() + override fun iterator(): Iterator = this.classes.values.iterator() override fun close() = zip.close() diff --git a/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/ClassFileParser.kt b/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/ClassFileParser.kt new file mode 100644 index 000000000..2475c4d28 --- /dev/null +++ b/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/ClassFileParser.kt @@ -0,0 +1,25 @@ +package com.didiglobal.booster.cha + +import java.io.File +import java.io.InputStream +import java.lang.reflect.Modifier + +interface ClassFileParser { + + fun parse(file: File): ClassNode = file.inputStream().buffered().use(this::parse) + + fun parse(input: InputStream): ClassNode + + fun getClassName(classNode: ClassNode): String + + fun getSuperName(classNode: ClassNode): String? + + fun getInterfaces(classNode: ClassNode): Array + + fun getAccessFlags(classNode: ClassNode): Int + + fun isInterface(classNode: ClassNode): Boolean = Modifier.isInterface(getAccessFlags(classNode)) + + fun isFinal(classNode: ClassNode): Boolean = Modifier.isFinal(getAccessFlags(classNode)) + +} \ No newline at end of file diff --git a/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/ClassHierarchy.kt b/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/ClassHierarchy.kt index 364731c6f..9930dd511 100644 --- a/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/ClassHierarchy.kt +++ b/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/ClassHierarchy.kt @@ -1,8 +1,5 @@ package com.didiglobal.booster.cha -import com.didiglobal.booster.transform.asm.isFinal -import com.didiglobal.booster.transform.asm.isInterface -import org.objectweb.asm.tree.ClassNode import java.util.Collections import java.util.Objects import java.util.concurrent.ConcurrentHashMap @@ -11,28 +8,30 @@ import java.util.concurrent.ConcurrentHashMap * @author johnsonlee */ @Suppress("MemberVisibilityCanBePrivate") -class ClassHierarchy(private val classSet: ClassSet) { +class ClassHierarchy>( + private val classSet: ClassSet +) : ClassFileParser by classSet.parser { private val unresolved = ConcurrentHashMap.newKeySet() val unresolvedClasses: Set get() = Collections.unmodifiableSet(unresolved) - operator fun get(name: String): ClassNode? { - val clazz = classSet[name] + operator fun get(name: String?): ClassFile? { + val clazz = name?.let { classSet[it] } if (null == clazz) { unresolved += name } return clazz } - val classes: Iterable = classSet + val classes: Iterable = classSet - fun isInheritFrom(child: ClassNode, parent: ClassNode) = when { - child.name == parent.name -> true - parent.isInterface -> isInheritFromInterface(child, parent) - child.isInterface -> parent.name == JAVA_LANG_OBJECT - parent.isFinal -> false + fun isInheritFrom(child: ClassFile, parent: ClassFile) = when { + getClassName(child) == getClassName(parent) -> true + isInterface(parent) -> isInheritFromInterface(child, parent) + isInterface(child) -> getClassName(parent) == JAVA_LANG_OBJECT + isFinal(parent) -> false else -> isInheritFromClass(child, parent) } @@ -42,57 +41,58 @@ class ClassHierarchy(private val classSet: ClassSet) { return isInheritFrom(childClass, parentClass) } - fun isInheritFrom(child: String, parent: ClassNode) = (!parent.isFinal) && this[child]?.let { childClass -> + fun isInheritFrom(child: String, parent: ClassFile) = (!isFinal(parent)) && this[child]?.let { childClass -> isInheritFrom(childClass, parent) } ?: false - fun isInheritFrom(child: ClassNode, parent: String) = this[parent]?.let { parentClass -> + fun isInheritFrom(child: ClassFile, parent: String) = this[parent]?.let { parentClass -> isInheritFrom(child, parentClass) } ?: false - fun isInheritFromInterface(child: ClassNode, parent: ClassNode): Boolean { - if (parent.name in child.interfaces) { + fun isInheritFromInterface(child: ClassFile, parent: ClassFile): Boolean { + val interfaces = getInterfaces(child) + if (getClassName(parent) in interfaces) { return true } - return child.interfaces.any { itf -> + return interfaces.any { itf -> this[itf]?.let { isInheritFromInterface(it, parent) } ?: false } } - fun isInheritFromClass(child: ClassNode, parent: ClassNode): Boolean { - if (Objects.equals(child.superName, parent.name)) { + fun isInheritFromClass(child: ClassFile, parent: ClassFile): Boolean { + if (Objects.equals(getSuperName(child), getClassName(parent))) { return true } - if (null == child.superName - || Objects.equals(child.superName, parent.superName) - || Objects.equals(parent.superName, child.name)) { + if (null == getSuperName(child) + || Objects.equals(getSuperName(child), getSuperName(parent)) + || Objects.equals(getSuperName(parent), getClassName(child))) { return false } - return this[child.superName]?.let { + return this[getSuperName(child)]?.let { isInheritFromClass(it, parent) } ?: false } - fun getSuperClasses(clazz: ClassNode): Set { - if (clazz.superName == null) { - return emptySet() + fun getSuperClasses(clazz: ClassFile): Set { + if (getSuperName(clazz) == null) { + return emptySet() } - if (clazz.superName == JAVA_LANG_OBJECT) { - return setOf(this[clazz.superName]!!) + if (getSuperName(clazz) == JAVA_LANG_OBJECT) { + return setOf(this[getSuperName(clazz)]!!) } - val classes = mutableSetOf() - var parent = this[clazz.superName] + val classes = mutableSetOf() + var parent = this[getSuperName(clazz)] while (null != parent) { classes += parent - parent = parent.superName?.let { + parent = getSuperName(parent)?.let { this[it] } } diff --git a/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/ClassSet.kt b/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/ClassSet.kt index c7b8bde04..6aa2680e3 100644 --- a/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/ClassSet.kt +++ b/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/ClassSet.kt @@ -2,39 +2,53 @@ package com.didiglobal.booster.cha import com.didiglobal.booster.kotlinx.isEmpty import com.didiglobal.booster.kotlinx.red -import org.objectweb.asm.tree.ClassNode import java.io.Closeable import java.io.File /** * @author johnsonlee */ -interface ClassSet : Set, Closeable { +interface ClassSet> : Set, Closeable { - operator fun get(name: String): ClassNode? + val parser: ClassParser - operator fun plus(classSet: ClassSet): ClassSet = of(this, classSet) + operator fun get(name: String): ClassFile? - fun contains(name: String): Boolean + operator fun plus(classSet: ClassSet): ClassSet = of(this, classSet) - fun load(): ClassSet + operator fun contains(name: String): Boolean + + override fun contains(element: ClassFile) = contains(parser.getClassName(element)) + + override fun containsAll(elements: Collection) = elements.all { + contains(parser.getClassName(it)) + } + + fun load(): ClassSet companion object { private val ARCHIVES = Regex("^(zip)|(jar)$", RegexOption.IGNORE_CASE) - fun from(file: File): ClassSet = when { - file.isDirectory -> DirectoryClassSet(file) - file.extension matches ARCHIVES -> ArchivedClassSet(file) + fun > from( + file: File, + parser: ClassParser + ): ClassSet = when { + file.isDirectory -> DirectoryClassSet(file, parser) + file.extension matches ARCHIVES -> ArchivedClassSet(file, parser) else -> { System.err.println(red("unsupported file: $file")) - EmptyClassSet() + EmptyClassSet(parser) } } - fun of(vararg classSets: ClassSet): ClassSet = of(classSets.asIterable()) + fun > of( + vararg classSets: ClassSet + ): ClassSet = of(classSets.asIterable()) - fun of(classSets: Iterable): ClassSet = when { + fun > of( + classSets: Iterable> + ): ClassSet = when { classSets.isEmpty() -> EmptyClassSet() classSets.count() == 1 -> classSets.first() else -> CompositeClassSet(classSets) @@ -44,4 +58,4 @@ interface ClassSet : Set, Closeable { } -fun Iterable.fold() = ClassSet.of(this) \ No newline at end of file +fun > Iterable>.fold() = ClassSet.of(this) \ No newline at end of file diff --git a/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/CompositeClassSet.kt b/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/CompositeClassSet.kt index 04845c2e4..7c2b0723d 100644 --- a/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/CompositeClassSet.kt +++ b/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/CompositeClassSet.kt @@ -3,7 +3,6 @@ package com.didiglobal.booster.cha import com.didiglobal.booster.kotlinx.NCPU import com.didiglobal.booster.kotlinx.parallelStream import com.didiglobal.booster.kotlinx.stream -import org.objectweb.asm.tree.ClassNode import java.util.Stack import java.util.concurrent.ConcurrentHashMap import java.util.concurrent.Executors @@ -12,12 +11,16 @@ import java.util.concurrent.TimeUnit /** * @author johnsonlee */ -internal class CompositeClassSet(private val classSets: Iterable) : AbstractClassSet() { +internal class CompositeClassSet>( + private val classSets: Iterable> +) : AbstractClassSet() { - private val cache = ConcurrentHashMap() + private val cache = ConcurrentHashMap() + + override val parser: ClassParser = classSets.first().parser override val size: Int by lazy { - classSets.sumBy(ClassSet::size) + classSets.sumBy(ClassSet::size) } override operator fun get(name: String) = cache[name] ?: this.classSets.find { @@ -28,16 +31,16 @@ internal class CompositeClassSet(private val classSets: Iterable) : Ab override fun contains(name: String) = this.classSets.any { it.contains(name) } - override fun contains(element: ClassNode) = this.classSets.any { it.contains(element) } + override fun contains(element: ClassFile) = this.classSets.any { it.contains(element) } - override fun containsAll(elements: Collection) = this.classSets.any { it.containsAll(elements) } + override fun containsAll(elements: Collection) = this.classSets.any { it.containsAll(elements) } override fun isEmpty() = this.size <= 0 - override fun load(): CompositeClassSet { - val count: (ClassSet) -> Int = { + override fun load(): CompositeClassSet { + val count: (ClassSet) -> Int = { var n = 1 - val stack = Stack() + val stack = Stack>() stack.push(this) @@ -57,7 +60,7 @@ internal class CompositeClassSet(private val classSets: Iterable) : Ab classSets.map { cs -> executor.submit { cs.load().forEach { - this.cache.putIfAbsent(it.name, it) + this.cache.putIfAbsent(parser.getClassName(it), it) } } }.forEach { @@ -71,20 +74,20 @@ internal class CompositeClassSet(private val classSets: Iterable) : Ab return this } - override fun iterator() = when (this.cache.size) { + override fun iterator(): Iterator = when (this.cache.size) { this.size -> this.cache.values.iterator() - else -> object : Iterator { - val delegate = classSets.stream().flatMap(ClassSet::stream).iterator() + else -> object : Iterator { + val delegate = classSets.stream().flatMap(ClassSet::stream).iterator() override fun hasNext() = delegate.hasNext() override fun next() = delegate.next().apply { - cache.putIfAbsent(name, this) + cache.putIfAbsent(parser.getClassName(this), this) } } } - override fun close() = this.classSets.parallelStream().forEach(ClassSet::close) + override fun close() = this.classSets.parallelStream().forEach(ClassSet::close) override fun toString() = this.classSets.joinToString(", ", "{ ", " }") diff --git a/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/DirectoryClassSet.kt b/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/DirectoryClassSet.kt index 3e66934a3..6d715555a 100644 --- a/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/DirectoryClassSet.kt +++ b/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/DirectoryClassSet.kt @@ -2,8 +2,6 @@ package com.didiglobal.booster.cha import com.didiglobal.booster.kotlinx.green import com.didiglobal.booster.kotlinx.search -import com.didiglobal.booster.transform.asm.asClassNode -import org.objectweb.asm.tree.ClassNode import java.io.File import java.io.FileNotFoundException import java.util.stream.Collectors.toMap @@ -13,19 +11,22 @@ private val CLASS_FILE_FILTER = { file: File -> file.extension.equals("class", t /** * @author johnsonlee */ -internal class DirectoryClassSet(val location: File) : AbstractClassSet() { +internal class DirectoryClassSet>( + val location: File, + override val parser: ClassParser +) : AbstractClassSet() { - private val classes: Map by lazy { + private val classes: Map by lazy { location.search(CLASS_FILE_FILTER).parallelStream() - .map(File::asClassNode) - .collect(toMap(ClassNode::name) { it }) + .map(parser::parse) + .collect(toMap(parser::getClassName) { it }) } - constructor(location: String) : this(File(location).takeIf { + constructor(location: String, parser: ClassParser) : this(File(location).takeIf { it.exists() - } ?: throw FileNotFoundException(location)) + } ?: throw FileNotFoundException(location), parser) - override fun get(name: String) = this.classes[name] + override fun get(name: String): ClassFile? = this.classes[name] override fun contains(name: String) = this.classes.containsKey(name) @@ -34,12 +35,12 @@ internal class DirectoryClassSet(val location: File) : AbstractClassSet() { override fun isEmpty() = this.size <= 0 - override fun load(): DirectoryClassSet { + override fun load(): DirectoryClassSet { println("Load ${green(this.classes.size)} classes from $location") return this } - override fun iterator(): Iterator = this.classes.values.iterator() + override fun iterator(): Iterator = this.classes.values.iterator() override fun toString(): String = this.location.canonicalPath diff --git a/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/EmptyClassSet.kt b/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/EmptyClassSet.kt index 106eb7d06..c4d3cba64 100644 --- a/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/EmptyClassSet.kt +++ b/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/EmptyClassSet.kt @@ -1,25 +1,26 @@ package com.didiglobal.booster.cha -import org.objectweb.asm.tree.ClassNode - /** * @author johnsonlee */ -internal class EmptyClassSet : AbstractClassSet() { +@Suppress("UNCHECKED_CAST") +internal class EmptyClassSet>( + override val parser: ClassParser = NullClassFileParser as ClassParser +) : AbstractClassSet() { override val size: Int = 0 override fun isEmpty() = true - override fun get(name: String): ClassNode? = null + override fun get(name: String): ClassFile? = null override fun contains(name: String) = false - override fun contains(element: ClassNode) = false + override fun contains(element: ClassFile) = false - override fun containsAll(elements: Collection) = false + override fun containsAll(elements: Collection) = false - override fun iterator() = object : Iterator { + override fun iterator() = object : Iterator { override fun hasNext() = false diff --git a/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/NullClassFileParser.kt b/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/NullClassFileParser.kt new file mode 100644 index 000000000..bc8681cdc --- /dev/null +++ b/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/NullClassFileParser.kt @@ -0,0 +1,13 @@ +package com.didiglobal.booster.cha + +import java.io.File +import java.io.InputStream + +internal object NullClassFileParser : ClassFileParser { + override fun parse(file: File): Any? = null + override fun getClassName(classNode: Any?): String = "" + override fun parse(input: InputStream): Any? = null + override fun getSuperName(classNode: Any?): String? = null + override fun getInterfaces(classNode: Any?): Array = emptyArray() + override fun getAccessFlags(classNode: Any?): Int = 0 +} \ No newline at end of file diff --git a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/Analyser.kt b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/Analyser.kt index e63917f4d..f65176650 100644 --- a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/Analyser.kt +++ b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/Analyser.kt @@ -55,9 +55,13 @@ class Analyser( private val properties: Map = emptyMap() ) { - private val providedClasses = providedClasspath.map(ClassSet.Companion::from).fold() + private val providedClasses = providedClasspath.map { + ClassSet.from(it, AsmClassFileParser) + }.fold() - private val compileClasses = compileClasspath.map(ClassSet.Companion::from).fold() + private val compileClasses = compileClasspath.map { + ClassSet.from(it, AsmClassFileParser) + }.fold() private val classes = providedClasses + compileClasses diff --git a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/AsmClassFileParser.kt b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/AsmClassFileParser.kt new file mode 100644 index 000000000..87d228ad5 --- /dev/null +++ b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/AsmClassFileParser.kt @@ -0,0 +1,22 @@ +package com.didiglobal.booster.task.analyser + +import com.didiglobal.booster.cha.ClassFileParser +import com.didiglobal.booster.transform.asm.asClassNode +import org.objectweb.asm.tree.ClassNode +import java.io.InputStream + +internal object AsmClassFileParser : ClassFileParser { + + override fun parse(input: InputStream): ClassNode { + return input.asClassNode() + } + + override fun getClassName(classNode: ClassNode): String = classNode.name + + override fun getSuperName(classNode: ClassNode): String? = classNode.superName + + override fun getInterfaces(classNode: ClassNode): Array = classNode.interfaces.toTypedArray() + + override fun getAccessFlags(classNode: ClassNode): Int = classNode.access + +} \ No newline at end of file From 2c86d24240764d16aa7f6d01314d5fdd5d9ae167 Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Thu, 22 Jul 2021 00:30:59 +0800 Subject: [PATCH 066/187] Update auto-service version to 1.0 --- booster-api/build.gradle | 2 +- booster-gradle-plugin/build.gradle | 2 +- booster-task-analyser/build.gradle | 2 +- booster-task-check-snapshot/build.gradle | 4 ++-- booster-task-compression-cwebp/build.gradle | 2 +- booster-task-compression-pngquant/build.gradle | 2 +- booster-task-compression-processed-res/build.gradle | 2 +- booster-task-compression/build.gradle | 2 +- booster-task-list-artifact/build.gradle | 4 ++-- booster-task-list-permission/build.gradle | 4 ++-- booster-task-list-shared-library/build.gradle | 4 ++-- booster-task-resource-deredundancy/build.gradle | 2 +- booster-transform-activity-thread/build.gradle | 2 +- booster-transform-asm/build.gradle | 6 +++--- booster-transform-br-inline/build.gradle | 2 +- booster-transform-finalizer-watchdog-daemon/build.gradle | 2 +- booster-transform-javassist/build.gradle | 4 ++-- booster-transform-logcat/build.gradle | 2 +- booster-transform-media-player/build.gradle | 2 +- booster-transform-r-inline/build.gradle | 2 +- booster-transform-res-check/build.gradle | 2 +- booster-transform-shared-preferences/build.gradle | 2 +- booster-transform-thread/build.gradle | 2 +- booster-transform-toast/build.gradle | 2 +- booster-transform-usage/build.gradle | 2 +- booster-transform-webview/build.gradle | 2 +- settings.gradle | 1 + 27 files changed, 34 insertions(+), 33 deletions(-) diff --git a/booster-api/build.gradle b/booster-api/build.gradle index 8f7e2d9bb..cc1d3db16 100644 --- a/booster-api/build.gradle +++ b/booster-api/build.gradle @@ -6,7 +6,7 @@ dependencies { api project(':booster-transform-spi') api project(':booster-transform-util') api gradleApi() - api 'com.google.auto.service:auto-service:1.0-rc6' + api 'com.google.auto.service:auto-service:1.0' compileOnly 'com.android.tools.build:gradle:4.0.0' testCompileOnly 'com.android.tools.build:gradle:4.0.0' } diff --git a/booster-gradle-plugin/build.gradle b/booster-gradle-plugin/build.gradle index af5457a81..7ac985ecc 100644 --- a/booster-gradle-plugin/build.gradle +++ b/booster-gradle-plugin/build.gradle @@ -1,7 +1,7 @@ apply from: "$rootDir/gradle/booster.gradle" dependencies { - kapt 'com.google.auto.service:auto-service:1.0-rc6' + kapt 'com.google.auto.service:auto-service:1.0' api gradleApi() api project(':booster-annotations') api project(':booster-api') diff --git a/booster-task-analyser/build.gradle b/booster-task-analyser/build.gradle index 80dbd7987..e1edd8403 100644 --- a/booster-task-analyser/build.gradle +++ b/booster-task-analyser/build.gradle @@ -1,7 +1,7 @@ apply from: "$rootDir/gradle/booster.gradle" dependencies { - kapt "com.google.auto.service:auto-service:1.0-rc6" + kapt "com.google.auto.service:auto-service:1.0" implementation project(':booster-aapt2') implementation project(':booster-api') implementation project(':booster-cha') diff --git a/booster-task-check-snapshot/build.gradle b/booster-task-check-snapshot/build.gradle index 3d9f98934..0afb3ba9b 100644 --- a/booster-task-check-snapshot/build.gradle +++ b/booster-task-check-snapshot/build.gradle @@ -1,8 +1,8 @@ apply from: "$rootDir/gradle/booster.gradle" dependencies { - kapt "com.google.auto.service:auto-service:1.0-rc6" - implementation 'com.google.auto.service:auto-service:1.0-rc6' + kapt "com.google.auto.service:auto-service:1.0" + implementation 'com.google.auto.service:auto-service:1.0' implementation project(':booster-api') compileOnly 'com.android.tools.build:gradle:4.0.0' testCompileOnly 'com.android.tools.build:gradle:4.0.0' diff --git a/booster-task-compression-cwebp/build.gradle b/booster-task-compression-cwebp/build.gradle index 9df36defb..42eaccc1b 100644 --- a/booster-task-compression-cwebp/build.gradle +++ b/booster-task-compression-cwebp/build.gradle @@ -1,7 +1,7 @@ apply from: "$rootDir/gradle/booster.gradle" dependencies { - kapt "com.google.auto.service:auto-service:1.0-rc6" + kapt "com.google.auto.service:auto-service:1.0" implementation project(':booster-task-compression') compileOnly 'com.android.tools.build:gradle:4.0.0' compileOnly 'com.android.tools.build:builder:4.0.0' diff --git a/booster-task-compression-pngquant/build.gradle b/booster-task-compression-pngquant/build.gradle index 4581f8a7d..bdcc99529 100644 --- a/booster-task-compression-pngquant/build.gradle +++ b/booster-task-compression-pngquant/build.gradle @@ -1,7 +1,7 @@ apply from: "$rootDir/gradle/booster.gradle" dependencies { - kapt "com.google.auto.service:auto-service:1.0-rc6" + kapt "com.google.auto.service:auto-service:1.0" implementation project(':booster-annotations') implementation project(':booster-task-compression') compileOnly 'com.android.tools.build:gradle:4.0.0' diff --git a/booster-task-compression-processed-res/build.gradle b/booster-task-compression-processed-res/build.gradle index 9df36defb..42eaccc1b 100644 --- a/booster-task-compression-processed-res/build.gradle +++ b/booster-task-compression-processed-res/build.gradle @@ -1,7 +1,7 @@ apply from: "$rootDir/gradle/booster.gradle" dependencies { - kapt "com.google.auto.service:auto-service:1.0-rc6" + kapt "com.google.auto.service:auto-service:1.0" implementation project(':booster-task-compression') compileOnly 'com.android.tools.build:gradle:4.0.0' compileOnly 'com.android.tools.build:builder:4.0.0' diff --git a/booster-task-compression/build.gradle b/booster-task-compression/build.gradle index 1b5b31253..fe3f6b7ae 100644 --- a/booster-task-compression/build.gradle +++ b/booster-task-compression/build.gradle @@ -1,7 +1,7 @@ apply from: "$rootDir/gradle/booster.gradle" dependencies { - kapt "com.google.auto.service:auto-service:1.0-rc6" + kapt "com.google.auto.service:auto-service:1.0" api project(':booster-aapt2') api project(':booster-api') api project(':booster-command') diff --git a/booster-task-list-artifact/build.gradle b/booster-task-list-artifact/build.gradle index 3d9f98934..0afb3ba9b 100644 --- a/booster-task-list-artifact/build.gradle +++ b/booster-task-list-artifact/build.gradle @@ -1,8 +1,8 @@ apply from: "$rootDir/gradle/booster.gradle" dependencies { - kapt "com.google.auto.service:auto-service:1.0-rc6" - implementation 'com.google.auto.service:auto-service:1.0-rc6' + kapt "com.google.auto.service:auto-service:1.0" + implementation 'com.google.auto.service:auto-service:1.0' implementation project(':booster-api') compileOnly 'com.android.tools.build:gradle:4.0.0' testCompileOnly 'com.android.tools.build:gradle:4.0.0' diff --git a/booster-task-list-permission/build.gradle b/booster-task-list-permission/build.gradle index 3d9f98934..0afb3ba9b 100644 --- a/booster-task-list-permission/build.gradle +++ b/booster-task-list-permission/build.gradle @@ -1,8 +1,8 @@ apply from: "$rootDir/gradle/booster.gradle" dependencies { - kapt "com.google.auto.service:auto-service:1.0-rc6" - implementation 'com.google.auto.service:auto-service:1.0-rc6' + kapt "com.google.auto.service:auto-service:1.0" + implementation 'com.google.auto.service:auto-service:1.0' implementation project(':booster-api') compileOnly 'com.android.tools.build:gradle:4.0.0' testCompileOnly 'com.android.tools.build:gradle:4.0.0' diff --git a/booster-task-list-shared-library/build.gradle b/booster-task-list-shared-library/build.gradle index 3d9f98934..0afb3ba9b 100644 --- a/booster-task-list-shared-library/build.gradle +++ b/booster-task-list-shared-library/build.gradle @@ -1,8 +1,8 @@ apply from: "$rootDir/gradle/booster.gradle" dependencies { - kapt "com.google.auto.service:auto-service:1.0-rc6" - implementation 'com.google.auto.service:auto-service:1.0-rc6' + kapt "com.google.auto.service:auto-service:1.0" + implementation 'com.google.auto.service:auto-service:1.0' implementation project(':booster-api') compileOnly 'com.android.tools.build:gradle:4.0.0' testCompileOnly 'com.android.tools.build:gradle:4.0.0' diff --git a/booster-task-resource-deredundancy/build.gradle b/booster-task-resource-deredundancy/build.gradle index 9df36defb..42eaccc1b 100644 --- a/booster-task-resource-deredundancy/build.gradle +++ b/booster-task-resource-deredundancy/build.gradle @@ -1,7 +1,7 @@ apply from: "$rootDir/gradle/booster.gradle" dependencies { - kapt "com.google.auto.service:auto-service:1.0-rc6" + kapt "com.google.auto.service:auto-service:1.0" implementation project(':booster-task-compression') compileOnly 'com.android.tools.build:gradle:4.0.0' compileOnly 'com.android.tools.build:builder:4.0.0' diff --git a/booster-transform-activity-thread/build.gradle b/booster-transform-activity-thread/build.gradle index bca8e9a4d..463c7385e 100644 --- a/booster-transform-activity-thread/build.gradle +++ b/booster-transform-activity-thread/build.gradle @@ -1,7 +1,7 @@ apply from: "$rootDir/gradle/booster.gradle" dependencies { - kapt "com.google.auto.service:auto-service:1.0-rc6" + kapt "com.google.auto.service:auto-service:1.0" implementation project(':booster-api') implementation project(':booster-transform-asm') compileOnly 'com.android.tools.build:gradle:4.0.0' diff --git a/booster-transform-asm/build.gradle b/booster-transform-asm/build.gradle index 50e3fd1f8..2d86165d2 100644 --- a/booster-transform-asm/build.gradle +++ b/booster-transform-asm/build.gradle @@ -1,8 +1,8 @@ apply from: "$rootDir/gradle/booster.gradle" dependencies { - kapt "com.google.auto.service:auto-service:1.0-rc6" - kaptTest 'com.google.auto.service:auto-service:1.0-rc6' + kapt "com.google.auto.service:auto-service:1.0" + kaptTest 'com.google.auto.service:auto-service:1.0' api project(':booster-annotations') api project(':booster-transform-util') api 'org.ow2.asm:asm:7.1' @@ -10,5 +10,5 @@ dependencies { api 'org.ow2.asm:asm-commons:7.1' api 'org.ow2.asm:asm-tree:7.1' api 'org.ow2.asm:asm-util:7.1' - api 'com.google.auto.service:auto-service:1.0-rc6' + api 'com.google.auto.service:auto-service:1.0' } diff --git a/booster-transform-br-inline/build.gradle b/booster-transform-br-inline/build.gradle index 2960623a6..65ef172f3 100644 --- a/booster-transform-br-inline/build.gradle +++ b/booster-transform-br-inline/build.gradle @@ -1,7 +1,7 @@ apply from: "$rootDir/gradle/booster.gradle" dependencies { - kapt "com.google.auto.service:auto-service:1.0-rc6" + kapt "com.google.auto.service:auto-service:1.0" implementation project(':booster-aapt2') implementation project(':booster-api') implementation project(':booster-transform-asm') diff --git a/booster-transform-finalizer-watchdog-daemon/build.gradle b/booster-transform-finalizer-watchdog-daemon/build.gradle index bca8e9a4d..463c7385e 100644 --- a/booster-transform-finalizer-watchdog-daemon/build.gradle +++ b/booster-transform-finalizer-watchdog-daemon/build.gradle @@ -1,7 +1,7 @@ apply from: "$rootDir/gradle/booster.gradle" dependencies { - kapt "com.google.auto.service:auto-service:1.0-rc6" + kapt "com.google.auto.service:auto-service:1.0" implementation project(':booster-api') implementation project(':booster-transform-asm') compileOnly 'com.android.tools.build:gradle:4.0.0' diff --git a/booster-transform-javassist/build.gradle b/booster-transform-javassist/build.gradle index f5fc809d3..bd53171d3 100644 --- a/booster-transform-javassist/build.gradle +++ b/booster-transform-javassist/build.gradle @@ -1,11 +1,11 @@ apply from: "$rootDir/gradle/booster.gradle" dependencies { - kapt "com.google.auto.service:auto-service:1.0-rc6" + kapt "com.google.auto.service:auto-service:1.0" api project(':booster-annotations') api project(':booster-build') api project(':booster-transform-spi') api project(':booster-transform-util') api 'org.javassist:javassist:3.25.0-GA' - api 'com.google.auto.service:auto-service:1.0-rc6' + api 'com.google.auto.service:auto-service:1.0' } diff --git a/booster-transform-logcat/build.gradle b/booster-transform-logcat/build.gradle index bca8e9a4d..463c7385e 100644 --- a/booster-transform-logcat/build.gradle +++ b/booster-transform-logcat/build.gradle @@ -1,7 +1,7 @@ apply from: "$rootDir/gradle/booster.gradle" dependencies { - kapt "com.google.auto.service:auto-service:1.0-rc6" + kapt "com.google.auto.service:auto-service:1.0" implementation project(':booster-api') implementation project(':booster-transform-asm') compileOnly 'com.android.tools.build:gradle:4.0.0' diff --git a/booster-transform-media-player/build.gradle b/booster-transform-media-player/build.gradle index bca8e9a4d..463c7385e 100644 --- a/booster-transform-media-player/build.gradle +++ b/booster-transform-media-player/build.gradle @@ -1,7 +1,7 @@ apply from: "$rootDir/gradle/booster.gradle" dependencies { - kapt "com.google.auto.service:auto-service:1.0-rc6" + kapt "com.google.auto.service:auto-service:1.0" implementation project(':booster-api') implementation project(':booster-transform-asm') compileOnly 'com.android.tools.build:gradle:4.0.0' diff --git a/booster-transform-r-inline/build.gradle b/booster-transform-r-inline/build.gradle index 2960623a6..65ef172f3 100644 --- a/booster-transform-r-inline/build.gradle +++ b/booster-transform-r-inline/build.gradle @@ -1,7 +1,7 @@ apply from: "$rootDir/gradle/booster.gradle" dependencies { - kapt "com.google.auto.service:auto-service:1.0-rc6" + kapt "com.google.auto.service:auto-service:1.0" implementation project(':booster-aapt2') implementation project(':booster-api') implementation project(':booster-transform-asm') diff --git a/booster-transform-res-check/build.gradle b/booster-transform-res-check/build.gradle index bca8e9a4d..463c7385e 100644 --- a/booster-transform-res-check/build.gradle +++ b/booster-transform-res-check/build.gradle @@ -1,7 +1,7 @@ apply from: "$rootDir/gradle/booster.gradle" dependencies { - kapt "com.google.auto.service:auto-service:1.0-rc6" + kapt "com.google.auto.service:auto-service:1.0" implementation project(':booster-api') implementation project(':booster-transform-asm') compileOnly 'com.android.tools.build:gradle:4.0.0' diff --git a/booster-transform-shared-preferences/build.gradle b/booster-transform-shared-preferences/build.gradle index bca8e9a4d..463c7385e 100644 --- a/booster-transform-shared-preferences/build.gradle +++ b/booster-transform-shared-preferences/build.gradle @@ -1,7 +1,7 @@ apply from: "$rootDir/gradle/booster.gradle" dependencies { - kapt "com.google.auto.service:auto-service:1.0-rc6" + kapt "com.google.auto.service:auto-service:1.0" implementation project(':booster-api') implementation project(':booster-transform-asm') compileOnly 'com.android.tools.build:gradle:4.0.0' diff --git a/booster-transform-thread/build.gradle b/booster-transform-thread/build.gradle index bca8e9a4d..463c7385e 100644 --- a/booster-transform-thread/build.gradle +++ b/booster-transform-thread/build.gradle @@ -1,7 +1,7 @@ apply from: "$rootDir/gradle/booster.gradle" dependencies { - kapt "com.google.auto.service:auto-service:1.0-rc6" + kapt "com.google.auto.service:auto-service:1.0" implementation project(':booster-api') implementation project(':booster-transform-asm') compileOnly 'com.android.tools.build:gradle:4.0.0' diff --git a/booster-transform-toast/build.gradle b/booster-transform-toast/build.gradle index bca8e9a4d..463c7385e 100644 --- a/booster-transform-toast/build.gradle +++ b/booster-transform-toast/build.gradle @@ -1,7 +1,7 @@ apply from: "$rootDir/gradle/booster.gradle" dependencies { - kapt "com.google.auto.service:auto-service:1.0-rc6" + kapt "com.google.auto.service:auto-service:1.0" implementation project(':booster-api') implementation project(':booster-transform-asm') compileOnly 'com.android.tools.build:gradle:4.0.0' diff --git a/booster-transform-usage/build.gradle b/booster-transform-usage/build.gradle index 9b61f328e..08b4feb76 100644 --- a/booster-transform-usage/build.gradle +++ b/booster-transform-usage/build.gradle @@ -1,7 +1,7 @@ apply from: "$rootDir/gradle/booster.gradle" dependencies { - kapt "com.google.auto.service:auto-service:1.0-rc6" + kapt "com.google.auto.service:auto-service:1.0" api project(':booster-api') api project(':booster-transform-asm') } diff --git a/booster-transform-webview/build.gradle b/booster-transform-webview/build.gradle index bca8e9a4d..463c7385e 100644 --- a/booster-transform-webview/build.gradle +++ b/booster-transform-webview/build.gradle @@ -1,7 +1,7 @@ apply from: "$rootDir/gradle/booster.gradle" dependencies { - kapt "com.google.auto.service:auto-service:1.0-rc6" + kapt "com.google.auto.service:auto-service:1.0" implementation project(':booster-api') implementation project(':booster-transform-asm') compileOnly 'com.android.tools.build:gradle:4.0.0' diff --git a/settings.gradle b/settings.gradle index a1c2d4c40..742e318a4 100644 --- a/settings.gradle +++ b/settings.gradle @@ -46,6 +46,7 @@ include ':booster-transform-javassist' include ':booster-transform-logcat' include ':booster-transform-media-player' include ':booster-transform-res-check' +include ':booster-transform-service-loader' include ':booster-transform-shared-preferences' include ':booster-transform-r-inline' include ':booster-transform-spi' From 16a6a2fe52097c7248aa71f825939f2e60228c0e Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Wed, 11 Aug 2021 21:54:20 +0800 Subject: [PATCH 067/187] Fix GitHub workflow --- .github/workflows/publish.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 00313f2d4..7d9b911f4 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -10,7 +10,7 @@ on: jobs: publish: runs-on: ubuntu-latest - if: ${{ secrets.GPG_KEY_ARMOR != '' && secrets.GPG_KEY_ID != '' && secrets.GPG_PASSPHRASE != '' && secrets.OSSRH_PASSWORD != '' }} + if: github.repository == 'johnsonlee/booster' steps: - name: Checkout From 83f20f4db2a0fef0f628333e3e646517d8327818 Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Wed, 11 Aug 2021 22:34:00 +0800 Subject: [PATCH 068/187] Upgrade Apache common compression from 1.19 to 1.21 --- booster-transform-util/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/booster-transform-util/build.gradle b/booster-transform-util/build.gradle index 5d5afdbf1..da461fc19 100644 --- a/booster-transform-util/build.gradle +++ b/booster-transform-util/build.gradle @@ -3,7 +3,7 @@ apply from: "$rootDir/gradle/booster.gradle" dependencies { api project(':booster-transform-spi') api project(':booster-build') - api 'org.apache.commons:commons-compress:1.19' + api 'org.apache.commons:commons-compress:1.21' implementation 'org.eclipse.jgit:org.eclipse.jgit:5.10.0.202012080955-r' testImplementation project(':booster-transform-asm') } From a85ec4a9ed4be1e19ff97ef4ee45318799651d3c Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Wed, 11 Aug 2021 21:28:17 +0800 Subject: [PATCH 069/187] Release version 3.4.0 --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 6d4cfc334..8c63e0241 100644 --- a/build.gradle +++ b/build.gradle @@ -31,7 +31,7 @@ allprojects { project -> apply plugin: 'de.marcphilipp.nexus-publish' group = 'com.didiglobal.booster' - version = '3.3.1' + version = '3.4.0' repositories { mavenLocal() From 7625b123b4af31fdd27d181f5e8dbd2eac36e8e8 Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Fri, 23 Jul 2021 00:16:35 +0800 Subject: [PATCH 070/187] Add `booster-transform-service-loader` for `ServiceLoader` performance optimization --- .../didiglobal/booster/gradle/BaseVariant.kt | 11 +- .../didiglobal/booster/gradle/AGPInterface.kt | 2 + .../booster/android/gradle/v3_0/V30.kt | 3 + .../booster/android/gradle/v3_2/V32.kt | 3 + .../booster/android/gradle/v3_3/V33.kt | 3 + .../booster/android/gradle/v3_4/V34.kt | 3 + .../booster/android/gradle/v3_5/V35.kt | 3 + .../booster/android/gradle/v3_6/V36.kt | 3 + .../booster/android/gradle/v4_0/V40.kt | 3 + .../booster/android/gradle/v4_1/V41.kt | 3 + .../booster/android/gradle/v4_2/V42.kt | 3 + booster-transform-service-loader/README.md | 17 ++ booster-transform-service-loader/build.gradle | 9 + .../serviceloader/ServiceLoaderTransformer.kt | 176 ++++++++++++++++++ 14 files changed, 237 insertions(+), 5 deletions(-) create mode 100644 booster-transform-service-loader/README.md create mode 100644 booster-transform-service-loader/build.gradle create mode 100644 booster-transform-service-loader/src/main/kotlin/com/didiglobal/booster/transform/serviceloader/ServiceLoaderTransformer.kt diff --git a/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/BaseVariant.kt b/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/BaseVariant.kt index 1cc233242..ae0c4c177 100644 --- a/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/BaseVariant.kt +++ b/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/BaseVariant.kt @@ -44,38 +44,36 @@ val BaseVariant.dependencies: Collection /** * The `compileJava` task associates with this variant */ -@Suppress("DEPRECATION") val BaseVariant.javaCompilerTask: Task get() = AGP.run { javaCompilerTask } /** * The `preBuild` task associates with this variant */ -@Suppress("DEPRECATION") val BaseVariant.preBuildTask: Task get() = AGP.run { preBuildTask } /** * The `assemble` task associates with this variant */ -@Suppress("DEPRECATION") val BaseVariant.assembleTask: Task get() = AGP.run { assembleTask } /** * The `mergeAssets` task associates with this variant */ -@Suppress("DEPRECATION") val BaseVariant.mergeAssetsTask: Task get() = AGP.run { mergeAssetsTask } /** * The `mergeResources` task associates with this variant */ -@Suppress("DEPRECATION") val BaseVariant.mergeResourcesTask: Task get() = AGP.run { mergeResourcesTask } +val BaseVariant.processJavaResourcesTask: Task + get() = AGP.run { processJavaResourcesTask } + /** * The `processRes` task associates with this variant */ @@ -94,6 +92,9 @@ val BaseVariant.bundleResourcesTask: Task? val BaseVariant.packageBundleTask: Task? get() = project.tasks.findByName(getTaskName("package", "Bundle")) +val BaseVariant.mergeJavaResourceTask: Task? + get() = project.tasks.findByName(getTaskName("merge", "JavaResource")) + fun BaseVariant.getTaskName(prefix: String): String = AGP.run { getTaskName(prefix) } diff --git a/booster-android-gradle-compat/src/main/kotlin/com/didiglobal/booster/gradle/AGPInterface.kt b/booster-android-gradle-compat/src/main/kotlin/com/didiglobal/booster/gradle/AGPInterface.kt index 26c7a5b92..e0b20c798 100644 --- a/booster-android-gradle-compat/src/main/kotlin/com/didiglobal/booster/gradle/AGPInterface.kt +++ b/booster-android-gradle-compat/src/main/kotlin/com/didiglobal/booster/gradle/AGPInterface.kt @@ -42,6 +42,8 @@ interface AGPInterface { val BaseVariant.mergeResourcesTask: Task + val BaseVariant.processJavaResourcesTask: Task + fun BaseVariant.getTaskName(prefix: String): String fun BaseVariant.getTaskName(prefix: String, suffix: String): String diff --git a/booster-android-gradle-v3_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_0/V30.kt b/booster-android-gradle-v3_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_0/V30.kt index 4a38a9f9c..2550d4461 100644 --- a/booster-android-gradle-v3_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_0/V30.kt +++ b/booster-android-gradle-v3_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_0/V30.kt @@ -63,6 +63,9 @@ object V30 : AGPInterface { override val BaseVariant.mergeResourcesTask: Task get() = mergeResources + override val BaseVariant.processJavaResourcesTask: Task + get() = processJavaResources + override fun BaseVariant.getTaskName(prefix: String): String { return variantScope.getTaskName(prefix) } diff --git a/booster-android-gradle-v3_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_2/V32.kt b/booster-android-gradle-v3_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_2/V32.kt index 2495f0433..b885e0a53 100644 --- a/booster-android-gradle-v3_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_2/V32.kt +++ b/booster-android-gradle-v3_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_2/V32.kt @@ -77,6 +77,9 @@ object V32 : AGPInterface { override val BaseVariant.mergeResourcesTask: Task get() = mergeResources + override val BaseVariant.processJavaResourcesTask: Task + get() = processJavaResources + override fun BaseVariant.getTaskName(prefix: String): String { return variantScope.getTaskName(prefix) } diff --git a/booster-android-gradle-v3_3/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_3/V33.kt b/booster-android-gradle-v3_3/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_3/V33.kt index e1f11fb64..1d14c303c 100644 --- a/booster-android-gradle-v3_3/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_3/V33.kt +++ b/booster-android-gradle-v3_3/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_3/V33.kt @@ -73,6 +73,9 @@ object V33 : AGPInterface { override val BaseVariant.mergeResourcesTask: Task get() = mergeResourcesProvider.get() + override val BaseVariant.processJavaResourcesTask: Task + get() = processJavaResourcesProvider.get() + override fun BaseVariant.getTaskName(prefix: String): String { return variantScope.getTaskName(prefix) } diff --git a/booster-android-gradle-v3_4/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_4/V34.kt b/booster-android-gradle-v3_4/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_4/V34.kt index f82b275f1..7688dc80a 100644 --- a/booster-android-gradle-v3_4/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_4/V34.kt +++ b/booster-android-gradle-v3_4/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_4/V34.kt @@ -74,6 +74,9 @@ object V34 : AGPInterface { override val BaseVariant.mergeResourcesTask: Task get() = mergeResourcesProvider.get() + override val BaseVariant.processJavaResourcesTask: Task + get() = processJavaResourcesProvider.get() + override fun BaseVariant.getTaskName(prefix: String): String { return variantScope.getTaskName(prefix) } diff --git a/booster-android-gradle-v3_5/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_5/V35.kt b/booster-android-gradle-v3_5/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_5/V35.kt index f8acc6141..44c0a4b55 100644 --- a/booster-android-gradle-v3_5/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_5/V35.kt +++ b/booster-android-gradle-v3_5/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_5/V35.kt @@ -74,6 +74,9 @@ object V35 : AGPInterface { override val BaseVariant.mergeResourcesTask: Task get() = mergeResourcesProvider.get() + override val BaseVariant.processJavaResourcesTask: Task + get() = processJavaResourcesProvider.get() + override fun BaseVariant.getTaskName(prefix: String): String { return variantScope.getTaskName(prefix) } diff --git a/booster-android-gradle-v3_6/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_6/V36.kt b/booster-android-gradle-v3_6/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_6/V36.kt index e3b5e5ef0..ba6f18b00 100644 --- a/booster-android-gradle-v3_6/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_6/V36.kt +++ b/booster-android-gradle-v3_6/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_6/V36.kt @@ -78,6 +78,9 @@ object V36 : AGPInterface { override val BaseVariant.mergeResourcesTask: Task get() = mergeResourcesProvider.get() + override val BaseVariant.processJavaResourcesTask: Task + get() = processJavaResourcesProvider.get() + override fun BaseVariant.getTaskName(prefix: String): String { return variantScope.getTaskName(prefix) } diff --git a/booster-android-gradle-v4_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_0/V40.kt b/booster-android-gradle-v4_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_0/V40.kt index 12ef87152..e1639a461 100644 --- a/booster-android-gradle-v4_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_0/V40.kt +++ b/booster-android-gradle-v4_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_0/V40.kt @@ -74,6 +74,9 @@ object V40 : AGPInterface { override val BaseVariant.mergeResourcesTask: Task get() = mergeResourcesProvider.get() + override val BaseVariant.processJavaResourcesTask: Task + get() = processJavaResourcesProvider.get() + override fun BaseVariant.getTaskName(prefix: String): String { return variantScope.getTaskName(prefix) } diff --git a/booster-android-gradle-v4_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_1/V41.kt b/booster-android-gradle-v4_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_1/V41.kt index 6e30c0f2a..37f2bdf7c 100644 --- a/booster-android-gradle-v4_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_1/V41.kt +++ b/booster-android-gradle-v4_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_1/V41.kt @@ -87,6 +87,9 @@ object V41 : AGPInterface { override val BaseVariant.mergeResourcesTask: Task get() = mergeResourcesProvider.get() + override val BaseVariant.processJavaResourcesTask: Task + get() = processJavaResourcesProvider.get() + override fun BaseVariant.getTaskName(prefix: String): String { return componentProperties.computeTaskName(prefix) } diff --git a/booster-android-gradle-v4_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42.kt b/booster-android-gradle-v4_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42.kt index 701ee8ec3..ca9f3cac7 100644 --- a/booster-android-gradle-v4_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42.kt +++ b/booster-android-gradle-v4_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42.kt @@ -89,6 +89,9 @@ object V42 : AGPInterface { override val BaseVariant.mergeResourcesTask: Task get() = mergeResourcesProvider.get() + override val BaseVariant.processJavaResourcesTask: Task + get() = processJavaResourcesProvider.get() + override fun BaseVariant.getTaskName(prefix: String): String { return component.computeTaskName(prefix) } diff --git a/booster-transform-service-loader/README.md b/booster-transform-service-loader/README.md new file mode 100644 index 000000000..f114cedd2 --- /dev/null +++ b/booster-transform-service-loader/README.md @@ -0,0 +1,17 @@ +# booster-transform-service-loader + +This module is used for `ServiceLoader` optimization on Android, as we known, JDK provided `ServiceLoader` since Java 1.5, due the different implementation, using `ServiceLoader` on Android platform will cause performance issue, booster trying to fix this problem by manipulate the bytecode. + +Android R8 also provides `ServiceLoader` optimization, due to the compatibility issues, there are still some apps have not migrate from Proguard to R8, in this case, this module can be an alternative of R8. + +To enable `ServiceLoader` optimization, the invocation of `ServiceLoader` must be follow the following pattern: + +```java +ServiceLoader.load(Service.class).iterator() +``` + +After optimization, the code will be + +```java +Arrays.asList(new Service[] { new A(), new B() }).iterator() +``` diff --git a/booster-transform-service-loader/build.gradle b/booster-transform-service-loader/build.gradle new file mode 100644 index 000000000..463c7385e --- /dev/null +++ b/booster-transform-service-loader/build.gradle @@ -0,0 +1,9 @@ +apply from: "$rootDir/gradle/booster.gradle" + +dependencies { + kapt "com.google.auto.service:auto-service:1.0" + implementation project(':booster-api') + implementation project(':booster-transform-asm') + compileOnly 'com.android.tools.build:gradle:4.0.0' + testCompileOnly 'com.android.tools.build:gradle:4.0.0' +} diff --git a/booster-transform-service-loader/src/main/kotlin/com/didiglobal/booster/transform/serviceloader/ServiceLoaderTransformer.kt b/booster-transform-service-loader/src/main/kotlin/com/didiglobal/booster/transform/serviceloader/ServiceLoaderTransformer.kt new file mode 100644 index 000000000..a51f765b3 --- /dev/null +++ b/booster-transform-service-loader/src/main/kotlin/com/didiglobal/booster/transform/serviceloader/ServiceLoaderTransformer.kt @@ -0,0 +1,176 @@ +package com.didiglobal.booster.transform.serviceloader + +import com.didiglobal.booster.kotlinx.search +import com.didiglobal.booster.kotlinx.touch +import com.didiglobal.booster.transform.TransformContext +import com.didiglobal.booster.transform.asm.ClassTransformer +import com.didiglobal.booster.transform.asm.asIterable +import com.didiglobal.booster.transform.service.loader.Build +import com.google.auto.service.AutoService +import org.objectweb.asm.Opcodes +import org.objectweb.asm.Type +import org.objectweb.asm.tree.AbstractInsnNode +import org.objectweb.asm.tree.ClassNode +import org.objectweb.asm.tree.InsnList +import org.objectweb.asm.tree.InsnNode +import org.objectweb.asm.tree.LdcInsnNode +import org.objectweb.asm.tree.MethodInsnNode +import org.objectweb.asm.tree.MethodNode +import org.objectweb.asm.tree.TypeInsnNode +import org.objectweb.asm.tree.VarInsnNode +import java.io.File +import java.io.PrintWriter +import java.util.Locale +import java.util.zip.ZipEntry +import java.util.zip.ZipFile + +@AutoService(ClassTransformer::class) +class ServiceLoaderTransformer : ClassTransformer { + + private lateinit var logger: PrintWriter + private lateinit var services: Map> + + override val name: String = Build.ARTIFACT + + override fun onPreTransform(context: TransformContext) { + this.services = context.compileClasspath.map(File::services).flatten().toMap() + this.logger = getReport(context, "report.txt").touch().printWriter() + } + + override fun onPostTransform(context: TransformContext) { + this.logger.close() + } + + override fun transform(context: TransformContext, klass: ClassNode): ClassNode { + if (services.isNotEmpty()) { + klass.methods.forEach { method -> + method.instructions.asIterable() + .filterIsInstance() + .filter(::isServiceLoaderLoad) + .forEach { + when (it.desc) { + // java/util/ServiceLoader.load:(Ljava/lang/Class;)Ljava/util/ServiceLoader; + "(L${JAVA_LANG_CLASS};)L${JAVA_UTIL_SERVICE_LOADER};" -> transformServiceLoader(method, it, false) + // java/util/ServiceLoader.load:(Ljava/lang/Class;Ljava/lang/ClassLoader;)Ljava/util/ServiceLoader; + "(L${JAVA_LANG_CLASS};L${JAVA_LANG_CLASS_LOADER};)L${JAVA_UTIL_SERVICE_LOADER};" -> transformServiceLoader(method, it, true) + } + } + } + } + return klass + } + + /** + * ServiceLoader.load(Service.class, ...).iterator() => Arrays.asList(new Service[] { new A(), new B(), new C(), ...}).iterator() + */ + private fun transformServiceLoader(method: MethodNode, invoke: MethodInsnNode, hasClassLoader: Boolean) { + val service = ((invoke.previous as? LdcInsnNode)?.cst as? Type)?.className ?: return + val implementations = services[service]?.takeIf(Collection::isNotEmpty)?.map { + it.replace('.', '/') + } ?: return + + method.instructions.apply { + // consume the arguments of ServiceLoader.load(...) + insertBefore(invoke, InsnNode(if (hasClassLoader) Opcodes.POP2 else Opcodes.POP)) + insertBefore(invoke, InsnList().apply { + // array length + add(implementations.size.insn) + // new Service[] { ... } + add(TypeInsnNode(Opcodes.ANEWARRAY, service.replace('.', '/'))) + implementations.withIndex().forEach { (index, implementation) -> + /* dup */ add(InsnNode(Opcodes.DUP)) + /* iconst_x/bipush */ add(index.insn) + /* new */ add(TypeInsnNode(Opcodes.NEW, implementation)) + /* dup */ add(InsnNode(Opcodes.DUP)) + /* invokespecial */ add(MethodInsnNode(Opcodes.INVOKESPECIAL, implementation, "", "()V")) + /* aastore */ add(InsnNode(Opcodes.AASTORE)) + } + add(MethodInsnNode(Opcodes.INVOKESTATIC, JAVA_UTIL_ARRAYS, "asList", "([L${JAVA_LANG_OBJECT};)L${JAVA_UTIL_LIST};")) + }) + (invoke.next as MethodInsnNode).apply { + opcode = Opcodes.INVOKEINTERFACE + owner = JAVA_UTIL_LIST + itf = true + } + remove(invoke) + } + logger.println("* ${JAVA_UTIL_SERVICE_LOADER}.load(L${JAVA_LANG_CLASS};${ + if (hasClassLoader) "L${JAVA_LANG_CLASS_LOADER};" else "" + }) => ${JAVA_UTIL_ARRAYS}.asList(new ${service}[] {${implementations.joinToString(", ") { + "new ${it}()" + }})L${JAVA_UTIL_LIST};") + } + + + /** + * ldc #? // Class ... + * invokestatic #? // Method java/util/ServiceLoader.load:(Ljava/lang/Class;)Ljava/util/ServiceLoader; + * invokevirtual #? // Method java/util/ServiceLoader.iterator:()Ljava/util/Iterator; + */ + private fun isServiceLoaderLoad(invoke: MethodInsnNode): Boolean { + val prev = (invoke.previous as? LdcInsnNode) ?: return false + val next = invoke.next as? MethodInsnNode ?: return false + return invoke.opcode == Opcodes.INVOKESTATIC + && invoke.owner == JAVA_UTIL_SERVICE_LOADER + && invoke.name == "load" + && invoke.desc == "(L${JAVA_LANG_CLASS};)L${JAVA_UTIL_SERVICE_LOADER};" + && (prev.cst as? Type)?.className in services.keys + && next.owner == JAVA_UTIL_SERVICE_LOADER + && next.name == "iterator" + && next.desc == "()L${JAVA_UTIL_ITERATOR};" + } + +} + +private val Int.insn: AbstractInsnNode + get() = when (this) { + 0 -> InsnNode(Opcodes.ICONST_0) + 1 -> InsnNode(Opcodes.ICONST_1) + 2 -> InsnNode(Opcodes.ICONST_2) + 3 -> InsnNode(Opcodes.ICONST_3) + 4 -> InsnNode(Opcodes.ICONST_4) + 5 -> InsnNode(Opcodes.ICONST_5) + else -> VarInsnNode(Opcodes.BIPUSH, this) + } + +private val List.services: Set + get() = filter { line -> + line.startsWith("#") || line.isNotBlank() + }.map(String::trim).toSet() + +private val File.services: List>> + get() = when { + isDirectory -> search { + it.isFile && it.parentFile?.name == "services" && it.parentFile?.parentFile?.name == "META-INF" + }.map { spi -> + spi.name to spi.readLines().services + } + isFile -> when (extension.toLowerCase(Locale.getDefault())) { + "jar" -> ZipFile(this).use { zip -> + zip.entries() + .asSequence() + .toList() + .filterNot(ZipEntry::isDirectory) + .filter { + it.name.startsWith(SPI_PREFIX) && it.name.length > SPI_PREFIX.length + }.map { + it.name.substringAfter(SPI_PREFIX) to zip.getInputStream(it) + .bufferedReader().readLines().services + } + }.toList() + else -> emptyList() + } + else -> emptyList() + } + +private const val DIR_META_INF = "META-INF" +private const val DIR_SERVICES = "services" +private const val SPI_PREFIX = "${DIR_META_INF}/${DIR_SERVICES}/" + +private const val JAVA_LANG_CLASS = "java/lang/Class" +private const val JAVA_LANG_OBJECT = "java/lang/Object" +private const val JAVA_LANG_CLASS_LOADER = "java/lang/ClassLoader" +private const val JAVA_UTIL_ARRAYS = "java/util/Arrays" +private const val JAVA_UTIL_ITERATOR = "java/util/Iterator" +private const val JAVA_UTIL_LIST = "java/util/List" +private const val JAVA_UTIL_SERVICE_LOADER = "java/util/ServiceLoader" From 82fcc272a6f8ced032c3c82d3bc51b42a60ea1da Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Thu, 12 Aug 2021 21:53:05 +0800 Subject: [PATCH 071/187] Release version 3.5.0-alpha2 --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 8c63e0241..1c67baba4 100644 --- a/build.gradle +++ b/build.gradle @@ -31,7 +31,7 @@ allprojects { project -> apply plugin: 'de.marcphilipp.nexus-publish' group = 'com.didiglobal.booster' - version = '3.4.0' + version = '3.5.0-alpha2' repositories { mavenLocal() From 028cc714c1c09eda94af1ddc198f0d762452161e Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Tue, 17 Aug 2021 08:09:47 +0800 Subject: [PATCH 072/187] Release version 3.5.0 --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 1c67baba4..1294511bd 100644 --- a/build.gradle +++ b/build.gradle @@ -31,7 +31,7 @@ allprojects { project -> apply plugin: 'de.marcphilipp.nexus-publish' group = 'com.didiglobal.booster' - version = '3.5.0-alpha2' + version = '3.5.0' repositories { mavenLocal() From fe25888217b2472c32e21f037866e2fe7150ce1f Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Fri, 20 Aug 2021 23:18:25 +0800 Subject: [PATCH 073/187] [skip ci] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index d24a67f04..fa616c193 100644 --- a/README.md +++ b/README.md @@ -73,7 +73,7 @@ The best practise of using Booster is integrating the specific module to solve t ```groovy buildscript { - ext.booster_version = '3.3.1' + ext.booster_version = '3.5.0' repositories { google() mavenCentral() @@ -121,7 +121,7 @@ The `plugins` DSL also supported since Booster *3.0.0* ```groovy plugins { - id 'com.didiglobal.booster' version '3.3.1' + id 'com.didiglobal.booster' version '3.5.0' } ``` From 9ca38cce7616832193c687a4cf3c4ba1dff30830 Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Tue, 17 Aug 2021 00:12:38 +0800 Subject: [PATCH 074/187] Support AGP 7.0 --- booster-android-gradle-api/build.gradle | 6 +- .../didiglobal/booster/gradle/BaseVariant.kt | 203 +++++-- .../com/didiglobal/booster/gradle/Project.kt | 19 +- .../com/didiglobal/booster/gradle/Version.kt | 52 +- .../didiglobal/booster/gradle/AGPInterface.kt | 92 +++ .../booster/gradle/AGPInterfaceFactory.kt | 8 + booster-android-gradle-v3_0/README.md | 6 - booster-android-gradle-v3_0/build.gradle | 17 - .../android/gradle/v3_0/V30IntegrationTest.kt | 541 ------------------ .../src/integrationTest/resources/app.gradle | 62 -- .../booster/android/gradle/v3_0/V30.kt | 178 ------ booster-android-gradle-v3_2/README.md | 6 - booster-android-gradle-v3_2/build.gradle | 17 - .../resources/buildSrc/build.gradle | 26 - .../src/integrationTest/resources/lib.gradle | 59 -- .../resources/src/main/AndroidManifest.xml | 9 - .../booster/android/test/MainActivity.java | 6 - .../booster/android/test/TestApplication.java | 7 - .../resources/src/main/res/values/strings.xml | 4 - .../booster/android/gradle/v3_2/V32.kt | 192 ------- booster-android-gradle-v3_3/build.gradle | 2 + .../booster/android/gradle/v3_3/V33.kt | 51 +- .../booster/android/gradle/v3_3/V33Factory.kt | 15 + booster-android-gradle-v3_4/build.gradle | 2 + .../booster/android/gradle/v3_4/V34.kt | 52 +- .../booster/android/gradle/v3_4/V34Factory.kt | 15 + booster-android-gradle-v3_5/build.gradle | 2 + .../booster/android/gradle/v3_5/V35.kt | 51 +- .../booster/android/gradle/v3_5/V35Factory.kt | 15 + booster-android-gradle-v3_6/build.gradle | 2 + .../booster/android/gradle/v3_6/V36.kt | 52 +- .../booster/android/gradle/v3_6/V36Factory.kt | 15 + booster-android-gradle-v4_0/build.gradle | 2 + .../booster/android/gradle/v4_0/V40.kt | 51 +- .../booster/android/gradle/v4_0/V40Factory.kt | 15 + booster-android-gradle-v4_1/build.gradle | 2 + .../booster/android/gradle/v4_1/V41.kt | 65 ++- .../booster/android/gradle/v4_1/V41Factory.kt | 15 + booster-android-gradle-v4_2/build.gradle | 2 + .../booster/android/gradle/v4_2/V42.kt | 67 ++- .../booster/android/gradle/v4_2/V42Factory.kt | 15 + booster-android-gradle-v7_0/README.md | 6 + booster-android-gradle-v7_0/build.gradle | 27 + .../android/gradle/v7_0/V70IntegrationTest.kt | 57 +- .../src/integrationTest/resources/app.gradle | 2 +- .../resources/buildSrc/build.gradle | 2 +- .../src/integrationTest/resources/lib.gradle | 2 +- .../resources/src/main/AndroidManifest.xml | 0 .../booster/android/test/MainActivity.java | 0 .../booster/android/test/TestApplication.java | 0 .../resources/src/main/res/values/strings.xml | 0 .../booster/android/gradle/v7_0/V70.kt | 224 ++++++++ .../booster/android/gradle/v7_0/V70Factory.kt | 15 + .../booster/task/analyser/AnalyserTask.kt | 4 +- .../cwebp/CwebpCompressFlatImages.kt | 6 +- .../compression/cwebp/CwebpCompressImages.kt | 8 +- .../cwebp/CwebpCompressOpaqueFlatImages.kt | 2 +- .../cwebp/CwebpCompressOpaqueImages.kt | 2 +- .../cwebp/CwebpCompressionVariantProcessor.kt | 15 +- .../pngquant/PngquantCompressFlatImages.kt | 8 +- .../pngquant/PngquantCompressImages.kt | 8 +- .../PngquantCompressionVariantProcessor.kt | 26 +- ...sedResourcesCompressionVariantProcessor.kt | 10 +- .../compression/CompressionTaskCreator.kt | 18 +- .../SimpleCompressionTaskCreator.kt | 50 +- .../compression/task/CompressImages.kt | 18 +- .../deredundancy/RemoveRedundantFlatImages.kt | 9 +- .../deredundancy/RemoveRedundantImages.kt | 44 +- .../ResourceDeredundancyVariantProcessor.kt | 40 +- build.gradle | 2 +- settings.gradle | 3 +- 71 files changed, 1101 insertions(+), 1525 deletions(-) create mode 100644 booster-android-gradle-compat/src/main/kotlin/com/didiglobal/booster/gradle/AGPInterfaceFactory.kt delete mode 100644 booster-android-gradle-v3_0/README.md delete mode 100644 booster-android-gradle-v3_0/build.gradle delete mode 100644 booster-android-gradle-v3_0/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_0/V30IntegrationTest.kt delete mode 100644 booster-android-gradle-v3_0/src/integrationTest/resources/app.gradle delete mode 100644 booster-android-gradle-v3_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_0/V30.kt delete mode 100644 booster-android-gradle-v3_2/README.md delete mode 100644 booster-android-gradle-v3_2/build.gradle delete mode 100644 booster-android-gradle-v3_2/src/integrationTest/resources/buildSrc/build.gradle delete mode 100644 booster-android-gradle-v3_2/src/integrationTest/resources/lib.gradle delete mode 100644 booster-android-gradle-v3_2/src/integrationTest/resources/src/main/AndroidManifest.xml delete mode 100644 booster-android-gradle-v3_2/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/MainActivity.java delete mode 100644 booster-android-gradle-v3_2/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/TestApplication.java delete mode 100644 booster-android-gradle-v3_2/src/integrationTest/resources/src/main/res/values/strings.xml delete mode 100644 booster-android-gradle-v3_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_2/V32.kt create mode 100644 booster-android-gradle-v3_3/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_3/V33Factory.kt create mode 100644 booster-android-gradle-v3_4/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_4/V34Factory.kt create mode 100644 booster-android-gradle-v3_5/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_5/V35Factory.kt create mode 100644 booster-android-gradle-v3_6/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_6/V36Factory.kt create mode 100644 booster-android-gradle-v4_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_0/V40Factory.kt create mode 100644 booster-android-gradle-v4_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_1/V41Factory.kt create mode 100644 booster-android-gradle-v4_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42Factory.kt create mode 100644 booster-android-gradle-v7_0/README.md create mode 100644 booster-android-gradle-v7_0/build.gradle rename booster-android-gradle-v3_2/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_2/V32IntegrationTest.kt => booster-android-gradle-v7_0/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v7_0/V70IntegrationTest.kt (92%) rename {booster-android-gradle-v3_2 => booster-android-gradle-v7_0}/src/integrationTest/resources/app.gradle (99%) rename {booster-android-gradle-v3_0 => booster-android-gradle-v7_0}/src/integrationTest/resources/buildSrc/build.gradle (99%) rename {booster-android-gradle-v3_0 => booster-android-gradle-v7_0}/src/integrationTest/resources/lib.gradle (99%) rename {booster-android-gradle-v3_0 => booster-android-gradle-v7_0}/src/integrationTest/resources/src/main/AndroidManifest.xml (100%) rename {booster-android-gradle-v3_0 => booster-android-gradle-v7_0}/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/MainActivity.java (100%) rename {booster-android-gradle-v3_0 => booster-android-gradle-v7_0}/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/TestApplication.java (100%) rename {booster-android-gradle-v3_0 => booster-android-gradle-v7_0}/src/integrationTest/resources/src/main/res/values/strings.xml (100%) create mode 100644 booster-android-gradle-v7_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_0/V70.kt create mode 100644 booster-android-gradle-v7_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_0/V70Factory.kt diff --git a/booster-android-gradle-api/build.gradle b/booster-android-gradle-api/build.gradle index ec109dd4c..a13bc10c7 100644 --- a/booster-android-gradle-api/build.gradle +++ b/booster-android-gradle-api/build.gradle @@ -1,8 +1,8 @@ apply from: "$rootDir/gradle/booster.gradle" dependencies { - implementation project(':booster-android-gradle-v3_0') - implementation project(':booster-android-gradle-v3_2') + api project(':booster-kotlinx') + api project(':booster-android-gradle-compat') implementation project(':booster-android-gradle-v3_3') implementation project(':booster-android-gradle-v3_4') implementation project(':booster-android-gradle-v3_5') @@ -10,7 +10,7 @@ dependencies { implementation project(':booster-android-gradle-v4_0') implementation project(':booster-android-gradle-v4_1') implementation project(':booster-android-gradle-v4_2') - api project(':booster-kotlinx') + implementation project(':booster-android-gradle-v7_0') compileOnly 'com.android.tools.build:gradle:3.0.0' testCompileOnly 'com.android.tools.build:gradle:3.0.0' } diff --git a/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/BaseVariant.kt b/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/BaseVariant.kt index ae0c4c177..bc6698aa1 100644 --- a/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/BaseVariant.kt +++ b/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/BaseVariant.kt @@ -10,8 +10,11 @@ import com.android.sdklib.BuildToolInfo import org.gradle.api.Incubating import org.gradle.api.Project import org.gradle.api.Task +import org.gradle.api.UnknownTaskException import org.gradle.api.artifacts.ArtifactCollection import org.gradle.api.artifacts.result.ResolvedArtifactResult +import org.gradle.api.file.FileCollection +import org.gradle.api.tasks.TaskProvider import java.io.File /** @@ -19,7 +22,7 @@ import java.io.File */ @Suppress("DEPRECATION") val BaseVariant.project: Project - get() = AGP.run { globalScope }.project + get() = AGP.run { project } /** * The `android` extension associates with this variant @@ -41,59 +44,51 @@ val BaseVariant.platform: File val BaseVariant.dependencies: Collection get() = ResolvedArtifactResults(this) -/** - * The `compileJava` task associates with this variant - */ -val BaseVariant.javaCompilerTask: Task - get() = AGP.run { javaCompilerTask } +val BaseVariant.javaCompilerTaskProvider: TaskProvider + get() = AGP.run { javaCompilerTaskProvider } -/** - * The `preBuild` task associates with this variant - */ -val BaseVariant.preBuildTask: Task - get() = AGP.run { preBuildTask } +val BaseVariant.preBuildTaskProvider: TaskProvider + get() = AGP.run { preBuildTaskProvider } -/** - * The `assemble` task associates with this variant - */ -val BaseVariant.assembleTask: Task - get() = AGP.run { assembleTask } +val BaseVariant.assembleTaskProvider: TaskProvider + get() = AGP.run { assembleTaskProvider } -/** - * The `mergeAssets` task associates with this variant - */ -val BaseVariant.mergeAssetsTask: Task - get() = AGP.run { mergeAssetsTask } +val BaseVariant.mergeAssetsTaskProvider: TaskProvider + get() = AGP.run { mergeAssetsTaskProvider } -/** - * The `mergeResources` task associates with this variant - */ -val BaseVariant.mergeResourcesTask: Task - get() = AGP.run { mergeResourcesTask } +val BaseVariant.mergeResourcesTaskProvider: TaskProvider + get() = AGP.run { mergeResourcesTaskProvider } -val BaseVariant.processJavaResourcesTask: Task - get() = AGP.run { processJavaResourcesTask } +val BaseVariant.processJavaResourcesTaskProvider: TaskProvider + get() = AGP.run { processJavaResourcesTaskProvider } -/** - * The `processRes` task associates with this variant - */ -val BaseVariant.processResTask: ProcessAndroidResources? - get() = project.tasks.findByName(getTaskName("process", "Resources")) as? ProcessAndroidResources +val BaseVariant.processResTaskProvider: TaskProvider? + get() = try { + project.tasks.named(getTaskName("process", "Resources")) + } catch (e: UnknownTaskException) { + null + } -/** - * The `bundleResources` tasks associates with this variant - */ -val BaseVariant.bundleResourcesTask: Task? - get() = project.tasks.findByName(getTaskName("bundle", "Resources")) +val BaseVariant.bundleResourcesTaskProvider: TaskProvider? + get() = try { + project.tasks.named(getTaskName("bundle", "Resources")) + } catch (e: UnknownTaskException) { + null + } -/** - * The `packageBundle` tasks associates with this variant - */ -val BaseVariant.packageBundleTask: Task? - get() = project.tasks.findByName(getTaskName("package", "Bundle")) +val BaseVariant.packageBundleTaskProvider: TaskProvider? + get() = try { + project.tasks.named(getTaskName("package", "Bundle")) + } catch (e: UnknownTaskException) { + null + } -val BaseVariant.mergeJavaResourceTask: Task? - get() = project.tasks.findByName(getTaskName("merge", "JavaResource")) +val BaseVariant.mergeJavaResourceTaskProvider: TaskProvider? + get() = try { + project.tasks.named(getTaskName("merge", "JavaResource")) + } catch (e: UnknownTaskException) { + null + } fun BaseVariant.getTaskName(prefix: String): String = AGP.run { getTaskName(prefix) @@ -127,6 +122,15 @@ fun BaseVariant.getArtifactCollection( getArtifactCollection(configType, scope, artifactType) } +@Incubating +fun BaseVariant.getArtifactFileCollection( + configType: AndroidArtifacts.ConsumedConfigType, + scope: AndroidArtifacts.ArtifactScope, + artifactType: AndroidArtifacts.ArtifactType +): FileCollection = AGP.run { + getArtifactFileCollection(configType, scope, artifactType) +} + val BaseVariant.aar: Collection get() = AGP.run { aar @@ -199,3 +203,112 @@ val BaseVariant.buildTools: BuildToolInfo get() = AGP.run { buildTools } + +val BaseVariant.isPrecompileDependenciesResourcesEnabled: Boolean + get() = AGP.run { + isPrecompileDependenciesResourcesEnabled + } + +/** + * The `compileJava` task associates with this variant + */ +@Deprecated( + message = "Use javaCompilerTaskProvider instead", + replaceWith = ReplaceWith(expression = "javaCompilerTaskProvider"), + level = DeprecationLevel.WARNING +) +val BaseVariant.javaCompilerTask: Task + get() = AGP.run { javaCompilerTask } + +/** + * The `preBuild` task associates with this variant + */ +@Deprecated( + message = "Use preBuildTaskProvider instead", + replaceWith = ReplaceWith(expression = "preBuildTaskProvider"), + level = DeprecationLevel.WARNING +) +val BaseVariant.preBuildTask: Task + get() = AGP.run { preBuildTask } + +/** + * The `assemble` task associates with this variant + */ +@Deprecated( + message = "Use assembleTaskProvider instead", + replaceWith = ReplaceWith(expression = "assembleTaskProvider"), + level = DeprecationLevel.WARNING +) +val BaseVariant.assembleTask: Task + get() = AGP.run { assembleTask } + +/** + * The `mergeAssets` task associates with this variant + */ +@Deprecated( + message = "Use mergeAssetsTaskProvider instead", + replaceWith = ReplaceWith(expression = "mergeAssetsTaskProvider"), + level = DeprecationLevel.WARNING +) +val BaseVariant.mergeAssetsTask: Task + get() = AGP.run { mergeAssetsTask } + +/** + * The `mergeResources` task associates with this variant + */ +@Deprecated( + message = "Use mergeResourcesTaskProvider instead", + replaceWith = ReplaceWith(expression = "mergeResourcesTaskProvider"), + level = DeprecationLevel.WARNING +) +val BaseVariant.mergeResourcesTask: Task + get() = AGP.run { mergeResourcesTask } + +@Deprecated( + message = "Use processJavaResourcesTaskProvider instead", + replaceWith = ReplaceWith(expression = "processJavaResourcesTaskProvider"), + level = DeprecationLevel.WARNING +) +val BaseVariant.processJavaResourcesTask: Task + get() = AGP.run { processJavaResourcesTask } + +/** + * The `processRes` task associates with this variant + */ +@Deprecated( + message = "Use processResTaskProvider instead", + replaceWith = ReplaceWith(expression = "processResTaskProvider"), + level = DeprecationLevel.WARNING +) +val BaseVariant.processResTask: ProcessAndroidResources? + get() = project.tasks.findByName(getTaskName("process", "Resources")) as? ProcessAndroidResources + +/** + * The `bundleResources` tasks associates with this variant + */ +@Deprecated( + message = "Use bundleResourcesTaskProvider instead", + replaceWith = ReplaceWith(expression = "bundleResourcesTaskProvider"), + level = DeprecationLevel.WARNING +) +val BaseVariant.bundleResourcesTask: Task? + get() = project.tasks.findByName(getTaskName("bundle", "Resources")) + +/** + * The `packageBundle` tasks associates with this variant + */ +@Deprecated( + message = "Use packageBundleTaskProvider instead", + replaceWith = ReplaceWith(expression = "packageBundleTaskProvider"), + level = DeprecationLevel.WARNING +) +val BaseVariant.packageBundleTask: Task? + get() = project.tasks.findByName(getTaskName("package", "Bundle")) + +@Deprecated( + message = "Use mergeJavaResourceTaskProvider instead", + replaceWith = ReplaceWith(expression = "mergeJavaResourceTaskProvider"), + level = DeprecationLevel.WARNING +) +val BaseVariant.mergeJavaResourceTask: Task? + get() = project.tasks.findByName(getTaskName("merge", "JavaResource")) diff --git a/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/Project.kt b/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/Project.kt index a2afa4c86..a706a0a8a 100644 --- a/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/Project.kt +++ b/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/Project.kt @@ -1,24 +1,25 @@ package com.didiglobal.booster.gradle -import com.android.build.gradle.BaseExtension import com.android.repository.Revision import org.gradle.api.Project -/** - * Returns android extension - * - * @author johnsonlee - */ -inline fun Project.getAndroid(): T = extensions.getByName("android") as T - /** * The gradle version */ val Project.gradleVersion: Revision get() = Revision.parseRevision(gradle.gradleVersion) +@Deprecated( + message = "Use isAapt2Enabled instead", + replaceWith = ReplaceWith( + expression = "isAapt2Enabled" + ) +) val Project.aapt2Enabled: Boolean - get() = AGP.run { aapt2Enabled } + get() = AGP.run { isAapt2Enabled } + +val Project.isAapt2Enabled: Boolean + get() = AGP.run { isAapt2Enabled } @Suppress("UNCHECKED_CAST") fun Project.getProperty(name: String, defaultValue: T): T { diff --git a/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/Version.kt b/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/Version.kt index 33d03de72..4c920fea4 100644 --- a/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/Version.kt +++ b/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/Version.kt @@ -1,41 +1,15 @@ package com.didiglobal.booster.gradle -import com.android.builder.model.Version -import com.android.repository.Revision -import com.didiglobal.booster.android.gradle.v3_0.V30 -import com.didiglobal.booster.android.gradle.v3_2.V32 -import com.didiglobal.booster.android.gradle.v3_3.V33 -import com.didiglobal.booster.android.gradle.v3_4.V34 -import com.didiglobal.booster.android.gradle.v3_5.V35 -import com.didiglobal.booster.android.gradle.v3_6.V36 -import com.didiglobal.booster.android.gradle.v4_0.V40 -import com.didiglobal.booster.android.gradle.v4_1.V41 -import com.didiglobal.booster.android.gradle.v4_2.V42 - -internal val ANDROID_GRADLE_PLUGIN_VERSION: Revision = Revision.parseRevision(Version.ANDROID_GRADLE_PLUGIN_VERSION) -internal val MAJOR = ANDROID_GRADLE_PLUGIN_VERSION.major -internal val MINOR = ANDROID_GRADLE_PLUGIN_VERSION.minor - -val GTE_V3_X = MAJOR >= 3 -val GTE_V3_6 = MAJOR > 3 || (MAJOR == 3 && MINOR >= 6) -val GTE_V3_5 = MAJOR > 3 || (MAJOR == 3 && MINOR >= 5) -val GTE_V3_4 = MAJOR > 3 || (MAJOR == 3 && MINOR >= 4) -val GTE_V3_3 = MAJOR > 3 || (MAJOR == 3 && MINOR >= 3) -val GTE_V3_2 = MAJOR > 3 || (MAJOR == 3 && MINOR >= 2) -val GTE_V3_1 = MAJOR > 3 || (MAJOR == 3 && MINOR >= 1) - -val GTE_V4_X = MAJOR >= 4 -val GTE_V4_2 = MAJOR > 4 || (MAJOR == 4 && MINOR >= 2) -val GTE_V4_1 = MAJOR > 4 || (MAJOR == 4 && MINOR >= 1) - -internal val AGP: AGPInterface = arrayOf( - GTE_V4_2 to V42, - GTE_V4_1 to V41, - GTE_V4_X to V40, - GTE_V3_6 to V36, - GTE_V3_5 to V35, - GTE_V3_4 to V34, - GTE_V3_3 to V33, - GTE_V3_2 to V32, - GTE_V3_X to V30 -).firstOrNull(Pair::first)?.second ?: throw TODO("Incompatible with AGP $ANDROID_GRADLE_PLUGIN_VERSION") +val GTE_V3_X: Boolean by lazy { AGP.revision.major >= 3 } +val GTE_V3_6: Boolean by lazy { AGP.revision.major > 3 || (AGP.revision.major == 3 && AGP.revision.minor >= 6) } +val GTE_V3_5: Boolean by lazy { AGP.revision.major > 3 || (AGP.revision.major == 3 && AGP.revision.minor >= 5) } +val GTE_V3_4: Boolean by lazy { AGP.revision.major > 3 || (AGP.revision.major == 3 && AGP.revision.minor >= 4) } +val GTE_V3_3: Boolean by lazy { AGP.revision.major > 3 || (AGP.revision.major == 3 && AGP.revision.minor >= 3) } +val GTE_V3_2: Boolean by lazy { AGP.revision.major > 3 || (AGP.revision.major == 3 && AGP.revision.minor >= 2) } +val GTE_V3_1: Boolean by lazy { AGP.revision.major > 3 || (AGP.revision.major == 3 && AGP.revision.minor >= 1) } + +val GTE_V4_X: Boolean by lazy { AGP.revision.major >= 4 } +val GTE_V4_2: Boolean by lazy { AGP.revision.major > 4 || (AGP.revision.major == 4 && AGP.revision.minor >= 2) } +val GTE_V4_1: Boolean by lazy { AGP.revision.major > 4 || (AGP.revision.major == 4 && AGP.revision.minor >= 1) } + +val GTE_V7_X: Boolean by lazy { AGP.revision.major >= 7 } diff --git a/booster-android-gradle-compat/src/main/kotlin/com/didiglobal/booster/gradle/AGPInterface.kt b/booster-android-gradle-compat/src/main/kotlin/com/didiglobal/booster/gradle/AGPInterface.kt index e0b20c798..4a45e4383 100644 --- a/booster-android-gradle-compat/src/main/kotlin/com/didiglobal/booster/gradle/AGPInterface.kt +++ b/booster-android-gradle-compat/src/main/kotlin/com/didiglobal/booster/gradle/AGPInterface.kt @@ -15,15 +15,23 @@ import com.android.build.gradle.internal.scope.VariantScope import com.android.build.gradle.internal.variant.BaseVariantData import com.android.builder.core.VariantType import com.android.builder.model.ApiVersion +import com.android.builder.model.Version +import com.android.repository.Revision import com.android.sdklib.AndroidVersion import com.android.sdklib.BuildToolInfo import org.gradle.api.Project import org.gradle.api.Task import org.gradle.api.artifacts.ArtifactCollection +import org.gradle.api.file.FileCollection +import org.gradle.api.tasks.TaskProvider import java.io.File +import java.util.ServiceLoader interface AGPInterface { + val revision: Revision + get() = REVISION + val scopeFullWithFeatures: MutableSet get() = TransformManager.SCOPE_FULL_PROJECT @@ -32,17 +40,53 @@ interface AGPInterface { val BaseVariant.project: Project + @Deprecated( + message = "Use javaCompilerTaskProvider instead", + replaceWith = ReplaceWith(expression = "javaCompilerTaskProvider"), + level = DeprecationLevel.WARNING + ) val BaseVariant.javaCompilerTask: Task + get() = javaCompilerTaskProvider.get() + @Deprecated( + message = "Use preBuildTaskProvider instead", + replaceWith = ReplaceWith(expression = "preBuildTaskProvider"), + level = DeprecationLevel.WARNING + ) val BaseVariant.preBuildTask: Task + get() = preBuildTaskProvider.get() + @Deprecated( + message = "Use preBuildTaskProvider instead", + replaceWith = ReplaceWith(expression = "preBuildTaskProvider"), + level = DeprecationLevel.WARNING + ) val BaseVariant.assembleTask: Task + get() = assembleTaskProvider.get() + @Deprecated( + message = "Use mergeAssetsTaskProvider instead", + replaceWith = ReplaceWith(expression = "mergeAssetsTaskProvider"), + level = DeprecationLevel.WARNING + ) val BaseVariant.mergeAssetsTask: Task + get() = mergeAssetsTaskProvider.get() + @Deprecated( + message = "Use mergeResourcesTaskProvider instead", + replaceWith = ReplaceWith(expression = "mergeResourcesTaskProvider"), + level = DeprecationLevel.WARNING + ) val BaseVariant.mergeResourcesTask: Task + get() = mergeResourcesTaskProvider.get() + @Deprecated( + message = "Use processJavaResourcesTaskProvider instead", + replaceWith = ReplaceWith(expression = "processJavaResourcesTaskProvider"), + level = DeprecationLevel.WARNING + ) val BaseVariant.processJavaResourcesTask: Task + get() = processJavaResourcesTaskProvider.get() fun BaseVariant.getTaskName(prefix: String): String @@ -60,12 +104,30 @@ interface AGPInterface { val BaseVariant.rawAndroidResources: Collection + val BaseVariant.javaCompilerTaskProvider: TaskProvider + + val BaseVariant.preBuildTaskProvider: TaskProvider + + val BaseVariant.assembleTaskProvider: TaskProvider + + val BaseVariant.mergeAssetsTaskProvider: TaskProvider + + val BaseVariant.mergeResourcesTaskProvider: TaskProvider + + val BaseVariant.processJavaResourcesTaskProvider: TaskProvider + fun BaseVariant.getArtifactCollection( configType: AndroidArtifacts.ConsumedConfigType, scope: AndroidArtifacts.ArtifactScope, artifactType: AndroidArtifacts.ArtifactType ): ArtifactCollection + fun BaseVariant.getArtifactFileCollection( + configType: AndroidArtifacts.ConsumedConfigType, + scope: AndroidArtifacts.ArtifactScope, + artifactType: AndroidArtifacts.ArtifactType + ): FileCollection + val BaseVariant.allArtifacts: Map> val BaseVariant.minSdkVersion: AndroidVersion @@ -96,10 +158,21 @@ interface AGPInterface { val BaseVariant.buildTools: BuildToolInfo + val BaseVariant.isPrecompileDependenciesResourcesEnabled: Boolean + val Context.task: TransformTask + @Deprecated( + message = "Use isAapt2Enabled instead", + replaceWith = ReplaceWith( + expression = "isAapt2Enabled" + ) + ) val Project.aapt2Enabled: Boolean + val Project.isAapt2Enabled: Boolean + get() = aapt2Enabled + val TransformInvocation.variant: BaseVariant get() = project.getAndroid().let { android -> this.context.variantName.let { variant -> @@ -127,3 +200,22 @@ interface AGPInterface { } inline fun Project.getAndroid(): T = extensions.getByName("android") as T + +private val REVISION: Revision by lazy { + Revision.parseRevision(Version.ANDROID_GRADLE_PLUGIN_VERSION) +} + +private val FACTORIES: List by lazy { + ServiceLoader.load(AGPInterfaceFactory::class.java) + .sortedByDescending(AGPInterfaceFactory::revision) + .toList() +} + +val AGP: AGPInterface by lazy { + val factory = FACTORIES.firstOrNull { + it.revision.major == REVISION.major && it.revision.minor == REVISION.minor + } ?: FACTORIES.firstOrNull { + it.revision.major == REVISION.major + } ?: FACTORIES.first() + factory.newAGPInterface() +} diff --git a/booster-android-gradle-compat/src/main/kotlin/com/didiglobal/booster/gradle/AGPInterfaceFactory.kt b/booster-android-gradle-compat/src/main/kotlin/com/didiglobal/booster/gradle/AGPInterfaceFactory.kt new file mode 100644 index 000000000..cbe882692 --- /dev/null +++ b/booster-android-gradle-compat/src/main/kotlin/com/didiglobal/booster/gradle/AGPInterfaceFactory.kt @@ -0,0 +1,8 @@ +package com.didiglobal.booster.gradle + +import com.android.repository.Revision + +interface AGPInterfaceFactory { + val revision: Revision + fun newAGPInterface(): AGPInterface +} \ No newline at end of file diff --git a/booster-android-gradle-v3_0/README.md b/booster-android-gradle-v3_0/README.md deleted file mode 100644 index 9207374ef..000000000 --- a/booster-android-gradle-v3_0/README.md +++ /dev/null @@ -1,6 +0,0 @@ -# booster-android-gradle-v3_0 - -This module is an implementation of [booster-android-gradle-api](../booster-android-gradle-api) for Android gradle plugin below 3.2. - -本模块是 [booster-android-gradle-api](../booster-android-gradle-api) 针对 Android gradle plugin 3.2 以下版本的实现。 - diff --git a/booster-android-gradle-v3_0/build.gradle b/booster-android-gradle-v3_0/build.gradle deleted file mode 100644 index 0207fbcde..000000000 --- a/booster-android-gradle-v3_0/build.gradle +++ /dev/null @@ -1,17 +0,0 @@ -apply plugin: 'java-gradle-plugin' - -apply from: "$rootDir/gradle/booster.gradle" -apply from: "$rootDir/gradle/integration-test.gradle" -apply from: "$rootDir/gradle/functional-test.gradle" - -dependencies { - api project(':booster-android-gradle-compat') - compileOnly 'com.android.tools.build:gradle:3.0.0' - testImplementation 'com.android.tools.build:gradle:3.0.0' - testImplementation 'io.bootstage.testkit:testkit-gradle-plugin:1.4.0' - testImplementation project(':booster-build') -} - -gradlePlugin { - testSourceSets sourceSets.functionalTest, sourceSets.integrationTest -} diff --git a/booster-android-gradle-v3_0/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_0/V30IntegrationTest.kt b/booster-android-gradle-v3_0/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_0/V30IntegrationTest.kt deleted file mode 100644 index 193dc8fdb..000000000 --- a/booster-android-gradle-v3_0/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_0/V30IntegrationTest.kt +++ /dev/null @@ -1,541 +0,0 @@ -package com.didiglobal.booster.android.gradle.v3_0 - -import com.android.build.gradle.AppExtension -import com.android.build.gradle.BaseExtension -import com.android.build.gradle.LibraryExtension -import com.android.build.gradle.api.BaseVariant -import com.android.builder.core.VariantType -import com.android.sdklib.BuildToolInfo -import com.didiglobal.booster.gradle.getAndroid -import com.didiglobal.booster.kotlinx.search -import io.bootstage.testkit.gradle.Case -import io.bootstage.testkit.gradle.TestCase -import io.bootstage.testkit.gradle.VariantTestCase -import io.bootstage.testkit.gradle.rules.GradleExecutor -import io.bootstage.testkit.gradle.rules.LocalProperties -import io.bootstage.testkit.gradle.rules.copyFromResource -import io.bootstage.testkit.gradle.rules.rule -import org.gradle.api.Project -import org.junit.Before -import org.junit.Rule -import org.junit.rules.TemporaryFolder -import org.junit.rules.TestRule -import kotlin.test.Test -import kotlin.test.assertEquals -import kotlin.test.assertFalse -import kotlin.test.assertNotNull -import kotlin.test.fail - -private const val MIN_SDK_VERSION = 18 - -private const val TARGET_SDK_VERSION = 30 - -private val AGP = V30 - -private val ARGS = arrayOf( - "assemble", "-S", - "-Pbooster_version=${Build.VERSION}", - "-Pandroid_gradle_version=3.0.0", - "-Pcompile_sdk_version=28", - "-Pbuild_tools_version=26.0.3", - "-Pmin_sdk_version=${MIN_SDK_VERSION}", - "-Ptarget_sdk_version=${TARGET_SDK_VERSION}" -) - -@Suppress("RemoveCurlyBracesFromTemplate", "FunctionName") -abstract class V30IntegrationTest(val isLib: Boolean) { - - private val projectDir = TemporaryFolder() - - @get:Rule - val ruleChain: TestRule = rule(projectDir) { - rule(LocalProperties(projectDir::getRoot)) { - GradleExecutor(projectDir::getRoot, "4.1", *ARGS) - } - } - - @Before - fun setup() { - projectDir.copyFromResource("${if (isLib) "lib" else "app"}.gradle", "build.gradle") - projectDir.copyFromResource("buildSrc") - projectDir.copyFromResource("src") - } - - @Test - @Case(ScopeFullWithFeaturesTest::class) - fun `test AGPInterface#scopeFullWithFeatures`() { - } - - @Test - @Case(ScopeFullLibraryWithFeaturesTest::class) - fun `test AGPInterface#scopeFullLibraryWithFeatures`() { - } - - @Test - @Case(ProjectTest::class) - fun `test AGPInterface#project`() { - } - - @Test - @Case(JavaCompilerTaskTestCase::class) - fun `test AGPInterface#javaCompilerTask`() { - } - - @Test - @Case(PreBuildTaskTestCase::class) - fun `test AGPInterface#preBuildTask`() { - } - - @Test - @Case(AssembleTaskTestCase::class) - fun `test AGPInterface#assembleTask`() { - } - - @Test - @Case(MergeAssetsTaskTestCase::class) - fun `test AGPInterface#mergeAssetsTask`() { - } - - @Test - @Case(MergeResourcesTaskTestCase::class) - fun `test AGPInterface#mergeResources`() { - } - - @Test - @Case(GetTaskNameTestCase::class) - fun `test AGPInterface#getTaskName(String)`() { - } - - @Test - @Case(GetTaskName2TestCase::class) - fun `test AGPInterface#getTaskName(String, String)`() { - } - - @Test - @Case(VariantDataTestCase::class) - fun `test AGPInterface#variantData`() { - } - - @Test - @Case(VariantScopeTestCase::class) - fun `test AGPInterface#variantScope`() { - } - - @Test - @Case(GlobalScopeTestCase::class) - fun `test AGPInterface#globalScope`() { - } - - @Test - @Case(OriginalApplicationIdTestCase::class) - fun `test AGPInterface#originalApplicationId`() { - } - - @Test - @Case(HasDynamicFeatureTestCase::class) - fun `test AGPInterface#hasDynamicFeature`() { - } - - @Test - @Case(RawAndroidResourcesTestCase::class) - fun `test AGPInterface#rawAndroidResources`() { - } - - @Test - @Case(AllArtifactsTestCase::class) - fun `test AGPInterface#allArtifacts`() { - } - - @Test - @Case(MinSdkVersionTestCase::class) - fun `test AGPInterface#minSdkVersion`() { - } - - @Test - @Case(TargetSdkVersionTestCase::class) - fun `test AGPInterface#targetSdkVersion`() { - } - - @Test - @Case(VariantTypeTestCase::class) - fun `test AGPInterface#variantType`() { - } - - @Test - @Case(AarTestCase::class) - fun `test AGPInterface#aar`() { - } - - @Test - @Case(ApkTestCase::class) - fun `test AGPInterface#apk`() { - } - - @Test - @Case(MergedManifestsTestCase::class) - fun `test AGPInterface#mergedManifests`() { - } - - @Test - @Case(MergedResourcesTestCase::class) - fun `test AGPInterface#mergedRes`() { - } - - @Test - @Case(MergedAssetsTestCase::class) - fun `test AGPInterface#mergedAssets`() { - } - - @Test - @Case(ProcessedResTestCase::class) - fun `test AGPInterface#processedRes`() { - } - - @Test - @Case(SymbolListTestCase::class) - fun `test AGPInterface#symbolList`() { - } - - @Test - @Case(SymbolListWithPackageNameTestCase::class) - fun `test AGPInterface#symbolListWithPackageName`() { - } - - @Test - @Case(AllClassesTestCase::class) - fun `test AGPInterface#allClasses`() { - } - - @Test - @Case(BuildToolsTestCase::class) - fun `test AGPInterface#buildTools`() { - } - -} - -class V30AppIntegrationTest : V30IntegrationTest(false) - -class V30LibIntegrationTest : V30IntegrationTest(true) - -class ScopeFullWithFeaturesTest : TestCase { - override fun apply(project: Project) { - assertEquals("PROJECT,SUB_PROJECTS,EXTERNAL_LIBRARIES", AGP.scopeFullWithFeatures.joinToString(",")) - } -} - -class ScopeFullLibraryWithFeaturesTest : TestCase { - override fun apply(project: Project) { - assertEquals("PROJECT", AGP.scopeFullLibraryWithFeatures.joinToString(",")) - } -} - -class ProjectTest : TestCase { - override fun apply(project: Project) { - val assert: (BaseVariant) -> Unit = { variant -> - assertEquals(project, AGP.run { variant.project }) - } - project.afterEvaluate { - when (val android = project.getAndroid()) { - is AppExtension -> android.applicationVariants.forEach(assert) - is LibraryExtension -> android.libraryVariants.forEach(assert) - } - } - } -} - -class JavaCompilerTaskTestCase : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.javaCompilerTask }) - } -} - -class PreBuildTaskTestCase : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.preBuildTask }) - } -} - -class AssembleTaskTestCase : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.assembleTask }) - } -} - -class MergeAssetsTaskTestCase : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.mergeAssetsTask }) - } -} - -class MergeResourcesTaskTestCase : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.mergeResourcesTask }) - } -} - -class GetTaskNameTestCase : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertEquals("assemble${variant.name.capitalize()}", AGP.run { variant.getTaskName("assemble") }) - } -} - - -class GetTaskName2TestCase : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertEquals("merge${variant.name.capitalize()}Resources", AGP.run { variant.getTaskName("merge", "Resources") }) - } -} - -class VariantDataTestCase : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.variantData }) - } -} - -class VariantScopeTestCase : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.variantScope }) - } -} - -class GlobalScopeTestCase : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.globalScope }) - } -} - -class OriginalApplicationIdTestCase : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.originalApplicationId }) - } -} - -class HasDynamicFeatureTestCase : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertFalse(AGP.run { variant.hasDynamicFeature }) - } -} - -class RawAndroidResourcesTestCase : VariantTestCase() { - override fun apply(variant: BaseVariant) { - variant.assemble.doFirst { - val rawAndroidResources = AGP.run { variant.rawAndroidResources } - assertNotNull(rawAndroidResources) - if (rawAndroidResources.isEmpty()) { - fail("rawAndroidResources is empty") - } - rawAndroidResources.forEach { - println(" - ${it.path}") - } - } - } -} - -class AllArtifactsTestCase : VariantTestCase() { - override fun apply(variant: BaseVariant) { - variant.assemble.doFirst { - val allArtifacts = AGP.run { variant.allArtifacts } - assertNotNull(allArtifacts) - if (allArtifacts.isEmpty()) { - fail("allArtifacts is empty") - } - allArtifacts.forEach { (k, v) -> - println(" - $k => $v") - } - } - } -} - -class MinSdkVersionTestCase : VariantTestCase() { - override fun apply(variant: BaseVariant) { - val minSdkVersion = AGP.run { variant.minSdkVersion } - assertNotNull(minSdkVersion) - assertEquals(MIN_SDK_VERSION, minSdkVersion.apiLevel) - } -} - -class TargetSdkVersionTestCase : VariantTestCase() { - override fun apply(variant: BaseVariant) { - val targetSdkVersion = AGP.run { variant.targetSdkVersion } - assertNotNull(targetSdkVersion) - assertEquals(TARGET_SDK_VERSION, targetSdkVersion.apiLevel) - } -} - -class VariantTypeTestCase : VariantTestCase() { - override fun apply(variant: BaseVariant) { - val project = AGP.run { variant.project } - val variantType = AGP.run { variant.variantType } - if (project.plugins.hasPlugin("com.android.application")) { - assertEquals(VariantType.DEFAULT, variantType) - } else if (project.plugins.hasPlugin("com.android.library")) { - assertEquals(VariantType.LIBRARY, variantType) - } - } -} - -class AarTestCase : VariantTestCase() { - override fun apply(project: Project) { - if (project.plugins.hasPlugin("com.android.library")) { - super.apply(project) - } - } - - override fun apply(variant: BaseVariant) { - variant.assemble.doFirst { - val aar = AGP.run { variant.aar }.search { - it.extension == "aar" - } - if (aar.isEmpty()) { - fail("aar is empty") - } - aar.forEach { - println(" - ${it.path}") - } - } - } -} - -class ApkTestCase : VariantTestCase() { - override fun apply(project: Project) { - if (project.plugins.hasPlugin("com.android.application")) { - super.apply(project) - } - } - - override fun apply(variant: BaseVariant) { - variant.assemble.doFirst { - val apk = AGP.run { variant.apk }.search { - it.extension == "apk" - } - if (apk.isEmpty()) { - fail("apk is empty") - } - apk.forEach { - println(" - ${it.path}") - } - } - } -} - -class MergedManifestsTestCase : VariantTestCase() { - override fun apply(variant: BaseVariant) { - variant.assemble.doFirst { - val mergedManifests = AGP.run { variant.mergedManifests }.search { - it.name == "AndroidManifest.xml" - } - if (mergedManifests.isEmpty()) { - fail("mergedManifests is empty") - } - mergedManifests.forEach { - println(" - ${it.path}") - } - } - } -} - -class MergedResourcesTestCase : VariantTestCase() { - override fun apply(variant: BaseVariant) { - variant.assemble.doFirst { - val mergedResources = AGP.run { variant.mergedRes } - if (mergedResources.isEmpty()) { - fail("mergedRes is empty") - } - mergedResources.forEach { - println(" - ${it.path}") - } - } - } -} - -class MergedAssetsTestCase : VariantTestCase() { - override fun apply(variant: BaseVariant) { - variant.assemble.doFirst { - val mergedAssets = AGP.run { variant.mergedAssets } - if (mergedAssets.isEmpty()) { - fail("mergedAssets is empty") - } - mergedAssets.forEach { - println(" - ${it.path}") - } - } - } -} - -class ProcessedResTestCase : VariantTestCase() { - override fun apply(project: Project) { - if (project.plugins.hasPlugin("com.android.application")) { - super.apply(project) - } - } - - override fun apply(variant: BaseVariant) { - variant.assemble.doFirst { - val processedRes = AGP.run { variant.processedRes }.search { - it.extension == "ap_" - } - if (processedRes.isEmpty()) { - fail("processedRes is empty") - } - processedRes.forEach { - println(" - ${it.path}") - } - } - } -} - -class SymbolListTestCase : VariantTestCase() { - override fun apply(variant: BaseVariant) { - variant.assemble.doFirst { - val symbolList = AGP.run { variant.symbolList } - if (symbolList.isEmpty()) { - fail("symbolList is empty") - } - symbolList.forEach { - println(" - ${it.path}") - } - } - } -} - -class SymbolListWithPackageNameTestCase : VariantTestCase() { - override fun apply(variant: BaseVariant) { - variant.assemble.doFirst { - val symbolListWithPackageName = AGP.run { variant.symbolListWithPackageName } - if (symbolListWithPackageName.isEmpty()) { - fail("symbolListWithPackageName is empty") - } - symbolListWithPackageName.forEach { - println(" - ${it.path}") - } - } - } -} - -class AllClassesTestCase : VariantTestCase() { - override fun apply(variant: BaseVariant) { - variant.assemble.doFirst { - val allClasses = AGP.run { variant.allClasses }.search { - it.extension == "class" - } - if (allClasses.isEmpty()) { - fail("allClasses is empty") - } - allClasses.forEach { - println(" - ${it.path}") - } - } - } -} - -class BuildToolsTestCase : VariantTestCase() { - override fun apply(variant: BaseVariant) { - val buildTools = AGP.run { variant.buildTools } - assertNotNull(buildTools) - BuildToolInfo.PathId.values().map { - it.name to buildTools.getPath(it) - }.forEach { (k, v) -> - println(" - $k => $v") - } - } -} diff --git a/booster-android-gradle-v3_0/src/integrationTest/resources/app.gradle b/booster-android-gradle-v3_0/src/integrationTest/resources/app.gradle deleted file mode 100644 index a90b07625..000000000 --- a/booster-android-gradle-v3_0/src/integrationTest/resources/app.gradle +++ /dev/null @@ -1,62 +0,0 @@ -buildscript { - repositories { - mavenLocal() - mavenCentral() - google() - jcenter() - maven { url 'https://oss.sonatype.org/content/repositories/public/' } - maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } - } - dependencies { - classpath "com.android.tools.build:gradle:${project.android_gradle_version}" - classpath("com.didiglobal.booster:booster-gradle-plugin:${project.booster_version}") { - exclude group: 'com.google.guava' - } - classpath "io.bootstage.testkit:testkit-gradle-plugin:1.4.0" - } -} - -apply plugin: 'com.android.application' -apply plugin: 'com.didiglobal.booster' -apply plugin: 'io.bootstage.testkit' - -android { - compileSdkVersion project.compile_sdk_version as Integer - buildToolsVersion project.build_tools_version - defaultConfig { - applicationId 'com.didiglobal.booster.test' - minSdkVersion project.min_sdk_version as Integer - targetSdkVersion project.target_sdk_version as Integer - versionCode 1 - versionName "1.0" - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - } - buildTypes { - debug { - minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' - } - } - flavorDimensions 'lang' - productFlavors { - en { - dimension 'lang' - applicationIdSuffix '.en' - } - cn { - dimension 'lang' - applicationIdSuffix '.cn' - } - } - lintOptions { - checkReleaseBuilds false - } -} - -repositories { - mavenLocal() - mavenCentral() - google() - jcenter() - maven { url 'https://oss.sonatype.org/content/repositories/public/' } -} diff --git a/booster-android-gradle-v3_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_0/V30.kt b/booster-android-gradle-v3_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_0/V30.kt deleted file mode 100644 index 2550d4461..000000000 --- a/booster-android-gradle-v3_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_0/V30.kt +++ /dev/null @@ -1,178 +0,0 @@ -package com.didiglobal.booster.android.gradle.v3_0 - -import com.android.build.api.transform.Context -import com.android.build.gradle.api.ApplicationVariant -import com.android.build.gradle.api.BaseVariant -import com.android.build.gradle.api.LibraryVariant -import com.android.build.gradle.internal.pipeline.TransformTask -import com.android.build.gradle.internal.publishing.AndroidArtifacts -import com.android.build.gradle.internal.scope.GlobalScope -import com.android.build.gradle.internal.scope.MissingTaskOutputException -import com.android.build.gradle.internal.scope.TaskOutputHolder -import com.android.build.gradle.internal.scope.VariantScope -import com.android.build.gradle.internal.variant.BaseVariantData -import com.android.build.gradle.options.BooleanOption -import com.android.build.gradle.options.ProjectOptions -import com.android.build.gradle.tasks.MergeResources -import com.android.builder.core.VariantType -import com.android.builder.model.ApiVersion -import com.android.ide.common.res2.ResourceSet -import com.android.sdklib.AndroidVersion -import com.android.sdklib.BuildToolInfo -import com.didiglobal.booster.android.gradle.v3_0.V30.variantScope -import com.didiglobal.booster.gradle.AGPInterface -import org.gradle.api.Project -import org.gradle.api.Task -import org.gradle.api.artifacts.ArtifactCollection -import java.io.File -import java.util.TreeMap - -@Suppress("UnstableApiUsage") -private val ARTIFACT_TYPES = arrayOf>( - TaskOutputHolder.TaskOutputType.values(), - TaskOutputHolder.AnchorOutputType.values() -).flatten().map { - it.name() to it -}.toMap() - -@Suppress("UnstableApiUsage") -private fun BaseVariant.getFinalArtifactFiles(type: TaskOutputHolder.OutputType): Collection { - return variantScope.getOutput(type).files -} - -private val BaseVariant.globalScope: GlobalScope - get() = variantScope.globalScope - -object V30 : AGPInterface { - - override val BaseVariant.project: Project - get() = globalScope.project - - override val BaseVariant.javaCompilerTask: Task - get() = javaCompiler - - override val BaseVariant.preBuildTask: Task - get() = preBuild - - override val BaseVariant.assembleTask: Task - get() = assemble - - override val BaseVariant.mergeAssetsTask: Task - get() = mergeAssets - - override val BaseVariant.mergeResourcesTask: Task - get() = mergeResources - - override val BaseVariant.processJavaResourcesTask: Task - get() = processJavaResources - - override fun BaseVariant.getTaskName(prefix: String): String { - return variantScope.getTaskName(prefix) - } - - override fun BaseVariant.getTaskName(prefix: String, suffix: String): String { - return variantScope.getTaskName(prefix, suffix) - } - - override val BaseVariant.variantData: BaseVariantData - get() = javaClass.getDeclaredMethod("getVariantData").apply { - isAccessible = true - }.invoke(this) as BaseVariantData - - override val BaseVariant.variantScope: VariantScope - get() = variantData.scope - - override val BaseVariant.globalScope: GlobalScope - get() = variantScope.globalScope - - override val BaseVariant.originalApplicationId: String - get() = variantData.variantConfiguration.originalApplicationId - - override val BaseVariant.hasDynamicFeature: Boolean - get() = false - - @Suppress("UNCHECKED_CAST") - override val BaseVariant.rawAndroidResources: Collection - get() = (MergeResources::class.java.getDeclaredMethod("computeResourceSetList").apply { - isAccessible = true - }.invoke(mergeResources) as List).map { - it.sourceFiles - }.flatten().toSet() - - override fun BaseVariant.getArtifactCollection( - configType: AndroidArtifacts.ConsumedConfigType, - scope: AndroidArtifacts.ArtifactScope, - artifactType: AndroidArtifacts.ArtifactType - ): ArtifactCollection { - return variantScope.getArtifactCollection(configType, scope, artifactType) - } - - override val BaseVariant.allArtifacts: Map> - get() = ARTIFACT_TYPES.entries.map { - val artifacts: Collection by lazy { - try { - getFinalArtifactFiles(it.value) - } catch (e: RuntimeException) { - if (e.cause is MissingTaskOutputException) { - emptyList() - } else { - throw e - } - } - } - it.key to artifacts - }.toMap(TreeMap()) - - override val BaseVariant.minSdkVersion: AndroidVersion - get() = variantData.variantConfiguration.minSdkVersion - - override val BaseVariant.targetSdkVersion: ApiVersion - get() = variantData.variantConfiguration.targetSdkVersion - - override val BaseVariant.variantType: VariantType - get() = variantData.type - - override val BaseVariant.aar: Collection - get() = getFinalArtifactFiles(TaskOutputHolder.TaskOutputType.AAR) - - override val BaseVariant.apk: Collection - get() = getFinalArtifactFiles(TaskOutputHolder.TaskOutputType.APK) - - override val BaseVariant.mergedManifests: Collection - get() = getFinalArtifactFiles(when (this) { - is ApplicationVariant -> TaskOutputHolder.TaskOutputType.MERGED_MANIFESTS - is LibraryVariant -> TaskOutputHolder.TaskOutputType.LIBRARY_MANIFEST - else -> TODO("Unsupported variant type: $variantType") - }) - - override val BaseVariant.mergedRes: Collection - get() = getFinalArtifactFiles(TaskOutputHolder.TaskOutputType.MERGED_RES) - - override val BaseVariant.mergedAssets: Collection - get() = getFinalArtifactFiles(TaskOutputHolder.TaskOutputType.MERGED_ASSETS) - - override val BaseVariant.processedRes: Collection - get() = getFinalArtifactFiles(TaskOutputHolder.TaskOutputType.PROCESSED_RES) - - override val BaseVariant.symbolList: Collection - get() = getFinalArtifactFiles(TaskOutputHolder.TaskOutputType.SYMBOL_LIST) - - override val BaseVariant.symbolListWithPackageName: Collection - get() = getFinalArtifactFiles(TaskOutputHolder.TaskOutputType.SYMBOL_LIST_WITH_PACKAGE_NAME) - - override val BaseVariant.dataBindingDependencyArtifacts: Collection - get() = getFinalArtifactFiles(TaskOutputHolder.TaskOutputType.DATA_BINDING_DEPENDENCY_ARTIFACTS) - - override val BaseVariant.allClasses: Collection - get() = getFinalArtifactFiles(TaskOutputHolder.AnchorOutputType.ALL_CLASSES) - - override val BaseVariant.buildTools: BuildToolInfo - get() = globalScope.androidBuilder.buildToolInfo - - override val Context.task: TransformTask - get() = this as TransformTask - - override val Project.aapt2Enabled: Boolean - get() = ProjectOptions(this).get(BooleanOption.ENABLE_AAPT2) - -} diff --git a/booster-android-gradle-v3_2/README.md b/booster-android-gradle-v3_2/README.md deleted file mode 100644 index ce674fe70..000000000 --- a/booster-android-gradle-v3_2/README.md +++ /dev/null @@ -1,6 +0,0 @@ -# booster-android-gradle-v3_2 - -This module is an implementation of [booster-android-gradle-api](../booster-android-gradle-api) for Android gradle plugin 3.2 and above. - -本模块是 [booster-android-gradle-api](../booster-android-gradle-api) 针对 Android gradle plugin 3.2 以上版本的实现。 - diff --git a/booster-android-gradle-v3_2/build.gradle b/booster-android-gradle-v3_2/build.gradle deleted file mode 100644 index 850d1836a..000000000 --- a/booster-android-gradle-v3_2/build.gradle +++ /dev/null @@ -1,17 +0,0 @@ -apply plugin: 'java-gradle-plugin' - -apply from: "$rootDir/gradle/booster.gradle" -apply from: "$rootDir/gradle/integration-test.gradle" -apply from: "$rootDir/gradle/functional-test.gradle" - -dependencies { - api project(':booster-android-gradle-compat') - compileOnly 'com.android.tools.build:gradle:3.2.0' - testImplementation 'com.android.tools.build:gradle:3.2.0' - testImplementation 'io.bootstage.testkit:testkit-gradle-plugin:1.4.0' - testImplementation project(':booster-build') -} - -gradlePlugin { - testSourceSets sourceSets.functionalTest, sourceSets.integrationTest -} \ No newline at end of file diff --git a/booster-android-gradle-v3_2/src/integrationTest/resources/buildSrc/build.gradle b/booster-android-gradle-v3_2/src/integrationTest/resources/buildSrc/build.gradle deleted file mode 100644 index 4d7b663b3..000000000 --- a/booster-android-gradle-v3_2/src/integrationTest/resources/buildSrc/build.gradle +++ /dev/null @@ -1,26 +0,0 @@ -buildscript { - repositories { - mavenLocal() - mavenCentral() - google() - jcenter() - maven { url 'https://oss.sonatype.org/content/repositories/public/' } - maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } - } -} - -repositories { - mavenLocal() - mavenCentral() - google() - jcenter() - maven { url 'https://oss.sonatype.org/content/repositories/public/' } -} - -dependencies { - implementation "com.android.tools.build:gradle:${project.android_gradle_version}" - implementation("com.didiglobal.booster:booster-android-gradle-api:${project.booster_version}") { - exclude group: 'com.google.guava' - } - implementation "io.bootstage.testkit:testkit-gradle-plugin:1.4.0" -} diff --git a/booster-android-gradle-v3_2/src/integrationTest/resources/lib.gradle b/booster-android-gradle-v3_2/src/integrationTest/resources/lib.gradle deleted file mode 100644 index 99bbebeb1..000000000 --- a/booster-android-gradle-v3_2/src/integrationTest/resources/lib.gradle +++ /dev/null @@ -1,59 +0,0 @@ -buildscript { - repositories { - mavenLocal() - mavenCentral() - google() - jcenter() - maven { url 'https://oss.sonatype.org/content/repositories/public/' } - maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } - } - dependencies { - classpath "com.android.tools.build:gradle:${project.android_gradle_version}" - classpath("com.didiglobal.booster:booster-gradle-plugin:${project.booster_version}") { - exclude group: 'com.google.guava' - } - classpath "io.bootstage.testkit:testkit-gradle-plugin:1.4.0" - } -} - -apply plugin: 'com.android.library' -apply plugin: 'com.didiglobal.booster' -apply plugin: 'io.bootstage.testkit' - -android { - compileSdkVersion project.compile_sdk_version as Integer - buildToolsVersion project.build_tools_version - defaultConfig { - minSdkVersion project.min_sdk_version as Integer - targetSdkVersion project.target_sdk_version as Integer - versionCode 1 - versionName "1.0" - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - } - buildTypes { - debug { - minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' - } - } - flavorDimensions 'lang' - productFlavors { - en { - dimension 'lang' - } - cn { - dimension 'lang' - } - } - lintOptions { - checkReleaseBuilds false - } -} - -repositories { - mavenLocal() - mavenCentral() - google() - jcenter() - maven { url 'https://oss.sonatype.org/content/repositories/public/' } -} diff --git a/booster-android-gradle-v3_2/src/integrationTest/resources/src/main/AndroidManifest.xml b/booster-android-gradle-v3_2/src/integrationTest/resources/src/main/AndroidManifest.xml deleted file mode 100644 index 30800c604..000000000 --- a/booster-android-gradle-v3_2/src/integrationTest/resources/src/main/AndroidManifest.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/booster-android-gradle-v3_2/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/MainActivity.java b/booster-android-gradle-v3_2/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/MainActivity.java deleted file mode 100644 index 0eb4ec7b4..000000000 --- a/booster-android-gradle-v3_2/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/MainActivity.java +++ /dev/null @@ -1,6 +0,0 @@ -package com.didiglobal.booster.android.test; - -import android.app.Activity; - -public class MainActivity extends Activity { -} \ No newline at end of file diff --git a/booster-android-gradle-v3_2/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/TestApplication.java b/booster-android-gradle-v3_2/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/TestApplication.java deleted file mode 100644 index 3ecfb1507..000000000 --- a/booster-android-gradle-v3_2/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/TestApplication.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.didiglobal.booster.android.test; - -import android.app.Application; - -public class TestApplication extends Application { - -} \ No newline at end of file diff --git a/booster-android-gradle-v3_2/src/integrationTest/resources/src/main/res/values/strings.xml b/booster-android-gradle-v3_2/src/integrationTest/resources/src/main/res/values/strings.xml deleted file mode 100644 index 8b2247616..000000000 --- a/booster-android-gradle-v3_2/src/integrationTest/resources/src/main/res/values/strings.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - Test - \ No newline at end of file diff --git a/booster-android-gradle-v3_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_2/V32.kt b/booster-android-gradle-v3_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_2/V32.kt deleted file mode 100644 index b885e0a53..000000000 --- a/booster-android-gradle-v3_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_2/V32.kt +++ /dev/null @@ -1,192 +0,0 @@ -package com.didiglobal.booster.android.gradle.v3_2 - -import com.android.build.api.artifact.ArtifactType -import com.android.build.api.artifact.BuildArtifactType -import com.android.build.api.transform.Context -import com.android.build.api.transform.QualifiedContent -import com.android.build.gradle.api.ApplicationVariant -import com.android.build.gradle.api.BaseVariant -import com.android.build.gradle.api.LibraryVariant -import com.android.build.gradle.internal.api.artifact.SourceArtifactType -import com.android.build.gradle.internal.pipeline.TransformManager -import com.android.build.gradle.internal.pipeline.TransformTask -import com.android.build.gradle.internal.publishing.AndroidArtifacts -import com.android.build.gradle.internal.scope.AnchorOutputType -import com.android.build.gradle.internal.scope.GlobalScope -import com.android.build.gradle.internal.scope.InternalArtifactType -import com.android.build.gradle.internal.scope.MissingTaskOutputException -import com.android.build.gradle.internal.scope.VariantScope -import com.android.build.gradle.internal.variant.BaseVariantData -import com.android.build.gradle.options.BooleanOption -import com.android.build.gradle.options.ProjectOptions -import com.android.build.gradle.tasks.MergeResources -import com.android.builder.core.VariantType -import com.android.builder.model.ApiVersion -import com.android.ide.common.resources.ResourceSet -import com.android.sdklib.AndroidVersion -import com.android.sdklib.BuildToolInfo -import com.didiglobal.booster.android.gradle.v3_2.V32.variantScope -import com.didiglobal.booster.gradle.AGPInterface -import org.gradle.api.Project -import org.gradle.api.Task -import org.gradle.api.artifacts.ArtifactCollection -import java.io.File -import java.util.TreeMap - -@Suppress("UnstableApiUsage") -private val ARTIFACT_TYPES = arrayOf>( - AnchorOutputType.values(), - BuildArtifactType.values(), - SourceArtifactType.values(), - InternalArtifactType.values() -).flatten().map { - it.name() to it -}.toMap() - -@Suppress("UnstableApiUsage") -private fun BaseVariant.getFinalArtifactFiles(type: ArtifactType): Collection { - return variantScope.artifacts.getFinalArtifactFiles(type).files -} - -private val BaseVariant.globalScope: GlobalScope - get() = variantScope.globalScope - -object V32 : AGPInterface { - - override val scopeFullWithFeatures: MutableSet - get() = TransformManager.SCOPE_FULL_WITH_FEATURES - - override val scopeFullLibraryWithFeatures: MutableSet - get() = (TransformManager.SCOPE_FEATURES + QualifiedContent.Scope.PROJECT).toMutableSet() - - override val BaseVariant.project: Project - get() = globalScope.project - - override val BaseVariant.javaCompilerTask: Task - get() = javaCompiler - - override val BaseVariant.preBuildTask: Task - get() = preBuild - - override val BaseVariant.assembleTask: Task - get() = assemble - - override val BaseVariant.mergeAssetsTask: Task - get() = mergeAssets - - override val BaseVariant.mergeResourcesTask: Task - get() = mergeResources - - override val BaseVariant.processJavaResourcesTask: Task - get() = processJavaResources - - override fun BaseVariant.getTaskName(prefix: String): String { - return variantScope.getTaskName(prefix) - } - - override fun BaseVariant.getTaskName(prefix: String, suffix: String): String { - return variantScope.getTaskName(prefix, suffix) - } - - override val BaseVariant.variantData: BaseVariantData - get() = javaClass.getDeclaredMethod("getVariantData").apply { - isAccessible = true - }.invoke(this) as BaseVariantData - - override val BaseVariant.variantScope: VariantScope - get() = variantData.scope - - override val BaseVariant.globalScope: GlobalScope - get() = variantScope.globalScope - - override val BaseVariant.originalApplicationId: String - get() = variantData.variantConfiguration.originalApplicationId - - override val BaseVariant.hasDynamicFeature: Boolean - get() = globalScope.hasDynamicFeatures() - - @Suppress("UNCHECKED_CAST") - override val BaseVariant.rawAndroidResources: Collection - get() = (MergeResources::class.java.getDeclaredMethod("computeResourceSetList").apply { - isAccessible = true - }.invoke(mergeResources) as List).map { - it.sourceFiles - }.flatten().toSet() - - override fun BaseVariant.getArtifactCollection( - configType: AndroidArtifacts.ConsumedConfigType, - scope: AndroidArtifacts.ArtifactScope, - artifactType: AndroidArtifacts.ArtifactType - ): ArtifactCollection { - return variantScope.getArtifactCollection(configType, scope, artifactType) - } - - override val BaseVariant.allArtifacts: Map> - get() = ARTIFACT_TYPES.entries.map { - val artifacts: Collection by lazy { - try { - getFinalArtifactFiles(it.value) - } catch (e: RuntimeException) { - if (e.cause is MissingTaskOutputException) { - emptyList() - } else { - throw e - } - } - } - it.key to artifacts - }.toMap(TreeMap()) - - override val BaseVariant.minSdkVersion: AndroidVersion - get() = variantData.variantConfiguration.minSdkVersion - - override val BaseVariant.targetSdkVersion: ApiVersion - get() = variantData.variantConfiguration.targetSdkVersion - - override val BaseVariant.variantType: VariantType - get() = variantScope.type - - override val BaseVariant.aar: Collection - get() = getFinalArtifactFiles(InternalArtifactType.AAR) - - override val BaseVariant.apk: Collection - get() = getFinalArtifactFiles(InternalArtifactType.APK) - - override val BaseVariant.mergedManifests: Collection - get() = getFinalArtifactFiles(InternalArtifactType.MERGED_MANIFESTS) - - override val BaseVariant.mergedRes: Collection - get() = getFinalArtifactFiles(InternalArtifactType.MERGED_RES) - - override val BaseVariant.mergedAssets: Collection - get() = getFinalArtifactFiles(when (this) { - is ApplicationVariant -> InternalArtifactType.MERGED_ASSETS - is LibraryVariant -> InternalArtifactType.LIBRARY_ASSETS - else -> TODO("Unsupported variant type: $variantType") - }) - - override val BaseVariant.processedRes: Collection - get() = getFinalArtifactFiles(InternalArtifactType.PROCESSED_RES) - - override val BaseVariant.symbolList: Collection - get() = getFinalArtifactFiles(InternalArtifactType.SYMBOL_LIST) - - override val BaseVariant.symbolListWithPackageName: Collection - get() = getFinalArtifactFiles(InternalArtifactType.SYMBOL_LIST_WITH_PACKAGE_NAME) - - override val BaseVariant.dataBindingDependencyArtifacts: Collection - get() = getFinalArtifactFiles(InternalArtifactType.DATA_BINDING_DEPENDENCY_ARTIFACTS) - - override val BaseVariant.allClasses: Collection - get() = getFinalArtifactFiles(AnchorOutputType.ALL_CLASSES) - - override val BaseVariant.buildTools: BuildToolInfo - get() = globalScope.androidBuilder.buildToolInfo - - override val Context.task: TransformTask - get() = this as TransformTask - - override val Project.aapt2Enabled: Boolean - get() = ProjectOptions(this).get(BooleanOption.ENABLE_AAPT2) - -} diff --git a/booster-android-gradle-v3_3/build.gradle b/booster-android-gradle-v3_3/build.gradle index 27e019498..7fc6eb17b 100644 --- a/booster-android-gradle-v3_3/build.gradle +++ b/booster-android-gradle-v3_3/build.gradle @@ -5,6 +5,8 @@ apply from: "$rootDir/gradle/integration-test.gradle" apply from: "$rootDir/gradle/functional-test.gradle" dependencies { + kapt 'com.google.auto.service:auto-service:1.0' + api 'com.google.auto.service:auto-service:1.0' api project(':booster-android-gradle-compat') compileOnly 'com.android.tools.build:gradle:3.3.0' testImplementation 'com.android.tools.build:gradle:3.3.0' diff --git a/booster-android-gradle-v3_3/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_3/V33.kt b/booster-android-gradle-v3_3/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_3/V33.kt index 1d14c303c..d69368aee 100644 --- a/booster-android-gradle-v3_3/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_3/V33.kt +++ b/booster-android-gradle-v3_3/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_3/V33.kt @@ -21,11 +21,12 @@ import com.android.builder.core.VariantType import com.android.builder.model.ApiVersion import com.android.sdklib.AndroidVersion import com.android.sdklib.BuildToolInfo -import com.didiglobal.booster.android.gradle.v3_3.V33.variantScope import com.didiglobal.booster.gradle.AGPInterface import org.gradle.api.Project import org.gradle.api.Task import org.gradle.api.artifacts.ArtifactCollection +import org.gradle.api.file.FileCollection +import org.gradle.api.tasks.TaskProvider import java.io.File import java.util.TreeMap @@ -39,15 +40,12 @@ private val ARTIFACT_TYPES = arrayOf>( it.name() to it }.toMap() -@Suppress("UnstableApiUsage") -private fun BaseVariant.getFinalArtifactFiles(type: ArtifactType): Collection { - return variantScope.artifacts.getFinalArtifactFiles(type).files -} - -private val BaseVariant.globalScope: GlobalScope - get() = variantScope.globalScope +internal object V33 : AGPInterface { -object V33 : AGPInterface { + @Suppress("UnstableApiUsage") + private fun BaseVariant.getFinalArtifactFiles(type: ArtifactType): Collection { + return variantScope.artifacts.getFinalArtifactFiles(type).files + } override val scopeFullWithFeatures: MutableSet get() = TransformManager.SCOPE_FULL_WITH_FEATURES @@ -58,23 +56,23 @@ object V33 : AGPInterface { override val BaseVariant.project: Project get() = globalScope.project - override val BaseVariant.javaCompilerTask: Task - get() = javaCompileProvider.get() + override val BaseVariant.javaCompilerTaskProvider: TaskProvider + get() = javaCompileProvider - override val BaseVariant.preBuildTask: Task - get() = preBuildProvider.get() + override val BaseVariant.preBuildTaskProvider: TaskProvider + get() = preBuildProvider - override val BaseVariant.assembleTask: Task - get() = assembleProvider.get() + override val BaseVariant.assembleTaskProvider: TaskProvider + get() = assembleProvider - override val BaseVariant.mergeAssetsTask: Task - get() = mergeAssetsProvider.get() + override val BaseVariant.mergeAssetsTaskProvider: TaskProvider + get() = mergeAssetsProvider - override val BaseVariant.mergeResourcesTask: Task - get() = mergeResourcesProvider.get() + override val BaseVariant.mergeResourcesTaskProvider: TaskProvider + get() = mergeResourcesProvider - override val BaseVariant.processJavaResourcesTask: Task - get() = processJavaResourcesProvider.get() + override val BaseVariant.processJavaResourcesTaskProvider: TaskProvider + get() = processJavaResourcesProvider override fun BaseVariant.getTaskName(prefix: String): String { return variantScope.getTaskName(prefix) @@ -112,6 +110,14 @@ object V33 : AGPInterface { return variantScope.getArtifactCollection(configType, scope, artifactType) } + override fun BaseVariant.getArtifactFileCollection( + configType: AndroidArtifacts.ConsumedConfigType, + scope: AndroidArtifacts.ArtifactScope, + artifactType: AndroidArtifacts.ArtifactType + ): FileCollection { + return variantScope.getArtifactFileCollection(configType, scope, artifactType) + } + override val BaseVariant.allArtifacts: Map> get() = ARTIFACT_TYPES.entries.map { val artifacts: Collection by lazy { @@ -178,6 +184,9 @@ object V33 : AGPInterface { override val BaseVariant.buildTools: BuildToolInfo get() = globalScope.androidBuilder.buildToolInfo + override val BaseVariant.isPrecompileDependenciesResourcesEnabled: Boolean + get() = false + override val Context.task: TransformTask get() = this as TransformTask diff --git a/booster-android-gradle-v3_3/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_3/V33Factory.kt b/booster-android-gradle-v3_3/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_3/V33Factory.kt new file mode 100644 index 000000000..732d3e4cd --- /dev/null +++ b/booster-android-gradle-v3_3/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_3/V33Factory.kt @@ -0,0 +1,15 @@ +package com.didiglobal.booster.android.gradle.v3_3 + +import com.android.repository.Revision +import com.didiglobal.booster.gradle.AGPInterface +import com.didiglobal.booster.gradle.AGPInterfaceFactory +import com.google.auto.service.AutoService + +@AutoService(AGPInterfaceFactory::class) +class V33Factory : AGPInterfaceFactory { + + override val revision: Revision = Revision(3, 3, 0) + + override fun newAGPInterface(): AGPInterface = V33 + +} diff --git a/booster-android-gradle-v3_4/build.gradle b/booster-android-gradle-v3_4/build.gradle index b103e51b6..686414cbe 100644 --- a/booster-android-gradle-v3_4/build.gradle +++ b/booster-android-gradle-v3_4/build.gradle @@ -5,6 +5,8 @@ apply from: "$rootDir/gradle/integration-test.gradle" apply from: "$rootDir/gradle/functional-test.gradle" dependencies { + kapt 'com.google.auto.service:auto-service:1.0' + api 'com.google.auto.service:auto-service:1.0' api project(':booster-android-gradle-compat') compileOnly 'com.android.tools.build:gradle:3.4.0' testImplementation 'com.android.tools.build:gradle:3.4.0' diff --git a/booster-android-gradle-v3_4/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_4/V34.kt b/booster-android-gradle-v3_4/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_4/V34.kt index 7688dc80a..fe9f84f11 100644 --- a/booster-android-gradle-v3_4/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_4/V34.kt +++ b/booster-android-gradle-v3_4/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_4/V34.kt @@ -18,15 +18,17 @@ import com.android.build.gradle.internal.scope.MissingTaskOutputException import com.android.build.gradle.internal.scope.VariantScope import com.android.build.gradle.internal.scope.getOutputDir import com.android.build.gradle.internal.variant.BaseVariantData +import com.android.build.gradle.options.BooleanOption import com.android.builder.core.VariantType import com.android.builder.model.ApiVersion import com.android.sdklib.AndroidVersion import com.android.sdklib.BuildToolInfo -import com.didiglobal.booster.android.gradle.v3_4.V34.variantScope import com.didiglobal.booster.gradle.AGPInterface import org.gradle.api.Project import org.gradle.api.Task import org.gradle.api.artifacts.ArtifactCollection +import org.gradle.api.file.FileCollection +import org.gradle.api.tasks.TaskProvider import java.io.File import java.util.TreeMap @@ -40,16 +42,13 @@ private val ARTIFACT_TYPES = arrayOf>( it.name() to it }.toMap() -@Suppress("UnstableApiUsage") -private fun BaseVariant.getFinalArtifactFiles(type: ArtifactType): Collection { - return variantScope.artifacts.getFinalArtifactFiles(type).files -} - -private val BaseVariant.globalScope: GlobalScope - get() = variantScope.globalScope - object V34 : AGPInterface { + @Suppress("UnstableApiUsage") + private fun BaseVariant.getFinalArtifactFiles(type: ArtifactType): Collection { + return variantScope.artifacts.getFinalArtifactFiles(type).files + } + override val scopeFullWithFeatures: MutableSet get() = TransformManager.SCOPE_FULL_WITH_FEATURES @@ -59,23 +58,23 @@ object V34 : AGPInterface { override val BaseVariant.project: Project get() = globalScope.project - override val BaseVariant.javaCompilerTask: Task - get() = javaCompileProvider.get() + override val BaseVariant.javaCompilerTaskProvider: TaskProvider + get() = javaCompileProvider - override val BaseVariant.preBuildTask: Task - get() = preBuildProvider.get() + override val BaseVariant.preBuildTaskProvider: TaskProvider + get() = preBuildProvider - override val BaseVariant.assembleTask: Task - get() = assembleProvider.get() + override val BaseVariant.assembleTaskProvider: TaskProvider + get() = assembleProvider - override val BaseVariant.mergeAssetsTask: Task - get() = mergeAssetsProvider.get() + override val BaseVariant.mergeAssetsTaskProvider: TaskProvider + get() = mergeAssetsProvider - override val BaseVariant.mergeResourcesTask: Task - get() = mergeResourcesProvider.get() + override val BaseVariant.mergeResourcesTaskProvider: TaskProvider + get() = mergeResourcesProvider - override val BaseVariant.processJavaResourcesTask: Task - get() = processJavaResourcesProvider.get() + override val BaseVariant.processJavaResourcesTaskProvider: TaskProvider + get() = processJavaResourcesProvider override fun BaseVariant.getTaskName(prefix: String): String { return variantScope.getTaskName(prefix) @@ -113,6 +112,14 @@ object V34 : AGPInterface { return variantScope.getArtifactCollection(configType, scope, artifactType) } + override fun BaseVariant.getArtifactFileCollection( + configType: AndroidArtifacts.ConsumedConfigType, + scope: AndroidArtifacts.ArtifactScope, + artifactType: AndroidArtifacts.ArtifactType + ): FileCollection { + return variantScope.getArtifactFileCollection(configType, scope, artifactType) + } + override val BaseVariant.allArtifacts: Map> get() = ARTIFACT_TYPES.entries.map { val artifacts: Collection by lazy { @@ -179,6 +186,9 @@ object V34 : AGPInterface { override val BaseVariant.buildTools: BuildToolInfo get() = globalScope.androidBuilder.buildToolInfo + override val BaseVariant.isPrecompileDependenciesResourcesEnabled: Boolean + get() = false + override val Context.task: TransformTask get() = this as TransformTask diff --git a/booster-android-gradle-v3_4/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_4/V34Factory.kt b/booster-android-gradle-v3_4/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_4/V34Factory.kt new file mode 100644 index 000000000..bbf13d377 --- /dev/null +++ b/booster-android-gradle-v3_4/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_4/V34Factory.kt @@ -0,0 +1,15 @@ +package com.didiglobal.booster.android.gradle.v3_4 + +import com.android.repository.Revision +import com.didiglobal.booster.gradle.AGPInterface +import com.didiglobal.booster.gradle.AGPInterfaceFactory +import com.google.auto.service.AutoService + +@AutoService(AGPInterfaceFactory::class) +class V34Factory : AGPInterfaceFactory { + + override val revision: Revision = Revision(3, 4, 0) + + override fun newAGPInterface(): AGPInterface = V34 + +} diff --git a/booster-android-gradle-v3_5/build.gradle b/booster-android-gradle-v3_5/build.gradle index d33371369..4084399d0 100644 --- a/booster-android-gradle-v3_5/build.gradle +++ b/booster-android-gradle-v3_5/build.gradle @@ -5,6 +5,8 @@ apply from: "$rootDir/gradle/integration-test.gradle" apply from: "$rootDir/gradle/functional-test.gradle" dependencies { + kapt 'com.google.auto.service:auto-service:1.0' + api 'com.google.auto.service:auto-service:1.0' api project(':booster-android-gradle-compat') compileOnly 'com.android.tools.build:gradle:3.5.0' testImplementation 'com.android.tools.build:gradle:3.5.0' diff --git a/booster-android-gradle-v3_5/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_5/V35.kt b/booster-android-gradle-v3_5/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_5/V35.kt index 44c0a4b55..ac197e2f4 100644 --- a/booster-android-gradle-v3_5/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_5/V35.kt +++ b/booster-android-gradle-v3_5/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_5/V35.kt @@ -22,11 +22,12 @@ import com.android.builder.core.VariantType import com.android.builder.model.ApiVersion import com.android.sdklib.AndroidVersion import com.android.sdklib.BuildToolInfo -import com.didiglobal.booster.android.gradle.v3_5.V35.variantScope import com.didiglobal.booster.gradle.AGPInterface import org.gradle.api.Project import org.gradle.api.Task import org.gradle.api.artifacts.ArtifactCollection +import org.gradle.api.file.FileCollection +import org.gradle.api.tasks.TaskProvider import java.io.File import java.util.TreeMap @@ -40,15 +41,12 @@ private val ARTIFACT_TYPES = arrayOf>( it.name() to it }.toMap() -@Suppress("UnstableApiUsage") -private fun BaseVariant.getFinalArtifactFiles(type: ArtifactType): Collection { - return variantScope.artifacts.getFinalArtifactFiles(type).files -} - -private val BaseVariant.globalScope: GlobalScope - get() = variantScope.globalScope +internal object V35 : AGPInterface { -object V35 : AGPInterface { + @Suppress("UnstableApiUsage") + private fun BaseVariant.getFinalArtifactFiles(type: ArtifactType): Collection { + return variantScope.artifacts.getFinalArtifactFiles(type).files + } override val scopeFullWithFeatures: MutableSet get() = TransformManager.SCOPE_FULL_WITH_FEATURES @@ -59,23 +57,23 @@ object V35 : AGPInterface { override val BaseVariant.project: Project get() = globalScope.project - override val BaseVariant.javaCompilerTask: Task - get() = javaCompileProvider.get() + override val BaseVariant.javaCompilerTaskProvider: TaskProvider + get() = javaCompileProvider - override val BaseVariant.preBuildTask: Task - get() = preBuildProvider.get() + override val BaseVariant.preBuildTaskProvider: TaskProvider + get() = preBuildProvider - override val BaseVariant.assembleTask: Task - get() = assembleProvider.get() + override val BaseVariant.assembleTaskProvider: TaskProvider + get() = assembleProvider - override val BaseVariant.mergeAssetsTask: Task - get() = mergeAssetsProvider.get() + override val BaseVariant.mergeAssetsTaskProvider: TaskProvider + get() = mergeAssetsProvider - override val BaseVariant.mergeResourcesTask: Task - get() = mergeResourcesProvider.get() + override val BaseVariant.mergeResourcesTaskProvider: TaskProvider + get() = mergeResourcesProvider - override val BaseVariant.processJavaResourcesTask: Task - get() = processJavaResourcesProvider.get() + override val BaseVariant.processJavaResourcesTaskProvider: TaskProvider + get() = processJavaResourcesProvider override fun BaseVariant.getTaskName(prefix: String): String { return variantScope.getTaskName(prefix) @@ -113,6 +111,14 @@ object V35 : AGPInterface { return variantScope.getArtifactCollection(configType, scope, artifactType) } + override fun BaseVariant.getArtifactFileCollection( + configType: AndroidArtifacts.ConsumedConfigType, + scope: AndroidArtifacts.ArtifactScope, + artifactType: AndroidArtifacts.ArtifactType + ): FileCollection { + return variantScope.getArtifactFileCollection(configType, scope, artifactType) + } + @Suppress("UnstableApiUsage") override val BaseVariant.allArtifacts: Map> get() = ARTIFACT_TYPES.entries.map { @@ -196,6 +202,9 @@ object V35 : AGPInterface { override val BaseVariant.buildTools: BuildToolInfo get() = globalScope.sdkComponents.buildToolInfoProvider.get() + override val BaseVariant.isPrecompileDependenciesResourcesEnabled: Boolean + get() = false + override val Context.task: TransformTask get() = this as TransformTask diff --git a/booster-android-gradle-v3_5/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_5/V35Factory.kt b/booster-android-gradle-v3_5/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_5/V35Factory.kt new file mode 100644 index 000000000..dc6b86a1f --- /dev/null +++ b/booster-android-gradle-v3_5/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_5/V35Factory.kt @@ -0,0 +1,15 @@ +package com.didiglobal.booster.android.gradle.v3_5 + +import com.android.repository.Revision +import com.didiglobal.booster.gradle.AGPInterface +import com.didiglobal.booster.gradle.AGPInterfaceFactory +import com.google.auto.service.AutoService + +@AutoService(AGPInterfaceFactory::class) +class V35Factory : AGPInterfaceFactory { + + override val revision: Revision = Revision(3, 5, 0) + + override fun newAGPInterface(): AGPInterface = V35 + +} diff --git a/booster-android-gradle-v3_6/build.gradle b/booster-android-gradle-v3_6/build.gradle index 25f5b02a8..fea47241c 100644 --- a/booster-android-gradle-v3_6/build.gradle +++ b/booster-android-gradle-v3_6/build.gradle @@ -5,6 +5,8 @@ apply from: "$rootDir/gradle/integration-test.gradle" apply from: "$rootDir/gradle/functional-test.gradle" dependencies { + kapt 'com.google.auto.service:auto-service:1.0' + api 'com.google.auto.service:auto-service:1.0' api project(':booster-android-gradle-compat') compileOnly 'com.android.tools.build:gradle:3.6.0' testImplementation 'com.android.tools.build:gradle:3.6.0' diff --git a/booster-android-gradle-v3_6/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_6/V36.kt b/booster-android-gradle-v3_6/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_6/V36.kt index ba6f18b00..2aef0319a 100644 --- a/booster-android-gradle-v3_6/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_6/V36.kt +++ b/booster-android-gradle-v3_6/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_6/V36.kt @@ -15,18 +15,18 @@ import com.android.build.gradle.internal.scope.AnchorOutputType import com.android.build.gradle.internal.scope.GlobalScope import com.android.build.gradle.internal.scope.InternalArtifactType import com.android.build.gradle.internal.scope.VariantScope -import com.android.build.gradle.internal.scope.getOutputDir import com.android.build.gradle.internal.variant.BaseVariantData import com.android.builder.core.VariantType import com.android.builder.model.ApiVersion import com.android.sdklib.AndroidVersion import com.android.sdklib.BuildToolInfo -import com.didiglobal.booster.android.gradle.v3_6.V36.variantScope import com.didiglobal.booster.gradle.AGPInterface import org.gradle.api.Project import org.gradle.api.Task import org.gradle.api.artifacts.ArtifactCollection +import org.gradle.api.file.FileCollection import org.gradle.api.file.FileSystemLocation +import org.gradle.api.tasks.TaskProvider import java.io.File import java.util.TreeMap @@ -44,16 +44,13 @@ internal val ARTIFACT_TYPES = arrayOf( it.javaClass.simpleName to it }.toMap() -@Suppress("UnstableApiUsage") -private fun BaseVariant.getFinalArtifactFiles(type: ArtifactType): Collection { - return listOfNotNull(variantScope.artifacts.getFinalProduct(type).map(FileSystemLocation::getAsFile).orNull) -} - -private val BaseVariant.globalScope: GlobalScope - get() = variantScope.globalScope - object V36 : AGPInterface { + @Suppress("UnstableApiUsage") + private fun BaseVariant.getFinalArtifactFiles(type: ArtifactType): Collection { + return listOfNotNull(variantScope.artifacts.getFinalProduct(type).map(FileSystemLocation::getAsFile).orNull) + } + override val scopeFullWithFeatures: MutableSet get() = TransformManager.SCOPE_FULL_WITH_FEATURES @@ -63,23 +60,23 @@ object V36 : AGPInterface { override val BaseVariant.project: Project get() = globalScope.project - override val BaseVariant.javaCompilerTask: Task - get() = javaCompileProvider.get() + override val BaseVariant.javaCompilerTaskProvider: TaskProvider + get() = javaCompileProvider - override val BaseVariant.preBuildTask: Task - get() = preBuildProvider.get() + override val BaseVariant.preBuildTaskProvider: TaskProvider + get() = preBuildProvider - override val BaseVariant.assembleTask: Task - get() = assembleProvider.get() + override val BaseVariant.assembleTaskProvider: TaskProvider + get() = assembleProvider - override val BaseVariant.mergeAssetsTask: Task - get() = mergeAssetsProvider.get() + override val BaseVariant.mergeAssetsTaskProvider: TaskProvider + get() = mergeAssetsProvider - override val BaseVariant.mergeResourcesTask: Task - get() = mergeResourcesProvider.get() + override val BaseVariant.mergeResourcesTaskProvider: TaskProvider + get() = mergeResourcesProvider - override val BaseVariant.processJavaResourcesTask: Task - get() = processJavaResourcesProvider.get() + override val BaseVariant.processJavaResourcesTaskProvider: TaskProvider + get() = processJavaResourcesProvider override fun BaseVariant.getTaskName(prefix: String): String { return variantScope.getTaskName(prefix) @@ -117,6 +114,14 @@ object V36 : AGPInterface { return variantScope.getArtifactCollection(configType, scope, artifactType) } + override fun BaseVariant.getArtifactFileCollection( + configType: AndroidArtifacts.ConsumedConfigType, + scope: AndroidArtifacts.ArtifactScope, + artifactType: AndroidArtifacts.ArtifactType + ): FileCollection { + return variantScope.getArtifactFileCollection(configType, scope, artifactType) + } + override val BaseVariant.allArtifacts: Map> get() = ARTIFACT_TYPES.entries.map { val artifacts: Collection by lazy { @@ -180,6 +185,9 @@ object V36 : AGPInterface { override val BaseVariant.buildTools: BuildToolInfo get() = globalScope.sdkComponents.buildToolInfoProvider.get() + override val BaseVariant.isPrecompileDependenciesResourcesEnabled: Boolean + get() = variantScope.isPrecompileDependenciesResourcesEnabled + override val Context.task: TransformTask get() = javaClass.getDeclaredField("this$1").apply { isAccessible = true diff --git a/booster-android-gradle-v3_6/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_6/V36Factory.kt b/booster-android-gradle-v3_6/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_6/V36Factory.kt new file mode 100644 index 000000000..1d65da31f --- /dev/null +++ b/booster-android-gradle-v3_6/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_6/V36Factory.kt @@ -0,0 +1,15 @@ +package com.didiglobal.booster.android.gradle.v3_6 + +import com.android.repository.Revision +import com.didiglobal.booster.gradle.AGPInterface +import com.didiglobal.booster.gradle.AGPInterfaceFactory +import com.google.auto.service.AutoService + +@AutoService(AGPInterfaceFactory::class) +class V36Factory : AGPInterfaceFactory { + + override val revision: Revision = Revision(3, 6, 0) + + override fun newAGPInterface(): AGPInterface = V36 + +} diff --git a/booster-android-gradle-v4_0/build.gradle b/booster-android-gradle-v4_0/build.gradle index 82cb44a50..94b0d1476 100644 --- a/booster-android-gradle-v4_0/build.gradle +++ b/booster-android-gradle-v4_0/build.gradle @@ -5,6 +5,8 @@ apply from: "$rootDir/gradle/integration-test.gradle" apply from: "$rootDir/gradle/functional-test.gradle" dependencies { + kapt 'com.google.auto.service:auto-service:1.0' + api 'com.google.auto.service:auto-service:1.0' api project(':booster-android-gradle-compat') compileOnly 'com.android.tools.build:gradle:4.0.0' testImplementation 'com.android.tools.build:gradle:4.0.0' diff --git a/booster-android-gradle-v4_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_0/V40.kt b/booster-android-gradle-v4_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_0/V40.kt index e1639a461..0ff513009 100644 --- a/booster-android-gradle-v4_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_0/V40.kt +++ b/booster-android-gradle-v4_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_0/V40.kt @@ -23,7 +23,9 @@ import com.didiglobal.booster.gradle.AGPInterface import org.gradle.api.Project import org.gradle.api.Task import org.gradle.api.artifacts.ArtifactCollection +import org.gradle.api.file.FileCollection import org.gradle.api.file.FileSystemLocation +import org.gradle.api.tasks.TaskProvider import java.io.File import java.util.TreeMap @@ -39,16 +41,12 @@ internal val ARTIFACT_TYPES = arrayOf( it.javaClass.simpleName to it }.toMap() -@Suppress("UnstableApiUsage") -private fun BaseVariant.getFinalArtifactFiles(type: SingleArtifactType): Collection { - return listOfNotNull(variantScope.artifacts.getFinalProduct(type).map(FileSystemLocation::getAsFile).orNull) -} - -private val BaseVariant.globalScope: GlobalScope - get() = variantScope.globalScope +internal object V40 : AGPInterface { - -object V40 : AGPInterface { + @Suppress("UnstableApiUsage") + private fun BaseVariant.getFinalArtifactFiles(type: SingleArtifactType): Collection { + return listOfNotNull(variantScope.artifacts.getFinalProduct(type).map(FileSystemLocation::getAsFile).orNull) + } override val scopeFullWithFeatures: MutableSet get() = TransformManager.SCOPE_FULL_WITH_FEATURES @@ -59,23 +57,23 @@ object V40 : AGPInterface { override val BaseVariant.project: Project get() = globalScope.project - override val BaseVariant.javaCompilerTask: Task - get() = javaCompileProvider.get() + override val BaseVariant.javaCompilerTaskProvider: TaskProvider + get() = javaCompileProvider - override val BaseVariant.preBuildTask: Task - get() = preBuildProvider.get() + override val BaseVariant.preBuildTaskProvider: TaskProvider + get() = preBuildProvider - override val BaseVariant.assembleTask: Task - get() = assembleProvider.get() + override val BaseVariant.assembleTaskProvider: TaskProvider + get() = assembleProvider - override val BaseVariant.mergeAssetsTask: Task - get() = mergeAssetsProvider.get() + override val BaseVariant.mergeAssetsTaskProvider: TaskProvider + get() = mergeAssetsProvider - override val BaseVariant.mergeResourcesTask: Task - get() = mergeResourcesProvider.get() + override val BaseVariant.mergeResourcesTaskProvider: TaskProvider + get() = mergeResourcesProvider - override val BaseVariant.processJavaResourcesTask: Task - get() = processJavaResourcesProvider.get() + override val BaseVariant.processJavaResourcesTaskProvider: TaskProvider + get() = processJavaResourcesProvider override fun BaseVariant.getTaskName(prefix: String): String { return variantScope.getTaskName(prefix) @@ -113,6 +111,14 @@ object V40 : AGPInterface { return variantScope.getArtifactCollection(configType, scope, artifactType) } + override fun BaseVariant.getArtifactFileCollection( + configType: AndroidArtifacts.ConsumedConfigType, + scope: AndroidArtifacts.ArtifactScope, + artifactType: AndroidArtifacts.ArtifactType + ): FileCollection { + return variantScope.getArtifactFileCollection(configType, scope, artifactType) + } + override val BaseVariant.allArtifacts: Map> get() = ARTIFACT_TYPES.entries.map { val artifacts: Collection by lazy { @@ -175,6 +181,9 @@ object V40 : AGPInterface { override val BaseVariant.buildTools: BuildToolInfo get() = globalScope.sdkComponents.buildToolInfoProvider.get() + override val BaseVariant.isPrecompileDependenciesResourcesEnabled: Boolean + get() = variantScope.isPrecompileDependenciesResourcesEnabled + override val Context.task: TransformTask get() = javaClass.getDeclaredField("this$1").apply { isAccessible = true diff --git a/booster-android-gradle-v4_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_0/V40Factory.kt b/booster-android-gradle-v4_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_0/V40Factory.kt new file mode 100644 index 000000000..5ca2c0331 --- /dev/null +++ b/booster-android-gradle-v4_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_0/V40Factory.kt @@ -0,0 +1,15 @@ +package com.didiglobal.booster.android.gradle.v4_0 + +import com.android.repository.Revision +import com.didiglobal.booster.gradle.AGPInterface +import com.didiglobal.booster.gradle.AGPInterfaceFactory +import com.google.auto.service.AutoService + +@AutoService(AGPInterfaceFactory::class) +class V40Factory : AGPInterfaceFactory { + + override val revision: Revision = Revision(4, 0, 0) + + override fun newAGPInterface(): AGPInterface = V40 + +} diff --git a/booster-android-gradle-v4_1/build.gradle b/booster-android-gradle-v4_1/build.gradle index 7e4dbb61d..fc24cb46e 100644 --- a/booster-android-gradle-v4_1/build.gradle +++ b/booster-android-gradle-v4_1/build.gradle @@ -5,6 +5,8 @@ apply from: "$rootDir/gradle/integration-test.gradle" apply from: "$rootDir/gradle/functional-test.gradle" dependencies { + kapt 'com.google.auto.service:auto-service:1.0' + api 'com.google.auto.service:auto-service:1.0' api project(':booster-android-gradle-compat') compileOnly 'com.android.tools.build:gradle:4.1.0' testImplementation 'com.android.tools.build:gradle:4.1.0' diff --git a/booster-android-gradle-v4_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_1/V41.kt b/booster-android-gradle-v4_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_1/V41.kt index 37f2bdf7c..c61be5399 100644 --- a/booster-android-gradle-v4_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_1/V41.kt +++ b/booster-android-gradle-v4_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_1/V41.kt @@ -26,7 +26,9 @@ import com.didiglobal.booster.gradle.AGPInterface import org.gradle.api.Project import org.gradle.api.Task import org.gradle.api.artifacts.ArtifactCollection +import org.gradle.api.file.FileCollection import org.gradle.api.file.FileSystemLocation +import org.gradle.api.tasks.TaskProvider import java.io.File import java.util.TreeMap @@ -43,25 +45,21 @@ private val ARTIFACT_TYPES = arrayOf( it.javaClass.simpleName to it }.toMap() -private val BaseVariant.componentProperties: ComponentPropertiesImpl - get() = BaseVariantImpl::class.java.getDeclaredField("componentProperties").apply { - isAccessible = true - }.get(this) as ComponentPropertiesImpl +internal object V41 : AGPInterface { -@Suppress("UnstableApiUsage") -private fun BaseVariant.getFinalArtifactFiles(type: Artifact.SingleArtifact): Collection { - return listOfNotNull(artifacts.get(type).map(FileSystemLocation::getAsFile).orNull) -} - -@Suppress("DEPRECATION") -private val BaseVariant.globalScope: GlobalScope - get() = componentProperties.globalScope + private val BaseVariant.componentProperties: ComponentPropertiesImpl + get() = BaseVariantImpl::class.java.getDeclaredField("componentProperties").apply { + isAccessible = true + }.get(this) as ComponentPropertiesImpl -@Suppress("UnstableApiUsage") -private val BaseVariant.artifacts: ArtifactsImpl - get() = componentProperties.artifacts + @Suppress("UnstableApiUsage") + private fun BaseVariant.getFinalArtifactFiles(type: Artifact.SingleArtifact): Collection { + return listOfNotNull(artifacts.get(type).map(FileSystemLocation::getAsFile).orNull) + } -object V41 : AGPInterface { + @Suppress("UnstableApiUsage") + private val BaseVariant.artifacts: ArtifactsImpl + get() = componentProperties.artifacts override val scopeFullWithFeatures: MutableSet get() = TransformManager.SCOPE_FULL_WITH_FEATURES @@ -72,23 +70,23 @@ object V41 : AGPInterface { override val BaseVariant.project: Project get() = globalScope.project - override val BaseVariant.javaCompilerTask: Task - get() = javaCompileProvider.get() + override val BaseVariant.javaCompilerTaskProvider: TaskProvider + get() = javaCompileProvider - override val BaseVariant.preBuildTask: Task - get() = preBuildProvider.get() + override val BaseVariant.preBuildTaskProvider: TaskProvider + get() = preBuildProvider - override val BaseVariant.assembleTask: Task - get() = assembleProvider.get() + override val BaseVariant.assembleTaskProvider: TaskProvider + get() = assembleProvider - override val BaseVariant.mergeAssetsTask: Task - get() = mergeAssetsProvider.get() + override val BaseVariant.mergeAssetsTaskProvider: TaskProvider + get() = mergeAssetsProvider - override val BaseVariant.mergeResourcesTask: Task - get() = mergeResourcesProvider.get() + override val BaseVariant.mergeResourcesTaskProvider: TaskProvider + get() = mergeResourcesProvider - override val BaseVariant.processJavaResourcesTask: Task - get() = processJavaResourcesProvider.get() + override val BaseVariant.processJavaResourcesTaskProvider: TaskProvider + get() = processJavaResourcesProvider override fun BaseVariant.getTaskName(prefix: String): String { return componentProperties.computeTaskName(prefix) @@ -126,6 +124,14 @@ object V41 : AGPInterface { return componentProperties.variantDependencies.getArtifactCollection(configType, scope, artifactType) } + override fun BaseVariant.getArtifactFileCollection( + configType: AndroidArtifacts.ConsumedConfigType, + scope: AndroidArtifacts.ArtifactScope, + artifactType: AndroidArtifacts.ArtifactType + ): FileCollection { + return componentProperties.variantDependencies.getArtifactFileCollection(configType, scope, artifactType) + } + override val BaseVariant.allArtifacts: Map> get() = ARTIFACT_TYPES.entries.map { val artifacts: Collection by lazy { @@ -184,6 +190,9 @@ object V41 : AGPInterface { override val BaseVariant.buildTools: BuildToolInfo get() = globalScope.sdkComponents.get().buildToolInfoProvider.get() + override val BaseVariant.isPrecompileDependenciesResourcesEnabled: Boolean + get() = variantScope.isPrecompileDependenciesResourcesEnabled + override val Context.task: TransformTask get() = javaClass.getDeclaredField("this$1").apply { isAccessible = true diff --git a/booster-android-gradle-v4_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_1/V41Factory.kt b/booster-android-gradle-v4_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_1/V41Factory.kt new file mode 100644 index 000000000..9fb0adcb3 --- /dev/null +++ b/booster-android-gradle-v4_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_1/V41Factory.kt @@ -0,0 +1,15 @@ +package com.didiglobal.booster.android.gradle.v4_1 + +import com.android.repository.Revision +import com.didiglobal.booster.gradle.AGPInterface +import com.didiglobal.booster.gradle.AGPInterfaceFactory +import com.google.auto.service.AutoService + +@AutoService(AGPInterfaceFactory::class) +class V41Factory : AGPInterfaceFactory { + + override val revision: Revision = Revision(4, 1, 0) + + override fun newAGPInterface(): AGPInterface = V41 + +} diff --git a/booster-android-gradle-v4_2/build.gradle b/booster-android-gradle-v4_2/build.gradle index c4ac72ddd..c07f4fbe9 100644 --- a/booster-android-gradle-v4_2/build.gradle +++ b/booster-android-gradle-v4_2/build.gradle @@ -5,6 +5,8 @@ apply from: "$rootDir/gradle/integration-test.gradle" apply from: "$rootDir/gradle/functional-test.gradle" dependencies { + kapt 'com.google.auto.service:auto-service:1.0' + api 'com.google.auto.service:auto-service:1.0' api project(':booster-android-gradle-compat') compileOnly 'com.android.tools.build:gradle:4.2.0' testImplementation 'com.android.tools.build:gradle:4.2.0' diff --git a/booster-android-gradle-v4_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42.kt b/booster-android-gradle-v4_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42.kt index ca9f3cac7..d8da6d465 100644 --- a/booster-android-gradle-v4_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42.kt +++ b/booster-android-gradle-v4_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42.kt @@ -6,7 +6,6 @@ import com.android.build.api.artifact.impl.ArtifactsImpl import com.android.build.api.component.impl.ComponentImpl import com.android.build.api.transform.Context import com.android.build.api.transform.QualifiedContent -import com.android.build.gradle.BaseExtension import com.android.build.gradle.api.ApplicationVariant import com.android.build.gradle.api.BaseVariant import com.android.build.gradle.api.LibraryVariant @@ -24,11 +23,12 @@ import com.android.builder.model.ApiVersion import com.android.sdklib.AndroidVersion import com.android.sdklib.BuildToolInfo import com.didiglobal.booster.gradle.AGPInterface -import com.didiglobal.booster.gradle.getAndroid import org.gradle.api.Project import org.gradle.api.Task import org.gradle.api.artifacts.ArtifactCollection +import org.gradle.api.file.FileCollection import org.gradle.api.file.FileSystemLocation +import org.gradle.api.tasks.TaskProvider import java.io.File import java.util.TreeMap @@ -45,25 +45,21 @@ private val ARTIFACT_TYPES = arrayOf( it.javaClass.simpleName to it }.toMap() -private val BaseVariant.component: ComponentImpl - get() = BaseVariantImpl::class.java.getDeclaredField("component").apply { - isAccessible = true - }.get(this) as ComponentImpl +internal object V42 : AGPInterface { -@Suppress("UnstableApiUsage") -private fun BaseVariant.getFinalArtifactFiles(type: Artifact.SingleArtifact): Collection { - return listOfNotNull(artifacts.get(type).map(FileSystemLocation::getAsFile).orNull) -} - -@Suppress("DEPRECATION") -private val BaseVariant.globalScope: GlobalScope - get() = component.globalScope + private val BaseVariant.component: ComponentImpl + get() = BaseVariantImpl::class.java.getDeclaredField("component").apply { + isAccessible = true + }.get(this) as ComponentImpl -@Suppress("UnstableApiUsage") -private val BaseVariant.artifacts: ArtifactsImpl - get() = component.artifacts + @Suppress("UnstableApiUsage") + private fun BaseVariant.getFinalArtifactFiles(type: Artifact.SingleArtifact): Collection { + return listOfNotNull(artifacts.get(type).map(FileSystemLocation::getAsFile).orNull) + } -object V42 : AGPInterface { + @Suppress("UnstableApiUsage") + private val BaseVariant.artifacts: ArtifactsImpl + get() = component.artifacts override val scopeFullWithFeatures: MutableSet get() = TransformManager.SCOPE_FULL_WITH_FEATURES @@ -74,23 +70,23 @@ object V42 : AGPInterface { override val BaseVariant.project: Project get() = globalScope.project - override val BaseVariant.javaCompilerTask: Task - get() = javaCompileProvider.get() + override val BaseVariant.javaCompilerTaskProvider: TaskProvider + get() = javaCompileProvider - override val BaseVariant.preBuildTask: Task - get() = preBuildProvider.get() + override val BaseVariant.preBuildTaskProvider: TaskProvider + get() = preBuildProvider - override val BaseVariant.assembleTask: Task - get() = assembleProvider.get() + override val BaseVariant.assembleTaskProvider: TaskProvider + get() = assembleProvider - override val BaseVariant.mergeAssetsTask: Task - get() = mergeAssetsProvider.get() + override val BaseVariant.mergeAssetsTaskProvider: TaskProvider + get() = mergeAssetsProvider - override val BaseVariant.mergeResourcesTask: Task - get() = mergeResourcesProvider.get() + override val BaseVariant.mergeResourcesTaskProvider: TaskProvider + get() = mergeResourcesProvider - override val BaseVariant.processJavaResourcesTask: Task - get() = processJavaResourcesProvider.get() + override val BaseVariant.processJavaResourcesTaskProvider: TaskProvider + get() = processJavaResourcesProvider override fun BaseVariant.getTaskName(prefix: String): String { return component.computeTaskName(prefix) @@ -129,6 +125,14 @@ object V42 : AGPInterface { return component.variantDependencies.getArtifactCollection(configType, scope, artifactType) } + override fun BaseVariant.getArtifactFileCollection( + configType: AndroidArtifacts.ConsumedConfigType, + scope: AndroidArtifacts.ArtifactScope, + artifactType: AndroidArtifacts.ArtifactType + ): FileCollection { + return component.variantDependencies.getArtifactFileCollection(configType, scope, artifactType) + } + override val BaseVariant.allArtifacts: Map> get() = ARTIFACT_TYPES.entries.map { val artifacts: Collection by lazy { @@ -194,6 +198,9 @@ object V42 : AGPInterface { return globalScope.sdkComponents.get().sdkLoader(compileSdkVersion, buildToolRevision).buildToolInfoProvider.get() } + override val BaseVariant.isPrecompileDependenciesResourcesEnabled: Boolean + get() = component.isPrecompileDependenciesResourcesEnabled + override val Context.task: TransformTask get() = javaClass.getDeclaredField("this$1").apply { isAccessible = true diff --git a/booster-android-gradle-v4_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42Factory.kt b/booster-android-gradle-v4_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42Factory.kt new file mode 100644 index 000000000..e62782bf6 --- /dev/null +++ b/booster-android-gradle-v4_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42Factory.kt @@ -0,0 +1,15 @@ +package com.didiglobal.booster.android.gradle.v4_2 + +import com.android.repository.Revision +import com.didiglobal.booster.gradle.AGPInterface +import com.didiglobal.booster.gradle.AGPInterfaceFactory +import com.google.auto.service.AutoService + +@AutoService(AGPInterfaceFactory::class) +class V42Factory : AGPInterfaceFactory { + + override val revision: Revision = Revision(4, 2, 0) + + override fun newAGPInterface(): AGPInterface = V42 + +} diff --git a/booster-android-gradle-v7_0/README.md b/booster-android-gradle-v7_0/README.md new file mode 100644 index 000000000..bb2f24ac0 --- /dev/null +++ b/booster-android-gradle-v7_0/README.md @@ -0,0 +1,6 @@ +# booster-android-gradle-v7_0 + +This module is an implementation of [booster-android-gradle-api](../booster-android-gradle-api) for Android gradle plugin above 7.0 + +本模块是 [booster-android-gradle-api](../booster-android-gradle-api) 针对 Android gradle plugin 7.0 以上版本的实现。 + diff --git a/booster-android-gradle-v7_0/build.gradle b/booster-android-gradle-v7_0/build.gradle new file mode 100644 index 000000000..06c24957e --- /dev/null +++ b/booster-android-gradle-v7_0/build.gradle @@ -0,0 +1,27 @@ +apply plugin: 'java-gradle-plugin' + +apply from: "$rootDir/gradle/booster.gradle" +apply from: "$rootDir/gradle/integration-test.gradle" +apply from: "$rootDir/gradle/functional-test.gradle" + +dependencies { + kapt 'com.google.auto.service:auto-service:1.0' + api 'com.google.auto.service:auto-service:1.0' + api project(':booster-android-gradle-compat') + compileOnly 'com.android.tools:repository:30.0.0' + compileOnly 'com.android.tools:common:30.0.0' + compileOnly 'com.android.tools:sdklib:30.0.0' + compileOnly 'com.android.tools.build:gradle:7.0.0' + testImplementation 'com.android.tools.build:gradle:7.0.0' + testImplementation 'com.android.tools:common:30.0.0' + testImplementation 'io.bootstage.testkit:testkit-gradle-plugin:1.1.0' + testImplementation project(':booster-build') +} + +jar { + exclude('com/android/sdklib/BuildToolInfo.class') +} + +gradlePlugin { + testSourceSets sourceSets.functionalTest, sourceSets.integrationTest +} \ No newline at end of file diff --git a/booster-android-gradle-v3_2/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_2/V32IntegrationTest.kt b/booster-android-gradle-v7_0/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v7_0/V70IntegrationTest.kt similarity index 92% rename from booster-android-gradle-v3_2/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_2/V32IntegrationTest.kt rename to booster-android-gradle-v7_0/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v7_0/V70IntegrationTest.kt index 18844958f..34bc3b0df 100644 --- a/booster-android-gradle-v3_2/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_2/V32IntegrationTest.kt +++ b/booster-android-gradle-v7_0/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v7_0/V70IntegrationTest.kt @@ -1,11 +1,10 @@ -package com.didiglobal.booster.android.gradle.v3_2 +package com.didiglobal.booster.android.gradle.v7_0 import com.android.build.gradle.AppExtension import com.android.build.gradle.BaseExtension import com.android.build.gradle.LibraryExtension import com.android.build.gradle.api.BaseVariant import com.android.builder.core.VariantTypeImpl -import com.android.sdklib.BuildToolInfo import com.didiglobal.booster.gradle.getAndroid import com.didiglobal.booster.kotlinx.search import io.bootstage.testkit.gradle.Case @@ -28,29 +27,29 @@ import kotlin.test.fail private const val MIN_SDK_VERSION = 18 -private const val TARGET_SDK_VERSION = 26 +private const val TARGET_SDK_VERSION = 30 -private val AGP = V32 +private val AGP = V70 private val ARGS = arrayOf( "assemble", "-S", "-Pbooster_version=${Build.VERSION}", - "-Pandroid_gradle_version=3.2.0", - "-Pcompile_sdk_version=28", - "-Pbuild_tools_version=26.0.3", + "-Pandroid_gradle_version=7.0.0", + "-Pcompile_sdk_version=30", + "-Pbuild_tools_version=29.0.2", "-Pmin_sdk_version=${MIN_SDK_VERSION}", "-Ptarget_sdk_version=${TARGET_SDK_VERSION}" ) @Suppress("RemoveCurlyBracesFromTemplate", "FunctionName") -abstract class V32IntegrationTest(val isLib: Boolean) { +abstract class V70IntegrationTest(val isLib: Boolean) { private val projectDir = TemporaryFolder() @get:Rule val ruleChain: TestRule = rule(projectDir) { rule(LocalProperties(projectDir::getRoot)) { - GradleExecutor(projectDir::getRoot, "4.6", *ARGS) + GradleExecutor(projectDir::getRoot, "7.0", *ARGS) } } @@ -206,16 +205,16 @@ abstract class V32IntegrationTest(val isLib: Boolean) { fun `test AGPInterface#allClasses`() { } - @Test - @Case(BuildToolsTestUnit::class) - fun `test AGPInterface#buildTools`() { - } +// @Test +// @Case(BuildToolsTestUnit::class) +// fun `test AGPInterface#buildTools`() { +// } } -class V32AppIntegrationTest : V32IntegrationTest(false) +class V70AppIntegrationTest : V70IntegrationTest(false) -class V32LibIntegrationTest : V32IntegrationTest(true) +class V70LibIntegrationTest : V70IntegrationTest(true) class ScopeFullWithFeaturesTest : TestCase { override fun apply(project: Project) { @@ -419,6 +418,12 @@ class ApkTestUnit : VariantTestCase() { } class MergedManifestsTestUnit : VariantTestCase() { + override fun apply(project: Project) { + if (project.plugins.hasPlugin("com.android.application")) { + super.apply(project) + } + } + override fun apply(variant: BaseVariant) { AGP.run { variant.assembleTask }.doFirst { val mergedManifests = AGP.run { variant.mergedManifests }.search { @@ -528,14 +533,14 @@ class AllClassesTestUnit : VariantTestCase() { } } -class BuildToolsTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - val buildTools = AGP.run { variant.buildTools } - assertNotNull(buildTools) - BuildToolInfo.PathId.values().map { - it.name to buildTools.getPath(it) - }.forEach { (k, v) -> - println(" - $k => $v") - } - } -} +//class BuildToolsTestUnit : VariantTestCase() { +// override fun apply(variant: BaseVariant) { +// val buildTools = AGP.run { variant.buildTools } +// assertNotNull(buildTools) +// BuildToolInfo.PathId.values().map { +// it.name to buildTools.getPath(it) +// }.forEach { (k, v) -> +// println(" - $k => $v") +// } +// } +//} diff --git a/booster-android-gradle-v3_2/src/integrationTest/resources/app.gradle b/booster-android-gradle-v7_0/src/integrationTest/resources/app.gradle similarity index 99% rename from booster-android-gradle-v3_2/src/integrationTest/resources/app.gradle rename to booster-android-gradle-v7_0/src/integrationTest/resources/app.gradle index a90b07625..3d8254090 100644 --- a/booster-android-gradle-v3_2/src/integrationTest/resources/app.gradle +++ b/booster-android-gradle-v7_0/src/integrationTest/resources/app.gradle @@ -12,7 +12,7 @@ buildscript { classpath("com.didiglobal.booster:booster-gradle-plugin:${project.booster_version}") { exclude group: 'com.google.guava' } - classpath "io.bootstage.testkit:testkit-gradle-plugin:1.4.0" + classpath "io.bootstage.testkit:testkit-gradle-plugin:1.1.0" } } diff --git a/booster-android-gradle-v3_0/src/integrationTest/resources/buildSrc/build.gradle b/booster-android-gradle-v7_0/src/integrationTest/resources/buildSrc/build.gradle similarity index 99% rename from booster-android-gradle-v3_0/src/integrationTest/resources/buildSrc/build.gradle rename to booster-android-gradle-v7_0/src/integrationTest/resources/buildSrc/build.gradle index 4d7b663b3..fe29d688a 100644 --- a/booster-android-gradle-v3_0/src/integrationTest/resources/buildSrc/build.gradle +++ b/booster-android-gradle-v7_0/src/integrationTest/resources/buildSrc/build.gradle @@ -22,5 +22,5 @@ dependencies { implementation("com.didiglobal.booster:booster-android-gradle-api:${project.booster_version}") { exclude group: 'com.google.guava' } - implementation "io.bootstage.testkit:testkit-gradle-plugin:1.4.0" + implementation "io.bootstage.testkit:testkit-gradle-plugin:1.1.0" } diff --git a/booster-android-gradle-v3_0/src/integrationTest/resources/lib.gradle b/booster-android-gradle-v7_0/src/integrationTest/resources/lib.gradle similarity index 99% rename from booster-android-gradle-v3_0/src/integrationTest/resources/lib.gradle rename to booster-android-gradle-v7_0/src/integrationTest/resources/lib.gradle index 99bbebeb1..6164180c7 100644 --- a/booster-android-gradle-v3_0/src/integrationTest/resources/lib.gradle +++ b/booster-android-gradle-v7_0/src/integrationTest/resources/lib.gradle @@ -12,7 +12,7 @@ buildscript { classpath("com.didiglobal.booster:booster-gradle-plugin:${project.booster_version}") { exclude group: 'com.google.guava' } - classpath "io.bootstage.testkit:testkit-gradle-plugin:1.4.0" + classpath "io.bootstage.testkit:testkit-gradle-plugin:1.1.0" } } diff --git a/booster-android-gradle-v3_0/src/integrationTest/resources/src/main/AndroidManifest.xml b/booster-android-gradle-v7_0/src/integrationTest/resources/src/main/AndroidManifest.xml similarity index 100% rename from booster-android-gradle-v3_0/src/integrationTest/resources/src/main/AndroidManifest.xml rename to booster-android-gradle-v7_0/src/integrationTest/resources/src/main/AndroidManifest.xml diff --git a/booster-android-gradle-v3_0/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/MainActivity.java b/booster-android-gradle-v7_0/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/MainActivity.java similarity index 100% rename from booster-android-gradle-v3_0/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/MainActivity.java rename to booster-android-gradle-v7_0/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/MainActivity.java diff --git a/booster-android-gradle-v3_0/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/TestApplication.java b/booster-android-gradle-v7_0/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/TestApplication.java similarity index 100% rename from booster-android-gradle-v3_0/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/TestApplication.java rename to booster-android-gradle-v7_0/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/TestApplication.java diff --git a/booster-android-gradle-v3_0/src/integrationTest/resources/src/main/res/values/strings.xml b/booster-android-gradle-v7_0/src/integrationTest/resources/src/main/res/values/strings.xml similarity index 100% rename from booster-android-gradle-v3_0/src/integrationTest/resources/src/main/res/values/strings.xml rename to booster-android-gradle-v7_0/src/integrationTest/resources/src/main/res/values/strings.xml diff --git a/booster-android-gradle-v7_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_0/V70.kt b/booster-android-gradle-v7_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_0/V70.kt new file mode 100644 index 000000000..cf5480cfb --- /dev/null +++ b/booster-android-gradle-v7_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_0/V70.kt @@ -0,0 +1,224 @@ +package com.didiglobal.booster.android.gradle.v7_0 + +import com.android.build.api.artifact.Artifact +import com.android.build.api.artifact.SingleArtifact +import com.android.build.api.artifact.impl.ArtifactsImpl +import com.android.build.api.component.impl.ComponentImpl +import com.android.build.api.transform.Context +import com.android.build.api.transform.QualifiedContent +import com.android.build.gradle.api.ApplicationVariant +import com.android.build.gradle.api.BaseVariant +import com.android.build.gradle.api.LibraryVariant +import com.android.build.gradle.internal.api.BaseVariantImpl +import com.android.build.gradle.internal.api.artifact.SourceArtifactType +import com.android.build.gradle.internal.pipeline.TransformManager +import com.android.build.gradle.internal.pipeline.TransformTask +import com.android.build.gradle.internal.publishing.AndroidArtifacts +import com.android.build.gradle.internal.scope.AnchorOutputType +import com.android.build.gradle.internal.scope.BuildArtifactType +import com.android.build.gradle.internal.scope.GlobalScope +import com.android.build.gradle.internal.scope.InternalArtifactType +import com.android.build.gradle.internal.scope.VariantScope +import com.android.build.gradle.internal.variant.BaseVariantData +import com.android.builder.core.VariantType +import com.android.builder.model.ApiVersion +import com.android.sdklib.AndroidVersion +import com.android.sdklib.BuildToolInfo +import com.didiglobal.booster.gradle.AGPInterface +import org.gradle.api.Project +import org.gradle.api.Task +import org.gradle.api.artifacts.ArtifactCollection +import org.gradle.api.file.FileCollection +import org.gradle.api.file.FileSystemLocation +import org.gradle.api.tasks.TaskProvider +import java.io.File +import java.util.TreeMap + +@Suppress("UnstableApiUsage") +private val ARTIFACT_TYPES = arrayOf( + AnchorOutputType::class, + BuildArtifactType::class, + InternalArtifactType::class, + SingleArtifact::class, + SourceArtifactType::class +).map { + it.sealedSubclasses +}.flatten().map { + it.objectInstance as SingleArtifact +}.map { + it.javaClass.simpleName to it +}.toMap() + +internal object V70 : AGPInterface { + + private val BaseVariant.component: ComponentImpl + get() = BaseVariantImpl::class.java.getDeclaredField("component").apply { + isAccessible = true + }.get(this) as ComponentImpl + + @Suppress("UnstableApiUsage") + private fun BaseVariant.getFinalArtifactFiles(type: Artifact.Single): Collection { + return listOfNotNull(artifacts.get(type).map(FileSystemLocation::getAsFile).orNull) + } + + @Suppress("UnstableApiUsage") + private val BaseVariant.artifacts: ArtifactsImpl + get() = component.artifacts + + override val scopeFullWithFeatures: MutableSet + get() = TransformManager.SCOPE_FULL_WITH_FEATURES + + override val scopeFullLibraryWithFeatures: MutableSet + get() = (TransformManager.SCOPE_FEATURES + QualifiedContent.Scope.PROJECT).toMutableSet() + + override val BaseVariant.project: Project + get() = globalScope.run { + javaClass.getDeclaredField("project").apply { + isAccessible = true + }.get(this) as Project + } + + override val BaseVariant.javaCompilerTaskProvider: TaskProvider + get() = javaCompileProvider + + override val BaseVariant.preBuildTaskProvider: TaskProvider + get() = preBuildProvider + + override val BaseVariant.assembleTaskProvider: TaskProvider + get() = assembleProvider + + override val BaseVariant.mergeAssetsTaskProvider: TaskProvider + get() = mergeAssetsProvider + + override val BaseVariant.mergeResourcesTaskProvider: TaskProvider + get() = mergeResourcesProvider + + override val BaseVariant.processJavaResourcesTaskProvider: TaskProvider + get() = processJavaResourcesProvider + + override fun BaseVariant.getTaskName(prefix: String): String { + return component.computeTaskName(prefix) + } + + override fun BaseVariant.getTaskName(prefix: String, suffix: String): String { + return component.computeTaskName(prefix, suffix) + } + + override val BaseVariant.variantData: BaseVariantData + get() = javaClass.getDeclaredMethod("getVariantData").apply { + isAccessible = true + }.invoke(this) as BaseVariantData + + override val BaseVariant.variantScope: VariantScope + get() = component.variantScope + + @Suppress("DEPRECATION") + override val BaseVariant.globalScope: GlobalScope + get() = component.globalScope + + override val BaseVariant.originalApplicationId: String + get() = component.variantDslInfo.namespace.get() + + override val BaseVariant.hasDynamicFeature: Boolean + get() = globalScope.hasDynamicFeatures() + + override val BaseVariant.rawAndroidResources: Collection + get() = component.variantData.allRawAndroidResources.files + + override fun BaseVariant.getArtifactCollection( + configType: AndroidArtifacts.ConsumedConfigType, + scope: AndroidArtifacts.ArtifactScope, + artifactType: AndroidArtifacts.ArtifactType + ): ArtifactCollection { + return component.variantDependencies.getArtifactCollection(configType, scope, artifactType) + } + + override fun BaseVariant.getArtifactFileCollection( + configType: AndroidArtifacts.ConsumedConfigType, + scope: AndroidArtifacts.ArtifactScope, + artifactType: AndroidArtifacts.ArtifactType + ): FileCollection { + return component.variantDependencies.getArtifactFileCollection(configType, scope, artifactType) + } + + override val BaseVariant.allArtifacts: Map> + get() = ARTIFACT_TYPES.entries.map { + val artifacts: Collection by lazy { + getFinalArtifactFiles(it.value) + } + it.key to artifacts + }.toMap(TreeMap()) + + override val BaseVariant.minSdkVersion: AndroidVersion + get() = component.minSdkVersion.run { + @Suppress("UnstableApiUsage") + AndroidVersion(apiLevel, codename) + } + + override val BaseVariant.targetSdkVersion: ApiVersion + get() = component.variantDslInfo.targetSdkVersion + + override val BaseVariant.variantType: VariantType + get() = component.variantType + + override val BaseVariant.aar: Collection + get() = getFinalArtifactFiles(SingleArtifact.AAR) + + override val BaseVariant.apk: Collection + get() = getFinalArtifactFiles(SingleArtifact.APK) + + override val BaseVariant.mergedManifests: Collection + get() = getFinalArtifactFiles(SingleArtifact.MERGED_MANIFEST) + + override val BaseVariant.mergedRes: Collection + get() = getFinalArtifactFiles(InternalArtifactType.MERGED_RES) + + override val BaseVariant.mergedAssets: Collection + get() = when (this) { + is ApplicationVariant -> getFinalArtifactFiles(InternalArtifactType.MERGED_ASSETS) + is LibraryVariant -> getFinalArtifactFiles(InternalArtifactType.LIBRARY_ASSETS) + else -> TODO("Unsupported variant type: $variantType") + } + + override val BaseVariant.processedRes: Collection + get() = getFinalArtifactFiles(InternalArtifactType.PROCESSED_RES) + + override val BaseVariant.symbolList: Collection + get() = when (this) { + is ApplicationVariant -> getFinalArtifactFiles(InternalArtifactType.RUNTIME_SYMBOL_LIST) + is LibraryVariant -> getFinalArtifactFiles(InternalArtifactType.COMPILE_SYMBOL_LIST) + else -> TODO("Unsupported variant type : $variantType") + } + + override val BaseVariant.symbolListWithPackageName: Collection + get() = getFinalArtifactFiles(InternalArtifactType.SYMBOL_LIST_WITH_PACKAGE_NAME) + + override val BaseVariant.dataBindingDependencyArtifacts: Collection + get() = getFinalArtifactFiles(InternalArtifactType.DATA_BINDING_DEPENDENCY_ARTIFACTS) + + override val BaseVariant.allClasses: Collection + get() = getFinalArtifactFiles(InternalArtifactType.JAVAC) + + override val BaseVariant.buildTools: BuildToolInfo + get() { + val compileSdkVersion = project.provider { globalScope.extension.compileSdkVersion!! } + val buildToolRevision = project.provider(globalScope.extension::buildToolsRevision) + return globalScope.sdkComponents.get().sdkLoader(compileSdkVersion, buildToolRevision).buildToolInfoProvider.get() + } + + override val BaseVariant.isPrecompileDependenciesResourcesEnabled: Boolean + get() = component.isPrecompileDependenciesResourcesEnabled + + override val Context.task: TransformTask + get() = javaClass.getDeclaredField("this$1").apply { + isAccessible = true + }.get(this).run { + javaClass.getDeclaredField("this$0").apply { + isAccessible = true + }.get(this) + } as TransformTask + + override val Project.aapt2Enabled: Boolean + get() = true + +} diff --git a/booster-android-gradle-v7_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_0/V70Factory.kt b/booster-android-gradle-v7_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_0/V70Factory.kt new file mode 100644 index 000000000..2d91acecc --- /dev/null +++ b/booster-android-gradle-v7_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_0/V70Factory.kt @@ -0,0 +1,15 @@ +package com.didiglobal.booster.android.gradle.v7_0 + +import com.android.repository.Revision +import com.didiglobal.booster.gradle.AGPInterface +import com.didiglobal.booster.gradle.AGPInterfaceFactory +import com.google.auto.service.AutoService + +@AutoService(AGPInterfaceFactory::class) +class V70Factory : AGPInterfaceFactory { + + override val revision: Revision = Revision(7, 0, 0) + + override fun newAGPInterface(): AGPInterface = V70 + +} diff --git a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/AnalyserTask.kt b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/AnalyserTask.kt index a06ebb3b4..7fc9f2131 100644 --- a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/AnalyserTask.kt +++ b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/AnalyserTask.kt @@ -4,7 +4,7 @@ import com.android.build.gradle.api.BaseVariant import com.didiglobal.booster.gradle.extension import com.didiglobal.booster.kotlinx.file import com.didiglobal.booster.transform.artifacts -import org.gradle.api.internal.AbstractTask +import org.gradle.api.DefaultTask import org.gradle.api.tasks.Input import org.gradle.api.tasks.TaskAction import java.io.File @@ -14,7 +14,7 @@ import java.io.File * * @author johnsonlee */ -open class AnalyserTask : AbstractTask() { +open class AnalyserTask : DefaultTask() { lateinit var variant: BaseVariant diff --git a/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/CwebpCompressFlatImages.kt b/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/CwebpCompressFlatImages.kt index e060c2fef..cd57b33ad 100644 --- a/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/CwebpCompressFlatImages.kt +++ b/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/CwebpCompressFlatImages.kt @@ -27,10 +27,10 @@ import javax.xml.parsers.SAXParserFactory * @author johnsonlee */ @CacheableTask -internal open class CwebpCompressFlatImages : AbstractCwebpCompressImages() { +internal abstract class CwebpCompressFlatImages : AbstractCwebpCompressImages() { @get:OutputDirectory - private val compressedRes: File + val compressedRes: File get() = variant.project.buildDir.file(FD_INTERMEDIATES).file("compressed_${FD_RES}_cwebp", variant.dirName, this.name) override fun compress(filter: (File) -> Boolean) { @@ -56,7 +56,7 @@ internal open class CwebpCompressFlatImages : AbstractCwebpCompressImages() { } } - images.parallelStream().map { + images().parallelStream().map { it to it.metadata }.filter(this::includes).filter(isNotLauncherIcon).filter { filter(File(it.second.sourcePath)) diff --git a/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/CwebpCompressImages.kt b/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/CwebpCompressImages.kt index 7ce6cb857..209f690ff 100644 --- a/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/CwebpCompressImages.kt +++ b/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/CwebpCompressImages.kt @@ -14,15 +14,15 @@ import java.io.File * @author johnsonlee */ @CacheableTask -internal open class CwebpCompressImages : AbstractCwebpCompressImages() { +internal abstract class CwebpCompressImages : AbstractCwebpCompressImages() { @get:OutputFiles - private val compressedImages: Collection - get() = images + val compressedImages: Collection + get() = images() override fun compress(filter: (File) -> Boolean) { val cwebp = compressor.canonicalPath - images.parallelStream().filter(this::includes).filter(filter).map { input -> + images().parallelStream().filter(this::includes).filter(filter).map { input -> val output = File(input.canonicalPath.substringBeforeLast('.') + ".webp") ActionData(input, output, listOf(cwebp, "-mt", "-quiet", "-q", options.quality.toString(), "-o", output.canonicalPath, input.canonicalPath)) }.forEach { diff --git a/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/CwebpCompressOpaqueFlatImages.kt b/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/CwebpCompressOpaqueFlatImages.kt index 7003cc6b3..1b513b1c1 100644 --- a/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/CwebpCompressOpaqueFlatImages.kt +++ b/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/CwebpCompressOpaqueFlatImages.kt @@ -9,7 +9,7 @@ import java.io.File * @author johnsonlee */ @CacheableTask -internal open class CwebpCompressOpaqueFlatImages : CwebpCompressFlatImages() { +internal abstract class CwebpCompressOpaqueFlatImages : CwebpCompressFlatImages() { override fun compress(filter: (File) -> Boolean) = super.compress { true } diff --git a/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/CwebpCompressOpaqueImages.kt b/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/CwebpCompressOpaqueImages.kt index c5fe66ffd..355db517c 100644 --- a/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/CwebpCompressOpaqueImages.kt +++ b/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/CwebpCompressOpaqueImages.kt @@ -12,7 +12,7 @@ import javax.imageio.ImageIO * @author johnsonlee */ @CacheableTask -internal open class CwebpCompressOpaqueImages : CwebpCompressImages() { +internal abstract class CwebpCompressOpaqueImages : CwebpCompressImages() { override fun compress(filter: (File) -> Boolean) = super.compress { true } diff --git a/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/CwebpCompressionVariantProcessor.kt b/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/CwebpCompressionVariantProcessor.kt index 312b23dd4..058a7ec9d 100644 --- a/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/CwebpCompressionVariantProcessor.kt +++ b/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/CwebpCompressionVariantProcessor.kt @@ -5,8 +5,8 @@ import com.didiglobal.booster.compression.CompressionResults import com.didiglobal.booster.compression.generateReport import com.didiglobal.booster.compression.isFlatPngExceptRaw import com.didiglobal.booster.compression.isPngExceptRaw -import com.didiglobal.booster.gradle.aapt2Enabled -import com.didiglobal.booster.gradle.mergeResourcesTask +import com.didiglobal.booster.gradle.isAapt2Enabled +import com.didiglobal.booster.gradle.mergeResourcesTaskProvider import com.didiglobal.booster.gradle.mergedRes import com.didiglobal.booster.gradle.project import com.didiglobal.booster.kotlinx.Wildcard @@ -21,15 +21,18 @@ import com.google.auto.service.AutoService class CwebpCompressionVariantProcessor : VariantProcessor { override fun process(variant: BaseVariant) { + val project = variant.project val results = CompressionResults() - val ignores = variant.project.findProperty(PROPERTY_IGNORES)?.toString()?.trim()?.split(',')?.map { + val ignores = project.findProperty(PROPERTY_IGNORES)?.toString()?.trim()?.split(',')?.map { Wildcard(it) }?.toSet() ?: emptySet() Cwebp.get(variant)?.newCompressionTaskCreator()?.createCompressionTask(variant, results, "resources", { - variant.mergedRes.search(if (variant.project.aapt2Enabled) ::isFlatPngExceptRaw else ::isPngExceptRaw) - }, ignores, variant.mergeResourcesTask)?.doLast { - results.generateReport(variant, Build.ARTIFACT) + variant.mergedRes.search(if (project.isAapt2Enabled) ::isFlatPngExceptRaw else ::isPngExceptRaw) + }, ignores, variant.mergeResourcesTaskProvider)?.configure { + it.doLast { + results.generateReport(variant, Build.ARTIFACT) + } } } diff --git a/booster-task-compression-pngquant/src/main/kotlin/com/didiglobal/booster/task/compression/pngquant/PngquantCompressFlatImages.kt b/booster-task-compression-pngquant/src/main/kotlin/com/didiglobal/booster/task/compression/pngquant/PngquantCompressFlatImages.kt index cf1fbae15..af796b9fe 100644 --- a/booster-task-compression-pngquant/src/main/kotlin/com/didiglobal/booster/task/compression/pngquant/PngquantCompressFlatImages.kt +++ b/booster-task-compression-pngquant/src/main/kotlin/com/didiglobal/booster/task/compression/pngquant/PngquantCompressFlatImages.kt @@ -24,17 +24,17 @@ import java.io.File * @author johnsonlee */ @CacheableTask -internal open class PngquantCompressFlatImages : AbstractPngquantCompressImages() { +internal abstract class PngquantCompressFlatImages : AbstractPngquantCompressImages() { private val intermediates: File get() = variant.project.buildDir.file(FD_INTERMEDIATES) @get:OutputDirectory - private val compressedRes: File + val compressedRes: File get() = intermediates.file("compressed_${FD_RES}_pngquant", variant.dirName, this.name) @get:OutputDirectory - private val compiledRes: File + val compiledRes: File get() = intermediates.file("compiled_${FD_RES}_pngquant", variant.dirName, this.name) override fun compress() { @@ -45,7 +45,7 @@ internal open class PngquantCompressFlatImages : AbstractPngquantCompressImages( compressedRes.file(FD_RES_MIPMAP).mkdirs() compressedRes.file(FD_RES_DRAWABLE).mkdirs() - images.parallelStream().map { + images().parallelStream().map { it to it.metadata }.filter(this::includes).map { val output = compressedRes.file("${it.second.resourcePath.substringBeforeLast('.')}$DOT_PNG") diff --git a/booster-task-compression-pngquant/src/main/kotlin/com/didiglobal/booster/task/compression/pngquant/PngquantCompressImages.kt b/booster-task-compression-pngquant/src/main/kotlin/com/didiglobal/booster/task/compression/pngquant/PngquantCompressImages.kt index 60f892f32..bcc4283dd 100644 --- a/booster-task-compression-pngquant/src/main/kotlin/com/didiglobal/booster/task/compression/pngquant/PngquantCompressImages.kt +++ b/booster-task-compression-pngquant/src/main/kotlin/com/didiglobal/booster/task/compression/pngquant/PngquantCompressImages.kt @@ -15,16 +15,16 @@ import java.io.File * @author johnsonlee */ @CacheableTask -internal open class PngquantCompressImages : AbstractPngquantCompressImages() { +internal abstract class PngquantCompressImages : AbstractPngquantCompressImages() { @get:OutputFiles - private val compressedImages: Collection - get() = images + val compressedImages: Collection + get() = images() override fun compress() { val pngquant = this.compressor.canonicalPath - images.parallelStream().filter(this::includes).map { + images().parallelStream().filter(this::includes).map { ActionData(it, it, listOf(pngquant, "--strip", "--skip-if-larger", "-f", "--ext", DOT_PNG, "-s", "${options.speed}", "-Q", "${options.quality}-100", it.canonicalPath)) }.forEach { val s0 = it.input.length() diff --git a/booster-task-compression-pngquant/src/main/kotlin/com/didiglobal/booster/task/compression/pngquant/PngquantCompressionVariantProcessor.kt b/booster-task-compression-pngquant/src/main/kotlin/com/didiglobal/booster/task/compression/pngquant/PngquantCompressionVariantProcessor.kt index 65af7c1d3..3d2f63eb9 100644 --- a/booster-task-compression-pngquant/src/main/kotlin/com/didiglobal/booster/task/compression/pngquant/PngquantCompressionVariantProcessor.kt +++ b/booster-task-compression-pngquant/src/main/kotlin/com/didiglobal/booster/task/compression/pngquant/PngquantCompressionVariantProcessor.kt @@ -7,8 +7,8 @@ import com.didiglobal.booster.compression.generateReport import com.didiglobal.booster.compression.isFlatPngExceptRaw import com.didiglobal.booster.compression.isPngExceptRaw import com.didiglobal.booster.compression.task.CompressImages -import com.didiglobal.booster.gradle.aapt2Enabled -import com.didiglobal.booster.gradle.mergeResourcesTask +import com.didiglobal.booster.gradle.isAapt2Enabled +import com.didiglobal.booster.gradle.mergeResourcesTaskProvider import com.didiglobal.booster.gradle.mergedRes import com.didiglobal.booster.gradle.project import com.didiglobal.booster.kotlinx.Wildcard @@ -24,20 +24,26 @@ import com.google.auto.service.AutoService class PngquantCompressionVariantProcessor : VariantProcessor { override fun process(variant: BaseVariant) { + val project = variant.project val results = CompressionResults() - val compress = variant.project.tasks.withType(CompressImages::class.java).filter { - it.variant.name == variant.name - } - val ignores = variant.project.findProperty(PROPERTY_IGNORES)?.toString()?.trim()?.split(',')?.map { + val ignores = project.findProperty(PROPERTY_IGNORES)?.toString()?.trim()?.split(',')?.map { Wildcard(it) }?.toSet() ?: emptySet() Pngquant.get(variant)?.newCompressionTaskCreator()?.createCompressionTask(variant, results, "resources", { - variant.mergedRes.search(if (variant.project.aapt2Enabled) ::isFlatPngExceptRaw else ::isPngExceptRaw) - }, ignores, *(compress + variant.mergeResourcesTask).toTypedArray())?.doLast { - results.generateReport(variant, Build.ARTIFACT) + variant.mergedRes.search(if (project.isAapt2Enabled) ::isFlatPngExceptRaw else ::isPngExceptRaw) + }, ignores, variant.mergeResourcesTaskProvider)?.configure { task -> + variant.project.tasks.withType(CompressImages::class.java).filter { + it.name != task.name && it.variant.name == variant.name + }.takeIf { + it.isNotEmpty() + }?.let { + task.dependsOn(*it.toTypedArray()) + } + task.doLast { + results.generateReport(variant, Build.ARTIFACT) + } } - } } diff --git a/booster-task-compression-processed-res/src/main/kotlin/com/didiglobal/booster/task/compression/processed/res/ProcessedResourcesCompressionVariantProcessor.kt b/booster-task-compression-processed-res/src/main/kotlin/com/didiglobal/booster/task/compression/processed/res/ProcessedResourcesCompressionVariantProcessor.kt index cfc9a07bb..d6ac7382d 100644 --- a/booster-task-compression-processed-res/src/main/kotlin/com/didiglobal/booster/task/compression/processed/res/ProcessedResourcesCompressionVariantProcessor.kt +++ b/booster-task-compression-processed-res/src/main/kotlin/com/didiglobal/booster/task/compression/processed/res/ProcessedResourcesCompressionVariantProcessor.kt @@ -7,6 +7,7 @@ import com.didiglobal.booster.compression.CompressionReport import com.didiglobal.booster.compression.CompressionResult import com.didiglobal.booster.compression.CompressionResults import com.didiglobal.booster.gradle.processResTask +import com.didiglobal.booster.gradle.processResTaskProvider import com.didiglobal.booster.gradle.processedRes import com.didiglobal.booster.gradle.project import com.didiglobal.booster.kotlinx.file @@ -32,10 +33,11 @@ class ProcessedResourcesCompressionVariantProcessor : VariantProcessor { override fun process(variant: BaseVariant) { val results = CompressionResults() - - variant.processResTask?.doLast { - variant.compressProcessedRes(results) - variant.generateReport(results) + variant.processResTaskProvider?.configure { + it.doLast { + variant.compressProcessedRes(results) + variant.generateReport(results) + } } } diff --git a/booster-task-compression/src/main/kotlin/com/didiglobal/booster/compression/CompressionTaskCreator.kt b/booster-task-compression/src/main/kotlin/com/didiglobal/booster/compression/CompressionTaskCreator.kt index 0a8dabdeb..34e656b20 100644 --- a/booster-task-compression/src/main/kotlin/com/didiglobal/booster/compression/CompressionTaskCreator.kt +++ b/booster-task-compression/src/main/kotlin/com/didiglobal/booster/compression/CompressionTaskCreator.kt @@ -4,6 +4,7 @@ import com.android.build.gradle.api.BaseVariant import com.didiglobal.booster.compression.task.CompressImages import com.didiglobal.booster.kotlinx.Wildcard import org.gradle.api.Task +import org.gradle.api.tasks.TaskProvider import java.io.File import kotlin.reflect.KClass @@ -30,7 +31,13 @@ interface CompressionTaskCreator { * @param supplier The image supplier * @param deps The dependent tasks */ - fun createCompressionTask(variant: BaseVariant, results: CompressionResults, name: String, supplier: () -> Collection, vararg deps: Task): CompressImages = createCompressionTask(variant, results, name, supplier, emptySet(), *deps) + fun createCompressionTask( + variant: BaseVariant, + results: CompressionResults, + name: String, + supplier: () -> Collection, + vararg deps: TaskProvider + ): TaskProvider> = createCompressionTask(variant, results, name, supplier, emptySet(), *deps) /** * Returns a task for compression @@ -42,6 +49,13 @@ interface CompressionTaskCreator { * @param ignores wildcard of the resource name which to be excluded * @param deps The dependent tasks */ - fun createCompressionTask(variant: BaseVariant, results: CompressionResults, name: String, supplier: () -> Collection, ignores: Set = emptySet(), vararg deps: Task): CompressImages + fun createCompressionTask( + variant: BaseVariant, + results: CompressionResults, + name: String, + supplier: () -> Collection, + ignores: Set = emptySet(), + vararg deps: TaskProvider + ): TaskProvider> } diff --git a/booster-task-compression/src/main/kotlin/com/didiglobal/booster/compression/SimpleCompressionTaskCreator.kt b/booster-task-compression/src/main/kotlin/com/didiglobal/booster/compression/SimpleCompressionTaskCreator.kt index eb3817c59..e427de102 100644 --- a/booster-task-compression/src/main/kotlin/com/didiglobal/booster/compression/SimpleCompressionTaskCreator.kt +++ b/booster-task-compression/src/main/kotlin/com/didiglobal/booster/compression/SimpleCompressionTaskCreator.kt @@ -1,17 +1,27 @@ package com.didiglobal.booster.compression import com.android.build.gradle.api.BaseVariant +import com.android.build.gradle.internal.publishing.AndroidArtifacts +import com.android.build.gradle.internal.tasks.factory.dependsOn import com.didiglobal.booster.command.CommandInstaller import com.didiglobal.booster.compression.task.CompressImages import com.didiglobal.booster.compression.task.MATCH_ALL_RESOURCES import com.didiglobal.booster.compression.task.excludes import com.didiglobal.booster.gradle.aapt2Enabled -import com.didiglobal.booster.gradle.bundleResourcesTask +import com.didiglobal.booster.gradle.bundleResourcesTaskProvider +import com.didiglobal.booster.gradle.getArtifactFileCollection +import com.didiglobal.booster.gradle.isAapt2Enabled import com.didiglobal.booster.gradle.mergeResourcesTask -import com.didiglobal.booster.gradle.processResTask +import com.didiglobal.booster.gradle.mergeResourcesTaskProvider +import com.didiglobal.booster.gradle.preBuildTaskProvider +import com.didiglobal.booster.gradle.processResTaskProvider import com.didiglobal.booster.gradle.project import com.didiglobal.booster.kotlinx.Wildcard +import com.didiglobal.booster.kotlinx.search import org.gradle.api.Task +import org.gradle.api.UnknownTaskException +import org.gradle.api.tasks.TaskProvider +import org.gradle.internal.concurrent.GradleThread import java.io.File import kotlin.reflect.KClass @@ -24,30 +34,42 @@ class SimpleCompressionTaskCreator(private val tool: CompressionTool, private va override fun getCompressionTaskClass(aapt2: Boolean) = compressor(aapt2) - override fun createCompressionTask(variant: BaseVariant, results: CompressionResults, name: String, supplier: () -> Collection, ignores: Set, vararg deps: Task): CompressImages { - val aapt2 = variant.project.aapt2Enabled + override fun createCompressionTask( + variant: BaseVariant, + results: CompressionResults, + name: String, + supplier: () -> Collection, + ignores: Set, + vararg deps: TaskProvider + ): TaskProvider> { + val project = variant.project + val aapt2 = project.isAapt2Enabled val install = getCommandInstaller(variant) - return variant.project.tasks.create("compress${variant.name.capitalize()}${name.capitalize()}With${tool.command.name.substringBefore('.').capitalize()}", getCompressionTaskClass(aapt2).java) { task -> + return project.tasks.register("compress${variant.name.capitalize()}${name.capitalize()}With${tool.command.name.substringBefore('.').capitalize()}", getCompressionTaskClass(aapt2).java) { task -> + task.dependsOn(variant.preBuildTaskProvider.get()) task.tool = tool task.variant = variant task.results = results task.filter = if (ignores.isNotEmpty()) excludes(ignores) else MATCH_ALL_RESOURCES - task.supplier = { - supplier().filter { it.length() > 0 }.sortedBy { it } - } + task.images = lazy(supplier)::value }.apply { - dependsOn(install, deps) - variant.processResTask?.dependsOn(this) - variant.bundleResourcesTask?.dependsOn(this) + dependsOn(install) + deps.forEach { dependsOn(it) } + variant.processResTaskProvider?.dependsOn(this) + variant.bundleResourcesTaskProvider?.dependsOn(this) } } - private fun getCommandInstaller(variant: BaseVariant): Task { + private fun getCommandInstaller(variant: BaseVariant): TaskProvider { val name = "install${tool.command.name.substringBefore('.').capitalize()}" - return variant.project.tasks.findByName(name) ?: variant.project.tasks.create(name, CommandInstaller::class.java) { + return (try { + variant.project.tasks.named(name) + } catch (e: UnknownTaskException) { + null + } ?: variant.project.tasks.register(name, CommandInstaller::class.java) { it.command = tool.command - }.dependsOn(variant.mergeResourcesTask) + }).dependsOn(variant.mergeResourcesTaskProvider) } } diff --git a/booster-task-compression/src/main/kotlin/com/didiglobal/booster/compression/task/CompressImages.kt b/booster-task-compression/src/main/kotlin/com/didiglobal/booster/compression/task/CompressImages.kt index 1fb2fff14..d763a1f83 100644 --- a/booster-task-compression/src/main/kotlin/com/didiglobal/booster/compression/task/CompressImages.kt +++ b/booster-task-compression/src/main/kotlin/com/didiglobal/booster/compression/task/CompressImages.kt @@ -12,9 +12,7 @@ import com.didiglobal.booster.compression.CompressionTool import com.didiglobal.booster.kotlinx.Wildcard import org.gradle.api.DefaultTask import org.gradle.api.tasks.Input -import org.gradle.api.tasks.InputFiles -import org.gradle.api.tasks.PathSensitive -import org.gradle.api.tasks.PathSensitivity +import org.gradle.api.tasks.Internal import java.io.File /** @@ -24,21 +22,28 @@ import java.io.File */ abstract class CompressImages : DefaultTask() { + @get:Internal lateinit var variant: BaseVariant + @get:Internal lateinit var tool: CompressionTool + @get:Internal lateinit var results: CompressionResults + @get:Internal lateinit var options: T - lateinit var supplier: () -> Collection + @get:Internal + lateinit var images: () -> Collection /** * The resource path filter */ + @get:Internal var filter: ResourceNameFilter = MATCH_ALL_RESOURCES + @get:Internal val compressor: File get() = project.tasks.withType(CommandInstaller::class.java).find { it.command == tool.command @@ -52,11 +57,6 @@ abstract class CompressImages : DefaultTask() { val variantName: String get() = variant.name - @get:InputFiles - @get:PathSensitive(PathSensitivity.RELATIVE) - val images: Collection - get() = supplier() - protected open fun includes(arg: Pair): Boolean { val (input, metadata) = arg return if (filter(metadata.resourceName)) true else false.also { diff --git a/booster-task-resource-deredundancy/src/main/kotlin/com/didiglobal/booster/task/resource/deredundancy/RemoveRedundantFlatImages.kt b/booster-task-resource-deredundancy/src/main/kotlin/com/didiglobal/booster/task/resource/deredundancy/RemoveRedundantFlatImages.kt index b1374eefa..c58620905 100644 --- a/booster-task-resource-deredundancy/src/main/kotlin/com/didiglobal/booster/task/resource/deredundancy/RemoveRedundantFlatImages.kt +++ b/booster-task-resource-deredundancy/src/main/kotlin/com/didiglobal/booster/task/resource/deredundancy/RemoveRedundantFlatImages.kt @@ -4,6 +4,11 @@ import com.didiglobal.booster.aapt.Configuration import com.didiglobal.booster.aapt2.Aapt2Container import com.didiglobal.booster.aapt2.metadata import com.didiglobal.booster.compression.CompressionResult +import com.didiglobal.booster.compression.isFlatPng +import com.didiglobal.booster.compression.isPng +import com.didiglobal.booster.gradle.isAapt2Enabled +import com.didiglobal.booster.gradle.mergedRes +import com.didiglobal.booster.kotlinx.search import org.gradle.api.tasks.TaskAction import java.io.File import java.io.IOException @@ -18,13 +23,13 @@ internal open class RemoveRedundantFlatImages : RemoveRedundantImages() { @TaskAction override fun run() { - val resources = supplier().parallelStream().map { + val resources = variant.mergedRes.search(if (project.isAapt2Enabled) ::isFlatPng else ::isPng).parallelStream().map { it to it.metadata }.collect(Collectors.toSet()) resources.filter { when { - supportsRtl -> true + variant.isSupportsRtl -> true // remove ldrtl resources if RTL is not supported it.second.configuration.screenConfig.layout == Configuration.ScreenConfig.SCREEN_LAYOUT_DIR_RTL -> { it.remove() diff --git a/booster-task-resource-deredundancy/src/main/kotlin/com/didiglobal/booster/task/resource/deredundancy/RemoveRedundantImages.kt b/booster-task-resource-deredundancy/src/main/kotlin/com/didiglobal/booster/task/resource/deredundancy/RemoveRedundantImages.kt index d8a7fba37..f95f048a9 100644 --- a/booster-task-resource-deredundancy/src/main/kotlin/com/didiglobal/booster/task/resource/deredundancy/RemoveRedundantImages.kt +++ b/booster-task-resource-deredundancy/src/main/kotlin/com/didiglobal/booster/task/resource/deredundancy/RemoveRedundantImages.kt @@ -6,41 +6,41 @@ import com.didiglobal.booster.compression.CompressionResults import com.didiglobal.booster.gradle.mergedManifests import com.didiglobal.booster.kotlinx.search import org.gradle.api.DefaultTask +import org.gradle.api.tasks.Internal import org.gradle.api.tasks.TaskAction -import java.io.File import javax.xml.parsers.SAXParserFactory /** * Represents a task for redundant resources reducing */ -internal open class RemoveRedundantImages: DefaultTask() { +internal open class RemoveRedundantImages : DefaultTask() { + @get:Internal lateinit var variant: BaseVariant + @get:Internal lateinit var results: CompressionResults - lateinit var supplier: () -> Collection - - val supportsRtl: Boolean - get() { - val parser = SAXParserFactory.newInstance().newSAXParser() - return variant.mergedManifests.search { - it.name == SdkConstants.ANDROID_MANIFEST_XML - }.parallelStream().map { manifest -> - LayoutDirHandler().let { - parser.parse(manifest, it) - it.supportsRtl - } - }.toArray { size -> - arrayOfNulls(size) - }.fold(true) { acc, i -> - acc and i - } - } - @TaskAction open fun run() { TODO("Reducing redundant resources without aapt2 enabled has not supported yet") } -} \ No newline at end of file +} + +internal val BaseVariant.isSupportsRtl: Boolean + get() { + val parser = SAXParserFactory.newInstance().newSAXParser() + return mergedManifests.search { + it.name == SdkConstants.ANDROID_MANIFEST_XML + }.parallelStream().map { manifest -> + LayoutDirHandler().let { + parser.parse(manifest, it) + it.supportsRtl + } + }.toArray { size -> + arrayOfNulls(size) + }.fold(true) { acc, i -> + acc and i + } + } \ No newline at end of file diff --git a/booster-task-resource-deredundancy/src/main/kotlin/com/didiglobal/booster/task/resource/deredundancy/ResourceDeredundancyVariantProcessor.kt b/booster-task-resource-deredundancy/src/main/kotlin/com/didiglobal/booster/task/resource/deredundancy/ResourceDeredundancyVariantProcessor.kt index f7ef32d0b..6a4f37a38 100644 --- a/booster-task-resource-deredundancy/src/main/kotlin/com/didiglobal/booster/task/resource/deredundancy/ResourceDeredundancyVariantProcessor.kt +++ b/booster-task-resource-deredundancy/src/main/kotlin/com/didiglobal/booster/task/resource/deredundancy/ResourceDeredundancyVariantProcessor.kt @@ -1,19 +1,18 @@ package com.didiglobal.booster.task.resource.deredundancy import com.android.build.gradle.api.BaseVariant +import com.android.build.gradle.internal.tasks.factory.dependsOn import com.didiglobal.booster.annotations.Priority import com.didiglobal.booster.compression.CompressionResults import com.didiglobal.booster.compression.generateReport -import com.didiglobal.booster.compression.isFlatPng -import com.didiglobal.booster.compression.isPng import com.didiglobal.booster.compression.task.CompressImages -import com.didiglobal.booster.gradle.aapt2Enabled -import com.didiglobal.booster.gradle.mergeResourcesTask -import com.didiglobal.booster.gradle.mergedRes +import com.didiglobal.booster.gradle.getTaskName +import com.didiglobal.booster.gradle.isAapt2Enabled +import com.didiglobal.booster.gradle.mergeResourcesTaskProvider import com.didiglobal.booster.gradle.project -import com.didiglobal.booster.kotlinx.search import com.didiglobal.booster.task.spi.VariantProcessor import com.google.auto.service.AutoService +import org.gradle.api.UnknownTaskException /** @@ -26,16 +25,27 @@ import com.google.auto.service.AutoService class ResourceDeredundancyVariantProcessor : VariantProcessor { override fun process(variant: BaseVariant) { + val project = variant.project val results = CompressionResults() - val aapt2 = variant.project.aapt2Enabled - val klassRemoveRedundantImages = if (aapt2) RemoveRedundantFlatImages::class else RemoveRedundantImages::class - val deredundancy = variant.project.tasks.create("remove${variant.name.capitalize()}RedundantResources", klassRemoveRedundantImages.java) { - it.outputs.upToDateWhen { false } - it.variant = variant - it.results = results - it.supplier = { variant.mergedRes.search(if (aapt2) ::isFlatPng else ::isPng) } - }.dependsOn(variant.mergeResourcesTask).doLast { - results.generateReport(variant, Build.ARTIFACT) + val klassRemoveRedundantImages = if (project.isAapt2Enabled) RemoveRedundantFlatImages::class else RemoveRedundantImages::class + val deredundancy = variant.project.tasks.register("remove${variant.name.capitalize()}RedundantResources", klassRemoveRedundantImages.java) { task -> + task.outputs.upToDateWhen { false } + task.variant = variant + task.results = results + }.apply { + (try { + project.tasks.named(variant.getTaskName("process", "Manifest")) + } catch (e: UnknownTaskException) { + null + })?.let { + dependsOn(it) + } + dependsOn(variant.mergeResourcesTaskProvider) + configure { + it.doLast { + results.generateReport(variant, Build.ARTIFACT) + } + } } variant.project.tasks.withType(CompressImages::class.java).filter { diff --git a/build.gradle b/build.gradle index 1294511bd..2f80bd784 100644 --- a/build.gradle +++ b/build.gradle @@ -31,7 +31,7 @@ allprojects { project -> apply plugin: 'de.marcphilipp.nexus-publish' group = 'com.didiglobal.booster' - version = '3.5.0' + version = '4.0.0-beta1' repositories { mavenLocal() diff --git a/settings.gradle b/settings.gradle index 742e318a4..8eedac791 100644 --- a/settings.gradle +++ b/settings.gradle @@ -12,8 +12,6 @@ include ':booster-android-instrument-toast' include ':booster-android-instrument-webview' include ':booster-android-gradle-api' include ':booster-android-gradle-compat' -include ':booster-android-gradle-v3_0' -include ':booster-android-gradle-v3_2' include ':booster-android-gradle-v3_3' include ':booster-android-gradle-v3_4' include ':booster-android-gradle-v3_5' @@ -21,6 +19,7 @@ include ':booster-android-gradle-v3_6' include ':booster-android-gradle-v4_0' include ':booster-android-gradle-v4_1' include ':booster-android-gradle-v4_2' +include ':booster-android-gradle-v7_0' include ':booster-annotations' include ':booster-api' include ':booster-build' From a4ba5509566366bc532c71f9ea9f84caf6adc2ca Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Wed, 18 Aug 2021 01:07:14 +0800 Subject: [PATCH 075/187] Add GitHub workflow for API reference deployment --- .github/workflows/dokka.yml | 40 +++++++++++++++++++++++++++++++++++++ build.gradle | 1 + 2 files changed, 41 insertions(+) create mode 100644 .github/workflows/dokka.yml diff --git a/.github/workflows/dokka.yml b/.github/workflows/dokka.yml new file mode 100644 index 000000000..47a63c7ac --- /dev/null +++ b/.github/workflows/dokka.yml @@ -0,0 +1,40 @@ +name: Deploy API reference + +on: + push: + tags: + - '*' + repository_dispatch: + types: [publish] + +jobs: + publish: + runs-on: ubuntu-latest + if: github.repository == 'johnsonlee/booster' + + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: Setup Java + uses: actions/setup-java@v2 + with: + distribution: 'adopt' + java-version: '8' + + - name: Build API reference + run: ./gradlew reference -S --no-daemon + + - name: Deploy API reference + working-directory: ./build/reference + run: | + echo "reference.johnsonlee.io" > CNAME + git init + git config user.name "johnsonlee" + git config user.email "g.johnsonlee@gmail.com" + git remote add origin https://johnsonlee:${GH_DEPLOY_TOKEN}@github.com/johnsonlee/reference.johnsonlee.io.git + git add . + git commit -m "Deployed Booster ${GITHUB_REF/refs\/tags\//} API reference" -a + git push -u origin HEAD:master --force + env: + GH_DEPLOY_TOKEN: ${{ secrets.GH_DEPLOY_TOKEN }} diff --git a/build.gradle b/build.gradle index 2f80bd784..334fb798d 100644 --- a/build.gradle +++ b/build.gradle @@ -172,6 +172,7 @@ task reference(type: org.jetbrains.dokka.gradle.DokkaTask, group: 'Documentation subProjects = [ 'booster-aapt2', 'booster-android-gradle-api', + 'booster-android-gradle-compat', 'booster-annotations', 'booster-api', 'booster-build', From 9dde4426a7c88fa963376b231f93a46fae9eef0c Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Fri, 20 Aug 2021 23:12:03 +0800 Subject: [PATCH 076/187] Add `RELEASE-NOTES.md` --- RELEASE-NOTES.md | 415 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 415 insertions(+) create mode 100644 RELEASE-NOTES.md diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md new file mode 100644 index 000000000..be8d07add --- /dev/null +++ b/RELEASE-NOTES.md @@ -0,0 +1,415 @@ +## v3.5.0 + +- Fix `booster-transform-r-inline` 支持 `constraintlayout` `v2.0` +- Add `booster-transform-service-loader` for `ServiceLoader` performance optimization + +## v3.4.0 + +- Refactor `booster-cha`,to support bytecode manipulation framework independent `ClassParser` +- Update `auto-service` version to `1.0` +- Update `common-compression` version to `1.21` + +## v3.3.1 + +- Fix issue [#222](https://github.com/didi/booster/issues/222) +- Fix issue [#224](https://github.com/didi/booster/issues/224) : Context.getFilesDir() returns null +- Fix issue [#231](https://github.com/didi/booster/issues/231) + +## v3.3.0 + +- Fix issue [#187](https://github.com/didi/booster/issues/187) +- Fix issue [#226](https://github.com/didi/booster/issues/226) +- Add property `val dependencies: Collection` to `TransformContext` + +## v3.2.0 + +- Support AGP `4.2` +- Fix AGP version comparison +- Support disabling variant transformation by setting property `booster.transform.${variantName}.enabled` to `false` +- Support generating transform diff by setting property `booster.transform.diff` to `true` +- Refactor `ClassTransformer` API + - Add property `name` + - Add method `getReport(TransformContext, String): File` + - Add method `getReportDir(TransformContext): File` + +## v3.1.0 + +- Support property `booster.task.compression.pngquant.ignores` to ignore resources by wildcard +- Support property `booster.task.compression.cwebp.ignores` to ignore resources by wildcard +- Sanitize exception stack trace caught by `ActivityThreadCallback` + +## v3.0.0 + +- Rebuild AGP compatibility +- Support the latest AGP version `4.1.0` +- AGP integration tests improvement + +## v2.4.0 + +- Fix [#192](https://github.com/didi/booster/issues/192) +- Android Gradle plugin API compatibility improvement + +## v2.3.3 + +- fix issue [#194](https://github.com/didi/booster/issues/194) + +## v2.3.2 + +- fix issue [#194](https://github.com/didi/booster/issues/194) +- JetPack support for shared preferences optimization + +## v2.3.1 + +- fix empty thread name + +## v2.3.0 + +- Add transform outputs verification +- Improves [booster-transform-thread](https://github.com/didi/booster/blob/master/booster-transform-thread) +- Improves threads management for [booster-transform-shared-preferences](https://github.com/didi/booster/blob/master/booster-transform-shared-preferences) +- Fix API compatibility issue of [booster-transform-webview](https://github.com/didi/booster/blob/master/booster-transform-webview) + +## v2.2.0 + +- Improves [booster-transform-thread](https://github.com/didi/booster/blob/master/booster-transform-thread) +- Improves [booster-transform-shared-preferences](https://github.com/didi/booster/blob/master/booster-transform-shared-preferences) + +## v2.1.0 + +- fix bug of [booster-transform-activity-thread](https://github.com/didi/booster/tree/master/booster-transform-activity-thread) + +## v2.0.0 + +- Fix compatibility issues on AGP 3.5 +- Improves Android gradle plugin compatibility (AGP 4.0 is supported) +- Refactor `Transformer` & `VariantProcessor` service provider loading + +## v1.7.2 + +- Refactor `Transformer` dynamic discovery and loading + +## v1.7.1 + +- fix: image compression with build cache + +## v1.7.0 + +- Fix `booster-cha` dependencie +- Refactor [booster-transfrom-util](https://github.com/didi/booster/tree/master/booster-transform-util) to improve unit test +- Refactor SPI loading +- Add `dokka` doc comments to generate API reference +- AGP API compatibility improvement + + +## v1.5.2 + + + +## v1.6.0 + +- fix [#154](https://github.com/didi/booster/issues/154) +- fix [#157](https://github.com/didi/booster/issues/157) +- Catch transform exception caused by broken cla +- Extract CHA from [booster-task-analyser](https://github.com/didi/booster/tree/master/booster-task-analyser) as a standalone module + +## v1.5.1 + +- Fix: [#151](https://github.com/didi/booster/issues/151) Build failed caused by empty transformer +- Fix dex merging error when transform scope is empty + +## v1.5.0 + +1. 修复 *AGP 3.6.0* 兼容性问题 [[#145](https://github.com/didi/booster/issues/145)](https://github.com/didi/booster/issues/145) +1. 修复 *Transform* 增量编译的问题 +1. 优化 [booster-transform-activity-thread](https://github.com/didi/booster/blob/master/booster-transform-activity-thread),支持自定义堆栈包名白名单过滤 +1. 增加 [booster-task-analyser](https://github.com/didi/booster/blob/master/booster-task-analyser) 用于替代原来的 *booster-transform-lint* ,不仅在特性上更加丰富,性能表现也是更胜一筹: + + - 全新的类继承分析 *CHA (Class Hierarchy Analysis)* ,分析结果更精准 + - 新增 *AnalyserTask* ,移除 *LintTransformer* ,通过运行单独的 *Task* 进行静态分析,详见:[README.md](https://github.com/didi/booster/blob/master/booster-task-analyser/README.md) + - 支持 XML layout 分析,检测 layout 中不存在的 class,避免线上崩溃 + - 支持 `@UiThread` 和 `@MainThread` + - 支持 *EventBus* `@Subscribe` + - 支持自定义黑名单和白名单 + +1. 新增 [booster-api](https://github.com/didi/booster/blob/master/booster-api) 模块,便于 feature 开发和单元测试 + +## v1.4.0 + +- Improves [booster-task-compression-cwebp](https://github.com/didi/booster/blob/master/booster-task-compression-cwebp) to support build cache +- Improves [booster-task-compression-pngquant](https://github.com/didi/booster/blob/master/booster-task-compression-pngquant) to support build cache +- Improves transform to support build cache +- Improves [booster-command](https://github.com/didi/booster/blob/master/booster-command) installation to support build cache + +## v1.3.2 + +- Fix issue [#138](https://github.com/didi/booster/issues/138) +- Improve BR inlining +- Upgrade auto-service version to *1.0-rc6* +- Upgrade gradle version to *6.2* +- Remove `uploadArchives` task + +## v1.3.1 + +1. Rethrow exception with file path when [booster-task-compression-cwebp](https://github.com/didi/booster/blob/master/booster-task-compression-cwebp) detect image transparency failed +1. Handle rejected execution from parallel scatter zip creator + +## v1.3.0 + +1. Add [booster-command](https://github.com/didi/booster/blob/master/booster-command) to support run external prebuilt command +1. Refactor resource compression to support [booster-task-compression-cwebp](https://github.com/didi/booster/blob/master/booster-task-compression-cwebp) & [booster-task-compression-pngquant](https://github.com/didi/booster/blob/master/booster-task-compression-pngquant) work togethor +1. Improve transform performance + +## v1.2.1 + +- Prevent `res/raw` resources from compression +- Refactor transformers to make them more unit test friendly + +## v1.2.0 + +- Fix R class files removal issue [#124](https://github.com/didi/booster/issues/124) +- Add [booster-transform-br-inline](https://github.com/didi/booster/blob/master/booster-transform-br-inline) to support BR inline for data binding +- Add [booster-transform-verifier](https://github.com/didi/booster/blob/master/booster-transform-verifier) to support verify bytecode +- Add `@Priority` to support ordering transformer +- Refactor transform process to improve build performance +- Support CPU time statistics for transformer +- Remove `booster-task-all` and `booster-transform-all` + +## v1.1.1 + +- Fix bug of [transform-task-compression-pngquant](https://github.com/didi/booster/blob/master/booster-task-compression-pngquant) + +## v1.1.0 + +- Refactor & optimize resource compression +- Refactor transform SPI + +## v1.0.0 + +- Improves transform performance 50%+ +- Improves [booster-task-compression](https://github.com/didi/booster/blob/master/booster-task-compression) performance +- [booster-transform-thread](https://github.com/didi/booster/blob/master/booster-transform-thread) supports enable/disable thread pool optimization +- Fix bugs of [booster-transform-shared-preferences](https://github.com/didi/booster/blob/master/booster-transform-shared-preferences) + +## v0.28.0 + +- Fix issue [#119](https://github.com/didi/booster/issues/119) + +## v0.27.0 + +- Supporting dynamic feature module [#109](https://github.com/didi/booster/issues/109) +- SharedPreferences optimization improvement + +## v0.26.1 + +- Fix compatibility of `booster-transform-r-inline` +- Fix [#103](https://github.com/didi/booster/issues/103) + +## v0.26.0 + +- Fix issue [#102](https://github.com/didi/booster/issues/102), [#103](https://github.com/didi/booster/issues/103) + +## v0.25.0 + +- Fix issue + - [#77](https://github.com/didi/booster/issues/77) + - [#100](https://github.com/didi/booster/issues/100) + +## v0.24.0 + +- Fix issue [#99](https://github.com/didi/booster/issues/99) + +## v0.23.0 + +- Deprecates constant field removal + +## v0.22.0 + +- Fix duplicated entry caused by incremental build + +## v0.21.3 + +- Fix issue: Process "command `cacls`" finished with non-zero exit value 87. [#29](https://github.com/didi/booster/issues/29), [#70](https://github.com/didi/booster/issues/70), [#80](https://github.com/didi/booster/issues/80) + +## v0.21.2 + +- Fix issue [#80](https://github.com/didi/booster/issues/80) + +## v0.21.1 + +- Fix issue [#78](https://github.com/didi/booster/issues/78) + +## v0.21.0 + +- Fix compatibility of AAPT2 especially for Android gradle plugin 3.1.x + +## v0.20.0 + +- Add [booster-task-list-shared-library](./booster-task-list-shared-library) + +## v0.19.0 + +- Fix bug of [ActivityThreadTransformer](./booster-transform-activity-thread/src/main/kotlin/com/didiglobal/booster/transform/activitythread/ActivityThreadTransformer.kt) + +## v0.18.0 + +- Fix bug of [ActivityThreadCallback](./booster-android-instrument-activity-thread/src/main/java/com/didiglobal/booster/instrument/ActivityThreadCallback.java) + +## v0.17.0 + +- Add module [booster-transform-javassist](./booster-transform-javassist) to support bytecode manipulation using Javassist + +## v0.16.0 + +- Fix issue [#66](https://github.com/didi/booster/issues/66) + +## v0.15.0 + +- Fix issue [#67](https://github.com/didi/booster/issues/67) + +## v0.14.0 + +- Fix issue: shrinking without replace retained symbol + +## v0.13.0 + +- Add module [booster-transform-activity-thread](booster-transform-activity-thread) for *ActivityThread* hooking +- Add module [booster-android-instrument-activity-thread](booster-android-instrument-activity-thread) for *ActivityThread* instrumenting + +## v0.12.0 + +- Add module [booster-transform-logcat](booster-transform-logcat) for logcat intercepting +- Add module [booster-android-instrument-logcat](booster-android-instrument-logcat) for log API instrumenting + +## v0.11.0 + +- Fix compatibility issues with Android gradle plugin 3.1.x and 3.4+: [#45](https://github.com/didi/booster/issues/45) + +## v0.10.0 + +- Add `booster-transform-finalizer-watchdog-daemon` to avoid crash by `TimeoutException` + +## v0.9.0 + +- Add *booster-transform-res-check* for resource & assets checking + +## v0.8.0 + +- Optimization for `AsyncTask` +- Improvement for *booster-transform-shrink* + +## v0.7.0 + +- Add Webview preloading + +## v0.6.0 + +- Fix bug of dex builder in incremental build + +## v0.5.0 + +- Fix issue [#33](https://github.com/didi/booster/issues/33), [#34](https://github.com/didi/booster/issues/34) +- Optimization for `MediaPlayer` + +## v0.4.5 + +- Fix issue [#32](https://github.com/didi/booster/issues/32) + +## v0.4.4 + +- Fix issue [#29](https://github.com/didi/booster/issues/29) +- Ignores WebP compression of launcher icon + +## v0.4.3 + +- Fix [#28](https://github.com/didi/booster/issues/28) + +## v0.4.2 + +- Fix issue [#27](https://github.com/didi/booster/issues/27) + +## v0.4.1 + +- Fix bugs [#23](https://github.com/didi/booster/issues/23) +- Update Lint graph layout [#22](https://github.com/didi/booster/issues/22) + +## v0.4.0 + +- Supports WebP compression + + Since v0.4.0, Booster provides built-in libwebp binaries for resources compression, so, you don't have to install the *cwebp* executable manually, about the usage, please see [booster-task-compression](../master/booster-task-compression). + +## v0.3.3 + +- Fix compression report +- Add more INFO logs for class transforming + +## v0.3.2 + +- Fix issue [#17](https://github.com/didi/booster/issues/17), [#19](https://github.com/didi/booster/issues/19) +- Resources & assets compression improvement +- Redundant resources reduction + +## v0.3.1 + +- Fix issue [#18](https://github.com/didi/booster/issues/18) +- Supports compressing by `pngquant` +- Improves assets and resources compression + +## v0.3.0 + +- Add `booster-task-compression` for resources compression + +## v0.2.1 + +- Fix issue [#3](https://github.com/didi/booster/issues/3) +- Fix issue [#5](https://github.com/didi/booster/issues/5) + +## v0.2.0 + +- Fix issue [#5](https://github.com/didi/booster/issues/5) +- Additional options for `booster-transform-shrink` [#8](https://github.com/didi/booster/issues/8) +- Additional options for `booster-transform-lint` +- Thread renaming +- Multithreading optimization +- Shared preferences optimization +- Build report + +## v0.1.6 + + + +## v0.1.5 + +- Fix issue [#10](https://github.com/didi/booster/issues/10) +- Fix issue [#13](https://github.com/didi/booster/issues/13) +- Optimization for shared preferences editor + +## v0.1.4 + +- Fix kotlin API compatibility [#6](https://github.com/didi/booster/issues/6), [#9](https://github.com/didi/booster/issues/9) +- Retaining resource ids references by layout + +## v0.1.3 + +- Fix issue [#4](https://github.com/didi/booster/issues/4): WARNING: API 'variant.getJavaCompiler()' is obsolete and has been replaced with 'variant.getJavaCompileProvider()' + +## v0.1.2 + +- Fix issue [#3](https://github.com/didi/booster/issues/3) + +## v0.1.1 + +- Fix generated `REVISION` +- Fix compatibility issues with Android gradle 3.3+ [#2](https://github.com/didi/booster/issues/2) + +## v0.1.0 + +- Performance linting +- Constants shrinking +- Crash fixing (Caused by Toast on Android 7.1.1) +- Miscellaneou + - Tasks for artifacts displaying + - Tasks for Android permissions displaying + - Tasks for dependencies displaying + - Transformer for API usage displaying + From 15b7b8e0c1d3d988a59a81887953204f53d16792 Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Fri, 20 Aug 2021 23:12:31 +0800 Subject: [PATCH 077/187] Release version 4.0.0 --- README.md | 4 ++-- build.gradle | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index fa616c193..d43f7a304 100644 --- a/README.md +++ b/README.md @@ -73,7 +73,7 @@ The best practise of using Booster is integrating the specific module to solve t ```groovy buildscript { - ext.booster_version = '3.5.0' + ext.booster_version = '4.0.0' repositories { google() mavenCentral() @@ -121,7 +121,7 @@ The `plugins` DSL also supported since Booster *3.0.0* ```groovy plugins { - id 'com.didiglobal.booster' version '3.5.0' + id 'com.didiglobal.booster' version '4.0.0' } ``` diff --git a/build.gradle b/build.gradle index 334fb798d..dbc568ee1 100644 --- a/build.gradle +++ b/build.gradle @@ -31,7 +31,7 @@ allprojects { project -> apply plugin: 'de.marcphilipp.nexus-publish' group = 'com.didiglobal.booster' - version = '4.0.0-beta1' + version = '4.0.0' repositories { mavenLocal() From 3a79a6c767cb82caddf9d7ea04b3aed0fc992eb4 Mon Sep 17 00:00:00 2001 From: neighbWang Date: Mon, 25 Oct 2021 17:55:38 +0800 Subject: [PATCH 078/187] Fix bug when install in android-R machine: no compress arsc file. --- .../res/ProcessedResourcesCompressionVariantProcessor.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/booster-task-compression-processed-res/src/main/kotlin/com/didiglobal/booster/task/compression/processed/res/ProcessedResourcesCompressionVariantProcessor.kt b/booster-task-compression-processed-res/src/main/kotlin/com/didiglobal/booster/task/compression/processed/res/ProcessedResourcesCompressionVariantProcessor.kt index d6ac7382d..c47488156 100644 --- a/booster-task-compression-processed-res/src/main/kotlin/com/didiglobal/booster/task/compression/processed/res/ProcessedResourcesCompressionVariantProcessor.kt +++ b/booster-task-compression-processed-res/src/main/kotlin/com/didiglobal/booster/task/compression/processed/res/ProcessedResourcesCompressionVariantProcessor.kt @@ -123,7 +123,7 @@ internal val NO_COMPRESS = setOf( "mpg", "mpeg", "mid", "midi", "smf", "jet", "rtttl", "imy", "xmf", "mp4", "m4a", "m4v", "3gp", "3gpp", "3g2", "3gpp2", - "amr", "awb", "wma", "wmv", "webm", "mkv" + "amr", "awb", "wma", "wmv", "webm", "mkv", "arsc" ) internal val percentage: (Number) -> String = DecimalFormat("#,##0.00'%'")::format From fb94e593bf102afa8b7461e24aec2965abb1a794 Mon Sep 17 00:00:00 2001 From: SvenJung Date: Thu, 11 Nov 2021 20:12:42 +0800 Subject: [PATCH 079/187] Fix issue #258 --- .../com/didiglobal/booster/task/analyser/AnalyserTask.kt | 3 +++ .../com/didiglobal/booster/task/dependency/CheckSnapshot.kt | 2 ++ .../com/didiglobal/booster/task/artifact/ListArtifact.kt | 2 ++ .../com/didiglobal/booster/task/permission/ListPermission.kt | 2 ++ .../kotlin/com/didiglobal/booster/task/so/ListSharedLibrary.kt | 2 ++ 5 files changed, 11 insertions(+) diff --git a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/AnalyserTask.kt b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/AnalyserTask.kt index 7fc9f2131..4ef36368e 100644 --- a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/AnalyserTask.kt +++ b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/AnalyserTask.kt @@ -6,6 +6,7 @@ import com.didiglobal.booster.kotlinx.file import com.didiglobal.booster.transform.artifacts import org.gradle.api.DefaultTask import org.gradle.api.tasks.Input +import org.gradle.api.tasks.Internal import org.gradle.api.tasks.TaskAction import java.io.File @@ -16,8 +17,10 @@ import java.io.File */ open class AnalyserTask : DefaultTask() { + @get:Internal lateinit var variant: BaseVariant + @get:Internal lateinit var supplier: () -> File @get:Input diff --git a/booster-task-check-snapshot/src/main/kotlin/com/didiglobal/booster/task/dependency/CheckSnapshot.kt b/booster-task-check-snapshot/src/main/kotlin/com/didiglobal/booster/task/dependency/CheckSnapshot.kt index 47b7c3108..c76cdbd2a 100644 --- a/booster-task-check-snapshot/src/main/kotlin/com/didiglobal/booster/task/dependency/CheckSnapshot.kt +++ b/booster-task-check-snapshot/src/main/kotlin/com/didiglobal/booster/task/dependency/CheckSnapshot.kt @@ -7,10 +7,12 @@ import com.didiglobal.booster.kotlinx.CSI_YELLOW import com.didiglobal.booster.kotlinx.ifNotEmpty import org.gradle.api.DefaultTask import org.gradle.api.internal.artifacts.repositories.resolver.MavenUniqueSnapshotComponentIdentifier +import org.gradle.api.tasks.Internal import org.gradle.api.tasks.TaskAction internal open class CheckSnapshot : DefaultTask() { + @get:Internal lateinit var variant: BaseVariant @TaskAction diff --git a/booster-task-list-artifact/src/main/kotlin/com/didiglobal/booster/task/artifact/ListArtifact.kt b/booster-task-list-artifact/src/main/kotlin/com/didiglobal/booster/task/artifact/ListArtifact.kt index 61a14cb1e..14b800cf5 100644 --- a/booster-task-list-artifact/src/main/kotlin/com/didiglobal/booster/task/artifact/ListArtifact.kt +++ b/booster-task-list-artifact/src/main/kotlin/com/didiglobal/booster/task/artifact/ListArtifact.kt @@ -3,10 +3,12 @@ package com.didiglobal.booster.task.artifact import com.android.build.gradle.api.BaseVariant import com.didiglobal.booster.gradle.allArtifacts import org.gradle.api.DefaultTask +import org.gradle.api.tasks.Internal import org.gradle.api.tasks.TaskAction internal open class ListArtifact : DefaultTask() { + @get:Internal lateinit var variant: BaseVariant @TaskAction diff --git a/booster-task-list-permission/src/main/kotlin/com/didiglobal/booster/task/permission/ListPermission.kt b/booster-task-list-permission/src/main/kotlin/com/didiglobal/booster/task/permission/ListPermission.kt index a303003ae..05298c481 100644 --- a/booster-task-list-permission/src/main/kotlin/com/didiglobal/booster/task/permission/ListPermission.kt +++ b/booster-task-list-permission/src/main/kotlin/com/didiglobal/booster/task/permission/ListPermission.kt @@ -10,6 +10,7 @@ import com.didiglobal.booster.kotlinx.CSI_RESET import com.didiglobal.booster.kotlinx.CSI_YELLOW import com.didiglobal.booster.kotlinx.ifNotEmpty import org.gradle.api.DefaultTask +import org.gradle.api.tasks.Internal import org.gradle.api.tasks.TaskAction import java.io.File import java.util.zip.ZipFile @@ -19,6 +20,7 @@ internal open class ListPermission : DefaultTask() { private val factory = SAXParserFactory.newInstance() + @get:Internal lateinit var variant: BaseVariant init { diff --git a/booster-task-list-shared-library/src/main/kotlin/com/didiglobal/booster/task/so/ListSharedLibrary.kt b/booster-task-list-shared-library/src/main/kotlin/com/didiglobal/booster/task/so/ListSharedLibrary.kt index f64f77765..698fce390 100644 --- a/booster-task-list-shared-library/src/main/kotlin/com/didiglobal/booster/task/so/ListSharedLibrary.kt +++ b/booster-task-list-shared-library/src/main/kotlin/com/didiglobal/booster/task/so/ListSharedLibrary.kt @@ -6,11 +6,13 @@ import com.didiglobal.booster.kotlinx.CSI_CYAN import com.didiglobal.booster.kotlinx.CSI_RESET import com.didiglobal.booster.kotlinx.ifNotEmpty import org.gradle.api.DefaultTask +import org.gradle.api.tasks.Internal import org.gradle.api.tasks.TaskAction import java.util.jar.JarFile internal open class ListSharedLibrary : DefaultTask() { + @get:Internal lateinit var variant: BaseVariant @TaskAction From da867b4b6cf75651a793ea2fbab28d942e2b304f Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Thu, 11 Nov 2021 21:59:33 +0800 Subject: [PATCH 080/187] Release version 4.1.0 --- README.md | 4 ++-- RELEASE-NOTES.md | 9 +++++++++ build.gradle | 6 +++--- 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index d43f7a304..69fe0dcdb 100644 --- a/README.md +++ b/README.md @@ -73,7 +73,7 @@ The best practise of using Booster is integrating the specific module to solve t ```groovy buildscript { - ext.booster_version = '4.0.0' + ext.booster_version = '4.1.0' repositories { google() mavenCentral() @@ -121,7 +121,7 @@ The `plugins` DSL also supported since Booster *3.0.0* ```groovy plugins { - id 'com.didiglobal.booster' version '4.0.0' + id 'com.didiglobal.booster' version '4.1.0' } ``` diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index be8d07add..968869639 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -1,3 +1,12 @@ +## v4.1.0 + +- Fix issue [#258](https://github.com/didi/booster/issues/258) +- Fix bug when install in android-R machine: no compress arsc file. + +## v4.0.0 + +- Support AGP 7.0 + ## v3.5.0 - Fix `booster-transform-r-inline` 支持 `constraintlayout` `v2.0` diff --git a/build.gradle b/build.gradle index dbc568ee1..359086993 100644 --- a/build.gradle +++ b/build.gradle @@ -31,7 +31,7 @@ allprojects { project -> apply plugin: 'de.marcphilipp.nexus-publish' group = 'com.didiglobal.booster' - version = '4.0.0' + version = '4.1.0' repositories { mavenLocal() @@ -164,8 +164,8 @@ nexusStaging { packageGroup = "com.didiglobal" username = OSSRH_USERNAME password = OSSRH_PASSWORD - numberOfRetries = 50 - delayBetweenRetriesInMillis = 3000 + numberOfRetries = 100 + delayBetweenRetriesInMillis = 5000 } task reference(type: org.jetbrains.dokka.gradle.DokkaTask, group: 'Documentation') { From 870bb8036e3847483ba52362d1bebb420bdfab20 Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Wed, 24 Nov 2021 01:50:09 +0800 Subject: [PATCH 081/187] Add runtime instrumentation support --- .../transform/util/TransformerClassLoader.kt | 53 +++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 booster-transform-util/src/main/kotlin/com/didiglobal/booster/transform/util/TransformerClassLoader.kt diff --git a/booster-transform-util/src/main/kotlin/com/didiglobal/booster/transform/util/TransformerClassLoader.kt b/booster-transform-util/src/main/kotlin/com/didiglobal/booster/transform/util/TransformerClassLoader.kt new file mode 100644 index 000000000..88173e633 --- /dev/null +++ b/booster-transform-util/src/main/kotlin/com/didiglobal/booster/transform/util/TransformerClassLoader.kt @@ -0,0 +1,53 @@ +package com.didiglobal.booster.transform.util + +import com.didiglobal.booster.transform.AbstractTransformContext +import com.didiglobal.booster.transform.TransformContext +import com.didiglobal.booster.transform.Transformer +import java.io.File +import java.io.IOException +import java.io.InputStream +import java.net.URLClassLoader + +class TransformerClassLoader : URLClassLoader { + + private val transformer: Transformer + + constructor( + delegate: URLClassLoader, + factory: (ClassLoader) -> Transformer + ) : super(delegate.urLs) { + this.transformer = factory(this) + } + + constructor( + delegate: URLClassLoader, + factory: (ClassLoader, Iterable) -> Transformer, + vararg transformer: Transformer + ) : super(delegate.urLs) { + this.transformer = factory(this, transformer.asIterable()) + } + + private val classpath: Collection by lazy { + this.urLs.map { File(it.path) } + } + + private val context: TransformContext by lazy { + object : AbstractTransformContext(javaClass.name, javaClass.name, classpath, classpath) {} + } + + override fun findClass(name: String): Class<*> { + val bytecode = transformer.run { + try { + onPreTransform(context) + getResourceAsStream("${name.replace('.', '/')}.class")?.use(InputStream::readBytes)?.let { + transform(context, it) + } ?: throw IOException("Read class $name failed") + } finally { + onPostTransform(context) + } + } + + return defineClass(name, bytecode, 0, bytecode.size) + } + +} From 70a123bba40a753f7e5db45f482b137af15feb61 Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Sun, 5 Dec 2021 15:41:56 +0800 Subject: [PATCH 082/187] Fix classpath of TransformerContext --- .../didiglobal/booster/transform/util/TransformerClassLoader.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/booster-transform-util/src/main/kotlin/com/didiglobal/booster/transform/util/TransformerClassLoader.kt b/booster-transform-util/src/main/kotlin/com/didiglobal/booster/transform/util/TransformerClassLoader.kt index 88173e633..ae1a8542d 100644 --- a/booster-transform-util/src/main/kotlin/com/didiglobal/booster/transform/util/TransformerClassLoader.kt +++ b/booster-transform-util/src/main/kotlin/com/didiglobal/booster/transform/util/TransformerClassLoader.kt @@ -32,7 +32,7 @@ class TransformerClassLoader : URLClassLoader { } private val context: TransformContext by lazy { - object : AbstractTransformContext(javaClass.name, javaClass.name, classpath, classpath) {} + object : AbstractTransformContext(javaClass.name, javaClass.name, emptyList(), classpath, classpath) {} } override fun findClass(name: String): Class<*> { From 902cb0b75e67f3a759998588b0f85584866cc084 Mon Sep 17 00:00:00 2001 From: shijiayao Date: Mon, 29 Nov 2021 20:22:31 +0800 Subject: [PATCH 083/187] Fix bug when classpath size greater than 1 and end with 'jar' or 'zip' --- .../booster/transform/javassist/JavassistTransformer.kt | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/booster-transform-javassist/src/main/kotlin/com/didiglobal/booster/transform/javassist/JavassistTransformer.kt b/booster-transform-javassist/src/main/kotlin/com/didiglobal/booster/transform/javassist/JavassistTransformer.kt index 268581276..9dafffcb5 100644 --- a/booster-transform-javassist/src/main/kotlin/com/didiglobal/booster/transform/javassist/JavassistTransformer.kt +++ b/booster-transform-javassist/src/main/kotlin/com/didiglobal/booster/transform/javassist/JavassistTransformer.kt @@ -44,9 +44,12 @@ class JavassistTransformer : Transformer { } override fun onPreTransform(context: TransformContext) { - this.pool.appendClassPath(context.bootClasspath.joinToString(File.pathSeparator) { it.canonicalPath }) - this.pool.appendClassPath(context.compileClasspath.joinToString(File.pathSeparator) { it.canonicalPath }) - + context.bootClasspath.forEach { file -> + this.pool.appendClassPath(file.canonicalPath) + } + context.compileClasspath.forEach { file -> + this.pool.appendClassPath(file.canonicalPath) + } this.transformers.forEach { transformer -> this.threadMxBean.sumCpuTime(transformer) { transformer.onPreTransform(context) From 40a307e8ab51e96a2112e024f2b00eca2077b0ed Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Mon, 13 Dec 2021 22:43:10 +0800 Subject: [PATCH 084/187] Add Android stub APIs --- .../android/content/pm/ApplicationInfo.java | 46 +++++++++++++++++++ .../android/content/pm/PackageItemInfo.java | 25 ++++++++++ .../android/content/pm/PackageManager.java | 4 ++ 3 files changed, 75 insertions(+) create mode 100644 booster-android-api/src/main/java/android/content/pm/PackageManager.java diff --git a/booster-android-api/src/main/java/android/content/pm/ApplicationInfo.java b/booster-android-api/src/main/java/android/content/pm/ApplicationInfo.java index c4a8ffc8f..feadd65a7 100644 --- a/booster-android-api/src/main/java/android/content/pm/ApplicationInfo.java +++ b/booster-android-api/src/main/java/android/content/pm/ApplicationInfo.java @@ -4,6 +4,52 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable { + public static int FLAG_SYSTEM = 0x00000001; + public static int FLAG_ALLOW_TASK_REPARENTING = 0x00000020; + public static int FLAG_ALLOW_CLEAR_USER_DATA = 0x00000040; + public static int FLAG_UPDATED_SYSTEM_APP = 0x00000080; + public static int FLAG_TEST_ONLY = 0x00000100; + public static int FLAG_VM_SAFE_MODE = 0x00004000; + public static int FLAG_ALLOW_BACKUP = 0x00008000; + + public String className; + + public int descriptionRes; + public String dataDir; + public boolean enabled; + + public int flags; + + public String manageSpaceActivityName; + + public String nativeLibraryDir; + + public String permission; + + public String processName; + + public String publicSourceDir; + + public String[] sharedLibraryFiles; + + public String sourceDir; + + public int targetSdkVersion; + + public String taskAffinity; + + public int theme; + + public int uid; + + public int describeContents () { + throw new RuntimeException("Stub!"); + } + + public CharSequence loadDescription (PackageManager pm) { + throw new RuntimeException("Stub!"); + } + } diff --git a/booster-android-api/src/main/java/android/content/pm/PackageItemInfo.java b/booster-android-api/src/main/java/android/content/pm/PackageItemInfo.java index 9c33021a3..a4584c9f3 100644 --- a/booster-android-api/src/main/java/android/content/pm/PackageItemInfo.java +++ b/booster-android-api/src/main/java/android/content/pm/PackageItemInfo.java @@ -1,4 +1,29 @@ package android.content.pm; +import android.graphics.drawable.Drawable; +import android.os.Bundle; + public class PackageItemInfo { + + public int banner; + + public int icon; + + public int labelRes; + + public int logo; + + public Bundle metaData; + + public String name; + + public CharSequence nonLocalizedLabel; + + public String packageName; + + public Drawable loadIcon (PackageManager pm) { + throw new RuntimeException("Stub!"); + } + + } diff --git a/booster-android-api/src/main/java/android/content/pm/PackageManager.java b/booster-android-api/src/main/java/android/content/pm/PackageManager.java new file mode 100644 index 000000000..8e9940bab --- /dev/null +++ b/booster-android-api/src/main/java/android/content/pm/PackageManager.java @@ -0,0 +1,4 @@ +package android.content.pm; + +public abstract class PackageManager { +} From 7eb0b94d6af2d9b58bdd119644af33f1f53e3723 Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Tue, 14 Dec 2021 00:12:02 +0800 Subject: [PATCH 085/187] Migrate to gradle-nexus/publish-plugin --- .github/workflows/publish.yml | 4 ++-- build.gradle | 41 +++++++++++++++++++---------------- 2 files changed, 24 insertions(+), 21 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 7d9b911f4..986d096e3 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -26,11 +26,11 @@ jobs: run: | echo "Create GPG private key" echo $GPG_KEY_ARMOR | base64 --decode > $GITHUB_WORKSPACE/secring.gpg - ./gradlew clean publishToSonatype -POSSRH_USERNAME=${OSSRH_USERNAME} -POSSRH_PASSWORD=${OSSRH_PASSWORD} -Psigning.keyId=${GPG_KEY_ID} -Psigning.password=${GPG_PASSPHRASE} -Psigning.secretKeyRingFile=${GITHUB_WORKSPACE}/secring.gpg -S --no-daemon - ./gradlew closeAndReleaseRepository -POSSRH_USERNAME=${OSSRH_USERNAME} -POSSRH_PASSWORD=${OSSRH_PASSWORD} --no-daemon + ./gradlew publishToSonatype closeAndReleaseStagingRepository -POSSRH_USERNAME=${OSSRH_USERNAME} -POSSRH_PASSWORD=${OSSRH_PASSWORD} -POSSRH_STAGING_PROFILE_ID=${OSSRH_STAGING_PROFILE_ID} -Psigning.keyId=${GPG_KEY_ID} -Psigning.password=${GPG_PASSPHRASE} -Psigning.secretKeyRingFile=${GITHUB_WORKSPACE}/secring.gpg -S --no-daemon env: GPG_KEY_ARMOR: ${{ secrets.GPG_KEY_ARMOR }} GPG_KEY_ID: ${{ secrets.GPG_KEY_ID }} GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }} OSSRH_PASSWORD: ${{ secrets.OSSRH_PASSWORD }} OSSRH_USERNAME: ${{ secrets.OSSRH_USERNAME }} + OSSRH_STAGING_PROFILE_ID: ${{ secrets.OSSRH_STAGING_PROFILE_ID }} diff --git a/build.gradle b/build.gradle index 359086993..56e92c058 100644 --- a/build.gradle +++ b/build.gradle @@ -1,3 +1,4 @@ +import java.time.Duration import static org.gradle.kotlin.dsl.KotlinDependencyExtensionsKt.embeddedKotlinVersion buildscript { @@ -12,8 +13,7 @@ buildscript { } dependencies { classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" - classpath "io.codearte.gradle.nexus:gradle-nexus-staging-plugin:0.21.2" - classpath "de.marcphilipp.gradle:nexus-publish-plugin:0.4.0" + classpath "io.github.gradle-nexus:publish-plugin:1.1.0" classpath "io.johnsonlee.buildprops:buildprops-gradle-plugin:1.1.0" classpath "org.jetbrains.dokka:dokka-gradle-plugin:0.10.1" } @@ -21,14 +21,14 @@ buildscript { def OSSRH_USERNAME = project.properties['OSSRH_USERNAME'] ?: System.getenv('OSSRH_USERNAME') def OSSRH_PASSWORD = project.properties['OSSRH_PASSWORD'] ?: System.getenv('OSSRH_PASSWORD') +def OSSRH_STAGING_PROFILE_ID = project.properties['OSSRH_STAGING_PROFILE_ID'] ?: System.getenv('OSSRH_STAGING_PROFILE_ID') -apply plugin: 'io.codearte.nexus-staging' apply plugin: 'org.jetbrains.dokka' +apply plugin: 'io.github.gradle-nexus.publish-plugin' allprojects { project -> apply plugin: 'java' - apply plugin: 'maven' - apply plugin: 'de.marcphilipp.nexus-publish' + apply plugin: 'maven-publish' group = 'com.didiglobal.booster' version = '4.1.0' @@ -64,15 +64,6 @@ allprojects { project -> } } - nexusPublishing { - repositories { - sonatype { - username = OSSRH_USERNAME - password = OSSRH_PASSWORD - } - } - } - def configurePublication = { MavenPublication publication -> groupId = project.group artifactId = project.name @@ -160,12 +151,24 @@ dependencies { implementation project(':booster-gradle-plugin') } -nexusStaging { +nexusPublishing { packageGroup = "com.didiglobal" - username = OSSRH_USERNAME - password = OSSRH_PASSWORD - numberOfRetries = 100 - delayBetweenRetriesInMillis = 5000 + + repositories { + sonatype { + username = OSSRH_USERNAME + password = OSSRH_PASSWORD + stagingProfileId = OSSRH_STAGING_PROFILE_ID + } + } + + clientTimeout = Duration.ofSeconds(300) + connectTimeout = Duration.ofSeconds(60) + + transitionCheckOptions { + maxRetries.set(3000) + delayBetween.set(Duration.ofMillis(3000)) + } } task reference(type: org.jetbrains.dokka.gradle.DokkaTask, group: 'Documentation') { From 9d294b585a272a40fe9af7211aaed36cb1bde8ff Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Mon, 13 Dec 2021 22:51:20 +0800 Subject: [PATCH 086/187] Release version 4.2.0 --- README.md | 4 ++-- RELEASE-NOTES.md | 6 ++++++ build.gradle | 2 +- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 69fe0dcdb..483e4f380 100644 --- a/README.md +++ b/README.md @@ -73,7 +73,7 @@ The best practise of using Booster is integrating the specific module to solve t ```groovy buildscript { - ext.booster_version = '4.1.0' + ext.booster_version = '4.2.0' repositories { google() mavenCentral() @@ -121,7 +121,7 @@ The `plugins` DSL also supported since Booster *3.0.0* ```groovy plugins { - id 'com.didiglobal.booster' version '4.1.0' + id 'com.didiglobal.booster' version '4.2.0' } ``` diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index 968869639..b4957fe29 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -1,3 +1,9 @@ +## v4.2.0 + +- Add Android stub APIs +- Fix bug of the classpath of class pool +- Add runtime instrumentation support + ## v4.1.0 - Fix issue [#258](https://github.com/didi/booster/issues/258) diff --git a/build.gradle b/build.gradle index 56e92c058..8ef670d3b 100644 --- a/build.gradle +++ b/build.gradle @@ -31,7 +31,7 @@ allprojects { project -> apply plugin: 'maven-publish' group = 'com.didiglobal.booster' - version = '4.1.0' + version = '4.2.0' repositories { mavenLocal() From 8dc244e907e895fc2f5fd8fd8097bda280ba3046 Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Tue, 14 Dec 2021 22:40:57 +0800 Subject: [PATCH 087/187] Add Android stub APIs --- .../android/content/pm/ApplicationInfo.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/booster-android-api/src/main/java/android/content/pm/ApplicationInfo.java b/booster-android-api/src/main/java/android/content/pm/ApplicationInfo.java index feadd65a7..5211328cc 100644 --- a/booster-android-api/src/main/java/android/content/pm/ApplicationInfo.java +++ b/booster-android-api/src/main/java/android/content/pm/ApplicationInfo.java @@ -5,13 +5,30 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable { public static int FLAG_SYSTEM = 0x00000001; + public static int FLAG_DEBUGGABLE = 0x00000002; + public static int FLAG_HAS_CODE = 0x00000004; + public static int FLAG_PERSISTENT = 0x00000008; + + public static int FLAG_FACTORY_TEST = 0x00000010; public static int FLAG_ALLOW_TASK_REPARENTING = 0x00000020; public static int FLAG_ALLOW_CLEAR_USER_DATA = 0x00000040; public static int FLAG_UPDATED_SYSTEM_APP = 0x00000080; + public static int FLAG_TEST_ONLY = 0x00000100; + public static int FLAG_SUPPORTS_SMALL_SCREENS = 0x00000200; + public static int FLAG_SUPPORTS_NORMAL_SCREENS = 0x00000400; + public static int FLAG_SUPPORTS_LARGE_SCREENS = 0x00000800; + + public static int FLAG_RESIZEABLE_FOR_SCREENS = 0x00001000; + public static int FLAG_SUPPORTS_SCREEN_DENSITIES= 0x00002000; public static int FLAG_VM_SAFE_MODE = 0x00004000; public static int FLAG_ALLOW_BACKUP = 0x00008000; + public static int FLAG_KILL_AFTER_RESTORE = 0x00010000; + public static int FLAG_RESTORE_ANY_VERSION = 0x00020000; + public static int FLAG_EXTERNAL_STORAGE = 0x00040000; + public static int FLAG_SUPPORTS_XLARGE_SCREENS = 0x00080000; + public String className; public int descriptionRes; From 854d5f7cb903b2af5617081f105bc39967d43d2a Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Tue, 14 Dec 2021 22:48:38 +0800 Subject: [PATCH 088/187] Release version 4.2.1 --- README.md | 5 +++-- build.gradle | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 483e4f380..6cfc331ac 100644 --- a/README.md +++ b/README.md @@ -64,6 +64,7 @@ The following table lists which version of Gradle is required for each version o | 4.0.0+ | 6.1.1+ | | 4.1.0+ | 6.5+ | | 4.2.0+ | 6.7.1+ | +| 7.0 | 7.0+ | ## Best Practise | 最佳实践 @@ -73,7 +74,7 @@ The best practise of using Booster is integrating the specific module to solve t ```groovy buildscript { - ext.booster_version = '4.2.0' + ext.booster_version = '4.2.1' repositories { google() mavenCentral() @@ -121,7 +122,7 @@ The `plugins` DSL also supported since Booster *3.0.0* ```groovy plugins { - id 'com.didiglobal.booster' version '4.2.0' + id 'com.didiglobal.booster' version '4.2.1' } ``` diff --git a/build.gradle b/build.gradle index 8ef670d3b..c959bcfbb 100644 --- a/build.gradle +++ b/build.gradle @@ -31,7 +31,7 @@ allprojects { project -> apply plugin: 'maven-publish' group = 'com.didiglobal.booster' - version = '4.2.0' + version = '4.2.1' repositories { mavenLocal() From 5bb10c3e6a30dcaeb49a6067e2e273a279e495f4 Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Fri, 17 Dec 2021 01:49:23 +0800 Subject: [PATCH 089/187] Add collector API for multi-round transform --- .../booster/transform/util/Collector.kt | 69 +++++++++++++++++++ .../booster/transform/util/transform.kt | 4 +- .../booster/transform/util/CollectorTest.kt | 32 +++++++++ .../transform/util/FileTransformTest.kt | 4 +- ...idiglobal.booster.transform.util.Collector | 3 + 5 files changed, 108 insertions(+), 4 deletions(-) create mode 100644 booster-transform-util/src/main/kotlin/com/didiglobal/booster/transform/util/Collector.kt create mode 100644 booster-transform-util/src/test/kotlin/com/didiglobal/booster/transform/util/CollectorTest.kt create mode 100644 booster-transform-util/src/test/resources/META-INF/services/com.didiglobal.booster.transform.util.Collector diff --git a/booster-transform-util/src/main/kotlin/com/didiglobal/booster/transform/util/Collector.kt b/booster-transform-util/src/main/kotlin/com/didiglobal/booster/transform/util/Collector.kt new file mode 100644 index 000000000..da904b4ea --- /dev/null +++ b/booster-transform-util/src/main/kotlin/com/didiglobal/booster/transform/util/Collector.kt @@ -0,0 +1,69 @@ +package com.didiglobal.booster.transform.util + +import com.didiglobal.booster.kotlinx.search +import com.didiglobal.booster.transform.TransformContext +import org.apache.commons.compress.archivers.ArchiveEntry +import org.apache.commons.compress.archivers.ArchiveStreamFactory +import java.io.IOException + +interface Collector { + fun accept(name: String): Boolean + fun collect(name: String, data: () -> ByteArray): R +} + +sealed class Collectors { + + object ClassNameCollector : Collector { + override fun accept(name: String): Boolean { + return name.endsWith(".class", true) + } + + override fun collect(name: String, data: () -> ByteArray): String { + return name.substringBeforeLast('.').replace('/', '.') + } + } + + object ServiceCollector : Collector>> { + override fun accept(name: String): Boolean { + return name.substringBeforeLast('/') == "META-INF/services" + } + + override fun collect(name: String, data: () -> ByteArray): Pair> { + return name.substringAfterLast('/').replace('/', '.') to data().inputStream().bufferedReader().lineSequence().filterNot { + it.isBlank() || it.startsWith('#') + }.toMutableSet() + } + } + +} + +fun TransformContext.collect(collector: Collector): List = compileClasspath.map { file -> + when { + file.isDirectory -> { + val base = file.toURI() + file.search { f -> + f.isFile && collector.accept(base.relativize(f.toURI()).normalize().path) + }.map { f -> + collector.collect(base.relativize(f.toURI()).normalize().path, f::readBytes) + } + } + file.isFile -> { + file.inputStream().buffered().use { + ArchiveStreamFactory().createArchiveInputStream(it).let { archive -> + generateSequence { + try { + archive.nextEntry + } catch (e: IOException) { + null + } + }.filterNot(ArchiveEntry::isDirectory).filter { entry -> + collector.accept(entry.name) + }.map { entry -> + collector.collect(entry.name, archive::readBytes) + }.toList() + } + } + } + else -> emptyList() + } +}.flatten() \ No newline at end of file diff --git a/booster-transform-util/src/main/kotlin/com/didiglobal/booster/transform/util/transform.kt b/booster-transform-util/src/main/kotlin/com/didiglobal/booster/transform/util/transform.kt index 72d0c7725..fd282d931 100644 --- a/booster-transform-util/src/main/kotlin/com/didiglobal/booster/transform/util/transform.kt +++ b/booster-transform-util/src/main/kotlin/com/didiglobal/booster/transform/util/transform.kt @@ -134,14 +134,14 @@ fun ZipInputStream.transform( private const val DEFAULT_BUFFER_SIZE = 8 * 1024 private fun InputStream.readBytes(estimatedSize: Int = DEFAULT_BUFFER_SIZE): ByteArray { - val buffer = ByteArrayOutputStream(estimatedSize.coerceAtLeast(this.available())) + val buffer = ByteArrayOutputStream(maxOf(estimatedSize, this.available())) copyTo(buffer) return buffer.toByteArray() } private fun InputStream.copyTo(out: OutputStream, bufferSize: Int = DEFAULT_BUFFER_SIZE): Long { var bytesCopied: Long = 0 - val buffer = ByteArray(bufferSize) + val buffer = ByteArray(maxOf(bufferSize, this.available())) var bytes = read(buffer) while (bytes >= 0) { out.write(buffer, 0, bytes) diff --git a/booster-transform-util/src/test/kotlin/com/didiglobal/booster/transform/util/CollectorTest.kt b/booster-transform-util/src/test/kotlin/com/didiglobal/booster/transform/util/CollectorTest.kt new file mode 100644 index 000000000..8b3151b8f --- /dev/null +++ b/booster-transform-util/src/test/kotlin/com/didiglobal/booster/transform/util/CollectorTest.kt @@ -0,0 +1,32 @@ +package com.didiglobal.booster.transform.util + +import com.didiglobal.booster.transform.AbstractTransformContext +import java.io.File +import kotlin.test.Test +import kotlin.test.assertEquals +import kotlin.test.assertTrue + +class CollectorTest { + + @Test + fun `collect class names from jar`() { + val classpath = listOf(File(javaClass.classLoader.getResource("pinyin4j-2.5.0.jar")!!.file)) + val context = object : AbstractTransformContext("", "", emptyList(), classpath) {} + val classes = context.collect(Collectors.ClassNameCollector) + println(classes) + assertTrue(classes.isNotEmpty()) + } + + @Test + fun `collect services from dir`() { + val classpath = listOf( + File(javaClass.protectionDomain.codeSource.location.file), + File(javaClass.classLoader.getResource("pinyin4j-2.5.0.jar")!!.file).parentFile + ) + val context = object : AbstractTransformContext("", "", emptyList(), classpath) {} + val (api, impl) = context.collect(Collectors.ServiceCollector).single() + assertEquals(api, Collector::class.java.name) + assertEquals(2, impl.size) + } + +} diff --git a/booster-transform-util/src/test/kotlin/com/didiglobal/booster/transform/util/FileTransformTest.kt b/booster-transform-util/src/test/kotlin/com/didiglobal/booster/transform/util/FileTransformTest.kt index aecaa57f7..c5f8a6323 100644 --- a/booster-transform-util/src/test/kotlin/com/didiglobal/booster/transform/util/FileTransformTest.kt +++ b/booster-transform-util/src/test/kotlin/com/didiglobal/booster/transform/util/FileTransformTest.kt @@ -8,8 +8,8 @@ import kotlin.test.Test import kotlin.test.assertEquals import kotlin.test.assertTrue -private val PWD: String = System.getProperty("user.dir") -private val BUILD_DIR = File(PWD, "build") +internal val PWD: String = System.getProperty("user.dir") +internal val BUILD_DIR = File(PWD, "build") class FileTransformTest { diff --git a/booster-transform-util/src/test/resources/META-INF/services/com.didiglobal.booster.transform.util.Collector b/booster-transform-util/src/test/resources/META-INF/services/com.didiglobal.booster.transform.util.Collector new file mode 100644 index 000000000..d4b644fa6 --- /dev/null +++ b/booster-transform-util/src/test/resources/META-INF/services/com.didiglobal.booster.transform.util.Collector @@ -0,0 +1,3 @@ +# This is a comment +com.didiglobal.booster.transform.util.Collectors$ClassNameCollector +com.didiglobal.booster.transform.util.Collectors$ServiceCollector From fa5ba85e59a7e8754622aa96a3824f6562011c71 Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Sun, 19 Dec 2021 22:45:46 +0800 Subject: [PATCH 090/187] Support running local unit test with transformer --- booster-test-asm/build.gradle | 9 ++++ booster-test-asm/packages-zh-CN.md | 3 ++ .../test/asm/BoosterTestRunnerWithAsm.kt | 15 +++++++ .../test/asm/BoosterTestRunnerWithAsmTest.kt | 22 ++++++++++ .../test/asm/SimpleClassTransformer.kt | 16 +++++++ booster-test-javassist/build.gradle | 9 ++++ booster-test-javassist/packages-zh-CN.md | 3 ++ .../BoosterTestRunnerWithJavassist.kt | 15 +++++++ .../BoosterTestRunnerWithJavassistTest.kt | 22 ++++++++++ .../test/javassist/SimpleClassTransformer.kt | 16 +++++++ booster-test/build.gradle | 6 +++ booster-test/packages-zh-CN.md | 3 ++ .../booster/test/BoosterTestRunner.kt | 44 +++++++++++++++++++ .../transform/util/TransformerClassLoader.kt | 44 +++++++++++++++++-- build.gradle | 3 ++ settings.gradle | 3 ++ 16 files changed, 229 insertions(+), 4 deletions(-) create mode 100644 booster-test-asm/build.gradle create mode 100644 booster-test-asm/packages-zh-CN.md create mode 100644 booster-test-asm/src/main/kotlin/com/didiglobal/booster/test/asm/BoosterTestRunnerWithAsm.kt create mode 100644 booster-test-asm/src/test/kotlin/com/didiglobal/booster/test/asm/BoosterTestRunnerWithAsmTest.kt create mode 100644 booster-test-asm/src/test/kotlin/com/didiglobal/booster/test/asm/SimpleClassTransformer.kt create mode 100644 booster-test-javassist/build.gradle create mode 100644 booster-test-javassist/packages-zh-CN.md create mode 100644 booster-test-javassist/src/main/kotlin/com/didiglobal/booster/test/javassist/BoosterTestRunnerWithJavassist.kt create mode 100644 booster-test-javassist/src/test/kotlin/com/didiglobal/booster/test/javassist/BoosterTestRunnerWithJavassistTest.kt create mode 100644 booster-test-javassist/src/test/kotlin/com/didiglobal/booster/test/javassist/SimpleClassTransformer.kt create mode 100644 booster-test/build.gradle create mode 100644 booster-test/packages-zh-CN.md create mode 100644 booster-test/src/main/kotlin/com/didiglobal/booster/test/BoosterTestRunner.kt diff --git a/booster-test-asm/build.gradle b/booster-test-asm/build.gradle new file mode 100644 index 000000000..1043a6a3b --- /dev/null +++ b/booster-test-asm/build.gradle @@ -0,0 +1,9 @@ +apply from: "$rootDir/gradle/booster.gradle" + +dependencies { + implementation project(':booster-test') + implementation project(':booster-transform-asm') + + kaptTest 'com.google.auto.service:auto-service:1.0' + testImplementation 'com.github.stefanbirkner:system-rules:1.19.0' +} diff --git a/booster-test-asm/packages-zh-CN.md b/booster-test-asm/packages-zh-CN.md new file mode 100644 index 000000000..d0c704980 --- /dev/null +++ b/booster-test-asm/packages-zh-CN.md @@ -0,0 +1,3 @@ +# Package com.didiglobal.booster.test.asm + +提供了基于 ASM 的单元测试支持 diff --git a/booster-test-asm/src/main/kotlin/com/didiglobal/booster/test/asm/BoosterTestRunnerWithAsm.kt b/booster-test-asm/src/main/kotlin/com/didiglobal/booster/test/asm/BoosterTestRunnerWithAsm.kt new file mode 100644 index 000000000..4b707f837 --- /dev/null +++ b/booster-test-asm/src/main/kotlin/com/didiglobal/booster/test/asm/BoosterTestRunnerWithAsm.kt @@ -0,0 +1,15 @@ +package com.didiglobal.booster.test.asm + +import com.didiglobal.booster.test.BoosterTestRunner +import com.didiglobal.booster.transform.asm.AsmTransformer +import com.didiglobal.booster.transform.asm.ClassTransformer +import com.didiglobal.booster.transform.util.TransformerClassLoader + +class BoosterTestRunnerWithAsm( + clazz: Class<*> +) : BoosterTestRunner(clazz, TransformerClassLoader( + clazz.classLoader, + ClassTransformer::class.java::isAssignableFrom +) { + AsmTransformer(it) +}) diff --git a/booster-test-asm/src/test/kotlin/com/didiglobal/booster/test/asm/BoosterTestRunnerWithAsmTest.kt b/booster-test-asm/src/test/kotlin/com/didiglobal/booster/test/asm/BoosterTestRunnerWithAsmTest.kt new file mode 100644 index 000000000..b6584734b --- /dev/null +++ b/booster-test-asm/src/test/kotlin/com/didiglobal/booster/test/asm/BoosterTestRunnerWithAsmTest.kt @@ -0,0 +1,22 @@ +package com.didiglobal.booster.test.asm + +import org.junit.Rule +import org.junit.contrib.java.lang.system.SystemOutRule +import org.junit.runner.RunWith +import kotlin.test.Test +import kotlin.test.assertTrue + +@RunWith(BoosterTestRunnerWithAsm::class) +class BoosterTestRunnerWithAsmTest { + + @get:Rule + val systemOutRule = SystemOutRule().enableLog() + + @Test + fun `test booster runner with asm`() { + assertTrue { + systemOutRule.log.isNotBlank() + } + } + +} \ No newline at end of file diff --git a/booster-test-asm/src/test/kotlin/com/didiglobal/booster/test/asm/SimpleClassTransformer.kt b/booster-test-asm/src/test/kotlin/com/didiglobal/booster/test/asm/SimpleClassTransformer.kt new file mode 100644 index 000000000..b3a0d0995 --- /dev/null +++ b/booster-test-asm/src/test/kotlin/com/didiglobal/booster/test/asm/SimpleClassTransformer.kt @@ -0,0 +1,16 @@ +package com.didiglobal.booster.test.asm + +import com.didiglobal.booster.transform.TransformContext +import com.didiglobal.booster.transform.asm.ClassTransformer +import com.google.auto.service.AutoService +import org.objectweb.asm.tree.ClassNode + +@AutoService(ClassTransformer::class) +class SimpleClassTransformer : ClassTransformer { + + override fun transform(context: TransformContext, klass: ClassNode): ClassNode { + println(klass.name) + return klass + } + +} \ No newline at end of file diff --git a/booster-test-javassist/build.gradle b/booster-test-javassist/build.gradle new file mode 100644 index 000000000..5e75f67da --- /dev/null +++ b/booster-test-javassist/build.gradle @@ -0,0 +1,9 @@ +apply from: "$rootDir/gradle/booster.gradle" + +dependencies { + implementation project(':booster-test') + implementation project(':booster-transform-javassist') + + kaptTest 'com.google.auto.service:auto-service:1.0' + testImplementation 'com.github.stefanbirkner:system-rules:1.19.0' +} diff --git a/booster-test-javassist/packages-zh-CN.md b/booster-test-javassist/packages-zh-CN.md new file mode 100644 index 000000000..7dc4ef8e7 --- /dev/null +++ b/booster-test-javassist/packages-zh-CN.md @@ -0,0 +1,3 @@ +# Package com.didiglobal.booster.test.javassist + +提供了基于 Javassist 的单元测试支持 diff --git a/booster-test-javassist/src/main/kotlin/com/didiglobal/booster/test/javassist/BoosterTestRunnerWithJavassist.kt b/booster-test-javassist/src/main/kotlin/com/didiglobal/booster/test/javassist/BoosterTestRunnerWithJavassist.kt new file mode 100644 index 000000000..1d819427f --- /dev/null +++ b/booster-test-javassist/src/main/kotlin/com/didiglobal/booster/test/javassist/BoosterTestRunnerWithJavassist.kt @@ -0,0 +1,15 @@ +package com.didiglobal.booster.test.javassist + +import com.didiglobal.booster.test.BoosterTestRunner +import com.didiglobal.booster.transform.javassist.ClassTransformer +import com.didiglobal.booster.transform.javassist.JavassistTransformer +import com.didiglobal.booster.transform.util.TransformerClassLoader + +class BoosterTestRunnerWithJavassist( + clazz: Class<*> +) : BoosterTestRunner(clazz, TransformerClassLoader( + clazz.classLoader, + ClassTransformer::class.java::isAssignableFrom +) { + JavassistTransformer(it) +}) \ No newline at end of file diff --git a/booster-test-javassist/src/test/kotlin/com/didiglobal/booster/test/javassist/BoosterTestRunnerWithJavassistTest.kt b/booster-test-javassist/src/test/kotlin/com/didiglobal/booster/test/javassist/BoosterTestRunnerWithJavassistTest.kt new file mode 100644 index 000000000..f04ef1878 --- /dev/null +++ b/booster-test-javassist/src/test/kotlin/com/didiglobal/booster/test/javassist/BoosterTestRunnerWithJavassistTest.kt @@ -0,0 +1,22 @@ +package com.didiglobal.booster.test.javassist + +import org.junit.Rule +import org.junit.contrib.java.lang.system.SystemOutRule +import org.junit.runner.RunWith +import kotlin.test.Test +import kotlin.test.assertTrue + +@RunWith(BoosterTestRunnerWithJavassist::class) +class BoosterTestRunnerWithJavassistTest { + + @get:Rule + val systemOutRule = SystemOutRule().enableLog() + + @Test + fun `test booster runner with javassist`() { + assertTrue { + systemOutRule.log.isNotBlank() + } + } + +} \ No newline at end of file diff --git a/booster-test-javassist/src/test/kotlin/com/didiglobal/booster/test/javassist/SimpleClassTransformer.kt b/booster-test-javassist/src/test/kotlin/com/didiglobal/booster/test/javassist/SimpleClassTransformer.kt new file mode 100644 index 000000000..f42f8e720 --- /dev/null +++ b/booster-test-javassist/src/test/kotlin/com/didiglobal/booster/test/javassist/SimpleClassTransformer.kt @@ -0,0 +1,16 @@ +package com.didiglobal.booster.test.javassist + +import com.didiglobal.booster.transform.TransformContext +import com.didiglobal.booster.transform.javassist.ClassTransformer +import com.google.auto.service.AutoService +import javassist.CtClass + +@AutoService(ClassTransformer::class) +class SimpleClassTransformer : ClassTransformer { + + override fun transform(context: TransformContext, klass: CtClass): CtClass { + println(klass.name) + return klass + } + +} \ No newline at end of file diff --git a/booster-test/build.gradle b/booster-test/build.gradle new file mode 100644 index 000000000..1555913ea --- /dev/null +++ b/booster-test/build.gradle @@ -0,0 +1,6 @@ +apply from: "$rootDir/gradle/booster.gradle" + +dependencies { + implementation project(':booster-transform-util') + api("junit:junit:4.12") +} diff --git a/booster-test/packages-zh-CN.md b/booster-test/packages-zh-CN.md new file mode 100644 index 000000000..0fae49b5d --- /dev/null +++ b/booster-test/packages-zh-CN.md @@ -0,0 +1,3 @@ +# Package com.didiglobal.booster.test + +提供了单元测试支持的基础 API diff --git a/booster-test/src/main/kotlin/com/didiglobal/booster/test/BoosterTestRunner.kt b/booster-test/src/main/kotlin/com/didiglobal/booster/test/BoosterTestRunner.kt new file mode 100644 index 000000000..de0f72c95 --- /dev/null +++ b/booster-test/src/main/kotlin/com/didiglobal/booster/test/BoosterTestRunner.kt @@ -0,0 +1,44 @@ +package com.didiglobal.booster.test + +import com.didiglobal.booster.transform.util.TransformerClassLoader +import org.junit.runners.BlockJUnit4ClassRunner +import org.junit.runners.model.FrameworkMethod +import org.junit.runners.model.Statement + +/** + * An abstraction of test runner with transformer + */ +abstract class BoosterTestRunner( + clazz: Class<*>, + private val classLoader: TransformerClassLoader +) : BlockJUnit4ClassRunner(clazz) { + + private val contextClassLoader = Thread.currentThread().contextClassLoader + + init { + Thread.currentThread().contextClassLoader = classLoader + } + + override fun methodBlock(method: FrameworkMethod): Statement = object : Statement() { + override fun evaluate() { + val testClazz = classLoader.loadClass(testClass.javaClass.name) + val testRunner = TestRunnerWrapper(testClazz) + val testMethod = testClazz.getMethod(method.method.name) + + try { + testRunner.methodBlock(FrameworkMethod(testMethod)).evaluate() + } finally { + Thread.currentThread().contextClassLoader = contextClassLoader + } + } + } + + private class TestRunnerWrapper(clazz: Class<*>) : BlockJUnit4ClassRunner(clazz) { + + public override fun methodBlock(method: FrameworkMethod?): Statement { + return super.methodBlock(method) + } + + } + +} \ No newline at end of file diff --git a/booster-transform-util/src/main/kotlin/com/didiglobal/booster/transform/util/TransformerClassLoader.kt b/booster-transform-util/src/main/kotlin/com/didiglobal/booster/transform/util/TransformerClassLoader.kt index ae1a8542d..84526dcd2 100644 --- a/booster-transform-util/src/main/kotlin/com/didiglobal/booster/transform/util/TransformerClassLoader.kt +++ b/booster-transform-util/src/main/kotlin/com/didiglobal/booster/transform/util/TransformerClassLoader.kt @@ -6,24 +6,40 @@ import com.didiglobal.booster.transform.Transformer import java.io.File import java.io.IOException import java.io.InputStream +import java.net.URL import java.net.URLClassLoader +typealias ClassFilter = (Class<*>) -> Boolean + +internal val DEFAULT_CLASS_FILTER: ClassFilter = { + it.classLoader == null + || it.name.startsWith("java.") + || it.name.startsWith("kotlin.") + || it.name.startsWith("org.junit.") +} + class TransformerClassLoader : URLClassLoader { private val transformer: Transformer + private val filter: ClassFilter + constructor( - delegate: URLClassLoader, + delegate: ClassLoader, + filter: ClassFilter = DEFAULT_CLASS_FILTER, factory: (ClassLoader) -> Transformer - ) : super(delegate.urLs) { + ) : super(delegate.classpath) { + this.filter = filter this.transformer = factory(this) } constructor( - delegate: URLClassLoader, + delegate: ClassLoader, + filter: ClassFilter = DEFAULT_CLASS_FILTER, factory: (ClassLoader, Iterable) -> Transformer, vararg transformer: Transformer - ) : super(delegate.urLs) { + ) : super(delegate.classpath) { + this.filter = filter this.transformer = factory(this, transformer.asIterable()) } @@ -35,6 +51,16 @@ class TransformerClassLoader : URLClassLoader { object : AbstractTransformContext(javaClass.name, javaClass.name, emptyList(), classpath, classpath) {} } + override fun loadClass(name: String, resolve: Boolean): Class<*> { + return super.loadClass(name, resolve)?.takeIf { + DEFAULT_CLASS_FILTER(it) || this.filter(it) + } ?: synchronized(getClassLoadingLock(name)) { + (findLoadedClass(name) ?: findClass(name) ?: parent.loadClass(name)).apply { + resolveClass(this) + } + } + } + override fun findClass(name: String): Class<*> { val bytecode = transformer.run { try { @@ -51,3 +77,13 @@ class TransformerClassLoader : URLClassLoader { } } + +private val ClassLoader.classpath: Array + get() = (this as? URLClassLoader)?.urLs ?: System.getProperty("java.class.path").split(File.pathSeparatorChar).map { + try { + File(it).toURI().toURL() + } catch (e: SecurityException) { + URL("file", null, File(it).absolutePath) + } + }.toTypedArray() + diff --git a/build.gradle b/build.gradle index c959bcfbb..d8e18bb20 100644 --- a/build.gradle +++ b/build.gradle @@ -211,6 +211,9 @@ task reference(type: org.jetbrains.dokka.gradle.DokkaTask, group: 'Documentation 'booster-kotlinx/packages-zh-CN.md', 'booster-task-compression/packages-zh-CN.md', 'booster-task-spi/packages-zh-CN.md', + 'booster-test/packages-zh-CN.md', + 'booster-test-asm/packages-zh-CN.md', + 'booster-test-javassist/packages-zh-CN.md', 'booster-transform-asm/packages-zh-CN.md', 'booster-transform-javassist/packages-zh-CN.md', 'booster-transform-spi/packages-zh-CN.md', diff --git a/settings.gradle b/settings.gradle index 8eedac791..0201aa84a 100644 --- a/settings.gradle +++ b/settings.gradle @@ -37,6 +37,9 @@ include ':booster-task-list-permission' include ':booster-task-list-shared-library' include ':booster-task-resource-deredundancy' include ':booster-task-spi' +include ':booster-test' +include ':booster-test-asm' +include ':booster-test-javassist' include ':booster-transform-activity-thread' include ':booster-transform-asm' include ':booster-transform-br-inline' From 3211275eb0929a727fee54338f3b8d9cd5c650f0 Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Mon, 20 Dec 2021 10:17:41 +0800 Subject: [PATCH 091/187] Release version 4.3.0 --- README.md | 19 +++++++++++++++++-- RELEASE-NOTES.md | 5 +++++ build.gradle | 2 +- 3 files changed, 23 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 6cfc331ac..45de75365 100644 --- a/README.md +++ b/README.md @@ -74,7 +74,7 @@ The best practise of using Booster is integrating the specific module to solve t ```groovy buildscript { - ext.booster_version = '4.2.1' + ext.booster_version = '4.3.0' repositories { google() mavenCentral() @@ -122,7 +122,7 @@ The `plugins` DSL also supported since Booster *3.0.0* ```groovy plugins { - id 'com.didiglobal.booster' version '4.2.1' + id 'com.didiglobal.booster' version '4.3.0' } ``` @@ -292,6 +292,21 @@ Here are all the modules of Booster: classpath "com.didiglobal.booster:booster-task-list-shared-library:$booster_version" ``` +### Unit Test + +- [booster-test-asm](./booster-test-asm) - Support running unit test with ASM based transformer + + ```groovy + classpath "com.didiglobal.booster:booster-task-asm:$booster_version" + ``` + +- [booster-test-javassist](./booster-test-javassist) - Support running unit test with Javassist based transformer + + + ```groovy + classpath "com.didiglobal.booster:booster-task-javassist:$booster_version" + ``` + ## Samples | 示例 - [transformer-with-asm](https://github.com/boostersamples/transformer-with-asm) diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index b4957fe29..a08c9da00 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -1,3 +1,8 @@ +## v4.3.0 + +- Support running local unit test with transformer +- Add collector API for multi-round transform + ## v4.2.0 - Add Android stub APIs diff --git a/build.gradle b/build.gradle index d8e18bb20..30f2143af 100644 --- a/build.gradle +++ b/build.gradle @@ -31,7 +31,7 @@ allprojects { project -> apply plugin: 'maven-publish' group = 'com.didiglobal.booster' - version = '4.2.1' + version = '4.3.0' repositories { mavenLocal() From c5eb4ad171b6d8de287f48a53ec481a4010ef477 Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Fri, 14 Jan 2022 09:53:49 +0800 Subject: [PATCH 092/187] Support force update inputs for incremental build --- .../gradle/BoosterTransformInvocation.kt | 63 ++++++++-- .../test/asm/SimpleClassTransformer.kt | 8 ++ .../transform/AbstractTransformContext.kt | 11 ++ .../didiglobal/booster/transform/Collector.kt | 23 ++++ .../booster/transform/TransformContext.kt | 3 + .../booster/transform/util/Collector.kt | 69 ----------- .../booster/transform/util/Collectors.kt | 117 ++++++++++++++++++ .../transform/util/CompositeCollector.kt | 26 ++++ .../booster/transform/util/Supervisors.kt | 71 +++++++++++ .../booster/transform/util/TransformHelper.kt | 11 +- .../transform/util/TransformerClassLoader.kt | 4 +- .../transform/util/ClassNameCollectorTest.kt | 25 ++++ .../transform/util/ServiceCollectorTest.kt | 89 +++++++++++++ 13 files changed, 435 insertions(+), 85 deletions(-) create mode 100644 booster-transform-spi/src/main/kotlin/com/didiglobal/booster/transform/Collector.kt delete mode 100644 booster-transform-util/src/main/kotlin/com/didiglobal/booster/transform/util/Collector.kt create mode 100644 booster-transform-util/src/main/kotlin/com/didiglobal/booster/transform/util/Collectors.kt create mode 100644 booster-transform-util/src/main/kotlin/com/didiglobal/booster/transform/util/CompositeCollector.kt create mode 100644 booster-transform-util/src/main/kotlin/com/didiglobal/booster/transform/util/Supervisors.kt create mode 100644 booster-transform-util/src/test/kotlin/com/didiglobal/booster/transform/util/ClassNameCollectorTest.kt create mode 100644 booster-transform-util/src/test/kotlin/com/didiglobal/booster/transform/util/ServiceCollectorTest.kt diff --git a/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/BoosterTransformInvocation.kt b/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/BoosterTransformInvocation.kt index cca164b38..3fc22fb84 100644 --- a/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/BoosterTransformInvocation.kt +++ b/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/BoosterTransformInvocation.kt @@ -4,8 +4,6 @@ import com.android.build.api.transform.DirectoryInput import com.android.build.api.transform.Format import com.android.build.api.transform.JarInput import com.android.build.api.transform.QualifiedContent -import com.android.build.api.transform.Status.ADDED -import com.android.build.api.transform.Status.CHANGED import com.android.build.api.transform.Status.NOTCHANGED import com.android.build.api.transform.Status.REMOVED import com.android.build.api.transform.TransformInvocation @@ -17,11 +15,15 @@ import com.didiglobal.booster.kotlinx.green import com.didiglobal.booster.kotlinx.red import com.didiglobal.booster.transform.AbstractKlassPool import com.didiglobal.booster.transform.ArtifactManager +import com.didiglobal.booster.transform.Collector import com.didiglobal.booster.transform.TransformContext import com.didiglobal.booster.transform.artifacts +import com.didiglobal.booster.transform.util.CompositeCollector +import com.didiglobal.booster.transform.util.collect import com.didiglobal.booster.transform.util.transform import java.io.File import java.net.URI +import java.util.concurrent.Callable import java.util.concurrent.CopyOnWriteArrayList import java.util.concurrent.ExecutorService import java.util.concurrent.Executors @@ -42,6 +44,8 @@ internal class BoosterTransformInvocation( private val outputs = CopyOnWriteArrayList() + private val collectors = CopyOnWriteArrayList>() + override val name: String = delegate.context.variantName override val projectDir: File = project.projectDir @@ -82,10 +86,32 @@ internal class BoosterTransformInvocation( override fun get(type: String) = variant.artifacts.get(type) + override fun registerCollector(collector: Collector) { + this.collectors += collector + } + + override fun unregisterCollector(collector: Collector) { + this.collectors -= collector + } + internal fun doFullTransform() = doTransform(this::transformFully) internal fun doIncrementalTransform() = doTransform(this::transformIncrementally) + private fun lookAhead(executor: ExecutorService): Set { + return this.inputs.asSequence().map { + it.jarInputs + it.directoryInputs + }.flatten().map { input -> + executor.submit(Callable { + input.file.takeIf { file -> + file.collect(CompositeCollector(collectors)).isNotEmpty() + } + }) + }.mapNotNull { + it.get() + }.toSet() + } + private fun onPreTransform() { transform.transformers.forEach { it.onPreTransform(this) @@ -98,13 +124,21 @@ internal class BoosterTransformInvocation( } } - private fun doTransform(block: (ExecutorService) -> Iterable>) { + private fun doTransform(block: (ExecutorService, Set) -> Iterable>) { this.outputs.clear() - this.onPreTransform() + this.collectors.clear() val executor = Executors.newFixedThreadPool(NCPU) + + this.onPreTransform() + + // Look ahead to determine which input need to be transformed even incremental build + val outOfDate = this.lookAhead(executor).onEach { + project.logger.info("✨ ${it.canonicalPath} OUT-OF-DATE ") + } + try { - block(executor).forEach { + block(executor, outOfDate).forEach { it.get() } } finally { @@ -119,7 +153,7 @@ internal class BoosterTransformInvocation( } } - private fun transformFully(executor: ExecutorService) = this.inputs.map { + private fun transformFully(executor: ExecutorService, @Suppress("UNUSED_PARAMETER") outOfDate: Set) = this.inputs.map { it.jarInputs + it.directoryInputs }.flatten().map { input -> executor.submit { @@ -131,15 +165,18 @@ internal class BoosterTransformInvocation( } } - private fun transformIncrementally(executor: ExecutorService) = this.inputs.map { input -> - input.jarInputs.filter { it.status != NOTCHANGED }.map { jarInput -> + private fun transformIncrementally(executor: ExecutorService, outOfDate: Set) = this.inputs.map { input -> + input.jarInputs.filter { + it.status != NOTCHANGED || outOfDate.contains(it.file) + }.map { jarInput -> executor.submit { doIncrementalTransform(jarInput) } - } + input.directoryInputs.filter { it.changedFiles.isNotEmpty() }.map { dirInput -> - val base = dirInput.file.toURI() + } + input.directoryInputs.filter { + it.changedFiles.isNotEmpty() || outOfDate.contains(it.file) + }.map { dirInput -> executor.submit { - doIncrementalTransform(dirInput, base) + doIncrementalTransform(dirInput, dirInput.file.toURI()) } } }.flatten() @@ -148,7 +185,7 @@ internal class BoosterTransformInvocation( private fun doIncrementalTransform(jarInput: JarInput) { when (jarInput.status) { REMOVED -> jarInput.file.delete() - CHANGED, ADDED -> { + else -> { project.logger.info("Transforming ${jarInput.file}") outputProvider?.let { provider -> jarInput.transform(provider.getContentLocation(jarInput.name, jarInput.contentTypes, jarInput.scopes, Format.JAR)) @@ -172,7 +209,7 @@ internal class BoosterTransformInvocation( } file.delete() } - ADDED, CHANGED -> { + else -> { project.logger.info("Transforming $file") outputProvider?.let { provider -> val root = provider.getContentLocation(dirInput.name, dirInput.contentTypes, dirInput.scopes, Format.DIRECTORY) diff --git a/booster-test-asm/src/test/kotlin/com/didiglobal/booster/test/asm/SimpleClassTransformer.kt b/booster-test-asm/src/test/kotlin/com/didiglobal/booster/test/asm/SimpleClassTransformer.kt index b3a0d0995..1ff646e68 100644 --- a/booster-test-asm/src/test/kotlin/com/didiglobal/booster/test/asm/SimpleClassTransformer.kt +++ b/booster-test-asm/src/test/kotlin/com/didiglobal/booster/test/asm/SimpleClassTransformer.kt @@ -1,5 +1,6 @@ package com.didiglobal.booster.test.asm +import com.didiglobal.booster.transform.Collector import com.didiglobal.booster.transform.TransformContext import com.didiglobal.booster.transform.asm.ClassTransformer import com.google.auto.service.AutoService @@ -8,6 +9,13 @@ import org.objectweb.asm.tree.ClassNode @AutoService(ClassTransformer::class) class SimpleClassTransformer : ClassTransformer { + override fun onPreTransform(context: TransformContext) { + context.registerCollector(object : Collector { + override fun accept(name: String): Boolean = name == "" + override fun collect(name: String, data: () -> ByteArray): String? = name + }) + } + override fun transform(context: TransformContext, klass: ClassNode): ClassNode { println(klass.name) return klass diff --git a/booster-transform-spi/src/main/kotlin/com/didiglobal/booster/transform/AbstractTransformContext.kt b/booster-transform-spi/src/main/kotlin/com/didiglobal/booster/transform/AbstractTransformContext.kt index c215cab42..9148cc58d 100644 --- a/booster-transform-spi/src/main/kotlin/com/didiglobal/booster/transform/AbstractTransformContext.kt +++ b/booster-transform-spi/src/main/kotlin/com/didiglobal/booster/transform/AbstractTransformContext.kt @@ -1,6 +1,7 @@ package com.didiglobal.booster.transform import java.io.File +import java.util.concurrent.CopyOnWriteArrayList abstract class AbstractTransformContext( final override val applicationId: String, @@ -11,6 +12,8 @@ abstract class AbstractTransformContext( val bootKlassPool: KlassPool = makeKlassPool(bootClasspath) ) : TransformContext { + val collectors = CopyOnWriteArrayList>() + override val projectDir = File(System.getProperty("user.dir")) override val buildDir: File @@ -38,6 +41,14 @@ abstract class AbstractTransformContext( override fun hasProperty(name: String) = false + override fun registerCollector(collector: Collector) { + this.collectors += collector + } + + override fun unregisterCollector(collector: Collector) { + this.collectors -= collector + } + } private fun makeKlassPool(bootClasspath: Collection): KlassPool { diff --git a/booster-transform-spi/src/main/kotlin/com/didiglobal/booster/transform/Collector.kt b/booster-transform-spi/src/main/kotlin/com/didiglobal/booster/transform/Collector.kt new file mode 100644 index 000000000..7818b9a05 --- /dev/null +++ b/booster-transform-spi/src/main/kotlin/com/didiglobal/booster/transform/Collector.kt @@ -0,0 +1,23 @@ +package com.didiglobal.booster.transform + +/** + * A collector is used for collecting information from the transform pipeline, + * it's a complementary of [Transformer] which is a one-way pipeline + */ +interface Collector { + /** + * Determine the input is acceptable by this collector + */ + fun accept(name: String): Boolean + + /** + * Returns the collected result, a non-null result means the matched input is out-of-date. + */ + fun collect(name: String, data: () -> ByteArray): R +} + +/** + * A supervisor is used for observing information from the transform pipeline, + * and it never causes the input out-of-date + */ +interface Supervisor : Collector diff --git a/booster-transform-spi/src/main/kotlin/com/didiglobal/booster/transform/TransformContext.kt b/booster-transform-spi/src/main/kotlin/com/didiglobal/booster/transform/TransformContext.kt index 65b753d96..2cef2aa5d 100644 --- a/booster-transform-spi/src/main/kotlin/com/didiglobal/booster/transform/TransformContext.kt +++ b/booster-transform-spi/src/main/kotlin/com/didiglobal/booster/transform/TransformContext.kt @@ -99,4 +99,7 @@ interface TransformContext { */ fun getProperty(name: String, default: T): T = default + fun registerCollector(collector: Collector) + fun unregisterCollector(collector: Collector) + } diff --git a/booster-transform-util/src/main/kotlin/com/didiglobal/booster/transform/util/Collector.kt b/booster-transform-util/src/main/kotlin/com/didiglobal/booster/transform/util/Collector.kt deleted file mode 100644 index da904b4ea..000000000 --- a/booster-transform-util/src/main/kotlin/com/didiglobal/booster/transform/util/Collector.kt +++ /dev/null @@ -1,69 +0,0 @@ -package com.didiglobal.booster.transform.util - -import com.didiglobal.booster.kotlinx.search -import com.didiglobal.booster.transform.TransformContext -import org.apache.commons.compress.archivers.ArchiveEntry -import org.apache.commons.compress.archivers.ArchiveStreamFactory -import java.io.IOException - -interface Collector { - fun accept(name: String): Boolean - fun collect(name: String, data: () -> ByteArray): R -} - -sealed class Collectors { - - object ClassNameCollector : Collector { - override fun accept(name: String): Boolean { - return name.endsWith(".class", true) - } - - override fun collect(name: String, data: () -> ByteArray): String { - return name.substringBeforeLast('.').replace('/', '.') - } - } - - object ServiceCollector : Collector>> { - override fun accept(name: String): Boolean { - return name.substringBeforeLast('/') == "META-INF/services" - } - - override fun collect(name: String, data: () -> ByteArray): Pair> { - return name.substringAfterLast('/').replace('/', '.') to data().inputStream().bufferedReader().lineSequence().filterNot { - it.isBlank() || it.startsWith('#') - }.toMutableSet() - } - } - -} - -fun TransformContext.collect(collector: Collector): List = compileClasspath.map { file -> - when { - file.isDirectory -> { - val base = file.toURI() - file.search { f -> - f.isFile && collector.accept(base.relativize(f.toURI()).normalize().path) - }.map { f -> - collector.collect(base.relativize(f.toURI()).normalize().path, f::readBytes) - } - } - file.isFile -> { - file.inputStream().buffered().use { - ArchiveStreamFactory().createArchiveInputStream(it).let { archive -> - generateSequence { - try { - archive.nextEntry - } catch (e: IOException) { - null - } - }.filterNot(ArchiveEntry::isDirectory).filter { entry -> - collector.accept(entry.name) - }.map { entry -> - collector.collect(entry.name, archive::readBytes) - }.toList() - } - } - } - else -> emptyList() - } -}.flatten() \ No newline at end of file diff --git a/booster-transform-util/src/main/kotlin/com/didiglobal/booster/transform/util/Collectors.kt b/booster-transform-util/src/main/kotlin/com/didiglobal/booster/transform/util/Collectors.kt new file mode 100644 index 000000000..fafd6f804 --- /dev/null +++ b/booster-transform-util/src/main/kotlin/com/didiglobal/booster/transform/util/Collectors.kt @@ -0,0 +1,117 @@ +package com.didiglobal.booster.transform.util + +import com.didiglobal.booster.kotlinx.search +import com.didiglobal.booster.transform.AbstractTransformContext +import com.didiglobal.booster.transform.TransformContext +import org.apache.commons.compress.archivers.ArchiveEntry +import org.apache.commons.compress.archivers.ArchiveStreamFactory +import java.io.File +import java.io.IOException +import java.util.regex.Pattern + +typealias Collector = com.didiglobal.booster.transform.Collector + +internal const val PATTERN_FQN = "(([a-zA-Z_\$][a-zA-Z\\d_\$]*\\.)*[a-zA-Z_\$][a-zA-Z\\d_\$]*)" + +internal val REGEX_FQN = Regex("^${PATTERN_FQN}$") + +internal val REGEX_SPI = Regex("^META-INF/services/${PATTERN_FQN}$") + +sealed class Collectors { + + /** + * A collector for class name collecting + */ + object ClassNameCollector : Collector { + override fun accept(name: String): Boolean { + return name.endsWith(".class", true) + } + + override fun collect(name: String, data: () -> ByteArray): String { + return name.substringBeforeLast('.').replace('/', '.') + } + } + + /** + * A collector for service (SPI) collecting + */ + object ServiceCollector : Collector>> { + + override fun accept(name: String): Boolean { + return name matches REGEX_SPI + } + + override fun collect(name: String, data: () -> ByteArray): Pair> { + return REGEX_SPI.matchEntire(name)!!.groupValues[1] to data().inputStream().bufferedReader().lineSequence().filterNot { + it.isBlank() || it.startsWith('#') + }.toSet() + } + } + +} + +class NameCollector(private val names: Set) : Collector { + + constructor(names: Iterable) : this(names.toSet()) + + constructor(vararg names: String) : this(names.toSet()) + + override fun accept(name: String) = name in names + + override fun collect(name: String, data: () -> ByteArray) = name + +} + +class RegexCollector(private val regex: Regex) : Collector { + + constructor(regex: String) : this(Regex(regex)) + + constructor(pattern: Pattern) : this(pattern.toRegex()) + + override fun accept(name: String): Boolean = name matches regex + + override fun collect(name: String, data: () -> ByteArray): String = name +} + +/** + * Collecting information from file with [collector], the supported file types are as follows: + * + * - directories + * - archive files + */ +fun File.collect(collector: Collector): List = when { + this.isDirectory -> { + val base = this.toURI() + this.search { f -> + f.isFile && collector.accept(base.relativize(f.toURI()).normalize().path) + }.map { f -> + collector.collect(base.relativize(f.toURI()).normalize().path, f::readBytes) + } + } + this.isFile -> { + this.inputStream().buffered().use { + ArchiveStreamFactory().createArchiveInputStream(it).let { archive -> + generateSequence { + try { + archive.nextEntry + } catch (e: IOException) { + null + } + }.filterNot(ArchiveEntry::isDirectory).filter { entry -> + collector.accept(entry.name) + }.map { entry -> + collector.collect(entry.name, archive::readBytes) + }.toList() + } + } + } + else -> emptyList() +} + +fun TransformContext.collect(collector: Collector): List { + return compileClasspath.map { file -> + file.collect(collector) + }.flatten() +} + +fun AbstractTransformContext.collect(): List<*> = collect(CompositeCollector(collectors)).flatten() diff --git a/booster-transform-util/src/main/kotlin/com/didiglobal/booster/transform/util/CompositeCollector.kt b/booster-transform-util/src/main/kotlin/com/didiglobal/booster/transform/util/CompositeCollector.kt new file mode 100644 index 000000000..3ca22c1e4 --- /dev/null +++ b/booster-transform-util/src/main/kotlin/com/didiglobal/booster/transform/util/CompositeCollector.kt @@ -0,0 +1,26 @@ +package com.didiglobal.booster.transform.util + +/** + * Represents a composite collector + * + * @author johnsonlee + */ +class CompositeCollector(private val collectors: Iterable>) : Collector> { + + constructor(vararg collectors: Collector<*>) : this(collectors.asIterable()) + + override fun accept(name: String): Boolean { + return collectors.any { collector -> + collector.accept(name) + } + } + + override fun collect(name: String, data: () -> ByteArray): List<*> { + return collectors.filter { + it.accept(name) + }.mapNotNull { + it.collect(name, data) + } + } + +} diff --git a/booster-transform-util/src/main/kotlin/com/didiglobal/booster/transform/util/Supervisors.kt b/booster-transform-util/src/main/kotlin/com/didiglobal/booster/transform/util/Supervisors.kt new file mode 100644 index 000000000..31ed77868 --- /dev/null +++ b/booster-transform-util/src/main/kotlin/com/didiglobal/booster/transform/util/Supervisors.kt @@ -0,0 +1,71 @@ +package com.didiglobal.booster.transform.util + +import com.didiglobal.booster.transform.Supervisor + +/** + * An abstraction of [Supervisor] + * + * @param action The action for observing + */ +abstract class AbstractSupervisor( + protected val action: (T) -> Unit +) : Supervisor + +/** + * A supervisor for class descriptor observing + * + * @param prefix The prefix of class descriptor + */ +open class ClassDescriptorSupervisor( + private val prefix: String, + action: (String) -> Unit +) : AbstractSupervisor(action) { + + override fun accept(name: String): Boolean { + return name.endsWith(".class", true) && name.startsWith(prefix) + } + + override fun collect(name: String, data: () -> ByteArray) { + action(name.substringBeforeLast(".class")) + } + +} + +/** + * A supervisor for class name observing + */ +class ClassNameSupervisor( + private val prefix: String, + action: (String) -> Unit +) : AbstractSupervisor(action) { + + override fun accept(name: String): Boolean { + return name.endsWith(".class", true) && name.startsWith(prefix) + } + + override fun collect(name: String, data: () -> ByteArray) { + action(name.substringBeforeLast(".class").replace('/', '.')) + } + +} + +/** + * A supervisor for service (SPI) observing + */ +class ServiceSupervisor( + action: (Pair>) -> Unit +) : AbstractSupervisor>>(action) { + + override fun accept(name: String): Boolean { + return name matches REGEX_SPI + } + + override fun collect(name: String, data: () -> ByteArray) { + val `interface` = REGEX_SPI.matchEntire(name)!!.groupValues[1] + val implementations = data().inputStream().bufferedReader().lineSequence().filterNot { + it.isBlank() || it.startsWith('#') + }.toSet() + action(`interface` to implementations) + } + +} diff --git a/booster-transform-util/src/main/kotlin/com/didiglobal/booster/transform/util/TransformHelper.kt b/booster-transform-util/src/main/kotlin/com/didiglobal/booster/transform/util/TransformHelper.kt index 4dec531f2..4d667ac31 100644 --- a/booster-transform-util/src/main/kotlin/com/didiglobal/booster/transform/util/TransformHelper.kt +++ b/booster-transform-util/src/main/kotlin/com/didiglobal/booster/transform/util/TransformHelper.kt @@ -67,6 +67,16 @@ open class TransformHelper( it.get() } + inputs.map { input -> + executor.submit { + input.takeIf { + it.collect(CompositeCollector(context.collectors)).isNotEmpty() + } + } + }.forEach { + it.get() + } + inputs.map { executor.submit { it.transform(context.buildDir.file("transforms", it.name)) { bytecode -> @@ -95,4 +105,3 @@ open class TransformHelper( fun transform(vararg transformers: Transformer, output: File = TMPDIR) = transform(output, *transformers) } - diff --git a/booster-transform-util/src/main/kotlin/com/didiglobal/booster/transform/util/TransformerClassLoader.kt b/booster-transform-util/src/main/kotlin/com/didiglobal/booster/transform/util/TransformerClassLoader.kt index 84526dcd2..5d3bfdc4c 100644 --- a/booster-transform-util/src/main/kotlin/com/didiglobal/booster/transform/util/TransformerClassLoader.kt +++ b/booster-transform-util/src/main/kotlin/com/didiglobal/booster/transform/util/TransformerClassLoader.kt @@ -1,7 +1,6 @@ package com.didiglobal.booster.transform.util import com.didiglobal.booster.transform.AbstractTransformContext -import com.didiglobal.booster.transform.TransformContext import com.didiglobal.booster.transform.Transformer import java.io.File import java.io.IOException @@ -47,7 +46,7 @@ class TransformerClassLoader : URLClassLoader { this.urLs.map { File(it.path) } } - private val context: TransformContext by lazy { + private val context by lazy { object : AbstractTransformContext(javaClass.name, javaClass.name, emptyList(), classpath, classpath) {} } @@ -65,6 +64,7 @@ class TransformerClassLoader : URLClassLoader { val bytecode = transformer.run { try { onPreTransform(context) + context.collect() getResourceAsStream("${name.replace('.', '/')}.class")?.use(InputStream::readBytes)?.let { transform(context, it) } ?: throw IOException("Read class $name failed") diff --git a/booster-transform-util/src/test/kotlin/com/didiglobal/booster/transform/util/ClassNameCollectorTest.kt b/booster-transform-util/src/test/kotlin/com/didiglobal/booster/transform/util/ClassNameCollectorTest.kt new file mode 100644 index 000000000..adb99b601 --- /dev/null +++ b/booster-transform-util/src/test/kotlin/com/didiglobal/booster/transform/util/ClassNameCollectorTest.kt @@ -0,0 +1,25 @@ +package com.didiglobal.booster.transform.util + +import kotlin.test.Test +import kotlin.test.assertEquals +import kotlin.test.assertFalse +import kotlin.test.assertTrue + +class ClassNameCollectorTest { + + @Test + fun `collect all class names`() { + assertFalse(Collectors.ClassNameCollector.accept("a")) + assertTrue(Collectors.ClassNameCollector.accept("a.class")) + assertEquals("a", Collectors.ClassNameCollector.collect("a.class") { + byteArrayOf() + }) + assertEquals("a.b.c", Collectors.ClassNameCollector.collect("a/b/c.class") { + byteArrayOf() + }) + assertEquals("a.b.c$1", Collectors.ClassNameCollector.collect("a/b/c$1.class") { + byteArrayOf() + }) + } + +} \ No newline at end of file diff --git a/booster-transform-util/src/test/kotlin/com/didiglobal/booster/transform/util/ServiceCollectorTest.kt b/booster-transform-util/src/test/kotlin/com/didiglobal/booster/transform/util/ServiceCollectorTest.kt new file mode 100644 index 000000000..ceb98c08f --- /dev/null +++ b/booster-transform-util/src/test/kotlin/com/didiglobal/booster/transform/util/ServiceCollectorTest.kt @@ -0,0 +1,89 @@ +package com.didiglobal.booster.transform.util + +import com.didiglobal.booster.transform.Transformer +import com.didiglobal.booster.transform.asm.AsmTransformer +import kotlin.test.Test +import kotlin.test.assertEquals +import kotlin.test.assertFalse +import kotlin.test.assertTrue + +const val META_INF_SERVICES = "META-INF/services" + +class ServiceCollectorTest { + + @Test + fun `collect services from empty directory`() { + assertFalse(Collectors.ServiceCollector.accept("${META_INF_SERVICES}/")) + } + + @Test + fun `collect services from invalid directory`() { + assertFalse(Collectors.ServiceCollector.accept("/${META_INF_SERVICES}/${Transformer::class.java.name}")) + } + + @Test + fun `collect service with fqn`() { + assertTrue(Collectors.ServiceCollector.accept("${META_INF_SERVICES}/${Transformer::class.java.name}")) + assertEquals(Transformer::class.java.name to setOf( + AsmTransformer::class.java.name + ), Collectors.ServiceCollector.collect("${META_INF_SERVICES}/${Transformer::class.java.name}") { + """ + ${AsmTransformer::class.java.name} + """.trimIndent().toByteArray() + }) + } + + @Test + fun `collect service without package name`() { + assertTrue(Collectors.ServiceCollector.accept("${META_INF_SERVICES}/Transformer")) + assertEquals("Transformer" to setOf( + AsmTransformer::class.java.name + ), Collectors.ServiceCollector.collect("${META_INF_SERVICES}/Transformer") { + """ + ${AsmTransformer::class.java.name} + """.trimIndent().toByteArray() + }) + } + + @Test + fun `collect anonymous service without package name`() { + assertTrue(Collectors.ServiceCollector.accept("${META_INF_SERVICES}/Transformer$")) + assertEquals("Transformer$" to setOf( + AsmTransformer::class.java.name + ), Collectors.ServiceCollector.collect("${META_INF_SERVICES}/Transformer$") { + """ + ${AsmTransformer::class.java.name} + """.trimIndent().toByteArray() + }) + } + + @Test + fun `collect anonymous service with package name`() { + assertTrue(Collectors.ServiceCollector.accept("${META_INF_SERVICES}/a.Transformer$")) + assertEquals("a.Transformer$" to setOf( + AsmTransformer::class.java.name + ), Collectors.ServiceCollector.collect("${META_INF_SERVICES}/a.Transformer$") { + """ + ${AsmTransformer::class.java.name} + """.trimIndent().toByteArray() + }) + } + + @Test + fun `collect services`() { + assertTrue(Collectors.ServiceCollector.accept("${META_INF_SERVICES}/_.Transformer$1")) + assertTrue(Collectors.ServiceCollector.accept("${META_INF_SERVICES}/$.Transformer$1")) + assertTrue(Collectors.ServiceCollector.accept("${META_INF_SERVICES}/a._.$.Transformer$1")) + assertTrue(Collectors.ServiceCollector.accept("${META_INF_SERVICES}/a1.b1.Transformer$1")) + assertTrue(Collectors.ServiceCollector.accept("${META_INF_SERVICES}/a1$.b1$.Transformer$1")) + assertTrue(Collectors.ServiceCollector.accept("${META_INF_SERVICES}/a1_.b1_.Transformer$1")) + assertTrue(Collectors.ServiceCollector.accept("${META_INF_SERVICES}/$1a.Transformer$1")) + assertTrue(Collectors.ServiceCollector.accept("${META_INF_SERVICES}/_1a.Transformer$1")) + assertFalse(Collectors.ServiceCollector.accept("${META_INF_SERVICES}/a/Transformer$1")) + assertFalse(Collectors.ServiceCollector.accept("${META_INF_SERVICES}/-.Transformer$1")) + assertFalse(Collectors.ServiceCollector.accept("${META_INF_SERVICES}/1a.Transformer$1")) + assertFalse(Collectors.ServiceCollector.accept("${META_INF_SERVICES}/a1_$-.Transformer$1")) + } + + +} \ No newline at end of file From 5c73ac7f72b5e6f66e942a70e3ee5dde52762b1c Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Sat, 15 Jan 2022 00:15:43 +0800 Subject: [PATCH 093/187] Release version 4.4.0 --- .github/workflows/publish.yml | 2 +- README.md | 4 ++-- RELEASE-NOTES.md | 4 ++++ build.gradle | 2 +- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 986d096e3..4630a6d21 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -26,7 +26,7 @@ jobs: run: | echo "Create GPG private key" echo $GPG_KEY_ARMOR | base64 --decode > $GITHUB_WORKSPACE/secring.gpg - ./gradlew publishToSonatype closeAndReleaseStagingRepository -POSSRH_USERNAME=${OSSRH_USERNAME} -POSSRH_PASSWORD=${OSSRH_PASSWORD} -POSSRH_STAGING_PROFILE_ID=${OSSRH_STAGING_PROFILE_ID} -Psigning.keyId=${GPG_KEY_ID} -Psigning.password=${GPG_PASSPHRASE} -Psigning.secretKeyRingFile=${GITHUB_WORKSPACE}/secring.gpg -S --no-daemon + ./gradlew publishToSonatype closeAndReleaseStagingRepository -Pversion=${GITHUB_REF/refs\/tags\/v/} -POSSRH_USERNAME=${OSSRH_USERNAME} -POSSRH_PASSWORD=${OSSRH_PASSWORD} -POSSRH_STAGING_PROFILE_ID=${OSSRH_STAGING_PROFILE_ID} -Psigning.keyId=${GPG_KEY_ID} -Psigning.password=${GPG_PASSPHRASE} -Psigning.secretKeyRingFile=${GITHUB_WORKSPACE}/secring.gpg -S --no-daemon env: GPG_KEY_ARMOR: ${{ secrets.GPG_KEY_ARMOR }} GPG_KEY_ID: ${{ secrets.GPG_KEY_ID }} diff --git a/README.md b/README.md index 45de75365..90df3735b 100644 --- a/README.md +++ b/README.md @@ -74,7 +74,7 @@ The best practise of using Booster is integrating the specific module to solve t ```groovy buildscript { - ext.booster_version = '4.3.0' + ext.booster_version = '4.4.0' repositories { google() mavenCentral() @@ -122,7 +122,7 @@ The `plugins` DSL also supported since Booster *3.0.0* ```groovy plugins { - id 'com.didiglobal.booster' version '4.3.0' + id 'com.didiglobal.booster' version '4.4.0' } ``` diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index a08c9da00..7ee289e0e 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -1,3 +1,7 @@ +## v4.4.0 + +- Support force update inputs for incremental build + ## v4.3.0 - Support running local unit test with transformer diff --git a/build.gradle b/build.gradle index 30f2143af..41fa3e571 100644 --- a/build.gradle +++ b/build.gradle @@ -31,7 +31,7 @@ allprojects { project -> apply plugin: 'maven-publish' group = 'com.didiglobal.booster' - version = '4.3.0' + version = findProperty('version') ?: '1.0.0-SNAPSHOT' repositories { mavenLocal() From eeb29a6a077185edf1d4595655945379fdc37e1c Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Sat, 5 Mar 2022 17:33:16 +0800 Subject: [PATCH 094/187] Fix issue #280 thread renaming for ScheduledThreadPoolExecutor --- .../ShadowScheduledThreadPoolExecutor.java | 168 ++++++++++++++++++ .../transform/thread/ThreadTransformer.kt | 66 ++++++- 2 files changed, 228 insertions(+), 6 deletions(-) create mode 100644 booster-android-instrument-thread/src/main/java/com/didiglobal/booster/instrument/ShadowScheduledThreadPoolExecutor.java diff --git a/booster-android-instrument-thread/src/main/java/com/didiglobal/booster/instrument/ShadowScheduledThreadPoolExecutor.java b/booster-android-instrument-thread/src/main/java/com/didiglobal/booster/instrument/ShadowScheduledThreadPoolExecutor.java new file mode 100644 index 000000000..716a1d3ad --- /dev/null +++ b/booster-android-instrument-thread/src/main/java/com/didiglobal/booster/instrument/ShadowScheduledThreadPoolExecutor.java @@ -0,0 +1,168 @@ +package com.didiglobal.booster.instrument; + +import java.util.concurrent.RejectedExecutionHandler; +import java.util.concurrent.ScheduledThreadPoolExecutor; +import java.util.concurrent.ThreadFactory; + +/** + * @author johnsonlee + */ +public class ShadowScheduledThreadPoolExecutor extends ScheduledThreadPoolExecutor { + + /** + * Initialize {@code ScheduledThreadPoolExecutor} with new thread name, this constructor is used by {@code ThreadTransformer} for thread renaming + * + * @param corePoolSize the number of threads to keep in the pool, even if they are idle, + * unless {@code allowCoreThreadTimeOut} is set + * @param prefix the prefix of new thread + * @throws IllegalArgumentException if {@code corePoolSize < 0} + */ + public ShadowScheduledThreadPoolExecutor( + final int corePoolSize, + final String prefix + ) { + this(corePoolSize, prefix, false); + } + + /** + * Initialize {@code ScheduledThreadPoolExecutor} with new thread name, this constructor is used by {@code ThreadTransformer} for thread renaming + * + * @param corePoolSize the number of threads to keep in the pool, even if they are idle, + * unless {@code allowCoreThreadTimeOut} is set + * @param prefix the prefix of new thread + * @param optimize the value indicates that the thread pool optimization should be applied + * @throws IllegalArgumentException if {@code corePoolSize < 0} + */ + public ShadowScheduledThreadPoolExecutor( + final int corePoolSize, + final String prefix, + final boolean optimize + ) { + super(corePoolSize, new NamedThreadFactory(prefix)); + if (optimize) { + allowCoreThreadTimeOut(true); + } + } + + /** + * Initialize {@code ScheduledThreadPoolExecutor} with new thread name, this constructor is used by {@code ThreadTransformer} for thread renaming + * + * @param corePoolSize the number of threads to keep in the pool, even if they are idle, + * unless {@code allowCoreThreadTimeOut} is set + * @param threadFactory the factory to use when the executor creates a new thread + * @param prefix the prefix of new thread + * @throws IllegalArgumentException if {@code corePoolSize < 0} + */ + public ShadowScheduledThreadPoolExecutor( + final int corePoolSize, + final ThreadFactory threadFactory, + final String prefix + ) { + this(corePoolSize, threadFactory, prefix, false); + } + + /** + * Initialize {@code ScheduledThreadPoolExecutor} with new thread name, this constructor is used by {@code ThreadTransformer} for thread renaming + * + * @param corePoolSize the number of threads to keep in the pool, even if they are idle, + * unless {@code allowCoreThreadTimeOut} is set + * @param threadFactory the factory to use when the executor creates a new thread + * @param prefix the prefix of new thread + * @param optimize the value indicates that the thread pool optimization should be applied + * @throws IllegalArgumentException if {@code corePoolSize < 0} + */ + public ShadowScheduledThreadPoolExecutor( + final int corePoolSize, + final ThreadFactory threadFactory, + final String prefix, + final boolean optimize + ) { + super(corePoolSize, new NamedThreadFactory(threadFactory, prefix)); + if (optimize) { + allowCoreThreadTimeOut(true); + } + } + + /** + * Initialize {@code ScheduledThreadPoolExecutor} with new thread name, this constructor is used by {@code ThreadTransformer} for thread renaming + * + * @param corePoolSize the number of threads to keep in the pool, even if they are idle, + * unless {@code allowCoreThreadTimeOut} is set + * @param handler the handler to use when execution is blocked because the thread bounds and queue capacities are reached + * @param prefix the prefix of new thread + * @throws IllegalArgumentException if {@code corePoolSize < 0} + */ + public ShadowScheduledThreadPoolExecutor( + final int corePoolSize, + final RejectedExecutionHandler handler, + final String prefix + ) { + this(corePoolSize, handler, prefix, false); + } + + /** + * Initialize {@code ScheduledThreadPoolExecutor} with new thread name, this constructor is used by {@code ThreadTransformer} for thread renaming + * + * @param corePoolSize the number of threads to keep in the pool, even if they are idle, + * unless {@code allowCoreThreadTimeOut} is set + * @param handler the handler to use when execution is blocked because the thread bounds and queue capacities are reached + * @param prefix the prefix of new thread + * @param optimize the value indicates that the thread pool optimization should be applied + * @throws IllegalArgumentException if {@code corePoolSize < 0} + */ + public ShadowScheduledThreadPoolExecutor( + final int corePoolSize, + final RejectedExecutionHandler handler, + final String prefix, + final boolean optimize + ) { + super(corePoolSize, new NamedThreadFactory(prefix), handler); + if (optimize) { + allowCoreThreadTimeOut(true); + } + } + + /** + * Initialize {@code ScheduledThreadPoolExecutor} with new thread name, this constructor is used by {@code ThreadTransformer} for thread renaming + * + * @param corePoolSize the number of threads to keep in the pool, even if they are idle, + * unless {@code allowCoreThreadTimeOut} is set + * @param threadFactory the factory to use when the executor creates a new thread + * @param handler the handler to use when execution is blocked because the thread bounds and queue capacities are reached + * @param prefix the prefix of new thread + * @throws IllegalArgumentException if {@code corePoolSize < 0} + */ + public ShadowScheduledThreadPoolExecutor( + final int corePoolSize, + final ThreadFactory threadFactory, + final RejectedExecutionHandler handler, + final String prefix + ) { + this(corePoolSize, threadFactory, handler, prefix, false); + } + + /** + * Initialize {@code ScheduledThreadPoolExecutor} with new thread name, this constructor is used by {@code ThreadTransformer} for thread renaming + * + * @param corePoolSize the number of threads to keep in the pool, even if they are idle, + * unless {@code allowCoreThreadTimeOut} is set + * @param threadFactory the factory to use when the executor creates a new thread + * @param handler the handler to use when execution is blocked because the thread bounds and queue capacities are reached + * @param prefix the prefix of new thread + * @param optimize the value indicates that the thread pool optimization should be applied + * @throws IllegalArgumentException if {@code corePoolSize < 0} + */ + public ShadowScheduledThreadPoolExecutor( + final int corePoolSize, + final ThreadFactory threadFactory, + final RejectedExecutionHandler handler, + final String prefix, + final boolean optimize + ) { + super(corePoolSize, new NamedThreadFactory(threadFactory, prefix), handler); + if (optimize) { + allowCoreThreadTimeOut(true); + } + } + +} diff --git a/booster-transform-thread/src/main/kotlin/com/didiglobal/booster/transform/thread/ThreadTransformer.kt b/booster-transform-thread/src/main/kotlin/com/didiglobal/booster/transform/thread/ThreadTransformer.kt index 8183b42fc..1a5358ec1 100644 --- a/booster-transform-thread/src/main/kotlin/com/didiglobal/booster/transform/thread/ThreadTransformer.kt +++ b/booster-transform-thread/src/main/kotlin/com/didiglobal/booster/transform/thread/ThreadTransformer.kt @@ -104,6 +104,7 @@ class ThreadTransformer : ClassTransformer { * - `java.lang.Thread` * - `java.util.Timer` * - `java.util.concurrent.ThreadPoolExecutor` + * - `java.util.concurrent.ScheduledThreadPoolExecutor` * - `android.os.HandlerThread` */ private fun MethodInsnNode.transformInvokeSpecial(@Suppress("UNUSED_PARAMETER") context: TransformContext, klass: ClassNode, method: MethodNode) { @@ -115,12 +116,13 @@ class ThreadTransformer : ClassTransformer { HANDLER_THREAD -> transformHandlerThreadInvokeSpecial(klass, method) TIMER -> transformTimerInvokeSpecial(klass, method) THREAD_POOL_EXECUTOR -> transformThreadPoolExecutorInvokeSpecial(klass, method) + SCHEDULED_THREAD_POOL_EXECUTOR -> transformScheduledThreadPoolExecutorInvokeSpecial(klass, method) } } private fun MethodInsnNode.transformThreadPoolExecutorInvokeSpecial(klass: ClassNode, method: MethodNode, init: MethodInsnNode = this) { when (this.desc) { - // ThreadPoolExecutor(int, int, long, TimeUnit, BlockingQueue) + // ThreadPoolExecutor(int, int, long, TimeUnit, BlockingQueue) => ThreadPoolExecutor(int, int, long, TimeUnit, BlockingQueue, ThreadFactory) "(IIJLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/BlockingQueue;)V" -> { method.instructions.apply { // ..., queue => ..., queue, prefix @@ -139,7 +141,7 @@ class ThreadTransformer : ClassTransformer { insertBefore(init, MethodInsnNode(Opcodes.INVOKESTATIC, NAMED_THREAD_FACTORY, "newInstance", "(Ljava/util/concurrent/ThreadFactory;Ljava/lang/String;)Ljava/util/concurrent/ThreadFactory;")) } } - // ThreadPoolExecutor(int, int, long, TimeUnit, BlockingQueue, RejectedExecutionHandler) + // ThreadPoolExecutor(int, int, long, TimeUnit, BlockingQueue, RejectedExecutionHandler) => ThreadPoolExecutor(int, int, long, TimeUnit, BlockingQueue, ThreadFactory, RejectedExecutionHandler) "(IIJLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/BlockingQueue;Ljava/util/concurrent/RejectedExecutionHandler;)V" -> { method.instructions.apply { // ..., handler => ..., handler, prefix @@ -167,6 +169,55 @@ class ThreadTransformer : ClassTransformer { } } + private fun MethodInsnNode.transformScheduledThreadPoolExecutorInvokeSpecial(klass: ClassNode, method: MethodNode, init: MethodInsnNode = this) { + when (this.desc) { + // ScheduledThreadPoolExecutor(int) => ScheduledThreadPoolExecutor(int, ThreadFactory) + "(I)V" -> { + method.instructions.apply { + // ..., coreSize => ..., coreSize, prefix + insertBefore(init, LdcInsnNode(makeThreadName(klass.className))) + // ..., queue, prefix => ..., queue, factory + insertBefore(init, MethodInsnNode(Opcodes.INVOKESTATIC, NAMED_THREAD_FACTORY, "newInstance", "(Ljava/lang/String;)Ljava/util/concurrent/ThreadFactory;", false)) + } + this.desc = "(IIJLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/BlockingQueue;Ljava/util/concurrent/ThreadFactory;)V" + } + // ScheduledThreadPoolExecutor(int, ThreadFactory) + "(ILjava/util/concurrent/ThreadFactory;)V" -> { + method.instructions.apply { + // ..., factory => ..., factory, prefix + insertBefore(init, LdcInsnNode(makeThreadName(klass.className))) + // ..., factory, prefix => ..., factory + insertBefore(init, MethodInsnNode(Opcodes.INVOKESTATIC, NAMED_THREAD_FACTORY, "newInstance", "(Ljava/util/concurrent/ThreadFactory;Ljava/lang/String;)Ljava/util/concurrent/ThreadFactory;")) + } + } + // ScheduledThreadPoolExecutor(int, RejectedExecutionHandler) => ScheduledThreadPoolExecutor(int, ThreadFactory, RejectedExecutionHandler) + "(ILjava/util/concurrent/RejectedExecutionHandler;)V" -> { + method.instructions.apply { + // ..., handler => ..., handler, prefix + insertBefore(init, LdcInsnNode(makeThreadName(klass.className))) + // ..., handler, prefix => ..., handler, factory + insertBefore(init, MethodInsnNode(Opcodes.INVOKESTATIC, NAMED_THREAD_FACTORY, "newInstance", "(Ljava/lang/String;)Ljava/util/concurrent/ThreadFactory;", false)) + // ..., handler, factory => ..., factory, handler + insertBefore(init, InsnNode(Opcodes.SWAP)) + } + this.desc = "(IIJLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/BlockingQueue;Ljava/util/concurrent/ThreadFactory;Ljava/util/concurrent/RejectedExecutionHandler;)V" + } + // ScheduledThreadPoolExecutor(int, ThreadFactory, RejectedExecutionHandler) + "(ILjava/util/concurrent/ThreadFactory;Ljava/util/concurrent/RejectedExecutionHandler;)V" -> { + method.instructions.apply { + // ..., factory, handler => ..., handler, factory + insertBefore(init, InsnNode(Opcodes.SWAP)) + // ..., handler, factory => ..., handler, factory, prefix + insertBefore(init, LdcInsnNode(makeThreadName(klass.className))) + // ..., handler, factory, prefix => ..., handler, factory + insertBefore(init, MethodInsnNode(Opcodes.INVOKESTATIC, NAMED_THREAD_FACTORY, "newInstance", "(Ljava/util/concurrent/ThreadFactory;Ljava/lang/String;)Ljava/util/concurrent/ThreadFactory;")) + // ..., handler, factory => ..., factory, handler + insertBefore(init, InsnNode(Opcodes.SWAP)) + } + } + } + } + private fun MethodInsnNode.transformTimerInvokeSpecial(klass: ClassNode, method: MethodNode, init: MethodInsnNode = this) { when (this.desc) { // Timer() @@ -338,10 +389,11 @@ class ThreadTransformer : ClassTransformer { private fun TypeInsnNode.transform(context: TransformContext, klass: ClassNode, method: MethodNode) { when (this.desc) { - /*-*/ HANDLER_THREAD -> this.transformNew(context, klass, method, SHADOW_HANDLER_THREAD) - /*---------*/ THREAD -> this.transformNew(context, klass, method, SHADOW_THREAD) - THREAD_POOL_EXECUTOR -> this.transformNew(context, klass, method, SHADOW_THREAD_POOL_EXECUTOR, true) - /*----------*/ TIMER -> this.transformNew(context, klass, method, SHADOW_TIMER) + /*-----------*/ HANDLER_THREAD -> this.transformNew(context, klass, method, SHADOW_HANDLER_THREAD) + /*-------------------*/ THREAD -> this.transformNew(context, klass, method, SHADOW_THREAD) + /*-----*/ THREAD_POOL_EXECUTOR -> this.transformNew(context, klass, method, SHADOW_THREAD_POOL_EXECUTOR, true) + SCHEDULED_THREAD_POOL_EXECUTOR -> this.transformNew(context, klass, method, SHADOW_SCHEDULED_THREAD_POOL_EXECUTOR, true) + /*--------------------*/ TIMER -> this.transformNew(context, klass, method, SHADOW_TIMER) } } @@ -405,6 +457,7 @@ internal const val SHADOW_THREAD = "${SHADOW}Thread" internal const val SHADOW_TIMER = "${SHADOW}Timer" internal const val SHADOW_EXECUTORS = "${SHADOW}Executors" internal const val SHADOW_THREAD_POOL_EXECUTOR = "${SHADOW}ThreadPoolExecutor" +internal const val SHADOW_SCHEDULED_THREAD_POOL_EXECUTOR = "${SHADOW}ScheduledThreadPoolExecutor" internal const val SHADOW_ASYNC_TASK = "${SHADOW}AsyncTask" internal const val NAMED_THREAD_FACTORY = "${BOOSTER_INSTRUMENT}NamedThreadFactory" @@ -416,3 +469,4 @@ internal const val THREAD = "java/lang/Thread" internal const val TIMER = "${JAVA_UTIL}Timer" internal const val EXECUTORS = "${JAVA_UTIL_CONCURRENT}Executors" internal const val THREAD_POOL_EXECUTOR = "${JAVA_UTIL_CONCURRENT}ThreadPoolExecutor" +internal const val SCHEDULED_THREAD_POOL_EXECUTOR = "${JAVA_UTIL_CONCURRENT}ScheduledThreadPoolExecutor" From 3ea253dc73ba7c73850795f64e2f383ab5b837a1 Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Sun, 6 Mar 2022 14:53:46 +0800 Subject: [PATCH 095/187] Fix issue #287 obtaining AGPInterface without Booster context --- .../main/kotlin/com/didiglobal/booster/gradle/AGPInterface.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/booster-android-gradle-compat/src/main/kotlin/com/didiglobal/booster/gradle/AGPInterface.kt b/booster-android-gradle-compat/src/main/kotlin/com/didiglobal/booster/gradle/AGPInterface.kt index 4a45e4383..49e94d5e4 100644 --- a/booster-android-gradle-compat/src/main/kotlin/com/didiglobal/booster/gradle/AGPInterface.kt +++ b/booster-android-gradle-compat/src/main/kotlin/com/didiglobal/booster/gradle/AGPInterface.kt @@ -206,7 +206,7 @@ private val REVISION: Revision by lazy { } private val FACTORIES: List by lazy { - ServiceLoader.load(AGPInterfaceFactory::class.java) + ServiceLoader.load(AGPInterfaceFactory::class.java, AGPInterface::class.java.classLoader) .sortedByDescending(AGPInterfaceFactory::revision) .toList() } From e8b2a313bd81af621e085c2965133060861d255c Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Sun, 6 Mar 2022 15:23:00 +0800 Subject: [PATCH 096/187] [skip ci] Update RELEASE-NOTES.md --- RELEASE-NOTES.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index 7ee289e0e..860a61949 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -1,3 +1,11 @@ +## v4.5.1 + +- Fix issue [#287](https://github.com/didi/booster/issues/287) + +## v4.5.0 + +- Fix issue [#280](https://github.com/didi/booster/issues/280) + ## v4.4.0 - Support force update inputs for incremental build @@ -20,7 +28,7 @@ ## v4.0.0 -- Support AGP 7.0 +- Support AGP 7.0, no longer supported AGP 3.2 and lower versions ## v3.5.0 From ff7f84c80dcb7489c8f78b3ef6870ff6c094ff62 Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Sun, 6 Mar 2022 16:55:27 +0800 Subject: [PATCH 097/187] Fix issue #284 compressing processed resource file --- ...sedResourcesCompressionVariantProcessor.kt | 31 +++++++++++++++---- 1 file changed, 25 insertions(+), 6 deletions(-) diff --git a/booster-task-compression-processed-res/src/main/kotlin/com/didiglobal/booster/task/compression/processed/res/ProcessedResourcesCompressionVariantProcessor.kt b/booster-task-compression-processed-res/src/main/kotlin/com/didiglobal/booster/task/compression/processed/res/ProcessedResourcesCompressionVariantProcessor.kt index c47488156..c3fd6429e 100644 --- a/booster-task-compression-processed-res/src/main/kotlin/com/didiglobal/booster/task/compression/processed/res/ProcessedResourcesCompressionVariantProcessor.kt +++ b/booster-task-compression-processed-res/src/main/kotlin/com/didiglobal/booster/task/compression/processed/res/ProcessedResourcesCompressionVariantProcessor.kt @@ -3,10 +3,10 @@ package com.didiglobal.booster.task.compression.processed.res import com.android.SdkConstants import com.android.SdkConstants.DOT_PNG import com.android.build.gradle.api.BaseVariant +import com.android.build.gradle.internal.tasks.factory.dependsOn import com.didiglobal.booster.compression.CompressionReport import com.didiglobal.booster.compression.CompressionResult import com.didiglobal.booster.compression.CompressionResults -import com.didiglobal.booster.gradle.processResTask import com.didiglobal.booster.gradle.processResTaskProvider import com.didiglobal.booster.gradle.processedRes import com.didiglobal.booster.gradle.project @@ -17,6 +17,9 @@ import com.didiglobal.booster.task.spi.VariantProcessor import com.didiglobal.booster.transform.util.transform import com.google.auto.service.AutoService import org.apache.commons.compress.archivers.zip.ZipArchiveEntry +import org.gradle.api.DefaultTask +import org.gradle.api.tasks.Internal +import org.gradle.api.tasks.TaskAction import java.io.File import java.text.DecimalFormat import java.util.zip.ZipEntry @@ -32,17 +35,33 @@ import java.util.zip.ZipFile class ProcessedResourcesCompressionVariantProcessor : VariantProcessor { override fun process(variant: BaseVariant) { - val results = CompressionResults() - variant.processResTaskProvider?.configure { - it.doLast { - variant.compressProcessedRes(results) - variant.generateReport(results) + val compress = variant.project.tasks.register("compress${variant.name.capitalize()}ProcessedRes", CompressProcessedRes::class.java) { + it.variant = variant + } + variant.processResTaskProvider?.let { processRes -> + compress.dependsOn(processRes) + processRes.configure { + it.finalizedBy(compress) } } } } +internal abstract class CompressProcessedRes : DefaultTask() { + + @get:Internal + lateinit var variant: BaseVariant + + @TaskAction + fun compress() { + val results = CompressionResults() + variant.compressProcessedRes(results) + variant.generateReport(results) + } + +} + private fun BaseVariant.compressProcessedRes(results: CompressionResults) { val files = processedRes.search { it.name.startsWith(SdkConstants.FN_RES_BASE) && it.extension == SdkConstants.EXT_RES From 5a00741815329dc916ab143216c02eabd0ecdf18 Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Sun, 6 Mar 2022 21:58:50 +0800 Subject: [PATCH 098/187] Fix mergeResources task --- .../com/didiglobal/booster/android/gradle/v3_6/V36.kt | 6 +++++- .../com/didiglobal/booster/android/gradle/v4_0/V40.kt | 6 +++++- .../com/didiglobal/booster/android/gradle/v4_1/V41.kt | 6 +++++- .../com/didiglobal/booster/android/gradle/v4_2/V42.kt | 6 +++++- .../com/didiglobal/booster/android/gradle/v7_0/V70.kt | 6 +++++- .../booster/compression/SimpleCompressionTaskCreator.kt | 6 ------ 6 files changed, 25 insertions(+), 11 deletions(-) diff --git a/booster-android-gradle-v3_6/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_6/V36.kt b/booster-android-gradle-v3_6/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_6/V36.kt index 2aef0319a..df2f918bf 100644 --- a/booster-android-gradle-v3_6/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_6/V36.kt +++ b/booster-android-gradle-v3_6/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_6/V36.kt @@ -73,7 +73,11 @@ object V36 : AGPInterface { get() = mergeAssetsProvider override val BaseVariant.mergeResourcesTaskProvider: TaskProvider - get() = mergeResourcesProvider + get() = try { + project.tasks.named(getTaskName("merge", "Resources")) + } catch (e: Throwable) { + mergeResourcesProvider + } override val BaseVariant.processJavaResourcesTaskProvider: TaskProvider get() = processJavaResourcesProvider diff --git a/booster-android-gradle-v4_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_0/V40.kt b/booster-android-gradle-v4_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_0/V40.kt index 0ff513009..025668b0d 100644 --- a/booster-android-gradle-v4_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_0/V40.kt +++ b/booster-android-gradle-v4_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_0/V40.kt @@ -70,7 +70,11 @@ internal object V40 : AGPInterface { get() = mergeAssetsProvider override val BaseVariant.mergeResourcesTaskProvider: TaskProvider - get() = mergeResourcesProvider + get() = try { + project.tasks.named(getTaskName("merge", "Resources")) + } catch (e: Throwable) { + mergeResourcesProvider + } override val BaseVariant.processJavaResourcesTaskProvider: TaskProvider get() = processJavaResourcesProvider diff --git a/booster-android-gradle-v4_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_1/V41.kt b/booster-android-gradle-v4_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_1/V41.kt index c61be5399..0d00438bc 100644 --- a/booster-android-gradle-v4_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_1/V41.kt +++ b/booster-android-gradle-v4_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_1/V41.kt @@ -83,7 +83,11 @@ internal object V41 : AGPInterface { get() = mergeAssetsProvider override val BaseVariant.mergeResourcesTaskProvider: TaskProvider - get() = mergeResourcesProvider + get() = try { + project.tasks.named(getTaskName("merge", "Resources")) + } catch (e: Throwable) { + mergeResourcesProvider + } override val BaseVariant.processJavaResourcesTaskProvider: TaskProvider get() = processJavaResourcesProvider diff --git a/booster-android-gradle-v4_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42.kt b/booster-android-gradle-v4_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42.kt index d8da6d465..03db72d4d 100644 --- a/booster-android-gradle-v4_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42.kt +++ b/booster-android-gradle-v4_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42.kt @@ -83,7 +83,11 @@ internal object V42 : AGPInterface { get() = mergeAssetsProvider override val BaseVariant.mergeResourcesTaskProvider: TaskProvider - get() = mergeResourcesProvider + get() = try { + project.tasks.named(getTaskName("merge", "Resources")) + } catch (e: Throwable) { + mergeResourcesProvider + } override val BaseVariant.processJavaResourcesTaskProvider: TaskProvider get() = processJavaResourcesProvider diff --git a/booster-android-gradle-v7_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_0/V70.kt b/booster-android-gradle-v7_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_0/V70.kt index cf5480cfb..1182d3d84 100644 --- a/booster-android-gradle-v7_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_0/V70.kt +++ b/booster-android-gradle-v7_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_0/V70.kt @@ -91,7 +91,11 @@ internal object V70 : AGPInterface { get() = mergeAssetsProvider override val BaseVariant.mergeResourcesTaskProvider: TaskProvider - get() = mergeResourcesProvider + get() = try { + project.tasks.named(getTaskName("merge", "Resources")) + } catch (e: Throwable) { + mergeResourcesProvider + } override val BaseVariant.processJavaResourcesTaskProvider: TaskProvider get() = processJavaResourcesProvider diff --git a/booster-task-compression/src/main/kotlin/com/didiglobal/booster/compression/SimpleCompressionTaskCreator.kt b/booster-task-compression/src/main/kotlin/com/didiglobal/booster/compression/SimpleCompressionTaskCreator.kt index e427de102..08c4b9fbf 100644 --- a/booster-task-compression/src/main/kotlin/com/didiglobal/booster/compression/SimpleCompressionTaskCreator.kt +++ b/booster-task-compression/src/main/kotlin/com/didiglobal/booster/compression/SimpleCompressionTaskCreator.kt @@ -1,27 +1,21 @@ package com.didiglobal.booster.compression import com.android.build.gradle.api.BaseVariant -import com.android.build.gradle.internal.publishing.AndroidArtifacts import com.android.build.gradle.internal.tasks.factory.dependsOn import com.didiglobal.booster.command.CommandInstaller import com.didiglobal.booster.compression.task.CompressImages import com.didiglobal.booster.compression.task.MATCH_ALL_RESOURCES import com.didiglobal.booster.compression.task.excludes -import com.didiglobal.booster.gradle.aapt2Enabled import com.didiglobal.booster.gradle.bundleResourcesTaskProvider -import com.didiglobal.booster.gradle.getArtifactFileCollection import com.didiglobal.booster.gradle.isAapt2Enabled -import com.didiglobal.booster.gradle.mergeResourcesTask import com.didiglobal.booster.gradle.mergeResourcesTaskProvider import com.didiglobal.booster.gradle.preBuildTaskProvider import com.didiglobal.booster.gradle.processResTaskProvider import com.didiglobal.booster.gradle.project import com.didiglobal.booster.kotlinx.Wildcard -import com.didiglobal.booster.kotlinx.search import org.gradle.api.Task import org.gradle.api.UnknownTaskException import org.gradle.api.tasks.TaskProvider -import org.gradle.internal.concurrent.GradleThread import java.io.File import kotlin.reflect.KClass From 8b6390e1ad7668600dc65a64be2a83ec57d498f4 Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Sun, 6 Mar 2022 22:26:49 +0800 Subject: [PATCH 099/187] [skip ci] Update RELEASE-NOTES.md --- RELEASE-NOTES.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index 860a61949..2339ea9da 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -1,3 +1,11 @@ +## v4.5.3 + +- Fix `mergeResources` task + +## v4.5.2 + +- Fix issue [#284](https://github.com/didi/booster/issues/284) + ## v4.5.1 - Fix issue [#287](https://github.com/didi/booster/issues/287) From 351e8d230e7bf7ee2e9de748215b2e62c74aadd3 Mon Sep 17 00:00:00 2001 From: Johnson Lee Date: Sun, 6 Mar 2022 22:43:13 +0800 Subject: [PATCH 100/187] [skip ci] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 90df3735b..55ccac1a7 100644 --- a/README.md +++ b/README.md @@ -74,7 +74,7 @@ The best practise of using Booster is integrating the specific module to solve t ```groovy buildscript { - ext.booster_version = '4.4.0' + ext.booster_version = '4.5.3' repositories { google() mavenCentral() @@ -122,7 +122,7 @@ The `plugins` DSL also supported since Booster *3.0.0* ```groovy plugins { - id 'com.didiglobal.booster' version '4.4.0' + id 'com.didiglobal.booster' version '4.5.3' } ``` From 6f86f1b0a8007825786085530fd9bff1a6c4cb7e Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Thu, 20 Jan 2022 01:22:16 +0800 Subject: [PATCH 101/187] Fix Jacoco coverage report issue --- .../transform/util/TransformerClassLoader.kt | 65 ++++++++++++++++++- 1 file changed, 64 insertions(+), 1 deletion(-) diff --git a/booster-transform-util/src/main/kotlin/com/didiglobal/booster/transform/util/TransformerClassLoader.kt b/booster-transform-util/src/main/kotlin/com/didiglobal/booster/transform/util/TransformerClassLoader.kt index 5d3bfdc4c..70fe42b83 100644 --- a/booster-transform-util/src/main/kotlin/com/didiglobal/booster/transform/util/TransformerClassLoader.kt +++ b/booster-transform-util/src/main/kotlin/com/didiglobal/booster/transform/util/TransformerClassLoader.kt @@ -1,5 +1,8 @@ package com.didiglobal.booster.transform.util +import com.didiglobal.booster.kotlinx.file +import com.didiglobal.booster.kotlinx.search +import com.didiglobal.booster.kotlinx.touch import com.didiglobal.booster.transform.AbstractTransformContext import com.didiglobal.booster.transform.Transformer import java.io.File @@ -46,8 +49,35 @@ class TransformerClassLoader : URLClassLoader { this.urLs.map { File(it.path) } } + private val dirs: Collection by lazy { + classpath.filter(File::isDirectory).toSortedSet() + } + + private val buildType: String by lazy { + dirs.find { + it.name.endsWith("UnitTest") + }?.name?.substringBeforeLast("UnitTest") ?: dirs.hashCode().toString() + } + + private val cwd: File = File(System.getProperty("user.dir")) + + private val output = cwd.file("build", "tmp", "booster", buildType) + + private val classes: Set by lazy { + dirs.map { base -> + val baseUri = base.toURI() + + base.search { + it.extension == "class" + }.map { + val path = baseUri.relativize(it.toURI()).path + path.substringBeforeLast(".class").replace('/', '.') + } + }.flatten().toSet() + } + private val context by lazy { - object : AbstractTransformContext(javaClass.name, javaClass.name, emptyList(), classpath, classpath) {} + object : AbstractTransformContext(cwd.name, buildType, emptyList(), classpath, classpath) {} } override fun loadClass(name: String, resolve: Boolean): Class<*> { @@ -73,6 +103,39 @@ class TransformerClassLoader : URLClassLoader { } } + /* See: https://groups.google.com/g/jacoco/c/RDc5rJdKsfA/m/l701T8YjAAAJ + * Classes in bundle 'xxx' do no match with execution data. + * + * Writing the manipulated bytecode into the build/tmp/booster/{buildType} directory + * So that, the output can be used by Jacoco to generate the coverage report + * + * For Jacoco report task, the classes directory should be configured as following: + * + * ```kotlin + * getAndroid().let { android -> + * afterEvaluate { + * android.libraryVariants.forEach { variant -> + * tasks.register("jacocoTestReportFor${variant.name.capitalize()}", JacocoReport::class) { + * reports { + * xml.isEnabled = false + * html.isEnabled = true + * } + * + * sourceDirectories.setFrom(files(variant.sourceSets.map { it.javaDirectories }.flatten())) + * classDirectories.setFrom(files("${buildDir}/tmp/booster/${variant.name}")) + * executionData.setFrom(files("${buildDir}/jacoco/test${variant.name.capitalize()}UnitTest.exec")) + * }.apply { + * dependsOn("test${variant.name.capitalize()}UnitTest") + * } + * } + * } + * } + * ``` + */ + File(output, name.replace('.', File.separatorChar)).takeIf { + name in classes + }?.touch()?.writeBytes(bytecode) + return defineClass(name, bytecode, 0, bytecode.size) } From e884dbd23b65b4775251023f664665a33e890035 Mon Sep 17 00:00:00 2001 From: wuyue Date: Sat, 26 Mar 2022 23:54:45 +0800 Subject: [PATCH 102/187] add getReport Api for BaseVariant like as TransformContext --- .../kotlin/com/didiglobal/booster/gradle/BaseVariant.kt | 7 +++++++ .../didiglobal/booster/compression/CompressionReport.kt | 3 ++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/BaseVariant.kt b/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/BaseVariant.kt index bc6698aa1..af242083f 100644 --- a/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/BaseVariant.kt +++ b/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/BaseVariant.kt @@ -7,6 +7,7 @@ import com.android.build.gradle.tasks.ProcessAndroidResources import com.android.builder.core.VariantType import com.android.sdklib.AndroidVersion import com.android.sdklib.BuildToolInfo +import com.didiglobal.booster.kotlinx.file import org.gradle.api.Incubating import org.gradle.api.Project import org.gradle.api.Task @@ -24,6 +25,12 @@ import java.io.File val BaseVariant.project: Project get() = AGP.run { project } + +fun BaseVariant.getReport(artifactName: String, fileName: String): File { + return project.buildDir.file("reports", artifactName, name, fileName) +} + + /** * The `android` extension associates with this variant */ diff --git a/booster-task-compression/src/main/kotlin/com/didiglobal/booster/compression/CompressionReport.kt b/booster-task-compression/src/main/kotlin/com/didiglobal/booster/compression/CompressionReport.kt index 79bb65184..bd01972ab 100644 --- a/booster-task-compression/src/main/kotlin/com/didiglobal/booster/compression/CompressionReport.kt +++ b/booster-task-compression/src/main/kotlin/com/didiglobal/booster/compression/CompressionReport.kt @@ -2,6 +2,7 @@ package com.didiglobal.booster.compression import com.android.SdkConstants import com.android.build.gradle.api.BaseVariant +import com.didiglobal.booster.gradle.getReport import com.didiglobal.booster.gradle.project import com.didiglobal.booster.kotlinx.Octuple import com.didiglobal.booster.kotlinx.Quadruple @@ -38,7 +39,7 @@ fun CompressionResults.generateReport(variant: BaseVariant, artifact: String) { val maxWith7 = table.map { it.seventh.length }.max() ?: 0 val fullWith = maxWith1 + maxWith5 + maxWith6 + 8 - variant.project.buildDir.file("reports", artifact, variant.name, "report.txt").touch().printWriter().use { logger -> + variant.getReport(artifact, "report.txt").touch().printWriter().use { logger -> // sort by reduced size and original size table.sortedWith(compareByDescending { it.fourth From 2deabe6823a3afa4fd13f7c0d2834e487f875765 Mon Sep 17 00:00:00 2001 From: wuyue Date: Tue, 29 Mar 2022 23:41:46 +0800 Subject: [PATCH 103/187] add api "variant.mergedNativeLibs" , this api can supply a file path for get all so(native libs) files path. the agp v33 and v34 so file path like this: "app/build/intermediates/transforms/mergeJniLibs" please notice v33.kt and v34.kt, these 2 agp versions can not get path through InternalArtifactType or varint.allArtifacts. --- .../kotlin/com/didiglobal/booster/gradle/BaseVariant.kt | 8 ++++++++ .../kotlin/com/didiglobal/booster/gradle/AGPInterface.kt | 2 ++ .../com/didiglobal/booster/android/gradle/v3_3/V33.kt | 4 ++++ .../com/didiglobal/booster/android/gradle/v3_4/V34.kt | 4 ++++ .../com/didiglobal/booster/android/gradle/v3_5/V35.kt | 3 +++ .../com/didiglobal/booster/android/gradle/v3_6/V36.kt | 3 +++ .../com/didiglobal/booster/android/gradle/v4_0/V40.kt | 3 +++ .../com/didiglobal/booster/android/gradle/v4_1/V41.kt | 3 +++ .../com/didiglobal/booster/android/gradle/v4_2/V42.kt | 3 +++ .../com/didiglobal/booster/android/gradle/v7_0/V70.kt | 3 +++ 10 files changed, 36 insertions(+) diff --git a/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/BaseVariant.kt b/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/BaseVariant.kt index af242083f..427d0f25a 100644 --- a/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/BaseVariant.kt +++ b/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/BaseVariant.kt @@ -175,6 +175,14 @@ val BaseVariant.mergedAssets: Collection mergedAssets } +/** + * The output directory of merged native libs + */ +val BaseVariant.mergedNativeLibs: Collection + get() = AGP.run { + mergedNativeLibs + } + /** * The output directory of processed resources: *resources-**variant**.ap\_* */ diff --git a/booster-android-gradle-compat/src/main/kotlin/com/didiglobal/booster/gradle/AGPInterface.kt b/booster-android-gradle-compat/src/main/kotlin/com/didiglobal/booster/gradle/AGPInterface.kt index 49e94d5e4..fe0a8c1f7 100644 --- a/booster-android-gradle-compat/src/main/kotlin/com/didiglobal/booster/gradle/AGPInterface.kt +++ b/booster-android-gradle-compat/src/main/kotlin/com/didiglobal/booster/gradle/AGPInterface.kt @@ -146,6 +146,8 @@ interface AGPInterface { val BaseVariant.mergedAssets: Collection + val BaseVariant.mergedNativeLibs: Collection + val BaseVariant.processedRes: Collection val BaseVariant.symbolList: Collection diff --git a/booster-android-gradle-v3_3/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_3/V33.kt b/booster-android-gradle-v3_3/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_3/V33.kt index d69368aee..4d1c46c3c 100644 --- a/booster-android-gradle-v3_3/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_3/V33.kt +++ b/booster-android-gradle-v3_3/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_3/V33.kt @@ -18,6 +18,7 @@ import com.android.build.gradle.internal.scope.MissingTaskOutputException import com.android.build.gradle.internal.scope.VariantScope import com.android.build.gradle.internal.variant.BaseVariantData import com.android.builder.core.VariantType +import com.android.builder.model.AndroidProject import com.android.builder.model.ApiVersion import com.android.sdklib.AndroidVersion import com.android.sdklib.BuildToolInfo @@ -159,6 +160,9 @@ internal object V33 : AGPInterface { override val BaseVariant.mergedRes: Collection get() = getFinalArtifactFiles(InternalArtifactType.MERGED_RES) + override val BaseVariant.mergedNativeLibs: Collection + get() = setOf((File("${project.buildDir.path}/${AndroidProject.FD_INTERMEDIATES}/transforms/mergeJniLibs/$name"))) + override val BaseVariant.mergedAssets: Collection get() = getFinalArtifactFiles(when (this) { is ApplicationVariant -> InternalArtifactType.MERGED_ASSETS diff --git a/booster-android-gradle-v3_4/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_4/V34.kt b/booster-android-gradle-v3_4/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_4/V34.kt index fe9f84f11..827f29f6b 100644 --- a/booster-android-gradle-v3_4/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_4/V34.kt +++ b/booster-android-gradle-v3_4/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_4/V34.kt @@ -20,6 +20,7 @@ import com.android.build.gradle.internal.scope.getOutputDir import com.android.build.gradle.internal.variant.BaseVariantData import com.android.build.gradle.options.BooleanOption import com.android.builder.core.VariantType +import com.android.builder.model.AndroidProject.FD_INTERMEDIATES import com.android.builder.model.ApiVersion import com.android.sdklib.AndroidVersion import com.android.sdklib.BuildToolInfo @@ -161,6 +162,9 @@ object V34 : AGPInterface { override val BaseVariant.mergedRes: Collection get() = getFinalArtifactFiles(InternalArtifactType.MERGED_RES) + override val BaseVariant.mergedNativeLibs: Collection + get() = setOf((File("${project.buildDir.path}/$FD_INTERMEDIATES/transforms/mergeJniLibs/$name"))) + override val BaseVariant.mergedAssets: Collection get() = getFinalArtifactFiles(when (this) { is ApplicationVariant -> InternalArtifactType.MERGED_ASSETS diff --git a/booster-android-gradle-v3_5/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_5/V35.kt b/booster-android-gradle-v3_5/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_5/V35.kt index ac197e2f4..d5d99bf93 100644 --- a/booster-android-gradle-v3_5/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_5/V35.kt +++ b/booster-android-gradle-v3_5/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_5/V35.kt @@ -174,6 +174,9 @@ internal object V35 : AGPInterface { override val BaseVariant.mergedRes: Collection get() = getFinalArtifactFiles(InternalArtifactType.MERGED_RES) + override val BaseVariant.mergedNativeLibs: Collection + get() = getFinalArtifactFiles(InternalArtifactType.MERGED_NATIVE_LIBS) + @Suppress("UnstableApiUsage") override val BaseVariant.mergedAssets: Collection get() = listOf(when (this) { diff --git a/booster-android-gradle-v3_6/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_6/V36.kt b/booster-android-gradle-v3_6/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_6/V36.kt index df2f918bf..964f54419 100644 --- a/booster-android-gradle-v3_6/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_6/V36.kt +++ b/booster-android-gradle-v3_6/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_6/V36.kt @@ -159,6 +159,9 @@ object V36 : AGPInterface { override val BaseVariant.mergedRes: Collection get() = getFinalArtifactFiles(InternalArtifactType.MERGED_RES) + override val BaseVariant.mergedNativeLibs: Collection + get() = getFinalArtifactFiles(InternalArtifactType.MERGED_NATIVE_LIBS) + @Suppress("UnstableApiUsage") override val BaseVariant.mergedAssets: Collection get() = getFinalArtifactFiles(when (this) { diff --git a/booster-android-gradle-v4_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_0/V40.kt b/booster-android-gradle-v4_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_0/V40.kt index 025668b0d..c947e9ae8 100644 --- a/booster-android-gradle-v4_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_0/V40.kt +++ b/booster-android-gradle-v4_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_0/V40.kt @@ -156,6 +156,9 @@ internal object V40 : AGPInterface { override val BaseVariant.mergedRes: Collection get() = getFinalArtifactFiles(InternalArtifactType.MERGED_RES) + override val BaseVariant.mergedNativeLibs: Collection + get() = getFinalArtifactFiles(InternalArtifactType.MERGED_NATIVE_LIBS) + override val BaseVariant.mergedAssets: Collection get() = when (this) { is ApplicationVariant -> getFinalArtifactFiles(InternalArtifactType.MERGED_ASSETS) diff --git a/booster-android-gradle-v4_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_1/V41.kt b/booster-android-gradle-v4_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_1/V41.kt index 0d00438bc..88d409ee1 100644 --- a/booster-android-gradle-v4_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_1/V41.kt +++ b/booster-android-gradle-v4_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_1/V41.kt @@ -165,6 +165,9 @@ internal object V41 : AGPInterface { override val BaseVariant.mergedRes: Collection get() = getFinalArtifactFiles(InternalArtifactType.MERGED_RES) + override val BaseVariant.mergedNativeLibs: Collection + get() = getFinalArtifactFiles(InternalArtifactType.MERGED_NATIVE_LIBS) + override val BaseVariant.mergedAssets: Collection get() = when (this) { is ApplicationVariant -> getFinalArtifactFiles(InternalArtifactType.MERGED_ASSETS) diff --git a/booster-android-gradle-v4_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42.kt b/booster-android-gradle-v4_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42.kt index 03db72d4d..49a28c4cf 100644 --- a/booster-android-gradle-v4_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42.kt +++ b/booster-android-gradle-v4_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42.kt @@ -169,6 +169,9 @@ internal object V42 : AGPInterface { override val BaseVariant.mergedRes: Collection get() = getFinalArtifactFiles(InternalArtifactType.MERGED_RES) + override val BaseVariant.mergedNativeLibs: Collection + get() = getFinalArtifactFiles(InternalArtifactType.MERGED_NATIVE_LIBS) + override val BaseVariant.mergedAssets: Collection get() = when (this) { is ApplicationVariant -> getFinalArtifactFiles(InternalArtifactType.MERGED_ASSETS) diff --git a/booster-android-gradle-v7_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_0/V70.kt b/booster-android-gradle-v7_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_0/V70.kt index 1182d3d84..9d49482c6 100644 --- a/booster-android-gradle-v7_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_0/V70.kt +++ b/booster-android-gradle-v7_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_0/V70.kt @@ -177,6 +177,9 @@ internal object V70 : AGPInterface { override val BaseVariant.mergedRes: Collection get() = getFinalArtifactFiles(InternalArtifactType.MERGED_RES) + override val BaseVariant.mergedNativeLibs: Collection + get() = getFinalArtifactFiles(InternalArtifactType.MERGED_NATIVE_LIBS) + override val BaseVariant.mergedAssets: Collection get() = when (this) { is ApplicationVariant -> getFinalArtifactFiles(InternalArtifactType.MERGED_ASSETS) From bfecbd11a7060e29efb8f3cef027037efaea1b5c Mon Sep 17 00:00:00 2001 From: wuyue Date: Thu, 31 Mar 2022 08:09:30 +0800 Subject: [PATCH 104/187] use File.separatorChar replace "/" --- .../kotlin/com/didiglobal/booster/android/gradle/v3_3/V33.kt | 2 +- .../kotlin/com/didiglobal/booster/android/gradle/v3_4/V34.kt | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/booster-android-gradle-v3_3/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_3/V33.kt b/booster-android-gradle-v3_3/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_3/V33.kt index 4d1c46c3c..2a3feda47 100644 --- a/booster-android-gradle-v3_3/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_3/V33.kt +++ b/booster-android-gradle-v3_3/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_3/V33.kt @@ -161,7 +161,7 @@ internal object V33 : AGPInterface { get() = getFinalArtifactFiles(InternalArtifactType.MERGED_RES) override val BaseVariant.mergedNativeLibs: Collection - get() = setOf((File("${project.buildDir.path}/${AndroidProject.FD_INTERMEDIATES}/transforms/mergeJniLibs/$name"))) + get() = setOf((File("${project.buildDir.path}${File.separatorChar}${AndroidProject.FD_INTERMEDIATES}${File.separatorChar}transforms${File.separatorChar}mergeJniLibs${File.separatorChar}$name"))) override val BaseVariant.mergedAssets: Collection get() = getFinalArtifactFiles(when (this) { diff --git a/booster-android-gradle-v3_4/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_4/V34.kt b/booster-android-gradle-v3_4/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_4/V34.kt index 827f29f6b..12b92accf 100644 --- a/booster-android-gradle-v3_4/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_4/V34.kt +++ b/booster-android-gradle-v3_4/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_4/V34.kt @@ -20,7 +20,7 @@ import com.android.build.gradle.internal.scope.getOutputDir import com.android.build.gradle.internal.variant.BaseVariantData import com.android.build.gradle.options.BooleanOption import com.android.builder.core.VariantType -import com.android.builder.model.AndroidProject.FD_INTERMEDIATES +import com.android.builder.model.AndroidProject import com.android.builder.model.ApiVersion import com.android.sdklib.AndroidVersion import com.android.sdklib.BuildToolInfo @@ -163,7 +163,7 @@ object V34 : AGPInterface { get() = getFinalArtifactFiles(InternalArtifactType.MERGED_RES) override val BaseVariant.mergedNativeLibs: Collection - get() = setOf((File("${project.buildDir.path}/$FD_INTERMEDIATES/transforms/mergeJniLibs/$name"))) + get() = setOf((File("${project.buildDir.path}${File.separatorChar}${AndroidProject.FD_INTERMEDIATES}${File.separatorChar}transforms${File.separatorChar}mergeJniLibs${File.separatorChar}$name"))) override val BaseVariant.mergedAssets: Collection get() = getFinalArtifactFiles(when (this) { From 23a2cb3723d884b965c547c6c1c0ca28ccc94118 Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Tue, 5 Apr 2022 22:40:58 +0800 Subject: [PATCH 105/187] [skip ci] Update README & RELEASE-NOTES --- README.md | 4 ++-- RELEASE-NOTES.md | 6 ++++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 55ccac1a7..611436a0c 100644 --- a/README.md +++ b/README.md @@ -74,7 +74,7 @@ The best practise of using Booster is integrating the specific module to solve t ```groovy buildscript { - ext.booster_version = '4.5.3' + ext.booster_version = '4.6.0' repositories { google() mavenCentral() @@ -122,7 +122,7 @@ The `plugins` DSL also supported since Booster *3.0.0* ```groovy plugins { - id 'com.didiglobal.booster' version '4.5.3' + id 'com.didiglobal.booster' version '4.6.0' } ``` diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index 2339ea9da..9ae4f2d01 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -1,3 +1,9 @@ +## v4.6.0 + +- Add extension property `BaseVariant.mergedNativeLibs: Collection` +- Add extension function `BaseVariant..getReport(String, String): File` +- Fix Jacoco coverage report issue + ## v4.5.3 - Fix `mergeResources` task From 982566f1feaad6db2c6900d204adec175765258a Mon Sep 17 00:00:00 2001 From: LiaoPengwei Date: Sun, 24 Apr 2022 20:54:48 +0800 Subject: [PATCH 106/187] fix issue #304, ScheduledThreadPoolExecutor transform bug --- .../didiglobal/booster/transform/thread/ThreadTransformer.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/booster-transform-thread/src/main/kotlin/com/didiglobal/booster/transform/thread/ThreadTransformer.kt b/booster-transform-thread/src/main/kotlin/com/didiglobal/booster/transform/thread/ThreadTransformer.kt index 1a5358ec1..91ac619d4 100644 --- a/booster-transform-thread/src/main/kotlin/com/didiglobal/booster/transform/thread/ThreadTransformer.kt +++ b/booster-transform-thread/src/main/kotlin/com/didiglobal/booster/transform/thread/ThreadTransformer.kt @@ -179,7 +179,7 @@ class ThreadTransformer : ClassTransformer { // ..., queue, prefix => ..., queue, factory insertBefore(init, MethodInsnNode(Opcodes.INVOKESTATIC, NAMED_THREAD_FACTORY, "newInstance", "(Ljava/lang/String;)Ljava/util/concurrent/ThreadFactory;", false)) } - this.desc = "(IIJLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/BlockingQueue;Ljava/util/concurrent/ThreadFactory;)V" + this.desc = "(ILjava/util/concurrent/ThreadFactory;)V" } // ScheduledThreadPoolExecutor(int, ThreadFactory) "(ILjava/util/concurrent/ThreadFactory;)V" -> { @@ -200,7 +200,7 @@ class ThreadTransformer : ClassTransformer { // ..., handler, factory => ..., factory, handler insertBefore(init, InsnNode(Opcodes.SWAP)) } - this.desc = "(IIJLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/BlockingQueue;Ljava/util/concurrent/ThreadFactory;Ljava/util/concurrent/RejectedExecutionHandler;)V" + this.desc = "(ILjava/util/concurrent/ThreadFactory;Ljava/util/concurrent/RejectedExecutionHandler;)V" } // ScheduledThreadPoolExecutor(int, ThreadFactory, RejectedExecutionHandler) "(ILjava/util/concurrent/ThreadFactory;Ljava/util/concurrent/RejectedExecutionHandler;)V" -> { From 5e2f1360ccbf08c2bcc32ba77e64827911c1a4af Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Mon, 25 Apr 2022 00:07:10 +0800 Subject: [PATCH 107/187] Fix improper task dependencies --- .../SimpleCompressionTaskCreator.kt | 22 ++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/booster-task-compression/src/main/kotlin/com/didiglobal/booster/compression/SimpleCompressionTaskCreator.kt b/booster-task-compression/src/main/kotlin/com/didiglobal/booster/compression/SimpleCompressionTaskCreator.kt index 08c4b9fbf..6c3513d9b 100644 --- a/booster-task-compression/src/main/kotlin/com/didiglobal/booster/compression/SimpleCompressionTaskCreator.kt +++ b/booster-task-compression/src/main/kotlin/com/didiglobal/booster/compression/SimpleCompressionTaskCreator.kt @@ -13,6 +13,7 @@ import com.didiglobal.booster.gradle.preBuildTaskProvider import com.didiglobal.booster.gradle.processResTaskProvider import com.didiglobal.booster.gradle.project import com.didiglobal.booster.kotlinx.Wildcard +import org.gradle.api.Project import org.gradle.api.Task import org.gradle.api.UnknownTaskException import org.gradle.api.tasks.TaskProvider @@ -56,14 +57,25 @@ class SimpleCompressionTaskCreator(private val tool: CompressionTool, private va } private fun getCommandInstaller(variant: BaseVariant): TaskProvider { - val name = "install${tool.command.name.substringBefore('.').capitalize()}" - return (try { - variant.project.tasks.named(name) + return variant.project.tasks.register(getInstallTaskName(variant.name)).apply { + dependsOn(getCommandInstaller(variant.project)) + dependsOn(variant.mergeResourcesTaskProvider) + } + } + + private fun getCommandInstaller(project: Project): TaskProvider { + val name = getInstallTaskName() + return try { + project.tasks.named(name) } catch (e: UnknownTaskException) { null - } ?: variant.project.tasks.register(name, CommandInstaller::class.java) { + } ?: project.tasks.register(name, CommandInstaller::class.java) { it.command = tool.command - }).dependsOn(variant.mergeResourcesTaskProvider) + } + } + + private fun getInstallTaskName(variant: String = ""): String { + return "install${variant.capitalize()}${tool.command.name.substringBefore('.').capitalize()}" } } From f057517e998020f3ef18e251e8c2f4f27ff41394 Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Mon, 25 Apr 2022 02:26:17 +0800 Subject: [PATCH 108/187] Add `booster-task-graph` for task graph visualization --- .../didiglobal/booster/cha/graph/CallGraph.kt | 2 +- booster-task-graph/README.md | 16 +++++ booster-task-graph/build.gradle | 12 ++++ .../task/graph/TaskGraphVariantProcessor.kt | 61 +++++++++++++++++++ .../didiglobal/booster/task/graph/TaskNode.kt | 9 +++ settings.gradle | 1 + 6 files changed, 100 insertions(+), 1 deletion(-) create mode 100644 booster-task-graph/README.md create mode 100644 booster-task-graph/build.gradle create mode 100644 booster-task-graph/src/main/kotlin/com/didiglobal/booster/task/graph/TaskGraphVariantProcessor.kt create mode 100644 booster-task-graph/src/main/kotlin/com/didiglobal/booster/task/graph/TaskNode.kt diff --git a/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/graph/CallGraph.kt b/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/graph/CallGraph.kt index cf3632056..b17d18292 100644 --- a/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/graph/CallGraph.kt +++ b/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/graph/CallGraph.kt @@ -50,7 +50,7 @@ class CallGraph private constructor(private val edges: Map>, val open class Node internal constructor(val type: String, val name: String, val desc: String, val args: String) { constructor(type: String, name: String, desc: String) - : this(type, name, desc, desc.substring(desc.indexOf('(') + 1, desc.lastIndexOf(')'))) + : this(type, name, desc, desc.substring(desc.indexOf('(') + 1, desc.lastIndexOf(')').takeIf { it > -1 } ?: desc.length)) override fun equals(other: Any?) = when { other === this -> true diff --git a/booster-task-graph/README.md b/booster-task-graph/README.md new file mode 100644 index 000000000..3520e94b7 --- /dev/null +++ b/booster-task-graph/README.md @@ -0,0 +1,16 @@ +# booster-task-graph + +Generate task graph in [dot](https://graphviz.org/), please make sure you have installed the [dot command line](https://graphviz.org/doc/info/command.html). + +## Getting Started + +Executing tasks and then find the `*.dot` and `*.dot.png` files under `${rootProject}/build` directory, for example, if I run the following command line + +```bash +./gradlew assembleDebug --dry-run +``` + +Then, the following files will be generated under `${rootProject}/build`: + +* `assembleDebug.dot` +* `assembleDebug.dot.png` diff --git a/booster-task-graph/build.gradle b/booster-task-graph/build.gradle new file mode 100644 index 000000000..e4f1c0891 --- /dev/null +++ b/booster-task-graph/build.gradle @@ -0,0 +1,12 @@ +apply from: "$rootDir/gradle/booster.gradle" + +dependencies { + kapt "com.google.auto.service:auto-service:1.0" + implementation project(':booster-api') + implementation project(':booster-cha') + implementation project(':booster-command') + compileOnly 'com.android.tools.build:gradle:4.0.0' + compileOnly 'com.android.tools.build:builder:4.0.0' + testCompileOnly 'com.android.tools.build:gradle:4.0.0' + testCompileOnly 'com.android.tools.build:builder:4.0.0' +} diff --git a/booster-task-graph/src/main/kotlin/com/didiglobal/booster/task/graph/TaskGraphVariantProcessor.kt b/booster-task-graph/src/main/kotlin/com/didiglobal/booster/task/graph/TaskGraphVariantProcessor.kt new file mode 100644 index 000000000..cc7e5ffd1 --- /dev/null +++ b/booster-task-graph/src/main/kotlin/com/didiglobal/booster/task/graph/TaskGraphVariantProcessor.kt @@ -0,0 +1,61 @@ +package com.didiglobal.booster.task.graph + +import com.android.build.gradle.api.BaseVariant +import com.didiglobal.booster.cha.graph.CallGraph +import com.didiglobal.booster.cha.graph.dot.DotGraph +import com.didiglobal.booster.command.CommandService +import com.didiglobal.booster.gradle.project +import com.didiglobal.booster.kotlinx.OS +import com.didiglobal.booster.kotlinx.execute +import com.didiglobal.booster.kotlinx.file +import com.didiglobal.booster.task.spi.VariantProcessor +import com.google.auto.service.AutoService +import java.io.BufferedReader +import java.io.File +import java.util.concurrent.atomic.AtomicBoolean + +private val DOT = "dot${OS.executableSuffix}" + +@AutoService(VariantProcessor::class) +class TaskGraphVariantProcessor : VariantProcessor { + + private var generating = AtomicBoolean(false) + + override fun process(variant: BaseVariant) { + generating.compareAndSet(false, true).takeIf { it } ?: return + + val project = variant.project + + project.gradle.taskGraph.whenReady { + val taskNames = project.gradle.startParameter.taskNames + val dot = project.rootProject.buildDir.file("${taskNames.joinToString("-")}.dot") + val title = "./gradlew ${taskNames.joinToString(" ")}" + val graph = project.gradle.taskGraph.allTasks.map { task -> + task.taskDependencies.getDependencies(task).map { dep -> + dep to task + } + }.flatten().map { (dep, task) -> + CallGraph.Edge(TaskNode(dep.path), TaskNode(task.path)) + }.fold(CallGraph.Builder().setTitle(title)) { builder, edge -> + builder.addEdge(edge) + builder + }.build() + + // write dot file + dot.writeText(DotGraph.DIGRAPH.render(graph).toString()) + + // convert dot to png + CommandService.fromPath(DOT).location.file.let(::File).takeIf(File::exists)?.let { + val cmdline = "${it.canonicalPath} -Tpng -O ${dot.canonicalPath}" + project.logger.info(cmdline) + cmdline.execute() + }?.let { p -> + p.waitFor() + if (p.exitValue() != 0) { + project.logger.error(p.errorStream.bufferedReader().use(BufferedReader::readText)) + } + } ?: project.logger.warn("Command `${DOT}` not found") + } + } + +} \ No newline at end of file diff --git a/booster-task-graph/src/main/kotlin/com/didiglobal/booster/task/graph/TaskNode.kt b/booster-task-graph/src/main/kotlin/com/didiglobal/booster/task/graph/TaskNode.kt new file mode 100644 index 000000000..2e2412cae --- /dev/null +++ b/booster-task-graph/src/main/kotlin/com/didiglobal/booster/task/graph/TaskNode.kt @@ -0,0 +1,9 @@ +package com.didiglobal.booster.task.graph + +import com.didiglobal.booster.cha.graph.CallGraph + +data class TaskNode(val path: String) : CallGraph.Node("", path, "") { + + override fun toPrettyString(): String = path + +} \ No newline at end of file diff --git a/settings.gradle b/settings.gradle index 0201aa84a..317884f11 100644 --- a/settings.gradle +++ b/settings.gradle @@ -32,6 +32,7 @@ include ':booster-task-compression' include ':booster-task-compression-cwebp' include ':booster-task-compression-pngquant' include ':booster-task-compression-processed-res' +include ':booster-task-graph' include ':booster-task-list-artifact' include ':booster-task-list-permission' include ':booster-task-list-shared-library' From 2e5a4c4194153687b88139732e3591445bb84f06 Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Tue, 26 Apr 2022 12:46:48 +0800 Subject: [PATCH 109/187] Add `DotGraph.visualize()` for graph visualization --- booster-cha/build.gradle | 1 + .../booster/cha/graph/dot/DotGraph.kt | 23 +++++++++++++++- .../task/graph/TaskGraphVariantProcessor.kt | 26 ++++--------------- 3 files changed, 28 insertions(+), 22 deletions(-) diff --git a/booster-cha/build.gradle b/booster-cha/build.gradle index 59824ae7c..47d49c6e5 100644 --- a/booster-cha/build.gradle +++ b/booster-cha/build.gradle @@ -1,5 +1,6 @@ apply from: "$rootDir/gradle/booster.gradle" dependencies { + api project(':booster-command') api project(':booster-transform-util') } diff --git a/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/graph/dot/DotGraph.kt b/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/graph/dot/DotGraph.kt index 741e0512b..48256da06 100644 --- a/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/graph/dot/DotGraph.kt +++ b/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/graph/dot/DotGraph.kt @@ -1,8 +1,17 @@ package com.didiglobal.booster.cha.graph.dot -import com.didiglobal.booster.kotlinx.RGB import com.didiglobal.booster.cha.graph.CallGraph import com.didiglobal.booster.cha.graph.CallGraphRenderer +import com.didiglobal.booster.command.Command +import com.didiglobal.booster.command.CommandService +import com.didiglobal.booster.kotlinx.OS +import com.didiglobal.booster.kotlinx.RGB +import com.didiglobal.booster.kotlinx.execute +import com.didiglobal.booster.kotlinx.stderr +import com.didiglobal.booster.kotlinx.touch +import java.io.File +import java.io.FileNotFoundException +import java.io.IOException /** * Represents the graph type @@ -40,4 +49,16 @@ sealed class DotGraph : CallGraphRenderer { } + fun visualize(graph: CallGraph, output: File, format: String = "png", dot: Command = CommandService.fromPath("dot${OS.executableSuffix}")) { + output.touch().writeText(render(graph).toString()) + dot.location.file.let(::File).takeIf(File::exists)?.let { + "${it.canonicalPath} -T${format} -O ${output.canonicalPath}".also(::println).execute() + }?.let { p -> + p.waitFor() + if (p.exitValue() != 0) { + throw IOException(p.stderr) + } + } ?: throw FileNotFoundException(dot.location.file) + } + } diff --git a/booster-task-graph/src/main/kotlin/com/didiglobal/booster/task/graph/TaskGraphVariantProcessor.kt b/booster-task-graph/src/main/kotlin/com/didiglobal/booster/task/graph/TaskGraphVariantProcessor.kt index cc7e5ffd1..490421cc7 100644 --- a/booster-task-graph/src/main/kotlin/com/didiglobal/booster/task/graph/TaskGraphVariantProcessor.kt +++ b/booster-task-graph/src/main/kotlin/com/didiglobal/booster/task/graph/TaskGraphVariantProcessor.kt @@ -3,19 +3,12 @@ package com.didiglobal.booster.task.graph import com.android.build.gradle.api.BaseVariant import com.didiglobal.booster.cha.graph.CallGraph import com.didiglobal.booster.cha.graph.dot.DotGraph -import com.didiglobal.booster.command.CommandService import com.didiglobal.booster.gradle.project -import com.didiglobal.booster.kotlinx.OS -import com.didiglobal.booster.kotlinx.execute import com.didiglobal.booster.kotlinx.file import com.didiglobal.booster.task.spi.VariantProcessor import com.google.auto.service.AutoService -import java.io.BufferedReader -import java.io.File import java.util.concurrent.atomic.AtomicBoolean -private val DOT = "dot${OS.executableSuffix}" - @AutoService(VariantProcessor::class) class TaskGraphVariantProcessor : VariantProcessor { @@ -41,20 +34,11 @@ class TaskGraphVariantProcessor : VariantProcessor { builder }.build() - // write dot file - dot.writeText(DotGraph.DIGRAPH.render(graph).toString()) - - // convert dot to png - CommandService.fromPath(DOT).location.file.let(::File).takeIf(File::exists)?.let { - val cmdline = "${it.canonicalPath} -Tpng -O ${dot.canonicalPath}" - project.logger.info(cmdline) - cmdline.execute() - }?.let { p -> - p.waitFor() - if (p.exitValue() != 0) { - project.logger.error(p.errorStream.bufferedReader().use(BufferedReader::readText)) - } - } ?: project.logger.warn("Command `${DOT}` not found") + try { + DotGraph.DIGRAPH.visualize(graph, dot) + } catch (e: Exception) { + project.logger.error(e.message) + } } } From 14f189e91787e1388c11ebcfd3030429409153d9 Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Wed, 27 Apr 2022 23:25:22 +0800 Subject: [PATCH 110/187] [skip ci] Update README & RELEASE-NOTES --- README.md | 4 ++-- RELEASE-NOTES.md | 7 +++++++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 611436a0c..452352267 100644 --- a/README.md +++ b/README.md @@ -74,7 +74,7 @@ The best practise of using Booster is integrating the specific module to solve t ```groovy buildscript { - ext.booster_version = '4.6.0' + ext.booster_version = '4.7.0' repositories { google() mavenCentral() @@ -122,7 +122,7 @@ The `plugins` DSL also supported since Booster *3.0.0* ```groovy plugins { - id 'com.didiglobal.booster' version '4.6.0' + id 'com.didiglobal.booster' version '4.7.0' } ``` diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index 9ae4f2d01..9c297678a 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -1,3 +1,10 @@ +## v4.7.0 + +- Add `DotGraph.visualize()` for graph visualization +- Add `booster-task-graph` for task graph visualization +- Fix improper task dependencies +- Fix issue [#304](https://github.com/didi/booster/issues/304): `ScheduledThreadPoolExecutor` transform bug + ## v4.6.0 - Add extension property `BaseVariant.mergedNativeLibs: Collection` From 756b9337edd534cb1b725f9b6649eb929b7ecada Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Fri, 29 Apr 2022 17:58:56 +0800 Subject: [PATCH 111/187] Fix issue #311 --- .../gradle/BoosterTransformInvocation.kt | 11 ++--- .../didiglobal/booster/gradle/util/Dexer.kt | 40 ++++++++++++++++++- 2 files changed, 44 insertions(+), 7 deletions(-) diff --git a/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/BoosterTransformInvocation.kt b/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/BoosterTransformInvocation.kt index 3fc22fb84..ef41e46e8 100644 --- a/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/BoosterTransformInvocation.kt +++ b/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/BoosterTransformInvocation.kt @@ -13,6 +13,7 @@ import com.didiglobal.booster.kotlinx.NCPU import com.didiglobal.booster.kotlinx.file import com.didiglobal.booster.kotlinx.green import com.didiglobal.booster.kotlinx.red +import com.didiglobal.booster.kotlinx.touch import com.didiglobal.booster.transform.AbstractKlassPool import com.didiglobal.booster.transform.ArtifactManager import com.didiglobal.booster.transform.Collector @@ -225,11 +226,11 @@ internal class BoosterTransformInvocation( } private fun doVerify() { - outputs.sortedBy(File::nameWithoutExtension).forEach { output -> - val out = temporaryDir.file(output.name) - val rc = out.dex(output, variant.extension.defaultConfig.targetSdkVersion?.apiLevel ?: DexFormat.API_NO_EXTENDED_OPCODES) - println("${if (rc != 0) red("✗") else green("✓")} $output") - out.deleteRecursively() + outputs.sortedBy(File::nameWithoutExtension).forEach { input -> + val output = temporaryDir.file(input.name) + val rc = input.dex(output, variant.extension.defaultConfig.targetSdkVersion?.apiLevel ?: DexFormat.API_NO_EXTENDED_OPCODES) + println("${if (rc != 0) red("✗") else green("✓")} $input") + output.deleteRecursively() } } diff --git a/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/util/Dexer.kt b/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/util/Dexer.kt index 9c0b455ed..bad4dcaa0 100644 --- a/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/util/Dexer.kt +++ b/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/util/Dexer.kt @@ -2,10 +2,46 @@ package com.didiglobal.booster.gradle.util import com.android.dex.DexFormat import com.android.dx.command.dexer.Main +import com.android.tools.r8.D8 +import com.didiglobal.booster.gradle.GTE_V7_X import com.didiglobal.booster.kotlinx.NCPU +import com.didiglobal.booster.kotlinx.search +import com.didiglobal.booster.kotlinx.touch import java.io.File internal fun File.dex(output: File, api: Int = DexFormat.API_NO_EXTENDED_OPCODES): Int { + return if (GTE_V7_X) { + runD8(this, output, api) + } else { + runDx(this, output, api) + } +} + +private fun runD8(input: File, output: File, api: Int): Int { + val inputs = when { + input.isDirectory -> { + output.mkdirs() + input.search { + it.extension.equals("class", true) + } + } + else -> { + output.touch() + listOf(input) + } + } + + val args = inputs.map { it.canonicalPath } + "--min-api" + api.toString() + return try { + D8.main(args.toTypedArray()) + 0 + } catch (t: Throwable) { + t.printStackTrace() + -1 + } +} + +private fun runDx(input: File, output: File, api: Int): Int { val args = Main.Arguments().apply { numThreads = NCPU debug = true @@ -15,8 +51,8 @@ internal fun File.dex(output: File, api: Int = DexFormat.API_NO_EXTENDED_OPCODES jarOutput = true optimize = false minSdkVersion = api - fileNames = arrayOf(output.canonicalPath) - outName = canonicalPath + fileNames = arrayOf(input.canonicalPath) + outName = output.canonicalPath } return try { Main.run(args) From e71ea8a3d3722769dd2602868087dbb2fd90eef4 Mon Sep 17 00:00:00 2001 From: wuyue Date: Sun, 1 May 2022 15:08:46 +0800 Subject: [PATCH 112/187] add api mergeNativeLibsTaskProvider --- .../main/kotlin/com/didiglobal/booster/gradle/BaseVariant.kt | 3 +++ .../main/kotlin/com/didiglobal/booster/gradle/AGPInterface.kt | 3 +++ .../kotlin/com/didiglobal/booster/android/gradle/v3_3/V33.kt | 3 +++ .../kotlin/com/didiglobal/booster/android/gradle/v3_4/V34.kt | 3 +++ .../kotlin/com/didiglobal/booster/android/gradle/v3_5/V35.kt | 4 ++++ .../kotlin/com/didiglobal/booster/android/gradle/v3_6/V36.kt | 3 +++ .../kotlin/com/didiglobal/booster/android/gradle/v4_0/V40.kt | 3 +++ .../kotlin/com/didiglobal/booster/android/gradle/v4_1/V41.kt | 3 +++ .../kotlin/com/didiglobal/booster/android/gradle/v4_2/V42.kt | 3 +++ .../kotlin/com/didiglobal/booster/android/gradle/v7_0/V70.kt | 3 +++ 10 files changed, 31 insertions(+) diff --git a/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/BaseVariant.kt b/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/BaseVariant.kt index 427d0f25a..ac30e5819 100644 --- a/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/BaseVariant.kt +++ b/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/BaseVariant.kt @@ -66,6 +66,9 @@ val BaseVariant.mergeAssetsTaskProvider: TaskProvider val BaseVariant.mergeResourcesTaskProvider: TaskProvider get() = AGP.run { mergeResourcesTaskProvider } +val BaseVariant.mergeNativeLibsTaskProvider:TaskProvider + get() = AGP.run { mergeNativeLibsTaskProvider } + val BaseVariant.processJavaResourcesTaskProvider: TaskProvider get() = AGP.run { processJavaResourcesTaskProvider } diff --git a/booster-android-gradle-compat/src/main/kotlin/com/didiglobal/booster/gradle/AGPInterface.kt b/booster-android-gradle-compat/src/main/kotlin/com/didiglobal/booster/gradle/AGPInterface.kt index fe0a8c1f7..f74bb652b 100644 --- a/booster-android-gradle-compat/src/main/kotlin/com/didiglobal/booster/gradle/AGPInterface.kt +++ b/booster-android-gradle-compat/src/main/kotlin/com/didiglobal/booster/gradle/AGPInterface.kt @@ -80,6 +80,7 @@ interface AGPInterface { val BaseVariant.mergeResourcesTask: Task get() = mergeResourcesTaskProvider.get() + @Deprecated( message = "Use processJavaResourcesTaskProvider instead", replaceWith = ReplaceWith(expression = "processJavaResourcesTaskProvider"), @@ -114,6 +115,8 @@ interface AGPInterface { val BaseVariant.mergeResourcesTaskProvider: TaskProvider + val BaseVariant.mergeNativeLibsTaskProvider: TaskProvider + val BaseVariant.processJavaResourcesTaskProvider: TaskProvider fun BaseVariant.getArtifactCollection( diff --git a/booster-android-gradle-v3_3/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_3/V33.kt b/booster-android-gradle-v3_3/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_3/V33.kt index 2a3feda47..4de906319 100644 --- a/booster-android-gradle-v3_3/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_3/V33.kt +++ b/booster-android-gradle-v3_3/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_3/V33.kt @@ -72,6 +72,9 @@ internal object V33 : AGPInterface { override val BaseVariant.mergeResourcesTaskProvider: TaskProvider get() = mergeResourcesProvider + override val BaseVariant.mergeNativeLibsTaskProvider: TaskProvider + get() = project.tasks.named("transformNativeLibsWithMergeJniLibsFor${name.capitalize()}") + override val BaseVariant.processJavaResourcesTaskProvider: TaskProvider get() = processJavaResourcesProvider diff --git a/booster-android-gradle-v3_4/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_4/V34.kt b/booster-android-gradle-v3_4/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_4/V34.kt index 12b92accf..e407f7f8a 100644 --- a/booster-android-gradle-v3_4/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_4/V34.kt +++ b/booster-android-gradle-v3_4/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_4/V34.kt @@ -74,6 +74,9 @@ object V34 : AGPInterface { override val BaseVariant.mergeResourcesTaskProvider: TaskProvider get() = mergeResourcesProvider + override val BaseVariant.mergeNativeLibsTaskProvider: TaskProvider + get() = project.tasks.named("transformNativeLibsWithMergeJniLibsFor${name.capitalize()}") + override val BaseVariant.processJavaResourcesTaskProvider: TaskProvider get() = processJavaResourcesProvider diff --git a/booster-android-gradle-v3_5/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_5/V35.kt b/booster-android-gradle-v3_5/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_5/V35.kt index d5d99bf93..67f60056d 100644 --- a/booster-android-gradle-v3_5/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_5/V35.kt +++ b/booster-android-gradle-v3_5/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_5/V35.kt @@ -72,6 +72,10 @@ internal object V35 : AGPInterface { override val BaseVariant.mergeResourcesTaskProvider: TaskProvider get() = mergeResourcesProvider + override val BaseVariant.mergeNativeLibsTaskProvider: TaskProvider + get() = project.tasks.named(getTaskName("merge", "NativeLibs")) + + override val BaseVariant.processJavaResourcesTaskProvider: TaskProvider get() = processJavaResourcesProvider diff --git a/booster-android-gradle-v3_6/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_6/V36.kt b/booster-android-gradle-v3_6/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_6/V36.kt index 964f54419..866f4cdb5 100644 --- a/booster-android-gradle-v3_6/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_6/V36.kt +++ b/booster-android-gradle-v3_6/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_6/V36.kt @@ -79,6 +79,9 @@ object V36 : AGPInterface { mergeResourcesProvider } + override val BaseVariant.mergeNativeLibsTaskProvider: TaskProvider + get() = project.tasks.named(getTaskName("merge", "NativeLibs")) + override val BaseVariant.processJavaResourcesTaskProvider: TaskProvider get() = processJavaResourcesProvider diff --git a/booster-android-gradle-v4_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_0/V40.kt b/booster-android-gradle-v4_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_0/V40.kt index c947e9ae8..9d0829c1d 100644 --- a/booster-android-gradle-v4_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_0/V40.kt +++ b/booster-android-gradle-v4_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_0/V40.kt @@ -76,6 +76,9 @@ internal object V40 : AGPInterface { mergeResourcesProvider } + override val BaseVariant.mergeNativeLibsTaskProvider: TaskProvider + get() = project.tasks.named(getTaskName("merge", "NativeLibs")) + override val BaseVariant.processJavaResourcesTaskProvider: TaskProvider get() = processJavaResourcesProvider diff --git a/booster-android-gradle-v4_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_1/V41.kt b/booster-android-gradle-v4_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_1/V41.kt index 88d409ee1..673a47f40 100644 --- a/booster-android-gradle-v4_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_1/V41.kt +++ b/booster-android-gradle-v4_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_1/V41.kt @@ -89,6 +89,9 @@ internal object V41 : AGPInterface { mergeResourcesProvider } + override val BaseVariant.mergeNativeLibsTaskProvider: TaskProvider + get() = project.tasks.named(getTaskName("merge", "NativeLibs")) + override val BaseVariant.processJavaResourcesTaskProvider: TaskProvider get() = processJavaResourcesProvider diff --git a/booster-android-gradle-v4_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42.kt b/booster-android-gradle-v4_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42.kt index 49a28c4cf..e4e49b8a1 100644 --- a/booster-android-gradle-v4_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42.kt +++ b/booster-android-gradle-v4_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42.kt @@ -89,6 +89,9 @@ internal object V42 : AGPInterface { mergeResourcesProvider } + override val BaseVariant.mergeNativeLibsTaskProvider: TaskProvider + get() = project.tasks.named(getTaskName("merge", "NativeLibs")) + override val BaseVariant.processJavaResourcesTaskProvider: TaskProvider get() = processJavaResourcesProvider diff --git a/booster-android-gradle-v7_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_0/V70.kt b/booster-android-gradle-v7_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_0/V70.kt index 9d49482c6..ce4f96f4c 100644 --- a/booster-android-gradle-v7_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_0/V70.kt +++ b/booster-android-gradle-v7_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_0/V70.kt @@ -97,6 +97,9 @@ internal object V70 : AGPInterface { mergeResourcesProvider } + override val BaseVariant.mergeNativeLibsTaskProvider: TaskProvider + get() = project.tasks.named(getTaskName("merge", "NativeLibs")) + override val BaseVariant.processJavaResourcesTaskProvider: TaskProvider get() = processJavaResourcesProvider From 7afb65bdaebc37e7fe5357297197f1c1a0b50aa2 Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Tue, 26 Apr 2022 19:49:33 +0800 Subject: [PATCH 113/187] Add `booster-graph` to generate graph with `dot` --- .../com/didiglobal/booster/gradle/Project.kt | 11 ++ booster-cha/build.gradle | 1 + .../didiglobal/booster/cha/graph/CallGraph.kt | 138 +----------------- .../booster/cha/graph/CallGraphRenderer.kt | 12 -- .../didiglobal/booster/cha/graph/CallNode.kt | 44 ++++++ .../cha/graph/dot/WebSafeColorPaletteTest.kt | 1 - booster-graph/build.gradle | 6 + booster-graph/packages-zh-CN.md | 3 + .../com/didiglobal/booster/graph/Edge.kt | 7 + .../com/didiglobal/booster/graph/Graph.kt | 78 ++++++++++ .../didiglobal/booster/graph/GraphRenderer.kt | 12 ++ .../com/didiglobal/booster/graph/Node.kt | 5 + .../didiglobal/booster}/graph/dot/DotGraph.kt | 30 ++-- .../booster}/graph/dot/WebSafeColorPalette.kt | 2 +- .../booster/task/analyser/Analyser.kt | 48 +++--- .../booster/task/analyser/constants.kt | 6 +- booster-task-graph/build.gradle | 2 +- .../task/graph/TaskGraphVariantProcessor.kt | 9 +- .../didiglobal/booster/task/graph/TaskNode.kt | 4 +- build.gradle | 2 + settings.gradle | 1 + 21 files changed, 227 insertions(+), 195 deletions(-) delete mode 100644 booster-cha/src/main/kotlin/com/didiglobal/booster/cha/graph/CallGraphRenderer.kt create mode 100644 booster-cha/src/main/kotlin/com/didiglobal/booster/cha/graph/CallNode.kt create mode 100644 booster-graph/build.gradle create mode 100644 booster-graph/packages-zh-CN.md create mode 100644 booster-graph/src/main/kotlin/com/didiglobal/booster/graph/Edge.kt create mode 100644 booster-graph/src/main/kotlin/com/didiglobal/booster/graph/Graph.kt create mode 100644 booster-graph/src/main/kotlin/com/didiglobal/booster/graph/GraphRenderer.kt create mode 100644 booster-graph/src/main/kotlin/com/didiglobal/booster/graph/Node.kt rename {booster-cha/src/main/kotlin/com/didiglobal/booster/cha => booster-graph/src/main/kotlin/com/didiglobal/booster}/graph/dot/DotGraph.kt (64%) rename {booster-cha/src/main/kotlin/com/didiglobal/booster/cha => booster-graph/src/main/kotlin/com/didiglobal/booster}/graph/dot/WebSafeColorPalette.kt (95%) diff --git a/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/Project.kt b/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/Project.kt index a706a0a8a..9182343f5 100644 --- a/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/Project.kt +++ b/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/Project.kt @@ -21,6 +21,17 @@ val Project.aapt2Enabled: Boolean val Project.isAapt2Enabled: Boolean get() = AGP.run { isAapt2Enabled } +val Project.isAndroid: Boolean + get() = plugins.hasPlugin("com.android.application") + || plugins.hasPlugin("com.android.dynamic-feature") + || plugins.hasPlugin("com.android.library") + +val Project.isJava: Boolean + get() = plugins.hasPlugin("java") || isJavaLibrary + +val Project.isJavaLibrary: Boolean + get() = plugins.hasPlugin("java-library") + @Suppress("UNCHECKED_CAST") fun Project.getProperty(name: String, defaultValue: T): T { val value = findProperty(name) ?: return defaultValue diff --git a/booster-cha/build.gradle b/booster-cha/build.gradle index 47d49c6e5..e0b7d2068 100644 --- a/booster-cha/build.gradle +++ b/booster-cha/build.gradle @@ -2,5 +2,6 @@ apply from: "$rootDir/gradle/booster.gradle" dependencies { api project(':booster-command') + api project(':booster-graph') api project(':booster-transform-util') } diff --git a/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/graph/CallGraph.kt b/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/graph/CallGraph.kt index b17d18292..370239687 100644 --- a/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/graph/CallGraph.kt +++ b/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/graph/CallGraph.kt @@ -1,138 +1,10 @@ package com.didiglobal.booster.cha.graph -import com.didiglobal.booster.transform.util.ArgumentsParser -import java.io.PrintWriter -import java.util.Collections -import java.util.Objects -import java.util.concurrent.ConcurrentHashMap -import java.util.concurrent.CopyOnWriteArraySet - /** - * Represents the call graph - * - * @author johnsonlee + * A virtual root node of call graph */ -class CallGraph private constructor(private val edges: Map>, val title: String = "") : Iterable { - - companion object { - /** - * A virtual root node of call graph - */ - val ROOT = object : Node("Main", "main", "()V") { - override fun toPrettyString() = toString() - override fun hashCode() = super.hashCode() * 31 + javaClass.name.hashCode() - override fun equals(other: Any?) = this === other - } - } - - val nodes: Collection - get() = this.map { - listOf(it.from, it.to) - }.flatten().toSet() - - operator fun get(node: Node): Set = Collections.unmodifiableSet(edges[node] ?: emptySet()) - - /** - * Print this call graph - */ - fun print(out: PrintWriter = PrintWriter(System.out, true), transform: (CallGraph) -> CharSequence) { - out.println(transform(this)) - } - - override fun iterator(): Iterator { - return edges.map { pair -> - pair.value.map { - Edge(pair.key, it) - }.toSet() - }.flatten().iterator() - } - - open class Node internal constructor(val type: String, val name: String, val desc: String, val args: String) { - - constructor(type: String, name: String, desc: String) - : this(type, name, desc, desc.substring(desc.indexOf('(') + 1, desc.lastIndexOf(')').takeIf { it > -1 } ?: desc.length)) - - override fun equals(other: Any?) = when { - other === this -> true - other is Node -> other.type == this.type && other.name == this.name && other.desc == this.desc - else -> false - } - - override fun hashCode() = Objects.hash(type, name, desc) - - override fun toString() = "$type.$name$desc" - - open fun toPrettyString(): String { - val lp = this.desc.indexOf('(') - val rp = this.desc.lastIndexOf(')') - val desc = ArgumentsParser(this.desc, lp + 1, rp - lp - 1).parse().joinToString(", ", "(", ")") { - it.substringAfterLast('.') - } - return "$type:$name$desc" - } - - companion object { - - fun valueOf(s: String): Node { - val lp = s.lastIndexOf('(') - val dot = s.lastIndexOf('.', lp) - if (lp < 0 || dot < 0) { - throw IllegalArgumentException(s) - } - return Node(s.substring(0, dot), s.substring(dot + 1, lp), s.substring(lp)) - } - - } - } - - class Edge(val from: Node, val to: Node) { - - override fun hashCode() = Objects.hash(from, to) - - override fun equals(other: Any?) = when { - other === this -> true - other is Edge -> other.from == this.from && other.to == this.to - else -> false - } - - override fun toString() = "$from -> $to" - - } - - class Builder { - - private val edges = ConcurrentHashMap>() - - private var title = "" - - fun getTitle() = title - - fun setTitle(title: String) = apply { - this.title = title - } - - fun addEdge(edge: Edge) = addEdge(edge.from, edge.to) - - fun addEdge(from: Node, to: Node) = apply { - edges.getOrPut(from, ::CopyOnWriteArraySet) += to - } - - fun addEdges(from: Node, to: Iterable) = apply { - edges.getOrPut(from, ::CopyOnWriteArraySet) += to - } - - fun addEdges(chain: Iterable) = apply { - chain.zipWithNext(CallGraph::Edge).forEach { - this.addEdge(it) - } - } - - fun hasEdge(edge: Edge) = this.hasEdge(edge.from, edge.to) - - fun hasEdge(from: Node, to: Node) = this.edges.containsKey(from) && this.edges[from]?.contains(to) == true - - fun build() = CallGraph(this.edges, this.title) - - } - +val ROOT = object : CallNode("Main", "main", "()V") { + override fun toPrettyString() = toString() + override fun hashCode() = super.hashCode() * 31 + javaClass.name.hashCode() + override fun equals(other: Any?) = this === other } diff --git a/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/graph/CallGraphRenderer.kt b/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/graph/CallGraphRenderer.kt deleted file mode 100644 index a454f7a1c..000000000 --- a/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/graph/CallGraphRenderer.kt +++ /dev/null @@ -1,12 +0,0 @@ -package com.didiglobal.booster.cha.graph - -/** - * Represents a call graph renderer - * - * @author johnsonlee - */ -interface CallGraphRenderer { - - fun render(graph: CallGraph): CharSequence - -} diff --git a/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/graph/CallNode.kt b/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/graph/CallNode.kt new file mode 100644 index 000000000..faf4bf0e7 --- /dev/null +++ b/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/graph/CallNode.kt @@ -0,0 +1,44 @@ +package com.didiglobal.booster.cha.graph + +import com.didiglobal.booster.graph.Node +import com.didiglobal.booster.transform.util.ArgumentsParser +import java.util.Objects + +open class CallNode internal constructor(val type: String, val name: String, val desc: String, val args: String) : Node { + + constructor(type: String, name: String, desc: String) + : this(type, name, desc, desc.substring(desc.indexOf('(') + 1, desc.lastIndexOf(')').takeIf { it > -1 } + ?: desc.length)) + + override fun equals(other: Any?) = when { + other === this -> true + other is CallNode -> other.type == this.type && other.name == this.name && other.desc == this.desc + else -> false + } + + override fun hashCode() = Objects.hash(type, name, desc) + + override fun toString() = "$type.$name$desc" + + override fun toPrettyString(): String { + val lp = this.desc.indexOf('(') + val rp = this.desc.lastIndexOf(')') + val desc = ArgumentsParser(this.desc, lp + 1, rp - lp - 1).parse().joinToString(", ", "(", ")") { + it.substringAfterLast('.') + } + return "$type:$name$desc" + } + + companion object { + + fun valueOf(s: String): CallNode { + val lp = s.lastIndexOf('(') + val dot = s.lastIndexOf('.', lp) + if (lp < 0 || dot < 0) { + throw IllegalArgumentException(s) + } + return CallNode(s.substring(0, dot), s.substring(dot + 1, lp), s.substring(lp)) + } + + } +} \ No newline at end of file diff --git a/booster-cha/src/test/kotlin/com/didiglobal/booster/cha/graph/dot/WebSafeColorPaletteTest.kt b/booster-cha/src/test/kotlin/com/didiglobal/booster/cha/graph/dot/WebSafeColorPaletteTest.kt index bab191e5a..597a52a39 100644 --- a/booster-cha/src/test/kotlin/com/didiglobal/booster/cha/graph/dot/WebSafeColorPaletteTest.kt +++ b/booster-cha/src/test/kotlin/com/didiglobal/booster/cha/graph/dot/WebSafeColorPaletteTest.kt @@ -1,6 +1,5 @@ package com.didiglobal.booster.cha.graph.dot -import com.didiglobal.booster.cha.graph.dot.WebSafeColorPalette import kotlin.test.Test import kotlin.test.assertNotEquals diff --git a/booster-graph/build.gradle b/booster-graph/build.gradle new file mode 100644 index 000000000..d3ceb3a83 --- /dev/null +++ b/booster-graph/build.gradle @@ -0,0 +1,6 @@ +apply from: "$rootDir/gradle/booster.gradle" + +dependencies { + api project(':booster-command') + api project(':booster-kotlinx') +} \ No newline at end of file diff --git a/booster-graph/packages-zh-CN.md b/booster-graph/packages-zh-CN.md new file mode 100644 index 000000000..a284fdf00 --- /dev/null +++ b/booster-graph/packages-zh-CN.md @@ -0,0 +1,3 @@ +# Package com.didiglobal.booster.graph + +提供了与 Graph 相关的 API diff --git a/booster-graph/src/main/kotlin/com/didiglobal/booster/graph/Edge.kt b/booster-graph/src/main/kotlin/com/didiglobal/booster/graph/Edge.kt new file mode 100644 index 000000000..04841bf0a --- /dev/null +++ b/booster-graph/src/main/kotlin/com/didiglobal/booster/graph/Edge.kt @@ -0,0 +1,7 @@ +package com.didiglobal.booster.graph + +data class Edge(val from: T, val to: T) { + + override fun toString() = "$from -> $to" + +} \ No newline at end of file diff --git a/booster-graph/src/main/kotlin/com/didiglobal/booster/graph/Graph.kt b/booster-graph/src/main/kotlin/com/didiglobal/booster/graph/Graph.kt new file mode 100644 index 000000000..e858701d7 --- /dev/null +++ b/booster-graph/src/main/kotlin/com/didiglobal/booster/graph/Graph.kt @@ -0,0 +1,78 @@ +package com.didiglobal.booster.graph + +import java.io.PrintWriter +import java.util.Collections +import java.util.concurrent.ConcurrentHashMap +import java.util.concurrent.CopyOnWriteArraySet + +/** + * Represents a graph + * + * @author johnsonlee + */ +class Graph private constructor( + private val edges: Map>, + val title: String = "" +) : Iterable> { + + private val entries: List> by lazy { + edges.map { pair -> + pair.value.map { + Edge(pair.key, it) + }.toSet() + }.flatten() + } + + val nodes: Collection by lazy { + this.map { + listOf(it.from, it.to) + }.flatten().toSet() + } + + operator fun get(node: N): Set = Collections.unmodifiableSet(edges[node] ?: emptySet()) + + /** + * Print this graph + */ + fun print(out: PrintWriter = PrintWriter(System.out, true), transform: (Graph) -> CharSequence) { + out.println(transform(this)) + } + + override fun iterator(): Iterator> = entries.iterator() + + class Builder { + + private val edges = ConcurrentHashMap>() + + private var title = "" + + fun getTitle() = title + + fun setTitle(title: String) = apply { + this.title = title + } + + fun addEdge(edge: Edge) = addEdge(edge.from, edge.to) + + fun addEdge(from: N, to: N) = apply { + edges.getOrPut(from, ::CopyOnWriteArraySet) += to + } + + fun addEdges(from: N, to: Iterable) = apply { + edges.getOrPut(from, ::CopyOnWriteArraySet) += to + } + + fun addEdges(chain: Iterable) = apply { + chain.zipWithNext(::Edge).forEach { + this.addEdge(it) + } + } + + fun hasEdge(edge: Edge) = this.hasEdge(edge.from, edge.to) + + fun hasEdge(from: N, to: N) = this.edges.containsKey(from) && this.edges[from]?.contains(to) == true + + fun build(): Graph = Graph(Collections.unmodifiableMap(this.edges), this.title) + } + +} \ No newline at end of file diff --git a/booster-graph/src/main/kotlin/com/didiglobal/booster/graph/GraphRenderer.kt b/booster-graph/src/main/kotlin/com/didiglobal/booster/graph/GraphRenderer.kt new file mode 100644 index 000000000..1e7b296b7 --- /dev/null +++ b/booster-graph/src/main/kotlin/com/didiglobal/booster/graph/GraphRenderer.kt @@ -0,0 +1,12 @@ +package com.didiglobal.booster.graph + +/** + * Represents a graph renderer + * + * @author johnsonlee + */ +interface GraphRenderer { + + fun render(graph: Graph, prettify: (N) -> String = Node::toPrettyString): CharSequence + +} diff --git a/booster-graph/src/main/kotlin/com/didiglobal/booster/graph/Node.kt b/booster-graph/src/main/kotlin/com/didiglobal/booster/graph/Node.kt new file mode 100644 index 000000000..640735db1 --- /dev/null +++ b/booster-graph/src/main/kotlin/com/didiglobal/booster/graph/Node.kt @@ -0,0 +1,5 @@ +package com.didiglobal.booster.graph + +interface Node { + fun toPrettyString() = toString() +} \ No newline at end of file diff --git a/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/graph/dot/DotGraph.kt b/booster-graph/src/main/kotlin/com/didiglobal/booster/graph/dot/DotGraph.kt similarity index 64% rename from booster-cha/src/main/kotlin/com/didiglobal/booster/cha/graph/dot/DotGraph.kt rename to booster-graph/src/main/kotlin/com/didiglobal/booster/graph/dot/DotGraph.kt index 48256da06..295068286 100644 --- a/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/graph/dot/DotGraph.kt +++ b/booster-graph/src/main/kotlin/com/didiglobal/booster/graph/dot/DotGraph.kt @@ -1,9 +1,10 @@ -package com.didiglobal.booster.cha.graph.dot +package com.didiglobal.booster.graph.dot -import com.didiglobal.booster.cha.graph.CallGraph -import com.didiglobal.booster.cha.graph.CallGraphRenderer import com.didiglobal.booster.command.Command import com.didiglobal.booster.command.CommandService +import com.didiglobal.booster.graph.Graph +import com.didiglobal.booster.graph.GraphRenderer +import com.didiglobal.booster.graph.Node import com.didiglobal.booster.kotlinx.OS import com.didiglobal.booster.kotlinx.RGB import com.didiglobal.booster.kotlinx.execute @@ -18,11 +19,11 @@ import java.io.IOException * * @author johnsonlee */ -sealed class DotGraph : CallGraphRenderer { +sealed class DotGraph : GraphRenderer { object DIGRAPH : DotGraph() { - override fun render(graph: CallGraph): CharSequence { + override fun render(graph: Graph, prettify: (N) -> String): CharSequence { return StringBuilder().apply { appendln("digraph \"${graph.title}\" {") appendln(" graph [bgcolor=\"transparent\",pad=\"0.555\"];") @@ -30,18 +31,13 @@ sealed class DotGraph : CallGraphRenderer { appendln(" edge [fontname=Helvetica];") appendln(" rankdir = TB;") graph.nodes.joinTo(this, "\n ", " ", "\n") { node -> - val id = graph.title.substringAfterLast('.') val color = RGB.valueOf(WebSafeColorPalette.random(0x000000, 0xffffff)) // except white color - "\"${if (node == CallGraph.ROOT) id else node.toPrettyString()}\" [color=\"#$color\",fillcolor=\"#${color}40\"];" + "\"${prettify(node)}\" [color=\"#$color\",fillcolor=\"#${color}40\"];" } graph.joinTo(this, "\n ", " ", "\n") { edge -> - val id = graph.title.substringAfterLast('.') val color = RGB.valueOf(WebSafeColorPalette.random(0x000000, 0xffffff)).toString() // except white color - val from = if (edge.from == CallGraph.ROOT) id else edge.from.toPrettyString() - val to = if (edge.to == CallGraph.ROOT) id else edge.to.toPrettyString() - "\"$from\" -> \"$to\" [color=\"#$color\",fontcolor=\"#$color\"];" - + "\"${prettify(edge.from)}\" -> \"${prettify(edge.to)}\" [color=\"#$color\",fontcolor=\"#$color\"];" } appendln("}") } @@ -49,8 +45,14 @@ sealed class DotGraph : CallGraphRenderer { } - fun visualize(graph: CallGraph, output: File, format: String = "png", dot: Command = CommandService.fromPath("dot${OS.executableSuffix}")) { - output.touch().writeText(render(graph).toString()) + fun visualize( + graph: Graph, + output: File, + format: String = "png", + dot: Command = CommandService.fromPath("dot${OS.executableSuffix}"), + prettify: (Node) -> String = Node::toPrettyString + ) { + output.touch().writeText(render(graph, prettify).toString()) dot.location.file.let(::File).takeIf(File::exists)?.let { "${it.canonicalPath} -T${format} -O ${output.canonicalPath}".also(::println).execute() }?.let { p -> diff --git a/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/graph/dot/WebSafeColorPalette.kt b/booster-graph/src/main/kotlin/com/didiglobal/booster/graph/dot/WebSafeColorPalette.kt similarity index 95% rename from booster-cha/src/main/kotlin/com/didiglobal/booster/cha/graph/dot/WebSafeColorPalette.kt rename to booster-graph/src/main/kotlin/com/didiglobal/booster/graph/dot/WebSafeColorPalette.kt index ac993109e..777cfd294 100644 --- a/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/graph/dot/WebSafeColorPalette.kt +++ b/booster-graph/src/main/kotlin/com/didiglobal/booster/graph/dot/WebSafeColorPalette.kt @@ -1,4 +1,4 @@ -package com.didiglobal.booster.cha.graph.dot +package com.didiglobal.booster.graph.dot import java.util.Random diff --git a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/Analyser.kt b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/Analyser.kt index f65176650..811f86458 100644 --- a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/Analyser.kt +++ b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/Analyser.kt @@ -5,8 +5,10 @@ import com.didiglobal.booster.cha.ClassHierarchy import com.didiglobal.booster.cha.ClassSet import com.didiglobal.booster.cha.JAVA_LANG_OBJECT import com.didiglobal.booster.cha.fold -import com.didiglobal.booster.cha.graph.CallGraph -import com.didiglobal.booster.cha.graph.dot.DotGraph +import com.didiglobal.booster.cha.graph.CallNode +import com.didiglobal.booster.cha.graph.ROOT +import com.didiglobal.booster.graph.Graph +import com.didiglobal.booster.graph.dot.DotGraph import com.didiglobal.booster.kotlinx.NCPU import com.didiglobal.booster.kotlinx.asIterable import com.didiglobal.booster.kotlinx.file @@ -14,7 +16,6 @@ import com.didiglobal.booster.kotlinx.green import com.didiglobal.booster.kotlinx.red import com.didiglobal.booster.kotlinx.search import com.didiglobal.booster.kotlinx.separatorsToSystem -import com.didiglobal.booster.kotlinx.touch import com.didiglobal.booster.kotlinx.yellow import com.didiglobal.booster.transform.ArtifactManager import com.didiglobal.booster.transform.asm.args @@ -70,12 +71,12 @@ class Analyser( /** * The global call graph of whole project */ - private val globalBuilder = CallGraph.Builder() + private val globalBuilder = Graph.Builder() /** * The call graph of each class */ - private val graphBuilders = ConcurrentHashMap() + private val graphBuilders = ConcurrentHashMap>() private val classesRunOnUiThread = ConcurrentHashMap() private val classesRunOnMainThread = ConcurrentHashMap() @@ -84,11 +85,11 @@ class Analyser( private val nodesRunOnMainThread = CopyOnWriteArraySet(PLATFORM_METHODS_RUN_ON_MAIN_THREAD) private val blacklist = URL(properties[PROPERTY_BLACKLIST]?.toString() ?: VALUE_BLACKLIST).openStream().bufferedReader().use { - it.readLines().filter(String::isNotBlank).map(CallGraph.Node.Companion::valueOf).toSet() + it.readLines().filter(String::isNotBlank).map(CallNode.Companion::valueOf).toSet() } private val whitelist = URL(properties[PROPERTY_WHITELIST]?.toString() ?: VALUE_WHITELIST).openStream().bufferedReader().use { - it.readLines().filter(String::isNotBlank).map(CallGraph.Node.Companion::valueOf).toSet() + it.readLines().filter(String::isNotBlank).map(CallNode.Companion::valueOf).toSet() } private val mainThreadAnnotations: Set by lazy { @@ -186,13 +187,13 @@ class Analyser( println("Loading main thread entry points from $component ...") val nodes = entryPoints.map { - CallGraph.Node(clazz.name, it.name, it.desc) + CallNode(clazz.name, it.name, it.desc) } this.hierarchy[component]?.run { classesRunOnMainThread[component] = this } - this.globalBuilder.addEdges(CallGraph.ROOT, nodes) + this.globalBuilder.addEdges(ROOT, nodes) this.nodesRunOnMainThread += nodes } } @@ -246,10 +247,10 @@ class Analyser( } val nodes = clazz.methods.filter(MethodNode::isEntryPoint).map { m -> - CallGraph.Node(clazz.name, m.name, m.desc) + CallNode(clazz.name, m.name, m.desc) } - globalBuilder.addEdges(CallGraph.ROOT, nodes) + globalBuilder.addEdges(ROOT, nodes) nodes } }.flatten() @@ -269,7 +270,7 @@ class Analyser( || method.isSubscribeOnMainThread() if (isMethodRunUiOrMainThread) { - val node = CallGraph.Node(clazz.name, method.name, method.desc) + val node = CallNode(clazz.name, method.name, method.desc) if (isClassRunOnMainThread) { nodesRunOnMainThread += node @@ -279,13 +280,13 @@ class Analyser( nodesRunOnUiThread += node } - globalBuilder.addEdge(CallGraph.ROOT, node) + globalBuilder.addEdge(ROOT, node) } // construct call graph by scanning INVOKE* instructions method.instructions.iterator().asIterable().filterIsInstance(MethodInsnNode::class.java).forEach { invoke -> - val to = CallGraph.Node(invoke.owner, invoke.name, invoke.desc) - val from = CallGraph.Node(clazz.name, method.name, method.desc) + val to = CallNode(invoke.owner, invoke.name, invoke.desc) + val from = CallNode(clazz.name, method.name, method.desc) // break circular invocation if (!globalBuilder.hasEdge(to, from)) { @@ -305,11 +306,11 @@ class Analyser( println("Generating call graphs ...") // Analyse global call graph and separate each chain to individual graph - global[CallGraph.ROOT].map { node -> + global[ROOT].map { node -> executor.submit { - analyse(global, node, listOf(CallGraph.ROOT, node)) { chain -> + analyse(global, node, listOf(ROOT, node)) { chain -> val builder = graphBuilders.getOrPut(node.type) { - CallGraph.Builder().setTitle(node.type.replace('/', '.')) + Graph.Builder().setTitle(node.type.replace('/', '.')) } builder.addEdges(chain) } @@ -323,9 +324,8 @@ class Analyser( File(output, name.separatorsToSystem() + ".dot") to builder.build() }.map { (dot, graph) -> executor.submit { - println(dot) - dot.touch().printWriter().use { printer -> - graph.print(printer, DotGraph.DIGRAPH::render) + DotGraph.DIGRAPH.visualize(graph, dot) { + if (it == ROOT) graph.title else it.toPrettyString() } } }.forEach { @@ -343,7 +343,7 @@ class Analyser( * @param node The entry point * @param chain The call chain */ - private fun analyse(graph: CallGraph, node: CallGraph.Node, chain: List, action: (List) -> Unit) { + private fun analyse(graph: Graph, node: CallNode, chain: List, action: (List) -> Unit) { if (node in whitelist) { return } @@ -388,7 +388,7 @@ class Analyser( */ private fun MethodNode.isRunOnUiThread(clazz: ClassNode) = isRunOnThread(clazz, uiThreadAnnotations, nodesRunOnUiThread) - private fun MethodNode.isRunOnThread(clazz: ClassNode, annotations: Set, nodesRunOnThread: Set): Boolean { + private fun MethodNode.isRunOnThread(clazz: ClassNode, annotations: Set, nodesRunOnThread: Set): Boolean { if (this.isInvisibleAnnotationPresent(annotations)) { return true } @@ -398,7 +398,7 @@ class Analyser( } } - private infix fun CallGraph.Node.matches(apis: Collection) = apis.contains(this) || apis.any { + private infix fun CallNode.matches(apis: Collection) = apis.contains(this) || apis.any { // only match type, name and args because of covariant return type is partially allowed since JDK 1.5 // (overridden method can have different return type in sub-type) this.name == it.name && this.args == it.args && hierarchy.isInheritFrom(this.type, it.type) diff --git a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/constants.kt b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/constants.kt index 1faeab3a6..cd829ebfb 100644 --- a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/constants.kt +++ b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/constants.kt @@ -1,6 +1,6 @@ package com.didiglobal.booster.task.analyser -import com.didiglobal.booster.cha.graph.CallGraph +import com.didiglobal.booster.cha.graph.CallNode private const val DOLLAR = '$' @@ -22,7 +22,7 @@ internal val EXCLUDES = Regex("^(((android[x]?)|(com/(((google/)?android)|(googl internal val PLATFORM_METHODS_RUN_ON_UI_THREAD = arrayOf( "androidx/asynclayoutinflater/view/AsyncLayoutInflater.inflate(ILandroid/view/ViewGroup;Landroidx/asynclayoutinflater/view/AsyncLayoutInflater${DOLLAR}OnInflateFinishedListener;)V" -).map(CallGraph.Node.Companion::valueOf).toSet() +).map(CallNode.Companion::valueOf).toSet() internal val PLATFORM_METHODS_RUN_ON_MAIN_THREAD = arrayOf( "android/content/ContextWrapper.attachBaseContext(Landroid/content/Context;)V", @@ -53,7 +53,7 @@ internal val PLATFORM_METHODS_RUN_ON_MAIN_THREAD = arrayOf( "androidx/lifecycle/Lifecycle.removeObserver(Landroidx/lifecycle/Lifecycle/LifecycleObserver;)V", "androidx/lifecycle/Lifecycle.getCurrentState()Landroidx/lifecycle/Lifecycle${DOLLAR}State;", "androidx/lifecycle/LifecycleRegistry.markState(Landroidx/lifecycle/Lifecycle${DOLLAR}State;)V" -).map(CallGraph.Node.Companion::valueOf).toSet() +).map(CallNode.Companion::valueOf).toSet() internal val MAIN_THREAD_ANNOTATIONS = arrayOf( "androidx/annotation/MainThread", diff --git a/booster-task-graph/build.gradle b/booster-task-graph/build.gradle index e4f1c0891..df3ddcd45 100644 --- a/booster-task-graph/build.gradle +++ b/booster-task-graph/build.gradle @@ -3,7 +3,7 @@ apply from: "$rootDir/gradle/booster.gradle" dependencies { kapt "com.google.auto.service:auto-service:1.0" implementation project(':booster-api') - implementation project(':booster-cha') + implementation project(':booster-graph') implementation project(':booster-command') compileOnly 'com.android.tools.build:gradle:4.0.0' compileOnly 'com.android.tools.build:builder:4.0.0' diff --git a/booster-task-graph/src/main/kotlin/com/didiglobal/booster/task/graph/TaskGraphVariantProcessor.kt b/booster-task-graph/src/main/kotlin/com/didiglobal/booster/task/graph/TaskGraphVariantProcessor.kt index 490421cc7..22b2db912 100644 --- a/booster-task-graph/src/main/kotlin/com/didiglobal/booster/task/graph/TaskGraphVariantProcessor.kt +++ b/booster-task-graph/src/main/kotlin/com/didiglobal/booster/task/graph/TaskGraphVariantProcessor.kt @@ -1,9 +1,10 @@ package com.didiglobal.booster.task.graph import com.android.build.gradle.api.BaseVariant -import com.didiglobal.booster.cha.graph.CallGraph -import com.didiglobal.booster.cha.graph.dot.DotGraph import com.didiglobal.booster.gradle.project +import com.didiglobal.booster.graph.Edge +import com.didiglobal.booster.graph.Graph +import com.didiglobal.booster.graph.dot.DotGraph import com.didiglobal.booster.kotlinx.file import com.didiglobal.booster.task.spi.VariantProcessor import com.google.auto.service.AutoService @@ -28,8 +29,8 @@ class TaskGraphVariantProcessor : VariantProcessor { dep to task } }.flatten().map { (dep, task) -> - CallGraph.Edge(TaskNode(dep.path), TaskNode(task.path)) - }.fold(CallGraph.Builder().setTitle(title)) { builder, edge -> + Edge(TaskNode(dep.path), TaskNode(task.path)) + }.fold(Graph.Builder().setTitle(title)) { builder, edge -> builder.addEdge(edge) builder }.build() diff --git a/booster-task-graph/src/main/kotlin/com/didiglobal/booster/task/graph/TaskNode.kt b/booster-task-graph/src/main/kotlin/com/didiglobal/booster/task/graph/TaskNode.kt index 2e2412cae..aacc1d748 100644 --- a/booster-task-graph/src/main/kotlin/com/didiglobal/booster/task/graph/TaskNode.kt +++ b/booster-task-graph/src/main/kotlin/com/didiglobal/booster/task/graph/TaskNode.kt @@ -1,8 +1,8 @@ package com.didiglobal.booster.task.graph -import com.didiglobal.booster.cha.graph.CallGraph +import com.didiglobal.booster.graph.Node -data class TaskNode(val path: String) : CallGraph.Node("", path, "") { +data class TaskNode(val path: String) : Node { override fun toPrettyString(): String = path diff --git a/build.gradle b/build.gradle index 41fa3e571..13015e648 100644 --- a/build.gradle +++ b/build.gradle @@ -181,6 +181,7 @@ task reference(type: org.jetbrains.dokka.gradle.DokkaTask, group: 'Documentation 'booster-build', 'booster-cha', 'booster-command', + 'booster-graph', 'booster-kotlinx', 'booster-task-compression', 'booster-task-spi', @@ -208,6 +209,7 @@ task reference(type: org.jetbrains.dokka.gradle.DokkaTask, group: 'Documentation 'booster-build/packages-zh-CN.md', 'booster-cha/packages-zh-CN.md', 'booster-command/packages-zh-CN.md', + 'booster-graph/packages-zh-CN.md', 'booster-kotlinx/packages-zh-CN.md', 'booster-task-compression/packages-zh-CN.md', 'booster-task-spi/packages-zh-CN.md', diff --git a/settings.gradle b/settings.gradle index 317884f11..85dc244f7 100644 --- a/settings.gradle +++ b/settings.gradle @@ -25,6 +25,7 @@ include ':booster-api' include ':booster-build' include ':booster-cha' include ':booster-command' +include ':booster-graph' include ':booster-gradle-plugin' include ':booster-task-analyser' include ':booster-task-check-snapshot' From 6a2440d5f240c0edbcb7c0f1677f02489b6679da Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Fri, 29 Apr 2022 20:19:36 +0800 Subject: [PATCH 114/187] Using deferred task instead of creating task directly --- .../CheckSnapshotVariantProcessor.kt | 27 ++++++++++++------- .../artifact/ListArtifactVariantProcessor.kt | 23 +++++++++++----- .../ListPermissionVariantProcessor.kt | 23 +++++++++++----- .../so/ListSharedLibraryVariantProcessor.kt | 12 +++++++-- 4 files changed, 60 insertions(+), 25 deletions(-) diff --git a/booster-task-check-snapshot/src/main/kotlin/com/didiglobal/booster/task/dependency/CheckSnapshotVariantProcessor.kt b/booster-task-check-snapshot/src/main/kotlin/com/didiglobal/booster/task/dependency/CheckSnapshotVariantProcessor.kt index 676760edd..e7b730369 100644 --- a/booster-task-check-snapshot/src/main/kotlin/com/didiglobal/booster/task/dependency/CheckSnapshotVariantProcessor.kt +++ b/booster-task-check-snapshot/src/main/kotlin/com/didiglobal/booster/task/dependency/CheckSnapshotVariantProcessor.kt @@ -1,23 +1,32 @@ package com.didiglobal.booster.task.dependency import com.android.build.gradle.api.BaseVariant -import com.didiglobal.booster.gradle.javaCompilerTask +import com.android.build.gradle.internal.tasks.factory.dependsOn +import com.didiglobal.booster.gradle.javaCompilerTaskProvider import com.didiglobal.booster.gradle.project import com.didiglobal.booster.task.spi.VariantProcessor import com.google.auto.service.AutoService +import org.gradle.api.UnknownTaskException + +private const val TASK_NAME = "checkSnapshot" @AutoService(VariantProcessor::class) class CheckSnapshotVariantProcessor : VariantProcessor { override fun process(variant: BaseVariant) { - val tasks = variant.project.tasks - val checkSnapshot = tasks.findByName("checkSnapshot") ?: tasks.create("checkSnapshot") - tasks.create("check${variant.name.capitalize()}Snapshot", CheckSnapshot::class.java) { - it.variant = variant - it.outputs.upToDateWhen { false } - }.also { - variant.javaCompilerTask.dependsOn(it) - checkSnapshot.dependsOn(it) + variant.project.tasks.let { tasks -> + val checkSnapshot = try { + tasks.named(TASK_NAME) + } catch (e: UnknownTaskException) { + tasks.register(TASK_NAME) + } + tasks.register("check${variant.name.capitalize()}Snapshot", CheckSnapshot::class.java) { + it.variant = variant + it.outputs.upToDateWhen { false } + }.also { + variant.javaCompilerTaskProvider.dependsOn(it) + checkSnapshot.dependsOn(it) + } } } diff --git a/booster-task-list-artifact/src/main/kotlin/com/didiglobal/booster/task/artifact/ListArtifactVariantProcessor.kt b/booster-task-list-artifact/src/main/kotlin/com/didiglobal/booster/task/artifact/ListArtifactVariantProcessor.kt index 375a46e2f..ab642f9de 100644 --- a/booster-task-list-artifact/src/main/kotlin/com/didiglobal/booster/task/artifact/ListArtifactVariantProcessor.kt +++ b/booster-task-list-artifact/src/main/kotlin/com/didiglobal/booster/task/artifact/ListArtifactVariantProcessor.kt @@ -1,21 +1,30 @@ package com.didiglobal.booster.task.artifact import com.android.build.gradle.api.BaseVariant +import com.android.build.gradle.internal.tasks.factory.dependsOn import com.didiglobal.booster.gradle.project import com.didiglobal.booster.task.spi.VariantProcessor import com.google.auto.service.AutoService +import org.gradle.api.UnknownTaskException + +private const val TASK_NAME = "listArtifacts" @AutoService(VariantProcessor::class) class ListArtifactVariantProcessor : VariantProcessor { override fun process(variant: BaseVariant) { - val tasks = variant.project.tasks - val artifacts = tasks.findByName("listArtifacts") ?: tasks.create("listArtifacts") - tasks.create("list${variant.name.capitalize()}Artifacts", ListArtifact::class.java) { - it.variant = variant - it.outputs.upToDateWhen { false } - }.also { - artifacts.dependsOn(it) + variant.project.tasks.let { tasks -> + val listArtifacts = try { + tasks.named(TASK_NAME) + } catch (e: UnknownTaskException) { + tasks.register(TASK_NAME) + } + tasks.register("list${variant.name.capitalize()}Artifacts", ListArtifact::class.java) { + it.variant = variant + it.outputs.upToDateWhen { false } + }.also { + listArtifacts.dependsOn(it) + } } } diff --git a/booster-task-list-permission/src/main/kotlin/com/didiglobal/booster/task/permission/ListPermissionVariantProcessor.kt b/booster-task-list-permission/src/main/kotlin/com/didiglobal/booster/task/permission/ListPermissionVariantProcessor.kt index dc80d35b7..e3da3d85b 100644 --- a/booster-task-list-permission/src/main/kotlin/com/didiglobal/booster/task/permission/ListPermissionVariantProcessor.kt +++ b/booster-task-list-permission/src/main/kotlin/com/didiglobal/booster/task/permission/ListPermissionVariantProcessor.kt @@ -1,21 +1,30 @@ package com.didiglobal.booster.task.permission import com.android.build.gradle.api.BaseVariant +import com.android.build.gradle.internal.tasks.factory.dependsOn import com.didiglobal.booster.gradle.project import com.didiglobal.booster.task.spi.VariantProcessor import com.google.auto.service.AutoService +import org.gradle.api.UnknownTaskException + +private const val TASK_NAME = "listPermissions" @AutoService(VariantProcessor::class) class ListPermissionVariantProcessor : VariantProcessor { override fun process(variant: BaseVariant) { - val tasks = variant.project.tasks - val listPermission = tasks.findByName("listPermissions") ?: tasks.create("listPermissions") - tasks.create("list${variant.name.capitalize()}Permissions", ListPermission::class.java) { - it.variant = variant - it.outputs.upToDateWhen { false } - }.also { - listPermission.dependsOn(it) + variant.project.tasks.let { tasks -> + val listPermissions = try { + tasks.named(TASK_NAME) + } catch (e: UnknownTaskException) { + tasks.register("listPermissions") + } + tasks.register("list${variant.name.capitalize()}Permissions", ListPermission::class.java) { + it.variant = variant + it.outputs.upToDateWhen { false } + }.also { + listPermissions.dependsOn(it) + } } } diff --git a/booster-task-list-shared-library/src/main/kotlin/com/didiglobal/booster/task/so/ListSharedLibraryVariantProcessor.kt b/booster-task-list-shared-library/src/main/kotlin/com/didiglobal/booster/task/so/ListSharedLibraryVariantProcessor.kt index d0c00b9d9..b2c250bf4 100644 --- a/booster-task-list-shared-library/src/main/kotlin/com/didiglobal/booster/task/so/ListSharedLibraryVariantProcessor.kt +++ b/booster-task-list-shared-library/src/main/kotlin/com/didiglobal/booster/task/so/ListSharedLibraryVariantProcessor.kt @@ -1,17 +1,25 @@ package com.didiglobal.booster.task.so import com.android.build.gradle.api.BaseVariant +import com.android.build.gradle.internal.tasks.factory.dependsOn import com.didiglobal.booster.gradle.project import com.didiglobal.booster.task.spi.VariantProcessor import com.google.auto.service.AutoService +import org.gradle.api.UnknownTaskException + +private const val TASK_NAME = "listSharedLibraries" @AutoService(VariantProcessor::class) class ListSharedLibraryVariantProcessor : VariantProcessor { override fun process(variant: BaseVariant) { variant.project.tasks.let { tasks -> - val listSharedLibraries = tasks.findByName("listSharedLibraries") ?: tasks.create("listSharedLibraries") - tasks.create("list${variant.name.capitalize()}SharedLibraries", ListSharedLibrary::class.java) { + val listSharedLibraries = try { + tasks.named(TASK_NAME) + } catch (e: UnknownTaskException) { + tasks.register(TASK_NAME) + } + tasks.register("list${variant.name.capitalize()}SharedLibraries", ListSharedLibrary::class.java) { it.outputs.upToDateWhen { false } it.variant = variant }.also { From 0d916829042480ed9207e6887b1644e149d65c98 Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Tue, 26 Apr 2022 20:38:32 +0800 Subject: [PATCH 115/187] Reverse the edge direction of the task graph --- .../didiglobal/booster/task/graph/TaskGraphVariantProcessor.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/booster-task-graph/src/main/kotlin/com/didiglobal/booster/task/graph/TaskGraphVariantProcessor.kt b/booster-task-graph/src/main/kotlin/com/didiglobal/booster/task/graph/TaskGraphVariantProcessor.kt index 22b2db912..5d512a62e 100644 --- a/booster-task-graph/src/main/kotlin/com/didiglobal/booster/task/graph/TaskGraphVariantProcessor.kt +++ b/booster-task-graph/src/main/kotlin/com/didiglobal/booster/task/graph/TaskGraphVariantProcessor.kt @@ -26,7 +26,7 @@ class TaskGraphVariantProcessor : VariantProcessor { val title = "./gradlew ${taskNames.joinToString(" ")}" val graph = project.gradle.taskGraph.allTasks.map { task -> task.taskDependencies.getDependencies(task).map { dep -> - dep to task + task to dep } }.flatten().map { (dep, task) -> Edge(TaskNode(dep.path), TaskNode(task.path)) From d7601eb592e2f313e1335faa839339e8ebb646e3 Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Wed, 4 May 2022 14:22:25 +0800 Subject: [PATCH 116/187] [skip ci] Update README & RELEASE-NOTES --- README.md | 4 ++-- RELEASE-NOTES.md | 8 ++++++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 452352267..b92db3961 100644 --- a/README.md +++ b/README.md @@ -74,7 +74,7 @@ The best practise of using Booster is integrating the specific module to solve t ```groovy buildscript { - ext.booster_version = '4.7.0' + ext.booster_version = '4.8.0' repositories { google() mavenCentral() @@ -122,7 +122,7 @@ The `plugins` DSL also supported since Booster *3.0.0* ```groovy plugins { - id 'com.didiglobal.booster' version '4.7.0' + id 'com.didiglobal.booster' version '4.8.0' } ``` diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index 9c297678a..eafed07b7 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -1,3 +1,11 @@ +## v4.8.0 + +- Fix issue [#311](https://github.com/didi/booster/issues/311) +- Add api `mergeNativeLibsTaskProvider` +- Add `booster-graph` to generate graph with `dot` +- Using deferred task instead of creating task directly +- Reverse the edge direction of the task graph + ## v4.7.0 - Add `DotGraph.visualize()` for graph visualization From 17596ac86c5e4049929eda0ee4bd7a90c1076fe8 Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Wed, 4 May 2022 21:25:24 +0800 Subject: [PATCH 117/187] Update `build.gradle` --- build.gradle | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/build.gradle b/build.gradle index 13015e648..41cc420dc 100644 --- a/build.gradle +++ b/build.gradle @@ -8,7 +8,6 @@ buildscript { mavenLocal() google() mavenCentral() - jcenter() maven { url 'https://plugins.gradle.org/m2/' } } dependencies { @@ -31,13 +30,12 @@ allprojects { project -> apply plugin: 'maven-publish' group = 'com.didiglobal.booster' - version = findProperty('version') ?: '1.0.0-SNAPSHOT' + version = findProperty('version').with { it != DEFAULT_VERSION ? it : null } ?: '1.0.0-SNAPSHOT' repositories { mavenLocal() google() mavenCentral() - jcenter() } javadoc { From e916e2aaadc796a60e3f6996a3d3fc28433a0a97 Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Wed, 4 May 2022 21:10:11 +0800 Subject: [PATCH 118/187] Update GitHub workflows --- .github/workflows/build.yml | 27 ------------------------ .github/workflows/dokka.yml | 4 ++-- .github/workflows/publish.yml | 8 ++++--- .github/workflows/test.yml | 39 +++++++++++++++++++++++++++++++++++ 4 files changed, 46 insertions(+), 32 deletions(-) delete mode 100644 .github/workflows/build.yml create mode 100644 .github/workflows/test.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml deleted file mode 100644 index 86f360257..000000000 --- a/.github/workflows/build.yml +++ /dev/null @@ -1,27 +0,0 @@ -name: Run unit tests - -on: - push: - branches: [ '*' ] - pull_request: - branches: [ '*' ] - - repository_dispatch: - types: [test] - -jobs: - run-unit-test: - runs-on: ubuntu-latest - - steps: - - name: Checkout - uses: actions/checkout@v2 - - - name: Setup Java - uses: actions/setup-java@v2 - with: - distribution: 'adopt' - java-version: '8' - - - name: build - run: ./gradlew assemble -S --no-daemon diff --git a/.github/workflows/dokka.yml b/.github/workflows/dokka.yml index 47a63c7ac..0f6215ed9 100644 --- a/.github/workflows/dokka.yml +++ b/.github/workflows/dokka.yml @@ -10,7 +10,7 @@ on: jobs: publish: runs-on: ubuntu-latest - if: github.repository == 'johnsonlee/booster' + if: github.repository_owner == 'johnsonlee' steps: - name: Checkout @@ -20,7 +20,7 @@ jobs: uses: actions/setup-java@v2 with: distribution: 'adopt' - java-version: '8' + java-version: '11' - name: Build API reference run: ./gradlew reference -S --no-daemon diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 4630a6d21..c74c7ba70 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -10,7 +10,7 @@ on: jobs: publish: runs-on: ubuntu-latest - if: github.repository == 'johnsonlee/booster' + if: github.repository_owner == 'johnsonlee' steps: - name: Checkout @@ -20,14 +20,16 @@ jobs: uses: actions/setup-java@v2 with: distribution: 'adopt' - java-version: '8' + java-version: '11' - - name: publish to sonatype + - name: Publish to Sonatype run: | echo "Create GPG private key" echo $GPG_KEY_ARMOR | base64 --decode > $GITHUB_WORKSPACE/secring.gpg ./gradlew publishToSonatype closeAndReleaseStagingRepository -Pversion=${GITHUB_REF/refs\/tags\/v/} -POSSRH_USERNAME=${OSSRH_USERNAME} -POSSRH_PASSWORD=${OSSRH_PASSWORD} -POSSRH_STAGING_PROFILE_ID=${OSSRH_STAGING_PROFILE_ID} -Psigning.keyId=${GPG_KEY_ID} -Psigning.password=${GPG_PASSPHRASE} -Psigning.secretKeyRingFile=${GITHUB_WORKSPACE}/secring.gpg -S --no-daemon env: + JAVA_OPTS: -Xmx8g -XX:MaxPermSize=1g -XX:MetaspaceSize=1g -Dfile.encoding=UTF-8 + JVM_OPTS: -Xmx8g -XX:MaxPermSize=1g -XX:MetaspaceSize=1g -Dfile.encoding=UTF-8 GPG_KEY_ARMOR: ${{ secrets.GPG_KEY_ARMOR }} GPG_KEY_ID: ${{ secrets.GPG_KEY_ID }} GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }} diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 000000000..af9480554 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,39 @@ +name: Run tests + +on: + push: + branches: [ '*' ] + pull_request: + branches: [ '*' ] + + repository_dispatch: + types: [test] + +jobs: + run-unit-test: + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: Setup Java + uses: actions/setup-java@v2 + with: + distribution: 'adopt' + java-version: '11' + + - name: Run tests + run: | + echo "Create GPG private key" + echo $GPG_KEY_ARMOR | base64 --decode > $GITHUB_WORKSPACE/secring.gpg + ./gradlew publishToMavenLocal check -POSSRH_USERNAME=${OSSRH_USERNAME} -POSSRH_PASSWORD=${OSSRH_PASSWORD} -POSSRH_STAGING_PROFILE_ID=${OSSRH_STAGING_PROFILE_ID} -Psigning.keyId=${GPG_KEY_ID} -Psigning.password=${GPG_PASSPHRASE} -Psigning.secretKeyRingFile=${GITHUB_WORKSPACE}/secring.gpg -S --no-daemon + env: + JAVA_OPTS: -Xmx8g -XX:MaxPermSize=1g -XX:MetaspaceSize=1g -Dfile.encoding=UTF-8 + JVM_OPTS: -Xmx8g -XX:MaxPermSize=1g -XX:MetaspaceSize=1g -Dfile.encoding=UTF-8 + GPG_KEY_ARMOR: ${{ secrets.GPG_KEY_ARMOR }} + GPG_KEY_ID: ${{ secrets.GPG_KEY_ID }} + GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }} + OSSRH_PASSWORD: ${{ secrets.OSSRH_PASSWORD }} + OSSRH_USERNAME: ${{ secrets.OSSRH_USERNAME }} + OSSRH_STAGING_PROFILE_ID: ${{ secrets.OSSRH_STAGING_PROFILE_ID }} From 13257ddaf8c52867be92640d6781fd9ab92e3e5d Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Mon, 16 May 2022 19:45:05 +0800 Subject: [PATCH 119/187] Fix [CVE-2020-15250] In JUnit4 from version 4.7 and before 4.13.1, the test rule TemporaryFolder contains a local information disclosure vulnerability --- booster-test/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/booster-test/build.gradle b/booster-test/build.gradle index 1555913ea..d13726c96 100644 --- a/booster-test/build.gradle +++ b/booster-test/build.gradle @@ -2,5 +2,5 @@ apply from: "$rootDir/gradle/booster.gradle" dependencies { implementation project(':booster-transform-util') - api("junit:junit:4.12") + api("junit:junit:4.13.2") } From 41be34a38b344d8b51bc8c3b8264ff6d0516c1f5 Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Tue, 17 May 2022 11:07:22 +0800 Subject: [PATCH 120/187] Refactoring `booster-graph` to support grouping and render options --- .../didiglobal/booster/graph/GraphRenderer.kt | 10 +++- .../didiglobal/booster/graph/GroupedNode.kt | 7 +++ .../didiglobal/booster/graph/dot/DotGraph.kt | 54 +++++++++++++++---- .../booster/graph/json/JsonGraphRender.kt | 20 +++++++ 4 files changed, 80 insertions(+), 11 deletions(-) create mode 100644 booster-graph/src/main/kotlin/com/didiglobal/booster/graph/GroupedNode.kt create mode 100644 booster-graph/src/main/kotlin/com/didiglobal/booster/graph/json/JsonGraphRender.kt diff --git a/booster-graph/src/main/kotlin/com/didiglobal/booster/graph/GraphRenderer.kt b/booster-graph/src/main/kotlin/com/didiglobal/booster/graph/GraphRenderer.kt index 1e7b296b7..775e4c76e 100644 --- a/booster-graph/src/main/kotlin/com/didiglobal/booster/graph/GraphRenderer.kt +++ b/booster-graph/src/main/kotlin/com/didiglobal/booster/graph/GraphRenderer.kt @@ -7,6 +7,14 @@ package com.didiglobal.booster.graph */ interface GraphRenderer { - fun render(graph: Graph, prettify: (N) -> String = Node::toPrettyString): CharSequence + fun render(graph: Graph, options: Options = EmptyOptions, prettify: (N) -> String = Node::toPrettyString): CharSequence + + interface Options { + operator fun get(name: String): String? + } + + object EmptyOptions : Options { + override fun get(name: String): String? = null + } } diff --git a/booster-graph/src/main/kotlin/com/didiglobal/booster/graph/GroupedNode.kt b/booster-graph/src/main/kotlin/com/didiglobal/booster/graph/GroupedNode.kt new file mode 100644 index 000000000..b41415475 --- /dev/null +++ b/booster-graph/src/main/kotlin/com/didiglobal/booster/graph/GroupedNode.kt @@ -0,0 +1,7 @@ +package com.didiglobal.booster.graph + +interface GroupedNode : Node { + + val groupBy: () -> T + +} \ No newline at end of file diff --git a/booster-graph/src/main/kotlin/com/didiglobal/booster/graph/dot/DotGraph.kt b/booster-graph/src/main/kotlin/com/didiglobal/booster/graph/dot/DotGraph.kt index 295068286..74df5ab4f 100644 --- a/booster-graph/src/main/kotlin/com/didiglobal/booster/graph/dot/DotGraph.kt +++ b/booster-graph/src/main/kotlin/com/didiglobal/booster/graph/dot/DotGraph.kt @@ -4,15 +4,13 @@ import com.didiglobal.booster.command.Command import com.didiglobal.booster.command.CommandService import com.didiglobal.booster.graph.Graph import com.didiglobal.booster.graph.GraphRenderer +import com.didiglobal.booster.graph.GroupedNode import com.didiglobal.booster.graph.Node -import com.didiglobal.booster.kotlinx.OS -import com.didiglobal.booster.kotlinx.RGB -import com.didiglobal.booster.kotlinx.execute -import com.didiglobal.booster.kotlinx.stderr -import com.didiglobal.booster.kotlinx.touch +import com.didiglobal.booster.kotlinx.* import java.io.File import java.io.FileNotFoundException import java.io.IOException +import kotlin.reflect.full.memberProperties /** * Represents the graph type @@ -23,13 +21,30 @@ sealed class DotGraph : GraphRenderer { object DIGRAPH : DotGraph() { - override fun render(graph: Graph, prettify: (N) -> String): CharSequence { + override fun render(graph: Graph, options: GraphRenderer.Options, prettify: (N) -> String): CharSequence { return StringBuilder().apply { appendln("digraph \"${graph.title}\" {") appendln(" graph [bgcolor=\"transparent\",pad=\"0.555\"];") appendln(" node [color=\"#00BFC4\",fillcolor=\"#00BFC440\",fontcolor=\"#333333\",fontname=Helvetica,shape=box,style=filled];") appendln(" edge [fontname=Helvetica];") - appendln(" rankdir = TB;") + appendln(" rankdir = ${options["rankdir"] ?: "TB"};") + + graph.nodes.filterIsInstance>().groupBy { + it.groupBy() ?: "" + }.entries.withIndex().forEach { (index, entry) -> + val color = RGB.valueOf(WebSafeColorPalette.random(0x000000, 0xffffff)) + appendln(" subgraph cluster_${index} {") + appendln(" style=\"rounded,dashed\";") + appendln(" label=\"${entry.key}\";") + appendln(" fgcolor=\"${color}\";") + entry.value.map { node -> + @Suppress("UNCHECKED_CAST") (node as N) + }.forEach { node -> + appendln(" \"${prettify(node)}\";") + } + appendln(" }") + } + graph.nodes.joinTo(this, "\n ", " ", "\n") { node -> val color = RGB.valueOf(WebSafeColorPalette.random(0x000000, 0xffffff)) // except white color "\"${prettify(node)}\" [color=\"#$color\",fillcolor=\"#${color}40\"];" @@ -48,13 +63,13 @@ sealed class DotGraph : GraphRenderer { fun visualize( graph: Graph, output: File, - format: String = "png", + options: DotOptions, dot: Command = CommandService.fromPath("dot${OS.executableSuffix}"), prettify: (Node) -> String = Node::toPrettyString ) { - output.touch().writeText(render(graph, prettify).toString()) + output.touch().writeText(render(graph, options, prettify).toString()) dot.location.file.let(::File).takeIf(File::exists)?.let { - "${it.canonicalPath} -T${format} -O ${output.canonicalPath}".also(::println).execute() + "${it.canonicalPath} -T${options.format} -O ${output.canonicalPath}".also(::println).execute() }?.let { p -> p.waitFor() if (p.exitValue() != 0) { @@ -63,4 +78,23 @@ sealed class DotGraph : GraphRenderer { } ?: throw FileNotFoundException(dot.location.file) } + fun visualize( + graph: Graph, + output: File, + format: String = "png", + dot: Command = CommandService.fromPath("dot${OS.executableSuffix}"), + prettify: (Node) -> String = Node::toPrettyString + ) = visualize(graph, output, DotOptions(format), dot, prettify) + + data class DotOptions( + val format: String = "png", + val rankdir: String = "TB" + ) : GraphRenderer.Options { + + private val options = DotOptions::class.memberProperties.associateBy { it.name }.withDefault { null } + + override fun get(name: String): String? = options[name]?.get(this)?.toString() + + } + } diff --git a/booster-graph/src/main/kotlin/com/didiglobal/booster/graph/json/JsonGraphRender.kt b/booster-graph/src/main/kotlin/com/didiglobal/booster/graph/json/JsonGraphRender.kt new file mode 100644 index 000000000..d9407fdb5 --- /dev/null +++ b/booster-graph/src/main/kotlin/com/didiglobal/booster/graph/json/JsonGraphRender.kt @@ -0,0 +1,20 @@ +package com.didiglobal.booster.graph.json + +import com.didiglobal.booster.graph.Graph +import com.didiglobal.booster.graph.GraphRenderer +import com.didiglobal.booster.graph.Node + +object JsonGraphRender : GraphRenderer { + + override fun render(graph: Graph, options: GraphRenderer.Options, prettify: (N) -> String): CharSequence { + return graph.joinToString(",\n", "[\n", "\n]") { + """ + | { + | "from": ${prettify(it.from)}, + | "to": ${prettify(it.to)} + | } + """.trimMargin() + } + } + +} From 815cd6c93ae9760443706d9d5067a0c2fb91e24d Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Wed, 4 May 2022 22:04:52 +0800 Subject: [PATCH 121/187] Fix integration tests --- .../android/gradle/v3_3/V33IntegrationTest.kt | 98 +++++++------------ .../android/gradle/v3_4/V34IntegrationTest.kt | 98 +++++++------------ .../android/gradle/v3_5/V35IntegrationTest.kt | 97 +++++++----------- .../android/gradle/v3_6/V36IntegrationTest.kt | 97 +++++++----------- .../android/gradle/v4_0/V40IntegrationTest.kt | 97 +++++++----------- .../android/gradle/v4_1/V41IntegrationTest.kt | 95 +++++++----------- .../android/gradle/v4_2/V42IntegrationTest.kt | 95 +++++++----------- .../android/gradle/v7_0/V70IntegrationTest.kt | 64 +++++------- 8 files changed, 259 insertions(+), 482 deletions(-) diff --git a/booster-android-gradle-v3_3/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_3/V33IntegrationTest.kt b/booster-android-gradle-v3_3/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_3/V33IntegrationTest.kt index 3303c6949..dd9a8d423 100644 --- a/booster-android-gradle-v3_3/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_3/V33IntegrationTest.kt +++ b/booster-android-gradle-v3_3/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_3/V33IntegrationTest.kt @@ -4,9 +4,9 @@ import com.android.build.gradle.AppExtension import com.android.build.gradle.BaseExtension import com.android.build.gradle.LibraryExtension import com.android.build.gradle.api.BaseVariant -import com.android.builder.core.VariantType import com.android.builder.core.VariantTypeImpl import com.android.sdklib.BuildToolInfo +import com.didiglobal.booster.gradle.AGP import com.didiglobal.booster.gradle.getAndroid import com.didiglobal.booster.kotlinx.search import io.bootstage.testkit.gradle.Case @@ -31,8 +31,6 @@ private const val MIN_SDK_VERSION = 18 private const val TARGET_SDK_VERSION = 26 -private val AGP = V33 - private val ARGS = arrayOf( "assemble", "-S", "-Pbooster_version=${Build.VERSION}", @@ -44,7 +42,7 @@ private val ARGS = arrayOf( ) @Suppress("RemoveCurlyBracesFromTemplate", "FunctionName") -abstract class V33IntegrationTest(val isLib: Boolean) { +abstract class V33IntegrationTest(private val isLib: Boolean) { private val projectDir = TemporaryFolder() @@ -60,157 +58,129 @@ abstract class V33IntegrationTest(val isLib: Boolean) { projectDir.copyFromResource("${if (isLib) "lib" else "app"}.gradle", "build.gradle") projectDir.copyFromResource("buildSrc") projectDir.copyFromResource("src") + assertEquals(3, AGP.revision.major) + assertEquals(3, AGP.revision.minor) } @Test @Case(ScopeFullWithFeaturesTest::class) - fun `test AGPInterface#scopeFullWithFeatures`() { - } + fun `test AGPInterface#scopeFullWithFeatures`() = Unit @Test @Case(ScopeFullLibraryWithFeaturesTest::class) - fun `test AGPInterface#scopeFullLibraryWithFeatures`() { - } + fun `test AGPInterface#scopeFullLibraryWithFeatures`() = Unit @Test @Case(ProjectTest::class) - fun `test AGPInterface#project`() { - } + fun `test AGPInterface#project`() = Unit @Test @Case(JavaCompilerTaskTestUnit::class) - fun `test AGPInterface#javaCompilerTask`() { - } + fun `test AGPInterface#javaCompilerTask`() = Unit @Test @Case(PreBuildTaskTestUnit::class) - fun `test AGPInterface#preBuildTask`() { - } + fun `test AGPInterface#preBuildTask`() = Unit @Test @Case(AssembleTaskTestUnit::class) - fun `test AGPInterface#assembleTask`() { - } + fun `test AGPInterface#assembleTask`() = Unit @Test @Case(MergeAssetsTaskTestUnit::class) - fun `test AGPInterface#mergeAssetsTask`() { - } + fun `test AGPInterface#mergeAssetsTask`() = Unit @Test @Case(MergeResourcesTaskTestUnit::class) - fun `test AGPInterface#mergeResources`() { - } + fun `test AGPInterface#mergeResources`() = Unit @Test @Case(GetTaskNameTestUnit::class) - fun `test AGPInterface#getTaskName(String)`() { - } + fun `test AGPInterface#getTaskName(String)`() = Unit @Test @Case(GetTaskName2TestUnit::class) - fun `test AGPInterface#getTaskName(String, String)`() { - } + fun `test AGPInterface#getTaskName(String, String)`() = Unit @Test @Case(VariantDataTestUnit::class) - fun `test AGPInterface#variantData`() { - } + fun `test AGPInterface#variantData`() = Unit @Test @Case(VariantScopeTestUnit::class) - fun `test AGPInterface#variantScope`() { - } + fun `test AGPInterface#variantScope`() = Unit @Test @Case(GlobalScopeTestCase::class) - fun `test AGPInterface#globalScope`() { - } + fun `test AGPInterface#globalScope`() = Unit @Test @Case(OriginalApplicationIdTestUnit::class) - fun `test AGPInterface#originalApplicationId`() { - } + fun `test AGPInterface#originalApplicationId`() = Unit @Test @Case(HasDynamicFeatureTestUnit::class) - fun `test AGPInterface#hasDynamicFeature`() { - } + fun `test AGPInterface#hasDynamicFeature`() = Unit @Test @Case(RawAndroidResourcesTestUnit::class) - fun `test AGPInterface#rawAndroidResources`() { - } + fun `test AGPInterface#rawAndroidResources`() = Unit @Test @Case(AllArtifactsTestUnit::class) - fun `test AGPInterface#allArtifacts`() { - } + fun `test AGPInterface#allArtifacts`() = Unit @Test @Case(MinSdkVersionTestUnit::class) - fun `test AGPInterface#minSdkVersion`() { - } + fun `test AGPInterface#minSdkVersion`() = Unit @Test @Case(TargetSdkVersionTestUnit::class) - fun `test AGPInterface#targetSdkVersion`() { - } + fun `test AGPInterface#targetSdkVersion`() = Unit @Test @Case(VariantTypeTestUnit::class) - fun `test AGPInterface#variantType`() { - } + fun `test AGPInterface#variantType`() = Unit @Test @Case(AarTestUnit::class) - fun `test AGPInterface#aar`() { - } + fun `test AGPInterface#aar`() = Unit @Test @Case(ApkTestUnit::class) - fun `test AGPInterface#apk`() { - } + fun `test AGPInterface#apk`() = Unit @Test @Case(MergedManifestsTestUnit::class) - fun `test AGPInterface#mergedManifests`() { - } + fun `test AGPInterface#mergedManifests`() = Unit @Test @Case(MergedResourcesTestUnit::class) - fun `test AGPInterface#mergedRes`() { - } + fun `test AGPInterface#mergedRes`() = Unit @Test @Case(MergedAssetsTestUnit::class) - fun `test AGPInterface#mergedAssets`() { - } + fun `test AGPInterface#mergedAssets`() = Unit @Test @Case(ProcessedResTestUnit::class) - fun `test AGPInterface#processedRes`() { - } + fun `test AGPInterface#processedRes`() = Unit @Test @Case(SymbolListTestUnit::class) - fun `test AGPInterface#symbolList`() { - } + fun `test AGPInterface#symbolList`() = Unit @Test @Case(SymbolListWithPackageNameTestUnit::class) - fun `test AGPInterface#symbolListWithPackageName`() { - } + fun `test AGPInterface#symbolListWithPackageName`() = Unit @Test @Case(AllClassesTestUnit::class) - fun `test AGPInterface#allClasses`() { - } + fun `test AGPInterface#allClasses`() = Unit @Test @Case(BuildToolsTestUnit::class) - fun `test AGPInterface#buildTools`() { - } + fun `test AGPInterface#buildTools`() = Unit } diff --git a/booster-android-gradle-v3_4/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_4/V34IntegrationTest.kt b/booster-android-gradle-v3_4/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_4/V34IntegrationTest.kt index 7155d85dc..9c8fe04e1 100644 --- a/booster-android-gradle-v3_4/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_4/V34IntegrationTest.kt +++ b/booster-android-gradle-v3_4/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_4/V34IntegrationTest.kt @@ -4,9 +4,9 @@ import com.android.build.gradle.AppExtension import com.android.build.gradle.BaseExtension import com.android.build.gradle.LibraryExtension import com.android.build.gradle.api.BaseVariant -import com.android.builder.core.VariantType import com.android.builder.core.VariantTypeImpl import com.android.sdklib.BuildToolInfo +import com.didiglobal.booster.gradle.AGP import com.didiglobal.booster.gradle.getAndroid import com.didiglobal.booster.kotlinx.search import io.bootstage.testkit.gradle.Case @@ -31,8 +31,6 @@ private const val MIN_SDK_VERSION = 18 private const val TARGET_SDK_VERSION = 26 -private val AGP = V34 - private val ARGS = arrayOf( "assemble", "-S", "-Pbooster_version=${Build.VERSION}", @@ -44,7 +42,7 @@ private val ARGS = arrayOf( ) @Suppress("RemoveCurlyBracesFromTemplate", "FunctionName") -abstract class V34IntegrationTest(val isLib: Boolean) { +abstract class V34IntegrationTest(private val isLib: Boolean) { private val projectDir = TemporaryFolder() @@ -60,157 +58,129 @@ abstract class V34IntegrationTest(val isLib: Boolean) { projectDir.copyFromResource("${if (isLib) "lib" else "app"}.gradle", "build.gradle") projectDir.copyFromResource("buildSrc") projectDir.copyFromResource("src") + assertEquals(3, AGP.revision.major) + assertEquals(4, AGP.revision.minor) } @Test @Case(ScopeFullWithFeaturesTest::class) - fun `test AGPInterface#scopeFullWithFeatures`() { - } + fun `test AGPInterface#scopeFullWithFeatures`() = Unit @Test @Case(ScopeFullLibraryWithFeaturesTest::class) - fun `test AGPInterface#scopeFullLibraryWithFeatures`() { - } + fun `test AGPInterface#scopeFullLibraryWithFeatures`() = Unit @Test @Case(ProjectTest::class) - fun `test AGPInterface#project`() { - } + fun `test AGPInterface#project`() = Unit @Test @Case(JavaCompilerTaskTestUnit::class) - fun `test AGPInterface#javaCompilerTask`() { - } + fun `test AGPInterface#javaCompilerTask`() = Unit @Test @Case(PreBuildTaskTestUnit::class) - fun `test AGPInterface#preBuildTask`() { - } + fun `test AGPInterface#preBuildTask`() = Unit @Test @Case(AssembleTaskTestUnit::class) - fun `test AGPInterface#assembleTask`() { - } + fun `test AGPInterface#assembleTask`() = Unit @Test @Case(MergeAssetsTaskTestUnit::class) - fun `test AGPInterface#mergeAssetsTask`() { - } + fun `test AGPInterface#mergeAssetsTask`() = Unit @Test @Case(MergeResourcesTaskTestUnit::class) - fun `test AGPInterface#mergeResources`() { - } + fun `test AGPInterface#mergeResources`() = Unit @Test @Case(GetTaskNameTestUnit::class) - fun `test AGPInterface#getTaskName(String)`() { - } + fun `test AGPInterface#getTaskName(String)`() = Unit @Test @Case(GetTaskName2TestUnit::class) - fun `test AGPInterface#getTaskName(String, String)`() { - } + fun `test AGPInterface#getTaskName(String, String)`() = Unit @Test @Case(VariantDataTestUnit::class) - fun `test AGPInterface#variantData`() { - } + fun `test AGPInterface#variantData`() = Unit @Test @Case(VariantScopeTestUnit::class) - fun `test AGPInterface#variantScope`() { - } + fun `test AGPInterface#variantScope`() = Unit @Test @Case(GlobalScopeTestCase::class) - fun `test AGPInterface#globalScope`() { - } + fun `test AGPInterface#globalScope`() = Unit @Test @Case(OriginalApplicationIdTestUnit::class) - fun `test AGPInterface#originalApplicationId`() { - } + fun `test AGPInterface#originalApplicationId`() = Unit @Test @Case(HasDynamicFeatureTestUnit::class) - fun `test AGPInterface#hasDynamicFeature`() { - } + fun `test AGPInterface#hasDynamicFeature`() = Unit @Test @Case(RawAndroidResourcesTestUnit::class) - fun `test AGPInterface#rawAndroidResources`() { - } + fun `test AGPInterface#rawAndroidResources`() = Unit @Test @Case(AllArtifactsTestUnit::class) - fun `test AGPInterface#allArtifacts`() { - } + fun `test AGPInterface#allArtifacts`() = Unit @Test @Case(MinSdkVersionTestUnit::class) - fun `test AGPInterface#minSdkVersion`() { - } + fun `test AGPInterface#minSdkVersion`() = Unit @Test @Case(TargetSdkVersionTestUnit::class) - fun `test AGPInterface#targetSdkVersion`() { - } + fun `test AGPInterface#targetSdkVersion`() = Unit @Test @Case(VariantTypeTestUnit::class) - fun `test AGPInterface#variantType`() { - } + fun `test AGPInterface#variantType`() = Unit @Test @Case(AarTestUnit::class) - fun `test AGPInterface#aar`() { - } + fun `test AGPInterface#aar`() = Unit @Test @Case(ApkTestUnit::class) - fun `test AGPInterface#apk`() { - } + fun `test AGPInterface#apk`() = Unit @Test @Case(MergedManifestsTestUnit::class) - fun `test AGPInterface#mergedManifests`() { - } + fun `test AGPInterface#mergedManifests`() = Unit @Test @Case(MergedResourcesTestUnit::class) - fun `test AGPInterface#mergedRes`() { - } + fun `test AGPInterface#mergedRes`() = Unit @Test @Case(MergedAssetsTestUnit::class) - fun `test AGPInterface#mergedAssets`() { - } + fun `test AGPInterface#mergedAssets`() = Unit @Test @Case(ProcessedResTestUnit::class) - fun `test AGPInterface#processedRes`() { - } + fun `test AGPInterface#processedRes`() = Unit @Test @Case(SymbolListTestUnit::class) - fun `test AGPInterface#symbolList`() { - } + fun `test AGPInterface#symbolList`() = Unit @Test @Case(SymbolListWithPackageNameTestUnit::class) - fun `test AGPInterface#symbolListWithPackageName`() { - } + fun `test AGPInterface#symbolListWithPackageName`() = Unit @Test @Case(AllClassesTestUnit::class) - fun `test AGPInterface#allClasses`() { - } + fun `test AGPInterface#allClasses`() = Unit @Test @Case(BuildToolsTestUnit::class) - fun `test AGPInterface#buildTools`() { - } + fun `test AGPInterface#buildTools`() = Unit } diff --git a/booster-android-gradle-v3_5/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_5/V35IntegrationTest.kt b/booster-android-gradle-v3_5/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_5/V35IntegrationTest.kt index c41f0834f..48feb1364 100644 --- a/booster-android-gradle-v3_5/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_5/V35IntegrationTest.kt +++ b/booster-android-gradle-v3_5/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_5/V35IntegrationTest.kt @@ -6,6 +6,7 @@ import com.android.build.gradle.LibraryExtension import com.android.build.gradle.api.BaseVariant import com.android.builder.core.VariantTypeImpl import com.android.sdklib.BuildToolInfo +import com.didiglobal.booster.gradle.AGP import com.didiglobal.booster.gradle.getAndroid import com.didiglobal.booster.kotlinx.search import io.bootstage.testkit.gradle.Case @@ -30,8 +31,6 @@ private const val MIN_SDK_VERSION = 18 private const val TARGET_SDK_VERSION = 26 -private val AGP = V35 - private val ARGS = arrayOf( "assemble", "-S", "-Pbooster_version=${Build.VERSION}", @@ -43,7 +42,7 @@ private val ARGS = arrayOf( ) @Suppress("RemoveCurlyBracesFromTemplate", "FunctionName") -abstract class V35IntegrationTest(val isLib: Boolean) { +abstract class V35IntegrationTest(private val isLib: Boolean) { private val projectDir = TemporaryFolder() @@ -59,157 +58,129 @@ abstract class V35IntegrationTest(val isLib: Boolean) { projectDir.copyFromResource("${if (isLib) "lib" else "app"}.gradle", "build.gradle") projectDir.copyFromResource("buildSrc") projectDir.copyFromResource("src") + assertEquals(3, AGP.revision.major) + assertEquals(5, AGP.revision.minor) } @Test @Case(ScopeFullWithFeaturesTest::class) - fun `test AGPInterface#scopeFullWithFeatures`() { - } + fun `test AGPInterface#scopeFullWithFeatures`() = Unit @Test @Case(ScopeFullLibraryWithFeaturesTest::class) - fun `test AGPInterface#scopeFullLibraryWithFeatures`() { - } + fun `test AGPInterface#scopeFullLibraryWithFeatures`() = Unit @Test @Case(ProjectTest::class) - fun `test AGPInterface#project`() { - } + fun `test AGPInterface#project`() = Unit @Test @Case(JavaCompilerTaskTestUnit::class) - fun `test AGPInterface#javaCompilerTask`() { - } + fun `test AGPInterface#javaCompilerTask`() = Unit @Test @Case(PreBuildTaskTestUnit::class) - fun `test AGPInterface#preBuildTask`() { - } + fun `test AGPInterface#preBuildTask`() = Unit @Test @Case(AssembleTaskTestUnit::class) - fun `test AGPInterface#assembleTask`() { - } + fun `test AGPInterface#assembleTask`() = Unit @Test @Case(MergeAssetsTaskTestUnit::class) - fun `test AGPInterface#mergeAssetsTask`() { - } + fun `test AGPInterface#mergeAssetsTask`() = Unit @Test @Case(MergeResourcesTaskTestUnit::class) - fun `test AGPInterface#mergeResources`() { - } + fun `test AGPInterface#mergeResources`() = Unit @Test @Case(GetTaskNameTestUnit::class) - fun `test AGPInterface#getTaskName(String)`() { - } + fun `test AGPInterface#getTaskName(String)`() = Unit @Test @Case(GetTaskName2TestUnit::class) - fun `test AGPInterface#getTaskName(String, String)`() { - } + fun `test AGPInterface#getTaskName(String, String)`() = Unit @Test @Case(VariantDataTestUnit::class) - fun `test AGPInterface#variantData`() { - } + fun `test AGPInterface#variantData`() = Unit @Test @Case(VariantScopeTestUnit::class) - fun `test AGPInterface#variantScope`() { - } + fun `test AGPInterface#variantScope`() = Unit @Test @Case(GlobalScopeTestCase::class) - fun `test AGPInterface#globalScope`() { - } + fun `test AGPInterface#globalScope`() = Unit @Test @Case(OriginalApplicationIdTestUnit::class) - fun `test AGPInterface#originalApplicationId`() { - } + fun `test AGPInterface#originalApplicationId`() = Unit @Test @Case(HasDynamicFeatureTestUnit::class) - fun `test AGPInterface#hasDynamicFeature`() { - } + fun `test AGPInterface#hasDynamicFeature`() = Unit @Test @Case(RawAndroidResourcesTestUnit::class) - fun `test AGPInterface#rawAndroidResources`() { - } + fun `test AGPInterface#rawAndroidResources`() = Unit @Test @Case(AllArtifactsTestUnit::class) - fun `test AGPInterface#allArtifacts`() { - } + fun `test AGPInterface#allArtifacts`() = Unit @Test @Case(MinSdkVersionTestUnit::class) - fun `test AGPInterface#minSdkVersion`() { - } + fun `test AGPInterface#minSdkVersion`() = Unit @Test @Case(TargetSdkVersionTestUnit::class) - fun `test AGPInterface#targetSdkVersion`() { - } + fun `test AGPInterface#targetSdkVersion`() = Unit @Test @Case(VariantTypeTestUnit::class) - fun `test AGPInterface#variantType`() { - } + fun `test AGPInterface#variantType`() = Unit @Test @Case(AarTestUnit::class) - fun `test AGPInterface#aar`() { - } + fun `test AGPInterface#aar`() = Unit @Test @Case(ApkTestUnit::class) - fun `test AGPInterface#apk`() { - } + fun `test AGPInterface#apk`() = Unit @Test @Case(MergedManifestsTestUnit::class) - fun `test AGPInterface#mergedManifests`() { - } + fun `test AGPInterface#mergedManifests`() = Unit @Test @Case(MergedResourcesTestUnit::class) - fun `test AGPInterface#mergedRes`() { - } + fun `test AGPInterface#mergedRes`() = Unit @Test @Case(MergedAssetsTestUnit::class) - fun `test AGPInterface#mergedAssets`() { - } + fun `test AGPInterface#mergedAssets`() = Unit @Test @Case(ProcessedResTestUnit::class) - fun `test AGPInterface#processedRes`() { - } + fun `test AGPInterface#processedRes`() = Unit @Test @Case(SymbolListTestUnit::class) - fun `test AGPInterface#symbolList`() { - } + fun `test AGPInterface#symbolList`() = Unit @Test @Case(SymbolListWithPackageNameTestUnit::class) - fun `test AGPInterface#symbolListWithPackageName`() { - } + fun `test AGPInterface#symbolListWithPackageName`() = Unit @Test @Case(AllClassesTestUnit::class) - fun `test AGPInterface#allClasses`() { - } + fun `test AGPInterface#allClasses`() = Unit @Test @Case(BuildToolsTestUnit::class) - fun `test AGPInterface#buildTools`() { - } + fun `test AGPInterface#buildTools`() = Unit } diff --git a/booster-android-gradle-v3_6/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_6/V36IntegrationTest.kt b/booster-android-gradle-v3_6/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_6/V36IntegrationTest.kt index 48473caef..8e0b80229 100644 --- a/booster-android-gradle-v3_6/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_6/V36IntegrationTest.kt +++ b/booster-android-gradle-v3_6/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_6/V36IntegrationTest.kt @@ -6,6 +6,7 @@ import com.android.build.gradle.LibraryExtension import com.android.build.gradle.api.BaseVariant import com.android.builder.core.VariantTypeImpl import com.android.sdklib.BuildToolInfo +import com.didiglobal.booster.gradle.AGP import com.didiglobal.booster.gradle.getAndroid import com.didiglobal.booster.kotlinx.search import io.bootstage.testkit.gradle.Case @@ -30,8 +31,6 @@ private const val MIN_SDK_VERSION = 18 private const val TARGET_SDK_VERSION = 26 -private val AGP = V36 - private val ARGS = arrayOf( "assemble", "-S", "-Pbooster_version=${Build.VERSION}", @@ -43,7 +42,7 @@ private val ARGS = arrayOf( ) @Suppress("RemoveCurlyBracesFromTemplate", "FunctionName") -abstract class V36IntegrationTest(val isLib: Boolean) { +abstract class V36IntegrationTest(private val isLib: Boolean) { private val projectDir = TemporaryFolder() @@ -59,157 +58,129 @@ abstract class V36IntegrationTest(val isLib: Boolean) { projectDir.copyFromResource("${if (isLib) "lib" else "app"}.gradle", "build.gradle") projectDir.copyFromResource("buildSrc") projectDir.copyFromResource("src") + assertEquals(3, AGP.revision.major) + assertEquals(6, AGP.revision.minor) } @Test @Case(ScopeFullWithFeaturesTest::class) - fun `test AGPInterface#scopeFullWithFeatures`() { - } + fun `test AGPInterface#scopeFullWithFeatures`() = Unit @Test @Case(ScopeFullLibraryWithFeaturesTest::class) - fun `test AGPInterface#scopeFullLibraryWithFeatures`() { - } + fun `test AGPInterface#scopeFullLibraryWithFeatures`() = Unit @Test @Case(ProjectTest::class) - fun `test AGPInterface#project`() { - } + fun `test AGPInterface#project`() = Unit @Test @Case(JavaCompilerTaskTestUnit::class) - fun `test AGPInterface#javaCompilerTask`() { - } + fun `test AGPInterface#javaCompilerTask`() = Unit @Test @Case(PreBuildTaskTestUnit::class) - fun `test AGPInterface#preBuildTask`() { - } + fun `test AGPInterface#preBuildTask`() = Unit @Test @Case(AssembleTaskTestUnit::class) - fun `test AGPInterface#assembleTask`() { - } + fun `test AGPInterface#assembleTask`() = Unit @Test @Case(MergeAssetsTaskTestUnit::class) - fun `test AGPInterface#mergeAssetsTask`() { - } + fun `test AGPInterface#mergeAssetsTask`() = Unit @Test @Case(MergeResourcesTaskTestUnit::class) - fun `test AGPInterface#mergeResources`() { - } + fun `test AGPInterface#mergeResources`() = Unit @Test @Case(GetTaskNameTestUnit::class) - fun `test AGPInterface#getTaskName(String)`() { - } + fun `test AGPInterface#getTaskName(String)`() = Unit @Test @Case(GetTaskName2TestUnit::class) - fun `test AGPInterface#getTaskName(String, String)`() { - } + fun `test AGPInterface#getTaskName(String, String)`() = Unit @Test @Case(VariantDataTestUnit::class) - fun `test AGPInterface#variantData`() { - } + fun `test AGPInterface#variantData`() = Unit @Test @Case(VariantScopeTestUnit::class) - fun `test AGPInterface#variantScope`() { - } + fun `test AGPInterface#variantScope`() = Unit @Test @Case(GlobalScopeTestCase::class) - fun `test AGPInterface#globalScope`() { - } + fun `test AGPInterface#globalScope`() = Unit @Test @Case(OriginalApplicationIdTestUnit::class) - fun `test AGPInterface#originalApplicationId`() { - } + fun `test AGPInterface#originalApplicationId`() = Unit @Test @Case(HasDynamicFeatureTestUnit::class) - fun `test AGPInterface#hasDynamicFeature`() { - } + fun `test AGPInterface#hasDynamicFeature`() = Unit @Test @Case(RawAndroidResourcesTestUnit::class) - fun `test AGPInterface#rawAndroidResources`() { - } + fun `test AGPInterface#rawAndroidResources`() = Unit @Test @Case(AllArtifactsTestUnit::class) - fun `test AGPInterface#allArtifacts`() { - } + fun `test AGPInterface#allArtifacts`() = Unit @Test @Case(MinSdkVersionTestUnit::class) - fun `test AGPInterface#minSdkVersion`() { - } + fun `test AGPInterface#minSdkVersion`() = Unit @Test @Case(TargetSdkVersionTestUnit::class) - fun `test AGPInterface#targetSdkVersion`() { - } + fun `test AGPInterface#targetSdkVersion`() = Unit @Test @Case(VariantTypeTestUnit::class) - fun `test AGPInterface#variantType`() { - } + fun `test AGPInterface#variantType`() = Unit @Test @Case(AarTestUnit::class) - fun `test AGPInterface#aar`() { - } + fun `test AGPInterface#aar`() = Unit @Test @Case(ApkTestUnit::class) - fun `test AGPInterface#apk`() { - } + fun `test AGPInterface#apk`() = Unit @Test @Case(MergedManifestsTestUnit::class) - fun `test AGPInterface#mergedManifests`() { - } + fun `test AGPInterface#mergedManifests`() = Unit @Test @Case(MergedResourcesTestUnit::class) - fun `test AGPInterface#mergedRes`() { - } + fun `test AGPInterface#mergedRes`() = Unit @Test @Case(MergedAssetsTestUnit::class) - fun `test AGPInterface#mergedAssets`() { - } + fun `test AGPInterface#mergedAssets`() = Unit @Test @Case(ProcessedResTestUnit::class) - fun `test AGPInterface#processedRes`() { - } + fun `test AGPInterface#processedRes`() = Unit @Test @Case(SymbolListTestUnit::class) - fun `test AGPInterface#symbolList`() { - } + fun `test AGPInterface#symbolList`() = Unit @Test @Case(SymbolListWithPackageNameTestUnit::class) - fun `test AGPInterface#symbolListWithPackageName`() { - } + fun `test AGPInterface#symbolListWithPackageName`() = Unit @Test @Case(AllClassesTestUnit::class) - fun `test AGPInterface#allClasses`() { - } + fun `test AGPInterface#allClasses`() = Unit @Test @Case(BuildToolsTestUnit::class) - fun `test AGPInterface#buildTools`() { - } + fun `test AGPInterface#buildTools`() = Unit } diff --git a/booster-android-gradle-v4_0/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v4_0/V40IntegrationTest.kt b/booster-android-gradle-v4_0/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v4_0/V40IntegrationTest.kt index 5e65ce250..3b46da42b 100644 --- a/booster-android-gradle-v4_0/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v4_0/V40IntegrationTest.kt +++ b/booster-android-gradle-v4_0/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v4_0/V40IntegrationTest.kt @@ -6,6 +6,7 @@ import com.android.build.gradle.LibraryExtension import com.android.build.gradle.api.BaseVariant import com.android.builder.core.VariantTypeImpl import com.android.sdklib.BuildToolInfo +import com.didiglobal.booster.gradle.AGP import com.didiglobal.booster.gradle.getAndroid import com.didiglobal.booster.kotlinx.search import io.bootstage.testkit.gradle.Case @@ -30,8 +31,6 @@ private const val MIN_SDK_VERSION = 18 private const val TARGET_SDK_VERSION = 26 -private val AGP = V40 - private val ARGS = arrayOf( "assemble", "-S", "-Pbooster_version=${Build.VERSION}", @@ -43,7 +42,7 @@ private val ARGS = arrayOf( ) @Suppress("RemoveCurlyBracesFromTemplate", "FunctionName") -abstract class V40IntegrationTest(val isLib: Boolean) { +abstract class V40IntegrationTest(private val isLib: Boolean) { private val projectDir = TemporaryFolder() @@ -59,157 +58,129 @@ abstract class V40IntegrationTest(val isLib: Boolean) { projectDir.copyFromResource("${if (isLib) "lib" else "app"}.gradle", "build.gradle") projectDir.copyFromResource("buildSrc") projectDir.copyFromResource("src") + assertEquals(4, AGP.revision.major) + assertEquals(0, AGP.revision.minor) } @Test @Case(ScopeFullWithFeaturesTest::class) - fun `test AGPInterface#scopeFullWithFeatures`() { - } + fun `test AGPInterface#scopeFullWithFeatures`() = Unit @Test @Case(ScopeFullLibraryWithFeaturesTest::class) - fun `test AGPInterface#scopeFullLibraryWithFeatures`() { - } + fun `test AGPInterface#scopeFullLibraryWithFeatures`() = Unit @Test @Case(ProjectTest::class) - fun `test AGPInterface#project`() { - } + fun `test AGPInterface#project`() = Unit @Test @Case(JavaCompilerTaskTestUnit::class) - fun `test AGPInterface#javaCompilerTask`() { - } + fun `test AGPInterface#javaCompilerTask`() = Unit @Test @Case(PreBuildTaskTestUnit::class) - fun `test AGPInterface#preBuildTask`() { - } + fun `test AGPInterface#preBuildTask`() = Unit @Test @Case(AssembleTaskTestUnit::class) - fun `test AGPInterface#assembleTask`() { - } + fun `test AGPInterface#assembleTask`() = Unit @Test @Case(MergeAssetsTaskTestUnit::class) - fun `test AGPInterface#mergeAssetsTask`() { - } + fun `test AGPInterface#mergeAssetsTask`() = Unit @Test @Case(MergeResourcesTaskTestUnit::class) - fun `test AGPInterface#mergeResources`() { - } + fun `test AGPInterface#mergeResources`() = Unit @Test @Case(GetTaskNameTestUnit::class) - fun `test AGPInterface#getTaskName(String)`() { - } + fun `test AGPInterface#getTaskName(String)`() = Unit @Test @Case(GetTaskName2TestUnit::class) - fun `test AGPInterface#getTaskName(String, String)`() { - } + fun `test AGPInterface#getTaskName(String, String)`() = Unit @Test @Case(VariantDataTestUnit::class) - fun `test AGPInterface#variantData`() { - } + fun `test AGPInterface#variantData`() = Unit @Test @Case(VariantScopeTestUnit::class) - fun `test AGPInterface#variantScope`() { - } + fun `test AGPInterface#variantScope`() = Unit @Test @Case(GlobalScopeTestCase::class) - fun `test AGPInterface#globalScope`() { - } + fun `test AGPInterface#globalScope`() = Unit @Test @Case(OriginalApplicationIdTestUnit::class) - fun `test AGPInterface#originalApplicationId`() { - } + fun `test AGPInterface#originalApplicationId`() = Unit @Test @Case(HasDynamicFeatureTestUnit::class) - fun `test AGPInterface#hasDynamicFeature`() { - } + fun `test AGPInterface#hasDynamicFeature`() = Unit @Test @Case(RawAndroidResourcesTestUnit::class) - fun `test AGPInterface#rawAndroidResources`() { - } + fun `test AGPInterface#rawAndroidResources`() = Unit @Test @Case(AllArtifactsTestUnit::class) - fun `test AGPInterface#allArtifacts`() { - } + fun `test AGPInterface#allArtifacts`() = Unit @Test @Case(MinSdkVersionTestUnit::class) - fun `test AGPInterface#minSdkVersion`() { - } + fun `test AGPInterface#minSdkVersion`() = Unit @Test @Case(TargetSdkVersionTestUnit::class) - fun `test AGPInterface#targetSdkVersion`() { - } + fun `test AGPInterface#targetSdkVersion`() = Unit @Test @Case(VariantTypeTestUnit::class) - fun `test AGPInterface#variantType`() { - } + fun `test AGPInterface#variantType`() = Unit @Test @Case(AarTestUnit::class) - fun `test AGPInterface#aar`() { - } + fun `test AGPInterface#aar`() = Unit @Test @Case(ApkTestUnit::class) - fun `test AGPInterface#apk`() { - } + fun `test AGPInterface#apk`() = Unit @Test @Case(MergedManifestsTestUnit::class) - fun `test AGPInterface#mergedManifests`() { - } + fun `test AGPInterface#mergedManifests`() = Unit @Test @Case(MergedResourcesTestUnit::class) - fun `test AGPInterface#mergedRes`() { - } + fun `test AGPInterface#mergedRes`() = Unit @Test @Case(MergedAssetsTestUnit::class) - fun `test AGPInterface#mergedAssets`() { - } + fun `test AGPInterface#mergedAssets`() = Unit @Test @Case(ProcessedResTestUnit::class) - fun `test AGPInterface#processedRes`() { - } + fun `test AGPInterface#processedRes`() = Unit @Test @Case(SymbolListTestUnit::class) - fun `test AGPInterface#symbolList`() { - } + fun `test AGPInterface#symbolList`() = Unit @Test @Case(SymbolListWithPackageNameTestUnit::class) - fun `test AGPInterface#symbolListWithPackageName`() { - } + fun `test AGPInterface#symbolListWithPackageName`() = Unit @Test @Case(AllClassesTestUnit::class) - fun `test AGPInterface#allClasses`() { - } + fun `test AGPInterface#allClasses`() = Unit @Test @Case(BuildToolsTestUnit::class) - fun `test AGPInterface#buildTools`() { - } + fun `test AGPInterface#buildTools`() = Unit } diff --git a/booster-android-gradle-v4_1/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v4_1/V41IntegrationTest.kt b/booster-android-gradle-v4_1/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v4_1/V41IntegrationTest.kt index 2f8efeeee..4fe1ec4cc 100644 --- a/booster-android-gradle-v4_1/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v4_1/V41IntegrationTest.kt +++ b/booster-android-gradle-v4_1/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v4_1/V41IntegrationTest.kt @@ -6,6 +6,7 @@ import com.android.build.gradle.LibraryExtension import com.android.build.gradle.api.BaseVariant import com.android.builder.core.VariantTypeImpl import com.android.sdklib.BuildToolInfo +import com.didiglobal.booster.gradle.AGP import com.didiglobal.booster.gradle.getAndroid import com.didiglobal.booster.kotlinx.search import io.bootstage.testkit.gradle.Case @@ -30,8 +31,6 @@ private const val MIN_SDK_VERSION = 18 private const val TARGET_SDK_VERSION = 26 -private val AGP = V41 - private val ARGS = arrayOf( "assemble", "-S", "-Pbooster_version=${Build.VERSION}", @@ -59,157 +58,129 @@ abstract class V41IntegrationTest(val isLib: Boolean) { projectDir.copyFromResource("${if (isLib) "lib" else "app"}.gradle", "build.gradle") projectDir.copyFromResource("buildSrc") projectDir.copyFromResource("src") + assertEquals(4, AGP.revision.major) + assertEquals(1, AGP.revision.minor) } @Test @Case(ScopeFullWithFeaturesTest::class) - fun `test AGPInterface#scopeFullWithFeatures`() { - } + fun `test AGPInterface#scopeFullWithFeatures`() = Unit @Test @Case(ScopeFullLibraryWithFeaturesTest::class) - fun `test AGPInterface#scopeFullLibraryWithFeatures`() { - } + fun `test AGPInterface#scopeFullLibraryWithFeatures`() = Unit @Test @Case(ProjectTest::class) - fun `test AGPInterface#project`() { - } + fun `test AGPInterface#project`() = Unit @Test @Case(JavaCompilerTaskTestUnit::class) - fun `test AGPInterface#javaCompilerTask`() { - } + fun `test AGPInterface#javaCompilerTask`() = Unit @Test @Case(PreBuildTaskTestUnit::class) - fun `test AGPInterface#preBuildTask`() { - } + fun `test AGPInterface#preBuildTask`() = Unit @Test @Case(AssembleTaskTestUnit::class) - fun `test AGPInterface#assembleTask`() { - } + fun `test AGPInterface#assembleTask`() = Unit @Test @Case(MergeAssetsTaskTestUnit::class) - fun `test AGPInterface#mergeAssetsTask`() { - } + fun `test AGPInterface#mergeAssetsTask`() = Unit @Test @Case(MergeResourcesTaskTestUnit::class) - fun `test AGPInterface#mergeResources`() { - } + fun `test AGPInterface#mergeResources`() = Unit @Test @Case(GetTaskNameTestUnit::class) - fun `test AGPInterface#getTaskName(String)`() { - } + fun `test AGPInterface#getTaskName(String)`() = Unit @Test @Case(GetTaskName2TestUnit::class) - fun `test AGPInterface#getTaskName(String, String)`() { - } + fun `test AGPInterface#getTaskName(String, String)`() = Unit @Test @Case(VariantDataTestUnit::class) - fun `test AGPInterface#variantData`() { - } + fun `test AGPInterface#variantData`() = Unit @Test @Case(VariantScopeTestUnit::class) - fun `test AGPInterface#variantScope`() { - } + fun `test AGPInterface#variantScope`() = Unit @Test @Case(GlobalScopeTestCase::class) - fun `test AGPInterface#globalScope`() { - } + fun `test AGPInterface#globalScope`() = Unit @Test @Case(OriginalApplicationIdTestUnit::class) - fun `test AGPInterface#originalApplicationId`() { - } + fun `test AGPInterface#originalApplicationId`() = Unit @Test @Case(HasDynamicFeatureTestUnit::class) - fun `test AGPInterface#hasDynamicFeature`() { - } + fun `test AGPInterface#hasDynamicFeature`() = Unit @Test @Case(RawAndroidResourcesTestUnit::class) - fun `test AGPInterface#rawAndroidResources`() { - } + fun `test AGPInterface#rawAndroidResources`() = Unit @Test @Case(AllArtifactsTestUnit::class) - fun `test AGPInterface#allArtifacts`() { - } + fun `test AGPInterface#allArtifacts`() = Unit @Test @Case(MinSdkVersionTestUnit::class) - fun `test AGPInterface#minSdkVersion`() { - } + fun `test AGPInterface#minSdkVersion`() = Unit @Test @Case(TargetSdkVersionTestUnit::class) - fun `test AGPInterface#targetSdkVersion`() { - } + fun `test AGPInterface#targetSdkVersion`() = Unit @Test @Case(VariantTypeTestUnit::class) - fun `test AGPInterface#variantType`() { - } + fun `test AGPInterface#variantType`() = Unit @Test @Case(AarTestUnit::class) - fun `test AGPInterface#aar`() { - } + fun `test AGPInterface#aar`() = Unit @Test @Case(ApkTestUnit::class) - fun `test AGPInterface#apk`() { - } + fun `test AGPInterface#apk`() = Unit @Test @Case(MergedManifestsTestUnit::class) - fun `test AGPInterface#mergedManifests`() { - } + fun `test AGPInterface#mergedManifests`() = Unit @Test @Case(MergedResourcesTestUnit::class) - fun `test AGPInterface#mergedRes`() { - } + fun `test AGPInterface#mergedRes`() = Unit @Test @Case(MergedAssetsTestUnit::class) - fun `test AGPInterface#mergedAssets`() { - } + fun `test AGPInterface#mergedAssets`() = Unit @Test @Case(ProcessedResTestUnit::class) - fun `test AGPInterface#processedRes`() { - } + fun `test AGPInterface#processedRes`() = Unit @Test @Case(SymbolListTestUnit::class) - fun `test AGPInterface#symbolList`() { - } + fun `test AGPInterface#symbolList`() = Unit @Test @Case(SymbolListWithPackageNameTestUnit::class) - fun `test AGPInterface#symbolListWithPackageName`() { - } + fun `test AGPInterface#symbolListWithPackageName`() = Unit @Test @Case(AllClassesTestUnit::class) - fun `test AGPInterface#allClasses`() { - } + fun `test AGPInterface#allClasses`() = Unit @Test @Case(BuildToolsTestUnit::class) - fun `test AGPInterface#buildTools`() { - } + fun `test AGPInterface#buildTools`() = Unit } diff --git a/booster-android-gradle-v4_2/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42IntegrationTest.kt b/booster-android-gradle-v4_2/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42IntegrationTest.kt index 6042f297f..650f8fd85 100644 --- a/booster-android-gradle-v4_2/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42IntegrationTest.kt +++ b/booster-android-gradle-v4_2/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42IntegrationTest.kt @@ -6,6 +6,7 @@ import com.android.build.gradle.LibraryExtension import com.android.build.gradle.api.BaseVariant import com.android.builder.core.VariantTypeImpl import com.android.sdklib.BuildToolInfo +import com.didiglobal.booster.gradle.AGP import com.didiglobal.booster.gradle.getAndroid import com.didiglobal.booster.kotlinx.search import io.bootstage.testkit.gradle.Case @@ -30,8 +31,6 @@ private const val MIN_SDK_VERSION = 18 private const val TARGET_SDK_VERSION = 26 -private val AGP = V42 - private val ARGS = arrayOf( "assemble", "-S", "-Pbooster_version=${Build.VERSION}", @@ -59,157 +58,129 @@ abstract class V42IntegrationTest(val isLib: Boolean) { projectDir.copyFromResource("${if (isLib) "lib" else "app"}.gradle", "build.gradle") projectDir.copyFromResource("buildSrc") projectDir.copyFromResource("src") + assertEquals(4, AGP.revision.major) + assertEquals(2, AGP.revision.minor) } @Test @Case(ScopeFullWithFeaturesTest::class) - fun `test AGPInterface#scopeFullWithFeatures`() { - } + fun `test AGPInterface#scopeFullWithFeatures`() = Unit @Test @Case(ScopeFullLibraryWithFeaturesTest::class) - fun `test AGPInterface#scopeFullLibraryWithFeatures`() { - } + fun `test AGPInterface#scopeFullLibraryWithFeatures`() = Unit @Test @Case(ProjectTest::class) - fun `test AGPInterface#project`() { - } + fun `test AGPInterface#project`() = Unit @Test @Case(JavaCompilerTaskTestUnit::class) - fun `test AGPInterface#javaCompilerTask`() { - } + fun `test AGPInterface#javaCompilerTask`() = Unit @Test @Case(PreBuildTaskTestUnit::class) - fun `test AGPInterface#preBuildTask`() { - } + fun `test AGPInterface#preBuildTask`() = Unit @Test @Case(AssembleTaskTestUnit::class) - fun `test AGPInterface#assembleTask`() { - } + fun `test AGPInterface#assembleTask`() = Unit @Test @Case(MergeAssetsTaskTestUnit::class) - fun `test AGPInterface#mergeAssetsTask`() { - } + fun `test AGPInterface#mergeAssetsTask`() = Unit @Test @Case(MergeResourcesTaskTestUnit::class) - fun `test AGPInterface#mergeResources`() { - } + fun `test AGPInterface#mergeResources`() = Unit @Test @Case(GetTaskNameTestUnit::class) - fun `test AGPInterface#getTaskName(String)`() { - } + fun `test AGPInterface#getTaskName(String)`() = Unit @Test @Case(GetTaskName2TestUnit::class) - fun `test AGPInterface#getTaskName(String, String)`() { - } + fun `test AGPInterface#getTaskName(String, String)`() = Unit @Test @Case(VariantDataTestUnit::class) - fun `test AGPInterface#variantData`() { - } + fun `test AGPInterface#variantData`() = Unit @Test @Case(VariantScopeTestUnit::class) - fun `test AGPInterface#variantScope`() { - } + fun `test AGPInterface#variantScope`() = Unit @Test @Case(GlobalScopeTestCase::class) - fun `test AGPInterface#globalScope`() { - } + fun `test AGPInterface#globalScope`() = Unit @Test @Case(OriginalApplicationIdTestUnit::class) - fun `test AGPInterface#originalApplicationId`() { - } + fun `test AGPInterface#originalApplicationId`() = Unit @Test @Case(HasDynamicFeatureTestUnit::class) - fun `test AGPInterface#hasDynamicFeature`() { - } + fun `test AGPInterface#hasDynamicFeature`() = Unit @Test @Case(RawAndroidResourcesTestUnit::class) - fun `test AGPInterface#rawAndroidResources`() { - } + fun `test AGPInterface#rawAndroidResources`() = Unit @Test @Case(AllArtifactsTestUnit::class) - fun `test AGPInterface#allArtifacts`() { - } + fun `test AGPInterface#allArtifacts`() = Unit @Test @Case(MinSdkVersionTestUnit::class) - fun `test AGPInterface#minSdkVersion`() { - } + fun `test AGPInterface#minSdkVersion`() = Unit @Test @Case(TargetSdkVersionTestUnit::class) - fun `test AGPInterface#targetSdkVersion`() { - } + fun `test AGPInterface#targetSdkVersion`() = Unit @Test @Case(VariantTypeTestUnit::class) - fun `test AGPInterface#variantType`() { - } + fun `test AGPInterface#variantType`() = Unit @Test @Case(AarTestUnit::class) - fun `test AGPInterface#aar`() { - } + fun `test AGPInterface#aar`() = Unit @Test @Case(ApkTestUnit::class) - fun `test AGPInterface#apk`() { - } + fun `test AGPInterface#apk`() = Unit @Test @Case(MergedManifestsTestUnit::class) - fun `test AGPInterface#mergedManifests`() { - } + fun `test AGPInterface#mergedManifests`() = Unit @Test @Case(MergedResourcesTestUnit::class) - fun `test AGPInterface#mergedRes`() { - } + fun `test AGPInterface#mergedRes`() = Unit @Test @Case(MergedAssetsTestUnit::class) - fun `test AGPInterface#mergedAssets`() { - } + fun `test AGPInterface#mergedAssets`() = Unit @Test @Case(ProcessedResTestUnit::class) - fun `test AGPInterface#processedRes`() { - } + fun `test AGPInterface#processedRes`() = Unit @Test @Case(SymbolListTestUnit::class) - fun `test AGPInterface#symbolList`() { - } + fun `test AGPInterface#symbolList`() = Unit @Test @Case(SymbolListWithPackageNameTestUnit::class) - fun `test AGPInterface#symbolListWithPackageName`() { - } + fun `test AGPInterface#symbolListWithPackageName`() = Unit @Test @Case(AllClassesTestUnit::class) - fun `test AGPInterface#allClasses`() { - } + fun `test AGPInterface#allClasses`() = Unit @Test @Case(BuildToolsTestUnit::class) - fun `test AGPInterface#buildTools`() { - } + fun `test AGPInterface#buildTools`() = Unit } diff --git a/booster-android-gradle-v7_0/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v7_0/V70IntegrationTest.kt b/booster-android-gradle-v7_0/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v7_0/V70IntegrationTest.kt index 34bc3b0df..4e22f0de5 100644 --- a/booster-android-gradle-v7_0/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v7_0/V70IntegrationTest.kt +++ b/booster-android-gradle-v7_0/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v7_0/V70IntegrationTest.kt @@ -5,6 +5,7 @@ import com.android.build.gradle.BaseExtension import com.android.build.gradle.LibraryExtension import com.android.build.gradle.api.BaseVariant import com.android.builder.core.VariantTypeImpl +import com.didiglobal.booster.gradle.AGP import com.didiglobal.booster.gradle.getAndroid import com.didiglobal.booster.kotlinx.search import io.bootstage.testkit.gradle.Case @@ -29,8 +30,6 @@ private const val MIN_SDK_VERSION = 18 private const val TARGET_SDK_VERSION = 30 -private val AGP = V70 - private val ARGS = arrayOf( "assemble", "-S", "-Pbooster_version=${Build.VERSION}", @@ -42,7 +41,7 @@ private val ARGS = arrayOf( ) @Suppress("RemoveCurlyBracesFromTemplate", "FunctionName") -abstract class V70IntegrationTest(val isLib: Boolean) { +abstract class V70IntegrationTest(private val isLib: Boolean) { private val projectDir = TemporaryFolder() @@ -58,102 +57,85 @@ abstract class V70IntegrationTest(val isLib: Boolean) { projectDir.copyFromResource("${if (isLib) "lib" else "app"}.gradle", "build.gradle") projectDir.copyFromResource("buildSrc") projectDir.copyFromResource("src") + assertEquals(7, AGP.revision.major) + assertEquals(0, AGP.revision.minor) } @Test @Case(ScopeFullWithFeaturesTest::class) - fun `test AGPInterface#scopeFullWithFeatures`() { - } + fun `test AGPInterface#scopeFullWithFeatures`() = Unit @Test @Case(ScopeFullLibraryWithFeaturesTest::class) - fun `test AGPInterface#scopeFullLibraryWithFeatures`() { - } + fun `test AGPInterface#scopeFullLibraryWithFeatures`() = Unit @Test @Case(ProjectTest::class) - fun `test AGPInterface#project`() { - } + fun `test AGPInterface#project`() = Unit @Test @Case(JavaCompilerTaskTestUnit::class) - fun `test AGPInterface#javaCompilerTask`() { - } + fun `test AGPInterface#javaCompilerTask`() = Unit @Test @Case(PreBuildTaskTestUnit::class) - fun `test AGPInterface#preBuildTask`() { - } + fun `test AGPInterface#preBuildTask`() = Unit @Test @Case(AssembleTaskTestUnit::class) - fun `test AGPInterface#assembleTask`() { - } + fun `test AGPInterface#assembleTask`() = Unit @Test @Case(MergeAssetsTaskTestUnit::class) - fun `test AGPInterface#mergeAssetsTask`() { - } + fun `test AGPInterface#mergeAssetsTask`() = Unit @Test @Case(MergeResourcesTaskTestUnit::class) - fun `test AGPInterface#mergeResources`() { - } + fun `test AGPInterface#mergeResources`() = Unit @Test @Case(GetTaskNameTestUnit::class) - fun `test AGPInterface#getTaskName(String)`() { - } + fun `test AGPInterface#getTaskName(String)`() = Unit @Test @Case(GetTaskName2TestUnit::class) - fun `test AGPInterface#getTaskName(String, String)`() { - } + fun `test AGPInterface#getTaskName(String, String)`() = Unit @Test @Case(VariantDataTestUnit::class) - fun `test AGPInterface#variantData`() { - } + fun `test AGPInterface#variantData`() = Unit @Test @Case(VariantScopeTestUnit::class) - fun `test AGPInterface#variantScope`() { - } + fun `test AGPInterface#variantScope`() = Unit @Test @Case(GlobalScopeTestCase::class) - fun `test AGPInterface#globalScope`() { - } + fun `test AGPInterface#globalScope`() = Unit @Test @Case(OriginalApplicationIdTestUnit::class) - fun `test AGPInterface#originalApplicationId`() { - } + fun `test AGPInterface#originalApplicationId`() = Unit @Test @Case(HasDynamicFeatureTestUnit::class) - fun `test AGPInterface#hasDynamicFeature`() { - } + fun `test AGPInterface#hasDynamicFeature`() = Unit @Test @Case(RawAndroidResourcesTestUnit::class) - fun `test AGPInterface#rawAndroidResources`() { - } + fun `test AGPInterface#rawAndroidResources`() = Unit @Test @Case(AllArtifactsTestUnit::class) - fun `test AGPInterface#allArtifacts`() { - } + fun `test AGPInterface#allArtifacts`() = Unit @Test @Case(MinSdkVersionTestUnit::class) - fun `test AGPInterface#minSdkVersion`() { - } + fun `test AGPInterface#minSdkVersion`() = Unit @Test @Case(TargetSdkVersionTestUnit::class) - fun `test AGPInterface#targetSdkVersion`() { - } + fun `test AGPInterface#targetSdkVersion`() = Unit @Test @Case(VariantTypeTestUnit::class) From 43553572f9871aa0c0bb8432a849fa470cb13ea5 Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Wed, 18 May 2022 00:36:44 +0800 Subject: [PATCH 122/187] Optimize `booster-graph` --- .../com/didiglobal/booster/graph/Graph.kt | 21 ++++--- .../com/didiglobal/booster/graph/GraphTest.kt | 57 +++++++++++++++++++ 2 files changed, 69 insertions(+), 9 deletions(-) create mode 100644 booster-graph/src/test/kotlin/com/didiglobal/booster/graph/GraphTest.kt diff --git a/booster-graph/src/main/kotlin/com/didiglobal/booster/graph/Graph.kt b/booster-graph/src/main/kotlin/com/didiglobal/booster/graph/Graph.kt index e858701d7..c63d3bea1 100644 --- a/booster-graph/src/main/kotlin/com/didiglobal/booster/graph/Graph.kt +++ b/booster-graph/src/main/kotlin/com/didiglobal/booster/graph/Graph.kt @@ -16,20 +16,23 @@ class Graph private constructor( ) : Iterable> { private val entries: List> by lazy { - edges.map { pair -> - pair.value.map { - Edge(pair.key, it) - }.toSet() - }.flatten() + Collections.unmodifiableList(edges.entries.fold(mutableListOf>()) { acc, entry -> + entry.value.forEach { value -> + acc.add(Edge(entry.key, value)) + } + acc + }) } val nodes: Collection by lazy { - this.map { - listOf(it.from, it.to) - }.flatten().toSet() + Collections.unmodifiableSet(fold(mutableSetOf()) { acc, edge -> + acc.add(edge.from) + acc.add(edge.to) + acc + }) } - operator fun get(node: N): Set = Collections.unmodifiableSet(edges[node] ?: emptySet()) + operator fun get(node: N): Set = edges[node]?.let(Collections::unmodifiableSet) ?: emptySet() /** * Print this graph diff --git a/booster-graph/src/test/kotlin/com/didiglobal/booster/graph/GraphTest.kt b/booster-graph/src/test/kotlin/com/didiglobal/booster/graph/GraphTest.kt new file mode 100644 index 000000000..253574b7e --- /dev/null +++ b/booster-graph/src/test/kotlin/com/didiglobal/booster/graph/GraphTest.kt @@ -0,0 +1,57 @@ +package com.didiglobal.booster.graph + +import java.io.Serializable +import kotlin.test.Test +import kotlin.test.assertEquals + +data class ValueNode(val value: Serializable) : Node + +class GraphTest { + + @Test + fun `test edges`() { + val graph = Graph.Builder() + .addEdge(ValueNode(1), ValueNode('a')) + .addEdge(ValueNode(2), ValueNode('a')) + .addEdge(ValueNode(2), ValueNode('b')) + .addEdge(ValueNode(3), ValueNode('a')) + .addEdge(ValueNode(3), ValueNode('b')) + .addEdge(ValueNode(3), ValueNode('c')) + .build() + assertEquals( + listOf( + Edge(ValueNode(1), ValueNode('a')), + Edge(ValueNode(2), ValueNode('a')), + Edge(ValueNode(2), ValueNode('b')), + Edge(ValueNode(3), ValueNode('a')), + Edge(ValueNode(3), ValueNode('b')), + Edge(ValueNode(3), ValueNode('c')) + ), + graph.toList() + ) + } + + @Test + fun `test nodes`() { + val graph = Graph.Builder() + .addEdge(ValueNode(1), ValueNode('a')) + .addEdge(ValueNode(2), ValueNode('a')) + .addEdge(ValueNode(2), ValueNode('b')) + .addEdge(ValueNode(3), ValueNode('a')) + .addEdge(ValueNode(3), ValueNode('b')) + .addEdge(ValueNode(3), ValueNode('c')) + .build() + assertEquals( + setOf( + ValueNode(1), + ValueNode(2), + ValueNode(3), + ValueNode('a'), + ValueNode('b'), + ValueNode('c') + ), + graph.nodes + ) + } + +} \ No newline at end of file From ea824fcccee7629255d5aae51a137a96fe2f673a Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Wed, 4 May 2022 22:36:33 +0800 Subject: [PATCH 123/187] Update GitHub workflows --- .github/workflows/build.yml | 38 +++++++++++++++++++++++++++++++++++ .github/workflows/publish.yml | 2 +- .github/workflows/test.yml | 8 +++----- 3 files changed, 42 insertions(+), 6 deletions(-) create mode 100644 .github/workflows/build.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 000000000..3bb59649e --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,38 @@ +name: Build project + +on: + push: + branches: [ '*' ] + pull_request: + branches: [ '*' ] + repository_dispatch: + types: [build] + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: Setup Java + uses: actions/setup-java@v2 + with: + distribution: 'adopt' + java-version: '11' + + - name: Build Project + run: | + echo "Create GPG private key" + echo $GPG_KEY_ARMOR | base64 --decode > $GITHUB_WORKSPACE/secring.gpg + ./gradlew assemble -POSSRH_USERNAME=${OSSRH_USERNAME} -POSSRH_PASSWORD=${OSSRH_PASSWORD} -POSSRH_STAGING_PROFILE_ID=${OSSRH_STAGING_PROFILE_ID} -Psigning.keyId=${GPG_KEY_ID} -Psigning.password=${GPG_PASSPHRASE} -Psigning.secretKeyRingFile=${GITHUB_WORKSPACE}/secring.gpg -S --no-daemon + env: + JAVA_OPTS: -Xmx8g -XX:MaxPermSize=1g -XX:MetaspaceSize=1g -Dfile.encoding=UTF-8 + JVM_OPTS: -Xmx8g -XX:MaxPermSize=1g -XX:MetaspaceSize=1g -Dfile.encoding=UTF-8 + GPG_KEY_ARMOR: ${{ secrets.GPG_KEY_ARMOR }} + GPG_KEY_ID: ${{ secrets.GPG_KEY_ID }} + GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }} + OSSRH_PASSWORD: ${{ secrets.OSSRH_PASSWORD }} + OSSRH_USERNAME: ${{ secrets.OSSRH_USERNAME }} + OSSRH_STAGING_PROFILE_ID: ${{ secrets.OSSRH_STAGING_PROFILE_ID }} diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index c74c7ba70..c11170c61 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -1,4 +1,4 @@ -name: Publish build to Sonatype +name: Publish artifacts to Sonatype on: push: diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index af9480554..23356ae15 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -2,15 +2,13 @@ name: Run tests on: push: - branches: [ '*' ] - pull_request: - branches: [ '*' ] - + tags: + - '*' repository_dispatch: types: [test] jobs: - run-unit-test: + test: runs-on: ubuntu-latest steps: From f42b8647285685dc8e8f42cb14a1fbf9a2a561d7 Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Wed, 4 May 2022 15:19:46 +0800 Subject: [PATCH 124/187] Fix variant artifacts acquiring --- .../didiglobal/booster/gradle/BaseVariant.kt | 29 ++++--- .../didiglobal/booster/gradle/AGPInterface.kt | 26 +++--- .../booster/android/gradle/v3_3/V33.kt | 61 ++++++------- .../booster/android/gradle/v3_4/V34.kt | 66 +++++++------- .../booster/android/gradle/v3_5/V35.kt | 77 +++++++---------- .../booster/android/gradle/v3_6/V36.kt | 53 ++++++------ .../gradle/v3_6/InternalArtifactTypeTest.kt | 13 --- .../booster/android/gradle/v4_0/V40.kt | 85 ++++++++++++------ .../gradle/v4_0/InternalArtifactTypeTest.kt | 13 --- .../booster/android/gradle/v4_1/V41.kt | 86 +++++++++++++------ .../booster/android/gradle/v4_2/V42.kt | 86 +++++++++++++------ .../booster/android/gradle/v7_0/V70.kt | 86 +++++++++++++------ .../transform/VariantTransformHelper.kt | 17 ++-- .../booster/task/artifact/ListArtifact.kt | 2 +- .../booster/task/so/ListSharedLibrary.kt | 4 +- 15 files changed, 398 insertions(+), 306 deletions(-) delete mode 100644 booster-android-gradle-v3_6/src/test/java/com/didiglobal/booster/android/gradle/v3_6/InternalArtifactTypeTest.kt delete mode 100644 booster-android-gradle-v4_0/src/test/java/com/didiglobal/booster/android/gradle/v4_0/InternalArtifactTypeTest.kt diff --git a/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/BaseVariant.kt b/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/BaseVariant.kt index ac30e5819..c52f427e7 100644 --- a/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/BaseVariant.kt +++ b/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/BaseVariant.kt @@ -86,6 +86,13 @@ val BaseVariant.bundleResourcesTaskProvider: TaskProvider? null } +val BaseVariant.packageTaskProvider: TaskProvider? + get() = try { + project.tasks.named(getTaskName("package")) + } catch (e: UnknownTaskException) { + null + } + val BaseVariant.packageBundleTaskProvider: TaskProvider? get() = try { project.tasks.named(getTaskName("package", "Bundle")) @@ -141,7 +148,7 @@ fun BaseVariant.getArtifactFileCollection( getArtifactFileCollection(configType, scope, artifactType) } -val BaseVariant.aar: Collection +val BaseVariant.aar: FileCollection get() = AGP.run { aar } @@ -149,7 +156,7 @@ val BaseVariant.aar: Collection /** * The output directory of APK files */ -val BaseVariant.apk: Collection +val BaseVariant.apk: FileCollection get() = AGP.run { apk } @@ -157,7 +164,7 @@ val BaseVariant.apk: Collection /** * The output directory of merged [AndroidManifest.xml](https://developer.android.com/guide/topics/manifest/manifest-intro) */ -val BaseVariant.mergedManifests: Collection +val BaseVariant.mergedManifests: FileCollection get() = AGP.run { mergedManifests } @@ -165,7 +172,7 @@ val BaseVariant.mergedManifests: Collection /** * The output directory of merged resources */ -val BaseVariant.mergedRes: Collection +val BaseVariant.mergedRes: FileCollection get() = AGP.run { mergedRes } @@ -173,7 +180,7 @@ val BaseVariant.mergedRes: Collection /** * The output directory of merged assets */ -val BaseVariant.mergedAssets: Collection +val BaseVariant.mergedAssets: FileCollection get() = AGP.run { mergedAssets } @@ -181,7 +188,7 @@ val BaseVariant.mergedAssets: Collection /** * The output directory of merged native libs */ -val BaseVariant.mergedNativeLibs: Collection +val BaseVariant.mergedNativeLibs: FileCollection get() = AGP.run { mergedNativeLibs } @@ -189,7 +196,7 @@ val BaseVariant.mergedNativeLibs: Collection /** * The output directory of processed resources: *resources-**variant**.ap\_* */ -val BaseVariant.processedRes: Collection +val BaseVariant.processedRes: FileCollection get() = AGP.run { processedRes } @@ -197,22 +204,22 @@ val BaseVariant.processedRes: Collection /** * All of classes */ -val BaseVariant.allClasses: Collection +val BaseVariant.allClasses: FileCollection get() = AGP.run { allClasses } -val BaseVariant.symbolList: Collection +val BaseVariant.symbolList: FileCollection get() = AGP.run { symbolList } -val BaseVariant.symbolListWithPackageName: Collection +val BaseVariant.symbolListWithPackageName: FileCollection get() = AGP.run { symbolListWithPackageName } -val BaseVariant.allArtifacts: Map> +val BaseVariant.allArtifacts: Map get() = AGP.run { allArtifacts } diff --git a/booster-android-gradle-compat/src/main/kotlin/com/didiglobal/booster/gradle/AGPInterface.kt b/booster-android-gradle-compat/src/main/kotlin/com/didiglobal/booster/gradle/AGPInterface.kt index f74bb652b..c014771bc 100644 --- a/booster-android-gradle-compat/src/main/kotlin/com/didiglobal/booster/gradle/AGPInterface.kt +++ b/booster-android-gradle-compat/src/main/kotlin/com/didiglobal/booster/gradle/AGPInterface.kt @@ -103,7 +103,7 @@ interface AGPInterface { val BaseVariant.hasDynamicFeature: Boolean - val BaseVariant.rawAndroidResources: Collection + val BaseVariant.rawAndroidResources: FileCollection val BaseVariant.javaCompilerTaskProvider: TaskProvider @@ -131,7 +131,7 @@ interface AGPInterface { artifactType: AndroidArtifacts.ArtifactType ): FileCollection - val BaseVariant.allArtifacts: Map> + val BaseVariant.allArtifacts: Map val BaseVariant.minSdkVersion: AndroidVersion @@ -139,27 +139,27 @@ interface AGPInterface { val BaseVariant.variantType: VariantType - val BaseVariant.aar: Collection + val BaseVariant.aar: FileCollection - val BaseVariant.apk: Collection + val BaseVariant.apk: FileCollection - val BaseVariant.mergedManifests: Collection + val BaseVariant.mergedManifests: FileCollection - val BaseVariant.mergedRes: Collection + val BaseVariant.mergedRes: FileCollection - val BaseVariant.mergedAssets: Collection + val BaseVariant.mergedAssets: FileCollection - val BaseVariant.mergedNativeLibs: Collection + val BaseVariant.mergedNativeLibs: FileCollection - val BaseVariant.processedRes: Collection + val BaseVariant.processedRes: FileCollection - val BaseVariant.symbolList: Collection + val BaseVariant.symbolList: FileCollection - val BaseVariant.symbolListWithPackageName: Collection + val BaseVariant.symbolListWithPackageName: FileCollection - val BaseVariant.dataBindingDependencyArtifacts: Collection + val BaseVariant.dataBindingDependencyArtifacts: FileCollection - val BaseVariant.allClasses: Collection + val BaseVariant.allClasses: FileCollection val BaseVariant.buildTools: BuildToolInfo diff --git a/booster-android-gradle-v3_3/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_3/V33.kt b/booster-android-gradle-v3_3/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_3/V33.kt index 4de906319..faf73f8b7 100644 --- a/booster-android-gradle-v3_3/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_3/V33.kt +++ b/booster-android-gradle-v3_3/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_3/V33.kt @@ -14,7 +14,6 @@ import com.android.build.gradle.internal.publishing.AndroidArtifacts import com.android.build.gradle.internal.scope.AnchorOutputType import com.android.build.gradle.internal.scope.GlobalScope import com.android.build.gradle.internal.scope.InternalArtifactType -import com.android.build.gradle.internal.scope.MissingTaskOutputException import com.android.build.gradle.internal.scope.VariantScope import com.android.build.gradle.internal.variant.BaseVariantData import com.android.builder.core.VariantType @@ -37,15 +36,17 @@ private val ARTIFACT_TYPES = arrayOf>( BuildArtifactType.values(), SourceArtifactType.values(), InternalArtifactType.values() -).flatten().map { - it.name() to it -}.toMap() +).flatten().associateBy(ArtifactType::name) internal object V33 : AGPInterface { @Suppress("UnstableApiUsage") - private fun BaseVariant.getFinalArtifactFiles(type: ArtifactType): Collection { - return variantScope.artifacts.getFinalArtifactFiles(type).files + private fun BaseVariant.getFinalArtifactFiles(type: ArtifactType): FileCollection { + return try { + variantScope.artifacts.getFinalArtifactFiles(type).get() + } catch (e: Throwable) { + project.files() + } } override val scopeFullWithFeatures: MutableSet @@ -103,8 +104,8 @@ internal object V33 : AGPInterface { override val BaseVariant.hasDynamicFeature: Boolean get() = globalScope.hasDynamicFeatures() - override val BaseVariant.rawAndroidResources: Collection - get() = variantData.allRawAndroidResources.files + override val BaseVariant.rawAndroidResources: FileCollection + get() = variantData.allRawAndroidResources override fun BaseVariant.getArtifactCollection( configType: AndroidArtifacts.ConsumedConfigType, @@ -122,21 +123,13 @@ internal object V33 : AGPInterface { return variantScope.getArtifactFileCollection(configType, scope, artifactType) } - override val BaseVariant.allArtifacts: Map> - get() = ARTIFACT_TYPES.entries.map { - val artifacts: Collection by lazy { - try { - getFinalArtifactFiles(it.value) - } catch (e: RuntimeException) { - if (e.cause is MissingTaskOutputException) { - emptyList() - } else { - throw e - } - } + override val BaseVariant.allArtifacts: Map + get() = ARTIFACT_TYPES.entries.associateTo(TreeMap()) { (name, type) -> + val artifacts: FileCollection by lazy { + getFinalArtifactFiles(type) } - it.key to artifacts - }.toMap(TreeMap()) + name to artifacts + } override val BaseVariant.minSdkVersion: AndroidVersion get() = variantData.variantConfiguration.minSdkVersion @@ -147,45 +140,45 @@ internal object V33 : AGPInterface { override val BaseVariant.variantType: VariantType get() = variantScope.type - override val BaseVariant.aar: Collection + override val BaseVariant.aar: FileCollection get() = getFinalArtifactFiles(InternalArtifactType.AAR) - override val BaseVariant.apk: Collection + override val BaseVariant.apk: FileCollection get() = getFinalArtifactFiles(InternalArtifactType.APK) - override val BaseVariant.mergedManifests: Collection + override val BaseVariant.mergedManifests: FileCollection get() = getFinalArtifactFiles(when (this) { is ApplicationVariant -> InternalArtifactType.MERGED_MANIFESTS is LibraryVariant -> InternalArtifactType.LIBRARY_MANIFEST else -> TODO("Unsupported variant type: $variantType") }) - override val BaseVariant.mergedRes: Collection + override val BaseVariant.mergedRes: FileCollection get() = getFinalArtifactFiles(InternalArtifactType.MERGED_RES) - override val BaseVariant.mergedNativeLibs: Collection - get() = setOf((File("${project.buildDir.path}${File.separatorChar}${AndroidProject.FD_INTERMEDIATES}${File.separatorChar}transforms${File.separatorChar}mergeJniLibs${File.separatorChar}$name"))) + override val BaseVariant.mergedNativeLibs: FileCollection + get() = project.files("build${File.separatorChar}${AndroidProject.FD_INTERMEDIATES}${File.separatorChar}transforms${File.separatorChar}mergeJniLibs${File.separatorChar}$name") - override val BaseVariant.mergedAssets: Collection + override val BaseVariant.mergedAssets: FileCollection get() = getFinalArtifactFiles(when (this) { is ApplicationVariant -> InternalArtifactType.MERGED_ASSETS is LibraryVariant -> InternalArtifactType.LIBRARY_ASSETS else -> TODO("Unsupported variant type: $variantType") }) - override val BaseVariant.processedRes: Collection + override val BaseVariant.processedRes: FileCollection get() = getFinalArtifactFiles(InternalArtifactType.PROCESSED_RES) - override val BaseVariant.symbolList: Collection + override val BaseVariant.symbolList: FileCollection get() = getFinalArtifactFiles(InternalArtifactType.SYMBOL_LIST) - override val BaseVariant.symbolListWithPackageName: Collection + override val BaseVariant.symbolListWithPackageName: FileCollection get() = getFinalArtifactFiles(InternalArtifactType.SYMBOL_LIST_WITH_PACKAGE_NAME) - override val BaseVariant.dataBindingDependencyArtifacts: Collection + override val BaseVariant.dataBindingDependencyArtifacts: FileCollection get() = getFinalArtifactFiles(InternalArtifactType.DATA_BINDING_DEPENDENCY_ARTIFACTS) - override val BaseVariant.allClasses: Collection + override val BaseVariant.allClasses: FileCollection get() = getFinalArtifactFiles(AnchorOutputType.ALL_CLASSES) override val BaseVariant.buildTools: BuildToolInfo diff --git a/booster-android-gradle-v3_4/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_4/V34.kt b/booster-android-gradle-v3_4/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_4/V34.kt index e407f7f8a..1db270d25 100644 --- a/booster-android-gradle-v3_4/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_4/V34.kt +++ b/booster-android-gradle-v3_4/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_4/V34.kt @@ -14,11 +14,9 @@ import com.android.build.gradle.internal.publishing.AndroidArtifacts import com.android.build.gradle.internal.scope.AnchorOutputType import com.android.build.gradle.internal.scope.GlobalScope import com.android.build.gradle.internal.scope.InternalArtifactType -import com.android.build.gradle.internal.scope.MissingTaskOutputException import com.android.build.gradle.internal.scope.VariantScope import com.android.build.gradle.internal.scope.getOutputDir import com.android.build.gradle.internal.variant.BaseVariantData -import com.android.build.gradle.options.BooleanOption import com.android.builder.core.VariantType import com.android.builder.model.AndroidProject import com.android.builder.model.ApiVersion @@ -39,15 +37,17 @@ private val ARTIFACT_TYPES = arrayOf>( BuildArtifactType.values(), SourceArtifactType.values(), InternalArtifactType.values() -).flatten().map { - it.name() to it -}.toMap() +).flatten().associateBy(ArtifactType::name) -object V34 : AGPInterface { +internal object V34 : AGPInterface { @Suppress("UnstableApiUsage") - private fun BaseVariant.getFinalArtifactFiles(type: ArtifactType): Collection { - return variantScope.artifacts.getFinalArtifactFiles(type).files + private fun BaseVariant.getFinalArtifactFiles(type: ArtifactType): FileCollection { + return try { + variantScope.artifacts.getFinalArtifactFiles(type).get() + } catch (e: Throwable) { + project.files() + } } override val scopeFullWithFeatures: MutableSet @@ -105,8 +105,8 @@ object V34 : AGPInterface { override val BaseVariant.hasDynamicFeature: Boolean get() = globalScope.hasDynamicFeatures() - override val BaseVariant.rawAndroidResources: Collection - get() = variantData.allRawAndroidResources.files + override val BaseVariant.rawAndroidResources: FileCollection + get() = variantData.allRawAndroidResources override fun BaseVariant.getArtifactCollection( configType: AndroidArtifacts.ConsumedConfigType, @@ -124,21 +124,13 @@ object V34 : AGPInterface { return variantScope.getArtifactFileCollection(configType, scope, artifactType) } - override val BaseVariant.allArtifacts: Map> - get() = ARTIFACT_TYPES.entries.map { - val artifacts: Collection by lazy { - try { - getFinalArtifactFiles(it.value) - } catch (e: RuntimeException) { - if (e.cause is MissingTaskOutputException) { - emptyList() - } else { - throw e - } - } + override val BaseVariant.allArtifacts: Map + get() = ARTIFACT_TYPES.entries.associateTo(TreeMap()) { (name, type) -> + val artifacts: FileCollection by lazy { + getFinalArtifactFiles(type) } - it.key to artifacts - }.toMap(TreeMap()) + name to artifacts + } override val BaseVariant.minSdkVersion: AndroidVersion get() = variantData.variantConfiguration.minSdkVersion @@ -149,45 +141,45 @@ object V34 : AGPInterface { override val BaseVariant.variantType: VariantType get() = variantScope.type - override val BaseVariant.aar: Collection + override val BaseVariant.aar: FileCollection get() = getFinalArtifactFiles(InternalArtifactType.AAR) - override val BaseVariant.apk: Collection + override val BaseVariant.apk: FileCollection get() = getFinalArtifactFiles(InternalArtifactType.APK) - override val BaseVariant.mergedManifests: Collection - get() =listOf(File(when (this) { + override val BaseVariant.mergedManifests: FileCollection + get() = project.files(File(when (this) { is ApplicationVariant -> InternalArtifactType.MERGED_MANIFESTS is LibraryVariant -> InternalArtifactType.LIBRARY_MANIFEST else -> TODO("Unsupported variant type: $variantType") }.getOutputDir(project.buildDir), name)) - override val BaseVariant.mergedRes: Collection + override val BaseVariant.mergedRes: FileCollection get() = getFinalArtifactFiles(InternalArtifactType.MERGED_RES) - override val BaseVariant.mergedNativeLibs: Collection - get() = setOf((File("${project.buildDir.path}${File.separatorChar}${AndroidProject.FD_INTERMEDIATES}${File.separatorChar}transforms${File.separatorChar}mergeJniLibs${File.separatorChar}$name"))) + override val BaseVariant.mergedNativeLibs: FileCollection + get() = project.files("build${File.separatorChar}${AndroidProject.FD_INTERMEDIATES}${File.separatorChar}transforms${File.separatorChar}mergeJniLibs${File.separatorChar}$name") - override val BaseVariant.mergedAssets: Collection + override val BaseVariant.mergedAssets: FileCollection get() = getFinalArtifactFiles(when (this) { is ApplicationVariant -> InternalArtifactType.MERGED_ASSETS is LibraryVariant -> InternalArtifactType.LIBRARY_ASSETS else -> TODO("Unsupported variant type: $variantType") }) - override val BaseVariant.processedRes: Collection + override val BaseVariant.processedRes: FileCollection get() = getFinalArtifactFiles(InternalArtifactType.PROCESSED_RES) - override val BaseVariant.symbolList: Collection + override val BaseVariant.symbolList: FileCollection get() = getFinalArtifactFiles(InternalArtifactType.SYMBOL_LIST) - override val BaseVariant.symbolListWithPackageName: Collection + override val BaseVariant.symbolListWithPackageName: FileCollection get() = getFinalArtifactFiles(InternalArtifactType.SYMBOL_LIST_WITH_PACKAGE_NAME) - override val BaseVariant.dataBindingDependencyArtifacts: Collection + override val BaseVariant.dataBindingDependencyArtifacts: FileCollection get() = getFinalArtifactFiles(InternalArtifactType.DATA_BINDING_DEPENDENCY_ARTIFACTS) - override val BaseVariant.allClasses: Collection + override val BaseVariant.allClasses: FileCollection get() = getFinalArtifactFiles(AnchorOutputType.ALL_CLASSES) override val BaseVariant.buildTools: BuildToolInfo diff --git a/booster-android-gradle-v3_5/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_5/V35.kt b/booster-android-gradle-v3_5/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_5/V35.kt index 67f60056d..470d82dce 100644 --- a/booster-android-gradle-v3_5/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_5/V35.kt +++ b/booster-android-gradle-v3_5/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_5/V35.kt @@ -14,7 +14,6 @@ import com.android.build.gradle.internal.publishing.AndroidArtifacts import com.android.build.gradle.internal.scope.AnchorOutputType import com.android.build.gradle.internal.scope.GlobalScope import com.android.build.gradle.internal.scope.InternalArtifactType -import com.android.build.gradle.internal.scope.MissingTaskOutputException import com.android.build.gradle.internal.scope.VariantScope import com.android.build.gradle.internal.scope.getOutputDir import com.android.build.gradle.internal.variant.BaseVariantData @@ -37,15 +36,17 @@ private val ARTIFACT_TYPES = arrayOf>( BuildArtifactType.values(), SourceArtifactType.values(), InternalArtifactType.values() -).flatten().map { - it.name() to it -}.toMap() +).flatten().associateBy(ArtifactType::name) internal object V35 : AGPInterface { @Suppress("UnstableApiUsage") - private fun BaseVariant.getFinalArtifactFiles(type: ArtifactType): Collection { - return variantScope.artifacts.getFinalArtifactFiles(type).files + private fun BaseVariant.getFinalArtifactFiles(type: ArtifactType): FileCollection { + return try { + project.objects.fileCollection().from(variantScope.artifacts.getFinalArtifactFiles(type)) + } catch (e: Throwable) { + project.objects.fileCollection().builtBy(variantScope.artifacts.getFinalArtifactFiles(type)) + } } override val scopeFullWithFeatures: MutableSet @@ -104,8 +105,8 @@ internal object V35 : AGPInterface { override val BaseVariant.hasDynamicFeature: Boolean get() = globalScope.hasDynamicFeatures() - override val BaseVariant.rawAndroidResources: Collection - get() = variantData.allRawAndroidResources.files + override val BaseVariant.rawAndroidResources: FileCollection + get() = variantData.allRawAndroidResources override fun BaseVariant.getArtifactCollection( configType: AndroidArtifacts.ConsumedConfigType, @@ -124,31 +125,23 @@ internal object V35 : AGPInterface { } @Suppress("UnstableApiUsage") - override val BaseVariant.allArtifacts: Map> - get() = ARTIFACT_TYPES.entries.map { - val artifacts: Collection by lazy { - when (it.value) { + override val BaseVariant.allArtifacts: Map + get() = ARTIFACT_TYPES.entries.associateTo(TreeMap()) { (name, type) -> + val artifacts: FileCollection by lazy { + when (type) { InternalArtifactType.MERGED_MANIFESTS, InternalArtifactType.LIBRARY_MANIFEST -> { - listOf(File(it.value.getOutputDir(globalScope.buildDir), name)) + project.files(File(type.getOutputDir(globalScope.buildDir), name)) } InternalArtifactType.LIBRARY_ASSETS, InternalArtifactType.MERGED_ASSETS -> { - listOf(File(it.value.getOutputDir(globalScope.buildDir), "out")) - } - else -> try { - getFinalArtifactFiles(it.value) - } catch (e: RuntimeException) { - if (e.cause is MissingTaskOutputException) { - emptyList() - } else { - throw e - } + project.files(File(type.getOutputDir(globalScope.buildDir), "out")) } + else -> getFinalArtifactFiles(type) } } - it.key to artifacts - }.toMap(TreeMap()) + name to artifacts + } override val BaseVariant.minSdkVersion: AndroidVersion get() = variantData.variantConfiguration.minSdkVersion @@ -159,51 +152,47 @@ internal object V35 : AGPInterface { override val BaseVariant.variantType: VariantType get() = variantScope.type - override val BaseVariant.aar: Collection + override val BaseVariant.aar: FileCollection get() = getFinalArtifactFiles(InternalArtifactType.AAR) - override val BaseVariant.apk: Collection + override val BaseVariant.apk: FileCollection get() = getFinalArtifactFiles(InternalArtifactType.APK) @Suppress("UnstableApiUsage") - override val BaseVariant.mergedManifests: Collection - get() = listOf(when (this) { + override val BaseVariant.mergedManifests: FileCollection + get() = project.files(File(when (this) { is ApplicationVariant -> InternalArtifactType.MERGED_MANIFESTS is LibraryVariant -> InternalArtifactType.LIBRARY_MANIFEST else -> TODO("Unsupported variant type: $variantType") - }).map { - File(it.getOutputDir(globalScope.buildDir), name) - } + }.getOutputDir(globalScope.buildDir), name)) - override val BaseVariant.mergedRes: Collection + override val BaseVariant.mergedRes: FileCollection get() = getFinalArtifactFiles(InternalArtifactType.MERGED_RES) - override val BaseVariant.mergedNativeLibs: Collection + override val BaseVariant.mergedNativeLibs: FileCollection get() = getFinalArtifactFiles(InternalArtifactType.MERGED_NATIVE_LIBS) @Suppress("UnstableApiUsage") - override val BaseVariant.mergedAssets: Collection - get() = listOf(when (this) { + override val BaseVariant.mergedAssets: FileCollection + get() = project.files(File(when (this) { is ApplicationVariant -> InternalArtifactType.MERGED_ASSETS is LibraryVariant -> InternalArtifactType.LIBRARY_ASSETS else -> TODO("Unsupported variant type: $variantType") - }).map { - File(it.getOutputDir(globalScope.buildDir), "out") - } + }.getOutputDir(globalScope.buildDir), "out")) - override val BaseVariant.processedRes: Collection + override val BaseVariant.processedRes: FileCollection get() = getFinalArtifactFiles(InternalArtifactType.PROCESSED_RES) - override val BaseVariant.symbolList: Collection + override val BaseVariant.symbolList: FileCollection get() = getFinalArtifactFiles(InternalArtifactType.SYMBOL_LIST) - override val BaseVariant.symbolListWithPackageName: Collection + override val BaseVariant.symbolListWithPackageName: FileCollection get() = getFinalArtifactFiles(InternalArtifactType.SYMBOL_LIST_WITH_PACKAGE_NAME) - override val BaseVariant.dataBindingDependencyArtifacts: Collection + override val BaseVariant.dataBindingDependencyArtifacts: FileCollection get() = getFinalArtifactFiles(InternalArtifactType.DATA_BINDING_DEPENDENCY_ARTIFACTS) - override val BaseVariant.allClasses: Collection + override val BaseVariant.allClasses: FileCollection get() = getFinalArtifactFiles(AnchorOutputType.ALL_CLASSES) override val BaseVariant.buildTools: BuildToolInfo diff --git a/booster-android-gradle-v3_6/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_6/V36.kt b/booster-android-gradle-v3_6/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_6/V36.kt index 866f4cdb5..2ac1a3708 100644 --- a/booster-android-gradle-v3_6/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_6/V36.kt +++ b/booster-android-gradle-v3_6/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_6/V36.kt @@ -27,7 +27,6 @@ import org.gradle.api.artifacts.ArtifactCollection import org.gradle.api.file.FileCollection import org.gradle.api.file.FileSystemLocation import org.gradle.api.tasks.TaskProvider -import java.io.File import java.util.TreeMap @Suppress("UnstableApiUsage") @@ -40,15 +39,19 @@ internal val ARTIFACT_TYPES = arrayOf( it.sealedSubclasses }.flatten().map { it.objectInstance as ArtifactType -}.map { - it.javaClass.simpleName to it -}.toMap() +}.associateBy { + it.javaClass.simpleName +} object V36 : AGPInterface { @Suppress("UnstableApiUsage") - private fun BaseVariant.getFinalArtifactFiles(type: ArtifactType): Collection { - return listOfNotNull(variantScope.artifacts.getFinalProduct(type).map(FileSystemLocation::getAsFile).orNull) + private fun BaseVariant.getFinalArtifactFiles(type: ArtifactType): FileCollection { + return try { + project.objects.fileCollection().from(variantScope.artifacts.getFinalProduct(type)) + } catch (e: Throwable) { + project.objects.fileCollection().builtBy(variantScope.artifacts.getFinalProduct(type)) + } } override val scopeFullWithFeatures: MutableSet @@ -110,8 +113,8 @@ object V36 : AGPInterface { override val BaseVariant.hasDynamicFeature: Boolean get() = globalScope.hasDynamicFeatures() - override val BaseVariant.rawAndroidResources: Collection - get() = variantData.allRawAndroidResources.files + override val BaseVariant.rawAndroidResources: FileCollection + get() = variantData.allRawAndroidResources override fun BaseVariant.getArtifactCollection( configType: AndroidArtifacts.ConsumedConfigType, @@ -129,13 +132,13 @@ object V36 : AGPInterface { return variantScope.getArtifactFileCollection(configType, scope, artifactType) } - override val BaseVariant.allArtifacts: Map> - get() = ARTIFACT_TYPES.entries.map { - val artifacts: Collection by lazy { - getFinalArtifactFiles(it.value) + override val BaseVariant.allArtifacts: Map + get() = ARTIFACT_TYPES.entries.associateTo(TreeMap()) { (name, type) -> + val artifacts: FileCollection by lazy { + getFinalArtifactFiles(type) } - it.key to artifacts - }.toMap(TreeMap()) + name to artifacts + } override val BaseVariant.minSdkVersion: AndroidVersion get() = variantData.variantConfiguration.minSdkVersion @@ -146,50 +149,50 @@ object V36 : AGPInterface { override val BaseVariant.variantType: VariantType get() = variantData.type - override val BaseVariant.aar: Collection + override val BaseVariant.aar: FileCollection get() = getFinalArtifactFiles(InternalArtifactType.AAR) - override val BaseVariant.apk: Collection + override val BaseVariant.apk: FileCollection get() = getFinalArtifactFiles(InternalArtifactType.APK) - override val BaseVariant.mergedManifests: Collection + override val BaseVariant.mergedManifests: FileCollection get() = when (this) { is ApplicationVariant -> getFinalArtifactFiles(InternalArtifactType.MERGED_MANIFESTS) is LibraryVariant -> getFinalArtifactFiles(InternalArtifactType.LIBRARY_MANIFEST) else -> TODO("Unsupported variant type: $variantType") } - override val BaseVariant.mergedRes: Collection + override val BaseVariant.mergedRes: FileCollection get() = getFinalArtifactFiles(InternalArtifactType.MERGED_RES) - override val BaseVariant.mergedNativeLibs: Collection + override val BaseVariant.mergedNativeLibs: FileCollection get() = getFinalArtifactFiles(InternalArtifactType.MERGED_NATIVE_LIBS) @Suppress("UnstableApiUsage") - override val BaseVariant.mergedAssets: Collection + override val BaseVariant.mergedAssets: FileCollection get() = getFinalArtifactFiles(when (this) { is ApplicationVariant -> InternalArtifactType.MERGED_ASSETS is LibraryVariant -> InternalArtifactType.LIBRARY_ASSETS else -> TODO("Unsupported variant type: $variantType") }) - override val BaseVariant.processedRes: Collection + override val BaseVariant.processedRes: FileCollection get() = getFinalArtifactFiles(InternalArtifactType.PROCESSED_RES) - override val BaseVariant.symbolList: Collection + override val BaseVariant.symbolList: FileCollection get() = getFinalArtifactFiles(when (this) { is ApplicationVariant -> InternalArtifactType.RUNTIME_SYMBOL_LIST is LibraryVariant -> InternalArtifactType.COMPILE_SYMBOL_LIST else -> TODO("Unsupported variant type : $variantType") }) - override val BaseVariant.symbolListWithPackageName: Collection + override val BaseVariant.symbolListWithPackageName: FileCollection get() = getFinalArtifactFiles(InternalArtifactType.SYMBOL_LIST_WITH_PACKAGE_NAME) - override val BaseVariant.dataBindingDependencyArtifacts: Collection + override val BaseVariant.dataBindingDependencyArtifacts: FileCollection get() = getFinalArtifactFiles(InternalArtifactType.DATA_BINDING_DEPENDENCY_ARTIFACTS) - override val BaseVariant.allClasses: Collection + override val BaseVariant.allClasses: FileCollection get() = getFinalArtifactFiles(AnchorOutputType.ALL_CLASSES) override val BaseVariant.buildTools: BuildToolInfo diff --git a/booster-android-gradle-v3_6/src/test/java/com/didiglobal/booster/android/gradle/v3_6/InternalArtifactTypeTest.kt b/booster-android-gradle-v3_6/src/test/java/com/didiglobal/booster/android/gradle/v3_6/InternalArtifactTypeTest.kt deleted file mode 100644 index 3b9e7be4e..000000000 --- a/booster-android-gradle-v3_6/src/test/java/com/didiglobal/booster/android/gradle/v3_6/InternalArtifactTypeTest.kt +++ /dev/null @@ -1,13 +0,0 @@ -package com.didiglobal.booster.android.gradle.v3_6 - -import kotlin.test.Test - -class InternalArtifactTypeTest { - - @Test - fun test() { - ARTIFACT_TYPES.forEach { (k, v) -> - println("$k => $v") - } - } -} \ No newline at end of file diff --git a/booster-android-gradle-v4_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_0/V40.kt b/booster-android-gradle-v4_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_0/V40.kt index 9d0829c1d..ddb42da1e 100644 --- a/booster-android-gradle-v4_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_0/V40.kt +++ b/booster-android-gradle-v4_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_0/V40.kt @@ -11,6 +11,7 @@ import com.android.build.gradle.internal.publishing.AndroidArtifacts import com.android.build.gradle.internal.scope.AnchorOutputType import com.android.build.gradle.internal.scope.GlobalScope import com.android.build.gradle.internal.scope.InternalArtifactType +import com.android.build.gradle.internal.scope.MultipleArtifactType import com.android.build.gradle.internal.scope.SingleArtifactType import com.android.build.gradle.internal.scope.VariantScope import com.android.build.gradle.internal.variant.BaseVariantData @@ -18,7 +19,6 @@ import com.android.builder.core.VariantType import com.android.builder.model.ApiVersion import com.android.sdklib.AndroidVersion import com.android.sdklib.BuildToolInfo -import com.didiglobal.booster.android.gradle.v4_0.V40.variantScope import com.didiglobal.booster.gradle.AGPInterface import org.gradle.api.Project import org.gradle.api.Task @@ -26,26 +26,49 @@ import org.gradle.api.artifacts.ArtifactCollection import org.gradle.api.file.FileCollection import org.gradle.api.file.FileSystemLocation import org.gradle.api.tasks.TaskProvider -import java.io.File import java.util.TreeMap @Suppress("UnstableApiUsage") -internal val ARTIFACT_TYPES = arrayOf( +internal val SINGLE_ARTIFACT_TYPES = arrayOf( AnchorOutputType::class, InternalArtifactType::class ).map { it.sealedSubclasses }.flatten().map { it.objectInstance as SingleArtifactType -}.map { - it.javaClass.simpleName to it -}.toMap() +}.associateBy { + it.javaClass.simpleName +} + +@Suppress("UnstableApiUsage") +internal val MULTIPLE_ARTIFACT_TYPES = arrayOf( + MultipleArtifactType::class +).map { + it.sealedSubclasses +}.flatten().map { + it.objectInstance as MultipleArtifactType +}.associateBy { + it.javaClass.simpleName +} internal object V40 : AGPInterface { @Suppress("UnstableApiUsage") - private fun BaseVariant.getFinalArtifactFiles(type: SingleArtifactType): Collection { - return listOfNotNull(variantScope.artifacts.getFinalProduct(type).map(FileSystemLocation::getAsFile).orNull) + private fun BaseVariant.getFinalArtifactFiles(type: SingleArtifactType): FileCollection { + return try { + project.objects.fileCollection().from(variantScope.artifacts.getOperations().get(type)) + } catch (e: Throwable) { + project.objects.fileCollection().builtBy(variantScope.artifacts.getOperations().get(type)) + } + } + + @Suppress("UnstableApiUsage") + private fun BaseVariant.getFinalArtifactFiles(type: MultipleArtifactType): FileCollection { + return try { + project.objects.fileCollection().from(variantScope.artifacts.getOperations().getAll(type)) + } catch (e: Throwable) { + project.objects.fileCollection().builtBy(variantScope.artifacts.getOperations().getAll(type)) + } } override val scopeFullWithFeatures: MutableSet @@ -107,8 +130,8 @@ internal object V40 : AGPInterface { override val BaseVariant.hasDynamicFeature: Boolean get() = globalScope.hasDynamicFeatures() - override val BaseVariant.rawAndroidResources: Collection - get() = variantData.allRawAndroidResources.files + override val BaseVariant.rawAndroidResources: FileCollection + get() = variantData.allRawAndroidResources override fun BaseVariant.getArtifactCollection( configType: AndroidArtifacts.ConsumedConfigType, @@ -126,13 +149,21 @@ internal object V40 : AGPInterface { return variantScope.getArtifactFileCollection(configType, scope, artifactType) } - override val BaseVariant.allArtifacts: Map> - get() = ARTIFACT_TYPES.entries.map { - val artifacts: Collection by lazy { - getFinalArtifactFiles(it.value) + override val BaseVariant.allArtifacts: Map + get() = TreeMap().also { all -> + SINGLE_ARTIFACT_TYPES.entries.associateTo(all) { (name, type) -> + val artifacts: FileCollection by lazy { + getFinalArtifactFiles(type) + } + name to artifacts } - it.key to artifacts - }.toMap(TreeMap()) + MULTIPLE_ARTIFACT_TYPES.entries.associateTo(all) { (name, type) -> + val artifacts: FileCollection by lazy { + getFinalArtifactFiles(type) + } + name to artifacts + } + } override val BaseVariant.minSdkVersion: AndroidVersion get() = variantData.variantDslInfo.minSdkVersion @@ -143,49 +174,49 @@ internal object V40 : AGPInterface { override val BaseVariant.variantType: VariantType get() = variantData.variantDslInfo.variantType - override val BaseVariant.aar: Collection + override val BaseVariant.aar: FileCollection get() = getFinalArtifactFiles(InternalArtifactType.AAR) - override val BaseVariant.apk: Collection + override val BaseVariant.apk: FileCollection get() = getFinalArtifactFiles(InternalArtifactType.APK) - override val BaseVariant.mergedManifests: Collection + override val BaseVariant.mergedManifests: FileCollection get() = when (this) { is ApplicationVariant -> getFinalArtifactFiles(InternalArtifactType.MERGED_MANIFESTS) is LibraryVariant -> getFinalArtifactFiles(InternalArtifactType.LIBRARY_MANIFEST) else -> TODO("Unsupported variant type: $variantType") } - override val BaseVariant.mergedRes: Collection + override val BaseVariant.mergedRes: FileCollection get() = getFinalArtifactFiles(InternalArtifactType.MERGED_RES) - override val BaseVariant.mergedNativeLibs: Collection + override val BaseVariant.mergedNativeLibs: FileCollection get() = getFinalArtifactFiles(InternalArtifactType.MERGED_NATIVE_LIBS) - override val BaseVariant.mergedAssets: Collection + override val BaseVariant.mergedAssets: FileCollection get() = when (this) { is ApplicationVariant -> getFinalArtifactFiles(InternalArtifactType.MERGED_ASSETS) is LibraryVariant -> getFinalArtifactFiles(InternalArtifactType.LIBRARY_ASSETS) else -> TODO("Unsupported variant type: $variantType") } - override val BaseVariant.processedRes: Collection + override val BaseVariant.processedRes: FileCollection get() = getFinalArtifactFiles(InternalArtifactType.PROCESSED_RES) - override val BaseVariant.symbolList: Collection + override val BaseVariant.symbolList: FileCollection get() = when (this) { is ApplicationVariant -> getFinalArtifactFiles(InternalArtifactType.RUNTIME_SYMBOL_LIST) is LibraryVariant -> getFinalArtifactFiles(InternalArtifactType.COMPILE_SYMBOL_LIST) else -> TODO("Unsupported variant type : $variantType") } - override val BaseVariant.symbolListWithPackageName: Collection + override val BaseVariant.symbolListWithPackageName: FileCollection get() = getFinalArtifactFiles(InternalArtifactType.SYMBOL_LIST_WITH_PACKAGE_NAME) - override val BaseVariant.dataBindingDependencyArtifacts: Collection + override val BaseVariant.dataBindingDependencyArtifacts: FileCollection get() = getFinalArtifactFiles(InternalArtifactType.DATA_BINDING_DEPENDENCY_ARTIFACTS) - override val BaseVariant.allClasses: Collection + override val BaseVariant.allClasses: FileCollection get() = getFinalArtifactFiles(InternalArtifactType.JAVAC) override val BaseVariant.buildTools: BuildToolInfo diff --git a/booster-android-gradle-v4_0/src/test/java/com/didiglobal/booster/android/gradle/v4_0/InternalArtifactTypeTest.kt b/booster-android-gradle-v4_0/src/test/java/com/didiglobal/booster/android/gradle/v4_0/InternalArtifactTypeTest.kt deleted file mode 100644 index 12e50c5ab..000000000 --- a/booster-android-gradle-v4_0/src/test/java/com/didiglobal/booster/android/gradle/v4_0/InternalArtifactTypeTest.kt +++ /dev/null @@ -1,13 +0,0 @@ -package com.didiglobal.booster.android.gradle.v4_0 - -import kotlin.test.Test - -class InternalArtifactTypeTest { - - @Test - fun test() { - ARTIFACT_TYPES.forEach { (k, v) -> - println("$k => $v") - } - } -} \ No newline at end of file diff --git a/booster-android-gradle-v4_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_1/V41.kt b/booster-android-gradle-v4_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_1/V41.kt index 673a47f40..6807ac805 100644 --- a/booster-android-gradle-v4_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_1/V41.kt +++ b/booster-android-gradle-v4_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_1/V41.kt @@ -2,6 +2,7 @@ package com.didiglobal.booster.android.gradle.v4_1 import com.android.build.api.artifact.Artifact import com.android.build.api.artifact.ArtifactType +import com.android.build.api.artifact.MultipleArtifactType import com.android.build.api.artifact.impl.ArtifactsImpl import com.android.build.api.component.impl.ComponentPropertiesImpl import com.android.build.api.transform.Context @@ -16,6 +17,7 @@ import com.android.build.gradle.internal.publishing.AndroidArtifacts import com.android.build.gradle.internal.scope.AnchorOutputType import com.android.build.gradle.internal.scope.GlobalScope import com.android.build.gradle.internal.scope.InternalArtifactType +import com.android.build.gradle.internal.scope.InternalMultipleArtifactType import com.android.build.gradle.internal.scope.VariantScope import com.android.build.gradle.internal.variant.BaseVariantData import com.android.builder.core.VariantType @@ -29,11 +31,10 @@ import org.gradle.api.artifacts.ArtifactCollection import org.gradle.api.file.FileCollection import org.gradle.api.file.FileSystemLocation import org.gradle.api.tasks.TaskProvider -import java.io.File import java.util.TreeMap @Suppress("UnstableApiUsage") -private val ARTIFACT_TYPES = arrayOf( +private val SINGLE_ARTIFACT_TYPES = arrayOf( ArtifactType::class, AnchorOutputType::class, InternalArtifactType::class @@ -41,9 +42,21 @@ private val ARTIFACT_TYPES = arrayOf( it.sealedSubclasses }.flatten().map { it.objectInstance as Artifact.SingleArtifact -}.map { - it.javaClass.simpleName to it -}.toMap() +}.associateBy { + it.javaClass.simpleName +} + +@Suppress("UnstableApiUsage") +private val MULTIPLE_ARTIFACT_TYPES = arrayOf( + MultipleArtifactType::class, + InternalMultipleArtifactType::class +).map { + it.sealedSubclasses +}.flatten().map { + it.objectInstance as Artifact.MultipleArtifact +}.associateBy { + it.javaClass.simpleName +} internal object V41 : AGPInterface { @@ -53,8 +66,21 @@ internal object V41 : AGPInterface { }.get(this) as ComponentPropertiesImpl @Suppress("UnstableApiUsage") - private fun BaseVariant.getFinalArtifactFiles(type: Artifact.SingleArtifact): Collection { - return listOfNotNull(artifacts.get(type).map(FileSystemLocation::getAsFile).orNull) + private fun BaseVariant.getFinalArtifactFiles(type: Artifact.SingleArtifact): FileCollection { + return try { + project.objects.fileCollection().from(artifacts.get(type)) + } catch (e: Throwable) { + project.objects.fileCollection().builtBy(artifacts.get(type)) + } + } + + @Suppress("UnstableApiUsage") + private fun BaseVariant.getFinalArtifactFiles(type: Artifact.MultipleArtifact): FileCollection { + return try { + project.objects.fileCollection().from(artifacts.getAll(type)) + } catch (e: Throwable) { + project.objects.fileCollection().builtBy(artifacts.getAll(type)) + } } @Suppress("UnstableApiUsage") @@ -120,8 +146,8 @@ internal object V41 : AGPInterface { override val BaseVariant.hasDynamicFeature: Boolean get() = globalScope.hasDynamicFeatures() - override val BaseVariant.rawAndroidResources: Collection - get() = componentProperties.variantData.allRawAndroidResources.files + override val BaseVariant.rawAndroidResources: FileCollection + get() = componentProperties.variantData.allRawAndroidResources override fun BaseVariant.getArtifactCollection( configType: AndroidArtifacts.ConsumedConfigType, @@ -139,13 +165,21 @@ internal object V41 : AGPInterface { return componentProperties.variantDependencies.getArtifactFileCollection(configType, scope, artifactType) } - override val BaseVariant.allArtifacts: Map> - get() = ARTIFACT_TYPES.entries.map { - val artifacts: Collection by lazy { - getFinalArtifactFiles(it.value) + override val BaseVariant.allArtifacts: Map + get() = TreeMap().also { all -> + SINGLE_ARTIFACT_TYPES.entries.associateTo(all) { (name, type) -> + val artifacts: FileCollection by lazy { + getFinalArtifactFiles(type) + } + name to artifacts } - it.key to artifacts - }.toMap(TreeMap()) + MULTIPLE_ARTIFACT_TYPES.entries.associateTo(all) { (name, type) -> + val artifacts: FileCollection by lazy { + getFinalArtifactFiles(type) + } + name to artifacts + } + } override val BaseVariant.minSdkVersion: AndroidVersion get() = componentProperties.minSdkVersion @@ -156,45 +190,45 @@ internal object V41 : AGPInterface { override val BaseVariant.variantType: VariantType get() = componentProperties.variantType - override val BaseVariant.aar: Collection + override val BaseVariant.aar: FileCollection get() = getFinalArtifactFiles(InternalArtifactType.AAR) - override val BaseVariant.apk: Collection + override val BaseVariant.apk: FileCollection get() = getFinalArtifactFiles(ArtifactType.APK) - override val BaseVariant.mergedManifests: Collection + override val BaseVariant.mergedManifests: FileCollection get() = getFinalArtifactFiles(ArtifactType.MERGED_MANIFEST) - override val BaseVariant.mergedRes: Collection + override val BaseVariant.mergedRes: FileCollection get() = getFinalArtifactFiles(InternalArtifactType.MERGED_RES) - override val BaseVariant.mergedNativeLibs: Collection + override val BaseVariant.mergedNativeLibs: FileCollection get() = getFinalArtifactFiles(InternalArtifactType.MERGED_NATIVE_LIBS) - override val BaseVariant.mergedAssets: Collection + override val BaseVariant.mergedAssets: FileCollection get() = when (this) { is ApplicationVariant -> getFinalArtifactFiles(InternalArtifactType.MERGED_ASSETS) is LibraryVariant -> getFinalArtifactFiles(InternalArtifactType.LIBRARY_ASSETS) else -> TODO("Unsupported variant type: $variantType") } - override val BaseVariant.processedRes: Collection + override val BaseVariant.processedRes: FileCollection get() = getFinalArtifactFiles(InternalArtifactType.PROCESSED_RES) - override val BaseVariant.symbolList: Collection + override val BaseVariant.symbolList: FileCollection get() = when (this) { is ApplicationVariant -> getFinalArtifactFiles(InternalArtifactType.RUNTIME_SYMBOL_LIST) is LibraryVariant -> getFinalArtifactFiles(InternalArtifactType.COMPILE_SYMBOL_LIST) else -> TODO("Unsupported variant type : $variantType") } - override val BaseVariant.symbolListWithPackageName: Collection + override val BaseVariant.symbolListWithPackageName: FileCollection get() = getFinalArtifactFiles(InternalArtifactType.SYMBOL_LIST_WITH_PACKAGE_NAME) - override val BaseVariant.dataBindingDependencyArtifacts: Collection + override val BaseVariant.dataBindingDependencyArtifacts: FileCollection get() = getFinalArtifactFiles(InternalArtifactType.DATA_BINDING_DEPENDENCY_ARTIFACTS) - override val BaseVariant.allClasses: Collection + override val BaseVariant.allClasses: FileCollection get() = getFinalArtifactFiles(InternalArtifactType.JAVAC) override val BaseVariant.buildTools: BuildToolInfo diff --git a/booster-android-gradle-v4_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42.kt b/booster-android-gradle-v4_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42.kt index e4e49b8a1..6bc0cb527 100644 --- a/booster-android-gradle-v4_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42.kt +++ b/booster-android-gradle-v4_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42.kt @@ -2,6 +2,7 @@ package com.didiglobal.booster.android.gradle.v4_2 import com.android.build.api.artifact.Artifact import com.android.build.api.artifact.ArtifactType +import com.android.build.api.artifact.MultipleArtifactType import com.android.build.api.artifact.impl.ArtifactsImpl import com.android.build.api.component.impl.ComponentImpl import com.android.build.api.transform.Context @@ -16,6 +17,7 @@ import com.android.build.gradle.internal.publishing.AndroidArtifacts import com.android.build.gradle.internal.scope.AnchorOutputType import com.android.build.gradle.internal.scope.GlobalScope import com.android.build.gradle.internal.scope.InternalArtifactType +import com.android.build.gradle.internal.scope.InternalMultipleArtifactType import com.android.build.gradle.internal.scope.VariantScope import com.android.build.gradle.internal.variant.BaseVariantData import com.android.builder.core.VariantType @@ -29,11 +31,10 @@ import org.gradle.api.artifacts.ArtifactCollection import org.gradle.api.file.FileCollection import org.gradle.api.file.FileSystemLocation import org.gradle.api.tasks.TaskProvider -import java.io.File import java.util.TreeMap @Suppress("UnstableApiUsage") -private val ARTIFACT_TYPES = arrayOf( +private val SINGLE_ARTIFACT_TYPES = arrayOf( ArtifactType::class, AnchorOutputType::class, InternalArtifactType::class @@ -41,9 +42,21 @@ private val ARTIFACT_TYPES = arrayOf( it.sealedSubclasses }.flatten().map { it.objectInstance as Artifact.SingleArtifact -}.map { - it.javaClass.simpleName to it -}.toMap() +}.associateBy { + it.javaClass.simpleName +} + +@Suppress("UnstableApiUsage") +private val MULTIPLE_ARTIFACT_TYPES = arrayOf( + MultipleArtifactType::class, + InternalMultipleArtifactType::class +).map { + it.sealedSubclasses +}.flatten().map { + it.objectInstance as Artifact.MultipleArtifact +}.associateBy { + it.javaClass.simpleName +} internal object V42 : AGPInterface { @@ -53,8 +66,21 @@ internal object V42 : AGPInterface { }.get(this) as ComponentImpl @Suppress("UnstableApiUsage") - private fun BaseVariant.getFinalArtifactFiles(type: Artifact.SingleArtifact): Collection { - return listOfNotNull(artifacts.get(type).map(FileSystemLocation::getAsFile).orNull) + private fun BaseVariant.getFinalArtifactFiles(type: Artifact.SingleArtifact): FileCollection { + return try { + project.objects.fileCollection().from(artifacts.get(type).get()) + } catch (e: Throwable) { + project.objects.fileCollection().builtBy(artifacts.get(type)) + } + } + + @Suppress("UnstableApiUsage") + private fun BaseVariant.getFinalArtifactFiles(type: Artifact.MultipleArtifact): FileCollection { + return try { + project.objects.fileCollection().from(artifacts.getAll(type)) + } catch (e: Throwable) { + project.objects.fileCollection().builtBy(artifacts.getAll(type)) + } } @Suppress("UnstableApiUsage") @@ -121,8 +147,8 @@ internal object V42 : AGPInterface { override val BaseVariant.hasDynamicFeature: Boolean get() = globalScope.hasDynamicFeatures() - override val BaseVariant.rawAndroidResources: Collection - get() = component.variantData.allRawAndroidResources.files + override val BaseVariant.rawAndroidResources: FileCollection + get() = component.variantData.allRawAndroidResources override fun BaseVariant.getArtifactCollection( configType: AndroidArtifacts.ConsumedConfigType, @@ -140,13 +166,21 @@ internal object V42 : AGPInterface { return component.variantDependencies.getArtifactFileCollection(configType, scope, artifactType) } - override val BaseVariant.allArtifacts: Map> - get() = ARTIFACT_TYPES.entries.map { - val artifacts: Collection by lazy { - getFinalArtifactFiles(it.value) + override val BaseVariant.allArtifacts: Map + get() = TreeMap().also { all -> + SINGLE_ARTIFACT_TYPES.entries.associateTo(all) { (name, type) -> + val artifacts: FileCollection by lazy { + getFinalArtifactFiles(type) + } + name to artifacts } - it.key to artifacts - }.toMap(TreeMap()) + MULTIPLE_ARTIFACT_TYPES.entries.associateTo(all) { (name, type) -> + val artifacts: FileCollection by lazy { + getFinalArtifactFiles(type) + } + name to artifacts + } + } override val BaseVariant.minSdkVersion: AndroidVersion get() = component.minSdkVersion.run { @@ -160,45 +194,45 @@ internal object V42 : AGPInterface { override val BaseVariant.variantType: VariantType get() = component.variantType - override val BaseVariant.aar: Collection + override val BaseVariant.aar: FileCollection get() = getFinalArtifactFiles(ArtifactType.AAR) - override val BaseVariant.apk: Collection + override val BaseVariant.apk: FileCollection get() = getFinalArtifactFiles(ArtifactType.APK) - override val BaseVariant.mergedManifests: Collection + override val BaseVariant.mergedManifests: FileCollection get() = getFinalArtifactFiles(ArtifactType.MERGED_MANIFEST) - override val BaseVariant.mergedRes: Collection + override val BaseVariant.mergedRes: FileCollection get() = getFinalArtifactFiles(InternalArtifactType.MERGED_RES) - override val BaseVariant.mergedNativeLibs: Collection + override val BaseVariant.mergedNativeLibs: FileCollection get() = getFinalArtifactFiles(InternalArtifactType.MERGED_NATIVE_LIBS) - override val BaseVariant.mergedAssets: Collection + override val BaseVariant.mergedAssets: FileCollection get() = when (this) { is ApplicationVariant -> getFinalArtifactFiles(InternalArtifactType.MERGED_ASSETS) is LibraryVariant -> getFinalArtifactFiles(InternalArtifactType.LIBRARY_ASSETS) else -> TODO("Unsupported variant type: $variantType") } - override val BaseVariant.processedRes: Collection + override val BaseVariant.processedRes: FileCollection get() = getFinalArtifactFiles(InternalArtifactType.PROCESSED_RES) - override val BaseVariant.symbolList: Collection + override val BaseVariant.symbolList: FileCollection get() = when (this) { is ApplicationVariant -> getFinalArtifactFiles(InternalArtifactType.RUNTIME_SYMBOL_LIST) is LibraryVariant -> getFinalArtifactFiles(InternalArtifactType.COMPILE_SYMBOL_LIST) else -> TODO("Unsupported variant type : $variantType") } - override val BaseVariant.symbolListWithPackageName: Collection + override val BaseVariant.symbolListWithPackageName: FileCollection get() = getFinalArtifactFiles(InternalArtifactType.SYMBOL_LIST_WITH_PACKAGE_NAME) - override val BaseVariant.dataBindingDependencyArtifacts: Collection + override val BaseVariant.dataBindingDependencyArtifacts: FileCollection get() = getFinalArtifactFiles(InternalArtifactType.DATA_BINDING_DEPENDENCY_ARTIFACTS) - override val BaseVariant.allClasses: Collection + override val BaseVariant.allClasses: FileCollection get() = getFinalArtifactFiles(InternalArtifactType.JAVAC) override val BaseVariant.buildTools: BuildToolInfo diff --git a/booster-android-gradle-v7_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_0/V70.kt b/booster-android-gradle-v7_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_0/V70.kt index ce4f96f4c..4fa09f28d 100644 --- a/booster-android-gradle-v7_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_0/V70.kt +++ b/booster-android-gradle-v7_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_0/V70.kt @@ -1,6 +1,7 @@ package com.didiglobal.booster.android.gradle.v7_0 import com.android.build.api.artifact.Artifact +import com.android.build.api.artifact.MultipleArtifact import com.android.build.api.artifact.SingleArtifact import com.android.build.api.artifact.impl.ArtifactsImpl import com.android.build.api.component.impl.ComponentImpl @@ -18,6 +19,7 @@ import com.android.build.gradle.internal.scope.AnchorOutputType import com.android.build.gradle.internal.scope.BuildArtifactType import com.android.build.gradle.internal.scope.GlobalScope import com.android.build.gradle.internal.scope.InternalArtifactType +import com.android.build.gradle.internal.scope.InternalMultipleArtifactType import com.android.build.gradle.internal.scope.VariantScope import com.android.build.gradle.internal.variant.BaseVariantData import com.android.builder.core.VariantType @@ -31,11 +33,10 @@ import org.gradle.api.artifacts.ArtifactCollection import org.gradle.api.file.FileCollection import org.gradle.api.file.FileSystemLocation import org.gradle.api.tasks.TaskProvider -import java.io.File import java.util.TreeMap @Suppress("UnstableApiUsage") -private val ARTIFACT_TYPES = arrayOf( +private val SINGLE_ARTIFACT_TYPES = arrayOf( AnchorOutputType::class, BuildArtifactType::class, InternalArtifactType::class, @@ -45,10 +46,22 @@ private val ARTIFACT_TYPES = arrayOf( it.sealedSubclasses }.flatten().map { it.objectInstance as SingleArtifact -}.map { - it.javaClass.simpleName to it -}.toMap() +}.associateBy { + it.javaClass.simpleName +} + +private val MULTIPLE_ARTIFACT_TYPES = arrayOf( + MultipleArtifact::class, + InternalMultipleArtifactType::class +).map { + it.sealedSubclasses +}.flatten().map { + it.objectInstance as MultipleArtifact +}.associateBy { + it.javaClass.simpleName +} +@Suppress("DEPRECATION") internal object V70 : AGPInterface { private val BaseVariant.component: ComponentImpl @@ -57,8 +70,21 @@ internal object V70 : AGPInterface { }.get(this) as ComponentImpl @Suppress("UnstableApiUsage") - private fun BaseVariant.getFinalArtifactFiles(type: Artifact.Single): Collection { - return listOfNotNull(artifacts.get(type).map(FileSystemLocation::getAsFile).orNull) + private fun BaseVariant.getFinalArtifactFiles(type: Artifact.Single): FileCollection { + return try { + project.objects.fileCollection().from(artifacts.get(type)) + } catch (e: Throwable) { + project.objects.fileCollection().builtBy(artifacts.get(type)) + } + } + + @Suppress("UnstableApiUsage") + private fun BaseVariant.getFinalArtifactFiles(type: Artifact.Multiple): FileCollection { + return try { + project.objects.fileCollection().from(artifacts.getAll(type)) + } catch (e: Throwable) { + project.objects.fileCollection().builtBy(artifacts.getAll(type)) + } } @Suppress("UnstableApiUsage") @@ -129,8 +155,8 @@ internal object V70 : AGPInterface { override val BaseVariant.hasDynamicFeature: Boolean get() = globalScope.hasDynamicFeatures() - override val BaseVariant.rawAndroidResources: Collection - get() = component.variantData.allRawAndroidResources.files + override val BaseVariant.rawAndroidResources: FileCollection + get() = component.variantData.allRawAndroidResources override fun BaseVariant.getArtifactCollection( configType: AndroidArtifacts.ConsumedConfigType, @@ -148,13 +174,21 @@ internal object V70 : AGPInterface { return component.variantDependencies.getArtifactFileCollection(configType, scope, artifactType) } - override val BaseVariant.allArtifacts: Map> - get() = ARTIFACT_TYPES.entries.map { - val artifacts: Collection by lazy { - getFinalArtifactFiles(it.value) + override val BaseVariant.allArtifacts: Map + get() = TreeMap().also { all -> + SINGLE_ARTIFACT_TYPES.entries.associateTo(all) { (name, type) -> + val artifacts: FileCollection by lazy { + getFinalArtifactFiles(type) + } + name to artifacts + } + MULTIPLE_ARTIFACT_TYPES.entries.associateTo(all) { (name, type) -> + val artifacts: FileCollection by lazy { + getFinalArtifactFiles(type) + } + name to artifacts } - it.key to artifacts - }.toMap(TreeMap()) + } override val BaseVariant.minSdkVersion: AndroidVersion get() = component.minSdkVersion.run { @@ -168,45 +202,45 @@ internal object V70 : AGPInterface { override val BaseVariant.variantType: VariantType get() = component.variantType - override val BaseVariant.aar: Collection + override val BaseVariant.aar: FileCollection get() = getFinalArtifactFiles(SingleArtifact.AAR) - override val BaseVariant.apk: Collection + override val BaseVariant.apk: FileCollection get() = getFinalArtifactFiles(SingleArtifact.APK) - override val BaseVariant.mergedManifests: Collection + override val BaseVariant.mergedManifests: FileCollection get() = getFinalArtifactFiles(SingleArtifact.MERGED_MANIFEST) - override val BaseVariant.mergedRes: Collection + override val BaseVariant.mergedRes: FileCollection get() = getFinalArtifactFiles(InternalArtifactType.MERGED_RES) - override val BaseVariant.mergedNativeLibs: Collection + override val BaseVariant.mergedNativeLibs: FileCollection get() = getFinalArtifactFiles(InternalArtifactType.MERGED_NATIVE_LIBS) - override val BaseVariant.mergedAssets: Collection + override val BaseVariant.mergedAssets: FileCollection get() = when (this) { is ApplicationVariant -> getFinalArtifactFiles(InternalArtifactType.MERGED_ASSETS) is LibraryVariant -> getFinalArtifactFiles(InternalArtifactType.LIBRARY_ASSETS) else -> TODO("Unsupported variant type: $variantType") } - override val BaseVariant.processedRes: Collection + override val BaseVariant.processedRes: FileCollection get() = getFinalArtifactFiles(InternalArtifactType.PROCESSED_RES) - override val BaseVariant.symbolList: Collection + override val BaseVariant.symbolList: FileCollection get() = when (this) { is ApplicationVariant -> getFinalArtifactFiles(InternalArtifactType.RUNTIME_SYMBOL_LIST) is LibraryVariant -> getFinalArtifactFiles(InternalArtifactType.COMPILE_SYMBOL_LIST) else -> TODO("Unsupported variant type : $variantType") } - override val BaseVariant.symbolListWithPackageName: Collection + override val BaseVariant.symbolListWithPackageName: FileCollection get() = getFinalArtifactFiles(InternalArtifactType.SYMBOL_LIST_WITH_PACKAGE_NAME) - override val BaseVariant.dataBindingDependencyArtifacts: Collection + override val BaseVariant.dataBindingDependencyArtifacts: FileCollection get() = getFinalArtifactFiles(InternalArtifactType.DATA_BINDING_DEPENDENCY_ARTIFACTS) - override val BaseVariant.allClasses: Collection + override val BaseVariant.allClasses: FileCollection get() = getFinalArtifactFiles(InternalArtifactType.JAVAC) override val BaseVariant.buildTools: BuildToolInfo diff --git a/booster-api/src/main/kotlin/com/didiglobal/booster/transform/VariantTransformHelper.kt b/booster-api/src/main/kotlin/com/didiglobal/booster/transform/VariantTransformHelper.kt index 9eecc8ab3..e20e4084b 100644 --- a/booster-api/src/main/kotlin/com/didiglobal/booster/transform/VariantTransformHelper.kt +++ b/booster-api/src/main/kotlin/com/didiglobal/booster/transform/VariantTransformHelper.kt @@ -11,6 +11,7 @@ import com.didiglobal.booster.gradle.mergedManifests import com.didiglobal.booster.gradle.mergedRes import com.didiglobal.booster.gradle.platform import com.didiglobal.booster.gradle.processedRes +import com.didiglobal.booster.gradle.project import com.didiglobal.booster.gradle.symbolList import com.didiglobal.booster.gradle.symbolListWithPackageName import com.didiglobal.booster.kotlinx.search @@ -28,16 +29,16 @@ val BaseVariant.artifacts: ArtifactManager get() = object : ArtifactManager { override fun get(type: String): Collection = when (type) { - ArtifactManager.AAR -> aar - ArtifactManager.ALL_CLASSES -> allClasses - ArtifactManager.APK -> apk - ArtifactManager.MERGED_ASSETS -> mergedAssets - ArtifactManager.MERGED_RES -> mergedRes + ArtifactManager.AAR -> aar.files + ArtifactManager.ALL_CLASSES -> allClasses.files + ArtifactManager.APK -> apk.files + ArtifactManager.MERGED_ASSETS -> mergedAssets.files + ArtifactManager.MERGED_RES -> mergedRes.files ArtifactManager.MERGED_MANIFESTS -> mergedManifests.search { SdkConstants.FN_ANDROID_MANIFEST_XML == it.name } ArtifactManager.PROCESSED_RES -> processedRes.search { it.name.startsWith(SdkConstants.FN_RES_BASE) && it.name.endsWith(SdkConstants.EXT_RES) } - ArtifactManager.SYMBOL_LIST -> symbolList - ArtifactManager.SYMBOL_LIST_WITH_PACKAGE_NAME -> symbolListWithPackageName - ArtifactManager.DATA_BINDING_DEPENDENCY_ARTIFACTS -> allArtifacts[ArtifactManager.DATA_BINDING_DEPENDENCY_ARTIFACTS] ?: emptyList() + ArtifactManager.SYMBOL_LIST -> symbolList.files + ArtifactManager.SYMBOL_LIST_WITH_PACKAGE_NAME -> symbolListWithPackageName.files + ArtifactManager.DATA_BINDING_DEPENDENCY_ARTIFACTS -> allArtifacts[ArtifactManager.DATA_BINDING_DEPENDENCY_ARTIFACTS]?.files ?: emptyList() else -> TODO("Unexpected type: $type") } diff --git a/booster-task-list-artifact/src/main/kotlin/com/didiglobal/booster/task/artifact/ListArtifact.kt b/booster-task-list-artifact/src/main/kotlin/com/didiglobal/booster/task/artifact/ListArtifact.kt index 14b800cf5..2247bfde7 100644 --- a/booster-task-list-artifact/src/main/kotlin/com/didiglobal/booster/task/artifact/ListArtifact.kt +++ b/booster-task-list-artifact/src/main/kotlin/com/didiglobal/booster/task/artifact/ListArtifact.kt @@ -17,7 +17,7 @@ internal open class ListArtifact : DefaultTask() { val maxTypeWidth: Int = artifacts.keys.map { it.length }.max()!! artifacts.forEach { (type, files) -> - println("${".".repeat(maxTypeWidth - type.length + 1)}$type : $files") + println("${".".repeat(maxTypeWidth - type.length + 1)}$type : ${files.files}") } } diff --git a/booster-task-list-shared-library/src/main/kotlin/com/didiglobal/booster/task/so/ListSharedLibrary.kt b/booster-task-list-shared-library/src/main/kotlin/com/didiglobal/booster/task/so/ListSharedLibrary.kt index 698fce390..d99280994 100644 --- a/booster-task-list-shared-library/src/main/kotlin/com/didiglobal/booster/task/so/ListSharedLibrary.kt +++ b/booster-task-list-shared-library/src/main/kotlin/com/didiglobal/booster/task/so/ListSharedLibrary.kt @@ -1,7 +1,7 @@ package com.didiglobal.booster.task.so import com.android.build.gradle.api.BaseVariant -import com.didiglobal.booster.gradle.ResolvedArtifactResults +import com.didiglobal.booster.gradle.dependencies import com.didiglobal.booster.kotlinx.CSI_CYAN import com.didiglobal.booster.kotlinx.CSI_RESET import com.didiglobal.booster.kotlinx.ifNotEmpty @@ -17,7 +17,7 @@ internal open class ListSharedLibrary : DefaultTask() { @TaskAction fun run() { - ResolvedArtifactResults(variant).forEach { result -> + variant.dependencies.forEach { result -> when (result.file.extension.toLowerCase()) { "aar", "jar" -> { JarFile(result.file).use { jar -> From 322fe7620e27d709e047c657f59e3d92e88c1ec8 Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Sat, 21 May 2022 00:21:49 +0800 Subject: [PATCH 125/187] Update README.md & RELEASE-NOTES.md --- README.md | 4 ++-- RELEASE-NOTES.md | 7 +++++++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index b92db3961..7c925c035 100644 --- a/README.md +++ b/README.md @@ -74,7 +74,7 @@ The best practise of using Booster is integrating the specific module to solve t ```groovy buildscript { - ext.booster_version = '4.8.0' + ext.booster_version = '4.9.0' repositories { google() mavenCentral() @@ -122,7 +122,7 @@ The `plugins` DSL also supported since Booster *3.0.0* ```groovy plugins { - id 'com.didiglobal.booster' version '4.8.0' + id 'com.didiglobal.booster' version '4.9.0' } ``` diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index eafed07b7..a403a5ef0 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -1,3 +1,10 @@ +## v4.9.0 + +- Fix [CVE-2020-15250] In JUnit4 from version 4.7 and before 4.13.1, the test rule TemporaryFolder contains a local information disclosure vulnerability +- Fix variant artifacts acquiring +- Fix integration tests +- Refactoring `booster-graph` to support grouping and render options + ## v4.8.0 - Fix issue [#311](https://github.com/didi/booster/issues/311) From ad3699f474fefb1d49bb4b9adb27f33e915041d4 Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Fri, 3 Jun 2022 19:57:39 +0800 Subject: [PATCH 126/187] Improve ClassSet to avoid memory leaks --- .../com/didiglobal/booster/cha/ArchivedClassSet.kt | 12 ++++++------ .../com/didiglobal/booster/cha/DirectoryClassSet.kt | 3 +-- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/ArchivedClassSet.kt b/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/ArchivedClassSet.kt index c174ad7da..f837ac1d7 100644 --- a/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/ArchivedClassSet.kt +++ b/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/ArchivedClassSet.kt @@ -19,12 +19,12 @@ internal class ArchivedClassSet() { - private val zip = ZipFile(location) - private val classes: Map by lazy { - zip.entries().iterator().asIterable().parallelStream().filter(CLASS_ENTRY_FILTER).map { entry -> - parser.parse(zip.getInputStream(entry)) - }.collect(toMap(parser::getClassName) { it }) + ZipFile(location).use { zip -> + zip.entries().iterator().asIterable().parallelStream().filter(CLASS_ENTRY_FILTER).map { entry -> + parser.parse(zip.getInputStream(entry)) + }.collect(toMap(parser::getClassName) { it }) + } } constructor(location: String, parser: ClassParser) : this(File(location).takeIf { @@ -47,7 +47,7 @@ internal class ArchivedClassSet = this.classes.values.iterator() - override fun close() = zip.close() + override fun close() = Unit override fun toString(): String = this.location.canonicalPath diff --git a/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/DirectoryClassSet.kt b/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/DirectoryClassSet.kt index 6d715555a..a6e077655 100644 --- a/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/DirectoryClassSet.kt +++ b/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/DirectoryClassSet.kt @@ -44,7 +44,6 @@ internal class DirectoryClassSet Date: Fri, 3 Jun 2022 23:04:05 +0800 Subject: [PATCH 127/187] Improve ClassSet to support loading classes from AAR --- booster-cha/build.gradle | 1 + .../booster/cha/ArchivedClassSet.kt | 28 +++++++++------ .../com/didiglobal/booster/cha/ClassSet.kt | 6 ++-- .../didiglobal/booster/cha/ClassSetTest.kt | 36 +++++++++++++------ 4 files changed, 47 insertions(+), 24 deletions(-) diff --git a/booster-cha/build.gradle b/booster-cha/build.gradle index e0b7d2068..fdf668472 100644 --- a/booster-cha/build.gradle +++ b/booster-cha/build.gradle @@ -4,4 +4,5 @@ dependencies { api project(':booster-command') api project(':booster-graph') api project(':booster-transform-util') + testImplementation project(':booster-transform-asm') } diff --git a/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/ArchivedClassSet.kt b/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/ArchivedClassSet.kt index f837ac1d7..f49ea8b0a 100644 --- a/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/ArchivedClassSet.kt +++ b/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/ArchivedClassSet.kt @@ -1,15 +1,10 @@ package com.didiglobal.booster.cha -import com.didiglobal.booster.kotlinx.asIterable import com.didiglobal.booster.kotlinx.green -import com.didiglobal.booster.kotlinx.parallelStream import java.io.File +import java.io.FileInputStream import java.io.FileNotFoundException -import java.util.stream.Collectors.toMap -import java.util.zip.ZipEntry -import java.util.zip.ZipFile - -private val CLASS_ENTRY_FILTER = { entry: ZipEntry -> entry.name.endsWith(".class", true) } +import java.util.zip.ZipInputStream /** * @author johnsonlee @@ -20,10 +15,8 @@ internal class ArchivedClassSet() { private val classes: Map by lazy { - ZipFile(location).use { zip -> - zip.entries().iterator().asIterable().parallelStream().filter(CLASS_ENTRY_FILTER).map { entry -> - parser.parse(zip.getInputStream(entry)) - }.collect(toMap(parser::getClassName) { it }) + ZipInputStream(FileInputStream(location)).use { zip -> + loadClasses(zip).associateByTo(mutableMapOf(), parser::getClassName) } } @@ -31,6 +24,19 @@ internal class ArchivedClassSet { + val classes = mutableListOf() + while (true) { + val entry = zip.nextEntry ?: break + classes += when { + entry.name.endsWith(".class", true) -> listOf(parser.parse(zip)) + entry.name == "classes.jar" -> loadClasses(ZipInputStream(zip)) + else -> emptyList() + } + } + return classes + } + override fun get(name: String) = this.classes[name] override fun contains(name: String) = this.classes.containsKey(name) diff --git a/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/ClassSet.kt b/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/ClassSet.kt index 6aa2680e3..f500c5caf 100644 --- a/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/ClassSet.kt +++ b/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/ClassSet.kt @@ -28,14 +28,14 @@ interface ClassSet> : Set> from( file: File, parser: ClassParser ): ClassSet = when { - file.isDirectory -> DirectoryClassSet(file, parser) - file.extension matches ARCHIVES -> ArchivedClassSet(file, parser) + file.isDirectory -> DirectoryClassSet(file, parser) + file.extension matches ARCHIVES -> ArchivedClassSet(file, parser) else -> { System.err.println(red("unsupported file: $file")) EmptyClassSet(parser) diff --git a/booster-cha/src/test/kotlin/com/didiglobal/booster/cha/ClassSetTest.kt b/booster-cha/src/test/kotlin/com/didiglobal/booster/cha/ClassSetTest.kt index edda72707..e60525c5f 100644 --- a/booster-cha/src/test/kotlin/com/didiglobal/booster/cha/ClassSetTest.kt +++ b/booster-cha/src/test/kotlin/com/didiglobal/booster/cha/ClassSetTest.kt @@ -1,31 +1,47 @@ package com.didiglobal.booster.cha -import com.didiglobal.booster.cha.Build +import com.didiglobal.booster.transform.asm.asClassNode import com.didiglobal.booster.transform.asm.className +import org.objectweb.asm.tree.ClassNode import java.io.File +import java.io.InputStream import kotlin.test.Test import kotlin.test.assertTrue +object AsmClassFileParser : ClassFileParser { + + override fun parse(input: InputStream): ClassNode = input.asClassNode() + + override fun getAccessFlags(classNode: ClassNode): Int = classNode.access + + override fun getInterfaces(classNode: ClassNode): Array = classNode.interfaces.toTypedArray() + + override fun getSuperName(classNode: ClassNode): String? = classNode.superName + + override fun getClassName(classNode: ClassNode): String = classNode.name + +} + class ClassSetTest { @Test fun `create directory backed class archive`() { val classes = File(javaClass.protectionDomain.codeSource.location.file) - assertTrue(ClassSet.from(classes).mapNotNull { it.className }.toSet().isNotEmpty()) + assertTrue(ClassSet.from(classes, AsmClassFileParser).mapNotNull { it.className }.toSet().isNotEmpty()) } @Test fun `create jar backed class archive`() { val jar = File(javaClass.protectionDomain.codeSource.location.file).resolve("..${File.separator}..${File.separator}..${File.separator}libs${File.separator}${Build.ARTIFACT}-${Build.VERSION}.jar") - assertTrue(ClassSet.from(jar.canonicalFile).mapNotNull { it.className }.toSet().isNotEmpty()) + assertTrue(ClassSet.from(jar.canonicalFile, AsmClassFileParser).mapNotNull { it.className }.toSet().isNotEmpty()) } @Test fun `create clustered class archives`() { val classes = File(javaClass.protectionDomain.codeSource.location.file) - val arch1 = ClassSet.from(classes) + val arch1 = ClassSet.from(classes, AsmClassFileParser) val jar = File(javaClass.protectionDomain.codeSource.location.file).resolve("..${File.separator}..${File.separator}..${File.separator}libs${File.separator}${Build.ARTIFACT}-${Build.VERSION}.jar") - val arch2 = ClassSet.from(jar.canonicalFile) + val arch2 = ClassSet.from(jar.canonicalFile, AsmClassFileParser) (arch1 + arch2).parallelStream().forEach { println(it.className) @@ -35,22 +51,22 @@ class ClassSetTest { @Test fun `load clustered class archives`() { val classes = File(javaClass.protectionDomain.codeSource.location.file) - val arch1 = ClassSet.from(classes) + val arch1 = ClassSet.from(classes, AsmClassFileParser) val jar = File(javaClass.protectionDomain.codeSource.location.file).resolve("..${File.separator}..${File.separator}..${File.separator}libs${File.separator}${Build.ARTIFACT}-${Build.VERSION}.jar") - val arch2 = ClassSet.from(jar.canonicalFile) - (arch1 + arch2).use(ClassSet::load) + val arch2 = ClassSet.from(jar.canonicalFile, AsmClassFileParser) + (arch1 + arch2).use(ClassSet::load) } @Test fun `load directory backed class archives`() { val classes = File(javaClass.protectionDomain.codeSource.location.file) - ClassSet.from(classes).use(ClassSet::load) + ClassSet.from(classes, AsmClassFileParser).use(ClassSet::load) } @Test fun `load jar backed class archives`() { val jar = File(javaClass.protectionDomain.codeSource.location.file).resolve("..${File.separator}..${File.separator}..${File.separator}libs${File.separator}${Build.ARTIFACT}-${Build.VERSION}.jar") - ClassSet.from(jar.canonicalFile).use(ClassSet::load) + ClassSet.from(jar.canonicalFile, AsmClassFileParser).use(ClassSet::load) } } \ No newline at end of file From dd767892cee1ad28c088852bcc0be1dd381b8703 Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Mon, 6 Jun 2022 00:28:02 +0800 Subject: [PATCH 128/187] Fix transform output conflicts --- .../gradle/BoosterTransformInvocation.kt | 29 +++++++++---------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/BoosterTransformInvocation.kt b/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/BoosterTransformInvocation.kt index ef41e46e8..cd108a25c 100644 --- a/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/BoosterTransformInvocation.kt +++ b/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/BoosterTransformInvocation.kt @@ -13,7 +13,6 @@ import com.didiglobal.booster.kotlinx.NCPU import com.didiglobal.booster.kotlinx.file import com.didiglobal.booster.kotlinx.green import com.didiglobal.booster.kotlinx.red -import com.didiglobal.booster.kotlinx.touch import com.didiglobal.booster.transform.AbstractKlassPool import com.didiglobal.booster.transform.ArtifactManager import com.didiglobal.booster.transform.Collector @@ -22,6 +21,7 @@ import com.didiglobal.booster.transform.artifacts import com.didiglobal.booster.transform.util.CompositeCollector import com.didiglobal.booster.transform.util.collect import com.didiglobal.booster.transform.util.transform +import org.apache.commons.codec.digest.DigestUtils.md5Hex import java.io.File import java.net.URI import java.util.concurrent.Callable @@ -160,8 +160,7 @@ internal class BoosterTransformInvocation( executor.submit { val format = if (input is DirectoryInput) Format.DIRECTORY else Format.JAR outputProvider?.let { provider -> - project.logger.info("Transforming ${input.file}") - input.transform(provider.getContentLocation(input.name, input.contentTypes, input.scopes, format)) + input.transform(provider.getContentLocation(input.id, input.contentTypes, input.scopes, format)) } } } @@ -187,9 +186,8 @@ internal class BoosterTransformInvocation( when (jarInput.status) { REMOVED -> jarInput.file.delete() else -> { - project.logger.info("Transforming ${jarInput.file}") outputProvider?.let { provider -> - jarInput.transform(provider.getContentLocation(jarInput.name, jarInput.contentTypes, jarInput.scopes, Format.JAR)) + jarInput.transform(provider.getContentLocation(jarInput.id, jarInput.contentTypes, jarInput.scopes, Format.JAR)) } } } @@ -200,9 +198,8 @@ internal class BoosterTransformInvocation( dirInput.changedFiles.forEach { (file, status) -> when (status) { REMOVED -> { - project.logger.info("Deleting $file") outputProvider?.let { provider -> - provider.getContentLocation(dirInput.name, dirInput.contentTypes, dirInput.scopes, Format.DIRECTORY).parentFile.listFiles()?.asSequence() + provider.getContentLocation(dirInput.id, dirInput.contentTypes, dirInput.scopes, Format.DIRECTORY).parentFile.listFiles()?.asSequence() ?.filter { it.isDirectory } ?.map { File(it, dirInput.file.toURI().relativize(file.toURI()).path) } ?.filter { it.exists() } @@ -211,14 +208,10 @@ internal class BoosterTransformInvocation( file.delete() } else -> { - project.logger.info("Transforming $file") outputProvider?.let { provider -> - val root = provider.getContentLocation(dirInput.name, dirInput.contentTypes, dirInput.scopes, Format.DIRECTORY) + val root = provider.getContentLocation(dirInput.id, dirInput.contentTypes, dirInput.scopes, Format.DIRECTORY) val output = File(root, base.relativize(file.toURI()).path) - outputs += output - file.transform(output) { bytecode -> - bytecode.transform() - } + file.transform(output) } } } @@ -234,9 +227,15 @@ internal class BoosterTransformInvocation( } } - private fun QualifiedContent.transform(output: File) { + private val QualifiedContent.id: String + get() = md5Hex(file.absolutePath) + + private fun QualifiedContent.transform(output: File) = this.file.transform(output) + + private fun File.transform(output: File) { outputs += output - this.file.transform(output) { bytecode -> + project.logger.info("Booster transforming $this => $output") + this.transform(output) { bytecode -> bytecode.transform() } } From 77ddff0e6c9e269c92744e9fe9da1e69d5d42880 Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Tue, 7 Jun 2022 20:01:19 +0800 Subject: [PATCH 129/187] Add `execute(...)` for `Command` --- .../com/didiglobal/booster/command/Command.kt | 13 +++++++++++++ .../com/didiglobal/booster/command/NoneCommand.kt | 5 ++++- .../com/didiglobal/booster/graph/dot/DotGraph.kt | 15 +++++---------- 3 files changed, 22 insertions(+), 11 deletions(-) diff --git a/booster-command/src/main/kotlin/com/didiglobal/booster/command/Command.kt b/booster-command/src/main/kotlin/com/didiglobal/booster/command/Command.kt index c1eaa99d7..7f6160641 100644 --- a/booster-command/src/main/kotlin/com/didiglobal/booster/command/Command.kt +++ b/booster-command/src/main/kotlin/com/didiglobal/booster/command/Command.kt @@ -1,5 +1,8 @@ package com.didiglobal.booster.command +import com.didiglobal.booster.kotlinx.stderr +import java.io.File +import java.io.IOException import java.io.Serializable import java.net.URL @@ -16,6 +19,16 @@ open class Command(val name: String, val location: URL) : Serializable { else -> false } + @Throws(IOException::class) + open fun execute(vararg args: String) { + Runtime.getRuntime().exec(arrayOf(location.file.let(::File).canonicalPath) + args).let { p -> + p.waitFor() + if (p.exitValue() != 0) { + throw IOException(p.stderr) + } + } + } + override fun hashCode(): Int { return arrayOf(name, location).contentHashCode() } diff --git a/booster-command/src/main/kotlin/com/didiglobal/booster/command/NoneCommand.kt b/booster-command/src/main/kotlin/com/didiglobal/booster/command/NoneCommand.kt index 80c8bc299..9a4e0e4d3 100644 --- a/booster-command/src/main/kotlin/com/didiglobal/booster/command/NoneCommand.kt +++ b/booster-command/src/main/kotlin/com/didiglobal/booster/command/NoneCommand.kt @@ -1,6 +1,7 @@ package com.didiglobal.booster.command import java.io.ByteArrayInputStream +import java.io.IOException import java.io.InputStream import java.net.URL import java.net.URLConnection @@ -11,7 +12,9 @@ import java.net.URLStreamHandler * * @author johnsonlee */ -internal class NoneCommand(name: String) : Command(name, URL("cmd", "localhost", 9102, "/${name}", HANDLER)) +internal class NoneCommand(name: String) : Command(name, URL("cmd", "localhost", 9102, "/${name}", HANDLER)) { + override fun execute(vararg args: String) = throw IOException("Command $name is not installed") +} private val HANDLER = object : URLStreamHandler() { diff --git a/booster-graph/src/main/kotlin/com/didiglobal/booster/graph/dot/DotGraph.kt b/booster-graph/src/main/kotlin/com/didiglobal/booster/graph/dot/DotGraph.kt index 74df5ab4f..09cbf8fb2 100644 --- a/booster-graph/src/main/kotlin/com/didiglobal/booster/graph/dot/DotGraph.kt +++ b/booster-graph/src/main/kotlin/com/didiglobal/booster/graph/dot/DotGraph.kt @@ -12,6 +12,8 @@ import java.io.FileNotFoundException import java.io.IOException import kotlin.reflect.full.memberProperties +private val DOT = CommandService.fromPath("dot${OS.executableSuffix}") + /** * Represents the graph type * @@ -64,25 +66,18 @@ sealed class DotGraph : GraphRenderer { graph: Graph, output: File, options: DotOptions, - dot: Command = CommandService.fromPath("dot${OS.executableSuffix}"), + dot: Command = DOT, prettify: (Node) -> String = Node::toPrettyString ) { output.touch().writeText(render(graph, options, prettify).toString()) - dot.location.file.let(::File).takeIf(File::exists)?.let { - "${it.canonicalPath} -T${options.format} -O ${output.canonicalPath}".also(::println).execute() - }?.let { p -> - p.waitFor() - if (p.exitValue() != 0) { - throw IOException(p.stderr) - } - } ?: throw FileNotFoundException(dot.location.file) + dot.execute("-T${options.format}", "-O", output.canonicalPath) } fun visualize( graph: Graph, output: File, format: String = "png", - dot: Command = CommandService.fromPath("dot${OS.executableSuffix}"), + dot: Command = DOT, prettify: (Node) -> String = Node::toPrettyString ) = visualize(graph, output, DotOptions(format), dot, prettify) From 4498913bc8f0e44936169c34f77e95515ec1573b Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Tue, 26 Apr 2022 19:49:33 +0800 Subject: [PATCH 130/187] Add class reference analysis for `booster-task-analyser` --- .../booster/task/analyser/Reportings.kt | 18 + .../{ => performance}/LayoutHandler.kt | 2 +- .../PerformanceAnalyser.kt} | 13 +- .../PerformanceAnalysisTask.kt} | 11 +- .../PerformanceAnalysisVariantProcessor.kt} | 6 +- .../analyser/{ => performance}/constants.kt | 2 +- .../task/analyser/reference/Constants.kt | 7 + .../analyser/reference/ReferenceAnalyser.kt | 409 ++++++++++++++++++ .../reference/ReferenceAnalysisTask.kt | 109 +++++ .../ReferenceAnalysisVariantProcessor.kt | 89 ++++ .../task/analyser/reference/ReferenceNode.kt | 19 + .../reporting/ReferencePageRenderer.kt | 53 +++ .../reference/reporting/ReferenceReports.kt | 19 + .../reporting/ReferenceReportsImpl.kt | 32 ++ .../src/main/resources/style.css | 3 + .../booster/task/analyser/AnalyserTaskTest.kt | 1 + 16 files changed, 779 insertions(+), 14 deletions(-) create mode 100644 booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/Reportings.kt rename booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/{ => performance}/LayoutHandler.kt (84%) rename booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/{Analyser.kt => performance/PerformanceAnalyser.kt} (96%) rename booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/{AnalyserTask.kt => performance/PerformanceAnalysisTask.kt} (74%) rename booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/{AnalyserVariantProcessor.kt => performance/PerformanceAnalysisVariantProcessor.kt} (90%) rename booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/{ => performance}/constants.kt (98%) create mode 100644 booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/Constants.kt create mode 100644 booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/ReferenceAnalyser.kt create mode 100644 booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/ReferenceAnalysisTask.kt create mode 100644 booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/ReferenceAnalysisVariantProcessor.kt create mode 100644 booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/ReferenceNode.kt create mode 100644 booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/reporting/ReferencePageRenderer.kt create mode 100644 booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/reporting/ReferenceReports.kt create mode 100644 booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/reporting/ReferenceReportsImpl.kt create mode 100644 booster-task-analyser/src/main/resources/style.css diff --git a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/Reportings.kt b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/Reportings.kt new file mode 100644 index 000000000..d525aff16 --- /dev/null +++ b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/Reportings.kt @@ -0,0 +1,18 @@ +package com.didiglobal.booster.task.analyser + +import com.didiglobal.booster.kotlinx.file +import org.gradle.api.internal.AbstractTask +import org.gradle.api.reporting.ReportContainer +import org.gradle.api.reporting.Reporting +import org.gradle.api.reporting.ReportingExtension +import org.gradle.api.reporting.SingleFileReport + +fun T.configureReportConvention(analysis: String, variant: String) + where T : AbstractTask, T: Reporting> { + reports.all { + it.outputLocation.convention(project.layout.projectDirectory.file(project.provider { + val base = project.extensions.getByType(ReportingExtension::class.java).baseDir + base.file(Build.ARTIFACT, analysis, variant, it.name, "index.${it.name}").absolutePath + })) + } +} \ No newline at end of file diff --git a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/LayoutHandler.kt b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/performance/LayoutHandler.kt similarity index 84% rename from booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/LayoutHandler.kt rename to booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/performance/LayoutHandler.kt index 5225214ad..92ed8ec00 100644 --- a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/LayoutHandler.kt +++ b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/performance/LayoutHandler.kt @@ -1,4 +1,4 @@ -package com.didiglobal.booster.task.analyser +package com.didiglobal.booster.task.analyser.performance import org.xml.sax.Attributes import org.xml.sax.helpers.DefaultHandler diff --git a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/Analyser.kt b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/performance/PerformanceAnalyser.kt similarity index 96% rename from booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/Analyser.kt rename to booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/performance/PerformanceAnalyser.kt index 811f86458..a03f17de5 100644 --- a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/Analyser.kt +++ b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/performance/PerformanceAnalyser.kt @@ -1,4 +1,4 @@ -package com.didiglobal.booster.task.analyser +package com.didiglobal.booster.task.analyser.performance import com.didiglobal.booster.aapt2.metadata import com.didiglobal.booster.cha.ClassHierarchy @@ -17,6 +17,8 @@ import com.didiglobal.booster.kotlinx.red import com.didiglobal.booster.kotlinx.search import com.didiglobal.booster.kotlinx.separatorsToSystem import com.didiglobal.booster.kotlinx.yellow +import com.didiglobal.booster.task.analyser.Build +import com.didiglobal.booster.task.analyser.AsmClassFileParser import com.didiglobal.booster.transform.ArtifactManager import com.didiglobal.booster.transform.asm.args import com.didiglobal.booster.transform.asm.className @@ -44,12 +46,15 @@ import java.util.concurrent.Future import java.util.concurrent.TimeUnit import java.util.concurrent.atomic.AtomicInteger import javax.xml.parsers.SAXParserFactory +import kotlin.collections.component1 +import kotlin.collections.component2 +import kotlin.collections.set import kotlin.streams.toList /** * @author johnsonlee */ -class Analyser( +class PerformanceAnalyser( private val providedClasspath: Collection, private val compileClasspath: Collection, private val artifacts: ArtifactManager, @@ -439,7 +444,7 @@ private val PROPERTY_BLACKLIST = "$PROPERTY_PREFIX.blacklist" private val PROPERTY_WHITELIST = "$PROPERTY_PREFIX.whitelist" -internal val VALUE_BLACKLIST = Analyser::class.java.classLoader.getResource("blacklist.txt")!!.toString() +internal val VALUE_BLACKLIST = PerformanceAnalyser::class.java.classLoader.getResource("blacklist.txt")!!.toString() -internal val VALUE_WHITELIST = Analyser::class.java.classLoader.getResource("whitelist.txt")!!.toString() +internal val VALUE_WHITELIST = PerformanceAnalyser::class.java.classLoader.getResource("whitelist.txt")!!.toString() diff --git a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/AnalyserTask.kt b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/performance/PerformanceAnalysisTask.kt similarity index 74% rename from booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/AnalyserTask.kt rename to booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/performance/PerformanceAnalysisTask.kt index 4ef36368e..af6ad3daf 100644 --- a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/AnalyserTask.kt +++ b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/performance/PerformanceAnalysisTask.kt @@ -1,8 +1,9 @@ -package com.didiglobal.booster.task.analyser +package com.didiglobal.booster.task.analyser.performance import com.android.build.gradle.api.BaseVariant import com.didiglobal.booster.gradle.extension import com.didiglobal.booster.kotlinx.file +import com.didiglobal.booster.task.analyser.Build import com.didiglobal.booster.transform.artifacts import org.gradle.api.DefaultTask import org.gradle.api.tasks.Input @@ -11,11 +12,11 @@ import org.gradle.api.tasks.TaskAction import java.io.File /** - * Represents a task for performance profiling + * Represents a task for performance analysing * * @author johnsonlee */ -open class AnalyserTask : DefaultTask() { +open class PerformanceAnalysisTask : DefaultTask() { @get:Internal lateinit var variant: BaseVariant @@ -28,7 +29,7 @@ open class AnalyserTask : DefaultTask() { get() = variant.name @TaskAction - fun profile() { + fun analyse() { val classpath = supplier().let { if (it.isDirectory) { it.listFiles()?.toList() ?: emptyList() @@ -43,7 +44,7 @@ open class AnalyserTask : DefaultTask() { val output = project.projectDir.file("build", "reports", Build.ARTIFACT, variant.dirName) - Analyser(variant.extension.bootClasspath, classpath, variant.artifacts, project.properties).analyse(output) + PerformanceAnalyser(variant.extension.bootClasspath, classpath, variant.artifacts, project.properties).analyse(output) } } \ No newline at end of file diff --git a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/AnalyserVariantProcessor.kt b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/performance/PerformanceAnalysisVariantProcessor.kt similarity index 90% rename from booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/AnalyserVariantProcessor.kt rename to booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/performance/PerformanceAnalysisVariantProcessor.kt index cf9f44d79..5555569d0 100644 --- a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/AnalyserVariantProcessor.kt +++ b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/performance/PerformanceAnalysisVariantProcessor.kt @@ -1,4 +1,4 @@ -package com.didiglobal.booster.task.analyser +package com.didiglobal.booster.task.analyser.performance import com.android.build.api.transform.QualifiedContent import com.android.build.gradle.api.BaseVariant @@ -14,7 +14,7 @@ import org.gradle.api.GradleException * @author johnsonlee */ @AutoService(VariantProcessor::class) -class AnalyserVariantProcessor : VariantProcessor { +class PerformanceAnalysisVariantProcessor : VariantProcessor { override fun process(variant: BaseVariant) { val project = variant.project @@ -28,7 +28,7 @@ class AnalyserVariantProcessor : VariantProcessor { project.tasks.withType(TransformTask::class.java).find { it.name.endsWith(variantName) && it.transform == transform }?.let { transformTask -> - val profile = project.tasks.create("analyse${variantName}", AnalyserTask::class.java) { + val profile = project.tasks.create("analyse${variantName}", PerformanceAnalysisTask::class.java) { it.variant = variant it.supplier = { transformTask.outputs.files.single() diff --git a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/constants.kt b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/performance/constants.kt similarity index 98% rename from booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/constants.kt rename to booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/performance/constants.kt index cd829ebfb..48ddc2ca3 100644 --- a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/constants.kt +++ b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/performance/constants.kt @@ -1,4 +1,4 @@ -package com.didiglobal.booster.task.analyser +package com.didiglobal.booster.task.analyser.performance import com.didiglobal.booster.cha.graph.CallNode diff --git a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/Constants.kt b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/Constants.kt new file mode 100644 index 000000000..4a45e10b6 --- /dev/null +++ b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/Constants.kt @@ -0,0 +1,7 @@ +package com.didiglobal.booster.task.analyser.reference + +internal const val DEFAULT_VARIANT = "" + +internal const val TASK_ANALYSE_REFERENCE = "analyseReference" + +internal const val TASK_CREATE_FULL_JAR = "createFullJar" diff --git a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/ReferenceAnalyser.kt b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/ReferenceAnalyser.kt new file mode 100644 index 000000000..1b6c8b0f0 --- /dev/null +++ b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/ReferenceAnalyser.kt @@ -0,0 +1,409 @@ +package com.didiglobal.booster.task.analyser.reference + +import com.android.build.gradle.AppExtension +import com.android.build.gradle.BaseExtension +import com.android.build.gradle.LibraryExtension +import com.android.build.gradle.api.BaseVariant +import com.didiglobal.booster.cha.ClassSet +import com.didiglobal.booster.gradle.dependencies +import com.didiglobal.booster.gradle.getAndroid +import com.didiglobal.booster.gradle.getTaskName +import com.didiglobal.booster.gradle.isAndroid +import com.didiglobal.booster.gradle.isJavaLibrary +import com.didiglobal.booster.gradle.javaCompilerTaskProvider +import com.didiglobal.booster.graph.Graph +import com.didiglobal.booster.kotlinx.NCPU +import com.didiglobal.booster.kotlinx.green +import com.didiglobal.booster.kotlinx.yellow +import com.didiglobal.booster.task.analyser.AsmClassFileParser +import org.gradle.api.Project +import org.gradle.api.artifacts.component.ComponentArtifactIdentifier +import org.gradle.api.artifacts.component.ProjectComponentIdentifier +import org.gradle.api.plugins.JavaPlugin +import org.objectweb.asm.AnnotationVisitor +import org.objectweb.asm.ClassVisitor +import org.objectweb.asm.FieldVisitor +import org.objectweb.asm.Handle +import org.objectweb.asm.Label +import org.objectweb.asm.MethodVisitor +import org.objectweb.asm.Opcodes +import org.objectweb.asm.Type +import org.objectweb.asm.TypePath +import org.objectweb.asm.signature.SignatureReader +import org.objectweb.asm.signature.SignatureVisitor +import org.objectweb.asm.tree.ClassNode +import java.io.File +import java.util.concurrent.ConcurrentHashMap +import java.util.concurrent.Executors +import java.util.concurrent.TimeUnit +import java.util.concurrent.atomic.AtomicInteger + +class ReferenceAnalyser( + private val project: Project, + private val variant: String +) { + + private val upstreamClassSets = project.upstreamArtifacts.associateWith { + when (val id = it.id.componentIdentifier) { + is ProjectComponentIdentifier -> project.rootProject.project(id.projectPath).classSets + else -> mapOf(DEFAULT_VARIANT to ClassSet.from(it.file, AsmClassFileParser)) + } + } + + private val upstreamClassToVariant = upstreamClassSets.values.map { upstream -> + upstream.map { (variant, classSet) -> + classSet.map { klass -> + klass.name to variant + } + } + }.flatten().flatten().toMap() + + fun analyse(): Graph { + val executor = Executors.newFixedThreadPool(NCPU) + val graphs = ConcurrentHashMap>() + + try { + val classes = project.classSets.map { (variant, classSet) -> + classSet.map { + it to variant + } + }.flatten() + val index = AtomicInteger(0) + val count = classes.size + classes.map { (klass, variant) -> + val edge = { to: ReferenceNode -> + graphs.getOrPut(Reference(klass.name, variant)) { + Graph.Builder() + }.addEdge(ReferenceNode(this.project.name, variant, klass.name), to) + } + val av = AnnotationAnalyser(edge) + val sv = SignatureAnalyser(edge) + val fv = FieldAnalyser(av, edge) + val mv = MethodAnalyser(av, sv, edge) + executor.submit> { + val t0 = System.currentTimeMillis() + klass.accept(ClassAnalyser(klass, av, fv, mv, sv, edge)) + klass to (System.currentTimeMillis() - t0) + } + }.forEach { + val (klass, duration) = it.get() + println("${green(String.format("%3d%%", index.incrementAndGet() * 100 / count))} Analyse class ${klass.name} in ${yellow(duration)} ms") + } + } finally { + executor.shutdown() + executor.awaitTermination(1, TimeUnit.MINUTES) + } + + return graphs.entries.filter { + it.key.variant == variant + }.fold(Graph.Builder()) { acc, (_, builder) -> + builder.build().forEach { edge -> + acc.addEdge(edge) + } + acc + }.build() + } + + private fun analyse(type: Type, edge: (ReferenceNode) -> Graph.Builder) { + analyse(listOf(type), edge) + } + + private fun analyse(types: Array, edge: (ReferenceNode) -> Graph.Builder) { + analyse(types.toList(), edge) + } + + private fun analyse(types: Iterable, edge: (ReferenceNode) -> Graph.Builder) { + types.filter { + upstreamClassToVariant.keys.contains(it.internalName) + }.forEach { + findReference(it.internalName)?.let { (artifact, _) -> + edge(ReferenceNode(artifact.id.componentIdentifier.displayName, upstreamClassToVariant[it.internalName] + ?: "", it.internalName)) + } + } + } + + private fun findReference(owner: String) = upstreamClassSets.entries.find { (_, classSets) -> + classSets.entries.find { (_, classSet) -> + classSet.contains(owner) + } != null + } + + + private inner class ClassAnalyser( + cv: ClassVisitor, + private val av: AnnotationVisitor, + private val fv: FieldVisitor, + private val mv: MethodVisitor, + private val sv: SignatureVisitor, + private val edge: (ReferenceNode) -> Graph.Builder + ) : ClassVisitor(Opcodes.ASM7, cv) { + + override fun visit(version: Int, access: Int, name: String?, signature: String?, superName: String?, interfaces: Array?) { + superName?.let { + analyse(Type.getObjectType(it), edge) + } + interfaces?.forEach { + analyse(Type.getObjectType(it), edge) + } + signature?.let(::SignatureReader)?.accept(sv) + super.visit(version, access, name, signature, superName, interfaces) + } + + override fun visitAnnotation(descriptor: String, visible: Boolean): AnnotationVisitor { + analyse(Type.getType(descriptor), edge) + return av + } + + override fun visitTypeAnnotation(typeRef: Int, typePath: TypePath, descriptor: String, visible: Boolean): AnnotationVisitor { + analyse(Type.getType(descriptor), edge) + return av + } + + override fun visitField(access: Int, name: String, descriptor: String, signature: String?, value: Any?): FieldVisitor { + analyse(Type.getType(descriptor), edge) + if (value is Type) { + analyse(value, edge) + } + signature?.let(::SignatureReader)?.acceptType(sv) + return fv + } + + override fun visitMethod(access: Int, name: String?, descriptor: String, signature: String?, exceptions: Array?): MethodVisitor { + analyse(Type.getArgumentTypes(descriptor), edge) + analyse(Type.getReturnType(descriptor), edge) + signature?.let(::SignatureReader)?.accept(sv) + exceptions?.forEach { + analyse(Type.getObjectType(it), edge) + } + return mv + } + + } + + private inner class AnnotationAnalyser( + private val edge: (ReferenceNode) -> Graph.Builder + ) : AnnotationVisitor(Opcodes.ASM7) { + + override fun visit(name: String?, value: Any?) { + if (value is Type) { + analyse(value, edge) + } + } + + override fun visitEnum(name: String?, descriptor: String?, value: String?) { + descriptor?.let { + analyse(Type.getType(it), edge) + } + } + + override fun visitAnnotation(name: String?, descriptor: String?): AnnotationVisitor { + descriptor?.let { + analyse(Type.getType(it), edge) + } + return this + } + + override fun visitArray(name: String?): AnnotationVisitor = this + } + + private inner class FieldAnalyser( + private val av: AnnotationVisitor, + private val edge: (ReferenceNode) -> Graph.Builder + ) : FieldVisitor(Opcodes.ASM7) { + + override fun visitAnnotation(descriptor: String?, visible: Boolean): AnnotationVisitor { + descriptor?.let { + analyse(Type.getType(it), edge) + } + return av + } + + override fun visitTypeAnnotation(typeRef: Int, typePath: TypePath?, descriptor: String?, visible: Boolean): AnnotationVisitor { + descriptor?.let { + analyse(Type.getType(it), edge) + } + return av + } + + } + + private inner class MethodAnalyser( + private val av: AnnotationVisitor, + private val sv: SignatureAnalyser, + private val edge: (ReferenceNode) -> Graph.Builder + ) : MethodVisitor(Opcodes.ASM7) { + + override fun visitAnnotationDefault(): AnnotationVisitor = av + + override fun visitAnnotation(descriptor: String?, visible: Boolean): AnnotationVisitor { + descriptor?.let { + analyse(Type.getType(it), edge) + } + return av + } + + override fun visitTypeAnnotation(typeRef: Int, typePath: TypePath?, descriptor: String?, visible: Boolean): AnnotationVisitor { + descriptor?.let { + analyse(Type.getType(it), edge) + } + return av + } + + override fun visitParameterAnnotation(parameter: Int, descriptor: String?, visible: Boolean): AnnotationVisitor { + descriptor?.let { + analyse(Type.getType(it), edge) + } + return av + } + + override fun visitTypeInsn(opcode: Int, type: String?) { + type?.let { + analyse(Type.getObjectType(it), edge) + } + } + + override fun visitFieldInsn(opcode: Int, owner: String?, name: String?, descriptor: String?) { + owner?.let { + analyse(Type.getObjectType(it), edge) + } + descriptor?.let { + analyse(Type.getType(it), edge) + } + } + + override fun visitMethodInsn(opcode: Int, owner: String?, name: String?, descriptor: String?, isInterface: Boolean) { + owner?.let { + analyse(Type.getObjectType(it), edge) + } + descriptor?.let { + analyse(Type.getReturnType(it), edge) + analyse(Type.getArgumentTypes(it), edge) + } + } + + override fun visitInvokeDynamicInsn(name: String?, descriptor: String?, bootstrapMethodHandle: Handle?, vararg bootstrapMethodArguments: Any?) { + descriptor?.let { + analyse(Type.getReturnType(it), edge) + analyse(Type.getArgumentTypes(it), edge) + } + } + + override fun visitLdcInsn(value: Any?) { + if (value is Type) { + analyse(value, edge) + } + } + + override fun visitMultiANewArrayInsn(descriptor: String?, numDimensions: Int) { + descriptor?.let { + analyse(Type.getType(it), edge) + } + } + + override fun visitInsnAnnotation(typeRef: Int, typePath: TypePath?, descriptor: String?, visible: Boolean): AnnotationVisitor { + descriptor?.let { + analyse(Type.getType(it), edge) + } + return av + } + + override fun visitTryCatchBlock(start: Label?, end: Label?, handler: Label?, type: String?) { + type?.let { + analyse(Type.getObjectType(it), edge) + } + } + + override fun visitTryCatchAnnotation(typeRef: Int, typePath: TypePath?, descriptor: String?, visible: Boolean): AnnotationVisitor { + descriptor?.let { + analyse(Type.getType(it), edge) + } + return av + } + + override fun visitLocalVariable(name: String?, descriptor: String?, signature: String?, start: Label?, end: Label?, index: Int) { + descriptor?.let { + analyse(Type.getType(it), edge) + } + signature?.let(::SignatureReader)?.acceptType(sv) + } + + override fun visitLocalVariableAnnotation(typeRef: Int, typePath: TypePath?, start: Array?, end: Array?, index: IntArray?, descriptor: String?, visible: Boolean): AnnotationVisitor { + descriptor?.let { + analyse(Type.getType(it), edge) + } + return av + } + } + + private inner class SignatureAnalyser( + private val edge: (ReferenceNode) -> Graph.Builder + ) : SignatureVisitor(Opcodes.ASM7) { + + override fun visitClassType(name: String) { + analyse(Type.getObjectType(name), edge) + super.visitClassType(name) + } + + } + +} + +private data class Reference(val name: String, val variant: String) + +internal data class Artifact(val id: ComponentArtifactIdentifier, val file: File) + +private val Project.upstreamArtifacts: Set + get() = when { + isAndroid -> { + when (val android = getAndroid()) { + is LibraryExtension -> android.libraryVariants + is AppExtension -> android.applicationVariants + else -> emptyList() + }.asSequence().map(BaseVariant::dependencies).flatten().distinctBy { + it.id.componentIdentifier + }.map { + Artifact(it.id, it.file) + }.toSet() + } + isJavaLibrary -> { + configurations.getByName(JavaPlugin.RUNTIME_CLASSPATH_CONFIGURATION_NAME).resolvedConfiguration.resolvedArtifacts.distinctBy { + it.id.componentIdentifier + }.map { + Artifact(it.id, it.file) + }.toSet() + } + else -> emptySet() + } + +/** + * Returns the [ClassSet] of all variants, the key is the variant name + */ +private val Project.classSets: Map> + get() = when { + isAndroid -> when (val android = getAndroid()) { + is LibraryExtension -> android.libraryVariants.associate { variant -> + variant.name to tasks.named(variant.getTaskName(TASK_CREATE_FULL_JAR)).get().outputs.files.map { + ClassSet.from(it, AsmClassFileParser) + }.let { + ClassSet.of(it) + } + } + is AppExtension -> android.applicationVariants.associate { variant -> + variant.name to variant.javaCompilerTaskProvider.get().outputs.files.map { + ClassSet.from(it, AsmClassFileParser) + }.let { + ClassSet.of(it) + } + } + else -> emptyMap() + } + isJavaLibrary -> { + mapOf(DEFAULT_VARIANT to tasks.named(JavaPlugin.JAR_TASK_NAME).get().outputs.files.map { + ClassSet.from(it, AsmClassFileParser) + }.let { + ClassSet.of(it) + }) + } + else -> emptyMap() + } \ No newline at end of file diff --git a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/ReferenceAnalysisTask.kt b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/ReferenceAnalysisTask.kt new file mode 100644 index 000000000..19d39b187 --- /dev/null +++ b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/ReferenceAnalysisTask.kt @@ -0,0 +1,109 @@ +package com.didiglobal.booster.task.analyser.reference + +import com.didiglobal.booster.graph.Graph +import com.didiglobal.booster.graph.dot.DotGraph +import com.didiglobal.booster.graph.json.JsonGraphRender +import com.didiglobal.booster.kotlinx.NCPU +import com.didiglobal.booster.kotlinx.touch +import com.didiglobal.booster.task.analyser.reference.reporting.ReferencePageRenderer +import com.didiglobal.booster.task.analyser.reference.reporting.ReferenceReports +import com.didiglobal.booster.task.analyser.reference.reporting.ReferenceReportsImpl +import groovy.lang.Closure +import org.gradle.api.Action +import org.gradle.api.DefaultTask +import org.gradle.api.reporting.Reporting +import org.gradle.api.tasks.Internal +import org.gradle.api.tasks.Nested +import org.gradle.api.tasks.TaskAction +import org.gradle.reporting.HtmlReportRenderer +import org.gradle.util.ClosureBackedAction +import java.util.concurrent.Executors +import java.util.concurrent.TimeUnit + +/** + * Analysing the class reference for current variant to determine each class in this module is referenced by which class in which module + * + * @author johnsonlee + */ +open class ReferenceAnalysisTask : DefaultTask(), Reporting { + + @get:Internal + lateinit var variant: String + + @get:Internal + val _reports: ReferenceReports by lazy { + project.objects.newInstance(ReferenceReportsImpl::class.java, this) + } + + @TaskAction + fun analyse() { + if ((!reports.html.isEnabled) && (!reports.dot.isEnabled) && (!reports.json.isEnabled)) { + logger.warn(""" + Please enable reference analysis reports with following configuration: + + tasks.withType(${ReferenceAnalysisTask::class.java.simpleName}) { + reports { + html.enabled = true + json.enabled = true + dot.enabled = true + } + } + """.trimIndent()) + return + } + + val graph = ReferenceAnalyser(project, variant).analyse() + val executor = Executors.newFixedThreadPool(reports.size.coerceAtMost(NCPU)) + + try { + arrayOf(::generateHtmlReport, ::generateDotReport, ::generateJsonReport).map { render -> + executor.submit { + render(graph) + } + }.forEach { + it.get() + } + } finally { + executor.shutdown() + executor.awaitTermination(1, TimeUnit.MINUTES) + } + } + + @Nested + override fun getReports(): ReferenceReports = _reports + + override fun reports(closure: Closure<*>): ReferenceReports { + return reports(ClosureBackedAction(closure)) + } + + override fun reports(configureAction: Action): ReferenceReports { + configureAction.execute(_reports) + return _reports + } + + private fun generateDotReport(graph: Graph) { + if (!reports.dot.isEnabled) return + + try { + val options = DotGraph.DotOptions(rankdir = "LR", format = "svg") + DotGraph.DIGRAPH.visualize(graph, reports.dot.destination.touch(), options) + } catch (e: Exception) { + logger.error(e.message) + } + } + + private fun generateHtmlReport(graph: Graph) { + if (!reports.html.isEnabled) return + HtmlReportRenderer().renderSinglePage(graph, ReferencePageRenderer(project, variant), reports.html.destination) + } + + private fun generateJsonReport(graph: Graph) { + if (!reports.json.isEnabled) return + + val json = JsonGraphRender.render(graph) { node -> + """{"component": "${node.component}", "variant": "${node.variant}", "class": "${node.klass}"}""" + }.toString() + reports.json.destination.touch().writeText(json) + } + +} diff --git a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/ReferenceAnalysisVariantProcessor.kt b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/ReferenceAnalysisVariantProcessor.kt new file mode 100644 index 000000000..693ef6089 --- /dev/null +++ b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/ReferenceAnalysisVariantProcessor.kt @@ -0,0 +1,89 @@ +package com.didiglobal.booster.task.analyser.reference + +import com.android.build.gradle.AppExtension +import com.android.build.gradle.BaseExtension +import com.android.build.gradle.LibraryExtension +import com.android.build.gradle.api.BaseVariant +import com.android.build.gradle.internal.tasks.factory.dependsOn +import com.didiglobal.booster.gradle.getAndroid +import com.didiglobal.booster.gradle.getTaskName +import com.didiglobal.booster.gradle.isAndroid +import com.didiglobal.booster.gradle.isJava +import com.didiglobal.booster.gradle.isJavaLibrary +import com.didiglobal.booster.gradle.javaCompilerTaskProvider +import com.didiglobal.booster.gradle.project +import com.didiglobal.booster.task.analyser.configureReportConvention +import com.didiglobal.booster.task.spi.VariantProcessor +import com.google.auto.service.AutoService +import org.gradle.api.Project +import org.gradle.api.UnknownTaskException +import org.gradle.api.plugins.JavaPlugin +import org.gradle.api.tasks.TaskProvider + +@AutoService(VariantProcessor::class) +class ReferenceAnalysisVariantProcessor : VariantProcessor { + + override fun process(variant: BaseVariant) { + variant.project.gradle.projectsEvaluated { gradle -> + val prerequisites = gradle.rootProject.allprojects.map(Project::prerequisites).flatten() + gradle.rootProject.allprojects { project -> + project.setup(prerequisites) + } + } + } + +} + +private fun Project.setup(prerequisites: List>) { + try { + project.tasks.named(TASK_ANALYSE_REFERENCE) + } catch (e: UnknownTaskException) { + when { + isAndroid -> setupAndroid(prerequisites) + isJavaLibrary || isJava -> setupJava(prerequisites) + } + } +} + +private fun Project.setupJava(prerequisites: List>) { + tasks.register(TASK_ANALYSE_REFERENCE, ReferenceAnalysisTask::class.java) { + it.description = "Analyses class reference for Java projects" + it.group = "booster" + it.variant = DEFAULT_VARIANT + it.configureReportConvention("reference", DEFAULT_VARIANT) + }.dependsOn(prerequisites) +} + +private fun Project.setupAndroid(prerequisites: List>) { + val subtasks = when (val android = getAndroid()) { + is LibraryExtension -> android.libraryVariants + is AppExtension -> android.applicationVariants + else -> emptyList() + }.map { variant -> + tasks.register("${TASK_ANALYSE_REFERENCE}${variant.name.capitalize()}", ReferenceAnalysisTask::class.java) { + it.description = "Analyses class reference for Android project" + it.group = "booster" + it.variant = variant.name + it.configureReportConvention("reference", variant.name) + }.dependsOn(prerequisites) + } + tasks.register(TASK_ANALYSE_REFERENCE).dependsOn(subtasks) +} + +/** + * Prerequisite tasks for reference analysing + */ +private val Project.prerequisites: List> + get() = when { + isAndroid -> when (val android = getAndroid()) { + is LibraryExtension -> android.libraryVariants.map { v -> + tasks.named(v.getTaskName(TASK_CREATE_FULL_JAR)) + } + is AppExtension -> android.applicationVariants.map { v -> + v.javaCompilerTaskProvider + } + else -> emptyList() + } + isJavaLibrary -> listOf(tasks.named(JavaPlugin.JAR_TASK_NAME)) + else -> emptyList() + } diff --git a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/ReferenceNode.kt b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/ReferenceNode.kt new file mode 100644 index 000000000..12ef0f313 --- /dev/null +++ b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/ReferenceNode.kt @@ -0,0 +1,19 @@ +package com.didiglobal.booster.task.analyser.reference + +import com.didiglobal.booster.graph.GroupedNode + +data class ReferenceNode(val component: String, val variant: String, val klass: String) : GroupedNode { + + private val group: String by lazy { + if (variant == DEFAULT_VARIANT) component else "${component}:${variant}" + } + + private val symbol: String by lazy { + klass.replace('/', '.') + } + + override val groupBy: () -> String = ::group + + override fun toPrettyString() = symbol + +} \ No newline at end of file diff --git a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/reporting/ReferencePageRenderer.kt b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/reporting/ReferencePageRenderer.kt new file mode 100644 index 000000000..936f878b2 --- /dev/null +++ b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/reporting/ReferencePageRenderer.kt @@ -0,0 +1,53 @@ +package com.didiglobal.booster.task.analyser.reference.reporting + +import com.didiglobal.booster.graph.Edge +import com.didiglobal.booster.graph.Graph +import com.didiglobal.booster.task.analyser.reference.ReferenceNode +import org.gradle.api.Project +import org.gradle.internal.html.SimpleHtmlWriter +import org.gradle.reporting.ReportRenderer +import org.gradle.reporting.TabbedPageRenderer +import java.net.URL + +private val URL_STYLE = ReferencePageRenderer::class.java.getResource("/style.css")!! + +class ReferencePageRenderer( + val project: Project, + val variant: String +) : TabbedPageRenderer>() { + + private val _title: String by lazy { + "${project.name}:${variant}" + } + + override fun getTitle(): String = _title + + override fun getHeaderRenderer(): ReportRenderer, SimpleHtmlWriter> = object : ReportRenderer, SimpleHtmlWriter>() { + override fun render(model: Graph, output: SimpleHtmlWriter) { + output.startElement("p").attribute("class", "subtitle").characters(project.description ?: "").endElement() + } + } + + override fun getContentRenderer(): ReportRenderer, SimpleHtmlWriter> = object : ReportRenderer, SimpleHtmlWriter>() { + override fun render(model: Graph, output: SimpleHtmlWriter) { + output.run { + model.groupBy { + it.to.groupBy() + }.map { (group, edges) -> + group to edges.mapTo(mutableSetOf(), Edge::to) + }.forEach { (title, items) -> + startElement("h2").characters(title).endElement() + startElement("ul") + items.forEach { item -> + startElement("li").characters(item.klass).endElement() + } + endElement() + } + } + } + + } + + override fun getStyleUrl(): URL = URL_STYLE + +} diff --git a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/reporting/ReferenceReports.kt b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/reporting/ReferenceReports.kt new file mode 100644 index 000000000..3d681e35b --- /dev/null +++ b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/reporting/ReferenceReports.kt @@ -0,0 +1,19 @@ +package com.didiglobal.booster.task.analyser.reference.reporting + +import org.gradle.api.reporting.CustomizableHtmlReport +import org.gradle.api.reporting.ReportContainer +import org.gradle.api.reporting.SingleFileReport +import org.gradle.api.tasks.Internal + +interface ReferenceReports : ReportContainer { + + @get:Internal + val html: CustomizableHtmlReport + + @get:Internal + val json: SingleFileReport + + @get:Internal + val dot: SingleFileReport + +} \ No newline at end of file diff --git a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/reporting/ReferenceReportsImpl.kt b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/reporting/ReferenceReportsImpl.kt new file mode 100644 index 000000000..0429d5414 --- /dev/null +++ b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/reporting/ReferenceReportsImpl.kt @@ -0,0 +1,32 @@ +package com.didiglobal.booster.task.analyser.reference.reporting + +import org.gradle.api.Task +import org.gradle.api.internal.CollectionCallbackActionDecorator +import org.gradle.api.reporting.CustomizableHtmlReport +import org.gradle.api.reporting.SingleFileReport +import org.gradle.api.reporting.internal.CustomizableHtmlReportImpl +import org.gradle.api.reporting.internal.TaskGeneratedSingleFileReport +import org.gradle.api.reporting.internal.TaskReportContainer +import javax.inject.Inject + +open class ReferenceReportsImpl @Inject constructor( + task: Task, + callbackActionDecorator: CollectionCallbackActionDecorator +) : TaskReportContainer(SingleFileReport::class.java, task, callbackActionDecorator), ReferenceReports { + + init { + add(CustomizableHtmlReportImpl::class.java, "html", task) + add(TaskGeneratedSingleFileReport::class.java, "json", task) + add(TaskGeneratedSingleFileReport::class.java, "dot", task) + } + + override val html: CustomizableHtmlReport + get() = withType(CustomizableHtmlReport::class.java).getByName("html") + + override val json: SingleFileReport + get() = getByName("json") + + override val dot: SingleFileReport + get() = getByName("dot") + +} \ No newline at end of file diff --git a/booster-task-analyser/src/main/resources/style.css b/booster-task-analyser/src/main/resources/style.css new file mode 100644 index 000000000..1a5e1c106 --- /dev/null +++ b/booster-task-analyser/src/main/resources/style.css @@ -0,0 +1,3 @@ +html { + font-family: sans-serif; +} \ No newline at end of file diff --git a/booster-task-analyser/src/test/kotlin/com/didiglobal/booster/task/analyser/AnalyserTaskTest.kt b/booster-task-analyser/src/test/kotlin/com/didiglobal/booster/task/analyser/AnalyserTaskTest.kt index c1869fd27..b77b92d59 100644 --- a/booster-task-analyser/src/test/kotlin/com/didiglobal/booster/task/analyser/AnalyserTaskTest.kt +++ b/booster-task-analyser/src/test/kotlin/com/didiglobal/booster/task/analyser/AnalyserTaskTest.kt @@ -1,6 +1,7 @@ package com.didiglobal.booster.task.analyser import com.didiglobal.booster.kotlinx.Wildcard +import com.didiglobal.booster.task.analyser.performance.VALUE_BLACKLIST import java.net.URL import kotlin.test.Test import kotlin.test.assertNotNull From 684272a6c7ee987d2ec44bcd0e49d4bc9e9c912d Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Sat, 11 Jun 2022 12:53:12 +0800 Subject: [PATCH 131/187] Refactoring `booster-task-analyser` to support reporting API for performance analysis --- .../performance/PerformanceAnalysisTask.kt | 45 +++++++++++++++++-- .../PerformanceAnalysisVariantProcessor.kt | 20 +++++++-- .../task/analyser/performance/constants.kt | 4 +- .../reporting/PerformanceReports.kt | 19 ++++++++ .../reporting/PerformanceReportsImpl.kt | 32 +++++++++++++ 5 files changed, 112 insertions(+), 8 deletions(-) create mode 100644 booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/performance/reporting/PerformanceReports.kt create mode 100644 booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/performance/reporting/PerformanceReportsImpl.kt diff --git a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/performance/PerformanceAnalysisTask.kt b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/performance/PerformanceAnalysisTask.kt index af6ad3daf..33e005504 100644 --- a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/performance/PerformanceAnalysisTask.kt +++ b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/performance/PerformanceAnalysisTask.kt @@ -4,11 +4,19 @@ import com.android.build.gradle.api.BaseVariant import com.didiglobal.booster.gradle.extension import com.didiglobal.booster.kotlinx.file import com.didiglobal.booster.task.analyser.Build +import com.didiglobal.booster.task.analyser.performance.reporting.PerformanceReports +import com.didiglobal.booster.task.analyser.performance.reporting.PerformanceReportsImpl +import com.didiglobal.booster.task.analyser.reference.reporting.ReferenceReports +import com.didiglobal.booster.task.analyser.reference.reporting.ReferenceReportsImpl import com.didiglobal.booster.transform.artifacts +import groovy.lang.Closure +import org.gradle.api.Action import org.gradle.api.DefaultTask +import org.gradle.api.reporting.Reporting import org.gradle.api.tasks.Input import org.gradle.api.tasks.Internal import org.gradle.api.tasks.TaskAction +import org.gradle.util.ClosureBackedAction import java.io.File /** @@ -16,7 +24,7 @@ import java.io.File * * @author johnsonlee */ -open class PerformanceAnalysisTask : DefaultTask() { +open class PerformanceAnalysisTask : DefaultTask(), Reporting { @get:Internal lateinit var variant: BaseVariant @@ -28,8 +36,39 @@ open class PerformanceAnalysisTask : DefaultTask() { val variantName: String get() = variant.name + @get:Internal + val _reports: PerformanceReports by lazy { + project.objects.newInstance(PerformanceReportsImpl::class.java, this) + } + + override fun getReports(): PerformanceReports = _reports + + override fun reports(closure: Closure<*>): PerformanceReports { + return reports(ClosureBackedAction(closure)) + } + + override fun reports(configureAction: Action): PerformanceReports { + configureAction.execute(_reports) + return _reports + } + @TaskAction fun analyse() { + if ((!reports.html.isEnabled) && (!reports.dot.isEnabled) && (!reports.json.isEnabled)) { + logger.warn(""" + Please enable reference analysis reports with following configuration: + + tasks.withType(${PerformanceAnalysisTask::class.java.simpleName}) { + reports { + html.enabled = true + json.enabled = true + dot.enabled = true + } + } + """.trimIndent()) + return + } + val classpath = supplier().let { if (it.isDirectory) { it.listFiles()?.toList() ?: emptyList() @@ -42,9 +81,7 @@ open class PerformanceAnalysisTask : DefaultTask() { } } - val output = project.projectDir.file("build", "reports", Build.ARTIFACT, variant.dirName) - - PerformanceAnalyser(variant.extension.bootClasspath, classpath, variant.artifacts, project.properties).analyse(output) + PerformanceAnalyser(variant.extension.bootClasspath, classpath, variant.artifacts, project.properties).analyse(reports.dot.destination.parentFile) } } \ No newline at end of file diff --git a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/performance/PerformanceAnalysisVariantProcessor.kt b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/performance/PerformanceAnalysisVariantProcessor.kt index 5555569d0..ffd1cc04e 100644 --- a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/performance/PerformanceAnalysisVariantProcessor.kt +++ b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/performance/PerformanceAnalysisVariantProcessor.kt @@ -4,11 +4,14 @@ import com.android.build.api.transform.QualifiedContent import com.android.build.gradle.api.BaseVariant import com.android.build.gradle.internal.pipeline.TransformManager import com.android.build.gradle.internal.pipeline.TransformTask +import com.android.build.gradle.internal.tasks.factory.dependsOn import com.didiglobal.booster.gradle.extension import com.didiglobal.booster.gradle.project +import com.didiglobal.booster.task.analyser.configureReportConvention import com.didiglobal.booster.task.spi.VariantProcessor import com.google.auto.service.AutoService import org.gradle.api.GradleException +import org.gradle.api.UnknownTaskException /** * @author johnsonlee @@ -23,17 +26,28 @@ class PerformanceAnalysisVariantProcessor : VariantProcessor { it.scopes.containsAll(TransformManager.SCOPE_FULL_PROJECT) && it.inputTypes.contains(QualifiedContent.DefaultContentType.CLASSES) } ?: throw GradleException("No available transform") - val profiles = project.tasks.findByName("analyse") ?: project.tasks.create("analyse") + val profiles = try { + project.tasks.named(TASK_ANALYSE_PERFORMANCE) + } catch (e: UnknownTaskException) { + project.tasks.register(TASK_ANALYSE_PERFORMANCE) { + it.description = "Analyses performance issues for Android project" + it.group = "booster" + } + } project.tasks.withType(TransformTask::class.java).find { it.name.endsWith(variantName) && it.transform == transform }?.let { transformTask -> - val profile = project.tasks.create("analyse${variantName}", PerformanceAnalysisTask::class.java) { + val profile = project.tasks.register("${TASK_ANALYSE_PERFORMANCE}${variantName}", PerformanceAnalysisTask::class.java) { + it.description = "Analyses performance issues for Android project" + it.group = "booster" it.variant = variant it.supplier = { transformTask.outputs.files.single() } - }.dependsOn(transformTask) + it.dependsOn(transformTask) + it.configureReportConvention("performance", variantName) + } profiles.dependsOn(profile) } } diff --git a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/performance/constants.kt b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/performance/constants.kt index 48ddc2ca3..ff9dd3fdd 100644 --- a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/performance/constants.kt +++ b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/performance/constants.kt @@ -83,4 +83,6 @@ internal val ANY_THREAD_ANNOTATIONS = arrayOf( "androidx/annotation/AnyThread", "android/support/annotation/AnyThread", "android/annotation/AnyThread" -) \ No newline at end of file +) + +internal val TASK_ANALYSE_PERFORMANCE = "analysePerformance" \ No newline at end of file diff --git a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/performance/reporting/PerformanceReports.kt b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/performance/reporting/PerformanceReports.kt new file mode 100644 index 000000000..d750eea77 --- /dev/null +++ b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/performance/reporting/PerformanceReports.kt @@ -0,0 +1,19 @@ +package com.didiglobal.booster.task.analyser.performance.reporting + +import org.gradle.api.reporting.CustomizableHtmlReport +import org.gradle.api.reporting.ReportContainer +import org.gradle.api.reporting.SingleFileReport +import org.gradle.api.tasks.Internal + +interface PerformanceReports : ReportContainer { + + @get:Internal + val html: CustomizableHtmlReport + + @get:Internal + val json: SingleFileReport + + @get:Internal + val dot: SingleFileReport + +} \ No newline at end of file diff --git a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/performance/reporting/PerformanceReportsImpl.kt b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/performance/reporting/PerformanceReportsImpl.kt new file mode 100644 index 000000000..57835bc67 --- /dev/null +++ b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/performance/reporting/PerformanceReportsImpl.kt @@ -0,0 +1,32 @@ +package com.didiglobal.booster.task.analyser.performance.reporting + +import org.gradle.api.Task +import org.gradle.api.internal.CollectionCallbackActionDecorator +import org.gradle.api.reporting.CustomizableHtmlReport +import org.gradle.api.reporting.SingleFileReport +import org.gradle.api.reporting.internal.CustomizableHtmlReportImpl +import org.gradle.api.reporting.internal.TaskGeneratedSingleFileReport +import org.gradle.api.reporting.internal.TaskReportContainer +import javax.inject.Inject + +open class PerformanceReportsImpl @Inject constructor( + task: Task, + callbackActionDecorator: CollectionCallbackActionDecorator +) : TaskReportContainer(SingleFileReport::class.java, task, callbackActionDecorator), PerformanceReports { + + init { + add(CustomizableHtmlReportImpl::class.java, "html", task) + add(TaskGeneratedSingleFileReport::class.java, "json", task) + add(TaskGeneratedSingleFileReport::class.java, "dot", task) + } + + override val html: CustomizableHtmlReport + get() = withType(CustomizableHtmlReport::class.java).getByName("html") + + override val json: SingleFileReport + get() = getByName("json") + + override val dot: SingleFileReport + get() = getByName("dot") + +} \ No newline at end of file From 75a8f39fe3c5b4dbce5fedba81e5c8743ca9aa7d Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Sat, 11 Jun 2022 13:21:27 +0800 Subject: [PATCH 132/187] Update booster-task-analyser/README.md --- booster-task-analyser/README.md | 34 +++++++++++++++++++++++++++------ 1 file changed, 28 insertions(+), 6 deletions(-) diff --git a/booster-task-analyser/README.md b/booster-task-analyser/README.md index 4f3c9809f..2710540e5 100644 --- a/booster-task-analyser/README.md +++ b/booster-task-analyser/README.md @@ -2,27 +2,27 @@ This module is used for static analysing. -## Getting Started +## Performance Analysis -Start analysing by executing the following command +Start performance analysis by executing the following command ```bash -./gradlew analyseDebug +./gradlew analysePerformanceDebug ``` or ```bash -./gradlew analyseRelease +./gradlew analysePerformanceRelease ``` or ```bash -./gradlew analyse +./gradlew analysePerformance ``` -## Analyser Reports +### Analyser Reports The [dot](https://www.graphviz.org/doc/info/lang.html) format reports is located at `build/reports/${variant}/booster-task-analyser/`, you can convert the dot files to PNGs by using the following command: @@ -54,3 +54,25 @@ or configured in the `gradle.properties`: ```properties booster.task.analyser.whitelist=file:///Users/booster/whitelist.txt ``` + +## Reference Analysis + +Start reference analysis by executing the following command + +```bash +./gradlew analyseReferenceDebug +``` + +or + +```bash +./gradlew analyseReferenceRelease +``` + +or + +```bash +./gradlew analyseReference +``` + +The reports are located at `build/reports/booster-task-analyser/reference/` From 894ae4fa0c3d04a37e0e0e44b3a50b00d77c1f0f Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Sat, 11 Jun 2022 19:34:35 +0800 Subject: [PATCH 133/187] Splitting `booster-graph` into `booster-graph`, `booster-graph-dot` and `booster-graph-json` --- .../com/didiglobal/booster/cha/graph/CallGraphTest.kt | 5 ++--- .../booster/cha/graph/dot/DirectedCallGraphPrinterTest.kt | 4 ++-- booster-graph-dot/build.gradle | 7 +++++++ booster-graph-dot/packages-zh-CN.md | 3 +++ .../kotlin/com/didiglobal/booster/graph/dot/DotGraph.kt | 0 booster-graph-json/build.gradle | 5 +++++ booster-graph-json/packages-zh-CN.md | 3 +++ .../com/didiglobal/booster/graph/json/JsonGraphRender.kt | 0 booster-graph/build.gradle | 1 - .../com/didiglobal/booster/kotlinx}/WebSafeColorPalette.kt | 4 ++-- .../didiglobal/booster/kotlinx}/WebSafeColorPaletteTest.kt | 2 +- booster-task-analyser/build.gradle | 2 ++ booster-task-graph/build.gradle | 2 +- settings.gradle | 2 ++ 14 files changed, 30 insertions(+), 10 deletions(-) create mode 100644 booster-graph-dot/build.gradle create mode 100644 booster-graph-dot/packages-zh-CN.md rename {booster-graph => booster-graph-dot}/src/main/kotlin/com/didiglobal/booster/graph/dot/DotGraph.kt (100%) create mode 100644 booster-graph-json/build.gradle create mode 100644 booster-graph-json/packages-zh-CN.md rename {booster-graph => booster-graph-json}/src/main/kotlin/com/didiglobal/booster/graph/json/JsonGraphRender.kt (100%) rename {booster-graph/src/main/kotlin/com/didiglobal/booster/graph/dot => booster-kotlinx/src/main/kotlin/com/didiglobal/booster/kotlinx}/WebSafeColorPalette.kt (92%) rename {booster-cha/src/test/kotlin/com/didiglobal/booster/cha/graph/dot => booster-kotlinx/src/test/kotlin/com/didiglobal/booster/kotlinx}/WebSafeColorPaletteTest.kt (94%) diff --git a/booster-cha/src/test/kotlin/com/didiglobal/booster/cha/graph/CallGraphTest.kt b/booster-cha/src/test/kotlin/com/didiglobal/booster/cha/graph/CallGraphTest.kt index 3091daada..da419966c 100644 --- a/booster-cha/src/test/kotlin/com/didiglobal/booster/cha/graph/CallGraphTest.kt +++ b/booster-cha/src/test/kotlin/com/didiglobal/booster/cha/graph/CallGraphTest.kt @@ -1,6 +1,5 @@ package com.didiglobal.booster.cha.graph -import com.didiglobal.booster.cha.graph.CallGraph import kotlin.test.Test import kotlin.test.assertEquals @@ -8,8 +7,8 @@ class CallGraphTest { @Test fun `check node args`() { - assertEquals("", CallGraph.Node("java/lang/Object", "wait", "()V").args) - assertEquals("II", CallGraph.Node("java/lang/String", "substring", "(II)Ljava/lang/String;").args) + assertEquals("", CallNode("java/lang/Object", "wait", "()V").args) + assertEquals("II", CallNode("java/lang/String", "substring", "(II)Ljava/lang/String;").args) } } \ No newline at end of file diff --git a/booster-cha/src/test/kotlin/com/didiglobal/booster/cha/graph/dot/DirectedCallGraphPrinterTest.kt b/booster-cha/src/test/kotlin/com/didiglobal/booster/cha/graph/dot/DirectedCallGraphPrinterTest.kt index f04a805ba..1edd2a837 100644 --- a/booster-cha/src/test/kotlin/com/didiglobal/booster/cha/graph/dot/DirectedCallGraphPrinterTest.kt +++ b/booster-cha/src/test/kotlin/com/didiglobal/booster/cha/graph/dot/DirectedCallGraphPrinterTest.kt @@ -1,13 +1,13 @@ package com.didiglobal.booster.cha.graph.dot -import com.didiglobal.booster.cha.graph.CallGraph +import com.didiglobal.booster.cha.graph.CallNode import kotlin.test.Test class DirectedCallGraphPrinterTest { @Test fun `prettify node`() { - println(CallGraph.Node.valueOf("android/app/Activity.onCreate(Landroid/os/Bundle;Landroid/os/PersistableBundle;)V").toPrettyString()) + println(CallNode.valueOf("android/app/Activity.onCreate(Landroid/os/Bundle;Landroid/os/PersistableBundle;)V").toPrettyString()) } } diff --git a/booster-graph-dot/build.gradle b/booster-graph-dot/build.gradle new file mode 100644 index 000000000..0e7edbcc8 --- /dev/null +++ b/booster-graph-dot/build.gradle @@ -0,0 +1,7 @@ +apply from: "$rootDir/gradle/booster.gradle" + +dependencies { + api project(':booster-command') + api project(':booster-graph') + api project(':booster-kotlinx') +} \ No newline at end of file diff --git a/booster-graph-dot/packages-zh-CN.md b/booster-graph-dot/packages-zh-CN.md new file mode 100644 index 000000000..25eb6f16d --- /dev/null +++ b/booster-graph-dot/packages-zh-CN.md @@ -0,0 +1,3 @@ +# Package com.didiglobal.booster.graph.dot + +提供了 `dot` 格式的 Graph 渲染 diff --git a/booster-graph/src/main/kotlin/com/didiglobal/booster/graph/dot/DotGraph.kt b/booster-graph-dot/src/main/kotlin/com/didiglobal/booster/graph/dot/DotGraph.kt similarity index 100% rename from booster-graph/src/main/kotlin/com/didiglobal/booster/graph/dot/DotGraph.kt rename to booster-graph-dot/src/main/kotlin/com/didiglobal/booster/graph/dot/DotGraph.kt diff --git a/booster-graph-json/build.gradle b/booster-graph-json/build.gradle new file mode 100644 index 000000000..b20f797a3 --- /dev/null +++ b/booster-graph-json/build.gradle @@ -0,0 +1,5 @@ +apply from: "$rootDir/gradle/booster.gradle" + +dependencies { + api project(':booster-graph') +} \ No newline at end of file diff --git a/booster-graph-json/packages-zh-CN.md b/booster-graph-json/packages-zh-CN.md new file mode 100644 index 000000000..e83284900 --- /dev/null +++ b/booster-graph-json/packages-zh-CN.md @@ -0,0 +1,3 @@ +# Package com.didiglobal.booster.graph.json + +提供了 `json` 格式的 Graph 渲染 diff --git a/booster-graph/src/main/kotlin/com/didiglobal/booster/graph/json/JsonGraphRender.kt b/booster-graph-json/src/main/kotlin/com/didiglobal/booster/graph/json/JsonGraphRender.kt similarity index 100% rename from booster-graph/src/main/kotlin/com/didiglobal/booster/graph/json/JsonGraphRender.kt rename to booster-graph-json/src/main/kotlin/com/didiglobal/booster/graph/json/JsonGraphRender.kt diff --git a/booster-graph/build.gradle b/booster-graph/build.gradle index d3ceb3a83..683a5f49a 100644 --- a/booster-graph/build.gradle +++ b/booster-graph/build.gradle @@ -1,6 +1,5 @@ apply from: "$rootDir/gradle/booster.gradle" dependencies { - api project(':booster-command') api project(':booster-kotlinx') } \ No newline at end of file diff --git a/booster-graph/src/main/kotlin/com/didiglobal/booster/graph/dot/WebSafeColorPalette.kt b/booster-kotlinx/src/main/kotlin/com/didiglobal/booster/kotlinx/WebSafeColorPalette.kt similarity index 92% rename from booster-graph/src/main/kotlin/com/didiglobal/booster/graph/dot/WebSafeColorPalette.kt rename to booster-kotlinx/src/main/kotlin/com/didiglobal/booster/kotlinx/WebSafeColorPalette.kt index 777cfd294..abc790ea4 100644 --- a/booster-graph/src/main/kotlin/com/didiglobal/booster/graph/dot/WebSafeColorPalette.kt +++ b/booster-kotlinx/src/main/kotlin/com/didiglobal/booster/kotlinx/WebSafeColorPalette.kt @@ -1,4 +1,4 @@ -package com.didiglobal.booster.graph.dot +package com.didiglobal.booster.kotlinx import java.util.Random @@ -7,7 +7,7 @@ import java.util.Random * * @author johnsonlee */ -internal object WebSafeColorPalette { +object WebSafeColorPalette { private const val N = 216 diff --git a/booster-cha/src/test/kotlin/com/didiglobal/booster/cha/graph/dot/WebSafeColorPaletteTest.kt b/booster-kotlinx/src/test/kotlin/com/didiglobal/booster/kotlinx/WebSafeColorPaletteTest.kt similarity index 94% rename from booster-cha/src/test/kotlin/com/didiglobal/booster/cha/graph/dot/WebSafeColorPaletteTest.kt rename to booster-kotlinx/src/test/kotlin/com/didiglobal/booster/kotlinx/WebSafeColorPaletteTest.kt index 597a52a39..0e1f8e6b4 100644 --- a/booster-cha/src/test/kotlin/com/didiglobal/booster/cha/graph/dot/WebSafeColorPaletteTest.kt +++ b/booster-kotlinx/src/test/kotlin/com/didiglobal/booster/kotlinx/WebSafeColorPaletteTest.kt @@ -1,4 +1,4 @@ -package com.didiglobal.booster.cha.graph.dot +package com.didiglobal.booster.kotlinx import kotlin.test.Test import kotlin.test.assertNotEquals diff --git a/booster-task-analyser/build.gradle b/booster-task-analyser/build.gradle index e1edd8403..efe633d5d 100644 --- a/booster-task-analyser/build.gradle +++ b/booster-task-analyser/build.gradle @@ -5,6 +5,8 @@ dependencies { implementation project(':booster-aapt2') implementation project(':booster-api') implementation project(':booster-cha') + implementation project(':booster-graph-dot') + implementation project(':booster-graph-json') implementation project(':booster-transform-asm') compileOnly 'com.android.tools.build:gradle:4.0.0' testCompileOnly 'com.android.tools.build:gradle:4.0.0' diff --git a/booster-task-graph/build.gradle b/booster-task-graph/build.gradle index df3ddcd45..8724fe4d3 100644 --- a/booster-task-graph/build.gradle +++ b/booster-task-graph/build.gradle @@ -3,7 +3,7 @@ apply from: "$rootDir/gradle/booster.gradle" dependencies { kapt "com.google.auto.service:auto-service:1.0" implementation project(':booster-api') - implementation project(':booster-graph') + implementation project(':booster-graph-dot') implementation project(':booster-command') compileOnly 'com.android.tools.build:gradle:4.0.0' compileOnly 'com.android.tools.build:builder:4.0.0' diff --git a/settings.gradle b/settings.gradle index 85dc244f7..06a5c90b6 100644 --- a/settings.gradle +++ b/settings.gradle @@ -26,6 +26,8 @@ include ':booster-build' include ':booster-cha' include ':booster-command' include ':booster-graph' +include ':booster-graph-dot' +include ':booster-graph-json' include ':booster-gradle-plugin' include ':booster-task-analyser' include ':booster-task-check-snapshot' From 3d9702626b251503fe1c75aa5ac52045c68779f7 Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Sun, 12 Jun 2022 00:47:48 +0800 Subject: [PATCH 134/187] AGP 7.1 & 7.2 compatibility support --- .github/workflows/build.yml | 38 -- .github/workflows/dokka.yml | 15 +- .github/workflows/publish.yml | 12 +- .github/workflows/test.yml | 317 ++++++++++- booster-android-gradle-api/build.gradle | 2 + .../didiglobal/booster/gradle/BaseVariant.kt | 4 +- .../booster/gradle/ResolvedArtifactResults.kt | 3 +- booster-android-gradle-compat/build.gradle | 2 + .../didiglobal/booster/gradle/AGPInterface.kt | 4 +- .../android/gradle/v3_3/V33IntegrationTest.kt | 25 +- .../booster/android/gradle/v3_3/V33.kt | 20 +- .../android/gradle/v3_4/V34IntegrationTest.kt | 25 +- .../booster/android/gradle/v3_4/V34.kt | 20 +- .../android/gradle/v3_5/V35IntegrationTest.kt | 35 +- .../booster/android/gradle/v3_5/V35.kt | 9 +- .../android/gradle/v3_6/V36IntegrationTest.kt | 44 +- .../booster/android/gradle/v3_6/V36.kt | 21 +- .../android/gradle/v4_0/V40IntegrationTest.kt | 37 +- .../booster/android/gradle/v4_0/V40.kt | 17 +- .../android/gradle/v4_1/V41IntegrationTest.kt | 35 +- .../booster/android/gradle/v4_1/V41.kt | 17 +- .../android/gradle/v4_2/V42IntegrationTest.kt | 27 +- .../booster/android/gradle/v4_2/V42.kt | 26 +- .../android/gradle/v7_0/V70IntegrationTest.kt | 54 +- .../booster/android/gradle/v7_0/V70.kt | 30 +- booster-android-gradle-v7_1/README.md | 6 + booster-android-gradle-v7_1/build.gradle | 27 + .../android/gradle/v7_1/V71IntegrationTest.kt | 500 +++++++++++++++++ .../src/integrationTest/resources/app.gradle | 62 +++ .../resources/buildSrc/build.gradle | 26 + .../src/integrationTest/resources/lib.gradle | 59 ++ .../resources/src/main/AndroidManifest.xml | 9 + .../booster/android/test/MainActivity.java | 6 + .../booster/android/test/TestApplication.java | 7 + .../resources/src/main/res/values/strings.xml | 4 + .../booster/android/gradle/v7_1/V71.kt | 264 +++++++++ .../booster/android/gradle/v7_1/V71Factory.kt | 15 + booster-android-gradle-v7_2/README.md | 6 + booster-android-gradle-v7_2/build.gradle | 27 + .../android/gradle/v7_2/V72IntegrationTest.kt | 505 ++++++++++++++++++ .../src/integrationTest/resources/app.gradle | 62 +++ .../resources/buildSrc/build.gradle | 26 + .../src/integrationTest/resources/lib.gradle | 59 ++ .../resources/src/main/AndroidManifest.xml | 9 + .../booster/android/test/MainActivity.java | 6 + .../booster/android/test/TestApplication.java | 7 + .../resources/src/main/res/values/strings.xml | 4 + .../booster/android/gradle/v7_2/V72.kt | 277 ++++++++++ .../booster/android/gradle/v7_2/V72Factory.kt | 15 + .../didiglobal/booster/cha/ClassSetTest.kt | 14 +- .../booster/task/artifact/ListArtifact.kt | 7 +- .../booster/transform/r/inline/RegexTest.kt | 8 - .../transform/r/inline/SymbolListTest.kt | 5 +- ...om.didiglobal.booster.transform.Collector} | 0 gradle/integration-test.gradle | 2 +- settings.gradle | 2 + 56 files changed, 2510 insertions(+), 355 deletions(-) delete mode 100644 .github/workflows/build.yml create mode 100644 booster-android-gradle-v7_1/README.md create mode 100644 booster-android-gradle-v7_1/build.gradle create mode 100644 booster-android-gradle-v7_1/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v7_1/V71IntegrationTest.kt create mode 100644 booster-android-gradle-v7_1/src/integrationTest/resources/app.gradle create mode 100644 booster-android-gradle-v7_1/src/integrationTest/resources/buildSrc/build.gradle create mode 100644 booster-android-gradle-v7_1/src/integrationTest/resources/lib.gradle create mode 100644 booster-android-gradle-v7_1/src/integrationTest/resources/src/main/AndroidManifest.xml create mode 100644 booster-android-gradle-v7_1/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/MainActivity.java create mode 100644 booster-android-gradle-v7_1/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/TestApplication.java create mode 100644 booster-android-gradle-v7_1/src/integrationTest/resources/src/main/res/values/strings.xml create mode 100644 booster-android-gradle-v7_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_1/V71.kt create mode 100644 booster-android-gradle-v7_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_1/V71Factory.kt create mode 100644 booster-android-gradle-v7_2/README.md create mode 100644 booster-android-gradle-v7_2/build.gradle create mode 100644 booster-android-gradle-v7_2/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v7_2/V72IntegrationTest.kt create mode 100644 booster-android-gradle-v7_2/src/integrationTest/resources/app.gradle create mode 100644 booster-android-gradle-v7_2/src/integrationTest/resources/buildSrc/build.gradle create mode 100644 booster-android-gradle-v7_2/src/integrationTest/resources/lib.gradle create mode 100644 booster-android-gradle-v7_2/src/integrationTest/resources/src/main/AndroidManifest.xml create mode 100644 booster-android-gradle-v7_2/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/MainActivity.java create mode 100644 booster-android-gradle-v7_2/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/TestApplication.java create mode 100644 booster-android-gradle-v7_2/src/integrationTest/resources/src/main/res/values/strings.xml create mode 100644 booster-android-gradle-v7_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_2/V72.kt create mode 100644 booster-android-gradle-v7_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_2/V72Factory.kt rename booster-transform-util/src/test/resources/META-INF/services/{com.didiglobal.booster.transform.util.Collector => com.didiglobal.booster.transform.Collector} (100%) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml deleted file mode 100644 index 3bb59649e..000000000 --- a/.github/workflows/build.yml +++ /dev/null @@ -1,38 +0,0 @@ -name: Build project - -on: - push: - branches: [ '*' ] - pull_request: - branches: [ '*' ] - repository_dispatch: - types: [build] - -jobs: - build: - runs-on: ubuntu-latest - - steps: - - name: Checkout - uses: actions/checkout@v2 - - - name: Setup Java - uses: actions/setup-java@v2 - with: - distribution: 'adopt' - java-version: '11' - - - name: Build Project - run: | - echo "Create GPG private key" - echo $GPG_KEY_ARMOR | base64 --decode > $GITHUB_WORKSPACE/secring.gpg - ./gradlew assemble -POSSRH_USERNAME=${OSSRH_USERNAME} -POSSRH_PASSWORD=${OSSRH_PASSWORD} -POSSRH_STAGING_PROFILE_ID=${OSSRH_STAGING_PROFILE_ID} -Psigning.keyId=${GPG_KEY_ID} -Psigning.password=${GPG_PASSPHRASE} -Psigning.secretKeyRingFile=${GITHUB_WORKSPACE}/secring.gpg -S --no-daemon - env: - JAVA_OPTS: -Xmx8g -XX:MaxPermSize=1g -XX:MetaspaceSize=1g -Dfile.encoding=UTF-8 - JVM_OPTS: -Xmx8g -XX:MaxPermSize=1g -XX:MetaspaceSize=1g -Dfile.encoding=UTF-8 - GPG_KEY_ARMOR: ${{ secrets.GPG_KEY_ARMOR }} - GPG_KEY_ID: ${{ secrets.GPG_KEY_ID }} - GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }} - OSSRH_PASSWORD: ${{ secrets.OSSRH_PASSWORD }} - OSSRH_USERNAME: ${{ secrets.OSSRH_USERNAME }} - OSSRH_STAGING_PROFILE_ID: ${{ secrets.OSSRH_STAGING_PROFILE_ID }} diff --git a/.github/workflows/dokka.yml b/.github/workflows/dokka.yml index 0f6215ed9..309ec296b 100644 --- a/.github/workflows/dokka.yml +++ b/.github/workflows/dokka.yml @@ -11,21 +11,16 @@ jobs: publish: runs-on: ubuntu-latest if: github.repository_owner == 'johnsonlee' - steps: - - name: Checkout - uses: actions/checkout@v2 - - - name: Setup Java - uses: actions/setup-java@v2 + - uses: actions/checkout@v3 + - uses: actions/setup-java@v3 with: distribution: 'adopt' java-version: '11' - - - name: Build API reference + cache: 'gradle' + - shell: bash run: ./gradlew reference -S --no-daemon - - - name: Deploy API reference + - shell: bash working-directory: ./build/reference run: | echo "reference.johnsonlee.io" > CNAME diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index c11170c61..1e108f431 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -11,18 +11,14 @@ jobs: publish: runs-on: ubuntu-latest if: github.repository_owner == 'johnsonlee' - steps: - - name: Checkout - uses: actions/checkout@v2 - - - name: Setup Java - uses: actions/setup-java@v2 + - uses: actions/checkout@v3 + - uses: actions/setup-java@v3 with: distribution: 'adopt' java-version: '11' - - - name: Publish to Sonatype + cache: 'gradle' + - shell: bash run: | echo "Create GPG private key" echo $GPG_KEY_ARMOR | base64 --decode > $GITHUB_WORKSPACE/secring.gpg diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 23356ae15..bfda9c705 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -2,36 +2,303 @@ name: Run tests on: push: - tags: - - '*' + branches: [ '*' ] + pull_request: + branches: [ '*' ] repository_dispatch: types: [test] +env: + GPG_KEY_ARMOR: ${{ secrets.GPG_KEY_ARMOR }} + GPG_KEY_ID: ${{ secrets.GPG_KEY_ID }} + GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }} + OSSRH_PASSWORD: ${{ secrets.OSSRH_PASSWORD }} + OSSRH_USERNAME: ${{ secrets.OSSRH_USERNAME }} + OSSRH_STAGING_PROFILE_ID: ${{ secrets.OSSRH_STAGING_PROFILE_ID }} + +concurrency: + group: ${{ github.ref }} + cancel-in-progress: true + jobs: + build: + name: Build + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-java@v3 + with: + distribution: 'adopt' + java-version: '11' + cache: 'gradle' + - uses: actions/cache@v3 + with: + path: ~/.m2 + key: ${{ runner.os }}-m2-${{ github.run_number }} + - uses: actions/cache@v3 + with: + path: '**/build' + key: ${{ runner.os }}-build-${{ github.run_number }} + - shell: bash + run: | + echo "Create GPG private key" + echo ${GPG_KEY_ARMOR} | base64 --decode > ${GITHUB_WORKSPACE}/secring.gpg + rm -rvf ~/.m2 + ./gradlew clean publishToMavenLocal -S --no-daemon -Pversion=${{ github.run_number }} -Psigning.keyId=${GPG_KEY_ID} -Psigning.password=${GPG_PASSPHRASE} -Psigning.secretKeyRingFile=${GITHUB_WORKSPACE}/secring.gpg + test: + name: Unit Test + needs: build + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-java@v3 + with: + distribution: 'adopt' + java-version: '11' + cache: 'gradle' + - uses: actions/cache@v3 + with: + path: ~/.m2 + key: ${{ runner.os }}-m2-${{ github.run_number }} + - uses: actions/cache@v3 + with: + path: '**/build' + key: ${{ runner.os }}-build-${{ github.run_number }} + - shell: bash + run: ./gradlew test -S --no-daemon -Pversion=${{ github.run_number }} + - uses: actions/upload-artifact@v3 + if: failure() + with: + name: unit-test-report + path: '**/build/reports/tests/test' + + integration-test-agp-v3_3: + name: AGP 3.3 Integration Test + needs: build + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-java@v3 + with: + distribution: 'adopt' + java-version: '11' + cache: 'gradle' + - uses: actions/cache@v3 + with: + path: ~/.m2 + key: ${{ runner.os }}-m2-${{ github.run_number }} + - shell: bash + run: ./gradlew booster-android-gradle-v3_3:integrationTest -S --no-daemon -Pversion=${{ github.run_number }} + - uses: actions/upload-artifact@v3 + if: failure() + with: + name: booster-android-gradle-v3_3 + path: booster-android-gradle-v3_3/build/reports/tests/integrationTest + + integration-test-agp-v3_4: + name: AGP 3.4 Integration Test + needs: build + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-java@v3 + with: + distribution: 'adopt' + java-version: '11' + cache: 'gradle' + - uses: actions/cache@v3 + with: + path: ~/.m2 + key: ${{ runner.os }}-m2-${{ github.run_number }} + - shell: bash + run: ./gradlew booster-android-gradle-v3_4:integrationTest -S --no-daemon -Pversion=${{ github.run_number }} + - uses: actions/upload-artifact@v3 + if: failure() + with: + name: booster-android-gradle-v3_4 + path: booster-android-gradle-v3_4/build/reports/tests/integrationTest + + integration-test-agp-v3_5: + name: AGP 3.5 Integration Test + needs: build + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-java@v3 + with: + distribution: 'adopt' + java-version: '11' + cache: 'gradle' + - uses: actions/cache@v3 + with: + path: ~/.m2 + key: ${{ runner.os }}-m2-${{ github.run_number }} + - shell: bash + run: ./gradlew booster-android-gradle-v3_5:integrationTest -S --no-daemon -Pversion=${{ github.run_number }} + - uses: actions/upload-artifact@v3 + if: failure() + with: + name: booster-android-gradle-v3_5 + path: booster-android-gradle-v3_5/build/reports/tests/integrationTest + + integration-test-agp-v3_6: + name: AGP 3.6 Integration Test + needs: build runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-java@v3 + with: + distribution: 'adopt' + java-version: '11' + cache: 'gradle' + - uses: actions/cache@v3 + with: + path: ~/.m2 + key: ${{ runner.os }}-m2-${{ github.run_number }} + - shell: bash + run: ./gradlew booster-android-gradle-v3_6:integrationTest -S --no-daemon -Pversion=${{ github.run_number }} + - uses: actions/upload-artifact@v3 + if: failure() + with: + name: booster-android-gradle-v3_6 + path: booster-android-gradle-v3_6/build/reports/tests/integrationTest + integration-test-agp-v4_0: + name: AGP 4.0 Integration Test + needs: build + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-java@v3 + with: + distribution: 'adopt' + java-version: '11' + cache: 'gradle' + - uses: actions/cache@v3 + with: + path: ~/.m2 + key: ${{ runner.os }}-m2-${{ github.run_number }} + - shell: bash + run: ./gradlew booster-android-gradle-v4_0:integrationTest -S --no-daemon -Pversion=${{ github.run_number }} + - uses: actions/upload-artifact@v3 + if: failure() + with: + name: booster-android-gradle-v4_0 + path: booster-android-gradle-v4_0/build/reports/tests/integrationTest + + integration-test-agp-v4_1: + name: AGP 4.1 Integration Test + needs: build + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-java@v3 + with: + distribution: 'adopt' + java-version: '11' + cache: 'gradle' + - uses: actions/cache@v3 + with: + path: ~/.m2 + key: ${{ runner.os }}-m2-${{ github.run_number }} + - shell: bash + run: ./gradlew booster-android-gradle-v4_1:integrationTest -S --no-daemon -Pversion=${{ github.run_number }} + - uses: actions/upload-artifact@v3 + if: failure() + with: + name: booster-android-gradle-v4_1 + path: booster-android-gradle-v4_1/build/reports/tests/integrationTest + + integration-test-agp-v4_2: + name: AGP 4.2 Integration Test + needs: build + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-java@v3 + with: + distribution: 'adopt' + java-version: '11' + cache: 'gradle' + - uses: actions/cache@v3 + with: + path: ~/.m2 + key: ${{ runner.os }}-m2-${{ github.run_number }} + - shell: bash + run: ./gradlew booster-android-gradle-v4_2:integrationTest -S --no-daemon -Pversion=${{ github.run_number }} + - uses: actions/upload-artifact@v3 + if: failure() + with: + name: booster-android-gradle-v4_2 + path: booster-android-gradle-v4_2/build/reports/tests/integrationTest + + integration-test-agp-v7_0: + name: AGP 7.0 Integration Test + needs: build + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-java@v3 + with: + distribution: 'adopt' + java-version: '11' + cache: 'gradle' + - uses: actions/cache@v3 + with: + path: ~/.m2 + key: ${{ runner.os }}-m2-${{ github.run_number }} + - shell: bash + run: ./gradlew booster-android-gradle-v7_0:integrationTest -S --no-daemon -Pversion=${{ github.run_number }} + - uses: actions/upload-artifact@v3 + if: failure() + with: + name: booster-android-gradle-v7_0 + path: booster-android-gradle-v7_0/build/reports/tests/integrationTest + + integration-test-agp-v7_1: + name: AGP 7.1 Integration Test + needs: build + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-java@v3 + with: + distribution: 'adopt' + java-version: '11' + cache: 'gradle' + - uses: actions/cache@v3 + with: + path: ~/.m2 + key: ${{ runner.os }}-m2-${{ github.run_number }} + - shell: bash + run: ./gradlew booster-android-gradle-v7_1:integrationTest -S --no-daemon -Pversion=${{ github.run_number }} + - uses: actions/upload-artifact@v3 + if: failure() + with: + name: booster-android-gradle-v7_1 + path: booster-android-gradle-v7_1/build/reports/tests/integrationTest + + integration-test-agp-v7_2: + name: AGP 7.2 Integration Test + needs: build + runs-on: ubuntu-latest steps: - - name: Checkout - uses: actions/checkout@v2 - - - name: Setup Java - uses: actions/setup-java@v2 - with: - distribution: 'adopt' - java-version: '11' - - - name: Run tests - run: | - echo "Create GPG private key" - echo $GPG_KEY_ARMOR | base64 --decode > $GITHUB_WORKSPACE/secring.gpg - ./gradlew publishToMavenLocal check -POSSRH_USERNAME=${OSSRH_USERNAME} -POSSRH_PASSWORD=${OSSRH_PASSWORD} -POSSRH_STAGING_PROFILE_ID=${OSSRH_STAGING_PROFILE_ID} -Psigning.keyId=${GPG_KEY_ID} -Psigning.password=${GPG_PASSPHRASE} -Psigning.secretKeyRingFile=${GITHUB_WORKSPACE}/secring.gpg -S --no-daemon - env: - JAVA_OPTS: -Xmx8g -XX:MaxPermSize=1g -XX:MetaspaceSize=1g -Dfile.encoding=UTF-8 - JVM_OPTS: -Xmx8g -XX:MaxPermSize=1g -XX:MetaspaceSize=1g -Dfile.encoding=UTF-8 - GPG_KEY_ARMOR: ${{ secrets.GPG_KEY_ARMOR }} - GPG_KEY_ID: ${{ secrets.GPG_KEY_ID }} - GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }} - OSSRH_PASSWORD: ${{ secrets.OSSRH_PASSWORD }} - OSSRH_USERNAME: ${{ secrets.OSSRH_USERNAME }} - OSSRH_STAGING_PROFILE_ID: ${{ secrets.OSSRH_STAGING_PROFILE_ID }} + - uses: actions/checkout@v3 + - uses: actions/setup-java@v3 + with: + distribution: 'adopt' + java-version: '11' + cache: 'gradle' + - uses: actions/cache@v3 + with: + path: ~/.m2 + key: ${{ runner.os }}-m2-${{ github.run_number }} + - shell: bash + run: ./gradlew booster-android-gradle-v7_2:integrationTest -S --no-daemon -Pversion=${{ github.run_number }} + - uses: actions/upload-artifact@v3 + if: failure() + with: + name: booster-android-gradle-v7_2 + path: booster-android-gradle-v7_2/build/reports/tests/integrationTest diff --git a/booster-android-gradle-api/build.gradle b/booster-android-gradle-api/build.gradle index a13bc10c7..fb5ccbb03 100644 --- a/booster-android-gradle-api/build.gradle +++ b/booster-android-gradle-api/build.gradle @@ -11,6 +11,8 @@ dependencies { implementation project(':booster-android-gradle-v4_1') implementation project(':booster-android-gradle-v4_2') implementation project(':booster-android-gradle-v7_0') + implementation project(':booster-android-gradle-v7_1') + implementation project(':booster-android-gradle-v7_2') compileOnly 'com.android.tools.build:gradle:3.0.0' testCompileOnly 'com.android.tools.build:gradle:3.0.0' } diff --git a/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/BaseVariant.kt b/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/BaseVariant.kt index c52f427e7..c57c2259e 100644 --- a/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/BaseVariant.kt +++ b/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/BaseVariant.kt @@ -5,7 +5,7 @@ import com.android.build.gradle.api.BaseVariant import com.android.build.gradle.internal.publishing.AndroidArtifacts import com.android.build.gradle.tasks.ProcessAndroidResources import com.android.builder.core.VariantType -import com.android.sdklib.AndroidVersion +import com.android.builder.model.ApiVersion import com.android.sdklib.BuildToolInfo import com.didiglobal.booster.kotlinx.file import org.gradle.api.Incubating @@ -115,7 +115,7 @@ fun BaseVariant.getTaskName(prefix: String, suffix: String): String = AGP.run { getTaskName(prefix, suffix) } -val BaseVariant.minSdkVersion: AndroidVersion +val BaseVariant.minSdkVersion: ApiVersion get() = AGP.run { minSdkVersion } diff --git a/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/ResolvedArtifactResults.kt b/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/ResolvedArtifactResults.kt index ebe4c1254..6f4f5af49 100644 --- a/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/ResolvedArtifactResults.kt +++ b/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/ResolvedArtifactResults.kt @@ -5,6 +5,7 @@ import com.android.build.gradle.internal.publishing.AndroidArtifacts.ArtifactSco import com.android.build.gradle.internal.publishing.AndroidArtifacts.ArtifactType.AAR import com.android.build.gradle.internal.publishing.AndroidArtifacts.ArtifactType.JAR import com.android.build.gradle.internal.publishing.AndroidArtifacts.ConsumedConfigType.RUNTIME_CLASSPATH +import com.android.builder.model.AndroidProject import com.didiglobal.booster.kotlinx.file import com.didiglobal.booster.kotlinx.separatorsToSystem import com.didiglobal.booster.kotlinx.touch @@ -74,7 +75,7 @@ class ResolvedArtifactResults(private val variant: BaseVariant) : Collection - val BaseVariant.minSdkVersion: AndroidVersion + val BaseVariant.minSdkVersion: ApiVersion val BaseVariant.targetSdkVersion: ApiVersion diff --git a/booster-android-gradle-v3_3/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_3/V33IntegrationTest.kt b/booster-android-gradle-v3_3/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_3/V33IntegrationTest.kt index dd9a8d423..8ad680e8f 100644 --- a/booster-android-gradle-v3_3/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_3/V33IntegrationTest.kt +++ b/booster-android-gradle-v3_3/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_3/V33IntegrationTest.kt @@ -21,10 +21,12 @@ import org.junit.Before import org.junit.Rule import org.junit.rules.TemporaryFolder import org.junit.rules.TestRule +import java.io.File import kotlin.test.Test import kotlin.test.assertEquals import kotlin.test.assertFalse import kotlin.test.assertNotNull +import kotlin.test.assertTrue import kotlin.test.fail private const val MIN_SDK_VERSION = 18 @@ -58,6 +60,7 @@ abstract class V33IntegrationTest(private val isLib: Boolean) { projectDir.copyFromResource("${if (isLib) "lib" else "app"}.gradle", "build.gradle") projectDir.copyFromResource("buildSrc") projectDir.copyFromResource("src") + projectDir.newFile("gradle.properties").writeText("org.gradle.jvmargs=-Xmx4g -XX:MaxMetaspaceSize=2g") assertEquals(3, AGP.revision.major) assertEquals(3, AGP.revision.minor) } @@ -110,10 +113,6 @@ abstract class V33IntegrationTest(private val isLib: Boolean) { @Case(VariantScopeTestUnit::class) fun `test AGPInterface#variantScope`() = Unit - @Test - @Case(GlobalScopeTestCase::class) - fun `test AGPInterface#globalScope`() = Unit - @Test @Case(OriginalApplicationIdTestUnit::class) fun `test AGPInterface#originalApplicationId`() = Unit @@ -269,12 +268,6 @@ class VariantScopeTestUnit : VariantTestCase() { } } -class GlobalScopeTestCase : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.globalScope }) - } -} - class OriginalApplicationIdTestUnit : VariantTestCase() { override fun apply(variant: BaseVariant) { assertNotNull(AGP.run { variant.originalApplicationId }) @@ -486,14 +479,10 @@ class SymbolListWithPackageNameTestUnit : VariantTestCase() { class AllClassesTestUnit : VariantTestCase() { override fun apply(variant: BaseVariant) { AGP.run { variant.assembleTask }.doFirst { - val allClasses = AGP.run { variant.allClasses }.search { - it.extension == "class" - } - if (allClasses.isEmpty()) { - fail("allClasses is empty") - } - allClasses.forEach { - println(" - ${it.path}") + val location = AGP.run { variant.allClasses }.files + assertTrue("ALL_CLASSES: $location", location::isNotEmpty) + assertTrue("No class file found at $location") { + location.search(File::isFile).isNotEmpty() } } } diff --git a/booster-android-gradle-v3_3/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_3/V33.kt b/booster-android-gradle-v3_3/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_3/V33.kt index faf73f8b7..219556e86 100644 --- a/booster-android-gradle-v3_3/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_3/V33.kt +++ b/booster-android-gradle-v3_3/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_3/V33.kt @@ -19,7 +19,6 @@ import com.android.build.gradle.internal.variant.BaseVariantData import com.android.builder.core.VariantType import com.android.builder.model.AndroidProject import com.android.builder.model.ApiVersion -import com.android.sdklib.AndroidVersion import com.android.sdklib.BuildToolInfo import com.didiglobal.booster.gradle.AGPInterface import org.gradle.api.Project @@ -45,6 +44,7 @@ internal object V33 : AGPInterface { return try { variantScope.artifacts.getFinalArtifactFiles(type).get() } catch (e: Throwable) { + project.logger.warn(e.message, e) project.files() } } @@ -95,7 +95,7 @@ internal object V33 : AGPInterface { override val BaseVariant.variantScope: VariantScope get() = variantData.scope - override val BaseVariant.globalScope: GlobalScope + private val BaseVariant.globalScope: GlobalScope get() = variantScope.globalScope override val BaseVariant.originalApplicationId: String @@ -131,8 +131,20 @@ internal object V33 : AGPInterface { name to artifacts } - override val BaseVariant.minSdkVersion: AndroidVersion - get() = variantData.variantConfiguration.minSdkVersion + override val BaseVariant.minSdkVersion: ApiVersion + get() = variantData.variantConfiguration.minSdkVersion.let { minSdkVersion -> + object : ApiVersion { + override fun getApiLevel(): Int = minSdkVersion.apiLevel + override fun getCodename(): String? = minSdkVersion.codename + override fun getApiString(): String = minSdkVersion.apiString + override fun equals(other: Any?): Boolean { + if (this === other) return true + if (other !is ApiVersion) return false + return apiLevel == other.apiLevel || codename.equals(other.codename, false) + } + override fun hashCode(): Int = codename?.hashCode() ?: apiLevel + } + } override val BaseVariant.targetSdkVersion: ApiVersion get() = variantData.variantConfiguration.targetSdkVersion diff --git a/booster-android-gradle-v3_4/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_4/V34IntegrationTest.kt b/booster-android-gradle-v3_4/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_4/V34IntegrationTest.kt index 9c8fe04e1..cee5f7abc 100644 --- a/booster-android-gradle-v3_4/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_4/V34IntegrationTest.kt +++ b/booster-android-gradle-v3_4/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_4/V34IntegrationTest.kt @@ -21,10 +21,12 @@ import org.junit.Before import org.junit.Rule import org.junit.rules.TemporaryFolder import org.junit.rules.TestRule +import java.io.File import kotlin.test.Test import kotlin.test.assertEquals import kotlin.test.assertFalse import kotlin.test.assertNotNull +import kotlin.test.assertTrue import kotlin.test.fail private const val MIN_SDK_VERSION = 18 @@ -58,6 +60,7 @@ abstract class V34IntegrationTest(private val isLib: Boolean) { projectDir.copyFromResource("${if (isLib) "lib" else "app"}.gradle", "build.gradle") projectDir.copyFromResource("buildSrc") projectDir.copyFromResource("src") + projectDir.newFile("gradle.properties").writeText("org.gradle.jvmargs=-Xmx4g -XX:MaxMetaspaceSize=2g") assertEquals(3, AGP.revision.major) assertEquals(4, AGP.revision.minor) } @@ -110,10 +113,6 @@ abstract class V34IntegrationTest(private val isLib: Boolean) { @Case(VariantScopeTestUnit::class) fun `test AGPInterface#variantScope`() = Unit - @Test - @Case(GlobalScopeTestCase::class) - fun `test AGPInterface#globalScope`() = Unit - @Test @Case(OriginalApplicationIdTestUnit::class) fun `test AGPInterface#originalApplicationId`() = Unit @@ -269,12 +268,6 @@ class VariantScopeTestUnit : VariantTestCase() { } } -class GlobalScopeTestCase : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.globalScope }) - } -} - class OriginalApplicationIdTestUnit : VariantTestCase() { override fun apply(variant: BaseVariant) { assertNotNull(AGP.run { variant.originalApplicationId }) @@ -486,14 +479,10 @@ class SymbolListWithPackageNameTestUnit : VariantTestCase() { class AllClassesTestUnit : VariantTestCase() { override fun apply(variant: BaseVariant) { AGP.run { variant.assembleTask }.doFirst { - val allClasses = AGP.run { variant.allClasses }.search { - it.extension == "class" - } - if (allClasses.isEmpty()) { - fail("allClasses is empty") - } - allClasses.forEach { - println(" - ${it.path}") + val location = AGP.run { variant.allClasses }.files + assertTrue("ALL_CLASSES: $location", location::isNotEmpty) + assertTrue("No class file found at $location") { + location.search(File::isFile).isNotEmpty() } } } diff --git a/booster-android-gradle-v3_4/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_4/V34.kt b/booster-android-gradle-v3_4/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_4/V34.kt index 1db270d25..29d75dfe1 100644 --- a/booster-android-gradle-v3_4/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_4/V34.kt +++ b/booster-android-gradle-v3_4/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_4/V34.kt @@ -20,7 +20,6 @@ import com.android.build.gradle.internal.variant.BaseVariantData import com.android.builder.core.VariantType import com.android.builder.model.AndroidProject import com.android.builder.model.ApiVersion -import com.android.sdklib.AndroidVersion import com.android.sdklib.BuildToolInfo import com.didiglobal.booster.gradle.AGPInterface import org.gradle.api.Project @@ -46,6 +45,7 @@ internal object V34 : AGPInterface { return try { variantScope.artifacts.getFinalArtifactFiles(type).get() } catch (e: Throwable) { + project.logger.warn(e.message, e) project.files() } } @@ -96,7 +96,7 @@ internal object V34 : AGPInterface { override val BaseVariant.variantScope: VariantScope get() = variantData.scope - override val BaseVariant.globalScope: GlobalScope + private val BaseVariant.globalScope: GlobalScope get() = variantScope.globalScope override val BaseVariant.originalApplicationId: String @@ -132,8 +132,20 @@ internal object V34 : AGPInterface { name to artifacts } - override val BaseVariant.minSdkVersion: AndroidVersion - get() = variantData.variantConfiguration.minSdkVersion + override val BaseVariant.minSdkVersion: ApiVersion + get() = variantData.variantConfiguration.minSdkVersion.let { minSdkVersion -> + object : ApiVersion { + override fun getApiLevel(): Int = minSdkVersion.apiLevel + override fun getCodename(): String? = minSdkVersion.codename + override fun getApiString(): String = minSdkVersion.apiString + override fun equals(other: Any?): Boolean { + if (this === other) return true + if (other !is ApiVersion) return false + return apiLevel == other.apiLevel || codename.equals(other.codename, false) + } + override fun hashCode(): Int = codename?.hashCode() ?: apiLevel + } + } override val BaseVariant.targetSdkVersion: ApiVersion get() = variantData.variantConfiguration.targetSdkVersion diff --git a/booster-android-gradle-v3_5/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_5/V35IntegrationTest.kt b/booster-android-gradle-v3_5/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_5/V35IntegrationTest.kt index 48feb1364..bc2221c95 100644 --- a/booster-android-gradle-v3_5/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_5/V35IntegrationTest.kt +++ b/booster-android-gradle-v3_5/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_5/V35IntegrationTest.kt @@ -21,10 +21,12 @@ import org.junit.Before import org.junit.Rule import org.junit.rules.TemporaryFolder import org.junit.rules.TestRule +import java.io.File import kotlin.test.Test import kotlin.test.assertEquals import kotlin.test.assertFalse import kotlin.test.assertNotNull +import kotlin.test.assertTrue import kotlin.test.fail private const val MIN_SDK_VERSION = 18 @@ -58,6 +60,7 @@ abstract class V35IntegrationTest(private val isLib: Boolean) { projectDir.copyFromResource("${if (isLib) "lib" else "app"}.gradle", "build.gradle") projectDir.copyFromResource("buildSrc") projectDir.copyFromResource("src") + projectDir.newFile("gradle.properties").writeText("org.gradle.jvmargs=-Xmx4g -XX:MaxMetaspaceSize=2g") assertEquals(3, AGP.revision.major) assertEquals(5, AGP.revision.minor) } @@ -110,10 +113,6 @@ abstract class V35IntegrationTest(private val isLib: Boolean) { @Case(VariantScopeTestUnit::class) fun `test AGPInterface#variantScope`() = Unit - @Test - @Case(GlobalScopeTestCase::class) - fun `test AGPInterface#globalScope`() = Unit - @Test @Case(OriginalApplicationIdTestUnit::class) fun `test AGPInterface#originalApplicationId`() = Unit @@ -269,12 +268,6 @@ class VariantScopeTestUnit : VariantTestCase() { } } -class GlobalScopeTestCase : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.globalScope }) - } -} - class OriginalApplicationIdTestUnit : VariantTestCase() { override fun apply(variant: BaseVariant) { assertNotNull(AGP.run { variant.originalApplicationId }) @@ -292,7 +285,7 @@ class RawAndroidResourcesTestUnit : VariantTestCase() { AGP.run { variant.assembleTask }.doFirst { val rawAndroidResources = AGP.run { variant.rawAndroidResources } assertNotNull(rawAndroidResources) - if (rawAndroidResources.isEmpty()) { + if (rawAndroidResources.isEmpty) { fail("rawAndroidResources is empty") } rawAndroidResources.forEach { @@ -409,7 +402,7 @@ class MergedResourcesTestUnit : VariantTestCase() { override fun apply(variant: BaseVariant) { AGP.run { variant.assembleTask }.doFirst { val mergedResources = AGP.run { variant.mergedRes } - if (mergedResources.isEmpty()) { + if (mergedResources.isEmpty) { fail("mergedRes is empty") } mergedResources.forEach { @@ -424,7 +417,7 @@ class MergedAssetsTestUnit : VariantTestCase() { AGP.run { variant.assembleTask }.doLast { val mergedAssets = AGP.run { variant.mergedAssets } println(mergedAssets) - if (mergedAssets.isEmpty()) { + if (mergedAssets.isEmpty) { fail("mergedAssets is empty") } mergedAssets.forEach { @@ -460,7 +453,7 @@ class SymbolListTestUnit : VariantTestCase() { override fun apply(variant: BaseVariant) { AGP.run { variant.assembleTask }.doFirst { val symbolList = AGP.run { variant.symbolList } - if (symbolList.isEmpty()) { + if (symbolList.isEmpty) { fail("symbolList is empty") } symbolList.forEach { @@ -474,7 +467,7 @@ class SymbolListWithPackageNameTestUnit : VariantTestCase() { override fun apply(variant: BaseVariant) { AGP.run { variant.assembleTask }.doFirst { val symbolListWithPackageName = AGP.run { variant.symbolListWithPackageName } - if (symbolListWithPackageName.isEmpty()) { + if (symbolListWithPackageName.isEmpty) { fail("symbolListWithPackageName is empty") } symbolListWithPackageName.forEach { @@ -487,14 +480,10 @@ class SymbolListWithPackageNameTestUnit : VariantTestCase() { class AllClassesTestUnit : VariantTestCase() { override fun apply(variant: BaseVariant) { AGP.run { variant.assembleTask }.doFirst { - val allClasses = AGP.run { variant.allClasses }.search { - it.extension == "class" - } - if (allClasses.isEmpty()) { - fail("allClasses is empty") - } - allClasses.forEach { - println(" - ${it.path}") + val location = AGP.run { variant.allClasses }.files + assertTrue("ALL_CLASSES: $location", location::isNotEmpty) + assertTrue("No class file found at $location") { + location.search(File::isFile).isNotEmpty() } } } diff --git a/booster-android-gradle-v3_5/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_5/V35.kt b/booster-android-gradle-v3_5/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_5/V35.kt index 470d82dce..cbcbfb08d 100644 --- a/booster-android-gradle-v3_5/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_5/V35.kt +++ b/booster-android-gradle-v3_5/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_5/V35.kt @@ -17,9 +17,9 @@ import com.android.build.gradle.internal.scope.InternalArtifactType import com.android.build.gradle.internal.scope.VariantScope import com.android.build.gradle.internal.scope.getOutputDir import com.android.build.gradle.internal.variant.BaseVariantData +import com.android.builder.core.DefaultApiVersion import com.android.builder.core.VariantType import com.android.builder.model.ApiVersion -import com.android.sdklib.AndroidVersion import com.android.sdklib.BuildToolInfo import com.didiglobal.booster.gradle.AGPInterface import org.gradle.api.Project @@ -45,6 +45,7 @@ internal object V35 : AGPInterface { return try { project.objects.fileCollection().from(variantScope.artifacts.getFinalArtifactFiles(type)) } catch (e: Throwable) { + project.logger.warn(e.message, e) project.objects.fileCollection().builtBy(variantScope.artifacts.getFinalArtifactFiles(type)) } } @@ -96,7 +97,7 @@ internal object V35 : AGPInterface { override val BaseVariant.variantScope: VariantScope get() = variantData.scope - override val BaseVariant.globalScope: GlobalScope + private val BaseVariant.globalScope: GlobalScope get() = variantScope.globalScope override val BaseVariant.originalApplicationId: String @@ -143,8 +144,8 @@ internal object V35 : AGPInterface { name to artifacts } - override val BaseVariant.minSdkVersion: AndroidVersion - get() = variantData.variantConfiguration.minSdkVersion + override val BaseVariant.minSdkVersion: ApiVersion + get() = DefaultApiVersion(variantData.variantConfiguration.minSdkVersion.apiLevel) override val BaseVariant.targetSdkVersion: ApiVersion get() = variantData.variantConfiguration.targetSdkVersion diff --git a/booster-android-gradle-v3_6/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_6/V36IntegrationTest.kt b/booster-android-gradle-v3_6/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_6/V36IntegrationTest.kt index 8e0b80229..d1c586159 100644 --- a/booster-android-gradle-v3_6/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_6/V36IntegrationTest.kt +++ b/booster-android-gradle-v3_6/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_6/V36IntegrationTest.kt @@ -21,10 +21,12 @@ import org.junit.Before import org.junit.Rule import org.junit.rules.TemporaryFolder import org.junit.rules.TestRule +import java.io.File import kotlin.test.Test import kotlin.test.assertEquals import kotlin.test.assertFalse import kotlin.test.assertNotNull +import kotlin.test.assertTrue import kotlin.test.fail private const val MIN_SDK_VERSION = 18 @@ -58,6 +60,7 @@ abstract class V36IntegrationTest(private val isLib: Boolean) { projectDir.copyFromResource("${if (isLib) "lib" else "app"}.gradle", "build.gradle") projectDir.copyFromResource("buildSrc") projectDir.copyFromResource("src") + projectDir.newFile("gradle.properties").writeText("org.gradle.jvmargs=-Xmx4g -XX:MaxMetaspaceSize=2g") assertEquals(3, AGP.revision.major) assertEquals(6, AGP.revision.minor) } @@ -110,10 +113,6 @@ abstract class V36IntegrationTest(private val isLib: Boolean) { @Case(VariantScopeTestUnit::class) fun `test AGPInterface#variantScope`() = Unit - @Test - @Case(GlobalScopeTestCase::class) - fun `test AGPInterface#globalScope`() = Unit - @Test @Case(OriginalApplicationIdTestUnit::class) fun `test AGPInterface#originalApplicationId`() = Unit @@ -269,12 +268,6 @@ class VariantScopeTestUnit : VariantTestCase() { } } -class GlobalScopeTestCase : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.globalScope }) - } -} - class OriginalApplicationIdTestUnit : VariantTestCase() { override fun apply(variant: BaseVariant) { assertNotNull(AGP.run { variant.originalApplicationId }) @@ -292,7 +285,7 @@ class RawAndroidResourcesTestUnit : VariantTestCase() { AGP.run { variant.assembleTask }.doFirst { val rawAndroidResources = AGP.run { variant.rawAndroidResources } assertNotNull(rawAndroidResources) - if (rawAndroidResources.isEmpty()) { + if (rawAndroidResources.isEmpty) { fail("rawAndroidResources is empty") } rawAndroidResources.forEach { @@ -354,14 +347,12 @@ class AarTestUnit : VariantTestCase() { override fun apply(variant: BaseVariant) { AGP.run { variant.assembleTask }.doFirst { - val aar = AGP.run { variant.aar }.search { - it.extension == "aar" - } - if (aar.isEmpty()) { - fail("aar is empty") - } - aar.forEach { - println(" - ${it.path}") + val location = AGP.run { variant.aar }.files + assertTrue("AAR: $location", location::isNotEmpty) + assertTrue("No aar found at $location") { + location.search { + it.extension == "aar" + }.isNotEmpty() } } } @@ -415,7 +406,7 @@ class MergedResourcesTestUnit : VariantTestCase() { override fun apply(variant: BaseVariant) { AGP.run { variant.assembleTask }.doFirst { val mergedResources = AGP.run { variant.mergedRes } - if (mergedResources.isEmpty()) { + if (mergedResources.isEmpty) { fail("mergedRes is empty") } mergedResources.forEach { @@ -429,7 +420,7 @@ class MergedAssetsTestUnit : VariantTestCase() { override fun apply(variant: BaseVariant) { AGP.run { variant.assembleTask }.doFirst { val mergedAssets = AGP.run { variant.mergedAssets } - if (mergedAssets.isEmpty()) { + if (mergedAssets.isEmpty) { fail("mergedAssets is empty") } mergedAssets.forEach { @@ -465,7 +456,7 @@ class SymbolListTestUnit : VariantTestCase() { override fun apply(variant: BaseVariant) { AGP.run { variant.assembleTask }.doFirst { val symbolList = AGP.run { variant.symbolList } - if (symbolList.isEmpty()) { + if (symbolList.isEmpty) { fail("symbolList is empty") } symbolList.forEach { @@ -479,7 +470,7 @@ class SymbolListWithPackageNameTestUnit : VariantTestCase() { override fun apply(variant: BaseVariant) { AGP.run { variant.assembleTask }.doFirst { val symbolListWithPackageName = AGP.run { variant.symbolListWithPackageName } - if (symbolListWithPackageName.isEmpty()) { + if (symbolListWithPackageName.isEmpty) { fail("symbolListWithPackageName is empty") } symbolListWithPackageName.forEach { @@ -492,10 +483,11 @@ class SymbolListWithPackageNameTestUnit : VariantTestCase() { class AllClassesTestUnit : VariantTestCase() { override fun apply(variant: BaseVariant) { AGP.run { variant.assembleTask }.doFirst { - val allClasses = AGP.run { variant.allClasses }.search { - it.extension == "class" + val location = AGP.run { variant.allClasses }.files + assertTrue("ALL_CLASSES: $location", location::isNotEmpty) + assertTrue("No class file found at $location") { + location.search(File::isFile).isNotEmpty() } - assertNotNull(allClasses) } } } diff --git a/booster-android-gradle-v3_6/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_6/V36.kt b/booster-android-gradle-v3_6/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_6/V36.kt index 2ac1a3708..897370a6a 100644 --- a/booster-android-gradle-v3_6/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_6/V36.kt +++ b/booster-android-gradle-v3_6/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_6/V36.kt @@ -16,9 +16,9 @@ import com.android.build.gradle.internal.scope.GlobalScope import com.android.build.gradle.internal.scope.InternalArtifactType import com.android.build.gradle.internal.scope.VariantScope import com.android.build.gradle.internal.variant.BaseVariantData +import com.android.builder.core.DefaultApiVersion import com.android.builder.core.VariantType import com.android.builder.model.ApiVersion -import com.android.sdklib.AndroidVersion import com.android.sdklib.BuildToolInfo import com.didiglobal.booster.gradle.AGPInterface import org.gradle.api.Project @@ -27,6 +27,7 @@ import org.gradle.api.artifacts.ArtifactCollection import org.gradle.api.file.FileCollection import org.gradle.api.file.FileSystemLocation import org.gradle.api.tasks.TaskProvider +import java.io.File import java.util.TreeMap @Suppress("UnstableApiUsage") @@ -48,9 +49,9 @@ object V36 : AGPInterface { @Suppress("UnstableApiUsage") private fun BaseVariant.getFinalArtifactFiles(type: ArtifactType): FileCollection { return try { - project.objects.fileCollection().from(variantScope.artifacts.getFinalProduct(type)) + project.objects.fileCollection().from(variantScope.artifacts.getFinalProducts(type)) } catch (e: Throwable) { - project.objects.fileCollection().builtBy(variantScope.artifacts.getFinalProduct(type)) + project.objects.fileCollection().builtBy(variantScope.artifacts.getFinalProducts(type)) } } @@ -104,7 +105,7 @@ object V36 : AGPInterface { override val BaseVariant.variantScope: VariantScope get() = variantData.scope - override val BaseVariant.globalScope: GlobalScope + private val BaseVariant.globalScope: GlobalScope get() = variantScope.globalScope override val BaseVariant.originalApplicationId: String @@ -140,8 +141,8 @@ object V36 : AGPInterface { name to artifacts } - override val BaseVariant.minSdkVersion: AndroidVersion - get() = variantData.variantConfiguration.minSdkVersion + override val BaseVariant.minSdkVersion: ApiVersion + get() = DefaultApiVersion(variantData.variantConfiguration.minSdkVersion.apiLevel) override val BaseVariant.targetSdkVersion: ApiVersion get() = variantData.variantConfiguration.targetSdkVersion @@ -150,7 +151,7 @@ object V36 : AGPInterface { get() = variantData.type override val BaseVariant.aar: FileCollection - get() = getFinalArtifactFiles(InternalArtifactType.AAR) + get() = project.files(variantScope.aarLocation.absolutePath) override val BaseVariant.apk: FileCollection get() = getFinalArtifactFiles(InternalArtifactType.APK) @@ -193,7 +194,11 @@ object V36 : AGPInterface { get() = getFinalArtifactFiles(InternalArtifactType.DATA_BINDING_DEPENDENCY_ARTIFACTS) override val BaseVariant.allClasses: FileCollection - get() = getFinalArtifactFiles(AnchorOutputType.ALL_CLASSES) + get() = when (this) { + is ApplicationVariant -> getFinalArtifactFiles(InternalArtifactType.JAVAC) + project.files("build${File.separator}tmp${File.separator}kotlin-classes${File.separator}${dirName}") + is LibraryVariant -> getFinalArtifactFiles(InternalArtifactType.AAR_MAIN_JAR) + else -> project.files() + } override val BaseVariant.buildTools: BuildToolInfo get() = globalScope.sdkComponents.buildToolInfoProvider.get() diff --git a/booster-android-gradle-v4_0/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v4_0/V40IntegrationTest.kt b/booster-android-gradle-v4_0/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v4_0/V40IntegrationTest.kt index 3b46da42b..5da01ee3a 100644 --- a/booster-android-gradle-v4_0/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v4_0/V40IntegrationTest.kt +++ b/booster-android-gradle-v4_0/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v4_0/V40IntegrationTest.kt @@ -21,10 +21,12 @@ import org.junit.Before import org.junit.Rule import org.junit.rules.TemporaryFolder import org.junit.rules.TestRule +import java.io.File import kotlin.test.Test import kotlin.test.assertEquals import kotlin.test.assertFalse import kotlin.test.assertNotNull +import kotlin.test.assertTrue import kotlin.test.fail private const val MIN_SDK_VERSION = 18 @@ -49,7 +51,7 @@ abstract class V40IntegrationTest(private val isLib: Boolean) { @get:Rule val ruleChain: TestRule = rule(projectDir) { rule(LocalProperties(projectDir::getRoot)) { - GradleExecutor(projectDir::getRoot, "6.2", *ARGS) + GradleExecutor(projectDir::getRoot, "6.1.1", *ARGS) } } @@ -58,6 +60,7 @@ abstract class V40IntegrationTest(private val isLib: Boolean) { projectDir.copyFromResource("${if (isLib) "lib" else "app"}.gradle", "build.gradle") projectDir.copyFromResource("buildSrc") projectDir.copyFromResource("src") + projectDir.newFile("gradle.properties").writeText("org.gradle.jvmargs=-Xmx4g -XX:MaxMetaspaceSize=2g") assertEquals(4, AGP.revision.major) assertEquals(0, AGP.revision.minor) } @@ -110,10 +113,6 @@ abstract class V40IntegrationTest(private val isLib: Boolean) { @Case(VariantScopeTestUnit::class) fun `test AGPInterface#variantScope`() = Unit - @Test - @Case(GlobalScopeTestCase::class) - fun `test AGPInterface#globalScope`() = Unit - @Test @Case(OriginalApplicationIdTestUnit::class) fun `test AGPInterface#originalApplicationId`() = Unit @@ -269,12 +268,6 @@ class VariantScopeTestUnit : VariantTestCase() { } } -class GlobalScopeTestCase : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.globalScope }) - } -} - class OriginalApplicationIdTestUnit : VariantTestCase() { override fun apply(variant: BaseVariant) { assertNotNull(AGP.run { variant.originalApplicationId }) @@ -292,7 +285,7 @@ class RawAndroidResourcesTestUnit : VariantTestCase() { AGP.run { variant.assembleTask }.doFirst { val rawAndroidResources = AGP.run { variant.rawAndroidResources } assertNotNull(rawAndroidResources) - if (rawAndroidResources.isEmpty()) { + if (rawAndroidResources.isEmpty) { fail("rawAndroidResources is empty") } rawAndroidResources.forEach { @@ -415,7 +408,7 @@ class MergedResourcesTestUnit : VariantTestCase() { override fun apply(variant: BaseVariant) { AGP.run { variant.assembleTask }.doFirst { val mergedResources = AGP.run { variant.mergedRes } - if (mergedResources.isEmpty()) { + if (mergedResources.isEmpty) { fail("mergedRes is empty") } mergedResources.forEach { @@ -429,7 +422,7 @@ class MergedAssetsTestUnit : VariantTestCase() { override fun apply(variant: BaseVariant) { AGP.run { variant.assembleTask }.doFirst { val mergedAssets = AGP.run { variant.mergedAssets } - if (mergedAssets.isEmpty()) { + if (mergedAssets.isEmpty) { fail("mergedAssets is empty") } mergedAssets.forEach { @@ -465,7 +458,7 @@ class SymbolListTestUnit : VariantTestCase() { override fun apply(variant: BaseVariant) { AGP.run { variant.assembleTask }.doFirst { val symbolList = AGP.run { variant.symbolList } - if (symbolList.isEmpty()) { + if (symbolList.isEmpty) { fail("symbolList is empty") } symbolList.forEach { @@ -479,7 +472,7 @@ class SymbolListWithPackageNameTestUnit : VariantTestCase() { override fun apply(variant: BaseVariant) { AGP.run { variant.assembleTask }.doFirst { val symbolListWithPackageName = AGP.run { variant.symbolListWithPackageName } - if (symbolListWithPackageName.isEmpty()) { + if (symbolListWithPackageName.isEmpty) { fail("symbolListWithPackageName is empty") } symbolListWithPackageName.forEach { @@ -492,14 +485,10 @@ class SymbolListWithPackageNameTestUnit : VariantTestCase() { class AllClassesTestUnit : VariantTestCase() { override fun apply(variant: BaseVariant) { AGP.run { variant.assembleTask }.doFirst { - val allClasses = AGP.run { variant.allClasses }.search { - it.extension == "class" - } - if (allClasses.isEmpty()) { - fail("allClasses is empty") - } - allClasses.forEach { - println(" - ${it.path}") + val location = AGP.run { variant.allClasses }.files + assertTrue("ALL_CLASSES: $location", location::isNotEmpty) + assertTrue("No class file found at $location") { + location.search(File::isFile).isNotEmpty() } } } diff --git a/booster-android-gradle-v4_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_0/V40.kt b/booster-android-gradle-v4_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_0/V40.kt index ddb42da1e..79cfe367d 100644 --- a/booster-android-gradle-v4_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_0/V40.kt +++ b/booster-android-gradle-v4_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_0/V40.kt @@ -15,9 +15,9 @@ import com.android.build.gradle.internal.scope.MultipleArtifactType import com.android.build.gradle.internal.scope.SingleArtifactType import com.android.build.gradle.internal.scope.VariantScope import com.android.build.gradle.internal.variant.BaseVariantData +import com.android.builder.core.DefaultApiVersion import com.android.builder.core.VariantType import com.android.builder.model.ApiVersion -import com.android.sdklib.AndroidVersion import com.android.sdklib.BuildToolInfo import com.didiglobal.booster.gradle.AGPInterface import org.gradle.api.Project @@ -26,6 +26,7 @@ import org.gradle.api.artifacts.ArtifactCollection import org.gradle.api.file.FileCollection import org.gradle.api.file.FileSystemLocation import org.gradle.api.tasks.TaskProvider +import java.io.File import java.util.TreeMap @Suppress("UnstableApiUsage") @@ -58,6 +59,7 @@ internal object V40 : AGPInterface { return try { project.objects.fileCollection().from(variantScope.artifacts.getOperations().get(type)) } catch (e: Throwable) { + project.logger.warn(e.message, e) project.objects.fileCollection().builtBy(variantScope.artifacts.getOperations().get(type)) } } @@ -67,6 +69,7 @@ internal object V40 : AGPInterface { return try { project.objects.fileCollection().from(variantScope.artifacts.getOperations().getAll(type)) } catch (e: Throwable) { + project.logger.warn(e.message, e) project.objects.fileCollection().builtBy(variantScope.artifacts.getOperations().getAll(type)) } } @@ -121,7 +124,7 @@ internal object V40 : AGPInterface { override val BaseVariant.variantScope: VariantScope get() = variantData.scope - override val BaseVariant.globalScope: GlobalScope + private val BaseVariant.globalScope: GlobalScope get() = variantScope.globalScope override val BaseVariant.originalApplicationId: String @@ -165,8 +168,8 @@ internal object V40 : AGPInterface { } } - override val BaseVariant.minSdkVersion: AndroidVersion - get() = variantData.variantDslInfo.minSdkVersion + override val BaseVariant.minSdkVersion: ApiVersion + get() = DefaultApiVersion(variantData.variantDslInfo.minSdkVersion.apiLevel) override val BaseVariant.targetSdkVersion: ApiVersion get() = variantData.variantDslInfo.targetSdkVersion @@ -217,7 +220,11 @@ internal object V40 : AGPInterface { get() = getFinalArtifactFiles(InternalArtifactType.DATA_BINDING_DEPENDENCY_ARTIFACTS) override val BaseVariant.allClasses: FileCollection - get() = getFinalArtifactFiles(InternalArtifactType.JAVAC) + get() = when (this) { + is ApplicationVariant -> getFinalArtifactFiles(InternalArtifactType.JAVAC) + project.files("build${File.separator}tmp${File.separator}kotlin-classes${File.separator}${dirName}") + is LibraryVariant -> getFinalArtifactFiles(InternalArtifactType.AAR_MAIN_JAR) + else -> project.files() + } override val BaseVariant.buildTools: BuildToolInfo get() = globalScope.sdkComponents.buildToolInfoProvider.get() diff --git a/booster-android-gradle-v4_1/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v4_1/V41IntegrationTest.kt b/booster-android-gradle-v4_1/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v4_1/V41IntegrationTest.kt index 4fe1ec4cc..ea50575e0 100644 --- a/booster-android-gradle-v4_1/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v4_1/V41IntegrationTest.kt +++ b/booster-android-gradle-v4_1/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v4_1/V41IntegrationTest.kt @@ -21,10 +21,12 @@ import org.junit.Before import org.junit.Rule import org.junit.rules.TemporaryFolder import org.junit.rules.TestRule +import java.io.File import kotlin.test.Test import kotlin.test.assertEquals import kotlin.test.assertFalse import kotlin.test.assertNotNull +import kotlin.test.assertTrue import kotlin.test.fail private const val MIN_SDK_VERSION = 18 @@ -58,6 +60,7 @@ abstract class V41IntegrationTest(val isLib: Boolean) { projectDir.copyFromResource("${if (isLib) "lib" else "app"}.gradle", "build.gradle") projectDir.copyFromResource("buildSrc") projectDir.copyFromResource("src") + projectDir.newFile("gradle.properties").writeText("org.gradle.jvmargs=-Xmx4g -XX:MaxMetaspaceSize=2g") assertEquals(4, AGP.revision.major) assertEquals(1, AGP.revision.minor) } @@ -110,10 +113,6 @@ abstract class V41IntegrationTest(val isLib: Boolean) { @Case(VariantScopeTestUnit::class) fun `test AGPInterface#variantScope`() = Unit - @Test - @Case(GlobalScopeTestCase::class) - fun `test AGPInterface#globalScope`() = Unit - @Test @Case(OriginalApplicationIdTestUnit::class) fun `test AGPInterface#originalApplicationId`() = Unit @@ -269,12 +268,6 @@ class VariantScopeTestUnit : VariantTestCase() { } } -class GlobalScopeTestCase : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.globalScope }) - } -} - class OriginalApplicationIdTestUnit : VariantTestCase() { override fun apply(variant: BaseVariant) { assertNotNull(AGP.run { variant.originalApplicationId }) @@ -292,7 +285,7 @@ class RawAndroidResourcesTestUnit : VariantTestCase() { AGP.run { variant.assembleTask }.doFirst { val rawAndroidResources = AGP.run { variant.rawAndroidResources } assertNotNull(rawAndroidResources) - if (rawAndroidResources.isEmpty()) { + if (rawAndroidResources.isEmpty) { fail("rawAndroidResources is empty") } rawAndroidResources.forEach { @@ -415,7 +408,7 @@ class MergedResourcesTestUnit : VariantTestCase() { override fun apply(variant: BaseVariant) { AGP.run { variant.assembleTask }.doFirst { val mergedResources = AGP.run { variant.mergedRes } - if (mergedResources.isEmpty()) { + if (mergedResources.isEmpty) { fail("mergedRes is empty") } mergedResources.forEach { @@ -429,7 +422,7 @@ class MergedAssetsTestUnit : VariantTestCase() { override fun apply(variant: BaseVariant) { AGP.run { variant.assembleTask }.doFirst { val mergedAssets = AGP.run { variant.mergedAssets } - if (mergedAssets.isEmpty()) { + if (mergedAssets.isEmpty) { fail("mergedAssets is empty") } mergedAssets.forEach { @@ -465,7 +458,7 @@ class SymbolListTestUnit : VariantTestCase() { override fun apply(variant: BaseVariant) { AGP.run { variant.assembleTask }.doFirst { val symbolList = AGP.run { variant.symbolList } - if (symbolList.isEmpty()) { + if (symbolList.isEmpty) { fail("symbolList is empty") } symbolList.forEach { @@ -479,7 +472,7 @@ class SymbolListWithPackageNameTestUnit : VariantTestCase() { override fun apply(variant: BaseVariant) { AGP.run { variant.assembleTask }.doFirst { val symbolListWithPackageName = AGP.run { variant.symbolListWithPackageName } - if (symbolListWithPackageName.isEmpty()) { + if (symbolListWithPackageName.isEmpty) { fail("symbolListWithPackageName is empty") } symbolListWithPackageName.forEach { @@ -492,14 +485,10 @@ class SymbolListWithPackageNameTestUnit : VariantTestCase() { class AllClassesTestUnit : VariantTestCase() { override fun apply(variant: BaseVariant) { AGP.run { variant.assembleTask }.doFirst { - val allClasses = AGP.run { variant.allClasses }.search { - it.extension == "class" - } - if (allClasses.isEmpty()) { - fail("allClasses is empty") - } - allClasses.forEach { - println(" - ${it.path}") + val location = AGP.run { variant.allClasses }.files + assertTrue("ALL_CLASSES: $location", location::isNotEmpty) + assertTrue("No class file found at $location") { + location.search(File::isFile).isNotEmpty() } } } diff --git a/booster-android-gradle-v4_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_1/V41.kt b/booster-android-gradle-v4_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_1/V41.kt index 6807ac805..41c452572 100644 --- a/booster-android-gradle-v4_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_1/V41.kt +++ b/booster-android-gradle-v4_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_1/V41.kt @@ -20,9 +20,9 @@ import com.android.build.gradle.internal.scope.InternalArtifactType import com.android.build.gradle.internal.scope.InternalMultipleArtifactType import com.android.build.gradle.internal.scope.VariantScope import com.android.build.gradle.internal.variant.BaseVariantData +import com.android.builder.core.DefaultApiVersion import com.android.builder.core.VariantType import com.android.builder.model.ApiVersion -import com.android.sdklib.AndroidVersion import com.android.sdklib.BuildToolInfo import com.didiglobal.booster.gradle.AGPInterface import org.gradle.api.Project @@ -31,6 +31,7 @@ import org.gradle.api.artifacts.ArtifactCollection import org.gradle.api.file.FileCollection import org.gradle.api.file.FileSystemLocation import org.gradle.api.tasks.TaskProvider +import java.io.File import java.util.TreeMap @Suppress("UnstableApiUsage") @@ -70,6 +71,7 @@ internal object V41 : AGPInterface { return try { project.objects.fileCollection().from(artifacts.get(type)) } catch (e: Throwable) { + project.logger.warn(e.message, e) project.objects.fileCollection().builtBy(artifacts.get(type)) } } @@ -79,6 +81,7 @@ internal object V41 : AGPInterface { return try { project.objects.fileCollection().from(artifacts.getAll(type)) } catch (e: Throwable) { + project.logger.warn(e.message, e) project.objects.fileCollection().builtBy(artifacts.getAll(type)) } } @@ -137,7 +140,7 @@ internal object V41 : AGPInterface { override val BaseVariant.variantScope: VariantScope get() = componentProperties.variantScope - override val BaseVariant.globalScope: GlobalScope + private val BaseVariant.globalScope: GlobalScope get() = componentProperties.globalScope override val BaseVariant.originalApplicationId: String @@ -181,8 +184,8 @@ internal object V41 : AGPInterface { } } - override val BaseVariant.minSdkVersion: AndroidVersion - get() = componentProperties.minSdkVersion + override val BaseVariant.minSdkVersion: ApiVersion + get() = DefaultApiVersion(componentProperties.minSdkVersion.apiLevel) override val BaseVariant.targetSdkVersion: ApiVersion get() = componentProperties.targetSdkVersion @@ -229,7 +232,11 @@ internal object V41 : AGPInterface { get() = getFinalArtifactFiles(InternalArtifactType.DATA_BINDING_DEPENDENCY_ARTIFACTS) override val BaseVariant.allClasses: FileCollection - get() = getFinalArtifactFiles(InternalArtifactType.JAVAC) + get() = when (this) { + is ApplicationVariant -> getFinalArtifactFiles(InternalArtifactType.JAVAC) + project.files("build${File.separator}tmp${File.separator}kotlin-classes${File.separator}${dirName}") + is LibraryVariant -> getFinalArtifactFiles(InternalArtifactType.AAR_MAIN_JAR) + else -> project.files() + } override val BaseVariant.buildTools: BuildToolInfo get() = globalScope.sdkComponents.get().buildToolInfoProvider.get() diff --git a/booster-android-gradle-v4_2/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42IntegrationTest.kt b/booster-android-gradle-v4_2/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42IntegrationTest.kt index 650f8fd85..29e36a997 100644 --- a/booster-android-gradle-v4_2/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42IntegrationTest.kt +++ b/booster-android-gradle-v4_2/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42IntegrationTest.kt @@ -21,10 +21,12 @@ import org.junit.Before import org.junit.Rule import org.junit.rules.TemporaryFolder import org.junit.rules.TestRule +import java.io.File import kotlin.test.Test import kotlin.test.assertEquals import kotlin.test.assertFalse import kotlin.test.assertNotNull +import kotlin.test.assertTrue import kotlin.test.fail private const val MIN_SDK_VERSION = 18 @@ -49,7 +51,7 @@ abstract class V42IntegrationTest(val isLib: Boolean) { @get:Rule val ruleChain: TestRule = rule(projectDir) { rule(LocalProperties(projectDir::getRoot)) { - GradleExecutor(projectDir::getRoot, "6.7", *ARGS) + GradleExecutor(projectDir::getRoot, "6.7.1", *ARGS) } } @@ -58,6 +60,7 @@ abstract class V42IntegrationTest(val isLib: Boolean) { projectDir.copyFromResource("${if (isLib) "lib" else "app"}.gradle", "build.gradle") projectDir.copyFromResource("buildSrc") projectDir.copyFromResource("src") + projectDir.newFile("gradle.properties").writeText("org.gradle.jvmargs=-Xmx4g -XX:MaxMetaspaceSize=2g") assertEquals(4, AGP.revision.major) assertEquals(2, AGP.revision.minor) } @@ -110,10 +113,6 @@ abstract class V42IntegrationTest(val isLib: Boolean) { @Case(VariantScopeTestUnit::class) fun `test AGPInterface#variantScope`() = Unit - @Test - @Case(GlobalScopeTestCase::class) - fun `test AGPInterface#globalScope`() = Unit - @Test @Case(OriginalApplicationIdTestUnit::class) fun `test AGPInterface#originalApplicationId`() = Unit @@ -269,12 +268,6 @@ class VariantScopeTestUnit : VariantTestCase() { } } -class GlobalScopeTestCase : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.globalScope }) - } -} - class OriginalApplicationIdTestUnit : VariantTestCase() { override fun apply(variant: BaseVariant) { assertNotNull(AGP.run { variant.originalApplicationId }) @@ -492,14 +485,10 @@ class SymbolListWithPackageNameTestUnit : VariantTestCase() { class AllClassesTestUnit : VariantTestCase() { override fun apply(variant: BaseVariant) { AGP.run { variant.assembleTask }.doFirst { - val allClasses = AGP.run { variant.allClasses }.search { - it.extension == "class" - } - if (allClasses.isEmpty()) { - fail("allClasses is empty") - } - allClasses.forEach { - println(" - ${it.path}") + val location = AGP.run { variant.allClasses }.files + assertTrue("ALL_CLASSES: $location", location::isNotEmpty) + assertTrue("No class file found at $location") { + location.search(File::isFile).isNotEmpty() } } } diff --git a/booster-android-gradle-v4_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42.kt b/booster-android-gradle-v4_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42.kt index 6bc0cb527..91b76ebb6 100644 --- a/booster-android-gradle-v4_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42.kt +++ b/booster-android-gradle-v4_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42.kt @@ -20,9 +20,9 @@ import com.android.build.gradle.internal.scope.InternalArtifactType import com.android.build.gradle.internal.scope.InternalMultipleArtifactType import com.android.build.gradle.internal.scope.VariantScope import com.android.build.gradle.internal.variant.BaseVariantData +import com.android.builder.core.DefaultApiVersion import com.android.builder.core.VariantType import com.android.builder.model.ApiVersion -import com.android.sdklib.AndroidVersion import com.android.sdklib.BuildToolInfo import com.didiglobal.booster.gradle.AGPInterface import org.gradle.api.Project @@ -31,6 +31,7 @@ import org.gradle.api.artifacts.ArtifactCollection import org.gradle.api.file.FileCollection import org.gradle.api.file.FileSystemLocation import org.gradle.api.tasks.TaskProvider +import java.io.File import java.util.TreeMap @Suppress("UnstableApiUsage") @@ -70,6 +71,7 @@ internal object V42 : AGPInterface { return try { project.objects.fileCollection().from(artifacts.get(type).get()) } catch (e: Throwable) { + project.logger.warn(e.message, e) project.objects.fileCollection().builtBy(artifacts.get(type)) } } @@ -79,6 +81,7 @@ internal object V42 : AGPInterface { return try { project.objects.fileCollection().from(artifacts.getAll(type)) } catch (e: Throwable) { + project.logger.warn(e.message, e) project.objects.fileCollection().builtBy(artifacts.getAll(type)) } } @@ -138,7 +141,7 @@ internal object V42 : AGPInterface { get() = component.variantScope @Suppress("DEPRECATION") - override val BaseVariant.globalScope: GlobalScope + private val BaseVariant.globalScope: GlobalScope get() = component.globalScope override val BaseVariant.originalApplicationId: String @@ -182,11 +185,8 @@ internal object V42 : AGPInterface { } } - override val BaseVariant.minSdkVersion: AndroidVersion - get() = component.minSdkVersion.run { - @Suppress("UnstableApiUsage") - AndroidVersion(apiLevel, codename) - } + override val BaseVariant.minSdkVersion: ApiVersion + get() = DefaultApiVersion(component.minSdkVersion.apiLevel) override val BaseVariant.targetSdkVersion: ApiVersion get() = component.targetSdkVersion @@ -233,14 +233,14 @@ internal object V42 : AGPInterface { get() = getFinalArtifactFiles(InternalArtifactType.DATA_BINDING_DEPENDENCY_ARTIFACTS) override val BaseVariant.allClasses: FileCollection - get() = getFinalArtifactFiles(InternalArtifactType.JAVAC) + get() = when (this) { + is ApplicationVariant -> getFinalArtifactFiles(InternalArtifactType.JAVAC) + project.files("build${File.separator}tmp${File.separator}kotlin-classes${File.separator}${dirName}") + is LibraryVariant -> getFinalArtifactFiles(InternalArtifactType.COMPILE_LIBRARY_CLASSES_JAR) + else -> project.files() + } override val BaseVariant.buildTools: BuildToolInfo - get() { - val compileSdkVersion = project.provider { globalScope.extension.compileSdkVersion!! } - val buildToolRevision = project.provider(globalScope.extension::buildToolsRevision) - return globalScope.sdkComponents.get().sdkLoader(compileSdkVersion, buildToolRevision).buildToolInfoProvider.get() - } + get() = globalScope.versionedSdkLoader.get().buildToolInfoProvider.get() override val BaseVariant.isPrecompileDependenciesResourcesEnabled: Boolean get() = component.isPrecompileDependenciesResourcesEnabled diff --git a/booster-android-gradle-v7_0/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v7_0/V70IntegrationTest.kt b/booster-android-gradle-v7_0/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v7_0/V70IntegrationTest.kt index 4e22f0de5..a85aaa9aa 100644 --- a/booster-android-gradle-v7_0/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v7_0/V70IntegrationTest.kt +++ b/booster-android-gradle-v7_0/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v7_0/V70IntegrationTest.kt @@ -20,10 +20,12 @@ import org.junit.Before import org.junit.Rule import org.junit.rules.TemporaryFolder import org.junit.rules.TestRule +import java.io.File import kotlin.test.Test import kotlin.test.assertEquals import kotlin.test.assertFalse import kotlin.test.assertNotNull +import kotlin.test.assertTrue import kotlin.test.fail private const val MIN_SDK_VERSION = 18 @@ -48,7 +50,7 @@ abstract class V70IntegrationTest(private val isLib: Boolean) { @get:Rule val ruleChain: TestRule = rule(projectDir) { rule(LocalProperties(projectDir::getRoot)) { - GradleExecutor(projectDir::getRoot, "7.0", *ARGS) + GradleExecutor(projectDir::getRoot, "7.0.2", *ARGS) } } @@ -57,6 +59,7 @@ abstract class V70IntegrationTest(private val isLib: Boolean) { projectDir.copyFromResource("${if (isLib) "lib" else "app"}.gradle", "build.gradle") projectDir.copyFromResource("buildSrc") projectDir.copyFromResource("src") + projectDir.newFile("gradle.properties").writeText("org.gradle.jvmargs=-Xmx4g -XX:MaxMetaspaceSize=2g") assertEquals(7, AGP.revision.major) assertEquals(0, AGP.revision.minor) } @@ -109,10 +112,6 @@ abstract class V70IntegrationTest(private val isLib: Boolean) { @Case(VariantScopeTestUnit::class) fun `test AGPInterface#variantScope`() = Unit - @Test - @Case(GlobalScopeTestCase::class) - fun `test AGPInterface#globalScope`() = Unit - @Test @Case(OriginalApplicationIdTestUnit::class) fun `test AGPInterface#originalApplicationId`() = Unit @@ -187,11 +186,6 @@ abstract class V70IntegrationTest(private val isLib: Boolean) { fun `test AGPInterface#allClasses`() { } -// @Test -// @Case(BuildToolsTestUnit::class) -// fun `test AGPInterface#buildTools`() { -// } - } class V70AppIntegrationTest : V70IntegrationTest(false) @@ -279,12 +273,6 @@ class VariantScopeTestUnit : VariantTestCase() { } } -class GlobalScopeTestCase : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.globalScope }) - } -} - class OriginalApplicationIdTestUnit : VariantTestCase() { override fun apply(variant: BaseVariant) { assertNotNull(AGP.run { variant.originalApplicationId }) @@ -302,7 +290,7 @@ class RawAndroidResourcesTestUnit : VariantTestCase() { AGP.run { variant.assembleTask }.doFirst { val rawAndroidResources = AGP.run { variant.rawAndroidResources } assertNotNull(rawAndroidResources) - if (rawAndroidResources.isEmpty()) { + if (rawAndroidResources.isEmpty) { fail("rawAndroidResources is empty") } rawAndroidResources.forEach { @@ -425,7 +413,7 @@ class MergedResourcesTestUnit : VariantTestCase() { override fun apply(variant: BaseVariant) { AGP.run { variant.assembleTask }.doFirst { val mergedResources = AGP.run { variant.mergedRes } - if (mergedResources.isEmpty()) { + if (mergedResources.isEmpty) { fail("mergedRes is empty") } mergedResources.forEach { @@ -439,7 +427,7 @@ class MergedAssetsTestUnit : VariantTestCase() { override fun apply(variant: BaseVariant) { AGP.run { variant.assembleTask }.doFirst { val mergedAssets = AGP.run { variant.mergedAssets } - if (mergedAssets.isEmpty()) { + if (mergedAssets.isEmpty) { fail("mergedAssets is empty") } mergedAssets.forEach { @@ -475,7 +463,7 @@ class SymbolListTestUnit : VariantTestCase() { override fun apply(variant: BaseVariant) { AGP.run { variant.assembleTask }.doFirst { val symbolList = AGP.run { variant.symbolList } - if (symbolList.isEmpty()) { + if (symbolList.isEmpty) { fail("symbolList is empty") } symbolList.forEach { @@ -489,7 +477,7 @@ class SymbolListWithPackageNameTestUnit : VariantTestCase() { override fun apply(variant: BaseVariant) { AGP.run { variant.assembleTask }.doFirst { val symbolListWithPackageName = AGP.run { variant.symbolListWithPackageName } - if (symbolListWithPackageName.isEmpty()) { + if (symbolListWithPackageName.isEmpty) { fail("symbolListWithPackageName is empty") } symbolListWithPackageName.forEach { @@ -502,27 +490,11 @@ class SymbolListWithPackageNameTestUnit : VariantTestCase() { class AllClassesTestUnit : VariantTestCase() { override fun apply(variant: BaseVariant) { AGP.run { variant.assembleTask }.doFirst { - val allClasses = AGP.run { variant.allClasses }.search { - it.extension == "class" - } - if (allClasses.isEmpty()) { - fail("allClasses is empty") - } - allClasses.forEach { - println(" - ${it.path}") + val location = AGP.run { variant.allClasses }.files + assertTrue("ALL_CLASSES: $location", location::isNotEmpty) + assertTrue("No class file found at $location") { + location.search(File::isFile).isNotEmpty() } } } } - -//class BuildToolsTestUnit : VariantTestCase() { -// override fun apply(variant: BaseVariant) { -// val buildTools = AGP.run { variant.buildTools } -// assertNotNull(buildTools) -// BuildToolInfo.PathId.values().map { -// it.name to buildTools.getPath(it) -// }.forEach { (k, v) -> -// println(" - $k => $v") -// } -// } -//} diff --git a/booster-android-gradle-v7_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_0/V70.kt b/booster-android-gradle-v7_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_0/V70.kt index 4fa09f28d..cfc34f2ec 100644 --- a/booster-android-gradle-v7_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_0/V70.kt +++ b/booster-android-gradle-v7_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_0/V70.kt @@ -22,9 +22,9 @@ import com.android.build.gradle.internal.scope.InternalArtifactType import com.android.build.gradle.internal.scope.InternalMultipleArtifactType import com.android.build.gradle.internal.scope.VariantScope import com.android.build.gradle.internal.variant.BaseVariantData +import com.android.builder.core.DefaultApiVersion import com.android.builder.core.VariantType import com.android.builder.model.ApiVersion -import com.android.sdklib.AndroidVersion import com.android.sdklib.BuildToolInfo import com.didiglobal.booster.gradle.AGPInterface import org.gradle.api.Project @@ -33,6 +33,7 @@ import org.gradle.api.artifacts.ArtifactCollection import org.gradle.api.file.FileCollection import org.gradle.api.file.FileSystemLocation import org.gradle.api.tasks.TaskProvider +import java.io.File import java.util.TreeMap @Suppress("UnstableApiUsage") @@ -45,7 +46,7 @@ private val SINGLE_ARTIFACT_TYPES = arrayOf( ).map { it.sealedSubclasses }.flatten().map { - it.objectInstance as SingleArtifact + it.objectInstance as Artifact.Single }.associateBy { it.javaClass.simpleName } @@ -56,7 +57,7 @@ private val MULTIPLE_ARTIFACT_TYPES = arrayOf( ).map { it.sealedSubclasses }.flatten().map { - it.objectInstance as MultipleArtifact + it.objectInstance as Artifact.Multiple }.associateBy { it.javaClass.simpleName } @@ -74,6 +75,7 @@ internal object V70 : AGPInterface { return try { project.objects.fileCollection().from(artifacts.get(type)) } catch (e: Throwable) { + project.logger.warn(e.message, e) project.objects.fileCollection().builtBy(artifacts.get(type)) } } @@ -83,6 +85,7 @@ internal object V70 : AGPInterface { return try { project.objects.fileCollection().from(artifacts.getAll(type)) } catch (e: Throwable) { + project.logger.warn(e.message, e) project.objects.fileCollection().builtBy(artifacts.getAll(type)) } } @@ -146,7 +149,7 @@ internal object V70 : AGPInterface { get() = component.variantScope @Suppress("DEPRECATION") - override val BaseVariant.globalScope: GlobalScope + private val BaseVariant.globalScope: GlobalScope get() = component.globalScope override val BaseVariant.originalApplicationId: String @@ -190,11 +193,8 @@ internal object V70 : AGPInterface { } } - override val BaseVariant.minSdkVersion: AndroidVersion - get() = component.minSdkVersion.run { - @Suppress("UnstableApiUsage") - AndroidVersion(apiLevel, codename) - } + override val BaseVariant.minSdkVersion: ApiVersion + get() = DefaultApiVersion(component.minSdkVersion.apiLevel) override val BaseVariant.targetSdkVersion: ApiVersion get() = component.variantDslInfo.targetSdkVersion @@ -241,14 +241,14 @@ internal object V70 : AGPInterface { get() = getFinalArtifactFiles(InternalArtifactType.DATA_BINDING_DEPENDENCY_ARTIFACTS) override val BaseVariant.allClasses: FileCollection - get() = getFinalArtifactFiles(InternalArtifactType.JAVAC) + get() = when (this) { + is ApplicationVariant -> getFinalArtifactFiles(InternalArtifactType.JAVAC) + project.files("build${File.separator}tmp${File.separator}kotlin-classes${File.separator}${dirName}") + is LibraryVariant -> getFinalArtifactFiles(InternalArtifactType.COMPILE_LIBRARY_CLASSES_JAR) + else -> project.files() + } override val BaseVariant.buildTools: BuildToolInfo - get() { - val compileSdkVersion = project.provider { globalScope.extension.compileSdkVersion!! } - val buildToolRevision = project.provider(globalScope.extension::buildToolsRevision) - return globalScope.sdkComponents.get().sdkLoader(compileSdkVersion, buildToolRevision).buildToolInfoProvider.get() - } + get() = globalScope.versionedSdkLoader.get().buildToolInfoProvider.get() override val BaseVariant.isPrecompileDependenciesResourcesEnabled: Boolean get() = component.isPrecompileDependenciesResourcesEnabled diff --git a/booster-android-gradle-v7_1/README.md b/booster-android-gradle-v7_1/README.md new file mode 100644 index 000000000..de13f9a1a --- /dev/null +++ b/booster-android-gradle-v7_1/README.md @@ -0,0 +1,6 @@ +# booster-android-gradle-v7_1 + +This module is an implementation of [booster-android-gradle-api](../booster-android-gradle-api) for Android gradle plugin above 7.1 + +本模块是 [booster-android-gradle-api](../booster-android-gradle-api) 针对 Android gradle plugin 7.1 以上版本的实现。 + diff --git a/booster-android-gradle-v7_1/build.gradle b/booster-android-gradle-v7_1/build.gradle new file mode 100644 index 000000000..226e0c330 --- /dev/null +++ b/booster-android-gradle-v7_1/build.gradle @@ -0,0 +1,27 @@ +apply plugin: 'java-gradle-plugin' + +apply from: "$rootDir/gradle/booster.gradle" +apply from: "$rootDir/gradle/integration-test.gradle" +apply from: "$rootDir/gradle/functional-test.gradle" + +dependencies { + kapt 'com.google.auto.service:auto-service:1.0' + api 'com.google.auto.service:auto-service:1.0' + api project(':booster-android-gradle-compat') + compileOnly 'com.android.tools:repository:30.0.0' + compileOnly 'com.android.tools:common:30.0.0' + compileOnly 'com.android.tools:sdklib:30.0.0' + compileOnly 'com.android.tools.build:gradle:7.1.0' + testImplementation 'com.android.tools.build:gradle:7.1.0' + testImplementation 'com.android.tools:common:30.0.0' + testImplementation 'io.bootstage.testkit:testkit-gradle-plugin:1.1.0' + testImplementation project(':booster-build') +} + +jar { + exclude('com/android/sdklib/BuildToolInfo.class') +} + +gradlePlugin { + testSourceSets sourceSets.functionalTest, sourceSets.integrationTest +} \ No newline at end of file diff --git a/booster-android-gradle-v7_1/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v7_1/V71IntegrationTest.kt b/booster-android-gradle-v7_1/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v7_1/V71IntegrationTest.kt new file mode 100644 index 000000000..3afe46d9f --- /dev/null +++ b/booster-android-gradle-v7_1/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v7_1/V71IntegrationTest.kt @@ -0,0 +1,500 @@ +package com.didiglobal.booster.android.gradle.v7_1 + +import com.android.build.gradle.AppExtension +import com.android.build.gradle.BaseExtension +import com.android.build.gradle.LibraryExtension +import com.android.build.gradle.api.BaseVariant +import com.android.builder.core.VariantTypeImpl +import com.didiglobal.booster.gradle.AGP +import com.didiglobal.booster.gradle.getAndroid +import com.didiglobal.booster.kotlinx.search +import io.bootstage.testkit.gradle.Case +import io.bootstage.testkit.gradle.TestCase +import io.bootstage.testkit.gradle.VariantTestCase +import io.bootstage.testkit.gradle.rules.GradleExecutor +import io.bootstage.testkit.gradle.rules.LocalProperties +import io.bootstage.testkit.gradle.rules.copyFromResource +import io.bootstage.testkit.gradle.rules.rule +import org.gradle.api.Project +import org.junit.Before +import org.junit.Rule +import org.junit.rules.TemporaryFolder +import org.junit.rules.TestRule +import java.io.File +import kotlin.test.Test +import kotlin.test.assertEquals +import kotlin.test.assertFalse +import kotlin.test.assertNotNull +import kotlin.test.assertTrue +import kotlin.test.fail + +private const val MIN_SDK_VERSION = 18 + +private const val TARGET_SDK_VERSION = 30 + +private val ARGS = arrayOf( + "assemble", "-S", + "-Pbooster_version=${Build.VERSION}", + "-Pandroid_gradle_version=7.1.0", + "-Pcompile_sdk_version=30", + "-Pbuild_tools_version=29.0.2", + "-Pmin_sdk_version=${MIN_SDK_VERSION}", + "-Ptarget_sdk_version=${TARGET_SDK_VERSION}" +) + +@Suppress("RemoveCurlyBracesFromTemplate", "FunctionName") +abstract class V71IntegrationTest(private val isLib: Boolean) { + + private val projectDir = TemporaryFolder() + + @get:Rule + val ruleChain: TestRule = rule(projectDir) { + rule(LocalProperties(projectDir::getRoot)) { + GradleExecutor(projectDir::getRoot, "7.2", *ARGS) + } + } + + @Before + fun setup() { + projectDir.copyFromResource("${if (isLib) "lib" else "app"}.gradle", "build.gradle") + projectDir.copyFromResource("buildSrc") + projectDir.copyFromResource("src") + projectDir.newFile("gradle.properties").writeText("org.gradle.jvmargs=-Xmx4g -XX:MaxMetaspaceSize=2g") + assertEquals(7, AGP.revision.major) + assertEquals(1, AGP.revision.minor) + } + + @Test + @Case(ScopeFullWithFeaturesTest::class) + fun `test AGPInterface#scopeFullWithFeatures`() = Unit + + @Test + @Case(ScopeFullLibraryWithFeaturesTest::class) + fun `test AGPInterface#scopeFullLibraryWithFeatures`() = Unit + + @Test + @Case(ProjectTest::class) + fun `test AGPInterface#project`() = Unit + + @Test + @Case(JavaCompilerTaskTestUnit::class) + fun `test AGPInterface#javaCompilerTask`() = Unit + + @Test + @Case(PreBuildTaskTestUnit::class) + fun `test AGPInterface#preBuildTask`() = Unit + + @Test + @Case(AssembleTaskTestUnit::class) + fun `test AGPInterface#assembleTask`() = Unit + + @Test + @Case(MergeAssetsTaskTestUnit::class) + fun `test AGPInterface#mergeAssetsTask`() = Unit + + @Test + @Case(MergeResourcesTaskTestUnit::class) + fun `test AGPInterface#mergeResources`() = Unit + + @Test + @Case(GetTaskNameTestUnit::class) + fun `test AGPInterface#getTaskName(String)`() = Unit + + @Test + @Case(GetTaskName2TestUnit::class) + fun `test AGPInterface#getTaskName(String, String)`() = Unit + + @Test + @Case(VariantDataTestUnit::class) + fun `test AGPInterface#variantData`() = Unit + + @Test + @Case(VariantScopeTestUnit::class) + fun `test AGPInterface#variantScope`() = Unit + + @Test + @Case(OriginalApplicationIdTestUnit::class) + fun `test AGPInterface#originalApplicationId`() = Unit + + @Test + @Case(HasDynamicFeatureTestUnit::class) + fun `test AGPInterface#hasDynamicFeature`() = Unit + + @Test + @Case(RawAndroidResourcesTestUnit::class) + fun `test AGPInterface#rawAndroidResources`() = Unit + + @Test + @Case(AllArtifactsTestUnit::class) + fun `test AGPInterface#allArtifacts`() = Unit + + @Test + @Case(MinSdkVersionTestUnit::class) + fun `test AGPInterface#minSdkVersion`() = Unit + + @Test + @Case(TargetSdkVersionTestUnit::class) + fun `test AGPInterface#targetSdkVersion`() = Unit + + @Test + @Case(VariantTypeTestUnit::class) + fun `test AGPInterface#variantType`() { + } + + @Test + @Case(AarTestUnit::class) + fun `test AGPInterface#aar`() { + } + + @Test + @Case(ApkTestUnit::class) + fun `test AGPInterface#apk`() { + } + + @Test + @Case(MergedManifestsTestUnit::class) + fun `test AGPInterface#mergedManifests`() { + } + + @Test + @Case(MergedResourcesTestUnit::class) + fun `test AGPInterface#mergedRes`() { + } + + @Test + @Case(MergedAssetsTestUnit::class) + fun `test AGPInterface#mergedAssets`() { + } + + @Test + @Case(ProcessedResTestUnit::class) + fun `test AGPInterface#processedRes`() { + } + + @Test + @Case(SymbolListTestUnit::class) + fun `test AGPInterface#symbolList`() { + } + + @Test + @Case(SymbolListWithPackageNameTestUnit::class) + fun `test AGPInterface#symbolListWithPackageName`() { + } + + @Test + @Case(AllClassesTestUnit::class) + fun `test AGPInterface#allClasses`() { + } + +} + +class V71AppIntegrationTest : V71IntegrationTest(false) + +class V71LibIntegrationTest : V71IntegrationTest(true) + +class ScopeFullWithFeaturesTest : TestCase { + override fun apply(project: Project) { + assertEquals("PROJECT,SUB_PROJECTS,EXTERNAL_LIBRARIES,FEATURES", AGP.scopeFullWithFeatures.joinToString(",")) + } +} + +class ScopeFullLibraryWithFeaturesTest : TestCase { + override fun apply(project: Project) { + assertEquals("FEATURES,PROJECT", AGP.scopeFullLibraryWithFeatures.joinToString(",")) + } +} + +class ProjectTest : TestCase { + override fun apply(project: Project) { + val assert: (BaseVariant) -> Unit = { variant -> + assertEquals(project, AGP.run { variant.project }) + } + project.afterEvaluate { + when (val android = project.getAndroid()) { + is AppExtension -> android.applicationVariants.forEach(assert) + is LibraryExtension -> android.libraryVariants.forEach(assert) + } + } + } +} + +class JavaCompilerTaskTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + assertNotNull(AGP.run { variant.javaCompilerTask }) + } +} + +class PreBuildTaskTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + assertNotNull(AGP.run { variant.preBuildTask }) + } +} + +class AssembleTaskTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + assertNotNull(AGP.run { variant.assembleTask }) + } +} + +class MergeAssetsTaskTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + assertNotNull(AGP.run { variant.mergeAssetsTask }) + } +} + +class MergeResourcesTaskTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + assertNotNull(AGP.run { variant.mergeResourcesTask }) + } +} + +class GetTaskNameTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + assertEquals("assemble${variant.name.capitalize()}", AGP.run { variant.getTaskName("assemble") }) + } +} + + +class GetTaskName2TestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + assertEquals("merge${variant.name.capitalize()}Resources", AGP.run { variant.getTaskName("merge", "Resources") }) + } +} + +class VariantDataTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + assertNotNull(AGP.run { variant.variantData }) + } +} + +class VariantScopeTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + assertNotNull(AGP.run { variant.variantScope }) + } +} + +class OriginalApplicationIdTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + assertNotNull(AGP.run { variant.originalApplicationId }) + } +} + +class HasDynamicFeatureTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + assertFalse(AGP.run { variant.hasDynamicFeature }) + } +} + +class RawAndroidResourcesTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + AGP.run { variant.assembleTask }.doFirst { + val rawAndroidResources = AGP.run { variant.rawAndroidResources } + assertNotNull(rawAndroidResources) + if (rawAndroidResources.isEmpty) { + fail("rawAndroidResources is empty") + } + rawAndroidResources.forEach { + println(" - ${it.path}") + } + } + } +} + +class AllArtifactsTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + AGP.run { variant.assembleTask }.doFirst { + val allArtifacts = AGP.run { variant.allArtifacts } + assertNotNull(allArtifacts) + if (allArtifacts.isEmpty()) { + fail("allArtifacts is empty") + } + allArtifacts.forEach { (k, v) -> + println(" - $k => $v") + } + } + } +} + +class MinSdkVersionTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + val minSdkVersion = AGP.run { variant.minSdkVersion } + assertNotNull(minSdkVersion) + assertEquals(MIN_SDK_VERSION, minSdkVersion.apiLevel) + } +} + +class TargetSdkVersionTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + val targetSdkVersion = AGP.run { variant.targetSdkVersion } + assertNotNull(targetSdkVersion) + assertEquals(TARGET_SDK_VERSION, targetSdkVersion.apiLevel) + } +} + +class VariantTypeTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + val project = AGP.run { variant.project } + val variantType = AGP.run { variant.variantType } + if (project.plugins.hasPlugin("com.android.application")) { + assertEquals(VariantTypeImpl.BASE_APK, variantType) + } else if (project.plugins.hasPlugin("com.android.library")) { + assertEquals(VariantTypeImpl.LIBRARY, variantType) + } + } +} + +class AarTestUnit : VariantTestCase() { + override fun apply(project: Project) { + if (project.plugins.hasPlugin("com.android.library")) { + super.apply(project) + } + } + + override fun apply(variant: BaseVariant) { + AGP.run { variant.assembleTask }.doFirst { + val aar = AGP.run { variant.aar }.search { + it.extension == "aar" + } + if (aar.isEmpty()) { + fail("aar is empty") + } + aar.forEach { + println(" - ${it.path}") + } + } + } +} + +class ApkTestUnit : VariantTestCase() { + override fun apply(project: Project) { + if (project.plugins.hasPlugin("com.android.application")) { + super.apply(project) + } + } + + override fun apply(variant: BaseVariant) { + AGP.run { variant.assembleTask }.doFirst { + val apk = AGP.run { variant.apk }.search { + it.extension == "apk" + } + if (apk.isEmpty()) { + fail("apk is empty") + } + apk.forEach { + println(" - ${it.path}") + } + } + } +} + +class MergedManifestsTestUnit : VariantTestCase() { + override fun apply(project: Project) { + if (project.plugins.hasPlugin("com.android.application")) { + super.apply(project) + } + } + + override fun apply(variant: BaseVariant) { + AGP.run { variant.assembleTask }.doFirst { + val mergedManifests = AGP.run { variant.mergedManifests }.search { + it.name == "AndroidManifest.xml" + } + if (mergedManifests.isEmpty()) { + fail("mergedManifests is empty") + } + mergedManifests.forEach { + println(" - ${it.path}") + } + } + } +} + +class MergedResourcesTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + AGP.run { variant.assembleTask }.doFirst { + val mergedResources = AGP.run { variant.mergedRes } + if (mergedResources.isEmpty) { + fail("mergedRes is empty") + } + mergedResources.forEach { + println(" - ${it.path}") + } + } + } +} + +class MergedAssetsTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + AGP.run { variant.assembleTask }.doFirst { + val mergedAssets = AGP.run { variant.mergedAssets } + if (mergedAssets.isEmpty) { + fail("mergedAssets is empty") + } + mergedAssets.forEach { + println(" - ${it.path}") + } + } + } +} + +class ProcessedResTestUnit : VariantTestCase() { + override fun apply(project: Project) { + if (project.plugins.hasPlugin("com.android.application")) { + super.apply(project) + } + } + + override fun apply(variant: BaseVariant) { + AGP.run { variant.assembleTask }.doFirst { + val processedRes = AGP.run { variant.processedRes }.search { + it.extension == "ap_" + } + if (processedRes.isEmpty()) { + fail("processedRes is empty") + } + processedRes.forEach { + println(" - ${it.path}") + } + } + } +} + +class SymbolListTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + AGP.run { variant.assembleTask }.doFirst { + val symbolList = AGP.run { variant.symbolList } + if (symbolList.isEmpty) { + fail("symbolList is empty") + } + symbolList.forEach { + println(" - ${it.path}") + } + } + } +} + +class SymbolListWithPackageNameTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + AGP.run { variant.assembleTask }.doFirst { + val symbolListWithPackageName = AGP.run { variant.symbolListWithPackageName } + if (symbolListWithPackageName.isEmpty) { + fail("symbolListWithPackageName is empty") + } + symbolListWithPackageName.forEach { + println(" - ${it.path}") + } + } + } +} + +class AllClassesTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + AGP.run { variant.assembleTask }.doFirst { + val location = AGP.run { variant.allClasses }.files + assertTrue("ALL_CLASSES: $location", location::isNotEmpty) + assertTrue("No class file found at $location") { + location.search(File::isFile).isNotEmpty() + } + } + } +} diff --git a/booster-android-gradle-v7_1/src/integrationTest/resources/app.gradle b/booster-android-gradle-v7_1/src/integrationTest/resources/app.gradle new file mode 100644 index 000000000..3d8254090 --- /dev/null +++ b/booster-android-gradle-v7_1/src/integrationTest/resources/app.gradle @@ -0,0 +1,62 @@ +buildscript { + repositories { + mavenLocal() + mavenCentral() + google() + jcenter() + maven { url 'https://oss.sonatype.org/content/repositories/public/' } + maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } + } + dependencies { + classpath "com.android.tools.build:gradle:${project.android_gradle_version}" + classpath("com.didiglobal.booster:booster-gradle-plugin:${project.booster_version}") { + exclude group: 'com.google.guava' + } + classpath "io.bootstage.testkit:testkit-gradle-plugin:1.1.0" + } +} + +apply plugin: 'com.android.application' +apply plugin: 'com.didiglobal.booster' +apply plugin: 'io.bootstage.testkit' + +android { + compileSdkVersion project.compile_sdk_version as Integer + buildToolsVersion project.build_tools_version + defaultConfig { + applicationId 'com.didiglobal.booster.test' + minSdkVersion project.min_sdk_version as Integer + targetSdkVersion project.target_sdk_version as Integer + versionCode 1 + versionName "1.0" + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + } + buildTypes { + debug { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + } + } + flavorDimensions 'lang' + productFlavors { + en { + dimension 'lang' + applicationIdSuffix '.en' + } + cn { + dimension 'lang' + applicationIdSuffix '.cn' + } + } + lintOptions { + checkReleaseBuilds false + } +} + +repositories { + mavenLocal() + mavenCentral() + google() + jcenter() + maven { url 'https://oss.sonatype.org/content/repositories/public/' } +} diff --git a/booster-android-gradle-v7_1/src/integrationTest/resources/buildSrc/build.gradle b/booster-android-gradle-v7_1/src/integrationTest/resources/buildSrc/build.gradle new file mode 100644 index 000000000..fe29d688a --- /dev/null +++ b/booster-android-gradle-v7_1/src/integrationTest/resources/buildSrc/build.gradle @@ -0,0 +1,26 @@ +buildscript { + repositories { + mavenLocal() + mavenCentral() + google() + jcenter() + maven { url 'https://oss.sonatype.org/content/repositories/public/' } + maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } + } +} + +repositories { + mavenLocal() + mavenCentral() + google() + jcenter() + maven { url 'https://oss.sonatype.org/content/repositories/public/' } +} + +dependencies { + implementation "com.android.tools.build:gradle:${project.android_gradle_version}" + implementation("com.didiglobal.booster:booster-android-gradle-api:${project.booster_version}") { + exclude group: 'com.google.guava' + } + implementation "io.bootstage.testkit:testkit-gradle-plugin:1.1.0" +} diff --git a/booster-android-gradle-v7_1/src/integrationTest/resources/lib.gradle b/booster-android-gradle-v7_1/src/integrationTest/resources/lib.gradle new file mode 100644 index 000000000..6164180c7 --- /dev/null +++ b/booster-android-gradle-v7_1/src/integrationTest/resources/lib.gradle @@ -0,0 +1,59 @@ +buildscript { + repositories { + mavenLocal() + mavenCentral() + google() + jcenter() + maven { url 'https://oss.sonatype.org/content/repositories/public/' } + maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } + } + dependencies { + classpath "com.android.tools.build:gradle:${project.android_gradle_version}" + classpath("com.didiglobal.booster:booster-gradle-plugin:${project.booster_version}") { + exclude group: 'com.google.guava' + } + classpath "io.bootstage.testkit:testkit-gradle-plugin:1.1.0" + } +} + +apply plugin: 'com.android.library' +apply plugin: 'com.didiglobal.booster' +apply plugin: 'io.bootstage.testkit' + +android { + compileSdkVersion project.compile_sdk_version as Integer + buildToolsVersion project.build_tools_version + defaultConfig { + minSdkVersion project.min_sdk_version as Integer + targetSdkVersion project.target_sdk_version as Integer + versionCode 1 + versionName "1.0" + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + } + buildTypes { + debug { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + } + } + flavorDimensions 'lang' + productFlavors { + en { + dimension 'lang' + } + cn { + dimension 'lang' + } + } + lintOptions { + checkReleaseBuilds false + } +} + +repositories { + mavenLocal() + mavenCentral() + google() + jcenter() + maven { url 'https://oss.sonatype.org/content/repositories/public/' } +} diff --git a/booster-android-gradle-v7_1/src/integrationTest/resources/src/main/AndroidManifest.xml b/booster-android-gradle-v7_1/src/integrationTest/resources/src/main/AndroidManifest.xml new file mode 100644 index 000000000..30800c604 --- /dev/null +++ b/booster-android-gradle-v7_1/src/integrationTest/resources/src/main/AndroidManifest.xml @@ -0,0 +1,9 @@ + + + + + + \ No newline at end of file diff --git a/booster-android-gradle-v7_1/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/MainActivity.java b/booster-android-gradle-v7_1/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/MainActivity.java new file mode 100644 index 000000000..0eb4ec7b4 --- /dev/null +++ b/booster-android-gradle-v7_1/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/MainActivity.java @@ -0,0 +1,6 @@ +package com.didiglobal.booster.android.test; + +import android.app.Activity; + +public class MainActivity extends Activity { +} \ No newline at end of file diff --git a/booster-android-gradle-v7_1/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/TestApplication.java b/booster-android-gradle-v7_1/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/TestApplication.java new file mode 100644 index 000000000..3ecfb1507 --- /dev/null +++ b/booster-android-gradle-v7_1/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/TestApplication.java @@ -0,0 +1,7 @@ +package com.didiglobal.booster.android.test; + +import android.app.Application; + +public class TestApplication extends Application { + +} \ No newline at end of file diff --git a/booster-android-gradle-v7_1/src/integrationTest/resources/src/main/res/values/strings.xml b/booster-android-gradle-v7_1/src/integrationTest/resources/src/main/res/values/strings.xml new file mode 100644 index 000000000..8b2247616 --- /dev/null +++ b/booster-android-gradle-v7_1/src/integrationTest/resources/src/main/res/values/strings.xml @@ -0,0 +1,4 @@ + + + Test + \ No newline at end of file diff --git a/booster-android-gradle-v7_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_1/V71.kt b/booster-android-gradle-v7_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_1/V71.kt new file mode 100644 index 000000000..47f461719 --- /dev/null +++ b/booster-android-gradle-v7_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_1/V71.kt @@ -0,0 +1,264 @@ +package com.didiglobal.booster.android.gradle.v7_1 + +import com.android.build.api.artifact.Artifact +import com.android.build.api.artifact.MultipleArtifact +import com.android.build.api.artifact.SingleArtifact +import com.android.build.api.artifact.impl.ArtifactsImpl +import com.android.build.api.component.impl.ComponentImpl +import com.android.build.api.transform.Context +import com.android.build.api.transform.QualifiedContent +import com.android.build.gradle.api.ApplicationVariant +import com.android.build.gradle.api.BaseVariant +import com.android.build.gradle.api.LibraryVariant +import com.android.build.gradle.internal.api.BaseVariantImpl +import com.android.build.gradle.internal.api.artifact.SourceArtifactType +import com.android.build.gradle.internal.pipeline.TransformManager +import com.android.build.gradle.internal.pipeline.TransformTask +import com.android.build.gradle.internal.publishing.AndroidArtifacts +import com.android.build.gradle.internal.scope.BuildArtifactType +import com.android.build.gradle.internal.scope.GlobalScope +import com.android.build.gradle.internal.scope.InternalArtifactType +import com.android.build.gradle.internal.scope.InternalMultipleArtifactType +import com.android.build.gradle.internal.scope.VariantScope +import com.android.build.gradle.internal.variant.BaseVariantData +import com.android.builder.core.DefaultApiVersion +import com.android.builder.core.VariantType +import com.android.builder.model.ApiVersion +import com.android.sdklib.BuildToolInfo +import com.didiglobal.booster.gradle.AGPInterface +import org.gradle.api.Project +import org.gradle.api.Task +import org.gradle.api.artifacts.ArtifactCollection +import org.gradle.api.file.FileCollection +import org.gradle.api.file.FileSystemLocation +import org.gradle.api.tasks.TaskProvider +import java.io.File +import java.util.TreeMap + +@Suppress("UnstableApiUsage") +private val SINGLE_ARTIFACT_TYPES = arrayOf( + BuildArtifactType::class, + InternalArtifactType::class, + SingleArtifact::class, + SourceArtifactType::class +).map { + it.sealedSubclasses +}.flatten().map { + it.objectInstance as Artifact.Single +}.associateBy { + it.javaClass.simpleName +} + +private val MULTIPLE_ARTIFACT_TYPES = arrayOf( + MultipleArtifact::class, + InternalMultipleArtifactType::class +).map { + it.sealedSubclasses +}.flatten().map { + it.objectInstance as Artifact.Multiple +}.associateBy { + it.javaClass.simpleName +} + +@Suppress("DEPRECATION") +internal object V71 : AGPInterface { + + private val BaseVariant.component: ComponentImpl + get() = BaseVariantImpl::class.java.getDeclaredField("component").apply { + isAccessible = true + }.get(this) as ComponentImpl + + @Suppress("UnstableApiUsage") + private fun BaseVariant.getFinalArtifactFiles(type: Artifact.Single): FileCollection { + return try { + project.objects.fileCollection().from(artifacts.get(type)) + } catch (e: Throwable) { + project.objects.fileCollection().builtBy(artifacts.get(type)) + } + } + + @Suppress("UnstableApiUsage") + private fun BaseVariant.getFinalArtifactFiles(type: Artifact.Multiple): FileCollection { + return try { + project.objects.fileCollection().from(artifacts.getAll(type)) + } catch (e: Throwable) { + project.objects.fileCollection().builtBy(artifacts.getAll(type)) + } + } + + @Suppress("UnstableApiUsage") + private val BaseVariant.artifacts: ArtifactsImpl + get() = component.artifacts + + override val scopeFullWithFeatures: MutableSet + get() = TransformManager.SCOPE_FULL_WITH_FEATURES + + override val scopeFullLibraryWithFeatures: MutableSet + get() = (TransformManager.SCOPE_FEATURES + QualifiedContent.Scope.PROJECT).toMutableSet() + + override val BaseVariant.project: Project + get() = globalScope.run { + javaClass.getDeclaredField("project").apply { + isAccessible = true + }.get(this) as Project + } + + override val BaseVariant.javaCompilerTaskProvider: TaskProvider + get() = javaCompileProvider + + override val BaseVariant.preBuildTaskProvider: TaskProvider + get() = preBuildProvider + + override val BaseVariant.assembleTaskProvider: TaskProvider + get() = assembleProvider + + override val BaseVariant.mergeAssetsTaskProvider: TaskProvider + get() = mergeAssetsProvider + + override val BaseVariant.mergeResourcesTaskProvider: TaskProvider + get() = try { + project.tasks.named(getTaskName("merge", "Resources")) + } catch (e: Throwable) { + mergeResourcesProvider + } + + override val BaseVariant.mergeNativeLibsTaskProvider: TaskProvider + get() = project.tasks.named(getTaskName("merge", "NativeLibs")) + + override val BaseVariant.processJavaResourcesTaskProvider: TaskProvider + get() = processJavaResourcesProvider + + override fun BaseVariant.getTaskName(prefix: String): String { + return component.computeTaskName(prefix) + } + + override fun BaseVariant.getTaskName(prefix: String, suffix: String): String { + return component.computeTaskName(prefix, suffix) + } + + override val BaseVariant.variantData: BaseVariantData + get() = javaClass.getDeclaredMethod("getVariantData").apply { + isAccessible = true + }.invoke(this) as BaseVariantData + + override val BaseVariant.variantScope: VariantScope + get() = component.variantScope + + @Suppress("DEPRECATION") + private val BaseVariant.globalScope: GlobalScope + get() = component.globalScope + + override val BaseVariant.originalApplicationId: String + get() = component.variantDslInfo.namespace.get() + + override val BaseVariant.hasDynamicFeature: Boolean + get() = globalScope.hasDynamicFeatures() + + override val BaseVariant.rawAndroidResources: FileCollection + get() = component.variantData.allRawAndroidResources + + override fun BaseVariant.getArtifactCollection( + configType: AndroidArtifacts.ConsumedConfigType, + scope: AndroidArtifacts.ArtifactScope, + artifactType: AndroidArtifacts.ArtifactType + ): ArtifactCollection { + return component.variantDependencies.getArtifactCollection(configType, scope, artifactType) + } + + override fun BaseVariant.getArtifactFileCollection( + configType: AndroidArtifacts.ConsumedConfigType, + scope: AndroidArtifacts.ArtifactScope, + artifactType: AndroidArtifacts.ArtifactType + ): FileCollection { + return component.variantDependencies.getArtifactFileCollection(configType, scope, artifactType) + } + + override val BaseVariant.allArtifacts: Map + get() = TreeMap().also { all -> + SINGLE_ARTIFACT_TYPES.entries.associateTo(all) { (name, type) -> + val artifacts: FileCollection by lazy { + getFinalArtifactFiles(type) + } + name to artifacts + } + MULTIPLE_ARTIFACT_TYPES.entries.associateTo(all) { (name, type) -> + val artifacts: FileCollection by lazy { + getFinalArtifactFiles(type) + } + name to artifacts + } + } + + override val BaseVariant.minSdkVersion: ApiVersion + get() = DefaultApiVersion(component.minSdkVersion.apiLevel) + + override val BaseVariant.targetSdkVersion: ApiVersion + get() = DefaultApiVersion(component.targetSdkVersion.apiLevel) + + override val BaseVariant.variantType: VariantType + get() = component.variantType + + override val BaseVariant.aar: FileCollection + get() = getFinalArtifactFiles(SingleArtifact.AAR) + + override val BaseVariant.apk: FileCollection + get() = getFinalArtifactFiles(SingleArtifact.APK) + + override val BaseVariant.mergedManifests: FileCollection + get() = getFinalArtifactFiles(SingleArtifact.MERGED_MANIFEST) + + override val BaseVariant.mergedRes: FileCollection + get() = getFinalArtifactFiles(InternalArtifactType.MERGED_RES) + + override val BaseVariant.mergedNativeLibs: FileCollection + get() = getFinalArtifactFiles(InternalArtifactType.MERGED_NATIVE_LIBS) + + override val BaseVariant.mergedAssets: FileCollection + get() = when (this) { + is ApplicationVariant -> getFinalArtifactFiles(InternalArtifactType.COMPRESSED_ASSETS) + is LibraryVariant -> getFinalArtifactFiles(InternalArtifactType.LIBRARY_ASSETS) + else -> TODO("Unsupported variant type: $variantType") + } + + override val BaseVariant.processedRes: FileCollection + get() = getFinalArtifactFiles(InternalArtifactType.PROCESSED_RES) + + override val BaseVariant.symbolList: FileCollection + get() = when (this) { + is ApplicationVariant -> getFinalArtifactFiles(InternalArtifactType.RUNTIME_SYMBOL_LIST) + is LibraryVariant -> getFinalArtifactFiles(InternalArtifactType.COMPILE_SYMBOL_LIST) + else -> TODO("Unsupported variant type : $variantType") + } + + override val BaseVariant.symbolListWithPackageName: FileCollection + get() = getFinalArtifactFiles(InternalArtifactType.SYMBOL_LIST_WITH_PACKAGE_NAME) + + override val BaseVariant.dataBindingDependencyArtifacts: FileCollection + get() = getFinalArtifactFiles(InternalArtifactType.DATA_BINDING_DEPENDENCY_ARTIFACTS) + + override val BaseVariant.allClasses: FileCollection + get() = when (this) { + is ApplicationVariant -> getFinalArtifactFiles(InternalArtifactType.JAVAC) + project.files("build${File.separator}tmp${File.separator}kotlin-classes${File.separator}${dirName}") + is LibraryVariant -> getFinalArtifactFiles(InternalArtifactType.COMPILE_LIBRARY_CLASSES_JAR) + else -> project.files() + } + + override val BaseVariant.buildTools: BuildToolInfo + get() = globalScope.versionedSdkLoader.get().buildToolInfoProvider.get() + + override val BaseVariant.isPrecompileDependenciesResourcesEnabled: Boolean + get() = component.isPrecompileDependenciesResourcesEnabled + + override val Context.task: TransformTask + get() = javaClass.getDeclaredField("this$1").apply { + isAccessible = true + }.get(this).run { + javaClass.getDeclaredField("this$0").apply { + isAccessible = true + }.get(this) + } as TransformTask + + override val Project.aapt2Enabled: Boolean + get() = true + +} diff --git a/booster-android-gradle-v7_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_1/V71Factory.kt b/booster-android-gradle-v7_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_1/V71Factory.kt new file mode 100644 index 000000000..64d4a7d90 --- /dev/null +++ b/booster-android-gradle-v7_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_1/V71Factory.kt @@ -0,0 +1,15 @@ +package com.didiglobal.booster.android.gradle.v7_1 + +import com.android.repository.Revision +import com.didiglobal.booster.gradle.AGPInterface +import com.didiglobal.booster.gradle.AGPInterfaceFactory +import com.google.auto.service.AutoService + +@AutoService(AGPInterfaceFactory::class) +class V71Factory : AGPInterfaceFactory { + + override val revision: Revision = Revision(7, 1, 0) + + override fun newAGPInterface(): AGPInterface = V71 + +} diff --git a/booster-android-gradle-v7_2/README.md b/booster-android-gradle-v7_2/README.md new file mode 100644 index 000000000..0ffc8d2f1 --- /dev/null +++ b/booster-android-gradle-v7_2/README.md @@ -0,0 +1,6 @@ +# booster-android-gradle-v7_2 + +This module is an implementation of [booster-android-gradle-api](../booster-android-gradle-api) for Android gradle plugin above 7.2 + +本模块是 [booster-android-gradle-api](../booster-android-gradle-api) 针对 Android gradle plugin 7.2 以上版本的实现。 + diff --git a/booster-android-gradle-v7_2/build.gradle b/booster-android-gradle-v7_2/build.gradle new file mode 100644 index 000000000..cbadd52a3 --- /dev/null +++ b/booster-android-gradle-v7_2/build.gradle @@ -0,0 +1,27 @@ +apply plugin: 'java-gradle-plugin' + +apply from: "$rootDir/gradle/booster.gradle" +apply from: "$rootDir/gradle/integration-test.gradle" +apply from: "$rootDir/gradle/functional-test.gradle" + +dependencies { + kapt 'com.google.auto.service:auto-service:1.0' + api 'com.google.auto.service:auto-service:1.0' + api project(':booster-android-gradle-compat') + compileOnly 'com.android.tools:repository:30.0.0' + compileOnly 'com.android.tools:common:30.0.0' + compileOnly 'com.android.tools:sdklib:30.0.0' + compileOnly 'com.android.tools.build:gradle:7.2.0' + testImplementation 'com.android.tools.build:gradle:7.2.0' + testImplementation 'com.android.tools:common:30.0.0' + testImplementation 'io.bootstage.testkit:testkit-gradle-plugin:1.1.0' + testImplementation project(':booster-build') +} + +jar { + exclude('com/android/sdklib/BuildToolInfo.class') +} + +gradlePlugin { + testSourceSets sourceSets.functionalTest, sourceSets.integrationTest +} \ No newline at end of file diff --git a/booster-android-gradle-v7_2/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v7_2/V72IntegrationTest.kt b/booster-android-gradle-v7_2/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v7_2/V72IntegrationTest.kt new file mode 100644 index 000000000..97fab0f1a --- /dev/null +++ b/booster-android-gradle-v7_2/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v7_2/V72IntegrationTest.kt @@ -0,0 +1,505 @@ +package com.didiglobal.booster.android.gradle.v7_2 + +import com.android.build.gradle.AppExtension +import com.android.build.gradle.BaseExtension +import com.android.build.gradle.LibraryExtension +import com.android.build.gradle.api.BaseVariant +import com.android.builder.core.VariantTypeImpl +import com.didiglobal.booster.gradle.AGP +import com.didiglobal.booster.gradle.getAndroid +import com.didiglobal.booster.kotlinx.search +import io.bootstage.testkit.gradle.Case +import io.bootstage.testkit.gradle.TestCase +import io.bootstage.testkit.gradle.VariantTestCase +import io.bootstage.testkit.gradle.rules.GradleExecutor +import io.bootstage.testkit.gradle.rules.LocalProperties +import io.bootstage.testkit.gradle.rules.copyFromResource +import io.bootstage.testkit.gradle.rules.rule +import org.gradle.api.Project +import org.junit.Before +import org.junit.Rule +import org.junit.rules.TemporaryFolder +import org.junit.rules.TestRule +import java.io.File +import kotlin.test.Test +import kotlin.test.assertEquals +import kotlin.test.assertFalse +import kotlin.test.assertNotNull +import kotlin.test.assertTrue +import kotlin.test.fail + +private const val MIN_SDK_VERSION = 18 + +private const val TARGET_SDK_VERSION = 30 + +private val ARGS = arrayOf( + "assemble", "-S", + "-Pbooster_version=${Build.VERSION}", + "-Pandroid_gradle_version=7.2.0", + "-Pcompile_sdk_version=30", + "-Pbuild_tools_version=29.0.2", + "-Pmin_sdk_version=${MIN_SDK_VERSION}", + "-Ptarget_sdk_version=${TARGET_SDK_VERSION}" +) + +@Suppress("RemoveCurlyBracesFromTemplate", "FunctionName") +abstract class V72IntegrationTest(private val isLib: Boolean) { + + private val projectDir = TemporaryFolder() + + @get:Rule + val ruleChain: TestRule = rule(projectDir) { + rule(LocalProperties(projectDir::getRoot)) { + GradleExecutor(projectDir::getRoot, "7.3.3", *ARGS) + } + } + + @Before + fun setup() { + projectDir.copyFromResource("${if (isLib) "lib" else "app"}.gradle", "build.gradle") + projectDir.copyFromResource("buildSrc") + projectDir.copyFromResource("src") + projectDir.newFile("gradle.properties").writeText("org.gradle.jvmargs=-Xmx4g -XX:MaxMetaspaceSize=2g") + assertEquals(7, AGP.revision.major) + assertEquals(2, AGP.revision.minor) + } + + @Test + @Case(ScopeFullWithFeaturesTest::class) + fun `test AGPInterface#scopeFullWithFeatures`() = Unit + + @Test + @Case(ScopeFullLibraryWithFeaturesTest::class) + fun `test AGPInterface#scopeFullLibraryWithFeatures`() = Unit + + @Test + @Case(ProjectTest::class) + fun `test AGPInterface#project`() = Unit + + @Test + @Case(JavaCompilerTaskTestUnit::class) + fun `test AGPInterface#javaCompilerTask`() = Unit + + @Test + @Case(PreBuildTaskTestUnit::class) + fun `test AGPInterface#preBuildTask`() = Unit + + @Test + @Case(AssembleTaskTestUnit::class) + fun `test AGPInterface#assembleTask`() = Unit + + @Test + @Case(MergeAssetsTaskTestUnit::class) + fun `test AGPInterface#mergeAssetsTask`() = Unit + + @Test + @Case(MergeResourcesTaskTestUnit::class) + fun `test AGPInterface#mergeResources`() = Unit + + @Test + @Case(GetTaskNameTestUnit::class) + fun `test AGPInterface#getTaskName(String)`() = Unit + + @Test + @Case(GetTaskName2TestUnit::class) + fun `test AGPInterface#getTaskName(String, String)`() = Unit + + @Test + @Case(VariantDataTestUnit::class) + fun `test AGPInterface#variantData`() = Unit + + @Test + @Case(VariantScopeTestUnit::class) + fun `test AGPInterface#variantScope`() = Unit + + @Test + @Case(OriginalApplicationIdTestUnit::class) + fun `test AGPInterface#originalApplicationId`() = Unit + + @Test + @Case(HasDynamicFeatureTestUnit::class) + fun `test AGPInterface#hasDynamicFeature`() = Unit + + @Test + @Case(RawAndroidResourcesTestUnit::class) + fun `test AGPInterface#rawAndroidResources`() = Unit + + @Test + @Case(AllArtifactsTestUnit::class) + fun `test AGPInterface#allArtifacts`() = Unit + + @Test + @Case(MinSdkVersionTestUnit::class) + fun `test AGPInterface#minSdkVersion`() = Unit + + @Test + @Case(TargetSdkVersionTestUnit::class) + fun `test AGPInterface#targetSdkVersion`() = Unit + + @Test + @Case(VariantTypeTestUnit::class) + fun `test AGPInterface#variantType`() { + } + + @Test + @Case(AarTestUnit::class) + fun `test AGPInterface#aar`() { + } + + @Test + @Case(ApkTestUnit::class) + fun `test AGPInterface#apk`() { + } + + @Test + @Case(MergedManifestsTestUnit::class) + fun `test AGPInterface#mergedManifests`() { + } + + @Test + @Case(MergedResourcesTestUnit::class) + fun `test AGPInterface#mergedRes`() { + } + + @Test + @Case(MergedAssetsTestUnit::class) + fun `test AGPInterface#mergedAssets`() { + } + + @Test + @Case(ProcessedResTestUnit::class) + fun `test AGPInterface#processedRes`() { + } + + @Test + @Case(SymbolListTestUnit::class) + fun `test AGPInterface#symbolList`() { + } + + @Test + @Case(SymbolListWithPackageNameTestUnit::class) + fun `test AGPInterface#symbolListWithPackageName`() { + } + + @Test + @Case(AllClassesTestUnit::class) + fun `test AGPInterface#allClasses`() { + } + +// @Test +// @Case(BuildToolsTestUnit::class) +// fun `test AGPInterface#buildTools`() { +// } + +} + +class V72AppIntegrationTest : V72IntegrationTest(false) + +class V72LibIntegrationTest : V72IntegrationTest(true) + +class ScopeFullWithFeaturesTest : TestCase { + override fun apply(project: Project) { + assertEquals("PROJECT,SUB_PROJECTS,EXTERNAL_LIBRARIES,FEATURES", AGP.scopeFullWithFeatures.joinToString(",")) + } +} + +class ScopeFullLibraryWithFeaturesTest : TestCase { + override fun apply(project: Project) { + assertEquals("FEATURES,PROJECT", AGP.scopeFullLibraryWithFeatures.joinToString(",")) + } +} + +class ProjectTest : TestCase { + override fun apply(project: Project) { + val assert: (BaseVariant) -> Unit = { variant -> + assertEquals(project, AGP.run { variant.project }) + } + project.afterEvaluate { + when (val android = project.getAndroid()) { + is AppExtension -> android.applicationVariants.forEach(assert) + is LibraryExtension -> android.libraryVariants.forEach(assert) + } + } + } +} + +class JavaCompilerTaskTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + assertNotNull(AGP.run { variant.javaCompilerTask }) + } +} + +class PreBuildTaskTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + assertNotNull(AGP.run { variant.preBuildTask }) + } +} + +class AssembleTaskTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + assertNotNull(AGP.run { variant.assembleTask }) + } +} + +class MergeAssetsTaskTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + assertNotNull(AGP.run { variant.mergeAssetsTask }) + } +} + +class MergeResourcesTaskTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + assertNotNull(AGP.run { variant.mergeResourcesTask }) + } +} + +class GetTaskNameTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + assertEquals("assemble${variant.name.capitalize()}", AGP.run { variant.getTaskName("assemble") }) + } +} + + +class GetTaskName2TestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + assertEquals("merge${variant.name.capitalize()}Resources", AGP.run { variant.getTaskName("merge", "Resources") }) + } +} + +class VariantDataTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + assertNotNull(AGP.run { variant.variantData }) + } +} + +class VariantScopeTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + assertNotNull(AGP.run { variant.variantScope }) + } +} + +class OriginalApplicationIdTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + assertNotNull(AGP.run { variant.originalApplicationId }) + } +} + +class HasDynamicFeatureTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + assertFalse(AGP.run { variant.hasDynamicFeature }) + } +} + +class RawAndroidResourcesTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + AGP.run { variant.assembleTask }.doFirst { + val rawAndroidResources = AGP.run { variant.rawAndroidResources } + assertNotNull(rawAndroidResources) + if (rawAndroidResources.isEmpty()) { + fail("rawAndroidResources is empty") + } + rawAndroidResources.forEach { + println(" - ${it.path}") + } + } + } +} + +class AllArtifactsTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + AGP.run { variant.assembleTask }.doFirst { + val allArtifacts = AGP.run { variant.allArtifacts } + assertNotNull(allArtifacts) + if (allArtifacts.isEmpty()) { + fail("allArtifacts is empty") + } + allArtifacts.forEach { (k, v) -> + println(" - $k => $v") + } + } + } +} + +class MinSdkVersionTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + val minSdkVersion = AGP.run { variant.minSdkVersion } + assertNotNull(minSdkVersion) + assertEquals(MIN_SDK_VERSION, minSdkVersion.apiLevel) + } +} + +class TargetSdkVersionTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + val targetSdkVersion = AGP.run { variant.targetSdkVersion } + assertNotNull(targetSdkVersion) + assertEquals(TARGET_SDK_VERSION, targetSdkVersion.apiLevel) + } +} + +class VariantTypeTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + val project = AGP.run { variant.project } + val variantType = AGP.run { variant.variantType } + if (project.plugins.hasPlugin("com.android.application")) { + assertEquals(VariantTypeImpl.BASE_APK, variantType) + } else if (project.plugins.hasPlugin("com.android.library")) { + assertEquals(VariantTypeImpl.LIBRARY, variantType) + } + } +} + +class AarTestUnit : VariantTestCase() { + override fun apply(project: Project) { + if (project.plugins.hasPlugin("com.android.library")) { + super.apply(project) + } + } + + override fun apply(variant: BaseVariant) { + AGP.run { variant.assembleTask }.doFirst { + val aar = AGP.run { variant.aar }.search { + it.extension == "aar" + } + if (aar.isEmpty()) { + fail("aar is empty") + } + aar.forEach { + println(" - ${it.path}") + } + } + } +} + +class ApkTestUnit : VariantTestCase() { + override fun apply(project: Project) { + if (project.plugins.hasPlugin("com.android.application")) { + super.apply(project) + } + } + + override fun apply(variant: BaseVariant) { + AGP.run { variant.assembleTask }.doFirst { + val apk = AGP.run { variant.apk }.search { + it.extension == "apk" + } + if (apk.isEmpty()) { + fail("apk is empty") + } + apk.forEach { + println(" - ${it.path}") + } + } + } +} + +class MergedManifestsTestUnit : VariantTestCase() { + override fun apply(project: Project) { + if (project.plugins.hasPlugin("com.android.application")) { + super.apply(project) + } + } + + override fun apply(variant: BaseVariant) { + AGP.run { variant.assembleTask }.doFirst { + val mergedManifests = AGP.run { variant.mergedManifests }.search { + it.name == "AndroidManifest.xml" + } + if (mergedManifests.isEmpty()) { + fail("mergedManifests is empty") + } + mergedManifests.forEach { + println(" - ${it.path}") + } + } + } +} + +class MergedResourcesTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + AGP.run { variant.assembleTask }.doFirst { + val mergedResources = AGP.run { variant.mergedRes } + if (mergedResources.isEmpty()) { + fail("mergedRes is empty") + } + mergedResources.forEach { + println(" - ${it.path}") + } + } + } +} + +class MergedAssetsTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + AGP.run { variant.assembleTask }.doFirst { + val mergedAssets = AGP.run { variant.mergedAssets } + if (mergedAssets.isEmpty()) { + fail("mergedAssets is empty") + } + mergedAssets.forEach { + println(" - ${it.path}") + } + } + } +} + +class ProcessedResTestUnit : VariantTestCase() { + override fun apply(project: Project) { + if (project.plugins.hasPlugin("com.android.application")) { + super.apply(project) + } + } + + override fun apply(variant: BaseVariant) { + AGP.run { variant.assembleTask }.doFirst { + val processedRes = AGP.run { variant.processedRes }.search { + it.extension == "ap_" + } + if (processedRes.isEmpty()) { + fail("processedRes is empty") + } + processedRes.forEach { + println(" - ${it.path}") + } + } + } +} + +class SymbolListTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + AGP.run { variant.assembleTask }.doFirst { + val symbolList = AGP.run { variant.symbolList } + if (symbolList.isEmpty()) { + fail("symbolList is empty") + } + symbolList.forEach { + println(" - ${it.path}") + } + } + } +} + +class SymbolListWithPackageNameTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + AGP.run { variant.assembleTask }.doFirst { + val symbolListWithPackageName = AGP.run { variant.symbolListWithPackageName } + if (symbolListWithPackageName.isEmpty()) { + fail("symbolListWithPackageName is empty") + } + symbolListWithPackageName.forEach { + println(" - ${it.path}") + } + } + } +} + +class AllClassesTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + AGP.run { variant.assembleTask }.doFirst { + val location = AGP.run { variant.allClasses }.files + assertTrue("ALL_CLASSES: $location", location::isNotEmpty) + assertTrue("No class file found at $location") { + location.search(File::isFile).isNotEmpty() + } + } + } +} diff --git a/booster-android-gradle-v7_2/src/integrationTest/resources/app.gradle b/booster-android-gradle-v7_2/src/integrationTest/resources/app.gradle new file mode 100644 index 000000000..3d8254090 --- /dev/null +++ b/booster-android-gradle-v7_2/src/integrationTest/resources/app.gradle @@ -0,0 +1,62 @@ +buildscript { + repositories { + mavenLocal() + mavenCentral() + google() + jcenter() + maven { url 'https://oss.sonatype.org/content/repositories/public/' } + maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } + } + dependencies { + classpath "com.android.tools.build:gradle:${project.android_gradle_version}" + classpath("com.didiglobal.booster:booster-gradle-plugin:${project.booster_version}") { + exclude group: 'com.google.guava' + } + classpath "io.bootstage.testkit:testkit-gradle-plugin:1.1.0" + } +} + +apply plugin: 'com.android.application' +apply plugin: 'com.didiglobal.booster' +apply plugin: 'io.bootstage.testkit' + +android { + compileSdkVersion project.compile_sdk_version as Integer + buildToolsVersion project.build_tools_version + defaultConfig { + applicationId 'com.didiglobal.booster.test' + minSdkVersion project.min_sdk_version as Integer + targetSdkVersion project.target_sdk_version as Integer + versionCode 1 + versionName "1.0" + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + } + buildTypes { + debug { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + } + } + flavorDimensions 'lang' + productFlavors { + en { + dimension 'lang' + applicationIdSuffix '.en' + } + cn { + dimension 'lang' + applicationIdSuffix '.cn' + } + } + lintOptions { + checkReleaseBuilds false + } +} + +repositories { + mavenLocal() + mavenCentral() + google() + jcenter() + maven { url 'https://oss.sonatype.org/content/repositories/public/' } +} diff --git a/booster-android-gradle-v7_2/src/integrationTest/resources/buildSrc/build.gradle b/booster-android-gradle-v7_2/src/integrationTest/resources/buildSrc/build.gradle new file mode 100644 index 000000000..fe29d688a --- /dev/null +++ b/booster-android-gradle-v7_2/src/integrationTest/resources/buildSrc/build.gradle @@ -0,0 +1,26 @@ +buildscript { + repositories { + mavenLocal() + mavenCentral() + google() + jcenter() + maven { url 'https://oss.sonatype.org/content/repositories/public/' } + maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } + } +} + +repositories { + mavenLocal() + mavenCentral() + google() + jcenter() + maven { url 'https://oss.sonatype.org/content/repositories/public/' } +} + +dependencies { + implementation "com.android.tools.build:gradle:${project.android_gradle_version}" + implementation("com.didiglobal.booster:booster-android-gradle-api:${project.booster_version}") { + exclude group: 'com.google.guava' + } + implementation "io.bootstage.testkit:testkit-gradle-plugin:1.1.0" +} diff --git a/booster-android-gradle-v7_2/src/integrationTest/resources/lib.gradle b/booster-android-gradle-v7_2/src/integrationTest/resources/lib.gradle new file mode 100644 index 000000000..6164180c7 --- /dev/null +++ b/booster-android-gradle-v7_2/src/integrationTest/resources/lib.gradle @@ -0,0 +1,59 @@ +buildscript { + repositories { + mavenLocal() + mavenCentral() + google() + jcenter() + maven { url 'https://oss.sonatype.org/content/repositories/public/' } + maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } + } + dependencies { + classpath "com.android.tools.build:gradle:${project.android_gradle_version}" + classpath("com.didiglobal.booster:booster-gradle-plugin:${project.booster_version}") { + exclude group: 'com.google.guava' + } + classpath "io.bootstage.testkit:testkit-gradle-plugin:1.1.0" + } +} + +apply plugin: 'com.android.library' +apply plugin: 'com.didiglobal.booster' +apply plugin: 'io.bootstage.testkit' + +android { + compileSdkVersion project.compile_sdk_version as Integer + buildToolsVersion project.build_tools_version + defaultConfig { + minSdkVersion project.min_sdk_version as Integer + targetSdkVersion project.target_sdk_version as Integer + versionCode 1 + versionName "1.0" + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + } + buildTypes { + debug { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + } + } + flavorDimensions 'lang' + productFlavors { + en { + dimension 'lang' + } + cn { + dimension 'lang' + } + } + lintOptions { + checkReleaseBuilds false + } +} + +repositories { + mavenLocal() + mavenCentral() + google() + jcenter() + maven { url 'https://oss.sonatype.org/content/repositories/public/' } +} diff --git a/booster-android-gradle-v7_2/src/integrationTest/resources/src/main/AndroidManifest.xml b/booster-android-gradle-v7_2/src/integrationTest/resources/src/main/AndroidManifest.xml new file mode 100644 index 000000000..30800c604 --- /dev/null +++ b/booster-android-gradle-v7_2/src/integrationTest/resources/src/main/AndroidManifest.xml @@ -0,0 +1,9 @@ + + + + + + \ No newline at end of file diff --git a/booster-android-gradle-v7_2/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/MainActivity.java b/booster-android-gradle-v7_2/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/MainActivity.java new file mode 100644 index 000000000..0eb4ec7b4 --- /dev/null +++ b/booster-android-gradle-v7_2/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/MainActivity.java @@ -0,0 +1,6 @@ +package com.didiglobal.booster.android.test; + +import android.app.Activity; + +public class MainActivity extends Activity { +} \ No newline at end of file diff --git a/booster-android-gradle-v7_2/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/TestApplication.java b/booster-android-gradle-v7_2/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/TestApplication.java new file mode 100644 index 000000000..3ecfb1507 --- /dev/null +++ b/booster-android-gradle-v7_2/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/TestApplication.java @@ -0,0 +1,7 @@ +package com.didiglobal.booster.android.test; + +import android.app.Application; + +public class TestApplication extends Application { + +} \ No newline at end of file diff --git a/booster-android-gradle-v7_2/src/integrationTest/resources/src/main/res/values/strings.xml b/booster-android-gradle-v7_2/src/integrationTest/resources/src/main/res/values/strings.xml new file mode 100644 index 000000000..8b2247616 --- /dev/null +++ b/booster-android-gradle-v7_2/src/integrationTest/resources/src/main/res/values/strings.xml @@ -0,0 +1,4 @@ + + + Test + \ No newline at end of file diff --git a/booster-android-gradle-v7_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_2/V72.kt b/booster-android-gradle-v7_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_2/V72.kt new file mode 100644 index 000000000..2b0140287 --- /dev/null +++ b/booster-android-gradle-v7_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_2/V72.kt @@ -0,0 +1,277 @@ +package com.didiglobal.booster.android.gradle.v7_2 + +import com.android.build.api.artifact.Artifact +import com.android.build.api.artifact.MultipleArtifact +import com.android.build.api.artifact.SingleArtifact +import com.android.build.api.artifact.impl.ArtifactsImpl +import com.android.build.api.component.impl.ComponentImpl +import com.android.build.api.transform.Context +import com.android.build.api.transform.QualifiedContent +import com.android.build.gradle.api.ApplicationVariant +import com.android.build.gradle.api.BaseVariant +import com.android.build.gradle.api.LibraryVariant +import com.android.build.gradle.internal.SdkComponentsBuildService +import com.android.build.gradle.internal.api.BaseVariantImpl +import com.android.build.gradle.internal.api.artifact.SourceArtifactType +import com.android.build.gradle.internal.pipeline.TransformManager +import com.android.build.gradle.internal.pipeline.TransformTask +import com.android.build.gradle.internal.publishing.AndroidArtifacts +import com.android.build.gradle.internal.scope.BuildArtifactType +import com.android.build.gradle.internal.scope.InternalArtifactType +import com.android.build.gradle.internal.scope.InternalMultipleArtifactType +import com.android.build.gradle.internal.scope.VariantScope +import com.android.build.gradle.internal.tasks.factory.GlobalTaskCreationConfig +import com.android.build.gradle.internal.tasks.factory.GlobalTaskCreationConfigImpl +import com.android.build.gradle.internal.variant.BaseVariantData +import com.android.builder.core.DefaultApiVersion +import com.android.builder.core.VariantType +import com.android.builder.model.ApiVersion +import com.android.sdklib.BuildToolInfo +import com.didiglobal.booster.android.gradle.v7_2.V72.project +import com.didiglobal.booster.gradle.AGPInterface +import org.gradle.api.Project +import org.gradle.api.Task +import org.gradle.api.artifacts.ArtifactCollection +import org.gradle.api.file.FileCollection +import org.gradle.api.file.FileSystemLocation +import org.gradle.api.tasks.TaskProvider +import java.io.File +import java.util.TreeMap + +@Suppress("UnstableApiUsage") +private val SINGLE_ARTIFACT_TYPES = arrayOf( + BuildArtifactType::class, + InternalArtifactType::class, + SingleArtifact::class, + SourceArtifactType::class +).map { + it.sealedSubclasses +}.flatten().map { + it.objectInstance as Artifact.Single +}.associateBy { + it.javaClass.simpleName +} + +private val MULTIPLE_ARTIFACT_TYPES = arrayOf( + MultipleArtifact::class, + InternalMultipleArtifactType::class +).map { + it.sealedSubclasses +}.flatten().map { + it.objectInstance as Artifact.Multiple +}.associateBy { + it.javaClass.simpleName +} + +@Suppress("DEPRECATION") +internal object V72 : AGPInterface { + + private val BaseVariant.component: ComponentImpl + get() = BaseVariantImpl::class.java.getDeclaredField("component").apply { + isAccessible = true + }.get(this) as ComponentImpl + + @Suppress("UnstableApiUsage") + private fun BaseVariant.getFinalArtifactFiles(type: Artifact.Single): FileCollection { + return try { + project.objects.fileCollection().from(artifacts.get(type)) + } catch (e: Throwable) { + project.objects.fileCollection().builtBy(artifacts.get(type)) + } + } + + @Suppress("UnstableApiUsage") + private fun BaseVariant.getFinalArtifactFiles(type: Artifact.Multiple): FileCollection { + return try { + project.objects.fileCollection().from(artifacts.getAll(type)) + } catch (e: Throwable) { + project.objects.fileCollection().builtBy(artifacts.getAll(type)) + } + } + + private inline fun Sequence.firstOfOrNull(transform: (T) -> R?): R? { + for (element in this) { + val result = transform(element) + if (result != null) { + return result + } + } + return null + } + + @Suppress("UnstableApiUsage") + private val BaseVariant.artifacts: ArtifactsImpl + get() = component.artifacts + + override val scopeFullWithFeatures: MutableSet + get() = TransformManager.SCOPE_FULL_WITH_FEATURES + + override val scopeFullLibraryWithFeatures: MutableSet + get() = (TransformManager.SCOPE_FEATURES + QualifiedContent.Scope.PROJECT).toMutableSet() + + override val BaseVariant.project: Project + get() = component.variantDependencies.run { + javaClass.getDeclaredField("project").apply { + isAccessible = true + }.get(this) as Project + } + + override val BaseVariant.javaCompilerTaskProvider: TaskProvider + get() = javaCompileProvider + + override val BaseVariant.preBuildTaskProvider: TaskProvider + get() = preBuildProvider + + override val BaseVariant.assembleTaskProvider: TaskProvider + get() = assembleProvider + + override val BaseVariant.mergeAssetsTaskProvider: TaskProvider + get() = mergeAssetsProvider + + override val BaseVariant.mergeResourcesTaskProvider: TaskProvider + get() = try { + project.tasks.named(getTaskName("merge", "Resources")) + } catch (e: Throwable) { + mergeResourcesProvider + } + + override val BaseVariant.mergeNativeLibsTaskProvider: TaskProvider + get() = project.tasks.named(getTaskName("merge", "NativeLibs")) + + override val BaseVariant.processJavaResourcesTaskProvider: TaskProvider + get() = processJavaResourcesProvider + + override fun BaseVariant.getTaskName(prefix: String): String { + return component.computeTaskName(prefix) + } + + override fun BaseVariant.getTaskName(prefix: String, suffix: String): String { + return component.computeTaskName(prefix, suffix) + } + + override val BaseVariant.variantData: BaseVariantData + get() = javaClass.getDeclaredMethod("getVariantData").apply { + isAccessible = true + }.invoke(this) as BaseVariantData + + override val BaseVariant.variantScope: VariantScope + get() = component.variantScope + + @Suppress("DEPRECATION") + private val BaseVariant.globalScope: GlobalTaskCreationConfigImpl + get() = component.global as GlobalTaskCreationConfigImpl + + override val BaseVariant.originalApplicationId: String + get() = component.variantDslInfo.namespace.get() + + override val BaseVariant.hasDynamicFeature: Boolean + get() = globalScope.hasDynamicFeatures + + override val BaseVariant.rawAndroidResources: FileCollection + get() = component.variantData.allRawAndroidResources + + override fun BaseVariant.getArtifactCollection( + configType: AndroidArtifacts.ConsumedConfigType, + scope: AndroidArtifacts.ArtifactScope, + artifactType: AndroidArtifacts.ArtifactType + ): ArtifactCollection { + return component.variantDependencies.getArtifactCollection(configType, scope, artifactType) + } + + override fun BaseVariant.getArtifactFileCollection( + configType: AndroidArtifacts.ConsumedConfigType, + scope: AndroidArtifacts.ArtifactScope, + artifactType: AndroidArtifacts.ArtifactType + ): FileCollection { + return component.variantDependencies.getArtifactFileCollection(configType, scope, artifactType) + } + + override val BaseVariant.allArtifacts: Map + get() = TreeMap().also { all -> + SINGLE_ARTIFACT_TYPES.entries.associateTo(all) { (name, type) -> + val artifacts: FileCollection by lazy { + getFinalArtifactFiles(type) + } + name to artifacts + } + MULTIPLE_ARTIFACT_TYPES.entries.associateTo(all) { (name, type) -> + val artifacts: FileCollection by lazy { + getFinalArtifactFiles(type) + } + name to artifacts + } + } + + override val BaseVariant.minSdkVersion: ApiVersion + get() = DefaultApiVersion(component.minSdkVersion.apiLevel) + + override val BaseVariant.targetSdkVersion: ApiVersion + get() = DefaultApiVersion(component.targetSdkVersion.apiLevel) + + override val BaseVariant.variantType: VariantType + get() = component.variantType + + override val BaseVariant.aar: FileCollection + get() = getFinalArtifactFiles(SingleArtifact.AAR) + + override val BaseVariant.apk: FileCollection + get() = getFinalArtifactFiles(SingleArtifact.APK) + + override val BaseVariant.mergedManifests: FileCollection + get() = getFinalArtifactFiles(SingleArtifact.MERGED_MANIFEST) + + override val BaseVariant.mergedRes: FileCollection + get() = getFinalArtifactFiles(InternalArtifactType.MERGED_RES) + + override val BaseVariant.mergedNativeLibs: FileCollection + get() = getFinalArtifactFiles(InternalArtifactType.MERGED_NATIVE_LIBS) + + override val BaseVariant.mergedAssets: FileCollection + get() = when (this) { + is ApplicationVariant -> getFinalArtifactFiles(InternalArtifactType.COMPRESSED_ASSETS) + is LibraryVariant -> getFinalArtifactFiles(InternalArtifactType.LIBRARY_ASSETS) + else -> TODO("Unsupported variant type: $variantType") + } + + override val BaseVariant.processedRes: FileCollection + get() = getFinalArtifactFiles(InternalArtifactType.PROCESSED_RES) + + override val BaseVariant.symbolList: FileCollection + get() = when (this) { + is ApplicationVariant -> getFinalArtifactFiles(InternalArtifactType.RUNTIME_SYMBOL_LIST) + is LibraryVariant -> getFinalArtifactFiles(InternalArtifactType.COMPILE_SYMBOL_LIST) + else -> TODO("Unsupported variant type : $variantType") + } + + override val BaseVariant.symbolListWithPackageName: FileCollection + get() = getFinalArtifactFiles(InternalArtifactType.SYMBOL_LIST_WITH_PACKAGE_NAME) + + override val BaseVariant.dataBindingDependencyArtifacts: FileCollection + get() = getFinalArtifactFiles(InternalArtifactType.DATA_BINDING_DEPENDENCY_ARTIFACTS) + + override val BaseVariant.allClasses: FileCollection + get() = when (this) { + is ApplicationVariant -> getFinalArtifactFiles(InternalArtifactType.JAVAC) + project.files("build${File.separator}tmp${File.separator}kotlin-classes${File.separator}${dirName}") + is LibraryVariant -> getFinalArtifactFiles(InternalArtifactType.COMPILE_LIBRARY_CLASSES_JAR) + else -> project.files() + } + + override val BaseVariant.buildTools: BuildToolInfo + get() = globalScope.versionedSdkLoader.get().buildToolInfoProvider.get() + + override val BaseVariant.isPrecompileDependenciesResourcesEnabled: Boolean + get() = component.isPrecompileDependenciesResourcesEnabled + + override val Context.task: TransformTask + get() = javaClass.getDeclaredField("this$1").apply { + isAccessible = true + }.get(this).run { + javaClass.getDeclaredField("this$0").apply { + isAccessible = true + }.get(this) + } as TransformTask + + override val Project.aapt2Enabled: Boolean + get() = true + +} diff --git a/booster-android-gradle-v7_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_2/V72Factory.kt b/booster-android-gradle-v7_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_2/V72Factory.kt new file mode 100644 index 000000000..ed10da597 --- /dev/null +++ b/booster-android-gradle-v7_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_2/V72Factory.kt @@ -0,0 +1,15 @@ +package com.didiglobal.booster.android.gradle.v7_2 + +import com.android.repository.Revision +import com.didiglobal.booster.gradle.AGPInterface +import com.didiglobal.booster.gradle.AGPInterfaceFactory +import com.google.auto.service.AutoService + +@AutoService(AGPInterfaceFactory::class) +class V72Factory : AGPInterfaceFactory { + + override val revision: Revision = Revision(7, 2, 0) + + override fun newAGPInterface(): AGPInterface = V72 + +} diff --git a/booster-cha/src/test/kotlin/com/didiglobal/booster/cha/ClassSetTest.kt b/booster-cha/src/test/kotlin/com/didiglobal/booster/cha/ClassSetTest.kt index e60525c5f..13cc80c45 100644 --- a/booster-cha/src/test/kotlin/com/didiglobal/booster/cha/ClassSetTest.kt +++ b/booster-cha/src/test/kotlin/com/didiglobal/booster/cha/ClassSetTest.kt @@ -42,10 +42,8 @@ class ClassSetTest { val arch1 = ClassSet.from(classes, AsmClassFileParser) val jar = File(javaClass.protectionDomain.codeSource.location.file).resolve("..${File.separator}..${File.separator}..${File.separator}libs${File.separator}${Build.ARTIFACT}-${Build.VERSION}.jar") val arch2 = ClassSet.from(jar.canonicalFile, AsmClassFileParser) - - (arch1 + arch2).parallelStream().forEach { - println(it.className) - } + assertTrue(arch1.size > 0) + assertTrue(arch2.size > 0) } @Test @@ -55,18 +53,22 @@ class ClassSetTest { val jar = File(javaClass.protectionDomain.codeSource.location.file).resolve("..${File.separator}..${File.separator}..${File.separator}libs${File.separator}${Build.ARTIFACT}-${Build.VERSION}.jar") val arch2 = ClassSet.from(jar.canonicalFile, AsmClassFileParser) (arch1 + arch2).use(ClassSet::load) + assertTrue(arch1.size > 0) + assertTrue(arch2.size > 0) } @Test fun `load directory backed class archives`() { val classes = File(javaClass.protectionDomain.codeSource.location.file) - ClassSet.from(classes, AsmClassFileParser).use(ClassSet::load) + val arch = ClassSet.from(classes, AsmClassFileParser).use(ClassSet::load) + assertTrue(arch.size > 0) } @Test fun `load jar backed class archives`() { val jar = File(javaClass.protectionDomain.codeSource.location.file).resolve("..${File.separator}..${File.separator}..${File.separator}libs${File.separator}${Build.ARTIFACT}-${Build.VERSION}.jar") - ClassSet.from(jar.canonicalFile, AsmClassFileParser).use(ClassSet::load) + val arch = ClassSet.from(jar.canonicalFile, AsmClassFileParser).use(ClassSet::load) + assertTrue(arch.size > 0) } } \ No newline at end of file diff --git a/booster-task-list-artifact/src/main/kotlin/com/didiglobal/booster/task/artifact/ListArtifact.kt b/booster-task-list-artifact/src/main/kotlin/com/didiglobal/booster/task/artifact/ListArtifact.kt index 2247bfde7..951e5e26e 100644 --- a/booster-task-list-artifact/src/main/kotlin/com/didiglobal/booster/task/artifact/ListArtifact.kt +++ b/booster-task-list-artifact/src/main/kotlin/com/didiglobal/booster/task/artifact/ListArtifact.kt @@ -5,6 +5,7 @@ import com.didiglobal.booster.gradle.allArtifacts import org.gradle.api.DefaultTask import org.gradle.api.tasks.Internal import org.gradle.api.tasks.TaskAction +import java.io.File internal open class ListArtifact : DefaultTask() { @@ -17,7 +18,11 @@ internal open class ListArtifact : DefaultTask() { val maxTypeWidth: Int = artifacts.keys.map { it.length }.max()!! artifacts.forEach { (type, files) -> - println("${".".repeat(maxTypeWidth - type.length + 1)}$type : ${files.files}") + println("${".".repeat(maxTypeWidth - type.length + 1)}$type : ${try { + files.files + } catch (e: Throwable) { + emptyList() + }}") } } diff --git a/booster-transform-r-inline/src/test/kotlin/com/didiglobal/booster/transform/r/inline/RegexTest.kt b/booster-transform-r-inline/src/test/kotlin/com/didiglobal/booster/transform/r/inline/RegexTest.kt index e73f70318..2e210c78e 100644 --- a/booster-transform-r-inline/src/test/kotlin/com/didiglobal/booster/transform/r/inline/RegexTest.kt +++ b/booster-transform-r-inline/src/test/kotlin/com/didiglobal/booster/transform/r/inline/RegexTest.kt @@ -22,12 +22,4 @@ class RegexTest { } } - @Test - fun `valid symbol`() { - assertTrue(isValidSymbol("H")) - assertTrue(isValidSymbol("icon")) - assertTrue(isValidSymbol("ic_app")) - assertFalse(isValidSymbol("4:1")) - } - } diff --git a/booster-transform-r-inline/src/test/kotlin/com/didiglobal/booster/transform/r/inline/SymbolListTest.kt b/booster-transform-r-inline/src/test/kotlin/com/didiglobal/booster/transform/r/inline/SymbolListTest.kt index e310be5c8..b4995020a 100644 --- a/booster-transform-r-inline/src/test/kotlin/com/didiglobal/booster/transform/r/inline/SymbolListTest.kt +++ b/booster-transform-r-inline/src/test/kotlin/com/didiglobal/booster/transform/r/inline/SymbolListTest.kt @@ -3,6 +3,7 @@ package com.didiglobal.booster.transform.r.inline import com.didiglobal.booster.kotlinx.file import java.io.File import kotlin.test.Test +import kotlin.test.assertFalse val PWD = File(System.getProperty("user.dir")) @@ -10,8 +11,8 @@ class SymbolListTest { @Test fun `parse symbol list from R txt`() { - SymbolList.from(PWD.file("src", "test", "resources", "R.txt")).forEach { symbol -> - println(symbol) + assertFalse { + SymbolList.from(PWD.file("src", "test", "resources", "R.txt")).isEmpty() } } diff --git a/booster-transform-util/src/test/resources/META-INF/services/com.didiglobal.booster.transform.util.Collector b/booster-transform-util/src/test/resources/META-INF/services/com.didiglobal.booster.transform.Collector similarity index 100% rename from booster-transform-util/src/test/resources/META-INF/services/com.didiglobal.booster.transform.util.Collector rename to booster-transform-util/src/test/resources/META-INF/services/com.didiglobal.booster.transform.Collector diff --git a/gradle/integration-test.gradle b/gradle/integration-test.gradle index 60db5b7fd..156c4164c 100644 --- a/gradle/integration-test.gradle +++ b/gradle/integration-test.gradle @@ -24,7 +24,7 @@ task integrationTest(type: Test) { classpath = sourceSets.integrationTest.runtimeClasspath mustRunAfter test testLogging { - events "passed", "skipped", "failed", "standardError" + events "passed", "skipped", "failed", "standardOut", "standardError" } } diff --git a/settings.gradle b/settings.gradle index 06a5c90b6..fd20c4425 100644 --- a/settings.gradle +++ b/settings.gradle @@ -20,6 +20,8 @@ include ':booster-android-gradle-v4_0' include ':booster-android-gradle-v4_1' include ':booster-android-gradle-v4_2' include ':booster-android-gradle-v7_0' +include ':booster-android-gradle-v7_1' +include ':booster-android-gradle-v7_2' include ':booster-annotations' include ':booster-api' include ':booster-build' From 9caabf5ef5c7032c13a649eb6d9662530c7e2df4 Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Mon, 13 Jun 2022 09:12:04 +0800 Subject: [PATCH 135/187] [skip ci] Update README & RELEASE-NOTES --- README.md | 6 ++++-- RELEASE-NOTES.md | 10 ++++++++++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 7c925c035..a31958901 100644 --- a/README.md +++ b/README.md @@ -65,6 +65,8 @@ The following table lists which version of Gradle is required for each version o | 4.1.0+ | 6.5+ | | 4.2.0+ | 6.7.1+ | | 7.0 | 7.0+ | +| 7.1 | 7.1+ | +| 7.2 | 7.3.3+ | ## Best Practise | 最佳实践 @@ -74,7 +76,7 @@ The best practise of using Booster is integrating the specific module to solve t ```groovy buildscript { - ext.booster_version = '4.9.0' + ext.booster_version = '4.10.0' repositories { google() mavenCentral() @@ -122,7 +124,7 @@ The `plugins` DSL also supported since Booster *3.0.0* ```groovy plugins { - id 'com.didiglobal.booster' version '4.9.0' + id 'com.didiglobal.booster' version '4.10.0' } ``` diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index a403a5ef0..58da1415d 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -1,3 +1,13 @@ +## v4.10.0 + +- Improve ClassSet to avoid memory leaks +- Improve ClassSet to support loading classes from AAR +- Fix transform output conflicts +- Add `execute(...)` for `Command` +- Add class reference analysis for [booster-task-analyser](https://github.com/didi/booster/blob/v4.10.0/booster-task-analyser) +- Splitting [booster-graph](https://github.com/didi/booster/blob/v4.10.0/booster-graph) into [booster-graph](https://github.com/didi/booster/blob/v4.10.0/booster-graph), [booster-graph-dot](https://github.com/didi/booster/blob/v4.10.0/booster-graph-dot) and [booster-graph-json](https://github.com/didi/booster/blob/v4.10.0/booster-graph-json) +- AGP 7.1 & 7.2 compatibility support + ## v4.9.0 - Fix [CVE-2020-15250] In JUnit4 from version 4.7 and before 4.13.1, the test rule TemporaryFolder contains a local information disclosure vulnerability From 68abdbb00a3a2f65002dff166f479d8428286d67 Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Tue, 26 Apr 2022 19:49:33 +0800 Subject: [PATCH 136/187] Grouping tasks into group `booster` --- .../com/didiglobal/booster/BoosterConstants.kt | 3 +++ .../analyser/performance/PerformanceAnalysisTask.kt | 6 +++--- .../PerformanceAnalysisVariantProcessor.kt | 9 +++++---- .../reference/ReferenceAnalysisVariantProcessor.kt | 12 ++++++++---- .../task/dependency/CheckSnapshotVariantProcessor.kt | 8 +++++++- .../ProcessedResourcesCompressionVariantProcessor.kt | 3 +++ .../compression/SimpleCompressionTaskCreator.kt | 10 +++++++++- .../task/artifact/ListArtifactVariantProcessor.kt | 8 +++++++- .../permission/ListPermissionVariantProcessor.kt | 8 +++++++- .../task/so/ListSharedLibraryVariantProcessor.kt | 8 +++++++- .../ResourceDeredundancyVariantProcessor.kt | 3 +++ 11 files changed, 62 insertions(+), 16 deletions(-) create mode 100644 booster-api/src/main/kotlin/com/didiglobal/booster/BoosterConstants.kt diff --git a/booster-api/src/main/kotlin/com/didiglobal/booster/BoosterConstants.kt b/booster-api/src/main/kotlin/com/didiglobal/booster/BoosterConstants.kt new file mode 100644 index 000000000..f6ccbbc4c --- /dev/null +++ b/booster-api/src/main/kotlin/com/didiglobal/booster/BoosterConstants.kt @@ -0,0 +1,3 @@ +package com.didiglobal.booster + +const val BOOSTER = "booster" \ No newline at end of file diff --git a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/performance/PerformanceAnalysisTask.kt b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/performance/PerformanceAnalysisTask.kt index 33e005504..fdfd219ad 100644 --- a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/performance/PerformanceAnalysisTask.kt +++ b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/performance/PerformanceAnalysisTask.kt @@ -6,8 +6,6 @@ import com.didiglobal.booster.kotlinx.file import com.didiglobal.booster.task.analyser.Build import com.didiglobal.booster.task.analyser.performance.reporting.PerformanceReports import com.didiglobal.booster.task.analyser.performance.reporting.PerformanceReportsImpl -import com.didiglobal.booster.task.analyser.reference.reporting.ReferenceReports -import com.didiglobal.booster.task.analyser.reference.reporting.ReferenceReportsImpl import com.didiglobal.booster.transform.artifacts import groovy.lang.Closure import org.gradle.api.Action @@ -81,7 +79,9 @@ open class PerformanceAnalysisTask : DefaultTask(), Reporting val profile = project.tasks.register("${TASK_ANALYSE_PERFORMANCE}${variantName}", PerformanceAnalysisTask::class.java) { - it.description = "Analyses performance issues for Android project" - it.group = "booster" + it.description = "Analyses performance issues for ${variant.name}" + it.group = BOOSTER it.variant = variant it.supplier = { transformTask.outputs.files.single() diff --git a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/ReferenceAnalysisVariantProcessor.kt b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/ReferenceAnalysisVariantProcessor.kt index 693ef6089..f5bfe44f4 100644 --- a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/ReferenceAnalysisVariantProcessor.kt +++ b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/ReferenceAnalysisVariantProcessor.kt @@ -5,6 +5,7 @@ import com.android.build.gradle.BaseExtension import com.android.build.gradle.LibraryExtension import com.android.build.gradle.api.BaseVariant import com.android.build.gradle.internal.tasks.factory.dependsOn +import com.didiglobal.booster.BOOSTER import com.didiglobal.booster.gradle.getAndroid import com.didiglobal.booster.gradle.getTaskName import com.didiglobal.booster.gradle.isAndroid @@ -47,8 +48,8 @@ private fun Project.setup(prerequisites: List>) { private fun Project.setupJava(prerequisites: List>) { tasks.register(TASK_ANALYSE_REFERENCE, ReferenceAnalysisTask::class.java) { + it.group = BOOSTER it.description = "Analyses class reference for Java projects" - it.group = "booster" it.variant = DEFAULT_VARIANT it.configureReportConvention("reference", DEFAULT_VARIANT) }.dependsOn(prerequisites) @@ -61,13 +62,16 @@ private fun Project.setupAndroid(prerequisites: List>) { else -> emptyList() }.map { variant -> tasks.register("${TASK_ANALYSE_REFERENCE}${variant.name.capitalize()}", ReferenceAnalysisTask::class.java) { - it.description = "Analyses class reference for Android project" - it.group = "booster" + it.group = BOOSTER + it.description = "Analyses class reference for ${variant.name}" it.variant = variant.name it.configureReportConvention("reference", variant.name) }.dependsOn(prerequisites) } - tasks.register(TASK_ANALYSE_REFERENCE).dependsOn(subtasks) + tasks.register(TASK_ANALYSE_REFERENCE) { + it.group = BOOSTER + it.description = "Analyses class reference" + }.dependsOn(subtasks) } /** diff --git a/booster-task-check-snapshot/src/main/kotlin/com/didiglobal/booster/task/dependency/CheckSnapshotVariantProcessor.kt b/booster-task-check-snapshot/src/main/kotlin/com/didiglobal/booster/task/dependency/CheckSnapshotVariantProcessor.kt index e7b730369..2f5fc465a 100644 --- a/booster-task-check-snapshot/src/main/kotlin/com/didiglobal/booster/task/dependency/CheckSnapshotVariantProcessor.kt +++ b/booster-task-check-snapshot/src/main/kotlin/com/didiglobal/booster/task/dependency/CheckSnapshotVariantProcessor.kt @@ -2,6 +2,7 @@ package com.didiglobal.booster.task.dependency import com.android.build.gradle.api.BaseVariant import com.android.build.gradle.internal.tasks.factory.dependsOn +import com.didiglobal.booster.BOOSTER import com.didiglobal.booster.gradle.javaCompilerTaskProvider import com.didiglobal.booster.gradle.project import com.didiglobal.booster.task.spi.VariantProcessor @@ -18,9 +19,14 @@ class CheckSnapshotVariantProcessor : VariantProcessor { val checkSnapshot = try { tasks.named(TASK_NAME) } catch (e: UnknownTaskException) { - tasks.register(TASK_NAME) + tasks.register(TASK_NAME) { + it.group = BOOSTER + it.description = "Check snapshot dependencies" + } } tasks.register("check${variant.name.capitalize()}Snapshot", CheckSnapshot::class.java) { + it.group = BOOSTER + it.description = "Check snapshot dependencies for ${variant.name}" it.variant = variant it.outputs.upToDateWhen { false } }.also { diff --git a/booster-task-compression-processed-res/src/main/kotlin/com/didiglobal/booster/task/compression/processed/res/ProcessedResourcesCompressionVariantProcessor.kt b/booster-task-compression-processed-res/src/main/kotlin/com/didiglobal/booster/task/compression/processed/res/ProcessedResourcesCompressionVariantProcessor.kt index c3fd6429e..3c213be18 100644 --- a/booster-task-compression-processed-res/src/main/kotlin/com/didiglobal/booster/task/compression/processed/res/ProcessedResourcesCompressionVariantProcessor.kt +++ b/booster-task-compression-processed-res/src/main/kotlin/com/didiglobal/booster/task/compression/processed/res/ProcessedResourcesCompressionVariantProcessor.kt @@ -4,6 +4,7 @@ import com.android.SdkConstants import com.android.SdkConstants.DOT_PNG import com.android.build.gradle.api.BaseVariant import com.android.build.gradle.internal.tasks.factory.dependsOn +import com.didiglobal.booster.BOOSTER import com.didiglobal.booster.compression.CompressionReport import com.didiglobal.booster.compression.CompressionResult import com.didiglobal.booster.compression.CompressionResults @@ -36,6 +37,8 @@ class ProcessedResourcesCompressionVariantProcessor : VariantProcessor { override fun process(variant: BaseVariant) { val compress = variant.project.tasks.register("compress${variant.name.capitalize()}ProcessedRes", CompressProcessedRes::class.java) { + it.group = BOOSTER + it.description = "Compress the processed resource file for ${variant.name}" it.variant = variant } variant.processResTaskProvider?.let { processRes -> diff --git a/booster-task-compression/src/main/kotlin/com/didiglobal/booster/compression/SimpleCompressionTaskCreator.kt b/booster-task-compression/src/main/kotlin/com/didiglobal/booster/compression/SimpleCompressionTaskCreator.kt index 6c3513d9b..539ea5e63 100644 --- a/booster-task-compression/src/main/kotlin/com/didiglobal/booster/compression/SimpleCompressionTaskCreator.kt +++ b/booster-task-compression/src/main/kotlin/com/didiglobal/booster/compression/SimpleCompressionTaskCreator.kt @@ -2,6 +2,7 @@ package com.didiglobal.booster.compression import com.android.build.gradle.api.BaseVariant import com.android.build.gradle.internal.tasks.factory.dependsOn +import com.didiglobal.booster.BOOSTER import com.didiglobal.booster.command.CommandInstaller import com.didiglobal.booster.compression.task.CompressImages import com.didiglobal.booster.compression.task.MATCH_ALL_RESOURCES @@ -42,6 +43,8 @@ class SimpleCompressionTaskCreator(private val tool: CompressionTool, private va val install = getCommandInstaller(variant) return project.tasks.register("compress${variant.name.capitalize()}${name.capitalize()}With${tool.command.name.substringBefore('.').capitalize()}", getCompressionTaskClass(aapt2).java) { task -> + task.group = BOOSTER + task.description = "Compress image resources by ${tool.command.name} for ${variant.name}" task.dependsOn(variant.preBuildTaskProvider.get()) task.tool = tool task.variant = variant @@ -57,7 +60,10 @@ class SimpleCompressionTaskCreator(private val tool: CompressionTool, private va } private fun getCommandInstaller(variant: BaseVariant): TaskProvider { - return variant.project.tasks.register(getInstallTaskName(variant.name)).apply { + return variant.project.tasks.register(getInstallTaskName(variant.name)) { + it.group = BOOSTER + it.description = "Install ${tool.command.name} for ${variant.name}" + }.apply { dependsOn(getCommandInstaller(variant.project)) dependsOn(variant.mergeResourcesTaskProvider) } @@ -70,6 +76,8 @@ class SimpleCompressionTaskCreator(private val tool: CompressionTool, private va } catch (e: UnknownTaskException) { null } ?: project.tasks.register(name, CommandInstaller::class.java) { + it.group = BOOSTER + it.description = "Install ${tool.command.name}" it.command = tool.command } } diff --git a/booster-task-list-artifact/src/main/kotlin/com/didiglobal/booster/task/artifact/ListArtifactVariantProcessor.kt b/booster-task-list-artifact/src/main/kotlin/com/didiglobal/booster/task/artifact/ListArtifactVariantProcessor.kt index ab642f9de..b2f7945f7 100644 --- a/booster-task-list-artifact/src/main/kotlin/com/didiglobal/booster/task/artifact/ListArtifactVariantProcessor.kt +++ b/booster-task-list-artifact/src/main/kotlin/com/didiglobal/booster/task/artifact/ListArtifactVariantProcessor.kt @@ -2,6 +2,7 @@ package com.didiglobal.booster.task.artifact import com.android.build.gradle.api.BaseVariant import com.android.build.gradle.internal.tasks.factory.dependsOn +import com.didiglobal.booster.BOOSTER import com.didiglobal.booster.gradle.project import com.didiglobal.booster.task.spi.VariantProcessor import com.google.auto.service.AutoService @@ -17,9 +18,14 @@ class ListArtifactVariantProcessor : VariantProcessor { val listArtifacts = try { tasks.named(TASK_NAME) } catch (e: UnknownTaskException) { - tasks.register(TASK_NAME) + tasks.register(TASK_NAME) { + it.group = BOOSTER + it.description = "List build artifacts" + } } tasks.register("list${variant.name.capitalize()}Artifacts", ListArtifact::class.java) { + it.group = BOOSTER + it.description = "List build artifacts for ${variant.name}" it.variant = variant it.outputs.upToDateWhen { false } }.also { diff --git a/booster-task-list-permission/src/main/kotlin/com/didiglobal/booster/task/permission/ListPermissionVariantProcessor.kt b/booster-task-list-permission/src/main/kotlin/com/didiglobal/booster/task/permission/ListPermissionVariantProcessor.kt index e3da3d85b..929804f76 100644 --- a/booster-task-list-permission/src/main/kotlin/com/didiglobal/booster/task/permission/ListPermissionVariantProcessor.kt +++ b/booster-task-list-permission/src/main/kotlin/com/didiglobal/booster/task/permission/ListPermissionVariantProcessor.kt @@ -2,6 +2,7 @@ package com.didiglobal.booster.task.permission import com.android.build.gradle.api.BaseVariant import com.android.build.gradle.internal.tasks.factory.dependsOn +import com.didiglobal.booster.BOOSTER import com.didiglobal.booster.gradle.project import com.didiglobal.booster.task.spi.VariantProcessor import com.google.auto.service.AutoService @@ -17,9 +18,14 @@ class ListPermissionVariantProcessor : VariantProcessor { val listPermissions = try { tasks.named(TASK_NAME) } catch (e: UnknownTaskException) { - tasks.register("listPermissions") + tasks.register("listPermissions") { + it.group = BOOSTER + it.description = "List the permissions declared in AndroidManifest.xml" + } } tasks.register("list${variant.name.capitalize()}Permissions", ListPermission::class.java) { + it.group = BOOSTER + it.description = "List the permission declared in AndroidManifest.xml for ${variant.name}" it.variant = variant it.outputs.upToDateWhen { false } }.also { diff --git a/booster-task-list-shared-library/src/main/kotlin/com/didiglobal/booster/task/so/ListSharedLibraryVariantProcessor.kt b/booster-task-list-shared-library/src/main/kotlin/com/didiglobal/booster/task/so/ListSharedLibraryVariantProcessor.kt index b2c250bf4..0357655c8 100644 --- a/booster-task-list-shared-library/src/main/kotlin/com/didiglobal/booster/task/so/ListSharedLibraryVariantProcessor.kt +++ b/booster-task-list-shared-library/src/main/kotlin/com/didiglobal/booster/task/so/ListSharedLibraryVariantProcessor.kt @@ -2,6 +2,7 @@ package com.didiglobal.booster.task.so import com.android.build.gradle.api.BaseVariant import com.android.build.gradle.internal.tasks.factory.dependsOn +import com.didiglobal.booster.BOOSTER import com.didiglobal.booster.gradle.project import com.didiglobal.booster.task.spi.VariantProcessor import com.google.auto.service.AutoService @@ -17,9 +18,14 @@ class ListSharedLibraryVariantProcessor : VariantProcessor { val listSharedLibraries = try { tasks.named(TASK_NAME) } catch (e: UnknownTaskException) { - tasks.register(TASK_NAME) + tasks.register(TASK_NAME) { + it.group = BOOSTER + it.description = "List the shared libraries that current project depends on" + } } tasks.register("list${variant.name.capitalize()}SharedLibraries", ListSharedLibrary::class.java) { + it.group = BOOSTER + it.description = "List the shared libraries that current project depends on for ${variant.name}" it.outputs.upToDateWhen { false } it.variant = variant }.also { diff --git a/booster-task-resource-deredundancy/src/main/kotlin/com/didiglobal/booster/task/resource/deredundancy/ResourceDeredundancyVariantProcessor.kt b/booster-task-resource-deredundancy/src/main/kotlin/com/didiglobal/booster/task/resource/deredundancy/ResourceDeredundancyVariantProcessor.kt index 6a4f37a38..d984ec542 100644 --- a/booster-task-resource-deredundancy/src/main/kotlin/com/didiglobal/booster/task/resource/deredundancy/ResourceDeredundancyVariantProcessor.kt +++ b/booster-task-resource-deredundancy/src/main/kotlin/com/didiglobal/booster/task/resource/deredundancy/ResourceDeredundancyVariantProcessor.kt @@ -2,6 +2,7 @@ package com.didiglobal.booster.task.resource.deredundancy import com.android.build.gradle.api.BaseVariant import com.android.build.gradle.internal.tasks.factory.dependsOn +import com.didiglobal.booster.BOOSTER import com.didiglobal.booster.annotations.Priority import com.didiglobal.booster.compression.CompressionResults import com.didiglobal.booster.compression.generateReport @@ -29,6 +30,8 @@ class ResourceDeredundancyVariantProcessor : VariantProcessor { val results = CompressionResults() val klassRemoveRedundantImages = if (project.isAapt2Enabled) RemoveRedundantFlatImages::class else RemoveRedundantImages::class val deredundancy = variant.project.tasks.register("remove${variant.name.capitalize()}RedundantResources", klassRemoveRedundantImages.java) { task -> + task.group = BOOSTER + task.description = "Remove redundant resources for ${variant.name}" task.outputs.upToDateWhen { false } task.variant = variant task.results = results From 83635120326689bd82f45c77c69d6351c27976aa Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Wed, 15 Jun 2022 20:38:33 +0800 Subject: [PATCH 137/187] Generates project dependencies graph --- .../didiglobal/booster/gradle/BaseVariant.kt | 10 +- .../com/didiglobal/booster/gradle/Project.kt | 140 ++++++++++++++++++ .../booster/gradle/ResolvedArtifactResults.kt | 5 + .../didiglobal/booster/gradle/AGPInterface.kt | 9 +- .../booster/android/gradle/v3_3/V33.kt | 33 ++++- .../booster/android/gradle/v3_4/V34.kt | 33 ++++- .../booster/android/gradle/v3_5/V35.kt | 27 ++++ .../booster/android/gradle/v3_6/V36.kt | 32 +++- .../booster/android/gradle/v4_0/V40.kt | 25 ++++ .../booster/android/gradle/v4_1/V41.kt | 30 +++- .../booster/android/gradle/v4_2/V42.kt | 30 +++- .../booster/android/gradle/v7_0/V70.kt | 30 +++- .../booster/android/gradle/v7_1/V71.kt | 30 +++- .../booster/android/gradle/v7_2/V72.kt | 33 ++++- .../booster/task/analyser/Reportings.kt | 8 +- .../PerformanceAnalysisVariantProcessor.kt | 2 +- .../task/analyser/reference/Constants.kt | 2 - .../analyser/reference/ReferenceAnalyser.kt | 121 +++------------ .../reference/ReferenceAnalysisTask.kt | 5 +- .../ReferenceAnalysisVariantProcessor.kt | 34 +---- .../task/analyser/reference/ReferenceNode.kt | 9 +- .../reporting/ReferencePageRenderer.kt | 7 +- booster-task-graph/build.gradle | 1 + .../task/graph/GraphVariantProcessor.kt | 88 +++++++++++ .../booster/task/graph/ProjectNode.kt | 9 ++ .../task/graph/TaskGraphVariantProcessor.kt | 46 ------ 26 files changed, 594 insertions(+), 205 deletions(-) create mode 100644 booster-task-graph/src/main/kotlin/com/didiglobal/booster/task/graph/GraphVariantProcessor.kt create mode 100644 booster-task-graph/src/main/kotlin/com/didiglobal/booster/task/graph/ProjectNode.kt delete mode 100644 booster-task-graph/src/main/kotlin/com/didiglobal/booster/task/graph/TaskGraphVariantProcessor.kt diff --git a/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/BaseVariant.kt b/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/BaseVariant.kt index c57c2259e..3c6a8f8b1 100644 --- a/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/BaseVariant.kt +++ b/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/BaseVariant.kt @@ -3,6 +3,8 @@ package com.didiglobal.booster.gradle import com.android.build.gradle.BaseExtension import com.android.build.gradle.api.BaseVariant import com.android.build.gradle.internal.publishing.AndroidArtifacts +import com.android.build.gradle.internal.publishing.AndroidArtifacts.ConsumedConfigType.RUNTIME_CLASSPATH +import com.android.build.gradle.internal.publishing.AndroidArtifacts.ArtifactScope.ALL import com.android.build.gradle.tasks.ProcessAndroidResources import com.android.builder.core.VariantType import com.android.builder.model.ApiVersion @@ -13,7 +15,9 @@ import org.gradle.api.Project import org.gradle.api.Task import org.gradle.api.UnknownTaskException import org.gradle.api.artifacts.ArtifactCollection +import org.gradle.api.artifacts.component.ComponentIdentifier import org.gradle.api.artifacts.result.ResolvedArtifactResult +import org.gradle.api.artifacts.result.ResolvedDependencyResult import org.gradle.api.file.FileCollection import org.gradle.api.tasks.TaskProvider import java.io.File @@ -49,7 +53,9 @@ val BaseVariant.platform: File * The variant dependencies */ val BaseVariant.dependencies: Collection - get() = ResolvedArtifactResults(this) + get() = AGP.run { + getDependencies(true) + } val BaseVariant.javaCompilerTaskProvider: TaskProvider get() = AGP.run { javaCompilerTaskProvider } @@ -66,7 +72,7 @@ val BaseVariant.mergeAssetsTaskProvider: TaskProvider val BaseVariant.mergeResourcesTaskProvider: TaskProvider get() = AGP.run { mergeResourcesTaskProvider } -val BaseVariant.mergeNativeLibsTaskProvider:TaskProvider +val BaseVariant.mergeNativeLibsTaskProvider: TaskProvider get() = AGP.run { mergeNativeLibsTaskProvider } val BaseVariant.processJavaResourcesTaskProvider: TaskProvider diff --git a/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/Project.kt b/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/Project.kt index 9182343f5..4359856e0 100644 --- a/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/Project.kt +++ b/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/Project.kt @@ -1,7 +1,27 @@ package com.didiglobal.booster.gradle +import com.android.build.gradle.AppExtension +import com.android.build.gradle.BaseExtension +import com.android.build.gradle.LibraryExtension +import com.android.build.gradle.api.BaseVariant import com.android.repository.Revision import org.gradle.api.Project +import org.gradle.api.Task +import org.gradle.api.artifacts.component.ComponentArtifactIdentifier +import org.gradle.api.artifacts.component.ComponentIdentifier +import org.gradle.api.artifacts.component.ProjectComponentIdentifier +import org.gradle.api.artifacts.result.ResolvedArtifactResult +import org.gradle.api.artifacts.result.ResolvedVariantResult +import org.gradle.api.attributes.Attribute +import org.gradle.api.attributes.AttributeContainer +import org.gradle.api.capabilities.Capability +import org.gradle.api.component.Artifact +import org.gradle.api.plugins.JavaPlugin +import org.gradle.api.plugins.JavaPlugin.RUNTIME_CLASSPATH_CONFIGURATION_NAME +import org.gradle.api.tasks.TaskProvider +import org.gradle.maven.MavenPomArtifact +import java.io.File +import java.util.Stack /** * The gradle version @@ -47,3 +67,123 @@ fun Project.getProperty(name: String, defaultValue: T): T { else -> value as T } } + +fun Project.getUpstreamProjects( + transitive: Boolean = true, + variant: BaseVariant? = null +): Set = getResolvedArtifactResults(transitive, variant).mapNotNull { + (it.id.componentIdentifier as? ProjectComponentIdentifier)?.projectPath?.let { projectPath -> + rootProject.project(projectPath) + } +}.toSet() + +fun Project.getResolvedArtifactResults( + transitive: Boolean = true, + variant: BaseVariant? = null +): Set = when { + isAndroid -> getResolvedArtifactResultsRecursively(transitive) { + filterByVariant(variant).map { v -> + AGP.run { v.getDependencies(transitive) } + }.flatten() + } + isJava -> getResolvedArtifactResultsRecursively(transitive) { + configurations.getByName(RUNTIME_CLASSPATH_CONFIGURATION_NAME).resolvedConfiguration.resolvedArtifacts.map { + ResolvedArtifactResultImpl(it.id, it.file) + } + } + else -> emptySet() +}.distinctBy { + it.id.componentIdentifier +}.toSet() + +private fun Project.getResolvedArtifactResultsRecursively(transitive: Boolean, resolve: Project.() -> List): Set { + val stack = Stack() + val results = mutableSetOf() + + stack.add(this) + + while (stack.isNotEmpty()) { + val resolved = stack.pop().resolve() + + results += resolved + + if (!transitive) continue + + resolved.map { + it.id.componentIdentifier + }.filterIsInstance().map { + rootProject.project(it.projectPath) + }.let(stack::addAll) + } + + return results +} + +/** + * Returns the jar files which could be the outputs of the jar task or createFullJar task + * + * @param variant The build variant + */ +fun Project.getJars(variant: BaseVariant? = null): Set = getJarTaskProviders(variant).map { + it.get().outputs.files +}.flatten().toSet() + +fun Project.getJarTaskProviders(variant: BaseVariant? = null): Collection> = when { + isAndroid -> when (getAndroid()) { + is LibraryExtension -> filterByVariant(variant).map { + tasks.named(it.getTaskName("createFullJar")) + } + is AppExtension -> filterByVariant(variant).map { + it.javaCompilerTaskProvider + } + else -> emptyList() + } + isJavaLibrary -> listOf(tasks.named(JavaPlugin.JAR_TASK_NAME)) + else -> emptyList() +} + +private fun Project.filterByVariant(variant: BaseVariant? = null): Collection { + val variants = when (val android = getAndroid()) { + is AppExtension -> android.applicationVariants + is LibraryExtension -> android.libraryVariants + else -> emptyList() + } + + if (null == variant) return variants + + return variants.filter { + it.name == variant.name + }.takeIf { + it.isNotEmpty() + } ?: variants.filter { + it.buildType.name == variant.buildType.name + } +} + +private data class ResolvedArtifactResultImpl( + private val artifactId: ComponentArtifactIdentifier, + private val artifactFile: File +) : ResolvedArtifactResult { + + private val variant by lazy { + object : ResolvedVariantResult { + override fun getAttributes(): AttributeContainer = EmptyAttributes + override fun getDisplayName(): String = id.displayName + override fun getCapabilities(): MutableList = mutableListOf() + } + } + + override fun getId(): ComponentArtifactIdentifier = artifactId + override fun getType(): Class = MavenPomArtifact::class.java + override fun getFile(): File = artifactFile + override fun getVariant(): ResolvedVariantResult = variant +} + +private object EmptyAttributes : AttributeContainer { + override fun getAttributes(): AttributeContainer = this + override fun keySet(): MutableSet> = mutableSetOf() + override fun attribute(key: Attribute, value: T): AttributeContainer = this + override fun getAttribute(key: Attribute): T? = null + override fun isEmpty(): Boolean = true + override fun contains(key: Attribute<*>): Boolean = false +} \ No newline at end of file diff --git a/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/ResolvedArtifactResults.kt b/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/ResolvedArtifactResults.kt index 6f4f5af49..e5cebf362 100644 --- a/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/ResolvedArtifactResults.kt +++ b/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/ResolvedArtifactResults.kt @@ -19,6 +19,11 @@ import java.io.PrintWriter * @author johnsonlee */ @Suppress("UnstableApiUsage") +@Deprecated( + message = "Use AGPInterface instead", + replaceWith = ReplaceWith("BaseVariant.getDependencies(Boolean, (ComponentIdentifier) -> Boolean)"), + level = DeprecationLevel.WARNING +) class ResolvedArtifactResults(private val variant: BaseVariant) : Collection { private val results = listOf(AAR, JAR) diff --git a/booster-android-gradle-compat/src/main/kotlin/com/didiglobal/booster/gradle/AGPInterface.kt b/booster-android-gradle-compat/src/main/kotlin/com/didiglobal/booster/gradle/AGPInterface.kt index 34222ca73..3dc6864d0 100644 --- a/booster-android-gradle-compat/src/main/kotlin/com/didiglobal/booster/gradle/AGPInterface.kt +++ b/booster-android-gradle-compat/src/main/kotlin/com/didiglobal/booster/gradle/AGPInterface.kt @@ -10,18 +10,18 @@ import com.android.build.gradle.api.BaseVariant import com.android.build.gradle.internal.pipeline.TransformManager import com.android.build.gradle.internal.pipeline.TransformTask import com.android.build.gradle.internal.publishing.AndroidArtifacts -import com.android.build.gradle.internal.scope.GlobalScope import com.android.build.gradle.internal.scope.VariantScope import com.android.build.gradle.internal.variant.BaseVariantData import com.android.builder.core.VariantType import com.android.builder.model.ApiVersion import com.android.builder.model.Version import com.android.repository.Revision -import com.android.sdklib.AndroidVersion import com.android.sdklib.BuildToolInfo import org.gradle.api.Project import org.gradle.api.Task import org.gradle.api.artifacts.ArtifactCollection +import org.gradle.api.artifacts.component.ComponentIdentifier +import org.gradle.api.artifacts.result.ResolvedArtifactResult import org.gradle.api.file.FileCollection import org.gradle.api.tasks.TaskProvider import java.io.File @@ -163,6 +163,11 @@ interface AGPInterface { val BaseVariant.isPrecompileDependenciesResourcesEnabled: Boolean + fun BaseVariant.getDependencies( + transitive: Boolean = true, + filter: (ComponentIdentifier) -> Boolean = { true } + ): Collection + val Context.task: TransformTask @Deprecated( diff --git a/booster-android-gradle-v3_3/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_3/V33.kt b/booster-android-gradle-v3_3/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_3/V33.kt index 219556e86..aae7c9e46 100644 --- a/booster-android-gradle-v3_3/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_3/V33.kt +++ b/booster-android-gradle-v3_3/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_3/V33.kt @@ -11,6 +11,7 @@ import com.android.build.gradle.internal.api.artifact.SourceArtifactType import com.android.build.gradle.internal.pipeline.TransformManager import com.android.build.gradle.internal.pipeline.TransformTask import com.android.build.gradle.internal.publishing.AndroidArtifacts +import com.android.build.gradle.internal.publishing.AndroidArtifacts.ArtifactScope import com.android.build.gradle.internal.scope.AnchorOutputType import com.android.build.gradle.internal.scope.GlobalScope import com.android.build.gradle.internal.scope.InternalArtifactType @@ -24,6 +25,9 @@ import com.didiglobal.booster.gradle.AGPInterface import org.gradle.api.Project import org.gradle.api.Task import org.gradle.api.artifacts.ArtifactCollection +import org.gradle.api.artifacts.component.ComponentIdentifier +import org.gradle.api.artifacts.result.ResolvedArtifactResult +import org.gradle.api.artifacts.result.ResolvedDependencyResult import org.gradle.api.file.FileCollection import org.gradle.api.tasks.TaskProvider import java.io.File @@ -109,7 +113,7 @@ internal object V33 : AGPInterface { override fun BaseVariant.getArtifactCollection( configType: AndroidArtifacts.ConsumedConfigType, - scope: AndroidArtifacts.ArtifactScope, + scope: ArtifactScope, artifactType: AndroidArtifacts.ArtifactType ): ArtifactCollection { return variantScope.getArtifactCollection(configType, scope, artifactType) @@ -117,7 +121,7 @@ internal object V33 : AGPInterface { override fun BaseVariant.getArtifactFileCollection( configType: AndroidArtifacts.ConsumedConfigType, - scope: AndroidArtifacts.ArtifactScope, + scope: ArtifactScope, artifactType: AndroidArtifacts.ArtifactType ): FileCollection { return variantScope.getArtifactFileCollection(configType, scope, artifactType) @@ -142,6 +146,7 @@ internal object V33 : AGPInterface { if (other !is ApiVersion) return false return apiLevel == other.apiLevel || codename.equals(other.codename, false) } + override fun hashCode(): Int = codename?.hashCode() ?: apiLevel } } @@ -199,6 +204,30 @@ internal object V33 : AGPInterface { override val BaseVariant.isPrecompileDependenciesResourcesEnabled: Boolean get() = false + override fun BaseVariant.getDependencies(transitive: Boolean, filter: (ComponentIdentifier) -> Boolean): Collection { + val all = listOf(AndroidArtifacts.ArtifactType.AAR, AndroidArtifacts.ArtifactType.JAR) + .asSequence() + .map { + getArtifactCollection(AndroidArtifacts.ConsumedConfigType.RUNTIME_CLASSPATH, ArtifactScope.ALL, it).filter { result -> + filter(result.id.componentIdentifier) + } + } + .flatten() + .associateBy { + it.id.componentIdentifier.displayName + } + val result = if (!transitive) { + runtimeConfiguration.incoming.resolutionResult.root.dependencies.filterIsInstance().mapNotNull { + it.selected.id.displayName.takeIf { id -> id in all.keys } + }.associateWith { + all[it]!! + } + } else { + all + } + return result.values.toSet() + } + override val Context.task: TransformTask get() = this as TransformTask diff --git a/booster-android-gradle-v3_4/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_4/V34.kt b/booster-android-gradle-v3_4/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_4/V34.kt index 29d75dfe1..a82c1502c 100644 --- a/booster-android-gradle-v3_4/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_4/V34.kt +++ b/booster-android-gradle-v3_4/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_4/V34.kt @@ -11,6 +11,7 @@ import com.android.build.gradle.internal.api.artifact.SourceArtifactType import com.android.build.gradle.internal.pipeline.TransformManager import com.android.build.gradle.internal.pipeline.TransformTask import com.android.build.gradle.internal.publishing.AndroidArtifacts +import com.android.build.gradle.internal.publishing.AndroidArtifacts.ArtifactScope import com.android.build.gradle.internal.scope.AnchorOutputType import com.android.build.gradle.internal.scope.GlobalScope import com.android.build.gradle.internal.scope.InternalArtifactType @@ -25,6 +26,9 @@ import com.didiglobal.booster.gradle.AGPInterface import org.gradle.api.Project import org.gradle.api.Task import org.gradle.api.artifacts.ArtifactCollection +import org.gradle.api.artifacts.component.ComponentIdentifier +import org.gradle.api.artifacts.result.ResolvedArtifactResult +import org.gradle.api.artifacts.result.ResolvedDependencyResult import org.gradle.api.file.FileCollection import org.gradle.api.tasks.TaskProvider import java.io.File @@ -110,7 +114,7 @@ internal object V34 : AGPInterface { override fun BaseVariant.getArtifactCollection( configType: AndroidArtifacts.ConsumedConfigType, - scope: AndroidArtifacts.ArtifactScope, + scope: ArtifactScope, artifactType: AndroidArtifacts.ArtifactType ): ArtifactCollection { return variantScope.getArtifactCollection(configType, scope, artifactType) @@ -118,7 +122,7 @@ internal object V34 : AGPInterface { override fun BaseVariant.getArtifactFileCollection( configType: AndroidArtifacts.ConsumedConfigType, - scope: AndroidArtifacts.ArtifactScope, + scope: ArtifactScope, artifactType: AndroidArtifacts.ArtifactType ): FileCollection { return variantScope.getArtifactFileCollection(configType, scope, artifactType) @@ -143,6 +147,7 @@ internal object V34 : AGPInterface { if (other !is ApiVersion) return false return apiLevel == other.apiLevel || codename.equals(other.codename, false) } + override fun hashCode(): Int = codename?.hashCode() ?: apiLevel } } @@ -200,6 +205,30 @@ internal object V34 : AGPInterface { override val BaseVariant.isPrecompileDependenciesResourcesEnabled: Boolean get() = false + override fun BaseVariant.getDependencies(transitive: Boolean, filter: (ComponentIdentifier) -> Boolean): Collection { + val all = listOf(AndroidArtifacts.ArtifactType.AAR, AndroidArtifacts.ArtifactType.JAR) + .asSequence() + .map { + getArtifactCollection(AndroidArtifacts.ConsumedConfigType.RUNTIME_CLASSPATH, ArtifactScope.ALL, it).filter { result -> + filter(result.id.componentIdentifier) + } + } + .flatten() + .associateBy { + it.id.componentIdentifier.displayName + } + val result = if (!transitive) { + runtimeConfiguration.incoming.resolutionResult.root.dependencies.filterIsInstance().mapNotNull { + it.selected.id.displayName.takeIf { id -> id in all.keys } + }.associateWith { + all[it]!! + } + } else { + all + } + return result.values.toSet() + } + override val Context.task: TransformTask get() = this as TransformTask diff --git a/booster-android-gradle-v3_5/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_5/V35.kt b/booster-android-gradle-v3_5/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_5/V35.kt index cbcbfb08d..34576a30c 100644 --- a/booster-android-gradle-v3_5/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_5/V35.kt +++ b/booster-android-gradle-v3_5/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_5/V35.kt @@ -25,6 +25,9 @@ import com.didiglobal.booster.gradle.AGPInterface import org.gradle.api.Project import org.gradle.api.Task import org.gradle.api.artifacts.ArtifactCollection +import org.gradle.api.artifacts.component.ComponentIdentifier +import org.gradle.api.artifacts.result.ResolvedArtifactResult +import org.gradle.api.artifacts.result.ResolvedDependencyResult import org.gradle.api.file.FileCollection import org.gradle.api.tasks.TaskProvider import java.io.File @@ -202,6 +205,30 @@ internal object V35 : AGPInterface { override val BaseVariant.isPrecompileDependenciesResourcesEnabled: Boolean get() = false + override fun BaseVariant.getDependencies(transitive: Boolean, filter: (ComponentIdentifier) -> Boolean): Collection { + val all = listOf(AndroidArtifacts.ArtifactType.AAR, AndroidArtifacts.ArtifactType.JAR) + .asSequence() + .map { + getArtifactCollection(AndroidArtifacts.ConsumedConfigType.RUNTIME_CLASSPATH, AndroidArtifacts.ArtifactScope.ALL, it).filter { result -> + filter(result.id.componentIdentifier) + } + } + .flatten() + .associateBy { + it.id.componentIdentifier.displayName + } + val result = if (!transitive) { + runtimeConfiguration.incoming.resolutionResult.root.dependencies.filterIsInstance().mapNotNull { + it.selected.id.displayName.takeIf { id -> id in all.keys } + }.associateWith { + all[it]!! + } + } else { + all + } + return result.values.toSet() + } + override val Context.task: TransformTask get() = this as TransformTask diff --git a/booster-android-gradle-v3_6/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_6/V36.kt b/booster-android-gradle-v3_6/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_6/V36.kt index 897370a6a..049904a98 100644 --- a/booster-android-gradle-v3_6/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_6/V36.kt +++ b/booster-android-gradle-v3_6/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_6/V36.kt @@ -11,6 +11,7 @@ import com.android.build.gradle.internal.api.artifact.SourceArtifactType import com.android.build.gradle.internal.pipeline.TransformManager import com.android.build.gradle.internal.pipeline.TransformTask import com.android.build.gradle.internal.publishing.AndroidArtifacts +import com.android.build.gradle.internal.publishing.AndroidArtifacts.ArtifactScope import com.android.build.gradle.internal.scope.AnchorOutputType import com.android.build.gradle.internal.scope.GlobalScope import com.android.build.gradle.internal.scope.InternalArtifactType @@ -24,6 +25,9 @@ import com.didiglobal.booster.gradle.AGPInterface import org.gradle.api.Project import org.gradle.api.Task import org.gradle.api.artifacts.ArtifactCollection +import org.gradle.api.artifacts.component.ComponentIdentifier +import org.gradle.api.artifacts.result.ResolvedArtifactResult +import org.gradle.api.artifacts.result.ResolvedDependencyResult import org.gradle.api.file.FileCollection import org.gradle.api.file.FileSystemLocation import org.gradle.api.tasks.TaskProvider @@ -119,7 +123,7 @@ object V36 : AGPInterface { override fun BaseVariant.getArtifactCollection( configType: AndroidArtifacts.ConsumedConfigType, - scope: AndroidArtifacts.ArtifactScope, + scope: ArtifactScope, artifactType: AndroidArtifacts.ArtifactType ): ArtifactCollection { return variantScope.getArtifactCollection(configType, scope, artifactType) @@ -127,7 +131,7 @@ object V36 : AGPInterface { override fun BaseVariant.getArtifactFileCollection( configType: AndroidArtifacts.ConsumedConfigType, - scope: AndroidArtifacts.ArtifactScope, + scope: ArtifactScope, artifactType: AndroidArtifacts.ArtifactType ): FileCollection { return variantScope.getArtifactFileCollection(configType, scope, artifactType) @@ -206,6 +210,30 @@ object V36 : AGPInterface { override val BaseVariant.isPrecompileDependenciesResourcesEnabled: Boolean get() = variantScope.isPrecompileDependenciesResourcesEnabled + override fun BaseVariant.getDependencies(transitive: Boolean, filter: (ComponentIdentifier) -> Boolean): Collection { + val all = listOf(AndroidArtifacts.ArtifactType.AAR, AndroidArtifacts.ArtifactType.JAR) + .asSequence() + .map { + getArtifactCollection(AndroidArtifacts.ConsumedConfigType.RUNTIME_CLASSPATH, ArtifactScope.ALL, it).filter { result -> + filter(result.id.componentIdentifier) + } + } + .flatten() + .associateBy { + it.id.componentIdentifier.displayName + } + val result = if (!transitive) { + runtimeConfiguration.incoming.resolutionResult.root.dependencies.filterIsInstance().mapNotNull { + it.selected.id.displayName.takeIf { id -> id in all.keys } + }.associateWith { + all[it]!! + } + } else { + all + } + return result.values.toSet() + } + override val Context.task: TransformTask get() = javaClass.getDeclaredField("this$1").apply { isAccessible = true diff --git a/booster-android-gradle-v4_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_0/V40.kt b/booster-android-gradle-v4_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_0/V40.kt index 79cfe367d..dfd6e2723 100644 --- a/booster-android-gradle-v4_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_0/V40.kt +++ b/booster-android-gradle-v4_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_0/V40.kt @@ -23,6 +23,9 @@ import com.didiglobal.booster.gradle.AGPInterface import org.gradle.api.Project import org.gradle.api.Task import org.gradle.api.artifacts.ArtifactCollection +import org.gradle.api.artifacts.component.ComponentIdentifier +import org.gradle.api.artifacts.result.ResolvedArtifactResult +import org.gradle.api.artifacts.result.ResolvedDependencyResult import org.gradle.api.file.FileCollection import org.gradle.api.file.FileSystemLocation import org.gradle.api.tasks.TaskProvider @@ -232,6 +235,28 @@ internal object V40 : AGPInterface { override val BaseVariant.isPrecompileDependenciesResourcesEnabled: Boolean get() = variantScope.isPrecompileDependenciesResourcesEnabled + override fun BaseVariant.getDependencies(transitive: Boolean, filter: (ComponentIdentifier) -> Boolean): Collection { + val all = getArtifactCollection( + AndroidArtifacts.ConsumedConfigType.RUNTIME_CLASSPATH, + AndroidArtifacts.ArtifactScope.ALL, + AndroidArtifacts.ArtifactType.CLASSES_JAR + ).filter { result -> + filter(result.id.componentIdentifier) + }.associateBy { + it.id.componentIdentifier.displayName + } + val result = if (!transitive) { + runtimeConfiguration.incoming.resolutionResult.root.dependencies.filterIsInstance().mapNotNull { + it.selected.id.displayName.takeIf { id -> id in all.keys } + }.associateWith { + all[it]!! + } + } else { + all + } + return result.values.toSet() + } + override val Context.task: TransformTask get() = javaClass.getDeclaredField("this$1").apply { isAccessible = true diff --git a/booster-android-gradle-v4_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_1/V41.kt b/booster-android-gradle-v4_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_1/V41.kt index 41c452572..ad91f404c 100644 --- a/booster-android-gradle-v4_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_1/V41.kt +++ b/booster-android-gradle-v4_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_1/V41.kt @@ -14,6 +14,7 @@ import com.android.build.gradle.internal.api.BaseVariantImpl import com.android.build.gradle.internal.pipeline.TransformManager import com.android.build.gradle.internal.pipeline.TransformTask import com.android.build.gradle.internal.publishing.AndroidArtifacts +import com.android.build.gradle.internal.publishing.AndroidArtifacts.ArtifactScope import com.android.build.gradle.internal.scope.AnchorOutputType import com.android.build.gradle.internal.scope.GlobalScope import com.android.build.gradle.internal.scope.InternalArtifactType @@ -28,6 +29,9 @@ import com.didiglobal.booster.gradle.AGPInterface import org.gradle.api.Project import org.gradle.api.Task import org.gradle.api.artifacts.ArtifactCollection +import org.gradle.api.artifacts.component.ComponentIdentifier +import org.gradle.api.artifacts.result.ResolvedArtifactResult +import org.gradle.api.artifacts.result.ResolvedDependencyResult import org.gradle.api.file.FileCollection import org.gradle.api.file.FileSystemLocation import org.gradle.api.tasks.TaskProvider @@ -154,7 +158,7 @@ internal object V41 : AGPInterface { override fun BaseVariant.getArtifactCollection( configType: AndroidArtifacts.ConsumedConfigType, - scope: AndroidArtifacts.ArtifactScope, + scope: ArtifactScope, artifactType: AndroidArtifacts.ArtifactType ): ArtifactCollection { return componentProperties.variantDependencies.getArtifactCollection(configType, scope, artifactType) @@ -162,7 +166,7 @@ internal object V41 : AGPInterface { override fun BaseVariant.getArtifactFileCollection( configType: AndroidArtifacts.ConsumedConfigType, - scope: AndroidArtifacts.ArtifactScope, + scope: ArtifactScope, artifactType: AndroidArtifacts.ArtifactType ): FileCollection { return componentProperties.variantDependencies.getArtifactFileCollection(configType, scope, artifactType) @@ -244,6 +248,28 @@ internal object V41 : AGPInterface { override val BaseVariant.isPrecompileDependenciesResourcesEnabled: Boolean get() = variantScope.isPrecompileDependenciesResourcesEnabled + override fun BaseVariant.getDependencies(transitive: Boolean, filter: (ComponentIdentifier) -> Boolean): Collection { + val all = getArtifactCollection( + AndroidArtifacts.ConsumedConfigType.RUNTIME_CLASSPATH, + AndroidArtifacts.ArtifactScope.ALL, + AndroidArtifacts.ArtifactType.CLASSES_JAR + ).filter { result -> + filter(result.id.componentIdentifier) + }.associateBy { + it.id.componentIdentifier.displayName + } + val result = if (!transitive) { + runtimeConfiguration.incoming.resolutionResult.root.dependencies.filterIsInstance().mapNotNull { + it.selected.id.displayName.takeIf { id -> id in all.keys } + }.associateWith { + all[it]!! + } + } else { + all + } + return result.values.toSet() + } + override val Context.task: TransformTask get() = javaClass.getDeclaredField("this$1").apply { isAccessible = true diff --git a/booster-android-gradle-v4_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42.kt b/booster-android-gradle-v4_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42.kt index 91b76ebb6..06797ba63 100644 --- a/booster-android-gradle-v4_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42.kt +++ b/booster-android-gradle-v4_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42.kt @@ -14,6 +14,7 @@ import com.android.build.gradle.internal.api.BaseVariantImpl import com.android.build.gradle.internal.pipeline.TransformManager import com.android.build.gradle.internal.pipeline.TransformTask import com.android.build.gradle.internal.publishing.AndroidArtifacts +import com.android.build.gradle.internal.publishing.AndroidArtifacts.ArtifactScope import com.android.build.gradle.internal.scope.AnchorOutputType import com.android.build.gradle.internal.scope.GlobalScope import com.android.build.gradle.internal.scope.InternalArtifactType @@ -28,6 +29,9 @@ import com.didiglobal.booster.gradle.AGPInterface import org.gradle.api.Project import org.gradle.api.Task import org.gradle.api.artifacts.ArtifactCollection +import org.gradle.api.artifacts.component.ComponentIdentifier +import org.gradle.api.artifacts.result.ResolvedArtifactResult +import org.gradle.api.artifacts.result.ResolvedDependencyResult import org.gradle.api.file.FileCollection import org.gradle.api.file.FileSystemLocation import org.gradle.api.tasks.TaskProvider @@ -155,7 +159,7 @@ internal object V42 : AGPInterface { override fun BaseVariant.getArtifactCollection( configType: AndroidArtifacts.ConsumedConfigType, - scope: AndroidArtifacts.ArtifactScope, + scope: ArtifactScope, artifactType: AndroidArtifacts.ArtifactType ): ArtifactCollection { return component.variantDependencies.getArtifactCollection(configType, scope, artifactType) @@ -163,7 +167,7 @@ internal object V42 : AGPInterface { override fun BaseVariant.getArtifactFileCollection( configType: AndroidArtifacts.ConsumedConfigType, - scope: AndroidArtifacts.ArtifactScope, + scope: ArtifactScope, artifactType: AndroidArtifacts.ArtifactType ): FileCollection { return component.variantDependencies.getArtifactFileCollection(configType, scope, artifactType) @@ -245,6 +249,28 @@ internal object V42 : AGPInterface { override val BaseVariant.isPrecompileDependenciesResourcesEnabled: Boolean get() = component.isPrecompileDependenciesResourcesEnabled + override fun BaseVariant.getDependencies(transitive: Boolean, filter: (ComponentIdentifier) -> Boolean): Collection { + val all = getArtifactCollection( + AndroidArtifacts.ConsumedConfigType.RUNTIME_CLASSPATH, + AndroidArtifacts.ArtifactScope.ALL, + AndroidArtifacts.ArtifactType.CLASSES_JAR + ).filter { result -> + filter(result.id.componentIdentifier) + }.associateBy { + it.id.componentIdentifier.displayName + } + val result = if (!transitive) { + runtimeConfiguration.incoming.resolutionResult.root.dependencies.filterIsInstance().mapNotNull { + it.selected.id.displayName.takeIf { id -> id in all.keys } + }.associateWith { + all[it]!! + } + } else { + all + } + return result.values.toSet() + } + override val Context.task: TransformTask get() = javaClass.getDeclaredField("this$1").apply { isAccessible = true diff --git a/booster-android-gradle-v7_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_0/V70.kt b/booster-android-gradle-v7_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_0/V70.kt index cfc34f2ec..4e07524ad 100644 --- a/booster-android-gradle-v7_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_0/V70.kt +++ b/booster-android-gradle-v7_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_0/V70.kt @@ -15,6 +15,7 @@ import com.android.build.gradle.internal.api.artifact.SourceArtifactType import com.android.build.gradle.internal.pipeline.TransformManager import com.android.build.gradle.internal.pipeline.TransformTask import com.android.build.gradle.internal.publishing.AndroidArtifacts +import com.android.build.gradle.internal.publishing.AndroidArtifacts.ArtifactScope import com.android.build.gradle.internal.scope.AnchorOutputType import com.android.build.gradle.internal.scope.BuildArtifactType import com.android.build.gradle.internal.scope.GlobalScope @@ -30,6 +31,9 @@ import com.didiglobal.booster.gradle.AGPInterface import org.gradle.api.Project import org.gradle.api.Task import org.gradle.api.artifacts.ArtifactCollection +import org.gradle.api.artifacts.component.ComponentIdentifier +import org.gradle.api.artifacts.result.ResolvedArtifactResult +import org.gradle.api.artifacts.result.ResolvedDependencyResult import org.gradle.api.file.FileCollection import org.gradle.api.file.FileSystemLocation import org.gradle.api.tasks.TaskProvider @@ -163,7 +167,7 @@ internal object V70 : AGPInterface { override fun BaseVariant.getArtifactCollection( configType: AndroidArtifacts.ConsumedConfigType, - scope: AndroidArtifacts.ArtifactScope, + scope: ArtifactScope, artifactType: AndroidArtifacts.ArtifactType ): ArtifactCollection { return component.variantDependencies.getArtifactCollection(configType, scope, artifactType) @@ -171,7 +175,7 @@ internal object V70 : AGPInterface { override fun BaseVariant.getArtifactFileCollection( configType: AndroidArtifacts.ConsumedConfigType, - scope: AndroidArtifacts.ArtifactScope, + scope: ArtifactScope, artifactType: AndroidArtifacts.ArtifactType ): FileCollection { return component.variantDependencies.getArtifactFileCollection(configType, scope, artifactType) @@ -253,6 +257,28 @@ internal object V70 : AGPInterface { override val BaseVariant.isPrecompileDependenciesResourcesEnabled: Boolean get() = component.isPrecompileDependenciesResourcesEnabled + override fun BaseVariant.getDependencies(transitive: Boolean, filter: (ComponentIdentifier) -> Boolean): Collection { + val all = getArtifactCollection( + AndroidArtifacts.ConsumedConfigType.RUNTIME_CLASSPATH, + AndroidArtifacts.ArtifactScope.ALL, + AndroidArtifacts.ArtifactType.CLASSES_JAR + ).filter { result -> + filter(result.id.componentIdentifier) + }.associateBy { + it.id.componentIdentifier.displayName + } + val result = if (!transitive) { + runtimeConfiguration.incoming.resolutionResult.root.dependencies.filterIsInstance().mapNotNull { + it.selected.id.displayName.takeIf { id -> id in all.keys } + }.associateWith { + all[it]!! + } + } else { + all + } + return result.values.toSet() + } + override val Context.task: TransformTask get() = javaClass.getDeclaredField("this$1").apply { isAccessible = true diff --git a/booster-android-gradle-v7_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_1/V71.kt b/booster-android-gradle-v7_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_1/V71.kt index 47f461719..8130ba1da 100644 --- a/booster-android-gradle-v7_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_1/V71.kt +++ b/booster-android-gradle-v7_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_1/V71.kt @@ -15,6 +15,7 @@ import com.android.build.gradle.internal.api.artifact.SourceArtifactType import com.android.build.gradle.internal.pipeline.TransformManager import com.android.build.gradle.internal.pipeline.TransformTask import com.android.build.gradle.internal.publishing.AndroidArtifacts +import com.android.build.gradle.internal.publishing.AndroidArtifacts.ArtifactScope import com.android.build.gradle.internal.scope.BuildArtifactType import com.android.build.gradle.internal.scope.GlobalScope import com.android.build.gradle.internal.scope.InternalArtifactType @@ -29,6 +30,9 @@ import com.didiglobal.booster.gradle.AGPInterface import org.gradle.api.Project import org.gradle.api.Task import org.gradle.api.artifacts.ArtifactCollection +import org.gradle.api.artifacts.component.ComponentIdentifier +import org.gradle.api.artifacts.result.ResolvedArtifactResult +import org.gradle.api.artifacts.result.ResolvedDependencyResult import org.gradle.api.file.FileCollection import org.gradle.api.file.FileSystemLocation import org.gradle.api.tasks.TaskProvider @@ -159,7 +163,7 @@ internal object V71 : AGPInterface { override fun BaseVariant.getArtifactCollection( configType: AndroidArtifacts.ConsumedConfigType, - scope: AndroidArtifacts.ArtifactScope, + scope: ArtifactScope, artifactType: AndroidArtifacts.ArtifactType ): ArtifactCollection { return component.variantDependencies.getArtifactCollection(configType, scope, artifactType) @@ -167,7 +171,7 @@ internal object V71 : AGPInterface { override fun BaseVariant.getArtifactFileCollection( configType: AndroidArtifacts.ConsumedConfigType, - scope: AndroidArtifacts.ArtifactScope, + scope: ArtifactScope, artifactType: AndroidArtifacts.ArtifactType ): FileCollection { return component.variantDependencies.getArtifactFileCollection(configType, scope, artifactType) @@ -249,6 +253,28 @@ internal object V71 : AGPInterface { override val BaseVariant.isPrecompileDependenciesResourcesEnabled: Boolean get() = component.isPrecompileDependenciesResourcesEnabled + override fun BaseVariant.getDependencies(transitive: Boolean, filter: (ComponentIdentifier) -> Boolean): Collection { + val all = getArtifactCollection( + AndroidArtifacts.ConsumedConfigType.RUNTIME_CLASSPATH, + AndroidArtifacts.ArtifactScope.ALL, + AndroidArtifacts.ArtifactType.CLASSES_JAR + ).filter { result -> + filter(result.id.componentIdentifier) + }.associateBy { + it.id.componentIdentifier.displayName + } + val result = if (!transitive) { + runtimeConfiguration.incoming.resolutionResult.root.dependencies.filterIsInstance().mapNotNull { + it.selected.id.displayName.takeIf { id -> id in all.keys } + }.associateWith { + all[it]!! + } + } else { + all + } + return result.values.toSet() + } + override val Context.task: TransformTask get() = javaClass.getDeclaredField("this$1").apply { isAccessible = true diff --git a/booster-android-gradle-v7_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_2/V72.kt b/booster-android-gradle-v7_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_2/V72.kt index 2b0140287..13919c14f 100644 --- a/booster-android-gradle-v7_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_2/V72.kt +++ b/booster-android-gradle-v7_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_2/V72.kt @@ -10,28 +10,29 @@ import com.android.build.api.transform.QualifiedContent import com.android.build.gradle.api.ApplicationVariant import com.android.build.gradle.api.BaseVariant import com.android.build.gradle.api.LibraryVariant -import com.android.build.gradle.internal.SdkComponentsBuildService import com.android.build.gradle.internal.api.BaseVariantImpl import com.android.build.gradle.internal.api.artifact.SourceArtifactType import com.android.build.gradle.internal.pipeline.TransformManager import com.android.build.gradle.internal.pipeline.TransformTask import com.android.build.gradle.internal.publishing.AndroidArtifacts +import com.android.build.gradle.internal.publishing.AndroidArtifacts.ArtifactScope import com.android.build.gradle.internal.scope.BuildArtifactType import com.android.build.gradle.internal.scope.InternalArtifactType import com.android.build.gradle.internal.scope.InternalMultipleArtifactType import com.android.build.gradle.internal.scope.VariantScope -import com.android.build.gradle.internal.tasks.factory.GlobalTaskCreationConfig import com.android.build.gradle.internal.tasks.factory.GlobalTaskCreationConfigImpl import com.android.build.gradle.internal.variant.BaseVariantData import com.android.builder.core.DefaultApiVersion import com.android.builder.core.VariantType import com.android.builder.model.ApiVersion import com.android.sdklib.BuildToolInfo -import com.didiglobal.booster.android.gradle.v7_2.V72.project import com.didiglobal.booster.gradle.AGPInterface import org.gradle.api.Project import org.gradle.api.Task import org.gradle.api.artifacts.ArtifactCollection +import org.gradle.api.artifacts.component.ComponentIdentifier +import org.gradle.api.artifacts.result.ResolvedArtifactResult +import org.gradle.api.artifacts.result.ResolvedDependencyResult import org.gradle.api.file.FileCollection import org.gradle.api.file.FileSystemLocation import org.gradle.api.tasks.TaskProvider @@ -172,7 +173,7 @@ internal object V72 : AGPInterface { override fun BaseVariant.getArtifactCollection( configType: AndroidArtifacts.ConsumedConfigType, - scope: AndroidArtifacts.ArtifactScope, + scope: ArtifactScope, artifactType: AndroidArtifacts.ArtifactType ): ArtifactCollection { return component.variantDependencies.getArtifactCollection(configType, scope, artifactType) @@ -180,7 +181,7 @@ internal object V72 : AGPInterface { override fun BaseVariant.getArtifactFileCollection( configType: AndroidArtifacts.ConsumedConfigType, - scope: AndroidArtifacts.ArtifactScope, + scope: ArtifactScope, artifactType: AndroidArtifacts.ArtifactType ): FileCollection { return component.variantDependencies.getArtifactFileCollection(configType, scope, artifactType) @@ -262,6 +263,28 @@ internal object V72 : AGPInterface { override val BaseVariant.isPrecompileDependenciesResourcesEnabled: Boolean get() = component.isPrecompileDependenciesResourcesEnabled + override fun BaseVariant.getDependencies(transitive: Boolean, filter: (ComponentIdentifier) -> Boolean): Collection { + val all = getArtifactCollection( + AndroidArtifacts.ConsumedConfigType.RUNTIME_CLASSPATH, + AndroidArtifacts.ArtifactScope.ALL, + AndroidArtifacts.ArtifactType.CLASSES_JAR + ).filter { result -> + filter(result.id.componentIdentifier) + }.associateBy { + it.id.componentIdentifier.displayName + } + val result = if (!transitive) { + runtimeConfiguration.incoming.resolutionResult.root.dependencies.filterIsInstance().mapNotNull { + it.selected.id.displayName.takeIf { id -> id in all.keys } + }.associateWith { + all[it]!! + } + } else { + all + } + return result.values.toSet() + } + override val Context.task: TransformTask get() = javaClass.getDeclaredField("this$1").apply { isAccessible = true diff --git a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/Reportings.kt b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/Reportings.kt index d525aff16..bef35327a 100644 --- a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/Reportings.kt +++ b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/Reportings.kt @@ -1,18 +1,20 @@ package com.didiglobal.booster.task.analyser -import com.didiglobal.booster.kotlinx.file +import com.android.build.gradle.api.BaseVariant import org.gradle.api.internal.AbstractTask import org.gradle.api.reporting.ReportContainer import org.gradle.api.reporting.Reporting import org.gradle.api.reporting.ReportingExtension import org.gradle.api.reporting.SingleFileReport +import java.io.File -fun T.configureReportConvention(analysis: String, variant: String) +fun T.configureReportConvention(analysis: String, variant: BaseVariant?) where T : AbstractTask, T: Reporting> { reports.all { it.outputLocation.convention(project.layout.projectDirectory.file(project.provider { val base = project.extensions.getByType(ReportingExtension::class.java).baseDir - base.file(Build.ARTIFACT, analysis, variant, it.name, "index.${it.name}").absolutePath + val path = listOfNotNull(Build.ARTIFACT, analysis, variant?.name, it.name, "index.${it.name}").joinToString(File.separator) + File(base, path).absolutePath })) } } \ No newline at end of file diff --git a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/performance/PerformanceAnalysisVariantProcessor.kt b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/performance/PerformanceAnalysisVariantProcessor.kt index 127d1406c..43fc5d4e8 100644 --- a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/performance/PerformanceAnalysisVariantProcessor.kt +++ b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/performance/PerformanceAnalysisVariantProcessor.kt @@ -47,7 +47,7 @@ class PerformanceAnalysisVariantProcessor : VariantProcessor { transformTask.outputs.files.single() } it.dependsOn(transformTask) - it.configureReportConvention("performance", variantName) + it.configureReportConvention("performance", variant) } profiles.dependsOn(profile) } diff --git a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/Constants.kt b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/Constants.kt index 4a45e10b6..dd369786f 100644 --- a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/Constants.kt +++ b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/Constants.kt @@ -3,5 +3,3 @@ package com.didiglobal.booster.task.analyser.reference internal const val DEFAULT_VARIANT = "" internal const val TASK_ANALYSE_REFERENCE = "analyseReference" - -internal const val TASK_CREATE_FULL_JAR = "createFullJar" diff --git a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/ReferenceAnalyser.kt b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/ReferenceAnalyser.kt index 1b6c8b0f0..687539c22 100644 --- a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/ReferenceAnalyser.kt +++ b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/ReferenceAnalyser.kt @@ -1,25 +1,16 @@ package com.didiglobal.booster.task.analyser.reference -import com.android.build.gradle.AppExtension -import com.android.build.gradle.BaseExtension -import com.android.build.gradle.LibraryExtension import com.android.build.gradle.api.BaseVariant import com.didiglobal.booster.cha.ClassSet -import com.didiglobal.booster.gradle.dependencies -import com.didiglobal.booster.gradle.getAndroid -import com.didiglobal.booster.gradle.getTaskName -import com.didiglobal.booster.gradle.isAndroid -import com.didiglobal.booster.gradle.isJavaLibrary -import com.didiglobal.booster.gradle.javaCompilerTaskProvider +import com.didiglobal.booster.gradle.getJars +import com.didiglobal.booster.gradle.getResolvedArtifactResults import com.didiglobal.booster.graph.Graph import com.didiglobal.booster.kotlinx.NCPU import com.didiglobal.booster.kotlinx.green import com.didiglobal.booster.kotlinx.yellow import com.didiglobal.booster.task.analyser.AsmClassFileParser import org.gradle.api.Project -import org.gradle.api.artifacts.component.ComponentArtifactIdentifier import org.gradle.api.artifacts.component.ProjectComponentIdentifier -import org.gradle.api.plugins.JavaPlugin import org.objectweb.asm.AnnotationVisitor import org.objectweb.asm.ClassVisitor import org.objectweb.asm.FieldVisitor @@ -32,7 +23,6 @@ import org.objectweb.asm.TypePath import org.objectweb.asm.signature.SignatureReader import org.objectweb.asm.signature.SignatureVisitor import org.objectweb.asm.tree.ClassNode -import java.io.File import java.util.concurrent.ConcurrentHashMap import java.util.concurrent.Executors import java.util.concurrent.TimeUnit @@ -40,41 +30,40 @@ import java.util.concurrent.atomic.AtomicInteger class ReferenceAnalyser( private val project: Project, - private val variant: String + private val variant: BaseVariant? ) { - private val upstreamClassSets = project.upstreamArtifacts.associateWith { + private val upstreamClassSets = project.getResolvedArtifactResults(true, variant).associateWith { when (val id = it.id.componentIdentifier) { is ProjectComponentIdentifier -> project.rootProject.project(id.projectPath).classSets - else -> mapOf(DEFAULT_VARIANT to ClassSet.from(it.file, AsmClassFileParser)) + else -> ClassSet.from(it.file, AsmClassFileParser) } } - private val upstreamClassToVariant = upstreamClassSets.values.map { upstream -> - upstream.map { (variant, classSet) -> - classSet.map { klass -> - klass.name to variant - } + /** + * Returns the [ClassSet] of all variants, the key is the variant name + */ + private val Project.classSets: ClassSet + get() = getJars(variant).map { + ClassSet.from(it, AsmClassFileParser) + }.let { + ClassSet.of(it) } - }.flatten().flatten().toMap() fun analyse(): Graph { val executor = Executors.newFixedThreadPool(NCPU) - val graphs = ConcurrentHashMap>() + val graphs = ConcurrentHashMap>() try { - val classes = project.classSets.map { (variant, classSet) -> - classSet.map { - it to variant - } - }.flatten() + val classes = project.classSets val index = AtomicInteger(0) val count = classes.size - classes.map { (klass, variant) -> + + classes.map { klass -> val edge = { to: ReferenceNode -> - graphs.getOrPut(Reference(klass.name, variant)) { + graphs.getOrPut(klass.name) { Graph.Builder() - }.addEdge(ReferenceNode(this.project.name, variant, klass.name), to) + }.addEdge(ReferenceNode(this.project.name, klass.name, variant), to) } val av = AnnotationAnalyser(edge) val sv = SignatureAnalyser(edge) @@ -94,9 +83,7 @@ class ReferenceAnalyser( executor.awaitTermination(1, TimeUnit.MINUTES) } - return graphs.entries.filter { - it.key.variant == variant - }.fold(Graph.Builder()) { acc, (_, builder) -> + return graphs.entries.fold(Graph.Builder()) { acc, (_, builder) -> builder.build().forEach { edge -> acc.addEdge(edge) } @@ -114,19 +101,16 @@ class ReferenceAnalyser( private fun analyse(types: Iterable, edge: (ReferenceNode) -> Graph.Builder) { types.filter { - upstreamClassToVariant.keys.contains(it.internalName) + findReference(it.internalName) != null }.forEach { findReference(it.internalName)?.let { (artifact, _) -> - edge(ReferenceNode(artifact.id.componentIdentifier.displayName, upstreamClassToVariant[it.internalName] - ?: "", it.internalName)) + edge(ReferenceNode(artifact.id.componentIdentifier.displayName, it.internalName, variant)) } } } private fun findReference(owner: String) = upstreamClassSets.entries.find { (_, classSets) -> - classSets.entries.find { (_, classSet) -> - classSet.contains(owner) - } != null + classSets.contains(owner) } @@ -349,61 +333,4 @@ class ReferenceAnalyser( } -private data class Reference(val name: String, val variant: String) - -internal data class Artifact(val id: ComponentArtifactIdentifier, val file: File) - -private val Project.upstreamArtifacts: Set - get() = when { - isAndroid -> { - when (val android = getAndroid()) { - is LibraryExtension -> android.libraryVariants - is AppExtension -> android.applicationVariants - else -> emptyList() - }.asSequence().map(BaseVariant::dependencies).flatten().distinctBy { - it.id.componentIdentifier - }.map { - Artifact(it.id, it.file) - }.toSet() - } - isJavaLibrary -> { - configurations.getByName(JavaPlugin.RUNTIME_CLASSPATH_CONFIGURATION_NAME).resolvedConfiguration.resolvedArtifacts.distinctBy { - it.id.componentIdentifier - }.map { - Artifact(it.id, it.file) - }.toSet() - } - else -> emptySet() - } - -/** - * Returns the [ClassSet] of all variants, the key is the variant name - */ -private val Project.classSets: Map> - get() = when { - isAndroid -> when (val android = getAndroid()) { - is LibraryExtension -> android.libraryVariants.associate { variant -> - variant.name to tasks.named(variant.getTaskName(TASK_CREATE_FULL_JAR)).get().outputs.files.map { - ClassSet.from(it, AsmClassFileParser) - }.let { - ClassSet.of(it) - } - } - is AppExtension -> android.applicationVariants.associate { variant -> - variant.name to variant.javaCompilerTaskProvider.get().outputs.files.map { - ClassSet.from(it, AsmClassFileParser) - }.let { - ClassSet.of(it) - } - } - else -> emptyMap() - } - isJavaLibrary -> { - mapOf(DEFAULT_VARIANT to tasks.named(JavaPlugin.JAR_TASK_NAME).get().outputs.files.map { - ClassSet.from(it, AsmClassFileParser) - }.let { - ClassSet.of(it) - }) - } - else -> emptyMap() - } \ No newline at end of file +typealias ClassName = String \ No newline at end of file diff --git a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/ReferenceAnalysisTask.kt b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/ReferenceAnalysisTask.kt index 19d39b187..63a3b9c38 100644 --- a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/ReferenceAnalysisTask.kt +++ b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/ReferenceAnalysisTask.kt @@ -1,5 +1,6 @@ package com.didiglobal.booster.task.analyser.reference +import com.android.build.gradle.api.BaseVariant import com.didiglobal.booster.graph.Graph import com.didiglobal.booster.graph.dot.DotGraph import com.didiglobal.booster.graph.json.JsonGraphRender @@ -28,7 +29,7 @@ import java.util.concurrent.TimeUnit open class ReferenceAnalysisTask : DefaultTask(), Reporting { @get:Internal - lateinit var variant: String + var variant: BaseVariant? = null @get:Internal val _reports: ReferenceReports by lazy { @@ -101,7 +102,7 @@ open class ReferenceAnalysisTask : DefaultTask(), Reporting { if (!reports.json.isEnabled) return val json = JsonGraphRender.render(graph) { node -> - """{"component": "${node.component}", "variant": "${node.variant}", "class": "${node.klass}"}""" + """{"component": "${node.component}", "variant": "${node.variant?.name ?: DEFAULT_VARIANT}", "class": "${node.klass}"}""" }.toString() reports.json.destination.touch().writeText(json) } diff --git a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/ReferenceAnalysisVariantProcessor.kt b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/ReferenceAnalysisVariantProcessor.kt index f5bfe44f4..ba8593daa 100644 --- a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/ReferenceAnalysisVariantProcessor.kt +++ b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/ReferenceAnalysisVariantProcessor.kt @@ -7,18 +7,16 @@ import com.android.build.gradle.api.BaseVariant import com.android.build.gradle.internal.tasks.factory.dependsOn import com.didiglobal.booster.BOOSTER import com.didiglobal.booster.gradle.getAndroid -import com.didiglobal.booster.gradle.getTaskName +import com.didiglobal.booster.gradle.getJarTaskProviders import com.didiglobal.booster.gradle.isAndroid import com.didiglobal.booster.gradle.isJava import com.didiglobal.booster.gradle.isJavaLibrary -import com.didiglobal.booster.gradle.javaCompilerTaskProvider import com.didiglobal.booster.gradle.project import com.didiglobal.booster.task.analyser.configureReportConvention import com.didiglobal.booster.task.spi.VariantProcessor import com.google.auto.service.AutoService import org.gradle.api.Project import org.gradle.api.UnknownTaskException -import org.gradle.api.plugins.JavaPlugin import org.gradle.api.tasks.TaskProvider @AutoService(VariantProcessor::class) @@ -26,7 +24,9 @@ class ReferenceAnalysisVariantProcessor : VariantProcessor { override fun process(variant: BaseVariant) { variant.project.gradle.projectsEvaluated { gradle -> - val prerequisites = gradle.rootProject.allprojects.map(Project::prerequisites).flatten() + val prerequisites = gradle.rootProject.allprojects.map { project -> + project.getJarTaskProviders(variant) + }.flatten() gradle.rootProject.allprojects { project -> project.setup(prerequisites) } @@ -50,8 +50,8 @@ private fun Project.setupJava(prerequisites: List>) { tasks.register(TASK_ANALYSE_REFERENCE, ReferenceAnalysisTask::class.java) { it.group = BOOSTER it.description = "Analyses class reference for Java projects" - it.variant = DEFAULT_VARIANT - it.configureReportConvention("reference", DEFAULT_VARIANT) + it.variant = null + it.configureReportConvention("reference", null) }.dependsOn(prerequisites) } @@ -64,8 +64,8 @@ private fun Project.setupAndroid(prerequisites: List>) { tasks.register("${TASK_ANALYSE_REFERENCE}${variant.name.capitalize()}", ReferenceAnalysisTask::class.java) { it.group = BOOSTER it.description = "Analyses class reference for ${variant.name}" - it.variant = variant.name - it.configureReportConvention("reference", variant.name) + it.variant = variant + it.configureReportConvention("reference", variant) }.dependsOn(prerequisites) } tasks.register(TASK_ANALYSE_REFERENCE) { @@ -73,21 +73,3 @@ private fun Project.setupAndroid(prerequisites: List>) { it.description = "Analyses class reference" }.dependsOn(subtasks) } - -/** - * Prerequisite tasks for reference analysing - */ -private val Project.prerequisites: List> - get() = when { - isAndroid -> when (val android = getAndroid()) { - is LibraryExtension -> android.libraryVariants.map { v -> - tasks.named(v.getTaskName(TASK_CREATE_FULL_JAR)) - } - is AppExtension -> android.applicationVariants.map { v -> - v.javaCompilerTaskProvider - } - else -> emptyList() - } - isJavaLibrary -> listOf(tasks.named(JavaPlugin.JAR_TASK_NAME)) - else -> emptyList() - } diff --git a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/ReferenceNode.kt b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/ReferenceNode.kt index 12ef0f313..41f509163 100644 --- a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/ReferenceNode.kt +++ b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/ReferenceNode.kt @@ -1,11 +1,16 @@ package com.didiglobal.booster.task.analyser.reference +import com.android.build.gradle.api.BaseVariant import com.didiglobal.booster.graph.GroupedNode -data class ReferenceNode(val component: String, val variant: String, val klass: String) : GroupedNode { +data class ReferenceNode( + val component: String, + val klass: String, + val variant: BaseVariant? = null +) : GroupedNode { private val group: String by lazy { - if (variant == DEFAULT_VARIANT) component else "${component}:${variant}" + if (variant == null) component else "${component}:${variant.name}" } private val symbol: String by lazy { diff --git a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/reporting/ReferencePageRenderer.kt b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/reporting/ReferencePageRenderer.kt index 936f878b2..92c7f6d78 100644 --- a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/reporting/ReferencePageRenderer.kt +++ b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/reporting/ReferencePageRenderer.kt @@ -1,5 +1,6 @@ package com.didiglobal.booster.task.analyser.reference.reporting +import com.android.build.gradle.api.BaseVariant import com.didiglobal.booster.graph.Edge import com.didiglobal.booster.graph.Graph import com.didiglobal.booster.task.analyser.reference.ReferenceNode @@ -12,12 +13,12 @@ import java.net.URL private val URL_STYLE = ReferencePageRenderer::class.java.getResource("/style.css")!! class ReferencePageRenderer( - val project: Project, - val variant: String + private val project: Project, + private val variant: BaseVariant? ) : TabbedPageRenderer>() { private val _title: String by lazy { - "${project.name}:${variant}" + if (variant == null) project.name else "${project.name}:${variant.name}" } override fun getTitle(): String = _title diff --git a/booster-task-graph/build.gradle b/booster-task-graph/build.gradle index 8724fe4d3..5d2ca9637 100644 --- a/booster-task-graph/build.gradle +++ b/booster-task-graph/build.gradle @@ -5,6 +5,7 @@ dependencies { implementation project(':booster-api') implementation project(':booster-graph-dot') implementation project(':booster-command') + implementation 'io.johnsonlee:once:1.2.0' compileOnly 'com.android.tools.build:gradle:4.0.0' compileOnly 'com.android.tools.build:builder:4.0.0' testCompileOnly 'com.android.tools.build:gradle:4.0.0' diff --git a/booster-task-graph/src/main/kotlin/com/didiglobal/booster/task/graph/GraphVariantProcessor.kt b/booster-task-graph/src/main/kotlin/com/didiglobal/booster/task/graph/GraphVariantProcessor.kt new file mode 100644 index 000000000..4decadf4e --- /dev/null +++ b/booster-task-graph/src/main/kotlin/com/didiglobal/booster/task/graph/GraphVariantProcessor.kt @@ -0,0 +1,88 @@ +package com.didiglobal.booster.task.graph + +import com.android.build.gradle.api.BaseVariant +import com.didiglobal.booster.gradle.getResolvedArtifactResults +import com.didiglobal.booster.gradle.getTaskName +import com.didiglobal.booster.gradle.getUpstreamProjects +import com.didiglobal.booster.gradle.project +import com.didiglobal.booster.graph.Edge +import com.didiglobal.booster.graph.Graph +import com.didiglobal.booster.graph.dot.DotGraph +import com.didiglobal.booster.kotlinx.file +import com.didiglobal.booster.task.spi.VariantProcessor +import com.google.auto.service.AutoService +import io.johnsonlee.once.Once +import org.gradle.api.Project +import org.gradle.api.artifacts.component.ProjectComponentIdentifier +import java.util.Stack + +@AutoService(VariantProcessor::class) +class GraphVariantProcessor : VariantProcessor { + + private val once = Once() + + override fun process(variant: BaseVariant) { + val project = variant.project + project.gradle.taskGraph.whenReady { + once { + variant.generateTaskGraph() + } + } + project.tasks.register(variant.getTaskName("generate", "dependencyGraph")) { + it.doFirst { + variant.generateProjectGraph() + } + } + } + +} + +private fun BaseVariant.generateTaskGraph(): Boolean { + val taskNames = project.gradle.startParameter.taskNames + val dot = project.rootProject.buildDir.file(name, "${taskNames.joinToString("-") { it.replace(":", "") }}.dot") + val title = "./gradlew ${taskNames.joinToString(" ")}" + val graph = project.gradle.taskGraph.allTasks.map { task -> + task.taskDependencies.getDependencies(task).map { dep -> + task to dep + } + }.flatten().map { (dep, task) -> + Edge(TaskNode(dep.path), TaskNode(task.path)) + }.fold(Graph.Builder().setTitle(title)) { builder, edge -> + builder.addEdge(edge) + builder + }.build() + + try { + DotGraph.DIGRAPH.visualize(graph, dot) + } catch (e: Exception) { + project.logger.error(e.message) + } + return true +} + +private fun BaseVariant.generateProjectGraph() { + val rootProject = project.rootProject + val graph = Graph.Builder().setTitle(project.toString()) + val stack = Stack().apply { + add(ProjectNode(project.path)) + } + + while (stack.isNotEmpty()) { + val from = stack.pop() + rootProject.project(from.path).getUpstreamProjects(false, this).map { + ProjectNode(it.path) + }.filter { to -> + !graph.hasEdge(from, to) + }.takeIf(List::isNotEmpty)?.forEach { to -> + stack.push(to) + graph.addEdge(from, to) + } + } + + try { + val dot = project.buildDir.file(name, "dependencies.dot") + DotGraph.DIGRAPH.visualize(graph.build(), dot, DotGraph.DotOptions(format = "svg", rankdir = "LR")) + } catch (e: Throwable) { + project.logger.error(e.message) + } +} diff --git a/booster-task-graph/src/main/kotlin/com/didiglobal/booster/task/graph/ProjectNode.kt b/booster-task-graph/src/main/kotlin/com/didiglobal/booster/task/graph/ProjectNode.kt new file mode 100644 index 000000000..e2e6a3e3c --- /dev/null +++ b/booster-task-graph/src/main/kotlin/com/didiglobal/booster/task/graph/ProjectNode.kt @@ -0,0 +1,9 @@ +package com.didiglobal.booster.task.graph + +import com.didiglobal.booster.graph.Node + +data class ProjectNode(val path: String) : Node { + + override fun toPrettyString(): String = path + +} \ No newline at end of file diff --git a/booster-task-graph/src/main/kotlin/com/didiglobal/booster/task/graph/TaskGraphVariantProcessor.kt b/booster-task-graph/src/main/kotlin/com/didiglobal/booster/task/graph/TaskGraphVariantProcessor.kt deleted file mode 100644 index 5d512a62e..000000000 --- a/booster-task-graph/src/main/kotlin/com/didiglobal/booster/task/graph/TaskGraphVariantProcessor.kt +++ /dev/null @@ -1,46 +0,0 @@ -package com.didiglobal.booster.task.graph - -import com.android.build.gradle.api.BaseVariant -import com.didiglobal.booster.gradle.project -import com.didiglobal.booster.graph.Edge -import com.didiglobal.booster.graph.Graph -import com.didiglobal.booster.graph.dot.DotGraph -import com.didiglobal.booster.kotlinx.file -import com.didiglobal.booster.task.spi.VariantProcessor -import com.google.auto.service.AutoService -import java.util.concurrent.atomic.AtomicBoolean - -@AutoService(VariantProcessor::class) -class TaskGraphVariantProcessor : VariantProcessor { - - private var generating = AtomicBoolean(false) - - override fun process(variant: BaseVariant) { - generating.compareAndSet(false, true).takeIf { it } ?: return - - val project = variant.project - - project.gradle.taskGraph.whenReady { - val taskNames = project.gradle.startParameter.taskNames - val dot = project.rootProject.buildDir.file("${taskNames.joinToString("-")}.dot") - val title = "./gradlew ${taskNames.joinToString(" ")}" - val graph = project.gradle.taskGraph.allTasks.map { task -> - task.taskDependencies.getDependencies(task).map { dep -> - task to dep - } - }.flatten().map { (dep, task) -> - Edge(TaskNode(dep.path), TaskNode(task.path)) - }.fold(Graph.Builder().setTitle(title)) { builder, edge -> - builder.addEdge(edge) - builder - }.build() - - try { - DotGraph.DIGRAPH.visualize(graph, dot) - } catch (e: Exception) { - project.logger.error(e.message) - } - } - } - -} \ No newline at end of file From a26b52ab5c9155581835767e39c3575bddc792cf Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Sun, 19 Jun 2022 01:18:48 +0800 Subject: [PATCH 138/187] Sorting the reference analysis result --- .../analyser/reference/ReferenceAnalyser.kt | 4 ++-- .../reference/ReferenceAnalysisTask.kt | 2 +- .../task/analyser/reference/ReferenceNode.kt | 18 ++++++++++++------ .../reporting/ReferencePageRenderer.kt | 5 +++-- 4 files changed, 18 insertions(+), 11 deletions(-) diff --git a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/ReferenceAnalyser.kt b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/ReferenceAnalyser.kt index 687539c22..2847159f4 100644 --- a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/ReferenceAnalyser.kt +++ b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/ReferenceAnalyser.kt @@ -63,7 +63,7 @@ class ReferenceAnalyser( val edge = { to: ReferenceNode -> graphs.getOrPut(klass.name) { Graph.Builder() - }.addEdge(ReferenceNode(this.project.name, klass.name, variant), to) + }.addEdge(ReferenceNode(this.project.name, klass.name), to) } val av = AnnotationAnalyser(edge) val sv = SignatureAnalyser(edge) @@ -104,7 +104,7 @@ class ReferenceAnalyser( findReference(it.internalName) != null }.forEach { findReference(it.internalName)?.let { (artifact, _) -> - edge(ReferenceNode(artifact.id.componentIdentifier.displayName, it.internalName, variant)) + edge(ReferenceNode(artifact.id.componentIdentifier.displayName, it.internalName)) } } } diff --git a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/ReferenceAnalysisTask.kt b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/ReferenceAnalysisTask.kt index 63a3b9c38..b1eae220d 100644 --- a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/ReferenceAnalysisTask.kt +++ b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/ReferenceAnalysisTask.kt @@ -102,7 +102,7 @@ open class ReferenceAnalysisTask : DefaultTask(), Reporting { if (!reports.json.isEnabled) return val json = JsonGraphRender.render(graph) { node -> - """{"component": "${node.component}", "variant": "${node.variant?.name ?: DEFAULT_VARIANT}", "class": "${node.klass}"}""" + """{"component": "${node.component}", "class": "${node.klass}"}""" }.toString() reports.json.destination.touch().writeText(json) } diff --git a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/ReferenceNode.kt b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/ReferenceNode.kt index 41f509163..37d38c22a 100644 --- a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/ReferenceNode.kt +++ b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/ReferenceNode.kt @@ -1,23 +1,29 @@ package com.didiglobal.booster.task.analyser.reference -import com.android.build.gradle.api.BaseVariant import com.didiglobal.booster.graph.GroupedNode data class ReferenceNode( val component: String, - val klass: String, - val variant: BaseVariant? = null + val klass: String ) : GroupedNode { - private val group: String by lazy { - if (variant == null) component else "${component}:${variant.name}" + companion object { + val COMPONENT_COMPARATOR = Comparator { a, b -> + val ap = a.startsWith("project ") + val bp = b.startsWith("project ") + when { + (ap && bp) || (!ap && !bp) -> a.compareTo(b) + ap -> -1 + else -> 1 + } + } } private val symbol: String by lazy { klass.replace('/', '.') } - override val groupBy: () -> String = ::group + override val groupBy: () -> String = ::component override fun toPrettyString() = symbol diff --git a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/reporting/ReferencePageRenderer.kt b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/reporting/ReferencePageRenderer.kt index 92c7f6d78..63565c3dc 100644 --- a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/reporting/ReferencePageRenderer.kt +++ b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/reporting/ReferencePageRenderer.kt @@ -9,6 +9,7 @@ import org.gradle.internal.html.SimpleHtmlWriter import org.gradle.reporting.ReportRenderer import org.gradle.reporting.TabbedPageRenderer import java.net.URL +import java.util.TreeMap private val URL_STYLE = ReferencePageRenderer::class.java.getResource("/style.css")!! @@ -34,8 +35,8 @@ class ReferencePageRenderer( output.run { model.groupBy { it.to.groupBy() - }.map { (group, edges) -> - group to edges.mapTo(mutableSetOf(), Edge::to) + }.toSortedMap(ReferenceNode.COMPONENT_COMPARATOR).map { (group, edges) -> + group to edges.mapTo(sortedSetOf(compareBy(ReferenceNode::klass)), Edge::to) }.forEach { (title, items) -> startElement("h2").characters(title).endElement() startElement("ul") From a83d7c2e329e246b69eaddfe0b3556bd1573d555 Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Mon, 27 Jun 2022 00:15:53 +0800 Subject: [PATCH 139/187] Fix transform timing issue --- .../didiglobal/booster/transform/asm/AsmTransformer.kt | 9 ++++++--- .../booster/transform/javassist/JavassistTransformer.kt | 9 ++++++--- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/booster-transform-asm/src/main/kotlin/com/didiglobal/booster/transform/asm/AsmTransformer.kt b/booster-transform-asm/src/main/kotlin/com/didiglobal/booster/transform/asm/AsmTransformer.kt index dfe073ebf..1beaca5b4 100644 --- a/booster-transform-asm/src/main/kotlin/com/didiglobal/booster/transform/asm/AsmTransformer.kt +++ b/booster-transform-asm/src/main/kotlin/com/didiglobal/booster/transform/asm/AsmTransformer.kt @@ -13,6 +13,7 @@ import java.io.File import java.io.InputStream import java.lang.management.ManagementFactory import java.lang.management.ThreadMXBean +import java.time.Duration import java.util.ServiceLoader import java.util.jar.JarFile @@ -26,7 +27,7 @@ class AsmTransformer : Transformer { private val threadMxBean = ManagementFactory.getThreadMXBean() - private val durations = mutableMapOf() + private val durations = mutableMapOf() private val classLoader: ClassLoader @@ -87,7 +88,7 @@ class AsmTransformer : Transformer { it.javaClass.name.length }.max() ?: 20 this.durations.forEach { (transformer, ns) -> - println("${transformer.javaClass.name.padEnd(w1 + 1)}: ${ns / 1000000} ms") + println("${transformer.javaClass.name.padEnd(w1 + 1)}: ${ns.toMillis()} ms") } } @@ -95,7 +96,9 @@ class AsmTransformer : Transformer { val ct0 = this.currentThreadCpuTime val result = action() val ct1 = this.currentThreadCpuTime - durations[transformer] = durations.getOrDefault(transformer, 0) + (ct1 - ct0) + durations[transformer] = durations.getOrPut(transformer) { + Duration.ofNanos(0) + } + Duration.ofNanos(ct1 - ct0) return result } diff --git a/booster-transform-javassist/src/main/kotlin/com/didiglobal/booster/transform/javassist/JavassistTransformer.kt b/booster-transform-javassist/src/main/kotlin/com/didiglobal/booster/transform/javassist/JavassistTransformer.kt index 9dafffcb5..3b9c5263f 100644 --- a/booster-transform-javassist/src/main/kotlin/com/didiglobal/booster/transform/javassist/JavassistTransformer.kt +++ b/booster-transform-javassist/src/main/kotlin/com/didiglobal/booster/transform/javassist/JavassistTransformer.kt @@ -12,6 +12,7 @@ import java.io.DataOutputStream import java.io.File import java.lang.management.ManagementFactory import java.lang.management.ThreadMXBean +import java.time.Duration import java.util.ServiceLoader /** @@ -26,7 +27,7 @@ class JavassistTransformer : Transformer { private val threadMxBean = ManagementFactory.getThreadMXBean() - private val durations = mutableMapOf() + private val durations = mutableMapOf() private val classLoader: ClassLoader @@ -92,7 +93,7 @@ class JavassistTransformer : Transformer { it.javaClass.name.length }.max() ?: 20 this.durations.forEach { (transformer, ns) -> - println("${transformer.javaClass.name.padEnd(w1 + 1)}: ${ns / 1000000} ms") + println("${transformer.javaClass.name.padEnd(w1 + 1)}: ${ns.toMillis()} ms") } } @@ -100,7 +101,9 @@ class JavassistTransformer : Transformer { val ct0 = this.currentThreadCpuTime val result = action() val ct1 = this.currentThreadCpuTime - durations[transformer] = durations.getOrDefault(transformer, 0) + (ct1 - ct0) + durations[transformer] = durations.getOrPut(transformer) { + Duration.ofNanos(0) + } + Duration.ofNanos(ct1 - ct0) return result } From d103e8ec599a2ec6ec117dc1113ea849ce7e9d15 Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Mon, 20 Jun 2022 23:59:03 +0800 Subject: [PATCH 140/187] Add `booster-cha-asm` to support ASM based CHA --- booster-cha-asm/README.md | 3 + booster-cha-asm/build.gradle | 8 + booster-cha-asm/packages-zh-CN.md | 3 + .../booster/cha/asm}/AsmClassFileParser.kt | 18 +- .../didiglobal/booster/cha/asm/AsmClassSet.kt | 9 + .../booster/cha/asm/ProgressListener.kt | 6 + .../didiglobal/booster/cha/asm/Reference.kt | 4 +- .../booster/cha/asm}/ReferenceAnalyser.kt | 223 ++++++++++-------- .../booster/cha/ClassHierarchyTest.kt | 38 +++ booster-cha/build.gradle | 1 + .../booster/cha/AbstractClassSet.kt | 9 +- .../booster/cha/ArchivedClassSet.kt | 50 ++-- .../didiglobal/booster/cha/ClassFileParser.kt | 12 + .../didiglobal/booster/cha/ClassHierarchy.kt | 89 +++++-- .../com/didiglobal/booster/cha/ClassSet.kt | 14 +- .../booster/cha/CompositeClassSet.kt | 150 ++++++++---- .../booster/cha/DirectoryClassSet.kt | 73 ++++-- .../didiglobal/booster/cha/EmptyClassSet.kt | 11 +- .../didiglobal/booster/cha/graph/ClassNode.kt | 11 + .../com/didiglobal/booster/graph/Graph.kt | 11 +- .../com/didiglobal/booster/graph/Node.kt | 2 + booster-task-analyser/build.gradle | 2 +- .../performance/PerformanceAnalyser.kt | 16 +- .../task/analyser/reference/Constants.kt | 2 - .../reference/ReferenceAnalysisTask.kt | 38 ++- .../ReferenceAnalysisVariantProcessor.kt | 37 ++- .../reporting/ReferencePageRenderer.kt | 17 +- build.gradle | 6 + settings.gradle | 1 + 29 files changed, 588 insertions(+), 276 deletions(-) create mode 100644 booster-cha-asm/README.md create mode 100644 booster-cha-asm/build.gradle create mode 100644 booster-cha-asm/packages-zh-CN.md rename {booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser => booster-cha-asm/src/main/kotlin/com/didiglobal/booster/cha/asm}/AsmClassFileParser.kt (63%) create mode 100644 booster-cha-asm/src/main/kotlin/com/didiglobal/booster/cha/asm/AsmClassSet.kt create mode 100644 booster-cha-asm/src/main/kotlin/com/didiglobal/booster/cha/asm/ProgressListener.kt rename booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/ReferenceNode.kt => booster-cha-asm/src/main/kotlin/com/didiglobal/booster/cha/asm/Reference.kt (88%) rename {booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference => booster-cha-asm/src/main/kotlin/com/didiglobal/booster/cha/asm}/ReferenceAnalyser.kt (57%) create mode 100644 booster-cha-asm/src/test/kotlin/com/didiglobal/booster/cha/ClassHierarchyTest.kt create mode 100644 booster-cha/src/main/kotlin/com/didiglobal/booster/cha/graph/ClassNode.kt diff --git a/booster-cha-asm/README.md b/booster-cha-asm/README.md new file mode 100644 index 000000000..0781fae71 --- /dev/null +++ b/booster-cha-asm/README.md @@ -0,0 +1,3 @@ +# booster-cha-asm + +This module provides ASM based CHA (class hierarchy analysis) implementation diff --git a/booster-cha-asm/build.gradle b/booster-cha-asm/build.gradle new file mode 100644 index 000000000..0c70ca427 --- /dev/null +++ b/booster-cha-asm/build.gradle @@ -0,0 +1,8 @@ +apply from: "$rootDir/gradle/booster.gradle" + +dependencies { + api project(':booster-cha') + api 'org.ow2.asm:asm:7.1' + api 'org.ow2.asm:asm-tree:7.1' + testImplementation project(':booster-transform-asm') +} diff --git a/booster-cha-asm/packages-zh-CN.md b/booster-cha-asm/packages-zh-CN.md new file mode 100644 index 000000000..b03137bdb --- /dev/null +++ b/booster-cha-asm/packages-zh-CN.md @@ -0,0 +1,3 @@ +# Package com.didiglobal.booster.cha.asm + +提供了基于 ASM 的类继承分析 diff --git a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/AsmClassFileParser.kt b/booster-cha-asm/src/main/kotlin/com/didiglobal/booster/cha/asm/AsmClassFileParser.kt similarity index 63% rename from booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/AsmClassFileParser.kt rename to booster-cha-asm/src/main/kotlin/com/didiglobal/booster/cha/asm/AsmClassFileParser.kt index 87d228ad5..a703d70c0 100644 --- a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/AsmClassFileParser.kt +++ b/booster-cha-asm/src/main/kotlin/com/didiglobal/booster/cha/asm/AsmClassFileParser.kt @@ -1,22 +1,22 @@ -package com.didiglobal.booster.task.analyser +package com.didiglobal.booster.cha.asm import com.didiglobal.booster.cha.ClassFileParser -import com.didiglobal.booster.transform.asm.asClassNode +import org.objectweb.asm.ClassReader import org.objectweb.asm.tree.ClassNode import java.io.InputStream -internal object AsmClassFileParser : ClassFileParser { +object AsmClassFileParser : ClassFileParser { - override fun parse(input: InputStream): ClassNode { - return input.asClassNode() + override fun parse(input: InputStream): ClassNode = ClassNode().also { klass -> + ClassReader(input.readBytes()).accept(klass, 0) } - override fun getClassName(classNode: ClassNode): String = classNode.name - - override fun getSuperName(classNode: ClassNode): String? = classNode.superName + override fun getAccessFlags(classNode: ClassNode): Int = classNode.access override fun getInterfaces(classNode: ClassNode): Array = classNode.interfaces.toTypedArray() - override fun getAccessFlags(classNode: ClassNode): Int = classNode.access + override fun getSuperName(classNode: ClassNode): String? = classNode.superName + + override fun getClassName(classNode: ClassNode): String = classNode.name } \ No newline at end of file diff --git a/booster-cha-asm/src/main/kotlin/com/didiglobal/booster/cha/asm/AsmClassSet.kt b/booster-cha-asm/src/main/kotlin/com/didiglobal/booster/cha/asm/AsmClassSet.kt new file mode 100644 index 000000000..d8c654eb2 --- /dev/null +++ b/booster-cha-asm/src/main/kotlin/com/didiglobal/booster/cha/asm/AsmClassSet.kt @@ -0,0 +1,9 @@ +package com.didiglobal.booster.cha.asm + +import com.didiglobal.booster.cha.ClassSet +import org.objectweb.asm.tree.ClassNode +import java.io.File + +typealias AsmClassSet = ClassSet + +fun ClassSet.Companion.from(file: File) = from(file, AsmClassFileParser) \ No newline at end of file diff --git a/booster-cha-asm/src/main/kotlin/com/didiglobal/booster/cha/asm/ProgressListener.kt b/booster-cha-asm/src/main/kotlin/com/didiglobal/booster/cha/asm/ProgressListener.kt new file mode 100644 index 000000000..64b2f37ee --- /dev/null +++ b/booster-cha-asm/src/main/kotlin/com/didiglobal/booster/cha/asm/ProgressListener.kt @@ -0,0 +1,6 @@ +package com.didiglobal.booster.cha.asm + +import org.objectweb.asm.tree.ClassNode +import java.time.Duration + +typealias ProgressListener = (ClassNode, Float, Duration) -> Unit diff --git a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/ReferenceNode.kt b/booster-cha-asm/src/main/kotlin/com/didiglobal/booster/cha/asm/Reference.kt similarity index 88% rename from booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/ReferenceNode.kt rename to booster-cha-asm/src/main/kotlin/com/didiglobal/booster/cha/asm/Reference.kt index 37d38c22a..313ec7470 100644 --- a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/ReferenceNode.kt +++ b/booster-cha-asm/src/main/kotlin/com/didiglobal/booster/cha/asm/Reference.kt @@ -1,8 +1,8 @@ -package com.didiglobal.booster.task.analyser.reference +package com.didiglobal.booster.cha.asm import com.didiglobal.booster.graph.GroupedNode -data class ReferenceNode( +data class Reference( val component: String, val klass: String ) : GroupedNode { diff --git a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/ReferenceAnalyser.kt b/booster-cha-asm/src/main/kotlin/com/didiglobal/booster/cha/asm/ReferenceAnalyser.kt similarity index 57% rename from booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/ReferenceAnalyser.kt rename to booster-cha-asm/src/main/kotlin/com/didiglobal/booster/cha/asm/ReferenceAnalyser.kt index 2847159f4..9876a7097 100644 --- a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/ReferenceAnalyser.kt +++ b/booster-cha-asm/src/main/kotlin/com/didiglobal/booster/cha/asm/ReferenceAnalyser.kt @@ -1,16 +1,7 @@ -package com.didiglobal.booster.task.analyser.reference +package com.didiglobal.booster.cha.asm -import com.android.build.gradle.api.BaseVariant -import com.didiglobal.booster.cha.ClassSet -import com.didiglobal.booster.gradle.getJars -import com.didiglobal.booster.gradle.getResolvedArtifactResults import com.didiglobal.booster.graph.Graph import com.didiglobal.booster.kotlinx.NCPU -import com.didiglobal.booster.kotlinx.green -import com.didiglobal.booster.kotlinx.yellow -import com.didiglobal.booster.task.analyser.AsmClassFileParser -import org.gradle.api.Project -import org.gradle.api.artifacts.component.ProjectComponentIdentifier import org.objectweb.asm.AnnotationVisitor import org.objectweb.asm.ClassVisitor import org.objectweb.asm.FieldVisitor @@ -23,67 +14,91 @@ import org.objectweb.asm.TypePath import org.objectweb.asm.signature.SignatureReader import org.objectweb.asm.signature.SignatureVisitor import org.objectweb.asm.tree.ClassNode +import java.lang.management.ManagementFactory +import java.time.Duration import java.util.concurrent.ConcurrentHashMap import java.util.concurrent.Executors import java.util.concurrent.TimeUnit import java.util.concurrent.atomic.AtomicInteger -class ReferenceAnalyser( - private val project: Project, - private val variant: BaseVariant? -) { +/** + * Analyser for class reference analysing + */ +class ReferenceAnalyser(private val asm: Int = Opcodes.ASM7) { - private val upstreamClassSets = project.getResolvedArtifactResults(true, variant).associateWith { - when (val id = it.id.componentIdentifier) { - is ProjectComponentIdentifier -> project.rootProject.project(id.projectPath).classSets - else -> ClassSet.from(it.file, AsmClassFileParser) - } - } + private val threadMxBean = ManagementFactory.getThreadMXBean() /** - * Returns the [ClassSet] of all variants, the key is the variant name + * Analyse the references from [origin] to [upstream] + * + * @param origin The origin classSet with component identifier + * @param upstream The upstream classSets with component identifiers + * @return the reference graph */ - private val Project.classSets: ClassSet - get() = getJars(variant).map { - ClassSet.from(it, AsmClassFileParser) - }.let { - ClassSet.of(it) - } + @JvmOverloads + fun analyse( + origin: Pair, + vararg upstream: Pair, + onProgressUpdate: ProgressListener? = null + ): Graph = analyse(origin, upstream.toMap(), onProgressUpdate) + + /** + * Analyse the references from [origin] to [upstream] + * + * @param origin The origin classSet with component identifier + * @param upstream The upstream classSets with component identifiers + * @return the reference graph + */ + @JvmOverloads + fun analyse( + origin: Pair, + upstream: Iterable>, + onProgressUpdate: ProgressListener? = null + ): Graph = analyse(origin, upstream.toMap(), onProgressUpdate) - fun analyse(): Graph { + /** + * Analyse the references from [origin] to [upstream] + * + * @param origin The origin classSet with component identifier + * @param upstream The upstream classSets with component identifiers + * @return the reference graph + */ + @JvmOverloads + fun analyse( + origin: Pair, + upstream: Map, + onProgressUpdate: ProgressListener? = null + ): Graph { val executor = Executors.newFixedThreadPool(NCPU) - val graphs = ConcurrentHashMap>() + val graphs = ConcurrentHashMap>() + val (identifier, classes) = origin try { - val classes = project.classSets val index = AtomicInteger(0) val count = classes.size classes.map { klass -> - val edge = { to: ReferenceNode -> + val edge = { to: Reference -> graphs.getOrPut(klass.name) { Graph.Builder() - }.addEdge(ReferenceNode(this.project.name, klass.name), to) + }.addEdge(Reference(identifier, klass.name), to) } - val av = AnnotationAnalyser(edge) - val sv = SignatureAnalyser(edge) - val fv = FieldAnalyser(av, edge) - val mv = MethodAnalyser(av, sv, edge) - executor.submit> { - val t0 = System.currentTimeMillis() - klass.accept(ClassAnalyser(klass, av, fv, mv, sv, edge)) - klass to (System.currentTimeMillis() - t0) + executor.submit> { + val t0 = threadMxBean.currentThreadCpuTime + analyse(klass, upstream, edge) + val t1 = threadMxBean.currentThreadCpuTime + klass to (Duration.ofNanos(t1 - t0)) } }.forEach { val (klass, duration) = it.get() - println("${green(String.format("%3d%%", index.incrementAndGet() * 100 / count))} Analyse class ${klass.name} in ${yellow(duration)} ms") + onProgressUpdate?.invoke(klass, index.incrementAndGet().toFloat() / count, duration) } } finally { executor.shutdown() executor.awaitTermination(1, TimeUnit.MINUTES) } - return graphs.entries.fold(Graph.Builder()) { acc, (_, builder) -> + return graphs.entries.fold(Graph.Builder()) { acc, (_, builder) -> builder.build().forEach { edge -> acc.addEdge(edge) } @@ -91,74 +106,78 @@ class ReferenceAnalyser( }.build() } - private fun analyse(type: Type, edge: (ReferenceNode) -> Graph.Builder) { - analyse(listOf(type), edge) + /** + * Analyse the specific [klass] to find out the referenced classes + */ + fun analyse(klass: ClassNode): Set { + val types = mutableSetOf() + val av = AnnotationAnalyser(types) + val sv = SignatureAnalyser(types) + val fv = FieldAnalyser(av, types) + val mv = MethodAnalyser(av, sv, types) + klass.accept(ClassAnalyser(klass, av, fv, mv, sv, types)) + return types } - private fun analyse(types: Array, edge: (ReferenceNode) -> Graph.Builder) { - analyse(types.toList(), edge) + private fun Map.findReference(owner: String): Map.Entry? { + return entries.find { (_, classes) -> + classes.contains(owner) + } } - private fun analyse(types: Iterable, edge: (ReferenceNode) -> Graph.Builder) { - types.filter { - findReference(it.internalName) != null - }.forEach { - findReference(it.internalName)?.let { (artifact, _) -> - edge(ReferenceNode(artifact.id.componentIdentifier.displayName, it.internalName)) + private fun analyse(klass: ClassNode, upstream: Map, edge: (Reference) -> Graph.Builder) { + analyse(klass).forEach { + upstream.findReference(it.internalName)?.let { (identifier, _) -> + edge(Reference(identifier, it.internalName)) } } } - private fun findReference(owner: String) = upstreamClassSets.entries.find { (_, classSets) -> - classSets.contains(owner) - } - - private inner class ClassAnalyser( cv: ClassVisitor, private val av: AnnotationVisitor, private val fv: FieldVisitor, private val mv: MethodVisitor, private val sv: SignatureVisitor, - private val edge: (ReferenceNode) -> Graph.Builder - ) : ClassVisitor(Opcodes.ASM7, cv) { + private val types: MutableSet + ) : ClassVisitor(asm, cv) { override fun visit(version: Int, access: Int, name: String?, signature: String?, superName: String?, interfaces: Array?) { superName?.let { - analyse(Type.getObjectType(it), edge) + types += Type.getObjectType(it) } interfaces?.forEach { - analyse(Type.getObjectType(it), edge) + types += Type.getObjectType(it) } signature?.let(::SignatureReader)?.accept(sv) super.visit(version, access, name, signature, superName, interfaces) } override fun visitAnnotation(descriptor: String, visible: Boolean): AnnotationVisitor { - analyse(Type.getType(descriptor), edge) + types += Type.getType(descriptor) return av } override fun visitTypeAnnotation(typeRef: Int, typePath: TypePath, descriptor: String, visible: Boolean): AnnotationVisitor { - analyse(Type.getType(descriptor), edge) + types += Type.getType(descriptor) return av } override fun visitField(access: Int, name: String, descriptor: String, signature: String?, value: Any?): FieldVisitor { - analyse(Type.getType(descriptor), edge) + types += Type.getType(descriptor) if (value is Type) { - analyse(value, edge) + types += value } signature?.let(::SignatureReader)?.acceptType(sv) return fv } override fun visitMethod(access: Int, name: String?, descriptor: String, signature: String?, exceptions: Array?): MethodVisitor { - analyse(Type.getArgumentTypes(descriptor), edge) - analyse(Type.getReturnType(descriptor), edge) + types += Type.getArgumentTypes(descriptor) + types += Type.getReturnType(descriptor) signature?.let(::SignatureReader)?.accept(sv) exceptions?.forEach { - analyse(Type.getObjectType(it), edge) + types += Type.getObjectType(it) } return mv } @@ -166,24 +185,24 @@ class ReferenceAnalyser( } private inner class AnnotationAnalyser( - private val edge: (ReferenceNode) -> Graph.Builder - ) : AnnotationVisitor(Opcodes.ASM7) { + private val types: MutableSet + ) : AnnotationVisitor(asm) { override fun visit(name: String?, value: Any?) { if (value is Type) { - analyse(value, edge) + types += value } } override fun visitEnum(name: String?, descriptor: String?, value: String?) { descriptor?.let { - analyse(Type.getType(it), edge) + types += Type.getType(it) } } override fun visitAnnotation(name: String?, descriptor: String?): AnnotationVisitor { descriptor?.let { - analyse(Type.getType(it), edge) + types += Type.getType(it) } return this } @@ -193,19 +212,19 @@ class ReferenceAnalyser( private inner class FieldAnalyser( private val av: AnnotationVisitor, - private val edge: (ReferenceNode) -> Graph.Builder - ) : FieldVisitor(Opcodes.ASM7) { + private val types: MutableSet + ) : FieldVisitor(asm) { override fun visitAnnotation(descriptor: String?, visible: Boolean): AnnotationVisitor { descriptor?.let { - analyse(Type.getType(it), edge) + types += Type.getType(it) } return av } override fun visitTypeAnnotation(typeRef: Int, typePath: TypePath?, descriptor: String?, visible: Boolean): AnnotationVisitor { descriptor?.let { - analyse(Type.getType(it), edge) + types += Type.getType(it) } return av } @@ -215,122 +234,120 @@ class ReferenceAnalyser( private inner class MethodAnalyser( private val av: AnnotationVisitor, private val sv: SignatureAnalyser, - private val edge: (ReferenceNode) -> Graph.Builder - ) : MethodVisitor(Opcodes.ASM7) { + private val types: MutableSet + ) : MethodVisitor(asm) { override fun visitAnnotationDefault(): AnnotationVisitor = av override fun visitAnnotation(descriptor: String?, visible: Boolean): AnnotationVisitor { descriptor?.let { - analyse(Type.getType(it), edge) + types += Type.getType(it) } return av } override fun visitTypeAnnotation(typeRef: Int, typePath: TypePath?, descriptor: String?, visible: Boolean): AnnotationVisitor { descriptor?.let { - analyse(Type.getType(it), edge) + types += Type.getType(it) } return av } override fun visitParameterAnnotation(parameter: Int, descriptor: String?, visible: Boolean): AnnotationVisitor { descriptor?.let { - analyse(Type.getType(it), edge) + types += Type.getType(it) } return av } override fun visitTypeInsn(opcode: Int, type: String?) { type?.let { - analyse(Type.getObjectType(it), edge) + types += Type.getObjectType(it) } } override fun visitFieldInsn(opcode: Int, owner: String?, name: String?, descriptor: String?) { owner?.let { - analyse(Type.getObjectType(it), edge) + types += Type.getObjectType(it) } descriptor?.let { - analyse(Type.getType(it), edge) + types += Type.getType(it) } } override fun visitMethodInsn(opcode: Int, owner: String?, name: String?, descriptor: String?, isInterface: Boolean) { owner?.let { - analyse(Type.getObjectType(it), edge) + types += Type.getObjectType(it) } descriptor?.let { - analyse(Type.getReturnType(it), edge) - analyse(Type.getArgumentTypes(it), edge) + types += Type.getReturnType(it) + types += Type.getArgumentTypes(it) } } override fun visitInvokeDynamicInsn(name: String?, descriptor: String?, bootstrapMethodHandle: Handle?, vararg bootstrapMethodArguments: Any?) { descriptor?.let { - analyse(Type.getReturnType(it), edge) - analyse(Type.getArgumentTypes(it), edge) + types += Type.getReturnType(it) + types += Type.getArgumentTypes(it) } } override fun visitLdcInsn(value: Any?) { if (value is Type) { - analyse(value, edge) + types += value } } override fun visitMultiANewArrayInsn(descriptor: String?, numDimensions: Int) { descriptor?.let { - analyse(Type.getType(it), edge) + types += Type.getType(it) } } override fun visitInsnAnnotation(typeRef: Int, typePath: TypePath?, descriptor: String?, visible: Boolean): AnnotationVisitor { descriptor?.let { - analyse(Type.getType(it), edge) + types += Type.getType(it) } return av } override fun visitTryCatchBlock(start: Label?, end: Label?, handler: Label?, type: String?) { type?.let { - analyse(Type.getObjectType(it), edge) + types += Type.getObjectType(it) } } override fun visitTryCatchAnnotation(typeRef: Int, typePath: TypePath?, descriptor: String?, visible: Boolean): AnnotationVisitor { descriptor?.let { - analyse(Type.getType(it), edge) + types += Type.getType(it) } return av } override fun visitLocalVariable(name: String?, descriptor: String?, signature: String?, start: Label?, end: Label?, index: Int) { descriptor?.let { - analyse(Type.getType(it), edge) + types += Type.getType(it) } signature?.let(::SignatureReader)?.acceptType(sv) } override fun visitLocalVariableAnnotation(typeRef: Int, typePath: TypePath?, start: Array?, end: Array?, index: IntArray?, descriptor: String?, visible: Boolean): AnnotationVisitor { descriptor?.let { - analyse(Type.getType(it), edge) + types += Type.getType(it) } return av } } private inner class SignatureAnalyser( - private val edge: (ReferenceNode) -> Graph.Builder - ) : SignatureVisitor(Opcodes.ASM7) { + private val types: MutableSet + ) : SignatureVisitor(asm) { override fun visitClassType(name: String) { - analyse(Type.getObjectType(name), edge) + types += Type.getObjectType(name) super.visitClassType(name) } } -} - -typealias ClassName = String \ No newline at end of file +} \ No newline at end of file diff --git a/booster-cha-asm/src/test/kotlin/com/didiglobal/booster/cha/ClassHierarchyTest.kt b/booster-cha-asm/src/test/kotlin/com/didiglobal/booster/cha/ClassHierarchyTest.kt new file mode 100644 index 000000000..ba9b247a2 --- /dev/null +++ b/booster-cha-asm/src/test/kotlin/com/didiglobal/booster/cha/ClassHierarchyTest.kt @@ -0,0 +1,38 @@ +package com.didiglobal.booster.cha + +import com.didiglobal.booster.build.AndroidSdk +import com.didiglobal.booster.cha.asm.from +import java.time.Duration +import kotlin.test.Test +import kotlin.test.assertNotNull +import kotlin.test.assertTrue + +class ClassHierarchyTest { + + @Test + fun `lookup children class of Context`() { + val androidSdk = ClassSet.from(AndroidSdk.getAndroidJar()) + + // build class hierarchy + val t1 = System.nanoTime() + val hierarchy = ClassHierarchy(androidSdk) + println("t1: ${Duration.ofNanos(System.nanoTime() - t1).toMillis()} ms") + + // acquire subtypes of Context + val t2 = System.nanoTime() + val childrenOfContext = hierarchy.getDerivedTypes("android/content/Context") + println("t2 : ${Duration.ofNanos(System.nanoTime() - t2).toMillis()} ms") + assertNotNull(childrenOfContext) + assertTrue("Children of android/content/Context not found") { + childrenOfContext.isNotEmpty() + } + println(childrenOfContext.joinToString(", ") { it.name }) + + // acquire subtypes of Context + val t3 = System.nanoTime() + val childrenOfThread = hierarchy.getDerivedTypes("java/lang/Thread") + println("t3 : ${Duration.ofNanos(System.nanoTime() - t3).toMillis()} ms") + println(childrenOfThread.joinToString(", ") { it.name }) + } + +} \ No newline at end of file diff --git a/booster-cha/build.gradle b/booster-cha/build.gradle index fdf668472..89036d2fd 100644 --- a/booster-cha/build.gradle +++ b/booster-cha/build.gradle @@ -4,5 +4,6 @@ dependencies { api project(':booster-command') api project(':booster-graph') api project(':booster-transform-util') + implementation 'io.johnsonlee:once:1.2.0' testImplementation project(':booster-transform-asm') } diff --git a/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/AbstractClassSet.kt b/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/AbstractClassSet.kt index 9b91b183f..f2bf9d835 100644 --- a/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/AbstractClassSet.kt +++ b/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/AbstractClassSet.kt @@ -3,13 +3,10 @@ package com.didiglobal.booster.cha /** * @author johnsonlee */ -abstract class AbstractClassSet> : ClassSet { +abstract class AbstractClassSet : ClassSet + where ClassParser : ClassFileParser { - override fun contains(element: ClassFile) = contains(parser.getClassName(element)) - - override fun containsAll(elements: Collection) = elements.all { - contains(parser.getClassName(it)) - } + override fun containsAll(elements: Collection) = elements.all(::contains) override fun load() = this diff --git a/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/ArchivedClassSet.kt b/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/ArchivedClassSet.kt index f49ea8b0a..2adcaa175 100644 --- a/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/ArchivedClassSet.kt +++ b/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/ArchivedClassSet.kt @@ -1,25 +1,35 @@ package com.didiglobal.booster.cha import com.didiglobal.booster.kotlinx.green +import com.didiglobal.booster.kotlinx.yellow +import io.johnsonlee.once.Once import java.io.File import java.io.FileInputStream import java.io.FileNotFoundException +import java.net.URL +import java.time.Duration import java.util.zip.ZipInputStream /** * @author johnsonlee */ internal class ArchivedClassSet>( - val location: File, - override val parser: ClassParser -) : AbstractClassSet() { + private val location: File, + parser: ClassParser +) : AbstractClassSet(), ClassFileParser by parser { + + private val once = Once>() private val classes: Map by lazy { - ZipInputStream(FileInputStream(location)).use { zip -> + ZipInputStream(FileInputStream(location).buffered()).use { zip -> loadClasses(zip).associateByTo(mutableMapOf(), parser::getClassName) } } + private val snapshot: Set by lazy { + classes.values.toSet() + } + constructor(location: String, parser: ClassParser) : this(File(location).takeIf { it.exists() } ?: throw FileNotFoundException(location), parser) @@ -29,7 +39,7 @@ internal class ArchivedClassSet listOf(parser.parse(zip)) + entry.name.endsWith(".class", true) -> listOf(parse(zip)) entry.name == "classes.jar" -> loadClasses(ZipInputStream(zip)) else -> emptyList() } @@ -37,24 +47,34 @@ internal class ArchivedClassSet by lazy { + listOf(location.toURI().toURL()) + } + + override fun get(name: String) = load().classes[name] - override fun contains(name: String) = this.classes.containsKey(name) + override fun contains(name: String) = load().classes.containsKey(name) - override val size: Int - get() = this.classes.size + override fun contains(element: ClassFile): Boolean = load().snapshot.contains(element) - override fun isEmpty() = this.size <= 0 + override fun isEmpty() = size <= 0 - override fun load(): ArchivedClassSet { - println("Load ${green(this.classes.size)} classes from $location") - return this + override fun load(): ArchivedClassSet = once { + val t0 = System.nanoTime() + val size = classes.size + val t1 = System.nanoTime() + println("Load ${green(size)} classes from $location in ${yellow(Duration.ofNanos(t1 - t0).toMillis())} ms") + this } - override fun iterator(): Iterator = this.classes.values.iterator() + override fun iterator(): Iterator = load().classes.values.iterator() override fun close() = Unit - override fun toString(): String = this.location.canonicalPath + override fun toString(): String = location.canonicalPath } \ No newline at end of file diff --git a/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/ClassFileParser.kt b/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/ClassFileParser.kt index 2475c4d28..9add4fa31 100644 --- a/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/ClassFileParser.kt +++ b/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/ClassFileParser.kt @@ -22,4 +22,16 @@ interface ClassFileParser { fun isFinal(classNode: ClassNode): Boolean = Modifier.isFinal(getAccessFlags(classNode)) + fun isAbstract(classNode: ClassNode): Boolean = Modifier.isAbstract(getAccessFlags(classNode)) + + fun isPublic(classNode: ClassNode): Boolean = Modifier.isPublic(getAccessFlags(classNode)) + + fun isProtected(classNode: ClassNode): Boolean = Modifier.isProtected(getAccessFlags(classNode)) + + fun isPrivate(classNode: ClassNode): Boolean = Modifier.isPrivate(getAccessFlags(classNode)) + + fun isStatic(classNode: ClassNode): Boolean = Modifier.isStatic(getAccessFlags(classNode)) + + fun isStrict(classNode: ClassNode): Boolean = Modifier.isStrict(getAccessFlags(classNode)) + } \ No newline at end of file diff --git a/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/ClassHierarchy.kt b/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/ClassHierarchy.kt index 9930dd511..35c708231 100644 --- a/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/ClassHierarchy.kt +++ b/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/ClassHierarchy.kt @@ -1,31 +1,68 @@ package com.didiglobal.booster.cha -import java.util.Collections +import com.didiglobal.booster.cha.graph.ClassNode +import com.didiglobal.booster.graph.Graph import java.util.Objects -import java.util.concurrent.ConcurrentHashMap +import java.util.Stack /** * @author johnsonlee */ @Suppress("MemberVisibilityCanBePrivate") -class ClassHierarchy>( - private val classSet: ClassSet -) : ClassFileParser by classSet.parser { - - private val unresolved = ConcurrentHashMap.newKeySet() +class ClassHierarchy( + private val classSet: ClassSet, + private val onClassResolveFailed: OnClassResolveFailed? = null +) : ClassFileParser by classSet + where ClassParser : ClassFileParser { + + /** + * A graph that each edge is from parent type to children types + */ + private val graph: Graph by lazy { + classSet.load().fold(Graph.Builder()) { builder, clazz -> + val className = getClassName(clazz) + getSuperName(clazz)?.let { superName -> + builder.addEdge(ClassNode(superName), ClassNode(className)) + } + getInterfaces(clazz).forEach { interfaceName -> + builder.addEdge(ClassNode(interfaceName), ClassNode(className)) + } + builder + }.build() + } - val unresolvedClasses: Set - get() = Collections.unmodifiableSet(unresolved) + val classes: Iterable = classSet operator fun get(name: String?): ClassFile? { - val clazz = name?.let { classSet[it] } + val qn = name ?: return null + val clazz = classSet[qn] if (null == clazz) { - unresolved += name + onClassResolveFailed?.invoke(qn) } return clazz } - val classes: Iterable = classSet + fun getDerivedTypes( + name: String?, + filter: ClassFileParser.(clazz: ClassFile) -> Boolean = { true } + ): Set { + val fq = name ?: return emptySet() + val stack = Stack().apply { + push(fq) + } + + val children = mutableSetOf() + while (stack.isNotEmpty()) { + children += graph[ClassNode(stack.pop())].takeIf(Set::isNotEmpty)?.mapNotNull { + get(it.name) + }?.filter { + filter(this, it) + }?.onEach { + stack.push(getClassName(it)) + } ?: emptyList() + } + return children + } fun isInheritFrom(child: ClassFile, parent: ClassFile) = when { getClassName(child) == getClassName(parent) -> true @@ -63,38 +100,36 @@ class ClassHierarchy>( } fun isInheritFromClass(child: ClassFile, parent: ClassFile): Boolean { - if (Objects.equals(getSuperName(child), getClassName(parent))) { + val childSuperName = getSuperName(child) + val parentName = getClassName(parent) + if (Objects.equals(childSuperName, parentName)) { return true } - if (null == getSuperName(child) - || Objects.equals(getSuperName(child), getSuperName(parent)) + if (null == childSuperName + || Objects.equals(childSuperName, getSuperName(parent)) || Objects.equals(getSuperName(parent), getClassName(child))) { return false } - return this[getSuperName(child)]?.let { + return this[childSuperName]?.let { isInheritFromClass(it, parent) } ?: false } - fun getSuperClasses(clazz: ClassFile): Set { - if (getSuperName(clazz) == null) { - return emptySet() - } + fun getSuperTypes(clazz: ClassFile): Set { + val superName = getSuperName(clazz) ?: return emptySet() + var parent = this[superName] - if (getSuperName(clazz) == JAVA_LANG_OBJECT) { - return setOf(this[getSuperName(clazz)]!!) + if (superName == JAVA_LANG_OBJECT) { + return parent?.let(::setOf) ?: throw ClassNotFoundException(superName) } val classes = mutableSetOf() - var parent = this[getSuperName(clazz)] while (null != parent) { classes += parent - parent = getSuperName(parent)?.let { - this[it] - } + parent = getSuperName(parent)?.let(this::get) } return classes @@ -102,4 +137,6 @@ class ClassHierarchy>( } +typealias OnClassResolveFailed = (String) -> Unit + const val JAVA_LANG_OBJECT = "java/lang/Object" diff --git a/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/ClassSet.kt b/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/ClassSet.kt index f500c5caf..870c261e6 100644 --- a/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/ClassSet.kt +++ b/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/ClassSet.kt @@ -4,13 +4,13 @@ import com.didiglobal.booster.kotlinx.isEmpty import com.didiglobal.booster.kotlinx.red import java.io.Closeable import java.io.File +import java.net.URL /** * @author johnsonlee */ -interface ClassSet> : Set, Closeable { - - val parser: ClassParser +interface ClassSet : Set, ClassFileParser, Closeable + where ClassParser : ClassFileParser { operator fun get(name: String): ClassFile? @@ -18,11 +18,7 @@ interface ClassSet> : Set) = elements.all { - contains(parser.getClassName(it)) - } + val classpath: List fun load(): ClassSet @@ -38,7 +34,7 @@ interface ClassSet> : Set ArchivedClassSet(file, parser) else -> { System.err.println(red("unsupported file: $file")) - EmptyClassSet(parser) + EmptyClassSet() } } diff --git a/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/CompositeClassSet.kt b/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/CompositeClassSet.kt index 7c2b0723d..f420f3cb3 100644 --- a/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/CompositeClassSet.kt +++ b/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/CompositeClassSet.kt @@ -1,8 +1,14 @@ package com.didiglobal.booster.cha import com.didiglobal.booster.kotlinx.NCPU +import com.didiglobal.booster.kotlinx.green import com.didiglobal.booster.kotlinx.parallelStream -import com.didiglobal.booster.kotlinx.stream +import com.didiglobal.booster.kotlinx.yellow +import io.johnsonlee.once.Once +import java.io.IOException +import java.io.InputStream +import java.net.URL +import java.time.Duration import java.util.Stack import java.util.concurrent.ConcurrentHashMap import java.util.concurrent.Executors @@ -11,38 +17,71 @@ import java.util.concurrent.TimeUnit /** * @author johnsonlee */ -internal class CompositeClassSet>( +internal class CompositeClassSet( private val classSets: Iterable> -) : AbstractClassSet() { +) : AbstractClassSet() where ClassParser : ClassFileParser { - private val cache = ConcurrentHashMap() + private val nameToClass = ConcurrentHashMap() - override val parser: ClassParser = classSets.first().parser + private val once = Once>() override val size: Int by lazy { - classSets.sumBy(ClassSet::size) + load().classSets.sumBy(ClassSet::size) } - override operator fun get(name: String) = cache[name] ?: this.classSets.find { - it.contains(name) - }?.get(name)?.apply { - cache[name] = this + override val classpath: List by lazy { + classSets.map(ClassSet::classpath).flatten() + } + + override operator fun get(name: String): ClassFile? = when (size) { + 0 -> null + 1 -> find(name) + else -> nameToClass[name] ?: find(name)?.also { + nameToClass[name] = it + } } - override fun contains(name: String) = this.classSets.any { it.contains(name) } + override fun parse(input: InputStream): ClassFile = delegate { + parse(input) + } ?: throw IOException("Parse class from stream failed: $input") - override fun contains(element: ClassFile) = this.classSets.any { it.contains(element) } + override fun getClassName(classNode: ClassFile): String = delegate(classNode) { + getClassName(classNode) + } - override fun containsAll(elements: Collection) = this.classSets.any { it.containsAll(elements) } + override fun getSuperName(classNode: ClassFile): String? = delegate(classNode) { + getSuperName(classNode) + } - override fun isEmpty() = this.size <= 0 + override fun getInterfaces(classNode: ClassFile): Array = delegate(classNode) { + getInterfaces(classNode) + } + + override fun getAccessFlags(classNode: ClassFile): Int = delegate(classNode) { + getAccessFlags(classNode) + } + + override fun contains(name: String) = load().classSets.any { + it.contains(name) + } + + override fun contains(element: ClassFile) = load().classSets.any { + it.contains(element) + } - override fun load(): CompositeClassSet { - val count: (ClassSet) -> Int = { - var n = 1 - val stack = Stack>() + override fun containsAll(elements: Collection) = load().classSets.any { + it.containsAll(elements) + } + + override fun isEmpty() = this.size <= 0 - stack.push(this) + override fun load(): CompositeClassSet = once { + val t0 = System.nanoTime() + val count: (ClassSet) -> Int = { root -> + val stack = Stack>().apply { + push(root) + } + var n = 0 while (stack.isNotEmpty()) { when (val cs = stack.pop()) { @@ -54,41 +93,70 @@ internal class CompositeClassSet - executor.submit { - cs.load().forEach { - this.cache.putIfAbsent(parser.getClassName(it), it) + val n = count(this) + if (n >= 1) { + val executor = Executors.newFixedThreadPool(n.coerceAtMost(NCPU)) + + try { + classSets.map { cs -> + executor.submit { + cs.load().forEach { clazz -> + nameToClass.putIfAbsent(cs.getClassName(clazz), clazz) + } } + }.forEach { + it.get() } - }.forEach { - it.get() + } finally { + executor.shutdown() + executor.awaitTermination(1L, TimeUnit.HOURS) } - } finally { - executor.shutdown() - executor.awaitTermination(1L, TimeUnit.HOURS) } + val t1 = System.nanoTime() + val size = classSets.sumBy(ClassSet::size) + println(classpath.joinToString("\n", "Load ${green(size)} classes from ${green(n)} class sets in ${yellow(Duration.ofNanos(t1 - t0).toMillis())} ms\n") { + " ✨ $it" + }) - return this + this } - override fun iterator(): Iterator = when (this.cache.size) { - this.size -> this.cache.values.iterator() - else -> object : Iterator { - val delegate = classSets.stream().flatMap(ClassSet::stream).iterator() + override fun iterator(): Iterator = load().classSets.asSequence().flatMap { + it.asSequence() + }.iterator() - override fun hasNext() = delegate.hasNext() + override fun close() = this.classSets.parallelStream().forEach(ClassSet::close) - override fun next() = delegate.next().apply { - cache.putIfAbsent(parser.getClassName(this), this) - } + override fun toString() = this.classSets.joinToString(", ", "{ ", " }") + + private fun find(name: String): ClassFile? { + val it = load().classSets.iterator() + while (it.hasNext()) { + val clazz = it.next()[name] + if (clazz != null) return clazz } + return null } - override fun close() = this.classSets.parallelStream().forEach(ClassSet::close) + private fun delegate(block: ClassSet.() -> R): R? { + val it = classSets.iterator() + while (it.hasNext()) { + val next = it.next() + try { + return next.block() + } catch (e: Throwable) { + continue + } + } + return null + } - override fun toString() = this.classSets.joinToString(", ", "{ ", " }") + private fun delegate(classNode: ClassFile, block: ClassSet.() -> R): R { + val classSet = classSets.find { + it.contains(classNode) + } ?: throw IllegalArgumentException("Unknown class node $classNode") + return classSet.run(block) + } } \ No newline at end of file diff --git a/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/DirectoryClassSet.kt b/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/DirectoryClassSet.kt index a6e077655..8c334a064 100644 --- a/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/DirectoryClassSet.kt +++ b/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/DirectoryClassSet.kt @@ -1,48 +1,87 @@ package com.didiglobal.booster.cha +import com.didiglobal.booster.kotlinx.NCPU import com.didiglobal.booster.kotlinx.green import com.didiglobal.booster.kotlinx.search +import com.didiglobal.booster.kotlinx.yellow +import io.johnsonlee.once.Once import java.io.File import java.io.FileNotFoundException -import java.util.stream.Collectors.toMap +import java.net.URL +import java.time.Duration +import java.util.concurrent.Callable +import java.util.concurrent.Executors +import java.util.concurrent.Future +import java.util.concurrent.TimeUnit private val CLASS_FILE_FILTER = { file: File -> file.extension.equals("class", true) } /** * @author johnsonlee */ -internal class DirectoryClassSet>( - val location: File, - override val parser: ClassParser -) : AbstractClassSet() { +internal class DirectoryClassSet( + private val location: File, + private val parser: ClassParser +) : AbstractClassSet(), ClassFileParser by parser + where ClassParser : ClassFileParser { + + private val once = Once>() private val classes: Map by lazy { - location.search(CLASS_FILE_FILTER).parallelStream() - .map(parser::parse) - .collect(toMap(parser::getClassName) { it }) + val files = location.search(CLASS_FILE_FILTER).takeIf { + it.isNotEmpty() + } ?: return@lazy emptyMap() + val executor = Executors.newFixedThreadPool(files.size.coerceAtMost(NCPU)) + + try { + files.map { file -> + executor.submit(Callable { + parser.parse(file)?.let { clazz -> + parser.getClassName(clazz) to clazz + } + }) + }.mapNotNull(Future?>::get).toMap() + } finally { + executor.shutdown() + executor.awaitTermination(1, TimeUnit.HOURS) + } + } + + private val snapshot: Set by lazy { + classes.values.toSet() } constructor(location: String, parser: ClassParser) : this(File(location).takeIf { it.exists() } ?: throw FileNotFoundException(location), parser) - override fun get(name: String): ClassFile? = this.classes[name] + override val size: Int by lazy { + load().classes.size + } + + override val classpath: List by lazy { + listOf(location.toURI().toURL()) + } + + override fun get(name: String): ClassFile? = load().classes[name] - override fun contains(name: String) = this.classes.containsKey(name) + override fun contains(name: String) = load().classes.containsKey(name) - override val size: Int - get() = this.classes.size + override fun contains(element: ClassFile): Boolean = load().snapshot.contains(element) override fun isEmpty() = this.size <= 0 - override fun load(): DirectoryClassSet { - println("Load ${green(this.classes.size)} classes from $location") - return this + override fun load(): DirectoryClassSet = once { + val t0 = System.nanoTime() + val size = classes.size + val t1 = System.nanoTime() + println("Load ${green(size)} classes from $location in ${yellow(Duration.ofNanos(t1 - t0).toMillis())} ms") + this } - override fun iterator(): Iterator = this.classes.values.iterator() + override fun iterator(): Iterator = load().classes.values.iterator() - override fun toString(): String = this.location.canonicalPath + override fun toString(): String = location.canonicalPath override fun close() = Unit diff --git a/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/EmptyClassSet.kt b/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/EmptyClassSet.kt index c4d3cba64..5ef67cca1 100644 --- a/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/EmptyClassSet.kt +++ b/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/EmptyClassSet.kt @@ -1,15 +1,20 @@ package com.didiglobal.booster.cha +import java.net.URL + /** * @author johnsonlee */ @Suppress("UNCHECKED_CAST") -internal class EmptyClassSet>( - override val parser: ClassParser = NullClassFileParser as ClassParser -) : AbstractClassSet() { +internal class EmptyClassSet + : AbstractClassSet() + , ClassFileParser by NullClassFileParser as ClassFileParser + where ClassParser : ClassFileParser { override val size: Int = 0 + override val classpath: List = emptyList() + override fun isEmpty() = true override fun get(name: String): ClassFile? = null diff --git a/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/graph/ClassNode.kt b/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/graph/ClassNode.kt new file mode 100644 index 000000000..fbbf40c6b --- /dev/null +++ b/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/graph/ClassNode.kt @@ -0,0 +1,11 @@ +package com.didiglobal.booster.cha.graph + +import com.didiglobal.booster.graph.Node + +data class ClassNode( + val name: String +) : Node { + + override fun toPrettyString(): String = name + +} \ No newline at end of file diff --git a/booster-graph/src/main/kotlin/com/didiglobal/booster/graph/Graph.kt b/booster-graph/src/main/kotlin/com/didiglobal/booster/graph/Graph.kt index c63d3bea1..d4475b4d9 100644 --- a/booster-graph/src/main/kotlin/com/didiglobal/booster/graph/Graph.kt +++ b/booster-graph/src/main/kotlin/com/didiglobal/booster/graph/Graph.kt @@ -32,7 +32,16 @@ class Graph private constructor( }) } - operator fun get(node: N): Set = edges[node]?.let(Collections::unmodifiableSet) ?: emptySet() + operator fun get(from: N): Set = edges[from]?.let(Collections::unmodifiableSet) ?: emptySet() + + fun reversed(): Graph { + return edges.entries.fold(Builder()) { builder, entry -> + entry.value.forEach { to -> + builder.addEdge(to, entry.key) + } + builder + }.build() + } /** * Print this graph diff --git a/booster-graph/src/main/kotlin/com/didiglobal/booster/graph/Node.kt b/booster-graph/src/main/kotlin/com/didiglobal/booster/graph/Node.kt index 640735db1..72c1976bb 100644 --- a/booster-graph/src/main/kotlin/com/didiglobal/booster/graph/Node.kt +++ b/booster-graph/src/main/kotlin/com/didiglobal/booster/graph/Node.kt @@ -2,4 +2,6 @@ package com.didiglobal.booster.graph interface Node { fun toPrettyString() = toString() + override fun hashCode(): Int + override fun equals(other: Any?): Boolean } \ No newline at end of file diff --git a/booster-task-analyser/build.gradle b/booster-task-analyser/build.gradle index efe633d5d..04ca913fc 100644 --- a/booster-task-analyser/build.gradle +++ b/booster-task-analyser/build.gradle @@ -4,7 +4,7 @@ dependencies { kapt "com.google.auto.service:auto-service:1.0" implementation project(':booster-aapt2') implementation project(':booster-api') - implementation project(':booster-cha') + implementation project(':booster-cha-asm') implementation project(':booster-graph-dot') implementation project(':booster-graph-json') implementation project(':booster-transform-asm') diff --git a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/performance/PerformanceAnalyser.kt b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/performance/PerformanceAnalyser.kt index a03f17de5..eee88b6a8 100644 --- a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/performance/PerformanceAnalyser.kt +++ b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/performance/PerformanceAnalyser.kt @@ -4,6 +4,7 @@ import com.didiglobal.booster.aapt2.metadata import com.didiglobal.booster.cha.ClassHierarchy import com.didiglobal.booster.cha.ClassSet import com.didiglobal.booster.cha.JAVA_LANG_OBJECT +import com.didiglobal.booster.cha.asm.from import com.didiglobal.booster.cha.fold import com.didiglobal.booster.cha.graph.CallNode import com.didiglobal.booster.cha.graph.ROOT @@ -18,7 +19,6 @@ import com.didiglobal.booster.kotlinx.search import com.didiglobal.booster.kotlinx.separatorsToSystem import com.didiglobal.booster.kotlinx.yellow import com.didiglobal.booster.task.analyser.Build -import com.didiglobal.booster.task.analyser.AsmClassFileParser import com.didiglobal.booster.transform.ArtifactManager import com.didiglobal.booster.transform.asm.args import com.didiglobal.booster.transform.asm.className @@ -62,16 +62,20 @@ class PerformanceAnalyser( ) { private val providedClasses = providedClasspath.map { - ClassSet.from(it, AsmClassFileParser) + ClassSet.from(it) }.fold() private val compileClasses = compileClasspath.map { - ClassSet.from(it, AsmClassFileParser) + ClassSet.from(it) }.fold() private val classes = providedClasses + compileClasses - private val hierarchy = ClassHierarchy(classes) + private val unresolvedClasses = mutableSetOf() + + private val hierarchy = ClassHierarchy(classes) { + unresolvedClasses += it + } /** * The global call graph of whole project @@ -113,7 +117,7 @@ class PerformanceAnalyser( this.loadEntryPoints() this.analyse() this.dump(output) - this.hierarchy.unresolvedClasses.forEach { + this.unresolvedClasses.forEach { println("Unresolved class ${red(it.replace('/', '.'))}") } } @@ -245,7 +249,7 @@ class PerformanceAnalyser( } else { classesRunOnUiThread[desc] = clazz - hierarchy.getSuperClasses(clazz).filter { + hierarchy.getSuperTypes(clazz).filter { it.name != JAVA_LANG_OBJECT }.forEach { classesRunOnUiThread[it.name] = it diff --git a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/Constants.kt b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/Constants.kt index dd369786f..8a300897d 100644 --- a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/Constants.kt +++ b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/Constants.kt @@ -1,5 +1,3 @@ package com.didiglobal.booster.task.analyser.reference -internal const val DEFAULT_VARIANT = "" - internal const val TASK_ANALYSE_REFERENCE = "analyseReference" diff --git a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/ReferenceAnalysisTask.kt b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/ReferenceAnalysisTask.kt index b1eae220d..91c60979e 100644 --- a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/ReferenceAnalysisTask.kt +++ b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/ReferenceAnalysisTask.kt @@ -1,17 +1,29 @@ package com.didiglobal.booster.task.analyser.reference import com.android.build.gradle.api.BaseVariant +import com.didiglobal.booster.cha.ClassSet +import com.didiglobal.booster.cha.asm.AsmClassSet +import com.didiglobal.booster.cha.asm.Reference +import com.didiglobal.booster.cha.asm.ReferenceAnalyser +import com.didiglobal.booster.cha.asm.from +import com.didiglobal.booster.cha.fold +import com.didiglobal.booster.gradle.getJars +import com.didiglobal.booster.gradle.getResolvedArtifactResults import com.didiglobal.booster.graph.Graph import com.didiglobal.booster.graph.dot.DotGraph import com.didiglobal.booster.graph.json.JsonGraphRender import com.didiglobal.booster.kotlinx.NCPU +import com.didiglobal.booster.kotlinx.green import com.didiglobal.booster.kotlinx.touch +import com.didiglobal.booster.kotlinx.yellow import com.didiglobal.booster.task.analyser.reference.reporting.ReferencePageRenderer import com.didiglobal.booster.task.analyser.reference.reporting.ReferenceReports import com.didiglobal.booster.task.analyser.reference.reporting.ReferenceReportsImpl import groovy.lang.Closure import org.gradle.api.Action import org.gradle.api.DefaultTask +import org.gradle.api.Project +import org.gradle.api.artifacts.component.ProjectComponentIdentifier import org.gradle.api.reporting.Reporting import org.gradle.api.tasks.Internal import org.gradle.api.tasks.Nested @@ -53,7 +65,19 @@ open class ReferenceAnalysisTask : DefaultTask(), Reporting { return } - val graph = ReferenceAnalyser(project, variant).analyse() + val upstream = project.getResolvedArtifactResults(true, variant).associate { + it.id.componentIdentifier.displayName to when (val id = it.id.componentIdentifier) { + is ProjectComponentIdentifier -> project.rootProject.project(id.projectPath).getClassSet(variant) + else -> ClassSet.from(it.file) + } + } + + val origin = project.name to project.getJars(variant).map { + ClassSet.from(it) + }.fold() + val graph = ReferenceAnalyser().analyse(origin, upstream) { klass, progress, duration -> + project.logger.info("${green(String.format("%3d%%", progress * 100))} Analyse class ${klass.name} in ${yellow(duration.toMillis())} ms") + } val executor = Executors.newFixedThreadPool(reports.size.coerceAtMost(NCPU)) try { @@ -82,7 +106,7 @@ open class ReferenceAnalysisTask : DefaultTask(), Reporting { return _reports } - private fun generateDotReport(graph: Graph) { + private fun generateDotReport(graph: Graph) { if (!reports.dot.isEnabled) return try { @@ -93,12 +117,12 @@ open class ReferenceAnalysisTask : DefaultTask(), Reporting { } } - private fun generateHtmlReport(graph: Graph) { + private fun generateHtmlReport(graph: Graph) { if (!reports.html.isEnabled) return HtmlReportRenderer().renderSinglePage(graph, ReferencePageRenderer(project, variant), reports.html.destination) } - private fun generateJsonReport(graph: Graph) { + private fun generateJsonReport(graph: Graph) { if (!reports.json.isEnabled) return val json = JsonGraphRender.render(graph) { node -> @@ -108,3 +132,9 @@ open class ReferenceAnalysisTask : DefaultTask(), Reporting { } } + +private fun Project.getClassSet(variant: BaseVariant?): AsmClassSet { + return project.getJars(variant).map { + ClassSet.from(it) + }.fold() +} diff --git a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/ReferenceAnalysisVariantProcessor.kt b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/ReferenceAnalysisVariantProcessor.kt index ba8593daa..282f16401 100644 --- a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/ReferenceAnalysisVariantProcessor.kt +++ b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/ReferenceAnalysisVariantProcessor.kt @@ -8,6 +8,7 @@ import com.android.build.gradle.internal.tasks.factory.dependsOn import com.didiglobal.booster.BOOSTER import com.didiglobal.booster.gradle.getAndroid import com.didiglobal.booster.gradle.getJarTaskProviders +import com.didiglobal.booster.gradle.getTaskName import com.didiglobal.booster.gradle.isAndroid import com.didiglobal.booster.gradle.isJava import com.didiglobal.booster.gradle.isJavaLibrary @@ -16,6 +17,7 @@ import com.didiglobal.booster.task.analyser.configureReportConvention import com.didiglobal.booster.task.spi.VariantProcessor import com.google.auto.service.AutoService import org.gradle.api.Project +import org.gradle.api.Task import org.gradle.api.UnknownTaskException import org.gradle.api.tasks.TaskProvider @@ -24,50 +26,41 @@ class ReferenceAnalysisVariantProcessor : VariantProcessor { override fun process(variant: BaseVariant) { variant.project.gradle.projectsEvaluated { gradle -> - val prerequisites = gradle.rootProject.allprojects.map { project -> - project.getJarTaskProviders(variant) - }.flatten() - gradle.rootProject.allprojects { project -> - project.setup(prerequisites) - } + gradle.rootProject.allprojects(Project::setup) } } } -private fun Project.setup(prerequisites: List>) { +private fun Project.setup() { try { project.tasks.named(TASK_ANALYSE_REFERENCE) } catch (e: UnknownTaskException) { when { - isAndroid -> setupAndroid(prerequisites) - isJavaLibrary || isJava -> setupJava(prerequisites) + isAndroid -> setupAndroid() + isJavaLibrary || isJava -> setupTasks() } } } -private fun Project.setupJava(prerequisites: List>) { - tasks.register(TASK_ANALYSE_REFERENCE, ReferenceAnalysisTask::class.java) { +private fun Project.setupTasks(variant: BaseVariant? = null): TaskProvider { + val taskName = variant?.getTaskName(TASK_ANALYSE_REFERENCE) ?: TASK_ANALYSE_REFERENCE + return tasks.register(taskName, ReferenceAnalysisTask::class.java) { it.group = BOOSTER - it.description = "Analyses class reference for Java projects" + it.description = "Analyses class reference for ${if (variant != null) variant.name else "Java projects"}" it.variant = null it.configureReportConvention("reference", null) - }.dependsOn(prerequisites) + }.dependsOn(rootProject.allprojects.map { project -> + project.getJarTaskProviders(variant) + }.flatten()) } -private fun Project.setupAndroid(prerequisites: List>) { +private fun Project.setupAndroid() { val subtasks = when (val android = getAndroid()) { is LibraryExtension -> android.libraryVariants is AppExtension -> android.applicationVariants else -> emptyList() - }.map { variant -> - tasks.register("${TASK_ANALYSE_REFERENCE}${variant.name.capitalize()}", ReferenceAnalysisTask::class.java) { - it.group = BOOSTER - it.description = "Analyses class reference for ${variant.name}" - it.variant = variant - it.configureReportConvention("reference", variant) - }.dependsOn(prerequisites) - } + }.map(::setupTasks) tasks.register(TASK_ANALYSE_REFERENCE) { it.group = BOOSTER it.description = "Analyses class reference" diff --git a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/reporting/ReferencePageRenderer.kt b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/reporting/ReferencePageRenderer.kt index 63565c3dc..d032e364a 100644 --- a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/reporting/ReferencePageRenderer.kt +++ b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/reporting/ReferencePageRenderer.kt @@ -1,22 +1,21 @@ package com.didiglobal.booster.task.analyser.reference.reporting import com.android.build.gradle.api.BaseVariant +import com.didiglobal.booster.cha.asm.Reference import com.didiglobal.booster.graph.Edge import com.didiglobal.booster.graph.Graph -import com.didiglobal.booster.task.analyser.reference.ReferenceNode import org.gradle.api.Project import org.gradle.internal.html.SimpleHtmlWriter import org.gradle.reporting.ReportRenderer import org.gradle.reporting.TabbedPageRenderer import java.net.URL -import java.util.TreeMap private val URL_STYLE = ReferencePageRenderer::class.java.getResource("/style.css")!! class ReferencePageRenderer( private val project: Project, private val variant: BaseVariant? -) : TabbedPageRenderer>() { +) : TabbedPageRenderer>() { private val _title: String by lazy { if (variant == null) project.name else "${project.name}:${variant.name}" @@ -24,19 +23,19 @@ class ReferencePageRenderer( override fun getTitle(): String = _title - override fun getHeaderRenderer(): ReportRenderer, SimpleHtmlWriter> = object : ReportRenderer, SimpleHtmlWriter>() { - override fun render(model: Graph, output: SimpleHtmlWriter) { + override fun getHeaderRenderer(): ReportRenderer, SimpleHtmlWriter> = object : ReportRenderer, SimpleHtmlWriter>() { + override fun render(model: Graph, output: SimpleHtmlWriter) { output.startElement("p").attribute("class", "subtitle").characters(project.description ?: "").endElement() } } - override fun getContentRenderer(): ReportRenderer, SimpleHtmlWriter> = object : ReportRenderer, SimpleHtmlWriter>() { - override fun render(model: Graph, output: SimpleHtmlWriter) { + override fun getContentRenderer(): ReportRenderer, SimpleHtmlWriter> = object : ReportRenderer, SimpleHtmlWriter>() { + override fun render(model: Graph, output: SimpleHtmlWriter) { output.run { model.groupBy { it.to.groupBy() - }.toSortedMap(ReferenceNode.COMPONENT_COMPARATOR).map { (group, edges) -> - group to edges.mapTo(sortedSetOf(compareBy(ReferenceNode::klass)), Edge::to) + }.toSortedMap(Reference.COMPONENT_COMPARATOR).map { (group, edges) -> + group to edges.mapTo(sortedSetOf(compareBy(Reference::klass)), Edge::to) }.forEach { (title, items) -> startElement("h2").characters(title).endElement() startElement("ul") diff --git a/build.gradle b/build.gradle index 41cc420dc..ae4a50e58 100644 --- a/build.gradle +++ b/build.gradle @@ -178,8 +178,11 @@ task reference(type: org.jetbrains.dokka.gradle.DokkaTask, group: 'Documentation 'booster-api', 'booster-build', 'booster-cha', + 'booster-cha-asm', 'booster-command', 'booster-graph', + 'booster-graph-dot', + 'booster-graph-json', 'booster-kotlinx', 'booster-task-compression', 'booster-task-spi', @@ -206,8 +209,11 @@ task reference(type: org.jetbrains.dokka.gradle.DokkaTask, group: 'Documentation 'booster-api/packages-zh-CN.md', 'booster-build/packages-zh-CN.md', 'booster-cha/packages-zh-CN.md', + 'booster-cha-asm/packages-zh-CN.md', 'booster-command/packages-zh-CN.md', 'booster-graph/packages-zh-CN.md', + 'booster-graph-dot/packages-zh-CN.md', + 'booster-graph-json/packages-zh-CN.md', 'booster-kotlinx/packages-zh-CN.md', 'booster-task-compression/packages-zh-CN.md', 'booster-task-spi/packages-zh-CN.md', diff --git a/settings.gradle b/settings.gradle index fd20c4425..c61329bac 100644 --- a/settings.gradle +++ b/settings.gradle @@ -26,6 +26,7 @@ include ':booster-annotations' include ':booster-api' include ':booster-build' include ':booster-cha' +include ':booster-cha-asm' include ':booster-command' include ':booster-graph' include ':booster-graph-dot' From 3a8123eb3230e7d5c3b3c7c362a5264ab26fbcc2 Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Thu, 30 Jun 2022 10:14:30 +0800 Subject: [PATCH 141/187] Improvement for `booster-task-analyser` --- .../com/didiglobal/booster/gradle/Project.kt | 18 ++-- .../booster/task/analyser/AnalysisTask.kt | 34 +++++++ .../task/analyser/AnalysisVariantProcessor.kt | 76 ++++++++++++++++ .../booster/task/analyser/Reportings.kt | 20 ----- .../performance/PerformanceAnalysisTask.kt | 88 ++++--------------- .../PerformanceAnalysisVariantProcessor.kt | 56 ------------ .../task/analyser/performance/constants.kt | 2 - .../reporting/PerformanceReports.kt | 19 ---- .../reporting/PerformanceReportsImpl.kt | 32 ------- .../task/analyser/reference/Constants.kt | 3 - .../reference/ReferenceAnalysisTask.kt | 66 ++------------ .../ReferenceAnalysisVariantProcessor.kt | 68 -------------- .../{reporting => }/ReferencePageRenderer.kt | 24 ++--- .../reference/reporting/ReferenceReports.kt | 19 ---- .../reporting/ReferenceReportsImpl.kt | 32 ------- .../src/main/resources/style.css | 8 +- 16 files changed, 166 insertions(+), 399 deletions(-) create mode 100644 booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/AnalysisTask.kt create mode 100644 booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/AnalysisVariantProcessor.kt delete mode 100644 booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/Reportings.kt delete mode 100644 booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/performance/PerformanceAnalysisVariantProcessor.kt delete mode 100644 booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/performance/reporting/PerformanceReports.kt delete mode 100644 booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/performance/reporting/PerformanceReportsImpl.kt delete mode 100644 booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/Constants.kt delete mode 100644 booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/ReferenceAnalysisVariantProcessor.kt rename booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/{reporting => }/ReferencePageRenderer.kt (67%) delete mode 100644 booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/reporting/ReferenceReports.kt delete mode 100644 booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/reporting/ReferenceReportsImpl.kt diff --git a/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/Project.kt b/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/Project.kt index 4359856e0..086d82f07 100644 --- a/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/Project.kt +++ b/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/Project.kt @@ -98,25 +98,25 @@ fun Project.getResolvedArtifactResults( private fun Project.getResolvedArtifactResultsRecursively(transitive: Boolean, resolve: Project.() -> List): Set { val stack = Stack() - val results = mutableSetOf() + val results = mutableMapOf() stack.add(this) while (stack.isNotEmpty()) { - val resolved = stack.pop().resolve() - - results += resolved + val resolved = stack.pop().resolve().filterNot { + results.containsKey(it.id.componentIdentifier) + }.onEach { + results[it.id.componentIdentifier] = it + } if (!transitive) continue - resolved.map { - it.id.componentIdentifier - }.filterIsInstance().map { + resolved.filterIsInstance().map { rootProject.project(it.projectPath) }.let(stack::addAll) } - return results + return results.values.toSet() } /** @@ -134,7 +134,7 @@ fun Project.getJarTaskProviders(variant: BaseVariant? = null): Collection filterByVariant(variant).map { - it.javaCompilerTaskProvider + tasks.named(it.getTaskName("bundle", "Classes")) } else -> emptyList() } diff --git a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/AnalysisTask.kt b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/AnalysisTask.kt new file mode 100644 index 000000000..31ee35f5c --- /dev/null +++ b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/AnalysisTask.kt @@ -0,0 +1,34 @@ +package com.didiglobal.booster.task.analyser + +import com.android.build.gradle.api.BaseVariant +import com.didiglobal.booster.BOOSTER +import com.didiglobal.booster.kotlinx.touch +import org.gradle.api.DefaultTask +import org.gradle.api.tasks.Internal +import java.io.File + +abstract class AnalysisTask : DefaultTask() { + + @get:Internal + var variant: BaseVariant? = null + + @Internal + final override fun getGroup(): String = BOOSTER + + @Internal + abstract override fun getDescription(): String + + abstract fun analyse() + +} + +internal val AnalysisTask.reportDir: File + get() = project.buildDir + .resolve("reports") + .resolve(Build.ARTIFACT) + .resolve(javaClass.kotlin.category) + .resolve(variant?.dirName ?: ".") + +internal fun AnalysisTask.report(name: String): File { + return reportDir.resolve(name).resolve("index.${name}").touch() +} diff --git a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/AnalysisVariantProcessor.kt b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/AnalysisVariantProcessor.kt new file mode 100644 index 000000000..3f1aed26b --- /dev/null +++ b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/AnalysisVariantProcessor.kt @@ -0,0 +1,76 @@ +package com.didiglobal.booster.task.analyser + +import com.android.build.gradle.AppExtension +import com.android.build.gradle.BaseExtension +import com.android.build.gradle.LibraryExtension +import com.android.build.gradle.api.BaseVariant +import com.android.build.gradle.internal.tasks.factory.dependsOn +import com.didiglobal.booster.gradle.getAndroid +import com.didiglobal.booster.gradle.getJarTaskProviders +import com.didiglobal.booster.gradle.getTaskName +import com.didiglobal.booster.gradle.getUpstreamProjects +import com.didiglobal.booster.gradle.isAndroid +import com.didiglobal.booster.gradle.isJava +import com.didiglobal.booster.gradle.isJavaLibrary +import com.didiglobal.booster.gradle.project +import com.didiglobal.booster.task.analyser.performance.PerformanceAnalysisTask +import com.didiglobal.booster.task.analyser.reference.ReferenceAnalysisTask +import com.didiglobal.booster.task.spi.VariantProcessor +import com.google.auto.service.AutoService +import org.gradle.api.Project +import org.gradle.api.Task +import org.gradle.api.UnknownTaskException +import org.gradle.api.tasks.TaskProvider +import kotlin.reflect.KClass + +@AutoService(VariantProcessor::class) +class AnalysisVariantProcessor : VariantProcessor { + + override fun process(variant: BaseVariant) { + variant.project.gradle.projectsEvaluated { gradle -> + gradle.rootProject.allprojects(Project::setup) + } + } + +} + +private fun Project.setup() { + when { + isAndroid -> { + setupAndroid() + setupAndroid() + } + isJavaLibrary || isJava -> { + setupTasks() + } + } +} + +private inline fun Project.setupTasks(variant: BaseVariant? = null): TaskProvider { + val taskName = variant?.getTaskName(T::class.taskName) ?: T::class.taskName + return try { + tasks.named(taskName) + } catch (e: UnknownTaskException) { + tasks.register(taskName, T::class.java) { + it.variant = variant + }.dependsOn(getUpstreamProjects(false, variant).plus(this).map { + it.getJarTaskProviders(variant) + }.flatten()) + } +} + +private inline fun Project.setupAndroid() { + when (val android = getAndroid()) { + is LibraryExtension -> android.libraryVariants + is AppExtension -> android.applicationVariants + else -> emptyList() + }.map { + setupTasks(it) + } +} + +internal inline val KClass.category: String + get() = T::class.java.simpleName.substringBefore(AnalysisTask::class.java.simpleName).toLowerCase() + +internal inline val KClass.taskName: String + get() = "analyse${category.capitalize()}" diff --git a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/Reportings.kt b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/Reportings.kt deleted file mode 100644 index bef35327a..000000000 --- a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/Reportings.kt +++ /dev/null @@ -1,20 +0,0 @@ -package com.didiglobal.booster.task.analyser - -import com.android.build.gradle.api.BaseVariant -import org.gradle.api.internal.AbstractTask -import org.gradle.api.reporting.ReportContainer -import org.gradle.api.reporting.Reporting -import org.gradle.api.reporting.ReportingExtension -import org.gradle.api.reporting.SingleFileReport -import java.io.File - -fun T.configureReportConvention(analysis: String, variant: BaseVariant?) - where T : AbstractTask, T: Reporting> { - reports.all { - it.outputLocation.convention(project.layout.projectDirectory.file(project.provider { - val base = project.extensions.getByType(ReportingExtension::class.java).baseDir - val path = listOfNotNull(Build.ARTIFACT, analysis, variant?.name, it.name, "index.${it.name}").joinToString(File.separator) - File(base, path).absolutePath - })) - } -} \ No newline at end of file diff --git a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/performance/PerformanceAnalysisTask.kt b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/performance/PerformanceAnalysisTask.kt index fdfd219ad..ef94d5b62 100644 --- a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/performance/PerformanceAnalysisTask.kt +++ b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/performance/PerformanceAnalysisTask.kt @@ -1,87 +1,35 @@ package com.didiglobal.booster.task.analyser.performance -import com.android.build.gradle.api.BaseVariant import com.didiglobal.booster.gradle.extension -import com.didiglobal.booster.kotlinx.file -import com.didiglobal.booster.task.analyser.Build -import com.didiglobal.booster.task.analyser.performance.reporting.PerformanceReports -import com.didiglobal.booster.task.analyser.performance.reporting.PerformanceReportsImpl +import com.didiglobal.booster.gradle.getJars +import com.didiglobal.booster.gradle.getUpstreamProjects +import com.didiglobal.booster.task.analyser.AnalysisTask +import com.didiglobal.booster.task.analyser.reportDir import com.didiglobal.booster.transform.artifacts -import groovy.lang.Closure -import org.gradle.api.Action -import org.gradle.api.DefaultTask -import org.gradle.api.reporting.Reporting -import org.gradle.api.tasks.Input -import org.gradle.api.tasks.Internal import org.gradle.api.tasks.TaskAction -import org.gradle.util.ClosureBackedAction -import java.io.File /** * Represents a task for performance analysing * * @author johnsonlee */ -open class PerformanceAnalysisTask : DefaultTask(), Reporting { +open class PerformanceAnalysisTask : AnalysisTask() { - @get:Internal - lateinit var variant: BaseVariant - - @get:Internal - lateinit var supplier: () -> File - - @get:Input - val variantName: String - get() = variant.name - - @get:Internal - val _reports: PerformanceReports by lazy { - project.objects.newInstance(PerformanceReportsImpl::class.java, this) - } - - override fun getReports(): PerformanceReports = _reports - - override fun reports(closure: Closure<*>): PerformanceReports { - return reports(ClosureBackedAction(closure)) - } - - override fun reports(configureAction: Action): PerformanceReports { - configureAction.execute(_reports) - return _reports - } + override fun getDescription(): String = "Analyses performance issues for Android projects" @TaskAction - fun analyse() { - if ((!reports.html.isEnabled) && (!reports.dot.isEnabled) && (!reports.json.isEnabled)) { - logger.warn(""" - Please enable reference analysis reports with following configuration: - - tasks.withType(${PerformanceAnalysisTask::class.java.simpleName}) { - reports { - html.enabled = true - json.enabled = true - dot.enabled = true - } - } - """.trimIndent()) - return - } - - val classpath = supplier().let { - if (it.isDirectory) { - it.listFiles()?.toList() ?: emptyList() - } else { - listOf(it) - } - }.filter { - it.isDirectory || it.extension.run { - equals("class", true) || equals("jar", true) - } - } - - val output = project.projectDir.file("build", "reports", Build.ARTIFACT, variant.dirName) - - PerformanceAnalyser(variant.extension.bootClasspath, classpath, variant.artifacts, project.properties).analyse(output) + override fun analyse() { + val variant = requireNotNull(this.variant) + val classpath = project.getJars(variant) + project.getUpstreamProjects(true, variant).map { + it.getJars(variant) + }.flatten() + + PerformanceAnalyser( + variant.extension.bootClasspath, + classpath, + variant.artifacts, + project.properties + ).analyse(reportDir) } } \ No newline at end of file diff --git a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/performance/PerformanceAnalysisVariantProcessor.kt b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/performance/PerformanceAnalysisVariantProcessor.kt deleted file mode 100644 index 43fc5d4e8..000000000 --- a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/performance/PerformanceAnalysisVariantProcessor.kt +++ /dev/null @@ -1,56 +0,0 @@ -package com.didiglobal.booster.task.analyser.performance - -import com.android.build.api.transform.QualifiedContent -import com.android.build.gradle.api.BaseVariant -import com.android.build.gradle.internal.pipeline.TransformManager -import com.android.build.gradle.internal.pipeline.TransformTask -import com.android.build.gradle.internal.tasks.factory.dependsOn -import com.didiglobal.booster.BOOSTER -import com.didiglobal.booster.gradle.extension -import com.didiglobal.booster.gradle.project -import com.didiglobal.booster.task.analyser.configureReportConvention -import com.didiglobal.booster.task.spi.VariantProcessor -import com.google.auto.service.AutoService -import org.gradle.api.GradleException -import org.gradle.api.UnknownTaskException - -/** - * @author johnsonlee - */ -@AutoService(VariantProcessor::class) -class PerformanceAnalysisVariantProcessor : VariantProcessor { - - override fun process(variant: BaseVariant) { - val project = variant.project - val variantName = variant.name.capitalize() - val transform = variant.extension.transforms.reversed().firstOrNull { - it.scopes.containsAll(TransformManager.SCOPE_FULL_PROJECT) - && it.inputTypes.contains(QualifiedContent.DefaultContentType.CLASSES) - } ?: throw GradleException("No available transform") - val profiles = try { - project.tasks.named(TASK_ANALYSE_PERFORMANCE) - } catch (e: UnknownTaskException) { - project.tasks.register(TASK_ANALYSE_PERFORMANCE) { - it.description = "Analyses performance issues for Android projects" - it.group = BOOSTER - } - } - - project.tasks.withType(TransformTask::class.java).find { - it.name.endsWith(variantName) && it.transform == transform - }?.let { transformTask -> - val profile = project.tasks.register("${TASK_ANALYSE_PERFORMANCE}${variantName}", PerformanceAnalysisTask::class.java) { - it.description = "Analyses performance issues for ${variant.name}" - it.group = BOOSTER - it.variant = variant - it.supplier = { - transformTask.outputs.files.single() - } - it.dependsOn(transformTask) - it.configureReportConvention("performance", variant) - } - profiles.dependsOn(profile) - } - } - -} \ No newline at end of file diff --git a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/performance/constants.kt b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/performance/constants.kt index ff9dd3fdd..ce250b9d3 100644 --- a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/performance/constants.kt +++ b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/performance/constants.kt @@ -84,5 +84,3 @@ internal val ANY_THREAD_ANNOTATIONS = arrayOf( "android/support/annotation/AnyThread", "android/annotation/AnyThread" ) - -internal val TASK_ANALYSE_PERFORMANCE = "analysePerformance" \ No newline at end of file diff --git a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/performance/reporting/PerformanceReports.kt b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/performance/reporting/PerformanceReports.kt deleted file mode 100644 index d750eea77..000000000 --- a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/performance/reporting/PerformanceReports.kt +++ /dev/null @@ -1,19 +0,0 @@ -package com.didiglobal.booster.task.analyser.performance.reporting - -import org.gradle.api.reporting.CustomizableHtmlReport -import org.gradle.api.reporting.ReportContainer -import org.gradle.api.reporting.SingleFileReport -import org.gradle.api.tasks.Internal - -interface PerformanceReports : ReportContainer { - - @get:Internal - val html: CustomizableHtmlReport - - @get:Internal - val json: SingleFileReport - - @get:Internal - val dot: SingleFileReport - -} \ No newline at end of file diff --git a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/performance/reporting/PerformanceReportsImpl.kt b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/performance/reporting/PerformanceReportsImpl.kt deleted file mode 100644 index 57835bc67..000000000 --- a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/performance/reporting/PerformanceReportsImpl.kt +++ /dev/null @@ -1,32 +0,0 @@ -package com.didiglobal.booster.task.analyser.performance.reporting - -import org.gradle.api.Task -import org.gradle.api.internal.CollectionCallbackActionDecorator -import org.gradle.api.reporting.CustomizableHtmlReport -import org.gradle.api.reporting.SingleFileReport -import org.gradle.api.reporting.internal.CustomizableHtmlReportImpl -import org.gradle.api.reporting.internal.TaskGeneratedSingleFileReport -import org.gradle.api.reporting.internal.TaskReportContainer -import javax.inject.Inject - -open class PerformanceReportsImpl @Inject constructor( - task: Task, - callbackActionDecorator: CollectionCallbackActionDecorator -) : TaskReportContainer(SingleFileReport::class.java, task, callbackActionDecorator), PerformanceReports { - - init { - add(CustomizableHtmlReportImpl::class.java, "html", task) - add(TaskGeneratedSingleFileReport::class.java, "json", task) - add(TaskGeneratedSingleFileReport::class.java, "dot", task) - } - - override val html: CustomizableHtmlReport - get() = withType(CustomizableHtmlReport::class.java).getByName("html") - - override val json: SingleFileReport - get() = getByName("json") - - override val dot: SingleFileReport - get() = getByName("dot") - -} \ No newline at end of file diff --git a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/Constants.kt b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/Constants.kt deleted file mode 100644 index 8a300897d..000000000 --- a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/Constants.kt +++ /dev/null @@ -1,3 +0,0 @@ -package com.didiglobal.booster.task.analyser.reference - -internal const val TASK_ANALYSE_REFERENCE = "analyseReference" diff --git a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/ReferenceAnalysisTask.kt b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/ReferenceAnalysisTask.kt index 91c60979e..d4f93f308 100644 --- a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/ReferenceAnalysisTask.kt +++ b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/ReferenceAnalysisTask.kt @@ -12,24 +12,14 @@ import com.didiglobal.booster.gradle.getResolvedArtifactResults import com.didiglobal.booster.graph.Graph import com.didiglobal.booster.graph.dot.DotGraph import com.didiglobal.booster.graph.json.JsonGraphRender -import com.didiglobal.booster.kotlinx.NCPU import com.didiglobal.booster.kotlinx.green -import com.didiglobal.booster.kotlinx.touch import com.didiglobal.booster.kotlinx.yellow -import com.didiglobal.booster.task.analyser.reference.reporting.ReferencePageRenderer -import com.didiglobal.booster.task.analyser.reference.reporting.ReferenceReports -import com.didiglobal.booster.task.analyser.reference.reporting.ReferenceReportsImpl -import groovy.lang.Closure -import org.gradle.api.Action -import org.gradle.api.DefaultTask +import com.didiglobal.booster.task.analyser.AnalysisTask +import com.didiglobal.booster.task.analyser.report import org.gradle.api.Project import org.gradle.api.artifacts.component.ProjectComponentIdentifier -import org.gradle.api.reporting.Reporting -import org.gradle.api.tasks.Internal -import org.gradle.api.tasks.Nested import org.gradle.api.tasks.TaskAction import org.gradle.reporting.HtmlReportRenderer -import org.gradle.util.ClosureBackedAction import java.util.concurrent.Executors import java.util.concurrent.TimeUnit @@ -38,33 +28,12 @@ import java.util.concurrent.TimeUnit * * @author johnsonlee */ -open class ReferenceAnalysisTask : DefaultTask(), Reporting { +open class ReferenceAnalysisTask : AnalysisTask() { - @get:Internal - var variant: BaseVariant? = null - - @get:Internal - val _reports: ReferenceReports by lazy { - project.objects.newInstance(ReferenceReportsImpl::class.java, this) - } + override fun getDescription(): String = "Analysing class reference for Android/Java projects" @TaskAction - fun analyse() { - if ((!reports.html.isEnabled) && (!reports.dot.isEnabled) && (!reports.json.isEnabled)) { - logger.warn(""" - Please enable reference analysis reports with following configuration: - - tasks.withType(${ReferenceAnalysisTask::class.java.simpleName}) { - reports { - html.enabled = true - json.enabled = true - dot.enabled = true - } - } - """.trimIndent()) - return - } - + override fun analyse() { val upstream = project.getResolvedArtifactResults(true, variant).associate { it.id.componentIdentifier.displayName to when (val id = it.id.componentIdentifier) { is ProjectComponentIdentifier -> project.rootProject.project(id.projectPath).getClassSet(variant) @@ -78,7 +47,7 @@ open class ReferenceAnalysisTask : DefaultTask(), Reporting { val graph = ReferenceAnalyser().analyse(origin, upstream) { klass, progress, duration -> project.logger.info("${green(String.format("%3d%%", progress * 100))} Analyse class ${klass.name} in ${yellow(duration.toMillis())} ms") } - val executor = Executors.newFixedThreadPool(reports.size.coerceAtMost(NCPU)) + val executor = Executors.newFixedThreadPool(3) try { arrayOf(::generateHtmlReport, ::generateDotReport, ::generateJsonReport).map { render -> @@ -94,41 +63,24 @@ open class ReferenceAnalysisTask : DefaultTask(), Reporting { } } - @Nested - override fun getReports(): ReferenceReports = _reports - - override fun reports(closure: Closure<*>): ReferenceReports { - return reports(ClosureBackedAction(closure)) - } - - override fun reports(configureAction: Action): ReferenceReports { - configureAction.execute(_reports) - return _reports - } - private fun generateDotReport(graph: Graph) { - if (!reports.dot.isEnabled) return - try { val options = DotGraph.DotOptions(rankdir = "LR", format = "svg") - DotGraph.DIGRAPH.visualize(graph, reports.dot.destination.touch(), options) + DotGraph.DIGRAPH.visualize(graph, report("dot"), options) } catch (e: Exception) { logger.error(e.message) } } private fun generateHtmlReport(graph: Graph) { - if (!reports.html.isEnabled) return - HtmlReportRenderer().renderSinglePage(graph, ReferencePageRenderer(project, variant), reports.html.destination) + HtmlReportRenderer().renderSinglePage(graph, ReferencePageRenderer(project, variant), report("html")) } private fun generateJsonReport(graph: Graph) { - if (!reports.json.isEnabled) return - val json = JsonGraphRender.render(graph) { node -> """{"component": "${node.component}", "class": "${node.klass}"}""" }.toString() - reports.json.destination.touch().writeText(json) + report("json").writeText(json) } } diff --git a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/ReferenceAnalysisVariantProcessor.kt b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/ReferenceAnalysisVariantProcessor.kt deleted file mode 100644 index 282f16401..000000000 --- a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/ReferenceAnalysisVariantProcessor.kt +++ /dev/null @@ -1,68 +0,0 @@ -package com.didiglobal.booster.task.analyser.reference - -import com.android.build.gradle.AppExtension -import com.android.build.gradle.BaseExtension -import com.android.build.gradle.LibraryExtension -import com.android.build.gradle.api.BaseVariant -import com.android.build.gradle.internal.tasks.factory.dependsOn -import com.didiglobal.booster.BOOSTER -import com.didiglobal.booster.gradle.getAndroid -import com.didiglobal.booster.gradle.getJarTaskProviders -import com.didiglobal.booster.gradle.getTaskName -import com.didiglobal.booster.gradle.isAndroid -import com.didiglobal.booster.gradle.isJava -import com.didiglobal.booster.gradle.isJavaLibrary -import com.didiglobal.booster.gradle.project -import com.didiglobal.booster.task.analyser.configureReportConvention -import com.didiglobal.booster.task.spi.VariantProcessor -import com.google.auto.service.AutoService -import org.gradle.api.Project -import org.gradle.api.Task -import org.gradle.api.UnknownTaskException -import org.gradle.api.tasks.TaskProvider - -@AutoService(VariantProcessor::class) -class ReferenceAnalysisVariantProcessor : VariantProcessor { - - override fun process(variant: BaseVariant) { - variant.project.gradle.projectsEvaluated { gradle -> - gradle.rootProject.allprojects(Project::setup) - } - } - -} - -private fun Project.setup() { - try { - project.tasks.named(TASK_ANALYSE_REFERENCE) - } catch (e: UnknownTaskException) { - when { - isAndroid -> setupAndroid() - isJavaLibrary || isJava -> setupTasks() - } - } -} - -private fun Project.setupTasks(variant: BaseVariant? = null): TaskProvider { - val taskName = variant?.getTaskName(TASK_ANALYSE_REFERENCE) ?: TASK_ANALYSE_REFERENCE - return tasks.register(taskName, ReferenceAnalysisTask::class.java) { - it.group = BOOSTER - it.description = "Analyses class reference for ${if (variant != null) variant.name else "Java projects"}" - it.variant = null - it.configureReportConvention("reference", null) - }.dependsOn(rootProject.allprojects.map { project -> - project.getJarTaskProviders(variant) - }.flatten()) -} - -private fun Project.setupAndroid() { - val subtasks = when (val android = getAndroid()) { - is LibraryExtension -> android.libraryVariants - is AppExtension -> android.applicationVariants - else -> emptyList() - }.map(::setupTasks) - tasks.register(TASK_ANALYSE_REFERENCE) { - it.group = BOOSTER - it.description = "Analyses class reference" - }.dependsOn(subtasks) -} diff --git a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/reporting/ReferencePageRenderer.kt b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/ReferencePageRenderer.kt similarity index 67% rename from booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/reporting/ReferencePageRenderer.kt rename to booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/ReferencePageRenderer.kt index d032e364a..43b36c336 100644 --- a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/reporting/ReferencePageRenderer.kt +++ b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/ReferencePageRenderer.kt @@ -1,8 +1,7 @@ -package com.didiglobal.booster.task.analyser.reference.reporting +package com.didiglobal.booster.task.analyser.reference import com.android.build.gradle.api.BaseVariant import com.didiglobal.booster.cha.asm.Reference -import com.didiglobal.booster.graph.Edge import com.didiglobal.booster.graph.Graph import org.gradle.api.Project import org.gradle.internal.html.SimpleHtmlWriter @@ -10,8 +9,6 @@ import org.gradle.reporting.ReportRenderer import org.gradle.reporting.TabbedPageRenderer import java.net.URL -private val URL_STYLE = ReferencePageRenderer::class.java.getResource("/style.css")!! - class ReferencePageRenderer( private val project: Project, private val variant: BaseVariant? @@ -35,12 +32,19 @@ class ReferencePageRenderer( model.groupBy { it.to.groupBy() }.toSortedMap(Reference.COMPONENT_COMPARATOR).map { (group, edges) -> - group to edges.mapTo(sortedSetOf(compareBy(Reference::klass)), Edge::to) - }.forEach { (title, items) -> + group to edges.groupBy({ it.to.klass }) { it.from.klass } + }.forEach { (title, references) -> startElement("h2").characters(title).endElement() - startElement("ul") - items.forEach { item -> - startElement("li").characters(item.klass).endElement() + startElement("ul").attribute("class", "refs") + references.forEach { (ref, sources) -> + startElement("li") + startElement("div").characters(ref).endElement() + startElement("ul") + sources.forEach { + startElement("li").characters(it).endElement() + } + endElement() + endElement() } endElement() } @@ -49,6 +53,6 @@ class ReferencePageRenderer( } - override fun getStyleUrl(): URL = URL_STYLE + override fun getStyleUrl(): URL = ReferencePageRenderer::class.java.getResource("/style.css") } diff --git a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/reporting/ReferenceReports.kt b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/reporting/ReferenceReports.kt deleted file mode 100644 index 3d681e35b..000000000 --- a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/reporting/ReferenceReports.kt +++ /dev/null @@ -1,19 +0,0 @@ -package com.didiglobal.booster.task.analyser.reference.reporting - -import org.gradle.api.reporting.CustomizableHtmlReport -import org.gradle.api.reporting.ReportContainer -import org.gradle.api.reporting.SingleFileReport -import org.gradle.api.tasks.Internal - -interface ReferenceReports : ReportContainer { - - @get:Internal - val html: CustomizableHtmlReport - - @get:Internal - val json: SingleFileReport - - @get:Internal - val dot: SingleFileReport - -} \ No newline at end of file diff --git a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/reporting/ReferenceReportsImpl.kt b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/reporting/ReferenceReportsImpl.kt deleted file mode 100644 index 0429d5414..000000000 --- a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/reporting/ReferenceReportsImpl.kt +++ /dev/null @@ -1,32 +0,0 @@ -package com.didiglobal.booster.task.analyser.reference.reporting - -import org.gradle.api.Task -import org.gradle.api.internal.CollectionCallbackActionDecorator -import org.gradle.api.reporting.CustomizableHtmlReport -import org.gradle.api.reporting.SingleFileReport -import org.gradle.api.reporting.internal.CustomizableHtmlReportImpl -import org.gradle.api.reporting.internal.TaskGeneratedSingleFileReport -import org.gradle.api.reporting.internal.TaskReportContainer -import javax.inject.Inject - -open class ReferenceReportsImpl @Inject constructor( - task: Task, - callbackActionDecorator: CollectionCallbackActionDecorator -) : TaskReportContainer(SingleFileReport::class.java, task, callbackActionDecorator), ReferenceReports { - - init { - add(CustomizableHtmlReportImpl::class.java, "html", task) - add(TaskGeneratedSingleFileReport::class.java, "json", task) - add(TaskGeneratedSingleFileReport::class.java, "dot", task) - } - - override val html: CustomizableHtmlReport - get() = withType(CustomizableHtmlReport::class.java).getByName("html") - - override val json: SingleFileReport - get() = getByName("json") - - override val dot: SingleFileReport - get() = getByName("dot") - -} \ No newline at end of file diff --git a/booster-task-analyser/src/main/resources/style.css b/booster-task-analyser/src/main/resources/style.css index 1a5e1c106..0623a9e0a 100644 --- a/booster-task-analyser/src/main/resources/style.css +++ b/booster-task-analyser/src/main/resources/style.css @@ -1,3 +1,7 @@ html { - font-family: sans-serif; -} \ No newline at end of file + font-family: arial, sans-serif; +} + +ul.refs ul { + color: rgba(0, 0, 0, 0.3); +} From 2cfef82062de01d84ac2814aaa8f7910bed4ef7c Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Thu, 30 Jun 2022 01:11:15 +0800 Subject: [PATCH 142/187] Load all classes of a composite class set before accessing --- .../main/kotlin/com/didiglobal/booster/cha/CompositeClassSet.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/CompositeClassSet.kt b/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/CompositeClassSet.kt index f420f3cb3..4a3ec7b67 100644 --- a/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/CompositeClassSet.kt +++ b/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/CompositeClassSet.kt @@ -153,7 +153,7 @@ internal class CompositeClassSet( } private fun delegate(classNode: ClassFile, block: ClassSet.() -> R): R { - val classSet = classSets.find { + val classSet = load().classSets.find { it.contains(classNode) } ?: throw IllegalArgumentException("Unknown class node $classNode") return classSet.run(block) From 5e72cd82e6e550295ed34f0bf0a1eb259c8bd201 Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Sat, 2 Jul 2022 00:18:12 +0800 Subject: [PATCH 143/187] Update API reference deployment workflow --- .github/workflows/dokka.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/dokka.yml b/.github/workflows/dokka.yml index 309ec296b..96d009ed4 100644 --- a/.github/workflows/dokka.yml +++ b/.github/workflows/dokka.yml @@ -3,7 +3,10 @@ name: Deploy API reference on: push: tags: - - '*' + - 'v**' + - '!**-alpha**' + - '!**-beta**' + - '!**-rc**' repository_dispatch: types: [publish] From efe3642929d80d00d8e013da1d1d607afcf3b40c Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Sat, 2 Jul 2022 10:06:13 +0800 Subject: [PATCH 144/187] Fix bug of resolving project dependencies --- .../src/main/kotlin/com/didiglobal/booster/gradle/Project.kt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/Project.kt b/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/Project.kt index 086d82f07..7511730d6 100644 --- a/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/Project.kt +++ b/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/Project.kt @@ -111,7 +111,9 @@ private fun Project.getResolvedArtifactResultsRecursively(transitive: Boolean, r if (!transitive) continue - resolved.filterIsInstance().map { + resolved.map { + it.id.componentIdentifier + }.filterIsInstance().map { rootProject.project(it.projectPath) }.let(stack::addAll) } From a166351bb59ab83105edb0ad6addcda6367d238e Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Sat, 2 Jul 2022 11:08:43 +0800 Subject: [PATCH 145/187] [skip ci] Update README & RELEASE-NOTES --- README.md | 4 ++-- RELEASE-NOTES.md | 16 +++++++++++++--- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index a31958901..e389264ab 100644 --- a/README.md +++ b/README.md @@ -76,7 +76,7 @@ The best practise of using Booster is integrating the specific module to solve t ```groovy buildscript { - ext.booster_version = '4.10.0' + ext.booster_version = '4.11.0' repositories { google() mavenCentral() @@ -124,7 +124,7 @@ The `plugins` DSL also supported since Booster *3.0.0* ```groovy plugins { - id 'com.didiglobal.booster' version '4.10.0' + id 'com.didiglobal.booster' version '4.11.0' } ``` diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index 58da1415d..07dec16ef 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -1,3 +1,13 @@ +## v4.11.0 + +- Grouping tasks into group `booster` +- Dependency acquisition enhancement +- Fix transform timing issue +- Add [booster-cha-asm](https://github.com/didi/booster/blob/v4.11.0/booster-cha-asm) to support ASM based CHA +- Improvement for [booster-task-analyser](https://github.com/didi/booster/blob/v4.11.0/booster-task-analyser) +- Load all classes of a composite class set before accessing +- Fix bug of resolving project dependencies + ## v4.10.0 - Improve ClassSet to avoid memory leaks @@ -13,20 +23,20 @@ - Fix [CVE-2020-15250] In JUnit4 from version 4.7 and before 4.13.1, the test rule TemporaryFolder contains a local information disclosure vulnerability - Fix variant artifacts acquiring - Fix integration tests -- Refactoring `booster-graph` to support grouping and render options +- Refactoring [booster-graph](https://github.com/didi/booster/blob/v4.9.0/booster-graph) to support grouping and render options ## v4.8.0 - Fix issue [#311](https://github.com/didi/booster/issues/311) - Add api `mergeNativeLibsTaskProvider` -- Add `booster-graph` to generate graph with `dot` +- Add [booster-graph](https://github.com/didi/booster/blob/v4.8.0/booster-graph) to generate graph with `dot` - Using deferred task instead of creating task directly - Reverse the edge direction of the task graph ## v4.7.0 - Add `DotGraph.visualize()` for graph visualization -- Add `booster-task-graph` for task graph visualization +- Add [booster-task-graph](https://github.com/didi/booster/blob/v4.7.0/booster-task-graph) for task graph visualization - Fix improper task dependencies - Fix issue [#304](https://github.com/didi/booster/issues/304): `ScheduledThreadPoolExecutor` transform bug From 1f0f65d3df8b61161a3f27e07e69df58657b2858 Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Sat, 2 Jul 2022 17:22:38 +0800 Subject: [PATCH 146/187] Enable class set cache for static analysis to reduce memory footprint --- .../booster/cha/asm/AsmClassSetCache.kt | 24 +++++++ .../didiglobal/booster/cha/ClassSetCache.kt | 9 +++ .../booster/task/analyser/AnalysisTask.kt | 4 ++ .../task/analyser/AnalysisVariantProcessor.kt | 70 ++++++++++--------- .../reference/ReferenceAnalysisTask.kt | 19 ++--- 5 files changed, 80 insertions(+), 46 deletions(-) create mode 100644 booster-cha-asm/src/main/kotlin/com/didiglobal/booster/cha/asm/AsmClassSetCache.kt create mode 100644 booster-cha/src/main/kotlin/com/didiglobal/booster/cha/ClassSetCache.kt diff --git a/booster-cha-asm/src/main/kotlin/com/didiglobal/booster/cha/asm/AsmClassSetCache.kt b/booster-cha-asm/src/main/kotlin/com/didiglobal/booster/cha/asm/AsmClassSetCache.kt new file mode 100644 index 000000000..c89e0eba3 --- /dev/null +++ b/booster-cha-asm/src/main/kotlin/com/didiglobal/booster/cha/asm/AsmClassSetCache.kt @@ -0,0 +1,24 @@ +package com.didiglobal.booster.cha.asm + +import com.didiglobal.booster.cha.ClassSet +import com.didiglobal.booster.cha.ClassSetCache +import org.objectweb.asm.tree.ClassNode +import java.io.File +import java.net.URL +import java.util.concurrent.ConcurrentHashMap + +typealias AsmClassSetLoader = (URL) -> AsmClassSet + +class AsmClassSetCache( + private val loader: AsmClassSetLoader = { ClassSet.from(File(it.file)) } +) : ClassSetCache { + + private val cache = ConcurrentHashMap() + + override fun get(url: URL): AsmClassSet { + return cache[url] ?: loader(url).also { + cache[url] = it + } + } + +} \ No newline at end of file diff --git a/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/ClassSetCache.kt b/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/ClassSetCache.kt new file mode 100644 index 000000000..ff0db5992 --- /dev/null +++ b/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/ClassSetCache.kt @@ -0,0 +1,9 @@ +package com.didiglobal.booster.cha + +import java.net.URL + +interface ClassSetCache where ClassParser : ClassFileParser { + + operator fun get(url: URL): ClassSet + +} diff --git a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/AnalysisTask.kt b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/AnalysisTask.kt index 31ee35f5c..513ed3942 100644 --- a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/AnalysisTask.kt +++ b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/AnalysisTask.kt @@ -2,6 +2,7 @@ package com.didiglobal.booster.task.analyser import com.android.build.gradle.api.BaseVariant import com.didiglobal.booster.BOOSTER +import com.didiglobal.booster.cha.asm.AsmClassSetCache import com.didiglobal.booster.kotlinx.touch import org.gradle.api.DefaultTask import org.gradle.api.tasks.Internal @@ -12,6 +13,9 @@ abstract class AnalysisTask : DefaultTask() { @get:Internal var variant: BaseVariant? = null + @get:Internal + lateinit var classSetCache: AsmClassSetCache + @Internal final override fun getGroup(): String = BOOSTER diff --git a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/AnalysisVariantProcessor.kt b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/AnalysisVariantProcessor.kt index 3f1aed26b..e7dba2a8d 100644 --- a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/AnalysisVariantProcessor.kt +++ b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/AnalysisVariantProcessor.kt @@ -5,6 +5,7 @@ import com.android.build.gradle.BaseExtension import com.android.build.gradle.LibraryExtension import com.android.build.gradle.api.BaseVariant import com.android.build.gradle.internal.tasks.factory.dependsOn +import com.didiglobal.booster.cha.asm.AsmClassSetCache import com.didiglobal.booster.gradle.getAndroid import com.didiglobal.booster.gradle.getJarTaskProviders import com.didiglobal.booster.gradle.getTaskName @@ -26,51 +27,56 @@ import kotlin.reflect.KClass @AutoService(VariantProcessor::class) class AnalysisVariantProcessor : VariantProcessor { + private val classSetCache = AsmClassSetCache() + override fun process(variant: BaseVariant) { variant.project.gradle.projectsEvaluated { gradle -> - gradle.rootProject.allprojects(Project::setup) + gradle.rootProject.allprojects { + it.setup() + } } } -} - -private fun Project.setup() { - when { - isAndroid -> { - setupAndroid() - setupAndroid() - } - isJavaLibrary || isJava -> { - setupTasks() + private fun Project.setup() { + when { + isAndroid -> { + setupAndroid() + setupAndroid() + } + isJavaLibrary || isJava -> { + setupTasks() + } } } -} -private inline fun Project.setupTasks(variant: BaseVariant? = null): TaskProvider { - val taskName = variant?.getTaskName(T::class.taskName) ?: T::class.taskName - return try { - tasks.named(taskName) - } catch (e: UnknownTaskException) { - tasks.register(taskName, T::class.java) { - it.variant = variant - }.dependsOn(getUpstreamProjects(false, variant).plus(this).map { - it.getJarTaskProviders(variant) - }.flatten()) + private inline fun Project.setupTasks(variant: BaseVariant? = null): TaskProvider { + val taskName = variant?.getTaskName(T::class.taskName) ?: T::class.taskName + return try { + tasks.named(taskName) + } catch (e: UnknownTaskException) { + tasks.register(taskName, T::class.java) { + it.variant = variant + it.classSetCache = classSetCache + }.dependsOn(getUpstreamProjects(false, variant).plus(this).map { + it.getJarTaskProviders(variant) + }.flatten()) + } } -} -private inline fun Project.setupAndroid() { - when (val android = getAndroid()) { - is LibraryExtension -> android.libraryVariants - is AppExtension -> android.applicationVariants - else -> emptyList() - }.map { - setupTasks(it) + private inline fun Project.setupAndroid() { + when (val android = getAndroid()) { + is LibraryExtension -> android.libraryVariants + is AppExtension -> android.applicationVariants + else -> emptyList() + }.map { + setupTasks(it) + } } + } -internal inline val KClass.category: String +internal inline val KClass.category: String get() = T::class.java.simpleName.substringBefore(AnalysisTask::class.java.simpleName).toLowerCase() -internal inline val KClass.taskName: String +internal inline val KClass.taskName: String get() = "analyse${category.capitalize()}" diff --git a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/ReferenceAnalysisTask.kt b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/ReferenceAnalysisTask.kt index d4f93f308..2c93a7a52 100644 --- a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/ReferenceAnalysisTask.kt +++ b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/ReferenceAnalysisTask.kt @@ -1,11 +1,7 @@ package com.didiglobal.booster.task.analyser.reference -import com.android.build.gradle.api.BaseVariant -import com.didiglobal.booster.cha.ClassSet -import com.didiglobal.booster.cha.asm.AsmClassSet import com.didiglobal.booster.cha.asm.Reference import com.didiglobal.booster.cha.asm.ReferenceAnalyser -import com.didiglobal.booster.cha.asm.from import com.didiglobal.booster.cha.fold import com.didiglobal.booster.gradle.getJars import com.didiglobal.booster.gradle.getResolvedArtifactResults @@ -16,7 +12,6 @@ import com.didiglobal.booster.kotlinx.green import com.didiglobal.booster.kotlinx.yellow import com.didiglobal.booster.task.analyser.AnalysisTask import com.didiglobal.booster.task.analyser.report -import org.gradle.api.Project import org.gradle.api.artifacts.component.ProjectComponentIdentifier import org.gradle.api.tasks.TaskAction import org.gradle.reporting.HtmlReportRenderer @@ -36,13 +31,15 @@ open class ReferenceAnalysisTask : AnalysisTask() { override fun analyse() { val upstream = project.getResolvedArtifactResults(true, variant).associate { it.id.componentIdentifier.displayName to when (val id = it.id.componentIdentifier) { - is ProjectComponentIdentifier -> project.rootProject.project(id.projectPath).getClassSet(variant) - else -> ClassSet.from(it.file) + is ProjectComponentIdentifier -> project.rootProject.project(id.projectPath).getJars(variant).map { file -> + classSetCache[file.toURI().toURL()] + }.fold() + else -> classSetCache[it.file.toURI().toURL()] } } val origin = project.name to project.getJars(variant).map { - ClassSet.from(it) + classSetCache[it.toURI().toURL()] }.fold() val graph = ReferenceAnalyser().analyse(origin, upstream) { klass, progress, duration -> project.logger.info("${green(String.format("%3d%%", progress * 100))} Analyse class ${klass.name} in ${yellow(duration.toMillis())} ms") @@ -84,9 +81,3 @@ open class ReferenceAnalysisTask : AnalysisTask() { } } - -private fun Project.getClassSet(variant: BaseVariant?): AsmClassSet { - return project.getJars(variant).map { - ClassSet.from(it) - }.fold() -} From 5f7de66de25a8c6303d746177c1bfc84d6ca7fdb Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Mon, 4 Jul 2022 23:23:00 +0800 Subject: [PATCH 147/187] Support Gradle configuration cache #248 --- .../booster/gradle/BoosterAppTransform.kt | 14 ----- .../booster/gradle/BoosterLibTransform.kt | 14 ----- .../booster/gradle/BoosterPlugin.kt | 50 +++++++++------- .../booster/gradle/BoosterTransform.kt | 56 +++++++---------- .../gradle/BoosterTransformInvocation.kt | 37 +++++++++--- .../BoosterTransformTaskExecutionListener.kt | 2 + .../booster/gradle/ServiceLoader.kt | 60 ++++++++++++++----- .../booster/gradle/TransformParameter.kt | 19 ++++++ .../gradle/internal/BoosterTransformV34.kt | 8 +-- 9 files changed, 148 insertions(+), 112 deletions(-) delete mode 100644 booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/BoosterAppTransform.kt delete mode 100644 booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/BoosterLibTransform.kt create mode 100644 booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/TransformParameter.kt diff --git a/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/BoosterAppTransform.kt b/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/BoosterAppTransform.kt deleted file mode 100644 index 215aa3dc8..000000000 --- a/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/BoosterAppTransform.kt +++ /dev/null @@ -1,14 +0,0 @@ -package com.didiglobal.booster.gradle - -import org.gradle.api.Project - -/** - * Represents android transform for application project - * - * @author johnsonlee - */ -@Deprecated( - message = "Use class BoosterTransform instead", - replaceWith = ReplaceWith(expression = "BoosterTransform(project)") -) -class BoosterAppTransform(project: Project) : BoosterTransform(project) diff --git a/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/BoosterLibTransform.kt b/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/BoosterLibTransform.kt deleted file mode 100644 index da0f6a8db..000000000 --- a/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/BoosterLibTransform.kt +++ /dev/null @@ -1,14 +0,0 @@ -package com.didiglobal.booster.gradle - -import org.gradle.api.Project - -/** - * Represents android transform for library project - * - * @author johnsonlee - */ -@Deprecated( - message = "Use class BoosterTransform instead", - replaceWith = ReplaceWith(expression = "BoosterTransform(project)") -) -class BoosterLibTransform(project: Project) : BoosterTransform(project) diff --git a/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/BoosterPlugin.kt b/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/BoosterPlugin.kt index ecf330eb2..fa26c6b27 100644 --- a/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/BoosterPlugin.kt +++ b/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/BoosterPlugin.kt @@ -1,7 +1,10 @@ package com.didiglobal.booster.gradle import com.android.build.gradle.AppExtension +import com.android.build.gradle.BaseExtension import com.android.build.gradle.LibraryExtension +import com.android.build.gradle.api.BaseVariant +import org.gradle.api.GradleException import org.gradle.api.Plugin import org.gradle.api.Project @@ -13,34 +16,37 @@ import org.gradle.api.Project class BoosterPlugin : Plugin { override fun apply(project: Project) { - project.gradle.addListener(BoosterTransformTaskExecutionListener(project)) + project.extensions.findByName("android") ?: throw GradleException("$project is not an Android project") - when { - project.plugins.hasPlugin("com.android.application") || project.plugins.hasPlugin("com.android.dynamic-feature") -> project.getAndroid().let { android -> - android.registerTransform(BoosterTransform.newInstance(project)) + if (!GTE_V3_6) { + project.gradle.addListener(BoosterTransformTaskExecutionListener(project)) + } + + val android = project.getAndroid() + when (android) { + is AppExtension -> android.applicationVariants + is LibraryExtension -> android.libraryVariants + else -> emptyList() + }.takeIf>(Collection::isNotEmpty)?.let { variants -> + android.registerTransform(BoosterTransform.newInstance(project)) + if (project.state.executed) { + project.setup(variants) + } else { project.afterEvaluate { - loadVariantProcessors(project).let { processors -> - android.applicationVariants.forEach { variant -> - processors.forEach { processor -> - processor.process(variant) - } - } - } + project.setup(variants) } } - project.plugins.hasPlugin("com.android.library") -> project.getAndroid().let { android -> - android.registerTransform(BoosterTransform.newInstance(project)) - project.afterEvaluate { - loadVariantProcessors(project).let { processors -> - android.libraryVariants.forEach { variant -> - processors.forEach { processor -> - processor.process(variant) - } - } - } - } + } + } + + private fun Project.setup(variants: Collection) { + val processors = loadVariantProcessors(this) + variants.forEach { variant -> + processors.forEach { processor -> + processor.process(variant) } } } + } diff --git a/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/BoosterTransform.kt b/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/BoosterTransform.kt index 991beab5f..172e61962 100644 --- a/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/BoosterTransform.kt +++ b/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/BoosterTransform.kt @@ -3,11 +3,8 @@ package com.didiglobal.booster.gradle import com.android.build.api.transform.QualifiedContent import com.android.build.api.transform.Transform import com.android.build.api.transform.TransformInvocation -import com.android.build.gradle.BaseExtension import com.android.build.gradle.internal.pipeline.TransformManager -import com.didiglobal.booster.annotations.Priority import com.didiglobal.booster.gradle.internal.BoosterTransformV34 -import com.didiglobal.booster.transform.AbstractKlassPool import org.gradle.api.Project /** @@ -15,31 +12,15 @@ import org.gradle.api.Project * * @author johnsonlee */ -open class BoosterTransform protected constructor(val project: Project) : Transform() { +open class BoosterTransform protected constructor( + internal val parameter: TransformParameter +) : Transform() { - /* - * Preload transformers as List to fix NoSuchElementException caused by ServiceLoader in parallel mode - */ - internal val transformers = loadTransformers(project.buildscript.classLoader).sortedBy { - it.javaClass.getAnnotation(Priority::class.java)?.value ?: 0 + internal val verifyEnabled by lazy { + parameter.properties[OPT_TRANSFORM_VERIFY]?.toString()?.toBoolean() ?: false } - internal val verifyEnabled = project.getProperty(OPT_TRANSFORM_VERIFY, false) - - private val android: BaseExtension = project.getAndroid() - - private lateinit var androidKlassPool: AbstractKlassPool - - init { - project.afterEvaluate { - androidKlassPool = object : AbstractKlassPool(android.bootClasspath) {} - } - } - - val bootKlassPool: AbstractKlassPool - get() = androidKlassPool - - override fun getName() = "booster" + override fun getName() = parameter.name override fun isIncremental() = !verifyEnabled @@ -48,18 +29,18 @@ open class BoosterTransform protected constructor(val project: Project) : Transf override fun getInputTypes(): MutableSet = TransformManager.CONTENT_CLASS override fun getScopes(): MutableSet = when { - transformers.isEmpty() -> mutableSetOf() - project.plugins.hasPlugin("com.android.library") -> SCOPE_PROJECT - project.plugins.hasPlugin("com.android.application") -> SCOPE_FULL_PROJECT - project.plugins.hasPlugin("com.android.dynamic-feature") -> SCOPE_FULL_WITH_FEATURES + parameter.transformers.isEmpty() -> mutableSetOf() + parameter.plugins.hasPlugin("com.android.library") -> SCOPE_PROJECT + parameter.plugins.hasPlugin("com.android.application") -> SCOPE_FULL_PROJECT + parameter.plugins.hasPlugin("com.android.dynamic-feature") -> SCOPE_FULL_WITH_FEATURES else -> TODO("Not an Android project") } override fun getReferencedScopes(): MutableSet = when { - transformers.isEmpty() -> when { - project.plugins.hasPlugin("com.android.library") -> SCOPE_PROJECT - project.plugins.hasPlugin("com.android.application") -> SCOPE_FULL_PROJECT - project.plugins.hasPlugin("com.android.dynamic-feature") -> SCOPE_FULL_WITH_FEATURES + parameter.transformers.isEmpty() -> when { + parameter.plugins.hasPlugin("com.android.library") -> SCOPE_PROJECT + parameter.plugins.hasPlugin("com.android.application") -> SCOPE_FULL_PROJECT + parameter.plugins.hasPlugin("com.android.dynamic-feature") -> SCOPE_FULL_WITH_FEATURES else -> TODO("Not an Android project") } else -> super.getReferencedScopes() @@ -78,9 +59,12 @@ open class BoosterTransform protected constructor(val project: Project) : Transf companion object { - fun newInstance(project: Project): BoosterTransform = when { - GTE_V3_4 -> BoosterTransformV34(project) - else -> BoosterTransform(project) + fun newInstance(project: Project, name: String = "booster"): BoosterTransform { + val parameter = project.newTransformParameter(name) + return when { + GTE_V3_4 -> BoosterTransformV34(parameter) + else -> BoosterTransform(parameter) + } } } diff --git a/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/BoosterTransformInvocation.kt b/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/BoosterTransformInvocation.kt index cd108a25c..5aba2b3a7 100644 --- a/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/BoosterTransformInvocation.kt +++ b/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/BoosterTransformInvocation.kt @@ -7,6 +7,7 @@ import com.android.build.api.transform.QualifiedContent import com.android.build.api.transform.Status.NOTCHANGED import com.android.build.api.transform.Status.REMOVED import com.android.build.api.transform.TransformInvocation +import com.android.build.gradle.BaseExtension import com.android.dex.DexFormat import com.didiglobal.booster.gradle.util.dex import com.didiglobal.booster.kotlinx.NCPU @@ -17,6 +18,7 @@ import com.didiglobal.booster.transform.AbstractKlassPool import com.didiglobal.booster.transform.ArtifactManager import com.didiglobal.booster.transform.Collector import com.didiglobal.booster.transform.TransformContext +import com.didiglobal.booster.transform.Transformer import com.didiglobal.booster.transform.artifacts import com.didiglobal.booster.transform.util.CompositeCollector import com.didiglobal.booster.transform.util.collect @@ -38,15 +40,30 @@ import java.util.concurrent.TimeUnit */ internal class BoosterTransformInvocation( private val delegate: TransformInvocation, - internal val transform: BoosterTransform + private val transform: BoosterTransform ) : TransformInvocation by delegate, TransformContext, ArtifactManager { - private val project = transform.project - private val outputs = CopyOnWriteArrayList() private val collectors = CopyOnWriteArrayList>() + /* + * Preload transformers as List to fix NoSuchElementException caused by ServiceLoader in parallel mode + */ + private val transformers: List = transform.parameter.transformers.map { + try { + it.getConstructor(ClassLoader::class.java).newInstance(transform.parameter.buildscript.classLoader) + } catch (e1: Throwable) { + try { + it.getConstructor().newInstance() + } catch (e2: Throwable) { + throw e2.apply { + addSuppressed(e1) + } + } + } + } + override val name: String = delegate.context.variantName override val projectDir: File = project.projectDir @@ -71,7 +88,13 @@ internal class BoosterTransformInvocation( } } - override val klassPool: AbstractKlassPool = object : AbstractKlassPool(compileClasspath, transform.bootKlassPool) {} + private val bootKlassPool by lazy { + object : AbstractKlassPool(project.getAndroid().bootClasspath) {} + } + + override val klassPool by lazy { + object : AbstractKlassPool(compileClasspath, bootKlassPool) {} + } override val applicationId = delegate.applicationId @@ -114,13 +137,13 @@ internal class BoosterTransformInvocation( } private fun onPreTransform() { - transform.transformers.forEach { + transformers.forEach { it.onPreTransform(this) } } private fun onPostTransform() { - transform.transformers.forEach { + transformers.forEach { it.onPostTransform(this) } } @@ -241,7 +264,7 @@ internal class BoosterTransformInvocation( } private fun ByteArray.transform(): ByteArray { - return transform.transformers.fold(this) { bytes, transformer -> + return transformers.fold(this) { bytes, transformer -> transformer.transform(this@BoosterTransformInvocation, bytes) } } diff --git a/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/BoosterTransformTaskExecutionListener.kt b/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/BoosterTransformTaskExecutionListener.kt index d68d95539..a8de0efda 100644 --- a/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/BoosterTransformTaskExecutionListener.kt +++ b/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/BoosterTransformTaskExecutionListener.kt @@ -8,6 +8,8 @@ import org.gradle.api.Task import org.gradle.api.execution.TaskExecutionAdapter /** + * Only for AGP version lower than 3.6.0 + * * @author neighbWang */ class BoosterTransformTaskExecutionListener(private val project: Project) : TaskExecutionAdapter() { diff --git a/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/ServiceLoader.kt b/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/ServiceLoader.kt index f163957fd..b8b0fa4d5 100644 --- a/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/ServiceLoader.kt +++ b/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/ServiceLoader.kt @@ -11,45 +11,75 @@ internal interface ServiceLoader { fun load(vararg args: Any): List } -internal class ServiceLoaderFactory(private val classLoader: ClassLoader, private val service: Class) { +@Suppress("UNCHECKED_CAST") +private class ServiceLoaderImpl( + private val classLoader: ClassLoader, + private val service: Class, + private vararg val types: Class<*> +) : ServiceLoader { - fun newServiceLoader(vararg types: Class<*>) = object : ServiceLoader { + private val name = "META-INF/services/${service.name}" - @Suppress("UNCHECKED_CAST") - override fun load(vararg args: Any) = classLoader.getResources("META-INF/services/${service.name}")?.asSequence()?.map(::parse)?.flatten()?.toSet()?.map { provider -> + override fun load(vararg args: Any): List { + return lookup().map { provider -> try { - val providerClass = Class.forName(provider, false, classLoader) - if (!service.isAssignableFrom(providerClass)) { - throw ServiceConfigurationError("Provider $provider not a subtype") - } - try { - providerClass.getConstructor(*types).newInstance(*args) as T + provider.getConstructor(*types).newInstance(*args) as T } catch (e: NoSuchMethodException) { - providerClass.newInstance() as T + provider.newInstance() as T } } catch (e: ClassNotFoundException) { throw ServiceConfigurationError("Provider $provider not found") } - } ?: emptyList() + } + } + fun lookup(): Set> { + return classLoader.getResources(name)?.asSequence()?.map(::parse)?.flatten()?.toSet()?.mapNotNull { provider -> + try { + val providerClass = Class.forName(provider, false, classLoader) + if (!service.isAssignableFrom(providerClass)) { + throw ServiceConfigurationError("Provider $provider not a subtype") + } + providerClass as Class + } catch (e: Throwable) { + null + } + }?.toSet() ?: emptySet() } +} + +internal class ServiceLoaderFactory(private val classLoader: ClassLoader, private val service: Class) { + fun newServiceLoader(vararg types: Class<*>): ServiceLoader = ServiceLoaderImpl(classLoader, service, *types) +} +internal inline fun newServiceLoader(classLoader: ClassLoader, vararg types: Class<*>): ServiceLoader { + return ServiceLoaderFactory(classLoader, T::class.java).newServiceLoader(*types) } -internal inline fun newServiceLoader(classLoader: ClassLoader, vararg types: Class<*>) = ServiceLoaderFactory(classLoader, T::class.java).newServiceLoader(*types) +/** + * Load [Transformer]s with the specified [classLoader] + */ +@Throws(ServiceConfigurationError::class) +internal fun lookupTransformers(classLoader: ClassLoader): Set> { + return ServiceLoaderImpl(classLoader, Transformer::class.java, ClassLoader::class.java).lookup() +} /** * Load [Transformer]s with the specified [classLoader] */ @Throws(ServiceConfigurationError::class) -internal fun loadTransformers(classLoader: ClassLoader) = newServiceLoader(classLoader, ClassLoader::class.java).load(classLoader) +internal fun loadTransformers(classLoader: ClassLoader): List { + return newServiceLoader(classLoader, ClassLoader::class.java).load(classLoader) +} /** * Load [VariantProcessor]s with the specified [classLoader] */ @Throws(ServiceConfigurationError::class) -internal fun loadVariantProcessors(project: Project) = newServiceLoader(project.buildscript.classLoader, Project::class.java).load(project) +internal fun loadVariantProcessors(project: Project): List { + return newServiceLoader(project.buildscript.classLoader, Project::class.java).load(project) +} @Throws(ServiceConfigurationError::class) private fun parse(u: URL) = try { diff --git a/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/TransformParameter.kt b/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/TransformParameter.kt new file mode 100644 index 000000000..86a87f172 --- /dev/null +++ b/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/TransformParameter.kt @@ -0,0 +1,19 @@ +package com.didiglobal.booster.gradle + +import com.didiglobal.booster.transform.Transformer +import org.gradle.api.Project +import org.gradle.api.initialization.dsl.ScriptHandler +import org.gradle.api.plugins.PluginContainer +import java.io.Serializable + +data class TransformParameter( + val name: String, + val buildscript: ScriptHandler, + val plugins: PluginContainer, + val properties: Map, + val transformers: Set> +) : Serializable + +fun Project.newTransformParameter(name: String): TransformParameter { + return TransformParameter(name, buildscript, plugins, properties, lookupTransformers(buildscript.classLoader)) +} \ No newline at end of file diff --git a/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/internal/BoosterTransformV34.kt b/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/internal/BoosterTransformV34.kt index 7c1596b6d..68db710df 100644 --- a/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/internal/BoosterTransformV34.kt +++ b/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/internal/BoosterTransformV34.kt @@ -2,9 +2,9 @@ package com.didiglobal.booster.gradle.internal import com.android.build.api.variant.VariantInfo import com.didiglobal.booster.gradle.BoosterTransform -import org.gradle.api.Project +import com.didiglobal.booster.gradle.TransformParameter -internal class BoosterTransformV34(project: Project) : BoosterTransform(project) { +internal class BoosterTransformV34(parameter: TransformParameter) : BoosterTransform(parameter) { @Suppress("UnstableApiUsage") override fun applyToVariant(variant: VariantInfo): Boolean { @@ -13,11 +13,11 @@ internal class BoosterTransformV34(project: Project) : BoosterTransform(project) @Suppress("UnstableApiUsage") private val VariantInfo.fullVariantEnabled: Boolean - get() = project.findProperty("booster.transform.${fullVariantName}.enabled")?.toString()?.toBoolean() ?: true + get() = parameter.properties["booster.transform.${fullVariantName}.enabled"]?.toString()?.toBoolean() ?: true @Suppress("UnstableApiUsage") private val VariantInfo.buildTypeEnabled: Boolean - get() = project.findProperty("booster.transform.${buildTypeName}.enabled")?.toString()?.toBoolean() ?: true + get() = parameter.properties["booster.transform.${buildTypeName}.enabled"]?.toString()?.toBoolean() ?: true } From c81fdb281c10702c238a763559ba7ef81e5df1ed Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Thu, 14 Jul 2022 11:01:12 +0800 Subject: [PATCH 148/187] Loading and initializing variant processor earlier --- .../booster/gradle/BoosterPlugin.kt | 29 ++++++++++--------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/BoosterPlugin.kt b/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/BoosterPlugin.kt index fa26c6b27..921ae13ec 100644 --- a/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/BoosterPlugin.kt +++ b/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/BoosterPlugin.kt @@ -4,6 +4,7 @@ import com.android.build.gradle.AppExtension import com.android.build.gradle.BaseExtension import com.android.build.gradle.LibraryExtension import com.android.build.gradle.api.BaseVariant +import com.didiglobal.booster.task.spi.VariantProcessor import org.gradle.api.GradleException import org.gradle.api.Plugin import org.gradle.api.Project @@ -22,6 +23,17 @@ class BoosterPlugin : Plugin { project.gradle.addListener(BoosterTransformTaskExecutionListener(project)) } + val processors = loadVariantProcessors(project) + if (project.state.executed) { + project.setup(processors) + } else { + project.afterEvaluate { + project.setup(processors) + } + } + } + + private fun Project.setup(processors: List) { val android = project.getAndroid() when (android) { is AppExtension -> android.applicationVariants @@ -29,24 +41,13 @@ class BoosterPlugin : Plugin { else -> emptyList() }.takeIf>(Collection::isNotEmpty)?.let { variants -> android.registerTransform(BoosterTransform.newInstance(project)) - if (project.state.executed) { - project.setup(variants) - } else { - project.afterEvaluate { - project.setup(variants) + variants.forEach { variant -> + processors.forEach { processor -> + processor.process(variant) } } } } - private fun Project.setup(variants: Collection) { - val processors = loadVariantProcessors(this) - variants.forEach { variant -> - processors.forEach { processor -> - processor.process(variant) - } - } - } - } From d8a4ab788e85612d887da75b29efeed11ee987ce Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Sat, 16 Jul 2022 09:11:42 +0800 Subject: [PATCH 149/187] [skip ci] Update README & RELEASE-NOTES --- README.md | 4 ++-- RELEASE-NOTES.md | 6 ++++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index e389264ab..beb287652 100644 --- a/README.md +++ b/README.md @@ -76,7 +76,7 @@ The best practise of using Booster is integrating the specific module to solve t ```groovy buildscript { - ext.booster_version = '4.11.0' + ext.booster_version = '4.12.0' repositories { google() mavenCentral() @@ -124,7 +124,7 @@ The `plugins` DSL also supported since Booster *3.0.0* ```groovy plugins { - id 'com.didiglobal.booster' version '4.11.0' + id 'com.didiglobal.booster' version '4.12.0' } ``` diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index 07dec16ef..27a25bdc2 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -1,3 +1,9 @@ +## v4.12.0 + +- Enable class set cache for static analysis to reduce memory footprint +- Support Gradle configuration cache [#248](https://github.com/didi/booster/issues/248) +- Loading and initializing variant processor earlier + ## v4.11.0 - Grouping tasks into group `booster` From 6eb4d96f083c9dcb98f475ee8703401db38a0471 Mon Sep 17 00:00:00 2001 From: CodeIdeal Date: Thu, 28 Jul 2022 13:03:31 +0800 Subject: [PATCH 150/187] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=9C=A8Android=205.?= =?UTF-8?q?1=E5=8F=8A=E4=BB=A5=E4=B8=8B=E7=89=88=E6=9C=AC=EF=BC=8C?= =?UTF-8?q?=E7=94=B1=E4=BA=8E=E9=BB=98=E8=AE=A4=E7=9A=84KeepAliveTime?= =?UTF-8?q?=E4=B8=BA0,=20=E5=AF=BC=E8=87=B4=E5=9C=A8=E8=B0=83=E7=94=A8allo?= =?UTF-8?q?wCoreThreadTimeOut=E6=96=B9=E6=B3=95=E6=97=B6keepAliveTime?= =?UTF-8?q?=E6=A0=A1=E9=AA=8C=E5=A4=B1=E8=B4=A5=E4=BB=8E=E8=80=8C=E6=8A=9B?= =?UTF-8?q?=E5=87=BAIllegalArgumentException=E5=BC=82=E5=B8=B8=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ShadowScheduledThreadPoolExecutor.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/booster-android-instrument-thread/src/main/java/com/didiglobal/booster/instrument/ShadowScheduledThreadPoolExecutor.java b/booster-android-instrument-thread/src/main/java/com/didiglobal/booster/instrument/ShadowScheduledThreadPoolExecutor.java index 716a1d3ad..4ce0810fb 100644 --- a/booster-android-instrument-thread/src/main/java/com/didiglobal/booster/instrument/ShadowScheduledThreadPoolExecutor.java +++ b/booster-android-instrument-thread/src/main/java/com/didiglobal/booster/instrument/ShadowScheduledThreadPoolExecutor.java @@ -3,6 +3,7 @@ import java.util.concurrent.RejectedExecutionHandler; import java.util.concurrent.ScheduledThreadPoolExecutor; import java.util.concurrent.ThreadFactory; +import java.util.concurrent.TimeUnit; /** * @author johnsonlee @@ -40,6 +41,9 @@ public ShadowScheduledThreadPoolExecutor( ) { super(corePoolSize, new NamedThreadFactory(prefix)); if (optimize) { + if(getKeepAliveTime(TimeUnit.NANOSECONDS) <= 0L) { + setKeepAliveTime(10L, TimeUnit.MILLISECONDS); + } allowCoreThreadTimeOut(true); } } @@ -79,6 +83,9 @@ public ShadowScheduledThreadPoolExecutor( ) { super(corePoolSize, new NamedThreadFactory(threadFactory, prefix)); if (optimize) { + if(getKeepAliveTime(TimeUnit.NANOSECONDS) <= 0L) { + setKeepAliveTime(10L, TimeUnit.MILLISECONDS); + } allowCoreThreadTimeOut(true); } } @@ -118,6 +125,9 @@ public ShadowScheduledThreadPoolExecutor( ) { super(corePoolSize, new NamedThreadFactory(prefix), handler); if (optimize) { + if(getKeepAliveTime(TimeUnit.NANOSECONDS) <= 0L) { + setKeepAliveTime(10L, TimeUnit.MILLISECONDS); + } allowCoreThreadTimeOut(true); } } @@ -161,6 +171,9 @@ public ShadowScheduledThreadPoolExecutor( ) { super(corePoolSize, new NamedThreadFactory(threadFactory, prefix), handler); if (optimize) { + if(getKeepAliveTime(TimeUnit.NANOSECONDS) <= 0L) { + setKeepAliveTime(10L, TimeUnit.MILLISECONDS); + } allowCoreThreadTimeOut(true); } } From 769b75f825c00e7fee282fb0c8bdbb73467767d5 Mon Sep 17 00:00:00 2001 From: wuyue Date: Wed, 17 Aug 2022 23:25:33 +0800 Subject: [PATCH 151/187] =?UTF-8?q?fix=204.1.2.0=20transformClassesWithBoo?= =?UTF-8?q?ster=20=E6=97=A0=E6=B3=95=E6=B3=A8=E5=86=8C=E6=88=90=E5=8A=9F?= =?UTF-8?q?=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/kotlin/com/didiglobal/booster/gradle/BoosterPlugin.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/BoosterPlugin.kt b/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/BoosterPlugin.kt index 921ae13ec..d42b1c286 100644 --- a/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/BoosterPlugin.kt +++ b/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/BoosterPlugin.kt @@ -31,6 +31,7 @@ class BoosterPlugin : Plugin { project.setup(processors) } } + project.getAndroid().registerTransform(BoosterTransform.newInstance(project)) } private fun Project.setup(processors: List) { @@ -40,7 +41,6 @@ class BoosterPlugin : Plugin { is LibraryExtension -> android.libraryVariants else -> emptyList() }.takeIf>(Collection::isNotEmpty)?.let { variants -> - android.registerTransform(BoosterTransform.newInstance(project)) variants.forEach { variant -> processors.forEach { processor -> processor.process(variant) From 02b5655989fdb9d96cf2fe15693d78facc8858d3 Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Mon, 22 Aug 2022 23:05:20 +0800 Subject: [PATCH 152/187] Fix issue #368 remove JAR signature related files to prevent JAR signature verification --- .../didiglobal/booster/transform/util/transform.kt | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/booster-transform-util/src/main/kotlin/com/didiglobal/booster/transform/util/transform.kt b/booster-transform-util/src/main/kotlin/com/didiglobal/booster/transform/util/transform.kt index fd282d931..464239794 100644 --- a/booster-transform-util/src/main/kotlin/com/didiglobal/booster/transform/util/transform.kt +++ b/booster-transform-util/src/main/kotlin/com/didiglobal/booster/transform/util/transform.kt @@ -64,7 +64,9 @@ fun ZipFile.transform( runnable.run() })) - entries().asSequence().forEach { entry -> + entries().asSequence().filterNot { + isJarSignatureRelatedFiles(it.name) + }.forEach { entry -> if (!entries.contains(entry.name)) { val zae = entryFactory(entry) val stream = InputStreamSupplier { @@ -108,7 +110,9 @@ fun ZipInputStream.transform( val entries = mutableSetOf() while (true) { - val entry = nextEntry?.takeIf { true } ?: break + val entry = nextEntry?.takeUnless { + isJarSignatureRelatedFiles(it.name) + } ?: break if (!entries.contains(entry.name)) { val zae = entryFactory(entry) val data = readBytes() @@ -131,6 +135,12 @@ fun ZipInputStream.transform( transform(it, entryFactory, transformer) } +private val JAR_SIGNATURE_EXTENSIONS = setOf("SF", "RSA", "DSA", "EC") + +private fun isJarSignatureRelatedFiles(name: String): Boolean { + return name.startsWith("META-INF/") && name.substringAfterLast('.') in JAR_SIGNATURE_EXTENSIONS +} + private const val DEFAULT_BUFFER_SIZE = 8 * 1024 private fun InputStream.readBytes(estimatedSize: Int = DEFAULT_BUFFER_SIZE): ByteArray { From 706e94e124966d2049519fb98ce3e840abefba48 Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Tue, 23 Aug 2022 00:22:38 +0800 Subject: [PATCH 153/187] Fix issue #370 improve the compatibility of AGP 7.2.0+ --- .../didiglobal/booster/gradle/BaseVariant.kt | 38 ++++++++++++++----- .../com/didiglobal/booster/gradle/Project.kt | 8 +--- 2 files changed, 31 insertions(+), 15 deletions(-) diff --git a/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/BaseVariant.kt b/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/BaseVariant.kt index 3c6a8f8b1..fe8cc63ad 100644 --- a/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/BaseVariant.kt +++ b/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/BaseVariant.kt @@ -3,8 +3,6 @@ package com.didiglobal.booster.gradle import com.android.build.gradle.BaseExtension import com.android.build.gradle.api.BaseVariant import com.android.build.gradle.internal.publishing.AndroidArtifacts -import com.android.build.gradle.internal.publishing.AndroidArtifacts.ConsumedConfigType.RUNTIME_CLASSPATH -import com.android.build.gradle.internal.publishing.AndroidArtifacts.ArtifactScope.ALL import com.android.build.gradle.tasks.ProcessAndroidResources import com.android.builder.core.VariantType import com.android.builder.model.ApiVersion @@ -15,9 +13,7 @@ import org.gradle.api.Project import org.gradle.api.Task import org.gradle.api.UnknownTaskException import org.gradle.api.artifacts.ArtifactCollection -import org.gradle.api.artifacts.component.ComponentIdentifier import org.gradle.api.artifacts.result.ResolvedArtifactResult -import org.gradle.api.artifacts.result.ResolvedDependencyResult import org.gradle.api.file.FileCollection import org.gradle.api.tasks.TaskProvider import java.io.File @@ -81,38 +77,62 @@ val BaseVariant.processJavaResourcesTaskProvider: TaskProvider val BaseVariant.processResTaskProvider: TaskProvider? get() = try { project.tasks.named(getTaskName("process", "Resources")) - } catch (e: UnknownTaskException) { + } catch (_: UnknownTaskException) { null } val BaseVariant.bundleResourcesTaskProvider: TaskProvider? get() = try { project.tasks.named(getTaskName("bundle", "Resources")) - } catch (e: UnknownTaskException) { + } catch (_: UnknownTaskException) { null } val BaseVariant.packageTaskProvider: TaskProvider? get() = try { project.tasks.named(getTaskName("package")) - } catch (e: UnknownTaskException) { + } catch (_: UnknownTaskException) { null } val BaseVariant.packageBundleTaskProvider: TaskProvider? get() = try { project.tasks.named(getTaskName("package", "Bundle")) - } catch (e: UnknownTaskException) { + } catch (_: UnknownTaskException) { null } val BaseVariant.mergeJavaResourceTaskProvider: TaskProvider? get() = try { project.tasks.named(getTaskName("merge", "JavaResource")) - } catch (e: UnknownTaskException) { + } catch (_: UnknownTaskException) { null } +val BaseVariant.createFullJarTaskProvider: TaskProvider? + get() = try { + project.tasks.named(getTaskName("createFullJar")) + } catch (_: UnknownTaskException) { + null + } + +val BaseVariant.bundleClassesTaskProvider: TaskProvider? + get() = try { + // for AGP < 7.2.0 + project.tasks.named(getTaskName("bundle", "Classes")) + } catch (_: UnknownTaskException) { + // for AGP >= 7.2.0+ + try { + project.tasks.named(getTaskName("bundle", "ClassesToRuntimeJar")) + } catch (_: UnknownTaskException) { + try { + project.tasks.named(getTaskName("bundle", "ClassesToCompileJar")) + } catch (_: UnknownTaskException) { + null + } + } + } + fun BaseVariant.getTaskName(prefix: String): String = AGP.run { getTaskName(prefix) } diff --git a/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/Project.kt b/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/Project.kt index 7511730d6..10995bf87 100644 --- a/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/Project.kt +++ b/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/Project.kt @@ -132,12 +132,8 @@ fun Project.getJars(variant: BaseVariant? = null): Set = getJarTaskProvide fun Project.getJarTaskProviders(variant: BaseVariant? = null): Collection> = when { isAndroid -> when (getAndroid()) { - is LibraryExtension -> filterByVariant(variant).map { - tasks.named(it.getTaskName("createFullJar")) - } - is AppExtension -> filterByVariant(variant).map { - tasks.named(it.getTaskName("bundle", "Classes")) - } + is LibraryExtension -> filterByVariant(variant).mapNotNull(BaseVariant::createFullJarTaskProvider) + is AppExtension -> filterByVariant(variant).mapNotNull(BaseVariant::bundleClassesTaskProvider) else -> emptyList() } isJavaLibrary -> listOf(tasks.named(JavaPlugin.JAR_TASK_NAME)) From 70179e855a5e5365b76bc560da320556b746bb91 Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Tue, 23 Aug 2022 03:54:18 +0800 Subject: [PATCH 154/187] Improve `booster-aapt2` compatibility --- .../booster/aapt2/Aapt2Container.kt | 2 + .../didiglobal/booster/aapt2/Aapt2Parser.kt | 57 +++++++--- booster-aapt2/src/main/proto/Resources.proto | 107 +++++++++++++++++- .../booster/aapt2/Aapt2ParserTest.kt | 80 ++++--------- .../aapt2/3.1.0/anim_abc_fade_in.xml.flat | Bin 692 -> 0 bytes .../aapt2/3.1.0/anim_abc_fade_out.xml.flat | Bin 692 -> 0 bytes ...anim_abc_grow_fade_in_from_bottom.xml.flat | Bin 1248 -> 0 bytes .../aapt2/3.1.0/anim_abc_popup_enter.xml.flat | Bin 824 -> 0 bytes .../aapt2/3.1.0/anim_abc_popup_exit.xml.flat | Bin 820 -> 0 bytes ...m_abc_shrink_fade_out_from_bottom.xml.flat | Bin 1258 -> 0 bytes .../3.1.0/anim_abc_slide_in_bottom.xml.flat | Bin 716 -> 0 bytes .../3.1.0/anim_abc_slide_in_top.xml.flat | Bin 708 -> 0 bytes .../3.1.0/anim_abc_slide_out_bottom.xml.flat | Bin 716 -> 0 bytes .../3.1.0/anim_abc_slide_out_top.xml.flat | Bin 712 -> 0 bytes .../3.1.0/anim_abc_tooltip_enter.xml.flat | Bin 700 -> 0 bytes .../3.1.0/anim_abc_tooltip_exit.xml.flat | Bin 696 -> 0 bytes ..._colored_borderless_text_material.xml.flat | Bin 806 -> 0 bytes ..._colored_borderless_text_material.xml.flat | Bin 874 -> 0 bytes ...v23_abc_btn_colored_text_material.xml.flat | Bin 866 -> 0 bytes ...-v23_abc_color_highlight_material.xml.flat | Bin 922 -> 0 bytes .../color-v23_abc_tint_btn_checkable.xml.flat | Bin 964 -> 0 bytes .../3.1.0/color-v23_abc_tint_default.xml.flat | Bin 1436 -> 0 bytes .../color-v23_abc_tint_edittext.xml.flat | Bin 980 -> 0 bytes .../color-v23_abc_tint_seek_thumb.xml.flat | Bin 800 -> 0 bytes .../3.1.0/color-v23_abc_tint_spinner.xml.flat | Bin 980 -> 0 bytes .../color-v23_abc_tint_switch_track.xml.flat | Bin 996 -> 0 bytes ...cache_hint_selector_material_dark.xml.flat | Bin 830 -> 0 bytes ...ache_hint_selector_material_light.xml.flat | Bin 834 -> 0 bytes ...lor_abc_btn_colored_text_material.xml.flat | Bin 966 -> 0 bytes ...abc_hint_foreground_material_dark.xml.flat | Bin 938 -> 0 bytes ...bc_hint_foreground_material_light.xml.flat | Bin 946 -> 0 bytes ...y_text_disable_only_material_dark.xml.flat | Bin 842 -> 0 bytes ..._text_disable_only_material_light.xml.flat | Bin 850 -> 0 bytes ...or_abc_primary_text_material_dark.xml.flat | Bin 818 -> 0 bytes ...r_abc_primary_text_material_light.xml.flat | Bin 818 -> 0 bytes .../3.1.0/color_abc_search_url_text.xml.flat | Bin 936 -> 0 bytes ..._abc_secondary_text_material_dark.xml.flat | Bin 826 -> 0 bytes ...abc_secondary_text_material_light.xml.flat | Bin 826 -> 0 bytes .../color_abc_tint_btn_checkable.xml.flat | Bin 1064 -> 0 bytes .../3.1.0/color_abc_tint_default.xml.flat | Bin 1536 -> 0 bytes .../3.1.0/color_abc_tint_edittext.xml.flat | Bin 1080 -> 0 bytes .../3.1.0/color_abc_tint_seek_thumb.xml.flat | Bin 900 -> 0 bytes .../3.1.0/color_abc_tint_spinner.xml.flat | Bin 1080 -> 0 bytes .../color_abc_tint_switch_track.xml.flat | Bin 1096 -> 0 bytes .../color_switch_thumb_material_dark.xml.flat | Bin 808 -> 0 bytes ...color_switch_thumb_material_light.xml.flat | Bin 808 -> 0 bytes ...v4_abc_ab_share_pack_mtrl_alpha.9.png.flat | Bin 538 -> 0 bytes ...i-v4_abc_btn_check_to_on_mtrl_000.png.flat | Bin 489 -> 0 bytes ...i-v4_abc_btn_check_to_on_mtrl_015.png.flat | Bin 666 -> 0 bytes ...i-v4_abc_btn_radio_to_on_mtrl_000.png.flat | Bin 726 -> 0 bytes ...i-v4_abc_btn_radio_to_on_mtrl_015.png.flat | Bin 825 -> 0 bytes ...abc_btn_switch_to_on_mtrl_00001.9.png.flat | Bin 1366 -> 0 bytes ...abc_btn_switch_to_on_mtrl_00012.9.png.flat | Bin 1513 -> 0 bytes ...c_cab_background_top_mtrl_alpha.9.png.flat | Bin 500 -> 0 bytes ...c_ic_commit_search_api_mtrl_alpha.png.flat | Bin 449 -> 0 bytes ...v4_abc_ic_menu_copy_mtrl_am_alpha.png.flat | Bin 468 -> 0 bytes ...dpi-v4_abc_ic_menu_cut_mtrl_alpha.png.flat | Bin 662 -> 0 bytes ...4_abc_ic_menu_paste_mtrl_am_alpha.png.flat | Bin 496 -> 0 bytes ..._abc_ic_menu_selectall_mtrl_alpha.png.flat | Bin 485 -> 0 bytes ...i-v4_abc_ic_menu_share_mtrl_alpha.png.flat | Bin 651 -> 0 bytes ...le-hdpi-v4_abc_ic_star_black_16dp.png.flat | Bin 513 -> 0 bytes ...le-hdpi-v4_abc_ic_star_black_36dp.png.flat | Bin 772 -> 0 bytes ...le-hdpi-v4_abc_ic_star_black_48dp.png.flat | Bin 918 -> 0 bytes ...pi-v4_abc_ic_star_half_black_16dp.png.flat | Bin 459 -> 0 bytes ...pi-v4_abc_ic_star_half_black_36dp.png.flat | Bin 590 -> 0 bytes ...pi-v4_abc_ic_star_half_black_48dp.png.flat | Bin 693 -> 0 bytes ...-v4_abc_list_divider_mtrl_alpha.9.png.flat | Bin 429 -> 0 bytes ...e-hdpi-v4_abc_list_focused_holo.9.png.flat | Bin 494 -> 0 bytes ...pi-v4_abc_list_longpressed_holo.9.png.flat | Bin 470 -> 0 bytes ...i-v4_abc_list_pressed_holo_dark.9.png.flat | Bin 470 -> 0 bytes ...-v4_abc_list_pressed_holo_light.9.png.flat | Bin 470 -> 0 bytes ...ist_selector_disabled_holo_dark.9.png.flat | Bin 510 -> 0 bytes ...st_selector_disabled_holo_light.9.png.flat | Bin 511 -> 0 bytes ...bc_menu_hardkey_panel_mtrl_mult.9.png.flat | Bin 1012 -> 0 bytes ..._abc_popup_background_mtrl_mult.9.png.flat | Bin 1368 -> 0 bytes ...c_scrubber_control_off_mtrl_alpha.png.flat | Bin 479 -> 0 bytes ...ubber_control_to_pressed_mtrl_000.png.flat | Bin 482 -> 0 bytes ...ubber_control_to_pressed_mtrl_005.png.flat | Bin 558 -> 0 bytes ...abc_scrubber_primary_mtrl_alpha.9.png.flat | Bin 475 -> 0 bytes ...4_abc_scrubber_track_mtrl_alpha.9.png.flat | Bin 462 -> 0 bytes ...pi-v4_abc_spinner_mtrl_am_alpha.9.png.flat | Bin 603 -> 0 bytes ...-v4_abc_switch_track_mtrl_alpha.9.png.flat | Bin 746 -> 0 bytes ...v4_abc_tab_indicator_mtrl_alpha.9.png.flat | Bin 456 -> 0 bytes ...text_select_handle_left_mtrl_dark.png.flat | Bin 560 -> 0 bytes ...ext_select_handle_left_mtrl_light.png.flat | Bin 560 -> 0 bytes ...xt_select_handle_middle_mtrl_dark.png.flat | Bin 684 -> 0 bytes ...t_select_handle_middle_mtrl_light.png.flat | Bin 682 -> 0 bytes ...ext_select_handle_right_mtrl_dark.png.flat | Bin 545 -> 0 bytes ...xt_select_handle_right_mtrl_light.png.flat | Bin 548 -> 0 bytes ..._textfield_activated_mtrl_alpha.9.png.flat | Bin 464 -> 0 bytes ...bc_textfield_default_mtrl_alpha.9.png.flat | Bin 466 -> 0 bytes ...eld_search_activated_mtrl_alpha.9.png.flat | Bin 468 -> 0 bytes ...field_search_default_mtrl_alpha.9.png.flat | Bin 464 -> 0 bytes ...i-v4_notification_bg_low_normal.9.png.flat | Bin 474 -> 0 bytes ...-v4_notification_bg_low_pressed.9.png.flat | Bin 487 -> 0 bytes ...-hdpi-v4_notification_bg_normal.9.png.flat | Bin 466 -> 0 bytes ..._notification_bg_normal_pressed.9.png.flat | Bin 495 -> 0 bytes ...notify_panel_notification_icon_bg.png.flat | Bin 381 -> 0 bytes ...17_abc_ic_menu_copy_mtrl_am_alpha.png.flat | Bin 471 -> 0 bytes ...pi-v17_abc_ic_menu_cut_mtrl_alpha.png.flat | Bin 664 -> 0 bytes ...i-v17_abc_spinner_mtrl_am_alpha.9.png.flat | Bin 609 -> 0 bytes ...17_abc_ic_menu_copy_mtrl_am_alpha.png.flat | Bin 399 -> 0 bytes ...pi-v17_abc_ic_menu_cut_mtrl_alpha.png.flat | Bin 517 -> 0 bytes ...i-v17_abc_spinner_mtrl_am_alpha.9.png.flat | Bin 582 -> 0 bytes ...17_abc_ic_menu_copy_mtrl_am_alpha.png.flat | Bin 452 -> 0 bytes ...pi-v17_abc_ic_menu_cut_mtrl_alpha.png.flat | Bin 760 -> 0 bytes ...i-v17_abc_spinner_mtrl_am_alpha.9.png.flat | Bin 683 -> 0 bytes ...17_abc_ic_menu_copy_mtrl_am_alpha.png.flat | Bin 536 -> 0 bytes ...pi-v17_abc_ic_menu_cut_mtrl_alpha.png.flat | Bin 973 -> 0 bytes ...i-v17_abc_spinner_mtrl_am_alpha.9.png.flat | Bin 793 -> 0 bytes ...17_abc_ic_menu_copy_mtrl_am_alpha.png.flat | Bin 603 -> 0 bytes ...pi-v17_abc_ic_menu_cut_mtrl_alpha.png.flat | Bin 1175 -> 0 bytes ...i-v17_abc_spinner_mtrl_am_alpha.9.png.flat | Bin 707 -> 0 bytes ...v4_abc_ab_share_pack_mtrl_alpha.9.png.flat | Bin 533 -> 0 bytes ...i-v4_abc_btn_check_to_on_mtrl_000.png.flat | Bin 476 -> 0 bytes ...i-v4_abc_btn_check_to_on_mtrl_015.png.flat | Bin 583 -> 0 bytes ...i-v4_abc_btn_radio_to_on_mtrl_000.png.flat | Bin 586 -> 0 bytes ...i-v4_abc_btn_radio_to_on_mtrl_015.png.flat | Bin 618 -> 0 bytes ...abc_btn_switch_to_on_mtrl_00001.9.png.flat | Bin 1024 -> 0 bytes ...abc_btn_switch_to_on_mtrl_00012.9.png.flat | Bin 1095 -> 0 bytes ...c_cab_background_top_mtrl_alpha.9.png.flat | Bin 490 -> 0 bytes ...c_ic_commit_search_api_mtrl_alpha.png.flat | Bin 451 -> 0 bytes ...v4_abc_ic_menu_copy_mtrl_am_alpha.png.flat | Bin 399 -> 0 bytes ...dpi-v4_abc_ic_menu_cut_mtrl_alpha.png.flat | Bin 509 -> 0 bytes ...4_abc_ic_menu_paste_mtrl_am_alpha.png.flat | Bin 422 -> 0 bytes ..._abc_ic_menu_selectall_mtrl_alpha.png.flat | Bin 409 -> 0 bytes ...i-v4_abc_ic_menu_share_mtrl_alpha.png.flat | Bin 532 -> 0 bytes ...le-mdpi-v4_abc_ic_star_black_16dp.png.flat | Bin 443 -> 0 bytes ...le-mdpi-v4_abc_ic_star_black_36dp.png.flat | Bin 614 -> 0 bytes ...le-mdpi-v4_abc_ic_star_black_48dp.png.flat | Bin 717 -> 0 bytes ...pi-v4_abc_ic_star_half_black_16dp.png.flat | Bin 408 -> 0 bytes ...pi-v4_abc_ic_star_half_black_36dp.png.flat | Bin 515 -> 0 bytes ...pi-v4_abc_ic_star_half_black_48dp.png.flat | Bin 572 -> 0 bytes ...-v4_abc_list_divider_mtrl_alpha.9.png.flat | Bin 429 -> 0 bytes ...e-mdpi-v4_abc_list_focused_holo.9.png.flat | Bin 472 -> 0 bytes ...pi-v4_abc_list_longpressed_holo.9.png.flat | Bin 469 -> 0 bytes ...i-v4_abc_list_pressed_holo_dark.9.png.flat | Bin 469 -> 0 bytes ...-v4_abc_list_pressed_holo_light.9.png.flat | Bin 469 -> 0 bytes ...ist_selector_disabled_holo_dark.9.png.flat | Bin 499 -> 0 bytes ...st_selector_disabled_holo_light.9.png.flat | Bin 499 -> 0 bytes ...bc_menu_hardkey_panel_mtrl_mult.9.png.flat | Bin 815 -> 0 bytes ..._abc_popup_background_mtrl_mult.9.png.flat | Bin 1046 -> 0 bytes ...c_scrubber_control_off_mtrl_alpha.png.flat | Bin 437 -> 0 bytes ...ubber_control_to_pressed_mtrl_000.png.flat | Bin 431 -> 0 bytes ...ubber_control_to_pressed_mtrl_005.png.flat | Bin 483 -> 0 bytes ...abc_scrubber_primary_mtrl_alpha.9.png.flat | Bin 473 -> 0 bytes ...4_abc_scrubber_track_mtrl_alpha.9.png.flat | Bin 460 -> 0 bytes ...pi-v4_abc_spinner_mtrl_am_alpha.9.png.flat | Bin 585 -> 0 bytes ...-v4_abc_switch_track_mtrl_alpha.9.png.flat | Bin 657 -> 0 bytes ...v4_abc_tab_indicator_mtrl_alpha.9.png.flat | Bin 452 -> 0 bytes ...text_select_handle_left_mtrl_dark.png.flat | Bin 485 -> 0 bytes ...ext_select_handle_left_mtrl_light.png.flat | Bin 485 -> 0 bytes ...xt_select_handle_middle_mtrl_dark.png.flat | Bin 597 -> 0 bytes ...t_select_handle_middle_mtrl_light.png.flat | Bin 596 -> 0 bytes ...ext_select_handle_right_mtrl_dark.png.flat | Bin 469 -> 0 bytes ...xt_select_handle_right_mtrl_light.png.flat | Bin 472 -> 0 bytes ..._textfield_activated_mtrl_alpha.9.png.flat | Bin 459 -> 0 bytes ...bc_textfield_default_mtrl_alpha.9.png.flat | Bin 452 -> 0 bytes ...eld_search_activated_mtrl_alpha.9.png.flat | Bin 468 -> 0 bytes ...field_search_default_mtrl_alpha.9.png.flat | Bin 464 -> 0 bytes ...i-v4_notification_bg_low_normal.9.png.flat | Bin 477 -> 0 bytes ...-v4_notification_bg_low_pressed.9.png.flat | Bin 485 -> 0 bytes ...-mdpi-v4_notification_bg_normal.9.png.flat | Bin 469 -> 0 bytes ..._notification_bg_normal_pressed.9.png.flat | Bin 493 -> 0 bytes ...notify_panel_notification_icon_bg.png.flat | Bin 372 -> 0 bytes ...tion_bar_item_background_material.xml.flat | Bin 586 -> 0 bytes ...able-v21_abc_btn_colored_material.xml.flat | Bin 2286 -> 0 bytes ...21_abc_dialog_material_background.xml.flat | Bin 1026 -> 0 bytes ...awable-v21_abc_edit_text_material.xml.flat | Bin 1734 -> 0 bytes ...ble-v21_abc_list_divider_material.xml.flat | Bin 814 -> 0 bytes ...21_notification_action_background.xml.flat | Bin 1738 -> 0 bytes ...3_abc_control_background_material.xml.flat | Bin 614 -> 0 bytes ...awable-v24_ic_launcher_foreground.xml.flat | Bin 3076 -> 0 bytes ...20_abc_dialog_material_background.xml.flat | Bin 666 -> 0 bytes ...v4_abc_ab_share_pack_mtrl_alpha.9.png.flat | Bin 544 -> 0 bytes ...i-v4_abc_btn_check_to_on_mtrl_000.png.flat | Bin 545 -> 0 bytes ...i-v4_abc_btn_check_to_on_mtrl_015.png.flat | Bin 696 -> 0 bytes ...i-v4_abc_btn_radio_to_on_mtrl_000.png.flat | Bin 915 -> 0 bytes ...i-v4_abc_btn_radio_to_on_mtrl_015.png.flat | Bin 1049 -> 0 bytes ...abc_btn_switch_to_on_mtrl_00001.9.png.flat | Bin 1798 -> 0 bytes ...abc_btn_switch_to_on_mtrl_00012.9.png.flat | Bin 2003 -> 0 bytes ...c_cab_background_top_mtrl_alpha.9.png.flat | Bin 505 -> 0 bytes ...c_ic_commit_search_api_mtrl_alpha.png.flat | Bin 504 -> 0 bytes ...v4_abc_ic_menu_copy_mtrl_am_alpha.png.flat | Bin 446 -> 0 bytes ...dpi-v4_abc_ic_menu_cut_mtrl_alpha.png.flat | Bin 752 -> 0 bytes ...4_abc_ic_menu_paste_mtrl_am_alpha.png.flat | Bin 511 -> 0 bytes ..._abc_ic_menu_selectall_mtrl_alpha.png.flat | Bin 455 -> 0 bytes ...i-v4_abc_ic_menu_share_mtrl_alpha.png.flat | Bin 744 -> 0 bytes ...e-xhdpi-v4_abc_ic_star_black_16dp.png.flat | Bin 585 -> 0 bytes ...e-xhdpi-v4_abc_ic_star_black_36dp.png.flat | Bin 904 -> 0 bytes ...e-xhdpi-v4_abc_ic_star_black_48dp.png.flat | Bin 1139 -> 0 bytes ...pi-v4_abc_ic_star_half_black_16dp.png.flat | Bin 495 -> 0 bytes ...pi-v4_abc_ic_star_half_black_36dp.png.flat | Bin 681 -> 0 bytes ...pi-v4_abc_ic_star_half_black_48dp.png.flat | Bin 808 -> 0 bytes ...-v4_abc_list_divider_mtrl_alpha.9.png.flat | Bin 431 -> 0 bytes ...-xhdpi-v4_abc_list_focused_holo.9.png.flat | Bin 496 -> 0 bytes ...pi-v4_abc_list_longpressed_holo.9.png.flat | Bin 474 -> 0 bytes ...i-v4_abc_list_pressed_holo_dark.9.png.flat | Bin 469 -> 0 bytes ...-v4_abc_list_pressed_holo_light.9.png.flat | Bin 473 -> 0 bytes ...ist_selector_disabled_holo_dark.9.png.flat | Bin 516 -> 0 bytes ...st_selector_disabled_holo_light.9.png.flat | Bin 519 -> 0 bytes ...bc_menu_hardkey_panel_mtrl_mult.9.png.flat | Bin 1238 -> 0 bytes ..._abc_popup_background_mtrl_mult.9.png.flat | Bin 1812 -> 0 bytes ...c_scrubber_control_off_mtrl_alpha.png.flat | Bin 543 -> 0 bytes ...ubber_control_to_pressed_mtrl_000.png.flat | Bin 555 -> 0 bytes ...ubber_control_to_pressed_mtrl_005.png.flat | Bin 679 -> 0 bytes ...abc_scrubber_primary_mtrl_alpha.9.png.flat | Bin 480 -> 0 bytes ...4_abc_scrubber_track_mtrl_alpha.9.png.flat | Bin 466 -> 0 bytes ...pi-v4_abc_spinner_mtrl_am_alpha.9.png.flat | Bin 708 -> 0 bytes ...-v4_abc_switch_track_mtrl_alpha.9.png.flat | Bin 882 -> 0 bytes ...v4_abc_tab_indicator_mtrl_alpha.9.png.flat | Bin 458 -> 0 bytes ...text_select_handle_left_mtrl_dark.png.flat | Bin 616 -> 0 bytes ...ext_select_handle_left_mtrl_light.png.flat | Bin 619 -> 0 bytes ...xt_select_handle_middle_mtrl_dark.png.flat | Bin 867 -> 0 bytes ...t_select_handle_middle_mtrl_light.png.flat | Bin 873 -> 0 bytes ...ext_select_handle_right_mtrl_dark.png.flat | Bin 603 -> 0 bytes ...xt_select_handle_right_mtrl_light.png.flat | Bin 602 -> 0 bytes ..._textfield_activated_mtrl_alpha.9.png.flat | Bin 465 -> 0 bytes ...bc_textfield_default_mtrl_alpha.9.png.flat | Bin 459 -> 0 bytes ...eld_search_activated_mtrl_alpha.9.png.flat | Bin 476 -> 0 bytes ...field_search_default_mtrl_alpha.9.png.flat | Bin 470 -> 0 bytes ...i-v4_notification_bg_low_normal.9.png.flat | Bin 481 -> 0 bytes ...-v4_notification_bg_low_pressed.9.png.flat | Bin 516 -> 0 bytes ...xhdpi-v4_notification_bg_normal.9.png.flat | Bin 473 -> 0 bytes ..._notification_bg_normal_pressed.9.png.flat | Bin 515 -> 0 bytes ...notify_panel_notification_icon_bg.png.flat | Bin 410 -> 0 bytes ...v4_abc_ab_share_pack_mtrl_alpha.9.png.flat | Bin 552 -> 0 bytes ...i-v4_abc_btn_check_to_on_mtrl_000.png.flat | Bin 573 -> 0 bytes ...i-v4_abc_btn_check_to_on_mtrl_015.png.flat | Bin 859 -> 0 bytes ...i-v4_abc_btn_radio_to_on_mtrl_000.png.flat | Bin 1250 -> 0 bytes ...i-v4_abc_btn_radio_to_on_mtrl_015.png.flat | Bin 1474 -> 0 bytes ...abc_btn_switch_to_on_mtrl_00001.9.png.flat | Bin 2737 -> 0 bytes ...abc_btn_switch_to_on_mtrl_00012.9.png.flat | Bin 3108 -> 0 bytes ...c_cab_background_top_mtrl_alpha.9.png.flat | Bin 515 -> 0 bytes ...c_ic_commit_search_api_mtrl_alpha.png.flat | Bin 502 -> 0 bytes ...v4_abc_ic_menu_copy_mtrl_am_alpha.png.flat | Bin 533 -> 0 bytes ...dpi-v4_abc_ic_menu_cut_mtrl_alpha.png.flat | Bin 972 -> 0 bytes ...4_abc_ic_menu_paste_mtrl_am_alpha.png.flat | Bin 618 -> 0 bytes ..._abc_ic_menu_selectall_mtrl_alpha.png.flat | Bin 536 -> 0 bytes ...i-v4_abc_ic_menu_share_mtrl_alpha.png.flat | Bin 966 -> 0 bytes ...-xxhdpi-v4_abc_ic_star_black_16dp.png.flat | Bin 713 -> 0 bytes ...-xxhdpi-v4_abc_ic_star_black_36dp.png.flat | Bin 1237 -> 0 bytes ...-xxhdpi-v4_abc_ic_star_black_48dp.png.flat | Bin 1545 -> 0 bytes ...pi-v4_abc_ic_star_half_black_16dp.png.flat | Bin 571 -> 0 bytes ...pi-v4_abc_ic_star_half_black_36dp.png.flat | Bin 839 -> 0 bytes ...pi-v4_abc_ic_star_half_black_48dp.png.flat | Bin 1051 -> 0 bytes ...-v4_abc_list_divider_mtrl_alpha.9.png.flat | Bin 437 -> 0 bytes ...xxhdpi-v4_abc_list_focused_holo.9.png.flat | Bin 499 -> 0 bytes ...pi-v4_abc_list_longpressed_holo.9.png.flat | Bin 483 -> 0 bytes ...i-v4_abc_list_pressed_holo_dark.9.png.flat | Bin 474 -> 0 bytes ...-v4_abc_list_pressed_holo_light.9.png.flat | Bin 478 -> 0 bytes ...ist_selector_disabled_holo_dark.9.png.flat | Bin 542 -> 0 bytes ...st_selector_disabled_holo_light.9.png.flat | Bin 544 -> 0 bytes ...bc_menu_hardkey_panel_mtrl_mult.9.png.flat | Bin 2053 -> 0 bytes ..._abc_popup_background_mtrl_mult.9.png.flat | Bin 2575 -> 0 bytes ...c_scrubber_control_off_mtrl_alpha.png.flat | Bin 600 -> 0 bytes ...ubber_control_to_pressed_mtrl_000.png.flat | Bin 693 -> 0 bytes ...ubber_control_to_pressed_mtrl_005.png.flat | Bin 885 -> 0 bytes ...abc_scrubber_primary_mtrl_alpha.9.png.flat | Bin 484 -> 0 bytes ...4_abc_scrubber_track_mtrl_alpha.9.png.flat | Bin 477 -> 0 bytes ...pi-v4_abc_spinner_mtrl_am_alpha.9.png.flat | Bin 786 -> 0 bytes ...-v4_abc_switch_track_mtrl_alpha.9.png.flat | Bin 1117 -> 0 bytes ...v4_abc_tab_indicator_mtrl_alpha.9.png.flat | Bin 470 -> 0 bytes ...text_select_handle_left_mtrl_dark.png.flat | Bin 702 -> 0 bytes ...ext_select_handle_left_mtrl_light.png.flat | Bin 706 -> 0 bytes ...xt_select_handle_middle_mtrl_dark.png.flat | Bin 1038 -> 0 bytes ...t_select_handle_middle_mtrl_light.png.flat | Bin 1043 -> 0 bytes ...ext_select_handle_right_mtrl_dark.png.flat | Bin 708 -> 0 bytes ...xt_select_handle_right_mtrl_light.png.flat | Bin 708 -> 0 bytes ..._textfield_activated_mtrl_alpha.9.png.flat | Bin 477 -> 0 bytes ...bc_textfield_default_mtrl_alpha.9.png.flat | Bin 474 -> 0 bytes ...eld_search_activated_mtrl_alpha.9.png.flat | Bin 481 -> 0 bytes ...field_search_default_mtrl_alpha.9.png.flat | Bin 476 -> 0 bytes ...i-v4_abc_btn_check_to_on_mtrl_000.png.flat | Bin 539 -> 0 bytes ...i-v4_abc_btn_check_to_on_mtrl_015.png.flat | Bin 740 -> 0 bytes ...i-v4_abc_btn_radio_to_on_mtrl_000.png.flat | Bin 1049 -> 0 bytes ...i-v4_abc_btn_radio_to_on_mtrl_015.png.flat | Bin 1210 -> 0 bytes ...abc_btn_switch_to_on_mtrl_00001.9.png.flat | Bin 2777 -> 0 bytes ...abc_btn_switch_to_on_mtrl_00012.9.png.flat | Bin 3088 -> 0 bytes ...v4_abc_ic_menu_copy_mtrl_am_alpha.png.flat | Bin 595 -> 0 bytes ...dpi-v4_abc_ic_menu_cut_mtrl_alpha.png.flat | Bin 1170 -> 0 bytes ...4_abc_ic_menu_paste_mtrl_am_alpha.png.flat | Bin 733 -> 0 bytes ..._abc_ic_menu_selectall_mtrl_alpha.png.flat | Bin 577 -> 0 bytes ...i-v4_abc_ic_menu_share_mtrl_alpha.png.flat | Bin 1163 -> 0 bytes ...xxxhdpi-v4_abc_ic_star_black_16dp.png.flat | Bin 851 -> 0 bytes ...xxxhdpi-v4_abc_ic_star_black_36dp.png.flat | Bin 1521 -> 0 bytes ...xxxhdpi-v4_abc_ic_star_black_48dp.png.flat | Bin 1932 -> 0 bytes ...pi-v4_abc_ic_star_half_black_16dp.png.flat | Bin 640 -> 0 bytes ...pi-v4_abc_ic_star_half_black_36dp.png.flat | Bin 1024 -> 0 bytes ...pi-v4_abc_ic_star_half_black_48dp.png.flat | Bin 1255 -> 0 bytes ...ubber_control_to_pressed_mtrl_000.png.flat | Bin 703 -> 0 bytes ...ubber_control_to_pressed_mtrl_005.png.flat | Bin 919 -> 0 bytes ...pi-v4_abc_spinner_mtrl_am_alpha.9.png.flat | Bin 690 -> 0 bytes ...-v4_abc_switch_track_mtrl_alpha.9.png.flat | Bin 1077 -> 0 bytes ...v4_abc_tab_indicator_mtrl_alpha.9.png.flat | Bin 470 -> 0 bytes ...text_select_handle_left_mtrl_dark.png.flat | Bin 797 -> 0 bytes ...ext_select_handle_left_mtrl_light.png.flat | Bin 797 -> 0 bytes ...ext_select_handle_right_mtrl_dark.png.flat | Bin 797 -> 0 bytes ...xt_select_handle_right_mtrl_light.png.flat | Bin 801 -> 0 bytes ...wable_abc_btn_borderless_material.xml.flat | Bin 918 -> 0 bytes .../drawable_abc_btn_check_material.xml.flat | Bin 800 -> 0 bytes ...awable_abc_btn_default_mtrl_shape.xml.flat | Bin 1410 -> 0 bytes .../drawable_abc_btn_radio_material.xml.flat | Bin 800 -> 0 bytes ...le_abc_cab_background_internal_bg.xml.flat | Bin 654 -> 0 bytes ...e_abc_cab_background_top_material.xml.flat | Bin 622 -> 0 bytes .../drawable_abc_ic_ab_back_material.xml.flat | Bin 996 -> 0 bytes ...bc_ic_arrow_drop_right_black_24dp.xml.flat | Bin 1334 -> 0 bytes .../drawable_abc_ic_clear_material.xml.flat | Bin 976 -> 0 bytes ...ble_abc_ic_go_search_api_material.xml.flat | Bin 950 -> 0 bytes ...ble_abc_ic_menu_overflow_material.xml.flat | Bin 1102 -> 0 bytes ...awable_abc_ic_search_api_material.xml.flat | Bin 1114 -> 0 bytes ..._abc_ic_voice_search_api_material.xml.flat | Bin 1142 -> 0 bytes ...ble_abc_item_background_holo_dark.xml.flat | Bin 1470 -> 0 bytes ...le_abc_item_background_holo_light.xml.flat | Bin 1470 -> 0 bytes ...r_background_transition_holo_dark.xml.flat | Bin 802 -> 0 bytes ..._background_transition_holo_light.xml.flat | Bin 802 -> 0 bytes ...wable_abc_list_selector_holo_dark.xml.flat | Bin 1510 -> 0 bytes ...able_abc_list_selector_holo_light.xml.flat | Bin 1514 -> 0 bytes ..._abc_ratingbar_indicator_material.xml.flat | Bin 1138 -> 0 bytes .../drawable_abc_ratingbar_material.xml.flat | Bin 1116 -> 0 bytes ...able_abc_ratingbar_small_material.xml.flat | Bin 1130 -> 0 bytes ...awable_abc_seekbar_thumb_material.xml.flat | Bin 1530 -> 0 bytes ...le_abc_seekbar_tick_mark_material.xml.flat | Bin 830 -> 0 bytes ...awable_abc_seekbar_track_material.xml.flat | Bin 1858 -> 0 bytes ...ner_textfield_background_material.xml.flat | Bin 1610 -> 0 bytes ...rawable_abc_switch_thumb_material.xml.flat | Bin 814 -> 0 bytes ...awable_abc_tab_indicator_material.xml.flat | Bin 798 -> 0 bytes ...drawable_abc_text_cursor_material.xml.flat | Bin 784 -> 0 bytes ...ble_abc_textfield_search_material.xml.flat | Bin 1122 -> 0 bytes .../3.1.0/drawable_abc_vector_test.xml.flat | Bin 868 -> 0 bytes .../drawable_ic_launcher_background.xml.flat | Bin 5956 -> 0 bytes .../3.1.0/drawable_notification_bg.xml.flat | Bin 904 -> 0 bytes .../drawable_notification_bg_low.xml.flat | Bin 912 -> 0 bytes ...able_notification_icon_background.xml.flat | Bin 658 -> 0 bytes .../drawable_notification_tile_bg.xml.flat | Bin 592 -> 0 bytes .../drawable_tooltip_frame_dark.xml.flat | Bin 780 -> 0 bytes .../drawable_tooltip_frame_light.xml.flat | Bin 784 -> 0 bytes .../layout-v21_notification_action.xml.flat | Bin 1688 -> 0 bytes ...v21_notification_action_tombstone.xml.flat | Bin 1894 -> 0 bytes ..._notification_template_custom_big.xml.flat | Bin 3642 -> 0 bytes ..._notification_template_icon_group.xml.flat | Bin 1580 -> 0 bytes .../layout-v26_abc_screen_toolbar.xml.flat | Bin 2240 -> 0 bytes ..._alert_dialog_button_bar_material.xml.flat | Bin 1798 -> 0 bytes ...0_abc_alert_dialog_title_material.xml.flat | Bin 2030 -> 0 bytes .../layout_abc_action_bar_title_item.xml.flat | Bin 1386 -> 0 bytes ...ayout_abc_action_bar_up_container.xml.flat | Bin 778 -> 0 bytes ...ayout_abc_action_menu_item_layout.xml.flat | Bin 1138 -> 0 bytes .../layout_abc_action_menu_layout.xml.flat | Bin 872 -> 0 bytes .../3.1.0/layout_abc_action_mode_bar.xml.flat | Bin 784 -> 0 bytes ...c_action_mode_close_item_material.xml.flat | Bin 1312 -> 0 bytes .../layout_abc_activity_chooser_view.xml.flat | Bin 2334 -> 0 bytes ...c_activity_chooser_view_list_item.xml.flat | Bin 1904 -> 0 bytes ..._alert_dialog_button_bar_material.xml.flat | Bin 2264 -> 0 bytes .../layout_abc_alert_dialog_material.xml.flat | Bin 3554 -> 0 bytes ...t_abc_alert_dialog_title_material.xml.flat | Bin 2294 -> 0 bytes ...ut_abc_cascading_menu_item_layout.xml.flat | Bin 2846 -> 0 bytes .../layout_abc_dialog_title_material.xml.flat | Bin 1556 -> 0 bytes .../layout_abc_expanded_menu_layout.xml.flat | Bin 716 -> 0 bytes ...ayout_abc_list_menu_item_checkbox.xml.flat | Bin 852 -> 0 bytes .../layout_abc_list_menu_item_icon.xml.flat | Bin 1006 -> 0 bytes .../layout_abc_list_menu_item_layout.xml.flat | Bin 1994 -> 0 bytes .../layout_abc_list_menu_item_radio.xml.flat | Bin 840 -> 0 bytes ...abc_popup_menu_header_item_layout.xml.flat | Bin 1318 -> 0 bytes ...layout_abc_popup_menu_item_layout.xml.flat | Bin 3076 -> 0 bytes ...layout_abc_screen_content_include.xml.flat | Bin 896 -> 0 bytes .../3.1.0/layout_abc_screen_simple.xml.flat | Bin 1326 -> 0 bytes ...screen_simple_overlay_action_mode.xml.flat | Bin 1316 -> 0 bytes .../3.1.0/layout_abc_screen_toolbar.xml.flat | Bin 2184 -> 0 bytes ..._search_dropdown_item_icons_2line.xml.flat | Bin 2864 -> 0 bytes .../3.1.0/layout_abc_search_view.xml.flat | Bin 4998 -> 0 bytes ...layout_abc_select_dialog_material.xml.flat | Bin 1526 -> 0 bytes .../aapt2/3.1.0/layout_abc_tooltip.xml.flat | Bin 1524 -> 0 bytes .../aapt2/3.1.0/layout_activity_main.xml.flat | Bin 976 -> 0 bytes ...ication_template_part_chronometer.xml.flat | Bin 822 -> 0 bytes ...t_notification_template_part_time.xml.flat | Bin 792 -> 0 bytes ...ayout_select_dialog_item_material.xml.flat | Bin 1154 -> 0 bytes ...elect_dialog_multichoice_material.xml.flat | Bin 1434 -> 0 bytes ...lect_dialog_singlechoice_material.xml.flat | Bin 1438 -> 0 bytes ...port_simple_spinner_dropdown_item.xml.flat | Bin 858 -> 0 bytes .../mipmap-anydpi-v26_ic_launcher.xml.flat | Bin 726 -> 0 bytes ...pmap-anydpi-v26_ic_launcher_round.xml.flat | Bin 738 -> 0 bytes .../3.1.0/mipmap-hdpi_ic_launcher.png.flat | Bin 3157 -> 0 bytes .../mipmap-hdpi_ic_launcher_round.png.flat | Bin 5111 -> 0 bytes .../3.1.0/mipmap-mdpi_ic_launcher.png.flat | Bin 2254 -> 0 bytes .../mipmap-mdpi_ic_launcher_round.png.flat | Bin 2989 -> 0 bytes .../3.1.0/mipmap-xhdpi_ic_launcher.png.flat | Bin 4686 -> 0 bytes .../mipmap-xhdpi_ic_launcher_round.png.flat | Bin 7103 -> 0 bytes .../3.1.0/mipmap-xxhdpi_ic_launcher.png.flat | Bin 6585 -> 0 bytes .../mipmap-xxhdpi_ic_launcher_round.png.flat | Bin 10623 -> 0 bytes .../3.1.0/mipmap-xxxhdpi_ic_launcher.png.flat | Bin 9324 -> 0 bytes .../mipmap-xxxhdpi_ic_launcher_round.png.flat | Bin 15340 -> 0 bytes .../aapt2/3.2.0/anim_abc_fade_in.xml.flat | Bin 564 -> 0 bytes .../aapt2/3.2.0/anim_abc_fade_out.xml.flat | Bin 564 -> 0 bytes ...anim_abc_grow_fade_in_from_bottom.xml.flat | Bin 1304 -> 0 bytes .../aapt2/3.2.0/anim_abc_popup_enter.xml.flat | Bin 684 -> 0 bytes .../aapt2/3.2.0/anim_abc_popup_exit.xml.flat | Bin 680 -> 0 bytes ...m_abc_shrink_fade_out_from_bottom.xml.flat | Bin 1312 -> 0 bytes .../3.2.0/anim_abc_slide_in_bottom.xml.flat | Bin 584 -> 0 bytes .../3.2.0/anim_abc_slide_in_top.xml.flat | Bin 576 -> 0 bytes .../3.2.0/anim_abc_slide_out_bottom.xml.flat | Bin 584 -> 0 bytes .../3.2.0/anim_abc_slide_out_top.xml.flat | Bin 580 -> 0 bytes .../3.2.0/anim_abc_tooltip_enter.xml.flat | Bin 568 -> 0 bytes .../3.2.0/anim_abc_tooltip_exit.xml.flat | Bin 564 -> 0 bytes ..._colored_borderless_text_material.xml.flat | Bin 620 -> 0 bytes ..._colored_borderless_text_material.xml.flat | Bin 704 -> 0 bytes ...v23_abc_btn_colored_text_material.xml.flat | Bin 696 -> 0 bytes ...-v23_abc_color_highlight_material.xml.flat | Bin 776 -> 0 bytes .../color-v23_abc_tint_btn_checkable.xml.flat | Bin 840 -> 0 bytes .../3.2.0/color-v23_abc_tint_default.xml.flat | Bin 1560 -> 0 bytes .../color-v23_abc_tint_edittext.xml.flat | Bin 900 -> 0 bytes .../color-v23_abc_tint_seek_thumb.xml.flat | Bin 664 -> 0 bytes .../3.2.0/color-v23_abc_tint_spinner.xml.flat | Bin 900 -> 0 bytes .../color-v23_abc_tint_switch_track.xml.flat | Bin 948 -> 0 bytes ...cache_hint_selector_material_dark.xml.flat | Bin 640 -> 0 bytes ...ache_hint_selector_material_light.xml.flat | Bin 644 -> 0 bytes ...lor_abc_btn_colored_text_material.xml.flat | Bin 740 -> 0 bytes ...abc_hint_foreground_material_dark.xml.flat | Bin 860 -> 0 bytes ...bc_hint_foreground_material_light.xml.flat | Bin 864 -> 0 bytes ...y_text_disable_only_material_dark.xml.flat | Bin 656 -> 0 bytes ..._text_disable_only_material_light.xml.flat | Bin 656 -> 0 bytes ...or_abc_primary_text_material_dark.xml.flat | Bin 624 -> 0 bytes ...r_abc_primary_text_material_light.xml.flat | Bin 632 -> 0 bytes .../3.2.0/color_abc_search_url_text.xml.flat | Bin 776 -> 0 bytes ..._abc_secondary_text_material_dark.xml.flat | Bin 632 -> 0 bytes ...abc_secondary_text_material_light.xml.flat | Bin 640 -> 0 bytes .../color_abc_tint_btn_checkable.xml.flat | Bin 884 -> 0 bytes .../3.2.0/color_abc_tint_default.xml.flat | Bin 1600 -> 0 bytes .../3.2.0/color_abc_tint_edittext.xml.flat | Bin 940 -> 0 bytes .../3.2.0/color_abc_tint_seek_thumb.xml.flat | Bin 704 -> 0 bytes .../3.2.0/color_abc_tint_spinner.xml.flat | Bin 940 -> 0 bytes .../color_abc_tint_switch_track.xml.flat | Bin 980 -> 0 bytes .../color_switch_thumb_material_dark.xml.flat | Bin 616 -> 0 bytes ...color_switch_thumb_material_light.xml.flat | Bin 620 -> 0 bytes ...v4_abc_ab_share_pack_mtrl_alpha.9.png.flat | Bin 504 -> 0 bytes ...i-v4_abc_btn_check_to_on_mtrl_000.png.flat | Bin 456 -> 0 bytes ...i-v4_abc_btn_check_to_on_mtrl_015.png.flat | Bin 632 -> 0 bytes ...i-v4_abc_btn_radio_to_on_mtrl_000.png.flat | Bin 692 -> 0 bytes ...i-v4_abc_btn_radio_to_on_mtrl_015.png.flat | Bin 792 -> 0 bytes ...abc_btn_switch_to_on_mtrl_00001.9.png.flat | Bin 1332 -> 0 bytes ...abc_btn_switch_to_on_mtrl_00012.9.png.flat | Bin 1480 -> 0 bytes ...c_cab_background_top_mtrl_alpha.9.png.flat | Bin 468 -> 0 bytes ...c_ic_commit_search_api_mtrl_alpha.png.flat | Bin 412 -> 0 bytes ...v4_abc_ic_menu_copy_mtrl_am_alpha.png.flat | Bin 436 -> 0 bytes ...dpi-v4_abc_ic_menu_cut_mtrl_alpha.png.flat | Bin 628 -> 0 bytes ...4_abc_ic_menu_paste_mtrl_am_alpha.png.flat | Bin 460 -> 0 bytes ..._abc_ic_menu_selectall_mtrl_alpha.png.flat | Bin 452 -> 0 bytes ...i-v4_abc_ic_menu_share_mtrl_alpha.png.flat | Bin 620 -> 0 bytes ...le-hdpi-v4_abc_ic_star_black_16dp.png.flat | Bin 480 -> 0 bytes ...le-hdpi-v4_abc_ic_star_black_36dp.png.flat | Bin 740 -> 0 bytes ...le-hdpi-v4_abc_ic_star_black_48dp.png.flat | Bin 884 -> 0 bytes ...pi-v4_abc_ic_star_half_black_16dp.png.flat | Bin 424 -> 0 bytes ...pi-v4_abc_ic_star_half_black_36dp.png.flat | Bin 552 -> 0 bytes ...pi-v4_abc_ic_star_half_black_48dp.png.flat | Bin 656 -> 0 bytes ...-v4_abc_list_divider_mtrl_alpha.9.png.flat | Bin 396 -> 0 bytes ...e-hdpi-v4_abc_list_focused_holo.9.png.flat | Bin 460 -> 0 bytes ...pi-v4_abc_list_longpressed_holo.9.png.flat | Bin 436 -> 0 bytes ...i-v4_abc_list_pressed_holo_dark.9.png.flat | Bin 436 -> 0 bytes ...-v4_abc_list_pressed_holo_light.9.png.flat | Bin 436 -> 0 bytes ...ist_selector_disabled_holo_dark.9.png.flat | Bin 476 -> 0 bytes ...st_selector_disabled_holo_light.9.png.flat | Bin 480 -> 0 bytes ...bc_menu_hardkey_panel_mtrl_mult.9.png.flat | Bin 980 -> 0 bytes ..._abc_popup_background_mtrl_mult.9.png.flat | Bin 1336 -> 0 bytes ...c_scrubber_control_off_mtrl_alpha.png.flat | Bin 444 -> 0 bytes ...ubber_control_to_pressed_mtrl_000.png.flat | Bin 448 -> 0 bytes ...ubber_control_to_pressed_mtrl_005.png.flat | Bin 524 -> 0 bytes ...abc_scrubber_primary_mtrl_alpha.9.png.flat | Bin 444 -> 0 bytes ...4_abc_scrubber_track_mtrl_alpha.9.png.flat | Bin 428 -> 0 bytes ...pi-v4_abc_spinner_mtrl_am_alpha.9.png.flat | Bin 572 -> 0 bytes ...-v4_abc_switch_track_mtrl_alpha.9.png.flat | Bin 712 -> 0 bytes ...v4_abc_tab_indicator_mtrl_alpha.9.png.flat | Bin 424 -> 0 bytes ...text_select_handle_left_mtrl_dark.png.flat | Bin 524 -> 0 bytes ...ext_select_handle_left_mtrl_light.png.flat | Bin 528 -> 0 bytes ...xt_select_handle_middle_mtrl_dark.png.flat | Bin 648 -> 0 bytes ...t_select_handle_middle_mtrl_light.png.flat | Bin 648 -> 0 bytes ...ext_select_handle_right_mtrl_dark.png.flat | Bin 512 -> 0 bytes ...xt_select_handle_right_mtrl_light.png.flat | Bin 512 -> 0 bytes ..._textfield_activated_mtrl_alpha.9.png.flat | Bin 432 -> 0 bytes ...bc_textfield_default_mtrl_alpha.9.png.flat | Bin 432 -> 0 bytes ...eld_search_activated_mtrl_alpha.9.png.flat | Bin 436 -> 0 bytes ...field_search_default_mtrl_alpha.9.png.flat | Bin 432 -> 0 bytes ...i-v4_notification_bg_low_normal.9.png.flat | Bin 440 -> 0 bytes ...-v4_notification_bg_low_pressed.9.png.flat | Bin 456 -> 0 bytes ...-hdpi-v4_notification_bg_normal.9.png.flat | Bin 432 -> 0 bytes ..._notification_bg_normal_pressed.9.png.flat | Bin 464 -> 0 bytes ...notify_panel_notification_icon_bg.png.flat | Bin 344 -> 0 bytes ...17_abc_ic_menu_copy_mtrl_am_alpha.png.flat | Bin 440 -> 0 bytes ...pi-v17_abc_ic_menu_cut_mtrl_alpha.png.flat | Bin 632 -> 0 bytes ...i-v17_abc_spinner_mtrl_am_alpha.9.png.flat | Bin 584 -> 0 bytes ...17_abc_ic_menu_copy_mtrl_am_alpha.png.flat | Bin 368 -> 0 bytes ...pi-v17_abc_ic_menu_cut_mtrl_alpha.png.flat | Bin 488 -> 0 bytes ...i-v17_abc_spinner_mtrl_am_alpha.9.png.flat | Bin 556 -> 0 bytes ...17_abc_ic_menu_copy_mtrl_am_alpha.png.flat | Bin 420 -> 0 bytes ...pi-v17_abc_ic_menu_cut_mtrl_alpha.png.flat | Bin 728 -> 0 bytes ...i-v17_abc_spinner_mtrl_am_alpha.9.png.flat | Bin 656 -> 0 bytes ...17_abc_ic_menu_copy_mtrl_am_alpha.png.flat | Bin 504 -> 0 bytes ...pi-v17_abc_ic_menu_cut_mtrl_alpha.png.flat | Bin 944 -> 0 bytes ...i-v17_abc_spinner_mtrl_am_alpha.9.png.flat | Bin 764 -> 0 bytes ...17_abc_ic_menu_copy_mtrl_am_alpha.png.flat | Bin 572 -> 0 bytes ...pi-v17_abc_ic_menu_cut_mtrl_alpha.png.flat | Bin 1144 -> 0 bytes ...i-v17_abc_spinner_mtrl_am_alpha.9.png.flat | Bin 676 -> 0 bytes ...v4_abc_ab_share_pack_mtrl_alpha.9.png.flat | Bin 500 -> 0 bytes ...i-v4_abc_btn_check_to_on_mtrl_000.png.flat | Bin 444 -> 0 bytes ...i-v4_abc_btn_check_to_on_mtrl_015.png.flat | Bin 552 -> 0 bytes ...i-v4_abc_btn_radio_to_on_mtrl_000.png.flat | Bin 552 -> 0 bytes ...i-v4_abc_btn_radio_to_on_mtrl_015.png.flat | Bin 584 -> 0 bytes ...abc_btn_switch_to_on_mtrl_00001.9.png.flat | Bin 992 -> 0 bytes ...abc_btn_switch_to_on_mtrl_00012.9.png.flat | Bin 1064 -> 0 bytes ...c_cab_background_top_mtrl_alpha.9.png.flat | Bin 456 -> 0 bytes ...c_ic_commit_search_api_mtrl_alpha.png.flat | Bin 416 -> 0 bytes ...v4_abc_ic_menu_copy_mtrl_am_alpha.png.flat | Bin 368 -> 0 bytes ...dpi-v4_abc_ic_menu_cut_mtrl_alpha.png.flat | Bin 476 -> 0 bytes ...4_abc_ic_menu_paste_mtrl_am_alpha.png.flat | Bin 384 -> 0 bytes ..._abc_ic_menu_selectall_mtrl_alpha.png.flat | Bin 376 -> 0 bytes ...i-v4_abc_ic_menu_share_mtrl_alpha.png.flat | Bin 500 -> 0 bytes ...le-mdpi-v4_abc_ic_star_black_16dp.png.flat | Bin 412 -> 0 bytes ...le-mdpi-v4_abc_ic_star_black_36dp.png.flat | Bin 580 -> 0 bytes ...le-mdpi-v4_abc_ic_star_black_48dp.png.flat | Bin 684 -> 0 bytes ...pi-v4_abc_ic_star_half_black_16dp.png.flat | Bin 372 -> 0 bytes ...pi-v4_abc_ic_star_half_black_36dp.png.flat | Bin 480 -> 0 bytes ...pi-v4_abc_ic_star_half_black_48dp.png.flat | Bin 536 -> 0 bytes ...-v4_abc_list_divider_mtrl_alpha.9.png.flat | Bin 396 -> 0 bytes ...e-mdpi-v4_abc_list_focused_holo.9.png.flat | Bin 440 -> 0 bytes ...pi-v4_abc_list_longpressed_holo.9.png.flat | Bin 436 -> 0 bytes ...i-v4_abc_list_pressed_holo_dark.9.png.flat | Bin 436 -> 0 bytes ...-v4_abc_list_pressed_holo_light.9.png.flat | Bin 436 -> 0 bytes ...ist_selector_disabled_holo_dark.9.png.flat | Bin 468 -> 0 bytes ...st_selector_disabled_holo_light.9.png.flat | Bin 468 -> 0 bytes ...bc_menu_hardkey_panel_mtrl_mult.9.png.flat | Bin 784 -> 0 bytes ..._abc_popup_background_mtrl_mult.9.png.flat | Bin 1012 -> 0 bytes ...c_scrubber_control_off_mtrl_alpha.png.flat | Bin 400 -> 0 bytes ...ubber_control_to_pressed_mtrl_000.png.flat | Bin 400 -> 0 bytes ...ubber_control_to_pressed_mtrl_005.png.flat | Bin 452 -> 0 bytes ...abc_scrubber_primary_mtrl_alpha.9.png.flat | Bin 440 -> 0 bytes ...4_abc_scrubber_track_mtrl_alpha.9.png.flat | Bin 428 -> 0 bytes ...pi-v4_abc_spinner_mtrl_am_alpha.9.png.flat | Bin 552 -> 0 bytes ...-v4_abc_switch_track_mtrl_alpha.9.png.flat | Bin 624 -> 0 bytes ...v4_abc_tab_indicator_mtrl_alpha.9.png.flat | Bin 420 -> 0 bytes ...text_select_handle_left_mtrl_dark.png.flat | Bin 448 -> 0 bytes ...ext_select_handle_left_mtrl_light.png.flat | Bin 452 -> 0 bytes ...xt_select_handle_middle_mtrl_dark.png.flat | Bin 560 -> 0 bytes ...t_select_handle_middle_mtrl_light.png.flat | Bin 564 -> 0 bytes ...ext_select_handle_right_mtrl_dark.png.flat | Bin 436 -> 0 bytes ...xt_select_handle_right_mtrl_light.png.flat | Bin 436 -> 0 bytes ..._textfield_activated_mtrl_alpha.9.png.flat | Bin 428 -> 0 bytes ...bc_textfield_default_mtrl_alpha.9.png.flat | Bin 420 -> 0 bytes ...eld_search_activated_mtrl_alpha.9.png.flat | Bin 436 -> 0 bytes ...field_search_default_mtrl_alpha.9.png.flat | Bin 432 -> 0 bytes ...i-v4_notification_bg_low_normal.9.png.flat | Bin 444 -> 0 bytes ...-v4_notification_bg_low_pressed.9.png.flat | Bin 452 -> 0 bytes ...-mdpi-v4_notification_bg_normal.9.png.flat | Bin 436 -> 0 bytes ..._notification_bg_normal_pressed.9.png.flat | Bin 460 -> 0 bytes ...notify_panel_notification_icon_bg.png.flat | Bin 336 -> 0 bytes ...tion_bar_item_background_material.xml.flat | Bin 408 -> 0 bytes ...able-v21_abc_btn_colored_material.xml.flat | Bin 2952 -> 0 bytes ...21_abc_dialog_material_background.xml.flat | Bin 904 -> 0 bytes ...awable-v21_abc_edit_text_material.xml.flat | Bin 1876 -> 0 bytes ...ble-v21_abc_list_divider_material.xml.flat | Bin 628 -> 0 bytes ...21_notification_action_background.xml.flat | Bin 1888 -> 0 bytes ...3_abc_control_background_material.xml.flat | Bin 452 -> 0 bytes ...awable-v24_ic_launcher_foreground.xml.flat | Bin 3068 -> 0 bytes ...20_abc_dialog_material_background.xml.flat | Bin 492 -> 0 bytes ...v4_abc_ab_share_pack_mtrl_alpha.9.png.flat | Bin 512 -> 0 bytes ...i-v4_abc_btn_check_to_on_mtrl_000.png.flat | Bin 512 -> 0 bytes ...i-v4_abc_btn_check_to_on_mtrl_015.png.flat | Bin 660 -> 0 bytes ...i-v4_abc_btn_radio_to_on_mtrl_000.png.flat | Bin 880 -> 0 bytes ...i-v4_abc_btn_radio_to_on_mtrl_015.png.flat | Bin 1016 -> 0 bytes ...abc_btn_switch_to_on_mtrl_00001.9.png.flat | Bin 1768 -> 0 bytes ...abc_btn_switch_to_on_mtrl_00012.9.png.flat | Bin 1972 -> 0 bytes ...c_cab_background_top_mtrl_alpha.9.png.flat | Bin 476 -> 0 bytes ...c_ic_commit_search_api_mtrl_alpha.png.flat | Bin 472 -> 0 bytes ...v4_abc_ic_menu_copy_mtrl_am_alpha.png.flat | Bin 412 -> 0 bytes ...dpi-v4_abc_ic_menu_cut_mtrl_alpha.png.flat | Bin 716 -> 0 bytes ...4_abc_ic_menu_paste_mtrl_am_alpha.png.flat | Bin 480 -> 0 bytes ..._abc_ic_menu_selectall_mtrl_alpha.png.flat | Bin 420 -> 0 bytes ...i-v4_abc_ic_menu_share_mtrl_alpha.png.flat | Bin 708 -> 0 bytes ...e-xhdpi-v4_abc_ic_star_black_16dp.png.flat | Bin 552 -> 0 bytes ...e-xhdpi-v4_abc_ic_star_black_36dp.png.flat | Bin 868 -> 0 bytes ...e-xhdpi-v4_abc_ic_star_black_48dp.png.flat | Bin 1104 -> 0 bytes ...pi-v4_abc_ic_star_half_black_16dp.png.flat | Bin 464 -> 0 bytes ...pi-v4_abc_ic_star_half_black_36dp.png.flat | Bin 652 -> 0 bytes ...pi-v4_abc_ic_star_half_black_48dp.png.flat | Bin 776 -> 0 bytes ...-v4_abc_list_divider_mtrl_alpha.9.png.flat | Bin 400 -> 0 bytes ...-xhdpi-v4_abc_list_focused_holo.9.png.flat | Bin 464 -> 0 bytes ...pi-v4_abc_list_longpressed_holo.9.png.flat | Bin 444 -> 0 bytes ...i-v4_abc_list_pressed_holo_dark.9.png.flat | Bin 440 -> 0 bytes ...-v4_abc_list_pressed_holo_light.9.png.flat | Bin 444 -> 0 bytes ...ist_selector_disabled_holo_dark.9.png.flat | Bin 484 -> 0 bytes ...st_selector_disabled_holo_light.9.png.flat | Bin 488 -> 0 bytes ...bc_menu_hardkey_panel_mtrl_mult.9.png.flat | Bin 1208 -> 0 bytes ..._abc_popup_background_mtrl_mult.9.png.flat | Bin 1780 -> 0 bytes ...c_scrubber_control_off_mtrl_alpha.png.flat | Bin 512 -> 0 bytes ...ubber_control_to_pressed_mtrl_000.png.flat | Bin 520 -> 0 bytes ...ubber_control_to_pressed_mtrl_005.png.flat | Bin 644 -> 0 bytes ...abc_scrubber_primary_mtrl_alpha.9.png.flat | Bin 448 -> 0 bytes ...4_abc_scrubber_track_mtrl_alpha.9.png.flat | Bin 436 -> 0 bytes ...pi-v4_abc_spinner_mtrl_am_alpha.9.png.flat | Bin 676 -> 0 bytes ...-v4_abc_switch_track_mtrl_alpha.9.png.flat | Bin 852 -> 0 bytes ...v4_abc_tab_indicator_mtrl_alpha.9.png.flat | Bin 428 -> 0 bytes ...text_select_handle_left_mtrl_dark.png.flat | Bin 584 -> 0 bytes ...ext_select_handle_left_mtrl_light.png.flat | Bin 584 -> 0 bytes ...xt_select_handle_middle_mtrl_dark.png.flat | Bin 836 -> 0 bytes ...t_select_handle_middle_mtrl_light.png.flat | Bin 840 -> 0 bytes ...ext_select_handle_right_mtrl_dark.png.flat | Bin 568 -> 0 bytes ...xt_select_handle_right_mtrl_light.png.flat | Bin 572 -> 0 bytes ..._textfield_activated_mtrl_alpha.9.png.flat | Bin 436 -> 0 bytes ...bc_textfield_default_mtrl_alpha.9.png.flat | Bin 428 -> 0 bytes ...eld_search_activated_mtrl_alpha.9.png.flat | Bin 444 -> 0 bytes ...field_search_default_mtrl_alpha.9.png.flat | Bin 440 -> 0 bytes ...i-v4_notification_bg_low_normal.9.png.flat | Bin 452 -> 0 bytes ...-v4_notification_bg_low_pressed.9.png.flat | Bin 484 -> 0 bytes ...xhdpi-v4_notification_bg_normal.9.png.flat | Bin 444 -> 0 bytes ..._notification_bg_normal_pressed.9.png.flat | Bin 484 -> 0 bytes ...notify_panel_notification_icon_bg.png.flat | Bin 380 -> 0 bytes ...v4_abc_ab_share_pack_mtrl_alpha.9.png.flat | Bin 520 -> 0 bytes ...i-v4_abc_btn_check_to_on_mtrl_000.png.flat | Bin 536 -> 0 bytes ...i-v4_abc_btn_check_to_on_mtrl_015.png.flat | Bin 824 -> 0 bytes ...i-v4_abc_btn_radio_to_on_mtrl_000.png.flat | Bin 1212 -> 0 bytes ...i-v4_abc_btn_radio_to_on_mtrl_015.png.flat | Bin 1436 -> 0 bytes ...abc_btn_switch_to_on_mtrl_00001.9.png.flat | Bin 2704 -> 0 bytes ...abc_btn_switch_to_on_mtrl_00012.9.png.flat | Bin 3076 -> 0 bytes ...c_cab_background_top_mtrl_alpha.9.png.flat | Bin 484 -> 0 bytes ...c_ic_commit_search_api_mtrl_alpha.png.flat | Bin 468 -> 0 bytes ...v4_abc_ic_menu_copy_mtrl_am_alpha.png.flat | Bin 496 -> 0 bytes ...dpi-v4_abc_ic_menu_cut_mtrl_alpha.png.flat | Bin 936 -> 0 bytes ...4_abc_ic_menu_paste_mtrl_am_alpha.png.flat | Bin 584 -> 0 bytes ..._abc_ic_menu_selectall_mtrl_alpha.png.flat | Bin 500 -> 0 bytes ...i-v4_abc_ic_menu_share_mtrl_alpha.png.flat | Bin 928 -> 0 bytes ...-xxhdpi-v4_abc_ic_star_black_16dp.png.flat | Bin 676 -> 0 bytes ...-xxhdpi-v4_abc_ic_star_black_36dp.png.flat | Bin 1200 -> 0 bytes ...-xxhdpi-v4_abc_ic_star_black_48dp.png.flat | Bin 1508 -> 0 bytes ...pi-v4_abc_ic_star_half_black_16dp.png.flat | Bin 540 -> 0 bytes ...pi-v4_abc_ic_star_half_black_36dp.png.flat | Bin 808 -> 0 bytes ...pi-v4_abc_ic_star_half_black_48dp.png.flat | Bin 1020 -> 0 bytes ...-v4_abc_list_divider_mtrl_alpha.9.png.flat | Bin 404 -> 0 bytes ...xxhdpi-v4_abc_list_focused_holo.9.png.flat | Bin 468 -> 0 bytes ...pi-v4_abc_list_longpressed_holo.9.png.flat | Bin 452 -> 0 bytes ...i-v4_abc_list_pressed_holo_dark.9.png.flat | Bin 440 -> 0 bytes ...-v4_abc_list_pressed_holo_light.9.png.flat | Bin 444 -> 0 bytes ...ist_selector_disabled_holo_dark.9.png.flat | Bin 508 -> 0 bytes ...st_selector_disabled_holo_light.9.png.flat | Bin 512 -> 0 bytes ...bc_menu_hardkey_panel_mtrl_mult.9.png.flat | Bin 2020 -> 0 bytes ..._abc_popup_background_mtrl_mult.9.png.flat | Bin 2544 -> 0 bytes ...c_scrubber_control_off_mtrl_alpha.png.flat | Bin 568 -> 0 bytes ...ubber_control_to_pressed_mtrl_000.png.flat | Bin 656 -> 0 bytes ...ubber_control_to_pressed_mtrl_005.png.flat | Bin 848 -> 0 bytes ...abc_scrubber_primary_mtrl_alpha.9.png.flat | Bin 452 -> 0 bytes ...4_abc_scrubber_track_mtrl_alpha.9.png.flat | Bin 444 -> 0 bytes ...pi-v4_abc_spinner_mtrl_am_alpha.9.png.flat | Bin 752 -> 0 bytes ...-v4_abc_switch_track_mtrl_alpha.9.png.flat | Bin 1084 -> 0 bytes ...v4_abc_tab_indicator_mtrl_alpha.9.png.flat | Bin 436 -> 0 bytes ...text_select_handle_left_mtrl_dark.png.flat | Bin 668 -> 0 bytes ...ext_select_handle_left_mtrl_light.png.flat | Bin 668 -> 0 bytes ...xt_select_handle_middle_mtrl_dark.png.flat | Bin 1004 -> 0 bytes ...t_select_handle_middle_mtrl_light.png.flat | Bin 1008 -> 0 bytes ...ext_select_handle_right_mtrl_dark.png.flat | Bin 672 -> 0 bytes ...xt_select_handle_right_mtrl_light.png.flat | Bin 676 -> 0 bytes ..._textfield_activated_mtrl_alpha.9.png.flat | Bin 444 -> 0 bytes ...bc_textfield_default_mtrl_alpha.9.png.flat | Bin 440 -> 0 bytes ...eld_search_activated_mtrl_alpha.9.png.flat | Bin 448 -> 0 bytes ...field_search_default_mtrl_alpha.9.png.flat | Bin 444 -> 0 bytes ...i-v4_abc_btn_check_to_on_mtrl_000.png.flat | Bin 508 -> 0 bytes ...i-v4_abc_btn_check_to_on_mtrl_015.png.flat | Bin 708 -> 0 bytes ...i-v4_abc_btn_radio_to_on_mtrl_000.png.flat | Bin 1020 -> 0 bytes ...i-v4_abc_btn_radio_to_on_mtrl_015.png.flat | Bin 1180 -> 0 bytes ...abc_btn_switch_to_on_mtrl_00001.9.png.flat | Bin 2748 -> 0 bytes ...abc_btn_switch_to_on_mtrl_00012.9.png.flat | Bin 3056 -> 0 bytes ...v4_abc_ic_menu_copy_mtrl_am_alpha.png.flat | Bin 564 -> 0 bytes ...dpi-v4_abc_ic_menu_cut_mtrl_alpha.png.flat | Bin 1140 -> 0 bytes ...4_abc_ic_menu_paste_mtrl_am_alpha.png.flat | Bin 700 -> 0 bytes ..._abc_ic_menu_selectall_mtrl_alpha.png.flat | Bin 548 -> 0 bytes ...i-v4_abc_ic_menu_share_mtrl_alpha.png.flat | Bin 1132 -> 0 bytes ...xxxhdpi-v4_abc_ic_star_black_16dp.png.flat | Bin 820 -> 0 bytes ...xxxhdpi-v4_abc_ic_star_black_36dp.png.flat | Bin 1492 -> 0 bytes ...xxxhdpi-v4_abc_ic_star_black_48dp.png.flat | Bin 1900 -> 0 bytes ...pi-v4_abc_ic_star_half_black_16dp.png.flat | Bin 604 -> 0 bytes ...pi-v4_abc_ic_star_half_black_36dp.png.flat | Bin 988 -> 0 bytes ...pi-v4_abc_ic_star_half_black_48dp.png.flat | Bin 1220 -> 0 bytes ...ubber_control_to_pressed_mtrl_000.png.flat | Bin 672 -> 0 bytes ...ubber_control_to_pressed_mtrl_005.png.flat | Bin 888 -> 0 bytes ...pi-v4_abc_spinner_mtrl_am_alpha.9.png.flat | Bin 660 -> 0 bytes ...-v4_abc_switch_track_mtrl_alpha.9.png.flat | Bin 1048 -> 0 bytes ...v4_abc_tab_indicator_mtrl_alpha.9.png.flat | Bin 440 -> 0 bytes ...text_select_handle_left_mtrl_dark.png.flat | Bin 764 -> 0 bytes ...ext_select_handle_left_mtrl_light.png.flat | Bin 768 -> 0 bytes ...ext_select_handle_right_mtrl_dark.png.flat | Bin 768 -> 0 bytes ...xt_select_handle_right_mtrl_light.png.flat | Bin 768 -> 0 bytes ...wable_abc_btn_borderless_material.xml.flat | Bin 804 -> 0 bytes .../drawable_abc_btn_check_material.xml.flat | Bin 612 -> 0 bytes ...awable_abc_btn_default_mtrl_shape.xml.flat | Bin 1488 -> 0 bytes .../drawable_abc_btn_radio_material.xml.flat | Bin 612 -> 0 bytes ...le_abc_cab_background_internal_bg.xml.flat | Bin 476 -> 0 bytes ...e_abc_cab_background_top_material.xml.flat | Bin 412 -> 0 bytes .../drawable_abc_ic_ab_back_material.xml.flat | Bin 924 -> 0 bytes ...bc_ic_arrow_drop_right_black_24dp.xml.flat | Bin 1328 -> 0 bytes .../drawable_abc_ic_clear_material.xml.flat | Bin 892 -> 0 bytes ...ble_abc_ic_go_search_api_material.xml.flat | Bin 860 -> 0 bytes ...ble_abc_ic_menu_overflow_material.xml.flat | Bin 1012 -> 0 bytes ...awable_abc_ic_search_api_material.xml.flat | Bin 1028 -> 0 bytes ..._abc_ic_voice_search_api_material.xml.flat | Bin 1056 -> 0 bytes ...ble_abc_item_background_holo_dark.xml.flat | Bin 1812 -> 0 bytes ...le_abc_item_background_holo_light.xml.flat | Bin 1820 -> 0 bytes ...r_background_transition_holo_dark.xml.flat | Bin 596 -> 0 bytes ..._background_transition_holo_light.xml.flat | Bin 600 -> 0 bytes ...wable_abc_list_selector_holo_dark.xml.flat | Bin 1884 -> 0 bytes ...able_abc_list_selector_holo_light.xml.flat | Bin 1892 -> 0 bytes ..._abc_ratingbar_indicator_material.xml.flat | Bin 1028 -> 0 bytes .../drawable_abc_ratingbar_material.xml.flat | Bin 1004 -> 0 bytes ...able_abc_ratingbar_small_material.xml.flat | Bin 1020 -> 0 bytes ...awable_abc_seekbar_thumb_material.xml.flat | Bin 1640 -> 0 bytes ...le_abc_seekbar_tick_mark_material.xml.flat | Bin 692 -> 0 bytes ...awable_abc_seekbar_track_material.xml.flat | Bin 1956 -> 0 bytes ...ner_textfield_background_material.xml.flat | Bin 1696 -> 0 bytes ...rawable_abc_switch_thumb_material.xml.flat | Bin 624 -> 0 bytes ...awable_abc_tab_indicator_material.xml.flat | Bin 612 -> 0 bytes ...drawable_abc_text_cursor_material.xml.flat | Bin 608 -> 0 bytes ...ble_abc_textfield_search_material.xml.flat | Bin 1204 -> 0 bytes .../3.2.0/drawable_abc_vector_test.xml.flat | Bin 764 -> 0 bytes .../3.2.0/drawable_notification_bg.xml.flat | Bin 772 -> 0 bytes .../drawable_notification_bg_low.xml.flat | Bin 780 -> 0 bytes ...able_notification_icon_background.xml.flat | Bin 480 -> 0 bytes .../drawable_notification_tile_bg.xml.flat | Bin 432 -> 0 bytes .../drawable_tooltip_frame_dark.xml.flat | Bin 576 -> 0 bytes .../drawable_tooltip_frame_light.xml.flat | Bin 580 -> 0 bytes .../layout-v21_notification_action.xml.flat | Bin 1920 -> 0 bytes ...v21_notification_action_tombstone.xml.flat | Bin 2304 -> 0 bytes ..._notification_template_custom_big.xml.flat | Bin 5380 -> 0 bytes ..._notification_template_icon_group.xml.flat | Bin 2028 -> 0 bytes .../layout-v26_abc_screen_toolbar.xml.flat | Bin 2404 -> 0 bytes ..._alert_dialog_button_bar_material.xml.flat | Bin 2164 -> 0 bytes ...0_abc_alert_dialog_title_material.xml.flat | Bin 2584 -> 0 bytes .../layout_abc_action_bar_title_item.xml.flat | Bin 1588 -> 0 bytes ...ayout_abc_action_bar_up_container.xml.flat | Bin 672 -> 0 bytes ...ayout_abc_action_menu_item_layout.xml.flat | Bin 1144 -> 0 bytes .../layout_abc_action_menu_layout.xml.flat | Bin 720 -> 0 bytes .../3.2.0/layout_abc_action_mode_bar.xml.flat | Bin 628 -> 0 bytes ...c_action_mode_close_item_material.xml.flat | Bin 1244 -> 0 bytes .../layout_abc_activity_chooser_view.xml.flat | Bin 3416 -> 0 bytes ...c_activity_chooser_view_list_item.xml.flat | Bin 2416 -> 0 bytes ..._alert_dialog_button_bar_material.xml.flat | Bin 2740 -> 0 bytes .../layout_abc_alert_dialog_material.xml.flat | Bin 5032 -> 0 bytes ...t_abc_alert_dialog_title_material.xml.flat | Bin 2820 -> 0 bytes ...ut_abc_cascading_menu_item_layout.xml.flat | Bin 3720 -> 0 bytes .../layout_abc_dialog_title_material.xml.flat | Bin 1700 -> 0 bytes .../layout_abc_expanded_menu_layout.xml.flat | Bin 568 -> 0 bytes ...ayout_abc_list_menu_item_checkbox.xml.flat | Bin 800 -> 0 bytes .../layout_abc_list_menu_item_icon.xml.flat | Bin 1016 -> 0 bytes .../layout_abc_list_menu_item_layout.xml.flat | Bin 2620 -> 0 bytes .../layout_abc_list_menu_item_radio.xml.flat | Bin 788 -> 0 bytes ...abc_popup_menu_header_item_layout.xml.flat | Bin 1388 -> 0 bytes ...layout_abc_popup_menu_item_layout.xml.flat | Bin 4120 -> 0 bytes ...layout_abc_screen_content_include.xml.flat | Bin 776 -> 0 bytes .../3.2.0/layout_abc_screen_simple.xml.flat | Bin 1304 -> 0 bytes ...screen_simple_overlay_action_mode.xml.flat | Bin 1272 -> 0 bytes .../3.2.0/layout_abc_screen_toolbar.xml.flat | Bin 2316 -> 0 bytes ..._search_dropdown_item_icons_2line.xml.flat | Bin 4024 -> 0 bytes .../3.2.0/layout_abc_search_view.xml.flat | Bin 7900 -> 0 bytes ...layout_abc_select_dialog_material.xml.flat | Bin 1432 -> 0 bytes .../aapt2/3.2.0/layout_abc_tooltip.xml.flat | Bin 1864 -> 0 bytes .../aapt2/3.2.0/layout_activity_main.xml.flat | Bin 1076 -> 0 bytes ...ication_template_part_chronometer.xml.flat | Bin 724 -> 0 bytes ...t_notification_template_part_time.xml.flat | Bin 696 -> 0 bytes ...ayout_select_dialog_item_material.xml.flat | Bin 1116 -> 0 bytes ...elect_dialog_multichoice_material.xml.flat | Bin 1620 -> 0 bytes ...lect_dialog_singlechoice_material.xml.flat | Bin 1616 -> 0 bytes ...port_simple_spinner_dropdown_item.xml.flat | Bin 720 -> 0 bytes .../mipmap-anydpi-v26_ic_launcher.xml.flat | Bin 516 -> 0 bytes ...pmap-anydpi-v26_ic_launcher_round.xml.flat | Bin 528 -> 0 bytes .../3.2.0/mipmap-hdpi_ic_launcher.png.flat | Bin 3124 -> 0 bytes .../mipmap-hdpi_ic_launcher_round.png.flat | Bin 5080 -> 0 bytes .../3.2.0/mipmap-mdpi_ic_launcher.png.flat | Bin 2220 -> 0 bytes .../mipmap-mdpi_ic_launcher_round.png.flat | Bin 2956 -> 0 bytes .../3.2.0/mipmap-xhdpi_ic_launcher.png.flat | Bin 4652 -> 0 bytes .../mipmap-xhdpi_ic_launcher_round.png.flat | Bin 7068 -> 0 bytes .../3.2.0/mipmap-xxhdpi_ic_launcher.png.flat | Bin 6548 -> 0 bytes .../mipmap-xxhdpi_ic_launcher_round.png.flat | Bin 10588 -> 0 bytes .../3.2.0/mipmap-xxxhdpi_ic_launcher.png.flat | Bin 9292 -> 0 bytes .../mipmap-xxxhdpi_ic_launcher_round.png.flat | Bin 15308 -> 0 bytes .../aapt2/3.2.1/anim_abc_fade_in.xml.flat | Bin 564 -> 0 bytes .../aapt2/3.2.1/anim_abc_fade_out.xml.flat | Bin 564 -> 0 bytes ...anim_abc_grow_fade_in_from_bottom.xml.flat | Bin 1304 -> 0 bytes .../aapt2/3.2.1/anim_abc_popup_enter.xml.flat | Bin 684 -> 0 bytes .../aapt2/3.2.1/anim_abc_popup_exit.xml.flat | Bin 680 -> 0 bytes ...m_abc_shrink_fade_out_from_bottom.xml.flat | Bin 1312 -> 0 bytes .../3.2.1/anim_abc_slide_in_bottom.xml.flat | Bin 584 -> 0 bytes .../3.2.1/anim_abc_slide_in_top.xml.flat | Bin 576 -> 0 bytes .../3.2.1/anim_abc_slide_out_bottom.xml.flat | Bin 584 -> 0 bytes .../3.2.1/anim_abc_slide_out_top.xml.flat | Bin 580 -> 0 bytes .../3.2.1/anim_abc_tooltip_enter.xml.flat | Bin 568 -> 0 bytes .../3.2.1/anim_abc_tooltip_exit.xml.flat | Bin 564 -> 0 bytes ..._colored_borderless_text_material.xml.flat | Bin 620 -> 0 bytes ..._colored_borderless_text_material.xml.flat | Bin 704 -> 0 bytes ...v23_abc_btn_colored_text_material.xml.flat | Bin 696 -> 0 bytes ...-v23_abc_color_highlight_material.xml.flat | Bin 776 -> 0 bytes .../color-v23_abc_tint_btn_checkable.xml.flat | Bin 840 -> 0 bytes .../3.2.1/color-v23_abc_tint_default.xml.flat | Bin 1560 -> 0 bytes .../color-v23_abc_tint_edittext.xml.flat | Bin 900 -> 0 bytes .../color-v23_abc_tint_seek_thumb.xml.flat | Bin 664 -> 0 bytes .../3.2.1/color-v23_abc_tint_spinner.xml.flat | Bin 900 -> 0 bytes .../color-v23_abc_tint_switch_track.xml.flat | Bin 948 -> 0 bytes ...cache_hint_selector_material_dark.xml.flat | Bin 640 -> 0 bytes ...ache_hint_selector_material_light.xml.flat | Bin 644 -> 0 bytes ...lor_abc_btn_colored_text_material.xml.flat | Bin 740 -> 0 bytes ...abc_hint_foreground_material_dark.xml.flat | Bin 860 -> 0 bytes ...bc_hint_foreground_material_light.xml.flat | Bin 864 -> 0 bytes ...y_text_disable_only_material_dark.xml.flat | Bin 656 -> 0 bytes ..._text_disable_only_material_light.xml.flat | Bin 656 -> 0 bytes ...or_abc_primary_text_material_dark.xml.flat | Bin 624 -> 0 bytes ...r_abc_primary_text_material_light.xml.flat | Bin 632 -> 0 bytes .../3.2.1/color_abc_search_url_text.xml.flat | Bin 776 -> 0 bytes ..._abc_secondary_text_material_dark.xml.flat | Bin 632 -> 0 bytes ...abc_secondary_text_material_light.xml.flat | Bin 640 -> 0 bytes .../color_abc_tint_btn_checkable.xml.flat | Bin 884 -> 0 bytes .../3.2.1/color_abc_tint_default.xml.flat | Bin 1600 -> 0 bytes .../3.2.1/color_abc_tint_edittext.xml.flat | Bin 940 -> 0 bytes .../3.2.1/color_abc_tint_seek_thumb.xml.flat | Bin 704 -> 0 bytes .../3.2.1/color_abc_tint_spinner.xml.flat | Bin 940 -> 0 bytes .../color_abc_tint_switch_track.xml.flat | Bin 980 -> 0 bytes .../color_switch_thumb_material_dark.xml.flat | Bin 616 -> 0 bytes ...color_switch_thumb_material_light.xml.flat | Bin 620 -> 0 bytes ...v4_abc_ab_share_pack_mtrl_alpha.9.png.flat | Bin 504 -> 0 bytes ...i-v4_abc_btn_check_to_on_mtrl_000.png.flat | Bin 456 -> 0 bytes ...i-v4_abc_btn_check_to_on_mtrl_015.png.flat | Bin 632 -> 0 bytes ...i-v4_abc_btn_radio_to_on_mtrl_000.png.flat | Bin 692 -> 0 bytes ...i-v4_abc_btn_radio_to_on_mtrl_015.png.flat | Bin 792 -> 0 bytes ...abc_btn_switch_to_on_mtrl_00001.9.png.flat | Bin 1332 -> 0 bytes ...abc_btn_switch_to_on_mtrl_00012.9.png.flat | Bin 1480 -> 0 bytes ...c_cab_background_top_mtrl_alpha.9.png.flat | Bin 468 -> 0 bytes ...c_ic_commit_search_api_mtrl_alpha.png.flat | Bin 412 -> 0 bytes ...v4_abc_ic_menu_copy_mtrl_am_alpha.png.flat | Bin 436 -> 0 bytes ...dpi-v4_abc_ic_menu_cut_mtrl_alpha.png.flat | Bin 628 -> 0 bytes ...4_abc_ic_menu_paste_mtrl_am_alpha.png.flat | Bin 460 -> 0 bytes ..._abc_ic_menu_selectall_mtrl_alpha.png.flat | Bin 452 -> 0 bytes ...i-v4_abc_ic_menu_share_mtrl_alpha.png.flat | Bin 620 -> 0 bytes ...le-hdpi-v4_abc_ic_star_black_16dp.png.flat | Bin 480 -> 0 bytes ...le-hdpi-v4_abc_ic_star_black_36dp.png.flat | Bin 740 -> 0 bytes ...le-hdpi-v4_abc_ic_star_black_48dp.png.flat | Bin 884 -> 0 bytes ...pi-v4_abc_ic_star_half_black_16dp.png.flat | Bin 424 -> 0 bytes ...pi-v4_abc_ic_star_half_black_36dp.png.flat | Bin 552 -> 0 bytes ...pi-v4_abc_ic_star_half_black_48dp.png.flat | Bin 656 -> 0 bytes ...-v4_abc_list_divider_mtrl_alpha.9.png.flat | Bin 396 -> 0 bytes ...e-hdpi-v4_abc_list_focused_holo.9.png.flat | Bin 460 -> 0 bytes ...pi-v4_abc_list_longpressed_holo.9.png.flat | Bin 436 -> 0 bytes ...i-v4_abc_list_pressed_holo_dark.9.png.flat | Bin 436 -> 0 bytes ...-v4_abc_list_pressed_holo_light.9.png.flat | Bin 436 -> 0 bytes ...ist_selector_disabled_holo_dark.9.png.flat | Bin 476 -> 0 bytes ...st_selector_disabled_holo_light.9.png.flat | Bin 480 -> 0 bytes ...bc_menu_hardkey_panel_mtrl_mult.9.png.flat | Bin 980 -> 0 bytes ..._abc_popup_background_mtrl_mult.9.png.flat | Bin 1336 -> 0 bytes ...c_scrubber_control_off_mtrl_alpha.png.flat | Bin 444 -> 0 bytes ...ubber_control_to_pressed_mtrl_000.png.flat | Bin 448 -> 0 bytes ...ubber_control_to_pressed_mtrl_005.png.flat | Bin 524 -> 0 bytes ...abc_scrubber_primary_mtrl_alpha.9.png.flat | Bin 444 -> 0 bytes ...4_abc_scrubber_track_mtrl_alpha.9.png.flat | Bin 428 -> 0 bytes ...pi-v4_abc_spinner_mtrl_am_alpha.9.png.flat | Bin 572 -> 0 bytes ...-v4_abc_switch_track_mtrl_alpha.9.png.flat | Bin 712 -> 0 bytes ...v4_abc_tab_indicator_mtrl_alpha.9.png.flat | Bin 424 -> 0 bytes ...text_select_handle_left_mtrl_dark.png.flat | Bin 524 -> 0 bytes ...ext_select_handle_left_mtrl_light.png.flat | Bin 528 -> 0 bytes ...xt_select_handle_middle_mtrl_dark.png.flat | Bin 648 -> 0 bytes ...t_select_handle_middle_mtrl_light.png.flat | Bin 648 -> 0 bytes ...ext_select_handle_right_mtrl_dark.png.flat | Bin 512 -> 0 bytes ...xt_select_handle_right_mtrl_light.png.flat | Bin 512 -> 0 bytes ..._textfield_activated_mtrl_alpha.9.png.flat | Bin 432 -> 0 bytes ...bc_textfield_default_mtrl_alpha.9.png.flat | Bin 432 -> 0 bytes ...eld_search_activated_mtrl_alpha.9.png.flat | Bin 436 -> 0 bytes ...field_search_default_mtrl_alpha.9.png.flat | Bin 432 -> 0 bytes ...i-v4_notification_bg_low_normal.9.png.flat | Bin 440 -> 0 bytes ...-v4_notification_bg_low_pressed.9.png.flat | Bin 456 -> 0 bytes ...-hdpi-v4_notification_bg_normal.9.png.flat | Bin 432 -> 0 bytes ..._notification_bg_normal_pressed.9.png.flat | Bin 464 -> 0 bytes ...notify_panel_notification_icon_bg.png.flat | Bin 344 -> 0 bytes ...17_abc_ic_menu_copy_mtrl_am_alpha.png.flat | Bin 440 -> 0 bytes ...pi-v17_abc_ic_menu_cut_mtrl_alpha.png.flat | Bin 632 -> 0 bytes ...i-v17_abc_spinner_mtrl_am_alpha.9.png.flat | Bin 584 -> 0 bytes ...17_abc_ic_menu_copy_mtrl_am_alpha.png.flat | Bin 368 -> 0 bytes ...pi-v17_abc_ic_menu_cut_mtrl_alpha.png.flat | Bin 488 -> 0 bytes ...i-v17_abc_spinner_mtrl_am_alpha.9.png.flat | Bin 556 -> 0 bytes ...17_abc_ic_menu_copy_mtrl_am_alpha.png.flat | Bin 420 -> 0 bytes ...pi-v17_abc_ic_menu_cut_mtrl_alpha.png.flat | Bin 728 -> 0 bytes ...i-v17_abc_spinner_mtrl_am_alpha.9.png.flat | Bin 656 -> 0 bytes ...17_abc_ic_menu_copy_mtrl_am_alpha.png.flat | Bin 504 -> 0 bytes ...pi-v17_abc_ic_menu_cut_mtrl_alpha.png.flat | Bin 944 -> 0 bytes ...i-v17_abc_spinner_mtrl_am_alpha.9.png.flat | Bin 764 -> 0 bytes ...17_abc_ic_menu_copy_mtrl_am_alpha.png.flat | Bin 572 -> 0 bytes ...pi-v17_abc_ic_menu_cut_mtrl_alpha.png.flat | Bin 1144 -> 0 bytes ...i-v17_abc_spinner_mtrl_am_alpha.9.png.flat | Bin 676 -> 0 bytes ...v4_abc_ab_share_pack_mtrl_alpha.9.png.flat | Bin 500 -> 0 bytes ...i-v4_abc_btn_check_to_on_mtrl_000.png.flat | Bin 444 -> 0 bytes ...i-v4_abc_btn_check_to_on_mtrl_015.png.flat | Bin 552 -> 0 bytes ...i-v4_abc_btn_radio_to_on_mtrl_000.png.flat | Bin 552 -> 0 bytes ...i-v4_abc_btn_radio_to_on_mtrl_015.png.flat | Bin 584 -> 0 bytes ...abc_btn_switch_to_on_mtrl_00001.9.png.flat | Bin 992 -> 0 bytes ...abc_btn_switch_to_on_mtrl_00012.9.png.flat | Bin 1064 -> 0 bytes ...c_cab_background_top_mtrl_alpha.9.png.flat | Bin 456 -> 0 bytes ...c_ic_commit_search_api_mtrl_alpha.png.flat | Bin 416 -> 0 bytes ...v4_abc_ic_menu_copy_mtrl_am_alpha.png.flat | Bin 368 -> 0 bytes ...dpi-v4_abc_ic_menu_cut_mtrl_alpha.png.flat | Bin 476 -> 0 bytes ...4_abc_ic_menu_paste_mtrl_am_alpha.png.flat | Bin 384 -> 0 bytes ..._abc_ic_menu_selectall_mtrl_alpha.png.flat | Bin 376 -> 0 bytes ...i-v4_abc_ic_menu_share_mtrl_alpha.png.flat | Bin 500 -> 0 bytes ...le-mdpi-v4_abc_ic_star_black_16dp.png.flat | Bin 412 -> 0 bytes ...le-mdpi-v4_abc_ic_star_black_36dp.png.flat | Bin 580 -> 0 bytes ...le-mdpi-v4_abc_ic_star_black_48dp.png.flat | Bin 684 -> 0 bytes ...pi-v4_abc_ic_star_half_black_16dp.png.flat | Bin 372 -> 0 bytes ...pi-v4_abc_ic_star_half_black_36dp.png.flat | Bin 480 -> 0 bytes ...pi-v4_abc_ic_star_half_black_48dp.png.flat | Bin 536 -> 0 bytes ...-v4_abc_list_divider_mtrl_alpha.9.png.flat | Bin 396 -> 0 bytes ...e-mdpi-v4_abc_list_focused_holo.9.png.flat | Bin 440 -> 0 bytes ...pi-v4_abc_list_longpressed_holo.9.png.flat | Bin 436 -> 0 bytes ...i-v4_abc_list_pressed_holo_dark.9.png.flat | Bin 436 -> 0 bytes ...-v4_abc_list_pressed_holo_light.9.png.flat | Bin 436 -> 0 bytes ...ist_selector_disabled_holo_dark.9.png.flat | Bin 468 -> 0 bytes ...st_selector_disabled_holo_light.9.png.flat | Bin 468 -> 0 bytes ...bc_menu_hardkey_panel_mtrl_mult.9.png.flat | Bin 784 -> 0 bytes ..._abc_popup_background_mtrl_mult.9.png.flat | Bin 1012 -> 0 bytes ...c_scrubber_control_off_mtrl_alpha.png.flat | Bin 400 -> 0 bytes ...ubber_control_to_pressed_mtrl_000.png.flat | Bin 400 -> 0 bytes ...ubber_control_to_pressed_mtrl_005.png.flat | Bin 452 -> 0 bytes ...abc_scrubber_primary_mtrl_alpha.9.png.flat | Bin 440 -> 0 bytes ...4_abc_scrubber_track_mtrl_alpha.9.png.flat | Bin 428 -> 0 bytes ...pi-v4_abc_spinner_mtrl_am_alpha.9.png.flat | Bin 552 -> 0 bytes ...-v4_abc_switch_track_mtrl_alpha.9.png.flat | Bin 624 -> 0 bytes ...v4_abc_tab_indicator_mtrl_alpha.9.png.flat | Bin 420 -> 0 bytes ...text_select_handle_left_mtrl_dark.png.flat | Bin 448 -> 0 bytes ...ext_select_handle_left_mtrl_light.png.flat | Bin 452 -> 0 bytes ...xt_select_handle_middle_mtrl_dark.png.flat | Bin 560 -> 0 bytes ...t_select_handle_middle_mtrl_light.png.flat | Bin 564 -> 0 bytes ...ext_select_handle_right_mtrl_dark.png.flat | Bin 436 -> 0 bytes ...xt_select_handle_right_mtrl_light.png.flat | Bin 436 -> 0 bytes ..._textfield_activated_mtrl_alpha.9.png.flat | Bin 428 -> 0 bytes ...bc_textfield_default_mtrl_alpha.9.png.flat | Bin 420 -> 0 bytes ...eld_search_activated_mtrl_alpha.9.png.flat | Bin 436 -> 0 bytes ...field_search_default_mtrl_alpha.9.png.flat | Bin 432 -> 0 bytes ...i-v4_notification_bg_low_normal.9.png.flat | Bin 444 -> 0 bytes ...-v4_notification_bg_low_pressed.9.png.flat | Bin 452 -> 0 bytes ...-mdpi-v4_notification_bg_normal.9.png.flat | Bin 436 -> 0 bytes ..._notification_bg_normal_pressed.9.png.flat | Bin 460 -> 0 bytes ...notify_panel_notification_icon_bg.png.flat | Bin 336 -> 0 bytes ...tion_bar_item_background_material.xml.flat | Bin 408 -> 0 bytes ...able-v21_abc_btn_colored_material.xml.flat | Bin 2952 -> 0 bytes ...21_abc_dialog_material_background.xml.flat | Bin 904 -> 0 bytes ...awable-v21_abc_edit_text_material.xml.flat | Bin 1876 -> 0 bytes ...ble-v21_abc_list_divider_material.xml.flat | Bin 628 -> 0 bytes ...21_notification_action_background.xml.flat | Bin 1888 -> 0 bytes ...3_abc_control_background_material.xml.flat | Bin 452 -> 0 bytes ...awable-v24_ic_launcher_foreground.xml.flat | Bin 3068 -> 0 bytes ...20_abc_dialog_material_background.xml.flat | Bin 492 -> 0 bytes ...v4_abc_ab_share_pack_mtrl_alpha.9.png.flat | Bin 512 -> 0 bytes ...i-v4_abc_btn_check_to_on_mtrl_000.png.flat | Bin 512 -> 0 bytes ...i-v4_abc_btn_check_to_on_mtrl_015.png.flat | Bin 660 -> 0 bytes ...i-v4_abc_btn_radio_to_on_mtrl_000.png.flat | Bin 880 -> 0 bytes ...i-v4_abc_btn_radio_to_on_mtrl_015.png.flat | Bin 1016 -> 0 bytes ...abc_btn_switch_to_on_mtrl_00001.9.png.flat | Bin 1768 -> 0 bytes ...abc_btn_switch_to_on_mtrl_00012.9.png.flat | Bin 1972 -> 0 bytes ...c_cab_background_top_mtrl_alpha.9.png.flat | Bin 476 -> 0 bytes ...c_ic_commit_search_api_mtrl_alpha.png.flat | Bin 472 -> 0 bytes ...v4_abc_ic_menu_copy_mtrl_am_alpha.png.flat | Bin 412 -> 0 bytes ...dpi-v4_abc_ic_menu_cut_mtrl_alpha.png.flat | Bin 716 -> 0 bytes ...4_abc_ic_menu_paste_mtrl_am_alpha.png.flat | Bin 480 -> 0 bytes ..._abc_ic_menu_selectall_mtrl_alpha.png.flat | Bin 420 -> 0 bytes ...i-v4_abc_ic_menu_share_mtrl_alpha.png.flat | Bin 708 -> 0 bytes ...e-xhdpi-v4_abc_ic_star_black_16dp.png.flat | Bin 552 -> 0 bytes ...e-xhdpi-v4_abc_ic_star_black_36dp.png.flat | Bin 868 -> 0 bytes ...e-xhdpi-v4_abc_ic_star_black_48dp.png.flat | Bin 1104 -> 0 bytes ...pi-v4_abc_ic_star_half_black_16dp.png.flat | Bin 464 -> 0 bytes ...pi-v4_abc_ic_star_half_black_36dp.png.flat | Bin 652 -> 0 bytes ...pi-v4_abc_ic_star_half_black_48dp.png.flat | Bin 776 -> 0 bytes ...-v4_abc_list_divider_mtrl_alpha.9.png.flat | Bin 400 -> 0 bytes ...-xhdpi-v4_abc_list_focused_holo.9.png.flat | Bin 464 -> 0 bytes ...pi-v4_abc_list_longpressed_holo.9.png.flat | Bin 444 -> 0 bytes ...i-v4_abc_list_pressed_holo_dark.9.png.flat | Bin 440 -> 0 bytes ...-v4_abc_list_pressed_holo_light.9.png.flat | Bin 444 -> 0 bytes ...ist_selector_disabled_holo_dark.9.png.flat | Bin 484 -> 0 bytes ...st_selector_disabled_holo_light.9.png.flat | Bin 488 -> 0 bytes ...bc_menu_hardkey_panel_mtrl_mult.9.png.flat | Bin 1208 -> 0 bytes ..._abc_popup_background_mtrl_mult.9.png.flat | Bin 1780 -> 0 bytes ...c_scrubber_control_off_mtrl_alpha.png.flat | Bin 512 -> 0 bytes ...ubber_control_to_pressed_mtrl_000.png.flat | Bin 520 -> 0 bytes ...ubber_control_to_pressed_mtrl_005.png.flat | Bin 644 -> 0 bytes ...abc_scrubber_primary_mtrl_alpha.9.png.flat | Bin 448 -> 0 bytes ...4_abc_scrubber_track_mtrl_alpha.9.png.flat | Bin 436 -> 0 bytes ...pi-v4_abc_spinner_mtrl_am_alpha.9.png.flat | Bin 676 -> 0 bytes ...-v4_abc_switch_track_mtrl_alpha.9.png.flat | Bin 852 -> 0 bytes ...v4_abc_tab_indicator_mtrl_alpha.9.png.flat | Bin 428 -> 0 bytes ...text_select_handle_left_mtrl_dark.png.flat | Bin 584 -> 0 bytes ...ext_select_handle_left_mtrl_light.png.flat | Bin 584 -> 0 bytes ...xt_select_handle_middle_mtrl_dark.png.flat | Bin 836 -> 0 bytes ...t_select_handle_middle_mtrl_light.png.flat | Bin 840 -> 0 bytes ...ext_select_handle_right_mtrl_dark.png.flat | Bin 568 -> 0 bytes ...xt_select_handle_right_mtrl_light.png.flat | Bin 572 -> 0 bytes ..._textfield_activated_mtrl_alpha.9.png.flat | Bin 436 -> 0 bytes ...bc_textfield_default_mtrl_alpha.9.png.flat | Bin 428 -> 0 bytes ...eld_search_activated_mtrl_alpha.9.png.flat | Bin 444 -> 0 bytes ...field_search_default_mtrl_alpha.9.png.flat | Bin 440 -> 0 bytes ...i-v4_notification_bg_low_normal.9.png.flat | Bin 452 -> 0 bytes ...-v4_notification_bg_low_pressed.9.png.flat | Bin 484 -> 0 bytes ...xhdpi-v4_notification_bg_normal.9.png.flat | Bin 444 -> 0 bytes ..._notification_bg_normal_pressed.9.png.flat | Bin 484 -> 0 bytes ...notify_panel_notification_icon_bg.png.flat | Bin 380 -> 0 bytes ...v4_abc_ab_share_pack_mtrl_alpha.9.png.flat | Bin 520 -> 0 bytes ...i-v4_abc_btn_check_to_on_mtrl_000.png.flat | Bin 536 -> 0 bytes ...i-v4_abc_btn_check_to_on_mtrl_015.png.flat | Bin 824 -> 0 bytes ...i-v4_abc_btn_radio_to_on_mtrl_000.png.flat | Bin 1212 -> 0 bytes ...i-v4_abc_btn_radio_to_on_mtrl_015.png.flat | Bin 1436 -> 0 bytes ...abc_btn_switch_to_on_mtrl_00001.9.png.flat | Bin 2704 -> 0 bytes ...abc_btn_switch_to_on_mtrl_00012.9.png.flat | Bin 3076 -> 0 bytes ...c_cab_background_top_mtrl_alpha.9.png.flat | Bin 484 -> 0 bytes ...c_ic_commit_search_api_mtrl_alpha.png.flat | Bin 468 -> 0 bytes ...v4_abc_ic_menu_copy_mtrl_am_alpha.png.flat | Bin 496 -> 0 bytes ...dpi-v4_abc_ic_menu_cut_mtrl_alpha.png.flat | Bin 936 -> 0 bytes ...4_abc_ic_menu_paste_mtrl_am_alpha.png.flat | Bin 584 -> 0 bytes ..._abc_ic_menu_selectall_mtrl_alpha.png.flat | Bin 500 -> 0 bytes ...i-v4_abc_ic_menu_share_mtrl_alpha.png.flat | Bin 928 -> 0 bytes ...-xxhdpi-v4_abc_ic_star_black_16dp.png.flat | Bin 676 -> 0 bytes ...-xxhdpi-v4_abc_ic_star_black_36dp.png.flat | Bin 1200 -> 0 bytes ...-xxhdpi-v4_abc_ic_star_black_48dp.png.flat | Bin 1508 -> 0 bytes ...pi-v4_abc_ic_star_half_black_16dp.png.flat | Bin 540 -> 0 bytes ...pi-v4_abc_ic_star_half_black_36dp.png.flat | Bin 808 -> 0 bytes ...pi-v4_abc_ic_star_half_black_48dp.png.flat | Bin 1020 -> 0 bytes ...-v4_abc_list_divider_mtrl_alpha.9.png.flat | Bin 404 -> 0 bytes ...xxhdpi-v4_abc_list_focused_holo.9.png.flat | Bin 468 -> 0 bytes ...pi-v4_abc_list_longpressed_holo.9.png.flat | Bin 452 -> 0 bytes ...i-v4_abc_list_pressed_holo_dark.9.png.flat | Bin 440 -> 0 bytes ...-v4_abc_list_pressed_holo_light.9.png.flat | Bin 444 -> 0 bytes ...ist_selector_disabled_holo_dark.9.png.flat | Bin 508 -> 0 bytes ...st_selector_disabled_holo_light.9.png.flat | Bin 512 -> 0 bytes ...bc_menu_hardkey_panel_mtrl_mult.9.png.flat | Bin 2020 -> 0 bytes ..._abc_popup_background_mtrl_mult.9.png.flat | Bin 2544 -> 0 bytes ...c_scrubber_control_off_mtrl_alpha.png.flat | Bin 568 -> 0 bytes ...ubber_control_to_pressed_mtrl_000.png.flat | Bin 656 -> 0 bytes ...ubber_control_to_pressed_mtrl_005.png.flat | Bin 848 -> 0 bytes ...abc_scrubber_primary_mtrl_alpha.9.png.flat | Bin 452 -> 0 bytes ...4_abc_scrubber_track_mtrl_alpha.9.png.flat | Bin 444 -> 0 bytes ...pi-v4_abc_spinner_mtrl_am_alpha.9.png.flat | Bin 752 -> 0 bytes ...-v4_abc_switch_track_mtrl_alpha.9.png.flat | Bin 1084 -> 0 bytes ...v4_abc_tab_indicator_mtrl_alpha.9.png.flat | Bin 436 -> 0 bytes ...text_select_handle_left_mtrl_dark.png.flat | Bin 668 -> 0 bytes ...ext_select_handle_left_mtrl_light.png.flat | Bin 668 -> 0 bytes ...xt_select_handle_middle_mtrl_dark.png.flat | Bin 1004 -> 0 bytes ...t_select_handle_middle_mtrl_light.png.flat | Bin 1008 -> 0 bytes ...ext_select_handle_right_mtrl_dark.png.flat | Bin 672 -> 0 bytes ...xt_select_handle_right_mtrl_light.png.flat | Bin 676 -> 0 bytes ..._textfield_activated_mtrl_alpha.9.png.flat | Bin 444 -> 0 bytes ...bc_textfield_default_mtrl_alpha.9.png.flat | Bin 440 -> 0 bytes ...eld_search_activated_mtrl_alpha.9.png.flat | Bin 448 -> 0 bytes ...field_search_default_mtrl_alpha.9.png.flat | Bin 444 -> 0 bytes ...i-v4_abc_btn_check_to_on_mtrl_000.png.flat | Bin 508 -> 0 bytes ...i-v4_abc_btn_check_to_on_mtrl_015.png.flat | Bin 708 -> 0 bytes ...i-v4_abc_btn_radio_to_on_mtrl_000.png.flat | Bin 1020 -> 0 bytes ...i-v4_abc_btn_radio_to_on_mtrl_015.png.flat | Bin 1180 -> 0 bytes ...abc_btn_switch_to_on_mtrl_00001.9.png.flat | Bin 2748 -> 0 bytes ...abc_btn_switch_to_on_mtrl_00012.9.png.flat | Bin 3056 -> 0 bytes ...v4_abc_ic_menu_copy_mtrl_am_alpha.png.flat | Bin 564 -> 0 bytes ...dpi-v4_abc_ic_menu_cut_mtrl_alpha.png.flat | Bin 1140 -> 0 bytes ...4_abc_ic_menu_paste_mtrl_am_alpha.png.flat | Bin 700 -> 0 bytes ..._abc_ic_menu_selectall_mtrl_alpha.png.flat | Bin 548 -> 0 bytes ...i-v4_abc_ic_menu_share_mtrl_alpha.png.flat | Bin 1132 -> 0 bytes ...xxxhdpi-v4_abc_ic_star_black_16dp.png.flat | Bin 820 -> 0 bytes ...xxxhdpi-v4_abc_ic_star_black_36dp.png.flat | Bin 1492 -> 0 bytes ...xxxhdpi-v4_abc_ic_star_black_48dp.png.flat | Bin 1900 -> 0 bytes ...pi-v4_abc_ic_star_half_black_16dp.png.flat | Bin 604 -> 0 bytes ...pi-v4_abc_ic_star_half_black_36dp.png.flat | Bin 988 -> 0 bytes ...pi-v4_abc_ic_star_half_black_48dp.png.flat | Bin 1220 -> 0 bytes ...ubber_control_to_pressed_mtrl_000.png.flat | Bin 672 -> 0 bytes ...ubber_control_to_pressed_mtrl_005.png.flat | Bin 888 -> 0 bytes ...pi-v4_abc_spinner_mtrl_am_alpha.9.png.flat | Bin 660 -> 0 bytes ...-v4_abc_switch_track_mtrl_alpha.9.png.flat | Bin 1048 -> 0 bytes ...v4_abc_tab_indicator_mtrl_alpha.9.png.flat | Bin 440 -> 0 bytes ...text_select_handle_left_mtrl_dark.png.flat | Bin 764 -> 0 bytes ...ext_select_handle_left_mtrl_light.png.flat | Bin 768 -> 0 bytes ...ext_select_handle_right_mtrl_dark.png.flat | Bin 768 -> 0 bytes ...xt_select_handle_right_mtrl_light.png.flat | Bin 768 -> 0 bytes ...wable_abc_btn_borderless_material.xml.flat | Bin 804 -> 0 bytes .../drawable_abc_btn_check_material.xml.flat | Bin 612 -> 0 bytes ...awable_abc_btn_default_mtrl_shape.xml.flat | Bin 1488 -> 0 bytes .../drawable_abc_btn_radio_material.xml.flat | Bin 612 -> 0 bytes ...le_abc_cab_background_internal_bg.xml.flat | Bin 476 -> 0 bytes ...e_abc_cab_background_top_material.xml.flat | Bin 412 -> 0 bytes .../drawable_abc_ic_ab_back_material.xml.flat | Bin 924 -> 0 bytes ...bc_ic_arrow_drop_right_black_24dp.xml.flat | Bin 1328 -> 0 bytes .../drawable_abc_ic_clear_material.xml.flat | Bin 892 -> 0 bytes ...ble_abc_ic_go_search_api_material.xml.flat | Bin 860 -> 0 bytes ...ble_abc_ic_menu_overflow_material.xml.flat | Bin 1012 -> 0 bytes ...awable_abc_ic_search_api_material.xml.flat | Bin 1028 -> 0 bytes ..._abc_ic_voice_search_api_material.xml.flat | Bin 1056 -> 0 bytes ...ble_abc_item_background_holo_dark.xml.flat | Bin 1812 -> 0 bytes ...le_abc_item_background_holo_light.xml.flat | Bin 1820 -> 0 bytes ...r_background_transition_holo_dark.xml.flat | Bin 596 -> 0 bytes ..._background_transition_holo_light.xml.flat | Bin 600 -> 0 bytes ...wable_abc_list_selector_holo_dark.xml.flat | Bin 1884 -> 0 bytes ...able_abc_list_selector_holo_light.xml.flat | Bin 1892 -> 0 bytes ..._abc_ratingbar_indicator_material.xml.flat | Bin 1028 -> 0 bytes .../drawable_abc_ratingbar_material.xml.flat | Bin 1004 -> 0 bytes ...able_abc_ratingbar_small_material.xml.flat | Bin 1020 -> 0 bytes ...awable_abc_seekbar_thumb_material.xml.flat | Bin 1640 -> 0 bytes ...le_abc_seekbar_tick_mark_material.xml.flat | Bin 692 -> 0 bytes ...awable_abc_seekbar_track_material.xml.flat | Bin 1956 -> 0 bytes ...ner_textfield_background_material.xml.flat | Bin 1696 -> 0 bytes ...rawable_abc_switch_thumb_material.xml.flat | Bin 624 -> 0 bytes ...awable_abc_tab_indicator_material.xml.flat | Bin 612 -> 0 bytes ...drawable_abc_text_cursor_material.xml.flat | Bin 608 -> 0 bytes ...ble_abc_textfield_search_material.xml.flat | Bin 1204 -> 0 bytes .../3.2.1/drawable_abc_vector_test.xml.flat | Bin 764 -> 0 bytes .../3.2.1/drawable_notification_bg.xml.flat | Bin 772 -> 0 bytes .../drawable_notification_bg_low.xml.flat | Bin 780 -> 0 bytes ...able_notification_icon_background.xml.flat | Bin 480 -> 0 bytes .../drawable_notification_tile_bg.xml.flat | Bin 432 -> 0 bytes .../drawable_tooltip_frame_dark.xml.flat | Bin 576 -> 0 bytes .../drawable_tooltip_frame_light.xml.flat | Bin 580 -> 0 bytes .../layout-v21_notification_action.xml.flat | Bin 1920 -> 0 bytes ...v21_notification_action_tombstone.xml.flat | Bin 2304 -> 0 bytes ..._notification_template_custom_big.xml.flat | Bin 5380 -> 0 bytes ..._notification_template_icon_group.xml.flat | Bin 2028 -> 0 bytes .../layout-v26_abc_screen_toolbar.xml.flat | Bin 2404 -> 0 bytes ..._alert_dialog_button_bar_material.xml.flat | Bin 2164 -> 0 bytes ...0_abc_alert_dialog_title_material.xml.flat | Bin 2584 -> 0 bytes .../layout_abc_action_bar_title_item.xml.flat | Bin 1588 -> 0 bytes ...ayout_abc_action_bar_up_container.xml.flat | Bin 672 -> 0 bytes ...ayout_abc_action_menu_item_layout.xml.flat | Bin 1144 -> 0 bytes .../layout_abc_action_menu_layout.xml.flat | Bin 720 -> 0 bytes .../3.2.1/layout_abc_action_mode_bar.xml.flat | Bin 628 -> 0 bytes ...c_action_mode_close_item_material.xml.flat | Bin 1244 -> 0 bytes .../layout_abc_activity_chooser_view.xml.flat | Bin 3416 -> 0 bytes ...c_activity_chooser_view_list_item.xml.flat | Bin 2416 -> 0 bytes ..._alert_dialog_button_bar_material.xml.flat | Bin 2740 -> 0 bytes .../layout_abc_alert_dialog_material.xml.flat | Bin 5032 -> 0 bytes ...t_abc_alert_dialog_title_material.xml.flat | Bin 2820 -> 0 bytes ...ut_abc_cascading_menu_item_layout.xml.flat | Bin 3720 -> 0 bytes .../layout_abc_dialog_title_material.xml.flat | Bin 1700 -> 0 bytes .../layout_abc_expanded_menu_layout.xml.flat | Bin 568 -> 0 bytes ...ayout_abc_list_menu_item_checkbox.xml.flat | Bin 800 -> 0 bytes .../layout_abc_list_menu_item_icon.xml.flat | Bin 1016 -> 0 bytes .../layout_abc_list_menu_item_layout.xml.flat | Bin 2620 -> 0 bytes .../layout_abc_list_menu_item_radio.xml.flat | Bin 788 -> 0 bytes ...abc_popup_menu_header_item_layout.xml.flat | Bin 1388 -> 0 bytes ...layout_abc_popup_menu_item_layout.xml.flat | Bin 4120 -> 0 bytes ...layout_abc_screen_content_include.xml.flat | Bin 776 -> 0 bytes .../3.2.1/layout_abc_screen_simple.xml.flat | Bin 1304 -> 0 bytes ...screen_simple_overlay_action_mode.xml.flat | Bin 1272 -> 0 bytes .../3.2.1/layout_abc_screen_toolbar.xml.flat | Bin 2316 -> 0 bytes ..._search_dropdown_item_icons_2line.xml.flat | Bin 4024 -> 0 bytes .../3.2.1/layout_abc_search_view.xml.flat | Bin 7900 -> 0 bytes ...layout_abc_select_dialog_material.xml.flat | Bin 1432 -> 0 bytes .../aapt2/3.2.1/layout_abc_tooltip.xml.flat | Bin 1864 -> 0 bytes .../aapt2/3.2.1/layout_activity_main.xml.flat | Bin 1076 -> 0 bytes ...ication_template_part_chronometer.xml.flat | Bin 724 -> 0 bytes ...t_notification_template_part_time.xml.flat | Bin 696 -> 0 bytes ...ayout_select_dialog_item_material.xml.flat | Bin 1116 -> 0 bytes ...elect_dialog_multichoice_material.xml.flat | Bin 1620 -> 0 bytes ...lect_dialog_singlechoice_material.xml.flat | Bin 1616 -> 0 bytes ...port_simple_spinner_dropdown_item.xml.flat | Bin 720 -> 0 bytes .../mipmap-anydpi-v26_ic_launcher.xml.flat | Bin 516 -> 0 bytes ...pmap-anydpi-v26_ic_launcher_round.xml.flat | Bin 528 -> 0 bytes .../3.2.1/mipmap-hdpi_ic_launcher.png.flat | Bin 3124 -> 0 bytes .../mipmap-hdpi_ic_launcher_round.png.flat | Bin 5080 -> 0 bytes .../3.2.1/mipmap-mdpi_ic_launcher.png.flat | Bin 2220 -> 0 bytes .../mipmap-mdpi_ic_launcher_round.png.flat | Bin 2956 -> 0 bytes .../3.2.1/mipmap-xhdpi_ic_launcher.png.flat | Bin 4652 -> 0 bytes .../mipmap-xhdpi_ic_launcher_round.png.flat | Bin 7068 -> 0 bytes .../3.2.1/mipmap-xxhdpi_ic_launcher.png.flat | Bin 6548 -> 0 bytes .../mipmap-xxhdpi_ic_launcher_round.png.flat | Bin 10588 -> 0 bytes .../3.2.1/mipmap-xxxhdpi_ic_launcher.png.flat | Bin 9292 -> 0 bytes .../mipmap-xxxhdpi_ic_launcher_round.png.flat | Bin 15308 -> 0 bytes ...anydpi-v24_ic_launcher_foreground.xml.flat | Bin 0 -> 2756 bytes .../drawable_ic_launcher_background.xml.flat | Bin 10448 -> 10768 bytes .../aapt2/7.2.0/layout_activity_main.xml.flat | Bin 0 -> 2124 bytes .../aapt2/7.2.0/layout_content_main.xml.flat | Bin 0 -> 1492 bytes .../7.2.0/layout_fragment_first.xml.flat | Bin 0 -> 2052 bytes .../7.2.0/layout_fragment_second.xml.flat | Bin 0 -> 1976 bytes .../aapt2/7.2.0/menu_menu_main.xml.flat | Bin 0 -> 748 bytes .../mipmap-anydpi-v26_ic_launcher.xml.flat | Bin 0 -> 472 bytes ...pmap-anydpi-v26_ic_launcher_round.xml.flat | Bin 0 -> 484 bytes .../7.2.0/mipmap-hdpi_ic_launcher.webp.flat | Bin 0 -> 1544 bytes .../mipmap-hdpi_ic_launcher_round.webp.flat | Bin 0 -> 3052 bytes .../7.2.0/mipmap-mdpi_ic_launcher.webp.flat | Bin 0 -> 1124 bytes .../mipmap-mdpi_ic_launcher_round.webp.flat | Bin 0 -> 1924 bytes .../7.2.0/mipmap-xhdpi_ic_launcher.webp.flat | Bin 0 -> 2040 bytes .../mipmap-xhdpi_ic_launcher_round.webp.flat | Bin 0 -> 4072 bytes .../7.2.0/mipmap-xxhdpi_ic_launcher.webp.flat | Bin 0 -> 3024 bytes .../mipmap-xxhdpi_ic_launcher_round.webp.flat | Bin 0 -> 6068 bytes .../mipmap-xxxhdpi_ic_launcher.webp.flat | Bin 0 -> 3988 bytes ...mipmap-xxxhdpi_ic_launcher_round.webp.flat | Bin 0 -> 7936 bytes .../aapt2/7.2.0/navigation_nav_graph.xml.flat | Bin 0 -> 1780 bytes ...anydpi-v24_ic_launcher_foreground.xml.flat | Bin 0 -> 2756 bytes .../drawable_ic_launcher_background.xml.flat | Bin 10448 -> 10768 bytes .../aapt2/7.2.1/layout_activity_main.xml.flat | Bin 0 -> 2124 bytes .../aapt2/7.2.1/layout_content_main.xml.flat | Bin 0 -> 1492 bytes .../7.2.1/layout_fragment_first.xml.flat | Bin 0 -> 2052 bytes .../7.2.1/layout_fragment_second.xml.flat | Bin 0 -> 1976 bytes .../aapt2/7.2.1/menu_menu_main.xml.flat | Bin 0 -> 748 bytes .../mipmap-anydpi-v26_ic_launcher.xml.flat | Bin 0 -> 472 bytes ...pmap-anydpi-v26_ic_launcher_round.xml.flat | Bin 0 -> 484 bytes .../7.2.1/mipmap-hdpi_ic_launcher.webp.flat | Bin 0 -> 1544 bytes .../mipmap-hdpi_ic_launcher_round.webp.flat | Bin 0 -> 3052 bytes .../7.2.1/mipmap-mdpi_ic_launcher.webp.flat | Bin 0 -> 1124 bytes .../mipmap-mdpi_ic_launcher_round.webp.flat | Bin 0 -> 1924 bytes .../7.2.1/mipmap-xhdpi_ic_launcher.webp.flat | Bin 0 -> 2040 bytes .../mipmap-xhdpi_ic_launcher_round.webp.flat | Bin 0 -> 4072 bytes .../7.2.1/mipmap-xxhdpi_ic_launcher.webp.flat | Bin 0 -> 3024 bytes .../mipmap-xxhdpi_ic_launcher_round.webp.flat | Bin 0 -> 6068 bytes .../mipmap-xxxhdpi_ic_launcher.webp.flat | Bin 0 -> 3988 bytes ...mipmap-xxxhdpi_ic_launcher_round.webp.flat | Bin 0 -> 7936 bytes .../aapt2/7.2.1/navigation_nav_graph.xml.flat | Bin 0 -> 1780 bytes ...anydpi-v24_ic_launcher_foreground.xml.flat | Bin 0 -> 2872 bytes .../drawable_ic_launcher_background.xml.flat | Bin 0 -> 10812 bytes .../aapt2/7.2.2/layout_activity_main.xml.flat | Bin 0 -> 2160 bytes .../aapt2/7.2.2/layout_content_main.xml.flat | Bin 0 -> 1528 bytes .../7.2.2/layout_fragment_first.xml.flat | Bin 0 -> 2088 bytes .../7.2.2/layout_fragment_second.xml.flat | Bin 0 -> 2012 bytes .../aapt2/7.2.2/menu_menu_main.xml.flat | Bin 0 -> 784 bytes .../mipmap-anydpi-v26_ic_launcher.xml.flat | Bin 0 -> 508 bytes ...pmap-anydpi-v26_ic_launcher_round.xml.flat | Bin 0 -> 520 bytes .../7.2.2/mipmap-hdpi_ic_launcher.webp.flat | Bin 0 -> 1580 bytes .../mipmap-hdpi_ic_launcher_round.webp.flat | Bin 0 -> 3088 bytes .../7.2.2/mipmap-mdpi_ic_launcher.webp.flat | Bin 0 -> 1160 bytes .../mipmap-mdpi_ic_launcher_round.webp.flat | Bin 0 -> 1960 bytes .../7.2.2/mipmap-xhdpi_ic_launcher.webp.flat | Bin 0 -> 2076 bytes .../mipmap-xhdpi_ic_launcher_round.webp.flat | Bin 0 -> 4108 bytes .../7.2.2/mipmap-xxhdpi_ic_launcher.webp.flat | Bin 0 -> 3060 bytes .../mipmap-xxhdpi_ic_launcher_round.webp.flat | Bin 0 -> 6104 bytes .../mipmap-xxxhdpi_ic_launcher.webp.flat | Bin 0 -> 4024 bytes ...mipmap-xxxhdpi_ic_launcher_round.webp.flat | Bin 0 -> 7972 bytes .../aapt2/7.2.2/navigation_nav_graph.xml.flat | Bin 0 -> 1816 bytes 1223 files changed, 168 insertions(+), 78 deletions(-) delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/anim_abc_fade_in.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/anim_abc_fade_out.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/anim_abc_grow_fade_in_from_bottom.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/anim_abc_popup_enter.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/anim_abc_popup_exit.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/anim_abc_shrink_fade_out_from_bottom.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/anim_abc_slide_in_bottom.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/anim_abc_slide_in_top.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/anim_abc_slide_out_bottom.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/anim_abc_slide_out_top.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/anim_abc_tooltip_enter.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/anim_abc_tooltip_exit.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/color-v21_abc_btn_colored_borderless_text_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/color-v23_abc_btn_colored_borderless_text_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/color-v23_abc_btn_colored_text_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/color-v23_abc_color_highlight_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/color-v23_abc_tint_btn_checkable.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/color-v23_abc_tint_default.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/color-v23_abc_tint_edittext.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/color-v23_abc_tint_seek_thumb.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/color-v23_abc_tint_spinner.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/color-v23_abc_tint_switch_track.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/color_abc_background_cache_hint_selector_material_dark.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/color_abc_background_cache_hint_selector_material_light.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/color_abc_btn_colored_text_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/color_abc_hint_foreground_material_dark.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/color_abc_hint_foreground_material_light.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/color_abc_primary_text_disable_only_material_dark.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/color_abc_primary_text_disable_only_material_light.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/color_abc_primary_text_material_dark.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/color_abc_primary_text_material_light.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/color_abc_search_url_text.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/color_abc_secondary_text_material_dark.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/color_abc_secondary_text_material_light.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/color_abc_tint_btn_checkable.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/color_abc_tint_default.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/color_abc_tint_edittext.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/color_abc_tint_seek_thumb.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/color_abc_tint_spinner.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/color_abc_tint_switch_track.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/color_switch_thumb_material_dark.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/color_switch_thumb_material_light.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_ab_share_pack_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_btn_check_to_on_mtrl_000.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_btn_check_to_on_mtrl_015.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_btn_radio_to_on_mtrl_000.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_btn_radio_to_on_mtrl_015.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_btn_switch_to_on_mtrl_00001.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_btn_switch_to_on_mtrl_00012.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_cab_background_top_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_ic_commit_search_api_mtrl_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_ic_menu_copy_mtrl_am_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_ic_menu_cut_mtrl_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_ic_menu_paste_mtrl_am_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_ic_menu_selectall_mtrl_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_ic_menu_share_mtrl_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_ic_star_black_16dp.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_ic_star_black_36dp.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_ic_star_black_48dp.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_ic_star_half_black_16dp.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_ic_star_half_black_36dp.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_ic_star_half_black_48dp.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_list_divider_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_list_focused_holo.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_list_longpressed_holo.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_list_pressed_holo_dark.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_list_pressed_holo_light.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_list_selector_disabled_holo_dark.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_list_selector_disabled_holo_light.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_menu_hardkey_panel_mtrl_mult.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_popup_background_mtrl_mult.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_scrubber_control_off_mtrl_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_scrubber_control_to_pressed_mtrl_000.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_scrubber_control_to_pressed_mtrl_005.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_scrubber_primary_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_scrubber_track_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_spinner_mtrl_am_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_switch_track_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_tab_indicator_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_text_select_handle_left_mtrl_dark.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_text_select_handle_left_mtrl_light.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_text_select_handle_middle_mtrl_dark.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_text_select_handle_middle_mtrl_light.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_text_select_handle_right_mtrl_dark.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_text_select_handle_right_mtrl_light.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_textfield_activated_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_textfield_default_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_textfield_search_activated_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_textfield_search_default_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_notification_bg_low_normal.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_notification_bg_low_pressed.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_notification_bg_normal.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_notification_bg_normal_pressed.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_notify_panel_notification_icon_bg.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-ldrtl-hdpi-v17_abc_ic_menu_copy_mtrl_am_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-ldrtl-hdpi-v17_abc_ic_menu_cut_mtrl_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-ldrtl-hdpi-v17_abc_spinner_mtrl_am_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-ldrtl-mdpi-v17_abc_ic_menu_copy_mtrl_am_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-ldrtl-mdpi-v17_abc_ic_menu_cut_mtrl_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-ldrtl-mdpi-v17_abc_spinner_mtrl_am_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-ldrtl-xhdpi-v17_abc_ic_menu_copy_mtrl_am_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-ldrtl-xhdpi-v17_abc_ic_menu_cut_mtrl_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-ldrtl-xhdpi-v17_abc_spinner_mtrl_am_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-ldrtl-xxhdpi-v17_abc_ic_menu_copy_mtrl_am_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-ldrtl-xxhdpi-v17_abc_ic_menu_cut_mtrl_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-ldrtl-xxhdpi-v17_abc_spinner_mtrl_am_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-ldrtl-xxxhdpi-v17_abc_ic_menu_copy_mtrl_am_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-ldrtl-xxxhdpi-v17_abc_ic_menu_cut_mtrl_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-ldrtl-xxxhdpi-v17_abc_spinner_mtrl_am_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_ab_share_pack_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_btn_check_to_on_mtrl_000.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_btn_check_to_on_mtrl_015.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_btn_radio_to_on_mtrl_000.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_btn_radio_to_on_mtrl_015.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_btn_switch_to_on_mtrl_00001.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_btn_switch_to_on_mtrl_00012.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_cab_background_top_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_ic_commit_search_api_mtrl_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_ic_menu_copy_mtrl_am_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_ic_menu_cut_mtrl_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_ic_menu_paste_mtrl_am_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_ic_menu_selectall_mtrl_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_ic_menu_share_mtrl_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_ic_star_black_16dp.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_ic_star_black_36dp.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_ic_star_black_48dp.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_ic_star_half_black_16dp.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_ic_star_half_black_36dp.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_ic_star_half_black_48dp.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_list_divider_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_list_focused_holo.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_list_longpressed_holo.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_list_pressed_holo_dark.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_list_pressed_holo_light.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_list_selector_disabled_holo_dark.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_list_selector_disabled_holo_light.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_menu_hardkey_panel_mtrl_mult.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_popup_background_mtrl_mult.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_scrubber_control_off_mtrl_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_scrubber_control_to_pressed_mtrl_000.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_scrubber_control_to_pressed_mtrl_005.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_scrubber_primary_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_scrubber_track_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_spinner_mtrl_am_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_switch_track_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_tab_indicator_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_text_select_handle_left_mtrl_dark.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_text_select_handle_left_mtrl_light.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_text_select_handle_middle_mtrl_dark.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_text_select_handle_middle_mtrl_light.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_text_select_handle_right_mtrl_dark.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_text_select_handle_right_mtrl_light.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_textfield_activated_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_textfield_default_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_textfield_search_activated_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_textfield_search_default_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_notification_bg_low_normal.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_notification_bg_low_pressed.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_notification_bg_normal.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_notification_bg_normal_pressed.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_notify_panel_notification_icon_bg.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-v21_abc_action_bar_item_background_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-v21_abc_btn_colored_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-v21_abc_dialog_material_background.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-v21_abc_edit_text_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-v21_abc_list_divider_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-v21_notification_action_background.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-v23_abc_control_background_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-v24_ic_launcher_foreground.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-watch-v20_abc_dialog_material_background.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_ab_share_pack_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_btn_check_to_on_mtrl_000.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_btn_check_to_on_mtrl_015.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_btn_radio_to_on_mtrl_000.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_btn_radio_to_on_mtrl_015.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_btn_switch_to_on_mtrl_00001.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_btn_switch_to_on_mtrl_00012.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_cab_background_top_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_ic_commit_search_api_mtrl_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_ic_menu_copy_mtrl_am_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_ic_menu_cut_mtrl_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_ic_menu_paste_mtrl_am_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_ic_menu_selectall_mtrl_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_ic_menu_share_mtrl_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_ic_star_black_16dp.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_ic_star_black_36dp.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_ic_star_black_48dp.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_ic_star_half_black_16dp.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_ic_star_half_black_36dp.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_ic_star_half_black_48dp.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_list_divider_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_list_focused_holo.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_list_longpressed_holo.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_list_pressed_holo_dark.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_list_pressed_holo_light.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_list_selector_disabled_holo_dark.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_list_selector_disabled_holo_light.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_menu_hardkey_panel_mtrl_mult.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_popup_background_mtrl_mult.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_scrubber_control_off_mtrl_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_scrubber_control_to_pressed_mtrl_000.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_scrubber_control_to_pressed_mtrl_005.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_scrubber_primary_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_scrubber_track_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_spinner_mtrl_am_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_switch_track_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_tab_indicator_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_text_select_handle_left_mtrl_dark.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_text_select_handle_left_mtrl_light.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_text_select_handle_middle_mtrl_dark.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_text_select_handle_middle_mtrl_light.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_text_select_handle_right_mtrl_dark.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_text_select_handle_right_mtrl_light.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_textfield_activated_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_textfield_default_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_textfield_search_activated_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_textfield_search_default_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_notification_bg_low_normal.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_notification_bg_low_pressed.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_notification_bg_normal.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_notification_bg_normal_pressed.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_notify_panel_notification_icon_bg.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_ab_share_pack_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_btn_check_to_on_mtrl_000.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_btn_check_to_on_mtrl_015.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_btn_radio_to_on_mtrl_000.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_btn_radio_to_on_mtrl_015.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_btn_switch_to_on_mtrl_00001.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_btn_switch_to_on_mtrl_00012.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_cab_background_top_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_ic_commit_search_api_mtrl_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_ic_menu_copy_mtrl_am_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_ic_menu_cut_mtrl_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_ic_menu_paste_mtrl_am_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_ic_menu_selectall_mtrl_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_ic_menu_share_mtrl_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_ic_star_black_16dp.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_ic_star_black_36dp.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_ic_star_black_48dp.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_ic_star_half_black_16dp.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_ic_star_half_black_36dp.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_ic_star_half_black_48dp.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_list_divider_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_list_focused_holo.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_list_longpressed_holo.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_list_pressed_holo_dark.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_list_pressed_holo_light.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_list_selector_disabled_holo_dark.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_list_selector_disabled_holo_light.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_menu_hardkey_panel_mtrl_mult.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_popup_background_mtrl_mult.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_scrubber_control_off_mtrl_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_scrubber_control_to_pressed_mtrl_000.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_scrubber_control_to_pressed_mtrl_005.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_scrubber_primary_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_scrubber_track_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_spinner_mtrl_am_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_switch_track_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_tab_indicator_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_text_select_handle_left_mtrl_dark.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_text_select_handle_left_mtrl_light.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_text_select_handle_middle_mtrl_dark.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_text_select_handle_middle_mtrl_light.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_text_select_handle_right_mtrl_dark.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_text_select_handle_right_mtrl_light.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_textfield_activated_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_textfield_default_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_textfield_search_activated_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_textfield_search_default_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxxhdpi-v4_abc_btn_check_to_on_mtrl_000.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxxhdpi-v4_abc_btn_check_to_on_mtrl_015.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxxhdpi-v4_abc_btn_radio_to_on_mtrl_000.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxxhdpi-v4_abc_btn_radio_to_on_mtrl_015.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxxhdpi-v4_abc_btn_switch_to_on_mtrl_00001.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxxhdpi-v4_abc_btn_switch_to_on_mtrl_00012.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxxhdpi-v4_abc_ic_menu_copy_mtrl_am_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxxhdpi-v4_abc_ic_menu_cut_mtrl_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxxhdpi-v4_abc_ic_menu_paste_mtrl_am_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxxhdpi-v4_abc_ic_menu_selectall_mtrl_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxxhdpi-v4_abc_ic_menu_share_mtrl_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxxhdpi-v4_abc_ic_star_black_16dp.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxxhdpi-v4_abc_ic_star_black_36dp.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxxhdpi-v4_abc_ic_star_black_48dp.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxxhdpi-v4_abc_ic_star_half_black_16dp.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxxhdpi-v4_abc_ic_star_half_black_36dp.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxxhdpi-v4_abc_ic_star_half_black_48dp.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxxhdpi-v4_abc_scrubber_control_to_pressed_mtrl_000.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxxhdpi-v4_abc_scrubber_control_to_pressed_mtrl_005.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxxhdpi-v4_abc_spinner_mtrl_am_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxxhdpi-v4_abc_switch_track_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxxhdpi-v4_abc_tab_indicator_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxxhdpi-v4_abc_text_select_handle_left_mtrl_dark.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxxhdpi-v4_abc_text_select_handle_left_mtrl_light.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxxhdpi-v4_abc_text_select_handle_right_mtrl_dark.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxxhdpi-v4_abc_text_select_handle_right_mtrl_light.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable_abc_btn_borderless_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable_abc_btn_check_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable_abc_btn_default_mtrl_shape.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable_abc_btn_radio_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable_abc_cab_background_internal_bg.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable_abc_cab_background_top_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable_abc_ic_ab_back_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable_abc_ic_arrow_drop_right_black_24dp.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable_abc_ic_clear_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable_abc_ic_go_search_api_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable_abc_ic_menu_overflow_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable_abc_ic_search_api_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable_abc_ic_voice_search_api_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable_abc_item_background_holo_dark.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable_abc_item_background_holo_light.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable_abc_list_selector_background_transition_holo_dark.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable_abc_list_selector_background_transition_holo_light.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable_abc_list_selector_holo_dark.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable_abc_list_selector_holo_light.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable_abc_ratingbar_indicator_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable_abc_ratingbar_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable_abc_ratingbar_small_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable_abc_seekbar_thumb_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable_abc_seekbar_tick_mark_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable_abc_seekbar_track_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable_abc_spinner_textfield_background_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable_abc_switch_thumb_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable_abc_tab_indicator_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable_abc_text_cursor_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable_abc_textfield_search_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable_abc_vector_test.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable_ic_launcher_background.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable_notification_bg.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable_notification_bg_low.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable_notification_icon_background.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable_notification_tile_bg.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable_tooltip_frame_dark.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable_tooltip_frame_light.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/layout-v21_notification_action.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/layout-v21_notification_action_tombstone.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/layout-v21_notification_template_custom_big.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/layout-v21_notification_template_icon_group.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/layout-v26_abc_screen_toolbar.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/layout-watch-v20_abc_alert_dialog_button_bar_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/layout-watch-v20_abc_alert_dialog_title_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/layout_abc_action_bar_title_item.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/layout_abc_action_bar_up_container.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/layout_abc_action_menu_item_layout.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/layout_abc_action_menu_layout.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/layout_abc_action_mode_bar.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/layout_abc_action_mode_close_item_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/layout_abc_activity_chooser_view.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/layout_abc_activity_chooser_view_list_item.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/layout_abc_alert_dialog_button_bar_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/layout_abc_alert_dialog_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/layout_abc_alert_dialog_title_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/layout_abc_cascading_menu_item_layout.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/layout_abc_dialog_title_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/layout_abc_expanded_menu_layout.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/layout_abc_list_menu_item_checkbox.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/layout_abc_list_menu_item_icon.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/layout_abc_list_menu_item_layout.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/layout_abc_list_menu_item_radio.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/layout_abc_popup_menu_header_item_layout.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/layout_abc_popup_menu_item_layout.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/layout_abc_screen_content_include.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/layout_abc_screen_simple.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/layout_abc_screen_simple_overlay_action_mode.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/layout_abc_screen_toolbar.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/layout_abc_search_dropdown_item_icons_2line.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/layout_abc_search_view.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/layout_abc_select_dialog_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/layout_abc_tooltip.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/layout_activity_main.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/layout_notification_template_part_chronometer.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/layout_notification_template_part_time.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/layout_select_dialog_item_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/layout_select_dialog_multichoice_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/layout_select_dialog_singlechoice_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/layout_support_simple_spinner_dropdown_item.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/mipmap-anydpi-v26_ic_launcher.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/mipmap-anydpi-v26_ic_launcher_round.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/mipmap-hdpi_ic_launcher.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/mipmap-hdpi_ic_launcher_round.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/mipmap-mdpi_ic_launcher.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/mipmap-mdpi_ic_launcher_round.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/mipmap-xhdpi_ic_launcher.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/mipmap-xhdpi_ic_launcher_round.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/mipmap-xxhdpi_ic_launcher.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/mipmap-xxhdpi_ic_launcher_round.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/mipmap-xxxhdpi_ic_launcher.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/mipmap-xxxhdpi_ic_launcher_round.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/anim_abc_fade_in.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/anim_abc_fade_out.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/anim_abc_grow_fade_in_from_bottom.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/anim_abc_popup_enter.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/anim_abc_popup_exit.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/anim_abc_shrink_fade_out_from_bottom.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/anim_abc_slide_in_bottom.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/anim_abc_slide_in_top.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/anim_abc_slide_out_bottom.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/anim_abc_slide_out_top.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/anim_abc_tooltip_enter.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/anim_abc_tooltip_exit.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/color-v21_abc_btn_colored_borderless_text_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/color-v23_abc_btn_colored_borderless_text_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/color-v23_abc_btn_colored_text_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/color-v23_abc_color_highlight_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/color-v23_abc_tint_btn_checkable.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/color-v23_abc_tint_default.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/color-v23_abc_tint_edittext.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/color-v23_abc_tint_seek_thumb.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/color-v23_abc_tint_spinner.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/color-v23_abc_tint_switch_track.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/color_abc_background_cache_hint_selector_material_dark.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/color_abc_background_cache_hint_selector_material_light.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/color_abc_btn_colored_text_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/color_abc_hint_foreground_material_dark.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/color_abc_hint_foreground_material_light.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/color_abc_primary_text_disable_only_material_dark.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/color_abc_primary_text_disable_only_material_light.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/color_abc_primary_text_material_dark.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/color_abc_primary_text_material_light.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/color_abc_search_url_text.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/color_abc_secondary_text_material_dark.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/color_abc_secondary_text_material_light.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/color_abc_tint_btn_checkable.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/color_abc_tint_default.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/color_abc_tint_edittext.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/color_abc_tint_seek_thumb.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/color_abc_tint_spinner.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/color_abc_tint_switch_track.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/color_switch_thumb_material_dark.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/color_switch_thumb_material_light.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_ab_share_pack_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_btn_check_to_on_mtrl_000.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_btn_check_to_on_mtrl_015.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_btn_radio_to_on_mtrl_000.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_btn_radio_to_on_mtrl_015.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_btn_switch_to_on_mtrl_00001.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_btn_switch_to_on_mtrl_00012.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_cab_background_top_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_ic_commit_search_api_mtrl_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_ic_menu_copy_mtrl_am_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_ic_menu_cut_mtrl_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_ic_menu_paste_mtrl_am_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_ic_menu_selectall_mtrl_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_ic_menu_share_mtrl_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_ic_star_black_16dp.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_ic_star_black_36dp.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_ic_star_black_48dp.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_ic_star_half_black_16dp.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_ic_star_half_black_36dp.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_ic_star_half_black_48dp.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_list_divider_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_list_focused_holo.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_list_longpressed_holo.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_list_pressed_holo_dark.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_list_pressed_holo_light.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_list_selector_disabled_holo_dark.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_list_selector_disabled_holo_light.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_menu_hardkey_panel_mtrl_mult.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_popup_background_mtrl_mult.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_scrubber_control_off_mtrl_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_scrubber_control_to_pressed_mtrl_000.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_scrubber_control_to_pressed_mtrl_005.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_scrubber_primary_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_scrubber_track_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_spinner_mtrl_am_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_switch_track_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_tab_indicator_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_text_select_handle_left_mtrl_dark.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_text_select_handle_left_mtrl_light.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_text_select_handle_middle_mtrl_dark.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_text_select_handle_middle_mtrl_light.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_text_select_handle_right_mtrl_dark.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_text_select_handle_right_mtrl_light.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_textfield_activated_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_textfield_default_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_textfield_search_activated_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_textfield_search_default_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_notification_bg_low_normal.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_notification_bg_low_pressed.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_notification_bg_normal.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_notification_bg_normal_pressed.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_notify_panel_notification_icon_bg.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-ldrtl-hdpi-v17_abc_ic_menu_copy_mtrl_am_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-ldrtl-hdpi-v17_abc_ic_menu_cut_mtrl_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-ldrtl-hdpi-v17_abc_spinner_mtrl_am_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-ldrtl-mdpi-v17_abc_ic_menu_copy_mtrl_am_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-ldrtl-mdpi-v17_abc_ic_menu_cut_mtrl_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-ldrtl-mdpi-v17_abc_spinner_mtrl_am_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-ldrtl-xhdpi-v17_abc_ic_menu_copy_mtrl_am_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-ldrtl-xhdpi-v17_abc_ic_menu_cut_mtrl_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-ldrtl-xhdpi-v17_abc_spinner_mtrl_am_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-ldrtl-xxhdpi-v17_abc_ic_menu_copy_mtrl_am_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-ldrtl-xxhdpi-v17_abc_ic_menu_cut_mtrl_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-ldrtl-xxhdpi-v17_abc_spinner_mtrl_am_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-ldrtl-xxxhdpi-v17_abc_ic_menu_copy_mtrl_am_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-ldrtl-xxxhdpi-v17_abc_ic_menu_cut_mtrl_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-ldrtl-xxxhdpi-v17_abc_spinner_mtrl_am_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_ab_share_pack_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_btn_check_to_on_mtrl_000.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_btn_check_to_on_mtrl_015.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_btn_radio_to_on_mtrl_000.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_btn_radio_to_on_mtrl_015.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_btn_switch_to_on_mtrl_00001.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_btn_switch_to_on_mtrl_00012.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_cab_background_top_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_ic_commit_search_api_mtrl_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_ic_menu_copy_mtrl_am_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_ic_menu_cut_mtrl_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_ic_menu_paste_mtrl_am_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_ic_menu_selectall_mtrl_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_ic_menu_share_mtrl_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_ic_star_black_16dp.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_ic_star_black_36dp.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_ic_star_black_48dp.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_ic_star_half_black_16dp.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_ic_star_half_black_36dp.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_ic_star_half_black_48dp.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_list_divider_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_list_focused_holo.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_list_longpressed_holo.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_list_pressed_holo_dark.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_list_pressed_holo_light.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_list_selector_disabled_holo_dark.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_list_selector_disabled_holo_light.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_menu_hardkey_panel_mtrl_mult.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_popup_background_mtrl_mult.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_scrubber_control_off_mtrl_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_scrubber_control_to_pressed_mtrl_000.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_scrubber_control_to_pressed_mtrl_005.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_scrubber_primary_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_scrubber_track_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_spinner_mtrl_am_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_switch_track_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_tab_indicator_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_text_select_handle_left_mtrl_dark.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_text_select_handle_left_mtrl_light.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_text_select_handle_middle_mtrl_dark.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_text_select_handle_middle_mtrl_light.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_text_select_handle_right_mtrl_dark.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_text_select_handle_right_mtrl_light.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_textfield_activated_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_textfield_default_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_textfield_search_activated_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_textfield_search_default_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_notification_bg_low_normal.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_notification_bg_low_pressed.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_notification_bg_normal.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_notification_bg_normal_pressed.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_notify_panel_notification_icon_bg.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-v21_abc_action_bar_item_background_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-v21_abc_btn_colored_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-v21_abc_dialog_material_background.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-v21_abc_edit_text_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-v21_abc_list_divider_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-v21_notification_action_background.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-v23_abc_control_background_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-v24_ic_launcher_foreground.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-watch-v20_abc_dialog_material_background.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_ab_share_pack_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_btn_check_to_on_mtrl_000.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_btn_check_to_on_mtrl_015.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_btn_radio_to_on_mtrl_000.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_btn_radio_to_on_mtrl_015.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_btn_switch_to_on_mtrl_00001.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_btn_switch_to_on_mtrl_00012.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_cab_background_top_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_ic_commit_search_api_mtrl_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_ic_menu_copy_mtrl_am_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_ic_menu_cut_mtrl_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_ic_menu_paste_mtrl_am_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_ic_menu_selectall_mtrl_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_ic_menu_share_mtrl_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_ic_star_black_16dp.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_ic_star_black_36dp.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_ic_star_black_48dp.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_ic_star_half_black_16dp.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_ic_star_half_black_36dp.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_ic_star_half_black_48dp.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_list_divider_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_list_focused_holo.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_list_longpressed_holo.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_list_pressed_holo_dark.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_list_pressed_holo_light.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_list_selector_disabled_holo_dark.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_list_selector_disabled_holo_light.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_menu_hardkey_panel_mtrl_mult.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_popup_background_mtrl_mult.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_scrubber_control_off_mtrl_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_scrubber_control_to_pressed_mtrl_000.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_scrubber_control_to_pressed_mtrl_005.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_scrubber_primary_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_scrubber_track_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_spinner_mtrl_am_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_switch_track_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_tab_indicator_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_text_select_handle_left_mtrl_dark.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_text_select_handle_left_mtrl_light.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_text_select_handle_middle_mtrl_dark.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_text_select_handle_middle_mtrl_light.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_text_select_handle_right_mtrl_dark.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_text_select_handle_right_mtrl_light.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_textfield_activated_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_textfield_default_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_textfield_search_activated_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_textfield_search_default_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_notification_bg_low_normal.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_notification_bg_low_pressed.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_notification_bg_normal.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_notification_bg_normal_pressed.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_notify_panel_notification_icon_bg.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_ab_share_pack_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_btn_check_to_on_mtrl_000.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_btn_check_to_on_mtrl_015.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_btn_radio_to_on_mtrl_000.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_btn_radio_to_on_mtrl_015.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_btn_switch_to_on_mtrl_00001.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_btn_switch_to_on_mtrl_00012.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_cab_background_top_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_ic_commit_search_api_mtrl_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_ic_menu_copy_mtrl_am_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_ic_menu_cut_mtrl_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_ic_menu_paste_mtrl_am_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_ic_menu_selectall_mtrl_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_ic_menu_share_mtrl_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_ic_star_black_16dp.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_ic_star_black_36dp.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_ic_star_black_48dp.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_ic_star_half_black_16dp.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_ic_star_half_black_36dp.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_ic_star_half_black_48dp.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_list_divider_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_list_focused_holo.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_list_longpressed_holo.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_list_pressed_holo_dark.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_list_pressed_holo_light.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_list_selector_disabled_holo_dark.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_list_selector_disabled_holo_light.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_menu_hardkey_panel_mtrl_mult.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_popup_background_mtrl_mult.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_scrubber_control_off_mtrl_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_scrubber_control_to_pressed_mtrl_000.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_scrubber_control_to_pressed_mtrl_005.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_scrubber_primary_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_scrubber_track_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_spinner_mtrl_am_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_switch_track_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_tab_indicator_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_text_select_handle_left_mtrl_dark.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_text_select_handle_left_mtrl_light.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_text_select_handle_middle_mtrl_dark.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_text_select_handle_middle_mtrl_light.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_text_select_handle_right_mtrl_dark.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_text_select_handle_right_mtrl_light.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_textfield_activated_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_textfield_default_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_textfield_search_activated_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_textfield_search_default_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxxhdpi-v4_abc_btn_check_to_on_mtrl_000.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxxhdpi-v4_abc_btn_check_to_on_mtrl_015.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxxhdpi-v4_abc_btn_radio_to_on_mtrl_000.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxxhdpi-v4_abc_btn_radio_to_on_mtrl_015.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxxhdpi-v4_abc_btn_switch_to_on_mtrl_00001.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxxhdpi-v4_abc_btn_switch_to_on_mtrl_00012.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxxhdpi-v4_abc_ic_menu_copy_mtrl_am_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxxhdpi-v4_abc_ic_menu_cut_mtrl_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxxhdpi-v4_abc_ic_menu_paste_mtrl_am_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxxhdpi-v4_abc_ic_menu_selectall_mtrl_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxxhdpi-v4_abc_ic_menu_share_mtrl_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxxhdpi-v4_abc_ic_star_black_16dp.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxxhdpi-v4_abc_ic_star_black_36dp.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxxhdpi-v4_abc_ic_star_black_48dp.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxxhdpi-v4_abc_ic_star_half_black_16dp.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxxhdpi-v4_abc_ic_star_half_black_36dp.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxxhdpi-v4_abc_ic_star_half_black_48dp.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxxhdpi-v4_abc_scrubber_control_to_pressed_mtrl_000.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxxhdpi-v4_abc_scrubber_control_to_pressed_mtrl_005.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxxhdpi-v4_abc_spinner_mtrl_am_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxxhdpi-v4_abc_switch_track_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxxhdpi-v4_abc_tab_indicator_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxxhdpi-v4_abc_text_select_handle_left_mtrl_dark.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxxhdpi-v4_abc_text_select_handle_left_mtrl_light.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxxhdpi-v4_abc_text_select_handle_right_mtrl_dark.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxxhdpi-v4_abc_text_select_handle_right_mtrl_light.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable_abc_btn_borderless_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable_abc_btn_check_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable_abc_btn_default_mtrl_shape.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable_abc_btn_radio_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable_abc_cab_background_internal_bg.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable_abc_cab_background_top_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable_abc_ic_ab_back_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable_abc_ic_arrow_drop_right_black_24dp.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable_abc_ic_clear_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable_abc_ic_go_search_api_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable_abc_ic_menu_overflow_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable_abc_ic_search_api_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable_abc_ic_voice_search_api_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable_abc_item_background_holo_dark.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable_abc_item_background_holo_light.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable_abc_list_selector_background_transition_holo_dark.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable_abc_list_selector_background_transition_holo_light.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable_abc_list_selector_holo_dark.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable_abc_list_selector_holo_light.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable_abc_ratingbar_indicator_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable_abc_ratingbar_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable_abc_ratingbar_small_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable_abc_seekbar_thumb_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable_abc_seekbar_tick_mark_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable_abc_seekbar_track_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable_abc_spinner_textfield_background_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable_abc_switch_thumb_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable_abc_tab_indicator_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable_abc_text_cursor_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable_abc_textfield_search_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable_abc_vector_test.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable_notification_bg.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable_notification_bg_low.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable_notification_icon_background.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable_notification_tile_bg.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable_tooltip_frame_dark.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable_tooltip_frame_light.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout-v21_notification_action.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout-v21_notification_action_tombstone.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout-v21_notification_template_custom_big.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout-v21_notification_template_icon_group.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout-v26_abc_screen_toolbar.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout-watch-v20_abc_alert_dialog_button_bar_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout-watch-v20_abc_alert_dialog_title_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout_abc_action_bar_title_item.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout_abc_action_bar_up_container.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout_abc_action_menu_item_layout.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout_abc_action_menu_layout.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout_abc_action_mode_bar.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout_abc_action_mode_close_item_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout_abc_activity_chooser_view.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout_abc_activity_chooser_view_list_item.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout_abc_alert_dialog_button_bar_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout_abc_alert_dialog_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout_abc_alert_dialog_title_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout_abc_cascading_menu_item_layout.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout_abc_dialog_title_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout_abc_expanded_menu_layout.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout_abc_list_menu_item_checkbox.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout_abc_list_menu_item_icon.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout_abc_list_menu_item_layout.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout_abc_list_menu_item_radio.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout_abc_popup_menu_header_item_layout.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout_abc_popup_menu_item_layout.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout_abc_screen_content_include.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout_abc_screen_simple.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout_abc_screen_simple_overlay_action_mode.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout_abc_screen_toolbar.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout_abc_search_dropdown_item_icons_2line.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout_abc_search_view.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout_abc_select_dialog_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout_abc_tooltip.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout_activity_main.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout_notification_template_part_chronometer.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout_notification_template_part_time.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout_select_dialog_item_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout_select_dialog_multichoice_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout_select_dialog_singlechoice_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout_support_simple_spinner_dropdown_item.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/mipmap-anydpi-v26_ic_launcher.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/mipmap-anydpi-v26_ic_launcher_round.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/mipmap-hdpi_ic_launcher.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/mipmap-hdpi_ic_launcher_round.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/mipmap-mdpi_ic_launcher.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/mipmap-mdpi_ic_launcher_round.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/mipmap-xhdpi_ic_launcher.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/mipmap-xhdpi_ic_launcher_round.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/mipmap-xxhdpi_ic_launcher.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/mipmap-xxhdpi_ic_launcher_round.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/mipmap-xxxhdpi_ic_launcher.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/mipmap-xxxhdpi_ic_launcher_round.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/anim_abc_fade_in.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/anim_abc_fade_out.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/anim_abc_grow_fade_in_from_bottom.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/anim_abc_popup_enter.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/anim_abc_popup_exit.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/anim_abc_shrink_fade_out_from_bottom.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/anim_abc_slide_in_bottom.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/anim_abc_slide_in_top.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/anim_abc_slide_out_bottom.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/anim_abc_slide_out_top.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/anim_abc_tooltip_enter.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/anim_abc_tooltip_exit.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/color-v21_abc_btn_colored_borderless_text_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/color-v23_abc_btn_colored_borderless_text_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/color-v23_abc_btn_colored_text_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/color-v23_abc_color_highlight_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/color-v23_abc_tint_btn_checkable.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/color-v23_abc_tint_default.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/color-v23_abc_tint_edittext.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/color-v23_abc_tint_seek_thumb.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/color-v23_abc_tint_spinner.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/color-v23_abc_tint_switch_track.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/color_abc_background_cache_hint_selector_material_dark.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/color_abc_background_cache_hint_selector_material_light.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/color_abc_btn_colored_text_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/color_abc_hint_foreground_material_dark.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/color_abc_hint_foreground_material_light.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/color_abc_primary_text_disable_only_material_dark.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/color_abc_primary_text_disable_only_material_light.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/color_abc_primary_text_material_dark.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/color_abc_primary_text_material_light.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/color_abc_search_url_text.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/color_abc_secondary_text_material_dark.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/color_abc_secondary_text_material_light.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/color_abc_tint_btn_checkable.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/color_abc_tint_default.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/color_abc_tint_edittext.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/color_abc_tint_seek_thumb.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/color_abc_tint_spinner.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/color_abc_tint_switch_track.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/color_switch_thumb_material_dark.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/color_switch_thumb_material_light.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_ab_share_pack_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_btn_check_to_on_mtrl_000.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_btn_check_to_on_mtrl_015.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_btn_radio_to_on_mtrl_000.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_btn_radio_to_on_mtrl_015.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_btn_switch_to_on_mtrl_00001.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_btn_switch_to_on_mtrl_00012.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_cab_background_top_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_ic_commit_search_api_mtrl_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_ic_menu_copy_mtrl_am_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_ic_menu_cut_mtrl_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_ic_menu_paste_mtrl_am_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_ic_menu_selectall_mtrl_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_ic_menu_share_mtrl_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_ic_star_black_16dp.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_ic_star_black_36dp.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_ic_star_black_48dp.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_ic_star_half_black_16dp.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_ic_star_half_black_36dp.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_ic_star_half_black_48dp.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_list_divider_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_list_focused_holo.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_list_longpressed_holo.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_list_pressed_holo_dark.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_list_pressed_holo_light.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_list_selector_disabled_holo_dark.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_list_selector_disabled_holo_light.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_menu_hardkey_panel_mtrl_mult.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_popup_background_mtrl_mult.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_scrubber_control_off_mtrl_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_scrubber_control_to_pressed_mtrl_000.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_scrubber_control_to_pressed_mtrl_005.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_scrubber_primary_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_scrubber_track_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_spinner_mtrl_am_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_switch_track_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_tab_indicator_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_text_select_handle_left_mtrl_dark.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_text_select_handle_left_mtrl_light.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_text_select_handle_middle_mtrl_dark.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_text_select_handle_middle_mtrl_light.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_text_select_handle_right_mtrl_dark.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_text_select_handle_right_mtrl_light.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_textfield_activated_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_textfield_default_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_textfield_search_activated_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_textfield_search_default_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_notification_bg_low_normal.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_notification_bg_low_pressed.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_notification_bg_normal.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_notification_bg_normal_pressed.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_notify_panel_notification_icon_bg.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-ldrtl-hdpi-v17_abc_ic_menu_copy_mtrl_am_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-ldrtl-hdpi-v17_abc_ic_menu_cut_mtrl_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-ldrtl-hdpi-v17_abc_spinner_mtrl_am_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-ldrtl-mdpi-v17_abc_ic_menu_copy_mtrl_am_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-ldrtl-mdpi-v17_abc_ic_menu_cut_mtrl_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-ldrtl-mdpi-v17_abc_spinner_mtrl_am_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-ldrtl-xhdpi-v17_abc_ic_menu_copy_mtrl_am_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-ldrtl-xhdpi-v17_abc_ic_menu_cut_mtrl_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-ldrtl-xhdpi-v17_abc_spinner_mtrl_am_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-ldrtl-xxhdpi-v17_abc_ic_menu_copy_mtrl_am_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-ldrtl-xxhdpi-v17_abc_ic_menu_cut_mtrl_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-ldrtl-xxhdpi-v17_abc_spinner_mtrl_am_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-ldrtl-xxxhdpi-v17_abc_ic_menu_copy_mtrl_am_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-ldrtl-xxxhdpi-v17_abc_ic_menu_cut_mtrl_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-ldrtl-xxxhdpi-v17_abc_spinner_mtrl_am_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_ab_share_pack_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_btn_check_to_on_mtrl_000.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_btn_check_to_on_mtrl_015.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_btn_radio_to_on_mtrl_000.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_btn_radio_to_on_mtrl_015.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_btn_switch_to_on_mtrl_00001.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_btn_switch_to_on_mtrl_00012.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_cab_background_top_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_ic_commit_search_api_mtrl_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_ic_menu_copy_mtrl_am_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_ic_menu_cut_mtrl_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_ic_menu_paste_mtrl_am_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_ic_menu_selectall_mtrl_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_ic_menu_share_mtrl_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_ic_star_black_16dp.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_ic_star_black_36dp.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_ic_star_black_48dp.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_ic_star_half_black_16dp.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_ic_star_half_black_36dp.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_ic_star_half_black_48dp.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_list_divider_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_list_focused_holo.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_list_longpressed_holo.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_list_pressed_holo_dark.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_list_pressed_holo_light.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_list_selector_disabled_holo_dark.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_list_selector_disabled_holo_light.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_menu_hardkey_panel_mtrl_mult.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_popup_background_mtrl_mult.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_scrubber_control_off_mtrl_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_scrubber_control_to_pressed_mtrl_000.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_scrubber_control_to_pressed_mtrl_005.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_scrubber_primary_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_scrubber_track_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_spinner_mtrl_am_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_switch_track_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_tab_indicator_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_text_select_handle_left_mtrl_dark.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_text_select_handle_left_mtrl_light.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_text_select_handle_middle_mtrl_dark.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_text_select_handle_middle_mtrl_light.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_text_select_handle_right_mtrl_dark.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_text_select_handle_right_mtrl_light.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_textfield_activated_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_textfield_default_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_textfield_search_activated_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_textfield_search_default_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_notification_bg_low_normal.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_notification_bg_low_pressed.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_notification_bg_normal.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_notification_bg_normal_pressed.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_notify_panel_notification_icon_bg.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-v21_abc_action_bar_item_background_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-v21_abc_btn_colored_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-v21_abc_dialog_material_background.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-v21_abc_edit_text_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-v21_abc_list_divider_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-v21_notification_action_background.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-v23_abc_control_background_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-v24_ic_launcher_foreground.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-watch-v20_abc_dialog_material_background.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_ab_share_pack_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_btn_check_to_on_mtrl_000.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_btn_check_to_on_mtrl_015.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_btn_radio_to_on_mtrl_000.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_btn_radio_to_on_mtrl_015.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_btn_switch_to_on_mtrl_00001.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_btn_switch_to_on_mtrl_00012.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_cab_background_top_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_ic_commit_search_api_mtrl_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_ic_menu_copy_mtrl_am_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_ic_menu_cut_mtrl_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_ic_menu_paste_mtrl_am_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_ic_menu_selectall_mtrl_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_ic_menu_share_mtrl_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_ic_star_black_16dp.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_ic_star_black_36dp.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_ic_star_black_48dp.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_ic_star_half_black_16dp.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_ic_star_half_black_36dp.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_ic_star_half_black_48dp.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_list_divider_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_list_focused_holo.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_list_longpressed_holo.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_list_pressed_holo_dark.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_list_pressed_holo_light.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_list_selector_disabled_holo_dark.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_list_selector_disabled_holo_light.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_menu_hardkey_panel_mtrl_mult.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_popup_background_mtrl_mult.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_scrubber_control_off_mtrl_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_scrubber_control_to_pressed_mtrl_000.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_scrubber_control_to_pressed_mtrl_005.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_scrubber_primary_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_scrubber_track_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_spinner_mtrl_am_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_switch_track_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_tab_indicator_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_text_select_handle_left_mtrl_dark.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_text_select_handle_left_mtrl_light.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_text_select_handle_middle_mtrl_dark.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_text_select_handle_middle_mtrl_light.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_text_select_handle_right_mtrl_dark.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_text_select_handle_right_mtrl_light.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_textfield_activated_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_textfield_default_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_textfield_search_activated_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_textfield_search_default_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_notification_bg_low_normal.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_notification_bg_low_pressed.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_notification_bg_normal.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_notification_bg_normal_pressed.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_notify_panel_notification_icon_bg.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_ab_share_pack_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_btn_check_to_on_mtrl_000.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_btn_check_to_on_mtrl_015.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_btn_radio_to_on_mtrl_000.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_btn_radio_to_on_mtrl_015.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_btn_switch_to_on_mtrl_00001.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_btn_switch_to_on_mtrl_00012.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_cab_background_top_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_ic_commit_search_api_mtrl_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_ic_menu_copy_mtrl_am_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_ic_menu_cut_mtrl_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_ic_menu_paste_mtrl_am_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_ic_menu_selectall_mtrl_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_ic_menu_share_mtrl_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_ic_star_black_16dp.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_ic_star_black_36dp.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_ic_star_black_48dp.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_ic_star_half_black_16dp.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_ic_star_half_black_36dp.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_ic_star_half_black_48dp.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_list_divider_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_list_focused_holo.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_list_longpressed_holo.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_list_pressed_holo_dark.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_list_pressed_holo_light.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_list_selector_disabled_holo_dark.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_list_selector_disabled_holo_light.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_menu_hardkey_panel_mtrl_mult.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_popup_background_mtrl_mult.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_scrubber_control_off_mtrl_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_scrubber_control_to_pressed_mtrl_000.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_scrubber_control_to_pressed_mtrl_005.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_scrubber_primary_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_scrubber_track_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_spinner_mtrl_am_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_switch_track_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_tab_indicator_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_text_select_handle_left_mtrl_dark.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_text_select_handle_left_mtrl_light.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_text_select_handle_middle_mtrl_dark.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_text_select_handle_middle_mtrl_light.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_text_select_handle_right_mtrl_dark.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_text_select_handle_right_mtrl_light.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_textfield_activated_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_textfield_default_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_textfield_search_activated_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_textfield_search_default_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxxhdpi-v4_abc_btn_check_to_on_mtrl_000.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxxhdpi-v4_abc_btn_check_to_on_mtrl_015.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxxhdpi-v4_abc_btn_radio_to_on_mtrl_000.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxxhdpi-v4_abc_btn_radio_to_on_mtrl_015.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxxhdpi-v4_abc_btn_switch_to_on_mtrl_00001.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxxhdpi-v4_abc_btn_switch_to_on_mtrl_00012.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxxhdpi-v4_abc_ic_menu_copy_mtrl_am_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxxhdpi-v4_abc_ic_menu_cut_mtrl_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxxhdpi-v4_abc_ic_menu_paste_mtrl_am_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxxhdpi-v4_abc_ic_menu_selectall_mtrl_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxxhdpi-v4_abc_ic_menu_share_mtrl_alpha.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxxhdpi-v4_abc_ic_star_black_16dp.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxxhdpi-v4_abc_ic_star_black_36dp.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxxhdpi-v4_abc_ic_star_black_48dp.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxxhdpi-v4_abc_ic_star_half_black_16dp.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxxhdpi-v4_abc_ic_star_half_black_36dp.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxxhdpi-v4_abc_ic_star_half_black_48dp.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxxhdpi-v4_abc_scrubber_control_to_pressed_mtrl_000.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxxhdpi-v4_abc_scrubber_control_to_pressed_mtrl_005.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxxhdpi-v4_abc_spinner_mtrl_am_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxxhdpi-v4_abc_switch_track_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxxhdpi-v4_abc_tab_indicator_mtrl_alpha.9.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxxhdpi-v4_abc_text_select_handle_left_mtrl_dark.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxxhdpi-v4_abc_text_select_handle_left_mtrl_light.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxxhdpi-v4_abc_text_select_handle_right_mtrl_dark.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxxhdpi-v4_abc_text_select_handle_right_mtrl_light.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable_abc_btn_borderless_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable_abc_btn_check_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable_abc_btn_default_mtrl_shape.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable_abc_btn_radio_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable_abc_cab_background_internal_bg.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable_abc_cab_background_top_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable_abc_ic_ab_back_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable_abc_ic_arrow_drop_right_black_24dp.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable_abc_ic_clear_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable_abc_ic_go_search_api_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable_abc_ic_menu_overflow_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable_abc_ic_search_api_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable_abc_ic_voice_search_api_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable_abc_item_background_holo_dark.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable_abc_item_background_holo_light.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable_abc_list_selector_background_transition_holo_dark.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable_abc_list_selector_background_transition_holo_light.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable_abc_list_selector_holo_dark.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable_abc_list_selector_holo_light.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable_abc_ratingbar_indicator_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable_abc_ratingbar_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable_abc_ratingbar_small_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable_abc_seekbar_thumb_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable_abc_seekbar_tick_mark_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable_abc_seekbar_track_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable_abc_spinner_textfield_background_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable_abc_switch_thumb_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable_abc_tab_indicator_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable_abc_text_cursor_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable_abc_textfield_search_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable_abc_vector_test.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable_notification_bg.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable_notification_bg_low.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable_notification_icon_background.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable_notification_tile_bg.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable_tooltip_frame_dark.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable_tooltip_frame_light.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout-v21_notification_action.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout-v21_notification_action_tombstone.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout-v21_notification_template_custom_big.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout-v21_notification_template_icon_group.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout-v26_abc_screen_toolbar.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout-watch-v20_abc_alert_dialog_button_bar_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout-watch-v20_abc_alert_dialog_title_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout_abc_action_bar_title_item.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout_abc_action_bar_up_container.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout_abc_action_menu_item_layout.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout_abc_action_menu_layout.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout_abc_action_mode_bar.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout_abc_action_mode_close_item_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout_abc_activity_chooser_view.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout_abc_activity_chooser_view_list_item.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout_abc_alert_dialog_button_bar_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout_abc_alert_dialog_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout_abc_alert_dialog_title_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout_abc_cascading_menu_item_layout.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout_abc_dialog_title_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout_abc_expanded_menu_layout.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout_abc_list_menu_item_checkbox.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout_abc_list_menu_item_icon.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout_abc_list_menu_item_layout.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout_abc_list_menu_item_radio.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout_abc_popup_menu_header_item_layout.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout_abc_popup_menu_item_layout.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout_abc_screen_content_include.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout_abc_screen_simple.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout_abc_screen_simple_overlay_action_mode.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout_abc_screen_toolbar.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout_abc_search_dropdown_item_icons_2line.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout_abc_search_view.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout_abc_select_dialog_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout_abc_tooltip.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout_activity_main.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout_notification_template_part_chronometer.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout_notification_template_part_time.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout_select_dialog_item_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout_select_dialog_multichoice_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout_select_dialog_singlechoice_material.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout_support_simple_spinner_dropdown_item.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/mipmap-anydpi-v26_ic_launcher.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/mipmap-anydpi-v26_ic_launcher_round.xml.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/mipmap-hdpi_ic_launcher.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/mipmap-hdpi_ic_launcher_round.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/mipmap-mdpi_ic_launcher.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/mipmap-mdpi_ic_launcher_round.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/mipmap-xhdpi_ic_launcher.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/mipmap-xhdpi_ic_launcher_round.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/mipmap-xxhdpi_ic_launcher.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/mipmap-xxhdpi_ic_launcher_round.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/mipmap-xxxhdpi_ic_launcher.png.flat delete mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/mipmap-xxxhdpi_ic_launcher_round.png.flat create mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.0/drawable-anydpi-v24_ic_launcher_foreground.xml.flat rename booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/{3.2.0 => 7.2.0}/drawable_ic_launcher_background.xml.flat (58%) create mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.0/layout_activity_main.xml.flat create mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.0/layout_content_main.xml.flat create mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.0/layout_fragment_first.xml.flat create mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.0/layout_fragment_second.xml.flat create mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.0/menu_menu_main.xml.flat create mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.0/mipmap-anydpi-v26_ic_launcher.xml.flat create mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.0/mipmap-anydpi-v26_ic_launcher_round.xml.flat create mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.0/mipmap-hdpi_ic_launcher.webp.flat create mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.0/mipmap-hdpi_ic_launcher_round.webp.flat create mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.0/mipmap-mdpi_ic_launcher.webp.flat create mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.0/mipmap-mdpi_ic_launcher_round.webp.flat create mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.0/mipmap-xhdpi_ic_launcher.webp.flat create mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.0/mipmap-xhdpi_ic_launcher_round.webp.flat create mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.0/mipmap-xxhdpi_ic_launcher.webp.flat create mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.0/mipmap-xxhdpi_ic_launcher_round.webp.flat create mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.0/mipmap-xxxhdpi_ic_launcher.webp.flat create mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.0/mipmap-xxxhdpi_ic_launcher_round.webp.flat create mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.0/navigation_nav_graph.xml.flat create mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.1/drawable-anydpi-v24_ic_launcher_foreground.xml.flat rename booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/{3.2.1 => 7.2.1}/drawable_ic_launcher_background.xml.flat (58%) create mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.1/layout_activity_main.xml.flat create mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.1/layout_content_main.xml.flat create mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.1/layout_fragment_first.xml.flat create mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.1/layout_fragment_second.xml.flat create mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.1/menu_menu_main.xml.flat create mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.1/mipmap-anydpi-v26_ic_launcher.xml.flat create mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.1/mipmap-anydpi-v26_ic_launcher_round.xml.flat create mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.1/mipmap-hdpi_ic_launcher.webp.flat create mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.1/mipmap-hdpi_ic_launcher_round.webp.flat create mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.1/mipmap-mdpi_ic_launcher.webp.flat create mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.1/mipmap-mdpi_ic_launcher_round.webp.flat create mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.1/mipmap-xhdpi_ic_launcher.webp.flat create mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.1/mipmap-xhdpi_ic_launcher_round.webp.flat create mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.1/mipmap-xxhdpi_ic_launcher.webp.flat create mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.1/mipmap-xxhdpi_ic_launcher_round.webp.flat create mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.1/mipmap-xxxhdpi_ic_launcher.webp.flat create mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.1/mipmap-xxxhdpi_ic_launcher_round.webp.flat create mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.1/navigation_nav_graph.xml.flat create mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.2/drawable-anydpi-v24_ic_launcher_foreground.xml.flat create mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.2/drawable_ic_launcher_background.xml.flat create mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.2/layout_activity_main.xml.flat create mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.2/layout_content_main.xml.flat create mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.2/layout_fragment_first.xml.flat create mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.2/layout_fragment_second.xml.flat create mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.2/menu_menu_main.xml.flat create mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.2/mipmap-anydpi-v26_ic_launcher.xml.flat create mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.2/mipmap-anydpi-v26_ic_launcher_round.xml.flat create mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.2/mipmap-hdpi_ic_launcher.webp.flat create mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.2/mipmap-hdpi_ic_launcher_round.webp.flat create mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.2/mipmap-mdpi_ic_launcher.webp.flat create mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.2/mipmap-mdpi_ic_launcher_round.webp.flat create mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.2/mipmap-xhdpi_ic_launcher.webp.flat create mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.2/mipmap-xhdpi_ic_launcher_round.webp.flat create mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.2/mipmap-xxhdpi_ic_launcher.webp.flat create mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.2/mipmap-xxhdpi_ic_launcher_round.webp.flat create mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.2/mipmap-xxxhdpi_ic_launcher.webp.flat create mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.2/mipmap-xxxhdpi_ic_launcher_round.webp.flat create mode 100644 booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.2/navigation_nav_graph.xml.flat diff --git a/booster-aapt2/src/main/kotlin/com/didiglobal/booster/aapt2/Aapt2Container.kt b/booster-aapt2/src/main/kotlin/com/didiglobal/booster/aapt2/Aapt2Container.kt index 7866c2d92..832ba630a 100644 --- a/booster-aapt2/src/main/kotlin/com/didiglobal/booster/aapt2/Aapt2Container.kt +++ b/booster-aapt2/src/main/kotlin/com/didiglobal/booster/aapt2/Aapt2Container.kt @@ -31,6 +31,8 @@ class Aapt2Container(val header: Header, private vararg val _entries: Entry<*>) open class Png(header: ResourcesInternal.CompiledFile, val image: ByteBuffer) : ResFile(header) + open class WebP(header: ResourcesInternal.CompiledFile, val image: ByteBuffer) : ResFile(header) + open class Xml(file: ResourcesInternal.CompiledFile, val root: Resources.XmlNode) : ResFile(file) val entries: List> diff --git a/booster-aapt2/src/main/kotlin/com/didiglobal/booster/aapt2/Aapt2Parser.kt b/booster-aapt2/src/main/kotlin/com/didiglobal/booster/aapt2/Aapt2Parser.kt index fcd666dd7..e4ca10a0e 100644 --- a/booster-aapt2/src/main/kotlin/com/didiglobal/booster/aapt2/Aapt2Parser.kt +++ b/booster-aapt2/src/main/kotlin/com/didiglobal/booster/aapt2/Aapt2Parser.kt @@ -7,6 +7,7 @@ import com.didiglobal.booster.aapt2.Aapt2Container.Metadata import com.didiglobal.booster.aapt2.Aapt2Container.Png import com.didiglobal.booster.aapt2.Aapt2Container.ResFile import com.didiglobal.booster.aapt2.Aapt2Container.ResTable +import com.didiglobal.booster.aapt2.Aapt2Container.WebP import com.didiglobal.booster.aapt2.Aapt2Container.Xml import com.didiglobal.booster.aapt2.legacy.ResourcesInternalLegacy import java.io.File @@ -25,6 +26,7 @@ val File.metadata: Metadata MAGIC -> { parser.parseHeader() val type = parser.readInt() + @Suppress("UNUSED_VARIABLE") val length = parser.readLong() when (type) { @@ -39,6 +41,7 @@ val File.metadata: Metadata private fun BinaryParser.parseResFileMetadata(): Metadata { val headerSize = readInt() + @Suppress("UNUSED_VARIABLE") val dataSize = readLong() return parse { @@ -86,11 +89,7 @@ private fun BinaryParser.parseResFileMetadata(): Metadata { height = it.config.screenHeightDp.toShort() } // TODO localScript = ... - it.config.localeBytes.takeIf { l -> - l.size() > 0 - }?.let { l -> - l.copyTo(localeVariant, 0, 0, l.size()) - } + it.config.localeBytes.takeIf { l -> l.size() > 0 }?.copyTo(localeScript, 0) screenConfig2.apply { layout = it.config.screenRoundValue.toByte() colorMode = (it.config.hdrValue shl 2 and it.config.wideColorGamutValue).toByte() @@ -100,6 +99,7 @@ private fun BinaryParser.parseResFileMetadata(): Metadata { } private fun BinaryParser.parseLegacyMetadata(): Metadata { + @Suppress("UNUSED_VARIABLE") val entryType = readInt() val entryLength = readLong() return parse { @@ -156,6 +156,7 @@ fun BinaryParser.parseHeader(): Header { fun BinaryParser.parseResEntry(): Entry<*> { val p = tell() val type = readInt() + @Suppress("UNUSED_VARIABLE") val length = readLong() try { @@ -164,7 +165,7 @@ fun BinaryParser.parseResEntry(): Entry<*> { RES_TABLE -> ResTable(parse { Resources.ResourceTable.parseFrom(it) }) - else -> TODO("Unknown type 0x`${type.toString(16)}`") + else -> TODO("Unknown type 0x${type.toString(16)} at 0x${p.toString(16)}: $file") } } finally { //seek(p + length.toInt()) @@ -234,17 +235,24 @@ private fun BinaryParser.parseResFile(): ResFile { val header = parse { ResourcesInternal.CompiledFile.parseFrom(readBytes(headerSize)) } - val padding = readBytes((4 - tell() % 4) % 4) - - return when (header.type) { - Resources.FileReference.Type.PNG -> parsePng(header) - Resources.FileReference.Type.BINARY_XML -> TODO("binary XML") - Resources.FileReference.Type.PROTO_XML -> Xml(header, Resources.XmlNode.parseFrom(readBytes(dataSize.toInt()))) - Resources.FileReference.Type.UNKNOWN -> when (header.resourcePath.substringAfter('.')) { - "png", "9.png" -> parsePng(header) - else -> TODO("Unknown RES_FILE `$file`") + + readBytes((4 - tell() % 4) % 4) // header padding + + try { + @Suppress("WHEN_ENUM_CAN_BE_NULL_IN_JAVA") + return when (header.type) { + Resources.FileReference.Type.PNG -> parsePng(header) + Resources.FileReference.Type.BINARY_XML -> TODO("binary XML") + Resources.FileReference.Type.PROTO_XML -> Xml(header, Resources.XmlNode.parseFrom(readBytes(dataSize.toInt()))) + Resources.FileReference.Type.UNKNOWN -> when (header.resourcePath.substringAfter('.')) { + "png", "9.png" -> parsePng(header) + "webp" -> parseWebP(header) + else -> TODO("Unknown RES_FILE `$file`") + } + Resources.FileReference.Type.UNRECOGNIZED -> TODO("Unrecognized resource file `${header.sourcePath}`") } - Resources.FileReference.Type.UNRECOGNIZED -> TODO("Unrecognized resource file `${header.sourcePath}`") + } finally { + readBytes((4 - tell() % 4) % 4) // data padding } } @@ -260,6 +268,23 @@ private fun BinaryParser.parsePng(header: ResourcesInternal.CompiledFile): Png { }) } +/** + * @see WebP Container Specification + */ +private fun BinaryParser.parseWebP(header: ResourcesInternal.CompiledFile): WebP { + return WebP(header, parse { + val p = tell() + val riff = readInt() // 'RIFF' + val size = readUInt() // size of the file in bytes starting at offset 8 + val webp = readInt() // 'WEBP' + if (0x46464952 != riff || size <= 0 || 0x50424557 != webp) { + throw Aapt2ParseException("Not a WebP entry `$file`") + } + seek(p) + it + }) +} + val ResourcesInternal.CompiledFile.resourcePath: String get() = File(this.sourcePath).resourcePath diff --git a/booster-aapt2/src/main/proto/Resources.proto b/booster-aapt2/src/main/proto/Resources.proto index b5afc2494..f329c1ddb 100644 --- a/booster-aapt2/src/main/proto/Resources.proto +++ b/booster-aapt2/src/main/proto/Resources.proto @@ -41,6 +41,12 @@ message Source { SourcePosition position = 2; } +// The name and version fingerprint of a build tool. +message ToolFingerprint { + string tool = 1; + string version = 2; +} + // Top level message representing a resource table. message ResourceTable { // The string pool containing source paths referenced throughout the resource table. This does @@ -49,6 +55,10 @@ message ResourceTable { // Resource definitions corresponding to an Android package. repeated Package package = 2; + // The declarations within the resource table. + repeated Overlayable overlayable = 3; + // The version fingerprints of the tools that built the resource table. + repeated ToolFingerprint tool_fingerprint = 4; } // A package ID in the range [0x00, 0xff]. @@ -121,6 +131,11 @@ message Visibility { // The comment associated with the tag. string comment = 3; + + // Indicates that the resource id may change across builds and that the public R.java identifier + // for this resource should not be final. This is set to `true` for resources in `staging-group` + // tags. + bool staged_api = 4; } // Whether a resource comes from a compile-time overlay and is explicitly allowed to not overlay an @@ -133,15 +148,49 @@ message AllowNew { string comment = 2; } -// Whether a resource is overlayable by runtime resource overlays (RRO). +// Represents a set of overlayable resources. message Overlayable { - // Where this declaration was defined in source. + // The name of the . + string name = 1; + // The location of the declaration in the source. + Source source = 2; + // The component responsible for enabling and disabling overlays targeting this . + string actor = 3; +} + +// Represents an overlayable declaration within an tag. +message OverlayableItem { + enum Policy { + NONE = 0; + PUBLIC = 1; + SYSTEM = 2; + VENDOR = 3; + PRODUCT = 4; + SIGNATURE = 5; + ODM = 6; + OEM = 7; + ACTOR = 8; + CONFIG_SIGNATURE = 9; + } + // The location of the declaration in source. Source source = 1; // Any comment associated with the declaration. string comment = 2; + + // The policy defined by the enclosing tag of this . + repeated Policy policy = 3; + + // The index into overlayable list that points to the tag that contains + // this . + uint32 overlayable_idx = 4; } +// The staged resource ID definition of a finalized resource. +message StagedId { + Source source = 1; + uint32 staged_id = 2; +} // An entry ID in the range [0x0000, 0xffff]. message EntryId { uint32 id = 1; @@ -169,11 +218,13 @@ message Entry { AllowNew allow_new = 4; // Whether this resource can be overlaid by a runtime resource overlay (RRO). - Overlayable overlayable = 5; - + OverlayableItem overlayable_item = 5; // The set of values defined for this entry, each corresponding to a different // configuration/variant. repeated ConfigValue config_value = 6; + + // The staged resource ID of this finalized resource. + StagedId staged_id = 7; } // A Configuration/Value pair. @@ -225,9 +276,15 @@ message CompoundValue { Styleable styleable = 3; Array array = 4; Plural plural = 5; + MacroBody macro = 6; } } +// Message holding a boolean, so it can be optionally encoded. +message Boolean { + bool value = 1; +} + // A value that is a reference to another resource. This reference can be by name or resource ID. message Reference { enum Type { @@ -248,6 +305,16 @@ message Reference { // Whether this reference is referencing a private resource (@*package:type/entry). bool private = 4; + + // Whether this reference is dynamic. + Boolean is_dynamic = 5; + + // The type flags used when compiling the reference. Used for substituting the contents of macros. + uint32 type_flags = 6; + + // Whether raw string values would have been accepted in place of this reference definition. Used + // for substituting the contents of macros. + bool allow_raw = 7; } // A value that represents an ID. This is just a placeholder, as ID values are used to occupy a @@ -346,6 +413,9 @@ message Attribute { // The value of the enum/flag. uint32 value = 4; + + // The data type of the enum/flag as defined in android::Res_value. + uint32 type = 5; } // Bitmask of formats allowed for an attribute. @@ -532,3 +602,32 @@ message XmlAttribute { // The optional interpreted/compiled version of the `value` string. Item compiled_item = 6; } + +message MacroBody { + string raw_string = 1; + StyleString style_string = 2; + repeated UntranslatableSection untranslatable_sections = 3; + repeated NamespaceAlias namespace_stack = 4; + SourcePosition source = 5; +} + +message NamespaceAlias { + string prefix = 1; + string package_name = 2; + bool is_private = 3; +} + +message StyleString { + message Span { + string name = 1; + uint32 start_index = 2; + uint32 end_index = 3; + } + string str = 1; + repeated Span spans = 2; +} + +message UntranslatableSection { + uint64 start_index = 1; + uint64 end_index = 2; +} diff --git a/booster-aapt2/src/test/kotlin/com/didiglobal/booster/aapt2/Aapt2ParserTest.kt b/booster-aapt2/src/test/kotlin/com/didiglobal/booster/aapt2/Aapt2ParserTest.kt index 8aa403877..dda977d7b 100644 --- a/booster-aapt2/src/test/kotlin/com/didiglobal/booster/aapt2/Aapt2ParserTest.kt +++ b/booster-aapt2/src/test/kotlin/com/didiglobal/booster/aapt2/Aapt2ParserTest.kt @@ -1,12 +1,7 @@ package com.didiglobal.booster.aapt2 -import com.android.ide.common.resources.configuration.FolderConfiguration -import com.android.resources.Density -import com.didiglobal.booster.aapt.Configuration.ScreenType.Companion.DENSITY_ANY -import com.didiglobal.booster.aapt.Configuration.ScreenType.Companion.DENSITY_DEFAULT -import com.didiglobal.booster.aapt.Configuration.ScreenType.Companion.DENSITY_NONE -import com.didiglobal.booster.aapt2.legacy.ResourcesInternalLegacy import java.io.File +import java.net.URL import kotlin.test.Test import kotlin.test.assertEquals import kotlin.test.assertNotNull @@ -14,53 +9,6 @@ import kotlin.test.assertTrue class Aapt2ParserTest { - @Test - fun `parse resources generated by 3_1_0`() { - File(javaClass.getResource("3.1.0").file).listFiles { dir, file -> - file.endsWith(".flat") - }.forEach { res -> - javaClass.getResourceAsStream("${res.parentFile.name}/${res.name}").use { input -> - val header = BinaryParser(input).use { parser -> - val entryType = parser.readInt() - val entryLength = parser.readLong() - parser.parse { - ResourcesInternalLegacy.CompiledFileLegacy.parseFrom(parser.readBytes(entryLength.toInt())) - } - } - - assertNotNull(header) - assertEquals(res.name.substringBefore('_').substringBefore('-') + "/" + res.name.substringBefore('.').substringAfter('_'), header.resourceName) - - val config = header.config.data.newInput().use { - BinaryParser(it).use { parser -> - parser.parseConfiguration() - } - } - assertNotNull(config) - - val density = FolderConfiguration.getConfigForFolder(res.name.substringBefore('_')).densityQualifier.let { - when (it.value) { - null -> DENSITY_DEFAULT - Density.ANYDPI -> DENSITY_ANY - Density.NODPI -> DENSITY_NONE - else -> it.value.dpiValue.toShort() - } - } - assertEquals(density, config.screenType.density) - } - } - } - - @Test - fun `parse flat generated by 3_2_0`() { - assertAapt2ContainerParsing("3.2.0") - } - - @Test - fun `parse flat generated by 3_2_1`() { - assertAapt2ContainerParsing("3.2.1") - } - @Test fun `parse flat generated by 3_3_0`() { assertAapt2ContainerParsing("3.3.0") @@ -86,14 +34,30 @@ class Aapt2ParserTest { assertAapt2ContainerParsing("3.4.1") } - fun assertAapt2ContainerParsing(version: String) { - File(javaClass.getResource(version).file).listFiles { dir, file -> - file.endsWith(".flat") - }.forEach { flat -> - assertTrue(flat.exists()) + @Test + fun `parse flat generated by 7_2_0`() { + assertAapt2ContainerParsing("7.2.0") + } + @Test + fun `parse flat generated by 7_2_1`() { + assertAapt2ContainerParsing("7.2.1") + } + + @Test + fun `parse flat generated by 7_2_2`() { + assertAapt2ContainerParsing("7.2.2") + } + + private fun assertAapt2ContainerParsing(version: String) { + javaClass.getResource(version)?.let(URL::getFile)?.let(::File)?.listFiles { _, file -> + file.endsWith(".flat") + }?.forEach { flat -> val metadata = flat.metadata assertNotNull(metadata) + assertTrue("sourcePath is empty: $flat", metadata.sourcePath::isNotEmpty) + assertTrue("resourceName is empty: $flat", metadata.resourceName::isNotEmpty) + assertTrue("sourcePath is shorter than resourceName") { metadata.sourcePath.length > metadata.resourceName.length } val container = BinaryParser(flat).use { parser -> parser.parseAapt2Container() diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/anim_abc_fade_in.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/anim_abc_fade_in.xml.flat deleted file mode 100644 index 0f55338dc73a46314d683c7af6f97db43b8aac83..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 692 zcmb7BJx{|h5WNse+R~w*4hXTfLnY#VinJ5m_yI7Y%8i{ikl2-zN{ESxKg7S%Uz;%0m54n%r zZeMdHjE=>$Fd<|p6KQyE$CXR7)(OwGp-$(g&+1EQSg2JLFXyQg@g|*N(zkIcsZ!y| zdd11}%6q9=6&qX_YeltMWOO9!X@1dXQJhGy-($T<1i>H}UWNnFACJ4^@jwP5oR8*F#OEW< zG|v7J>OZE*hqKk_QiW{n&^a~1M?2|=uXi!{5U2w~;0}<00-k^u;1zfWT(|3Y;d}6{ z))mi$R9eLB3`FcZ2BfnC6&uO zSuHtvUU4r~Dq@WbW0g_08fleIHv^r{(wNnRu^ih=dF~hUeyH$ftA}DQ8*Nmt|5D?5 zMs06-b}HBo%sHl0Py_gcmBF@NLf!nR+ui~4CO*s7?3~@5yN%s~$wO|R0DZS$sv<8H XwSuXJ+?t)U?CxpV{nOd2?=*e^DC&~| diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/anim_abc_grow_fade_in_from_bottom.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/anim_abc_grow_fade_in_from_bottom.xml.flat deleted file mode 100644 index 8717ea7254b840153c69e4bbe8808c4e150a211d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1248 zcmb7@OK;Oa6on^s^JpmaL3tw(Qd6W#*iK7@(*-J0CB&8rsg;nTi9JpXjwc#V3#{N@ zuw>1iB}*3k0rrSBOZMR$$B{}Eftcv?y>onL?p)tVMF{a7a5V48EE#&T7k2wbzv{*^ zQr#r$#zqgjJ#DQXuI@I2U=sb`&+Bi!XSp)D_d*Y{TxXu!H!@0<7s_y;a?cu><*_!y z{N9!qC#iyU+g>}4f?zwi{~+9swmKcZ)7e%*6!vy{aV&c~(lc25&x5RhfdEO(QLkG)Ia8xyb$KGX<$2KGN(0@; zs4R=CFqgm>V*z#v%t7Y`pXz+KhWQ$PXjw5B$M@#|_Ht;s?hEW?z%?8f;d5P)4?fp5 z0q+&p(Na4PxHmOgY8Pf`%h0NTakPwE0rRCsOO5xHSDkUR)UJTJQlq8D`cG?4`AyE& zz}hTgZ-7Z<<1zLwYGY0g?#J5dfO%=D@&Cg?jh5Q1I+%0TS2F$tg%&IJcZYiZ<(YY_Pr7?xrfYJ^(Mo z3m{HB1TO;rIF3{*I55_?|9W<2Jv-}wh`s@~;gPJ1O30O3Hm2D$OI>?y59h-q*#`Xg zcx=Txr>zqoOH<}SQ*@A^QmiBTOo}`f7BF)PJ22yaJjVl?fq(_$eZo{cR?SWga!Nb z9I_97!FtdE*n^+{ke#2`p5Xlm4_e(C$8nD%fW1Oi&hyYiz&UJ>Fy}m0HqPVw2?6J^ nvahYD^FdnQ5Xx82ajYEo6mSjfV-34AJpAU)|L_dKKhFFcLJ_iO diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/anim_abc_popup_exit.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/anim_abc_popup_exit.xml.flat deleted file mode 100644 index 33bc001ed19edec6bf9e0ab2d7dcd6b2539b685d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 820 zcmb7?v2NQi5QeEJu58ySlC(onWK5O-740}dWKS;8rE}XU1q_;^EVh!UkaXZ|d4Rl7 z_70u;5P6aGKiLM_ARThT$Dca#PRFAH#@J6l)_pB1U2-v#)7sRFda9P%?~l7lvRZ%k z`0kQ_b;>&a-Q<-s6_4juq=n*A$Xq$@t*BgPZ0X*g@Jts98V~p&OOs@noSw^JdNLaI zN28%iQaL-DWto_r32qVlM5*zzEWT~6stj41(L7)WY!Wc`YEwMsUp8~-3(y0n-~vcc zf+e^Cx8M%^0>8mM2*ZBd$2h=vbTkoFYK>0EO+~4as!&#VHPw|@wl;pw0mYqdmC=YmDiIxB0p(*@FLQ(-X^g;T84$*d_qG#ihP zbMNah=MEh$g^Sm5u{5~J`p3FgO@*x2`=_Qbbjq{6J(mlsKK)&76nV4Ce-pIPNm#JU z-a>Z41FQw@fGzmx_t^Mp?Iqsd;6bY!qkYul2q0HTN^u^#4=9Fg8*_>yC8IdHpAb+S nDfy@#%1u5}@^t}SJ^4t|Kl?R|2gv?b@s8F diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/anim_abc_shrink_fade_out_from_bottom.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/anim_abc_shrink_fade_out_from_bottom.xml.flat deleted file mode 100644 index a332771788aeecdf5eed66e860e44f9187d10ff4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1258 zcmb7@O>fgc5Qf)v)1;x$56Y(yT-qX4B2HQ=oE}h-Dj}{^NUelqZR~Yy>Ug8|rh*&d zPjKYSog+sM`~m&|7cLyRm-lsSsZy^$;{47X5$DUegLlan#|LYCkJ6rBqq&| zgIGo?&=VWPMvsDlwpNc;cH6!`4fyZ<_B+RWQ7BV*uXK_ZI`=w5Bcn`tp$rpMc-F|g zh_x9N54OBG%@ky(=k?;q_qY9rkHYO}tKaYT``gNo!okiUj^$uSdIquoQhew2C_~jh z-D&BrXqCDn?ucKG5Vz`%pueqk$T_e8RsenOfu~>$-h&U|BlrY9gRkHl_zo6v*IjTQ zbb${ZgXiES7y{SrcDm)>$KHcJJKO7a*KydvzP`RE^T_Bl+AW)mRH!m#q*XzhTV=*N zlU5tCv9ZVVP?>Uwq0ZxU7|773C#ik2uVOjL?Eb`vwY9%F9wge7ZjFY_#)%ZoW|dyF zTG0e~Q=N-OBbHgA#QZ!T$CJ{r-KKtc5Xwx6>EUR4*xXF49q)QxfjN(4(W!3igc>hy zd|XYiY*H*N{L$9j+&Dea_E1#H5pox03fC=^70b&-B8_@>_NQnzt)AA@YFS-XM7631 z^L1L7K9;j2ZbERjr&#lli(m$JzVq77?^bbM#RnrR7yYh*O8|Gdl#KfVc@;2*i#p@V ze9#%!27FhHqonOJn5k@(v|YKtwgg)PFqV>j%V4&$QPRfR`PAu0N!ty;`e~!2js2gs zxz%rSz6bVZEB|R{r>D55?2S3OcprOf0_LEkjsKtXyv2NQi5Qa~&Tgys@py&_;S)Cz3MJKKi*;5N-$OAM(fC2_3QZ`djbV(-YRP=rN z2Hm^%IrA&BHcj78&AH^gDSl+oNDw3m^a7qwrzMn>o9`1o%g>r3rL z<=WaT7gj5CYu}^sAB@#B7EE!8V`FKN1|^@iZ1ct_UQm&AN;}Ko(#Ya^!P~UwG7{{ v@o)|g&U*oR0JVA?S$hfiDp=#l8vkpj(>Ss=1Uxv8WAB-l?LU)e`qtw;(r%mM diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/anim_abc_slide_in_top.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/anim_abc_slide_in_top.xml.flat deleted file mode 100644 index c21124cc61b3c8094c372ec9d9559791779a3985..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 708 zcmb7>O>WyT5QRrkUCXK$L6HJMkgc-_5YdTaME0ryvd96_MHYcUi$Cbkh+&J#sXp9)}ST{RAB82icff$ayjIl~Hz`)Qizn~MK_ zA9?Y~Yv;wIT{hk}B3n4ADlH0GEVUQG$;Ow~)&A^4l%~?q>|C6eD$hsx`fCFE^ zH}D<&0G-a+csOV&iiR{8e3XrH)~M;)hth?vw3C6m7PM<^C4+Tza`Ifq`Gt0(uuW+e zvsx>&s;|-UJ5y`wcDMUclBg9nGPa>KEuF3JZ*&zTot`d3Xs1GWw62yu+b+loi%V;t zwoO@^qJIA`8%YxEcAH*r-E`Q~IMdfCS)ZSxeLBQ^AN)qVfp)v2NQi5QeG9tz|VsP;^Lwtj-Xiq7&Ds>?r{<nK$PYwkEElz`LTi+++$vVJi_zKFv%D9)3GjRpdH}zPSsTB$t*RecrytCJrx{ZRJoGfBo&NvU~o)w|kY$&9| z-7PyTB wgNJfxP~HoW0@O-LDfSZ3pcpB|=wCZ)O-U&>0CZ)PN18tJvi)cBD8BXh5B*4-!H&}~5QZmPO4HE83L%8hUb}~tHtue>BJBwz4mvbBwnYgLBYYE!yhETiilud<>zl>GPm zc@*!0@j-la+cvmXBxmrf&>HPe69qSw8g>r3W zH)UhA-8HY!^|!V$G#d5$QJU%w^5zxIxhP+>pD~F5g zKJ|Uso1)3&FB@qZUBAtEyze{g8Jy{BlJ3t>$tgX<{1p5|JU||S6X@{|oxf$6Kf%K_ s99%a91Atx*IJ5Q;@KvzJnKkb9Nw0BcZ45ZLj`QH2m*YQ^d-~DiFX2_1kN^Mx diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/anim_abc_tooltip_enter.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/anim_abc_tooltip_enter.xml.flat deleted file mode 100644 index 05e203ec4d9c13ea14c0c1c99e585e8d634edcca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 700 zcmb7BOHRWu5SZnm`f<+m+bCfw%!T;0)Xa zp4&u1hz%1xzwz^AGI{oh=mT)kIp9T_GroxCR;kRUb+?v3^yhJUXLuhHBuY) zppwFMJ8FqqeL2JH7`u8bZ*XvEKV~C4hC!xi!dC87njjU3@4NRWHOSWh!*2T z9P`DPGmUruo;G;SGonv#GpbLmb?(tI^`Pz6e}MeD&cQoC7q|fKfO{YT4DbTH0q=nC z_k%vx0oK#g883uZshFnDr&49yD$Rt9WF|GYa{jd9f=*6m?tCdVi&PP(%i7*6*nN}c zk{S)3l?kV2vua4KmRO-fstRhiW3BS5b-~$LVr@BP%)q^zo1m%>B87`9A1hzhLs7T; zb1XEsYSRV(@#?kU48rTtA!rZyLNvfm--2#`=YzE*{# zR*UCV#;M(|7gDE_JYj>+LWaz>i2)j z!g8lqTksyQK?lwtf-TwuZ3AD37TEXK(04!j{%#%h4t}0}_&M)exXQztsg2s(kNdD@ b>Y`q&do@!JwGTh%IsB!id1mmd-)Q^>D1npo diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/color-v21_abc_btn_colored_borderless_text_material.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/color-v21_abc_btn_colored_borderless_text_material.xml.flat deleted file mode 100644 index acd8f0350d9c62c6d345d5de02871d6af533bd31..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 806 zcma)4O;6)65S`GL79=D-mK8!Akl=*Wn6@C&UI6V0i3?ioIdbd??QRlRwuRub+RNVg ziTo3G#z~|FE==??_KWAuhZ6z7D}il2R;Dmk$V{b~uhOtXoo2>rv;{hsdVKV0DLvYS zEVgIsNm7S?c<+8--V*!Ik@(@zI`PxYD`zSZ-&?5*6iTW&I^nIXTyAXXhGUU0DEn|6 zkHjd~Nis>!F4RPir_AYfU9;*{)livxF*~X?g+mLe+kco!^2BiX=@gGCcU?U$M=nA{2i64w6ssK zwRIUjg_^IG!pcLx-$X&L7kKiyEF8kg$=v(pObACqDy55?gLHGHkjr18{WiGUU3e^E zFmPC)^2Wl(hVyiJDONHoP{W^SK%J6Bo3KZ2hww_qW9Si9h(G?1=Wl)5f1#%}K64wm zI+o9@HfNe~2CYsLK>5Ow^*ML9_8s<}rVdtT9X8hD9Q>z!eaCYhbS1%9kA->9IoP*) U@8ep&?U(a#Us034<=Z*@1H$ON&j0`b diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/color-v23_abc_btn_colored_borderless_text_material.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/color-v23_abc_btn_colored_borderless_text_material.xml.flat deleted file mode 100644 index 0c801fa17599f30144be5e68ee3db8d96014c3be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 874 zcma)4O>Yx15cM_*2|<VZ?GtZ72kO)gc`3wP)dEneH(EbOi$+k$fAC-g^f z>%D)kym8iowijmgcE)c!A09hljNJhw<5Zg3SS|{g7rxEIN~^puR%u&n=W?&FeBKDJ zZ6)fx#W>40p^yGAA2IidSJw%@aN0Wl)vQ`)TAp57p=!;gkSp!Dx1x2Wv5lKdd0C}v21(Wd0cg_+t4h|@hcf&GLU44?L+MW zcaT2x5ZD6$_8*>nPqBW1FADAXg2i)y{3Mi<_Vl1hC|9)M3np;`09Qag^hgso2A*^r u>0Z~{!~9g2UMqF7srt7rrRUU%9X72KuWSp!4Gul< zL)?1jSNID0CL5~-Bqn-!s6$(3be9X4qEh;6YC z5o51Hzwo~XA3Oq%fm6T$7r+&84cq{KfLma5^H|i9qF}>vcTADCP$iZvfgSqns4e0h3X#;A5|GN$UZ)66&EtOxh55(Q3qcoW*DdhRaFpTMG=)MHKsGInwbqCSg>HrdgM4x6Y9hx+l*LMU9e!u z2kRZZf7Ym3pI-Yaido$#o*e*iV3L^hg?QEEk!ax2t(sot7H#^ICXi zE1|b$qcrWpue|SFVg4r`e2n;8r>x`eOxZZo@Z{8rTq`bxES2NlipCYj*6v`;i%Ki_ z2#vfTxQ2vQHbnVaEshl@WFCCxmJGiq1F)fWusHpW5aeG zv4`wc#Mtd180$A-4gUn7{Sr6_J^`PBufR9pJMaVe1?=uV6HRVSmCuCtwiEW!G~OEh zLi%cnN#@r^y$(}ndwb9Gs#XoZya=HerTBXt-94dRzuz9P!C=)KOgj>`zh8R4m~rkf z<65|66_7|%bFnyUrx%jqxbmuI!=Y1JNpCFM+;kp_=SY@kXcYFU5t+t5j=g=a@ZA^D z5YvQ3ci4TnyTET)41WXI0RQ+Op3W$K8&5Eb@z`tubWS$FnqsI98P)0mbcM+8ktePX zkP%0oxSPN&fH?BRjn=r{O7D74(n5dw4$vvN)Pmomwa}OL)PsDex1JaHFc+$c92Twm I2R_W}4|4_B3jhEB diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/color-v23_abc_tint_btn_checkable.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/color-v23_abc_tint_btn_checkable.xml.flat deleted file mode 100644 index 58a0202c629067dd0b75ec17d7f546907f05ff00..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 964 zcmZ`&!H&}~5OuaGErm+3prx>T~BXjmtyY_sBo_!Vy4 z`2;=zPW%kKNn!ylO!YeBH};$HB#9VfKLE1Pfvin!xyat=MF;oqdKm2*dh)(FhC%oiLc@uJE}qPP4r=(N$&*OraP&ZCL;38R;=)>YF!i(_x!Y258&G{n?k(JeNC zyAAw=#qa}Q2mHf7c*>eT;`#tRKH|s|cLTWA zapZelZ=3p5_bKvsfVS%Iy4@?$=ur*40!^SnF#-tper{%oH3{#3OofUymqO08XUGJZ9`$Ew81@npwNTp0iIC z#vb?*(LVESzHK%-FzgUOy6ITW$gY=3{| z++xhR#dgkx?H3dK(#*M7Tx1*N7uRZ$({t8rS{-ZYOv*YP>rli*TvyX>=M3cJ1*-FX zon#Mm-4Bgi+LiGIPK5f~+xhz30z|Fm(xt{WVegwb2}EUw^^oWs{vha>8o(C#7b`rC z-9`Tqem-c<89KWFjZ=^&&8Z?&kd|*_ENc>12ets>C=+)dxKnVHt3_>Pee!*S@rOX} z`p=iND7*)*Lgqo4xHhm;aFo4AS<8FS)85o$dxJ+=%X>V&g-2_HM_J2zbZ_C&+2B#u z@*ed4x#?cr+u%{wA`klR(OoTj(AiS>Ghe+|{(Q^pJn!#4Y0~|!6nD<^{(blh0lY9< diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/color-v23_abc_tint_edittext.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/color-v23_abc_tint_edittext.xml.flat deleted file mode 100644 index 5db55395d87dfa791fb5f9be914f52e6971bab33..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 980 zcmZuw!EO^V5cM_*34ut^qBc;DoGLY@Nvm#hsVeRWA#vdnytbDtc-N6_s&ebEaO2J= z@B>Kv2!8-?Hfsc%&g$*Vycy4oXOo06_5&ap9!P7f<06yGP*h>5RS|-|4!etCnr?Eo z-UnOE|HPBe{EgSn^AC1ad0X+xdnc69Tnf3;o(Cr?pIcY@<0;PzqoF4!{3KUtI!jN_ z`ZWnv-P;gSJT<{$dl{R{My-!(qRKecEX;r(}b~6oDlY_ zXhS~+&Vkp!TR;H@2*4NMEAS2Y4*Uf6_b)`HoGsKs6<%aUt4p(933hmRAwqDQ`Ciy6 zIBPCtD6T}%ijBwH(U(|&Fs#=Tb%B1rDGa8*By=u}*X-zM6~cPKxySZO;U`VvMB0*z z^~ZWI@o=|W1YNShz-yyru#SyJK46HYuIh3B`ni>#JZ6jWHP%Z$yGaJv9wd3d#!wG| z-;geJAJ_r^>>r+Dci}(66NPf#!Px~UPC_*)rvptwwW5t!Z4%c5=ra;Wnz$iwr{PF< zn%Ua*W8XdGY`Wgw_qHDQT0N-m{T3Jdw(C=0`n%8u+I{hpt0mrze7YOySg(C9@^SZ6 OlXjdm_l|u0CVv2MTh~nh diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/color-v23_abc_tint_seek_thumb.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/color-v23_abc_tint_seek_thumb.xml.flat deleted file mode 100644 index 6ee09f7d85af1ed2d78cf30f85ef7e8729d6b81e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 800 zcmZuv!EV$r5Oun{?6OiNXptxsapF{|G2NwVc7=p0ICFy|i(@+^)QMNNsgQc%&W$^N z#i#V%zVXHa+D`N`lQ-j;=TS1o*dKsw`b1h|9T%lsg{BKDul3m~)Zf~2XE`m3P1UXU z<6F%C#M2A@!E5LFS6g@9c0B*$gff~-A#3e~@v1QzK0o3|l`4vP@#;j* z)oihNxme6~p=5bnR+T7^1$Q_b1s|Tz=68wCzqh8?+K3sj38Oe;&)6lXY0{W6_AbTn z&w;VWUhW(Nm#2*CwQSktS{kV9k*uPuzWA)N|wqy|$bEX)gVEyTE4Z-?`L_?5-K9-_3K0PdlKV Mbl0q(pZK(!YwB9DJ^%m! diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/color-v23_abc_tint_spinner.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/color-v23_abc_tint_spinner.xml.flat deleted file mode 100644 index 0ded0754b37f37539d4c762090106f23fcf5a91d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 980 zcmZuw!EVz)5M4J334ut^q7W!YPL=AVNvk@!R26rGkhpLO>)kam*j{UQse0sBdgIO~ zaOc90@CWe5@gi_K*7MA~nVp#(ClO=p2S75ON>doiMJm@mul(B8c~xnI&B^QXf~BI6^}nyp$g5VkQ?o|x1w^Hv86kn^DHkkbbP{3GLIO1h+WbOnZDaU+hdAUzY`AzxKAX^w_AeBle7)MvP6uh_GJ= z8~O=w4!i;00SZ7F=7AgFEAS2Y4*UeB(+g24YjU+xxf5xj)n!p{1Uo#u5Z>GEfG{tr*FyYL_32|_vV;p_txC!v~@(}O0VTERxFF^L-h^cjgGP23o`({iMH z?QGrpq3;25wq0-Uds~ltogUQpeuoQvyY;Cr{aAb|+IaX=MaH`!Kfa;Xp!2gC`%4JkNYZ?j}~9ocT_1&QC_ z#+^^#6Zio>g&Vxttf8c3qPH`C9{Y`F5-`So0A&54)TK6D%;n4#wVT-wg_Db!GeR!6 zr~Nct=Uw>Ty}flk>xQo{RaR;09-#lJ`!>$>n9oXI1%gYh6yrdW_(zw7$`$B1pIO>>AdCmLuHTtbJ3 z^e`1sG>neV_)r{;MhBzOP)33$CrO&J4XLD_s(wZb26w=*jX((CzAl78P1kt#Y;Ca}N-F zEvH?6$K7sxPPdwS{LbY#+{;@BYKAY4=23rgAf)1O+UNUy&ij46E~l$2X!yO~_u&Kl C>BmC= diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/color_abc_background_cache_hint_selector_material_light.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/color_abc_background_cache_hint_selector_material_light.xml.flat deleted file mode 100644 index 357ec0d00097bd552e5eae70cc5f596b37c032c9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 834 zcmbVK!A|2a5OruvyOma=z+qLfQV)BoL=1EhX-_>PPDot1M2_P$S(3Q2z0w}{#*G_? z{mcCW_DvGAzzrsPneli$&okqIG4?sY4>G=xy3~e?M8=7bcN?RB)@dw-%vGEhwTrDP zm2}#~m2k=wqKwO8le_)ZIEvaF@BU981Ab$bvHXY5YpZJ>Zj4Av#T#DBoe{Oow5jaz z8PAGRL5HXOG)tps5q-aqi}Y-{JXtOmDoSN?o@ALw&ILEh@(ys}LU0Zt_`YS-|OW+!~1@3_d;14jJu0@?1U8Jk_T1{bFVN~tdY_@KlFZ%wv z$80$4jfgc5M9>^34utcssy4a7pN*#s<&;ZaB`^-CvLqUaSLO6-56}IwY#A91e`eX zd-xCh4Y+aV25%g%1U~RF(aX%fyq&i@*+2;K1>l(6Pj#t{q$FJ>u3oh(m93n*bgPP- zG6j{}%Sjw>^#A>R_kAFrS!Jwzsn@mDwTvzdWu=lSrE6uSGgRALo5~)Z$h;^Oa&#<@ z^DK_%@xw>yJUdw|juwl#inBC1P4b+QQ<4UI|KaS>WmSsLTbpx-V%*k&xF?b5HWUj>C-k$|e>o*vn62l?24M(HSO@tve4fu8t$T^kJ?eDLhYnD=4Ot>N& zb@C|Hm89ks&+d?3J1q_l{;rhXY%nOCs>FC~RjE>^jhIfY!y8$ty1lM=7mP7sL~u*o zLD~j>AO^_Sfj&P3#riGiA0T@@@412X4n96u^P=T8Jy|np*E=HYMBM9_x-HrF8i2o; zy+Y2+-2_G*$2siI%#PffgZr~DKmOZ2p3la;IJ^fxGxp%@`}OyEzJJ%C^Y^@;O`rF( F{0ZTp<)Huo diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/color_abc_hint_foreground_material_dark.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/color_abc_hint_foreground_material_dark.xml.flat deleted file mode 100644 index e5adca5f376c391fb41b10fa8fd4ceff0ec650f3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 938 zcmb7?!EV$r5Qd#@!Y&JypsEl;NR<%MN|lIdw-won0|$;=IY&!^SaSKuZ&g4)|_gY zcfu>%h&GqPo@^aWvurizzyF_oiTFpStmB_dt)0<4J+?x&ikG6SmE+zD?XYv_UhVU$ zX%%w1$M-6kW%KOdO*xnQi^c23Vy-e-7KcSuiQ-Uji@E>kKmFXb>|$f(eZ(gHIAYJ) z+laA;;Yb*N2xH_I;62db44i|n;2Zc3et=7G1$K7ct*rd5gH$1#PHEmZTC~er{MlnR zo87Kh;&@KU{I1F*=~Xr!3oWf_BukQhd$zki ztBy@3PPMA^#`0U1NIo{A^3%ek?(*l z=+AHH^p5Ix@e4sU9uGT!-cyV*rW#s@g4P-Vx<1SwQ6?<`6r@om?Jl?nNTW>JbVC~r vemD0dFLeKpz}m?lFTpyo5bA*9v;*741Vki3U$W4?X-1FBaOq diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/color_abc_primary_text_disable_only_material_dark.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/color_abc_primary_text_disable_only_material_dark.xml.flat deleted file mode 100644 index ee46ebb36bdf3c99921553a03d1c21a2db0e3991..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 842 zcmb7C%TD7k6m@7zJ4i^p76{F9!~$tz+JZ>C>Ibl8#UgTIr_JERmF-GpH-9kyz>fX= z-*9dc^O9!4jgIg2Pi5&urd4Wc{g_t5 zD_aVkN?{+4=6gxfW`B7+`xEgyr>x_@%&K;#=JC=BsTI#fzEX~RD{5C5Te+VTUX)tF z$74P&WRgsitDAf(C$rh*Y&KPi%(LsPC`5KGxJB-lJBhcIW>-6H7d#- zG>3Q*V)zMg4=A7lHoz0`4EzN+U$j4x*>bt^DVkABYc{nEn#zxQvh(x*W_%Ey4TqwZ z)|8SB1`P*%A+%HM;$r3fdd|6nij{D2cQDRP#l`xe(I+JL`=wVE8;zXOD)+{+{e9RxSI_(WHKfxD_&fH>h1kgU&E@C>jP E7pwHm+5i9m diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/color_abc_primary_text_disable_only_material_light.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/color_abc_primary_text_disable_only_material_light.xml.flat deleted file mode 100644 index 3062a7b4861993d1938e4e72e8976ec0e6fe86a7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 850 zcmb7CO;6k~5Ov6IH$_5ffkTCQtb~Nrc-bu?%ZVS*D@PPLv9p`jiC4A}?2VtmkKo3= zf3LhrVrW<5z(mh8{+M~0XGe^&IKlwios~u#%SBPP_AV zuWT)JuIuH>?_ca@S)cyy@#rDqS58^Sf0LZ+IdBau0R!9ukH8b~2bfMT`+q4c36`TDwY27@l|fgzr71f;elz8N_1R=1 zT4_x!*?8Qsz*j;$#ZFFE-mfn>caX9XE*%c0rD?cW|L#Nz$)i#2Rl}0RDXmIxEZf_2 z9v7XfmTq36kNYTrBCzNa`vUhF_zNSs#=s8Nzx}gLdlSqL@dcwZKQY+{XrJr@VmdR( z-qnhS1n_ks)hF&z?_=`u@E_Z?h=X3_0njtNatsgsg@fkAK|a*m&I{|IU#dxcMFW3W H4>~*p-G|TB diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/color_abc_primary_text_material_dark.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/color_abc_primary_text_material_dark.xml.flat deleted file mode 100644 index 6147a4e933b6bb26505cb47462e4954c312ee6e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 818 zcmb7CJx{|h5Oruv3lb7v144`}Ac%p2NSXKntPD(%V>>j|Nh;e&upxd48#{lBp8@aE zSU|-97ros1e0R@&NyHd?2gsIpWo>H9MJCg!ElOb@Q?DO5y#7V)Taxxqj%V#i6gedx)Ebb;YNrrLkxca+yD}o z01kKoUV%4YZ|`!({zEpUb8&CxTC;v%RLa(cV!d9&0G|uvG{%g* zpI&h8AY3V2+!n^NF1eUa8c9NPw_A8!vcbSAh_x$+S_O+$EhdcE~wtI)v=o3qicFG58_i4j=#- zU;}soyaL_;{r;jN{~=o}61I`M@{z&d*Wy&ONQ!tzY|?JCJXS>-lUA$b0G}|a1(2?c zSp%e9{1X?K7q#?*4)722!Q)&dk|wyEqOW1g&atXd@g#NkKD~Vhu*Ev qu{#Sn@b^0gR19AnI13HuAqN_ApttjO`)uCc7iZ$VoSNU}tqz|TUBxs2 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/color_abc_search_url_text.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/color_abc_search_url_text.xml.flat deleted file mode 100644 index b2933ff11c0d79bffe4db61be8a63ac41ef76394..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 936 zcmb7D!A{&T5S_5u?sgHVg&tbO1?UN>F|b8sIdKGuYtNC_ak|?k@ya$Ty_Fy0);ouO zK!1TRY2R$(9-=N16TLipGM+axRw5$$4X};gDN`CNjC%%|j?My9_&sOH87D}p_cEVd(yTaJYeK--tywu?2SR5C5nvT!!gj{@GjwT$6`*_9<@H^URy^uSJ2o-Orx+`gEd)$nKfPl|I_H^Vh#QQxU;SX*UQHFxDPhgU=B5R Q&jo*Xc2V17@P}Fd1uT)!v>rf*+#&PLqDar-ubD1 zMEfQi3%XLJcA}RVk7wrDFG(0qV_1b6|tYe#-KH%FHy6tFjkC!Bc zBCzBG+lKoH{DP5OBVY~ry?1%q8)N+$Pc*8z#9|AeeX@1LRMX4e%^DyFnTc;ep5_zx xu+Nbn^ygTeMI7`Oegc*ZZyYp>jOGys8F7%0^H%#}KHisR(!G+NKjxzjzX6|F#*Y91 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/color_abc_secondary_text_material_light.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/color_abc_secondary_text_material_light.xml.flat deleted file mode 100644 index 1cb8818c9a5917ec8151e10a998fe07195ab99a2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 826 zcmb7C%}T^D5T3fbZe0-kJBWA`gvD*tRqT550la!HX_C6tw9zDj-n{rK-n{!#K7-D5 z8pf2MX43~GX0i8==T9Ch4e8S2>^+E^ID%b>BY>4~C5$gZjGiGfM2WaZ zJRx2YZ-{rq!NJ9Xz9XGf1%J?831Kq%rMz@J*GhIIhvAUd(wb7jV9@ZOFSvFJ#^bs7 zcjt^b)UV<$X$uo!D#q__8)ZUszh8P)K^!}!mGH*G>ZyfAV#NBUmfjN5Ota?yDTi_vs!46NR=uzrd_ILS4dUG6>&g9LR=OncG$E@9N8{HJ@I4s zLtGGdegZ!L-ehA@1qsBg-p=@WJa0Tn0>;=^fNZ>z=~5dm(roF9+AUL8FSC`(&P7_P zyNhv>tP}tH|IsCXZI!Y7Os{IIYaYKhLY9hW0`)C-M$|Ufrn38oJTFQGA0P08TqemZ zd3v197TnVF$+<$!9cVHhQqEf3q#Q~;M-fn=c2TV?e4CeYZjbajI$Cp z?$YB-S6npbG^l-X;WXRZ`*$YyVo_8$Rk6{?s#0Z68#b9(ho;wW1$y^uRkzn=QRK{p z!aP0&BTO3>+-6g_JHSs^1b-dq^8-+nzk&S6@IIf;+`#%ie%>hO9TxWh+9w+$rkw6k zx3#XsZAiM;fDHgzA$j5^z_8=Uhh5M8`lR~;`_#!=^|vn7BJ&z}9a;_Y#N7mLbsTxG n(XT}s^p!mT`WjS=%xhe|hp*Q^=lT9TgYJ%=_w(=b{(1cZU5@Tx diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/color_abc_tint_default.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/color_abc_tint_default.xml.flat deleted file mode 100644 index bb6fcba52687ce3862196cfd4cd94e7b90664040..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1536 zcmbVM!EVz)5M9>^34t`F&=4pG4xmbvnxzd(drM>*p>(3>*`1x8H=Y^CV~l+RNE+=>B}#KK4o7yH+EFB9F;DFF zun`2g%i7O}mcKPp8-A`PsZlBKo@o&!l7}LkNW-lbsfm@InS&!9PZJ5-XR6a>BC z`El5bjs}BggF#OQQ8@08<5-OQf@|EpI@|8YS;E-kYM!dk>Wj6<9{{Jk+5o2ECSSOMPTOpBFkW3ygzg-5+m8( z-o)B$$hkpbXTo#~_im_WTx1tivI8-7rf zavbezaNJ(OQI6#}?q7q0dVf`|%CQ^=&DXlMYOdfY$0CjZzVts+=Ahn^xSlW1mFsW$ Up0k(d+bd?y+1>Y0w!81=4`pFTDF6Tf diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/color_abc_tint_edittext.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/color_abc_tint_edittext.xml.flat deleted file mode 100644 index 2fc5743bd6974cfd8e470aa5566c0557b936a1d6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1080 zcmb7D&2AGh5cYNx5&{9rPa7ylq)L^#ZX2p@a;Ylr9FUMIF2QSi$+q70%63r2iHG5F zxNzgnBk%z5d9y}ns|qpEm-+E{zL{|n5kkHKUPjwoD{Uyt_`(&HTS!qjC$HSY`6x}- zIsg6rY(?K%X)L|a%gXACCLatFN>a}FQd;T^t8A`KY4?w4UMLBj9MZ#Fr0Fz$dBUgS zXf`{T&89LHJUh-hX0NCfjhJFg10B?YI zfB-H41AGF$0N;S`zz^Uj5TnM{)+wum(S?|c!m>1!;3Dbnw=rodp(7AA4b>KgH8TyYRHnLup_Aj@zEQ^#kt{V{c#?!M_7fnR-Idl@$3-Dmp>D&TF&x( zt@`ixy^s8j*Us}ZTeaS{JbUkiGMY;vEA4r3qV=V9jXyZzWoJK7l z#l~aNt0t2n1xr)Wb>MqFd?}3AY;Ug$p<8n9F{eiOY>;QtHe7V)G=T$g5iHx^|F@FI zVxv(Vbi<}ouZ@<$I<~#-13Fvjw!Z_e$37=hObwRYV0Ykd0>5A>{AK(I`~=v7{vmwS z)0r98xA8SSH@PhHAIc3F*>Z}VK_H}9GZ^&=l=v&qL<{sy+)%3}Zk diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/color_abc_tint_spinner.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/color_abc_tint_spinner.xml.flat deleted file mode 100644 index 711c04d0c12acc95644217029133505f33c29c5b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1080 zcmb7D&2AGh5cYNx5&{9rPZTIeq)L^#rVUj$xl|Q*4oFB9m*Dk!$rfk5vfT=C;$e6i zZrr%@2s{9Mvsojw1tBK-GCv;AH#1Hm#@J_oWHgaR8_Pu|m%gn0($!^EDSLM@O4Cis ze}6yn{FPJI@pH4PoT+&7){0y!E`?kv$GsJmD~w&c{X<@qT0tiV{GiCwbe29lmb3hD zK7Tr&&s3Vr>?kV=ksS$care*NChympv9oy7YRra>9kItuM~vML6Tm(THuOW_7y=)u*>LETR?-{G#$)Hv^ioyLc)$F@$P0&A!g&os^4Z5| zh^<4SJ8TNI4g7%gpsxencpo9k-$MQq=#Wo$Zot2fPY}v^1Lqz<=OiQ8l+!+WQ|mXo zF^TsYumylCCQY%Mz@Uwhj@zEQ^#d<;vSGc-`!|kphlBENbz*_HTc3F8zxM#>^5W;$ dNZ=)(W+NTyb?=3EcgImXcZi2K>Bhqw{sfpY?mYki diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/color_abc_tint_switch_track.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/color_abc_tint_switch_track.xml.flat deleted file mode 100644 index 065e502c9946567a071ac7c2a2fcd89c15732588..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1096 zcmb7C%Z}496m_O4Erl|}OG1>{A&oR*;^~wTX*VN;!~(HGVu#c^jx)(LjVs&bvExJd zA$Ba-@djsRm&j7_>Bz36`7m1v^qH=Tlrf@Q!J0s-s z#%vJB+q(aL-hIbkT4gN1(0OHb#iMg0(o%6LWUefSKxH#+R`%$GXGN)yqcI<6X&g`D zhmYhWJ(*6Ar_+gwQ<p4yMrS|yC%SS*mye|@UJIvE*6oUNoeS3MHBHb}tk>Y{<05CGw2B=ZUoLkIs zC2Z7`M^dl2STAWpM`GhNJ3Rb%CHG=sSU9y}{k~PDl1>{o99jowbI8ag4EnvQL{efO zhR$phX7E1fW73FVkKIAK4tz&+kq1DVr+Hrnc2IvG+1JxIbPu=i^FcKWY;FSdp5hAD zRMT8@-75q~0UtF@x;_S}PJ7M}O_)aL!Y{s5C^xK diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/color_switch_thumb_material_dark.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/color_switch_thumb_material_dark.xml.flat deleted file mode 100644 index 5776e1f5e8f9b416a7126c63d79b2f0c11225081..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 808 zcmb7C%TB{E5Zus~79=EI2ZT6q;DC^bffkW+>IZN|;#N7aLjrjq+XzmGKjFrmAL3VF zHjM>ENQjLlyWXsKyyFB!^bW8s?k7?fUt06wQkN z{oZ~OmsT4qZtASEbtS@UBUPbAB9ly8;f$pb)=H`G)_|)pGsk{_pft@k7YqLT9_TWLxUy`XotE1(UPA9@x;gQhrksO12=#H zUVvBN4LCTM{6eg9E8{||dF5z-|F_}_^FrG>k*VL8l`?g%sMl)<;8R&x4aUs5yK^Bd zBrBy2+rluZOCj%W8!`OmZZ~(jq`|=ILMN^^w6bCyu5+rZ=7bo5o`V6@fCa0x1-Ax# zz*wptuz>vDw>*FAW4(#T8`oT5u@3NewnfBT(@Ng->a-ic*M!`kxw|vpVc%)b@v|3m o@SnE<%ox5naBYooKW@xx=3wvp{oLpCeqQd$a|JEG&wCv{0fh0tX#fBK diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/color_switch_thumb_material_light.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/color_switch_thumb_material_light.xml.flat deleted file mode 100644 index d5abad155a2458995d1c6dd90defc8e7ca8d9c3f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 808 zcmb7CO;6iE5FL}GNs%J)(L+^nsniP~yo3bR;lvN%%7sg`_O7wZ+KzU&f*br5Zru4p z{FC;L<5k-z66#pbGrOLhH}lpJ5xoIy+h4QBG*-C#(r3lO7eA|XQAw|DDb2!^w}s!k z*iMpF_J6;>Jc?_ltrI_*qIOL!;#(_~(IS&sp`Gwn)-G>sGYA+19G(9*v0Ohz_V95q%7!AifMSd<@(G z3NU~No`DzO6*xY=+`y|!CsU)=U)MI)#Ii+1QU z+%E77#!?M{E$n~$YoEUjvHpZ780TDJu?O&XwhxFor<1&`)$0y`uMN3AbN5%i$G+F~ sv0jTg_{ZA^Rt$eQaBZz|Jub{^=3pP{t)C0~VP3Aub44A0*bh4V1|_+{SO5S3 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_ab_share_pack_mtrl_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_ab_share_pack_mtrl_alpha.9.png.flat deleted file mode 100644 index 3f785bb36e22dda98a5d1a3216ad7fbe92b24b41..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 538 zcmZQ%U|{$R#2~<>no^Wlo|u%As-KvY9G{pJU!0Lxlp0@{YEiL%R(?iaaekh@UV2et3ed*n#N>?BV*Qe$#Ju9P z{G!}qT_gRp%$!spt!Jojn3iH;VQgVyo@|_AWNB$&X=$8lk&>Kbnv|B7m}Hu$Uj)<( zbG>dxNnF(HB=vnF&_M7m&y6>ERLtq$NO@1LP;Ky066` zPF{h34v@wG3P6!%S{qjbsgk^ckYolHCVr5Z0T81DXxOm<#o2*a5Qv3YG+>cqg~^nT o3m?i%ro33y*y`A@q{x|pVYM04gZ8aY_&{cRy85}Sb4q9e0FygxTmS$7 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_btn_check_to_on_mtrl_000.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_btn_check_to_on_mtrl_000.png.flat deleted file mode 100644 index 245caef7606bf4dbb12f31e2a933cfe2296ce358..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 489 zcmZQ%U|{$N#2~<>no^Wlo|u%As-KvY9G_H@7oVJwnw%Y9k{_R+7oS^FloM}YU?610 zWnlr)0VO}cc`R@ic7{|pqkd>{YEiL%R(?iaaekh@UV2et3ed*nM4(;8`Xxn)dBth@ zMY+YgM*3-)IjKNe&rshmEycpZ*uum-**L|>($c`v(m2&3B{|77DJ?BA$uv>F2&fn4 zdfkkaf=t~q6TH6AE67V{cno!AXMmqOFP9V-kjv}o;SvO-4M3O!_I8wj{PJin3Evv!^86EWow-(3Z~-MoJc# z9eI*8rTZkq(N$Hql59g)KT;5`cxm^`(SDcsjFvMIrSBIWh~Azg7PR5zuDh{YS;NYA zue%-4$Nq@_no^Wlo|u%As-KvY9G_H@7oVJwnw%Y9k{_R+7oS^FloM}YXewmI zWnlr)0VO}cc`R@ic7{|pqkd>{YEiL%R(?iaaekh@UV2et3ed*nM4(;8`Xxn)dBth@ zMY+YgM*3-)IjKNe&rshmEycpZ*uum-**L|>($c`v(m2&3B{|77DJ?BA$uv>F2&fn4 zdfkkaf=t~q6TH6AE67V{n8FBgW@mt(J1>_M7m&y6>ERLtqzyor1LU8-+=e_142;p9 zE{-7;jBlse<{fenXtm$7u~AFCfhnj+`ab)S!i)?B&Eg)9hw3uSN1JUU&98B}XGH3T z)UB_-f9A56^__s_esg&=|C!xcD#!U_@Qy%$gTPD<;YINmw`0Lxai6N-Ip<-HaU>hUX`5(qpx7si%Xk@3o39Ng}%#wOo zKw`6VGLYdd&)l?~QFg{D`Ns}S@NE{DQqJaQ+0@2d*2CaDU$;v^L!Kwq``;aA zzDnH|2Y2s^ZD<7bFKa|Uj9@2 V|Gnn#SYT)~c)I$ztaD0e0swC5?d$*m diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_btn_radio_to_on_mtrl_000.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_btn_radio_to_on_mtrl_000.png.flat deleted file mode 100644 index 9b75f7999d623408890f22290f4dbfa740878be4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 726 zcmZQ%U|{$N#2~<>no^Wlo|u%As-KvY9G_H@7hjZ^l9?Z0k{_R+7oS^FloM}YU?610 zWnlr)0VO}cc`R@ic7{|pqkd>{YEiL%R(?iaaekh@UOLbYppD6i$r-7|`Xxn)dBth@ zMY+YgM*3-)IjKNe&rshmEycpZ*uum-**L|>($c`v(m2&3B{|77DJ?BA$uv>F2&fn4 zdfkkaf=t~q6TH6AE67V{xWEW;W@mt(J1>_M7m&y6>ERLtqzyor1LU8-+=e_142;t~ zT^vIy7~fpl@0A=Va`a*T{9?yk9>)JRPWN2bTw3+uG>gcaWc`RA5|6xBENBwg;4v{v zq~x2)_6eEiRwU;9dHd=>()!)k?$-TyxL@df+R2tx!VFH!^-eEa!4SsFvxaF!mwpf{ z+p%Tq?#!OOyF4{3ry*c}7*DiX+NJ!J^Z%I|Z#<526kpfYv&#xJm|Exg z{90hiDy5c1uSC{ZzYh%-`R{Qw@qe!R-%lURFV3Fx<&<;CEtYL(my}%F@paK7A1~wE z9KKp=LAy+I*z_fKO}*4o)^^~+;wj%QW?oE;_v&wZ%Ojes85^B_S}>wmcWI%ubNk9E zeSsI3J&N$UT=wk1(kW&3DI2txdb?P^YyOhc(qzV}eEyR2>T3rM#6;b2Sm2v**lCt@ z&HjU*w4?s{|GQ`W_i~-A2m`}`0G7A+qq@pJTk||_KNff}@p<9e7Un6OOZqpnwu}3@ lOYOI~|CRYsyvF|TOs*IIS8C0QuK~ssgQu&X%Q~loCIB1M8@d1h diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_btn_radio_to_on_mtrl_015.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_btn_radio_to_on_mtrl_015.png.flat deleted file mode 100644 index 495e69a0ca65afb7c54bdd19f39749de9fe123ee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 825 zcmZQ%U|{$N#2~<>no^Wlo|u%As-KvY9G_H@7hjZ^l9?Z0k{_R+7oS^FloM}YXewmI zWnlr)0VO}cc`R@ic7{|pqkd>{YEiL%R(?iaaekh@UOLbYppD6i$r-7|`Xxn)dBth@ zMY+YgM*3-)IjKNe&rshmEycpZ*uum-**L|>($c`v(m2&3B{|77DJ?BA$uv>F2&fn4 zdfkkaf=t~q6TH6AE67V{FlK@{vopZYotI0B3&`X3^l%9R(gq;R0rJmZZbKdh2F72W zE{-7;jBl>&_1YXMa`fZ<&l6WDu*e3)>0Elk^-PWBbjV_j3dL=Ldzx-^B)v@S_@2O} zXyA3gNr1cd;)|Jw*B#RK`E%&h*Y)R;Hh#05-G01(U#Pv7+K*4Kyw=XJxV~z=RPZW> zGg+x=j3Hk0L+%87hu@#MaQ2xCGxx2VR&o2e*x^a@CO&bUr7*wei_XW3siIyvJLhTC z7tF4lAyJgez4VcCyiaPp(Kj8*7m-&#hA&GFJ@4=-N9Sg^>%Y5S)hFGb#Qi_xSMb?4 zaUCs_zxQceoSr0k{Mq4^rbcIdl!LVm-$yL@5?HlZE2n$+P3M(dYNCBY)k>MxF_%LV zZhB0T5j0KRkvqH0X!b3QL+cAfZccn!uzZ!1|0JF*9ZGeUJ)wJ2Cb75QRAkGRblLZP znz=|sfu`p*!QJ1suhx*SKGlC-{0^3u~TwN#K-kd46~T^<(9r# zx8O+6=MTFt-w#+U|1kE7mW)TBg{K8yz{-u%aq?fkh|YDZ;N{(Ncki!2m4`bns|960 zoV#d7n0>m&&g+iM(vvoRnN?uk5psNQN(SH2|NI#{C*Fy25w@PB{?hc}JAsw1+b2n{ z&6oTT|NE;iFg9BZF6_@%*>G1xrKXX=jb$3oIT0JF4O|Ij2i7@0XgG0XA^!%}25|>> khW$+U9T^!#wU#bs>mdKI;Vst0D!JTDgXcg diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_btn_switch_to_on_mtrl_00001.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_btn_switch_to_on_mtrl_00001.9.png.flat deleted file mode 100644 index 614567be44b8adc7bfc88eff12e350edf9022812..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1366 zcmZQ%U|{$O#2~<>ky4aco|u%As-KvY9G_H@7hhbSS(2O)Uy>i6pBJB7Qj`;K00f3Y zR$LYq5KU0>1DwYKXJKbZO<>dyElw>e*3Zh%$Scmz)7MKcN=yM-nw*%Nky@-@Qk0li zoR(jdTdZrOpO%@E3Z(T6^$pWfEG&#IOw5ywQ;aMv4J<8W%}6Q8)Gae175F5v0vX8oZlAOfP$(s@AS9WAg@scA$T0w7 zAV5~e>Hro36HGu-9f(1W00DG9L=-|YB6C3O-+CIe7#Nu2JzX3_JdQt|YM&$QDRON8 z%*f+q3Mo?yCRm6?D80}Vy2$ynWr6o(HrbF1!58Nhv}eQwIx@0eiY?F05Oi{J68ST= zXriAW7YnPNNZW}yZ&`HS@0&Z*ePiK<$y+yf$@(PO zaLeE8;`0(C4%V&sOSGa%Q=3p{uStD3yK84ua`TgUN4mFap<}Kzt_F{|NZ$b z-hZ^>(WZBfZ|7)P9Y|VMcDCBJZAY%u`_Q+ylGrq?ina0%@pacMsyeDIJXzIymIQ#)@4Po_~y`HC&k?|0hCXZ141*uGmUApEvzYjfv~ z=t$dr>?MAT=hgO1ZRp(fVAf=&Z(;L%TMA{*y>Mj>trsw0HEi(laXj#qJwQCP{qx^y zrW-l|H45$j^TZC_=wRl#bN-T5;dQBZ>ohO_`kNym-}kmXUbNuVBny_!(>=>2Zgn^> z*K7TlE0?Y~!E^n-f@L?IzCDT7UJ_?jw(CklOWvg0SwA0omNs3S?8YF#Q~KzkXTfCE z{i|h9abHZnb@s~9fPdA;qE8%WU|as{{lw;A#l^YR45s(&H<@l@)ttQOy`A3Vi5|Xx zSLgKJbvnn8G3B?r*(t^3_EWEJ|C_jWqwf;dY14TY{JJUK{B-Gri*?R?OZe;O-2cD$ z?M>UDx>{qq+Y#(L5p8a)IYVOHjyGkcr zy;ijM*NbNdN`9RYyUs}ylj7ddcN-e->`u#c1FbjwD;J1GtamY(YpeEX kOHN1bR37eQ^$9i1RtH%YAK5aK2bASJUHx3vIVCg!03YHOKL7v# diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_btn_switch_to_on_mtrl_00012.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_btn_switch_to_on_mtrl_00012.9.png.flat deleted file mode 100644 index df316779c106c60faf023a1db03b18c1fbe5543a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1513 zcmZQ%U|{$O#2~<>ky4aco|u%As-KvY9G_H@7hhbSS(2O)Uy>i6pBJB7Qj`;KU|?Wq zBxJ>9VFA$uB|pG($c`v(m2&3B{|77DJ?BA$uv>F z2&fn40o{z0f=t~q6G9%*v(zidOJ}$Zb#!NdpF1y?6c^Ctyq+E|K|op)ggHR+OqnNY zfs{mEfqxDgkb#UHo1z^51I3c2SEvFhfxH5rBvv2;8Q<-bHUbKz!DswAXbLWof4&0tE4ci+&vwyiE=C$Cf z=9g&!lLMF()l}N$9_>1+CwgS-SA3yL9f&nb(d*TQ=#OzO?W{<%af~Gx_g- zzqiMn`HwuC^@FZg)06J6o4~{KhDl!ZfEjaxBh$4r+r?P2*zXBHx4s+~X7>Nosm$}` z2ck|U>OT81Ww+4XZna7A{po7e_a?2Md|WGQ@t@yX~FQY&!NXs5!-K zreDUe#?f4#DOj#zvfKT}&sQIwGWPZ5ym@}jvQwM&`44}bD?8Vwt;fzr-|eK#f_KS5 zCps?npI2U`T)vIlV#2{WHSIZ@xqtJW-Z9I6UZWFBaQI2Rf|hdiJB3c}Qmd^V_T8WB zP_eLVN>-PUjEBDw`?6vcp5jZBL)~~R4>jz2e0TfZeUC%k&V0;en`m)l*Sp7^&H}gB z9Q@eO7`&)@>J$cksSqIsxs~rGPGq|Oa_(2=!>4B7RX#oY>y~R1Dw)jW%KPtB#H1dX z;L2^dKZD2R_;nFS3FG}7fm?d7K33|y9(PaT#I3&7?Vk@l`oMm}g+aD|>DR`ZcVf(? zD<*X)mUCCiZ|Kc!F5-H0>g=cDdoy1jasByo>TCf^)?2MHmy>sF{`5kM{U%?>w8s~> zT5BgqTs|9Q@hezzPK{BzrcHt{-`1t-#TGM9E!aPgQSS7dF0U0nv3H}&WR2JZGGfxR zD_?181#+%h7kETmljr39)Aj#rp51-2p;O}aa&1A$>nH#JJo?-`tnH8!BUjn`SJORs z`yRH`mwjzqdZH~bW7hkR7g_>Sbl2K_IREI#1BsxF9f~*CRd}hew`tpYovV9Nf63Y@ zB_dg1hQN`Cmq+)$KlfK*YPjAWmkTQG-#hb* zo;JPyGP8!!b;^Q-TlQ?0F%>U-RoJUPJ4xRN=ND;WEk8Qprd}(f*9r&o<*i#YE;9+q z*;M@9B_6Zz5h!O j$4fFZUtJLTTmSfeb^V(MK2_W;0F?-yu6{1-oD!Ml~R;go|u%As-KvY9G{$+6rYrsoSj~jUz(Q^Uy@%CpIcIt6Q7t< zkdY{4#bsdu(FP?yzl$%)Assm1yw zMTvREY57ID#kxlNX_+~xKw8gG-!Lu3!ot|X#5~zJ#mLgqz|zt<)gmQ1$uub~EiuV7 zQNIYN7v=@sjFf^*-7*uxUeUAEE67V{cm#E9XMmqOFP9V-kjv}o;SvO-RX~^nS&0-N6_QsFlFY!w#Hj$}XaF%fFn|aM0Vz=+mIGo1AjSn4 zff8Wc=F|2I$X4}qaSZV|{`Q=sAcFzV;SFp4SeC0?n$L3JISWIBu>NgM-`6X|em(ia U$h!ObKQEA}p00i_>zopr0O}xZfdBvi diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_ic_commit_search_api_mtrl_alpha.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_ic_commit_search_api_mtrl_alpha.png.flat deleted file mode 100644 index 02af65c6d99f06ef4570f8dec8842ed44cd7e6ff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 449 zcmZQ%U|{$U#2~<>lTwseo|u%As-KvY9G{sSpPZkYn^_WHoSImaoDrW`kQtv_Qj`;) zm{X9EC}hQDVFA$yB|pG($c`v(m2&3B{|77DJ?BA z$uv>F2&fn43Ehm8f=t~q6Jk80SCE$ubn0rTb2|h4+F2QbnFFjv*C{Z_i%jY-V6!zF1S*60}@Q<}~A#TqQn*Hf;_sz5R{LuSI3+pWJ-@ z($}W$TK)|`q-zW}1SzrBP4Qq1RAN(@$lSo-;Ag-fz+lm#tInaoFUZK?aH4<_ME)06 pW*18O#Lkf5&&DO95wPF@pUc7mX`8%-yg=I-JYD@<);T3K0RRwRdC&j= diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_ic_menu_copy_mtrl_am_alpha.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_ic_menu_copy_mtrl_am_alpha.png.flat deleted file mode 100644 index 7ea227459608d49dbf36eefa60cb0031950ebf4d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 468 zcmZQ%U|{$P#2~<>o>G)po|u%As-KvY9G{sSpPQOj8lRkBP#K?FQj`;)m>Zv%Q;?A; zWW{A+0nq~`Kfrk`a29rkR4=1`XmM&$v3^#5MqY7#p1xjsQDO?v&g8`8jMQTNlA^@C z;skvC_6Fp!$) z>Eakt!I=ERU$rCQ)W7rp?>k5c8J+m{fBJtHMkltp%_|n&S+GCBbxJjFnslN^e6vT_ z!Cn9B{!120xD@fMW0!8t6tH3IWZxITtE9=s-w=8=$+TlhLw-Yq`4L_z(~K(%0-L2A zCO9<oKlono|u%As-KvY9G{sSpPQOj8lPNR5}#XAloOwrQ;?A;WW{A+ z0Z|VnKfrk`a29rkR41c;XmM&$v3^#5MqY7#p1xjsQDO?vzU0K@jMQTNlA^@C;`O@{KoVfG`6CW3;D> zV@L(#(`){D!iFO34{jQih%SxY=JZIzmg~1k;w)1RX6ukbrdGNYpYbxbx1GI{wd zx%ruA*z!%Ao&W6VO!+-|>BjrspW|J!^Kz3PpPCsKZ2ahXr@Yb~%etc1+L;pi%vsHx zr#1(wb*dC96<>&+G3(Wv18b&mX7Gv~zQni2Yi5I4f|ZUP%lD;cEJ|2@1*t92zQ8N& zy+JFL$%@%}uCx0zxdW-1!U3<(C3~j&IP^YNUwOGuZGpwrGpF|6JGHbXSt^l9YhQ_G zy3vXztE*R>9czmW1FD_gA8b9Z@RqxFg8EzL+7>6RWky4aco|u%As-KvY9G{sSpPQOj8efoDT#_1}TT+x0pO_n;m{X9E zC}hQDVFA$uB|pG zYNe-(V@L(#+p7mT4;hHGf4o!5u(DJzbEz{&U*H`D@wuy%Gx)`h3plP)f2_{I`m(xZ z!sLW~|5ZPndLQ+;UzE38&SZ+j{XOnx7H#v^Brntq-?!UfyR`I$s|IK|T(QBKv1h^tZrYvAl)o|pzB@`_C u@AS9QWIaXagM#iEeazlH4UfK^z97wYpoH1Kaceiw(F~rhelF{r5}E*P*_@vM diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_ic_menu_selectall_mtrl_alpha.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_ic_menu_selectall_mtrl_alpha.png.flat deleted file mode 100644 index 43df7d4211a03e1258c2689054f2c647269726d3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 485 zcmZQ%U|{$O#2~<>nNpNko|u%As-KvY9G{sSpPQOj8eg26lbT$Tn3EHqTT+x0pO{mS zktk%vWnlr)1tmYgc`R@ic7{|xqkd>{YEiL%R(?iaaekh@UV2et3eeW%#N>?BV*Qe$ z#Ju9P{G!}qT_gRp%$!spt!Jojn3iH;VQgVyo@|_AWNB$&X=$8lk&>Kbnv|B7m}Hu$ zUj)<(^MP(gNnF&Fk=oRFpGhBzdv@^iZotI0B3&`d5^l%9R(kdX#0rHbKXMiw} zn&;`_7*cWT?bNfp4GJR7r3M|$8pa#@*~1Gqd+jLD;NX=p*cceb)JjxuZcg8a{(PX6UswdMW%S#^rf>$88E8|_c1w)_9DXiLB5g!Gly j9TP diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_ic_menu_share_mtrl_alpha.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_ic_menu_share_mtrl_alpha.png.flat deleted file mode 100644 index 2bd07ad4b9f418d4ee853b187f6227a8b4717c5b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 651 zcmZQ%U|{$N#2~<>no^Wlo|u%As-KvY9G{sSpPQOj8eg1|Sd{YEiL%R(?iaaekh@UV2et3ed*n#N>?BV*Qe$#Ju9P z{G!}qT_gRp%$!spt!Jojn3iH;VQgVyo@|_AWNB$&X=$8lk&>Kbnv|B7m}Hu$Uj)<( zbG>dxNnF(HB=oRFpGqf^7oY@)R=g!L|#RcT?dV0770cjNw<^cJ}n=?R|fq~J- z)5S5Qg7NKT=AMXjh65kV#n0T!y1gy;cG{Y_0P_{HTN86{^JHyz%uTkq|2J)K#{0X6 z-ikl|UC;OLJNsIhsY*8mb(?Ypm`Q)H^6%>um(t70*mFT8QMl=aN`#Ki zFU^&&w`_P{E2}%{zSd2JNUH{&=0z^|%rAa#*vhpsdB6Oh2Md-38tuKqI_I*&sX{YD zzf0?#Lkf95Tq)@MZ}WNUWQMXxE$$^VpI%nrs&3ur+o>Rx+7f%&sKbvx(bG}J>TmSI z^-F&3mX12+?dyC)t@Uxusgpqt+n%yjvP|;*R`=zG_^nsJUTf9lw3!sRUsp(P7oQr}_uqB48vJ^^auSwezV4rCF zsPz^1YC-)eFWUC+(oyVi7hTV=C%~}7zwYy#(rYo5&Hvlv8Q(lIJfM`(a~&AG44$rj JF6*2UngGU?@wNZ} diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_ic_star_black_16dp.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_ic_star_black_16dp.png.flat deleted file mode 100644 index 0872d5564a2606d3f63e04cba7f103cea8e58648..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 513 zcmZQ%U|@I(#2~;WpHh@qo|u%As-KvY9G{sSUtE${6rYrnn4BGNXqHkSWW{A+0Z|Jj zKfrk`a29rkR4b!?XmM&$v3^#5MqY7#p1xjsQDO?vuH?kzjMQTNlA^@C;~S@fbywJT9Hw8hgxGLTAa8=>?jbd$_uL4?aru(42g<&wJCx9Wj4x z4llL&`~H6NqtCUB@%3p7UxlBWd-2YiMt)MEc3;;d1oY;EA{!02O3SClHg zwk$j`L%j1@&sN0{NvkzdT%p%`OSM|Gb1xL?wg@NRt=_njA>hWRSAAP9O$@rbB{}%t aX8p>{Nx#y5u-pdvjKR~@&t;ucLK6UQI<#v5 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_ic_star_black_36dp.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_ic_star_black_36dp.png.flat deleted file mode 100644 index 077e8ad13618b9cd2b85051521c41951e8df4dc8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 772 zcmZQ%U|@I(#2~;WpHh@qo|u%As-KvY9G{sSUtE${6rYrnn4BGNY?e|WWW{A+0Z|Jj zKfrk`a29rkR4b!?XmM&$v3^#5MqY7#p1xjsQDO?vuH?kzjMQTNlA^@C;GenIC)%Ae z)y?ShZYrE4%yL-ts31qz!>*|uET;<{i|#23>`~Ud#_L{lH$aE`{NMK*t6L7QYU`LE z#=n}+I_dYu6%2c3&5<9R~5|3>zs#G?!?)4v{UGPv_iYPX|?fq2i0C93vM zGo19r6hG`^{j!Mj=?V9!MZ!Fsg&Llyl9(NX`&#Z)pU8r l&5X_m*Y@7|e!pIxL1^Fe&yQjy`+#xG;OXk;vd$@?2>@-SD)ayV diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_ic_star_black_48dp.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_ic_star_black_48dp.png.flat deleted file mode 100644 index bbabfb2b7de078ba2eafeddb8fb2839becf69f3b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 918 zcmZQ%U|@I(#2~;WpHh@qo|u%As-KvY9G{sSUtE${6rYrnn4BGNVv$lHWW{A+0Z|Jj zKfrk`a29rkR4b!?XmM&$v3^#5MqY7#p1xjsQDO?vuH?kzjMQTNlA^@C;*O~^ys_U{ zy2@kc;asH@%f&qbeN8MH;PrB_(5dmJ43;M-W#`EUgRll zTPM6J^^a2y?`D-d^ZynG-I!X`BcS@iG3{#`%fg$z79s8#w*=ee1SauzBu`$$``o*h zD_u;T)3MD_#oyk8{eR0W59u~ruLC-9ifwTMD@1+^6u()@BCg{zX-c5s>LM+V;2DZ+ z%YL6}c>8(26Z@@`Qd&8>N1f(>IBTcyK0~=b>es}E*UQD4LratyubuTebK*iD%N1uM zkp&&m9t?LCJP)2z+Gln$^Vv&-#U1{=1p?yRK8k)^sQ;uOQ#N1lY24(a%|*Kej?N2g zbJu*Q=yi7~3oB=oK&xKj!e=bP9qq?5-6Cb3J5JYa;+DViL9j4T{_2k-^Eq&lk?jtCUyemT-}H&edJ0d^l81VBchiqiHSbIY+v+tOQpD6gDVVq+fJl g{w&&kG->00{~WX3%db>d15+J?r>mdKI;Vst0OJZl2Vjdo|u%As-KvY9G{sSUtE${6rYiplNO(plbDcKZ&J7Y-r+-U z6uHJcJl2Vjdo|u%As-KvY9G{sSUtE${6rYiplNO(plbD`ac5_MpF1y?6c>=k>*?VV1fY?HJ?Rc3=E9? zo-U3d6^w7s8dpRxGO&MKojcom?b2;~uSUEsTiKhzd2B{>kEQpVGlf#g-MP0<{`P;L z_rK1kE-h`dz&Dme&J$Kn#+zzNZe+bGxxqgx^ac-C$&J`qr4dW`tQ|J<6<KVC^> z*gr+WW}#pE!AP$Xi8m_V?FX|Sl}emZ^=LmBB2yx9AX=(a!X`ZF{gfH=g|sgv-p;(1 z=s$JFWFhZMiKp3HgLX79-j!hp{WNo?#3WyPtp;C-un>KX=G786a9{ diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_ic_star_half_black_48dp.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_ic_star_half_black_48dp.png.flat deleted file mode 100644 index bd21ae16398224d5c1c6ac239312f7c3d88028bf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 693 zcmZQ%U|@I;#2~<>l2Vjdo|u%As-KvY9G{sSUtE${6rYiplNO(plbDYIym|kp4qg(ak7GNv(ln9U5-3bB1blrOui|}^4j5W zmxe@&>+bpuyn?0{z1h(cmlaOjiA!`Wcs1+$ybpHq5B@wlxNQE}Ws%}ZsuNGS%dLE7 z;8D7YwJY#4)7zve4zg3WI=q(9y|7m-gKIIX)kP-Pm06A3480bVc||P{?Ge*h&MI|0 zqmgf`gW$crY^@zeUQMYoWfsSGuznIwn~^Ezx#_4}x@y85}Sb4q9e0HI0o Ab^rhX diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_list_divider_mtrl_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_list_divider_mtrl_alpha.9.png.flat deleted file mode 100644 index 0d4a815687074f146d41a9dce05084f5aca3133a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 429 zcmZQ%U|{$N#2~<>l2Vjdo|u%As-KvY9G{a}ToRv>S(cfSS`?pKQj`;)m{X9EC}hQD zVFA$qB|pGmdKI;Vst0G)MQ_5c6? diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_list_focused_holo.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_list_focused_holo.9.png.flat deleted file mode 100644 index c921247aea99cee8ffc4318015cb6bc5c9bb98a6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 494 zcmZQ%U|@I(#2~;Wmr|5io|u%As-KvY9G{a}ToRv_pIlm;ni8LppOY_S#bsduQ3@qL zz4<`acWVqepY@)UU7b&zFvA!VhYfz1|%O$WD@{V5_tvwIY1f% z%mj)Y3)rw5NQLATgd{UCF>xvYIT}EW4h$dy%s>icG?<=gy!9zE28uHx^Fi$AmVMno zadS@>#}J9j$tL%Hm8dZ@9ysE_qTnUSEmg10%zU_>jg8F>i1TCA{<<&TsFmchcw^La d-{|{{42s{`j?ZvPGXxsJ;OXk;vd$@?2>{fWc)kDt diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_list_longpressed_holo.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_list_longpressed_holo.9.png.flat deleted file mode 100644 index a9eab750a0cbc05bc0dcda99ae4177f401bcdeda..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 470 zcmZQ%U|@I)#2~<>lv0#fo|u%As-KvY9G{a}ToRv?pO;=xlv-Szni8LppOY_S#bsdu zQ4S?Pz-1NT-G@yGywpSxpAie diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_list_pressed_holo_dark.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_list_pressed_holo_dark.9.png.flat deleted file mode 100644 index c762c72ee860f86443b490ec073590bceed11168..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 470 zcmZQ%U|@I;#2~<>oKlono|u%As-KvY9G{a}ToPYUlv-Szni8LppOYV-l30{2WW{A+ z0Z|VnKfrk`a29rkR5zo3XmM&$v3^#5MqY7#p1xjsQDO?vzU0K@jMQTNlA^@C;JJesaKGf4s_!Ms5?6Y{M>oDq_}`wUQZ8~ARx^N!WX$;^16q(E8wgO0nl2Vjdo|u%As-KvY9G{a}ToPYUlv-Szni8LppOX(1NzW(|vf{F^ zfM|e{AK*L|I14*Ns)tcOv^ce>SU)R2Bd<6=PhT&+C@}?SVRB+}MryHsNl{{6aaw*+ zZn3VBep+TuDv;JQ)Hh5^v9K__M7m&;A>ERLtq&Y#D1LPsE8RupLDT%xS z{~REV0gQnnPue_h0jZF@f{<~^nPZzx4v7-24u3QtDnm{r-UW|#TszM diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_list_selector_disabled_holo_dark.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_list_selector_disabled_holo_dark.9.png.flat deleted file mode 100644 index 92a8da541a261769fa3fe27b4910276ff1e2bfe3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 510 zcmZQ%U|?Wo1QI~NrJGWeSe}@ald7MXlpLRvSzHodoSKuGT#{cDpORS&l1Yir$j`}- zPf0Aw7P8{9uz=`FVlL8fk*2~ob$v(zidO9#643Dm`%0eF0ZGDOAwG21!8*+ zkl&VSdiw$?iM#^;93Tw_&`<=k8-S#%rlmcQ3dt)7NoHVT;#2@~G=LZ#7(fKLffNrA z%K@=`1CRh=AYg0&5+Do&C~Tu?TOI<%)ID7sLp+YZJ!Qzqpuoetq3ILn{l?Z$>g9fF hbN8-Xxe5$kxz`#hG5-3U9K04}j;E`i%Q~loCIAZcb5;NV diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_list_selector_disabled_holo_light.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_list_selector_disabled_holo_light.9.png.flat deleted file mode 100644 index bd736d3c91f7764ac38b5c5d1447e89f261efd82..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 511 zcmZQ%U|?Wn1QI~NrI%8aSe}@ald7MXlpLRvSzHodoSKuGT#{cDpORS&l1Yir$j`|K z%B5$N2w8DiSU|Kw$q#TI3!H_WAvKLrKeRZts8~NMKO?U=KTlsTy(lpSXmxU8az<*g zeo0YcUU6D}QEsuWk$zfcPAZVrGt@UsOR=ypwlFbIHcm0Jv^21^G)}chNlr3NN=r*j zGELMk0_uf%LpLL(AXB%@ggEc$S?U$!r87K*I=C~y&z+Y`iVMi)_4IHF0@9*DY|jDm z+EPt#UmzusSKyxmq`?3hieR=pkX*oZ;w+E~$tws+W?*9CQ~+``fEXPZKm@pf6b}%~ z0kJ$tKL`T>BQEx@`4@ixnNpNko|u%As-KvY9G{z-R~ny@Sd@~TS{YxEn3tLppIcG{BuaBi zgsiwMEFij|vUX+*uv^6;~IU}`LzoaNJ zuQ)BgD7RSGNIxwzClyHR8R{FRrC3-PTbP(98>bjqS{hhd8mC&MBqy0BrKKe%nI`HN z0rkRspqr6Wkf~c{LeM9AmU;zw=|Go0VuCogGr-TCmrIHZ$m8|&a0vp^2|%pE0rJzXltf;Ee-00j0mDEhgJV;a!+(%ul-xBSC6HI(lLV6o(IBw(?2!~86_QsFlFY!w z#Hj$}XaF$~peQwfi17odKp+Ouia^YWjQ;}xj1OaX%K0!eFfeg?x;TbJ9DX~)u8*C5%NAWK?~_RDx$HwJ+ge(cB_@K>5UkMDhP0 z&j%Q{RNr|l_rLUn{hv>E6aV`y^SS?|V2w@f>FxE?@1|>Ba&wzr*NSm?b_?e4=5Up=jU7CHROcM|S& zQJXZO>EhA=iEH(f-(5}r{CI~_UbdX4i%h47PG8J_24BitWT@xVnRa^W?(t=}3QPQ?Grd7=BkH!dg9@O=~c)ywhE^g`<~x<>id#amgo6y zug}UX!`jV4zFFe2W?}2uw^o=2ng>^yygh`PNOP)O6$o8wbCxcHxt7Xso18y@r);wdl)^%Yn p&(4KDL6-F!UpTBeyvOT#DEEf!PC{xWt~$(69Az8aA*Jk diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_popup_background_mtrl_mult.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_popup_background_mtrl_mult.9.png.flat deleted file mode 100644 index 895c94177ffc2d122897bd42e33644c6d62363b6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1368 zcmZQ%U|{$T#2~<>o>G)po|u%As-KvY9AA)MP+Ab5l$e~IUX)*&mlB^_Qj`;)TbffM zWW{A+0nq~`Kfrk`a29rkR6nDBXmM&$v3^#5MqY7#p1xjsQDO?v&g8`8jMQTNlA^@C z;J{Xr1KsHbb#-TepF1y?6cl82-bH@9 z3y_k?EAY?Z0Wy%WV^fsFf1sFbKyWya638p?NkWzfvHwd~-vLq~c?BWK3`|U%3P6qq z5CZ{KadIpVi2te#Ei)JKM)}ELF~@B`BNDfmHj+HikW!rIsd49*e_SEs`KRjqo)orzvB1nH|=Q9lT4{p`keJ`<@HPzCdmp% zp_-c$Ers@o{nwo3c)h9N1Y1q=`j~~qG8MiHn)h0A-aXzRQLxalYrns%!UBy(HrD_q zrxUR!Qor?o*q*+$K&DZ&&cofO{g?*FEbR>k@&%)$qN0BHs60tvnsuO>Nv_}A_?L^~ zM9~&8_wzHO<34rm?%&T>pQ(EO!^^|c?<$UZ=UHBUoUzz4{C%9x-iUpNWB*y~UAH`@ zw|?F|BjcGu-9}t1v^V{8T6p;4chQ6G?@VhS#)&aj^0=_d^v#RQI@F)QVj??#yU-+& zjKY#Hb5>_ponxynoX=W3t@X&I)a-+I!rd2akGb+laMq00S!=FG&N*@Mp+%_sgOn3u zQ#eb5w+I9__N}vGl9fHTDmZNNtVONS%sbtf)@iJM!)emWRw|US`P#A$#+w=sv}E?) z*?Mf*%_X;|y5yc0{eF}EV^r_!*;A8~H6?GEYSR^IrOuu^og*xu5sc>UON}JaE|7xY+Sf$CJp6Naac! zZT)?I|Ni8pZM`kecJC||%X|64vhZ1(bl%U_=(vKzGlloQO`7G*HD{K1 zPY+K_#S{5`pIX=3d^*wEcu`D;v2<5LmtM-Z^rQu@Iu&Wh)D;YjjSM7Sth}J$+I0HV zp-1t?!hHv=f>P6re#?6+WEm7aJapi|nIm(y3C(`H<<=#We+80rnCEp)JZDzsUgBB! z`te5}pJj(yCw`0)*|DfW_mb-b?mz2hxLGzZM4HVxGuK_O=b4M5eukd+)}{x>((Gwg zGIQUq?9blBoMrv;q)fUA>$MQCbqqJZHu~SMuzI#7BcCsO^YvLzf`dBq<9d}DLnp@m z7yfIoU-^LplSn!9=G3L7=CX6`iWOZaF>%kGwsRAAUxT^x>uaq^a-XKzOmA5Cx=T~# v{dw)eLhs1;s`J&Xv}^7PSF~MUbDu%r`1C0&{5I|eWlTwseo|u%As-KvY9ABJVRGO5OS`?q0pI1_ppA(;-mKL8|Qj`;) zm{X9EC}hQDVFA$yB|pG($c`v(m2&3B{|77DJ?BA z$uv>F2&fn43Ehm8f=t~q6Jk80SCE$ubm~c{b2|h4+Eakt!T9#lLct>n0&WkdhD_>Q-gv^qU0lRjxT8d%^}wFlvPV*jI{w?t zuVd!fz3or#LzUo{C0a8-o8QpbBf2fUsKB_mxW-@7Q(2IcMXA%w=vb!6ouhgDZ(?>B z&3k>zBQEmrT(@JYvlSk03M?#?a*Z*y((_r|@H$8(R^2w{7t=%Ir5ibz#ll=;t?q8B ZVffqUzQ@z(v=Pv444$rjF6*2UngC7)l>Yz# diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_scrubber_control_to_pressed_mtrl_000.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_scrubber_control_to_pressed_mtrl_000.png.flat deleted file mode 100644 index edd1e3f116ee20555fac069d473716098a284d94..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 482 zcmZQ%U|`^61QI~NWtdWwSe}@ald7MXlpJ52TvVErlv)&@oS#=xl%Eq{k{@4Clv-Sz zni8K|Qj`;KU|=9*#bsdu(G4X(zoDq_}`wUQZ8~ARsLS z!WsDSupKI3t{m_u;`ZW$WX-8XGp$Z**8>&?_RusC39+ zVWWWJ=hr#B_6?fSFw)4!FAmY$wg aB7fk)zgfQFud0F0V(@hJb6Mw<&;$T5<(lOH diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_scrubber_control_to_pressed_mtrl_005.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_scrubber_control_to_pressed_mtrl_005.png.flat deleted file mode 100644 index 7452621dc163bb160ff9a74634fc6c461ea56008..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 558 zcmZQ%U|`^61QI~NWtdWwSe}@ald7MXlpJ52TvVErlv)&@oS#=xl%Eq{k{@4Clv-Sz zni8K|Qj`;KU|=d_#bsdu(G4X(zoDq_}_{;Pv!y2?Em6 zAj|>soBCawdqC>Cr;B4q1>@2y2XhZO2(&)*|CFkFUxVfH#L z)c^Zb1ETz6)@?QV@3&7i;%4U8MY~sAzZJky4aco|u%As-KvY9ABJVRGO5OS`=SUl$o1YR2iRJQj`;)m{X9E zC}hQDVFA$uB|pG($c`v(m2&3B{|77DJ?BA$uv>F z2&fn40o{z0f=t~q6G9%*v(zidOJ_I>b!umTpF1y?6c>=o>*?VV1f=zopr0M-U*p8x;= diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_scrubber_track_mtrl_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_scrubber_track_mtrl_alpha.9.png.flat deleted file mode 100644 index c6b66212e05db167da139c42d35c9d36ef984890..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 462 zcmZQ%U|{$P#2~<>mQs{ho|u%As-KvY9ABJVRGO5OS`=SWl$e|ypIcIt6Q7tkGnK`LITF+45FfGNx!q~#ZJlQzK$kNil($YB9A|*M=G$}1DG08MhzX+%o z=6v0Zl!8p%G86pX(6iJl$V+E90(EF-fS)@rmlPL}%j@ak5(K3AfmnzG zBCo(d2S_t;fCwOf(G5U$!8DFXK*}YrAS9WAiG^7K$k6~|bbu6eAPYc%8HmA_fq4uJ zj3D|#WpNXb68Cg*4AD5BoFFl?;bT3sU8Y)FU;`@y!{r>t=1T{@CV-TBy85}Sb4q9e E0I@e>761SM diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_spinner_mtrl_am_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_spinner_mtrl_am_alpha.9.png.flat deleted file mode 100644 index e961f40019440b6ee9c54efa78313166466ff3b5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 603 zcmZQ%U|@I)#2~<>lv0#fo|u%As-KvY9A8|JnU|MZ6rWpCloOwr8=sg{kdY{4#bsdu zQ4S?PzMo7|Z|u?3zkjv*GO-(KFB%j781^6;kdks~Dz%u^gEt1V!STEN1!fVreG z@@H{@kiv$3oYCQY4 zBWAANjoI4!E$$|%iSb=uA(&t;ucLK6V;s-_YE diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_switch_track_mtrl_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_switch_track_mtrl_alpha.9.png.flat deleted file mode 100644 index 7824331f7f895be4649fcbfd54187550a3dcaf34..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 746 zcmZQ%U|{$N#2~<>l2Vjdo|u%As-KvY9A8|XS(2O)Us9BqoE@KAQj`;)m{X9EC}hQD zVFA$qB|pG=k>*?VV1f-RLSds(eAwk1igNr9Qe&JmkpR9%ziAARDM z_hzz!Jfmi2tlB}gI4%c=18L!#rueYldie5x>ND^Edo~CuW|yffnKE_KhGgG}dAl8- z$uuqc;cDDQ?s{E+_N+C*VauHS5H357y7nl d&gLKfui0bH|5glN8)5|tH&0hTmvv4FO#mvN-gy83 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_tab_indicator_mtrl_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_tab_indicator_mtrl_alpha.9.png.flat deleted file mode 100644 index 2d81dd23a52ecb7ee454600974de4fbec09ce65c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 456 zcmZQ%U|{$R#2~<>no^Wlo|u%As-KvY9AA={6rY)wl9`-Xl3x^`TT+x0pO{mSktk%v zWnlr)0VO}cc`R@ic7{|hqkd>{YEiL%R(?iaaekh@UV2et3ed*n#N>?BV*Qe$#Ju9P z{G!}qT_gRp%$!spt!Jojn3iH;VQgVyo@|_AWNB$&X=$8lk&>Kbnv|B7m}Hu$Uj)<( zbG>dxNnF(HB=vnF&Xi{WpS}4(^ z@Z#I5f9uNMp4;<(?(`k{3!3=e%sjE3T~$~kfuVR&#|L|dy#)?}?TQKSA4RL0BrJ55 zdB)7G%hdX;*04+Bq3Z&ld(#(n2*$B=`TTYg31o2nakEjWM@gdzj2>N!Rdrn>FLtr= z!L8u^FPpB}oe=t7buRFp-&;+kJzGL2?E7ly{`d^ zh{fuFj=gkz)NN*_O@Dm<@SjZBTM+PiL4)VL8NB~_KIC|==V$|Zl)=;0&t;ucLK6T< CbGeZK diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_text_select_handle_left_mtrl_light.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_text_select_handle_left_mtrl_light.png.flat deleted file mode 100644 index bd43d74e4ccd4ffa69cb3be485b63904c1dd62e1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 560 zcmZQ%U|?Wn1QI~NrJquiSe}@ald7MXlpJ4@T2T^ToSKuGToRv=n3s~18lRJzRuZ3E zQj`;)lbN1TB4ov7VFA$#B|pG{m|mnqGJ85{EWQf{5*ZV^rA$dCHl#U z$r-7|`Xxn)dBth@MY+YgM*3-)IjKNe&rshmEycpZ*uum-**L|>($c`v(m2&3B{|77 zDJ?BA$uv>F2&fn458aHEf=t~q6C(YiSCE&^AO;PM&Hz7mUM?vvp!0b>JzRo-v=b03 zaIg$BMUXThilP1r8esh_X0ywm5LGI2$rM8?-nWh&T(d z+>N_>|LeNDGr#ZuEcBf<}m&xY5P0>D@v{r=gX26F*qr`nNj1?XAZISIetKoGI+ZBxvXXdLSQuNFm?s;j7+G2xSXvsVTBIZ=nI@&B zB_^3B>K6g^!aSmzky4PUTV_J6hx7{a(t*zHgN8_FfS)@rmlPLJh}YA@B?w5%0kH}P z8<3oLu`82-ficw6#WAFUF-bu@he0Hs-+L2FqC}hj_o*`3*4H*&Prkh^H~!KMvvmnM z(f8#qTAm0r+^lpj*Y>E(_W;XPKa@T(L^Qp7JGIM+o8yU=iS${;7juiwIvHP-|Lhiu+n-;n#imp3%x$1?9H%gUv*G;%c6@f!kAC(a^0A9k;7J_-Cfhw`9iPUgx74X zwQaX9Ol{P7&2{sh^Ztdk!U5OhByF-B|EeuoW4CGE;fG8CVJANCjuqq3pXj+^xx~b@ln69mKRGcu zBeht+q$n}3I4!>@w^-LmKP@vS6-etD>Kmq|SXdZan3yLUrx;mU8dzEyr&^>WCz&Rt zr6nerCh8Xf^}>9jn~_qGsas}3w2$-(^3oZ4pdr#3;OEZECB+5w0I#QqOAwHj17Z~p zHXu3gVpk>u17onKi(^Oy({?=is?YXzN?On1hcg=#_=y8cA%PV+-Gq|YV_ERTuIP}}u*LCCZW zldD`_cNdxjW(dhYeRT5NqL0@C_2xa$km}8obyyiKlC3Xw&{6i_;v84!3%v|eb~z?q z3lQEV)DaYZ;)t{T!dgy^t;c(=zhJ+jFSzvAjIT0$;SE8G=g*f#D(*Sr!&a^3qN&fe zJ-Z=V(q;{#T*`-OY!#CanoB*%W{b~i(3jY=iZL#=U^&~4?t`XM53Jb!UuF2e`24dT zr;=$iS=cpOn&bbARf{fYKH;JF@cxC3E?-3cK3VHjb73vZ7ctgJhYt&LhCU96R&21M>>bofow( c-LheL`p-Nlbya0NFq9cQUHx3vIVCg!0M||T$^ZZW diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_text_select_handle_right_mtrl_dark.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_text_select_handle_right_mtrl_dark.png.flat deleted file mode 100644 index c08c2fe238d4e970f8d4079a1e9d5c42148ec09b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 545 zcmZQ%U|?Wn1QI~NrJquiSe}@ald7MXlpJ4@T2T^ToSKuGToRv=n3s~18ef!|o>3B? zTT+x0pORRVEo8-IVFA$#B|pG{m|mnqGJ85{EWQf{5*ZV^rA$dCHl#U z$r-7|`Xxn)dBth@MY+YgM*3-)IjKNe&rshmEycpZ*uum-**L|>($c`v(m2&3B{|77 zDJ?BA$uv>F2&fn458aHEf=t~q6C(YiSCE&^zzz+K&Hz7mUM?vvp!0b>JzRo-v=b03 za3B? zTT+x0p95kFS#eodKr}SU)R2Bd<6=PhT&+C=qCjesW@R zMryHsNl{{6aaw*+Zn3VBep+TuDv;JQ)Hh5^v9K_VBW z4mKc}Yf>u%q|SP}IEGX(CM^(Axl+b_YooAKhob`5VQogusR5iG4qSW_8d|&@PI)*S zdZ%Km_Wa%#-%Hn@n17i1```0fVOuH=*D!Qk@0_-^AeUox_C$d&#g{!6_2mCd{lVJKEbM{ po29`g>e{XDy9pOB-Bfol=xoo|u%As-KvY9AA=JQIeLKnv)Wrm|T)smRORS5}#XAloOwr zQ;?A;WW{A+0nrB~Kfrk`a29rk)MQ5e(BjmhV*RZAjJ)FfJbk_NqQn%Sy~&Bm8L7qk zB}IvO#cBCPxy8Ch`e~UtsX$uKP~R{u#lpha!o)n;IK{})(!kQvIMpI0Imt9BEiEz0 zG*Q0@s2Ao3-HeoiOx-dQBK)FfsaKGf4s`1-sCzpD{M>oDq_}`wUQZ8~ARsLa!~z^3 zpT(W+c?qN>@(TQOfHVdG1?LS}i4-7Zkyj9s%)rFNqyXe-05KY1Ge8J{EC2zJr69n_ z^W)7|AT8nNpNko|u%As-KvY9AA=JQIeLKnv)WrlA4xSno|;=TT+x0pO{mS zktk%vWnlr)1tmYgc`R@ic81hMM*Yy@)S_bjto)3;;`}^)z4W5Q6rioiiOCtM#rh>h ziFw6o`9-kGnK`LITF+45FfGNx!q~#ZJlQzK$kNil($YB9A|*M=G$}1DG08Mh zzX+%o<^$b~l!8p%G82M6(X-Sm$V&&h^Z?YgodJICyj)UTKrXMRhf5HU76xJg4v@d% z&i1?nQWALu{y9Jz4j7@V|3KP#M+i5Na>y$PNoHVTVo?BcG=LZluo)l(grH22r7!?8 zl9BbI*H0iV?&;zfqH#VsL4s9T#K7o}x|^hMs4go*86P9F$+;{2AU&S0elF{r5}E)z Cz+sI5 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_textfield_search_activated_mtrl_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_abc_textfield_search_activated_mtrl_alpha.9.png.flat deleted file mode 100644 index 0d6150c7fc01f7055567522433b6c281cf545d97..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 468 zcmZQ%U|`^71QI~NWt38sSe}@ald7MXlpJ4@T2YdgnVORlU!0m)l$;Ttm|T)smRORS z5}#XAloOwrQ;?A;WW{A+0nrX6Kfrk`a29rk)GS8*(BjmhV*RZAjJ)FfJbk_NqQn%S z^~s6J8L7qkB}IvO#cBCPxy8Ch`e~UtsX$uKP~R{u#lpha!o)n;IK{})(!kQvIMpI0 zImt9BEiEz0G*Q0@s2AoH-HeoiOx-dQ;=QD2saKGf&aesU=*|E?cU~?jE+CiJ)59eQ zNDBcmD+kDXk3>rT11X8T0{hiFw6o`9-kGnK`LITF+45FfGNx!q~#ZJlQzK$kNil($YB9A|*M= zG$}1DG08MhzX+%o<`LbDl!8p%G81Awq-UvDkeAM|3F_p|06%wLE-5Y`m)Fz7B?w3h z0Wm8F$a9ZGO8x^WiM#^;93YJW>VYDrF6-iflto@aNHPNx6O#gvqXEQdfYAUU0I~oC zz~NW_|NsB5^1;`Ed_hka#}JO|$q5oQ4Ik@m6I~h1#2Fi89X9HLRC~JmxvXoKlono|u%As-Kr%l9`s7oLG{XpBJB$9-ot69-o(Al$)3%WW{A+ z0Z|VnKfrk`a29rkR5zo3XmM&$v3^#5MqY7#p1xjsQDO?vzU0K@jMQTNlA^@C;xwQ= z#kxlNX_+~xKw8gGKQ%Qq(IUmvEX~5qB-Jp*$jmI&BE`VW$T%g{A}!U(P`?PM7v^@| zjFf^*-7*tAe$cbjE67U+y73Csot*)G?z~)5TtF_br-w@rkmdnl4v>7Y9J4i$lE^FY z&jIn#!GEB@4Oxj4AQh5V5R%Nm#Kfrpl2Vjdo|u%As-Kr%l9`s7oLG{XpBJB$9-ot69$!$DT3no(B4ov7 zVFA$qB|pGdejnKX+a(DJ~$F*VDr#2uSmQFb5NmyeWQq1CWx) zEAY<&(iq@BP~?WJL<*1!$tws+W?*9CQ~+``fEXPZKm^!;6ekeFXht9#jQ`69reec- zmh)wSYE(R3977~7CtvB&O#p_;0p7a*|IU7TdODoVsiCux!(dfMR~Li08Qa^6qB+-q P>KQy;{an^LB{Ts5(oJ)& diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_notification_bg_normal.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_notification_bg_normal.9.png.flat deleted file mode 100644 index dc5b3ad5be521ec1829fff08c7c3c542ac7bc7ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 466 zcmZQ%U|@I-#2~;WpHh@qo|u%As-Kr%l9`s7oLG{XpBJB$9-o(Al$)3%WW{A+0Z|Jj zKfrk`a29rkR6C=7XmM&$v3^#5MqY7#p1xjsQDO?vuH?kzjMQTNlA^@C;xwQ=#kxlN zX_+~xKw8gGKQ%Qq(IUmvEX~5qB-Jp*$jmI&BE`VW$T%g{A}!U(P`?PM7v^r=jFf^* z-7*s#?$@)_E67U+y6+0qjhz90?z~)5TtF_br-w@rkmdnl4v>7Y9J4i$lE^FY&jIn# z!GEB@4Oxj4AQh5V5R%Nm#Kfrp3GH+pb`d8S3j3^P6o>G)po|u%As-Kr%l9`s7oLG{XpBJB$9-o(Al$)3nUr>}V~E7%WD}iNNx*SCyLWmo%G ScK0n%J%gvKpUXO@geCxit9jo5 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_notify_panel_notification_icon_bg.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-hdpi-v4_notify_panel_notification_icon_bg.png.flat deleted file mode 100644 index d73926bc0daa40ab1c0d1d108d9d99a551768b97..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 381 zcmZQ%U|{$S#2~<>l~R;go|u%As-Kr%l9^T+UyzuWniCJ^WF{w;Waj6^XC?!Qq;w%G zE(;5YHYoW4&SQbIurs74FzSaErxq3KXXR()73b&a>!lYZrU0!?PE5{7E!Hn7O3W)x z%P-0;)-}>k%gjjy(t3vasi~=n7AdA?X%=QCsfH;=W@f1tDF$Xn#wn>5X{knr`b9v! zFfZt4q!eW8mYERtie5opI?$onP{(!#___0PNpS(Wyq+E|K|q=hggKaio>G)po|u%As-KvY9G{sSpPQOj8lRkBP#K?FQj`;)m>Zv%Q;?A; zWW{A+0nq~`Kfrl{Kvn~shsltd!l)lwoLW?@pOv4HSDc@xua{nwm;$sjIWajSwOGHT zC^4@%Ex#zYSl38DEi)$-Nb4Eu8>XdLSQuNFm?s;j7+G2xSXvsVTBIZ=nI@&BB_^3B z>K6g^!rZT$lTuWYqnnXZkf~c{XimU8dIfpu$DuCm4DfU3<&xq8a(O*HT!MhK3J7zs z07-Ao0AV22=jq}YQo;E4>PB8CL!Oqzbp9JGW*ln{u{hpqf3)@h%gi=0zQ~o9eq1X* z)c*~)@z&pFvttAIw+)7emuK1*Tv3es&$e^Ji<64Ei%SCzN`^lTlF_>H#oO=&%iePf z+Ft0zbvg8%*vkLsd4LnA>XVJ~4#`YYE*v@k|L6iPpn|5^e;ni_L_%DJ=e?2baSpC# Y?qUfp|CwU)ALud$Pgg&ebxsLQ0AT@@c>n+a diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-ldrtl-hdpi-v17_abc_ic_menu_cut_mtrl_alpha.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-ldrtl-hdpi-v17_abc_ic_menu_cut_mtrl_alpha.png.flat deleted file mode 100644 index b93cfbb34b715ef026047af85145df1fd31bfed3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 664 zcmZQ%U|{$H#2~<>oKlono|u%As-KvY9G{sSpPQOj8lPNR5}#XAloOwrQ;?A;WW{A+ z0Z|VnKfrl{Kvn~shsltdz^ETuoLW?@pOv4HSDc@xua{nwm;$sfIWajSwOGHTC^4@% zEx#zYSl38DEi)$-Nb4Eu8>XdLSQuNFm?s;j7+G2xSXvsVTBIZ=nI@&BB_^3B>K6g^ z!rZQ#lTuWYqnnXZkf~c{XpYA#dIfpu6Br@R>(0`ho0JzRo-v||0H{tJ(w|n%743(sH0QN@68A+tc@%Iv1L3Fl!de z+7EjemnCWV+A_|LI@XhQgJCL%S5Pkd(Wc9cUICBYjh+XqUSivF^o;Q2YkSRB%1l4; zFyzbyy`U|R+l?aw65j2eoiHgt+NMOlq{}I{uwzI?)sA>?Hd{OUdXZV% zrSIQ-*^kch?t41zM6dIT%|Bg#OXRGOG+L4)yXDjE6DBKM*Ou?gNS5Y2-+rK~ZguVa zh9I94k{5br{g3%)v8svpZ2sd6W|L3sPcpk7MHDW(aH4NTs(6>aV5srE>in>~Gyf;s bdp&WFU?|E=Jb2j+7}5-$u6{1-oD!Mlv0#fo|u%As-KvY9A8|JnU|MZ6rWpCloOwr8=sg{kdY{4#bsdu zQ4S?Pzlx}BrlnX|7+aW_CmW|2Sy~!cS{kQXq$DSqCZ(k%CYdJc7XkIc zoUWUbQdE+on~_qGsas}fj@u`CmU;zw>5+^OcXkH&x$|;KaRGU}o*phiKw27zRXA9H zEak-ar*6~jl72(cwFzxE?IVtEwaII zlZr^BqPBq(+X=QnuA)bQE($G99I{7k!|h(*w!1yyWD0{p!$mjWeUq;o+o5K^dhvB} z>8qEOzb3ghx30Ca)%MNGPW++3WYEN}e?Dw-)kg#OYqNS1GMB4Oz7<&~%D97ByE?Rb z_0QDPA>SWdJb3W&o7~vra% KKbLh*2~7aeMWrwR diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-ldrtl-mdpi-v17_abc_ic_menu_copy_mtrl_am_alpha.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-ldrtl-mdpi-v17_abc_ic_menu_copy_mtrl_am_alpha.png.flat deleted file mode 100644 index 14bbe9e7fbd9726c8743b174deee60bad2c526ba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 399 zcmZQ%U|{$I#2~<>o>G)po|u%As-KvY9G{sSpPQOj8lRkBP#K?FQj`;)m>Zv%Q;?A; zWW{A+0nq~`7r=RfKvn~shsltd!l)lwoLW?@pOv4HSDc@xua{nwm;$sjIWajSwOGHT zC^4@%Ex#zYSl38DEi)$-Nb4Eu8>XdLSQuNFm?s;j7+G2xSXvsVTBIZ=nI@&BB_^3B z>K6g^!rZT$lTuWYqnn#jkf~c{XimU8dIfpu^-z~~2Kc%2a!GLkxxAhpE$=IP=XQo)$KK;qAF*0_KCDhn8cxlft}FM7ED|NrnGcluU7RJGf_IQzhp zMJIbCco$18NSKga(WqXz|Io67;>)K^|NmD~gOR~pH7L($VsaDELoKlono|u%As-KvY9G{sSpPQOj8lPNR5}#XAloOwrQ;?A;WW{A+ z0Z|Vn7r=RfKvn~shsltdz^ETuoLW?@pOv4HSDc@xua{nwm;$sfIWajSwOGHTC^4@% zEx#zYSl38DEi)$-Nb4Eu8>XdLSQuNFm?s;j7+G2xSXvsVTBIZ=nI@&BB_^3B>K6g^ z!rZQ#lTuWYqnn#jkf~c{XpYA#dIfpuf1$4I4DfU3<&xq8a(O*HT!MhK1PF7m07h^LEVNX4zAmmR$hJ4hTYjp_Iv?}G{cro z>DtxDAOAJKzo+s?zU2$wwC3d^Yz`-0=PlYdRZzVoYpR&@nQ%enSw}->B+pZ}3`p+! zsr9I7v)f{4`Ol&*4wudziz%-xg|5Bd#ur=rXW6;s+Hu>iO^(}stvUU` z?&>>1FW0!A*cMW=sU!T~kzJ%Tg>dUx1 c?Vp={$GOsvd)c>}0{z3_>FVdQ&MBb@0EEJ}`2YX_ diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-ldrtl-mdpi-v17_abc_spinner_mtrl_am_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-ldrtl-mdpi-v17_abc_spinner_mtrl_am_alpha.9.png.flat deleted file mode 100644 index 61a16042b4e4ba3e5b8e37dff8bf2398908ee489..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 582 zcmZQ%U|{$H#2~<>lv0#fo|u%As-KvY9A8|JnU|MZ6rWpCloOwr8=sg{kdY{4#bsdu zQ4S>+zlx}BrlnX|7+aW_CmW|2Sy~!cS{kQXq$DSqCZ(k%CYdJc7XkIc zoUWUbQdE+oo10RQsas}fj@u`CmU;zw>2{0|cXkH&x$|;KaRGU}o*phiKw1chB{*1s zWNb|8E)XZLz(0or$N;Hg2V!m@27&)Td@=9Fd>|E&R}hlSz{J9)0OV)@F%SqqCMRIv+ll>Ofvi?f7sn8d^G`1rave(GX?ytRzf$b(il%#k zA55wm=Pf+`Le$E_+flAPZ0$DJU0FEua4F5V20!zp>wm8V3lEpq)dC3IE!$v2Jt i+WYnd#+m-Qzk~Vu*6@XQelCy$InC46&t;ucLK6TS-JH_^ diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-ldrtl-xhdpi-v17_abc_ic_menu_copy_mtrl_am_alpha.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-ldrtl-xhdpi-v17_abc_ic_menu_copy_mtrl_am_alpha.png.flat deleted file mode 100644 index e6dcb791c34d456eea30558130fe277308732e5d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 452 zcmZQ%U|{$Q#2~<>o>G)po|u%As-KvY9G{sSpPQOj8lRkBP#K?FQj`;)m>Zv%Q;?A; zWW{A+0nq~`9T;I;K_H_6#=$~MO=Z*%Elw>e*3Zh%$Scmz)7MKcN=yOTnVguMky@-@ zQk0lioR(jdTdZrOpO%@E3Z(T6^$pWfEG&#IOw5ywQ;aMv4J<8(>9w1fe>EaktaqI2%jhqJzcw8>(2=Ce3D&BpttUi+|>nXFN&^!GP4nd0_ z|4-b`=zNlK&pyY7)0-M6?lWf8X=rM5y;IBM;F$j2j!oi*4x7)0UWpG!bV3^#7@1f& z1U{%85LS4w`2fr9E=JKDUA8$pHp%6yzk0S{+5Uk4Z`d}zaGANbFEj<{2nJ7AKbLh* G2~7Yll!>PR diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-ldrtl-xhdpi-v17_abc_ic_menu_cut_mtrl_alpha.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-ldrtl-xhdpi-v17_abc_ic_menu_cut_mtrl_alpha.png.flat deleted file mode 100644 index 95496994e4fb6ee72f535570c07ccd75e90b1139..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 760 zcmZQ%U|{$P#2~<>oKlono|u%As-KvY9G{sSpPQOj8lPNR5}#XAloOwrQ;?A;WW{A+ z0Z|Vn9T;I;K_H_6#=$~MO=Q#$Elw>e*3Zh%$Scmz)7MKcN=yOTmziXZ_Tdyi));tTXLKO)2B_I@ApYcpg!uO;cJdb zzB6VPo^YP_(BX|fuQ*qiirDtong-AJOf9h65%YSU-@LE?yQk=?&-0pp!%*d---jJ; zevKR&H-i5QPgpp0;*DkJ8u!1HF6CX(b>iprZ&Crgh7%4~rugmtGKJl8#X_bKryP}i z>YLXolt~4!7W!Z4o#n@AmFXaQWafgtS=%_PE-^?yWOq^SW4XKPG;5VVvaV#^ARu{tiuCRi4iO*Ov!oJ~SQ3tlKY5Yb-e~YxT*tCV zul9VKHf*5yIb7#{_pJ_J#itGvHKYfswRFu_)}-Ut-(UiX2bGT z;+FHzY&}w*`YlMn`v2npa~G_f)wkB&e&4n&SGFWx5wpI>V8Z%fZC}wXW7D}O1b3c( z|10a~-CwV(=XWclZOK^qYu=;(42h}VmF}xw;oetOJ+U{UaAVcP>$TVJSOTf@443ya ZdcB@LQL(q~9xxsmJYD@<);T3K0RZVJDV+cS diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-ldrtl-xhdpi-v17_abc_spinner_mtrl_am_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-ldrtl-xhdpi-v17_abc_spinner_mtrl_am_alpha.9.png.flat deleted file mode 100644 index b1bcf6b92ffbc622d6330a3b5037b8078aebbb60..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 683 zcmZQ%U|{$P#2~<>lv0#fo|u%As-KvY9A8|JnU|MZ6rWpCloOwr8=sg{kdY{4#bsdu zQ4S>?7-3vNAfo}s!9q(-V$=^UPAw|d&&topE6&f;*Gn%-OaWS#oS2-ETC87El$ckX zmS2=xtZSs7mYI_Zr1cE-4bxIAEQ~Eo%#)2%j4Uk;EG>;wEmD$`Oq0^m5|d05^^1Ud zVNTc0NhvDH(XGfxDah0V>C^V~EG`w^R1=9x@Pc+kd#DtE;K4 zkJX6D*nqkCfSQL6gRub-Woa+*gjt3GGG$!0H{a0ys|Kv2InLf|7*W?O# z-#L?SbjajVXl&%d##0`CUsR?!oU{~D-LNYBc>isN#&DK|%aOi5hc+^6<>?l(Zrjna z?80P;P3)_d=V&FIH+UG;n{|fq1HTl%jD&iY3a7f^(;o{y9hjJDJDbOE(Ss{fY#G$M z%uOe`#3vnN@en?{GDf1G_6M=@;Z$h7+VtZ-YJQckb&|EtYwqUYZE ju;NtE{%JmHlYdITQ;+3q<#F}g2=cq9tDnm{r-UW|;&H%Z diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-ldrtl-xxhdpi-v17_abc_ic_menu_copy_mtrl_am_alpha.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-ldrtl-xxhdpi-v17_abc_ic_menu_copy_mtrl_am_alpha.png.flat deleted file mode 100644 index a3187600ff4ec7a01223d1e6a7b898274abbd875..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 536 zcmZQ%U|{$M#2~<>o>G)po|u%As-KvY9G{sSpPQOj8lRkBP#K?FQj`;)m>Zv%Q;?A; zWW{A+0nq~`A27nWf~b@l$ZjvGdVFiBeht+ zq$n}3I4!>@w^-LmKP@vS6-etD>Kmq|SXdZan3yLUrx;mU8dzEyr&^>WCz&Rtr6ner zCh8Xf^}^h*o0C#hlA~Kuk&#l6sas}fPQXKY1$pTV3@lJjbO!jj^KwaX0bS4Q>ERLt zq&+~Gg9S+be^Px0NS*d{aSW-r_4bxEU$cRL>&1{ZQm|a;w!m<5RFLAB%49;fdU6Q$}sq9iogyZs>>(L60EJ7Zr#0$#> zpE*<}I52UlOyJk}d%a2Y%H(Aixw@9D+}Okv|0i1G&3EVg@=HFYZx?6^yo{aq{hWjE eLg_8HoBrkL@?&t;ucLK6U$ldq@% diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-ldrtl-xxhdpi-v17_abc_ic_menu_cut_mtrl_alpha.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-ldrtl-xxhdpi-v17_abc_ic_menu_cut_mtrl_alpha.png.flat deleted file mode 100644 index 4305af1957511cd43af56c88e7d93d9044d54c88..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 973 zcmZQ%U|{$L#2~<>oKlono|u%As-KvY9G{sSpPQOj8lPNR5}#XAloOwrQ;?A;WW{A+ z0Z|VnA27nWf~b@l$ZjvFF7$eBeht+q$n}3 zI4!>@w^-LmKP@vS6-etD>Kmq|SXdZan3yLUrx;mU8dzEyr&^>WCz&Rtr6nerCh8Xf z^}^h)o0C#hlA~Kuk&#l6sas}fj>j{41$pTV34bLZuf;sWw`Jw054fV2k) zbFcu(|4*vVFfcH6c)B=-R4~51;hH2|AaFD>%;L@K*vEAOe>isRcH8!Yt$a7*xx|7l zYnOV9;GgQw70u7jF1xpWQrR=!NBpzZI@DHt%xu~fabEOYz>*WP>ozpLyU(8WTqpI{ z@ANL&IbPuRl(B^p2a`{ZA?Hi}O{N!Mz z>3m=0#_^Ii!=B7H4`szHUcYs=(meeAIqO@_2~LwNLZ7K!yY^H|vXYO4MPXm~tun5itYs7F=1nWc|)uE_a~ zPf8}7o9JnD+%t}ea}Lk#>`88$=e)LAB6QEts($MBiRZi*CW}~lxa4$9G&_pX|h~y*+tO)6;YDkuP5^P1o>P-}<%BaGS+-t7AW`vwN=@9-Ch) zJ7sI1;Xf|hm8Cr&-3ztPF9Gu0(#1j-Ci6VGp|eoxzG0Seclt-!#b#^gERg~7E+3TA pE9!QtIWA%E8zB7Uee*qLhO4LI-yi$^0hlxyJYD@<);T3K0RRHYlv)4) diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-ldrtl-xxhdpi-v17_abc_spinner_mtrl_am_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-ldrtl-xxhdpi-v17_abc_spinner_mtrl_am_alpha.9.png.flat deleted file mode 100644 index 1393d57c88b775d92f63d4708430e58ec9a11ef1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 793 zcmZQ%U|{$L#2~<>lv0#fo|u%As-KvY9A8|JnU|MZ6rWpCloOwr8=sg{kdY{4#bsdu zQ4S>^Fv7TkKt=XdLSQuNFm?s;j7+G2xSXvsVTBIZ=nI@&BB_^3B>K6g^ z!kn&~lTuWYqgzptky4PUTV`mE+b?>SdIfpu3=F(X5XW`~___0PNpS&ryq+E|K|tCJ zh&?!1fTVcJx#vJiBCo(dM+(T00b)@gRsdoU_z%R=|1HCSR6t%qNHPNx3!4IvqXEP~ zU;v>YBs2g)Vjv4ZfE9?HfY<}XfdY8Ig7~TD=zArUUYW$Gg>^$*|cFYay zDr@6;6L}6BfY4+6$9(nAqBh>y7;JyIW!;_M-(G)kXeoXX=l?5U=>nb5Q2nZ7mY?Fz z3kEDbulZ%AV89Y33mMb414i4^IC)k+)QI`xu;`%lgl9oZ4`}!5Y%&N@Q99;O6C%o- zyh!Jj3Wv%ppT;K(v>2C}_@BvA-YuQhaDVlu13j~iH{H6hb>`#mU-XU|FOO}?TDv>B z@&3fQ$2ULNrZQDU(5uA5b9>3WDJ_0wi%d9FIuJ4}fEaz3ySh4i;5r=Rk z9h)PSVKZFvZP_?4Oy*j*tVuhE;mDB#50+dFSy5c-#?Z53`n|QXyE-_97sZFIE!B+@ q4@lknyDH8}JVr$u;{C%vjBA)49p;{SBcD|b6waQmelF{r5}E)ZnE7S^ diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-ldrtl-xxxhdpi-v17_abc_ic_menu_copy_mtrl_am_alpha.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-ldrtl-xxxhdpi-v17_abc_ic_menu_copy_mtrl_am_alpha.png.flat deleted file mode 100644 index 9bfa8b9a68870ba33d2e4538a05b3481817c0af9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 603 zcmZQ%U|{$U#2~<>o>G)po|u%As-KvY9G{sSpPQOj8lRkBP#K?FQj`;)m>Zv%Q;?A; zWW{A+0nq~`8<=2RK_H_6#=$~MO=r{(Elw>e*3Zh%$Scmz)7MKcN=yOTnVguMky@-@ zQk0lioR(jdTdZrOpO%@E3Z(T6^$pWfEG&#IOw5ywQ;aMv4J<8DD&A%x?3JVUoTsLBP(7rC0!DlTqSM6;EiD>pS zYniWoliQTb#KIvEP|l=hGb2*?-Cu?S6B{QLyk}>$nm3`~eLEvtmboj_IgzaJ7mpdr zjieqkY87p2%MCSH_b-!bu` zGGDZ8Np00i_>zopr03=$w*8l(j diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-ldrtl-xxxhdpi-v17_abc_ic_menu_cut_mtrl_alpha.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-ldrtl-xxxhdpi-v17_abc_ic_menu_cut_mtrl_alpha.png.flat deleted file mode 100644 index 6dad7549bab47b28329f158ad172fc2c2e09690c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1175 zcmZQ%U|{$T#2~<>oKlono|u%As-KvY9G{sSpPQOj8lPNR5}#XAloOwrQ;?A;WW{A+ z0Z|Vn8<=2RK_H_6#=$~MO=i>&Elw>e*3Zh%$Scmz)7MKcN=yOTmzcor zx=AL{dFGtn2IuTKX2<29%S6|GGKx@;YSnpur#1db6U(9ikKz-tnwJF?1R4)%eNVjW z_CQgjt>9zv87Ac=9)^c(QvaApY!keoE%G5q-T%@JPov|aab03eMXi3TX2cj?Ecrau z|KX%OZpMv=OyWK@?k=vFxm7?wTg1RpQF6!ZB|V-OogCH_G@ML2{kGD_ON=S0l}l~0 z?sj*Bog0A4cFb53owwW|GlHW-blp~_DxhR?)A|V^iSm<|PP@&m_^;EIOM1qfPdWwW zCk@rCzcFdGdhXF-fA{R8QL_Gmpc4Uyk322Ce3tXoj4LlTiC@rs)99ag^Ruhhq~~1v zw^jZyMX~zf@zB(m%mWZ^lNaA3vU_tbOmq z)cWD$@#gbdQmo5+Kk}c<(kt$>v(sC>q;$FKa@~*LS6uATVr{!}Jofp#k7xh#OwQTh z-V^>s-6#dh5i;(LFz`-mZB3`uyuYi+v6U)-UMS7rh|Q{DtY_p3Do!?k}A# zw@>5#SB=Nc_s^=^o(c~=_2WYQ=g9Rz4wCZwF8RyvUJxvBWc!1~ZVvMC3lzHY4|X{? z$i*)Jni4kQ*!Bm(8H_)j53_T(KG*rwEC1(Ve8;{CuVy|EYpwm)_L}>p{LOpGjT`hu zlSj%f}&Bwn*1HQDTeEiF`YTtxk*RMtMh}0^E);K%f77zM=?eDtx zKqcixE8lRx)aT9LQmgoP;gik#^i_J+zvq5=K4kyb+J(#Gw^#mZRgbNyjrWNEb@^NC z7x8Dhx$z$L3iB@kIp6>CgaUd0tCE6mi(lFwE4gIdYwnYeq&F{m#m)Ixdh((rFSt7& zOB)}E-2L0>*Nc1TagVEl}wquYMcI&`8>fng$}IY*TuUMk{Ev; hVcO`RBf$NK-PLw>+dS{*)@+JTP diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-ldrtl-xxxhdpi-v17_abc_spinner_mtrl_am_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-ldrtl-xxxhdpi-v17_abc_spinner_mtrl_am_alpha.9.png.flat deleted file mode 100644 index 14c6f4b1a25b12cc350547647784fbc065cde63d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 707 zcmZQ%U|{$T#2~<>lv0#fo|u%As-KvY9A8|JnU|MZ6rWpCloOwr8=sg{kdY{4#bsdu zQ4S>=m|$E%Afo}s!9q(-Vbl*TPAw|d&&topE6&f;*Gn%-OaWS#oS2-ETC87El$ckX zmS2=xtZSs7mYI_Zr1cE-4bxIAEQ~Eo%#)2%j4Uk;EG>;wEmD$`Oq0^m5|d05^^1Ud zVNTc0NhvDH(XFVc$Ve&3)GaeK$L$$COTB`;bf8POGD4i&8Q|y6%O%AHf&W0<=i8hOq$2VPLXsJnSU41b91S1_ z0tYY&C7?kF5(8NP0vtdb0mShj4irG01>-_!_8Xm`Aphd&;uw-~@9p)CyiE=gZ4Z?V zMZT0-Fqua0VCc4Jde_L@;T^DA`oc=x)>%IyXGKXM)$mIE&rC%SOyV^VNvS$Csy`sDN zXB7tvzUI=nT7CXy=&?OhuT@o^t;~}By=cuBIh*Hev$}Ry8&_ONi?h7xcYV8}<;IgO z?tZiO7xSgfG&tFrt7cPF^w08n%Dm16bB=(d^5TovT{JS(QZF=qIC1iFm6w9H!f}?I rXO0{y3fOf0)XtRi`k-_L0%xwWe|4FnRrao7KZxt;>gTe~DWM4f5y;Zq diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_ab_share_pack_mtrl_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_ab_share_pack_mtrl_alpha.9.png.flat deleted file mode 100644 index 25beb6a574d2a88509a8fd12f8d4e0ed911f83de..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 533 zcmZQ%U|{$R#2~<>no^Wlo|u%As-KvY9G{pJU!0Lxlp0@{YEiL%R(?iaaekh@UV2et3ed*n#N>?BV*Qe$#Ju9P z{G!}qT_gRp%$!spt!Jojn3iH;VQgVyo@|_AWNB$&X=$8lk&>Kbnv|B7m}Hu$Uj)<( zbG>eENnF(HB=vnF&_M7m&y6>ERLtqy<2j1LUWzzsz3& zDT%xS{~REV0VIGTleZ>51yUt>1tG}{EKK|gK#lCsf!#PtHr-+?;svu)MUHx3vIVCg!0D}E!ssI20 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_btn_check_to_on_mtrl_000.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_btn_check_to_on_mtrl_000.png.flat deleted file mode 100644 index 7f8dc3e2a6678f6910c6e717db1ef2ab6d93b935..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 476 zcmZQ%U|{$N#2~<>no^Wlo|u%As-KvY9G_H@7oVJwnw%Y9k{_R+7oS^FloM}YU?610 zWnlr)0VNl}c`R@ic7{|pqkd>{YEiL%R(?iaaekh@UV2et3ed*nM4(;8`Xxn)dBth@ zMY+YgM*3-)IjKNe&rshmEycpZ*uum-**L|>($c`v(m2&3B{|77DJ?BA$uv>F2&fn4 zdfnWVf=t~q6TH6AE67V{xCV7)XMmqOFP9V-kjv}o;SvO-6+oB+bP0l+XkK3i+S- diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_btn_check_to_on_mtrl_015.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_btn_check_to_on_mtrl_015.png.flat deleted file mode 100644 index 28904afb0de0c840afde7ab82becd828e8b88058..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 583 zcmZQ%U|{$N#2~<>no^Wlo|u%As-KvY9G_H@7oVJwnw%Y9k{_R+7oS^FloM}YXewmI zWnlr)0VNl}c`R@ic7{|pqkd>{YEiL%R(?iaaekh@UV2et3ed*nM4(;8`Xxn)dBth@ zMY+YgM*3-)IjKNe&rshmEycpZ*uum-**L|>($c`v(m2&3B{|77DJ?BA$uv>F2&fn4 zdfnWVf=t~q6TH6AE67V{aAbryvopZYotI0B3&`X3^l%9R(h4BV0rJny;!X7o42&F} zE{-7;ac`#>_8l@1aE*6jyky21{#b8=?i|*@cZn}DS9;u0N~$)KQk>%Amvd70v$poX z^YhEC=1m;3PR_RcD>4NCoVgi3k88y=p%zB{7VZuH%oca9oSP|H(80{p6nf%D z9FuzN_A47%{MU6!-0purHS%94?;*JzFTVL#Y%S-?ecZsj;Zcvz8@c&qtPfcZ#Ot$_ zc{0xU?%RLBfBnMPAYltDSA%WKnQh_(_wTj)rm666%G@TICLe~-C}T^VvO5u7)jUE^ owio|%I4Pg`)7i9sP5o>6H_xRbJ(=%51_lj-r>mdKI;Vst06bU70{{R3 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_btn_radio_to_on_mtrl_000.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_btn_radio_to_on_mtrl_000.png.flat deleted file mode 100644 index 9ed50529f35f082e137bca390897d34d75c4d6d8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 586 zcmZQ%U|{$N#2~<>no^Wlo|u%As-KvY9G_H@7hjZ^l9?Z0k{_R+7oS^FloM}YU?610 zWnlr)0VNl}c`R@ic7{|pqkd>{YEiL%R(?iaaekh@UOLbYppD6i$r-7|`Xxn)dBth@ zMY+YgM*3-)IjKNe&rshmEycpZ*uum-**L|>($c`v(m2&3B{|77DJ?BA$uv>F2&fn4 zdfnWVf=t~q6TH6AE67V{aAAZvvopZYotI0B3&`X3^l%9R(h4BV0rJny;!X7o42;~K zE{-7;ad)R0`W z!cQ24%)H<8@6X?R8_SR1sZu#Uf0~$)T*|5UIh#&%uMN0kv{@yl!vDB&INQTjYlI&k z^Pcv;;_#0nKLnQfoXP8SW$K$z@UWAY|B&0w)JJ_EHajxQ7~FfAzBO)5VL_;=(S^hw z8z$Eb4=3ZN9kPa2;bG?cABiqzf9G+3b<%?4OCqjHYySIV+?l3V@a;{t##c5!iQiQ> zZ`!JfK8a$UDc+O&*VJ~>Cr%U|ndDtvsbL!w} skv-=gHVVmPE?g)j^LnEE>D=SuEy0BggZTbr0z-$v)78&qol`;+0Qxh}pa1{> diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_btn_radio_to_on_mtrl_015.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_btn_radio_to_on_mtrl_015.png.flat deleted file mode 100644 index a92c10e9b156749951aa6e47d20f151534f90198..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 618 zcmZQ%U|{$N#2~<>no^Wlo|u%As-KvY9G_H@7hjZ^l9?Z0k{_R+7oS^FloM}YXewmI zWnlr)0VNl}c`R@ic7{|pqkd>{YEiL%R(?iaaekh@UOLbYppD6i$r-7|`Xxn)dBth@ zMY+YgM*3-)IjKNe&rshmEycpZ*uum-**L|>($c`v(m2&3B{|77DJ?BA$uv>F2&fn4 zdfnWVf=t~q6TH6AE67V{NMVFHvopZYotI0B3&`X3^l%9R(h4BV0rJny;!X7o42;^I zE{-7;jCUq(jbtelIg-v>p24)biL1c(LY!W!+y$|Y4_p&^^bc*B$xZ?$TKoW);nCk}+$1Ed2k)2f?YLU(Uoa zZ#H_z@8`INm36~%&C(UTB?rE>xG!4oFR=Nu$a&M>db5x6F3GF4;Iwvp>1Dg2r}qkn zlJ*_#OPuER`+inE4SALjnls<5l*cTw?3qV#l)RnCtJlHi`UmGn{Gaw_(l5D7{qhN& zH~j4xsu|8V)U(R8nOs=(_aJkEoIv^EC8al%vkw$VTyoHEbbarCVL@>0O5STL4#oc$ zO=Df>u|C6ePtPj0fOo8?m?wV9SYo3XIB$yPd7mli>8H3wPIa3cYSp^iReGi?wSt+! YgJZv9f$WlZz|dpxboFyt=akR{0D=(LUjP6A diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_btn_switch_to_on_mtrl_00001.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_btn_switch_to_on_mtrl_00001.9.png.flat deleted file mode 100644 index a9e01ecd210fc1fee99feb628bfbbcfa81ffa566..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1024 zcmZQ%U|{$O#2~<>ky4aco|u%As-KvY9G_H@7hhbSS(2O)Uy>i6pBJB7Qj`;K00f3Y zR$LYq5KT~W0i4GIXJKbZO<>dyElw>e*3Zh%$Scmz)7MKcN=yM-nw*%Nky@-@Qk0li zoR(jdTdZrOpO%@E3Z(T6^$pWfEG&#IOw5ywQ;aMv4J<8W%}puD)Gae1eNnl2cdnQpRrYqn=U)uamy<@g1!{Y_IrW{)D4PS1xF7?w)-$RMTlecSjVro>hnM zqw@Xo%MYJEyh2~9>i&lZ`-9%{NUeb^lJ z_s_G%Js;Ow@3olHtuueUvQNY5sPx<0rru1xJ@@TtsRJ#O{Ea5uZev^O_Vv}3mBH%+ zS3cavxbURnC5KzmeXp)&)&yK$;kP%rn%U{|8o>jx&MSX)d~yhV8moNttM>jW5dZi+UsVqocS);(4eNdF3nH6LFr+^vJFSpc+^QO+E8Ml+&GDeH(=#S zi$e};L-bEnES>hK`fK-QrafjZA|mP4m-b%2QJ_5MVbzx3zaM5uo?}obsCC;@VZ6ZUcOjmVR1oEyWE9@FIm?w|6)uF&fNR_s-D~Lw`y^y((!L^S*TVyonPh&b#~W=e=88%U(ULyCnSY z)9tl_J~h9;l>YnMesR*J~`{`X*YcF0tyCm)yi(248>kxy^&Z?i0%4~Nh n+fNE(V)*>fTjJF`8NGjuw*~tSrn*cD0i_U6S3j3^P6ky4aco|u%As-KvY9G_H@7hhbSS(2O)Uy>i6pBJB7Qj`;KU|?Wq zBxJ>9VFA$uB^SVXEN~WfhSUT`{m|mnqGJ85{EWQf{5*ZV^rFNRpry%)$r-7|`Xxn) zdBth@MY+YgM*3-)IjKNe&rshmEycpZ*uum-**L|>($c`v(m2&3B{|77DJ?BA$uv>F z2&fn40o~k`f=t~q6G9%*v(zidOJ}fThPbsez|WnRONtA~sl=@wp zdq7GeufRVC#7D-CO;L{jfnriWE2DsvKwg1Q60$sqJtuUbIgm=pD+ozuU}51@0CEg~ z7zj|5I)H`11QU>y1Y(dQKmeW32oYug(J%}W0*haJzVRJUOMs_~V~EA+xs%U&O9zS^ zJzqW9bIUR>5l;=VB<&?oNTEB^LU=!JTx?iY5VM_S9CUYi=ZQ$Q=s zWrc{(RTY)W@3nXI)MoJ?m$1q=jyacq?##~ghX1=~3 zvB%_#HQQNde%`Hg#=Y@USK1=JC9RX5UGiFx?agmdyS^hvL!`m);>&giZV!eX6CFOS z{_^n9cMgXGp7uXgFR*R&USM!_hics=?GKNSTki?E%59|z%U3FbBok3>L-sD(O zp*ze;ilwFRCGI)1-P918{(IWg$|}ZF5&Q1AKPrCn@b)ILEt@lQ`R&Cn-J0ur!TqvX zY=?4aO!1nM3iYXFF)_|riuZn+=$rP7AR&6`eXEbiGfOLnsD9f!0MC0hZZ{34C1$G&{JbklKf+Rcs0$EUsCy1DtOs?YLE zCl_Apx>c?k$D6c9BzU8L{-*b8@yFRh|Ni;(`(%H-q3N=KU$ObDYP+f)`19Z2`$w43 z{P$ypNoh+yZRWW<@6+Qnj~|_l7b8@XmOk(KxjIkk!ue}^_P>@l;oqYk!Em1&l+Zj~ L{an^LB{Ts5Rsx9) diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_cab_background_top_mtrl_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_cab_background_top_mtrl_alpha.9.png.flat deleted file mode 100644 index 5d7ea43065aa40e125999ca6e7e0c9d5758d2537..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 490 zcmZQ%U|{$Q#2~<>l~R;go|u%As-KvY9G{$+6rYrsoSj~jUz(Q^Uy@%CpIcIt6Q7t< zkdY{4#bsdu(FP?Kzl$%)Assm1yw zMTvREY57ID#kxlNX_+~xKw8gG-!Lu3!ot|X#5~zJ#mLgqz|zt<)gmQ1$uub~EiuV7 zQNIYN7v=@s+?0Y$-7*uxUeUAEE67V{xB+!+XMmqOFP9V-kjv}o;SvO-B|w-1Gq7LRd*g zpePux{=E4hkS*=$;uvCaIypgtb#a174^t3>^5ObRCI%C;m>E+3FfvaR+A9Sz$kWx& JWt~$(69B;5WwZbQ diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_ic_commit_search_api_mtrl_alpha.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_ic_commit_search_api_mtrl_alpha.png.flat deleted file mode 100644 index 5544e13bc2dc492c4a20a0764e550a308967e28c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 451 zcmZQ%U|{$U#2~<>lTwseo|u%As-KvY9G{sSpPZkYn^_WHoSImaoDrW`kQtv_Qj`;) zm{X9EC}hQDVFA$yB^SVXEN~WfhSVfR{m|mnqGJ85{EWQf{5*ZV^rFNRpvB3F$r-7| z`Xxn)dBth@MY+YgM*3-)IjKNe&rshmEycpZ*uum-**L|>($c`v(m2&3B{|77DJ?BA z$uv>F2&fn43EkY3f=t~q6Jk80SCE$ubn05Db2|h4+HayUHx3vIVCg!0ETypkpKVy diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_ic_menu_copy_mtrl_am_alpha.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_ic_menu_copy_mtrl_am_alpha.png.flat deleted file mode 100644 index a603b43d0c2397ea204f56ad06724504d1df1808..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 399 zcmZQ%U|{$P#2~<>o>G)po|u%As-KvY9G{sSpPQOj8lRkBP#K?FQj`;)m>Zv%Q;?A; zWW{A+0nq~`7r=Qea29rkR4=1`XmM&$v3^#5MqY7#p1xjsQDO?v&g8`8jMQTNlA^@C z;1OaIY5as~+$gA#aF_7}{ zba4!+U`+nuuhbII_&@&NamEc<44Uem%uYoKlono|u%As-KvY9G{sSpPQOj8lPNR5}#XAloOwrQ;?A;WW{A+ z0Z|Vn7r=Qea29rkR41c;XmM&$v3^#5MqY7#p1xjsQDO?vzU0K@jMQTNlA^@C;sjaS{*Vjy+M)5S5Q zBJSuVN3X*HB5sM|7u9Yyh=^;teNUcsOtwVH<8GJeB#XZ-4m+C*DkWb^#>zdHzf=By z_x?l82Xl&wZY-;3-my+O%AvYi;=;-+RWiYU+a#|VnMw%T8Z7K{Sj6u4!c;2XLcQw2 z1FZ#Tzjnyw;W#v5GmArdJeim@b#L9hrSk6^mfu)5%EC#bZ}pVJmrBky4aco|u%As-KvY9G{sSpPQOj8efoDT#_1}TT+x0pO_n;m{X9E zC}hQDVFA$uB^SVXEN~WfhEyM;erR!OQL%njenwt#exANwdQoBu(9-0@+$2$0<3jg1L V2zT*-GEtya44$rjF6*2UngD-zfXe^? diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_ic_menu_selectall_mtrl_alpha.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_ic_menu_selectall_mtrl_alpha.png.flat deleted file mode 100644 index a2cb3b62a473d30ee232405fb5f17923cb55738d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 409 zcmZQ%U|{$O#2~<>nNpNko|u%As-KvY9G{sSpPQOj8eg26lbT$Tn3EHqTT+x0pO{mS zktk%vWnlr)1tk~2c`R@ic7{|xqkd>{YEiL%R(?iaaekh@UV2et3eeW%#N>?BV*Qe$ z#Ju9P{G!}qT_gRp%$!spt!Jojn3iH;VQgVyo@|_AWNB$&X=$8lk&>Kbnv|B7m}Hu$ zUj)<(^MP(|NnF&Fk=oRFpGju~;+8N;I&dVjm1?2L2dbk7uX$cVK0Qt$Q?rSlS z3i5Pu45?sDme}&3{=xt02~r#zF0KFfdvR6;XK=&hI?s50g*C?*I0`qJCS)8ry4;6( z)76S2oZc6X^MC1PuUft|oMrNN?hxL8EJhc)|L>ru6{1- HoD!M<=LUF( diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_ic_menu_share_mtrl_alpha.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_ic_menu_share_mtrl_alpha.png.flat deleted file mode 100644 index d0cd0ad0408fa51c9d4deeeb150e5d2403d218a1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 532 zcmZQ%U|{$N#2~<>no^Wlo|u%As-KvY9G{sSpPQOj8eg1|Sd{YEiL%R(?iaaekh@UV2et3ed*n#N>?BV*Qe$#Ju9P z{G!}qT_gRp%$!spt!Jojn3iH;VQgVyo@|_AWNB$&X=$8lk&>Kbnv|B7m}Hu$Uj)<( zbG>eENnF(HB=oRFpGw?A&oY@)R=g!L|#RcT?dV0770ci;k<^cJ}tL|$tkh<#W z;uuoFc=WVtQz#>Y!^QU9Y9<>Qg*sIy6iS5^l=ttjRxvxkSMa@Xe&U_G=eJDX_xj{_ zwx4O!+^b5e6T*@XD>Hl-mabwbQJti3z_h?P&gLecZ_B%5=dS;1lT(kmyz+9a@#5p! zdk^iHKFzH^t$LOF_ULo34!dVJMcfhlbl+@p(~S@&2_yB6^Y#xD;*<{8DSq9iw&~5+ z;Dz00D-K4lZg!dZw#za3UF4h}TTW$fx%GBR(9ynGBK1+reNHS?uroGc`XQ|1RJiGI mAj5AVX*J6y{q~9Tn1!?488Y8<)!PF-$l&Sf=d#Wzp$Pz$bF+N_ diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_ic_star_black_16dp.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_ic_star_black_16dp.png.flat deleted file mode 100644 index 5009d670bc3c8382d9ffe2d21dd1e530be4eb522..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 443 zcmZQ%U|@I(#2~;WpHh@qo|u%As-KvY9G{sSUtE${6rYrnn4BGNXqHkSWW{A+0Z|Jj z7r=Qea29rkR4b!?XmM&$v3^#5MqY7#p1xjsQDO?vuH?kzjMQTNlA^@C;s$<|-yuYgpCr;B4q1!J;; zs0V{$T)_E&ZvRkUpU-0j5b+Q_ub_-~*{MWWUVHt#uXP6Bt^Rz9#e zY~5DErlxQvrQ&=6hp|kWLC2xWBnLTd=BW$}$zqN+%{q4u0o}yl>FVdQ&MBb@00Xjn A*#H0l diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_ic_star_black_36dp.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_ic_star_black_36dp.png.flat deleted file mode 100644 index 03ac72ae30ea065c698940db9227eadf1fac5c85..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 614 zcmZQ%U|@I(#2~;WpHh@qo|u%As-KvY9G{sSUtE${6rYrnn4BGNY?e|WWW{A+0Z|Jj z7r=Qea29rkR4b!?XmM&$v3^#5MqY7#p1xjsQDO?vuH?kzjMQTNlA^@C;%`x&RXgOc=NPz3wVwEXpa}-&c&5T+Vd^RyU&r`lOFTq1NX)Pb~IwikYr|nEf zR?3uEonk+-vRvlS@=}Has(pnwmO8&VaJgFS-G?AS z%=+gH7Gy5#zx-oEd)8Issc(+;`--fdrJ11IHA%#+PN3h*vF4lQ=b7Ovw)KV1cka$8 zkoakibk%-zB`~D2H6mJV%2$Rp>OHAP zZUu*&+!D9DhVQ`}h1Nd~0zm;w*%vnNuK3)L*HRX8QCnEcA>ZHXo eE}Q??F=cI5G}l`;V=pii89ZJ6T-G@yGywpICgNiN diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_ic_star_black_48dp.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_ic_star_black_48dp.png.flat deleted file mode 100644 index cb84acf5cc2e54e99ad4417b54823afc5d7deea6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 717 zcmZQ%U|@I(#2~;WpHh@qo|u%As-KvY9G{sSUtE${6rYrnn4BGNVv$lHWW{A+0Z|Jj z7r=Qea29rkR4b!?XmM&$v3^#5MqY7#p1xjsQDO?vuH?kzjMQTNlA^@C;&jv*C{ zZx7mfgfdDnTzLGs{e-Jh;L43lb)*(GO%qzU@aVz~x-n8L3srhFnhJ6_rG71J+tkz} z)AEd`Ni36thqFbf`9PbH@}&vu%{zX4QT=}Joh;M&jW72XuhE6=d3xt=tRXuNzRgAdPaYiIXhMRc2BXtsoZLo z@7nb^YRQ!stsWIu!X&TkQWe^>Qf0BS(!pk<-5Nq~rr%uQ@nL6AR*fiU-NcJ|6F=z9 zoFmHl{lt^Ti0`qLYpVU#f)_oSQ=E1B{A^)S_0$VmT6Wh?Z8GzBIr=upS~bkiB5Q5( zz3!>8LAw>F%r1AFoAru!hWM%2>9=+W%)6DSY;7xiNLthMS8mX9mA>Bz2gO#(lzBEU ik%}pEa5T&P#VowT$9=JM-Bw^^F?hQAxvXl2Vjdo|u%As-KvY9G{sSUtE${6rYiplNO(plbDckwt#8%i~(H0-T zYSGB9$ZFOiGNpNG{ll;gk{Wya9fhZxC?8I3^Y}CI$Y}>T28Je4g#&rpJAo_)22WQ% Jmvv4FO#lo*Z?FIW diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_ic_star_half_black_36dp.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_ic_star_half_black_36dp.png.flat deleted file mode 100644 index 0ed310937365bf35b935d99c2d3448a992f03107..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 515 zcmZQ%U|@I;#2~<>l2Vjdo|u%As-KvY9G{sSUtE${6rYiplNO(plbD>WHU{ zV@L(#+bgOOYz_=87Z2VwiYx3kk($`#z2wr02&IV|IQ|~?-0`((x7wYr9yit>$Zfv) z@6o62pPfSl7af~8rOh#@ovrJc7xUFbkqP{-rB(_g=am)1i&Z=83_}X*l z6m%Be;P*=7d|YO))#k~|()cAqp}|d*#ndK4LF0iBv!hnJltza&@09+F4qvr0JeYqL zd}_V9eaG+bwwJst_OJOicczMHca@<;pT_Y`x$`oVxlTWtp)BmU@W+Rp|Kk|-H!Q78 TzOozZS3j3^P6l2Vjdo|u%As-KvY9G{sSUtE${6rYiplNO(plbD=k>*?VV1f&f>m;>aYzubmAAj;Fl zF{C2y?O8+ZBZV@@KThBMdRp|7Cr<=BHU)~klxuKZBi0%k|D9!`ZHNn=a>?XPROW6OtNFMwZ)6DFy^-Pa#RF+31#;Y9Dmz)-mPRC4N?AbP0l+XkK0WZT0 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_list_divider_mtrl_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_list_divider_mtrl_alpha.9.png.flat deleted file mode 100644 index 2d06ff519dfebb59c1ba7940cef9f01e6d0c98ab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 429 zcmZQ%U|{$N#2~<>l2Vjdo|u%As-KvY9G{a}ToRv>S(cfSS`?pKQj`;)m{X9EC}hQD zVFA$qB^SVXEN~WfhExxuerR!OQL%njenwt#exANwdQoBu(8A=zmdKI;Vst05IZQs{jB1 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_list_focused_holo.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_list_focused_holo.9.png.flat deleted file mode 100644 index a4fb86b88731cea22766487735e7ed903471e0ee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 472 zcmZQ%U|@I(#2~;Wmr|5io|u%As-KvY9G{a}ToRv_pIlm;ni8LppOY_S#bsduQ3@p& zz4<`acWVqepY@)UU7b&zFvA!VhYfz zZkY*o=j&PO738He+=Du>Gr-TCmrIHZ$mR9)a0vp^Y#_`5A|IT2?*XJF@(TQOfHVe} z2^2XNuwgfl3dt)7NoHVT;#2@~G=LZ#7(fJ=fD|Z{!1PSxtxu7$9~vJd_uqcI9Zlv0#fo|u%As-KvY9G{a}ToRv?pO;=xlv-Szni8LppOY_S#bsdu zQ4S>+zr5EOy{X1M>xECI&Z2Cfn{6#c3eJJzf1=);T3K0RXi+a!vpM diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_list_pressed_holo_dark.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_list_pressed_holo_dark.9.png.flat deleted file mode 100644 index bfe97fdde52f75aca86712905937e98e392b2828..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 469 zcmZQ%U|@I;#2~<>oKlono|u%As-KvY9G{a}ToPYUlv-Szni8LppOYV-l30{2WW{A+ z0Z|Vn7r=Qea29rkR5zo3XmM&$v3^#5MqY7#p1xjsQDO?vzU0K@jMQTNlA^@C;JJesaKGf4s_#rs5?6Y{M>oDq_}`wUQZ8~ARx^K!Wl2Vjdo|u%As-KvY9G{a}ToPYUlv-Szni8LppOX(1NzW(|vf{F^ zfM|e{3*bB!I14*Ns)tcOv^ce>SU)R2Bd<6=PhT&+C@}?SVRB+}MryHsNl{{6aaw*+ zZn3VBep+TuDv;JQ)Hh5^v9K__M7m&;A>ERLtq}f221LPsEqw0r<f;E ze-4nw0LDO(CvBd$fK*6cK}a$K6BDNbkfQ;_=)eFXzyzc~MuTbNnKNe+!Y{YYDF&(+ q@^oG(2L8fk*2~ob$v(zidO9#64Ce+290eF0ZGDOAv?#VoeT^ z-(2ozUk6eWc?JGCKpG67p$KL-07+L(OM4&{l2;It%)rFNsQ~0?05Li+fC#VyDGneO z24ay0AOXTaz}NsJKo|&6*rl-|Wi= zViAyj5C#H9T% MboFyt=akR{0J>vpvj6}9 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_menu_hardkey_panel_mtrl_mult.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_menu_hardkey_panel_mtrl_mult.9.png.flat deleted file mode 100644 index 59f63d1b9f93d9ba6098792ec94f970f4ff31215..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 815 zcmZQ%U|{$S#2~<>nNpNko|u%As-KvY9G{z-R~ny@Sd@~TS{YxEn3tLppIcG{BuaBi zgsiwMEFij|vUX+*uv^6;~IU}`LzoaNJ zuQ)BgD7RSGNIxwzClyHR8R{FRrC3-PTbP(98>bjqS{hhd8mC&MBqy0BrKKe%nI`HN z0rkRspqragkf~c{LeM9AmU;zw=|GptGC`c%8Q|y6%O%AHEamTas2Hx-@L;L z0&eojf2QkP@?Cdv@z(UUMHBN@X>~Q~NgUXCWfiyou9pgoX4CdPZ=A{a?`{9tzmLxD zo3?Lq@z(OyKlg3w+%hXaW%GsyB{~MbJJb~>d8o*i9=(2^rTv29E$iHB29bvjSL_5o zFS@>8MD*J&qZ4%ukrj!F2L(GEj->iqu$(_JQTX}k>_0sxSJdv=Tk!12M8W`+S=2h~!Ff~p%KmE#w z*Afyl&oZXDwMnIWoMn)m*LYGUA?d*7sT|pI0Po zPJS|r{Z!zVZPT7bGMjMx<~}gD>rc$ux9^!ZX-f7pWIU~4y`VL1>(fawf+?XJl^bVU q9`Jq7+@+v>oMl=&Lx${`{`jm#M+#4c-mnCQF@vY8pUXO@geCw{)(P?e diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_popup_background_mtrl_mult.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_popup_background_mtrl_mult.9.png.flat deleted file mode 100644 index d1c4452bcace556dee7a90cfcc3f022ae81ef049..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1046 zcmZQ%U|{$T#2~<>o>G)po|u%As-KvY9AA)MP+Ab5l$e~IUX)*&mlB^_Qj`;)TbffM zWW{A+0nq~`7r=Qea29rkR6nDBXmM&$v3^#5MqY7#p1xjsQDO?v&g8`8jMQTNlA^@C z;J{Xr1Kr8N3~_8{fS)@rmlPL}$Ls0g5(K0jfLMV8Kq1|}v> z1t3QQh=Bm46r==98-PTBu>r(pP+AN~Ga}>vK!D5#u{9p@eqvx?()V<642d{=bo$vz zR}@5A?Kx)Nn0iT4{4>YCm3BSvzNX%Z%3FKUv%G;pZ--*Z^mQ!Hms!O|&OL1ToxkE? zz{^(77t_NI#GG81_cgO+(!YPPIsyf)LJ3!YtXTOc$k%D9RLtTh7e%L32)I853 zbeV^Iz@mdEj@;S%`OG9<%fplQDHgo)dvN5)i4Dtl=!x+pIlZ5;W3pE8ah($^o7nzx z_V8?HdFAy&Ho5knGh=AT3t8un@o#w}LRJ2;GlnL=S}nO^*7*bWYaB$QHY!Zzyj$<+ zb+v_|#B~1SdvkZWx!p9JyzYmJ(n9OTfNxCebUi9#tgZ{+wUj*Zazny&dw~x(&d;Co zp7s6T>HQHljwL6wXP)x?A!@vS=X2ffdlIM3TRVHlyNxjsKTZnUS3DBu*6!;~I90$? zp`*<`t0g%#$Kycp!$Zd0t1~7TJC+@)P24o+qKb{S_sq!uQDr|1`nbi#&P7DJowA!C zdZXZyj9J*Z9*GiVRwZeoc5PjG3B-4N>5mgS-lKI3?Dp=)Ewot`4WcmLzq zmSrUzsN16wy6xd=r#0)+1a(E2nAhn%U3=|Qts(y>z3)wr(@O5N8||=Tb7N+@*`aZ+ d`@hN$-h>Mkk2yAEZUH7C22WQ%mvv4FO#m`hY?uH5 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_scrubber_control_off_mtrl_alpha.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_scrubber_control_off_mtrl_alpha.png.flat deleted file mode 100644 index c2744c18fb62f6b4c3765f2c91dc737d79710953..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 437 zcmZQ%U|{$U#2~<>lTwseo|u%As-KvY9ABJVRGO5OS`?q0pI1_ppA(;-mKL8|Qj`;) zm{X9EC}hQDVFA$yB^SVXEN~WfhSVfR{m|mnqGJ85{EWQf{5*ZV^rFNRpvB3F$r-7| z`Xxn)dBth@MY+YgM*3-)IjKNe&rshmEycpZ*uum-**L|>($c`v(m2&3B{|77DJ?BA z$uv>F2&fn43EkY3f=t~q6Jk80SCE$ubn1Mlb2|h4+0YZE_9aDee@l-j_r_2O hxw+DI65*dh>%u)3@t$j7m<6k diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_scrubber_control_to_pressed_mtrl_000.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_scrubber_control_to_pressed_mtrl_000.png.flat deleted file mode 100644 index ac4aa7ff12e96f40a0dbd30a88d6262fdc88c574..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 431 zcmZQ%U|`^61QI~NWtdWwSe}@ald7MXlpJ52TvVErlv)&@oS#=xl%Eq{k{@4Clv-Sz zni8K|Qj`;KU|=9*#bsdu(G4XRzsEa!T{M>oDq_}`wUQZ8~ARx^H z!W<@Yl0EmT=g!@CfZxGm@}?~z zYMKfrhi^SRc54mir48j3iTNJCHvd|>I+)L1W19WZPwRhJzpDT7ztq|Izr}~wsFVdQ&MBb@01}{sApigX diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_scrubber_control_to_pressed_mtrl_005.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_scrubber_control_to_pressed_mtrl_005.png.flat deleted file mode 100644 index dcd3ab721a27619ea39056dde373ccf83bf17e89..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 483 zcmZQ%U|`^61QI~NWtdWwSe}@ald7MXlpJ52TvVErlv)&@oS#=xl%Eq{k{@4Clv-Sz zni8K|Qj`;KU|=d_#bsdu(G4XRzoDq_}`wUQZ8~ARsLS z!Wky4aco|u%As-KvY9ABJVRGO5OS`=SUl$o1YR2iRJQj`;)m{X9E zC}hQDVFA$uB^SVXEN~WfhSUT`{m|mnqGJ85{EWQf{5*ZV^rFNRpry%)$r-7|`Xxn) zdBth@MY+YgM*3-)IjKNe&rshmEycpZ*uum-**L|>($c`v(m2&3B{|77DJ?BA$uv>F z2&fn40o~k`f=t~q6G9%*v(zidOJ_I@b!umTpF1y?6c>=o>*?VV1f)T19uAPFJ|;cU z22v7v1^zient>HW00E5t4`gSX?9T>LE_nqZ$qY;^%nCq`1`wkIq`(7N00PWF%n8Ii zAPx{Pf(YKDS4Dx8oTrOp2*>s0gavj9fA%xXeo*h@sFrgpQbNq=0?_)>O)TyU9)$RT Oba=Y@xvXmQs{ho|u%As-KvY9ABJVRGO5OS`=SWl$e|ypIcIt6Q7tkGnK`LITF+45FfGNx!q~#ZJlQzK$kNil($YB9A|*M=G$}1DG08MhzX+%o z=6v1Ul!8p%G86pX(6iJl$V+E91a)X4@Pgg^5eG*28cn83hrDv~kzxY+D&kU~#aKbLh*2~7Z^ CoM8$8 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_spinner_mtrl_am_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_spinner_mtrl_am_alpha.9.png.flat deleted file mode 100644 index 00fb7488e8e809a9321d270841ce7474fa021e03..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 585 zcmZQ%U|@I)#2~<>lv0#fo|u%As-KvY9A8|JnU|MZ6rWpCloOwr8=sg{kdY{4#bsdu zQ4S>+zZkY*gFX&n7738HexHCdr*%{#H&dVjm1?2I1dbk7uX(1q%-~f3iHYRl!h?7^~ zpTiDha04+1lm=1^|AF}Cw|*@k6_8gDlFY!w!lnS^XaF%32*4Of!Nvp?1JPnYECEvk zrJ+t^U^qKLVGmHO&(p;*MC1J12^)D283?%E->H<#WtQNsvaFHS$oW{uj0TY}E=v7M zjyEPsM;(d$oRYH@0lu12ut$kHB zUwo%YYvOW0zpU;1o~VfxB(KlP|16ohZ-!@%tW1t~_s@QxGcpa@ojZk|sRga>OgHg5 cwV$Dav2t6fi6P66<{9 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_switch_track_mtrl_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_switch_track_mtrl_alpha.9.png.flat deleted file mode 100644 index cd512ad266de67b947a23add2ebc01902d95e7a7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 657 zcmZQ%U|{$N#2~<>l2Vjdo|u%As-KvY9A8|XS(2O)Us9BqoE@KAQj`;)m{X9EC}hQD zVFA$qB^SVXEN~WfhExxuerR!OQL%njenwt#exANwdQoBu(8A=z35>${a=WhSe^o5-k{Wt+=?( zP1Ms|)S)DPW9wgy3u*_d6i>d+IWPaRn(be|a>2V>{+nmr-CdYzB9Z-x!|vvaqkW6= z=E}tXes@00sFq)3vS)2^m0=Rgb2G8c(@kFS9VmFWKPWnT%d1Z-nm7bDCClv&p2{j< zG4W2}{n)P@2Y61ze3e-s{o@hy204KbTz}p?(Ae^(!6@TTQQG(C`FjQLRO|1MzFM*3 kg!WVKcXxM4=-kh@WRSJ|vs~nEKtITPp00i_>zopr07)CUv;Y7A diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_tab_indicator_mtrl_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_tab_indicator_mtrl_alpha.9.png.flat deleted file mode 100644 index a9d22e998532c3948091d1453453bdbb337f1c8d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 452 zcmZQ%U|{$R#2~<>no^Wlo|u%As-KvY9AA={6rY)wl9`-Xl3x^`TT+x0pO{mSktk%v zWnlr)0VNl}c`R@ic7{|hqkd>{YEiL%R(?iaaekh@UV2et3ed*n#N>?BV*Qe$#Ju9P z{G!}qT_gRp%$!spt!Jojn3iH;VQgVyo@|_AWNB$&X=$8lk&>Kbnv|B7m}Hu$Uj)<( zbG>eENnF(HB=vnF&S1lB^6htxW8;f=%@xU7oIfF6*2UngGFKVGaNQ diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_text_select_handle_left_mtrl_dark.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_text_select_handle_left_mtrl_dark.png.flat deleted file mode 100644 index b64bed758da361ae0924ba59688a476d5e6e48ca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 485 zcmZQ%U|?Wo1QI~NrI%8aSe}@ald7MXlpJ4@T2T^ToSKuGToRv=n3s~18lRJzRuZ3E zQj`;)l30{2WW{A+0nrL27r=Qea29rk)D%Yj(BjmhV*RZAjJ)FfJbk_NqC}t_`pJpO z8L7qkB}IvO#cBCPxy8Ch`e~UtsX$uKP~R{u#lpha!o)n;IK{})(!kQvIMpI0Imt9B zEiEz0G*Q0@s2Ao9-Q1LdOx-dQ;=H3*ke3d0>}jZjI|KaOdAX#xfLvZr50@Yytpmhj z9Be>xcWT`!AT`O;#WAFUF=>J6jScTtFe~<~YnSU2Vn}k>T^hn_z|s)7^r1+(=3u7jhIrmTFAvJdsyA(B`s2r9?J#k_rj5dhi!$8P++`Y; e&HMR#FI)9zl`_+~hebfwF?hQAxvX{m|mnqGJ85{EWQf{5*ZV^rA$dCHl#U z$r-7|`Xxn)dBth@MY+YgM*3-)IjKNe&rshmEycpZ*uum-**L|>($c`v(m2&3B{|77 zDJ?BA$uv>F2&fn458d39f=t~q6C(YiSCE&^a2o2~&Hz7mUM?vvAeYzE!zBnv>j1GB z2OE&womzJaNKNu|aSW+oOj=;-vEpr+Ld(Uk7Y+w9Iq+m`?_0&t#$dn|9@*j=!6N8# z!2?JLIx??Fxc>8eWBczt`3$$Y_ug5pymDin4Cg_H*VR+ij(rk|IJ_{b;8LUIwW1|r zGGWZmuO0|xe|E#2Aug{)-(oG>x7CgIwlfw#b}0yJxZjz;uJOsdm7T?MR`S759n2T5 e7}xK=&M-Ur#-l|%XVZYLWAJqKb6Mw<&;$TG)|p=b diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_text_select_handle_middle_mtrl_dark.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_text_select_handle_middle_mtrl_dark.png.flat deleted file mode 100644 index 27cecb9b454de6a96ba8a6b3cc6f663771074046..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 597 zcmZQ%U|?Wp1QI~NWsp*oSe}@ald7MXlpJ4@T2T^ToSKuGToRv=n3s~18lRh)0;Woe za^h1Gi?W5RxGXFnnxW(ZIFAL+!p@MI#;6}!oLW?@pOv4HSDc@xua{nw2sBXdLSQuNFm?s;j7+G2xSXvsVTBIZ=nI@&B zB_^3B>K6g^!aSmzn^KUeTV_J6hx7{a(t*x3hlWUJfS)@rmlPLJh}YA@B?w510I>uI z8<70veYXrq{quBj45?sDQeZKAV||M8$kv8yuMVj-8E`Bxm^j(uHqW~YM_micb(!0% zHZT>uc$A{LsW|^!Z2DyVefdwfH~nzfFFujGf>r!)OOi$76${rj(;q0_VRIC3zuU6t zhBHT|(h<8wb6K`eXxuXKVA*c-+YTHr13G+Nq*;YM9CuA|T4ZL%BYtUdk6D)?yZ!__ z+rt+hFxfOOSgy-!=hS19@!`I~kL3ps7)WGXFy`4M^~ZpxF6+Z7gNn5WBX_VFhDS@u z9NFyn!8Q8mRU@wb{SgfxZ++d<;?w`SV(ZOsTYDCqHjj4Qa&@0Yqj*K`wYSpCtZdn2 m&OBtZ|G-^W*j{PT`|d20{kl^5pE~N`*!Fbwb6Mw<&;$U_vdw@1 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_text_select_handle_middle_mtrl_light.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_text_select_handle_middle_mtrl_light.png.flat deleted file mode 100644 index f099210673c125f5c501c401a70919c3122620f3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 596 zcmZQ%U|`^61QI~NWtdWwSe}@ald7MXlpJ4@T2T^ToSKuGToRv=n3s~18lRh)0;Woe za^iC`(=$qhthg*JAiAOC0yvKa&ce=+n$D;nTAW%`te=&ikyo6br>~b@ln69mKRGcu zBeht+q$n}3I4!>@w^-LmKP@vS6-etD>Kmq|SXdZan3yLUrx;mU8dzEyr&^>WCz&Rt zr6nerCh8Xf^}>9jo10RQsas}3w2$-(^3oa1pdr#3;OEZECB+5w0I#QqOAwG20b&Ub zHX!-S`)(PK`s?Z97*fHQq`)GSwcD~`huDRv*c&baY>XmmMMCMb56bS^q492A>Vp9O zFb2NZIcr?X-ksg~I_J~T?`!{r3CO?ru2jUh{=uU80X*sxq?UJl6|!l$t?=T}hS>ok z)f|exEjQe^Onx9{G{Ma1M&9={X%0nMu8o};ixZeMJ*EeFTshYE(5Y(5MK{A|4_GfP zPq&bYX-F6NvSsN(_l}9|y#J)x{+mchurc#iwK;}2%eNi$=Z%wOTW@N?eO=*MmUnY= zg&D`bjMY1$+#Y@xkjI_GvHr-ac|_0<^HR#xjdc?33B? zTT+x0pORRVEo8-IVFA$#B^SVXEN~WfhSXF>{m|mnqGJ85{EWQf{5*ZV^rA$dCHl#U z$r-7|`Xxn)dBth@MY+YgM*3-)IjKNe&rshmEycpZ*uum-**L|>($c`v(m2&3B{|77 zDJ?BA$uv>F2&fn458d39f=t~q6C(YiSCE&^up8>$&Hz7mUM?vvAeYzE!zBnv>j1GB z2OE&womzJaNHux7IEGX(CM$^M+$g`&C~?N%0mH)w|5F}(ci1D>A>0s=@WEQ*@<&$Z z;|Dox>NzYW9==%kIDv&vB8zXI{S}!%^$D^zuO0-l_ght5IrzSPR`Yd!Q+9P8Q+DnE z%g8s&-I-T3bn%%j2sbXa6P20GV4SaEVU@VxR|TU(&HO1Q-kwGb3^pp(F5TO|!~^_8j1K?+ diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_text_select_handle_right_mtrl_light.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_text_select_handle_right_mtrl_light.png.flat deleted file mode 100644 index 39b662e46bccdd98780a2659e96a9c4b3b86f21f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 472 zcmZQ%U|?Wp1QI~NWsp*oSe}@ald7MXlpJ4@T2T^ToSKuGToRv=n3s~18ef!|o>3B? zTT+x0p95kFS#eodKr}SU)R2Bd<6=PhT&+C=qCjesW@R zMryHsNl{{6aaw*+Zn3VBep+TuDv;JQ)Hh5^v9K_Vj1GB z2OE&womzJaNHu!8IEGX(CM$@lTq&~_XqIG?QIPpFpXZNU$93jHCIN1qI`(9%eF-lt zBpRRdE3zxg*p|rj9AI=ld+>YvtmgmxYnt6@(U9<(fcmcXc` z-u?GW27_q8#e-~LveM2iZ%P(Uc*e`>uFex8ug}o&e)6O=O;0w4O8!^MJIwx`20Dhp M)78&qol`;+0BQD(LjV8( diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_textfield_activated_mtrl_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_textfield_activated_mtrl_alpha.9.png.flat deleted file mode 100644 index da1d133d6c23949313c21c02bbd78f2b60d4c213..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 459 zcmZQ%U|{$U#2~<>ol=xoo|u%As-KvY9AA=JQIeLKnv)Wrm|T)smRORS5}#XAloOwr zQ;?A;WW{A+0nrB~7r=Qea29rk)MQ5e(BjmhV*RZAjJ)FfJbk_NqQn%Sy~&Bm8L7qk zB}IvO#cBCPxy8Ch`e~UtsX$uKP~R{u#lpha!o)n;IK{})(!kQvIMpI0Imt9BEiEz0 zG*Q0@s2Ao3-Q1LdOx-dQBK)FfsaKGf4s`2QsCzpD{M>oDq_}`wUQZ8~ARx^H#M~Sp zpFONxas^095E yRkpAbkS*fr;us=vIXOY%S;NGK_GO%EF;)zQ?u^W*zKUK2sr7XAb6Mw<&;$VRjAT~; diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_textfield_default_mtrl_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_textfield_default_mtrl_alpha.9.png.flat deleted file mode 100644 index c3e85546cef7c9246813466636dcfd0911e845ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 452 zcmZQ%U|{$S#2~<>nNpNko|u%As-KvY9AA=JQIeLKnv)WrlA4xSno|;=TT+x0pO{mS zktk%vWnlr)1tk~2c`R@ic81hMM*Yy@)S_bjto)3;;`}^)z4W5Q6rioiiOCtM#rh>h ziFw6o`9-kGnK`LITF+45FfGNx!q~#ZJlQzK$kNil($YB9A|*M=G$}1DG08Mh zzX+%o<^$c_l!8p%G82M6(X-Sm$V&&hbQ9FIodJICyj)UTKrXMRhf5HU<^f`E4v@bd zRxY^$q$KhR{BwXb956yz_keV?*_;3%Wsz49lFY!w#H0Y^XaF%9U@<@lfGhw3b_m75 w_$pi23CI@oba4!kxSX6I@vLFuL%B{X2Cb(I56;cmrvg&w>FVdQ&MBb@05ZH|5&!@I diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_textfield_search_activated_mtrl_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_textfield_search_activated_mtrl_alpha.9.png.flat deleted file mode 100644 index 4a30b56a201e955911926562163a800ee2ddf48b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 468 zcmZQ%U|`^71QI~NWt38sSe}@ald7MXlpJ4@T2YdgnVORlU!0m)l$;Ttm|T)smRORS z5}#XAloOwrQ;?A;WW{A+0nrX67r=Qea29rk)GS8*(BjmhV*RZAjJ)FfJbk_NqQn%S z^~s6J8L7qkB}IvO#cBCPxy8Ch`e~UtsX$uKP~R{u#lpha!o)n;IK{})(!kQvIMpI0 zImt9BEiEz0G*Q0@s2AoH-Q1LdOx-dQ;=QD2saKGf&aesU=*|E?cU~?jE+CiJ)59eQ zNb>+OGY80fyjp5Ifs{mEfqxE=#sL3;A~$3uQh=02UO`AQ0}~UI0+6Et#Atxg03iUf z00fvo#D5^L)%@EFWD0t^IEHXsPfkz}HTd_xKbDC>-;{}gMWpEoNTH{zpUXO@geCw{ ClxZda diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_textfield_search_default_mtrl_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_abc_textfield_search_default_mtrl_alpha.9.png.flat deleted file mode 100644 index eab639304e5da7cf654cc56d26ccb73c2f7687b1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 464 zcmZQ%U|`^61QI~NWsp*oSe}@ald7MXlpJ4@T2YdgnVORlU!0m)l$;TtlA4xSno|;= zTT+x0pO{mSktk%vWnlr)3?&!9c`R@ic81gpM*Yy@)S_bjto)3;;`}^)z4W5Q6rknF ziOCtM#rh>hiFw6o`9-kGnK`LITF+45FfGNx!q~#ZJlQzK$kNil($YB9A|*M= zG$}1DG08MhzX+%o<`Lc8l!8p%G81Awq-UvDkeAM|3F_p|06%wLE-5Y`m)Fz7B?w6K z05LNM$aB0}YCD0HL|%b^4v@wG^*|9*mv!+#$|A2IB$oKlono|u%As-Kr%l9`s7oLG{XpBJB$9-ot69-o(Al$)3%WW{A+ z0Z|Vn7r=Qea29rkR5zo3XmM&$v3^#5MqY7#p1xjsQDO?vzU0K@jMQTNlA^@C;xwQ= z#kxlNX_+~xKw8gGKQ%Qq(IUmvEX~5qB-Jp*$jmI&BE`VW$T%g{A}!U(P`?PM7v^@| z+?0Y$-7*tAe$cbjE67U+y74;Hot*)G?z~)5TtF_br-w@rkmdkk5W(;;l2Vjdo|u%As-Kr%l9`s7oLG{XpBJB$9-ot69$!$DT3no(B4ov7 zVFA$qB^SVXEN~WfhExxuerR!OQL%njenwt#exANwdQoBu(8A=z>dejnKX+a(DJ~$F*VDr#2uO2)Fb5Nm^v>111EeJK z3jA|`GzRz&6uBWQkpiSb@(Mzd8JL(j6@VNKAVvoU5CKp)u>moRW(2aq_`hsmDmHxL z$^uEC8YNE`#}JO|$sygRQj?OB99aMV`o>G)po|u%As-Kr%l9`s7oLG{XpBJB$9-o(Al$)3nUr>}B3V^@G`lssJ=LpZJ{Upbwho|Km6!218+zto=}AG0%?9XQg!%(H@p;Y%gEoYHAc Q2cT*OPgg&ebxsLQ06>~`b^rhX diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_notify_panel_notification_icon_bg.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-mdpi-v4_notify_panel_notification_icon_bg.png.flat deleted file mode 100644 index 6bd8eca80ac9b82b1db002e80c539fbeee5218f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 372 zcmZQ%U|{$S#2~<>l~R;go|u%As-Kr%l9^T+UyzuWniCJ^WF{w;Waj6^XC?!Qq;w%G zE(;5YHYm9O&SQbIurs74FzSaErxq3KXXR()73b&a>!lYZrU0!?PE5{7E!Hn7O3W)x z%P-0;)-}>k%gjjy(t3vasi~=n7AdA?X%=QCsfH;=W@f1tDF$Xn#wn>5X{knr`b9v! zFfZulrW9oAmYERtie5opI?$m>P{(!#___0PNpS(Wyq+E|K|q=xggKaiPdcmYVbjo;aZ}#-G5=xn?Owr Mp00i_>zopr0J(BvG5`Po diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-v21_abc_action_bar_item_background_material.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-v21_abc_action_bar_item_background_material.xml.flat deleted file mode 100644 index e88a92ecddd0cc85ea88b0ee96da8e8082647c65..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 586 zcma)4y-ve05Vk4(Q71qkA;eaRp;F_tr6TFVz`_eKM;F^^Or1Eg&Ckd)@C3XmoJ%s4 zE?jiJ^XL0~_gSHYkRHVaZ5#^=Z;)%rAm`@q#FWlv68$DU1DJ5#f0V?khZ4!o3(c?-2GjIG>k!3w1%#%Rvwg-DWR za(l;@Vv(kCnl5D`c)rSu0`e6wi`-7g>~%5!ubAk)(l}z=zDAFXb~z>2?^j$bSF Ww+^vjcvqm|U$K8*$D@DnuFnrVxr&1T diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-v21_abc_btn_colored_material.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-v21_abc_btn_colored_material.xml.flat deleted file mode 100644 index 329899f0b2eefdcbecde87b19bb2b35123e3ab3e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2286 zcmcgsyKWmt6dj79_)rwT5+{-s3Gp+sA+9CG2&F=fdQk};=Emm1<7}AbSsJtl zR!4{y>TqcCz*(K<{mhQ?_06CkCkC>;5p49MPG_t0Pd7JC%)b5OC{cgaCuvnxqnKCJvU)e8)T(4#QR*j|LoNfmKm@!5eg^&o zmZ7%?d&}TtnEK>E=wPvemYTCt{kIrFH4=xl5gU{Faeypb?fUW9+`Af zvBJI^r@3+6VP@lJP}j-7y;o~%Cuu)5*2Q62cYXb+?pQ}roDPoleOxA@f7JWs%O&sO zWLG$=HZ}IYbnEqL{nXrCFGFocs#YtisOt5Jat@}iliaAAH;2xRcY+|tQ5@;KJ+*Cz z*(lKC?~6kw{%Wf~7xM`~dqcetZnlk)yX zs#YV}j4ZA8OxwAlZ%2AS| zf1f)Ku58Pgd_pb)jK{HvIb-5V6obB60Ioq1lah8cdFsGdi(OD|#aPI3c z{-u(R_$kN#4C@~N+%u)*&G$g!(}$loIp#<^O0lCqv75)-w_`o{G|`T-I_;TnC;nET zBmS6^?~nE4e&~-<{P}kD$1}k9PyF#Ir$6?MgZ*d%a{&EOl4Ip-Q;w1x&za9LX4zJ9 z@nZ__*I0PJXUv^v;u;{iOD{ncL+W)MU!rrGzTGI3-{ya#6VZ-s49m(uNOU0!o*7F zW_QZtG>gFF37^E$_h#%z*>oIdBBL13myBflt6^;0y2-_y&9jn$5{$ zxn`r$Q(>*<<#Z2}E+Ty>WO{1YaJVlDsZ}Z$p~{rzXGv-!*6Ez9tkrTll+gJM+u2F1 zT`xE{m|ZT+`25pxsB$jWCvGZ#>}g>l%LW6-&y=+)XT6?#dJ)Bz_4_VAOjn6z-L89h zsn)FB#u3pHdp#Y6Ruro&!fH$+){a${N^Ft6^}3iO!rNve&<$XNXn@&WZ%Xb$vSQa$3TUfoye^?g-(HGAqsGxq** GCcgmLR^e^{ diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-v21_abc_edit_text_material.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-v21_abc_edit_text_material.xml.flat deleted file mode 100644 index 0ad200e6880a525a5bf9da5d2c3552e7f17fbc61..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1734 zcmb7E%T5$Q6s>V)WEcbiUnr=Un2->d7LYig2_Rc^VI(fwn(k_*wI7r20*Na$uKWT% zz#nko&YeHN-i6^4`~p0uhGND+Fh=_b5QhMzdfU(B8`+4IBO9Kp{7}1E z?P@ocT4kY(MwhGgdfWEY|0}1M--#RV3eIM(vfO!F}J@66O z2R;Fxfv>uI91 zG+Og?xP#~L#n{-2@##K&itCe+n4Vts!&oIfR}m(;(rzQwI*m`>RMcu`7&p@_e2dI7 z>NreIo#CLyK?X4SroDTTungevk~Y1?pPokgxR{j%)t0qmIjDv;X|2C-vYF1MZf z`i^f#*ZAtAlah$72c{fjN5OtdU=q?;kRV0My1#XoZZ+5B3t}69{IKh$g%88wgA&FPE+oGNj;=+*| z|By@n!}d)!5h7J5dYSRFXYyv8fHC$LAe+9HR@{iRR9vLly423ErM}iu*>xqnvRaf! zt7($#k3V=nf57}ty!;vP&rVs#znG$SrsmPc3W?8UA}f^R-iq4g##ZiZ&U0NV_$cOa zE|X-DynUA~@0zZIXz;ECWFqyoG^I2mo3}d-vCnuMpmey#w65d;$ znbOz~#;T1qSG8p0al6fi!)A|-MupOw!n4!U!u#!tbB6&{!bR=LC^Hoo+pkUQ|FT^n zwu%h~PTwjNbEec1ORsB><&BoUVBdp7bPWrhu@`XE*A5oKkAMU4bi*A_dti-HF#t;_sepx-T(jq diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-v21_notification_action_background.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-v21_notification_action_background.xml.flat deleted file mode 100644 index 25350498c3413e7df46e79d0155505290246f5f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1738 zcmaJ>J8u&~5MDnLKazk6<`qmCAw`KVF~qXc5K)0dfe36&*sN zpx_tKAtC+%Euy2NM6}e1k|KPw_JVVHZ1iRJzMF4mc6NLP#@H`_R{dt6`92>+!b_Bq zL+NuPRnq6aH3RPNjI`QKg2k<)X~+hQZ=bi1M#tam%N0?`|a&W5L}G-5=0jAlwM>iLLH@&K}^P86snk7tU`lbg;@j+v51=ois0!->Ues04bM&dVa)6z zzdC?XqgW-fPS?bqG_)>apVuvbqd26q@g{Z92Y@uwbr^7tr+4S@O!3OFw5X2r06kMY zvcxrj(u5;R+=UZ3I^(p~onZ+)<)cOW{27R&-!$bU>vY$#AFB=z=djP~E`zH8q$69J zoIS5|@mlb4@yI71kM4jL#UtzD<#iN~dP(0W7mxay?_~|#EI{$dQs3x4>2pUMS>kAJ n@*L%y*1B5qIUS$xvE%diT{vYvoPU1a9G{R4qgKU)lZe;agk zUmP)iiK`EbKI&L$`Yh8@%aS@v#RQ6S#?x5STCq|mQWbja(j?1cXlF{NiST{TznybW zxIr)p0x$Ljk7iMluxQ4pLTod@_{H`98^U=jag@M-F7FUBE#W5m$_8C>afBzTc$Zs|L%|UdaM*mW`cA&8+S4qrFC5`DAia( z!L+k;aJVcet5%!wnxJkM8_U+3z{sj9k5T{K>SF?kbwVzoPJwSo3%U)oz(4Hq=C6zQ hIgar$V*G5ttOU7iqYc*qj2O;n`=CaX%R1nj+CLAxid+By diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-v24_ic_launcher_foreground.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-v24_ic_launcher_foreground.xml.flat deleted file mode 100644 index 1a4a32a6658ee9d25d790747573e8de3b577fe10..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3076 zcmdT_O>Y}j6n&2Ee3G`50;Q^mrDOq>`)0=T-4((Jv2fG{MQtNNG_fbKi9KV@OcK~Y z#VS98HNOL~Kw^i)iUk|Qjs+Wb;hgtoi0gzF1RI`pe9zpu@7_D_&78L&g!l&FSlt+8 z(Mhy7j*U@&cN`rh{b8K#?x$INkfle-;QGDQAkeWF{%>CJJngu3V0@6rS#Ers4wF1h zjE8AT-dKDS4t(i_yl7iyC{3&9yE61~;luP)nH}*3#vyE%u&{{&UfcDg zXOVc0p3Yvi({`nc05oK^95foJY+ldyqy=tCE9@f1aof1-xGl}?P}(gWg6DO;E_i6Q zZC?f!SHN`7xgWGuOb@HkK^g~lyN<8Yceny5?x<3})pGGPmh`Qz>z_M4QzD6@f<0S$ z;7ro(X<|n-8c{SY z@Et|TAWKIBu=qGm?hgj|&h|&+aW@^OnOI&XfAHxv7K@9+cyur<#Ky+3D5m!eBZsa{ zqFk0KWIvr4D(js)&x)8HDjhm6oTSN4oTcb#8Wls-q53>t?E}hob?) z78j4>et{mZTsa=aC(|@5-qQ`PuU8Ho*=(Mu8PK68wPmUq1m>Ec)I!3<8O93iRbbxF z*ek#S;tSpe7|-!C_znCZO=@udI>2kptJBg)O@yQ=A1!^aUgBdvvvXPV6h6wZu6TC# zA~>VRw-NKa z{dx3@GyQ&5_-}h?ped7E1IOBfgJb@_!9UI_#XHX z_!;;W_#K!%&%qr>AMQBKasKg4$N$n2PF~-0Z7^uD8FqXyA7@t(xL_fU49g8K%2~77 zR|3{(#L3_h?!!EWv>as7U=%0+xr#L!qavO_l*XeZjxvyRe?N~4ki3Yp;!#B&qnCnu z`meO;6zfN=slGe%%XDG>d*?o0_KnTz4!=8U0JVhQA}xK?JL(U8wEX_L_tcQ84}Qz+ zgSx@NdDI_%gPcc8AGPQ*jhW9?)!=*iyc!5mHE63Ee9c*xw$g+7T$O)*J?HfRd7h~g Fe*kJ=PfGv* diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-watch-v20_abc_dialog_material_background.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-watch-v20_abc_dialog_material_background.xml.flat deleted file mode 100644 index f75e204bcbbd32002868a239ad4473f7254f8515..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 666 zcmah`%TB{E5Of+!AE&B{1VUUmAu2WQgNmdlegdx5#&#ZU5?8jN9QgnweuV$y2!*ELEY$Ga6^P!0u1!H0D7t4{q<+ zoX^5=5{7dTa2741IEH8eRH3%G*jz`6r40Qsiju&Dr~NNw=CEa!Edr>NK`- z{deFqv|n%V znJg%5H&vQO)axn143tSO@Bp2{w(2s^INtf{bkQ}IGa%>K28b^#8_7kqkhk6&-mbOr u+ry`hUG1~n2?Eb@ZEti#oUO)|{jZ0*7IL<%&UUxno^Wlo|u%As-KvY9G{pJU!0Lxlp0@XdLSQuNFm?s;j7+G2xSXvsVTBIZ=nI@&BB_^3B>K6g^ z!d$Ogk&#l6sas}(*Bg44dIfpu5>Tgi2Kc%2a!GLk-OcOi;SvO-6+oB+no^Wlo|u%As-KvY9G_H@7oVJwnw%Y9k{_R+7oS^FloM}YU?610 zWnlr)0VN$6VO$m%0|zbD!>AuxoLW?@pOv4HSDc@xua{nwm;$shIT2`Av3^NWVqS4t zeo=0*u91FPW=<-Q)-%*MOiQt_Ft#u;Pc}|5va~d?v@}k&NJ&mIO-f5kOfpT>F9Pa? zxn8#-Bc&iyx6A~uH}nef(is>ep-%4%@N?(olHvloo7dCBB?w46fG`KxM+rMaft&}P zE{-7;jBjrk_B9&_v_3pPMUjbbLX6_6qsmWXG<+9$HE;JhyJ6DS)j#8N|72&__ zg`CF3*XPr&rg8soI=gJv-0#{VJoi>*6&4yvm8FyvZCtTx`@97uA3yC{qYn%g1_n=8KbLh*2~7Y<&$>SV diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_btn_check_to_on_mtrl_015.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_btn_check_to_on_mtrl_015.png.flat deleted file mode 100644 index 57866356b028678e1c82bb26cf93cb7009863d71..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 696 zcmZQ%U|{$J#2~<>no^Wlo|u%As-KvY9G_H@7oVJwnw%Y9k{_R+7oS^FloM}YXewmI zWnlr)0VN$6VO$m%0|zbD!>AuxoLW?@pOv4HSDc@xua{nwm;$shIT2`Av3^NWVqS4t zeo=0*u91FPW=<-Q)-%*MOiQt_Ft#u;Pc}|5va~d?v@}k&NJ&mIO-f5kOfpT>F9Pa? zxn8#-Bc&iyx6A~uH}nef(is>wK%L$h;OEZECB+4FH?OCMOAwHD0AUWWj}mru#W=5DdfI=Oxg zUth*F$hRn4^S_jO@L4_WfY`xO-VZ-HFR)+Z*v9QJWBtnA%q>6VN}sP+IPu>(L(tcu zyVi2QV@BaDhW}ggpG{>rFIpy3`{wH&Ifole#(w7$CfFPEey(EZ-oW(hz!Bj`mAMC` zR;>Kb@&D;-gY|#8%p83AXB5>PdtB+;z{~j&sH9;}XgaL4CPFbHX5Rj%=j@B;am(oaKltP~<4^wO zKl`8m)YteFfAPuwC8z3rr~hBH$!8`o(4NeVe{?86XT{o|*}(W<@O1TaS?83{1ORW_ B{(%4h diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_btn_radio_to_on_mtrl_000.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_btn_radio_to_on_mtrl_000.png.flat deleted file mode 100644 index e7630c00777c5119f396d5fb7e629ab6ece115ff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 915 zcmZQ%U|{$J#2~<>no^Wlo|u%As-KvY9G_H@7hjZ^l9?Z0k{_R+7oS^FloM}YU?610 zWnlr)0VN$6VO$m%0|zbD!>AuxoLW?@pOv4HSDc@xua^$A188G%Vsb`mv3^NWVqS4t zeo=0*u91FPW=<-Q)-%*MOiQt_Ft#u;Pc}|5va~d?v@}k&NJ&mIO-f5kOfpT>F9Pa? zxn8#-Bc&iyx6A~uH}nef(is@KnIJCh4DfU3<&xq8@_0QxT!MhK0|;|~eUz{>l!1XM z$kW9!q=NCym5p7&(Gsi=^54s{@n#tZpAu4qVpWV_X*wtAH|f8bwBGdYnDd_N9A}iS+WhnS{%iZM-@9%4FD2%&)OC;g`u)*6 zBu+TEng!IgPh1la$aA;w_y_sypZ`V9KUik0oWI9-^9F;@=cJX>^MYQN^{II8$bZxQ zZ|Tkc{VTd7AEM#aK7iA zXvJ>vWnY=Z;*#a{>!K^}Rn|={jI*wJXXSKo<_5uMeG^Jt4^6CmThw;x>|c)^B5~jL zos`tio-W9C_s)JXsfUs48A7gYzV*~JNc?A#)|%E}k=lTQsNFuIOZ40e)LM?63=^D_ z(PCiyChfttR)J}J6TdhfTDVj|Ebsl@1M`Is{^NhBxBlU0yXyu2`7i#P|7icMjm@BR z)YkAfy1P)`E9ZmZqvALGo%>V%P5Bl5?&y)#Gp7fye{L7B!-ZK%^hAkW$ghys$y?LY Z)D*RkMy@Jav;e4?!PC{xWt~$(696d$d3OK+ diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_btn_radio_to_on_mtrl_015.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_btn_radio_to_on_mtrl_015.png.flat deleted file mode 100644 index 003f7bf9204438db3636b91ee3e83fa1d95d5925..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1049 zcmZQ%U|{$J#2~<>no^Wlo|u%As-KvY9G_H@7hjZ^l9?Z0k{_R+7oS^FloM}YXewmI zWnlr)0VN$6VO$m%0|zbD!>AuxoLW?@pOv4HSDc@xua^$A188G%Vsb`mv3^NWVqS4t zeo=0*u91FPW=<-Q)-%*MOiQt_Ft#u;Pc}|5va~d?v@}k&NJ&mIO-f5kOfpT>F9Pa? zxn8#-Bc&iyx6A~uH}nef(is>8nISIi4DfU3<&xq8@_0QxT!MhK0|;|~eUz{>l!1Zi zhNp{TNCo4YDF?lx;{}e@-^*}n7K@$gq^QRo%lYokQ^Q-XSDSt?l)hz7S;_tW+`5<- zoBSUxx~btJ{;yE*kyAiOkD|GyY+Ju{-o;C|UH*#{wK@Bx?fd!c%pB{(6}{JiX#XBH zwojKDxqXCEOD1M==@(AyV2Uc!`h082oQtmKC1ReeU$N;VqkTqE?xii48#7m>3BI#D zC3my!`;{O4A9l=Gn#Qrv{qL&}eKXkkuPpX$mvg+d*g5*Yd#Bdg;@tO_(&DxXO z=7#w!z9(KZ(Yo?@(rMX$&HZzad}|Z0HxRZf@^iSm{_@VutG}J{Py9YOL*dl_f2K^b zw@ba`Zf!fgt=(sj?r$|)Yt_2WT*VKui}c!NNfhs`pJ_a`!1Sy=(>9J-9FZ?A%edW7 zCWrE*PdPeE`TwfPY*A-U-rQ27q;WgmC6u$xV2RDMjLxOA7PIa8tJb*fZLES<`lFQ` z@`90mAAhQ^kKLHlWqMrr&FjC{o@PY{EBe&nubll1kd2< L>gTe~DWM4f96h(u diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_btn_switch_to_on_mtrl_00001.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_btn_switch_to_on_mtrl_00001.9.png.flat deleted file mode 100644 index 7b6f4069b02d018bb834a6a4cfc227ee7d1863f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1798 zcmZQ%U|{$K#2~<>ky4aco|u%As-KvY9G_H@7hhbSS(2O)Uy>i6pBJB7Qj`;K00f3Y zR$LYq5KU0hff2@KfiZB8EApqylL@Lw&=v6blPu3lsBX;}j!HO9M+w<5Y{3gRKn!vO2%z&Jq7V`u1u((llUH0B7+85dT^vIq4!@mYpCjTf za%{i(=I!5pzG3-)R9uH+<3vRlrj&q|*dr4=T)K8FcJxr-;<~)V!}V~Ph>BOs0oM$r z>B|_ImK^ZZS*Wr}$3;LN;H|RiMn5_i*M5(Z7#0{ckmNI|l_Sa0*Ho zF#J;aRd`j4)93d4E8Azj*{r}Meq(Cm7Nd-&eP#z7YU964+kT4uX|~o)#G&o~rurNA z)9bAM7yl1_5b#7-k8Q?(XO{=;Ognbwerxf{Fw2S1-}Gj$*O_@ccJgw#JaC>O!FoP$ zZ`=ds>t<(owNfKCm)&|15dBu{%&P$DwA2Y-B<@0SvDKApAI>}o$lX@XxvD|?>&wKm zw?qQA#4NlxM{ZvbzsTyoZyp`NTUVZ*wb?kR$uieux!(L$tv8gXKR!|vvA5xNz0oFa z#XXaZd)f^)W&iiw@k{B^Bqn(exoc|Uor9U_1~7_b0mY3KMOucQw*2uV%T1$vH0}GuQ9WCZdJBU%1gb% zn(&qJ;X;{M?prO}e=%H`s{fmfsbq`lWP_)#lFr_eJg3sPt$}G`aAZu=_p;Mw&x}eL z84OQv+k5xHjx(%_tC*y!I5vo`WYk%>kbTAS>GSt_+-zumpR2VqL}Nox)$9lSJLcrc zJUqMg-mb1g*K*g%K9t$ea3D7DW{~HMoR?iq%%^?^U$0b(I(f<0<@KID|7QwKT_>w7s@+Aj zKt*_E`|)*3MTeiAQ&`vTCTAlhmJn`sn$t!~uJVGj^3KbmH(DQfr}v1aS_gR~>(4#e zH{-qR`n8N7f2TW#C0eeY$>qGSUhLyGwu+zG0@)&mE;Cm}oicjXyY$NCH290*4OQA-ljR@?!hM+M;=eQp0iCbzo?{~AvyR$gyAaA(6whH?(Z#5y0VeWTcd6c zm#lwJ+502EuBC;DZr9^-nf)l^{T;iygPRIn8Rv5KZnmjgSZsZ3_M?txH(VW_ow+_| zo2k*;zW*DF%if0Vztt%FH2$Eh^`Z`g;`{YK|B0*VUOu0;AiybULdVgl*;W?|H@yGm znyLd#=&f2c8&8&=f6p5o_Uzly=Gqq-uX?sBu|>YhY;+M#I-7saL)HFv)q?!H?H9!u zkDXTLXKH*fp|a%v@%(f3|FWmn9=5A%6A9VZu)L}Gx$>=m?4-?nkM>^k-=1^((htAb zJNaK$H3Ym|dGqAT-PhOEm;T+}UQntusmiF`XQ9LrQS)-UMXQsHtXwxFT)A>}&Btt& z3ES#l-88wRaKdfd%$FiY7dW_6<+PN{Y=3;nUiEs_()lWXH}U_@NLro#{PO1u7dXPX zx)$|Kc9`&Clh|aP84O89n%xBlb$0xDyhQc6?E>-ehJywA>;4}Qd~nHbs%FnW;kWtQ XXB?NZJf?LJR7iTd`njxgN@xNAl)K_e diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_btn_switch_to_on_mtrl_00012.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_btn_switch_to_on_mtrl_00012.9.png.flat deleted file mode 100644 index 16a14792bbbe2d5dceb07d3fd8d13a4270872a47..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2003 zcmah~XHXN^77j5$1R{v22#=+>fS@Kp%2K4oP=W{vMT4vfDa3@3BB2N<2q6JiDas-s zf{HvTQVh=^DnW{%Am~#AE}{3bh!h0`!43L+3M+)c*?#~=p#=v@ z8EOJEp^z;tO)brSA(@g7SXsfXtV{zf$t0pVkwPI5%?Yp&Y47&|_MfJb*|h!PW`8#c z)C$UGo&*3I<-Q&FJlewrqM)H5br6&*(o4z~8vt*NW#FEFR7&bhwr4O{Dt-j*Qj+5r zX>H-Lb+VLHm~3~Vyj1)MoE2;1*2qk@4+#JQZPt+*xD?X(ahbfs*V5Mnlx8z2HV&~7 z|Leb1zvcfvfz*E09>r@P0RUME3hC&BZG4w?g!-$m+S4!NeXF>>GwSCVr6vrNn^4ke zd@+AJ=meH}xaU0h;cIB9VfCb&tW!b0CPs2OcTc=5?XaS+IKGLOK)iqnE-@EmSR}uC z68XM;%^Espo=xd1$R@K#ZQ!$65${vKSdI5Z&&aIDYG?!Zv#^i)Em8*f{VDZRZeWnl zp7v(s!3Kc(!sESsj8>%+^U5Xl(XE*@-5Ywpcu%?XDnlFR+ye5qbQ|Sb6K>Y0X|`st z9e_J~lGaDHEmaz{+$6(L?x)eZsg!N0CFnfY!91L3DbBoGF{0RU>YsXbCY};}`gLgR z>R5y}p4YRLwj|`eye6Rxfn7m|n%n@^r~1V`wm8uF6LCaJ7^M@?~E;OC^AbA%RG+ohi zhfZvFx`#$5&i|d+eRyHnBL7W`;>$yJepr7hZ`*?|Lu0~7^r(2fTltyqG~n4a*!XxF zz~({8mjUrQZr3L_u;6!|r%D=KaU$yR$+4_J#tw|Q^xxP#tHl`Qhn+j-i7xH*pj&QD z&XLRM4bZAIhHTEDtNzox(?M-cF>TPQMKCCi?Z0`bViRBJS9#mnl>fyVASg?4%0;Q5 z4><)8Qz?v0-q6ak^R{(pK^RUI9HJ9%U27yFS0`i5n_jS^CYKG0;=q-doN8QGu4?$| z^UBm-y{?E`E_c(g_Mt|sKMq)sc& zM9e=nlQ_9OvO5E7IJo+gL0x!(hajOgaqz8qa44h)ty*!17OyO3Ps6Wqp^z)0E1QhN@73(P!fl4cdiW*l+?x(H zzoU<2#8pPAG~HW58Di|R7n2kIJSwJ5*tG>N1=?FB%m17ncmyeG=9ta%)vH8+#L9XnDnFh9y<{ z4)xsZO>7;^P}hLkQ^Kw}wKwb9R>}JhR#&*BMtiw@*Vtnir;8vV4;tKiRc8+<361bE zZlyLiELOzO78V(FIo8yLC^D$pEH`g$c)p@PFEZl8kZ%!l^mWihGw;BKP9tGy^3OnI z*xs-fwjBI!QhvjJ!hH~>=eqTgG=%O1|4oO+>o)hi5>4|HAT-5Vcs(~xO1n^b|M@K&J2}p%2Oyu%-aeRJ@*<6Tb;75l~R;go|u%As-KvY9G{$+6rYrsoSj~jUz(Q^Uy@%CpIcIt6Q7t< zkdY{4#bsdu(FP?Q7-3u%7y}0_HJMRAv^ce>SU)R2Bd<6=PhT&+C@}?SZE|9AMryHs zNl{{6aaw*+Zn3VBep+TuDv;JQ)Hh5^v9K_V1OaIS5as}R z>@T+=50H|`EAY<&(iq@BP~?WJL<*1!$tws+W?*9CQ~+``fEXQsOa%f7AeI4QkP>Ym z#sxqD491!|mC-=9hNp{TNW|f{=Nmaej@x+sZ+YHw0g*|pecm7=zOC4E)4^Z<4u8#z WvyALcDLbZsL_J;oT-G@yGywn&3Tqtz diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_ic_commit_search_api_mtrl_alpha.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_ic_commit_search_api_mtrl_alpha.png.flat deleted file mode 100644 index 9a58acbd6a3070f992d27eebd3e9ac8ee1733e62..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 504 zcmZQ%00Kr3!N9u2R>FcEzC8hu^PEJhD zNG;YcDN4*MPRlRKE!H*CPs_|n1=4zk`i5yK78b@9Cg#b;DMpr-29}n_sTL{8Nv26@ zX^BauiTXuAy)aMcR%E0UWa^fg5aS!Yg1q!6P=|H~___0PNpS(Wyq+E|K|tC8ggL<8 zO4u0+S}SiG4+< n#ILgTe~DWM4fc!`%U diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_ic_menu_copy_mtrl_am_alpha.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_ic_menu_copy_mtrl_am_alpha.png.flat deleted file mode 100644 index 2c7ae19441397bb2802b617fc5cf2ac98bd0ce0d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 446 zcmZQ%U|{$L#2~<>o>G)po|u%As-KvY9G{sSpPQOj8lRkBP#K?FQj`;)m>Zv%Q;?A; zWW{A+0nq~`9T;I;78nBuE!D@UA6lGRRIHzspOIIbpQo>vUX+*uv@bjqS{hhd8mC&MBqy0BrKKe%nI`HN z0rkS%uUnCkQjn=zWHE>qsMO(36Ss}Ig-s>1{TTQw;|IQv3_6zq!WRoZB6#rq` z!7g!!^;@cf!GyJZ94p=*O}ymnP^%yDMIs?&v&4p#&kP@2zpvNDz{teHA)v6pgc(Rb w2soR3V9Bi=zYLxqp8PYaz{s+B`QA19y=g8pYh?YLfR14BboFyt=akR{0IBnXxc~qF diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_ic_menu_cut_mtrl_alpha.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_ic_menu_cut_mtrl_alpha.png.flat deleted file mode 100644 index bd444e0f78da692f68d46caeabbff2175351d32d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 752 zcmZQ%U|@I$#2~<>oKlono|u%As-KvY9G{sSpPQOj8lPNR5}#XAloOwrQ;?A;WW{A+ z0Z|Vn9T;I;78nBuE!D-SA6lGRRIHzspOIIbpQo>vUX+*uv@ba^IU}`LzoaNJuQ)Bg zD7RSGNIxwzClyHR8R{FRrC3-PTbP(98>bjqS{hhd8mC&MBqy0BrKKe%nI`HN0rkS% zu3M3jQjn=zW`f5PdIfpu3=D6e4(|-`bLZuf;sUyw*VDr#2uK@%FbBv#f4L2L7#J8g zd%8G=R4~4s&gz$w$kW={^E-!mdTP)4H*C_KkB!9ArC%sL*!k|!L-ya71D4#`V)5SO z*Xf_@zTc6vDg4W>!O)!XSeozLYw0M7iWmoh*g21O`CW85z@zY6_RdmW7TcMj2SfLA zzIbG3I`tcmfrt2WZLW^F;hgthI(=RJMsk7gH%}>V!KBdS^NjcJq%`L0?!KrmRn2En zaM^I1WS?7z3xieR{ssKI|jw@8?_FRdsASRzykrg}Q{i zmGyNB*{U1-(c=}PjA26}XCgaKGLL|OmxFIr#@mKnU*c{s@_MX#ReaI#UlQ-?2eZWH zYq;t?nl(v2DpgO(H_E;&)?=1I?Yc<4Up+d9IuzR1rx;}CTjXx?zYsA=K>OJ=Phb1f zVj_25s25*eenTjYd(o*IN(@T(7@3@QxL9sm;8A`|Mm9R>N9@M-`;21u7e5bG`7Qh< z^6~CD-P69tp7++f)ewI(!uH7`VV&wN;ZGKwk8r&I-~R7*ehcQ~8_EtuDtXNV#v+5K LtDnm{r-UW|$>A7M diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_ic_menu_paste_mtrl_am_alpha.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_ic_menu_paste_mtrl_am_alpha.png.flat deleted file mode 100644 index dea2364d51a8ac44639a0001f3e3927c61c02fb4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 511 zcmZQ%U|{$G#2~<>ky4aco|u%As-KvY9G{sSpPQOj8efoDT#_1}TT+x0pO_n;m{X9E zC}hQDVFA$uB^?-HToxDu2QAgls2^IKT2!o`m7kGUoS&z!mtK^Z0<<(aF*zf(Sihtw zF|Rl+zbLm@*GNAtGba^D>lx}BrlnX|7+aW_CmW|2Sy~!cS{kQXq$DSqCZ(k%CYdJc z7XkIcJfK^Vky4PUTV_JYCwc{W>7Su4?F{g9=jD>(0&;mhJzRo-v;hcnfV}jV+mHuH z?ecVS45?szd)=Drkb{WZ!-f^oCz#))UQ10?-(m2%K)i`DJV{~lp?4aLj!orh9l;TI zK8H81j<@y9SYvtVQ^ng;jiR16n9koQc)WRRB<{S(K?dgyz30~43V z0w}?3xXI{(z~W2)IsPoQj=pbv&B)x_^50$_m-$TpY#Gm|)%$zD@Ldn|1%s!npUXO@ GgeCyCqo!m4 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_ic_menu_selectall_mtrl_alpha.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_ic_menu_selectall_mtrl_alpha.png.flat deleted file mode 100644 index 7a696537563d34ec7ce1125ee4385101719db71f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 455 zcmZQ%U|{$K#2~<>nNpNko|u%As-KvY9G{sSpPQOj8eg26lbT$Tn3EHqTT+x0pO{mS zktk%vWnlr)1tlFAVO$m%0|zZNfl)uSIJKx)KPx{YuQ)$XUoX8VF$HLAa$<5uYO#Jv zQDRhurRhTF;6y5F|xEYu(UKzwMa=$GEGWLOH49N z)Gq?+h510YA|s_BQ@6~7pjY$?^3oX?wnH7;8Q|y6%O%AH(?~xil2VTcl{E<=pEZ-v+gMf3b&XuakBoM z8&@+&UF*`mn#Zi3dD5(0AGR`RWIL7%_9)cx7iCU4TFJ@7r1s>s3};Sl!hQY5Ul0DX zRIPi@eWccazrHRomgVOghEEPD%2y1y*^H6|4$V}bSn?`Zx5-Q!=n@7`S3j3^P6no^Wlo|u%As-KvY9G{sSpPQOj8eg1|SdAuxoLW?@pOv4HSDc@xua{nwm;$shIWajSwOGHTC^4@% zEx#zYSl38DEi)$-Nb4Eu8>XdLSQuNFm?s;j7+G2xSXvsVTBIZ=nI@&BB_^3B>K6g^ z!d$Ogk&#l6sas}(*Bg2TdFc!c51>x(4DfU3<&xq8x|`S2!zBnv8-Oqe$VY#<4S5(C z7?*pxIEGX(zP-x4CLmGdz{knCx3|SQ&$u@s_x8G-hPR&q>20}ts{S4SU6Hp-{rhY? z=}*sp_wV@f#Gvj+VaK~8g3&3DL>|snXny;`U+`vOQnzT;qL*r67Cp}vL>%Nlo4xVS zYx!G@sTEDn8Y?!!@ z!er+kA7?R_d^D(k+HrjsDroOO%&YI0u&;^if+{aXiX|UsKI&N87Wh8amb$nqd*G z&jgnqVf%Wa)nM`#FxemW0%C1B=Pkho?A3~XgE2V z38%?c9+lg=qfL3jL>0m8Bgq=;3vCwYUOXx_Gty^%6e6$f*^ZJxd|WW$RkT*o;# zcc`|QPmK^ezCgLZ&^S_O!kmvR3$>NaG|pI>JU+^``{Ek`?Kgif%KEq(`>hFJ^!40$ zIOMc$m_YYQ!P)A|A{O&JzIl-ESYS|{^Z&i9qA!m2HSN;~1I8SKr>mdKI;Vst0HwYe An*aa+ diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_ic_star_black_16dp.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_ic_star_black_16dp.png.flat deleted file mode 100644 index 3b2c0f7d86286e1c9696a5c45e3b289389690a21..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 585 zcmZQ%U|@I##2~;WpHh@qo|u%As-KvY9G{sSUtE${6rYrnn4BGNXqHkSWW{A+0Z|Jj z9T;I;78nBuE!D=TA6lGRRIHzspOIIbpQo>vUX+*uv@1C=IU}`LzoaNJuQ)BgD7RSG zNIxwzClyHR8R{FRrC3-PTbP(98>bjqS{hhd8mC&MBqy0BrKKe%nI`HN0rkS%ty__i zQjn=zW`e^5dIfpu3=F*?VV1f&%}m;>aOo5h>z85kHvJY5_^ zDj45hG_JYlDAVw9`L?%ZS<817=iZij?YA}gZSz&PlY3i1M`f8FHyJ;H`! yCA5}LslHJ(->A!Q1GD+G#haM;wug7|WHD$5Ns=L5oV(@hJb6Mw<&;$UP9La?M diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_ic_star_black_36dp.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_ic_star_black_36dp.png.flat deleted file mode 100644 index 60047e1f0e8482fb9a079368c94bcc4c6c9b24c5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 904 zcmZQ%U|@I##2~;WpHh@qo|u%As-KvY9G{sSUtE${6rYrnn4BGNY?e|WWW{A+0Z|Jj z9T;I;78nBuE!D=TA6lGRRIHzspOIIbpQo>vUX+*uv@1C=IU}`LzoaNJuQ)BgD7RSG zNIxwzClyHR8R{FRrC3-PTbP(98>bjqS{hhd8mC&MBqy0BrKKe%nI`HN0rkS%ty__i zQjn=zW`e^5dIfpu3=BO?5I1%P___0PNpS&ryq+E|K|tCAggHQd`TwN)30vdJ*Lx_?Ob2mt@_ut zd~f&Z@44OQpa1p``7>|%ngmO^NuB(A)S0y ze^0#s_JDDzfUj!7T_=~zHZjwtZSPoSzNGB?ruVKkQJi0nxC+KNJMHpeS(n-N;tI$0 z9QTr2P2OD!yK0v%uvY(?@P$>Pg}Z5w)0fArp6A{#e5WG0CMR4*>;Y5K1xXoEe`%J- zQ3CCpj6E(B=k+M2DkyulJU8X9|K8C)>wo;A*o9S3R2MHZVF~cB=qh7fze)7V)Tern z3d%LR8|Tb%l6fOyc_3oK+YaYkWe+pV1VNS4Y^7EW3AEPI%QP z7RTEDl|7!VJDN1!39)WaU~U&|l~u77JGxmc@QT)>0EMQP9Zkyw9A-AwxaoZ9+^2D^ z<9f%*xFGo}+J|kAxRh(O`tm8L-RkvCs_dWfg7@OLJ5Q#oix~@PB%kLBJ+|i5y?8}d zCb4C=*cZeF9&uv5BERWWMBvTW+DjTf&b_$%eW&B|KppO+3ss+L@@szQt^rtNnN z{;^i`y1z)A!gU#xEiX+D;kmff}6`Zf~Bw<&Z~q zo?^yt2b)t@+)Qdyj5-@Osx12?crk=G)lIqnwrAp@&?$FM+;3Z1FJF87h;aJx{oiNK z4p5mC&M|+6qfr{m%(Lk&=`IUgEL--99PgSW diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_ic_star_black_48dp.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_ic_star_black_48dp.png.flat deleted file mode 100644 index 9ab8758dc6eb3a7779b1c020fb7c0363c6c5bc2c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1139 zcmZQ%U|@I##2~;WpHh@qo|u%As-KvY9G{sSUtE${6rYrnn4BGNVv$lHWW{A+0Z|Jj z9T;I;78nBuE!D=TA6lGRRIHzspOIIbpQo>vUX+*uv@1C=IU}`LzoaNJuQ)BgD7RSG zNIxwzClyHR8R{FRrC3-PTbP(98>bjqS{hhd8mC&MBqy0BrKKe%nI`HN0rkS%ty__i zQjn=zW`e^5dIfpu3=HMW5I1%P___0PNpS&ryq+E|K|neIggHQd@tC-OGXn#&ou`Xq zNCo5DTerK#N@b3Jye@a?Qty>ZHZ2)~tlOq~X1gD<5eySgQfxe!#wMnfD;@j9wdG`- zh{%mYVv;i?F1B8j@+e81bit{tuTLYDrSs;h%w=!ub_+&MYpj zAJ2-&hkLZxt}IPZvruF!xnt4#X^BM0Y^Igl{dr!gf8}}{7r0QB>v3)1!ns_Jvi>e| z`nxWKW46oFJu4XWNX)~oH@?#6R5%QF1AwV})X6FXfOd6l2qnishAZBfoLyTGOO zzSE=6cT2sR5S%O{W?FLMXHn+V6&u5Lera8?ac@y_k7U%HwV~}RY^AqGJ#sUSQ4n4n zleX<>ScOyj*|HZK?-x#VsK2@1efwFfEs=>EZ!VKeouQU#cE2b)_d@D!+qx^-oBY?y zzu6c&o%dQ)-oCWSAzLqHPQ2__?ZGQ%rBrl7ko)S2oBB%Wf8R)LHNLuB$^EVA(f?Oc z+D~}iJto!0Hdl!~_fo=*TVJ~c*Z9va-g4%CQj1mMN|rls7M!r#KU-Td{6}2Mo$YB} z7g%o1D7Fak|F}zptCpS9+|d?&%PBaVnJ%v{hPYH_0}6ju2<*rHq-g zfhx^rM(Yc`(VTf(Q)o@}u~))zF7+!WuYB!#=~IIfM76)`QHf2O2s)z`|K76x(4?E<$>PkH7YxU~On!UD^xPoLj@TBLRU z^Mue>JYnfmokQ!KGA4EIZnLq7Ra>yBd#}-x+wWM7KHd=!|15U(%+~M~cZ`ibE?jXT zarM>Ju6y18YHEFHH?rKW((VO?CZQFeKf%bOqQ?mQSoPPM8S|@ZUus?gs z61TT~oDYjuMrr04yGkvq^sWe4b?fZpWvsWRcr6VArRA(I^1ogf#P@ej*#^u|44$rj JF6*2UngG+P;;R4v diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_ic_star_half_black_16dp.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_ic_star_half_black_16dp.png.flat deleted file mode 100644 index 8e967fc5067da5a236b2f30f17c349b2fde82d45..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 495 zcmZQ%U|{$F#2~<>l2Vjdo|u%As-KvY9G{sSUtE${6rYiplNO(plbDlx}BrlnX|7+aW_CmW|2Sy~!cS{kQXq$DSqCZ(k%CYdJc7XkIc z9IsoEky4PUTV{gK7kUMG>93)#>(0&;mhJzRo-v;qiofV^|FcvC%)+T`it z7*fIb^pa{o3!{kZ!)DPt3nwjHQ0oyQRWC0!E2Bbx$G4{M2iHE_`yl$->0P@I@s$jG>(OKb-A<-Q9P0O~B#) z+5G48Up@(+`{3vi1=c^SgmTsd9$%lmZ1(?Y{4=IDolyRHXD`t844$rjF6*2UngAC4 Br9J=v diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_ic_star_half_black_36dp.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_ic_star_half_black_36dp.png.flat deleted file mode 100644 index 6e6b4bdd0f83eb87bb94127a133b866d3cdfb799..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 681 zcmZQ%U|{$F#2~<>l2Vjdo|u%As-KvY9G{sSUtE${6rYiplNO(plbDlx}BrlnX|7+aW_CmW|2Sy~!cS{kQXq$DSqCZ(k%CYdJc7XkIc z9IsoEky4PUTV{gK7kUMG=}V#R?hNpA=jD>(0y>)4)59eQNPB=V2gp1BpH!b=U|`Jg zba4!+V0?RRb8*=sj$dt0_{xkaYUzhyVBnFp`=b@$=i z-~2Vly6a|DR#t9xUUS&vYDdPBs2;_u)w&lFy0$tzH&hMC4%*^SZJ--4Lo9=D8Ee%- z)>qyO#a^&1W65%C63gIT#`@_xlkd?j4*XjjY)_O+UzxM7CtY)Pp~YeKH}#EDmwOG* zB2m5jy&gNsoLFOG=o3Ya`!D8?c6F_fFdPB*~bhkHvL zZ%H7p$ST%X4jaWXG?%ejtz-MOhBYhfJ*Va~t^YeUzZU$Nd8GdQO6JLj?4%w$t99U(SXEf4w}-`W;_cuC<5wH-J5wB}TQIq)=ZT5_F%bYqf150A_&r2uoD$DDfw pGc5yk999UL96o*e^y~OgF1?piZ(Q(pH30@cgQu&X%Q~loCIAu`^cesE diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_ic_star_half_black_48dp.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_ic_star_half_black_48dp.png.flat deleted file mode 100644 index 152adc366148e4a91c652cce5efef1a37c3b4a17..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 808 zcmZQ%U|{$F#2~<>l2Vjdo|u%As-KvY9G{sSUtE${6rYiplNO(plbDlx}BrlnX|7+aW_CmW|2Sy~!cS{kQXq$DSqCZ(k%CYdJc7XkIc z9IsoEky4PUTV{gK7kUMG=_*VRXLbhox$|;KaRGU}o*phiKso`0IY8d=n7Ds40|Vo0 zPZ!6K3dXmW&Uc?FlsW$K`5B$8sEbRc`YN&Oy>36;QgkC_=@SLdQ;E^l6T(jJcq{m} zQ963EMZjy1NLBObQ`5qBOjxw$@{-*2(_OjG-fm)-IwrT@zjj{z!PkNMK`TSFrh5H7 zK6PTbcxh~n`(1;^9ej4X8INnWKFDj~w1d(APQzN0 zyA7{fBsWa5G*9R-U@qEI%KVGN{J}!$4V`V$1yc=}yUy%jY;KYMaEe1?(?p~8m+37h zj1nwg-#qE)SJ)_+XM9dY{^uorL=2AKu# z*c|xh-(h%>c8a&b@7P@i4TD!~3?Ui27z=vx^BCSNe8zSl?cPqtfTTmb4Wd0e87DmM zl4dBF#cIy*YsGHH4ZWG>47+9)F)x_xp2r}v0;uf@-;OkPpIwZubvqdMwn!V~u-lX| zf4XwFLAFJ@;2PhKbatQJjM6}VJP|s6{e}AEUcJPcX6ZF*i}(I}{^$7{rOj&>T`c<} z&USL*L%yxHep7`c-+zjKzJEc_g5~ux_J<`uaYP-fIsHRzdqne+ySks_H;D&My?^Yy zkqcuef8EUb_N^~g>Gsthwrj~%l2Vjdo|u%As-KvY9G{a}ToRv>S(cfSS`?pKQj`;)m{X9EC}hQD zVFA$qB^?-HToxDu2QAghs2^IKT2!o`m7kGUoS&z!mtK^Z0<lx}BrlnX|7+aW_CmW|2Sy~!cS{kQXq$DSqCZ(k%CYdJc7XkIc z9IsoEky4PUTV{gK7kZX@1$pTV49lS|?F{g9=jD>(0&;mhJzRo-G{{$s93XkCy4j&X zN+PeoKL^A|2mgTrH)JJJfRssIK}a$K6BDBXkfQ;_=)eFW01Gz8|3I)OEM^B#ip$f* fF@)oK@(+FnMn*;k>22@AKpH$<{an^LB{Ts5guh(D diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_list_focused_holo.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_list_focused_holo.9.png.flat deleted file mode 100644 index 4f98601d3862fd4949eae93838f2da79c23d5ac5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 496 zcmZQ%U|@I##2~;Wmr|5io|u%As-KvY9G{a}ToRv_pIlm;ni8LppOY_S#bsduQ3@p; z7-3u%7y}0_)y}9NTAW%`te=&ikyo6br>~b@l$ZjvDmgJZBeht+q$n}3I4!>@w^-Lm zKP@vS6-etD>Kmq|SXdZan3yLUrx;mU8dzEyr&^>WCz&Rtr6nerCh8Xf^}?L3Tal4c zkf~c{g5CXkmU;zw=?n~Cpl<98@N?(olHvk#c|AQ`f`Bv+2y?Ij$*|Ix=Ris#ufRVC zNMnGRK#^ks8+HS!ki3GBWCkWCP6Z%G1BlUq0Ym^4MjSv4re_*&eTs~M;*7|A5Sw|^ zNst@NJzX3_G|nfR-1}9c#?0B!+34a>&8rh}WSfzJ!Jqa`l9Cblv0#fo|u%As-KvY9G{a}ToRv?pO;=xlv-Szni8LppOY_S#bsdu zQ4S>?7-3u%7y}0_)y=3MTAW%`te=&ikyo6br>~b@l$ZjvE;%tdBeht+q$n}3I4!>@ zw^-LmKP@vS6-etD>Kmq|SXdZan3yLUrx;mU8dzEyr&^>WCz&Rtr6nerCh7y-rw?oKlono|u%As-KvY9G{a}ToPYUlv-Szni8LppOYV-l30{2WW{A+ z0Z|Vn9T;I;78nBuE!D%QA6lGRRIHzspOIIbpQo>vUX+*uv@ba^IU}`LzoaNJuQ)Bg zD7RSGNIxwzClyHR8R{FRrC3-PTbP(98>bjqS{hhd8mC&MBqy0BrKKe%nI`H39jOm< zyKY5BNnF$_G=vnF&j@mj#d;K9$Rq8oAD4`j5btDnm{r-UW|Dywt& diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_list_pressed_holo_light.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_list_pressed_holo_light.9.png.flat deleted file mode 100644 index 33b5e61434797d97b9337b2216fbd24fdc881d85..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 473 zcmZQ%U|{$J#2~<>l2Vjdo|u%As-KvY9G{a}ToPYUlv-Szni8LppOX(1NzW(|vf{F^ zfM|e{4va7^3ygt-mg;5H4=qkDD%Q`+&&Vsz&(qgSFG@@ST9}-eoRM0rUs9BqSDcn# zlv}K8q@R|VlM1Bu4D}7uQYOcV8iuGEJ) zUbiA6r65zc%mkk=^epuX^3oX?E<#<}8Q|y6%O%AH zkyqdkqA`FmP~=IQ=Pe)=l2;It%)rFNsQ~0?05Li+fCzw$!lYZrT}eDPE5{7 zE!Hn7O3W)x%P-0;)-}>k%gjjy(t3vahG{7l7RDAP=E=q>MwXTamX^k;7AeU|rb%gO ziAko3`b9v!Fkk3aWTX^i>Xw-hFEQXzQ-A;}C(Oq>cpjs_5;0|STvKadgt zVvrKe1|R{#K)~1lBtRGlP}nY?AI1U2^gUf1Ln02pJ-v~aL4k*P!<5sNG6&hGp2~T@ l?#-FIbEf()(&$2<8`X~Ym{m;K?%V{K=jrO_vd$@?2>`m;c*+0( diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_list_selector_disabled_holo_light.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_list_selector_disabled_holo_light.9.png.flat deleted file mode 100644 index 0a89ea6e473075299e5eaf94f5e206879635b45e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 519 zcmZQ%U|?Wl1QI~NrI%8aSe}@ald7MXlpLRvSzHodoSKuGT#{cDpORS&l1Yir$j`|K z%B5$N2w8DiSU|KwNe8G&3=AwN;+Pz%>5TfJ#i>Qb`dRrIdByp8`g-X_i77yKg1|#Jk;hcPB1?u%$bGs`o fggTe~DWM4f@sV!! diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_menu_hardkey_panel_mtrl_mult.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_menu_hardkey_panel_mtrl_mult.9.png.flat deleted file mode 100644 index 3a5ad01c9ab74a243c7dc432962cffd146de84bb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1238 zcmZQ%U|{$I#2~<>nNpNko|u%As-KvY9G{z-R~ny@Sd@~TS{YxEn3tLppIcG{BuaBi zgsiwMEFij|qyr<2%K~HIprs};>W3Dm78UDf}HPTPZ%t-~(dWQOjX(<*K#ug^#$;K&0mX-#Vmd2?TDalEuNoi?`Nv4VV zML@kUALv$Oq!eW8mYERrik_ujL0# z-DL`-B=QRUa|D147zQ#K9Gh-A{0Gt->eqOIr1A=Ul3?;68U(JLTdNJELh=eik{Oto zI2C{#4Il;r6r~0bF%ck@1H>R&2Z%u-49EY00LF*0=dXHxgMoqRt*47)NXEUlk=A`8 zh61&r-}nv+DJX7Xbg5=h3F_Fv@iMM)j<7@55#JjVj1`I|?LAPko8wK{@8EZi9G%-< zZmOy}HtUJ){_xOkjmmu%k2;k5e&jd*J7oV&_LKStkH5aVRo$hGi)QwCFVL8|GV_Kq zqh-m;gwv`!UYB>V1URw2y(Tfq@tglYU&Vu~J_O%jY1q6oNceZ)0jGmZw;MwqoYV>Z zAim(~1B>`oiSjHzxE46TJ{Pma58F!uy>wN`DMQ+SGBJ1 zfTY-$cQ5b0o-Y4^W!Yx77d`Fy@9po^S2i>VIdQShSaYcOM~VTD1lzOAx5LYKu$EtE zl(MP&_vq&N^Y=IBIXLNctXL`VkLzAjA?vjDJKpXP{O6eeprGwAOS>eW-ZgfIEh-+Z zYjK&s#1=$Gv&j9Fh9Q~zzxntvfYfz zEvp$t9A-3p@MsDVC`$Hb-pBPtPEEn{x_p%O9)rW4Ofrs);SA>vGRDFd02;}&^y`fWN zjb%d-Yeu@$YsZN9TncNMuW&AK`nOo+;2pLl!VX7e53ps&x^|{qW|~sUA|i9ynsJV3 z#TJnXK@)-vo0w*~|C}T05Mm_R$RNv|8`@a-KzrT&RZQ6(MQd+lUny_i@5s>BSkK5Q zUazS?Bj)>qyWj3AtoHFtYq=L5FZCjXdr9_t_y1fT@0nJqK4q%%J;K3tVMDIgfun{% zXUmdKI;Vst0Mc~4IsgCw diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_popup_background_mtrl_mult.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_popup_background_mtrl_mult.9.png.flat deleted file mode 100644 index 833e969ee7a91fbf5fdd4a4f9e488f3c64cd60bc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1812 zcmZQ%U|{$G#2~<>o>G)po|u%As-KvY9AA)MP+Ab5l$e~IUX)*&mlB^_Qj`;)TbffM zWW{A+0nq~`9T;I;78nBuEj58rKeRZts8~NMKO?U=KTlsTy(lpSXlHU_az<*geo0Yc zUU6D}QEsuWk$zfcPAZVrGt@UsOR=ypwlFbIHcm0Jv^21^G)}chNlr3NN=r*jGELMk z0_ugiU$-J7r65zc%!GhP^epuX^3pljAa3mp@N?(olHvmLcs)H_f`D`b5Ib;y{8Vv& z`xhW3kyqfKBLHL|W5=dj4*!8-d(s`Zfu!;Ze3FpmLF~5czqSCWki3GBWCkWCP6Z%G z1BihDMX3QqOaw^f05OQx0b)@2!ts9~K<0zknWxVI#aQ({T^vIyZoQ4REmAcV_!o6) z^Ip~*K_Lc7!SshhOI*AUNp^H-EV5u0eM`rvUunUTMuSo&b&yMFn}ik<)8_c=<) zG%V*mVWRt^;`vuyCaD)HeTKZoLJJnU7xKI>m;T@>d*z~|@T}rD3i$_@RmGV&98hnY zbAH9bBsZZ&Rcl$E$Ua@(#%I1EoA=&_otZ0U_A~GrulQc#w^zKN_m8p5;RP%ANbl3i ztoT3AA-aBAZNdXa!6WZqX8n~mW4`Wbe|Ww7Ep6E)XA;GDFKEqwu-tZXlE4q^{<#kr z_N9IhV`I_&lAy<>^+%_=zk}htNW(*Zje_Po8@%ows`+}+KfeCcnYs=8W%OhI|2(|; zx&8js#84@-;5j+pJ#UGz@jd&VZ}+#)&-!ffbo2Z5|CE`+SSqe@z2sM#;&0Bdy0R@l zar*r`m;a{y`X~Qg)uv{l!c6wAbP0=tYyREF`6KY#F`VB_zv?_4{D993Kl<=1gGh14`OALd+sSGXXn zsJX`|?^P5HvkDCqc4}BVbbqRE;m{&4zb60aP>A0Il7e!7yGP74>g6RR-1@OBMb#r{Lp_s8&5PDOk|Ia4bWg}EC`_95N^I+XIo&?bDb7ICLQnZ8GnF)~ z*t&3U{?<9&ftKfUbQc}t+U(7gl32e$;qBQd>AnP}D_=~^j1I;Xe$)TE`@)4-wGR#3 zbeWX;Ol`Mz9-kupYW1JV6$~$QYg(`J;JY|H^upMonX|8SRmcGVUb2w{QjS3>i-;V zx6YaPxA60;qucfG$2}I~7F!ds(^IQG?Ua`1^h5dujovYjxWX%%)OQ?G)hp~2_FH-) z=d{!3zv@;ipU>WPfLlz*;&G30-Uq(-1WPa2Fd>I%|AU)Rp0jDu@0YH+2?MTxVl?Y=l(y-wVY#y`puOrDO~5)@OCyy z@iDV08-)sfa+j=F6XVxav-i;UMQ3ad8>!d7_Bp64=GgE&_L*t(vy4ggX`98|F57?n zaL348xU%6IcgrGX?$?di8gD$?&et)qqf}v9p%MR~AgPm$Gq=XhPhD2Ce^%r1APE!F)u))RQ-R4UwYzn;!&+aT$J}7RS(Uf4Vta4d_X_2YU0f3) z9jD|#kBEnX})|3J#8{OtXX69uL|%6Db_#uU&$CB(A*5-@e_TzJEUC6<@(ROqUZ s2piLDHl|m$d3^tKCg8rTM*4ro>rr9Ljr6K&fkh~Tr>mdKI;Vst0Bg(8LjV8( diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_scrubber_control_off_mtrl_alpha.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_scrubber_control_off_mtrl_alpha.png.flat deleted file mode 100644 index 16abc24394a09a07acbb418cea6dc381c99567fd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 543 zcmZQ%00Kr3!N9u2R>FcEzC8hu^PEJhD zNG;YcDN4*MPRlRKE!H*CPs_|n1=4zk`i5yK78b@9Cg#b;DMpr-29}n_sTL{8Nv26@ zX^BauiTXuAy)aMcR%E0UWa^fg5aS!Yg1mHYsQWtu{M>oDq_}|Y=JoV&2?Ej*KxE1$dL@grq!uU3C&-Fjid-Ket}JHoteXFmKBa8f=bJw-vZ=+8wT zW&Mo4V>UZ4EK=Ka-QieER;%DuPX^g6k+cv&9+4H1Hv;t}3Rc{eG1#7RZ_Ce!v-am~ uq>eo_?%V#8Npk&)mx3GYi~~h#ukpKcdjub==P3jFj=|H_&t;ucLK6U7#JNoX diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_scrubber_control_to_pressed_mtrl_000.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_scrubber_control_to_pressed_mtrl_000.png.flat deleted file mode 100644 index f24fa33028cee69a3d6a6e44e13e6eda93e6898b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 555 zcmZQ%U|`^41QH)z(B}~%fbSp8%jDr4P#(nK@rE~NX=l>4=qkDD%Q`+&&Vsz&(qgSFG@@S z+Mb-4oRM0rUs9BqSDcn#lv}K8q@R|VlM1Bu4D}7uQYOcV8iZq$eQM7JU%r65zc%!Ft!=@sOqGca&Nz0n!q=g!L|#RYUeucwDg z5RjGtVGfY*yz0Id1F1`%E{-7;jB~GSO+4%%((q7UA-t{hNm$fTgQoHTH4fdyJc`p3 zWe&XY7H_lOzrWUpVZ-v(0W0s$p1nJKwMf;sKMFJNbZUDawD!J!?uk+SlH?T|#p)8) z8eaRk#_prepM#rE?)E%=qWeL9T+h~q7-biOsm|wTmQFc%Yo=Ulw&J90)~Tsm4hFgE zsuUb_o^+6TwMuj7s)I_FOP?$XzFp-q(_}|c`_+#4eQtayZS$0`Rjb_o*svh^%kfUX z{qr)z*NYJ%fbSp8%jDr4P#(nK@rE~NX=l>4=qkDD%Q`+&&Vsz&(qgSFG@@S z+Mb-4oRM0rUs9BqSDcn#lv}K8q@R|VlM1Bu4D}7uQYOcV8iZq$eQM7JU%r65zc%!Ft!=@sOqGcdG6z0n!q=g!L|#RYUeucwDg z5Rg^@VGfY*yg37e85kJ-JY5_^D&p2&+ncKtDB}L{{vIYDGr^n&?ua*HKD-|17V>&; zVd%Y)Cet+Ap@>z@AnL4F&I7^4m9v#6G*t}Mf~$@qP5??oqBDaZRG^+ zb6yur!+w0xmHY5EIC0JI&1)WC+&#BK%KE)r=^USB`Dv>K>lbV^E!QqqIXKrzb)M(a z0(A?Iw1kyn`U|#w`CSlN%e}Qiacip`!<`u`k7%zrbBBRNIsVbq8c9xv>p{g^S8Tk} zoRFiw?ZNy`hjjwcK_?_{Z4t}mnYk*eTPry3D9fHt6J5R>ysxrol2zx5WnQYkCZ}be zo|RezH0iIjMihs$}@GEZ^Xt`2L>UCPd)e0#NPw6db>$N8_9hC}1i(20u>*n~%0Rx!9)78&qol`;+0ES)jt^fc4 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_scrubber_primary_mtrl_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_scrubber_primary_mtrl_alpha.9.png.flat deleted file mode 100644 index a556f021c8c87f1fcf1600531ae0c2d01cef27bf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 480 zcmZQ%U|{$K#2~<>ky4aco|u%As-KvY9ABJVRGO5OS`=SUl$o1YR2iRJQj`;)m{X9E zC}hQDVFA$uB^?-HToxDu2Q4*`Q9raewWwG>D?cNzI6qHcFTE%+1!!q zF9Pa?c|f-!Bc&iyx6Fi)PxLJH3i8q!7%o6v+Zo{J&dVjm1?2L2dbk7uX%Qfn-~f3m zz)AEkh?7^~p97>BI6(vu!07)#_Fj(jprCNcD+ozuU}9lb0CF^d7#$!5AIJg_09gUH z49sI-00-$BHroIoU)j^eF+}5ha)Jcw6^5SwvK^s6=3BJ-9Eq|O5fPHLS=?a7z;LgW UrOVRFY#KmdKI;Vst09XfRI{*Lx diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_scrubber_track_mtrl_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_scrubber_track_mtrl_alpha.9.png.flat deleted file mode 100644 index 1c498225c245835b962d70d5c7ff8e20f175d147..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 466 zcmZQ%U|{$L#2~<>mQs{ho|u%As-KvY9ABJVRGO5OS`=SWl$e|ypIcIt6Q7t~b@l$ZjvGC46hBehr`Xjxuy zT7FS(v96JRT4qivkk&KQH%v>hurRhTF;6y5F|xEYu(UKzwMa=$GEGWLOH49N)Gq?+ zg*jihA|s_BQ@6|nzd!UW^$POR85oX1-P#%8=g!L|#RcT@dV0770cjB+mf!$+D!@tf zFNl*@;GYAe8Mr|N5WwjDAkNEreIV(QR}hlSz{J9=0OV)@F*-mBJdgz-0I~vX8JNew z01nVKY_lv0#fo|u%As-KvY9A8|JnU|MZ6rWpCloOwr8=sg{kdY{4#bsdu zQ4S>?7-3u%7y}0_)y=3MTAW%`te=&ikyo6br>~b@l$ZjvE;%tdBeht+q$n}3I4!>@ zw^-LmKP@vS6-etD>Kmq|SXdZan3yLUrx;mU8dzEyr&^>WCz&Rtr6nerCh8Xf^}?L4 zTal4ckf~c{g4+*zmU;zw=?n}9pf2wW@N?(olHvk7o7dCBB?w5X0I>lF$U~R?1m*!L ziM#^;99|$p7>EUdSR9B!;6D)0ojl19NCo5-gd{UCv9KusIT}C=1qv_*QozB&3PkGw zu>njCl!gcDsl%Q?HY2;Ii(`n#@wZd<=Q0_JwAb6s54xzr%Bsq3z+`N|oLbf)V#qGU zeSoLu027bHWRa3Nweeln|L)x^*9e;Rqxfn4{pwBkHc#T{zr4k#4pPx z`=p!c|H^tcCH|Z7)T-;t_oXUJtq-rwSm=|gF~PAz^a1C?M$s(key!6|7J=J(m~JFk zvh#MT7#(TQ4KUfH*`Uk3D!4Fkt<)ywJ9CdQTDK|sdfO%lCVwl}Vt*qU{Pvsh)m5DB zr#DwWIH0nOGepBO>6GAyiU%jAWPP;^Tstf9!AFa<*jXOuCn!H-IJ4U{Mtk=~YrfS> z-Hf76owB|9_iR#trt7VR>sS1X@YtWLH1WsuKMX&gWdBcStpX=mPgg&ebxsLQ097Q; APXGV_ diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_switch_track_mtrl_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_switch_track_mtrl_alpha.9.png.flat deleted file mode 100644 index 468d4a75f48ee27bfb409d8d209b07c41eb7d7d3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 882 zcmZQ%U|{$J#2~<>l2Vjdo|u%As-KvY9A8|XS(2O)Us9BqoE@KAQj`;)m{X9EC}hQD zVFA$qB^?-HToxDu2QAghs2^IKT2!o`m7kGUoS&z!mtK^Z0<(0`ho0JzRo-v_23kaDcp|QSlNK zMiO}i{yCgL21pN#c5I4r{14lFz@i=~Untis2qeT1so0|?PMsc7sm!oadcI$puvlI88eoHIgskA@q=FG}x zbEnU||NBsB*bJK#g%*x=o6m~P)-ej_3jEtG(cRW6@TI8y6{BE9a zQil&#-j@i~J#%{f{||Q#t(f;~%|o_t2Sn{x{*>6U>*R$M`}S~X*nSG#zruO>YJ>22 zm3apk^nMr$*3Hxq4o+d)7y5tJI;Xe0Elgd%9cXt;_C2=#Qb4V#X`OL_|JmGSEB;CJ z+pj+4T+)1e@&C#5(x2$vUd+F>>tuub9i{cvXD9RV*+~A4JnH_SZg1$7Tc=kQFEsEu z#J#5E!2RTfyLL74GnHG-cx+?-deY_4B;I=rbGEu2)<5@p5&wbbMOo4{^XFf^`dIw4 zGy9)Hi5uM4V$U$w6)!%@##k{wDI?eS;gzMD%gmC!UniVU=WL6aHu<)knV$Oj;MZ4O z4gXk8PO|tMWcS%^$tAb9ei@5>G8YHUI$%0)(@{0=rShlb_Z1(p+x;;5wAzQL7xK|d VQ~6!Q*6aYqo~Nsy%Q~loCICyuEmZ&j diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_tab_indicator_mtrl_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_tab_indicator_mtrl_alpha.9.png.flat deleted file mode 100644 index 429ba19a726d8a91c749bd846e850f29cfb07b4e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 458 zcmZQ%U|{$H#2~<>no^Wlo|u%As-KvY9AA={6rY)wl9`-Xl3x^`TT+x0pO{mSktk%v zWnlr)0VN$6VO$m%0|zbD$EY7#oLW?@pOv4HSDc@xua{nwm;$shIWajSwOGHTC^4@% zEx#zYSl38DEi)$-Nb4Eu8>XdLSQuNFm?s;j7+G2xSXvsVTBIZ=nI@&BB_^3B>K6g^ z!d$Ogk&#l6sas}(*Bg44dIfpuhoBDa4DfU3<&xq8a(O*HT!MhK1PF70eB@R4wHU<7 zEAY<&(iq@BP~?WJL<*3y$SVj*W?*7sQUG!^fEXPZAOt`bfPe@PGlI=1Ugrd4D|)&( zhFF|VPLN<-oFKxJbl}JQxh}js|2;1sa9K4uV?86o;n_@lUrk>302MQMy85}Sb4q9e E0C^&3bpQYW diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_text_select_handle_left_mtrl_dark.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_text_select_handle_left_mtrl_dark.png.flat deleted file mode 100644 index 7273110b1eaff78cb43073dce50173f0886bd91f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 616 zcmZQ%U|?Wj1QI~NrI%8aSe}@ald7MXlpJ4@T2T^ToSKuGToRv=n3s~18lRJzRuZ3E zQj`;)l30{2WW{A+0nrL29iS!w%|sE$lS~u!i-3Az-q5YcNGZtFEi)m`KY9gu=>bq5bO!jj^KwaX0bS1P>ERLtq$7Y> zhl34BK2)oJ%)r1X?&;zfQo)!ck&|$E-(s$YZ*QC393*-cTL?{PU{O(E<@8v=tfIik zIW+);_P+lXd+ls}c--Xl2jWa6k?p0C_fDy1aXB_v?O(vAeLW*3B3)JcdXCGTvt3L& z4e@d8kpc(w<=5Ydde9}!SiarpfYhB(ZkB=-4+uWUn;+MZ->~&H&(7$CIDUrt z4B3sg2M%4-QaQlD%wqr{7!$;*;<$6pX79eyez|PJ?1i~6MQ@ZgNLSzMkFK!YQa{T* za?`VWjpEv-TyNBFK8Tgs>aTAtbGu{tP384$f1fBDW?xozFZjBi`~3fP6(YM5Mb>Q1 z<@{U!N%a@+ZS`a78Q=Ner}Mx0Zr9RY8vRgu!Sb!!Eeb0bCUuLKgi4)U3=Am-Pgg&e IbxsLQ084$(asU7T diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_text_select_handle_left_mtrl_light.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_text_select_handle_left_mtrl_light.png.flat deleted file mode 100644 index eef4b51d8cbf60ceb23ded7464dda49c9ce9a851..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 619 zcmZQ%U|?Wl1QI~NrJquiSe}@ald7MXlpJ4@T2T^ToSKuGToRv=n3s~18lRJzRuZ3E zQj`;)lbN1TB4ov7VFA$#B^{tfF)*;8h+}f3rZMV=7N-^!>u2R>FcEzB?2wc zPfkqENG;YcDN4*MPRlRKE!H*CPs_|n1=4zk`i5yK78b@9Cg#b;DMpr-29}n_sTL{8 zNv26@X^BauiTXuAy)b|1R%E0UWa^fg5a}Vkg1mGF27jn0Is^RNdAX#xfR5+&^l%9R z(h)$c!@&k5AF9JdzS;{M9Lg1 zJ2J3=^~34c3fxRTo<5!$%^g#y{NP;}TSW8jtVRaDyG)<67%Z6XyuHl*fp0x$ez3g#_wetV#=rO4KWxa;u3`SN<(rr~AAft@#fmitYwLjl O#o+1c=d#Wzp$Pz_uiL2r diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_text_select_handle_middle_mtrl_dark.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_text_select_handle_middle_mtrl_dark.png.flat deleted file mode 100644 index 302fcb3e2b16bf7093309ebe20664b35b7911e96..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 867 zcmZQ%U|`^21QI~NWsp*oSe}@ald7MXlpJ4@T2T^ToSKuGToRv=n3s~18lRh)0;Woe za^h1Gi?W5RxGXFnnxUiv)GP)D78G$zj?{EU{m|mnqGJ85{EWQf{5*ZV^rA$d@%qV$ z$r-7|`Xxn)dBth@MY+YgM*3-)IjKNe&rshmEycpZ*uum-**L|>($c`v(m2&3B{|77 zDJ?BA$uv>F2&fn45#5T6l!8p%G81Bbq*sua?#={pZD)X=J1>_M7m&y6>ERLtq&0xp zfP)Q4CRba`W?*3A^K@|xsbD;F)3{=8p-98W`Zp=-Os^(it6G_RyX^bk8L!?s=iZ+C z%5dA{*VUi&HtN~Ud0$zVUibL(T#425qV?}Be`s<};cP~AhgF|gMS)XrgjAmrkK^oQ zkIMoT3}+|gMHQSlyCLMw+ix>p>-GHgC{->HpQXT@aZFDAaL@)>MUNJz8=WEQOxqU- z3N3ZZ+4|dfyP%^-kJF775o@OFix`ELv#r@~q$9anupvUFW2?tDr2@-W3Sz5|pQ^Ag z_I}uW<4F5ck3Q7`!7K%{)kh~~91=1Vm+NreGo$;62h-<3uEGe-PwZXNJ^ux!|2h0% z-=j?h(vLPppLnHPU}wX{6m775`_j+$E}ixsZ)J9fFFLbs+m4u;Fo_?Mm2HNSrd-Uc z4R0D;Q(j|W&|}(G$h_!E=;0p=Ek4XnyrRLk#wb^NPmtr`4_bU*B-~~`IuLZYVztGG zxruXvWhxftZsphP;ZE#K>~Y?C=m1xbd5_N0`|bG?u5P=S6DF}^>F>Kwr_Zy9%6PRe z^t@wtlLf!nmv4TPI(Kt1$t$g1Z@yblqvW$byBq(PJR8xgdPlA%gsDt#RasM5ahfwx zcG6<22&)R4DDl@nbJ@IddbE$}s2nd=muYnud*5qkb5vsWxdWCF9rwj#JEkdJU+4Xw zZ;x|oOLTz5)E^DD9>tI9Rd3E{c)Ft{U!$GBZpve6y~U-00bBPxxxva1{>S=mc!V}M OPk6fexvXBt9cCFC`~6J~uN3OqCSn z#OGwDXOsw8aamYEbVEr8s9_8YEGXib9H|+M`k}?CMaBAA`5Ae|`FZ+!=|zb^^YxPx zlQU9_^-GEp^NQ2*i*k!~jr7wpb5en{o}s>BT8f2*v4x3wvT=%$rKN$TrE#i7N^+8E zQd(MKl4+uT5l}D8C%P3GDFvCjWhO*>Nv|L;oq@rV3F6?+06%wLE-5Y`kJr<~B?w4s z0I>lF8<0${wwTSpz$D=5;uuoFn6yC5W5wGvc9Zn;2}P}e3~kK^t6oQh#^gzxZ_K^z zcb`3U&c2S=qkf{(v#ZN()bH=#_UzG_&wIYs9IpOXTqr00Kz_+v$19mvlpBm^9r|O@ zX~A;V@8EjH4;-%)WUoA)F+0&t#zp2*uLa-X=WY+|t~gZ%wln*+Rc@3v^pHQgLEKKA zseA$3C4bW!ncuCqiw2%xIJ$v1&YH=5k<_FGSvlK`&NP4RaL^Gt>Q=FaBc|7@?;n4=Bl&@muGXE9y zer8MU>h?Zb+j07x;?~s%j&f*ltT}#YUE8^O0oA(0*UdgCxXi3QTPXQsiNOVv)L92! zYJ^Kfw7pa-Fn+|v{P;!!(|d<0yE2*fYxDidVmd9#K5f>46^{1ZRX z+K1jp2ezwynDpp?_Swa?K8Z0r+CC3dL^OGHj-?3CSoNj)ht$fm!e`4`8?CM0#nx$c z{pQR+zOst(mFN-H4NF!VdveKXany8OdFNM_JmGOt4CAryWoGj_jXDmWGF-1eyLI7> z2Op*gA6BdQwR=NJR^^t=1+TYTp4e`v$N%|(XNtcC-+7&R(#{o~oMCGlFK-mtuM;J( z)}<|W_CMQ-?n!ojj)hYm*zz5Ce`N0@6Q6@wF^9uN6k80sK8Rl5$QL}pZo>0l{2w{) V))-IQVFyei44$rjF6*2UngF+RPKN*h diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_text_select_handle_right_mtrl_dark.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_text_select_handle_right_mtrl_dark.png.flat deleted file mode 100644 index cd87923fb4c9939bf6505b73d86d7c4c47a89053..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 603 zcmZQ%U|?Wl1QI~NrJquiSe}@ald7MXlpJ4@T2T^ToSKuGToRv=n3s~18ef!|o>3B? zTT+x0pORRVEo8-IVFA$#B^{tfF)*;8h+}f3rZMV=7N-^!>u2R>FcEzB?2wc zPfkqENG;YcDN4*MPRlRKE!H*CPs_|n1=4zk`i5yK78b@9Cg#b;DMpr-29}n_sTL{8 zNv26@X^BauiTXuAy)b|1R%E0UWa^fg5a}Vkg1mGF279O{Is^RNdAX#xfR5+&^l%9R z(h)$c!@&k5AF9Z!1rVq2C2O}nP9W!SJSQ&gK_O>Tts zfnP=kerbV`(1BlO4O>eaW@_DG=5P3_+OTyl!)tB^W8WQYb`009F^I7n9AIGP0TUm( zO8XDY<(AhiC}o*r%arbZV7B{%6RX?gDlHiFqF9%8zL2ztm>h2x^<;n0)EfL2<;MKob)I$C u-Nbpi2maL>cwYO+{~>Q~SX?RNZ-xu2#ZyGjF3SZ541=eupUXO@geCy-!OPtM diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_text_select_handle_right_mtrl_light.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_text_select_handle_right_mtrl_light.png.flat deleted file mode 100644 index 956d4d38a6394e7b0cedaa16af2474b88c45161f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 602 zcmZQ%U|`^21QI~NWsp*oSe}@ald7MXlpJ4@T2T^ToSKuGToRv=n3s~18ef!|o>3B? zTT+x0p95kFS#eodKr};12dG&L3@j+(m>j9;jQXL)sYS*5S@{`x#rb*qdg(=pKwI>a z6O%Jii}g#267!1F@{4kdb&d4XGILUaw4R~9VOolXg|UT+d9rbek)@@9rKNGIMM`p# zX;NBRVv=d1ei2YF%p$cU~?jE}+|aJw054fOG^9 z>u|6E$%kt7j~N&kSv_4GLn;`P7KnPRc+0jWJN>9&OMpbHG9#x)2B$77r^f+DZwDuD z2PUBj4J}XX(&s;&|LB~|s=mhejeq|-ny!wz*_FSpogpG%`zBF_Yi4VcSR1zTX0u1c zvqi+Sf)P{1eYOqT_zZ$us~<3K*vGPAn{YxcW5P1d>j&5m+>$!*h=ENap@9)h#BF>h zxTE;tV%Bwi4V&E`yy2+$%pp^G^@1`#`vKS02TTNQnc1^Hop$ez5j#3JtcLAD0`Io8 zs3(6*;|ykKwY?LadHL=YSuF=StC(-cbAM(!HtdOv<*~jy_X^7e&n>;HFAy#)EvR~It`(smpKh6{tItDnm{r-UW|)*H$b diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_textfield_activated_mtrl_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_abc_textfield_activated_mtrl_alpha.9.png.flat deleted file mode 100644 index 333313b79be6cd0ac49f825bd7f8489573f10914..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 465 zcmZQ%00Kr3!N9!lYZrU30tPE5{7 zE!Hn7O3W)x%P-0;)-}>k%gjjy(t3vahG{7l7RDAP=E=q>MwXTamX^k;7AeU|rb%gO ziAko3`b9v!FhA&4WTX^i>Xw-h;Tb(ky@I^-y-=5S2Kc%2a!GLkxxAhpEnJ)?Y}LMlE^FY&jHdH;6G60hO9&ikg~`t2uWsOVq#JNax{P#4R9DB1V9#m03U>6 zV2o)kpABToc)B=-Se#BykYHV$Ai|?};KYadA-XAY)e4XvPgg&e IbxsLQ0JPI*nNpNko|u%As-KvY9AA=JQIeLKnv)WrlA4xSno|;=TT+x0pO{mS zktk%vWnlr)1tlFAVO$m%0|zZNiBUhaIJKx)KPx{YuQ)$XUoX8VF$HLAa$<5uYO#Jv zQDRhurRhTF;6y5F|xEYu(UKzwMa=$GEGWLOH49N z)Gq?+h510YA|s_BQ@6~7pjY%P^$PORcS9Z98Q|y6%O%AH!lYZ zrU0!^PE5{7E!Hn7O3W)x%P-0;)-}>k%gjjy(t3vahG{7l7RDAP=E=q>MwXTamX^k; z7AeU|rb%gOiAko3`b9v!Ft6xVWTX^i>Xw-h?Uz&{5_V}SoaksGoSDL~31uOK9ufr*Jp0m#t+Vl=>H zfDiy#00OWuWK_H7xCY1<_jGX#k+__kAn~i=e*3Zh%$Scmz)7MKcN=yM- zo}8GRky@-@Qk0lioR(jdTdZrOpO%@E3Z(T6^$pWfEG&#IOw5ywQ;aMv4J<8Xt;k3z$kZ(}A=XEFmU;zw=?o0ppbqW~@N?(olHvk#c|AQ` zf`GIH5VLWByjQ$v+6<6DUV(oOkcIkH9)?or;B5V#O34!iC+yL|Jw(dW=vkj$nevbS*z^3tu;u8r>mdK II;Vst008c3HUIzs diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_notification_bg_low_normal.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_notification_bg_low_normal.9.png.flat deleted file mode 100644 index 6a79701d8dc24b4fafb6bf01039c02023a27ca0a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 481 zcmZQ%U|{$F#2~<>oKlono|u%As-Kr%l9`s7oLG{XpBJB$9-ot69-o(Al$)3%WW{A+ z0Z|Vn9T;I;78nBuE!D%QA6lGRRIHzspOIIbpQo>vUX+*uv@ba^IU}`LzoaNJuQ&~8 zPqD6%ep+TuDv;JQ)K5)KO|(ccHA}NFGf6c}F)}ktwMa2AGcry|wMa`fGSn{u>V>&o zw<05@AXB%@1dk{5EcFWV((gi@*%{#H&dVjm1?2L2dbk7uX#o)C0Lfd;Sg;pJN#qsy z=YaU=;6G5{hO9&ikP68w2uWsOV&YT)ax{P#9T-3aK<4rQF^mR<9~l4V=jX?UpXqqS z1Jx*ax;TbNTuz>nmgvA%AFl2Vjdo|u%As-Kr%l9`s7oLG{XpBJB$9-ot69$!$DT3no(B4ov7 zVFA$qB^?-HToxDu2QAghs2^IKT2!o`m7kGUoS&z!mtK^Z0<lx~&rluxZq?nqeS(urm8m1VTnWb8!7?>Fur=(h>r5YLP1D&Q1 zbG&XvMoK}ZZkY)_U+7ut738HeF#LhKv@^iZotI0B3&`d5^l%9R(gGmN!2~2HOw2F? zQWALu{y9Jz1N;Yy+>n(>0a77(1tG}{OiY{#K#m3wqXPqo00)rb0b&>p3PLdcFB_PO z4Yzb?{{^bC_jGX#(K!G1^hVwT20YA;UJs1qw5(IAcMBZt5n%Utx%z){jQPoq1Jbuc sk6MPO<$c+3@$M8A&f7xrb06~5^YV**6?yl=ED-E6Pgg&ebxsLQ09bl{t^fc4 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_notification_bg_normal.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_notification_bg_normal.9.png.flat deleted file mode 100644 index 1c15fdd61205c43d875847aadd7b6e9a5f6704ee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 473 zcmZQ%U|@Iw#2~;WpHh@qo|u%As-Kr%l9`s7oLG{XpBJB$9-o(Al$)3%WW{A+0Z|Jj z9T;I;78nBuE!DxOA6lGRRIHzspOIIbpQo>vUX+*uv@1C=IU}`LzoaNJuQ&~8PqD6% zep+TuDv;JQ)K5)KO|(ccHA}NFGf6c}F)}ktwMa2AGcry|wMa`fGSn{u>V>&mw<05@ zAXB%@1cwLoEcFWV((gi@*cssG&dVjm1?2L2dbk7uX#o)C0Lfd;Sg;pJN#qsy=YaU= z;6G5{hO9&ikP68w2uWsOV&YT)ax{P#9T-3aK<4rQF^mR<9T@+YkdVNJH{6x*0jg2( zba4!kxSSl4nCQS(AFo>G)po|u%As-Kr%l9`s7oLG{XpBJB$9-o(Al$)3nUr>}ch(#fyOll2%@X{m>b3KoboFyt=akR{0HSAmp#T5? diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_notify_panel_notification_icon_bg.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xhdpi-v4_notify_panel_notification_icon_bg.png.flat deleted file mode 100644 index 8d3ed94895c3eb4cbb5709003e0b09864b7ba3d7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 410 zcmZQ%U|{$I#2~<>l~R;go|u%As-Kr%l9^T+UyzuWniCJ^WF{w;Waj6^XC?!Qq;w%G zE(;5YHYn-92;;KA7&vIDiH!Q8#i>Qb`dRrIdByp8`g-X_i77y9lM|COQj7IViW2jR z)AEaQi*=3k(=u~XfwZ2XerjrJqD6|SS(=5JNvdIrk(pVlMT&u$k#S0@MOvznp?(oi zFU$+N6&Wc7nYv{rg#DsdkeA*Cb!%sUpF1y?6c>=o>*?VV1f=Can1cyOZV9sd3Zw!( zT^vI^jwcHo;Z^Bbqd75k!Ni>olN#NgC7I9CdX{83E9%)IX(JZ%Tk9@8#-dSj3-uLX-#XAzopr E0MvSV;s5{u diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_ab_share_pack_mtrl_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_ab_share_pack_mtrl_alpha.9.png.flat deleted file mode 100644 index ebe04ac7be6a0501c7be4d48083c4ef386c237b2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 552 zcmZQ%U|{$P#2~<>no^Wlo|u%As-KvY9G{pJU!0Lxlp0@hurRhTF;6y5F|xEYu(UKzwMa=$GEGWLOH49N)Gq?+ zg}Gk0q9P-uAXB%@1g}5zEcFWV(i!BSj_(ZcbLZuf;sUyy*VDr#2uK@%FbBv_f4L2L zfRsdDfqxE=#sCgLk-0o>D}Yo=r< zoP!Mmg~8%58bgg;x)Mmgqo<2wNW|f{Hv%~s6a<(9&Ko@2@lVhvnLSbAQ`m#v+I4RI y1)Chsm(+s{s^QcTW@Kn!Z^%^waqld-RDO<8av@V}rq4D@kcg+NpUXO@geCw?$ZgdC diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_btn_check_to_on_mtrl_000.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_btn_check_to_on_mtrl_000.png.flat deleted file mode 100644 index 5af3dccf47758329f8ca146a892ab59e5f1d97f2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 573 zcmZQ%U|{$R#2~<>no^Wlo|u%As-KvY9G_H@7oVJwnw%Y9k{_R+7oS^FloM}YU?610 zWnlr)0VN+W!niCj1`b-Pmr*~oIJKx)KPx{YuQ)$XUoX8VF$HL2aw5>KV*Qe$#Ju9P z{G!}qT_gRp%$!spt!Jojn3iH;VQgVyo@|_AWNB$&X=$8lk&>Kbnv|B7m}Hu$Uj)<( zbG>dwMMg?Nrf!)DUVrEn9#l!zBnvCx9>q$WI;<_iqML zzdT(WLn>~)y=BPP7C2jfdGqguDHBvY zC#hu0c78d1KA+*nL`}xYH~0E;PHM1~wPj8|!1JZ#O{2)yZ|7qwSkAW=9|_O!kcq#( z->^Nl?%6jli%A(-><-79v)}x#pMT+KP4hhK;)(-j=FV$-Wpwz_jLwape7cwOr>xTM z>3%J*G4=Td4++hSj5BY2+Qq25bt{`hLIWdy;{Tu7UtJciwP?NE-tZu_dF8#DDAR(Q y$*)VL#pi8{wJd&_e|oF8c)Tjm3!cB;aZVGCi~J~icQ-H;7(8A5T-G@yGywq7UBWB? diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_btn_check_to_on_mtrl_015.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_btn_check_to_on_mtrl_015.png.flat deleted file mode 100644 index 665021bbc2fd10bc3f5b1722ae863bf26a8d4ebe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 859 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 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_btn_switch_to_on_mtrl_00001.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_btn_switch_to_on_mtrl_00001.9.png.flat deleted file mode 100644 index e855fe70bc6e4edbadd0937ff1c67e1ea0ae6ec0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2737 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 UJ~!GQ_wzS{x@4+Xt>YZ=PX|S$#sB~S diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_btn_switch_to_on_mtrl_00012.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_btn_switch_to_on_mtrl_00012.9.png.flat deleted file mode 100644 index 3e1b17701bc3f9eb6f5a11b3dd4caafda158fa85..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3108 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 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_ic_commit_search_api_mtrl_alpha.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_ic_commit_search_api_mtrl_alpha.png.flat deleted file mode 100644 index b5f686e418dacf76389c98825935ab8905e101d5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 502 zcmZQ%U|?Wm1QI~NrIS*WSe}@ald7MXlpLR#9G{$@o10k@U!0m)l$;TtSdbZ?TT+x0 zpO{mSktk%vWnlr)2qhmt&0%0*K@rE~NKIkX4=qkDD%Q`+&&Vsz&(qgSFG@@STAZAi zoRM0rUs9BqSDcn#lv}K8q@R|VlM1Bu4D}7uQYOcV8sfO=t`(5(K9Ahq1n#WAFU@$LDAyi5)fM<3L)u`oY0+!3tu##e%|y_V<0m7Up_@|((z zsCZ5Sqf@%~bF8u-Oy9s>bftkgJ45J))2$>vo9sqYgJAA0jZq7DzcA%35HDcf+aUdd z^^Sx71GXwgiwoR48siSYq_#3hXjFb>%0g16E3or{Q?X+Cw?o#`CEp!Vzy9!4vVJ_o d%1J6O`FZ*8yk0SJi!ad044$rjF6*2UngC1PoTdN( diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_ic_menu_copy_mtrl_am_alpha.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_ic_menu_copy_mtrl_am_alpha.png.flat deleted file mode 100644 index de7027708d6aca824dc07ecafffcd790c291c877..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 533 zcmZQ%U|{$T#2~<>o>G)po|u%As-KvY9G{sSpPQOj8lRkBP#K?FQj`;)m>Zv%Q;?A; zWW{A+0nq~`A27nWEHDNRTB@H>KeRZts8~NMKO?U=KTlsTy(lpSXlHU_az<*geo0Yc zUU6D}QEsuWk$zfcPAZVrGt@UsOR=ypwlFbIHcm0Jv^21^G)}chNlr3NN=r*jGELMk z0_ugiU$>$nBc&iyx6FiqPxK1%(t!?ThdRGAz|WnRONt99#Ovwd5(K0@K$rvMtN%}` z&j6`&o-U3d6^w6hZLMSu6k&bnD;6bCsyL?82-$)50!Hp7V|^;86L8T{RONm^f9?hzr&rb6A8t7T7aX zO}c!SD{A89LtIjmFCXAqWhrof+9@ur7aRDWZ>bdzGgY2;=VN*L!3Hn$jCz(YO!gT( VQH=YSngD&q;OXk;vd$@?2>{t*uX6wZ diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_ic_menu_cut_mtrl_alpha.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_ic_menu_cut_mtrl_alpha.png.flat deleted file mode 100644 index ec77365951ed36a86063faa57d8236f39b1151e7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 972 zcmZQ%U|@I;#2~<>oKlono|u%As-KvY9G{sSpPQOj8lPNR5}#XAloOwrQ;?A;WW{A+ z0Z|VnA27nWEHDNRTB@5-KeRZts8~NMKO?U=KTlsTy(lpSXkT(-az<*geo0YcUU6D} zQEsuWk$zfcPAZVrGt@UsOR=ypwlFbIHcm0Jv^21^G)}chNlr3NN=r*jGELMk0_ugi zUALklBc&iyx6A~OFZ2rX(t(aV#sqO`XMmqOFP9V-kjLxk;SvO-JwTWP;`v^*>S*ZkepX8r3*o$@}XZgBAVXe>9eVd10w|fmdh3LksSiM5mT%xo^C4 zsd&+X_6RYy>GS%Z?rV75uqi@~Rb0MbRr#64f{l6_>d!3vZ|->@Dwa^W=E)EJSIP&q zWsVoQA1HLN-cXb1_T|tSwdT~RKz+YXCRZLf!|_~k+IF8Q1#|L$XGc8XcAt5^;@IYf z$0>`ty)F1ww3q*>7h>w$Eg$7($me;W&^$x>(L@!Qbne|I_k^D}2`#?=xc{9T5goCmKcs;IIgPna;}0&mx)+*Y|KlZ)m& zF{xx-$;|rlN&n;Jto@TXN`4*xxLKfCg}E3Mqre{1b+jTM}~SjAFy z@#MXq<~Ce5ta~ObP0l+XkK{^gQ$ diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_ic_menu_paste_mtrl_am_alpha.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_ic_menu_paste_mtrl_am_alpha.png.flat deleted file mode 100644 index c969f4628809a5aa9838e0fe0d0568d8829be4d7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 618 zcmZQ%U|{$O#2~<>ky4aco|u%As-KvY9G{sSpPQOj8efoDT#_1}TT+x0pO_n;m{X9E zC}hQDVFA$uB_A-txGXRR4q9pgqkd>{YEiL%R(?iaaekh@UV2et3eeKz#N>?BV*Qe$ z#Ju9P{G!}qT_gRp%$!spt!Jojn3iH;VQgVyo@|_AWNB$&X=$8lk&>Kbnv|B7m}Hu$ zUj)<(^MGzeMMg?Nrf!)DA+P8aHPQ!HbScHOI{hbawG7SFf) zt@O0X=-nUXYmzbH|Eo^j6&(!HF$piHM4s9^^SOxk_8j45H&~w}%U5sCKd+ncUSPgx z$det+|sIrFQc zJLiLtook{*gp<0nA6+z^&2sNwpWu`qf*uQeSobot>Ts(vwl7}=3^fK%S3j3^P6|nC diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_ic_menu_selectall_mtrl_alpha.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_ic_menu_selectall_mtrl_alpha.png.flat deleted file mode 100644 index e533ed05dfc49e0d19dd7dd75b9cd73360c12b98..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 536 zcmZQ%U|{$S#2~<>nNpNko|u%As-KvY9G{sSpPQOj8eg26lbT$Tn3EHqTT+x0pO{mS zktk%vWnlr)1tlLa!niCj1`b+kBBOq2acWVqepY@)UU7b&zFvA!VhYgKT;738G@oyrFFKxcrTJ1>_M7f^`T)59eQNPB=V2gqOl zpH!a#QfEC~978G?-`=$EYBdmXD_p&!y|CAD`_GUM=fhYwT3=qa;YWqD9`nz0Z<}7M z_Y}C~Y59DP^2DD77e#}=EdSa*wR7IP+&FQ`8~guk*jHz?V!;uffn3;O>Re%!rwBQq7~F$PapKbLh*2~7YE{jx&< diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_ic_menu_share_mtrl_alpha.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_ic_menu_share_mtrl_alpha.png.flat deleted file mode 100644 index 43b520ce38c7739de560816fd548a1a49e786cfa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 966 zcmZQ%U|{$R#2~<>no^Wlo|u%As-KvY9G{sSpPQOj8eg1|SdhurRhTF;6y5F|xEYu(UKzwMa=$GEGWLOH49N)Gq?+ zg}Gk0q9P-uAXB%@1g}5z3i8r{&fLQUacgIQpF1y?6c>=k>*?VV1f)Gcm;>ae|4*vV zFfcGRd%8G=R4~51&b%Szx){TSzZ2%&*p@rne%o57oZH)S)$O;v6-i3Zk@nYiyFasX zJNNf53&Ll*N2_OLWvSIky?OM1SH`6!n~%R)qqypL)V`@-w_aUr^=8${9X%V1OY@eW z{L!<~?bnT;Vb%M>lFuUSAuWw?PrcC|} z8-7=*ZQq)`-UuAsykvUFGw-i~I>x))HlOO*mL=lZ?EGc&*U5IrQn$!1_AvX>x<=72 zWYdE3)Y`}wZzC=UZ;HB`*!QFRtnGruYRM&ECdgiK5A=ELv^ZsN`cn`8xqrV*xO((m zAn&yg8`lV)GYb`QJ$Y~5CEv+ub8Sw8=;-D(UNvv)C$>#~BKf9(cVbud z)0Z-um2UHK`A~vJ1)E z!tEn_b@91>Rod6D<^}pLE1#P7^xhVqkjYE;u8Y~6eMaDFig@gl*PriiyjJq9uz9)7 zL#f>}w7Sx>o=dO2b3Cm3!V4bfzv1@otNR~C-q?I<>(0Zok3D4#cIVpmW$~#!3-p2l zin<AO8nmVSz{TUaY5*E_|=aAEEXsY<=>DQ}d{n@yaw z^2_CUab6RrE#CTkf`{*3@t*USUn$uJS0CJAle=mKUuoY3bz$rF72R2v4wmVCU*R5` jCcSjUqFJ+M#WTKAFuClyT)GRGDj7Uo{an^LB{Ts5qeG!! diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_ic_star_black_16dp.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_ic_star_black_16dp.png.flat deleted file mode 100644 index 8f131aff2c4cd68c0316393a58c546d0fa861f55..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 713 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 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_ic_star_half_black_16dp.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_ic_star_half_black_16dp.png.flat deleted file mode 100644 index 458f1283c0f6d2f73d36350b0627c0e63fe95070..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 571 zcmZQ%U|{$N#2~<>l2Vjdo|u%As-KvY9G{sSUtE${6rYiplNO(plbD*Q9raewWwG>D?cNzI6qHcFTE%+1!!S%Vsb`mv3^NWVqS4t zeo=0*u91FPW=<-Q)-%*MOiQt_Ft#u;Pc}|5va~d?v@}k&NJ&mIO-f5kOfpT>F9Pa? zIbOG-A|s_BQ@6|npEvXh^3oYhp)T(X@N?(olHvk7o7dCBB?w3xfG`KhLw~sqd4SX( zPZ!6K3dXl*Hz!3f%D8yV*UZInnwPG`GDy^HA(|@AMnnwz_=ZfA{m- z`~0R`du<(d2)OJ%BC+VEadX1&%&DyV43)W4PBVR z{>!PX56pZwF~lgwi!~%KImNVrzdVv*o(HqoC5K5m8`}9IAFvs3I$)ovFhSC6odoOZ z+XeU96@Le;IW7Ipd1ud}+Q{O#W8Na?OJCM71bKMz^J+5ooBMK+1 bU9!xKyDeNTF6>GIIHh>H`njxgN@xNAb@st~ diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_ic_star_half_black_36dp.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_ic_star_half_black_36dp.png.flat deleted file mode 100644 index f984b1d238e913c7df53167ef383f55ce35c48ef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 839 zcmZQ%U|{$N#2~<>l2Vjdo|u%As-KvY9G{sSUtE${6rYiplNO(plbD*Q9raewWwG>D?cNzI6qHcFTE%+1!!S%Vsb`mv3^NWVqS4t zeo=0*u91FPW=<-Q)-%*MOiQt_Ft#u;Pc}|5va~d?v@}k&NJ&mIO-f5kOfpT>F9Pa? zIbOG-A|s_BQ@6|npEvXh^3oX`nII1B4DfU3<&xq8@_0QxT!Mgf4hVCAJfxaG-;IHR ziNn*yF{Fa=?Rn-N2?qw&iz{<)mq}mQc6PzG+}myew}Irg(tWuh@`rEFpL^r;2F>ZG zpBC+m(F@OVk?u|jtn5xXYv559CmbfRm@|4Ir+3?SwHysML9tHpSsRW?_}(b=jbQ9i z%V|{8QIwmtp-#dzf<-R#P*$=@BD+bVrQxg%J7;a!QFFDW^svUELxthOVUmkEZ!hFL z-LhXTM+<1q%-6cs=N|Uo^`761Qj?6vl-r8$Jxwr=3)!u zmqYQwY+pZIXmM1$mvKmedAmuXz(7pmAQ^7ovYsaU4kh zGLZgjQ2nJJLHgse4<*dedefn%!!>W#1|M2@t`P8jMbFl?JQA(!&K+GxZFwhb?d6Gxy~Pl~zq0eI=}-2j zM>Q5HUzoE$V)w}&kMO#M^8&X!?rSdEEEjAtRWZ|pM(5W$ Z1{H@3M|_W@X9AN3gQu&X%Q~loCIGm2HNF4< diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_ic_star_half_black_48dp.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_ic_star_half_black_48dp.png.flat deleted file mode 100644 index 4e732e87007fbb8585863160ecf4d19800dae4a2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1051 zcmZQ%U|{$N#2~<>l2Vjdo|u%As-KvY9G{sSUtE${6rYiplNO(plbD*Q9raewWwG>D?cNzI6qHcFTE%+1!!S%Vsb`mv3^NWVqS4t zeo=0*u91FPW=<-Q)-%*MOiQt_Ft#u;Pc}|5va~d?v@}k&NJ&mIO-f5kOfpT>F9Pa? zIbOG-A|s_BQ@6|npEvXh^3oYZnIR7C4DfU3<&xq8@_0QxT!Mh~1Q6x`dC1pa%b05iw1V@L(#+uPpRb5dp6K4w4ih~6sbYunM@DzSn?R)Et>Jkl*@g@T#hk;6(}A2$ee zJz{K83R%^TN{>A!iuR6Pu(fhBz z+0JkMefaN&sVbh6fXJj}5r05|>S>LNiA_PPE}H~w>ObUga;As}Z%X_X;w}Cf|M4ZR&h43yp*dB zCtr)OX_X5Wvw6uaHV7!X=Wx=XwQ!?tU}eBLQN(^?G!=4NLY7mP=>2Ya&~jO1&-pbD3)FwkDXdFT zv|q8Sv8>3*_J~8k^BIl1D*LuIZVH^nGv#gSHHVuD_7WPmk47@5-u`*TA+k4|_sZGF zYa}#wPp)K6<(0HJne8Yz%OAzI?t5av;}X>nN^!D8ye+I1HSb&ZaV4v zbmpStZ*RHGQRUmzELZ-%?emb9nUk0dl-Q{i{k=XH;d0~oNsrf@chMR zw(A^JtNS>=U7G0kS>3;wQR}Z#o$3F2P%=~T{3ZS+HJp9+xsRYk&*16m=d#Wzp$P!0 Cznl*M diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_list_divider_mtrl_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_list_divider_mtrl_alpha.9.png.flat deleted file mode 100644 index b2a06be3488758f8b0168b8ee8cfadb51897f86a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 437 zcmZQ%U|{$R#2~<>l2Vjdo|u%As-KvY9G{a}ToRv>S(cfSS`?pKQj`;)m{X9EC}hQD zVFA$qB_A-txGXRR4qB>@Q9raewWwG>D?cNzI6qHcFTE%+1!!S%Vsb`mv3^NWVqS4t zeo=0*u91FPW=<-Q)-%*MOiQt_Ft#u;Pc}|5va~d?v@}k&NJ&mIO-f5kOfpT>F9Pa? zIbOG-A|s_BQ@6|npEvX@^$PORf$m%lb!%sUpF1y?6c>=o>*?VV1f-cjm;)pqemCd` zkdnwN@XrD9(ZPS9zztc66d+}iR}hlSz{JF;0OV)@F*-0n2!JdA0jB>z;AZ2s49Mp5 lba4#fxSssy{DC6}7#LW28JRf}4=RC_dAjSU)R2Bd<6=PhT&+C@}?SRdQl-MryHsNl{{6aaw*+Zn3VB zep+TuDv;JQ)Hh5^v9K_V-L5x1u5= zr65zc%mlj!^epuX^3s7W{0entXMmqOFP9V-kjv}o;SvO-g+Q2t4M>Ka>k9``5_tvw zIY1f%%mj)Y3)rw5NQLATgd{UCF>xvYIT}EW4h$dyAY*xe7);MJ-ue_71H~DU`5?B# zR`2sbaSKlu#}JFt$tL%Hm8da`G6*wIJ+Q*Dg^^os=UR&+dp%7%8XFrQ+DpwZG}&Ot kplr(XNzV6X^A!b#);BEo9-Oi`3N(Yk)78&qol`;+07zDT(EtDd diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_list_longpressed_holo.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_list_longpressed_holo.9.png.flat deleted file mode 100644 index 20ff529602560e7b03a1d9781c416f45b4353e05..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 483 zcmZQ%U|@I;#2~<>lv0#fo|u%As-KvY9G{a}ToRv?pO;=xlv-Szni8LppOY_S#bsdu zQ4S>^Fv7SjFa{1SU)R2Bd<6=PhT&+C@}?SU2xt}h%& zN#qsy=KyI8a0V!1)$Fegq(brvLXsJnm^c-H91S2w2L=!Ukg+^K45rU8%sfK~mp5(b z1gcl?ba4!^IGvm_qw*OKvnYcw^V9oKlono|u%As-KvY9G{a}ToPYUlv-Szni8LppOYV-l30{2WW{A+ z0Z|VnA27nWEHDNRTB?^(KeRZts8~NMKO?U=KTlsTy(lpSXkT(-az<*geo0YcUU6D} zQEsuWk$zfcPAZVrGt@UsOR=ypwlFbIHcm0Jv^21^G)}chNlr3NN=r*jGELM6I#M6z zcHN4KjFf^*-7*tAzR ziM#^;93YJW9DpKodE8b2sgS&akYolXCQbz)M+1n_fdNE-4M_0-F_?BZbLI>o%;9eI x9H?I0)5S4F<9xEs;{y%?28ISbT2i4d@vaOnD;N#pmY9G|_jL7hS?83{1OUAob}0Y= diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_list_pressed_holo_light.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_list_pressed_holo_light.9.png.flat deleted file mode 100644 index 496cd2c4683314d8067fd3d47368b1a8690e4bcc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 478 zcmZQ%U|{$R#2~<>l2Vjdo|u%As-KvY9G{a}ToPYUlv-Szni8LppOX(1NzW(|vf{F^ zfM|e{4;W!w78nBuE!D@UA6lGRRIHzspOIIbpQo>vUX+*uv@kg_IU}`LzoaNJuQ)Bg zD7RSGNIxwzClyHR8R{FRrC3-PTbP(98>bjqS{hhd8mC&MBqy0BrKKe%nI`H3U8xUq zylzEBMoK}ZZkY)_Z|GU-738G@-FXG-*3JMwcU~?jE+CiJ)59eQNDF~52gp-@j=S9f zQWALu{y9Jz0~iBEp0s)10#YG)1tG}{OiY{#K#m3wqXPqo02`3v0b($1JagtuLO6ft z3}v8taZeY=5RLQ6b28632pAX|^k_+iy2QIOIJ+`@i12%q1v1^!)z4*}Q$iB})zNbc diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_list_selector_disabled_holo_dark.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_list_selector_disabled_holo_dark.9.png.flat deleted file mode 100644 index 21442f406b375515a7e841a3cf285f0e958c5464..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 542 zcmZQ%U|?Wn1QI~NrJGWeSe}@ald7MXlpLRvSzHodoSKuGT#{cDpORS&l1Yir$j`}- zPf0Aw7P8{9uz=`u2R>FcEzC8hvvPEJhD zNG;YcDN4*MPRlRKE!H*CPs_|n1=4zk`i5yK78b@9Cg#b;DMpr-29}n_sTL{8Nv26@ zX^BauiTXuAy)a+sR#ar96lCg_nGoe4JxjfUymST@s3$rD{M>oDq_}{N=k@e(2?Eku zKwQTG^4pKA-iAO*BCo(d2S|efGmHVG8-Vywr%Vix3dt)7NoHVT;#2@~G=LZ#7(fKX zfs_Og+W@g`1CRh=AYg0&5+Do&C~U?2+BTq=yQhm|NXEUlXAA`y6nI!Rus;p;Gi3DE w7o0Hll=s}p_kKEPP4!wDv@!$_RZ>*NIO`}&#W~sOvq1KEy85}Sb4q9e0Ea_=zyJUM diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_list_selector_disabled_holo_light.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_list_selector_disabled_holo_light.9.png.flat deleted file mode 100644 index 299c42505e9da9494efc6dd6a79da1eb6abbf2b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 544 zcmZQ%U|?Wp1QI~NrI%8aSe}@ald7MXlpLRvSzHodoSKuGT#{cDpORS&l1Yir$j`|K z%B5$N2w8DiSU|Kw$p=uA7#LVk#4$NiGZ^(li&Kk=^|SIb@{05G^!3t<5>tRyCnqLn zq!#O!6eZ>rr{x#r7V8@6r)B1(0%<)%eZ#aA3kzcl6Z2%_6eCMZ14~QeREw14B-5m{ zw8SLSMExS5UYIv@D=IQl3Nm%eOo;Q4o~2$vUOLdROi+Jx2Kc%2a!GLkg?K$ZT!MhK z77*8QfV}tPs<$DKlE^FY&jHe4zyxCeX?Y;-JXB*3q(brvLXsJnm^c-H91S2w2L=!U zaUdlD#5O=|3(^n5K){HL{W48rK2YA()5S3)OtDnm{r-UW|AeVkm diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_menu_hardkey_panel_mtrl_mult.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_menu_hardkey_panel_mtrl_mult.9.png.flat deleted file mode 100644 index 8cc243ee58e67aab0f3d433e6f08b913e7f4ca6b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2053 zcmai#dsNcd7RP^}B{5MDnW5#2e49w(vxlfeT4t7*nhyj4@c}AOzOD*B5|t^`X;RZf zMlCBdA9u=ORaoX|C6T66_RvgiYUQI+%f`q3xf<_U^T%Cxul3!Zz0W>-opbg-2Lb@V z0;pw!TQGREL>fJoiKEdYs2nEuIF(J~F=Cj>)OZ?~8B65|c%VBTE7;%ycXImP^|v2_ ztfZPN!T+FcF$Cw&XY%;C=r}f)AIHVnMDl11@YD!e1e?jn33xOvpB2aB@VD>4v7%y` zAZ_qCJd5GvWamV1jId+uaCWwJcD7?WF(T;pbQX(7x2NHFVDHKcwkIXA8SzouPZ0j^ zTWp+d;<=H)=hffuo9FAZ4*}POgBilhlXL{65|k%wxh`}4)&ycRH~vuU=H=jTfdCp` zW8IcOcJRI(1A*kmd(&6y%Urg20u={>!i}dy08r=}LohK11=>Hh+J0Zt2O$TwOm|Sr zGyboZ78Vy*@|BqKx-Ap{R_l6^+$c!{;}ti#+xBkEIplxc?N~O^uti~E99VEBP-J5L ztZf&xbky-_qVWlpo|AED(wai46sgJBRH(>jkb|G}*Z(%td-rMTp1RTVl`}1gs=8F} zi~$j5l#O)%hieJ{N+q5;Yrk4rs5DdySoP?Ppvfel6DyYu=BZ zDLFHr@nalU@FfT3D)F$%@2|T-k+|&MEhNvA1L;-4Irz1Rsf!3?!-e!*Kf(iX`yeB; z^~lr_K^G?c{;mf6YOMN=n7Ak3rBQu$=%xd0U1bo`UosJ7$XPtQ$?8h(>H6@sy_nq2 z1dO5n$9lu*1=z%f;n}vBnnyodx_z2!Jv?7FW^ckchd&Sq@vglfgXsHg`;@6P+Vv`9 zY2CXz!M3K1_xwK761&#@_veoy1vmDL4<;rj&pn=*nd$9j@#lu8r|pF}bYrgcuZpRR zh0*SF261t58Mj(n=lF`3i|BTfVp~c`R7kBE`x4NK($8US4hRT%q*AGTsO9I=wTArQ zm9P(5>PNTI=RQ4GC=|EPGCw{apS_+vMi=Rge(-ICvfFX@w&;zf{-6vA2`SI`{Jsw( zLYsGc1FFttk9{pIc3iII^JG;sTeW>1@*qDSr99&6UBN95{}ldc!S(_SsP74Tgl zNvnsFZ9jW>o?4|e02a%xEEpl@(~t>2hre8d5F|tfJ*Yw!p^CHtWdLyAcfLAvjnWS= znCws6SX}O_?Y-AyzOw0;(qoomX|&q68XfvQ#ETVABvsX}ur#-#)@zVj>6g1qc)F_X zjoG}7mxh^Q^zKXX?GG(FOM=5xO3PT>^OT&aH zvE&k9qwY^99bzuLz~psn6H{fuv6*?R4YSr>)0rtkrd@H%O~n1`%K^GYaTbla3G7-( zrwrC|+MxLIf7@y2{}Ql}U`1m$>X8#?a%sr@JgV7QDw(GS=E=tY+5 zGHNR5y5pOyh$`nEA6qo3YE4`sT@5funoW5yfdM7U7TW4PeYj%1VfXBa>goONb*P?T zND85J9I{Q6VzhLC+*L8_*(ruG>=w-6#STj01Gy(=5Z>&LPSP~T^lC=vaPFi*op? zNqyF#+De#dCngIe-r@p{IzF&b)MBi{h@@c}?Cim6>ho4qj~34Wz;K|K)uA&(F;8qsV%)T6ZBhY=qE$_}~77+t~8`odbQc6Ef9Np!ZMJi-X%??@*j~V+DP~ zR4ZssQhG);deGUk;gv@9MBhjdq;sgPPlu2guTdhwz=AI8el6@H^2veY9k$Ry50Y%a zEg&r+WN^x@EI4pOk6xqwfaOgGYv@cY%;;ugq$e)i%0WJxtSgjU1+Xp8LLj^^Vep2o zCMp})(F0g;<}w`=2;biDYg&fCt2HR^0#f~9gT8V$&~$XY3@_S$n|}d)SCOb_zq6HA ztz%{#CMJ1crTsxKgCx?EubNHk1OY&ubt zG2Xh(xLflK>ty?T87EWpX`^|hsI$sgN-j{7ekr@`K0RjVehi_09+`h^QD8g8p=6?WgnMsrY diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_popup_background_mtrl_mult.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_popup_background_mtrl_mult.9.png.flat deleted file mode 100644 index 3a0cc2eb4d4cff2cae00186af73a9c764bc838ea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2575 zcmai0c{H0@AAVm65=#?NMQjm@R*5YtDiZrrEv>Dc>R1w`N@&PXl%Pn}-l25HQnZ{F zt*w^UOvq4GwSA>UwNXRWzSJ_Pd~xQR@67!1o$op4xzF?5dw=Kt?)~e6008{K=RQQ# zsdVpfZ=XP4oVO3fGbA{K5#s6NO}XMn4`$G)oM3+#K`E+n*WSk@UIB{ z%lr>TXMs4^P+xi|E+E*S78*>$Y5UQ=sr)l3-V}e|P+S<@n-+R0m>v|WrH8w8InbA{ z+PXO1OH?BxeItY86n&~5fuKVm==&N`DL#0gOP9QT@ZLB&zxJ>GwIU+?sUerOelYky zH_;|&htT{05dLSkH=Rz~h>M^__(|N(*77W0*?fAz_HQ-uvcZQhGPDrKK$(5>H=4zd zl6m}`RBbNG7bGpj!RPPm`+h1P~JXtsBx@ zd<1|M5WNW`_p+{XGkfABP;iMPXz5tKcKnyZ>W9^ZUx)=@pKBE@d}FD1@0aSw4|xy4 z_x}Lx_QbEtX=A=&YazyVZ=sE!&pAK_Fh3G*z#K4YX03MiZ!UEuN&vV z?(5UrdetD-t0`DIA*oR<(leZKs(mGzom(hIx6QT?Tg{Atg-9t?S_NqeQ5*V#OjX}; z*7}yN6MjiF)$R_AT$yv<{1v_F(4_J_E*hILfR)im%ZDphXP z**rKYmI)?s-W!VPv{!zg%0!+Ot`gx)cFy>{jM3pB5)z(MASW+c%z~dcG8ozhZbV?@ zv+oE(Ovhl*?Rc91%Sb(V^O@W8;;GaA;u+&{4SNId8MR`ucUl^~Ie>CzF6N+$SNsEgs8M#`qwr#R^gb;Yp;_iiDYpzF3y4y9(I@O&{Z zin%7dZ3gT*|0Fv}=uWXVLdJ5n*YCjkb&5twZvryutLQjngNRYBH;Q?OPKQl%q3D8| z%qGUzQ+70_0)C9bGL-?(2~D!8U56{&V)o?4`ejzG59euxC~k zLLN9AI+um{03kQ@`yCg0lf~Q=dA|WChfcXnPL6e!PjiNGbP7vQ&9do*w1E{YC#hNZ zYZTyOaW_q>?w%|-Po7r<#_z@rwOmbro`AhVywc!4EfTz!#WUDA1>KpNJ?XzW`TlOx zgd49Bqlo^sU9IiNOb$jg+5`tnXqN1Ozf&)6sG}W+T{xOJWG>Zc3f3a^kq7(;Ih>D6 zkb?My^RHtI4Vu3#!HdU_!e}U5+L(9*K-lujCV!4%UW_(hN~h1oeX#B!8yUz~xUR9` zGZL8i#ZL;}&K+fYx1-4A!kMzd{wL%8)wf!J0-X6+TV5cd-*a%Mt#tAk<;=p5Z%@GcCPk>j(Z9MC&3+Zt;zf;gAt;4oz zx!5k~(e4{5KY?u}RTn*eYo+KLmTc2b7+1@ifJ*-C6|ZU3CgpMeg>#G6Qr}$KohM+c zW5hN1`2#KiB&$4crmXok2RyC${Fn{u(PV~xqMcKB_LRMb=x%dI(cl`^+;uDwQQv8>i)ynS*lKraHPK`KYZrq=IwgD0HT#DDlSq1%wW$ zw)F?82UW~gU0hH0j3iS_^va(^eMiJrw>2(Gk$(cddvu|Df;H7Qv3-u~X{yi8g9acM zln`$988;9;4oTBc-pwh~td~ex{Lt(6Dl49DP_3uoD9*i3!!!Q{u~U_FlA9}9mrr=TsBU#ZwR9Xau|EVr&Z ziK?3C`sw_gd3|{1;lvaKrUw(=lnusK7(P(Y6c^03v`&bh7p_|c?HQkXE{~sKA=I%C z%q0iTIW;mJAFYlpE8&FdHCUBXj#!1XKelAzBN=ailh`EM`k30)=@;hkQORjezAiB))9X_myXZY5>l!NH-? z;c!)fKpaaTa6}YCf!6DbcDvvIs?o=i9=VBK_K}LoI0T_;wG3T*#Uoo5~(TAuw0tk_6qGEoA zB{m?{J#TWXLZ`L+T1Jt->k+*{{R30 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_scrubber_control_off_mtrl_alpha.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_scrubber_control_off_mtrl_alpha.png.flat deleted file mode 100644 index 93a9911ba543dce0f82086fefdb6ca88696b686a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 600 zcmZQ%U|?Wm1QI~NrIS*WSe}@ald7MXlpJ52TvVErlv)&@oS#=xl%ErypOzM%TT+x0 zpO{mSktk%vWnlr)2qhmt&0%0*K@rE~NKIkX4=qkDD%Q`+&&Vsz&(qgSFG@@STAZAi zoRM0rUs9BqSDcn#lv}K8q@R|VlM1Bu4D}7uQYOcV8sfO=t`(5*?VV1f*4f zIDrG?vHJ%kGJ%1{>FMGaQgQ3;wT-+j20X2a<_3p7zw|iy`yOQJImoAe(bz+cBeyJp zdCC7%1u`0)PabjAGe?~APKxd^JSLI+Pgqx2TiTkP-C9~(c zedfDvyUoMa#VwCZO ziOR2*Fvwn1d*jk8vOw`xYx9apOd&4qQHom^uWVgg_BV?^=xw(~ZPZq?MOSWIiCP=< xIb6y;i#aGWWwpNGuk7A`i>Ai?g?Qu=`_1~@jwvV7w18p5;OXk;vd$@?2>@Bw%fSEu diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_scrubber_control_to_pressed_mtrl_000.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_scrubber_control_to_pressed_mtrl_000.png.flat deleted file mode 100644 index 4d3cc64743f04f5e303a61b0cd6f61ebda1e4bc5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 693 zcmZQ%U|`^81QI~NWtdWwSe}@ald7MXlpJ52TvVErlv)&@oS#=xl%Eq{k{@4Clv-Sz zni8K|Qj`;KU|=9*#bsdu(G4XZKn-JHU_lYblS~u!fo{}?`9!y(A|s_BQ@6~7Xg}!{eP`f>h8k@X8IysW&xIc#sZ#kytb z;{|#uzG8w_4o#kHOJkjHvHT@VOOnLrp0J*OHkIqCCfCfJ>)95mdEURFzgx;v^>(zR_qo$mZSPWwQki$2*{f~4 z_4%zsj+Kh;-q%Yn->KN;5nTA;$+MDGCoXJ?3|<_yODJ^Fk-dvIvAXk5%9^*)=jNo| zjT{mYC!@QIw3$16-%ORgF}uU_tms^q)}2!(`rMp&hJ9JrxkZP{(@rs*iC`C8dy`f0 z?TO}&zJ)IO3+3MCADAxt?DKz~AI@yMl@99Vc9?$hl}X#U^y;d+EfHJ4+_l_tN#@T5 z``*Q_t1Y4=x|-NiL~ovcH!*f<$5~g^q{j!V_kP~0_VMETV^N=vt9ur^Oa1tic5#-+ tY?b9#^Rv=&Uq79?cI(WSKVN;9k7oL&y86MkEMQlS~u!fo{}?`9!y(A|s_BQ@6~7Xg}!{_M7m&y6 z>ERLtq|HE>1LQw7pG9E|3`|my;cRa`fZ-<(>zZr{d@`_@H=_r1M2N&M#qC05bt?`*x7ESp^QM%Ro})E$Ntig zwVh`|F0Neuv-^A6d=hlO}6w{2a@cxT&L@xKZi_8FCCDqP>m z$F}>Kp2VBJJcEeobp{dh3k`0x*efRPcb@h!eFq!o&0pUY^}lXEa6Z)Xjw! z&O)y~_k?_5>S6u8sDSyrmB3G_q$%9yOY;6%*YO+MTyK=&*dHO#9y7D!s!=3c_GOKT z(_o&Eqdu)Xg~_0m+BdJTzti_{!_wyU}9nLboFyt=akR{0POZ->Hq)$ diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_scrubber_primary_mtrl_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_scrubber_primary_mtrl_alpha.9.png.flat deleted file mode 100644 index bd4408e53af108f67975f90158cfb04e032da696..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 484 zcmZQ%U|{$S#2~<>ky4aco|u%As-KvY9ABJVRGO5OS`=SUl$o1YR2iRJQj`;)m{X9E zC}hQDVFA$uB_A-txGXRR4q9pwqkd>{YEiL%R(?iaaekh@UV2et3eeKz#N>?BV*Qe$ z#Ju9P{G!}qT_gRp%$!spt!Jojn3iH;VQgVyo@|_AWNB$&X=$8lk&>Kbnv|B7m}Hu$ zUj)<(^MGzeMMg?Nrf!)DA+P9J>J{Xr1KoNF>fX)(KX+a(DJ~$F*VDr#2uRBTu?h#s zVmQs{ho|u%As-KvY9ABJVRGO5OS`=SWl$e|ypIcIt6Q7tF0ZGDOAwHj17Z~pkhe^3 zI6VSV5_tvwIY6305JUh0jQ$T~pJLRU0;F8>3PO?@m{^zZ!c_QWKiH~F!=I+{%!dZ-!d_-1y;uIKYr!^u}wmo UiD|)+Yk?r$p00i_>zopr00rA>{{R30 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_spinner_mtrl_am_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_spinner_mtrl_am_alpha.9.png.flat deleted file mode 100644 index a7906d556b1923140f9f3cd3cb81c580f3b04441..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 786 zcmZQ%U|@I;#2~<>lv0#fo|u%As-KvY9A8|JnU|MZ6rWpCloOwr8=sg{kdY{4#bsdu zQ4S>^Fv7SjFa{1SU)R2Bd<6=PhT&+C@}?SU2V-L7 zx1u5=r65zc%mlY5^epuX^3s8>o(om6XL0A| z=&aen#B0lH+8Wom@DW=`$vFd|Pj=iAB0Mw1CpdlA4pPZ~UcGyE>`4Qj!yxp}_}y>q zbyH8I)>?8og}-}yW8$Z{mf{zF{Z-+b0n=73O1FI|Q@Q?m$BIkKIcl|BT0&Ub7oQS{ zcy>*vQ885J;L(1SS9=&T^+LJ!1jW0vIeRLl@u=9Z5=!vd)2GEU(WO~)gVm}i#$YMd z&9_djJIeEcJydSSMJvVCvaz!*|2e!5vMIim9*|pVuJb|iW~B{x-uWeyR89%WhApYK z^7ryeuYHsw;CUy%>su%*zxqG1na*+3UND_>d+yn=&c(8#4^)I^Ck5c=b3 Z$BI?t? diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_switch_track_mtrl_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_switch_track_mtrl_alpha.9.png.flat deleted file mode 100644 index de861fa8ba973277cb7d3a7cb4cd300eb5690784..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1117 zcmZQ%U|{$R#2~<>l2Vjdo|u%As-KvY9A8|XS(2O)Us9BqoE@KAQj`;)m{X9EC}hQD zVFA$qB_A-txGXRR4qB>@Q9raewWwG>D?cNzI6qHcFTE%+1!!S%Vsb`mu|CkUyyCR{ zqTFI#BmK0@oKzsKXQ*$OmSSOHY++)aY@A|bX=z|-X`E`2lAL6kl$Ms5WSXd71k?+2 zylzEBMoK}ZZkY)_Z|GU-738G@-5JabacpORpF1y?6c>=k>*?VV1f<=8*nk7%sh9KC zzXehfc?JGCyg&v>4~*XUaIxcmAiwNh_9Gw_lUERu%)rFLsQ~0?05Lj%2A(`n93~Ai zP8Wy`(A0tg7KY(cgzuQ4?5|q zR@?c_wVEDZwc-D<9B@st0-3{kgr`^q_-)#ZQk9Z(Hq zd+!p%RB%e&N|s5`OGHC8E_1@&y7hX28Sfsmr8O}tWK~+0NBXeH7(8U?a7gOW3Q*sF zwNdMFZk(iITjHq+no;kVw2XUBzE$K=jGZELV8WZgMcoF^Hy`&nv%S){zB*&y&is8V zB%d>FFDtBOVckBh-}S3T*^C28Uo$RlGx1#H{7BUFw9RBy{;L%?@7zCTy>ZF+SK&I- zU)lz&sjKz)cD}3G(6DxvuwUY==L;==`P{Ku(0pZwX4Wa;b5pu9KVJT2p>nqB&8D=; z#+x2WsQ6YLndx(GL&b~5mU1cA{uN)bd(Tt#<=g_>bIJV{dw*`)q`&(1<2ltwekS&R zKC66gqOG5*uKAYR32N21ML0cw%kAAf|Jv6j;+?wv7SZ2a9|cq!`R$&Ywmf0Wa_7@Z zjtS?sJmXA1J4f(_Xs5%aU49}K@7S2?o;h4v z`Y~EI-(B-|DIS}9kJ<3utdO5Qp;=-gTe~DWM4f DAaI!q diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_tab_indicator_mtrl_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_tab_indicator_mtrl_alpha.9.png.flat deleted file mode 100644 index 7b7d73f032b98a37186a277cd4c989ce9e3a4bbf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 470 zcmZQ%U|{$P#2~<>no^Wlo|u%As-KvY9AA={6rY)wl9`-Xl3x^`TT+x0pO{mSktk%v zWnlr)0VN+W!niCj1`b-PpHV-wIJKx)KPx{YuQ)$XUoX8VF$HL2a$<5uYO#JvQDRhurRhTF;6y5F|xEYu(UKzwMa=$GEGWLOH49N)Gq?+ zg}Gk0q9P-uAXB%@1g}5zEcFWV(izS`o!S}T=g!L|#RcT@dV0770cjNw<^cK0n=?Qd zNJ-=s_~!s=4DcT)azj=k1xQ)s6@(-+FflPH067{!j1CMC0w4=OKn{o*L1sMM{v6~0 zZBG}+5Rc=@2@NJ$K*&&W7H2VPAw|d&&topE6&f;*Gn%-1lpmW zoS2-ETC87El$ckXmS2=xtZSs7mYI_Zr1cE-4bxIAEQ~Eo%#)2%j4Uk;EG>;wEmD$` zOq0^m5|d05^^1UdVcyWKsK`hu$kZ(}AKZ6LR^9LhJ8m#Lc;ErXMx%TOM?7@859B<_Ww8NKQB;l|9!%G zhxyZE%p({W82LS2978G?-`+ghc+^0|IZ#r>=E1! z2Ngz_g$zoZ3S6uLfea5d8g_^X1Ts1@x&%A0u)2ggxUjO+-|XEXX#U9UPW_ov=lEI! zO|;IaGySr@IWv4lvQ^{FvZe#Ol8;Z|`}TxY>?tSHZQ+A;-zWSOxnXwOaLuJ!Wu5v6 zakgihZZh2Z?Xce*3Zh%$Scmz)7MKcN(5S> zpPZPSky@-@Qk0lioR(jdTdZrOpO%@E3Z(T6^$pWfEG&#IOw5ywQ;aMv4J<8*?VV z1f*Ml*olJ~NG{awvjI}Z0X`wFKsuqen*y5hE#eI$^Lttiq zhKPd-qsu}DB~Aq{R)IiK!)J|o$x@n%`mfnCYRC-8lH!YcNZlj*kb!Mg7geu~^MyKT7UQmwL1 zeS|pMvrRV{ZvA%HbofTuzr9TtZLR7A%evST)>S00hsHCa+On7A91$ zRe9ze&wb;dgOg4jT;Iidx+wgQPl4r{w>b;BT8f2*v4x3wvT=%$rKN$TrE#i7N^+8E zQd(MKl4+uT5l}D8Bf1q887T#sx@9KBdP%P!FP-576U4op0e9s= zh1qXJDimvGtcrfa62Fm4U+uM!wUx&jDcf^zH!3^zgf4d9X<8=XrFiJc(Sq$q`I^|3 zoR&(wns%ekE62n};>njA_p)+&7X7v|-KOrPkaVUw&aeAzn-WL&lm+dE!%r4^u1S9Vn7hTf)_HNn(Q60QIof|WSzSCf?Wi=z^or(96OTQ6q}Ou#j%(hI zjVCQw9|oyUkn#Ia#4$ZuC@aUg!i3}7g1ikkL}D5*9C1})=bFd2aOTN>NyQ)h4nMel zf@|B!rL$M=v)iq2!dIszef7aNfmyHDu*n-K{8;d->|c_@2X~dz4|WN(tx#-Emlm;! zWqWU`Q8AszEOFjpqAOB7fZ2?wf1;n8#z6 z74V@@a?hy+4@`|JS{x59PAQ0NZqoj<&$TAO;Z1TWW5Qm>gR`$bU}Iys9^Ncm82k8! z^uB4C$1`PY4u%&jTjss>{6tM@-^!`#thdGYEeL#5x`g$%wy9?&D6qnYU}g+^4UpuDl|9D8fbD!eX1l zu_(isU-uTyzo{1Hdu3YTjVb3-r);iDvtpKhxYe?Zebb{#o&~J$ZV3Ehc>C7s#l*Ig z6_U$6Z$_RdIdpTWkI!LUZL#x)(w2TUebYOR-Dq4M=(6vK-xiliv-_@w9a4F7MDot@ s>L~}B`FHehzR|gIMVrfNxy$9YzaK3;H!*x3FeNj1y85}Sb4q9e0GkG@%m4rY diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_text_select_handle_middle_mtrl_light.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_text_select_handle_middle_mtrl_light.png.flat deleted file mode 100644 index ac4073212a27ab7d1d4c65149c8e87560dbf6766..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1043 zcmZQ%U|`^81QI~NWtdWwSe}@ald7MXlpJ4@T2T^ToSKuGToRv=n3s~18lRh)0;Woe za^iC`(=$qhthg*JAiAOC1E^sP3@j+(m>j8@jQXL)sYS*5S@{`x#rb*qdg(=pK=bvJ z6O%Jii}g#267!1F@{4kdb&d4XGILUaw4R~9VOolXg|UT+d9rbek)@@9rKNGIMM`p# zX;NBRVv=d1ei2YF%qO}P6&Wc7nYv{rMEgmvATJ&0+K)^SCwB(;x$|;KaRGU}o*phi zK-va~Jvi8a$x zeJ>o{mK*c_?nBCqdmem-aBXPfE9%K{XnI6dZJ$wr})BPMTN5$Y|DgL zLV`(SAQ*rfK=8yy$9@3bxR*bpIq@$elfYmTJ?iJy`-+)ny^ zkXdkH5KoDBj=rjyl-!r%s+@9DGq;PjbER&JstOoBb2MLmw9HAc#ntP=QO%8Sr$lIr zE}VRKEfAJH`u(^2tQf4 zF?8eC53Gk0KV49`wsGr6&O;0LEr?r_l>LCY<#4T2Z$|R}quLzPD_ZN7d(R%t<(R&+ z_fA3beLSc%}wnmAJp@5>3#kz_HiELM*gd;4W(=>`9aOEB?MxkdHs%r z_9n0Y8MRDyY2gQn_=7WN>0PyRU6y0=G*nJJC;rDAw~gTw#d6p;T6vjvd|lP7cW_a7 zhQJ=fIh+k8)Aw&(ucUp)vfuvWsn(71AL>nvqbl{f&N~0iNZ)#ESIXVfi{A+xQ`&Xl z;6_%XYh4d7ZRh)Y#%x2@qHpr;zCUA*)Q6q-Nl#$jV|F~xJ1jiFR3w u*4-7|LKPqQ$_u5e4Fso7$heyPi>u~nqMKsVR&QWZX7F_Nb6Mw<&;$TOf~3B? zTT+x0pORRVEo8-IVFA$#B_BYIVqjoF5y#|6O=r{(Elw>e*3Zh%$Scmz)7MKcN(5S> zpPZPSky@-@Qk0lioR(jdTdZrOpO%@E3Z(T6^$pWfEG&#IOw5ywQ;aMv4J<8*?VV z1f*Ml*olJ~NG{awvjI}Z0X`wFKzhTzqa-0=cgwRtZGt61e!&d?_csJ6obNZdUm);4 zVZForq;*e$l8l0$E{-7;jBjsVO+0EK;BrycaP8M$>&@yD#e5%x6`Z-|WydrBl*H>j zI^6U1kCezUDon4EV>F3AuiUVVh2ua46U!`R2ZmD(4k-=?j1(5|aHz1ktYhJb;o&G@ zb4hb>kQA87$e8LN!Ny|4yvRU-hnY#F<6OfAo{nzDL@Veu>8~Z_N3B3B? zTT+x0p95kFS#eodKr}l*2&W#*&;X+1-I!?Y9&3u6lt^JL=`BTGvIOH1Qai;)1N_{1xum#&uIKgia0vp^ zEkNwV!3-o9YWLXyDdPa25LY0bP}@xsTD|W4YM?g3k|4iehX4B;0u;{o8{97tc%QJ| zVSduOr)L=$7zI6D978G?-`>2Mc+^0^<)WwH5&}Qm|0w?x{NG{8@y|Rh;YXQ7 z+xiu$Kjs%mtT|ON@6mjF;Xk?FDiP&8_e30@P2rsOG>MZdS(aFmni8K|Qj`;) zm{X9EC}hQDVFA$xB_BYIVPIfE5y#|6O=Z*%Elw>e*3Zh%$Scmz)7MKcN=yOTo1B=O zky@-@Qk0lioR(jdTdZrOpO%@E3Z(T6^$pWfEG&#IOw5ywQ;aMv4J<8FLA@N?(olHvk#c|AQ`f`GId z5G!(kd?s%wI2TAsHA1HD|Rw4yRS>zRjBr`BEF)08!8bFK&cnlB%APYc1 z6hbjD-r@_~0%WUsx;Tb-98XS=U|pOb($f@Zz~y#O!-27f=l{xd31QP%vn+|13=H>K V7`dyrUfu)J?dj_0vd$@?2>_jrX#fBK diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_textfield_default_mtrl_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_textfield_default_mtrl_alpha.9.png.flat deleted file mode 100644 index a1a580f55a83d282569c8c77a68fd6fe20f183b3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 474 zcmZQ%U|{$Q#2~<>nNpNko|u%As-KvY9AA=JQIeLKnv)WrlA4xSno|;=TT+x0pO{mS zktk%vWnlr)1tlLa!niCj1`b+kGNXQIacWVqepY@)UU7b&zFvA!VhYgKT;S?U$!r8As>I=3^x&z+Y`iVMi)_4IHF0@7+gtjGcK zm%O3iTp%TpSKyxmq~U-W%K8ta*EgS<0;DYR3PO?@n3$LpfE*1VMgu$s2mz1gTe~DWM4fn$BoQ diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_textfield_search_activated_mtrl_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_textfield_search_activated_mtrl_alpha.9.png.flat deleted file mode 100644 index c2ba6b8960ade01392f68ca7a885e6f1eabd6c81..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 481 zcmZQ%U|`^91QI~NWt38sSe}@ald7MXlpJ4@T2YdgnVORlU!0m)l$;Ttm|T)smRORS z5}#XAloOwrQ;?A;WW{A+0nrX6A3#lGU|>NJ$K*)OVbl*TPAw|d&&topE6&f;*Gn%- zOaWS-oS2-ETC87El$ckXmS2=xtZSs7mYI_Zr1cE-4bxIAEQ~Eo%#)2%j4Uk;EG>;w zEmD$`Oq0^m5|d05^^1UdVP4U#sK`hu$kZ(}A>LDZmU;zw=|BhXhB~@4z|WnRONtA~ z<@NM%2?Ek8K+MGf@?zO~lTaWfkyqfK1Eev)f1t<>S&0-NWsz49lFY!w#H0Y^XaF%9 zU^YMqfGhw3b`bF&2r8M%-vOCYo-U3d8t0P}Bv_Rt4F3K1mu;T0;;GUqNfw4}$C+4) S7c?FM>F{**b6Mw<&;$T1W^io) diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_textfield_search_default_mtrl_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxhdpi-v4_abc_textfield_search_default_mtrl_alpha.9.png.flat deleted file mode 100644 index 573dd4e3fd4799ed151aed31ea471c6ee512d7b3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 476 zcmZQ%U|`^81QI~NWsp*oSe}@ald7MXlpJ4@T2YdgnVORlU!0m)l$;TtlA4xSno|;= zTT+x0pO{mSktk%vWnlr)3?&~x&0=6+K@rE~NX=r@4=qkDD%Q`+&&Vsz&(qgSFG@@S zTArMkoRM0rUs9BqSDcn#lv}K8q@R|VlM1Bu4D}7uQYOcV8sfO=sb(XFV+NGZtFEi)n3OL~@i1$pT}=k9_!xii4eotI0B3&`d5 z^l%9R(kejA#R2kQ*?N;uASIDk;GYAe;eZLs`VXW{)Y^UnDT};X9L-io-U3d8t0P}Bv_Rt4F3K1mu-%akYb;Co#FpWrq=mt Rr&fV9c)I$ztaD0e0sv>WYo-7I diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxxhdpi-v4_abc_btn_check_to_on_mtrl_000.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxxhdpi-v4_abc_btn_check_to_on_mtrl_000.png.flat deleted file mode 100644 index 5c522845489bdc157edb9ab4071e5ac8a4416762..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 539 zcmZQ%U|{$H#2~<>no^Wlo|u%As-KvY9G_H@7oVJwnw%Y9k{_R+7oS^FloM}YU?610 zWnlr)0VNxlU|bd$0|zbD$EY7#oLW?@pOv4HSDc@xua{nwm;$shIT2`Av3^NWVqS4t zeo=0*u91FPW=<-Q)-%*MOiQt_Ft#u;Pc}|5va~d?v@}k&NJ&mIO-f5kOfpT>F9Pa? zxn8%Tq9P-uAXB%@1g}T*3i8s086ht14DfU3<&xq8@_0QxT!Mgf0|>J)14%=Hnjb() zCBP@d6-W~V%OaTEfr@xag8YIRjAz~c{hw>@zaz|SEh}$k0mUbIx;TbZFuuL9kdZM! zr1fEVgGT28HXR1$1C7g8PU7iVa5^W!N_bE8Vcie)%zysQ0S0Q$)_FXK(~5G|8?F6z zGGx!mjrV3WPKvQM4w(KrgKbxl?^%cVbu%R;PMexDPb%?`4E6l=ih+@dg+oBWp#j3E zu-!DTOu^3P@nv(neTP5W*EqE3Px!zoytk2o;efOOb8EWA%ZK2=@O1TaS?83{1OQCU Bmw5mH diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxxhdpi-v4_abc_btn_check_to_on_mtrl_015.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxxhdpi-v4_abc_btn_check_to_on_mtrl_015.png.flat deleted file mode 100644 index fecf19ea41d2fbd92960391689b08f5646a6e61c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 740 zcmZQ%U|{$H#2~<>no^Wlo|u%As-KvY9G_H@7oVJwnw%Y9k{_R+7oS^FloM}YXewmI zWnlr)0VNxlU|bd$0|zbD$EY7#oLW?@pOv4HSDc@xua{nwm;$shIT2`Av3^NWVqS4t zeo=0*u91FPW=<-Q)-%*MOiQt_Ft#u;Pc}|5va~d?v@}k&NJ&mIO-f5kOfpT>F9Pa? zxn8%Tq9P-uAXB%@1g}T*3i8tLFhX3~8Q|y6%O%AH&M9dCkDaq!7<;AOMn{$#BA)@eGT@KF$O+hEH1= zR2x41#X}^3WF0_+0*Ki0EocgRL<1`f$@;x3DLa1Idj9{+=X~H~*6=4@TJeZO;zGl~ fn=e8_!GO_1<$#KEvq(5F))+ip{an^LB{Ts5#Dxpf diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxxhdpi-v4_abc_btn_radio_to_on_mtrl_000.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxxhdpi-v4_abc_btn_radio_to_on_mtrl_000.png.flat deleted file mode 100644 index 4d15082432868110f5546443766d9cc958fa8a48..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1049 zcmZQ%U|{$H#2~<>no^Wlo|u%As-KvY9G_H@7hjZ^l9?Z0k{_R+7oS^FloM}YU?610 zWnlr)0VNxlU|bd$0|zbD$EY7#oLW?@pOv4HSDc@xua^$A188G%Vsb`mv3^NWVqS4t zeo=0*u91FPW=<-Q)-%*MOiQt_Ft#u;Pc}|5va~d?v@}k&NJ&mIO-f5kOfpT>F9Pa? zxn8%Tq9P-uAXB%@1g}T*3i8qgnISIi4DfU3<&xq8@_0QxT!Mgf0|;|~e3WUv(t&}2 z>4v9^V@L(#n}dx&F@}Z(e^-jHg!p`h?eEk;^^V6D|HPU*l$6*^rA%a+uI60bc9GYP z{c_fw}JUuca$1A<%j)C zX3SnLw0?`nO!j*{^76qC>q9zv=YBZGta-_(uFk3V{)&kbyBD~6UEyu6cb}jAVzaSN zi`Bo0<~p_gQ+7@>>Ti2$&|l8!^<=i>b+gCPs*@hvlu-TT+QF+BuQAb3&eZbcdG!O+ z9LgBgXH`r})Md97AL04i$CcrSkO=$yz_nVvDQsC z;s!@IPTKQ!VZU~5Wws0FaJ`N%u`%B2Il7Vdcd-D8h3&t3lAqIPTV_#bzXX{_nGD}TZ~YOnWu;9no^Wlo|u%As-KvY9G_H@7hjZ^l9?Z0k{_R+7oS^FloM}YXewmI zWnlr)0VNxlU|bd$0|zbD$EY7#oLW?@pOv4HSDc@xua^$A188G%Vsb`mv3^NWVqS4t zeo=0*u91FPW=<-Q)-%*MOiQt_Ft#u;Pc}|5va~d?v@}k&NJ&mIO-f5kOfpT>F9Pa? zxn8%Tq9P-uAXB%@1g}T*3i8r7F+*J18Q|y6%O%AHQyH?WLPV4<1Wf@1T1v{Kf`NCnpXa>6Fj)zduiOF*f#`_Gez% zgBg$K6hH8B;(8-^=}}{PRgYkcq3yiN1+FLLSpRv-{f_y}Jae&p%;x^%_J(lZuTxEjHQ;$v1!PdnhR0pFi!b!Qo3=d)EImEVMS$YZdb@ zYsvVlsKCisFR)g5+KMwLK78IkY0COGO^LuX&uu%*_xxe>(~BcyZm&=BiWf3t;3(pShw&kOKnY1X_rQ<(OpI6lyht{Mt4;gm3Vc@ z+}mPr*?pJK`~>^%ME2cl%;x4>EJ+g&|<-`pM+G z8=HIA?`6&ndXzce^4!MVj$$v^b{D@5?sC`qw)ONnF0=L%O|nVB7xm74^E|rM=#8?O zCEJN6-V=$RSJ+hhN^S9Oc0425=4d?`cZuGyhm}qI1(WQN~QRcLx@3?vmpk?P@;bzfyah0D2#}Q!%g6( z7B~~Uv8APvrKJf0j>lomutcIS*31`5;hp{6fWi6m=Slcre}hod|JRG5rC~7HuTA7v zxi^u{_Tr+uM0rZw(czFQj{~&P_`Y96v@FZffBsn-(Y{yu-W3}LMK#0cqBy* zcEWD2i~nmM*!YtcPvXhJZa9E|fQTwj81cZf-&g(Ij`*4S>9)W13=i8yY}|}h)XMhy zBOFEDyK|q_p^i1eXb@Ua!V!(~zv4>V=9=W(9~8M}Bqhis=_V~W!JZ4-^bE`EYG?>2 zpA8%}i&=&}9+V6T3++YEcX-c_+6|Ztl#fZ8ELU!YbYxtb%mV73WHa1LuySkbyL3iZ z`zIx1$DV=o%++-U`W@o+SYk*gI~G++eV7q=s_O~;w&T!Vek`%%y~S&Q=SdbdqfMnx zZeqtU=rtf^$^-{@MM9P>oXyOw+cVM*NZ|%a6*mYHk(phLXXMWuLLioUtk`CY429$Z4`|J@!{l<4 zS9#$;GP;-c~}tlsq;2fy-u8{Q4g!4~c~A(fDaLDyy&wqBJAz1X;pg-?kLc^IP~F!n+&u;yO0kPsrToLmjbyGrf_|c;wiWR(bJ?y}0Z= z>4k=(V1&#CJys!Y#`z|{8MJ|lHMqXtb^fAwWy%h)aNsWT59ZEq$el7$5Wl(#4plm+ z_46HvbsKKcR)bUVCKst+u4=1LEE$@z8?4$Wv|ph(2c5$BOQ;$0l`VfxaIew1X14sp zm+Gs{sA&(i`gHF~@Ez1Arp2@ua<8?=*hQ;)`ey^MV(r>^CfYQwdbAkVQDTtrl6ZD1 zEpdMbiCk+Qq^XwP;6UQ`e!TnE>sz@FYLKt3q=In5$RlH%0UM}`FnNvf6Dr_;spG+75xhc)8GwBc+F8X1qHb zUU=P(?0rmsaI(Imyj>$rPK4C6%d@d)&$&55r04C(xmuUH*so&qS+&cAm?tI756@&} zPIFyh9!~iZuC+)aYx){&u#Csob#-(&bjkape<{AOS9m=j)F_6L?s`Vfm z{rDV6FnaUkhHbK^FTQ*GLNwGSPa`_ea$fzcHPl;;m)mcbGO()9%B33wzA? zHhXHc4-eX1pECQWOr{+a1PU$15Lx#&nA(Qz0kJT^3X50Ffqf~Ok6cz&u1Q{wLMmJ3 zbtIdf6Z3fdTp+hAhZ`r8g>7H*4tQXHvexcWM!3ozoc=Xpl(}Q5>rK8onXr!`a4~R!LrvwIl>Vp-n^$9fCM6rjPHX71 z?=boqjimj|TMntx_5<-v!wi@-3!jwEVrnrtiQ=4Bb;Tl=s3T0${ydQ#EggnOi>6}a z2Kxp1wc4kYVW(sJHv<~r#=Xn&PCnuDN;~O5`XsPXvDEu5>sGHt9L%5Si+dEL)tX#5 zvcN~QPX~^=trfUZk2n{vi-wKyG(tp+#2%eyn@Eu?4 zDtx#0!7ew&^6cKF!2Pf&0aKEf$ru>)S>fPQ4VRWlYgaU@w4S`GC_-{TjJENQFw>k? zLDV%Acd3g_!HO%N=7v)At67u?%^f!+ly@!qVPY1O!FunOIRQ(MoXI0f)!wl2cmY{_ zml9`nDe=rsb5%{dipo88Q&sn~tm>XcXeMjsWhomS84s6nPzBOmJVbL)XM&6bEiWIneEOa3YKg~= zr4EK-q9w#dvc#>vj*G`S*{!#J@YC)!Snkw0(3`1u_VMPDZY$$bj3Ha`XpIIxkbi?Z zl2>p233X!3?>&F31!sjMyKkgR>bgXn3l!X2miX)#cg|B__`1rgHkA@uGKk?$SX?L1 zVtl?QNrw?^PdYSzd}Y}-=8~GLUC)NBTvIRcU)-& z1BvVP^P3BuljNqc{EWE#5Peyp_I@_M3T>h37J#72r6nDlmTSPA;a;>Ypadlu;jXmjmD6=9MjA1}S8 zM&lfAWa>=`+2_IU|8%t8f*|h?oYqibt~zo@lEq*1?YS!@qhXu9{&Z5|VW*vIfWFZM zcCn=)>88c_2uaZ^ z#r)^wI@<#BaWFs6-l(~TbpMS~h!AR@(m1q;#dd2|(+;Y`IX|t)G`vI7a*;KO))hcv%D5ega2!-jq8&=6G~uH>{f~W200zFwcym0)*b7dTx;DrNkfDDK_gP|13i8hK~2<<<7g N<9OKl5Yxsd@*e@9%QFA~ diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxxhdpi-v4_abc_btn_switch_to_on_mtrl_00012.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxxhdpi-v4_abc_btn_switch_to_on_mtrl_00012.9.png.flat deleted file mode 100644 index c71f60cc48cd0051c4e429661ad2c6dbf1ce4f31..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3088 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 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxxhdpi-v4_abc_ic_menu_copy_mtrl_am_alpha.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxxhdpi-v4_abc_ic_menu_copy_mtrl_am_alpha.png.flat deleted file mode 100644 index bacdfae95a9c2091804ec20cb9edb3a08f9809c0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 595 zcmZQ%U|{$G#2~<>o>G)po|u%As-KvY9G{sSpPQOj8lRkBP#K?FQj`;)m>Zv%Q;?A; zWW{A+0nq~`8<=2R78nBuEj58rKeRZts8~NMKO?U=KTlsTy(lpSXlHU_az<*geo0Yc zUU6D}QEsuWk$zfcPAZVrGt@UsOR=ypwlFbIHcm0Jv^21^G)}chNlr3NN=r*jGELMk z0_ugiU$>&7A|s_BQ@6~7fLHVi^3vTIA#Uvq@N?(olHvmLcs)H_f`D`a2y=k^2t*;<;K5Oase@tui zH>ut1JEoqnol{~)#Ely}YZ+{fTYpSqu-(t_mMJYm(jed#o6iNagiP5DrhFVf91gLl z_%|>xGJSgA+S|%LJ;LGN-T(cG!2!44YZeEbdgBTk*iCmGWz-Yd^t+&oxuhqh zd}%j}Oy#7T{Ou7A?&m!e7xRbn{obQp`0U*5se7X;3m-o@Eyu)Cb6;LW!ted(iDvD< P0AlcT^>bP0l+XkKo=3V^ diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxxhdpi-v4_abc_ic_menu_cut_mtrl_alpha.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxxhdpi-v4_abc_ic_menu_cut_mtrl_alpha.png.flat deleted file mode 100644 index d34e6d67228795ebd4ef9f4ec1753b232e61be2c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1170 zcmZQ%U|{$F#2~<>oKlono|u%As-KvY9G{sSpPQOj8lPNR5}#XAloOwrQ;?A;WW{A+ z0Z|Vn8<=2R78nBuE!D%QA6lGRRIHzspOIIbpQo>vUX+*uv@ba^IU}`LzoaNJuQ)Bg zD7RSGNIxwzClyHR8R{FRrC3-PTbP(98>bjqS{hhd8mC&MBqy0BrKKe%nI`HN0rkS% zu3J%2k&#l6sas}(#~XSDdFg%35O;P4___0PNpS&ryq+E|K|neIggHR|@tC-OGXn#2 zsHcl#NCo5D*{)?Gi6X6!ckJGMSn7gdo^*%0_5rT+p54FYPVkh+Gu%oM@jw00Ijw%K zm#xRwT+8MA6)pQ>UVtVxX#4)vX^635EUeQXH}T9WaUGyUeV3y%b5 zoVMJ>v1qdK8NHmwMj1s{2~R%51p%ySpSh$f4xVumi8yBdZ|ZuTvqc8|1vcIZX7>vX zMAM$x)O8$ii2JzTCf(uPqi81g7yRr+qW6VnNdGwVxy$NVu&e0jmCsEdsGnRDb7VW~ zxrfW!rM%|e*Ie2d_h-(vpJi_>|(PwyYrWix{YsttbFyjP6?o(d9N~Eq%H8QW?Oa>qy+CyO&xP*#M^qQ~=W{M8SjlBu!=UF` zTeH?7N-DlUJgUXpNoK!1|D#_Q{x9I1&i?Div;&bbaqTv}(>{t#PX=+#{+N9Ed4BfC z&3^Ltg(SSx_4cme`g1(nx-+N56+v|lOkTWi(Kh4(*c{C4_Xv}1+Pm)3a!Q#Z%X2D*FZ%gPAxw6#FS(aQf) zVJ-VEOkNZFyYdD1*G>IewLZQ;b0(h=U>Et)I!UGCgr=FX#XqMK9RcnqzlFGuFl{`b Z@AvUm;mlie^nv+|!PC{xWt~$(69D2c^hp2! diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxxhdpi-v4_abc_ic_menu_paste_mtrl_am_alpha.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxxhdpi-v4_abc_ic_menu_paste_mtrl_am_alpha.png.flat deleted file mode 100644 index 330318ebe3d168a9dd7a72892d74a9e56826a25f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 733 zcmZQ%U|{$K#2~<>ky4aco|u%As-KvY9G{sSpPQOj8efoDT#_1}TT+x0pO_n;m{X9E zC}hQDVFA$uB^#JvToxDu2Q4*`Q9raewWwG>D?cNzI6qHcFTE%+1!!q zF9Pa?c|fb33Z~n0#;MA|VYJ7Yj^SK$HV~zc4*<=i#FHe*C#dYIhXQ|Z2r|J*7 zN_T$|+;CF*^*66q?-^L5cxEKTO;_>^n(`v~UJIk|r@RK1T&6d#>V91^{<2Yff#V&q z2@e>5cX{tVb>q5XB74T;prXuhsp(Q?4NQ!BOX~y$CK$7CDOkN_%i5;s(&7UQ+kd6l zmE{^ASv$`%f$3a}(aWPD5|3`(klAqSRq=73@7xLv3``s#!iAfooJGKafsuGZ!RP?X ze5u=W7W@dgE_30?@~meKHjMjB)U%5@t{<4bs%&~qq1BHIwuZlxFR(ENnl1M_^H#>( teXiVNj=DLqSt-2d3jfMLtaF-MexA`+og;R(5HOk;JYD@<);T3K0RRNX{_g+) diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxxhdpi-v4_abc_ic_menu_selectall_mtrl_alpha.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxxhdpi-v4_abc_ic_menu_selectall_mtrl_alpha.png.flat deleted file mode 100644 index e39cbd6ea29efd68e37830e95782dfd88561624f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 577 zcmZQ%U|{$I#2~<>nNpNko|u%As-KvY9G{sSpPQOj8eg26lbT$Tn3EHqTT+x0pO{mS zktk%vWnlr)1tlApU|bd$0|zZNiBUhaIJKx)KPx{YuQ)$XUoX8VF$HLAa$<5uYO#Jv zQDRhurRhTF;6y5F|xEYu(UKzwMa=$GEGWLOH49N z)Gq?+h510YqM{-rr65zc%!Ht4^a}FQ4H+S>?F{g9=jD>(0`ho0JzRo-bOH!-fPCdK zasOr@^~2M}F{C2y?XAGBLk1!a7i%)bjjgIfSMQkSm?rL3eyMJT_5VXWdtAQo-uW%< zRjlyE(etORF%UeSEG+C@+0j04-#&xFl<2CY2R?6aB>b;RO}V@8Z+^peCI&s8+y>(% z3N7Hjw z4gm!Rhk5U7>=kaShyf)S82yqMnOHak9?Z7{(+O#5-~Q|GGg`_N^SB{d>wq2KjiAd6 z?`o!0^kg#Zz9f{br^yh%#w(hq=gM}bcW)x5&bv|Y;Mkv{181iGjZeRS1_zopr0QwiexBvhE diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxxhdpi-v4_abc_ic_menu_share_mtrl_alpha.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxxhdpi-v4_abc_ic_menu_share_mtrl_alpha.png.flat deleted file mode 100644 index 0f54bb144a707de6b6f50543aed3119c7486e905..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1163 zcmZQ%U|{$H#2~<>no^Wlo|u%As-KvY9G{sSpPQOj8eg1|SdXdLSQuNFm?s;j7+G2xSXvsVTBIZ=nI@&BB_^3B>K6g^ z!d$OgQBjeRQjn=zW`frvdIfpu&CC#&b_V#l^KwaX0eQTh9xg#ZIst?^KtA%AxPLPP z1GAT>i(^Oymvy4x!xzQdS zSj`ItVx`Nrf4#gW(mvn%uu`DD&Ku6$TiIV{uqxMoGj&s4{8qHGcv7Ee-}&EP)YonZ z-07Jt!`B|KR4ykmJ_|(msThjEuJq@t7JZFX-3zbjFsPc zOICkZ|57DepVVC)I4f9LJgsDB=cO%C8bt|4>@U^tI!|QI{wed)ZI*r3S(|s^3bBd( zD|Cac&uTn%dlm8U#tL2Q7i(fRXPTHUn!cUD>x;GCNOzkOexp{Y0=uY_@$*oTr)>@gl?R?m0oO)%N?-qsF)z)WbI={Zi z{?cxX*OLQBFMZt<{^X!Zo2T);pUb*qZg|d8*A=lWoGYU5mbXXIb@_?j_1QMRvU47o zYSwk$+2PeSUCDggv}cyxZhk&1_nQdEWVM}W4_^BEb;F6)m4ACm=0_@jN)Sz+xUOJ- zr4su#BfsNrX?FiNPMfEdSv)gyPDr8f+&2PS)7`?S+AZy0D_n1|{kO=ey?HZN*lxDG zwRxA+`m+M_cW(MS;nXa<@O3v!(>njmJmdIF+x)~twf;XdFHW5`<@dR^Kz^N^%~?-Q%0{{_C|UM-tLM)vUX+*uv@1C=IU}`LzoaNJuQ)BgD7RSG zNIxwzClyHR8R{FRrC3-PTbP(98>bjqS{hhd8mC&MBqy0BrKKe%nI`HN0rkS%ty@u1 zk&#l6sas}(!wY%^dFkO$M|TGJx$|;KaRFV->*?VV1f(56m;>yWgq@)b3`}yKE{-7; zjBl?yPmu|faCm6llY4txuKMg7X4eX@Z3MAzZ~L2WQ@ZT+m6xZggJr*z-_~i~KX-cg zsRdJhELz4r_u~QvIX2OT<0j4mvmO|-3$*;L@JLiy(^PRpM`g{+3Wp#&#l%{bjh|O1 zx+e*>MU)&!th?jLbN7(AyQ$Nn5PA2vE{nGCvOjf<`Q_>NTWJ2Ey{dpk1n#Y|0v)!>_7cO;BA(&SmW+VPYXL+}7hc9_zv1p^R%JF3uYn)BCc17H1mwzn4+Z$vV_3Ajk%R>1t zPJzmHO8alJzgq0bIZxr+V?o!8D#FtRX2&WpONqMYgn7Id3{-q`$%Y|y<7%C#yDm9p zqP;=N-;{UW(g~P9C)LK5A@wV-gXCAu1xkAN1%H2>8d0^(LGzEn_X*D&Z4bpTs9s3Y zNV;V1CcxiN(ep$)=@P@18+|*rwC|C4nk@h5lA6hf=dwvX$G04s%AXtaZPxmau91O9 zE|edebl}mE+L|e>+Zay$QWBJ1vOwB;;o-LYFAg`2RF*8?a-6;V$AyW{6YocLY-;DQ zpW&kP#^a1gozflGK(Us^B1i2s&K0(N(OBs%-l}?Ydft^IlcrCfeqEn`m$o*~W8S;K PWW(U;>gTe~DWM4f$yP|; diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxxhdpi-v4_abc_ic_star_black_36dp.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxxhdpi-v4_abc_ic_star_black_36dp.png.flat deleted file mode 100644 index 455ebb374250680d61d692e3a2bbbb0cdffa8257..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1521 zcmZQ%U|@Iw#2~;WpHh@qo|u%As-KvY9G{sSUtE${6rYrnn4BGNY?e|WWW{A+0Z|Jj z8<=2R78nBuE!DxOA6lGRRIHzspOIIbpQo>vUX+*uv@1C=IU}`LzoaNJuQ)BgD7RSG zNIxwzClyHR8R{FRrC3-PTbP(98>bjqS{hhd8mC&MBqy0BrKKe%nI`HN0rkS%ty@u1 zk&#l6sas}(!wY%^dFfxFZtV>4bLZuf;sUyu*VDr#2uM!=VGfYIufLWt0|Uz*PZ!6K z3dXm0n5U~m3%fmxm58~$?d`_g+uLBs?P$C8ys)s+^m%J+&i@nLcx^Y6?`0DRI{We8 zpZvrNY{ne{nfXPNrT2JhY_Z~S%5_>&Y1yP8bIhA#OU{YCn*^A01&h|VX81o+e=@Po zq1s9Q$;7IU5^qD-DfX944X7POD*bN_tnS%iBG6T@>PD_oO^%;`~)x(iAR79#&kZZ1&2kJ>qZ)+of5n zo~VoN|Ey@p=^&}LY0lmlx27H5Z&EFVHJcOl4VVi(E>|+zSG;VsSTL{RV>EA#hrsj2 zR*a|4@v3<2_A_I0&pD^ycq21O&~smcxlqd6N5x7PU+cIwtx(CAN%Ph(Tq|0Y3xoi}Pamu;nIw`SfzD3iG4Tt}9c-~89PTG9!qn=t-v2v$A-u38thM3N>Pny+T^&94GTK>k*&Q);zMwY-e zu6w$ik_?yvS1df@V5k?R&~=4H+)L|JF6+6AP8vEpk1l`XI%&}kd0m@S{!g~2HvO9t zd)iv#^snGDqw|T%alaJRu1WKo1q&H&RJw64;K&iS1Z#Fd;oHq;YZ_+UxqZWn@5mFQ zWbIgi$=UsDa~yo~OwB$imFrpr%|C25Nm*67udMLMq|BxQlf3ZJwBC&Z~x6X z7o632S9;`q-h~;pHf50~00GNWVXsqRZJkNRaY;|rF|9Ej;I^wA>+p1k( zGkO$q6wJc9PpgS;m;1ca!_sEO0dH45L+;j!mnUzpcp_W%;8@74Wtqt6KjXa0HA@#8 S@N@!;GX_srKbLh*2~7Y{ZF#)_ diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxxhdpi-v4_abc_ic_star_black_48dp.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxxhdpi-v4_abc_ic_star_black_48dp.png.flat deleted file mode 100644 index baa2d09a84d12a00cdf64316bcefff8e8a730339..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1932 zcmZ`)dpOj27iV1Rai75yrU`lJ&1KBEG{nTR?mKBr(}XAUn_EaDGh{S+H;INtW?UM# z#g1HB>{ygY(HKK%Yl>K!2w9;-jV#H_v)i+O?RlQ_{hZJDIiKg8^UpcTN=izzTfS`? zd#Owy5g^CV5CEAH5k-k$#RJR;atuH@9pQ+ko`tw-pwWNj{{3DAeWj{jgMUF|t}@~n zi^gOjqGKZ&tXKxZ?i3TCZq=dylt>y25zhn|EP5>S49gaUphv~fw$KiVK+>sbv;*4l zAjN@-a&fVDadDubsT8sknNA1DP5^?rrTyBsEt}1bq@InkJ?Ho@BiNl~oXS=ItH+FB ztgp6)vBnnD_V@F~ZDH58@7$hcb*L&!NlE>L z&YTiCxC4^Bz(9-8sL~Yd2>@2Zc-ocEFTfJ{GQLq}`~F8BLZ52w=VvqKMSV%t!EKk& zXYwzmxwhRbE(PJq*7_cc*s2XtvdZ9zVon^}^jh=LeeUZq?J4g9v> zrL<=)p5I(&dRu>fcn>~{>T*#rZ}=;o8=hTO`E#w_pSI`HZw7-=DQ@S|mmQBPFWWnN z{LJecii4R{+^YQ#nQ5|uu{Fo>U&W5Bw_Ne-4~ogPv-)QFbWHA#mZ)Xme3R!K;0ER$ zBPz>%EvV>Nl3IMevAL!5Lf0y&8W3VKhxoMj!)kIQG zXqJKPLu-NXq-CnXn*#&DBR^g!^2!;X%%|RP77>x{2PRN*IJuYnZDWBPP9E664+?lMAg<1z1yH4Y9E^}B1=ECUA8WIjDu6%8y2ckVbG&4uB-YD^?xWA+Lv437JR5R zTS|Y@g)hF%8#~eO>fD^FQrZQo%TrmHFnZp^AG@7GuSVsV^@z$>?N*r#O%VG884jvPb3M|Jja1aF_v;mfz3EmDO88)C z?p%TmDr=e=_z6_a+$sEiPA{Z3mlY*_nK$~KiXmPKUD&K6%+-pb;o>jXLcN?$Cg-^o zE-%|igoXL#b6BKqZ2XNw_i3sX85=~6F{zp=*>S8XUtunM?^Dwrfy(Nlw(Sk{x9-=g z3d5bfF;6#pIg3v$rQea&y*p;9ucE!s3mGXlx^mEUXd^vz`&Wv8m4Qu2DxAp1Ce*YQ z?k<6U2$9bRiA~DpR+yMA^(T{ycWiW6??cuJ!jH`VIlYxUna3^a1eKdnUM(eWdm4byD#^-sG;PFdN7BjLMFSDy6Y zvxiB_2TOXw($rpbTAUowFK~u5ravQgbw1LAoKc6eukj-jfs{n6j1?Ow`$!(i=w((n z+_l@1jEn?jBv?aJp}E8(B;;(3#dA*^^|$*fjYR^-Lhs@$k}3q>?{E)nxSyXm*8}^c zm(ilh8dWz|LSM@kJUeNgGB?{@sz8<3{8F?aDIJpRgq*URsm*&K30^aKfWne<*6LTD zsI+D*X;IxuS_*QQx}D`GwCK+3tpzz`-3{k)`tG#dy-aMB_1km08(P^0Lf)g%fR0hG zy%W&^aoRgt3+xhg%ckJzAva#to7ObMzv0Xh>?*>)i;)r9^W8rlUIjG{To-Q=T(O+l zXUSK=Z6B522_J58IA^vY$W&w3a_M42{3>VGYhYi1?dNC11lP~*@w;?`0|)2WT!wDg zn~6_P9)Ca{cs>hL7eX)|m7Vs`l!r<43#e~r@_?m9GcO<4e5PtJ1eC3HR z(IZ`t)>b6^a_i~Qca@wIUhZZl63X;O>~-PqUYoo?Zt9VyXPbmk1$<4LVHOxp{qum7 z-&BC%^8T>OvSjqWcUX=a4>(9#n8Zy+yLL=<7BFUl2Vjdo|u%As-KvY9G{sSUtE${6rYiplNO(plbDlx}BrlnX|7+aW_CmW|2Sy~!cS{kQXq$DSqCZ(k%CYdJc7XkIc z9IsnZQIU~Skf~c{g3lj%1$pTV3>AzJr*;PTx$|;KaRGU}o*phiK-vL>Ilx{@*cr;e zz-aI3;uuoF`1TxgPDCPu>qFz)eQCFO(yAZ6N$5+0!E z$zo(T@N!6Y+R~sZq5EL9m_dilYR0(|M|i?EPEL+FEO|Mg;o6sEBk!B16!kt$c)vr~ zS#8;+tI5h8N3K+Sjna?V%8+rGU6)~2fipLQg~K{AhSeUInG%dRqZqy%_2+Kz`*W3P zfhGSIhK9>o3^_{P+zp{w2eM2bOp4Z>t6|xwO(`EH?ep}hrh9D4&HL)QJ(m{`epV_dkiI% wB087!J(+m2GDFVdQ&MBb@0McUKE&u=k diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxxhdpi-v4_abc_ic_star_half_black_36dp.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxxhdpi-v4_abc_ic_star_half_black_36dp.png.flat deleted file mode 100644 index fbd6e891ecc14d40ed739dba84fb822662337241..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1024 zcmZQ%U|{$J#2~<>l2Vjdo|u%As-KvY9G{sSUtE${6rYiplNO(plbDlx}BrlnX|7+aW_CmW|2Sy~!cS{kQXq$DSqCZ(k%CYdJc7XkIc z9IsnZQIU~Skf~c{g3lj%1$pTV3_qZ5?+oyB=jD>(0y>=6)59eQNKXJ^4v?38{k4o4 z7?}2Zx;TbZFuuLbyv8(L!u4Tk=3gBnag-f7_ltJ6-DYnSIaJq$kyD*G#ru zVeL6d1&DOrmqc@#$ks1>V8P|Ja^^-huWbtq0zP?hEjg+gq!2ruDO0P?zp=!^wNk;< zNQw0ln~3IwdA^NX7)+T}rw2-`xRdfHX+cUo7xUEYgb9t4Of`9?*kmn8(fel{P-NHI zc*^(4cQ&tYAR{{)CtU@~-br7OBKFTPpvVenWbgUwniI+vcr<>=<60uBai~4dIKarZ zUQ)x-?x|q__hX(ZIgw(=9L}CO@n}!x0=8voj$!G=-=3)RvoS$arGn?niti>xNHEvI`=bf_l%yza@&r&-YH)U4bb-2lLCwIY`#?8D} zX4(F{?r<~ePtJmz!edezvuF16Oz}N6neEi9owpp;T27kPxJmcN;&kT9QF&?{jhjq=-gLN`)bsY7!@Nx?^EQcIJj2U&>YG_W+3v;Ov{+`LAUDbV3=0>_8?vYbhmWu!EWX^C}y1(PR!+mvd5?u11@k?qr V``=}s!+|N9!PC{xWt~$(698mVqDBA! diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxxhdpi-v4_abc_ic_star_half_black_48dp.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxxhdpi-v4_abc_ic_star_half_black_48dp.png.flat deleted file mode 100644 index 3fbd35825bfb03b151620454b44e9fcfd6852bca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1255 zcmZQ%U|{$J#2~<>l2Vjdo|u%As-KvY9G{sSUtE${6rYiplNO(plbDlx}BrlnX|7+aW_CmW|2Sy~!cS{kQXq$DSqCZ(k%CYdJc7XkIc z9IsnZQIU~Skf~c{g3lj%1$pTV4ELEKPVEfvbLZuf;sWw`Jw054fb;P&_O)VZ@4s=cFP1)eI_Jd;D)w%Wh3LTLWf4Zt` z-<5yZf3B`3zhu@V6;Bwt>oCPkXvxVQfhFmhM^?1E88y6Htit@_bPB`S1uD!LwMGqk z429gfb zjc4&JaP-n^_+>GLXMyUJ6o$7xY!?_*B^{hkGVGcm%;pj0Yv^!}rOw>pQnLuNN-mJr z>0+E@1~gr17EspJ(816AH_wDE4M`14*0Oo*ng*mx**vV~FJ|+oYD#LDqxVfp;iVo> z&nq^MSzf0ZJhL^}PRu-UAE?>S(BV=Zv&vmJ!viZX9#1{<%unuFW?V9J>ArM%U*?iq zkymD%jFEd(822pJF3tLIZfq5gf!bZ4G^_2KI@~KKmgYRmu6w5Mm2S@*GULcqo(&C8 zZO+fmNz&eJc_8Dt{0)ZS9i7z`Eum{3)^6L-{a41mls~88ccvOprhuEBcS5OXHSdJ0 z=grwpyh@$SxJipgN+DNL9VpK3&NIPuavS3&y~OE^n^x6iHLQ`lXXbFrcni;jtr~T! zxIc%eFWaOp?eI6p*x^seblwGA>z6QRWIhO4{$Zux!{E9979aCt?wKDv_t0{yR{v72 z`LDk0&wI9j@!T7*(AI_16`AL(1j|V^SIV4YyHIMvBVd0um3f7it+a#f9-xupn;5_B zWSmrGk=3vy5*YNhX$@=mc_w_F%{Xb@0tto8jf|VFNh`c&XI6>z0ETLLFwX>&jD|J2 zY#y&tk1%*L1GTI*ak!?==CSI-a>hx^cK4i)0vgfFcH-Aj22a!HFC)2mCwz4~F8`my z|DxI37auzGcUeEd#vpjzcUM=UkAwBI{q0+NsD07^XGbIJwC zsXu56k~q%{B<&8qp3@DKT0f%^NZLpEu)2P`pdNX;5-9g?+H0USwGFBv0V({pr=oqF z7TSI(KjQ`@6{lTlRjPg=_WnXYP@C+X4yR|En(~gR!ZVBKq<^fk>k@9aW!6mrW?TkO LS3j3^P6SU)R2Bd<6=PhT&+C@}?S zdvaoOMryHsNl{{6aaw*+Zn3VBep+TuDv;JQ)Hh5^v9K_?~hM-#;oMI0_R`*3yK7UJESAYIeFwqQNuqn9c{ z&NkX>Smx}o+jRKh^vVK%*3U1`tXL41{#EMxA?xhj_bL-()^Cow8aX+7*_)30Hw>Rn zQ!~B#aHVQsV`{Ti=+(OKI$c^iyOswevY+jeI`cBnQN32kG^*rQ{H`SLD~YE?>tF2B zI9R&>Ws7cLldk%oMT^B;J*UZhb#AQ;T*TU%U+h2S&A$9sTQt13tq^WdoR}c7;AWS{ zhDDM)G$-9*S>`%PGh?grq&F{~%<(9h7&mdn^umc5J=c{kX4`eU%r_1z=({^u+`d?>0*yd66TRwIsPdAJ5&Govm`(D<)>lSZ~3|wT{DsS~9 zxO4k~g@3MpKf^!a{|`>q<=($Ie17!IE%#|Pt;kt=D*0h2Tj5Sst$S;t??589ZJ6T-G@yGywo= CMGsg2 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxxhdpi-v4_abc_scrubber_control_to_pressed_mtrl_005.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxxhdpi-v4_abc_scrubber_control_to_pressed_mtrl_005.png.flat deleted file mode 100644 index 30bb8789a046d611620ae59e3640b14e343eda61..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 919 zcmZQ%U|`^31QI~NWtdWwSe}@ald7MXlpJ52TvVErlv)&@oS#=xl%Eq{k{@4Clv-Sz zni8K|Qj`;KU|=d_#bsdu(G4XVm|$EM7y}0_HH%R{v^ce>SU)R2Bd<6=PhT&+C@}?S zdvaoOMryHsNl{{6aaw*+Zn3VBep+TuDv;JQ)Hh5^v9K__M7tjy9o*phi zK-vR@IY7Sq|D^g10|S$tr;B4q1>@CQs&nMn1rA&kPrJfcK3{*PQFUO@@#lJTW^C%w zx&Av|GWNuD$+NLDW|qA=RMLI<|L3gA^eH)QyLoTEa<-pQ;=^&==hwmZZBj-3l2KVp zP3_7e?i@>$k4~P-HhcB`vep?*hy0kIt=g*^w=I0img}ddtyp{0%t}SeDrND_tQUs+ zyJ!7*XE=4%``FeMfe&LpPhE4Ke-WeoE6t0+eI0EwU#DoAJ=l|Rp^|yog%wUFYYblT zRi9(M*u*`rl->5(nv9c?{X2bY`#QvAFFqGL`@K2iCjYbDneRLJ_B>XzT_7NXe36e<#RFIy3aAI;#DrZ53+V)vStj^ zbYW@@Js>slNYsPuiASy*T=txJ#B=iwf0ZKnWTlCQ_e47P9DS}d@%#@*l~1<2U6poQ z>Iqr8sXSieag=f5iNb$p%Yy1>zuojdM&(oGHuvMVU&^iHjJHo)TID!CEdp`u4tCHO)fBs^mn_^(}!V8H-=fddYrqqWqaBzvO&A zMq3>0|6G1|%g;I?-QOo`wy(JU>%-FNbvC87`diEnRNs>|yLPIh_)WbHOWShU+yb9} zTZF#;(UAJEdETV6-{an{7JEN?eNg{z=POV6`&Tc#X=bUTWtG!?Gb?-M^*8H3nEjab zG%J4|FVdQ&MBb@0PFsNjQ{`u diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxxhdpi-v4_abc_spinner_mtrl_am_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxxhdpi-v4_abc_spinner_mtrl_am_alpha.9.png.flat deleted file mode 100644 index 3ce53e97a84e91a287e82f2f9c767a5f7dc1cd18..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 690 zcmZQ%U|{$F#2~<>lv0#fo|u%As-KvY9A8|JnU|MZ6rWpCloOwr8=sg{kdY{4#bsdu zQ4S>=m|$EM7y}0_)yt?KTAW%`te=&ikyo6br>~b@l$ZjvE;%tdBeht+q$n}3I4!>@ zw^-LmKP@vS6-etD>Kmq|SXdZan3yLUrx;mU8dzEyr&^>WCz&Rtr6nerCh8Xf^}?L4 zTTxMwky4PUTV{gW7kZX@1$pV~7$FYr4DfU3<&xq8@_0QxT!MhK2M{N4fIK83{bxFm zlE^FY&yfH!RDf6kh;@J%1pWiDb{_9WAQg~T5R%Nm#KNWkbNCC$I6$8-` zK%4;O!zifJ7#NPE&Z-6qe)V*549U3n_WEAlrT~f7M2{X;+qr!XXT|gmDD^F2pZb z3ptbL3tPWCM!vjReJ=Q_MEdtl-xoa1f0|+&cmLOuBWl8omN)C>ZZpM6}O9#IEMS?)jk@{Wl2Vjdo|u%As-KvY9A8|XS(2O)Us9BqoE@KAQj`;)m{X9EC}hQD zVFA$qB^#JvToxDu2QAgls2^IKT2!o`m7kGUoS&z!mtK^Z0<(0`ho0JzRo-bQ};naDcpI$3vO9em8H0ut{X4 zNyLha$M_vK-kj9szu;m}G*b;@Ylf@yUipSuZo(0~z1}8`tg4a4<{SFidVU5!P@W{< z_Uz1@y@~(d?%ny_Ts=MQ9QTV=tGiW|zbbxvASahBQ!emO>zBVx-lE3!KYB{nB%J;8 zX2w_Jqn^`t_(#9pe8h9vmxG(x=wiI6Wn7CbQy&_MM*cx1Mas|6-HyNk*TeXD*w>-`h!mijB~=H;hH zS=%l&@qbZrUa287<0F@r1W$?B`=m1_xp8|^ejc2D@Is^G9)T@3n{PO&JrKQjOgDJ? zrazw-yl`MU-=cFquEtrf;Ewp?WtLMm{BbELQE2Cs+&(kNQ+yfAoi@!Qjkf>3FFQMv zIsCMJfFrxnj`#1(_^*CC8xBS$QHLg-K zR|GjTJ#_Tu-S?Jn|8lnbMeXZX9n9Z-IQ+^3?ROufvpz__`|$qigZr^>Cftxoh&=l4 zbo#>Eu|eKiAH?dndLJkk+*PeIwPCjN9?rb)+tU}9=Usfctuu8MyFuw5uB`8s(j~v0 zvhD3uw_V7ZRUvfdo&Vbl|Gi^)g6775NfKE0^Pu%F_k7txw>#gu_B~#^kgXywweI_^ zQ!IPTCOU_72;JGoE@W%*F`JP!OxSYMr{^!`6w8UtdYrn|r#JH4hC00uR_P+gxBNTy zTW8aeHq)|ZRk54e0em9ShdyRJihUyZknLY-n|wwxziG`utFR5X92a-SmQK}>Wi*?3 VMdH=8MP{G`=;`X`vd$@?2>{i=l~@1( diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxxhdpi-v4_abc_tab_indicator_mtrl_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxxhdpi-v4_abc_tab_indicator_mtrl_alpha.9.png.flat deleted file mode 100644 index ac92f1310b9345338a06dc8fc1944f13199f62e2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 470 zcmZQ%U|{$L#2~<>no^Wlo|u%As-KvY9AA={6rY)wl9`-Xl3x^`TT+x0pO{mSktk%v zWnlr)0VNxlU|bd$0|zZNfl)uSIJKx)KPx{YuQ)$XUoX8VF$HL2a$<5uYO#JvQDRhurRhTF;6y5F|xEYu(UKzwMa=$GEGWLOH49N)Gq?+ zg}Gk0qM{-rr65zc%mlAT^epuX^3oX?PC*^p8Q|y6%O%AH#21TL6m7q8R^}E7!UW7T_uwbFYj_yX~qX%MnVl>#!B|Vs#^uU$Zrn517uIsBV%P#!9(Rk}xcFqe{M~%1m6}DD8zF}d$ z`j9W|=Asl{_mG%-2f6A+wE0$*z6;E^SaorSt@OhQk8@=TQv%QIj{LI6; zg4{QMqQnaPa-W9JN}CgA(k?G|J?iQ6Q_6mNDRq0~3LBlu9{dv1y07mZvqCID?cNzI6qHcFTE%cXo-Gu zVsb`mv3^NWVqS4teo=0*u91FPW=<-Q)-%*MOiQt_Ft#u;Pc}|5va~d?v@}k&NJ&mI zO-f5kOfpT>F9Pa?`9rs&q9P-uAXB%@gh(&x738HeLOszL;OEZECB+5w0k5ZrOAwIW z0K^d-%s?`!uD2OT83*`;xB}^f+HR82>UHN=1GNd31o;IsI3zUe|KA@l|GmI{gYyan z>o2K)J}=6$Sz>7yC?3s@(Wz{yTP_G|z?5JEAgkILdU7Ofj~X z_0#03Um^4$sCNn1j-}^(WzU-Cy{TBoXHgQwafdC4)5dQKllWp0i=ypU_Jn*6I_tf| zJc#>_56_&HtbSLR&WkXo8x|~-*wNjneDpvpPmBiJxugd(lODM8+H^LicQuNeeptn3 zX86I!upp3G9mF}8l@QGQ+4$}Q>6+&J54`&h#`4a&dSI$vYQ@wm2O9NwKdidAlr?F6 zC&R|&emTG93jfK9J3r^jj-7YBjrM&%!gYPsW!Z(FHyUqU%g%Yh>ZtJ+zrxmP$2Tm@ zS0D0)-CUHy>mCww?;uybh&JD<(szOR7OO7qu$6u|;c>1^VM^ec-LW`FdC&~Z- diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxxhdpi-v4_abc_text_select_handle_right_mtrl_dark.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxxhdpi-v4_abc_text_select_handle_right_mtrl_dark.png.flat deleted file mode 100644 index be314f50ee3d2796ceff20d10bbbbb7c028c4cd3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 797 zcmZQ%U|`^21QI~NrJquiSe}@ald7MXlpJ4@T2T^ToSKuGToRv=n3s~18ef!|o>3B? zTT+x0pORRVEo8-IVFA$#B^#JvToxDu2Q4*&Q9raewWwG>D?cNzI6qHcFTE%cXo-Gu zVsb`mv3^NWVqS4teo=0*u91FPW=<-Q)-%*MOiQt_Ft#u;Pc}|5va~d?v@}k&NJ&mI zO-f5kOfpT>F9Pa?`9rs&q9P-uAXB%@gh(&x738HeLOszL;OEZECB+5w0k5ZrOAwIW z0K^d-%s?`!uD2OT83*`;xPm119VH0~yIYl%fP^x+4`%X(pnH%73uwhGyM8s=0X6!Z_811URdyC}0x432e3N|kL xzTfoQ%+$!WbJp9g4m|wj=8AnSB}U)4J2uI^+L}G_D=<JNf_s diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxxhdpi-v4_abc_text_select_handle_right_mtrl_light.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable-xxxhdpi-v4_abc_text_select_handle_right_mtrl_light.png.flat deleted file mode 100644 index 0d3f05e19f0fb9d82a635c5c35a4f8c61b0c9084..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 801 zcmZQ%U|`^41QHBt9cCFC`~6z9=(2qa;4J zq$npo2gDSz;~b@lnAs%KRGcu zBeht+q$n}3I4!>@w^-LmKP@vS6-etD>Kmq|SXdZan3yLUrx;mU8dzEyr&^>WCz&Rt zr6nerCh8Xf^};-&TTxMwky4PUTV_J6pY#gy(is>Sq5kL$@N?(olHvk-g4ff-B?w4w z0OAM^W+0hV*V_!Fj01c^T!C~#Z8u41^}6$`f!YL1g8YIR{_k%{aOi(OKj6N=c>{%l z^}%1O{sNtm+4`%X(pnH%73uwhGyM8s=0X6!Z_811URdyC}0x432e3N|kL xzTfoQ%+$!WbJp9g4m|wj=8AnSB}U)4J2uI^+L}G_D=<u-?0T0*SY3NI9G?C&p3;R_mOiVzEi*S4 zjb`0$TY~j^A)bv!bMKoO=MEHA!X<4?B2C3b^J}$y$cy8J*A>#8F17T=vYj30@#(U{ z$feWj#cseE*>UXcQZsfN^}q%s`os>PJ_COtL{$uI!9RTEr@N1^_wfXwm~$Ar0Ns;( zz?ouN%2%~I@PT6L*C9>yyTEqqBi(7|*sK+L>>*~|;q5(WzyI~vtVKQOAE(VWd(gZj dG&Ai%LVJ)7GjHYvf8dmA5_eI%WAF#Ap8=hu(tZE{ diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable_abc_btn_check_material.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable_abc_btn_check_material.xml.flat deleted file mode 100644 index 38d1ae50b3d0e04691043a93ea296b21a9bb8967..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 800 zcmb7C%}T>S5Z<)W)Yv(C1mHh^~sjmZTX z@b7=|)7dKaTllO{%sDnafX+!)U{lO;+>2UG_%L4LYm%n=t$M%kQ6J4^AKz;c2mNxJ jK+W*ULA6Mz9&wNm2WeaHd!F^%`%+E1m$T%zemjQ`Xezo+ diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable_abc_btn_default_mtrl_shape.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable_abc_btn_default_mtrl_shape.xml.flat deleted file mode 100644 index 48fe617164881227a476aab59c283be9c979c38d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1410 zcmb7DJ#*7Q5Ix0KWII4YFdqq2p-M8bNJ0kNRfZX;7zzeDW;7@1WCIR*sH)j;05pr_zwI8egO_*mw`3lKJXBD3dFz!I0oJUAApa* zXW$F)75D~pyN5gvl}y56AXBN_qd3umZEqijNhb2?YnW&)b1%sYp}knD4YSzOgZ*9-vGmQ!kJz7wT`hj#IYG z78iYq-ZEy}rhDc%)8K+_ZN*xThpt;-E;3&9%A8&xGnbE_n>SwR*tWSGwzOpI-Kl81 zZFUbtq*w4z?Nef)*18h8wT@7J^%m! diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable_abc_btn_radio_material.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable_abc_btn_radio_material.xml.flat deleted file mode 100644 index 9a9e2085ad41b0d864ae98126c171900dc9ed5b9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 800 zcmb7C%}T>S5Z<)W)FSc|MsaV4zOg(%lgJ5e;x z{r9^4z%Px|hF_~mZB)&JF~}j6igY3kw_4ODSGqEXM?5b|2_N)%KhL6Q5FMYSgY0ND z3P+=XjIuNtCV4KBq2L;|zqB3PS7q3kcid!cMthI#(85;SMX*0}d-#3e0=NRkz!UHc zya2C2uXpx?s#US7|oFG*d z7t@>B^C{Ax=#(dxETZ#7Bqu0hHVBRX*f?EULVKgQm zXdu4#B~I^_ao)t^jB?I#SO@4m*%J1Yvl#b`tBDxKOL|T6#NV2qXEExdx#;6N7irKh kw*kx*J~fDojQB`{j5NqQzVCG|?(R#RbT4nA@8WI_AN?@8k^lez diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable_abc_cab_background_internal_bg.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable_abc_cab_background_internal_bg.xml.flat deleted file mode 100644 index 6b6f9fefdf7a8e455963fbbf46170ffcd2758c72..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 654 zcmb79%TB{E5Of+!A18z&K!^(`L?vR{Qjzq;Prx-=Kk{f3yRw7Ikqb9Ig zWh6LTurvj>0BTVCNB`kVRg!ma=iMj6X7x(_CUyWMPajU5_F=`$Vgs;%1VhB z*c>)Z*JUB_%~x-TuCcr$a^^fBzOY;*AJIeJdGC0)*Khs<(#CGiIqm>~cloY&x)Yq8 e#?>Lt0e(MqJ>*>Y5{zmSI36z7UlEFwX16q8sjjeaU+RO>1#s8%MUe6Z*T!B+I| z_sOfr@2oPGKkBr!y5#=SkVI2KB2|{xhDw`gQ`oBsPqJLW`(r*%WDrb)*^QXWNf=&- z;Zy}u#Pc{wD4r8H(EfD+|GCI9dFpM)@38&N*<+{d4b)z{72>n@41WZi0hho%@Bj>l zw^T}_Gr15t*M_gttX8boYgpFpZg@5trFC5`IJa1{AnP{?zR(4yYPDJ5OJq~36vS5N znM9u#Zy!^_yaRR&Hvm3hZiNo81OEIQ?_#_79^z@u<+%TL2)MYjF3v8exr%MAMu2{< VH0v}yf9hJkoyFC2J-uIM`~+%AkZAw_ diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable_abc_ic_ab_back_material.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable_abc_ic_ab_back_material.xml.flat deleted file mode 100644 index 6709fa0f7efa6132aa82531410d274da9c28d1dc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 996 zcmb7?y>HV%7{<@dcSu61G6clH+A8tI`Jhe~T9ttzWkZb7*}l|n9ba_5Hi!W+Ff%j2 zAHd2V1RFDKY~^{KSc;Gk;*EayoSvK?zjtSgG4>Tu)gJ{~tc4d#Eg%? zm%>OLiTGezciqk6{~jN_;V)9DQ+}z!BvlEwFSH2oE?@YeOu5k_Nf$~l)82qDqF6$0 zhdYbFb%*Zg*dGRi$)rD-45b_R-q>3#gf|vk`}LeVY6&Fqh~gw^O{vE+ho>gh-;(HBdwK|0jt$;&hZ&F!^-7QMi-%BM@OMC zt10Ixu4O4wd;75Mt0fn!tL(t@z+!PFOvtKLlBdE5?9@bwA<@?osW;L$h;OxSBDr2E zZJupj(`@F(%P2rZskF`%=l9mC;)YPxKI=g4fm>7wS_6CVKkoSSAKgnMX=q1JI{I>qyDF3#iB=C2yZ5s9leG+s&iiX7H$Q>Wiw5IrX;v{IV?i hwkVjgNGbmgC~iH{!gl|EX61fps!$nZIAUqiP=*!{Is*p}z>QJ4bhb%KBWX6XS*S;kI^)@s z<3I2Rc=YQ3ar7jM-A9+3L4T97* zTE=N#>0!F%+WjyJppB;8?ECHZcDuFfZToJg<8(UPLEHCwJH38i_I9ML@$N0Yq491Q ziF#?g|4C8F#+FzWe=H#$7oUakhhhw!1`FT;SOvS_7%1=wd!l(LT3>C1+Y)Bw}i65b)B7&CP)^$)0VeDDF_EjXYSx zQ$t%O=ULf`1f^0ehXFn`k!Bz&70Q7$65*2YQkmDq;0+#XWuysJjO8Yb4MkrBSaBJ6 z23uKJxD10)qO^HA-pc%ZVY~``#4ndenW8T5tqN`cnzbmFA@{%)8a>u~0{)k4KA%0p zyo$dmC>z(!f`v5o6}$-q;xH4k!b@ zN2SNJlzsY(+fQfbpnByqoV8KF_p>$8#$DqUL1aSGlzKg3SMNk>6(&>I+y@TbAV^TwVxRc_#~=j+WzuIEx{%>8%Q_SyvWO0= zoxp!x`QR4N2Oa{)z-QnK@D=z5`~-dhP0Z^7w}A)10;ty~GkcsA+v%vPbu}uJ8HGc)v43Lk;f<8AvK$!iq1kqM@OMCyQL5rZfGkr zyUe!zbSvcUO@8)Og?fD_O-SuF(^F|Awr`@upxlM>4eIv$7m?cUQf;0U^?SWacohYh z+i2`_rVmydw*<2eX$ZOr{Dw8atRF!CcuD86>xc(s~!*oMZ~ diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable_abc_ic_go_search_api_material.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable_abc_ic_go_search_api_material.xml.flat deleted file mode 100644 index ab3ec2820c30ceaa59d8259482c29ff1f02a84c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 950 zcmb7CJ&)5s5M5us0|_S-p$Ji2g~TcG=EF&xG@Nu46hMb)kfM#fiG4U;YrVRltFE}> zN?QI0zk!aPjuweuKm~6cTRKicg0Y_8%=7N-%&aZO*bjiL`PkQDCsvWb;{3F5T`2U_C^aIM|#2wWXg>eak^G| zoAyV19Yzvt5BYHIyYAR^X5QEz&F6#pd@NnxTTNE$wOCCA*Vy}S<=gMK5$gVQurI#E z>X~n`M=Y@zJ1lyF|F-bKHJ}YV0ZxDm;0pKvd;~rNUx2T`H{d()6KEh$xjb_0K}LSU zy4|P37|lHuDSfJ9qgC_@9gB!{IwvCbwF>=3_Lc8~&`36$y&MjD)2KhRogQ%H*poR~ z&#|XR{Xe2&$+Xv>Ua(p%&&L`KOfx#AGg-A7$Z!)Fc6=NdlPow-G5oDa?R>TEsVx`D zyKJmQhH^O(CSdhC(KBHL8Zu#QknUW126@}<^HA;*rOoqw{#L6H-h@8(Rw}!UF_%lL zj>*HUL)Hb++<(C;VA2nuU*FK_+g-#RJhX<4*3rFS#N?N9W_J+N^^%q|Yau2hE$8e$ zZ)^7;+{{OHynyxqpc=>;@Trdc7s~3WLZif#KWElNT+TJ(Qr_$BT!miDfX<*^t-s9X EH&$!Kx&QzG diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable_abc_ic_menu_overflow_material.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable_abc_ic_menu_overflow_material.xml.flat deleted file mode 100644 index 44059b89b9f8939334a0ba907fb959426f146037..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1102 zcmbVKO>fgc5M4LlfrL^;B0@dngrG{iw$lbD7b=wlhr*>oToBR5-qZ%iw$@9Gddh(V zSAGINsK10C0dE{fstQQJSkG@~cJ}S;?ih@*?*Li*k*`E97Lnv);mt#DzLN3Bd9s#j z8729ACA3tbhz@3L*WE7p=l{dc27jGNmGSpU5NAou%}XVGZ0QLvkQvuX#Mv@Yt8C=( zWf)1YX>)t&yYARMe(H^VXF9c})3J1YZ*j6%F2&+RaD}yhSHAga6`}6)%C`6lYZhaJ z9kS*gWBa=^8H~N%jlm6|3p@c%fdkAR0*?V3cn3%z1#(~md-V1t ztrho@C{brgtW^@d!ih!1dc9K-`zi_jSuxA=Ak>m=t~b{&ZD;6uwrLNofioOg=9I|E zXapXN$n!?q1UQrcaxQF2a0j&fibQPdH(41aIZ$+d-QvO?V^`ZE3ESFgO#V+}QfN%B zSff#%leJoS<>-v=g4OGR3@-!Cj*bGY(;4R(nqnm~v&=TVWW`1Lp?L0{LbaL-9k6DT z=(*4W7p=osLvAfS4c%^c9m+gSlzy?*?{s#7H=&QUwOU><-gRR%(Gf6XpY=iafgi9M znBsegf4LE-xx4Ut_$Y^r@~B_%^fa!N%I7ZG2CIN9BFS0~vpJ2cX# z_#pV;tAD|t;14SJJM`Sm21-HDyPSLPoI7*o&g?jhv0ngL^HFTnT#a-h)F>Ke(XdFA ziPE8(Wy6WGiOH0{f6@%Y<^2El4?jENO_7*Fe8|&jkxvD`Fe=7=k&4o!5Z0(^G0x4T zIPQpXrV~Uig&fCW=!M;05Jek*|co+JESsf0}6azP9YU#u{br zutRpZ#@OEKI1Xd)RypD(umd~+PJzd$OW-N+0w{nh;0y2#_zwI4eggG+r_0-Ah-d8J z;F+@4h$z>&8RS!Ia{UU2RhsSZpQ>qW@+>|nt74vJHerkF#r3)Lx$nxZK5p~SZBy`E za*=e8C6_J90~gm6ER!zp3}oQ?yx)=@m#)|9W4Si~f!r$#o(t|ZF)}F2GKff}-J%uH z4qA{Q^+3~ZfNsNw+IM{|p@))xRyB5YPCLl%pa<7N)`6o9dahrp`vciQD!Xov9F;&| z?sDA~+uW=U&$hPk*Y$udh;3}7Np_K1c65|lJ3A4gz$2Ncf>*P7luv}3eJp?fN}*n# zDVwrJgTixV6>i^VQwzDvB(l)m*}2S;`7Af~Vysr7wlOB7c~vam-feCd z#7#Zw;|$ybfO;U?LQZ{L~{# zkhpW>$}jKzAMssRm@#}sb!3>Dyh<>a*dYr zYFg-7)$`qHmM35?TrrKKD2Vz)6~z8%VWi~Jl{mO1NokL5hpMHU~`tL`GrOv08o%bPRdJEE@yA3B~L zI6c7wq9FI2-aui%icKmsyGNrU3B^dL7(~T`laV8Q)Cv!^qHou}*JonL@v;a<2-uyS~1tnJujj zx&~qGv3<~E;5T9&O!^x1&v$fMdx*S?AJtG$9rYC2gXXP<*#qQg!&+;Y?I5S1x`yjs zystfiaMzE{aSH7zKxd%X!ko@Q-V}6>4S&)xy;l0_4d@$mSL-it F^9Prj?X&;@ diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable_abc_item_background_holo_dark.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable_abc_item_background_holo_dark.xml.flat deleted file mode 100644 index e8aefe92e3da15c7bcdf2e3a2f8d38daf97315e9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1470 zcmbVL&2G~`5MDP434tI${6?T&5Qj*3X+wpR9_RybgtJ-O>&C?KM!Orq1&IR>!BcSN zz>Oo1!V7RK-`L)^tO}x?=*z6fJM+z-1IE}-fMobM)8d^-O36i%#)XxuI1%acP^(Rq z#S2xcI1_q#b3Tls#^v1q<4*y9ZKO8*ty)w@RXjY@A_HYA(uFkKYEhY7>6Ll1%k!d? z(BTf>$+IY$M$ew7(`*vK{jJ+1-(iFL9IyxM zbHLa&R};>!+!^{I@B;V%d;z`!-+>>%FW?9m!e||#>l4GY=8fZ8%CBgwMw5JP2IG@7OFa#5(~qBd1r;8NuL@k>-XDa z*WxH8*~egj2|>kt&;0QwF>jPV`KRRWncbD;e3qL1x$JVyS zm+nwZy3?*f9jgah2f(`yX^KAtF10q&WV-^4S{rGyUG;38Hebqu_(+J8a(M%N+p|+H z#7RQ&E}Dzu_2WC-n}5N-}}Gy*^f`WFTqJWGEsK|-oZmNry4Q6%~R9N}!%_Bt_jywUDPa6(*o2Ofhn z;>wXn;RU$BH@3HgRY9~9eVO%mcE0&b0>;>PfTaI0)#8na3&};CM7fpAC>F`dT&s1N zMhjJ_sL1CFdt=%U!}`v-zlR?J{?bTo_-nN&jVk$Qu0;yYL?jDoxYeRGnbJ%1=#Xc5 zA)!YH{2)uia2!5)nvB!K$>i~5GL~VQ#7A+KiTFrxjl2Ju|LEwD z9|Oj&x{`2y;m*+afoH%w;1lo}_zHXjegFadw}BmCAD98d;jt)Ft@3o5pnJM5ZY8uV zE!*8a{v+QaH#W*tvNp1AHk-}P@G!EFiB)=YG*!=Xo2znTN{sV=T~BjEqu!h=>vo%T zS+D1EW1UVW3M1Lx-oo0|lyieQErl61zN17fxmcZ46L9z2ZCW3Map|(bz*u2rB+H8S z^tq|{^m&Crq64hmwt6iYdmr>LA!_h7b{Fb8@DoDg>jGP_KiII-yUTdKiH{TVv6Zd9 zOFk5ne3~_=Vs&6^0eIIUP4WA{rN%~@Y*&CmVED(`tcp_oeT2%z5iRE{rJTD9GtW>e!Wx| ziR&|ds#U$D&#Kq;)Q?3R^hbCP@Hr?JiQ}L%^^~-W=ihU7x8oF(b~$Kv$=TiR{{p}} BJ`n%_ diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable_abc_list_selector_background_transition_holo_dark.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable_abc_list_selector_background_transition_holo_dark.xml.flat deleted file mode 100644 index 7db535a748bec2b71c2081517177e5f0a5fa2427..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 802 zcmbVJyH3L}6m^{c&+EyXMQ^oGn%>Jrp=Ck6xndm8h*`W4npPJkQsw%5Op`Pd z@ZN}y67KsG|MDuH@Np1a1i?i3JdUPOlCWsXs6y}mC3#PI1}z`;bZp{OdyAZscf>o5 zPUJV0pCNt&+yN2r0=xqK{`JqdWU`pA@JuauHA^xW{8F`9QB9k4I;`MIrkprV!%Bw3 zMOm(9lxj>ZXWFZ4yjbRxt(Mh1n!a{BEk#aT_xo=W@@zR!39}B!G29{W32VW(ffnL} zjkw9}<9vj#F;ipa(FIK2*dF$#rXFR*Wg}+JxX(7;uJ7FLYxsJoS+nitLrKMFe8ach P*TfrbhSO-Uc4+dONH-6Rw+?oKb3^RJ1C(USGc}05wcWgW1Qp# zhwP8=C}BY`2`(<_gpI@SJPap1U^Je_NkZZ&!4l5?!;}A17U-ktj*Gl{?x17z4i-Ds zChV^oKZW`Y;0{0mFMwA-zkmJnDTS!g1-w#mR`(JO2EVXY8Ov^?PKQ)Xikur?^tl>V_WVg9<{hZa?1I|)yvmQ`tJ(I28 Q`Z-&--i)U4;B4^x1%*S)_y7O^ diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable_abc_list_selector_holo_dark.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable_abc_list_selector_holo_dark.xml.flat deleted file mode 100644 index 925bf63f5f244e8b046179512ac0fdf6af01b1cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1510 zcmbVM%Wl&^6dgAS34!p8ctoIXx{6erHdHw2f_?xS7D(*O#4~P898WYeRoEaQJ_xa7 z&yo*;PheNhwLNKN!lRw&{vLevf>%ar6TDTk+^9V8k2Mz{jCnkhCa{|4CQ*7}cK3rM%_OA1 z7wjb>3`gP9XYokvkH=5Op{&kJx9A zv70U<>|eV*Yju)~s3==%Q&$ zf@PhKi;T5e3D1mV!{N-@Cq`S+8d-w=$A> z!MZ+I`L54PbQ1Zqe!sL|rMXb6$eA^pR-Z`r!Rw%NSl%u60OB@qibZX016$DVoYT|Y zRh;|yxJ5QEaJUQ5JuUJ{Hd~bu`D#^r+%;%Rx*l)^ARWm@6-V6{aai2n14@Q7j%ox8 zf5bt~$sbAL=mO_CNOujm0gxR@(p|6VTr71?iscP#?*sK%io~ENf0vEL@z(u2Uh31o zc&YA`8_A32TlepHA6}BTUi&}Qx$d8MX|4tvc5>~cUMC@O&6&uf-7U<54mvV z-lZR6;upBlbGy5cwD_1Qa=2BuZryWV;4#L&0<_xqBP~`UNF^6RI7t&@Cq||+v`SBA zDpgQTXZHH2?fb=xGk^Eqd;Eow+VIzEmKl}t{#1(yjG+i;(r~LqW@4r1=HU^KlTa$3A+D zU2zFv|I+Ot?*dPOx4;MB6Yv@M0(=KN*zW>+zyn|mJO_Hc6Olz)CDABE{dAGuLTH&; zw!eS!d&IE{mqtc;x!HKU#bVu&K!m4Lt(I9d$*Y#wL}eR&Vx0f&d6XDxbwO2hmNlDY zxUAK3v9U%Y7O9c!;9zF$V#K*Yr{==+OWS^^=3FdJ^B%bO^?G9E9By2=tkW@8SUHhd zPP;yr8L!U^v=S9y-ELvOO0r0;CeEy0w|Xg2^LJhg-J{}PWw#-&0Y9*)wM}3L`gSu5kH`XUaC`#lT#l6q+XD?Mc%bHG2K7eM$j8K9)dGh z?z|8ePVfTdn`AA*3M825%Z$h4`DQ%cfHC$RAQ?TDM!XeCuDD3jxe-p6i$s{YE~QR| ztIWI*P8luo?b#@f*Qfsb|G|fVzqHC&{<>P0wkmnFFhYVg73or0?u;mHR++*cp72cP z3OYLG$C-@dN&MtlI*}*S>CtpLQL#*u(-N zv0J_=*sr_|eIGai&H)R21U><^zXj~9_P_rhz2`5D(uTjTmzAk29xb$xph`u$REAqEDwEZ^G>0cV%L@e^9rNQ% z#_=RReU?t-$#i-&olaCN)8s74GLf7Ku5tDsWk>JIqVU%h`z&B&d+af@9%FahMPR>j zHuOW_2)FI-85<0e z+?JwYLEw_JgM+2D&5Uz{ag@SDZE%#=S*3r%7IPN2U&G2`Qe#_D76$jNpyrdmRHy3fx zr$l||a^M-QgziB#)0*;;cD2#_bms=JyZ65hU-$l7@ZAC^7im{pH<$BwYjb`#H{z%H Lcx@k@-_7$U_f7xc diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable_abc_ratingbar_small_material.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable_abc_ratingbar_small_material.xml.flat deleted file mode 100644 index bdf9298ada55226239d1b2bfb645533d402f64f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1130 zcmb7D&2AGh5cXz6^8>U{Md3$O>VaG;HEtRTo1FRpAoYU8E%L6t$x`o+Y$NCmiO1l~ zl{+tlgt+kn<(p(J!U`mq)weSqkLR25>;{anZvaVuB#n40Vy(D{lZ6p3E0(b^3!4kA z7rAiCWJ2%H`%$zx@!#)<9|Hc;Dr5QUa#h%};Nztc5{!vRR?2c`L}Am?Y$>q|NZwko< zgYAvVluI;V*}=iK+p452q%c<(e*f_B{I@2vWMLf!6ltY&tliF>%2~g!#g#J0 zI8LENvU$(A9+cd zN%+B$ca+4wKlblGh{o|~Ivq}@W9i3HI0=(PgcIQ@aQ{L3;B}r6)z`Xf)LN|_>d{As zXwQ~|^)tJM9|98i0DJ;I17Cozz&GGK;DWOYTmyQ*A@C6B_aFT(D^iOvlq!hI!l*I} z$|MPLqq0C`^O>O0=r8+C8O%|vmhqZ491hPznozSTiddCtOpQjEnq17Wh-85wQ>O!Y z+K9qDN#9DU*AtOx2?~bwGBt1L;9zFV{Mhp}rj`pm*yI{SW$uaj$!Z=pzw4$(=G1Cw znaRkMifT2jBIl(E{pUu14~#9{sORrIA2H` z=Xbk!-p3CkSQ+nY0G9ydstkljA6n<`;qzwzuAW+2~sS-Zgw8DuP+N~1ZDmJ9(>^sLtY+rO|HHe9YfsK)k zkzdEo7QW}i43?1KS>L_$=l8vP_cB4KhN~BxVCS5H`>3FHN zGqQL*AI0%b^WW>q=Rmym+IjKb=9RaVh?Y(&oSDir*Iv|4Rz9%=BEwWi7BN|{nujkRlMmzdWt z*xy{6WnTX=mxjZ=p8EZ!0}Ted8ah4A>v}yG!o#Xk`e zmupR7=*>sXueLA>d1F+a6MYH};Q%6dNY9WS0b2yy(+3W~^UrR1{x-z>7!NFJg6o(Y z0O-}@%(`3TV}Lard=BgO);Ik_aNLJ=oVnMi!}a#Fb$hk5Jwg5MgzfeS`|fN#a2$LF Q=eA#0*Ye%F27mG9HxtRcQUCw| diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable_abc_seekbar_track_material.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable_abc_seekbar_track_material.xml.flat deleted file mode 100644 index 4fa376ee4d8586c22cf9ee7ee4478e941e28af20..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1858 zcmbVM&rcIU6rL?0wTdDlng$e5gOJcIAhB&i!qFHH9wZ(&vpZ9|vOk)cCCW|z6aOAh z9z1$A9{m&ad+k11M~LDyU*GJT_r0I9>j@#g0<;?Um62~`m}p;yQDC(`3Z)4OBcr1r zm4!C3Oy+uxPG@X?;s54)&p)u*SpRiC$ZVeZtwSRf;zcqVXzL?XX8XBG?dG=Mj}r~q z+VZ#hs?*u&Jbn`GsO@gI-R9U0FQuOU=Mf(8~~G(TkZBk(QNL^ zOqo1Zy(mv|Gp>0kjm`?Ou<+|JR(^=SADa9)Q(}I;dN4HkAxgGlX{oBVI?6L8&B+Ts zUtizlU(&-3{4 zBAe%Um;>mX)(rM!Q!9LGHT|ZXR4ay^H@dOP9xSmMi|KC#-jS U%zAfbtarZ;Uilugp1&tQ0X$8%$N&HU diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable_abc_spinner_textfield_background_material.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable_abc_spinner_textfield_background_material.xml.flat deleted file mode 100644 index 89d5cbe97133089dd20c57e08056506f53368398..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1610 zcmb7D&2AGh5cW1ro1_Fvh4`s}Qnjb3&Gv_iO%JHz2I>jHfz!%ady}Q!-N<&Kz3~V< z1!wLYc>x}UBe(L68@FMVNOYnvW6#cyzZpAVjMW1CL0Wr4^Uu7mWXStTY(`m8NF7^w zX46b65%+m=GSKB|A>y1{sWYxt4qH)l8Ghsc)vrPL-bii2kL9p1Wf67+SS<`!W(q|Dd0yynnz$jo6!0>7L~Z z9CqrLL~5+z)&YCWexXAvo*&l2uc0@AH^4dY4fqcH0Dc0$fj__k#RF?V2iOH(0UoAs?N% zq4@ZE-H~HUOHRKktu1rbY`WdCOf74*-1==c7+REbn|I}i&Ch36=J>4mxzyV#GxXU= zB@>*!*1||y$mf1t7yTAox9(oa&gWXQp=^Odq!;gGO z$gk;EjB?eytu@8AG{ttSVxyXLkM09hkK_*4RMQLj9AonUxb(QVXk$%2b7Lnu*D|mG z(78yHjW|x)d_CgtbKS^a8yMH%-0g}gp;s5{u diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable_abc_switch_thumb_material.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable_abc_switch_thumb_material.xml.flat deleted file mode 100644 index d8b5626076fdcffb9240312c9e4808c58246c1c0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 814 zcmb7COHRWu5Orvv1qq4Y0wGq24G7|XK%}fV09zz>k>fZdG)^kp2$r0K9ea+zZ8!+L zX=^^+02958J)W62eo4R>djrT;_A(>xMOrB?QkmHM(#axm#hp$QEu1o?s5Z`5;&__= z@AuAQz^|+_mfto-ZJU}$H%4TjlR_5Ca%V(s^Tud<+~;{&Dfp%T@F5cv%aO`h7&>#O7<&vlPy-gMv2D0@ z;2lO%g}?&h``_YpwuJo_9&eO$iOmK;=VXgmQ_f8CNv{@SkeK*d+k`5j=yIB diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable_abc_tab_indicator_material.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable_abc_tab_indicator_material.xml.flat deleted file mode 100644 index 2d94d31c034437f2217631164f9c05f632bebee3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 798 zcmb7CJx|;~5M6U7ccDNDq(CQ91yLZy3mhoEtFEG=prJ}(jd#~M2Y;M)7bPWhboBWP z`Ca)3>EX@Ut3(tC#(JLJ=bbkn>qrRk2VmRyq%HlRyfTt5O&qd%I{{+sNdbC5?QF)WSIFEj6xaZS6iE%c86dd~zg@3Z15t z^yG`0=;P`1a5|lsRIB_nFAB;}Nm|6dp!VcvU5UN5uI_;tt=5s)6@Nj!4edli%)=V~ zBX9;>0AGPS;2!t|{07G3IW^k0rJkv_YHioVlB{XG*x#Q&SC_X{M%8jbVmRzY#Ap;E z#KFPB`{hhZhw0ShlKxDh+FH``YSnj$i{sLp8sW}VM&ZiD=BD$wwX7qI7IEzDwL#4{ z(FoncqIY5k?mh4TeYV`ww`6@tJdMwgCRlwvIKQ=|{ZM8i2z{Ip2Ui z>kqsAisL#4eH~A=I0yf1+d!A$Uk=t{V?EBn#yQvry{B=35B;(x_Z9W|10Uw_2&Tll ANdN!< diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable_abc_text_cursor_material.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable_abc_text_cursor_material.xml.flat deleted file mode 100644 index e6eebee3786275d10ba9c07f0a69606a2e1d4873..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 784 zcmb7AJ#X7E5Isfyh}|U!jG`!#Aya?=6%)HbWKSJ4WbJHFBxR|UM2BSIv`aGfCwA;V zao@?-Vjw7T!qZVtcaQfjBBH+l$M`}!xsh3Agv``3n5VE*Kb*I2S<7HtDXY`PI8Are zZ+?G#7GJ$_UVO7f<8337m6IBmDX9wMMR2n5xplSwG!=PS8RXh*m2tNpZ9sX=c_9SVAhj^PjyozMrQ zQ(%i=`+eXDJbUSQ{x`(;1P@lw2G=piJAhWqnfo4)Cjj?w@IBnOUu~=31INLAoLOtk q2Smrk``He)y4l{Nc6Y;eJHq*JHWubtS&wt4ci7kQhhC#scJmLoVySun diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable_abc_textfield_search_material.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable_abc_textfield_search_material.xml.flat deleted file mode 100644 index 85c913f5e4e3b2b1d9c582dcb5d8e8a4a7bf20cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1122 zcmb7D!EV$r5OtcsE{m!{0SO_Fh(je}wxN*isYec6Ij4^8kQ66b*Z?W@RX8oItczB7 zZ5v^B4`+Ekl>GPqlP?i}@3eLNq^~>IcRc-Ig#x7%veu4!D>_&8wskM|dDR#VpU(Nb zQhA=`uinT^?JpKD7mG~iN|py@Rf+OIaEscT$xlyP1Kr2*AU?mUFZa5R- zw;_gq4V(ZTI0L={-+=GH58x;88_2Sw>vag}n@<>}Dq3$%AGJ*n(lE|wqHg9>#?(sG{q!g(LMGU?mqAbwgsO6TgX4Vl&5F6v3`hO zFxqpB#V$b4$!;O0J)7%V_X;ui)*s8MRpZO&^)dS`Eb9~lkPFv K%r@l1z5fLWwEd6( diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable_abc_vector_test.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable_abc_vector_test.xml.flat deleted file mode 100644 index 62e942a93c42695634de7647b86e6f5e1fdc8830..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 868 zcmb7C%Z}496m_QQ6I#KjLL%q16LbhVR_Db$sb+MKQi zK~N|C_xO0n-)X5d|4^h`U2M5~twf9(k%&^Mxlv-PlR|Cu#OFztOR(#4FNuR-7R)cA zS?n*D)8%p|gE$HoVUmb&A-KZcyUy!=+T@Jgp45kJv0gQ|*c0}~VrI(9!}8!O1#tKD-eiRH`Tv;fNw}sW!G7o7i4!cau~- zaRBiLRN@X27j8)0;DF%B0f|2Vu3X?R0KxNk-j_xrBs8wSJ6%{r?s8DqYO zcvP>qv*au}?02GG>s~)O8MeBe?A~G0IzGzMlVN*tr`l}VbG_Rut?0eHljYF|X?K{X z!{{K*j`LB{>O@DqqI+@}9j0ksbh4E^8H|9Cj7CwOwW2}N8%9|tkNyX4^}(QTO#c~6 zRyNb)e#u-j-QF*Et)dS+QqB=jV06o>{4!jXz;NEKTDs#!m&MIg zmP>&wF9-|Wm&MIg7XE(^*}FG{h3?DZW-1H!UI@!gVWIo7xS7hry%)mrlCaQyS=>xz z;ob{jc|}<0zASF0vT*N(u<*X*?+e|R#m!Wf8-XlS!b10DaWj>LdoN^NuqNYmq5HD9 znaaYw7s4_lEOcKMH&a=-_d-~z!b10DaWj==DUfAWSm?eiZl<#EIw9-A|NGc0Wx6km zo2e|dK$dx7q5HD9naaXvuaI@&GYHp(?#tq4DoZ_(`WpOi=h3_Lm)`ibQTo<}8i<_w|%|Mo?g@x|R;$|w#P9O`P&A2Xf zUluo0SzZrhc~)5HzASF0vb-6{@|>{HeOcU0WqB)*<*KmIeOcU0Ww{f`^1QIneOcU0 zWw{&3a$Q*HzASF0vg`)3yeKSmUluo0S@r^1ZV3zBm&MK0cOe(fvGBc8N#57!xW0$_ E2X6#^ivR!s diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable_notification_bg.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable_notification_bg.xml.flat deleted file mode 100644 index b520789c870a1294e6abe4de28c54ae2523f94a4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 904 zcmb7C!EVz)5FIxT34uyc1)@S6da6n#yd;2S}%s z;%_){A*c6NTTIGBx! zViWY=@5h(oeLx??2e-7rS&=QgRK!ura*07iFKwutH{sb-RJume*+d|sEYz#KD)N^& zQPVufLOsu?FBBFPPA9@s?yi2bYf}S!+1oVRgJEMQ@C42ifcxDHWS@67>8AufUlDEy zw}j7xuY~V}AB3NTUxef1GijA~TFtbLxIiyTXDhv!8&rC2UR!P6X@hWdbhfL@xuvOP z4JRl63Yo8H+JFiMgO(MB!>%lh$9S#dTdDBP+Ba7Q{eC6ufN*-cjBzy+BG9gl3|X6= zmCgvc`q*r-E19M`qM^zGYb>Mlu)iOojQE#6O`~5UjSruaA#If;8N(r|1Hx~T9_ayL zkNo_{bbkJJm(CC9p|v-{asAe&TAbSC@f|!Qa1IOea9(?zP5qQ(37p58YmEr^S|96P n+uL?6?u|Jf5jG6FIk;EmVBK-tX??6aj_q2Ve|!F9$G-jmg;3Gz diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable_notification_bg_low.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable_notification_bg_low.xml.flat deleted file mode 100644 index 69085d083dfba3565801c45e8ba6295ea85d4c04..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 912 zcmb7?!EVz)5QfK%LqecZR8fRbk8LF?;UxhqE2knMPCamdv$ge(lLdP>+TExTC&Zn1 z=z#+-)SkHW2pnO?u`iJtiHW|54uJ;K0e>o zX>REBvVxP7-P@LQWRD64gH{%X!>%rj$GFzvomBXC<(j*Le!rBJM>soMgs_|m;c4Kt z^hukZ6t)&}`MDWoS2B)uz?v$1tgr~y!T!DvGGN}x$8m5gr1O7`hBQ^OXbext9T0!X zdgKSh9>w{q>EitEK0QC8AC0{+-q&x}REtxaJie1df^*ndhx6L&Z0g6nm*711Tx&!; rXk+YqZExGPxHr~#Ol%bH*5F=QgMFuQuZ^+qG`4GX@$K_Rcg*V_?5x$} diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable_notification_icon_background.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable_notification_icon_background.xml.flat deleted file mode 100644 index 97637c191ae02251ccb60be5b252dafa990dc58f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 658 zcmb7AOHRWu6ttU^R$Za03xwEIf=wl28X$_g;u5SY*LIq;iCx*@vqa(w9ED493K%Di zges8WMdRnp^Efl1gpd!w*XTl8{=`?MV%pS2RtR1fMlTD2WyQsIZOwz0pURCW>3i(c?UJ<0%86=;yL&TNB{wB01Hf~cfyp$ z{`9}r%VtCd1Foetg(Urc%gknZUGEl*IYh3wi}nX1VJgOV+a^pW3PbbAOK4rrcglBD z;x0m7=n(Ev^q8EWje$>;j}`zu@IFJw`&l3F6FmF)%{kA70PYHW?{pLFy~fuO_J_J2 UIA31pd$9L$sO$JcAM_XBU((r^3jhEB diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable_notification_tile_bg.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable_notification_tile_bg.xml.flat deleted file mode 100644 index f53451e2f593cd1717d9918e9fa4ca476074789a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 592 zcmb7BK~BRk5ZpA-Mm?d5148hDR>U+w6!ipmIC74hc+(mZJF+bmgpha|&**Ppol?>E zfW$`Q^-k6vj~xKOir`~-E(~AtqDH2)la(yFlUn6Y)|eOb(QKGy>&}0Vr*G`hqOt5r zFO=1a#dE_236;EDpk>Z*Wh-qOdy%k;^eD$uhKM{9H))ln*EkhPnqnp{)8tBER$($_ zhSvUh==i0nMX)|^2od;s0B7(?)L>(SxNT!G@xHzzD8iEPPMAz?ceP&gmMg6Do!gQn zU0E@Q!GJ4av=q?q7t%Gnh4FadTsvdTlIe!q_@^T-b;Ef3+}ZhEWw1r=APlW3A&UGn zJZORN5k%yKA~=E*N+ZG-g|`_Jdc@yv@%~?r>SOwR_Tl>uyBYYseAx|s$_E6``5f+P LZ1xKF_>J~A$c}|3 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable_tooltip_frame_dark.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable_tooltip_frame_dark.xml.flat deleted file mode 100644 index 03fa7b62bf03f0411daf0765f391e3d54523c59f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 780 zcmb7BO-sW-5Zze&d6H5=v=jtS1+%ubnD*3zCy#XJATrjGB5>T(rRwq9j37xG$d>)32+$y1grA_-5kWa})e2xk!T>NGGt z!Z{#ENNr$)u&b#8d*JP_EqMFQ_IL1LJz3a3%hmH-vANK7P+N_SChD@T0?r2XSy|cM kqpU0Z4$+&tZ8rO;%YHR*_FmS{=EAS6EBNwU&M$lT0bX;n8UO$Q diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable_tooltip_frame_light.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/drawable_tooltip_frame_light.xml.flat deleted file mode 100644 index 0931351ce6439934da7c569da19e02a977dd1308..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 784 zcmb7BO-sW-5Z$!4wVp&2L<$A*B$&0W#k3~{Zyv>?l+EtuLz8USjVPWxd-Vr+^dI?4 zyw|r$(?dYP2`@9e%zL{taR?z_fQ_wz(Cmr%iKK;6NfGCZK(kaXk~oZto%xpMRgM3C zAH2|8BekLTD$0z?s2ge~a1LiYl7<$VWhPKMH78>l#EC?9M|2bj&zpE>=X@f@v)Sov zHj$p-{?rcw=1&>b(EfF2_c=`nIcilGZj;TjcF2Hy+j;9b973+@8u<{o1g?P_;0|~L z-hmI`6BrIJxJr~>Z^~!2#0)xkohV*(Y6I#WBbULLI zn5x5& zM>yMLA87|zBJ659KnuM6yESjW+5TNTSWg+Y&vLygw{5O)YW`*F6Wm$`~W7yw2J@$ diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/layout-v21_notification_action.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/layout-v21_notification_action.xml.flat deleted file mode 100644 index 222de5506d9d0a86f3a1175b149fcbbceb0c9e55..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1688 zcma)6JyR1w7~bSSLI~kQKtb?>p#seTVkSd{gN=@3p@?N>z1<`$m%Gf}D&pXbrG<@u z!SM$;{se0qJ1gxi?6tw?x!eH;oN+VHJ-g4oyZgTHzMGs7;$jXTwBn2}_rj;v4MJ-g z#*@~BL0x*J@%3V@)-^lvojjrZEzIn@4`Ut0?vt<;#9`o8nvqn#c0K8}bnMzl25}>d z+VQnjw_$t@uB^CPYgtn_s*PH8O|PicYE{?Na&`5((zS+OU2!9HDO8uIk~M6rA%Tm9TZy(EO{@5bebLekHP zS@Ah9#C#Sm^7uaMgU&w6#a22Qlw}3mqeV`7! z0p0@dfRDf@;0y2__zC<52H?{OFad(cj;Yeyl~Y*a{=_f*$)~aj|7>XWeyURB~I! zmGq>F7q(s5*-2_NJ3XI=3*~aRWb1eX&y3v@!^5f2(x%z6N8{b@xKv8#ca5?wF*JnJ z5k&Gh5kW^PWrF5|G=kWZzTVpF(9amUubCA%pIiirz(!9Q_--US$z#A)C_V8iS3p&x zZn)BU8HoOaRo#)Mf!1P$Sdd*I@2RU)lH;>2LaslXdisW3D4}FTT~0 zR3lTPzl@W1WNP%SSDS-Y253ii(tP&%LI1vDp84u}cW_WbpZ*PkkLQzP?nmaiqrllz zBU9tOjHeoz8e`*s5Z98a{VTRBsU4YijICGe%`xpR0+#`vLC)gsjVsf8>nE4yC)2Zf F`vW@$U8Mj3 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/layout-v21_notification_action_tombstone.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/layout-v21_notification_action_tombstone.xml.flat deleted file mode 100644 index 02565e1048a8e4c28d6450cef75fd450ec6e50dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1894 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 Vbgt9qzvk2TT_(9lG_UW+{{V~b^1c87 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/layout-v21_notification_template_icon_group.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/layout-v21_notification_template_icon_group.xml.flat deleted file mode 100644 index 7b38e3e43450a7bd73c5d455ef5b834616783509..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1580 zcmah}O>fgc5M3vwN!_FkNr6&v>6eg-8q)w#)Ki57s8VkfZV}^X?4@e*+ z{s4ah@fSF8<;0Z>Hx6*-2yg5)C2lIVdU@-Ynen{Qqy}Sb&Ahr=WWmH&rYgi8w5hvEua2O>fqr@IWSVPkPiB&P$_;EyOVzY#u~=_8Z3p&j2OpPr$iO z-%orF6gLZCg{fAVn6&f2Ijs?sb`hX`rZ{4%{|QX*rrLC-aHsldU%2P>v8HJr zabEwD)`&@?KI!L0^@&MqjnU@DX!P%=m`nW@-$A`j1N08!vYuVhL+))6F`2Woz0oYG z9x?UY0BTwz&iz)jMx6V_HO(c?{T4OyQOqs+pxnzq9iU!_b8kftxnA50|3l}aNIPota!2uzTJrSN~KN@!vL?-&>9X~to%=^x~GX){Uy#oHB zmFu1y>!Gn^$8JYAYP}b!FtR?@eLvE^)$E1R z@swptyRRb4gwl_?Ivhk>J66~A6m0W`b))OFTDz^+ZrQue&febk-rlZiIdTEnXk0GWo)O!&_KkFX#m}pa)$;Pm zXMR$TP3pUu`Z~(iVeF=S(+*?^1K-8|Y?6FQ%n9}jVom&65@I9U6YTZ(Ss%6rn&3Y8 z5DdVV;2ZEG_zhIxvjW}%Bk(Qw1^fzr2Y-Plpiva!0XP63flt8a;4APQ_yPP3{s4c2 zC*U7YLwr}jbx^IoA&m*s4Z9=5M`rA))AB)I4U|}3o*ey-c2qKaX(`du>Pf_fh5hR% z+lr$Q^?FV@IR{azO@5m=gv{%#6A+EY{^=TyopDO8Z+k;WiH(i@$b_!ni)-ejG}^pS`=5>rz>?JH!6 zt2lDaSX{l@Hzv4kSrP8!Kt@k9u=T)_!69$kmK+)_u3h{8kyaX;C>F7Mv$NUG*XxIB z+|e?0-o>&#$!)&t4G~!=W@eI;Ls2E2w)EVd|1iE<2Rab*^QqofZm(}drIP-}L6|;% z4y3XB>0K0SYyQa+yu!Y@H*vPp(@|X5)6*ud&uW!Ngn>kE)Bf+EHn*lav~ z=JC6VzbRNY`dNbO48Pv&Enu`Pj@0oS0-@|sRHT55bN^Z7H5 zyvF=r1)Pueto*61gGpcJ@C7u!)r^(x1@xH%W0=eVPh~tmEzj^WcrMjwvmAJSjDwci zd1A}f+V`*<4QblRm{Ln##h8Iu1lN6!ZFln&l?NJy#!bj^rfZt3Shlb dqs?N@$Cl~&y2$i=%@@-8%Jl4x(6>pr)Il}}9O+0l6DJIN-4zQPvR zrvzhH<8-il@8Ujq49Eayft$cX;5qOb_y8ONUx2T`H=uy^3&3@t0z3i)&;woqZ-Mu~ zN8k|n3>*R9fuBGMUZw#>DY3D!QdxIdGP!~0($Xz1r57c%%e_0I#iiL5yTNJRlLwYy zi;F{(I@o=yf6h>#eaANk1Lbl%tAFnvD-?FPt$U8CZy&!Yja17c)e1|cLLY2mB8tS8 zm!n?M@3^kx$zpe_*faH(ki~E^GTjU67|RFIG*{;u_d?I%8DVS zyRE7|s;Z}+eZ>B5ApXDn(SDLY;@ICr Xq!FKnzd;}IzQ#399;ud<6KelA3I2AH diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/layout-watch-v20_abc_alert_dialog_title_material.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/layout-watch-v20_abc_alert_dialog_title_material.xml.flat deleted file mode 100644 index fe4731803241e4a938e066b7610e36aa1efb2c7f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2030 zcmb7EO>Y}T7#=%c&c;scd^99&Loq6f+Q!=?jq3Q)2r2*hb?(U?io2X)}$M5VjU(fq7Q(}xgDB%yy z`Xu0oYM^c2bsZjvL_413f$BS2>OeRl*CGM2*s6GZ=4(}$e_Hh~WC5D0)Lz>mO7;5G0&@F(y$u#WZHKnJ)BP&OUld*CPF7vKf( z3iu891NaO02dF?t9oPhHpaXmkOiu3H@M5;Haf?S@qNLa1S||2MMxGjFQM#uO1Hl#+ z4z9ixJhrx$F{ee2EiJtnI}RJG)pE9o8LQV1%%Rv?x+-Fun+Ki@MU>_9t&;Te?;@5o5-NqSs0XajX*E8s2P; zq}La^bvwHRncHl6*~}{j@5S5|Y?y&vY^n ztWp``v5+o&wXC5`Wmg8|XSF&?cNk3l^q>nk1R&?c2J|eEMNnm{mB|_ zq@Osl#L1p^!+K5~a}!0b$Mu?AU&DOkM-}}yxh`e=1#oz(vi-=C zX3GD3!I3q-;pxiektOadKThV~=o{Bz`0*Mb-BinafYDt;pLA2csTn<#Sc(l=>j2FoYqX4?X?WVlXrVeS6)`uwxnKVQkzc4X diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/layout_abc_action_bar_title_item.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/layout_abc_action_bar_title_item.xml.flat deleted file mode 100644 index cb26da7c7d29667b2d7bfe45c79d5e73aec59b36..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1386 zcmb7DO>fgc5M3uNO`H}&zX-I4s>fE?G@&J_IFxcissus>PRLr@n|Q%qTkCDpazGq7 z@HhAe+&S|DIC0~zz#GRFG^#+|==p7Cc4pt~&RUGITNXYT_D0Ol(-Y%zKk#^9WU4%$ zYtKj%3r`x6EbiO={$%l$zjxldFLI%C_e~n9JXNkU(mafX8}J|!xob36`7qTr#WnuFJX9uNVafiJ*U;2ZEA z_yPO`T8L`{8$b^@1fBt}0RhCo82AWuItSYq6;}G$%F48>5YM{ZgHR?yOEQ3WiEXgOLLBdW6d)!NR>ez#y(gLbOeUg zW*yK?;1|XWTNhm zKGHNV#;^f*-dMvb<02#pgoAII;Qnj_UXH|%DO9i)eFA? DsHh|< diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/layout_abc_action_bar_up_container.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/layout_abc_action_bar_up_container.xml.flat deleted file mode 100644 index 1d605334f1a10d637a086afec78dddaf128b9e40..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 778 zcmb7COK#La6nxGwOfWM_Kr9d<5@Hz%cakB(&ITz9B&00ZAhENa+wHLvyL;5`NyskC zTq8%|2Hb!{a1f~WN1$vF&nnk@>%-rjq5&Wb+3Q??(SYED^RtgPASoaXa01j+WS z%bI30*10uRPGOk++1lBWN;_rKOJ!XpxyGW>oYg9)>9pXwRZtM$W#z7Ef4_8YeIi7Q z92;(<;hB*%jo|e~m(cj0#iGwDEmgHD9SjZgRh7FEW5Z6C>6$GZV7#*2{{Vg@x(T+C z94gqQ=b$IRFO-kf>s!!o|I+<6L`u(aOu@eV-lXfgzH7bauRjFPPX?wL<_Ci|Fg?Qj Xc+du>5c7P{JWuZV8+`=#^wIZksMD!2 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/layout_abc_action_menu_item_layout.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/layout_abc_action_menu_item_layout.xml.flat deleted file mode 100644 index aad1c5186bc9694931426747c6300928b5ed2f30..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1138 zcmb7?%Wl&^6o$u5(ll2}34|i(f>l+i9@@03Qx>RYRRkL-u(T%jI5F5B%bwgM7L|As zwmbl9-i0-<0Q|=nsZ@~=6Mg<6IHd>n|Snrbdajx8MRtH=&zG_`## zLpy)Bb=tJ7Jp8|(53UUUHkC=rKd4ERs)(E8M7V+Ej&LS2Zv45_Yb+}2NG%? z@B`1atbuiO;tbrw;qb|DIFOd>jE+a1Cq~DDC&>Nx(al8|;LM9ke((z0$mRxn$l7a+ z^~>)u5L3>fbaVZ!2ERLl>xg5#1w^s!`SAj}cy)Gg*QNGJK zFJ@*sjboK)b9Q3Rd^tC%#pYSoZrc3<&3*@;t*<*W(lTLX>y^fa6e7$6Q zdlRkWQ_fTLE)=O*?(e9Oi}+*KmGa-a-Ml|`nce9W#zgw#iDvC~v7Y;`p0G|Q7Ov|@ z<8y^dgsjyn)-R<;!NuxzmfLI=%S#orS}o1W*6r%Q%hYI)k(Z@f)yY(1pLrr;+fn$; zNTYXG#s+Q$hOx=+LvDlL7&T}UtikW0ccoA7*5UW?YeSKk#cyGTD@A)%NGX^0y<2#s zYBxLW{6&OB1`HdlD`O*F3O-octSB9D}E Ud!Sl)q?H@BDr;ig@XH$h0e(sFRR910 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/layout_abc_action_menu_layout.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/layout_abc_action_menu_layout.xml.flat deleted file mode 100644 index 969fb2f57cbbc854246d862d9d800cb0414d7e87..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 872 zcmb7>L2uJA6vv%~(yp`}AT%Ka2Tq%Y7Son#=`IMw6^R4vgcP~4(|9CKYO2EUU}c5O6puxms){=+OqCQiua0Lt(V0RFrhJ;nFr0_a zPUE?pEf!A~i@6GAygXSZiCCTpZn5^SO$V2G_Gzc?*JlGpxyK%|%wufQ9s~K?Hb)$Q z$KVM#2k(Iam*6Y-2EK!z;1}4%`d)83le%R4`_F}Qme=;Z6!w+gXsImg_l1$R(2^Y< zHd#=u%d)U8*qjDiEmz6~FRopG4b#uH+A`l4Wy$vTVr87N(MDOPW0B!!via>~(qwOh zl-jKD3C?b`yJ80isdMES=M^l@MHRH$#zoFW`GL$k7He0qqoaRU^0xi)xHddWm0qQe zjYiEJM{p^oTPw;aF3_=Y?6Wtx_LF(H*?o9*2mHpMD;a{Wego1j*g^dl#I~N+_?X|r z(?g^|bvFU*r#*a%r1b#}(kRkCbf>hAG>W9%0^>%bNZP2Q`JKMoKD>_J_TAOnbN&HF CUBjyY diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/layout_abc_action_mode_bar.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/layout_abc_action_mode_bar.xml.flat deleted file mode 100644 index 5c00863b55969d6015c9d892a87a65aa474f311b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 784 zcmb7>&u-K(5XL9n4O_ylgkURB#RH&9#I#G*q!$ESxF8|%=NdVQvvEn{)ONeOH;#RZ zJ_2vR8*oA#c>$gRJ|_*TDsf<*q%&0BKi)T1-ljBs58rWnk785QZ-4fa*?E5 z-#ZSXs4x5P_wJf~FhU!4qRPgohJ{Pb^GdLcXQeRAYTlSa>DoLwV1=v%e7Mi{i#&=J z(X*p$ksrkI(>Pv;D9_Tvv?zFb$eG68e|H?N>x$^{R^RT3w!7G)NA%hwnhjrp`0WtG zKL8BG-~^n4OYjAJ1>e9A@Duz3^Z9dbt!DkWUUL1u6t$q8o$K-&4Dp@aRDvcG-sD=z zoWk%b3e8#DDs98_qi`kjrLf_PZuU6rm1?Y5+mBMLXgpr3M$q0~X>EJVn8EC7ZvGyV zshaWjQ#Y02lG&`EPf`lGEGAqragK?}k3~{Rd)jvC#kk diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/layout_abc_action_mode_close_item_material.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/layout_abc_action_mode_close_item_material.xml.flat deleted file mode 100644 index d8a87ccd2434a0d50e5971310562d736b3e89f33..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1312 zcmb7@zi-n(6vxkTOVc!kU`m0~N`<9TQRAkikaVGTt|Ww@#CV8pYMC``R=`YaTsH>4jvel<%l2YzV&%q z1YFoqCqb;G3Phwc6@*sBLCmc(A&0XlQ#IJV^myz-X z7d@5v*6<|jXcK2EYknt;6l}fWH#)M}TyI{#Dc0p$tF_u{t*fRK?TvP)!`mC&H;DcB z6zWgn=<1cqbYfLvcT^@!m{OC$p`%4V%N>@Mde)|!zMr8L zVxHBDZ`Fm4eV!iDC9m+l)ogkB@1FkfB&8CLGd+FW9YIfp-JWH&S}~8g>4wQ}BAMs? zB0b3cs?|aqgwpm{wTgd%=mjY^NQ6yIrCdr>=C0~kEEcmp%Z){9nGxGMPPxUMW%*T% zjak!I@EjPP21Py42hW^x-aE{xv5T0a_1Jfe3D{{cs#Bj;K?(jd=!u~}#hijZgCDIU zF#pa4yrFGr50@;h%>rs~(#X<2lYsUojVx&uFkWb6Nt*(re$@A4fMUs#-x+YO(8!Wj x12o8wENOIp8b50u=9dbMEcwjYxN7#@Gc&gP>b5THq%8aJ&FRlPU?#pX~Tk&q(MOM$9VE1B``*t@X1vzi$v zeCo zaW4?sHHs&CAXTit-f#zDB*3k<+aCCx&SvMIMj=ZgU!Mdm0E{gE*;fkwM|%~^qlc#-nN z&lN(Ud+$|Nn)6N#Dq+lr0w&jytvA(i%1W$e_XW1f8YRZo^Gu=&Z}L6327Cfs0k(i2 zfS16pz;D2xz+b>Wz<)p$_RGLJ@DzxFJ>V7a3-B8F9ry$I8~7J^3sj4E2k-@O3%Cz_ z3p@dS0z9BnX>a&p%F1O+mCB~&di^dpM%kRoWSgs9BjRoDJs&DLN_@7qcJ!QjX=mI@ z-=mWrnS)5MX7k=xXVrwQu3DuN3c~7j`}m}4FvqdaZ7JCF^u4?+Y-Z+x;<0#Wdmc}A zsaWJ2TUz42|HyD7^aCa1ogj>SB@(ujdA zZ>zN*`a@w__p@O-mVou$BoQimx#RSYvNkp4p%sNf*1d>p4c7*t*%`~Qm)=P8KC*Y? zMqo^O$8|LZDCWAAJK)LK<>_-f8o7JLB7B^mA5TgTqelf{b90#>5aBQ|Y<4y~!*LVf z7<1zVy_6$-1ML)v36tTr#4NaM|8ROtMvg7QKU* zWOdqL9ha@)eB3s#&2`Af(H|aC+<9%VwRg>dKNJ`4w)YdC78gEER*#tUs1B2|&mf~7 zA%BTWSwBtsmdht=me;Zk+dP(!QA_Gs@{#zon9u4xvi%sf{N`Bv=c(m%78mhpaZT3k WJhhzkEwANd&2stVH=}UEH|8Ch$-Djl diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/layout_abc_activity_chooser_view_list_item.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/layout_abc_activity_chooser_view_list_item.xml.flat deleted file mode 100644 index 71b9bdcb257c3ed24f10218c5d7512eac450bd5c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1904 zcmb7^&2Jk;7{DZ!Ygih}ATNlWcq_z*~~WTc4CqdVRmdx!2fLWnCB{NS^; zeR)4x7+X%AiFAxU)aL%g@uDbI$>dP0qlvFmGtou`oqcOK%$NP|-;1AC><{5GwLgix zFpWZcFi)iGE8CHdr&8M_GE8St5~Npm?V0u!>|n>e{un6NQ~>qu1|PEp(rpvf4P?Z(9v$MjKyY&Xy3@ zR`Me+iAL70h)d$Hst}uHCXml>$~J5RoCVK;9=HiK_zZjjz5?HZ@4=7Y7w{YS1JvPb z18jpE;B9ah9D+ySbMQ6z4*URq0>6Ua!JoiFTo=F=u)#j4)plNUbu3m^c1BsFR@>X9 zu)I8^+1z|x8k5*=62)$G6pnG}2Z@@gBvI}yT>ed^=bjN88~MCc`N}bJ>MIVuC7nC- zBwB>7==bvpM%^=S#<7yPS4WLyGFJytyoldb;XRfNaQ==vXUB^Y{U8br7H@BR#>D%!ouXm`nGT9g2Tl~& zGQN}5Vi`!aifG#Hyfi1Mbv`VywpIvUp3Y9E=m$uU4&Tdi+-eo#k#>zI>U9j>T_}YF z1kyO(B+f!d0soXVQhSjN ze5J-S+(w_i89%@B4A~;+Tz3Za0oTz|W4xzhW4xCE=h4#tm#{sMdp|z5(C*@|_*e5( z|IASx&=)QDd9!n-*UoQxCpo}E$4N>xk96*#{jEBAc#F#kh^`-8Or3p0DwSA}C&F7u__wwf@_uVwmsrx}Z ziqbf8TSG1VFmOHTje^uQT1M$0*5mZ$jyq6c0B*J2_Q3CUce~ebdb@sSZ|~aP-fqzK zz5b2cA!7D)0*M25=YffCTs$_yYI}_y+h6s8p``i71uY zqFQZt(5zIhku?${z-%mCrv|6vbvgI{nwQaJfq@BtgPfpZxpEE$o$hk&il1m@gAnl2yVmJL*2tIs@xm(5~+j8 zAn~w>1};GsG?BiqqTxZlwdLiae>)f$Of7ovWGgyO(Y+fdqFzt4Jii(F%9AG6shFEf zv+LwICQd#ol2xr5JqeJSY-cKDo@%vYEt8&yMA4FXP+CMK;wja|lb|)=6wfO7ai9#H zb!K(GyMTTJf2>VbFtr!ZVre5*h0M9@z)OWjrp6lPdK^clb{W_zG%~df;F&@rQ+pnG zvCzo$_8XY<>48rjZF*Y*^WnS(K>u8mOzjfzbfJ-{{a+tfF!o|Gm(01(0{Dz&YmljJ z0{A>+8kt)24DC5+({s5m9F1U3^Ie^uuAt3*Rl(CapF@xPA~QboTPrj&wMXr1I_H(* z{Abssm(LJm2e4lFEv6T)$;YnCoYM>0uFLn-$kd(!@Ttu-GButxpXqT|(dT`nMz;QD zeb`)eFvj|ORIZpi#v@zL%Y{a^o~QF-{Y`7u%j}xgOBb>J%L{9VUdYx9|Ibk)pV!Om Xn%3iNZCIUkU_G*)OU3zH-PZqKO!(RC diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/layout_abc_alert_dialog_material.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/layout_abc_alert_dialog_material.xml.flat deleted file mode 100644 index d51c47ce1ed804f30567a4e4daf68db5eeb6ff57..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3554 zcmbuBO>7)B7>2$1X_C$6r%4)08;Y}q{-xb*+Eh&8eJ4enOIKl;vAZ}H8-`R1yOcRlaiJpBupFi85?a!VR zgbqhk~&mWzvv9p_#D9(cccE75UMeK%|c zNf=Zs%~-j7;666(o%?ZYQVCR2!bJp_TdSe8XK_JiEAX-Z|@@Sz0>1v~*T4 zx=#IEz0pwhbE+Dn?SI8xx!?B7`-)?pTXn*~=)l}if%YeQ24~7+#UYy45)-yzxKo}g zjy^S5x7ExVskp20M0ut-4d29xL*IWha6LzvFuoja1nB8%`9N{%`Py3%>dNKG;>gpw z+n(Nl@p#sq(f7@2q#PYz4==7669x%tFJ|3!*WUDuuTi&v-54)*wxm}KrsaZ|5nuHQ zamMZxcKKIZhVB6)U=Cab?*Jcs03L$xz>nZ(@FysteHpw3-UDBQpTIBR5AZj53&F1Ew zb3SjKFYwa4oZflauv1gkJL@k!n4(y$E9YJ_4%Y%#?AcQfaZ1}_WW@2k=w@h>s=vRX z{6r%`n_-~EzyNN%b7|z0L{E?BqOBJ={+g>X zT4$fc=xC=4rhG?CtHe)6vnysMtL4QTG5DB>MZ)?ZsK-+u-0jmJs)#k2PBN60h$0oN=kN z5v!<{oiAJ`;={rqZYn&5aj_pV0iNKQhDy)_`zKIqXC3{f@YfIJBf-nyBtT!iR0(Fm z0HBR3!K+{%&_3J1t=fd4nxNQ+fjS7dF9)& zKZE)iz;=8%NA`#7I(;O5X93^YA60^#&fyq*85`SDIp*h3#@!k5$&-C3b4-2*_(;H5 zaTTZSs1nSAA;7+<61)N`fHtZGjExU%R0+0P-_x)k0`#NWb;`$P*NOXKV}1eU{5o+R zUjpopD#0u$0@|n&>}2gY=3V%5-|d)_D09qoQYcHXlfLM;RW5Pw`MtLNzld^vPK=+Q zbH-1VfMbpV+NcujW_|Nx+MHNMKQ@*rl%M59A+?`^Z7<-sR0$X#|97B`D#1?InLBKguCEy(S&_=Mj^e!zBA33f83ool{-YtPTs##2N8HXhz#-FF4;hhZB7jE5@0 UZsN)JZ{x{-7YkUQt-hoG0I1>Z-~a#s diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/layout_abc_alert_dialog_title_material.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/layout_abc_alert_dialog_title_material.xml.flat deleted file mode 100644 index 438fd11edcd857e77653a73b6aeff8613e3233f3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2294 zcmb7E&u<$=7#-U&an?3ToIprO1B51olz7{ODo!p9YAb<=AR+;dtI6)z9$4?LW+!%2 z6$v5k9LkLY2ZY24!KLDi5I01R+_>-$a7PO78_y&(N4_;lLzEnqgYv6yyVS5G|t|VeHjV$PI~hw*J%&at;HE{ z(oF|i^s*T7z{K3*q*tYhG~45eh#@r)moG<$!6~td85h_*dst#@&BY8+f9S^G3NQ{_ z1>OZX@Ck4q_y%|Y{0Vs2*8moPHDD76fIe^^_!{^Y_!0OC_!;;e_y;Hy8Jh$y16#nG zz=wbUa^N%I3*al@JK%fZ0q`sE8}JA47w|VwE^n+yGGiknEuw{m8$5|rDx+<#weklt ziPC|I?Y=&a1)HD0VJ3zpwWmZ|C?%pj9z`(#MHR0?rdm6fCQe_I9ply|3YI5dcu^(+0t@(Cpn5^ zHa7NFk9WieQVdwFwks3C)voC%HacnzVM|MP)Xa~vELFPM-)s(K)DgOQ%XFKG8JnJV z>+Ixy#zVp8=0cI64TC<~Q-(agmus%{y;!t03=nZFvs~U4tW*+71f?zYO|t`u>ZFN) zDQLL9)W^*8x~YY@xRyv)wQ7^IOa9er z_HFnf&$F)wX$DVoL_-`LX9AApD5+Rb3J{1~g{aotRAIfY#U1@dEISFRKqDwx9SK&c zxOn12eI#(7qKXgoWiAh8OyR2428w3^sz}q$PYV^(v#c<|o$bUh;|d5j%S^G#W8!&jYynj7Ch_`~@1tmmc~aF|B(UmE~<8)prYfoqrP;UsT^^dk(R)+p`)mX&2S^73j~{b;Qn=^JhBU^&r_p NbziW#ak}fxe*rIT<$(YI diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/layout_abc_cascading_menu_item_layout.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/layout_abc_cascading_menu_item_layout.xml.flat deleted file mode 100644 index 90bd92cb3ed90582a79365f2cdf1d6deed512685..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2846 zcmcImyKfvt9G>$dw%6yk6Tk`JoG}k4-nHYz@g<6If+7**C>Ay#(HwKT#hmBgG!d6Wi71TPfr>|KX8=Vy={+;`<No1JrMM;n@Uvl=eufX=Iv%2SPY^-fuzUr=dm#Wp3YIRL*cy9el zeQ!_JuSh4s+W+Le{UGowla{4D$BjaxLNnbryihq~O+slTQ7f)_dS81gfqu3!WsO2l zn^9ui7EP~LPFoX{T6HEyCP~zWe7iDk4MR5C_zLrj;>VFrcKXF|HZF;C;_Cq+R*Iw{ z>%SLc@DMNx%mQbD3h){b0iOb20pA0^09^McFo8X80q+4n0e=DgeL_qFbHF0t05!k| zTEIuZ7r-~bufT7>AHd(hc)t+mfmL7=xCguqGywyA0DJ;`27C#83;X~K46JxM7Nydv zICW~Zy3WbKz-osslNJ|Wmc}HGmqf7_wZko)n(ajGsU%U}9W>XgN;jHDR4N@iqaK)> zajYcz!Btx_X{hZeZpC+z^T!zN1k(2(8I{YM7f_JA$YOdrn;xmK7#qvPqP${isx$AZ zt+1?2%L*$N7B;;^wq+e1%df;o7)8I-0%=sDr7u=iHdAu|lh=)ZZ(k*7O#3bEHI%Ut z(<@OBOJhIul+lZ7^`uMeoxCZ zM7g%ID?|(q?!?knVt9BLmCP)LhGdBHYfmgM=Oa69#W6lDd;hAvk6mnjQZ{>ob!K9+ zm6lbP?tPXn^w3}~K3bKCiHXjjh723+BJZ=aUMu!7G-_KWu-Y*gq7xfYsKnAz)0p_0 zA)Yhfr-44`rc39$C$jmhz}1#Lw3`PU0DJY5sXYfQ<{FvW^8l`$%#KX$1z^Wi%BI|lGfGPP#_Uc=PL)aC(PS(!$rb{?Srv?Eii9HaHd z(4Xh2*Ejn7G1e~t9ghzWXE3JEgJ2{$)0Z$B2Y4=-=W?%$xkjeOIAD|6k*UoC+>2|; z)O!7+A3sCqK7}8rF{U5fr`wMy%(xf%-~1@&c4XQ;3(Vyjx$y0{`uA!t!JfYHTr$^Q z09aRQ-yH*Edk5Njm(G4=Y^*Dv!WYiDADP+$P|7tjHRg^F?a0Nsz55qAy$+jh ze~!!PM7|%HXFRU9R&Gb8-T#qO{(r&P$VF_uF)+68@cuSX#8!N3T-V(%lbCToGJR%` z^8XiV~%Va90E7MJ@615g16uuI09e55AX|= zaCQx>g9l(6G=K&#!7K0vyayk^NAL-J2H(I>a109YCzDxZGc)Vl6WUi|jT@uwp7Mm> z+okI4m;+a`a(O-4i0ihcWm9S`#TFMrc`asH8@JNv+1%WQP#x*@7dnUy>&6fMl$*`Y zZuF%#bhMOS-SIsmJyTbn<93B)`TVZjH;j$Voh*G$cqGrRxVN|zL$sl`oUDfhX z5yOUtjP6oW_oOz;;V$yBhurQMuIc)o=0REl^x2C{9^H$P8E2OuE`VcCF!hQU4)MELGO|z zJId!^PNt!wxX6xVF3I~~tZCkF!iM6faR&4Lyp!%Mbo4Vs_mMm;wh8RfAUl#L#hdyv T_-3k4dxPG^J@{QYxo3U@M@CWY diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/layout_abc_expanded_menu_layout.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/layout_abc_expanded_menu_layout.xml.flat deleted file mode 100644 index f1350f69478a3f86a91127f446abd88ee6ce58f7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 716 zcmb7BO;6)65Oq?Z-6}{>AynDBAn`A_@Dun4 zT=ysKoqcYa1HGV~=;e*ar*@Gsy17y);{EAR%q10O)Qd&-Sb4C2Z30@9r)+FU2X#H7<1?=QDNnoX#zibRlJ zZ{blrEz3d~`Y@mmiJVdU0`zS09=7HcqGWF`Hl`dgrlDWPHLZ__MaFn}KUbzM?z*^P zeZ3MYh-Gpc8{&D3^=#gs=gkx^gRsbr%nfFFaavFX=4_BIXcPE^x!@JRMf?U_$L(GN r>n(hit=YU)z{-qT4a+vRR;}kTdxwoR0c$qTa%1VwmD} z6W|m019togTR2X}sLBR$t>bg=@twI3J4EygXl!_x^V_O6j7K8OGi|~`mUWmJS%e~$ zVi{HIhv&l}*rxyY`|+K_-fO8e`&6Z+u1e-#DIVvN36A?UGm4iwsZ^m~oUkOzCD=b^ z$4MLn^WfE)n8zoJ#mmKFE`wM^r%{sd=#(>sv;S`0Ul;k|!Ei5&+23hg?||ryyB(!N z-o|(6DP1^3({@7mA6g&04?F>$0cXG^@DYfB68H>!0lop>fgiw6U_8Efey=!r-et4Z z*VUT(eO|_@%3_*Mg)EI!;k8sI6FjHEK;)TN@+g-yo5l4C5jXNJS4ezk;8L%b@LWrz zCY7l5CiUnjHD-0rn8vgP*S@Xbi>hFJwcKp2t?IfcJ(+Bm7~-#7XXX|STOpO%RcdH7 zvhht8o0Pg;qiPBDM)6fBDzsf1%z5W{*d)x^r$->Hn0~{WH8;8o{p&rw`GytK3{M~2 zSd-TU9&G)NW$GawTg~$3%x>NQIgR0-j%6CcX@W+xOnZnYRaSe^OVX6+*(**Z=sBPn>gXi-^8~d^GQee4Q*c<8#*uWu~1-#7jqN z5joOL;=yUtwl_=v`~UWP_9_!9V{eim&XSmo7m9nKU@mt9kuj}!ocW20vcqHM%TPea z6E^WZ+n(A_p1M=-cs4tl&8EWk-1*7e_xb#UGlkrLfA#oX6h3G-Ytmyy5v6*cev~!^ zl&N0C7Tu+5i)gg13vsxOp>@y&cfdn10cYR>NbnJS0@vU(_yWFypP++x-2;!n5vW!V zZBM3DsT9&^oIN(5MvcaK#24bV6f3ILcm5b-SCXb0w6PE)Qum z@|J0cP>UB_VeLzekPZ$4t?RT8>D!`r+f7O(?9}OOTIt|yuB2X5 zyKRg>$VH%OI5hK!tA&i8C0ZvD_4_;SbKz?m40gPWBE8q!F)x!8#TjcQJsqF}87dN& z>r|jYS}g@utQ1cj+&_)dh(1{L;ylRe(Jl114}M`(p!qqK;D7(a&!3esAK}-8<|AKM z1A|RmHcAc5^Q(d9WuryT4dWT5o0t!cXOvo)<9Lf)qtyP3*MXOhd=I0=-P+IX;o<%s Ud978Gn`?Qm2isb$J%8Jq-@Z%Eh5!Hn diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/layout_abc_list_menu_item_layout.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/layout_abc_list_menu_item_layout.xml.flat deleted file mode 100644 index 8de8d5f573d1a7df9e8e7ab9b120f5ca5734fb12..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1994 zcmb7EO>Y}T7#`axaojj*j1!g3WE2?-=uirT;pS>xTYcj$hxJGPr1 z5C`}H^bhpF4RPSWnM?Z*dgZ_m;K;QK&$Ay@yG>Lv*5h~PnRn*>oUI8VYBl^}v^ITt z98HZaN6ygKsTl?;oDQ{7!7$(H9JKoVT={?hU;N(wDpg5pe;avW8ilqsNu=v5+mVi^ zQrjdlOvh0Yq&wH`vGx_DwQKK=-F|)*RGvC~H6Z>7})Wwh}X);;mZJ9$_Q(ah#Gaani`A+D6sB2&MW zbI3*DJYWMyz%lRycnUlR{s#U5UI0y;?Es$vN5BJM4*UrG4EzZ^1^xp51sZiBy1*5n z58MU50eoNv`~*A(egS?378b6#Iz};f#n#p>8M;ZN-2-V%VjK0)+=*i)kzz;P52Wvl zUhh`6$2uP-YOIn(xnH8xUno8C%v+QWrR(Z&GEie9wzto?sZhGd`!b*2^ko3+G@6@h zw{L&)N{K|Pm94Y-h^3|5Wv#@@%01;vqi1T6b*yMMj}YV6TFu4cViCL8*(qjLI*ntL z-J0FBX3(+N*A{Kx#f0{=ldG$a3XMvJGnE+aNMCfj?lkr>HR@0%*t~Brg)7SUb)4!) z3O*c|De(|?!4Z3Xi<|)d1ju-c<3Na zNGYC%_@UOsi^Hg05br~*0Vf#CknaL@@Pk))?zOS*;)mAH2K7Dw@LYLUgOc2bz{dqg z$-91sq%QB_XkpH~_?|g%Wl&^6o!v;A&GONC<_EgNJwmo$k2wWPFEFdSRxP-Vq=ZR<9ets(agA|i%NYD zHar460&l>Mm*5@XpV*dAHi#2_`Oo=%oSAdt5z#N;!he|YtFp3;Mrq&l;~$n(TPpojKb3dOLnQ F-ygkztx*5~ diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/layout_abc_popup_menu_header_item_layout.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/layout_abc_popup_menu_header_item_layout.xml.flat deleted file mode 100644 index 4e6569d34ca5da841a44bc598bbec53ceba3acc4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1318 zcmb7@%Wl&^6o$u1FKLoqQp&Bc09BPxCE})~kYocaK&=#{3QAd86VEsv@U7!X({_Pi zgIFMzY}p~!h!@}mSo0P<01Nn!?MQ$?f)jl?Gr!M_&zUo}7-L@nS@lZ5kK>`SdEa%C zI2k5RD5Ig{OD?2#l#!v6M=W-$?RLKCzyFtCSoXtI>ePN5`%xN4c5|S)2&C=j*)?s>e!}e4l;hQbH<%xECvwiJ`yD2t0o%K#yy%rdpkBu)2Da8>4NZ<3z-xsHal1tEDHkmSP9Z z*_LYH8@95N#~FEKZYPQ4I8RsZQa|sZo!ePAS)*}_N7zbh+Kt*LM=Gkt^y5RrDx}snrrLD8Zie4C0E}{p{ST)f7(x*;A3k%d+DO z)F8q)V35tP$H^upj2=o(S qGtkc$apWoPELbiy@}yDzR3yEZe7QLH-|HId<9<-Rbl%oq`t$=h)N80}3036mxNK?KyWhzgjQgb+xm0)js!NJI)yZ*KL@^zOFIpEJF?go|D* zJ?X_NFCMJ2%996fc=MnK%ZuLh;E{_}UcBikzBfCQgsr3`lX`hQZ@%vS{<@Qr5aN{* ze&Ml>`f@F58AsOKY8=I_xEiRiRn^VZT**Lv5#4}IXgm8v9l-iw-H8ikJC zNTla0$CYkVrH)BtnAW2tNM}zwb?qy#J@3rdy``mvr8DQ;1@H9o^4#+Bf?D$2+G4F< zm$gOdB$)fZj@x$wzcOZ7+H>3}G%7R`eM2*q1J)RnMiL=bPq($F66gmj7GF zZPD~nW!f60)T%KjGD)Hi_}1#?rC$sQj!WW*nA;=7xguT2^*_ZJ zJO~T}Q@~-M0=y1Hz~{i%z<0n;z#qV$z$n%@3|t331AYMp`-GSTD!>A85x4@}1wH~k z1-=3v06ze~0>1$df$@GJ4gfZA0k{sl3mD*I;0xdz;6Cs@@H6l`@DTVL_!qDSunuqp zH~|a{%y~K%rP93EyLW#1EMEo&=DT!;bo}@wX-wjHNfdigCtTI3xsj;4N)qK=Max}L zy3sVEQt8?mb=O>uVk>ZQ} z`!lhqyci$vzHceJu&hkWYA%i)Tk#Uvku@|j&y9~TidL!y(x^mBU+mkrQgn%!n_EfE z8q9AR|IM~a(7X0K+G{9dBfgiTAeP47@S2$r7ccI1ihUJLo`lkWjlC@{T-fyjx4I!; zW~YnA#a++8jd~&OtAT8&x3%hsa(PvUDBo&!$%v7Wo646)w^2*pI$~&uQ!>-RK^dYi zv?pd~^O2pl;uy!#ZlAN;SkC4#wAnOl0A?whX<0St-eFBc51r@YpsPfTj&=uCq}ym0 z1(}-iTCtCzQ8#1)t6K&`_^W(h$Em)jQ0BVybl7+mr9tmDqL3P{1bq)T2-Y}xvT00w z-f>dgUx7^R!c{j492wuqZl)rTzCJ`VJ>9*is?yhuu)Fc?C`M{>y{3F*dt@Yk#Rb{c zW({4L3(fACn4HYt0~`Y#z7!b~1!8RM5tR#XOzdj%H>WX<7#mzKP(O5=EPGP69+-#z&f5Mz(;{T=w^$~Z?v1j53Zf;q1|)9 zSpaMGlc}8qUd%NzwOIgHU}i_AW&>w(jm$m21alwm$7d2_?ztDthx48U_5<9LOsxX! z%QZ4J`i3hrvm;Y`9-#l6OQ!b1Hd=2C{dt~xeWTBxVEzoy^>}@K3S;_=KSy{UZXn!p?9k-64(IeH2@BU3vD^yd6=dw6b}xu>DAH@OG7=#$=9nS&qk{Swfd1I)#ursh z_Ye0W7quJCH8M5!eDdON6FZAN> diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/layout_abc_screen_content_include.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/layout_abc_screen_content_include.xml.flat deleted file mode 100644 index 8988c6eea21d4eec49035a9ce9b7402de56e6207..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 896 zcmb7CPm9w)6rZ%#*4l!#f+E7=qL*dOxLcP^dr=VFi=ZAnhw03unKj9T$+UGv(4z;> zegQv(U&n(NKY}Oyy*5Ev5b=dy-h01!dGr1xV2phQNcy)kab}mEi@A&|>9j6lX$!9l zADcpEOQo;Q`cbrv{_pqAcl>3gUByprT2!{+;lc@(X)c9Kb;Z3CMU_~WSN9HiVloXK z9`J)iMbRXBa4aY4a5}v|olbP5 zn^s^yZ*1thzzOgIcn^F6J_BEXZ@_op2hhWJ*MZ&LhoVr<8Z{H%JH9rBvg^m&2|inC zhbr05&Lg9^klxrLo(mU~xibE&88z#6>nv=4zqZ0^S(euMaCIE6jaq0Q)@h$Ok?W_M zwXyLSQ_JGiI`amXitMeoCF}PwQ@wC@StvFd{dP{ApnKWgUg~{0}eZc1vkjAFy#cHVKS%_8+|FsOah=2N)2@G^}{;qdFQPAAuHp)tdthsi^NE9?f; z2>1!1wRC|N_&a~_bT)v04NoH!^8wBnpmUNoY>MgBL6obpaUUIT@?V6$01!u-;;0_1 iZo`o#?hfgc5ZxrDNz)dZ5Y&c(1UXej*!`e1DVItJBv4OOz=4Ccu{ZTn+iUG^8p??y z960yJoxj5WLE={4BwjUC?SYA&XZ&V%_w9I;5@YOP2@hC(CE=%PXno!f0~2Z?vcSkR zPegOC-tA6`{`-0N#D8mqHvUHyXGUedccgig2tVXuER1h8&&)vS)I8qu2Qm@x-lo4f zh`QbF?vvecJKE~?HhR5n(T&3XPJb}q{T=RWti4XJ_bE*}EA^&~d>&ez58x-zYVAL|(C6-SiFUGCyFFd)=<#jX z>gxVf^NJ?964vQVXNyq?Rc1wI1DS=%FcPd<x zDCNd;yM-$Cd44>e4kxc%hQ?~u>8{shHb}S?(W{8f&Q99E78fT$5DR$}Teh%JyyG4= z#%s!L7za7m=mDFbS6U+AG+bNXytnY98ZxS*J(?3=Ax~T#AVY3Eoy6S)mI{tMaksAENXKn}){=KR z+K5R5SrzeR9dstfe!Px6?Y{tEM8_O?;uZlCMf;O?+FAui{wi&iqEDA~kUsh!dH_t+ mouAJmCVg}!8S!-P3_$0Scl$j+JiX5G?t4&<`d+%`JN*TMUo-mv diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/layout_abc_screen_simple_overlay_action_mode.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/layout_abc_screen_simple_overlay_action_mode.xml.flat deleted file mode 100644 index 160885cc12475ca5df603b29657a789ca442b50c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1316 zcmb7DK~K~`6rS!PyRM+Hk^rKH?1`Xu1SIToBGHgYycnV;UYglH!A1;nHJGV@=%0{G~8;Dn^@`0 zJlo}QI+D=-4&RBRet)n3;vn3Mb_av!gTbEcN8xaP7{_9`FSy3un-t-H&PKhpPB)Es zUD{CSKr3atjrQul9x6J38=lSHqt5E}9_I;+9S_OP*w1FwlqPGJw#Oc_c7w6|u2<-J z;%w+uzz0qM;=chufM39GppEtWz#;Gocnf?4&Vftd3iuAJtQzy)82YmLX}&Y+aS%u(KwQ<)e?E6RT?qQYs)v|qEOoU7YF_% zjn1U?k5l_0%_B82$693aO*w;XYwQ0z-luYMidMf=Ss^T2UXD|1PA`p>SsjUOZzt9k zhnySCQzne>qJ=8sqWDx!ip#FiK#HxFOS{ua^LQkzj9y1I%XZ2WuooG=6bz^XkU%WOZ0^%*PH7L6GKag9{w}A$DJH?Z4 z9^Wf?=AcPv9mQC#bdxl39e@PBa{7q73oO+fY2xn9aC9d9$&Ud#kK_()Iuj#R3UQ0D zC?sSyN}{s!M_R6K9Uw}ibr*lxP0+Tl<`Otw*b(YbOveS=v*p@IMT#XUEP`^ eP26l|MIvS?!MP z<^)GL@ed#_oRC1`Kj0rICpdCKNZdFhaR~424`Q~h8pe8lvv1~``R1GNn~D(Ppn^ZN z=0+fo^w`+4@AMKURx0cnt%JUdSMD^s-E7wX{y#Uh-%nJW*q>-GOmt{l!&th3vK{Go zDzQy0!(^c2QF85uJ@5kswyxXP2X42!*S&e$*>i8~@9*yK@2Rfq^l$YC1KGbN?HIPt zbl7?{3OZ+-i@s}1$M`zz@f6jCi=Fe$_5X-HM~6oGq2lmnXS2C_GRz_M$mF&=xvi@l z9j9h0G`&d1AlNS7Y-F*ii3P!aMQn-3H6bn*Aw!(MEBfGdzyj_89|0ra3*Z~zN8op$ z1)DYCZD0a?3;YE94EzE73H$|gszTfc4uOw>A@C{iCGa)yJ@6R#1^5;C4fq?V!oMY; z-F{sf6X(IYE8_>|C{Rzzhn^ZKvAQ}t`(5p-Z2HPdrsr9ciAzfdJ0~HSFL-yJGry^*FBBK2mGKfC8tNt(R%x=FLO zRx{XQZO!Ph<7MyK-9S4JlY813GbSb;E75FD{KW730mIU2O=B4qHI6#`tg?WrMys3= zFN2nWW3(o?4V3jINN0g6<{NM^pEis5ZsRuxW~2QXU>m?5H8QnTfKLiFGPMn0GuOz} z&XqLo$;X;=xgXma`rH#wMcSzG{o$FoKDm~kt!&5je!w{QqaE9e=ySd7$*ZLLd1!20 zk4)cIfL8%(kH?-0`UH6OQzNVn48qdh0kT*3cZ{IgTR4vI02Eg^pX+;B%zhKnDOq|9=hJ$?v9iC z1_urtxNzhzKms8lgv5;th#MykNc;ha6Mq7H-+H%6w}~L_MxQ_Ln|W{Md-LYSIUz(b zhY#|SE4zNjSh8-{A|*q+RdYf=aQs8Brj2UXwC#IQt>S7=O>7ja)t=v(KhJ-fv)+qT z7+D|sEidvttK1Bw<0{LRc1uN;38fb`{IDHesaOr|DsXw(T5dSi>PmI>6??_0tgl~P zUtdvG$F8r{8x2`slU4}dGiWH^YrAvjio@Eml%q}UZbyaPiN3>05}9b2EGBl1AYX41^xnZc_A(XuL5rZ?*kg>0-pe%1784N0p9{Y06zl*1C@10 z2jJBzxxat4_qrCp&dzR159hC)4QWhhu@r8g6t+d-CBC!yu|qU zR=Q6Nutb+LHZFgXts>^;wjAA7UR?5Nt=}*8+M#w#i@^~1{u)@IA}W=wh&ix!jr;b2 z3Q=|C+uCU=Q-;tt{B|HsxhJ%IBT1a7R?qHK-i`%5vTNnhR(+ROK@1ITw`Eh^(&|u* zjO;2`8hxO4;w~Wyg?;2T9vd7?vLlMc`qA;1O1AQh3b(yTI|}vH^gSg82XWaCwCRe) z#g;L_hGj*#^=%oIlPG1|Z(B0B6W`}Fa$lczup#Xo=t!f~M5)xf>NQ#S50sdmPG4Q! z^xlynmcH&Aj!U)$mb3A z+uv`(4qf6DXqP!Gl@3E0)KDY_g2hLaAK*Yafg&HGbkF&3Gz z=rfeq$h6G>ONot48~bb4#=W71#_`DM-b#s$Oxp_pdo5sO@)* zsB#6~`gwu_kmf6w=E^k#KYFN^4Pte@)TJz?!W2|j+l_$d(UB~#lo zz+z$}r#YY>^Flr?2NyARl3ti&Uow5Oca1il8GZu9^T@Ql2xQ~E1ltn;_d@18*8NF! zkky~w=^f0^<^}Qa9QBNBURdM&DaCckT=zL3o0m(lW%tZGeFdN|nZ76G;55C1i7z>= T@vMf_p6!RZqz9z-w155!2Z2x0 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/layout_abc_search_view.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/layout_abc_search_view.xml.flat deleted file mode 100644 index 62e25e3982e3d045d8ed50ab12cf1d72534b8f56..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4998 zcmc&%O>i7X74FrKEv;6zypmWPxEvt8fu)Nc7wadkCS`LBOZ=-Ss3 z6(_ZO;dYROL9N<~rR%GjBb{xP)O0L^q#4HTSArN>8`FWt-iS8EV&of z*3Pf3EvZ%4X)HIIP1#tMwHRafx3>DA?N^Q#4|{IS`p}SWOO=PlPFALilf85da;7p{ zoa!MvT89Dn`N~tp=`Qd1VWR2{&91jACyF!OF6DZ<-i&3NYt;IuYlU`9R5@NOcgM74 ztL`~wp|yTvBVTGxbftel5<7LR9%%Hu-f!7X=sB5X4=XdpLtLfPXu~KOD~SR3#E*`o z8#gS*OuHbS7VjMt;>~P7kpbVdSwIS1ViMr6r+_(N0jL3Yfe!FJ;1|Hhz@LD>1Cy9z z9(W134K#swfgb?x0UrVX0Op5;cm;SB_!jUJ;5WeEfaiyWSOs1KZUYjy5Bv=H0QeC2 z1o#8+S72yFh-u(7a2fap-~#u69pGKyJHYpW4}o6;p8$UZJ_CkEg(w3Hz{|j!fCM67 z5BM(dL*S>t&w*b8zXd)8{tSEuoID^z1vm>_1V%>AyIv%QhtIo_C=?dO=;-1_G9x1w zC`Lz@?CUCDE0xPKaO2Q(FG;QA8aH|)icoj?<2`Zg z*kv{Q>(6!5 z)Krc*e7K*BMY-I^n5D$gqrK$gf)TT`y?nP?a}&*QqQ5-0W|Zgbu7ktVe9KdYw4;S=hb zC_R}8Cd6WS873gxYPYq2a|h`p_o`p_aPsOZa`{Twj-;;MF}KQFaH4ucwzhBrit+I+ z?6M*!N~P;w0F~?J9ui|?cM)ORlcse#fjD^37K~U~v8`&-iJ~yp)t!|pHje9dS38|H zH#$0`CBD*16pM|=6@Zl;6=)T21&QY>qqwye2D@nmtnMq?$z!lK;4by zE(_~cnhoO6A*Rz+q|-*=Y=?0VaZQ=sKYl#ZxE99VJD61ZH=E5wX;e(s^_E@Uc8rfJ z-}j=#dq?4LQGtu-HAAP9aA_PatuRoC4X)T7Pw&A)tZb)7YHn*CU8>a*T)b_WRI|7_ zVY?=y`{qi`qB=C>xfqVxxM|WX!9rdTb@bi6h|x)}-m6}W^8{H4?^33oEj>ADiS5+e z>1q3pqpIZvn<1{*HmbUhz0MLUm;1QeCRmTB+fAn{m8?=)q6ZH6AvQ^28{1Ojvn9gS z7icjt0sqmE#>j~YTdQWBQpvuhD~yjPoWb~4EGDQrUojc6@g}X|V*jy>h>$QxusCyu z?T1FAC&vu&MtG;wYN>=aB-kV!ceq!qWQ2IfOT32XbGu5V-B?C-n_sw2#kUJ%xUumR zro?fG8Q>9~(~uW|A@I6~XWujCeMaDFGY|DvfD(YYhAGLt3|z4sCAp1#xU1ln0gk2Q zn!kfQ32;3=6|`sYHx9{%b3JET>9~x05ec(dIHhn<>c+vN>PN>(KqYF@8`;YbLYp4a~(DGj8ZIHlKz35fJQ)w#M@hY}0LLsxN$ypE=Qs5z$z20j|KupMy5(8b8~5zIeY=OB zLpy)oGWJD)^HFjQo=He9fQ2DSx)A2FXMSmWwBwdW;}iAp$a9qfKA`3E^4x_5c6? diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/layout_abc_select_dialog_material.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/layout_abc_select_dialog_material.xml.flat deleted file mode 100644 index cc083973cfd7dd68b7add06ccd19e2c0211cd73f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1526 zcmb7^Pfrs;7{;e9NLdR4DhO1?KZ!=-E`myn8jEP6i4sNB#7i^XowlRXoz2V?<)jBc zhVkg#i{HVsCvP782Hw=?-EK{6G{kLw`%Is{^XHv+ra8t~E{7K$?}XyJy6Xbo2YzZEDl8 z=a++~R08T>2re|EN@b;TaW!0tmaEmJYIQ|aqOftP(QNX@B_0^`-E-mo%Z@sE+?$nA z@MmU9TDK#`i>Z8ZhJ79CWmRCsw4GyRRxU8M&`%aS^|s%J9tYPz0^Wi5;1l=^N{F2T zr@$h(0&amV@D#iOAHYZO348(Hz<2Ni9LO_v7F-2)zyrX60v43Z*ST{hpagEp9T^F; zu7p9GD#qsLYm5I(mMtySBH0mfTI#IEG*CU^Q6%G5y`i1coqDY6jV@ZTWs8e@ba6VN zcqg3_Yrb3pML@QRF8wY6<7BC&`BHB;5ITG2LTqJR2F|ab&cN*yYPv%eUPm z(Z=~Zt3FQ>KTT{y$IfVl98YhFa5q%q_Yj2wqS*L&dXhG@(&n~|9TpKPZY>)d3zbZ^ z_5EIQm@(>Y81uX)r+jZ=aR_g6Wd%EPrtMs^76caOvcs+4Usb3(0Z*ROi964`PP238 z_Kpnt+2!*{abiL?DG?F7haqJ{tLvTKdRxd=+p$t9`~E^ku8ps_d|?}vG3dmGhGHEH zlTE#yR>$*fI(dT|i?q`UVI5Aqbn8mC zVw?=eibc%eWXKgJr7OZlM@b$!ZX9E;b4A<|Jh=&W1Tq7D;@JnC0E0fo9sqg7U&Z4rv@Id9wi5HuXqpJ)?lGH;qS1 z-hM!Hl1EBj3D83xDS2aH8jwdy-XuU8sYgoQL2x+pNXa|&7msqE0yG{e#m#}EnMX=q b8PIlR^; diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/layout_abc_tooltip.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/layout_abc_tooltip.xml.flat deleted file mode 100644 index 71a786b4a3ac680a22f86b2661a9edc5e3e2f2cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1524 zcmb7^yKWOf6ozMQOxBkKV-fpY<9C#}th9`Jee`=FFLkZ7{|T0hL_I<@;(|TfAvE zv{J5?L1{Txt985o`+F*|o<<^!te2|eN6NP zD+|^_%c<3>wOe=WslcGqUPAmrDm(en@ijZG52Jql|9eBR?Ow3V|gNqcw3ZG z=42t$O*_p@Ms)L+~B^1V^BVe9B-JWHO6Ox1E3)MwOMzce&P~m0ZOG6^eGK zwtZ(!xhg!-9db{sa(k;gh7}4c^Zm16GczlW^n~Aw*665E9w=XPw-Ip1k$#&^Obm?i zc-WRco1Px`J8fakU#_Pu~jy!Ev{?sGz#0ynyS6Y$`d_DSi=3g<{cfi`Ju9q~wi)vBV=KkLH|8JW}$8 zkdjCFj{x#W$)oe6zY+3C$-6kjn;PO>8se4V k4X$w+9^%JqkkT4g0R9qUk2Ia!?cf>r{K305{_z%m1B4$mt^fc4 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/layout_activity_main.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/layout_activity_main.xml.flat deleted file mode 100644 index b9c97135461570f64cfa12dddc92cfaca4cb48aa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 976 zcmb7>&u-H|5XQ%KAZbX_0IiBD4#1^SrDTs(mAG&!QV$h^!T~ATZdUP9+iUG^NXx0m zJ^)7^0rfHZ7(4=RfWkL*d|*`xG0`ux{&qb7oDk6uz}DT&<%OLGAyqJ6Ot_d7(v*)5 zy8HWez<>Ymd=&4!c3yn8S?O&lK3I3=E2*@YnUKv-#i_MEXgBh*sB$f2RSEBu;KIUb zFYfASd|u?kv~DJ)4)Hmmr*xGN4VxZu{?we|AA%QP1YUwyU%gYPV%Mb=FKNO)(Aa?q(rW2SRw2 z=|cMP>UykffpO1x%8{H0OM83&jucJu?d^Iq6QxV+@6bB))s{i#w6*ou&71OAI>f~K ziFUy##P|EF_)MEw7O2--Jul2OWOyuOP}!uav$R?PlMEMgN zk|8~TTLViNf3Eu=)?1M7fi=V*u?HN_hSk$1eyp+a`(4ljsFAW~?Lnk*uJ6z|w$8L% zat_XQ+XK$*+h71V7kk#Y_gGuML*v{Vb$rUc=_A(qxMSlQ?9#Q~KYQe-8QjUllk+f~~e$5u#u z0)M~{@C)4dA$Z~>>()r*gz+2!w@DaEMz5(BXAHYxG7w{XH&5mB)K9q5O zIHe2!rfo?=g`D`YXY?~9v}a^4>lZ1U09r2-){>e&~rbc41 zl!&M@{UR;1^f@l|DorudPt(;ijaiASrR=Eo-`W@FP5oezOpKQOH1TvFU>a{n8NsxV zBe)NbB7pfYA;rf-Ow9UA0&Ay)E5awjXTlf4SHd^KcfxFT^mum}2yx`Y1&w=x=iyb` zqM~^V6t7*=svzF}=Dau|uVFraL*{dMYH$OSiL$zLM#I5D6+(L`r6=DS<;8A86t0n~ z{m?ryB*!sTEEZdX@(Rtm3Uu`Ddt-E{AW6Kj>l%-ZMcCU5e>4c=ap=ytolU3Oyl^(4 z4FH!B`9(8AbQ|sxk(Kb1)`)mah)HK(2A%iV>O1t@Am+t+LriCJX|LTRzC~b-ne!%p d(fIy^zow-lwf=@aqHFrl_b*rSu8jZy diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/layout_select_dialog_item_material.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/layout_select_dialog_item_material.xml.flat deleted file mode 100644 index 68623b873525f64306465b00279c820c0fb4e6c6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1154 zcmb7@J8u&~6otn&5ZiH{gohAK646A8hr~p&BP57O0VqYptD#s;cJ6uyW*^K>UQ{Wm zsA%~M^za|(siCE$hjZ;UN+Lywu|6NqnLBr8?_O7g5I+Eq=7Lp6*`AjLSqgoijj~xk zFrJbiQJx&;vm4EBcNqTP-#3mc@_9k7kgu{hEwWU$`%Y;~GE`wqh4fCPMU=UuSYDNp zu>@_e$dyQUyPfWx^{}H?d%fGeUWd9m++Ev^BDK4wq{H5SU%h>pSlsztZFupTs1JTu z#7(hP72?|Hc`8C2j($ULfyW>RAHZku6?_BV!7m`NrwP`{dnc_a{EnlDoFn}RwSGvZAN!|?viAI-9i_EN``Z+GvAB3nrZVUW=M(eu!zfRO zelyQWq1Yj9<8(gs^l=>XAhVgE5^t36E$qL z%Gt13lar^*gq?qDf}{sdJ>k#gx-xy=iaZrW-^Muc9moT5h zrwQf3aSbp9kgLYZ9%ad`eJJslsj?}59S2bwN4$P$g*1x$!Vgr+ zofT2qifx!aTHq~h6l{H-&$ncwvDkS0#9x#P%gb}i%ZsWZ{pM1$)e_Am!7bkX=M&UV zL&MJdI@R~Gf$VpQ)!45d#_kt~Dlv9m{D$oZi{KS#gOA`V_zwEvI|&|uC9nw&Knqy# z4txTi!58oi`~W|}A8-Mx$Xx>u!BemW`uY~;WWr`CI?Q4ec`hGr zI~8szeHgg?P#AORLRS1lEJkjoq&CUkSB`ch#7|c+l^*m$Uk3%k!qip1gDtdaf zWYubC0=*z>6AH=qZ7p4Z(4nwzj+Md#d`o`dCBmY1->zHKWK&yUe5BxLVP1DJZO(kQzFGY&4W24P1*5A;3E zWTDeD@}I!p2rMn~8v<~nSiNLPs{mT0ktMAPy8VWsO#t#EOMVo)oNHuB8w1yKjVx(Y z*S%aLOWF-^GuOzHb_>vFPC3Yub{kM(q>&|!dO+VdX=F*81l@j9(7OHZLc^z;y-Swf Ut$}N~Mz*)B&qY5=U3$^~zfm|p%>V!Z diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/layout_select_dialog_singlechoice_material.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/layout_select_dialog_singlechoice_material.xml.flat deleted file mode 100644 index 9986e1dd1d18fbdb66dbf17c3e31772b0982d738..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1438 zcmb7@%}x|S5XXD@5ZDjCL{VH#yVo?tQqk<_w`H8%>lh>y~l%c~d~(vnpw z{SkD$v`r`^+xN7z9zqAgygpV65AZR$o)Zg$+L1rdVZXJkSj>9xB$TXF$~Ngi%H?eL zf-V6;vTgqmlarTk8c{E92EIKbV#kfpDI~;tQy9n8V-=>^4VYQ*2WtX$8Vo_-!%XHn zJtO}){7u2qBEJ%V8^szXOIjJwB8@C*6)@;G32hFLA6fFF*u_jEOWF*$l4)c~qq=Tq z8d=h=f@_&ZmbB}DK6A=Jmb7_5g^@;yKdA#6o!xY!d}<_0Sbgrx=1L99X3mZcN-{D5Gh3@E}{Tgv-a_Nz&B=QwFw2H z|Kv9iLf%CgWlFe)ok z4os=?oOKZCqKt}l9w^J%_4&~EH~TJpzx~-0FAQrV-WEx2id>ABT1F|0P=*N`VYSRn zTeAT@B{n=zko~k57^y(EUnd|N%2@2 zd!jjJtvNbEqEA^Z6H7Zgo4PvnLxg^a&|SqddzLb7Z$FVa-lC$piiG7;JE4C6IrOFC zHT8P+Dh&plrm8gR1JmAKVr@AW!XV&GnsHq;4vS34@?8~Ov$54u5p8X4k_?hfU!zg| zyjGD-@R>~N_bX-^jWTJ&Bq*ik+|qDpRK864SmjLJuBm$NbgW)6ee(K98N<6qw;(sb zUyKg)5@^By@}KY4+IYT+%dKN$Rlilu$i1tL-&3u1p+n$2r>?#S-0yXsQ|DFRuRTcR b4WO56 {$fh)D=w0*AUrZ?}L-<;(izzW9P diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/mipmap-anydpi-v26_ic_launcher.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/mipmap-anydpi-v26_ic_launcher.xml.flat deleted file mode 100644 index 139c73328d78c1b794d30e79545e2ffa70193ff9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 726 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 JU%c_hzW}(~%{l-8 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/mipmap-hdpi_ic_launcher_round.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/mipmap-hdpi_ic_launcher_round.png.flat deleted file mode 100644 index b923e7a5b8e2b39a9683e7ca3a10ae6bba09b9c9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5111 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 QuP-lTbJD@80_73=A0Ge@U;qFB diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/mipmap-mdpi_ic_launcher_round.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/mipmap-mdpi_ic_launcher_round.png.flat deleted file mode 100644 index e2e8bf4d75403237bf81927e7846946fc5f4d134..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2989 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 Q9#(A(mR9>L3)vnh?GQ7kWi&75Slar=_0*F zkglOfiEw%6{l1wycjlg*-902mkeB@|M9F=P!oSAKYys3w~Lp*w-?mR+t1zK$IihC>g*ce z5@-*#_xAP=aPkxLxAXMzaDv+T_(1*r9H5?du3k_-Cx7U_c*KHT9DQ8>H!5)-FJ}NC znfBkrNe23lD8a1Yn}||NQ{C{!+y0}Z#5Z>RRnQH7+Q(Yzs>Z?d`_|+E#xoz4wlgF` z$R-K7lVWWF(HY~UjG!jts@&#j%P?1uckUq_Zu{0V;E+4n`4agO)!^6h#&L3gFR#Ojx3G#J7JE+T+LLNI$t~q;xy#Gbxv=Z7 zL;v`V#<#b{T(xv8CbM2PzJ2GLBl;5R6TucZ`EzRMP{C{g)6jVT)>hu!Bdb&kaFMZ2 z>DaJEij(%)@Tuj7Tu=z()}nlRL++;fMhTR>^%(qzZ@H5btwt}UsP&w|7o_C!t%*Vu3pfz<&FOX$rU@Y?UKsPM@ zV|C3{W2k%7vA3b->8neo#@SPWkGkk)^U>3*IX$?E0AvHV>o$bAr6Ri7Y;lIl9e!@S&xnHJKGH-~&OKdT0_~m#pyz+sM-FY3q**vwVxK+EzVEH+ zNt==t743AC8d69Sn@1-hAh z!Ts+?rF3-BvXi4y_F^u&nMpb&-W=%j5wnQL_O(O*BfLnO*NZM@J`?MTgo5# zGtmR-*ooP4@v>p(t~F(N8`6y4Jh+tFLkCL1IT||a+$v)MSxR)Xaf$zeA{tJn&wG?K z6OR@H1I~*m(Qx?z(@n`aPs934CTFNZ5mrLw<+~9!HlW&4<-#mX14uRH84o&}5f9D+ zBLqtosO$IQnLak@7!tCly*>7SC$q(+b?YwBO*mK&!1DdeIbS+iy;T|gBIT?&=eaeF ztZZ7_{-Y4hNd$kF1d&gHzVEDc!*gFI0wAVqsnxfFzssC-Rf^JQ1%vbJx27N*_btF! zqR4zqO~!@1{?6y7D(C@j1mVwwh@1Yjt-NfUv9!*PB4r|ADke4UIr(!KQ+v1zl5Wer zU;WF5`p<_%q1#lDoHb`_vpwbmCd4uJ<`w|8~XH!-Y5{kMd1zs`sYMhsIP2*kLmjXD4QT zUV`?U>E6OmR*$I0KOgUK-h#bTC4)2@VFjBGqd41cDJl392Nx$uMk?d4_BV71rIE_5 zQMVx1_OPmpcVUB)w8YbF~`4ACpA=?N9Ya(NCe|a@9SS8)` zSG{++>ZmsDukq+ffv3vCt!Y!i907S+b4J_z$f@5ohKilNU9blQ9xW`Ds5|nIH$g0G z6K2;Gkt032SbJm&z`a$^RsDl^%rR1Gnx6-{)7wES`e%k!-PyIUk;|E>Nw(O zKfhdIb}5Klxa>Kyjobk&o}WF~qe=}TW&2|uyqu7Z;ZuZ~CbZcEr;*84gsSQiqKVaS zXQFxCG>s&9R~A<&!!inGl;pYVj0om1k?Rk>pA0ygcj$e7_ogl#bAcN_>c9(V-~<9> z0;u2w6||=*gJHPul~u-<30kcs%!$s+;RMA>k-EX0gbWC1P>cS7EFx58tUbizvpQ1j zpf{@%!e%W-)0;|5W;~k8cs}iAwdgU+V@J1Yc^PI4y;oHp^P$@Xv7YgDE0RR#gS$cn z5sL1N@ARquF z$U$fqgx?>VrKh?T)e?VV{8XkjK`eUkJ}&)APWIU#b##sEotMXCVk#wVS(MK!GJmJT zl%jbLJIDnxA=jia5;#@N)$eTq^eL?U6wD|8g5C%r8%Bgb&ZB;x^{an~+Rn9szV(X& z*FqcR6(SS&5v(%sEKF=`^=GzTeh! zMB;2&yD}bR)|I~POc6hD%anTZm)FPf=%DDP0DCeY%25J}(&26VC_M=16=8cV7ihBm zYJqc)JR8Qf(#tY<*yk}PD#zO`4v{+Tiq;AXQ>1h#TR`7!n zcUUYqJ62N@EIHdr=+HVWbe;^qOj7rtRZW7M3f*?t@&UN^-Fw+MYK{ok#f)1$4v%c& zXNvR;rsqiAKfPWvg*Yx9>?6nCDvIf71>_Sm);kI1Dvq`YbJvOX^)9=C?gZD!%<@jb-ImVa3l2-gxKnh$)xsy=fjD!q)*zn;pvB96C>y?Y$R{GUI4;eo} z>Si&M}N5 z9FfoB4WbCY5Q4y`@AmY9#_Jh$3;;W2$r{Wlpz&$s*0#-qrR)20gfB>t&m$73ReL32 z+6U?VUmtYF)jS|E*=H^0Mvj#nuBdRFn{>gCXD{)Gyqz4WD8^1_BQs+|L>6g@26IEE z#J4wv+f=HtI^*6V(YY9lL>X_+dRXeBg~$kb+O9e^G%*tqTfOt1#lNSMx-=;%ZP$(jsJlJ)=O!XC40-9!$ zvBO|4RV8|qsc4r0?lw^d57JiXhwFL72oZ{;X==BU#3j*AKf9=WhC&;~Fn&zaxOi0+ zD&qKQq)I)ivYey-{sI?43_JG-sOq7iS<|d)*+S}jx*mE}Dq=M@cuY2T7;xVFO;6e|t(^5Q$+DA1EF-T%_W*iETf% zh$Lcc|M8;cI|jYlE;iEhG|r6yQf2SA>+ztH%U=pKLs|K}Sq8Ce!Ee5=KKsWQm*i97 zCh+OQ%$wR71xv1cQ_GafBATkbY?z;kT3Lf1zACjewa?7cln*IkBZ?qA=LRMdf;6*X zs2vTin@|@}@B~1H%Lh1ZzyPNi#ns_1g`%0U z!bDmW>yV>slgt>JQD6X(N-sHN&5-&L;=rZxF3vj)i|KkB4s)mRtSd81EIBYOen|f9 zY{yPpQSP~p89oBhHf^N zflC)ycn^90;d znS7vMjdy1fkfjjlpJr-8)t{8$o0I_g4|G4^_u~ZZ!n#)%S(31x?{6Glbq)4 zl9D4&LF9h7X{6)G-#9XQRc6PDLG)Vyo$5;!Kpbh_#To4ltEsQ!lF06&wbT5}ZAKgy zJ=wRf2Ny$G{%XxNo=q-=5YGhMrS*COc(+Cr4d4&K zc@8FZ;H8M3OGe$a&c2M;w3Il2kkxX}52ghQ@BWFTZDfuIgY(aqr7vw#pYNaG_d+YN z7#BWy;q#JWQzc-jyYvE)r`J^$W8QJ34$GK{r=8||@hvm>JzS`WX|Bm_#TLEPNr}6= z=yOG6UinbKCNJv@?N1Me@W(;q$UTX*KRAHeR`Z=gyF!%9g@Sj8g70H->8^^!{@Y|$ z6o%|Av443Do?Xnir_k#};@~{RiT#T2G1;Jwo}y(Q@fKym&~6T~t+Lthin&SppEply z6=eqv4MBzL6Yb82?&nL-POSkH=n_@>pHd0KX$-v_KuTzp19ZQkK9B0II+CrEUf=?` zginh+NoGqF@mlLK?zc{zgoyLukS7Hit0=cBH z4=Hu<$sD-L{I>wIDKAWtVxbu0zjxCz5}h=6XSuY)b^i%;iKAFhE0Y?yiQJbzU#@)?SCKI^FbIP zFw2jimKo0>=P$`>CJG!!=82diW6y2Yp~GL{HG=vyTS>Syb}lCOMEZU`L}|qb(Z6rh z@AKT3kv!+|daXp#vc=2D%?R@owYQ=X_)O^wS>0*pGt6cE;V3SBl42E#6BQS8y~pz) zu`%^c=MeY4=-#CLo}}wrC1**hMDlgMEXwt{bq9UpCQKN cXU%J3Bjo-R<_i{oGh+d0Y3QrhsM$XMAM~D|lmGw# diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/mipmap-xhdpi_ic_launcher_round.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/mipmap-xhdpi_ic_launcher_round.png.flat deleted file mode 100644 index 4771631a1561760706bf560475ab052fe6f2c2ee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7103 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 P$O5P-YbjMJScLu;YbtFc diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/mipmap-xxhdpi_ic_launcher.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/mipmap-xxhdpi_ic_launcher.png.flat deleted file mode 100644 index 23f13b26199db48c950d255173d06093e53c41f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6585 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 X8dxYH>`3nCWo diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/mipmap-xxhdpi_ic_launcher_round.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/mipmap-xxhdpi_ic_launcher_round.png.flat deleted file mode 100644 index 25814fa869dcd5a0741d0f50c16c62273903555e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10623 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 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/mipmap-xxxhdpi_ic_launcher.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/mipmap-xxxhdpi_ic_launcher.png.flat deleted file mode 100644 index 5ac3939d2f1061b614523b39404165ce1c022378..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9324 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 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/mipmap-xxxhdpi_ic_launcher_round.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.1.0/mipmap-xxxhdpi_ic_launcher_round.png.flat deleted file mode 100644 index 3152c5df6550a6da6c9530ead3804e4826d19af4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15340 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

geFBi6PtNUc}bde&@A_AT8m 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 MRn$_bmV<@=KV*W3aR2}S diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/anim_abc_fade_in.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/anim_abc_fade_in.xml.flat deleted file mode 100644 index cc7d1b25fc025e03739e7f5f7b253777546dca4b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 564 zcmb7>&q~BF5XNg4*|m7kJxTFY(1T#oUF~jLJlHqzuwE@={Wyaz+-72dU zMvVd5F-(B8%wlIiS+0$=w`ty8kSFShySZbf*`Gi?0s ze?9aeJJ0bIMnyCSMU578dDA-Aml#_wC&8kzkBIiH{rh<6FdK)9^Y|FLzJ=r^ny|QB z(7gdCw2H4EM}bl(#~NlZ(TaHY~fT2=#CJWElUz@+Wd0mbyX k1E)=V^-Fm0k21nK=IMtY`x{HjNfL9XN4ynE2Oopr8$wpJf&c&j diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/anim_abc_fade_out.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/anim_abc_fade_out.xml.flat deleted file mode 100644 index d12e8e075f968d0bebcc4fdee9a806cb197241ef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 564 zcmb7=&q~8U5XNJRv<5HjNpg~a9t3yOYTLAUFmK?YUJc{^X;!m4VRs8Yf%w*SQ=$l- zGB7MV%s1bUuPC0jCs7pr^yMIYLVbn)Y=@!Z2^gg*ys}aP7bWifG`bk3NS~dsj=o`K z92!b?7I-Zv16Bz~y#?bWTJ3JbOCN1is1xtoAlBLi~ecqzj l25azWldE6CV|-jNQHww?%D-#rrkBOYV~3ZKtj#fsz5(`BwTu7& diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/anim_abc_grow_fade_in_from_bottom.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/anim_abc_grow_fade_in_from_bottom.xml.flat deleted file mode 100644 index ce22e6e8ee6520cbbc89beaffd523143e4f4bbf1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1304 zcmcgs-HOyO812rqZZ{~5g%ybiT3jy%Y&xqm(~b%|u!ui5!Yb^7STbocjkZlmGOJ$s zI=+Ipi+8@1X`Na3O37Xr2>l`FJLfy!A@lj`H(QS5Y_{u}53|0R{mSiL9dH-dyh3w~9)IK8T`LqDIkD;=H7YU{X+pw8XVyLRRX* zK4QG2<{6C;o8}3QlQhZMIG#+#`!Sh5N~g)>;fSz=jgd6ie+q~`S0(u2gA{DzI+udy z!LZP}nIWVMdxcfB{vQ!xdTBnc>vm^h&)!FouuZs0j3w4|o{Hg128 zg{c+Am4=@ReGL2KcrTn?0(t`7QEae}t+2ip8&^kBY!BXeYQQE$HwNy-Ou@m+;m;m8 z>p>5fO@YIAcG}J}b?YxsJ#FH diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/anim_abc_popup_enter.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/anim_abc_popup_enter.xml.flat deleted file mode 100644 index 3daf0d8ea872328c9af7e513a90bcc9bf82a70d6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 684 zcmb7B!AiqG5KWU7+n|t!9wa9T3KB4zR@{m9@{7Fs zGv2(qDN#Il$-uC)!@PNKW|qsVo0ef1KmKOwkG5CsUsY0@J%EfB0N$gd)rJd0B@jwX}w zC_>Yd*)*OU4-tvU7zmC1k28EOa;@jnvS;=dWU1gZb%RW)at?shlm(PwoevS$n#;$! z*{0SryN+i`to#eR0nF{o3<`W%ja~8_DlWVZfw{!Nj@z;Kw0Z4r-#H9EO#9vRIxsIY z=-)Ns=%#A{73Iv^Ur^1o!eX;>#2KNh1R_PBsCv21xKL+n;h#3@-Xnq+%Sx7KMPcN_ zM(FKI(C_F6i+aWL&5crwaE`Thoct~G=Zz?~6tCqC!$@z_b=pDCZP_{;IOo;jjBh03 B*aZLp diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/anim_abc_popup_exit.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/anim_abc_popup_exit.xml.flat deleted file mode 100644 index 326d73d3eab151b38119faa013b1682552a6b393..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 680 zcmb7BK}*9h6z;g0>vqT7~zCSs07L-K~p z+`C#Fop>pbVmx>DXG}9Kh*;Z=c~03PLRhh9re3ZSF4WmlxTm$Icd6jnyp-jbeLrwf zE%at7==bXfv&!P>dO%(JKLavGWO##=msr}8AX<2t+r((rL@=m zLp$$UcH2KS*-J`JW9nf7VcF!44HN`=0Pyi%e<;ZowPpon0SQ-!p|m107c z>e(S;yrAY8ju4w>F^=LS&e%AbOvZ;1nLbaZ@#JVkSj@&q8tlK22(QY*0Y5#EfE`?A zQt-?l=33V?gp^@WVim5xheVi}>Wg*l_AcytKI|!~gV(?U=08+9mh^3neRx)^HRUb57o}D(#U~d#gcY&X8!Le2M`^`wV;vF2XO`5f)XOz%_n(1k} zeJx0=THLGorO;=vH;xX1*&U$g&>ckv`@#zAX|Yi?3KM(qMpFYeA$l}$w=?y4@NW34 z3vRlwkBd6T!Dl;ex0%}iTc%EPA=^Z~w5q<_Bx>H!`V*-CkO(_lceGg3i^9l=yJy7R P^*g{E;owd4GjM(bXb-Dg diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/anim_abc_slide_in_bottom.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/anim_abc_slide_in_bottom.xml.flat deleted file mode 100644 index 54732d85d1433ac61e0995330b392f6758a68018..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 584 zcmb7>zfQw25XRFMi4rlOPF2Q8Wk4cM3u%)Mh)O&FLm60zT>G3D{3o(q)CXW==Xr6e z024z_I$1v5-S_k7&E|1C2!h}z)1klk`11ML7JY;bU zDqr5r3CmfAjGz5aH#tb*xjsf=5uRd2jplT6RXf+L5wc!ZVw-gJglNy+ymbqYz0q)d z5uF{$1a=U=ggu5QW4brkajl}u`%Yxdm4gZlB3dzCl@ci5%Z;~f%O%8jz4nL9X!-mA y!r|y7OJ_}td(EG>Fs9M|Y1%}yU&f=G6bK0L{OvdXwZ%m*iLuii;2>?y488%e$i2P* diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/anim_abc_slide_in_top.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/anim_abc_slide_in_top.xml.flat deleted file mode 100644 index 58db4c551ce7bfb98b9a5c373d0ff927b6b3737b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 576 zcmb7BO-sW-5KUXe8azlrkQ@W`AT*m+(-7`~%)R_>)h z1!K{x-YcsWN@|0t07Nj^gGJ6@Wtle8E>?(f0sc*vh;3+&)4a$j%hL5aTcu=kQ*83} z^^&lhWytv5e@T;fDZ-CQScJz|QKLDXUG1G~wg_3zD6viYenPa@+`RQz-E1_To<%2} zD1jZs&*6aO*_0j(c3i9I@~$V@a^;`~gNRm)*Odgy53=-j?YM;ab`XBZjFwOLARLa4 v7FjxPVmt`ov{hpo?Qhd2n*WOIoTNZNfIp!9zrV4#7(_93x>q<#TQ|P}+Ah0a diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/anim_abc_slide_out_bottom.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/anim_abc_slide_out_bottom.xml.flat deleted file mode 100644 index 755387dc11d6df6f1d416a4e7407a636b671f62e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 584 zcmb7=u};G<5Qfthi4rlOPLMHD8IXw6(zIz|pb`(jPzDwv*FLv~*caKZ-~rfp0Uj5p z1jNFSlTOy1?(YBmFPHbLP7nk?IqCYs$EVMay6Gc4qgpCL*Q~ImD@3)gUstn(I;XFK~nj4gSaItl+S`cErs-iY&`UykNUcEH;_Ons9 ze-a(-!Aj~NehOPG5Bhv(sFSFp^V>#bA+>`I7{X8sxhWKIxl>DT+e#{kuUp*@g+cXr x2c@G?Cyi;V<>Q*fROtVOCK~<%emlt+l;Gi^_&XNgw36sMZ0HWMbXe79249kyzQX_j diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/anim_abc_slide_out_top.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/anim_abc_slide_out_top.xml.flat deleted file mode 100644 index 991dc11c5f6adc4b4c606d733bcb04b107d4a8e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 580 zcmb7=!Ab)$5QeucVqH8)4{N{!TnKC{Xx$)UonuRPX+=&YA| z^5DQa@`4-V(2#6xDOW%kWgBqBTWXv@tKDcqgj5jTY)r(AmozWuB^O0Lofeav&93IN za(X#tq7((OVfTO4>`kk{^xli-@gX(bqU3{%jra9}5En!>by?HT7zXb8wK=z+O}hP) z>OsE70^Zm~S*^R1;`qDjtg86Snu5Y0+sQHq2dcLs;2PDwjNP?)og|F!Y0w>F!S`; z3G3(^R>q;BWM_eEK^d@0IO;7JC(+jKZc3%nBAjGG<$@QG7t4anSw5f7ra4|-mNGO_?T)#WA*YS1MfTWh@tL$(mn~5`%t@X>uj%ua o#WtwHqfKwt-QQP#Wy%E;S_FKt{n!J~R=q4n9y`1V$=d*)V zgO>~p!#?KCd;7}rX>$@q(Xp=w;SuU9^k)l(iZ8&Zn!+pFdPMD2vlR#Bljw4oIr{8` zb@UA@eMwSoJuC^^(R{vO23cm#%9R6Mz@yl+;Nx}aEtBOOi{2G7lVck6dI9gLIo6m(NT z_7e9XCS$(0;1!zmYORbHJ7Fn9Bh~JhNf|QQs9I!?y$+vAi*?yLN{17YXV8m%-g>bO mYVc^&n|1g1)nAwbV?v8yUu-}2z_V2^iIK<7UQY5hz~~2)oVKh0 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/color-v21_abc_btn_colored_borderless_text_material.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/color-v21_abc_btn_colored_borderless_text_material.xml.flat deleted file mode 100644 index 6c5f07040eead5299b875cfbd53218ad8d6919e1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 620 zcmb7>-%7(U6vo^A!5J9L>O^`qc3Eh%Rkw9R7*q681UGL>nxw9pCL;+leF|T}Tc5&f zU&j|PEfu_U2M**M$oYQXIg7>Z(zYz?HSh&lC7yL(dazu9o5s8sM#tho{#1`iSuMj=LcO%>DER``O?4GX>40*bB>sDlrT!%W{Q}i v2KK1a_{-kyoO}1+rXs)INunY@n3u$*jRnS(Ya?@PWcD2!luy6don`$1D)78h diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/color-v23_abc_btn_colored_borderless_text_material.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/color-v23_abc_btn_colored_borderless_text_material.xml.flat deleted file mode 100644 index fef1373ffb72f26a8d7fa663ab6df400106d98ad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 704 zcmb7Cu};G<5N+Bo&ARglY_JT=(<6&Z;)kz|})3Rn@F|%d}d8P=X}mPTSOtt_rK!GCLQ} zw`P24Rx_0(v**SZw5AT}DuLF?tkRi6DLKHYfJ;hnSX|nR?HJ49Slz#j#fr|0Jzf*U zat!&CeYO>CTS&Fwh~%X)OOGKHM74j=X*zqGY3K?*YtF54RSn~ED-HeE`u?mOLJ2~I VNG_Gmq0-qkHKRPb#X8jA`~hjQ+P?q* diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/color-v23_abc_btn_colored_text_material.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/color-v23_abc_btn_colored_text_material.xml.flat deleted file mode 100644 index 7adb05b48c881613178fca8ad73b010705bcabfc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 696 zcmb7C-AcnS6mGW_XJ9ZY{!l@r;!R=Ae%#j03)#dA?*{6PHziF{*O|5>31dEhZ{j2P z0KSEHzJs@3nbrz=Gw6Xsa!$zieK}tyli97VY1(hTR8*njRpm$4Q~^$K%2Ezdfc-!w zeqK@HOS+bRj3ng|VrKPC-#@6@&pNyllnb~>=ZQ!Y=ss{n7=;+&ITcWHl!!3pv1oN+ z7%{3=w*$i=@le|vc_i$&2ZMgMjfZEWp*QGtaOj17$kpAPxV7r`HcN5WF$3>aFaldB zAv}$U>CB~Ejv*9ELyUx5^j)0B5G@~b^rB}~>ZVl}lu;~G?lepT9ILQub+dWpeCgm* zw`!53u{{GNU`+$DlkCvGDTkQP!#etpn7MM9`8DHFjQEp1 zEd|;TQaS3=B$s6wA!356$L}<2e`m4VJa-l#C?;`Vio*EOeY#oqb+S_5D5Ks})Z3;G L^6fP9N7KFmZ%^3_ diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/color-v23_abc_color_highlight_material.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/color-v23_abc_color_highlight_material.xml.flat deleted file mode 100644 index 05862857c76c5f49e904f5917c986cc4643e734f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 776 zcmb`F%}T>S5XaLt#kx>v1AdT`#DfrMwjZ`ld$Bag>f>A znRXSXNKug>W>sEFd;1mVu>`Lq6%yX@IFmes-b^6ED8vZIR6-?CCL=CV+3Lb5VN{=9 z2S!8UqqaZtNz`u-2K{au506Jff6(jT$dCF^=(l<8*0S6CwG;0lWrhKsOfUjlC?kR= z#ByV$7GnsdZX!j}EAk%ZDMX8TE??yAa;<6CBxMvUF5J3R1qa$}v({{!xo>6gTDHwZ z(bTyC8^~H!#1=8Kk0vBZX$HR$=J_v>E5ejG*PE&5aO}gAVu~?RO00;T@=OWN0<4my z-WG9!jg;$B=~tl!hv$^orV{t`ZxS>^Q?{1SJgtWL6YoxA;>O^%fcxL$pRd2HF1)J? NZ(Ajhhm+5R8z0w^^sWE^ diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/color-v23_abc_tint_btn_checkable.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/color-v23_abc_tint_btn_checkable.xml.flat deleted file mode 100644 index 3ddc2627f322983f9ec813987c3f18a95b2ec654..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 840 zcmb`FO-sWt9L87I;S30~6P4;gdMvD&d+of8DxO5~;Epn~Bz1LZGmVFpL=0qjvzq zKJii0ANVBfHhaBptBL!aLErDS4{+#*T`2U~%)YT`wf{iy?qa4W)Dy4hxRqjuuH8{o~b%}CMM zIRyn|tqNlEDYCbQxz8bqWSSWX(zQKf zF-U!?wBLE8r&S)QD50Az{giV=4dd=P#fCQFMA{8iui)#&i9m$DN*^tbA#J7Uql# zh|cjuC7GHK8lyQ=&e|`t-C6T);8;>2;U%ADl4mfu5Qs1eF~UEbvATx6$0RPyD|o z_+z?_MA6iH2WpgcEW~D0}&dc|@B+|ChFN)&D!^GpfOK4?P` z^WN4fw;>f$bV9Qn$hBg`B-JN&?8d4Aj(zKYH^G;s0jIS@tb+OVL*@vpg_7^wx<4Rf^U!K^>Hn)UlkES%U|`+?VT$3 zj{VX9VS=xZ$6YVlFAMJCKCgtNRmE=EuDk7ekt&`<@u1*sjY(>&X;YFY>$mtPp7cY! zdi58KwW8vwo*W2C2J+s#Hxcb4pZ|J4L9rrXXG&AkKA0M@Y( zD^ujI?9@ElB$McZQ4+uBy~Ac;m40`12Pq{!%-G|F5}X}rKN0hG8^J9~g%q9AqAJL> z62v6ciXFTC-2lhF^IuHx{As{{s5#;IMp9DO{5RdDo~SPjt-JeEch@fcb8uF-{kV~} g)<>t-es?OyD!bLT6HU0R2^Sm_RLAgr1oant12BFVKL7v# diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/color-v23_abc_tint_seek_thumb.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/color-v23_abc_tint_seek_thumb.xml.flat deleted file mode 100644 index b3e05f31f42484aa6878b29569324ac63da60bbf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 664 zcmbVJu};G<5KY=f6iY>I7=W;#j*%L-g*Isy6cBp{kl2E2J0#SxE8A2^Ebt}#3OgGg z!pe#hwHp#DPdfSTtb6bL9LKY3+p?@pywpr#@Mhw(Y#M+gESQiG&2gf0t`kM+BGK7n zF?Z|l_Q7Gj`wVXsl?pzHj4Q!ma4!*I6k>!ks-TvLt5nEB^@cFb88v4xfN4k~)Q=_+ zNk{$hcr@(e@N5!BFqpJ~0ELa2;% zfmE>W2UrvkEf*E(y64rJ9j~b^_clg2rhK*iJ8=6yAO7CjDDE4@UDpOx8kT=zSwFL(%R2x7 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/color-v23_abc_tint_spinner.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/color-v23_abc_tint_spinner.xml.flat deleted file mode 100644 index 4dca5fd1ffc6879233960382a5393f5d682066e6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 900 zcmd5)!A=4(5M_al*n|XDgJ!)Lj+?MW5O(om(0DQ$4w`tw(spIF+iu!Q^i%v5Px>KV zx%vy1b&VQMc(Tc)(@FZ?yf-r(jxMZ1q3{)~WFF=`nRqQ`X#q5_U_wGP!DAhBJyvPV zIh9W7#oF2~H6P%mqEf+IG382d=-)_07=;+&DOFHQ#8o6@qFNmo#f+NU--A&=Levfi zA&GkJe!tgg<6wUfg#GRwj>4!1rTLo?w`QI061o47Fw-7*w!r|bAx@--iQ`SRP7fed zhB-mX&+9%G2}J2#hMCvgVx{g@6lD}^A-$?&gI#mna;087@!l;kx7>29Y0^9eE5JH7 zV(ApQjl-PhfW!(-7$w6+y?M48SZ08`eTcM{pKcrruBBk-#!$qXM=QZql}4J5DbE^m z?FcbNjbf)({%L?yd-UcOc>6NoKlB_4e6J|Ud;Xj5)U4DuhS9z8TlYpS^{&BHKK9W{ h*4m$w+F72|5bJnmY$t|r(-5vZ7Rb_Iv4UoYKLEd_7h?bb diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/color-v23_abc_tint_switch_track.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/color-v23_abc_tint_switch_track.xml.flat deleted file mode 100644 index b21e73e29d8b468d04b53708131fb1f7ee8e54be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 948 zcmcJOO-sWt7{^<;;tULG6_gG^dMwyAOlfJQ8a&F~dw*JaFH1@S@x0 zM3U4AKml3HKy(r#yX1Ry=eSs94s37r=MH;FN=n|i3W+2ckqn(t z652+Ds33~bGRr@aEpzO?>fm`%gF=dPV0Hg^ ptbogsUru?~e)F!GvHPHdyTy6`;fj^rb!B(O(m|dcO`odzlAmyuCCLB) diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/color_abc_background_cache_hint_selector_material_dark.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/color_abc_background_cache_hint_selector_material_dark.xml.flat deleted file mode 100644 index 73ae94046fcd3114e2d0be866064e6dfa0f8305a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 640 zcmbVJ%}&BV5N;77ZejxUVtUbVY+@Hs+QJDAdesBQo10;GODo$h*mN;B0V1nc7yT(RAsZ*&6eKo{s zF1UTe0ZwC$NI1{>5~wYR~9DruOa*+S=8|o`e9U_C(5-%x|S2G`D=cPII5W*Le;IdaB9a9|TjA f_ouZ*odqvQMnhGE7U diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/color_abc_background_cache_hint_selector_material_light.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/color_abc_background_cache_hint_selector_material_light.xml.flat deleted file mode 100644 index 6ede2b015c1878a5be0d1d5bd2a72d59c5ac167f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 644 zcmbVJy-ve05Kj6diY25rEXY&UF%ofGXp?qo2UuaCVzgY_X+j;lvW>*Z#uM-eth^2H zgOjFG8Oup0-<{<9er~yZeDXcdJEUm1#>J1zk8e>QypK3C%dp za%r*Qf>WzBE{NqiCjyInli9$#Y7Rbqv@%>9^rA9pltj@+6DByS{u^X9ktS8TFxO+0 z=7PI78lg012^l7{gr$?=bUGOiX?#12lj+Tfrb#+Mnj7>_UeQ}2N?q?wFau{qGOcnJ zgqgLwIYP$CDu{{dc|=u#$ZlH!)-%}X^kC+XUHrS4AJl?=91A`EwggKq1Xf6&Dt2G2G7hm&Ax e_Ha?VG~cVJ4!k3pOY8719o~81gQ|>6BfVd|0LKgf diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/color_abc_btn_colored_text_material.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/color_abc_btn_colored_text_material.xml.flat deleted file mode 100644 index ec9a3faee207a8412ccfd301447f0b77464bfbc6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 740 zcmb7C!AiqG5KU~0b)i_Is6-H{h!AMDt+q`oD6JW|n#LX5NlQlN(*rv~PP~QGq&d%GL`X9r%ngj=}R?PbO|2k-(K? zF5MU;;So?n+bK0(bbKoa7kI{|iC_t~?>PjNU?2P`5m<6aM96q7njIWQl&IToreap%Zp7SG5apu;(#VywPhJ4bUni0cTNQSW_v}A;v;c zh(Xvz-u79HA$`cfi=4SqHBbkYAWe;<|I3>2C|OoxRt2HNmyBCAqk{I;G0WAB`kD2q zqYvFIN0P*iE3_!4Q30Ax!Q4GBhz&tXj)O>mM@cZs9vjzaiOGygzCUyCH)1B?MJDcq zM=|i{#&{{vnvhC{?q?bX#W}9y7WQPs(?qS}9k~QgCmo_EIz?&z(kl@LS zSHF=*V^?7w1na@TOWwR8Pu}O3%;(n&UDLF$xU8#%8qX>oYDKDnZpbL(5G}(XPBIxp zjFS~-n+yjjl7uIS1{m?Rr5)FuM;+b>!UeozaVA&>y%k585*VT|CIU*1GNBYwaXNre zLW!EaK8(iLM?HVy<7n6$jfR6>I6j|@{n1%JjQnT_xjOsHKD_&ss@B1~0VZG%Wtg)B zTW&06egUCSZKOzeW!(!|3Q@i;E+}hut=YDlf>07l#@&|H04HkLMzd{Rxo$zTC9SH=XvL9z9nr?aT0Uf{7ivn{5dUdfqPQf&#T-Z&r` zT2g{-L-Gyzn?&h!E1_6grm>6mz?`}-I(X7cv=z;7(ROyx{u@$d=1`g0w{)P=BXj!s GfwT{qBop%h diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/color_abc_hint_foreground_material_light.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/color_abc_hint_foreground_material_light.xml.flat deleted file mode 100644 index ad0a30ab4e514ce8a91e1db7f159f2a4f2b0a74a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 864 zcmchV&r8EF6vx}H!xc8Z{*i{&UU_BUksiHvQKlN`MT{~I(JBg)G?!t_ zI9YSH$#Iw=NqCBANYiy9ZSA<>KI(8O2p8~{CAnZZ^w%6=N??Sdga{}(%7v21#K{oG zDJ5$62QZ%C0QG}ufa6hrJRS}E(d2A83C5>`C=TKgx*xF&qT;U9uWF9b>NqVyD2XKFUfXVhu3C=S>R1=vn*m-8$4n*3 z+#66s)@~wNB*^K_ahj1FmM{zDOAs8ESKoNL%X;!99;Z9sV)}7R?xL1#TSztKkmP7Z z33g1$H{@>;mDjC=qG?;^F5Cla=Dq0PNw476biak$-G%#)P?eoSWoO^kfl808+2<$H FJ^&*57TEv* diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/color_abc_primary_text_disable_only_material_dark.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/color_abc_primary_text_disable_only_material_dark.xml.flat deleted file mode 100644 index e854aca79aa1ea139341801fd8488057cdf07acb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 656 zcmb7?yH3L}6o!*tM6pz<4GYSIIxs{cZVPQwCR&M|0VW2^^`$X&;>tEs`xK09JOe9_ zz+2&jRH6ezj&x-ENcMle|9G)@c=SEbJLIn64lcf3eiTI)U__Ku8sZf}TP-rI_sFuH zMN}BPk_@R_?ooy<(*jFGvEBsUd2{gQ!zaVEfiEh}jmlxX)|g5L2_`8s&}y6;u5@Ou z#*hoi+!~J{pV0&llX*hpYj+gyGFh;^H^Cg7;GAkD zXb`2=Zf_wpuAvN@xT?oQWe{&SrBqc58=ZdGF-$UIm5#bW8(g>uTb+LIKKk;(rysV2 zW!Zp&8qWsp5+#Ipzep=B)~Q9#7Pi*vHKzxc>9NCuWi6Giv2H$y<;B2g*ydOo=6Vl$ mt-mNiPedC)Dv;+|5*5hhzaU3H#A%;7?bE;q<#t*4>v=!qcg&Um diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/color_abc_primary_text_disable_only_material_light.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/color_abc_primary_text_disable_only_material_light.xml.flat deleted file mode 100644 index e2bdb7891bbd2ba10913dcbe2ba1a2d2a2617328..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 656 zcmb7CO-sWt7;fE$GcefdMS7B5gn~^s-PU<>igyos6GE1xYiB-25@7>>gja9=1+V@E z|CH(MKm`wd;U&of$@B4MHoLv^JrJqyOT=d&9JWOO;EbB#ajtQ_dj4BxeR%jit$y7Upya zvw}0X#sip5Xo{0`n$m2PjK`y4LMG?aNjg3okSxtcP`kVJCBp!^j4_vtM z15L*fthlfTE=dmLo^x(8nOxuap67knUBw+7-d(+JNC$LGlu#POjHFAQNzhNJWow&C zuuNwlQVMzzc!$-_vyX2L(*{4Pd2UpW;|C2?Fie2VnZZ^=Zn)CYoc1x#1aoWL!+b;& z=qBTY@!?PaY2_InX?*7L_yq3a4FI6-~dyrGDG8#m4YnK-o8|OfR ziAz2vN@7?pirys`RvPWFVVGdVDjhY0Iy!O)YmIhm8h!Za%@1ptWwMi^9oh!|E_6&@|S)MauG`RaoaB40E=FR_$ksphcq`@iN2xP7-B?lRq;s W4lD8NLpb>ZC%+%~sMt<7)BOZONx<*` diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/color_abc_primary_text_material_light.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/color_abc_primary_text_material_light.xml.flat deleted file mode 100644 index 092574bbfa3bcf715a64b010d16fa2f18c988a4b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 632 zcmb7C%}xR_7~BHM@wv+UmnXjErZ*IdN2)=8!;}0J1zFya)2RI^HYJ>2cWJ@CyHcy#jE0-zk zm=RcJQY>-@gM(W4IYf7s8H?_9URYhAWMMFs3=vFnW|1?vuv{BuPX>q!$^4r15g*eO z_tHs9`LH({4F^3kKAViw(P^LXln;^dcmL%gSt+^p{89rGu!{?7w4gA~om-wGWW5Q6 zZBp?G(F)<^L)pIKqMc?ZYFZ{4aoWT!*Z_wfQN7t|U&S9GcnhPta7=Y)V2ie}QQD7= zFTP^@8YC4K&n2T96YXAZrO>j@KS;)kvRBmLSX$f-{tBtt64S&^(`FInMaOBLgH6mC7ZBa!ND?G)5{(6m z6qzW;*jVk z?KHdHPP>VF`~6g6?esakidk}!f57k>K~X1aAfWbt#V=erEyvY+{=JxRmnRjK1jp r#c%w_Z`ij!1$X)6FH2eE@Y@UEGrfX{>8Y)2+f~N|)AaCX7YySYiMsCt diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/color_abc_secondary_text_material_dark.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/color_abc_secondary_text_material_dark.xml.flat deleted file mode 100644 index 63553541530a9b4ec1015cfa9a7a40346732b880..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 632 zcmb7CO-lnY6x_8f)Gh58dER%kEq8GB?)r5Fx$QXks{31q1z*SiZDL z4wmZ-Wa6MX_V#MsXP?{}t_^umX<<}BqI(TYazcTo+z_jwFhc3v91n=dBzJ4nCt}QE z=*5$miD7Rv8V-7Nd^#D&qmw=ru^1BV?*30kw9KW4UTSE9wxM8JWekU@wTm-CjMI>V zi7GszDkrd*m+Tc5Y&APU({RbDRXS|p2HJNO)SI35W%%KvH$SLnmgikS8_?oLsXjP5 z|8lVwB+CrUBxk=9?Otp&qGhamkAxQ`RnQP14R^wEyZ+M$Zi{e%(#pl%Mk6X0hkv-> W0v_esw{QY>oq!$eqjGz-O865*vcxO^ diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/color_abc_secondary_text_material_light.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/color_abc_secondary_text_material_light.xml.flat deleted file mode 100644 index 8b3a067bf59eccd0bad31edb715c6ea81210cc0c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 640 zcmb7C%Sr<=6rJe%2?#!YnODrmI2ovZNENAG^n$Slu$3$(*n+$;?Q z{floSTVb-yz(R7im1^&DCyutU?okq6l(T}S0BN{WjysLtMsQ~tKBBC$0XtDtHctMq Z!38|Y?Z4p^95@C0*hl5|dXur|eE~!5#u@+s diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/color_abc_tint_btn_checkable.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/color_abc_tint_btn_checkable.xml.flat deleted file mode 100644 index 0e387b60ffeea38f8165fd140ca50e8f4c847e75..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 884 zcmb_bPfO!K6i;l!)`3Ddx*~B8lFLHCOzqk>^{|rNix-z3>TQ?uIy2cuCz&ua74fSG zp2VACozQ;K`rcq$GmyWd%xfNGjTkg*p_82^;g4OjNBN#U#mj zI?eTTrt>M8Gja|y&RlD|;a}lX#iYV#VxB9Jc5wF>D zJKur_8~wGtW~y1{AEWo?bRFQu9K5Zgn%E&tRoPq`mwx{Qtx%NfR4wzik3ehr)W07h z*HZAGW(2_f?<=KiD-D`WSzZzHoCLUHrreEA^WW+>I*Z`eM%T;g$18!9!I@Q||@%*O-olSUy8;=cocZB#A_4jFM<>_g;bqMLAa4EVp}vloE^1 z9rH{H&R*%}Bj!DC6mCN*r0A4pC6H^yh)Jr;-LzY))o9-Q6I@(hua6t``u;*9 zX!)ytb-PpN?%1#WD-(RZKJI4HzPI3BJmwXV?9{P$?8!|OiJouxe1*DOr|xQzyaAJH W82#T7q94*joo(GQL3uowPsN`{-}KA? diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/color_abc_tint_edittext.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/color_abc_tint_edittext.xml.flat deleted file mode 100644 index f78031535ee0341b25c0eeef25c3a28b155ad03c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 940 zcmd5)O;6iE5Vc9HhLwbL#ux#rP)Sc6X|%H=&6{~|W;i@Lb{)rg_N$uxSi7|TFjs~SS!GHpP2q%% zFwJo!c#0@4(0A5qtqJ{Mgf{d{jdP=N8l7t3QcwnLEDS{rxk;4H%w~rssTB5&wrJAl zF|^}B%#&`r*XwrLtiL_z$GxvxEQymY)wcGXw$Vi<$(=_A@6#kdLmuc6 u_wrlbE6wfj7x`K3{Aea=t4*!{xv3$;^xVqMZNpXDaNc)G8TP05=Qxjn4ke@j diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/color_abc_tint_seek_thumb.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/color_abc_tint_seek_thumb.xml.flat deleted file mode 100644 index 7e3c046ef1dc84aa63fdee7740011a8471b770c8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 704 zcmb_Z&r8EF6mGW_XJ9Zh4_Ys>i%?jzO}BPCDAlvDgMzo3rKzn;o04Se#s9-U!vD;x zH!r58f)~+&4<32%h41^`k04lFnTBC}`D;Tb+FrCb>KN=3&bUB$NkWz8DwLG2LY1tu zB{cS${YP{ysgUTNC%NP~a__&SBj6o9@1w8s4Ho$AeON`x?lu@F%a5~TehuZ8`8+K2fcN4ssb}Lmh>tBMu zazYEUBEj~-S>4ziD-!dZ-Dl?(+|)bx_olVrt`^*eCa6NMyoX_Y0+6}b6#xJL diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/color_abc_tint_spinner.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/color_abc_tint_spinner.xml.flat deleted file mode 100644 index 7e28eae624a5753db0f096ab40df18347d230177..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 940 zcmd5)O-my|5bZG;j158@KakmrSB40$Q6-cna85@y zlXhf^OiHc;v|ejja$>kP)(<=bslYGA3fK3+TKz}4?@C&&#Gw-( zMC;p3aEr!*9!VZR*S0O%18duAJ=5HC%NK7XlBLVSjpm2>k|Ep(Q^6 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/color_abc_tint_switch_track.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/color_abc_tint_switch_track.xml.flat deleted file mode 100644 index a9b296856aabcbf1b0ef1fc4e9e2643474ad4291..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 980 zcmcJN%}N6?5P-Y3)fy1$wt{RCWG}*koBr5#+k>SFg0~`iE-}e=*Jd|MlKS%y9=wW= z;}Zy;1fRvUuBaEa6bFV(hRn}5nSOt8YGg8*4}Hw)iOgl zp~AsX353UHW;1Kwz%xmOgcm%BC6A#y5{NJgF~R|rP(O^N&qXA6>(CDw)u&s7ew%ox z>UBKgH><5yvtGsRy-wR}HEP)R{3aAS_J`8$b;Q8!GU$L66cfQiVmg6RNf$z?>qbbr zso%vsf+!i!GNwLjsjv>}Ad8a3-1$9h7flqO##jYO8O4eVXU)umZ7o)=U>5hCR|7m7 zRxVUDvYX(qIn6v`Nr0?u)vehlU=9K^KO2s<)k~4ONGb6?u_G?%NbpHa?1Q;-u1SRy z9nu(`GfJ$ykC>zyuvE-_9#1#)4P|66rvLx| diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/color_switch_thumb_material_dark.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/color_switch_thumb_material_dark.xml.flat deleted file mode 100644 index 7a49f2a72bd32569bee94be70ca96cc8f712d8a8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 616 zcmb7CO-lnY5Z&zu)M^5?CGNTKEYE!Yq?ehdUf6=F zj8nV9!EwF+O75Jnjy#&YbfzT9gQZ*v!YIpyBi_=|Nn^D;9T8b50cSEKa>`RWNM|XR zS%@zXvwW9IF57g*B691px4wTTYtig zCUm{35^sG`t<{ZMPAI{=v2hzWQ4bI`THVe~{1u|lFlrQD=zfOwNQ;|Q;Zc0~hX7tU zx>SPicCvr97eU*3m_sJYDpk~!R5<}<<4)tZ3f$qbM(|N-xZjIntKsA?4JC{dR$ylr Rfc*&A4{?a9>-DC&!8gIvy$JvS diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/color_switch_thumb_material_light.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/color_switch_thumb_material_light.xml.flat deleted file mode 100644 index 137a91ff1ab086065e2b52b7ef8cf12d3fd719ce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 620 zcmb7CPfNov6mQ*zGcefVMS9ZRtk`VRZJj44?CwFqlQm0|HJUafiRjI5;mx}TuYNz@ zN(GgH?7<_+gZ%!y_oma!E8p|H@4VT92gEz%+o}kG4wzQj5c?z@%MzD8=JO<{jvGl; zqU0iT*xRdhU&yuP#*%xT6;>A{S{RxtP8ekwx5OD*SfNdBj|W6Z#o>(lM2ypz_TovL zieYaw8V-7Fd^#D&qmw=pu^18qfBzK_J?9F&*3blP(;_umrZ~);Tb>bOfjy@-s_GHb zIibsk61S=aTg^_;v|MrKvg`Yn9@PoQ^Jn!D24PbGj)Eyk1uhE}M zOXrHGe>&N{*odKJ9SkDjMTr$O1XY%UZrrZ_w1L|^ERd*7+-^isnK)c$qJVM24*XsQ Spx*`h9qgm>I$O0D_UH?uD!%&w diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_ab_share_pack_mtrl_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_ab_share_pack_mtrl_alpha.9.png.flat deleted file mode 100644 index d3a761a8000c9ec7bfc7612583e797157bec10e7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 504 zcmZ>C3RMvbl++xrLdrVRD*9 znyG#fP%q3ex)~`2nYv{rcpar@saKGf&cM(a;OEZECB+5w7O$s=OAwHj0AUUmAn8^2 zwHU<7EAY<&(ilJiD6&jz<7yyPl2;It%)r9L4-zu~Vsu~u5nuyS>_99C#6m#K4a7V^ z3=3y;8Yl&pgVE^nj9+@{?SPWTo-U3d7N?U_3=)1EaIg_bNC-$!VAU`%oWS8`8nDQ* s!emOvg%4#WQ(mlUY;|l{Qsm6Qu-c62LHpJxd?2$uUHx3vIVCg!0JbS^8UO$Q diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_btn_check_to_on_mtrl_000.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_btn_check_to_on_mtrl_000.png.flat deleted file mode 100644 index 6c760c34f8e0cbbf4995185fc7e3fb163ea6a228..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 456 zcmZ>C3;vM*U={-dmugB;VtHaxPO5%lQgVD!NnU(%Mrv|)d`W(M zeqMZTNl{L`fq{V#`vk@hj0YH5l)4%9LyJ?3iuJSdGxCb_^Yr!7ixN|S+LIH38jJNy ziW2jR)AEaQi*=3k(=u~XfwZ2XewulTMWTU)rA11bsezf9sgXglxrwE@g_*Hoa+*b& zseTbqFU%>r87T#sx@9JKoupTgm(IY@8Q|y6%O%AH^bW75hf5HUHUMD`79jbT+mHuH zt@3nn45?szd+lK7VFLlThvzr4de*K}eIlkD;=8LLwsAqphGbodX{q;id+mArXOha# z#z@Hmvm;NErgWcVIJ&CpR+4S#>PHH~6))|6Ioj_MpV4wAqV)a31JT=)#DX@w+;um0 zD{EN!?sc~V`q&@wfBgNx`LHkNo`rw)0ycI;1Q<_f)iU@J@9#eXkO-mx_? y-B8Km{{PI)qJJN(>aFJ4*PWmL-g8n7<8dvisG`p`ML<_Gc)I$ztaD0eVgLZzWu@5w diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_btn_check_to_on_mtrl_015.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_btn_check_to_on_mtrl_015.png.flat deleted file mode 100644 index 80ca3b6ca0fb5e7227daf8ad08de3eba853e7092..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 632 zcmZ>C3C z=jX-emK5d08yK1ju}@(9z<7X>MX8%nKeRZts8~NMKO?U=KTlsTy(lpSs69CmsIgeT zq$n}3I4!>@w^-LmKP@vS6-etD>Zh5fSR@))SX!i{nHrdxnHm`+o10jgTbLOeCZ}1X znd%n-^}?K@n~_qGsas}(*GYN>dFc!codJICyj)UTK(Fw6dbk7uX#)`EU;&bUxea-M z-jDWlaSW+od^^oH?~sE)tNoshjauprOhHA`_t}pWW@IR67Wa5ORF`2s+H4zXevQjL zBT_e{ZhigzGnc)r?*uIOo6Dp5&+N`pInM7|3)}a5oQyO|fB4YSyC~@YOU5t_)mJZt zQdu8tZe=W*^2kryGNI;Fqbsk&U*E<}3_DtoNVcxV06MKw>RN8anWe!@QL2iwQ<(|)vHzwCef$MN@{&wuxuYxS4$ Y@}JuO?=^qN0z;d@)78&qol`;+0PXPa5C8xG diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_btn_radio_to_on_mtrl_000.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_btn_radio_to_on_mtrl_000.png.flat deleted file mode 100644 index d02f40a4f5c90e53f469a57b89cfc49070e1df9d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 692 zcmZ>C3}w=gp{Oir^% zGu1Bw>V-K)HzTDWQ@6|nuaoo&^3oX?Is^RNdAX#xfL`JC^l%9R(gq;R!2%@zavSmh zy+7U4#WAFU@y(_EUde$XM<3?TFLuo3Vf=67bkB9orBx43vxvM&){poh@yL6{f+m3t z9uu=fO1_zFpOATOMPkmMx33N)t>1m^ZrzWE`-R@8oorbp%;2{ z@iM;6;j5(vO#;Pw~O_=<}W!dO=hgh=Px<0zINb1Ow_7NPJL;eRzk9}iFW1S6FfbelV0n8#s;m67HP7SrV}S<~pBJueVV=Udq<=GO pySSgb)P9TmUzs1pYwZ8dC3TT+x0Z(wLD#6E%X1LFZk7Nu@R{m|mnqGJ85{EWQf{5*ZVbf5;H_Tk>ERLtqzyorg9S+bF2 zdjFTFi(^Oyb^W=djo&P1w;%7{7izDi_T$qlueCEQuCH1z z6}*b!Ojc?dV~E%MkUPQN;rC}QoPFlP%zf*oRos3qc6idfiBDW-Da`NrqVw@$s;F1a z&UqU31+yz>NEGFAFMXsO?~@vD^i4a z%;nI8n;w&71Wi+SS zUG{ySW-by@py_!{aQCqI2CUczL(n-TNz0<>8LY zYC+i#=PsHNW}mLH^SUFm^rVenW)+xsgdE?SlEHWMKYzx~iFcx0gsms3zchXLPGF_$ z_DRxf^CdsT|NiO=jLjB<3;VNGHry3ascB?zW0}TtPQ*rP16M-Xfpv}#8crNp$iIQL pLEOQeVL#J-M@B|bt)+_@I|A1WOxC`T0o2am>FVdQ&MBdZ0RVvYL+bzl diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_btn_switch_to_on_mtrl_00001.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_btn_switch_to_on_mtrl_00001.9.png.flat deleted file mode 100644 index ec8544afb12640046e777be8a87375d71d5e0d12..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1332 zcmZ>C3bz2u=X82Md_Vz@?E=lvtjal#{BTn3No!RFW58T%K8yoDpA= zAD^EWpIcIt6K?vUX+*uG$T1N zIU}`LzoaNJuQ)BgD7RSGNIxwzClyHR8S1B*r&uH!SXf%5q?sC+nVA|HB%7O9np>C| z8z!e&q?zg$0rkS%qnnXZkf~c{LdacumU;zw>74<7?z~)5TtHv(dV0770clMT<^cJV zDf2`vkdnwN@XuibGLW%jQpjguM3RNH_kXPW71PUi)e78^92q=`2R}hlSz{0|* z0OS||F%TdtV|4%vfe9ucsSd;-M}Po2A0i4NLGgnEe(Pz>Vqjp7_jGX#@i_i;s(p^I zr^vDWGb4|eDWps-m|!6mq4Yve=pyIOmIdCE*mFgN1NU`zMZ3Gbs%Y3+1YB>wjH@r??d0-N@CNnD%Q$7#MfQ3sOqS;@MKl* zSthI^0S>cFA~zk0+gYVLKOwLriLvphPwl)JJefu*$v5wV`v@gISZAzJ<;6Z7GyJ_rjGmv|hk~)v&?G$ML{d_5ktF z_RoK-nQrI=)F`z7&l5Xzql1~}&iPALh1aFtt<${x>u-*PeBaylc+rAalPp*^PxmaB zxYgmjT(9+Gu3Wm}1kd&R3YOh;`t~GRdr6#C*{&-IEqRk}XZ?KWS=w}QvKxZ{PwAtF zo&}Rt_pg>c#eFgP*4ZmZ1O8PXi#~Cjfo=J(_Y<3g6&L4LGnn49-(NEr>S~ScZbz`c_4ujTAL5t+Uxdn+l{S{r!ssx7Q0?aw5oAa zNZiw7u_wF)K7PHU&?dev`&;RsXV0?Fa$h&B$up>OeYtCfj_t;c3-@h{scQ1Pp1av6 zdtofUbnEKb@-j!Q+|Jz!oGs54zVTtz*}HuO*Pbx;h@QK4P3QNn-@GrgPjB6ND6+>_ z?!~>mDP=4-xs8`jpT_(;`@YMP>>AmK(@Up|r%gE9_onv6l_MFyP8|5Mc=p#-sktYA z?JAvg^;*&1UoV~=DEW2bNQO=EiaD?4T;Kh9bJ==oc?z%eww#-r5)Y?nzn^!{(!P66 zwaIfg#>J}@j8`7{P<2UoF?;=ND`V4X(pDOiul@h@^RoT<>G`_kbCv?p@!f`?EC+1z0}ZW*81XBWN4bhvO6u)4Yc0yuUsG&vEIdC ouC3amEjb;zQ+c?L)hE<2TODLsd}PZ^9#G!%boFyt=akR{057T+K>z>% diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_btn_switch_to_on_mtrl_00012.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_btn_switch_to_on_mtrl_00012.9.png.flat deleted file mode 100644 index c9e3960a672f60be176f5273442c0ebdb5c9e311..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1480 zcmZ>C3!lYZrU1=I zPE5{7E!Hn7O3W)x%P-0;)-}>k%gjjy(t3vaY33;wi3S#y7Aa|_24-faMh3~|CYI(F zX2yoeX%=aw`b9v!F!$(Yq!eW8mYEQ8m!73wL0)=ifS)@rmlPM!SG=AcE_#}bC2^rt*lQsehrQ{WaBr~wE za4G;f20#o1$jVq9z(Qbx2}r5~F~|`hfX;`ALP${jzyO$i%#Trvfr0sxr;B5V$MLJv z&Sy)ziyYr?yxBS``k&(MR<_lOi}*Aqj_D5Eo-YmC8$Ppt zxgqAY;H&1BX#tZ1m=x7i+T|YYI;tmnWb5Q(TbqS%t_r(!?#-FkjzwEG>72f_@IvK= z_M0>L?|;9y$DH|(Je&1{u2<8O?ysA`!}EqoUi5$&bAuz(wKLnrShCpf2|u^K92aKx z|J13>^W_JkPA2L;`!Qv=(A{peN%8&ZYSs59t)F~cD{JwePF1?=a&Fz)lHT%-i)~~0HGY@>XK{opX*Suuxv_JmynEyzY+VgVilg^OOr$0cq|V!?0bB7``vwyL*34N%w?Nsab(xK z$DPgsx7Qr}*w7ffsCw!Y27aj!AqKgX?bxFzPvXR_zSZrY4?X(8e#3=9wtwl@ z#+r9x%%v+Pbtsl|SITeb&228?dUWdSr{a4vUmtP(`E%-Q0ZZ0ftudFAcWnOjLW=z+ zU&pk^7q?n#Cr4a98)We-SaME{QM#s0f-v9KrRv2NGfyqpKaWxF^qelQ6+W?dqsnBB z*aI?R(z7dHX=w#=u38s(L|l{SZCrYyEihx&`;Qk|0#kI?+I=|x=*RSzw01k%*T^_r5>(S7Beb&n^NXG~z5X(@hS7D(f`nW4Y?d(*3CY=1{N3a(q|V21#wa@MzeY%aBP&C3qi4~z#GStJ;hCNb)V7N-^!>u2R>FcEzC8hvP zNlr}8NG;YcDN4*MPRlRKE!H*CPs_|n1=4zk`f27V7KsKHmKG^#rUqtarbY(I<|dZr z7G}nV$!Qj8rus!dy)YN)W~3Bk>Xw-hcA1`~UO`@ZXMmqOFP9V-&}+P&9xg#ZS_OnT zSb(HAXMiw}lE^FY&jHdH;6G60hO9&ikP68w2uWsOV&YT)ax{P#9T-3agn*PN5X%9v z0ubW@u<&PW^J)79RHW+Z;uzv_{OvhMK?Vb!!yDH8u`E})G@s?ba~6gMVg1{jzOPq^ b{d)3;k#+a=e_kL{Jzf1=);T3KF)#oCeyVR9 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_ic_commit_search_api_mtrl_alpha.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_ic_commit_search_api_mtrl_alpha.png.flat deleted file mode 100644 index c9c1d57fa49e6ca4f54c58ed9dc8c18385040b06..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 412 zcmZ>C3tSt zBqt_kq!#O!6eZ>rr{x#r7V8@6r)B1(0%<)%{WS9wi$ntpON*2=Qv)+IQzL_9a}!H* z3o~QG(>9w1fZ>Eakt!T9#aOMA@I$)Ba6^z1YuywN#y}-Dg^A1!3=Vz<3<3-m9lGiq3jBhM3=Ss>7(wKJ rVP$rqq)+S&3I1$cA{qe;4)D1wEReRzTgVHvox#)9&t;ucLK6c3R=9f? diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_ic_menu_copy_mtrl_am_alpha.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_ic_menu_copy_mtrl_am_alpha.png.flat deleted file mode 100644 index 8a545db9bd233add7d543b1d7f052c9d1ee19906..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 436 zcmZ>C3l*2&W#*&;X+1;zH1iaTL<0*;ibG-{UV@Vm}7J^QVKG4%S;G3O0OUT_DK+>Bt zKp03(^mK6ysbEb0;jh|}aO&Ur|Mwjvgp5vn`#=4^3!@X;+~yUF?kw1!;5wz6H%&Ux zBfi)@{cb^j#`C0vSl*0D>sW(wG_b+Ye^;8oIO<8KJPnq=Csq#?f{!u$xYlxfD5 z1%b^{4ilW31t$Ds>y`S_f98-pC3A#m>C-;r&*+# z>K6g^!W^QTky4PUTV{gCL3#yw=?n~=0eZ}570xC8-d6%giN0g~RF0m4A9 zM|-+BhEy;5ZFE{z|shMHH#*dzN$}8QmtSfr0ohhNu zoYl;EYIC4kr%Itx@rCFavtGS9ux1Kp2CvxROMGj*W;U25Sn1fYd|!ITqJ-sFklF(6 z3%tVK8?;iHteCCmI=fGkJCLd=9Ps*FvS+G~L+@ktm6r?E7Fb+8b87FsQ%h@-r4pI6 z_LXR+8?9)vx_ZUgv9`!CpxWvE!PfH%Z@FtHsJ~^dZE@0S=F_?R%67-c&?j?Qmd^j* zdSCAJ?McM}KTz aV83H2<1J@(tGmF^X7F_Nb6Mw<&;$Ugdh{&- diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_ic_menu_paste_mtrl_am_alpha.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_ic_menu_paste_mtrl_am_alpha.png.flat deleted file mode 100644 index a803fd21189936b1803f21e7aab9b23f05309236..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 460 zcmZ>C3?i&Kk=^|SIb@{05G^!3t<5>tRCBqt_k zq!#O!6eZ>rr{x#r7V8@6r)B1(0%<)%{WS9wi$ntpON*2=Qv)+IQzL_9a}!H*3o~QG z(wj3t z7)Y)3ba4!+V0?S^Amhg0vP9`}p#mdlw;k+{Fd-OQqG-kRivn&JC)8*nyzMaew&J9FZN#P>x@ zFDziSjoN*_v_H&WZ=uxQzMeV8Ra;wh7|JSMcjmvj?<9I{vz7o?gvgWyEUFrgoVSF6 yW&fT2R+_A*=zLJnJ)@7=yQksNx6>D-xek;t`!{aw20EI-)78&qol`;+0|Nk_%bpeh diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_ic_menu_selectall_mtrl_alpha.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_ic_menu_selectall_mtrl_alpha.png.flat deleted file mode 100644 index 2121a5e025c8cbba45f160d27c04bdd303d9470e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 452 zcmZ>C3O8EApqylL@L;W=K6pKUy3rmZXG*bgJGgBjjWOEZsa|<(L z!{juJG*kT|pkA1BbTd*4GIh&L2s%rzATOPPp)*r6-UbDc=2C+WW)0(w{p{fdo4s}vXmIe#7;KD@Vv5(O&;PlU zLtDnDM7k#9_Ui2g5uaypH}v0Q_WgHi0h7EDhlNCnhEuos={Jv3r%NCAdDN@ZVP0p^ zv3RMYdF!srPja?=diCn>V@H{_d_n$aPbdF!tlIK^{;WF1=k?jY%#HRZRNMXkSG1*H pb3*#cYjRE}&2BJ1o4$bkR?WrR3#uPx0A0%9>FVdQ&MBdZ0RWqCp7a0! diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_ic_menu_share_mtrl_alpha.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_ic_menu_share_mtrl_alpha.png.flat deleted file mode 100644 index 646fac206c291f9826821f83cad8f1c768015e78..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 620 zcmZ>C3vUX+*u)SjG}oRM0r zUs9BqSDcn#lv}K8q@R|VlM1Bu4E58@Q!Ek z(oFS>fO=t0(alIH$kZ(}!RsWwg1mGFhRy&#cU~?jE}&O%(#Fkd0NH8J-#Pu6zF++>UUf7AA6 zyuW+st@z{L^?d)nv#*tzs&rFOx9LaE1YU*P6L!pune_K6|GrLfDZQMGJr`6Gg_~Ze zMCj=J(p>p^%ZB&0vbvM*Yu!|cv}(|4UgUDm{Nne9tz0XU_sjozuwYrB(cU|(b1o~K zDl{|nyR_apq>$&sm4eRyHlMdnW+;o);$AZI>1743>eh|EoeEN^EwPu4I{f$(JsoAN z{zflczvS0$>8NAgzRow)S|8V(IvM1!?I~L&%Ou}#bzg3X-+J}ywN_0|n@NHDb%pdP zo7gw_znpW-YA5TZv)?)wP22Hm(orrK|GoK(Qa;>}W>_D>xhVJqTVl8>OQD4JnzTIu z_KCKST3>Om7Sx~eqHX^!9mNiJ(e(^_0t`F+>pssZy%tm1{J%|}@y#Q{14C3(0(yhj)59eQNK1e)2Mdt&s{2|Dq|SM|IEGX( zo;_=*-BKuX;NyAW)m1!3Q6-N{C%48PGnUXXSn9U$p>=I)www%g}N=m$#<(au4D+f@#$6HmP-?Z?rupA d{zC3z{1iZCC${p%*@otAlcl+(%iz#*f2TGBF$942&fn4 z2;Gd7f=t~q6C94wE67V{VCW3+bLZuf;sSbu*VDr#2uPcOFb4~eRP$LB2K4epPZ!6K z3dXlrnJ+{;GPphrzP&A%H;X?TNZo$BVw>fv+}qpUmSykp{FgGZ_Gx+h#m?#VN9rfq zoio+V=<{wWoFvS0SoEkMN7uuysT?e)3muE@DGKaS*1X2+UUN4|_11i1X6rm%SOFR8^1|JtI9@q zEljvGz3=X^0JoMymlBpt3|gb-mZo)dS;CV&-wz-D?RZ3!=ZJg7O}0yu=kdm^?{3}J zCC6VjcU6sRXkJB3JX>zE4F8vDfiBO|CrX};KAzjQ_;lf_Tvg+HDT&gLewQuMeDpoN zwmXXDur-I9Y+n8US1r!o7uO#@#gTe~DWQph0RR^oEPwz2 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_ic_star_black_48dp.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_ic_star_black_48dp.png.flat deleted file mode 100644 index 156bb42fbcd655a11df3eb2195dd3af2795bd742..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 884 zcmZ>C3-DJNAwF)2AdGdaGvB(W$yDJL;G zJKn@1r9g;%0^Qb`dRrIdByp8`g-X_i77yh$%)Assm1ywMTvRE zY57ID#kxlNX_+~xKw8gGKg~SFBGJIY(jq0z)WFQl)W{&&+{Dt{!pzt(In5%?RKEzQ z7v>1vjFf^*-7*s#j?pW~OJ`u{4DfU3<&xq8`heHd!zBnvdw?(p3y}Q(r1}g415>i6 zi(^OyCed51izYCMUyTpYZHfw! zxMI{Lwv{`IbE0QN%8pER$BV8fOg2d`owmKEII-x0vHWAp_d8jhf6qz#S#*x)bDjLg zh&T2dOILa9Je;ePV!5~{ps$HVYF4C&;aL}#N&Fm6`kqRO_C~SF6F-Q|d}k;a(0k*S z%ZogvZR>WtF>vcdUPO&XcV1>wUf#NqyS;TdGCQS)6TwSE) z5j;bYZQ1WL4R1fscVfSFQc5dF_o&nS4`=NZ-e)NHNBx@E@Orseb7+Y&4vw7F=P zz|nbuZSI=y6us^)Wntxv5@^*+T=pz{J(Hh5kgR=feYP3i1-<L zm_FmE=QOhvzgP{g^O5K8U2gDH-rHg8=D9G9Jt@1VTjvnZrI<9Hjay|+pHG-6w{f0R z=%vOpC2s%icAY=k`T4?`d6n|2+!8Jl&$+q_l@Eui3GAEfa5Sw&J?BWbmX+YDfWijl liu8*v%%4TOk0x#0@1J9~d-;{>YGA5k@O1TaS?83{1OO0kT&@5B diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_ic_star_half_black_16dp.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_ic_star_half_black_16dp.png.flat deleted file mode 100644 index 9fbca574f3a76a31b9042a52fe8f7400fa3c571f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 424 zcmZ>C3;dAVU={-dmr6=eVtHaxPO5%lQgVD|a(r<~Vo`iXVoq9o zQchxWcD$ikN`Vmj1jY}H2N+qDx)}9Ci&Kk=^|SIb@{05G^!3t<5>tS>lM|COQj7IV ziW2jR)AEaQi*=3k(=u~XfwZ2XewulTMWTU)rA11bsezf9sgXglxrwE@g_*Hoa+*b& zseTbqFU%#n87T#sx@9K#T%=c!m);rR=g!L|#Rc>VucwDg5RjGtVGb4`=~ef&7)bSa zx;TbZFrGcF8sW?+uYcR}vCQ2fmG`e&C;zyAE)yZB&ldQFh#gRji)476 zk;>Sh#9Ol|VfG@O9WU<%pLx2tc6-s8m^UGwA5P2(3#d$;yYp@FG5Y}K3-di^6!*Nh S1GC3~b@l$Zk4ot&7Qky@-@ zQk0lioR(jdTdZrOpO%@E3Z(T6_0!B#ED{YYEG<&fObyJ;OpOeZ%}p%LEzFD!lhZ8H zO!bR^dSNcn%}6Q8)Gaf?=OVp=y!6fhKX+a(DK4Nlcs)H_f`GIc2y?IiNj0BEVL-3* zd%8G=R4~3hYg`e*$iV(_b?$8MwM)0{y&CblY-Mi-=dl^lJ(k{c&J;=|cjw+d`P=_} z-v2tEy0o;-0^e8?IZs$Q8E>j7xsmm%K8lB{yPcl}0S#vv%0bS9~?`^onbV z@)==?mrs~U%|7eKSJs)ua7jh)jvZfoQ2x37hbw_fuxf7t+3zcsui2 zqW{zxlZCu5C7xz)4cgJbcvprY^wZ3l5|e!GwHkaS!b0>lnpaEQ$jP!^m{n&W?QDI~ vvvniy;oly{k$2oC$^W0xy~0$(*f^Wf(W=B=tTsgo7(xu5u6{1-oD!MC3q2XUCgZq!b9TPhkAOcz}^bsf$rRv^ce>SU)R2Bd<6=PhT&+C@}@7J2^2qBeht+ zq$n}3I4!>@w^-LmKP@vS6-etD>Zh5fSR@))SX!i{nHrdxnHm`+o10jgTbLOeCZ}1X znd%n-^}<}Dn~_qGsas}(&qaC#dFh=2e(t9c1q=-}vEcxKZA$H@x9%}R^bbUE@!i5%HfGWn(?%WH?j zT^bT8uDk0u@Cuq*^kzp(Tvj-7Coa*k;MJ_}^FG+cKlt+IOmCB>ILJ=f>hM}Z_rhMW46enjRu`FES7tSCGxSAYRWhTdlEn*x87OrD$V!gM;L16h3)+UKcU4btJ zD_NTa+@lme6fR|LY7)y}Sj-v~#Ju#XLwVGKysW4NENFVdQ&MBdZ0RWA! B^0EK` diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_list_divider_mtrl_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_list_divider_mtrl_alpha.9.png.flat deleted file mode 100644 index dc85a7f9ca5888feb468f97a0a027dbff17b82f2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 396 zcmZ>C3z{n!OsMN!#A6lGRRIHzspOIIbpQo>vUX+*u)SsM~oRM0r zUs9BqSDcn#lv}K8q@R|VlM1Bu4E58@Q!Ek z(oFS>fO=tW(alIH$kZ(}!RIDDOTB`;^v(c3cU~?jE}&OFVdQ&MBdZ0RTRMUPu4{ diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_list_focused_holo.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_list_focused_holo.9.png.flat deleted file mode 100644 index 24a39a378eb79b4522a4f034be742a1097879e59..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 460 zcmZ>C3qi4~z#GStJ;h+8Fgii&Kk=^|SIb@{05G^!3t<5>tRWlM|COQj7IViW2jR z)AEaQi*=3k(=u~XfwZ2XewulTMWTU)rA11bsezf9sgXglxrwE@g_*Hoa+*b&seTbq zFU%FX87T#sx@9KVU885ISCE(98Q|y6%O%AH^a8J^hf5HU<^*95HX!+6BAWn^lE^FY z&jHdHU?x!HSipweKq@4!AS9WAiHTDI$k6~|bYK7xUATF;JWlnGa$= zx9sZ%iko}7IEF}EPByvst3-{N@xT!W76mUsZmD{0X6D27Y;0_9K%5_=_Sb#!My({5 h#T%oZ`$peqWKjIhc6^3Ynjz2#22WQ%mvv4FO#rwudQ<=a diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_list_longpressed_holo.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_list_longpressed_holo.9.png.flat deleted file mode 100644 index d39c889de37ef1a11093d1d72e07217a16460553..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 436 zcmZ>C3;d8{U={-dmr_bmVtHaxPO5%lQgVDwW^qY;PJUi`K~ZXP zacW9@Mt)Ad5c>qi4~z#GStJ;hx)}9Ci&Kk=^|SIb@{05G^!3t<5>tS>lM|COQj7IV ziW2jR)AEaQi*=3k(=u~XfwZ2XewulTMWTU)rA11bsezf9sgXglxrwE@g_*Hoa+*b& zsXov;eV9vhGg1mNb<0d}yGYMcuOKhIGr-TCmrIHZ=oMa150@Yy%?ZLBY(VnCL^c5+ zC6QO)p97>Zz!{*3RkOb~kP68w2uWsOV&YT)ax{P#9T-3an1K|?XfS<-Vdfb^_yS+) yS)h7xPZ!4!iOb0;Gb*3)Ff$%F;=m#idIac1aVFC3;vKpU={-dmvTx`VtHaxPO5%lQgVDwW^qY;K~ZXPacW9@ zMt)9yd`eRMvbl++xrLdrVRD*9 znyEg}PJNhDbTd*4GIh&L@Hk1&Qm-H{oq?eC34Yb z~b@l$Zk4pPZPSky@-@ zQk0lioR(jdTdZrOpO%@E3Z(T6_0!B#ED{YYEG<&fObyJ;OpOeZ%}p%LEzFD!lhZ8H zO!a}5>ciZkn~_qGsas}(&rN!kdIfpuodJICyj)UTK(Fw6dbk7uX-*L4U;&a|GtSKh zQWALu{y9Jz0~iBEp0s)10#YG)1tG}{OiY{#K#m3wqXPqo05gzc17a|3JagtuLimJf vY&uZAu&0Y-2*>s0Ihkh~*k(vbuq_o}=>5!aZ+*9v4aj6qS3j3^P6C3ds2LyJ?3iuJSdGxCb_^Yr!7ixN|S z1|=sZXQUSEmlP%D6{qDF8EApqylL@L;W=K6pKUy3rmZXG*bgJGgBjjWOEZs za|<(L!{juJG*kT|pkA1xbTd*4GIh&Lh;p2srCvc^Is-#zfS)@rmlPM!i@cs5EbWyC6QO)p97@902(e}b_0-f)wHw+QXzQ-A;}C(Oq>cpjs_5;0|STv zH<021VmTm|ZvYY?3C3KTmj;zU={-dmtIOyVtHaxPO5%lQgVDwW^qY;acWL#a!Gzs zd`f09NG2sdBR?k}D3_j5BE&v{@dM)lMivQ1rD=@%p~b01#rj$K8F|I|dHQRMvbl++ zxrLdrVRD*9nyG#fP%q3?x)~`2nYv{r#JNt-Qm-H{y)(eiotI0B3+P2&PY;(MAT0{S z_8crga;c`bFOZVREAY<&(qI4$7cg5MNG{+yaTZ90{3v?tnt4E1#Nb6Mw<&;(=x00A#^EC2ui diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_menu_hardkey_panel_mtrl_mult.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_menu_hardkey_panel_mtrl_mult.9.png.flat deleted file mode 100644 index 809ad7db4e07197cd942bf53e99b42a2ed374126..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 980 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 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_scrubber_control_to_pressed_mtrl_000.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_scrubber_control_to_pressed_mtrl_000.png.flat deleted file mode 100644 index 905eaf8fe3a3f5c06496401cf5a4daabbe791fff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 448 zcmZ>C3{T&PXlRFDXjQD^ANV$}QG4(of6GNd?k+hWcsdDHe$a7M2z%X{H8dW~N34 z$>t`O<`!nghRJCbX{P!>3-w{n(#=RI$kZ(}A=-I*1$pTV44naf?z~)5TtIK~dV077 z0cjx+=3oJme~!D|0aD$bE{-7;jJ=Z%@*Y;;ag{&Cm*ebyf-UvruFEab$^}a7FBYy$ zTDfV%|F0(%{vS7OJR!XB(#wz*AC(1Z${!aQ&Io7YeR!};+4?xI#)b{`8yyxI^oj^E zDjhOd*eIZQc}7`A$`!e4@u@pKT8la7%B`@TUtD{qlC3yC_XtqucRnH zC%z;KDVSOC*HuoRET{7;|InAj4Vpi8TCVpQ;UlAv+^_Yiu3dI_0o$H zQ-DS#Cnjg47VDQ3CFT{Ul*2&W#*&;X+1;zH1iaTL<0*;ibG-eV~QT!MhK zGzfFB07><`Hur$kbx#+^kP617R}SVLau8^J=>I8I^}Ytn<;g1xS5mtOE(n%wNSIHFr;sRl&($E@3G^xtovYQ)XVuZwoCxPB{=bKVcOJb&v4rQw!efnH?rboFyt=akR{ E0GwRLP5=M^ diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_scrubber_primary_mtrl_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_scrubber_primary_mtrl_alpha.9.png.flat deleted file mode 100644 index a77e5a4aed030f5004f05dccc6ce62d81a2b9b40..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 444 zcmZ>C3oB-mpU={-dmqtoaVtHaxPO5%lQgVE8a#3kgQfg6rK~ZLI zVo_y$Zb?y2d}2;PMxqe=1jY}H2N+o-7?mb4>W3Dm78UDf}HPTPZ%t-~(dWQOG<|!751{RhUDQTt#W@e^F2Fd0omgW{_ z#)iph7HOvXML@kU_vmJ%6lCg_nGkZ9o~2$vUV3MMpF1y?6c^B2yq+E|K|q=xh=n*< zfTZ4ZpB5k`kyqfK1Ed+)K?D%M=>I^r@4@g2Amx%*5R%Nm#KNoq9;iv-05$EDT<` WEZm}AZdXBiJzf1=);T4B^Z@{n;c6iO diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_scrubber_track_mtrl_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_scrubber_track_mtrl_alpha.9.png.flat deleted file mode 100644 index 9c10ab4fd53b2ef573c8a15480e39ca7c29f7897..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 428 zcmZ>C3-DJNAwF)2B|IJu}aDJiumzN9EIIXgbL zq$npoF{dCSQHXs4;|InAj4Tq2N_~v_p~b01#rj$K8F|I|dHQNR*)CJ9EwF)=f#GrvWAmj0UlTxDJYD@<);T3K F0RTKrV~hX* diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_spinner_mtrl_am_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_spinner_mtrl_am_alpha.9.png.flat deleted file mode 100644 index e28b80a3dd9e8de9157e018f491c3394c69def9a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 572 zcmZ>C3~b@l$Zk4ot&7Qky@-@ zQk0lioR(jdTdZrOpO%@E3Z(T6_0!B#ED{YYEG<&fObyJ;OpOeZ%}p%LEzFD!lhZ8H zO!bR^dSNcn%}6Q8)Gaf??IJx(y@I^-&Hz7mUM?vvpf`9uJzRo-v@{T_aIgT$OCLLz z0V#>R0{C31fx<9qkd>{YEiL%R(?iaaekh@UV2et3Q&J?Vsb`m zu|805UU6D}QEsuWk$zfcPAZVrGt^HrPq9ceu&}g9Ni#JtGcz?ZNH#aIG`BD_HcU>l zNHf(h0_ugiMK>d*AXB%@1fQGqEcFWV(mMnE+tRT;*nHj5gkS&hO!Qnt!_@*g7thXM%{Ga;F`~RK|LWNxTJW$vceB9eCEIwB`s?-O2^& zy3AtY4icQ+JmOPLx)hF0yU&wZS=Ml6!SZeM-i7Y1ICC`nx9SSrnR5b+J&!Ras+{HU zjl0bi#U5;1ksxQ9yX*EcwO!v0N|$?{pQ7?|i9Y|C<$kq1llrRG&vP?(yVTz2Ti$Az z;JfMuv+!(@Y>8hFqxpjm?=_$GD64OJpY>Lm=yN9$4=C3l*2&W#*&;X+1;zH1iaTL<0*;ibG-{UV@Vm}7J^QVKG4%S`Y(O3zZSATOPPp)C3lFzsbEZ6Abw-RdyNIQpS7AK+8S3VNO&o*I4MYUNlG*+vNSD}Xi|9b zZPmYZq z@cx%g*X&LReXlwfc+c;xrqZ4*p%eCfHFSS`hIhJtrpYm{kCl?XHi@YrKesL@sd~g> zbwI~nIzH+)Gt;I&zJK^nChRQ;c)g&(^WF^J|2!XZJlAuy0X@p#>FVdQ&MBdZfdK$! ClDtO% diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_text_select_handle_left_mtrl_light.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_text_select_handle_left_mtrl_light.png.flat deleted file mode 100644 index 06e3c3557ada1720e36b1e51855912851c2eba2d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 528 zcmZ>C3ds2LyJ?3iuJSdGxCb_^Yr!7ixPo4 z^pg{lGg6E7ONtWniqrCoa*K71^wTnPQh~Idp?;cqibbMRMvbl++ zxrLdrVRD*9nyG#fP%q3;x)~`2nYv{rL^@8dATOPPp)oN?Z##?5zV@0$E%G!067d)k`|Q9#*pA zkEwoT9(&;yd*q|I^OmP>ue5b-nZAwd(ssLN8FO|%{G{4@EJD*xe{rY!njWqFVpIJ5 z=Qyy>c$)s$JGC3L({AXQUSEmlP%D6{qDF8EApqylL@L;W=K6pKUy3rmZXG*bgJGgBjjWOEZs za|<(L!{juJG*kT|pkA1(bTd*4GIh&Lh;^M_L0)=ifS)@rmlPM!d%T_=ER~;1IvgqQAFy>RcTsLN2ynkV>aKJS=Nt-OkziNxt*ln73_#sn3*on`(W5qc1CwgvJ?l9%4 zYr$@o9aA49a(+-a7%lX`w<%xcz;%{*uLgaNxTy^5h3;rFzEj%a#uVeeVKK{%PTtwZ zOcx`KBxO_t_?|648prrTVUyAHhx;#V?0lj5>$HvBcgO8&3$|-a_+DXi&|%I(Pp|M< z|6Uwn_|mdF*!4%e$s%T1_y1F?Z1P+cGvZixbR3#^b;a4)+*uBPGniv<-gaPK!MRhh fd(vlHhO19jibwddO9I20!PC{xWt~$(69WSPH`w+` diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_text_select_handle_middle_mtrl_light.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_text_select_handle_middle_mtrl_light.png.flat deleted file mode 100644 index b7bea950048ec4be4f6357d9b3187cb521db94e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 648 zcmZ>C3qi4~z#GS(K(T>W3Dm78UDfz5QI<`t*q7v&b~8tJEH=A;5?JwyF8^Aw9j0}D%wlr&QVGc!{ogJg3P zOLGe|W5eV$i!@XHBA{NFvvf033Nm%eOo(=#UO`?u14CzkpF1y?6c^Boyq+E|K|op# zh*db)faJW3U75gO3HEex45?r|dfj{s*!m;RdZRfaFTAxQE3`LamGJx6@ls0e4XWn*TUctHZ eqSmEbHVjYynFpn=s*DGQGJ~h9pUXO@geCyTo%#I$ diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_text_select_handle_right_mtrl_dark.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_text_select_handle_right_mtrl_dark.png.flat deleted file mode 100644 index 31602cb60b9ee87e36a43e4ede7b56d7266e3795..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 512 zcmZ>C3ds2LyJ?3iuJSdGxCb_^Yr!7ixPo4 z^pg{lGg6E7ONtWniqrCoa*K71^wTnPQh~Idp?;cqibbMRMvbl++ zxrLdrVRD*9nyG#fP%q3;x)~`2nYv{rL^@8dATOPPp)<8GJD<)(_avyKouuF_HQPe47sz8`pi>Y9e zCr6^HlMbiinu!A5GX=bR1+rTdSQI%NIh<_fRy1ZLbll{2d3ZFtu_K}5!OKTi9XYPv zp6&8X`zn**mUHfR{;wBpikJRi?NR?h;xXG|E0+WPJT^>n$(NpZbA0`5%E&*-j$x(! r4W)+)i>GbzDU}1C3D4WY5r6{pHF)1fiKQSpez9hAxB)&K`CpEbwJ|i(N zB_}n$C^J2yBtEyKC?`G##1vwm!1#gj03(aiG)Dc<;?$yI{jB_qyyE;keZBOeM4%S^ z zkjyoyl>t&`JzX3_Dj1U%h^SmCW4^UfSgONOf$Oj~qvq5AP7enzz6lL2UJj=`91gux zu~mD1?~CuH>rc!-O#S`u`K+)l6^CmWI<9w4+ggyzu{wLAK$v1nC}(1-Q-rbNwHARe zr6aQh4$b1&IE{1THI9w098LmF0xb$hZg+}zu(d_(aS(~y6V}1e#xYMXPPQdr?_ST8 zeL-sl9ADQQv8`V#@aI;;eaBxDj?Z9}5bb|ZpYlMEL1MF7z0-=v*IPa+ykwtXRnyJV o;1hN2R`=b6iC3S&PXlRFDXjQD^ANV$}QG4(of6GNd?k+hWcsdDHe$a7M2z%X{H8dW~N34$>t`O z<`!nghRJCbX{P!`K)o<0>1L!9Wa^fg5aBdEOTB`;bOwgb06%wLE-5ac_jo-$T!MhK zFc1rHumH)pvpp|?ltf;Ee-4nw0RMp^H)JJJfRsgEK}a$K6BCmHkfQ;_Xn@TCApo)f z1VEO803*+jH(!CYq^FBxh{pNk1PNAU5d)(?>TZ(4h06q2@-UReFtSSiXz2l|_H^}g LS?83{#J~Um7u#mt diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_textfield_default_mtrl_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_textfield_default_mtrl_alpha.9.png.flat deleted file mode 100644 index cc0e068053be264dc2a0ff6c82a62815e623f66e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 432 zcmZ>C3CKAqkd>{YEiL%R(?iaaekh@UV2et3eb?` z#N>?BV*Qe$#Ju9P{G!}qT_gRp%$!spt!Jp8W}ae^XkcM!k&nF&FM=~?O(ERLtq=kW4 zfP)1{#+~hX38W#Cb;uH;{73D+ozuU}9oX0CF^d7!9x)AOwV< zOpv8801j`~i(Ws00^*)7jv*T7lM^IZl|>AU{;0c23Ww^lGL-Q#GMk*c(ht((>FVdQ I&MBb@0D0MC0{{R3 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_textfield_search_activated_mtrl_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_abc_textfield_search_activated_mtrl_alpha.9.png.flat deleted file mode 100644 index b2defe714a063294d422749eecea50b9eb7e5b23..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 436 zcmZ>C3qi4~z#GStJ;hW-;oA7N-^!>u2R>FcEzC8hvPOHNGANG;YcDN4*MPRlRKE!H*CPs_|n1=4zk`f27V7KsKHmKG^#rUqta zrbY(I<|dZr7G}nV$!Qj8rus!dy)c*QW~3Bk>Xw-h??OFGy@I^-&Hz7mUM?vvpjUZ4 zJzRo-v=9)paC3W3Dm78UDf}HPTPZ%t-~(dWQOG<|!751{RhUDQTt#W@e^F z2Fd0omgW{_#)iph7HOvXML@kUcj;!N6lCg_nGowfJxjfUy!6fhKX+a(DK4Nlc|AQ` zf`GIT5VLZy0Le!pCI5kxL|%b^4v@wG^*|9*mv!+#$|A2IB$z>% diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_notification_bg_low_normal.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_notification_bg_low_normal.9.png.flat deleted file mode 100644 index ac44f812fd7ca93337237154409afe6aa284a36d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 440 zcmZ>C3;vK}U={-dmvTx`VtHaxPO5%heo1CpW^!UlW`16LQhIz& zetCReeo<~>ju86<#t)1K7+EA3mAV=ALyJ?3iuJSdGxCb_^Yr!7ixN|S+LIHLGg6E7 zONtWniqnAFigk_j(=u~XfwZ2XzL7;zVrsHsN}8onT56Jcs;Q-sQKF%dVNz;Rl7XpV zntl;bFU%>r87T#sx@9JKoTO)|SCE&^z|a}s=g!L|#Rc>ZucwDg5Rm2pVGfZ0ishKC zfs{mEfqxE&j}HC=1#ZYnqyVXqyn>Kq1|}v>1t3QQh|z%oM1T!QaRM=nhJ`KTe|~;` zY}jY+pZ!4f;+`&!Asp9}r=%q|G}`OLO9(V{CN8jKF!;oznYhUM1;}(yS3j3^P6C3}8CMT9;=I6yHrN`&w zm&X?rr4|>brUXaL8l|NsnWvgs8W|-T8W|>~CM6k| z8m8$3ZPJIiMK>d*AXB%@1fQGqEcFWV(mMnE+rZ diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_notification_bg_normal.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_notification_bg_normal.9.png.flat deleted file mode 100644 index a6c93280ce46e78a66e4146200af0247873f598e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 432 zcmZ>C3ju86<#t)1K7+EA3mD(BgLyJ?3iuJSdGxCb_^Yr!7ixN|ST9Xr#Gg6E7ONtWn ziqnAFigk_j(=u~XfwZ2XzL7;zVrsHsN}8onT56Jcs;Q-sQKF%dVNz;Rl7XpVntl;b zFU%Rb87T#sx@9IfoTF!{SCE&^z|a}s=g!L|#Rc>RucwDg5Rm2pVGfYLishKCfs{mE zfqxE&j}HC=1#ZYnqyVXqyn>Kq1|}v>1t3QQh|z%oM1T!QaRM=nhJ`8Pe+dZ*Y*;F1 z%^IM3aZeY=5RU7~A&H3%jrKb65&{jKi3=gTe~DWM4frwU`> diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_notification_bg_normal_pressed.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_notification_bg_normal_pressed.9.png.flat deleted file mode 100644 index 78868be4a68d5c311afd5728f94ca81ebad878d3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 464 zcmZ>C3PJBU8YH@LDiV*t*#t)1K7+EA3mHHX=LyJ?3iuJSdGxCb_^Yr!7ixN|SMkFUD zXQUSEmlP%D6{i8U7wa17r)B1(0%<)%eItvc#METNlr&4DwA3W?R8vbMqeMd^!=%)t zBm+~!G<~2=`Y`9{W~3Bk>Xw-haF(8>UO`?u14CzkpF1y?6c^B2yq+E|K|q=ZggKai z#}J9j$tF6ll2TJs5AfFg|9AG&*Vo}}P7R%n90sd8y1E!D YUD?(CmEC;{vdYud&t;ucLKBb)03aEBmH+?% diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_notify_panel_notification_icon_bg.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-hdpi-v4_notify_panel_notification_icon_bg.png.flat deleted file mode 100644 index 7371cafdb82d555195951f73ee0c31c5f34341e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 344 zcmZ>C3n8m=rrIk{YSe}@ald7MWUy_+t8DEf?mzom~=42)( zmSpDV#b+i1iKKKP_6dw17!NSAC{1A04=qkDD%Q`+&&Vsz&(qgSFG@@SnvtBCoRM0r zUs9BqSDcn#lv}K8q@R|VlM1Bu4E2pHk`hys4O7xAjnYz+%u`J*jf@fvjSQ1gladTf z4b$|CfO=u>(alIH$kZ(}A?z-_g1q$306%wLE-5acw|G50T!Mf!9|&_W0m%tkyV`)1 zk*AAeh{pM3fg=n;Zr37MB|AdcRe(hMB9Z-8EkRAM7I<|AvIluBu`0>$WfQAA&cIOC XWWc)Zd5j29H-o3EpUXO@geC?6&h}>W diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-ldrtl-hdpi-v17_abc_ic_menu_copy_mtrl_am_alpha.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-ldrtl-hdpi-v17_abc_ic_menu_copy_mtrl_am_alpha.png.flat deleted file mode 100644 index a5ee477c3bef1f9ed1763460a85d2c6ae01de0bd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 440 zcmZ>C3t`O<`!ng zhRJCbX{P!`K)o>M=;ovpmE`DVq!eW8mKmB8aGhR3UOGc(fS)@rmlPM!YrLKwEi>q@cmdKI;Vst1^`SxmVN*L diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-ldrtl-hdpi-v17_abc_ic_menu_cut_mtrl_alpha.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-ldrtl-hdpi-v17_abc_ic_menu_cut_mtrl_alpha.png.flat deleted file mode 100644 index a5d0bf1781b81d090c04b609fa7bae9a016e8ece..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 632 zcmZ>C3az<*g zeo0YcUU6D}QEsuWk$zfcPAZVrGt^HrPq9ceu&}g9Ni#JtGcz?ZNH#aIG`BD_HcU>l zNHf(h0_uf1MK>pBc&iyx6IHSkIVE5^3oYP1N_{1xum#&-r@E1a0vp^Dj>|k z0wldT1B8J=5bo*X7*fG__nK>&w4(sSg(C-h3&qa`)=XJ*^pcrM1gpNlxx_O$@hUn0 z9@d@D&G_09yjAd@Wbd*EGv-hEZ&wm^bc*@C8DXVW`X!;(Pqr%0{4Az$WD-d$4W}%NYrgoQhGkFZLX)k0$ASW8 z&0<;mVGrZ7Bn@9%#@SKFda`aXOy%$j%4I*=beYjB;IX^W^I+9WY+H_=5uSW)uh~kO z=_ekBoVlPEwB>QTab!TkyWO)BCIv{_l*pHKIpr3XELF^8tBMRbvgNMY5%0}rYiD0C zGHbi^{hKfQ(OKSoPp6&ebzZUgr|WNtoE4HrOLAnle7b$YWQFV6@_iY}(wyhp4^-8y zuAScyBlUU! diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-ldrtl-hdpi-v17_abc_spinner_mtrl_am_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-ldrtl-hdpi-v17_abc_spinner_mtrl_am_alpha.9.png.flat deleted file mode 100644 index a6118200a4a106947580d0a91656be6865bba97a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 584 zcmZ>C3D?cNzI6qHcFTE%+1*ktcF*zf( zSihtwF|Rl+zbLm@*GNAtGba^D>lx~&nWtDJ8dz9bq@wVcJ z%g(VyHW+SF5s6gPHgIA)!4}9>^eE6pp~Z6aa<$2~BI`sM zcQ9*LhgPrtnR+_p`-6)I4?cdA8+%-C&D!a%iC_Df6z|m8Hta|gn0Y3?fW2tvM9%%c Ts@{WK?dj_0vd$@?3CIKhwmzld diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-ldrtl-mdpi-v17_abc_ic_menu_copy_mtrl_am_alpha.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-ldrtl-mdpi-v17_abc_ic_menu_copy_mtrl_am_alpha.png.flat deleted file mode 100644 index f334bd5a5a690c5f625d33ffaf9e5a213dc5b164..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 368 zcmZ>C3RMvbl++xrLdr zVRD*9nyG#fP%q3mx;ZIDB{{meDFvCjWrpSiT&Gu%m(I``;OEZECB+5w8n35^OAwHj z0AUUmAn8^2wHQdbdAc};R4^tlkoa?)HSQn3$^ynC38EApqylL@L;W=K6pKUy3rmZXG*bgJGgBjjWOEZsa|<(L!{juJ zG*kT|pkA0$baPUQN^*2_QwlP5%M8u&xJ<7gFP)(?z|WnRONtBVC0!3YcY^I;_2cTQgQ3(Wk;{W4iZNT`7f&NY!Km(l-b*#IqBX4X~$QgYbGqYJzqc~ z&9J3Yx_0&P$A8W5@2UKeZ~4MEt$Dc!o5P9Md5iW<6;vFQGSr h`Z6w0`{!ogajx{^UiR&#K>sj!y85}Sb4q9eG65fdxGn$y diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-ldrtl-mdpi-v17_abc_spinner_mtrl_am_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-ldrtl-mdpi-v17_abc_spinner_mtrl_am_alpha.9.png.flat deleted file mode 100644 index bd354fe734297fee4d8b8fe1a85e0c26db987a37..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 556 zcmZ>C3D?cNzI6qHcFTE%+1*ktcF*zf( zSihtwF|Rl+zbLm@*GNAtGba^D>lx~&nWtDJ8dz9bq@C3t`O<`!ng zhRJCbX{P!`K)o>M=;ovpmE`DFWTX^i>XsRr6L6khL0)=ifS)@rmlPM!YrLKwEFMGaQgQ3;^^Ked40v2F>Im=I+bZ6Du&h3lDeEb-qtHA34-P?# zAOBC>&gguSanC--hSQrGC+;(5)M;pHbG=i`q99_0KJ2uJXtG{}-VA=kF|8LkfzHphjwl6dV=m-W+S3j3^ JP6NoiyQy| diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-ldrtl-xhdpi-v17_abc_ic_menu_cut_mtrl_alpha.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-ldrtl-xhdpi-v17_abc_ic_menu_cut_mtrl_alpha.png.flat deleted file mode 100644 index fd9b7c5edffd8c1998a3331f6162fd42c6db4d31..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 728 zcmZ>C3qfaw6EpwdJ}{m|mnqGJ85{EWQf{5*ZV^rFNRp!Vd%MU=Y?z#8 zk!Gr21k?+2if&FyQAv(&MMg?Nrf!*`IUc9!738IN2Kc%2a!GLky~FG2;SvO-4M3QK z1xWtoHsk>Y!B$Tf$B+ufx6@<0qyhz6e`|KtUtHrH-IC)Rm_BXte7{dp0`*ZJ4PSFi z@|`iW@PzZUhYoM_dBwT9RK&Kw)--s&XKI1nj+oc;{N{cA-#tZFeV*6+8-^+u{XXn) z^K0bLxDotcc*4S|6K^a#*SP1sFaESQGo+Xu_#FB7a{K<>d_C|xp;yRW^ zdbQ`<9G~o(c0lJ9S9U|M!K1qj=e_)s9=k8mx>piovnTBd!;Ftn@^=_M->d(^^rrsp z@`#4o;(Lp?KIFFlDSEN{O!rSd-QD7@_kVBi=!pxdjNQ*@P&M)M!Jj(&Z4DNBHXD|& z61SXxX6upi)Nero*8dm(pSxh?tiHAG_WQPNxw0kkikS611{2l?Yx|0B8Jo^MA-MDO z`(If<@BVsSJ-=HaZA-?=U-KUQXGl!_u5@4h3irOM>WRG(g&V6TUa!4&#}Y`LXSlqd b(d+f}iHf~-_ki)p;OXk;vd$@?iGcwCbAu~K diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-ldrtl-xhdpi-v17_abc_spinner_mtrl_am_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-ldrtl-xhdpi-v17_abc_spinner_mtrl_am_alpha.9.png.flat deleted file mode 100644 index 3f830c689d0a811f8070f9ce1b82e826769d57d7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 656 zcmZ>C322#x{qLXaR3a4Dq}C6*^9<)rE-CMCxg7i8w;r545KmK5d0 zC+5Z{<`iTk3UMkhO<+90bbwJ%f>CJ_qkd>{YEiL%R(?iaaekh@UV2et3Q&J?Vsb`m zv3^NWVqS4teo=0*u91FPW=<-Q)-%*kGf%NdG_bI=NJ%p_Ff%hXGDtQzu{5_ZGd4_4 zvq&@5F9Pa?xkWc8rKluFw<05@AXB%@&>Xkh^epuX^3oX?Is^RNdAX#xfL`MD^l%9R z(keh~z`+6}FZ&7115y%s1^zjLK!z|7^8&FL5QD&fAZ`wRcLhiV;+hM9c1IT*e>EamTas2I+y}XAE1l;x? z?&#`jYU^V)Vlp;hEq~X4=l?@muuZ z$`o4$^)7SMNiOk8$5=U79voUDS1bKXsMw~_;piV{-^Ec38#*$r{yr<*mZp@`YyAIe r^P1?ncRs8*6|{evkJ{v)((lw``C55gJvV}U@9FC2vd$@?3CIKh=^nw{ diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-ldrtl-xxhdpi-v17_abc_ic_menu_copy_mtrl_am_alpha.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-ldrtl-xxhdpi-v17_abc_ic_menu_copy_mtrl_am_alpha.png.flat deleted file mode 100644 index 251a5040d5b6ca2e681225bba308e9761d938ac3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 504 zcmZ>C3l*2&W#*&;X+1;zH1iaTL<0*;ibG-{UV@Vm~(VG=7*cWT?JaA*W&;7&iy>{MEUBGh9kHK+nUd5!I^Hc?DtBxW z>-%$Teh*jL=o?8l{&9@UEpcgLKCxAPD)Wh%BA=KX&+uM(%698h#P47x&MzJTj)zYi z{K}^mbt-#77wi2nyRv|UWBaFG;#%byoXyI+By&?!*`<;Q$K^HGqZJxiggj7*7nTb? zbEr&kVB%Dnz_0Q5dXwmt$;&QsbuC%Bv56`EPqfCH@6P$APe*sgQu&X%Q~loCIArSu<`%^ diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-ldrtl-xxhdpi-v17_abc_ic_menu_cut_mtrl_alpha.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-ldrtl-xxhdpi-v17_abc_ic_menu_cut_mtrl_alpha.png.flat deleted file mode 100644 index 7a406e1d6e024c26924c83bf86dcf1ad90eee52c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 944 zcmZ>C3KgG^v11DA42QDS*wQckLVVp4K^W^#OPYF=r4a%o9? zZb?y2d}2;PMxqd>0@DP>2h0Z;1(hZ->W3Dm78UDfz5QI<`t*q7v&b~8tJEH=A;5?JwyF8^Aw9j0}D%wlr&QVGc!{ogJg3POLGe|W5eV$ zi!@XHBA{NFQ*?7uib`^HD=IQl3Nm%e49)SlO|Kv?9q5(L06%wLE-5Y`lh@P3B?w4+ zfG`IOko^Co`V0dDQ-`OEV@L(#+Z(P)!UY0H6T>XtypDZbC-8@3$8NW6KiJB5GoDK< z=(2XHw+Q~J?p)FQ{Oq!O>nD{x<9)$X;sgj!Kc4s>hv?~*-uUIb9j8@o69XB~MnJ!;|t2g}g5^zg#kjTk27>lIQmg zKK}cThWvLI^W4>w8vjYR?DzgF6PL6`aQR4m`1Ntm;Z65|iUnEDh1QBwR4WKntnSx zYw`OlGvy!IEU!N`XPIr<$@3;>P8u||#ypc#<+}4oDf?xQO|ubiQQg6XGdQ1dC@>!> zc*KA7$7jv9;AaBt8m=-k1Z6C~yxhqw_&tw>y|1R~Ux0?k1BaQ)GK+dtwVPS`Sm%nI z-}t0t!nui_M#nwlm^kO~+|Hilwt3ELn&*!#cb7n&Gke zwX##T_8I=;vRzr)^U=Lf`}`6h&n;anbYU{jlN&kC3RMvbl++xrLdrVRD*9 znyG#fP%q3ax;ZIDB{{kk6&Wc7nYv|$=C~cFXQ@|^m(I``;OEZECB+5unx}_L5Rf(l zVh;`$ASs@5?m3W>$Sd&AkpePgfLIiW6@VB7{sXb}f6Fi+6_8gDlFY!w!lnS^XaF$~ z7(gfpX#t@?Vjv4ZfE9?HfY<}XfdWvN!$Io#IG`M3h^LEVNW|f{Q*84NIS9DzH|=v! zT2$tFob^(1=M%m!6DKLfPU+LWa3MG#SS8#czdk)>$~SV%XyVFRxJH|#35Ws z$L2_7*bJ9^TQ<%MleyL{YtqhPICA8`gC$o(Ruq@IG4!mMes8Vpt`1J&Me$*4OLe2f s15)??u8MOKk5SQvc>nMZ;~J(%hq-6o$Y)gp1-7TFpUXO@geD*p06z5k%m4rY diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-ldrtl-xxxhdpi-v17_abc_ic_menu_copy_mtrl_am_alpha.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-ldrtl-xxxhdpi-v17_abc_ic_menu_copy_mtrl_am_alpha.png.flat deleted file mode 100644 index 53be4cdc3c8fd6daac3ea9dffdbb18bed0175627..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 572 zcmZ>C3vUX+*uG$J`M zIU}`LzoaNJuQ)BgD7RSGNIxwzClyHR8S1B*r&uH!SXf%5q?sC+nVA|HB%7O9np>C| z8z!e&q?zg$0rkS1qnndbRFb1xQBjeRQjn=zW@t{pfqDgb=?n~=0eukm_% zxC8;|1Q6z60g@gQ_iqLU2al(VV@L(#+dCV34><_9B`!LAl;NGI!L)44g|C^O_`PYU zoo;Q@TfSx2_kUdbGSqJ|_xd}0W7$xyZLD0YrLf?T%XK4$2kq-}8GP0G--Qqx__Eu>N7p8qbmZkakF*fi%Jk>5G%C@U^U#dmnC3MU=Y?z#8 zk!Gr21k?+2if&FyQAv(&MMXtMNnV~rz$LSU1r33vF;OEZECB+5w6|bjGfMEgSZ`YJguE*L(v<=Mi}b3PlVxFY|5kMlOJoG`TXus_Z)U5 zpL>>_Ggfqhz`}0HGL1sVW;XFD8b;pcowwB;uS`y!Ep>Lsk`o^ui+OBr^VXJHbNOQg z>n52*=b3YQ8=SM}m>rjYE)!k%$tXfWs#WLto!0m#O)QH7Jc>`mYF-vp5NJH4^*!;f z+XF?Bwt|nvXPA_ico-hCN&RCYu}$!Tw#bJdb^l8@JdKWv#&wA?6}9@Unh|4ovE=hq z|A&+ExEVJdGKu@txVyMw=2ig#Z4m=YMadnrm-KjEbaGfz&~P&8^xH}wFEOU1RxY*0 zy4&3ic5VPF+c9HFbl!4<%m|JS(REvys(_NoP3tFwB+5@-I_);M;=fK;F6kL_KIs&g zpEOjn{>G%$>bXaU{oS*VM#=gMf=&b+KJv8m@>$MTGp@YYBz{5jO{0I}&Cjl0lb&#Y+XNB8`&db{HB>+`SsEcQ7ZSihiOU-W`J^B1OzdonK^yT5e0 z+&+!_Uo{>(-#@Evdn!Ei)Q=1GpCi`?IY`RyyW}swdqJ?kk?ju_yE(|mFHq>pKiK8q zAQ!&?XiC_GW7{7DXE6SBKFrSD`dsHzul%2f@g4gnyqftuthM%E+iUKZ@;C1#H*U}u zQL3w8J-u(jzs8@kVlA(^H6Q;L4fxWU^6@X%s(llFUB4F1BT}mvTI1|^TRiChwZH4$ z1C^8)t$f4%QlB?}OReJHg-B)C3CJ-qkd>{YEiL%R(?iaaekh@UV2et3Q&J?Vsb`m zv3^NWVqS4teo=0*u91FPW=<-Q)-%*kGf%NdG_bI=NJ%p_Ff%hXGDtQzu{5_ZGd4_4 zvq&@5F9Pa?xkWc8rKluFx1ypVBc&iyx6IHSx9jvQ^$PORI|KaOdAX#xfL`MD^l%9R z(jGvZz`+6}MWp{s2T~Gw1^zh-K!ys41H{@u37yt%pKkVtEDfj)NP&hBXYLH;llrdUEgOu;FkH$_8e+p0@JON zm&|Gc7TwD6TYKb@|b4`XqCNd*bfr%boFyt=akR{WC8$gG}G?@ diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_ab_share_pack_mtrl_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_ab_share_pack_mtrl_alpha.9.png.flat deleted file mode 100644 index 7042e6b6b6567dc6d2df79f3ddef90fe7d885d30..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 500 zcmZ>C3RMvbl++xrLdrVRD*9 znyG#fP%q3ey16L@nYv{rcpar@saKGf&cM(a;OEZECB+5w7O$s=OAwG20AUUmAi4FI z`70nLkyqfK1Eev41W;u1*2JekswA%C3;vL!U={-dmugB;VtHaxPO5%lQgVD!NnU(%Mrv|)d`W(M zeqMZTNl{L`fq{V#`vk@Xj0YH5l)4%9LyJ?3iuJSdGxCb_^Yr!7ixN|S+LIH38jJNy ziW2jR)AEaQi*=3k(=u~XfwZ2XewulTMWTU)rA11bsezf9sgXglxrwE@g_*Hoa+*b& zseTbqFU%>rxhVyix@9JKoupTgm(IY@8Q|y6%O%AH^bW75hf5HURsdlR79e@EcvC%) zn(OJ}7*fIb_KM*;CPM+1i|OhLja$C4J_wjIe~LsU-+}WNH}J{)Tg#_ARjpuqOS93* zmQ_AquC{DWo4nle_QFRGRe2_+aOm@Y(&qA;XV-Qj`A3D-!Y577a(C>^IQdiD{BZPd z-5WfK&L{7;Cf*iqxez#YeMpJov!-vKo60!;O-%SVaoYY*OMJ@1V}E;ZaiK6T-G@yG%+v$0G!96TL1t6 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_btn_check_to_on_mtrl_015.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_btn_check_to_on_mtrl_015.png.flat deleted file mode 100644 index 6b45df935b8e09a43c17ead210ce474d61d84d64..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 552 zcmZ>C3vUX+*u)SjFO)L5)v zQk0lioR(jdTdZrOpO%@E3Z(T6_0!B#ED{YYEG<&fObyJ;OpOeZ%}p%LEzFD!lhZ8H zO!bR^dSOn{%}puD)Gaf?>mJ(&LU&Qni_s;uIIZoRhkr zwYC49zdtdZFf_hST{UtdoW?c zm(#tb0WFNC{CA%*Z{m=3a<=7Pkslelb30qjX8f;t6Y!fHAf3Mv)O@)6`<~GSR`7ne=8C&X<-HGU` t<`H_bz4)KQN%_p5&ZhNi>R-#hc`hC4$$a-QFlZP&UHx3vIVCg!nE=C3qns<4f}6 z^Yh|!ONw&h4Gau~*e5V9U_8LcqSVc(A6lGRRIHzspOIIbpQo>v4%7hDo}8GRky@-@ zQk0lioR(jdTdZrOpO%@E3Z(T6_0!B#ED{YYEG<&fObyJ;OpOeZ%}p%LEzFD!lhZ8H zO!bR^dSOn{%}puD)Gaf?>m;0swFZNMF)%_=b!{>P2O*&eQ1 zBmDT7_q6vFhkqRTA+XHnOkSreQ{Rk&hn>9qhum(aKI;3h*^ybs;NHvht#NA#3qnne zE+qEYFu7)UI2k|fkTtXl4>RBYNOUp#JCFOTlNKCb5^+^p^WPui&NRJ(Z*QtKzOwmA z{I0rr(^gINNfh%;@t)kjrk1;pE;;2eOL_}W&zje=R=d+u7W@@&F5o^mUE*KQ!)6hi vQwL9r>^b+aQAj3p;X)~y*AwMW=N=bt2`*e1#P=r?7&;7|u6{1-oD!MC3qns<4f}6 z^Yh|!ONw&h4Gc|%*e5V9U_8LcqSVc(A6lGRRIHzspOIIbpQo>v4%7hDo}8GRky@-@ zQk0lioR(jdTdZrOpO%@E3Z(T6_0!B#ED{YYEG<&fObyJ;OpOeZ%}p%LEzFD!lhZ8H zO!bR^dSOn{%}puD)Gaf?>mG}7`Mlw$K zYToDN#Qv{UdYs?B%*#hL;@9rWD(kdEnLTQ~?#TCcm(IE{t7vYMj9KGj;r}l_2u>CK zawd*>v(Y<#KgTt!tQ(eVmagC}IqivJwEtT3xZ=;@?KkU zDE_}_8tXcb^%V;5*x+9c~dmc`%FnsKgBI_s@vpHtJdAF(lcGD b70e7C9QzduWS6`Hh8}~btDnm{r-UW|MI+c# diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_btn_switch_to_on_mtrl_00001.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_btn_switch_to_on_mtrl_00001.9.png.flat deleted file mode 100644 index 8e3f5288cb07dd433b1c42cc4b72da26857b9556..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 992 zcmZ>C3fRROlQE39BerR!OQL%njenwt#exANwdQoBu(2V57 zMU= zY?z#8k!Gr21k?+2k8W;CL8fk*2_bjsS?U$!rFRDSx$|;KaRGhB>*?VV1f-=wn1cmK zs^7J_2c#tO3jA|Gd}Qp{6y^9IC?@r@G73luzU}wA1NE&>R5cCu>br>W1-5fezHa33P}7C! z!{(^Jf1WMw`MBPCuf>#Zo%!pPeHu4Z#3a{8{1O1udlAG z3|=3&^5Hhdg(np+Ioy)&dv!IlCgAc4zrD%T%ub)z2p))aUiquzlSAm!SmmQ%wI8Nk ztm56dWQxR^{gFN!8&2NQUN?*7%y+?t1~tufX@1fTN)HQ`Z8);VqfTPch7t?q#z{=P z0V_{h9CBD2qJN@d>9j}HU%NLm?J;u^5lOGUwD<#?_vpK!irY$M`X`C6Gvbyuqv&*e>r4N2N$+z;}ujA4Qd#gUBuwO1#wyfV6 z;Pf@)?okhS={4K$RY}Vz$J#`>mo79(2z;IDvv%#A_och%O`JG!-raXU@7>~B_UdWf zCE+I60hdT=>227E!cN3)n!r$D8+cX`njxgN@!wW005!@a@GI< diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_btn_switch_to_on_mtrl_00012.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_btn_switch_to_on_mtrl_00012.9.png.flat deleted file mode 100644 index 5d125ec95498239f74ee041961338c3501c2e1f3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1064 zcmZ>C3IOH4-}L7Ss4YS1o8@el91&=>^Y$e&4E-(UO`AQ0}BhM z0+3?>#6WwmYMWyn4?HxU}S^UQ(tn!Ux&gGvwvopQn|1Oss6IfFMnGURJ7XA|<_)<<} zkF=(V&YQm}cl~#`-eykzs5{B@keJ%@w8#0WcS2XEyB|GTEcUwYT+2?T6Q^rLEN1EF zukL#Gd$HEjw~H$kR`Lvl> zK5BpLG5KQ6cGj7ncPpK7Z@ko%wuo;@>!fFwycT48^IO!e?}*V5Y4E%FvfY8(gJH)+ zhfk}&JUsNB!{LCZ{ZG{kY#Y577+l?mbljVEb7S)HX|K0#Zhorj zv;5M@h1a@nm8-__Can<(-sqpd>AhO~akkLEe?I*_*&lCcx-8&VY(A^nuBr$A{P*|% z5oR?1{a9gA+LBM3dG5~p^f=AqM`z>32$iIz&wGBZ&Xc-u{@R}XujNhn_ozoO+~)=* PJWp3Ymvv4FO+Y39tC3qi1&jw6StJ;hCNb)V7N-^!>u2R>FcEzC8hvP zNlr}8NG;YcDN4*MPRlRKE!H*CPs_|n1=4zk`f27V7KsKHmKG^#rUqtarbY(I<|dZr z7G}nV$!Qj8rus!dy)YN)=B5;6>Xw-hcA1`~UO`@ZXMmqOFP9V-&}+P&9xg#ZS^|VQ zSb(Hg-Pd9eC$GRi2S{Up|3Hx&vJxpkDkQHUB$*55F9;P4$<-_%tObjMwF*Bt6VPu{tv{wpb Nkf*Dk%Q~loCIDXdXGQ=3 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_ic_commit_search_api_mtrl_alpha.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_ic_commit_search_api_mtrl_alpha.png.flat deleted file mode 100644 index 6c3f2562772b3f4968033a59aee33fc1982ceca1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 416 zcmZ>C3tSt zBqt_kq!#O!6eZ>rr{x#r7V8@6r)B1(0%<)%{WS9wi$ntpON*2=Qv)+IQzL_9a}!H* z3o~QGK~K(HJ(h(Hc4)y>NbC3hiFw6o`9-kGnK`LITF+2F%{;{-(ZIseA|=h#z|73l$ROF=#M0ct%-AqF z%_7ZIzX+%o<`~`Fl!8p%G7|!h(ksYIXJF_I@N?(olHvk-iPzJ^B?w4MfG`IOko2ni zS`4IoJY5_^Dj1W0_$##pH2#nOcbsuU7K5g`C$kfiaF9PU(9wQdQ>A_h-aKbLh*2~9vI E07_|eO8@`> diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_ic_menu_cut_mtrl_alpha.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_ic_menu_cut_mtrl_alpha.png.flat deleted file mode 100644 index ff0ea070b5783ff1c2e718583639b364c8bf7f0a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 476 zcmZ>C3;mH7U={-dmvTx`VtHaxPO5%lQgVD|a(r%TUTJ)CX-Rx; zNl{LGVopIuq7eH8#s!QA7+I7$8TCVpQ;UlAv+^_Yiu3dI_0o$HQ-GS26O%Jii}g#2 z67!1F@{4kdb&d4XGILUaw4R}Unt6&vqJf2_MM|2ffti`9kwLP#iKV%PnXzGVnnjwa zei2YF%ptnDDFvCjWhQtWq*sua&cM(a;OEZECB+5w3a_V!OAwHj0AUUmAn8^2wHQbp z@^oZky>8DZY*{%^cO~y$k)H*eI~&qtYBp&;O5Iy`Z>jwIhUGVwUQw;k zsaegqzUzopr7yu~Wuk`=` diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_ic_menu_paste_mtrl_am_alpha.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_ic_menu_paste_mtrl_am_alpha.png.flat deleted file mode 100644 index 0ae53fb8c68c842d47ea6f140d855d29a4b285e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 384 zcmZ>C3Qb`dRrIdByp8`g-X_i77x6k`t3N zQj7IViW2jR)AEaQi*=3k(=u~XfwZ2XewulTMWTU)rA11bsezf9sgXglxrwE@g_*Ho za+*b&seTbqFU&Q%xhVyix@9JWT%}i#m);rR=g!L|#Rc>ducwDg5RjGtVGb4`=~ef& z7)Zr?x;TbZFupx~l<|-OgTuv`38@9g9KIhaJ#vCq>_^P2bw9GD--;)0*;(}bSm&}6 zP0ZU$|M+{G#Kp2zNIv`L@Yp<|XZ|<#23z)<&)0J#U6KCNT%X{v_|HL^xqqyKKdSKm X4Tx|T4=57_TE*b$>gTe~DWM4fcUyt_ diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_ic_menu_selectall_mtrl_alpha.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_ic_menu_selectall_mtrl_alpha.png.flat deleted file mode 100644 index 7b11c3fcb37d664fda2a7f632a5c6ba375f2e04b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 376 zcmZ>C3(0(y(r)59eQNK1e)2Mdt& zs{2|Dq=GzM978G?lO?u1sDJQ(dV&4QHABojZj0AB)k2?*IFm&Au};FpB@4=ob5z6=*tx Nr>mdKI;Vst1^_3ad8PmW diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_ic_menu_share_mtrl_alpha.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_ic_menu_share_mtrl_alpha.png.flat deleted file mode 100644 index d23651796c73524a56d81ab72d186afd22c2f8f7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 500 zcmZ>C3;qyxD4R<)r6{pHF)1fiKQSpeJ~KH!H#M&`zBnVXC^bH} zq$npoF{dCSQHXs4;{wJ5j4VpsjQXL)sYS*5S@{`x#rb*qdg(=pDM0PXiOCtM#rh>h ziFw6o`9-kGnK`LITF+2F%{;{-(ZIseA|=h#z|73l$ROF=#M0ct%-AqF%_7ZI zzX+%o<`muBl!8p%G84Q`(ksYIXJF_I@N?(olHvk-iPzJ^B?w4MfG`IOko2niS`4JF zdb&7-bh?%28OzuM%~V=k|}9BaJz zxc1&dJEl)_>rbm*<-R@o+^fUx*-a65#6I0Oo7{9Ggh|3kz2m(7!-P1c!*z;Zx2bJ< z^EG&3x7mt=(W{$XX1?umOnw(R=f{>)*;{VCof34kZC3hiFw6o z`9-kGnK`LITF+2F%{;{-(ZIseA|=h#z|73l$ROF=#M0ct%-AqF%_7ZIzX+%o z<_O)~l!8p%G7}t*(JRPHXJF_I@N?(olHvk-f!EW+B?w3hfG`IOklgyq{1uSu@N{tu zsbEZ25cObCj0-p)(Ct5K>O;xH!fax9xRfOSF(+!6X_m1?vL&}oPGCJQ(bHg4*0RL% zaPa~IHkPP#rr@MwAB4KM2yPPX;<+BUWWB+Og}a?tT^pH}8UGCwsYuj%!R9@O%}L;H z+sX$PhppR6*whrxq*RC375w~}=mam+h(zDh5y1?y|p+};U(z|l6yjx$j)_(i9;&1Oi zHPqjp8$WZ=93!8Cmh&}_1h}p(R+(}(N0Fu3%&1ktXA`6IJmqWi5oym#fA8Z8_1jHS$+s(nHxri_0Slj{2sV zoXI(X(`sP@_ugL0InhDBXlSJI=1p2)kYra{2o*BMkTVLpW z=kAOG$&Z&UzslcM{!^LqZ^EL&BP-wU7h2vH@KWSa2)Fr8SM5hv0z)cWBcj!&d}Uap z-jjOdR&dD4EpfYR_#V7bX#L|L5EQVKePQ$Niq8#sEoC7$4jTooIX<2D$fh%XBC`Lc hPFgJEviW}CV_5wqZ!PC{xWt~$(69C;O<5K_t diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_ic_star_black_48dp.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_ic_star_black_48dp.png.flat deleted file mode 100644 index 3c9f9b02434a07995898e7bdd19ac79042e0ee3e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 684 zcmZ>C3Ds`x6A~GWAqC0(is>!1N_{1xum#&&gb>?a0vp^1|ZDA0wn)(8}b0XJj>I? zF{Fa=?Lk|QP(}%c3y(jypKw(QT)As^3rE?Th%jZcgs!;5EOTC&%!1nErmc z;>qHOVz1siC7oLSCsr(p+|9TAt7OUX4#~i$TLicBzPh~Dd3Tzs^b6CRGcA$cN{>}H ztMy1;%bu&2th8L;bmgLh6HYvI{`xN~;LqdioHfT6ov64d$yxGC&*;xGXQyi4?kV;+ zm0Qj7UArDfExGcd)uZA{nB8 mGSB8EQZZ!?j%K;Pn1y%vxG$Ej+X{><22WQ%mvv4FO$-3A?GK&+ diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_ic_star_half_black_16dp.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_ic_star_half_black_16dp.png.flat deleted file mode 100644 index b2cb0c20f88cf4180e9bc50b62c546be26bbc64b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 372 zcmZ>C3Qb`dRrIdByp8`g-X_i77zc$%)Assm1yw zMTvREY57ID#kxlNX_+~xKw8gGKg~SFBGJIY(jq0z)WFQl)W{&&+{Dt{!pzt(In5%? zRKEzQ7v>V(+?0Y$-7*t=F48N=OYaQubLZuf;sSbw*VDr#2uKTnFb4~e-1^J>6_ASb zba4!+U`$pJ-5?kw;Oudb^UtMaJpVsxM|8wCN*=apJIkXk`Of&y(Nrhq04BD=28*`% z09K1ec12dR7Lh5C3K>;dAxU={-dmr6=eVtHaxPO5%lQgVD|a(r<~Vo`iXVoq9o zQchxWcD%7!N`Vmj1jYr72N+qDx)}9Ci&Kk=^|SIb@{05G^!3t<5>tS>lM|COQj7IV ziW2jR)AEaQi*=3k(=u~XfwZ2XewulTMWTU)rA11bsezf9sgXglxrwE@g_*Hoa+*b& zseTbqFU%#nxhVyix@9K#T%=c!m);rR=g!L|#Rc>VucwDg5Rg^@VGb4`>CG7+45W^D zx;TbZFuuK_8o}nkz;f~6U8A_dZWF1AP2Ni`t%y*XxPjyEVb2|3n|7<+`RZ|F{ej%( zoBtkt+Wy%&L~zluiBsAfgWB1;o_R4}O%$2H|5|E=z~V-?+=U53Cl|L&pYN=?<$|w0 zcTPcP;SGMTG|tCm_F8S8yey4hG87uzL|II2G88l(_%J(arAujaSo2Qlzv%E)E5n2N zXThh|o7;E%{%(88%VPhUZ*ym=h;~;QO7v+Q-;_HqLz(OJqZ!J=jthT$*!e$>QGdhI X%H%8if!<+Y@O1TaS?83{1Y`mLR-~yJ diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_ic_star_half_black_48dp.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_ic_star_half_black_48dp.png.flat deleted file mode 100644 index 6bd98ec9e0cc9e11e9c91e4c07dec40c9335750a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 536 zcmZ>C3~b@l$Zk4ot&7Qky@-@ zQk0lioR(jdTdZrOpO%@E3Z(T6_0!B#ED{YYEG<&fObyJ;OpOeZ%}p%LEzFD!lhZ8H zO!bR^dSNcn%}puD)Gaf?=OVp=y!6fhKX+a(DK4Nlcs)H_f`GIE2y?Ii$-mr&JRr)` z#WAEJ?(JDa?IVRU$3ITr{d!vTk|$3DJ2nN1y_9QkT_e^U#5VD0k^cd;W=9DLo>O(r zfo!FzfkMLEnyp_puUP#*dW=cBg5IQb(=2dnrE6~5fhRcPe&v; zb+LX+Ze*0-c%V&$Gvv;3rs5#K1xXiXM0SU5eQWu726IH=s>QEw_J_pqEr?%UF3cEE zF2U_!EtPOGT*u*bw$6ba?GX)$*Ecfoif?2H-Mx|F^2GybCIxcbUn)CU-IhiqSV~z; z=qgrDE^qy8p1o?*Rh>KX*{5#RypOrw^XBcJx%;ETg)dB1u{2a#(w4tH>d>rBOW)Z~ eo%)xlEnF>b;lXQqz<^-zboFyt=akUIzyJWSCd1GG diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_list_divider_mtrl_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_list_divider_mtrl_alpha.9.png.flat deleted file mode 100644 index 2029e6a2fd33416d6a775260b913d36751f46d6e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 396 zcmZ>C3vUX+*u)SsM~oRM0r zUs9BqSDcn#lv}K8q@R|VlM1Bu4E58@Q!Ek z(oFS>fO=tW(alXM$kZ(}!RIDDOTB`;^v(c3cU~?jE}&OFVdQ&MBdZ0RZ18UHt$6 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_list_focused_holo.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_list_focused_holo.9.png.flat deleted file mode 100644 index c39921c477c9e0c764b9f2de8bdd3060334a7690..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 440 zcmZ>C3qi1&jw6StJ;h+8Fgii&Kk=^|SIb@{05G^!3t<5>tRWlM|COQj7IViW2jR z)AEaQi*=3k(=u~XfwZ2XewulTMWTU)rA11bsezf9sgXglxrwE@g_*Hoa+*b&seTbq zFU%FXxhVyix@9KVU885ISCE(98Q|y6%O%AH^a8J^hf5HUW&>dk5c%NDdk-KbkyqfK z1Eev)OrXfIfDOBWR7hSyNHPNx6Q=@@qXER|zyKn^1f*Di7);MJ-ue_7`=Rkca{ukO z+X2-pdb&7C3;dA-U={-dmr_bmVtHaxPO5%lQgVDwW^qY;PJUi`K~ZXP zacW9@Mt)Ad5c>qi1&jw6StJ;hx)}9Ci&Kk=^|SIb@{05G^!3t<5>tS>lM|COQj7IV ziW2jR)AEaQi*=3k(=u~XfwZ2XewulTMWTU)rA11bsezf9sgXglxrwE@g_*Hoa+*b& zsXov;eV9vhb5ja3b<0d}yGYMcuOKhIGr-TCmrIHZ=oMa150@Yy%?838Ao9VP_Z~n> zBCo(d2S{UpGe8lmW`AuU6_QsFlFY!w#Hj$}XaF%fFn|a!0Vx(B2GeI4W}YF0KlX09 y2~;oU>Eal|aXmR@M&&aeX0ZcD8kjFQGcmYHGTC;oC{6C3;vNSU={-dmvTx`VtHaxPO5%lQgVDwW^qY;K~ZXPacW9@ zMt)9yd`eRMvbl++xrLdrVRD*9 znyEg}PJNhDbaPV*GIh&L@Hk1&Qm-H{oq?e&Z5c4=}L%@bFA2WC*Hbl;A(;rw20F)78&qol`;+0|46Ub4vgK diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_list_pressed_holo_light.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_list_pressed_holo_light.9.png.flat deleted file mode 100644 index 16c6d9284bd1c9cff149c55e5a4b79a03bf9d784..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 436 zcmZ>C34Yb z~b@l$Zk4pPZPSky@-@ zQk0lioR(jdTdZrOpO%@E3Z(T6_0!B#ED{YYEG<&fObyJ;OpOeZ%}p%LEzFD!lhZ8H zO!a}5>ciZko10RQsas}(&rN!kdIfpuodJICyj)UTK(Fw6dbk7uX*Lk%U;&a|N7WAl zDT%xS{~REV0gQnnPue_h0jZF@f{C3ds2LyJ?3iuJSdGxCb_^Yr!7ixN|S z1|=sZXQUSEmlP%D6{qDF8EApqylL@L;W=K6pKUy3rmZXG*bgJGgBjjWOEZs za|<(L!{juJG*kT|pkA1xbaPV*GIh&Lh;p2srCvc^Is-#zfS)@rmlPM!i@cs5EC3RMvbl++ zxrLdrVRD*9nyG#fP%q3?y16L@nYv{r#JNt-Qm-H{y)(eiotI0B3+P2&PY;(M5Dmnd z94tW6<$m^cASIDk;GYAe!2lXAV75GvT)=hWERYJxD+ozuU}EA_0CF^d7#$cu1lWNT z2M`Mbu?R>%2m=8lF81D#LVcjTjHioZh{fsTlnLnv`2HCiK44iK1c4EZ3y85}Sb4q9eG66Z6ZA<_F diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_menu_hardkey_panel_mtrl_mult.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_menu_hardkey_panel_mtrl_mult.9.png.flat deleted file mode 100644 index f774cd0fcb2ca9d8d79caba238d49a47638fae57..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 784 zcmZ>C3i8JTWOJRX;H)IX*WvuQWa*u_z@wwKBdS zF)uYIKDVR@NR;N32(eFKT)=pMkwt=0X(FS3XmM&$v3^#5MqY7#p1xjsQDO?vkmSVV zjMQTNlA^@C;J{XrGca@p___0PNpS(a$Ls0g5(K0jfLMZq z1xP;FYkVHW$t&>B;Q%sV7|3LBY>IOD52Rl=sD}e7fxH5rB$zyi27zZA_ND=;ki3GB zWCkWCP6Z%G1BihDMX3Qq4CDwiAO_K5Kn#lmF#Z4Ezke_>7~57{S{JCy#nZ(x#N+te zX})=f6$ISmlmATDx#YX<;^M98Yl|l4t)VXC=e#+(z4@z_les`!VO!82XEj@buJWKlp#aq_7)eIsJ z9j@33eqMBazli9!TSh197$PeY6Aub@I2=j!w_rJcVxsW#)7gJ|POhlkv$x>ck%@x+ z4^G)VuYWHo`M7m*BF~=F#^LMkM0^UXSixb-ym_UKjp6IIBQ;!74a?IXCCsbjb75+n zaDMug53eO8W}anCb8C}I_c+TSJFoGiOhVFu%TqbBpv>UX4 z_V@Cy$({UU7W=8dE!(C&i)1$8_|1J_Zr7ifwQt`uZ_C3%T3EE0@L{fzpd#i>Qb`dRrIdByp8`g-X_i77xMk`t3N zQj7IViW2jR)AEaQi*=3k(=u~XfwZ2XewulTMWTU)rA11bsezf9sgXglxrwE@g_*Ho za+*b&seTbqFU&c*xhVyix@9H=oTX=}SCE&^z|a}s=g!L|#Rc>lucwDg5Ri5NVg(Ks zAjvUh8$Xbe$Sd&A;Q;ZGuwzq{!+#+EZBO7zASIAj;FAQC=L8CXaJbN?A|Mr#R}hlS zz{JF<0OV)@F%W>1f|P)11CR&<1IQ6(P+AN~!@?g-{|5qeF^z}3pBNaJ^gUf1Ln00z zoql%G6$O!2dybhmre2a1|ID#(rCravuc>#U^44DTEN@`Y+o4!8eI3j5Wmd6~a}Qg7 z=dXAe@UoTj#q_WPF(()1ea&o{^zUD+jzB@HP{P$8D^~sq@^xA&6|?xsMbW8d7dkyA zsmrPOOy%uj?47nf&qqP1lSL_T-*=e+E|yCM2?i313#9}-nD%YlDA>T^5@P1E(9q|M z&4(XkKcUf{!x z^YiDtXMO*7dVhqCW625anWubzh#Ifo`CRw=p2TVM*3RDXZevWukCVdo6_3QZwflM# zP8IM}=xB4#YDrGb@iWm4-j%9~x6F1GdsA8k-Ju~uuRN2phK5lWba}kkl zr|c$(-YB>vV-|Lc&H-x&iWw|JX&p4i3=-OCvr>98p z-TyeYWmyRa>h`FFZhN@eY0bJcL0u6h=5;zx*IxTnYsmje?|akZw30jRMmy}-+?bhe hc4(aI{;%?bH{n9XV~!1(TY$-l!PC{xWt~$(699MsZd3pO diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_scrubber_control_off_mtrl_alpha.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_scrubber_control_off_mtrl_alpha.png.flat deleted file mode 100644 index a3fb5ef38ab6c72f4f5b335d06db64e5ca22773d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 400 zcmZ>C3tSt zBqt_kq!#O!6eZ>rr{x#r7V8@6r)B1(0%<)%{WS9wi$ntpON*2=Qv)+IQzL_9a}!H* z3o~QGk28LNc8yP%Z{an^LB{VSr07I9AI{*Lx diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_scrubber_control_to_pressed_mtrl_000.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_scrubber_control_to_pressed_mtrl_000.png.flat deleted file mode 100644 index fd78aeddbcbdc8565fba07f5809d96ca20a6f6ef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 400 zcmZ>C38EApqylL@L;W=K6pKUy3rmZXG*bgJGgBjj zWOEZsa|<(L!{juJG*f+`h59gO>E@;sWa^fg5bZp@g1mGFhRy&#cU~?jE}%DgJw054 zfHV&XbFcu(KQ&WwfK-I1i(^OyW9bEUK~_T!wuk(x5go_6*UsTvvgcm)+`0P>@H==+ z-n1n|O;f?-@U4f(Zmr?Gw4uBrG2i3Y=3h%!2lLr$OtU}wY5foDSM@*smpU8&xA^c{ dHI}O{^;_Xu8=lC3{T&PXlRFDXjQD^ANV$}QG4(of6GNd?k+hWcsdDHe$a7M2z%X{H8dW~N34 z$>t`O<`!nghRJCbX{P!>3-w{n(#=gN$kZ(}A=-I*1$pTV44naf?z~)5TtIK~dV077 z0cjx+=3oJme~!D|0a87lE{-7;alMx|u5B?8ak;3xll4yTb`B{6*Q8yI0#Xef4F5A) z!{SfunH~4i)0o*oU3#tG@~axJ|HMr2Df@aXZ&FM2%d>i4#izUKGn`ywXW)H7bDjIk zAeT+fwZ{~VSMhR12j8-oed(uH)z5V%OFtPk-QfG2s>`x>X{f=$=l4VSCZAu+aB)G6 g`*I1F2K$Hm{_QR_ciRSZ7lWs(pUXO@geD*p0EH->jsO4v diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_scrubber_primary_mtrl_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_scrubber_primary_mtrl_alpha.9.png.flat deleted file mode 100644 index 7c234c38ec92129eb97ab5a9f436e5cb94efe065..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 440 zcmZ>C3W3Dm78UDf}HPTPZ%t-~(dWQOG<|!751{RhUDQTt#W@e^F2Fd0omgW{_ z#)iph7HOvXML@kU_vq%P6lCg_nGkZ9o~2$vUV3MMpF1y?6c^B2yq+E|K|mVB=HXxg zk{^?vXagyUyaN9mAkDxEB7gu!{|BbP0l+eTg0F>-#Jpcdz diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_scrubber_track_mtrl_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_scrubber_track_mtrl_alpha.9.png.flat deleted file mode 100644 index 9804cd23a38cb7f2bcad0320ab9a5acbcbe68363..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 428 zcmZ>C3qi1&jw6StJ;h`WW>?i&Kk=^|SIb@{05G^!3t<5>tRCBqt_k zq!#M~_2w0)l*2&W#*&;X+1;zH1iaTL<0*;ibG-{UV@Vm}_)%QwlP5%S`aQO3zZSATPZ$z|WnRONtBVC0a4M29`MB8ZZjfqES3j3^ JP6C3~b@l$Zk4ot&7Qky@-@ zQk0lioR(jdTdZrOpO%@E3Z(T6_0!B#ED{YYEG<&fObyJ;OpOeZ%}p%LEzFD!lhZ8H zO!bR^dSNcn%}puD)Gaf??IJx(y@I^-&Hz7mUM?vvpf`9uJzRo-v=9(WaIgT$*qGE^ zAWmL^e-1m4!41S5P#Q=v{0HKj-}<$HR6t%qNHPNx3!4IvqXEQFAOK@nz!(e+&>#fU zVnAUDgcO(s4ORw*vlA3R;oRrx;uxZF{_TW~yoU?~T<`Bx%H=Xka93H@$ZF(#tYb!l z$QKu-ekI2n6Q!e$M1J!87ytg8eBI8ZOgGoh)sqg+V-E}{yJM!)|LR4p?cyq-$v?`Z z9=X=Os+upp)1)C33s2^IKT2!o`m7kGUoS&z!mtK^Z0@R z(oFS>fO=tW(alXM$kZ(}!RIDDOTB`;^v(c3cU~?jE}&OC37(8&dVjm1@scHr-w@rkmdnl4i+H! zr)EkHkdnwN@CVTt;6G60hO9&ikg~`t2uWsOVq#JNax{P#9T*@4Ko)=i$WlhI85*6! zK(?f(i(`ny<>Um3XAK|ix%oKT{@+lYQ6S06P}9o9ZY$VS57Oo7>gTe~DWQph0RRu$ BVsroi diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_text_select_handle_left_mtrl_dark.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_text_select_handle_left_mtrl_dark.png.flat deleted file mode 100644 index 699b0c0e8567db4f0145a735f418d5c32611503b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 448 zcmZ>C3qi1&jw6S(K(Q>W3Dm78UDfz5QI<`t*q7v&b~8tJEH=A;5?JwyF8^Aw9j0}D%wlr&QVGc!{ogJg3P zOLGe|W5eV$i!@XHBA{NFn{;zi3Nm%eOo(%vUO`@ZXMmqOFP9V-(0ja|9xg#ZS_g>5 zIM{&X?$o+dKx&ewi(^OyW6}cC8ynuQU{>r|*Dlv5#E|5$yEKH=fTbaD$0;S9LrNVA zO>RJ)BiS*n@*D;{IwA!)eP8Nby~5n#^}*<22>1 z4>m|ytY=$iWpLb%=|hon&B0954e`8xULKT@Rd3qN^v93I+F{~;O&f(17iGAoxyv*x foA>kgUbgDbDrKf|4~u}VWAJqKb6Mw<(8K@$yeyYh diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_text_select_handle_left_mtrl_light.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_text_select_handle_left_mtrl_light.png.flat deleted file mode 100644 index c26ad225bafb974d0de32ecd56441c4bdb386f40..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 452 zcmZ>C3!lYZ z0(IyoCnjg47VDQ3CFT{Ul*2&W#*&;X+1;zH1iaTL<0*;ibG-{UV@Vn4@%aQwlP5%S?!LoL)g*Is-#zfS)@rmlPM!i@cs5ErNFS}uOQa5#|3fhS{o-ztVS1_Q3}$QIWK z7D1N_9za6Sk$FYJ^`GY(+kfxLXSmJ1_s(kNl^gS9I1e(suAZuP?2|~u;e}BJml`dv z6)h2y31fbK^*|{5vm5RVad|EJ7HiqQt!}ipow4|_OF>w}{muk-jZfyS>@1eEk`I3B iV7_q0xPJe2hS||K9xdWIn+9|pgQu&X%Q~loCI$fIh?~g( diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_text_select_handle_middle_mtrl_dark.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_text_select_handle_middle_mtrl_dark.png.flat deleted file mode 100644 index fefbc99cc73d510fb743355823ae3de0122c24b1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 560 zcmZ>C3L({AXQUSEmlP%D6{qDF8EApqylL@L;W=K6pKUy3rmZXG*bgJGgBjjWOEZs za|<(L!{juJG*kT|pkA1(baPV*GIh&Lh;^M_L0)=ifS)@rmlPM!d%T_=EYt~JV@L&Kk^+m_8|zbyN47Rxdv!>y$$(>l!NkcHw|U-OIOz3GR;e({Oi6|CZaTaqjquUNRQnf^fW4x6KR``wmB zH=H>#m5$ggn#;0%LgSW+2g`Pw-*(`58PMVDBF!r7;kavx(;_o79`Q?yd(65F+4U#b z*&e?5fXSwL!E#+*JEtC-j1Tt>ek?zDz(6A7f-%o7sXqohby*)y8C0x27`cPZFg#jH z=E!Ep53bQiuNraf?~iEscw0X4amaF?L8pSJeuf3ICW@XDJ pbLJtN{Ri&4!uCpw-gjr2?AMjb|I|@u0fq#Fr>mdKI;Vst1^~#>&szWh diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_text_select_handle_middle_mtrl_light.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_text_select_handle_middle_mtrl_light.png.flat deleted file mode 100644 index 8a508f16f306df186571bb113a67a1dbf3f0e96c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 564 zcmZ>C3qi1&jw6S(K(T>W3Dm78UDfz5QI<`t*q7v&b~8tJEH=A;5?JwyF8^Aw9j0}D%wlr&QVGc!{ogJg3P zOLGe|W5eV$i!@XHBA{NFvvhM)3Nm%eOo(=#UO`?u14CzkpF1y?6c^Boyq+E|K|opr zh$T4KfaEXlyJbM?ucwP+NCjh(0*g@AZp(%pVi%%fZ@37sF^Z@a38l|ID7$Ni#=CW? z4+8kZ82Do6tZ^xOcXsFNoKHu;ul*AyAphdKQW4|&2aDzh@TgCaTHf(h$fo7C!iz^6 zW(SB=b13?@+;HDA`GJ_x1T&)>dEe8dITU5NHg;w#PGHjXm>%SDZFz-3*^S zV7;_F-9jp+Azk3hmZb;XJ0`O8{*z|=Zz3VV#>`vQ<`~{A-*(WSH%^jmy{QHFb%keH z-p$PwW*qx6R_};%d-z?D+aPZDyy+8O7Rs(SyS;CkV9C$4)g9YziK~BLT7Py|?ctE+ t#~Ye0?>u0yJE;H8fPeYLy^%kb`>(p@@_05dAQ(Jd{an^LB{VTG004Yb&K3Xw diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_text_select_handle_right_mtrl_dark.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_text_select_handle_right_mtrl_dark.png.flat deleted file mode 100644 index a0e88c194303915a75e2ad0e0ecdf8288561688c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 436 zcmZ>C3!lYZ z0(IyoCnjg47VDQ3CFT{Ul*2&W#*&;X+1;zH1iaTL<0*;ibG-{UV@Vn4@%aQwlP5%S?!LoL)g*Is-#zfS)@rmlPM!i@cs5E##EF{FYqSwS@CM){RSi8BTd7#=?OpYq_l!ydT~;f9EW57rWw zKe9R>KgeNI&tWO?@WsN%2`qdPS$zBKugLtVPmr~F^&pVF->Txu!T0U6ny>Slva9o$ zvU3MmM!s3@&b*?bi_dI9xN)(asLX5z<9rPZtHcGrDi|GV=1(#4_B3K(uu-vg>E8Y& R9_ShdPgg&ebxsLQ3;^4Aj%fe@ diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_text_select_handle_right_mtrl_light.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_text_select_handle_right_mtrl_light.png.flat deleted file mode 100644 index 6e627d90773b0cb3cce028f1c56c5888e54c2637..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 436 zcmZ>C30pkHi7Nu#7`k}?CMaBAA`5Ae|`FZ+!=|zb^ zE&9oc$r-7|`Xxn)dBth@MY+YgM*3-)IjKNe&rmz{1iZCC${p%*@otAlcl+ z(%iz#*f2TGBF$942&fn4D&5?af=t~q6JlMbSCE(98Q|y6%O%AH^dhgPhf5HU)&XKM z4mKdUJGJf4Rj2H Or>mdKI;Vst1_l5E9*>~_ diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_textfield_activated_mtrl_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_abc_textfield_activated_mtrl_alpha.9.png.flat deleted file mode 100644 index faf46cb914ef6b3d4cd0674816df438f5727368c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 428 zcmZ>C3S&PXlRFDXjQD^ANV$}QG4(of6GNd?k+hWcsdDHe$a7M2z%X{H8dW~N34$>t`O z<`!nghRJCbX{P!`K)o<0>E@;sWa^fg5aBdEOTB`;bOwgb06%wLE-5ac_jo-$T!Mf! z4-j*6umH)2l}oMwDT%xS{~REV0saF;Zpccc04a;Sf{C3IFpGhKOEaY?u{<#;CsjW&DLK9*wW1^~Gc_kAJ|#6R zu{5V7KDVSOCq6N!AR|$TeFEbG#siEj5{ya{8TCVpQ;UlAv+^_Yiu3dI_0o$HQ-Fpf zCnjg47VDQ3CFT{Ul*2&W#*&;X+1;zH1iaTL<0*;ibG-{UV@Vn1gh4QwlP5%S;G5OwUrUATOPPp)Kq1|}vZ1t3QQh|vIx0YU&| z0SK@|CC3qi1&jw6StJ;hW-;oA7N-^!>u2R>FcEzC8hvPOHNGANG;YcDN4*MPRlRKE!H*CPs_|n1=4zk`f27V7KsKHmKG^#rUqta zrbY(I<|dZr7G}nV$!Qj8rus!dy)c*Q=B5;6>Xw-h??OFGy@I^-&Hz7mUM?vvpjUZ4 zJzRo-G!GCnbFhF!wA6M2DT%xS{~REV0saF;Zpccc04a;Sf{C3W3Dm78UDf}HPTPZ%t-~(dWQOG<|!751{RhUDQTt#W@e^F z2Fd0omgW{_#)iph7HOvXML@kUcj@M)6lCg_nGowfJxjfUy!6fhKX+a(DK4Nlc|AQ` zf`Bv+5HoYIfJC&^b^*9fwMP5NjG6NG6lLC;V0mNv4(EuR; zvH%2_Kt%oj|Nk!(cy9wT1wCCHLpZJ{Cn$&-{9AuqkC8!nD`Ug1m}{IMg`Tc{F6*2U Hniv=WoOo(` diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_notification_bg_low_normal.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_notification_bg_low_normal.9.png.flat deleted file mode 100644 index cbd8dc12830005b69b759b394d2bd99df5767134..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 444 zcmZ>C3;vNKU={-dmvTx`VtHaxPO5%heo1CpW^!UlW`16LQhIz& zetCReeo<~>ju86<#s!QA7+EA3mAV=ALyJ?3iuJSdGxCb_^Yr!7ixN|S+LIHLGg6E7 zONtWniqnAFigk_j(=u~XfwZ2XzL7;zVrsHsN}8onT56Jcs;Q-sQKF%dVNz;Rl7XpV zntl;bFU%>rxhVyix@9JKoTO)|SCE&^z|a}s=g!L|#Rc>ZucwDg5Rm2oVGzOaFy&!5 zkdnwN@XrD9(ZPS9zztc66d)CnR}hlSz{JF<0OV)@F*-1S2(SPtHXw%4u&`zP&(F_~ z4X-LVyc?)q%G1R$gyVYhl!T-NAoy|o(_BWT84@QF85ml7m=tS-C3}8CMT9;=I6yHrN`&w zm&X?rr4|>brUfRROlQK^SfKeRZts8~NMKO?U=KTlsTy(lpSs6RO|IU}`L zzoaNJuQ)BgD7RSGNIxwzClyHR8R{EZBqgRM8>XaL8l|NsnWvgs8W|-T8W|>~CM6k| z8m8$3ZPJIiMK?F4AXB%@1fQGqEcFWV(mMnE+m71 z04a&Q0{Kq1|}v>1t3QQh|z%oM1TcIu>moRhJ`KTf7!rP zZ1}{L1(HDZN}eu`Asp9}L%L4^J)Gpg`v2eGC3ju86<#s!QA7+EA3mD(BgLyJ?3iuJSdGxCb_^Yr!7ixN|ST9Xr#Gg6E7ONtWn ziqnAFigk_j(=u~XfwZ2XzL7;zVrsHsN}8onT56Jcs;Q-sQKF%dVNz;Rl7XpVntl;b zFU%RbxhVyix@9IfoTF!{SCE&^z|a}s=g!L|#Rc>RucwDg5Rm2oVGzOaFy&!5kdnwN z@XrD9(ZPS9zztc66d)CnR}hlSz{JF<0OV)@F*-1S2(SPtHXw%4urOu(FCig;4gYDJ zyaK3R%G1R$gyVX0NJ>%y5d1j)X)Ytv42cto3=AFIOj_&pUJHXP@O1TaS?83{!~g(b C1!yM# diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_notification_bg_normal_pressed.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_notification_bg_normal_pressed.9.png.flat deleted file mode 100644 index a3de45af8a9e2964a0aa9f5ed3a4b85cc6dc60f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 460 zcmZ>C3PJBU8YH@LDiV*t*#s!QA7+EA3mHHX=LyJ?3iuJSdGxCb_^Yr!7ixN|SMkFUD zXQUSEmlP%D6{i8U7wa17r)B1(0%<)%eItvc#METNlr&4DwA3W?R8vbMqeMd^!=%)t zBm+~!G<~2=`Y`9{=B5;6>Xw-haF(8>UO`?u14CzkpF1y?6c^B2yq+E|K|q=VggKai zq<6079Uvu_?Vs9?7)!*W}X!+3|}hQ W<&;iqIsjEOc)I$ztaD0eVgLZ(`gkb- diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_notify_panel_notification_icon_bg.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-mdpi-v4_notify_panel_notification_icon_bg.png.flat deleted file mode 100644 index 0f41722a8083611aa195091402b5582f6bbec2d3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 336 zcmZ>C3(alXM$kZ(}A?z-_g1q$306%wLE-5acw|G50T!Mf!KL~R$0m&^}m}G&J zrl*Tzh{pM30T(7Aw`)Ik@*L4-odhIWSE&VQdYFFn64aCY`qbcqD#NuzYrFr#qBnt> Q7(8A5T-G@yG%+v$06}47QUCw| diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-v21_abc_action_bar_item_background_material.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-v21_abc_action_bar_item_background_material.xml.flat deleted file mode 100644 index f3e38977f2b30f570c169b733c9a4ceff0560d02..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 408 zcmb79yH3ME5VVPS$Q_Z8P|DCD#p?v@IBBAYhLQp#I%|D*j*r~K+B+T}z!%Wd@gaNx z-^3+KdRS?+qmgE3cDcN}kE1Bs<9$QI`~-Y$SrjE1Cw#?P3Ba0F$h@?ss*x(`g${(R zS7e_JuQYl=5>>zV9iN@|h95CJI6)4cY-^k~kgf=MxWkaO!ht6=uCb)uXabE?BJ6Yw z&6Jmzm9vsJc~%tpBxBR-*|aRK#;hru94L7AoklN{@n3tTZ(4zx Nt8V40RRMmJ@(b2Gf_ne} diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-v21_abc_btn_colored_material.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-v21_abc_btn_colored_material.xml.flat deleted file mode 100644 index 1d141c0d1ffb770683606bc26d38873a2fd17f62..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2952 zcmeHJyKmD#7*9#_=#|imMf$kDs7qgl#!cxX?Eq~VKnPV8Dvt%Ci+xT^{fN%jf>>Et z5o=c#!~g>u143dzY+dXSXXBi#2c23mg3&pjfX)Q0TtSm1s7^_QbtHqUT z1;Z*@%Q^?!W)SlSi-nGX4Z`Bx&6ZTL@NrD$_0fe_v}hl5{62_q(hipza~*HEu$pRCAdg;I)`s*pR(wE zmL$1dt2s=4B!!;{H!+#K5jB6E3c>Yo@Fvuc`_64Bfm1JomQ{K}*a*5GZ)k5ZI>e;g z7R=RhO6GVvS~7qyv>P76OWIK%`rb#<0dtrke69^C+25=q4+QsXKU3%^)c{eqq_WEd z0=QXXUY)llNm$egm^P~9{(_3&h9R;aN%S>I5)CWvDGy zgg1hhwLN5zl;Lv^Btx=$NzfI0KOkxg4~$0JK%MFyk4Xl5WfTvd7SAYtpfU6qviBX^ zRCndFZ|tSK&sTws++pDN@%u1FUI@CrZB8P31 zNDiXgsf*BjOYzGMp=$!PlcBO)O?jw5k{C~lAtw5&tBxDbR>-N%Z-wNIQL&q@6jPDlbTyU4KT6lRlj(Xjr0aBNy3U7modUYH`OD|=0BjP1&;NNs h(8GxVoNhg_EZ{y^-H*Gq9;FMxYXN8KM@~3q{{kP}YP$dc diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-v21_abc_dialog_material_background.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-v21_abc_dialog_material_background.xml.flat deleted file mode 100644 index eacae6fb706c01e2663265224e9831d21c14ca14..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 904 zcmb7?%WB*(6o%*K#-q02m?oKORSczIh&40GcswE3c2y{)4C$iX3>rzkB(`NFrO7Mw zF}lk;B#SKaU{N(52;CG5gpZE-{{Kk)XJ_Be+pSh>y>Ghupx3?Lw;fZqzy~VuHD2Zn z;U!tn4Cg#q6j(8#%f%9t%S7<2lDgf8_ST^5{cfZ0k_m|}cv?zcq975NYMfw_GKrMH zrHr{K7SGdBRq^|5sfFqFr18sWV%0_M&aIw#8Es!LbK~pc7KgW{~0H^ zDRS_~0yD6IODcFqT|ZT-IzUM3ISMR;x*rf;AY5GLEhI!lfTe0%dR9GoM5E{ zS|#<9k(#gm^z0qS{?~QKIr4vkxxN$6GwOYAMN7Kx- z66Fw-W21FlZ(8R{@x*r5LYk2DREm0q-_lFEWplQ3!PIn+4H7B4ehEm-1%1a;h1oGs zoC^qPpciyI&X45hLaJ({EuPu;E;*6nS@$UJfK@?L@Yv<*u=&K@uc04RyDAAIf#Sj) zvTEAhSu$eYa1Tr9pk$Y+B8jt}E4=}!K;b?~+u9H9N`#pt?yxn`h3LSHn$zxK5gin5 zl+u*UWLO2UvzZI5f>{=0dwjK{#}%xU@Iopzc(d(vUge5dk|Jp9vA22KeH&52LO&!C z-eJ(hN-$qzI~%#emlaKwJ+`Xz3^?QBA;?Z}_6#~4GazWp>_1J2Z9WFas98Pj7&iyq zk0tcG_%BRFJlK(4rmn_z2Di;|jPux@FrT{L4D{JJ!S;W~&CRpi+%lWM&BR%5CV`s| zMfB77%guQ;nSw_9ZlEtGYm)Ca(0ZM|NUu0hbQjt&>{aaZD<~E^tle3?iftanhV$P( jTNuZD1db^vOwa9e#~cLXh*@@PmVsb;7Yy(ZDHQ$y$x=tr diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-v21_abc_list_divider_material.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-v21_abc_list_divider_material.xml.flat deleted file mode 100644 index 3aeea1dd89c41dc388ae93e57a79b18cc519c287..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 628 zcmb7=PfNov7{*uI>Q)d+-B1dO)Pqo1)6V^AcTjfGqY8SSS(C2Owkb*6M34Fvy!k2o z1b#HLvVj*5ec&a@1JCb$$YgSJr!*Rk%{*+$ht#*6uazlfIEcX|oMjlmSv<`M7gIzQ z1YtJKp}>s5%u;`p&VlNDDBzxB#=#>^3r-8*%^5^88N)cm90&#ro=}$aZVx0R!}9b3 zkc?0W{V)nqGVq7PLC=pz{b&>p&w@A!lL25dyJ^u~^n(AJcrSS-JAbN1WbD8KF-nl- zrb3is0JtoXL+-78FQz$wji99oQV9F-VhtKYAsC2hM%g80 zc+Ti^f!tk7H;$!jt+{9R-D~4YE~6Pi&Uvk6dIh#yCqd#@lEAj9{pGjKQ}Oz1YJtNhX`I$xN6`TM_&N z{42bPH}B#>^yvTN+1G5kw6aykK$yuS?|t69H{X}Nz2`^uTCH|@A9UaWuCH*vYnRg+ zdJrjkPJ@)WLTVoKkZLZ)h=%15(C}oeu0|Ak8p->vK0NAM_Z^vMWiH;EGN-A-*(*s;>c(*tk#F2%v_qEl!R)H%yli&Ry@yB zX1_oNmR2j2sZ?Zjw;bJxk5NW7Q=F!wl#dhbELbhH1{Y~|Z(+~*(MMnUq{%hQ?0qBJ z9FGXzt)kxMkqa9;aTcv!>Ape?@I&V(Lf;X3`hVGIc9(FMw74jkw#P;R_DiFEskO|= zquq#SOt_Hooa#|<3aesNela>@O2gqwr>Qao^-4DfEY@WB7fd1*e=CK)3QCN2gi6ri zMIDVvkrAm|l8$64mTa{qb-LnxS%>1g6~dO|=wD;VDt$_i}x6*`0s z%aljB# zs+2A2NKZ3*(wq4->-GJEGnq{G`WOaVpH@G^V9UKG3SOb&6hVbcEQL{$mlfbmt>jja zvI9d^3*4K2ITx4H;N3xwnktQ+Wh1l{D6AC_o5z3~s*zD3G?S{+^BA#~Q`^G@Vj0OH z%8Q(^BudjHj&OEcWO=$=V3xB4DVyE1%wOW=e>~w^$1VT2;}-5I2%=<5yqm_Deua>> zC>`i<^g}E=1pQ`rWc2)_vvYr@+P>#BcybR&dM8+Nsr;+ET^~WMQ#Nhga4YlowP1D7 R=9ztEyVd@29Fcw?`~{Qikq`g? diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-v24_ic_launcher_foreground.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-v24_ic_launcher_foreground.xml.flat deleted file mode 100644 index 581f80d54aa27674690f608b4e6e353b6e35eb14..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3068 zcmd5;O>f*p7~buE#vzq!XcY`njZ<;hxZ|&xv0c6zxk4N^f26#`m(j^GG1J-cGCI#@i=;e0&C6t7=I2?g^nUK{?)LP#`C*lm zmHBDD$f`UupXB9PRYbGIoTv5T{KP!T^QunD`&G0mfGsKtvnpriDoQi6Oe%97=l+F* zpA!pxwpxNL>9?CwAdR9dF7q^2CX2c*9++kY%2rW@ntn9PR}kfllQ(_pjd54nm-w^^qGG#6dxzVT^3oAQlQpNNnVK28OSm z=2^(b1`ZH;22WvvkwXpNLo{H24BHBjWlueV0uTOp@S5^4NBW~yYPYMp%+HcAU*@H{ zwP!U=fAcylVllh6{z)tEEjH&u!M%s;Dl_l>c{v{+Ta#PL7GLdV#kXO_HxfXVUxG9k z$^FgFSLE%+Q7E#U z=>`rx2Vu+-%Yp==2BC=B3{Wi6gXN;=bO|D0010Pn7!uLvY;@{UWCOO59fV+mi2+|R z(FAq_~VUBWjF-KJd|f^1V&>c z&kl+Aw3Av0NH901E~0=L$&?15T9Ai;ecS|v@_}&(F&<-UY{aZ^?E;D+2@^il%}G2u zq)?F)MJwq3Hjh)4f{f60sg zz#rpHmkMXYB$IhF$$RtOe17*}Tb8x!uMIHuY5J!|mW3{;gf%3bVMs_!3*aJ)OVCUj z7$-m$nG~yvI;}Um^*Wk%Wek;|{O#Q*qQtOV)UUQT_n_T%n<|GT>tCZih|V9$?MOy6R2gU9 zvC~B7rrbvRq-v2TaUAP$LqY%%xF8^hSzayRKsu+!1@KN CVUyPY diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_ab_share_pack_mtrl_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_ab_share_pack_mtrl_alpha.9.png.flat deleted file mode 100644 index 2effffd210cacb5d3ae1a5337e5cc9f72db63ba8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 512 zcmZ>C3RMvbl++xrLdrVRD*9 znyG#fP%q3ex)m8I1(~{KCU{+?XQ@|^m(I``;OEZECB+5w7O$s=OAwG&0AUUmAbGQR zQ$3K9$Sd&A0n!-204Va!_?ZciD#-A* zfEX6e=rm9YEC-{}=D6 BZ)pGk diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_btn_check_to_on_mtrl_000.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_btn_check_to_on_mtrl_000.png.flat deleted file mode 100644 index e71864ac816b776b96506364b400ff33bea11089..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 512 zcmZ>C3<3~=D4R<)r6{pHF)1fiKQSpeKB*)xJ~<;bIXk{2KR!P% zKDVSOC*HuoK!|+;;{m1vj4Vn$jQXL)sYS*5S@{`x#rb*qdg(=pDM0PXi9n6T`Xxn) zdBth@MY+YgM*3-)IjKNe&rmz{1iZCC${p%*@otAlcl+(%iz#*f2TGBF$94 z2&fn46y1u9l!8p%G84RR(ksYIXXp&@bLZuf;sSb!*VDr#2uM4CFb4~eWJuT<3M3zR zx;TbZFuuKE*w<_z(E9NF6h$V!2{DSNjw(Nm(ePd1)x6#3?1o8OSO1L9{ga(xz`^E_bSeio3g{!+<)^?>j_8Sylm5}`g_-V>&k;UtEN}`EPSx=myFPl z6>=IAU!PCAn#TRV>FlyubH8hg@Z4LKRaj^wRhCjxv~k6%?GI-h_|AO%JiEHV!r-zc zhf{v)HX52V8nOl{AfX5IIkwbK+aB)|7QXl74&}-Bu2%Ux*ga?6G>2Pae|ljILte*Cm+jea`F%bu=&F6*2Unt)6Ifi}Em diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_btn_check_to_on_mtrl_015.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_btn_check_to_on_mtrl_015.png.flat deleted file mode 100644 index 64e3765943505177d883869a2f4e71701f32f3e5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 660 zcmZ>C3C z=jX-emK5d08yK1ju}@$;z;u9-MX85TKeRZts8~NMKO?U=KTlsTy(lpSs69CmsIgeT zq$n}3I4!>@w^-LmKP@vS6-etD>Zh5fSR@))SX!i{nHrdxnHm`+o10jgTbLOeCZ}1X znd%n-^}?K@Tal4ckf~c{g4a!Y1$pTVodJICyj)UTK(Fw6dbk7uX$KJIU;&a02|Gi9 z-Y@rbaSW+oe0#%wm64%{!^g>zYehc#Kh`?(HuGuv!#o!6YTekA35)0M@qFhTWb-4) z<#B4$gz7{qOZ&OUT8vUpP0{?!n{0QZfBB+QKP#CJGz324V=#DG6;ZI@;W^#J_a-tC z453+dCq)k`cD@!^r*oNu?S`^Vf&3fhME)65{!CDN`kQ^f<6!}V_snj0LKw{5VwrVv z{TjZ$jA@W>QMTrPDfQs9dfEZ8gQdJ5esW%5zs9kR+hNA~mAjc+e#(_TU$1cDzjKD5 zuS0jO<$lME!dVRex8y&Y%5Yw^Os4kD*FAC$H<*n5&L>Q;H|G6Z#n8Qh>DPfH!jCF* z4@j+8`Jdze)7J*;|8ki*`0~#vsyp_$(zk(^^CM7K!IpUsihFhzB+8s!&FFM!PNmIy zHVzI^HfPbZ*-T7MHtV@KI416~Qcz&|*~idySZPg!Vnocm{ZG%?7tiCC(ffb!$#2G= z{L6p#KmVz(@hSe|ll@Ch)%#BWzi5-sOkkirnH&G;P=3yewLh~#G2!Xz=d#Wzp$Pya ChX7Cj diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_btn_radio_to_on_mtrl_000.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_btn_radio_to_on_mtrl_000.png.flat deleted file mode 100644 index aad94f49a75e47354628dfb74672dd3489e85292..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 880 zcmZ>C3TT+x0Z(v{`#6E%X0Mh|R7Ns6W{m|mnqGJ85{EWQf{5*ZVbf5;H_Tk>ERLtq#Zz*g9S)3B|Gd8c+WzbJZkzr~iFqt_-J`yK zfAkKC6ArFs0d?&Y*8~Le+$}u*K|cHEf06SKmKiJO?=jxI!Qk^bY3201px0%6D&9Nt z-*o>t`TgjP+O1XBR~F|i59Hu$ZP#|J`QO`_ERs3>^5+}oiI2UaQ_ZEky?cFQ zGh=UZ+_y;!-#wu)K`CcTnA42vrz?Zi`(!K&U#$#(<`j{c+tSJWru-pW(BAKnlb-z2Q@K;{aQB8)Vtm^+Px$CG z_4`TZC-ddjFF8^1Vsh5O?%X7e3Z*q`T2}6s_;cLmBtyAx=sb0e+U@`6t#{I{Dd}m9 zKge+0F6>$O_g_aR7_RiKtN3#IQ`S>ud#&oGJMRA)-6A-}=RUdms{2%)&5OK+2|6*H z?|CO$v0HrES0=HzWO@C%=!$!lbyExDtZUv`IUSt2LGW4Mgc8?76D!{qwOu;<*JFoB z+_!xvCH1qX3$oq4vtLZ=VdQ#-kZYT7Jv9vy|Cywe`VFOG*6E)@{Vdw=)9eBp!t_#f)6fB4z%dclAGi~r_7+J9?f zGbkUlHT;e4E|mAm`C#~{_zi#O{*-@Henr1KdSvy?>A~xt+Xd`!VOA17QDPVJE97C3)&{T+h0^Qb`dRrIdByp8`g-X=4M6S5iOCtM#rh>h ziFw6o`9-kGnK`LITF+2F%{;{-(ZIseA|=h#z|73l$ROF=#M0ct%-AqF%_7ZI zzX+%o<`mtEjFf^*-7*urZqh5rOK0c|@N?(olHvk-iPzJ^B?w46fG`IOkYq^M8Op%G zbi>odF{Fa=&6I;)(eVPu>hEPZHH*bgbyC#hj^%uJ=c(Z>*Q-rG7)swVr>x|De{NmO zi%tFy7v0ow5&u^x_{b?Bq({-*QnsyMI`878+b;h_irSq0()Rs)c4m(C;fmhtK(v34 z8r!E!jody$sU;ILx%3Msb}&ViX??!6WX?s`^Aa&n*00!flF>e+DEHEq%Z-_<(gfdG zo|3!S_WjC_{tr85EKTEB=>GTBhrSu?{8twHw#zwQTI?MCU%rF)rjvI~$DO6BkN26W?&*Ms-CXkpc0AQy>T`c~$}^{v0^3=H zVi#&mQ#`fbIlxU_Cqt+s=;7u1Sxnq>me^SzwsB^RP@7Qkt$h!pnrNPqG56vgIcK?L zb*Gblt^RcWvQmZG@jbEvOZNw#nc>5jvbN1`T6%Zo#)bU4MCJ=GEU$`6qrKoS|^)|36bE z+1sUFa<{gf-q!B3NB6gyt+i@hXRhLh*hPA6vm}c5*3UGaT3~wCo@pD$ERM*RmSx=T zCzC^Y(x)7qrTl-@WVWa?CvR@4QPQ{_?-I({X0XKOSw`p5S&P|r{Z(t+_BK|*EB(<* z4tc>yzmGrF*T-(m=`uYo{O0xFYfrPHgBAa{UHQ54_^ya=#WsznV#D3M9hU6vsg5<;~nS3t&WDdH@Lp9%MUtN-YB{5?nk%z3tsOCI&ZJI zDNZuT?pf{QU)eAJ{pbFZbDWQhp&?O%bP0l+XlZ0sv?^x$*!2 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_btn_switch_to_on_mtrl_00001.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_btn_switch_to_on_mtrl_00001.9.png.flat deleted file mode 100644 index c6a2cbffe217432f556ba41608147260d648f54a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1768 zcmah}dsLEX8VB-9$J7FEsjFyn)IqtZC|ZstBvzB8Moyz4Ac%>8Kw8eEcxiAQ^LSZT zU7aZ{x3mcj6L3cjN6j^nNJ))yBAv0aTs1c)?ZSRGXU=K&pZ%TlyFAZ%-}gN4dB5{T zMUfN1AQ0#eYAt{Qz$ieY`G*LC`lJbHximV5iK5XNRJw>u73OA$7;LJDN9A#;St0?4 ziUxq$ZdnOdK~!KfCorN4j5;D@3WTT=JT_OzIxa#F7Z{fa5l4Wd`Uc2U{qBIdS=M94jDv%#5ni zC=<|IyBT&4Fgq^)Al(uOAM-e#7Yek}xco#0$jr>z11Qh{0erm7GV(*~gFpZc0=PNE zCjPhnz5BavzR`a{II1IpK;|~Fgs8-%!KM1oIItMlt(zfT3gh|4p0d&`gnJJ0Q@QCj;(m2>&h zk8A1|>I2ypoUe2H=L3i>>Kcmvp60Fbt2N_zBltbfB;VKC?}l8oM}wrh%OPcBc`kgf zZQREVPvP(8eB<=uZ=>T6dsy2$p+Oto8`<~#tPeg|)+riZba_A=XKD*?VA)0eI922s z>Tf&uyi8fgUE2qX{Kh0Jn0b_*A7&Do5)9;D`~xiNP0<8{B}CbiWh~jx#&MERvKM{( z)!!?7Y^(@|=)X9b-#OfO+^}UDr?&B9CUxcLpOU{^a!@alcP<6(q@3Wc=q)@}zUrIE z);+h0CCjLv@0>a$(Vx&TC=$IhWpXrMTZx3nNDvpA^$k&7=)~h%p)gE0wW2nVv*fwf z?cz^gJ)@25VdNXh&3BvJ`{Qk4S1XL9(uD4|vA=Z%#uwqUf-VP~Z$CTZRX0B*Na_W9JVAb&Yo_!4dR`cnhMR;f6=%ckzBs#TL# z+pEBYAIlG!FawXrT&WtIeuH;xa*k)L*&A4%N8QUniX5MdV|QOAH}-UUh10oAoq6gj z@Z)CJl&$&_#Rf=Qi+W=L5#88TgZ_1qKCXAxcvr~9kg9|)l8b)J8N)4LPl7?1F?rvt zL8&&sm*5i zqi%--dZ->VI&oVAIR~zB4YUKJiZNk6Ro};vhf_<|35eOK-el+1h`lHNwM_*t#B2%7 zt<=X1;TJe%p0`F^Nfhswt%I|eQeTa;M+g!zB5jut;C$~LZITfwLNK_X@sLXPx$kyy zNIi-hv)=9Eep(yt)iVj7IcqqOUJhr5$CDVS??x-?m)$z9fmh$8M^k9{s}0cT{sM

;9-6P7=E&`N0#PoA zk)Tb&v|As!HlFmTPe|8YhaT|BZ-TnTmFFxEZA`He;feq#p>dAA{4gSaK$cAee+NC+ zwL8CA7_M)eD_xi&MlPtQo8-aRr3zE0FlUK!Q(x%zD|NsvyrmQ^d{nUh-tiOv$vdnI z7BdP7aQZk; zL)!J(gS-p8S;<`o@U1Z~TS%dy^0de_!qXJI&#XN&7?J-CEU{mFxk&iLOHaaO8FEV6)RDct~zU%T+oyjM$l~ z)7|@FHPgFNUa)vSXu{*4`{WJJU|6lyR;Ifj0=MV&N@n}>_SW;>?_{=b*z~LEPbSy2 zTC1bbvX+XP$jTL&Lk+SXL>Kse%O5~0-_Bp!^<>Wl$D`r_K1ym**&8MzYJJP!?^xm~ Y>PKAgxBLb+|CF)BLj>vG)FKe*KROKLc>n+a diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_btn_switch_to_on_mtrl_00012.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_btn_switch_to_on_mtrl_00012.9.png.flat deleted file mode 100644 index c3b0c6e8a2385ace87a77f3019ee71ba7d1a1a03..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1972 zcmah}c~Fw;8b?B6Qc*3m2P}9=1ZiRNleP525OIc~!{p?IL&Hd*-Gr#5e&HKLdyze*jIXU5d6hI)* z59BKY4Nxrr8kN3V(1xAC;go1fP*@0p5=12jMX<@dXhsB;PLAM^Iczd3B0P+YL?X@i zYA9zaNWoGCh?auk1qFmJFC?6Y2<6b(JPsQHKORmA2F{>TsPqsXA|jl^=FvFeEZ&~I z2pS_S1W>p+g0?T%ih{JVwhE@9kZ3e&FOs^?(t4j2+QOVlv!bC8;lSP>^XxfE59TuV zL|Oj7!Qj?#F8ereowIlkSJ(#a4S| z8;~tLwn+m-oy|QIwDwj%gJjLI0-|6x*M|y%K-TL64H5uQKQB{u{2qNLFu;}o)`nQC z|Ly-t|KYW7^rOCekFu4IAdsRQhjsEHHonU}O#jVS^Xa$ozGYJ1DXp`t3Ue0DT`cc3 zJ72T~5^Td4_!=HzQZwnU=v-W+Ly%uA*qNlrIH=+)OKK7%2c08?m7_%2=(JZ) zV&1o}*uck7muY>)mxH;Zw#eDs==T}ltjGJ}W)xNvwDrJyIK)T&==1?$e|r6tI~3xx zv%ML+zX7DR@OYPypj+k4zH~urbW;w);F{q+?guSTm3o7&yL=eV|1v6_O5dDOjxTf@EF?)jC8D}jqRX77{xFo9d&l<PC^ULLUbBl^X}THiP*=-$8tkhTM4p?{}2nU7vt3)c5a;ya&2dZ-f(Yn ziTRw>0I$wuDdr8j89gmL8QSI?-v+NZZeZeuTf4RP$RScPRKj*>wN!>UsQ(7pFVh@ypqO`?@FmpL_)~bE}U^Yr`MQrMijc zGU3sgl*uhI-PuHw!R23!rBTHmqU5@i!MCWe2v`rn#YZlq1yoJo{N%~>-}ABw0+*Ve z+e)_Uz4@avn=0|%ZC+qI&9V+%!R`2+4ZkHuz%EHHtuu?dSG)TXzZsU`;g_a=Z#n{X z%LvO#tcq1{y7viZLa@KQn3nwa5gCJev-F+3w4=)f>0NS|vHsJJjj{`t29vWZ(4^;ZHKAY1fY_oX zc>*gVUPG_Sw?qDfo6u&n*k|JF=9kAIi@Rts4WG9;khfpMCXfahBd9&oKbh8+LdIv@Nla%P^{Fa?NQm9O{bb> z-QvL39cvtG1PO0V`7=&VkHisi7m?g~$)L!;tb9=VMO>G{uhYnB>`i&0>y?xfnOfyL z)N{QzrFAe{OB?P$i_CX!Z#J;2;SA+DikLd1VANbYe;HF{9(wm}{{dbg10%jXGA9`> z!L+a^^R`($!lz%2J@x(&Mr_Ftj?QdNZ{W&Lf9`nU%S5l6o@{=rM?<*%ThBgjq{AU7 zxppTDTU6DI4X-D6IOv|9>v-!Ksm!RjRca_;%;@0b4btJ7c$eez{7g4=)&OpL*V@J)yI>$XFMm#i9%tEC3qi155`PStJ;hCNt`X7N-^!>u2R>FcEzC8hvP zNlr}8NG;YcDN4*MPRlRKE!H*CPs_|n1=4zk`f27V7KsKHmKG^#rUqtarbY(I<|dZr z7G}nV$!Qj8rus!dy)YN)R%E0UWa^fg5O$iLrCvc^I?zv@0eCaHA1HD|Rw4yRh2#~4Br`BEaVh{g8bFK=K&AqL1Q5#r zF-VCv5aR-{IAGM&sf-3H((rU~42d}W_Ix8J$Z;F5|1Hm3E+8_Awa*)5#J3fDZaVnO c-{G&Bah8$YDP_kLkf^7tpUXO@geD*p0FD!FI{*Lx diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_ic_commit_search_api_mtrl_alpha.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_ic_commit_search_api_mtrl_alpha.png.flat deleted file mode 100644 index cae31e96add553ef9b1d476ae979f21b43969ba3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 472 zcmZ>C3u2R>FcEzC8hvP zNlr}8NG;YcDN4*MPRlRKE!H*CPs_|n1=4zk`f27V7KsKHmKG^#rUqtarbY(I<|dZr z7G}nV$!Qj8rus!dy)YN)R%E0UWa^fg5aTqxg1mH~pE?8l+(Dn@HSPIw?hKZ_5*xZWzlJc@^0?|xXpjl@F#%En z0it^yn954@CotUQR%zI?fcpZF590piR#8y%5e2H5VIZ~#B(|WZW_wWwi+;f(@g3*u q6Z?uziC=rMNFd0OGxCR68VE$oA1i0->twG7x!%*&&t;ucLK6V55t=ao diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_ic_menu_copy_mtrl_am_alpha.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_ic_menu_copy_mtrl_am_alpha.png.flat deleted file mode 100644 index 36acab8fb662913f665b463ef7166629339d9605..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 412 zcmZ>C3KfFpGhKOFgA1u{<#;CsjW&DLFnfIX*WvuQWb6zo0Tc zx1=a1J~1~wF{dCSQHXs4;{m1vj4VohjQXL)sYS*5S@{`x#rb*qdg(=pDL?~~6O%Ji zi}g#267!1F@{4kdb&d4XGILUaw4R}Unt6&vqJf2_MM|2ffti`9kwLP#iKV%PnXzGV znnjwaei2YF%rUwZ87T#sx@9H=T%}i#m(I``;OEZECB+5w60fI+OAwGY0AUUmAo-Wu zkOxRrdb&7P9v1cs_e5lqC+igd zVcNkiafkI=s)E6UwR{{a-XBf8C3A}u-j~=rBz8tXR&K8UJ zCcjSqT=)HsoK4|hb`6H+jK|V^=Uz)kNmRr*2*l2Lw9D_J%K;vR-?Dd>>ay6*3_TdS zm-EFVJJYG(cnmzmpKEh<%nj$f|I+E}>Nk=Le7|{0c?%|mCZA`#e-~v~Hk#D!x~SS~%g*y)ia_d-^Q)b{ z9cVf?Z-0ib$EvJ1mI@8J`5ZUn{@pMwe8m_z_3hL1rS@STS${v@+ODc&)3G8-+Aq{4 zXJO1@F{Ww9Q!3~JX!>iz1`In<%hzCOhuJKrLAlmCT?Ndnr>rg{3> zpB59j^FqD&^70!(Y21rW-B4msy2r@mw8O=6+X9dBV=}VQNk3vYw%=zIyTAB(sLF5Q zFOiRT&*`4_HTJx>-mQlCn-R88776QAZwY_0=zN6Z{r~oVxAR*tAKy@RAX3R|9xxUe NJYD@<);T3K0RXPJ8cF~F diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_ic_menu_paste_mtrl_am_alpha.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_ic_menu_paste_mtrl_am_alpha.png.flat deleted file mode 100644 index b4b8c1bbb0e34f89929bfdb6ea0ea4796399cb9d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 480 zcmZ>C3tRCBqt_k zq!#O!6eZ>rr{x#r7V8@6r)B1(0%<)%{WS9wi$ntpON*2=Qv)+IQzL_9a}!H*3o~QG z70FGIh&L2sulyATJ&0m(Bn`cU~?jE+CWF)59eQNE?7K2Mdt= z%WcR5q;`3_IEGX(zP)bEb;v=)?P0?T=@ZOvQm>_^s_!uPTp-@W7@njs`OrHJM#rY| zw2t72JD= z>73FdwX%`zF%ysMx=SCmj)%5SY~(7xSrPhR-K0jja#Ksz^gEG~73P1xss4#$WIgn~ zyn%^JV*!+4Hr!-%L16Kv{~UjoT1VeEzGh_ZZTW96kIQ_ff3}S0)9U@bU-+&E`hvmJ M)z4*}Q$iC103x5LYXATM diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_ic_menu_selectall_mtrl_alpha.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_ic_menu_selectall_mtrl_alpha.png.flat deleted file mode 100644 index 4037477ff8ef96cd7b71cf1422e5f91cdb6840da..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 420 zcmZ>C3 zBrzu^KDVSOCq6N!AR|$TeFEbFrUQ&DN)s6MLyJ?3iuJSdGxCb_^Yr!7ixN|SMkFUD zXQUSEmlP%D6{qDF8EApqylL@L;W=K6pKUy3rmZXG*bgJGgBjjWOEZsa|<(L z!{juJG*kT|pkA1BbSpAa3Nm%eObEJ5uOKg-p)$37qbG7%U{Wl??vm^H0_F?e#v+J62a&l+hw!vDF_O;m@{#* z{+%0FGe=$P(!QFC3az<*g zeo0YcUU6D}QEsuWk$zfcPAZVrGt^HrPq9ceu&}g9Ni#JtGcz?ZNH#aIG`BD_HcU>l zNHf(h0_uf1MYkd&r65zc%mlBS^a}FQ89D>}+JGn7Lnm9IFM^KJ9=l_48mEa5uN zxw%8N#e8an*zpC*{e{MnIuqu6WLc=KY^HI>(&X_`uH6^k2x!0gdr{WM)!1)M0Hd$x z#={|}b;AU@PYTXfUly^L=kd*he8&QV>YV@YWfgsKw6AHOMi?;W7(8A5T-G@yGywo8 CN*jv+ diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_ic_star_black_16dp.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_ic_star_black_16dp.png.flat deleted file mode 100644 index a264ae178d57d51dae186a54418aef826545d2b2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 552 zcmZ>C3b2k2>?p8DVj-`IGKcS)WS4!)e{0iNo&`632|p3j z_LeW{Qt6g6>D=rVr6|aoXM)x32#; zYLw7gKBf9b(R`yW!wt;l(-v=H;@_6=aK9ew4c3&!Dy!}SgNeb@)z4*}Q$iDv2>@JW B%GCe> diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_ic_star_black_36dp.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_ic_star_black_36dp.png.flat deleted file mode 100644 index 5b54e3b67524f9e991e968075bb9fab09ba52354..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 868 zcmZ>C3;?$yI{jB_qyyE;keZBOe#1x>$qT>WP`)^j9%59U;Nr`_JR{r?`*>C1MmukBX- zYg@jz`}FtR?(@%o`-l9Qw|q^4rQD=W{ypldOfp&1HEg7FgjF{iJ;D z$Cke*-hX?*xKzMbwcxIk%VnFGY16iMEHhtH_I=ZPSDPr#FGpMjW1O9K`LL|ZY_?W}yDTTX z>Jy7&ZU4$1&(rsG0)60&gWdaT}8*AKjzI5)> zxYlvK<78Zr{1xrPwntpbHClc76x43@`X*KO&v?Om@!Opz)78a{g*1}SbA=vTbLw8a zA}f>FvRmv6;sTF2v0jnibSfh7=4gTe~DWM4f2Y6@8 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_ic_star_black_48dp.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_ic_star_black_48dp.png.flat deleted file mode 100644 index 09cd4a808d3a40321752d7ba72f4a5e68491fca1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1104 zcmZ>C3;?$yI{jB_qyyE;keZBOe#1x>$^{-ry;{q3|ay_mMTsW8OQP$r@ zPJh>haLjgjx@QH0UP(xZ-+Hy3+ue9BW?6EUSe`2TWBCqmOTk`^!zAegGW*4}$ z-gkQR`EIFK6M~av#7s+0{4C0xx?*G4&M&PiHtsD-?vaeTvo^GSg{}0~s7G$bF$%(q zW74)A4Xbc!KU?-<jKMe*S5DtafjS)s~Kgj4h#xNUwmRg`qCE5Kqg0@Nv?IzhK&k^D*y_7L? zHc+M6%xHa~H<~kVYYMH2KK4pD&ZU0E<(TczOqu9n+M!6*4&)f$<^ zF1Zjgv(n+p700zvvLdFX^UsuYt@>Jd)50Kbxn1Da=_${=1DE#SO;})A_3885Pm8q9 zf1VKfiYF|6s&it(Z@Ri;-AH?p4l3{;*PP=$Av2{ zB(A=?+I6q{UrntqjXZOnw@8HSzaG){fg<|}tq*uKt;<~hFBPP}=Ra_QS7 zhrQP_3}Se%@y>esddWLkX7(FP&s|N4K6>-sv~8OYKhWOpeM)wpn9~p6Q|p8d1@>o8 zS>pD#kMm*C$|%hoV^^tVmEIKrt8Sg0yo~kM6tAU0ptPLzMgG?dgZTc=DcgV L&t;ucLK6c3!NTMv diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_ic_star_half_black_16dp.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_ic_star_half_black_16dp.png.flat deleted file mode 100644 index 9ef6affa5eedf55f6fd4e0613f8001c3e9bd5b0f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 464 zcmZ>C3;>Z2U={-dmr6=eVtHaxPO5%lQgVD|a(r<~Vo`iXVoq9o zQchxWcD$ikN`Vmj1jYkQ2N+qDx*7FDi&Kk=^|SIb@{05G^!3t<5>tS>lM|COQj7IV ziW2jR)AEaQi*=3k(=u~XfwZ2XewulTMWTU)rA11bsezf9sgXglxrwE@g_*Hoa+*b& zseTbqFU%#n6&Wc7nYv{r_?)Cyke3ehLuY`WJ1>_M7m&&8>ERLtq!mDzg9S+5EZ$TP zq&9iFIEGX(KE0$G(84I<`mkB_&caCx7u0%$NY%?r&C00I-|?;K`@yvj_dbZec6!(D z1Gxop`{Jwq{GBB@+i6vc`4XNz9~Xv|t~FTAkuqpBuU{}h?beIbhQwzP$={p49Gd;`)0z%fRu0p?Xyyg-?Q9PG^Q9Pc_hc|^S=F$R$y=*nJ!2^6{SRmRUw8N2 zT@!G)e>VU5{FhI{=RP=kM1l3sDxsV;fydWpFPr^;8vl%`O(&Fp-T}oFgQu&X%Q~lo GCI$e)kEb;N diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_ic_star_half_black_36dp.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_ic_star_half_black_36dp.png.flat deleted file mode 100644 index 222710e2512cf9cc94f1b29b4a0340c3f5cdf160..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 652 zcmZ>C3q2XU7|xr4$IUPhdR2bbygXshd$hv^ce>SU)R2Bd<6=PhT&+C@}@7J2^2qBeht+ zq$n}3I4!>@w^-LmKP@vS6-etD>Zh5fSR@))SX!i{nHrdxnHm`+o10jgTbLOeCZ}1X znd%n-^}<}DTal4ckf~c{g3n2M1$pT}_jd;Px$|;KaRHgUo*phiK-vR@Iaq+?|0mUF zfZosXba4!+V0?RRb8*=sj$dt0_{xkaYUzhyVBnFp`= zb@$=i-~2Vly6a|DR#t9xUUS&vYDdPBs2;_u)w&lFy0$tzH&hMC4%*^SZJ--4Lo9=D z8Ee%-)>qyO#a^&1W65%C63gIT#`@_xlkd?j4*XjjY)_O+UzxM7CtY)Pp~YeKH}#ED zmwOG*B2m5jy&gNsoLFOG=o3Ya`!D8?c6F_fFdPB*~b zhkHvLZ%H7p$ST%X4jaWXG?%ejtz-MOhBYhfJ*Va~t^YeUzZU$Nd8GdQO6JLj?4%w$ zt99U(SXEf4w}-`W;_cuC<5wH-J5wB}TQIq)=ZT5_F%bYqf150A_&r2uoD v$DDfwGc5yk999UL96o*e^y~OgF1?piZ(Q(pH30@cgQu&X%Q~loCLj|4i<$M! diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_ic_star_half_black_48dp.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_ic_star_half_black_48dp.png.flat deleted file mode 100644 index d57e59eac09df4a6741c6495b4212feba62716d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 776 zcmZ>C3h ziFw6o`9-kGnK`LITF+2F%{;{-(ZIseA|=h#z|73l$ROF=#M0ct%-AqF%_7ZI zzX+%o<`UhCjFf^*-7*t=PSPvLO9%R+Gr-TCmrIHZ$mI3(a0vp^2_VeD0wg^q?%xdb z{%cPc$B+ufx0lX$pDC0%{_*)4ovf&fOQ!lNvFp8VKipDuBW39m1f%-u!L$s!P z{XIT)V!3!}Y>oR}gT@_vcDosmbDAd{;=SRwgVFqMgV5)^1Fna7PJBMdYvHtm(f>}v zT9dmCuUjNHOtLgj=rCX|+EdE>i^KfELg@{iZPEo(4Vb&m>|ktek^XRsLu1oKqxP5S zEhmf;EMMO|>F8J3D41t_PDTFbEhBU02ED2q=Q+<6c4~dEJXW1{o9B#7LPP5{Ni_zU z1@G7#_~+kYc#(FBx54k&T?P$5Jv$jE zJnoWaD44}+&hTr+ZpID0ndS_;W)?9onCza%AhH6e?F!$HG;!%=-4NFIMUH)gQKN$yMZdX5r6%ijCt~MEf?by-Og`p!-dDgV>Du`auz` Qz}RQ-boFyt=akR{06e@j-v9sr diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_list_divider_mtrl_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_list_divider_mtrl_alpha.9.png.flat deleted file mode 100644 index 73a36cfeac0f3ef079ade39f9e90ccd2684d7529..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 400 zcmZ>C3f*y$r-7| z`Xxn)dBth@MY+YgM*3-)IjKNe&rmz{1iZCC${p%*@otAlcl+(%iz#*f2TG zBF$942&fn47Tt=Bl!8p%G824`(zDbn$V&(MqcgzIotI0B3&`a4^l%9R(qJ!hfc$7x zH#-zaN#qsy=YaU=;6G5{hO9&ikTS_D2uWsOVq#PPax{P#9T*@4ph3yN_#X)NgvIOt kN^yC*IEHXsPyWHrz{tqRAieEf7)XPstDnm{r-UX30BtBC3qi155`PStJ;h+8Omji&Kk=^|SIb@{05G^!3t<5>tRWlM|COQj7IViW2jR z)AEaQi*=3k(=u~XfwZ2XewulTMWTU)rA11bsezf9sgXglxrwE@g_*Hoa+*b&seTbq zFU%FX6&Wc7nYv{r*qx(isaKGf4s?5GfS)@rmlPL}$?NIi5(K1qK$wFKNQRZhJO@$| zc?JGCKpF$g1d1FB*svQ&h2#~4Br`BEaVh{g8bFK=3?Kq5K#Bv1!Sqbytxu6LP@EB& z4`MTKItg-vxu=U`h{pM3lY75P)R;LNIvZUas(E!Hj%+hBF!C3;>X$U={-dmr_bmVtHaxPO5%lQgVDwW^qY;PJUi`K~ZXP zacW9@Mt)Ad5c>qi155`PStJ;hx*7FDi&Kk=^|SIb@{05G^!3t<5>tS>lM|COQj7IV ziW2jR)AEaQi*=3k(=u~XfwZ2XewulTMWTU)rA11bsezf9sgXglxrwE@g_*Hoa+*b& zsXov;eV9vhD>70FGIh&La63uQQm-H{9q5P706%wLE-5Y`lh@P3B?w6KfG`IekPIu0 zc@Cr`@(TQOfHVd;0~E1p_SXhdA$bKM$qY3=!L8f3nwtDnm{r-UX3 F1_1FnbEW_Q diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_list_pressed_holo_dark.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_list_pressed_holo_dark.9.png.flat deleted file mode 100644 index ca64db76fda2208001a9764365cc2b14ada573b8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 440 zcmZ>C3<8kDU={-dmvTx`VtHaxPO5%lQgVDwW^qY;K~ZXPacW9@ zMt)9yd`eRMvbl++xrLdrVRD*9 znyEg}PJNhDbSpAa3Nm%eOz^l#&r+`-FP)(?z|WnRONtBV9bQilmmna`1Hv3EK=Mz` zlpG)>kyqdkqA`F2P-HHT+X^5Rl2;It%)rFNsQ~0?05Li+fCzw$94)8uWNAU}Es#XH?ORxb6os+SAp~Wt~$(6Oai2(`9w? diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_list_pressed_holo_light.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_list_pressed_holo_light.9.png.flat deleted file mode 100644 index 76d09fc875e38f0c8383086562dc470c62cfdd9a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 444 zcmZ>C3 znUVvfB=QRUK{N(128ujs^SlM5Lh=eik{OtoI2C{#4IoAb1`q*|u^d1Qrj2LLoJk1l z?33aKsu%HeaSV~ToIEGC38EApqylL@L;W=K6pKUy3rmZXG*bgJGgBjjWOEZs za|<(L!{juJG*kT|pkA1xbSpAa3Nm%eOo(!wo~2$vUOGc(fS)@rmlPM!i@cs5EXDDlsU*g p^;FLLb#Knxoio*ckwzB+-KciF$E;$?cIPI@JWp3Ymvv4FO#swOd-DJQ diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_list_selector_disabled_holo_light.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_list_selector_disabled_holo_light.9.png.flat deleted file mode 100644 index f8863d663f67b2bec117a563a64509b975dbeae3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 488 zcmZ>C3RMvbl++ zxrLdrVRD*9nyG#fP%q3?x)m8I1(~{KCd4^U&r+`-FCFN&&Hz7mUM?vvAd}bA!zBnv z%K&i*2Mdt2=ASPIq$KhR{BwXb7(l}Y%$5g|3%E|41yUh-1tG}{OiY{#K#m3wqXPqo z06<0Ai35O^|*N1_DN0?4DmO?m&4xPZ!6Kh{JDB8!|E&a4>H$QvMOn$yZjOUavK` iyV6p~HBbbOj_zlD62o{b{K;~#rJk;SF6*2Univ3UadIC3 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_menu_hardkey_panel_mtrl_mult.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_menu_hardkey_panel_mtrl_mult.9.png.flat deleted file mode 100644 index d2f6e62117c91b34c6d6df3754d77b536de4349d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1208 zcmZ>C3QDS*wQckLVVp4K^Zfag>d`4nXN_J{x zd_iJfYEFD^NfD4J%_$LLpTKy4=>Q{(1f$XhiFw6o`9-kGnK`LITF+2F%{;{-(ZIseA|=h#z|73l$ROF=#M0ct z%-AqF%_7ZIzX+%o<{;gQjFf^*-7*t`F4MErE67V{=nU|4=jD>(0{V>C)59eQNH+kn z0SCz6#ea910x5~S0{E?1*un8Ku5pgAL)Q`C8xxEbiYDznP_mojP1*0@ zca9vL+g@&}sya67iS7RI&~1&%eHM>8l>2_FgR4FS-(YFjyfaAnci;i1gG{#@ zLmr&e3H>0x;OPU4_*IGWEK9QA9_%*q+GNB!<X>HueuPZmU}M3Mz0iYKE|Po>2K^ zzb99U0gnXRv&*-` z%XhGrUuTrEsr&cn=K1sYH|IGx>2<7FDe#Z$UQ;3KwDmjQ?hyRvnE#-l?J!HbB%j_j zc84u09<6M7yY6w`IlwZv_yzZb?`&qD>(?V_R}` z!qwOZhpuXHEy(#g+p{3Do@>*_<|&Ts-0Xb6BhPI=vS!YQC36|d{SRo>ezob=W-bWi z_`SWMQ)G>0LlJ96y3=dNi1%CyYniWbE^zv{Smodywk5(2M`aJNWyiX9rd(#4QpzGC zbJ?14j%dXekqJQ)f(@IPX1V{IBkB-hB-zLy%bgqASolDD-ThTe*&Rh|Z)9I7Z{F|7 z(AHSb$SGd0sXrs;`-8jR?kcSI@l0#E7alM5B7}QM_IvmLTpsV4R;fN^s`5R;!F6Fn zuGWF0hCpY|S#UGN;WSHf#DbL>tC_?t&LsFS=d`Q)%rImR5fxnX%*Q;1uOKS+H!G`{ Y(c~RUm*)X91B0ilpUXO@geC?C0P+UDHvj+t diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_popup_background_mtrl_mult.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_popup_background_mtrl_mult.9.png.flat deleted file mode 100644 index 9ea58e079aee64ddc87eb58c90141151b53b3314..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1780 zcmZ>C3tRiBqt_k zq!#O!6eZ>rr{x#r7V8@6r)B1(0%<)%{WS9wi$ntpON*2=Qv)+IQzL_9a}!H*3o~QG z70FGIh&L2)IknQm-H{ouMyy~iIv|6cod^*gx-jrk(-7L08DEH*+PJPs%`@>di~A8dTrFF#qa^Z)xk zM+upR<-8|MbbnMl|EkL*^+Ki3kk?pf!9w>!p7-U_A3SBRTyzwkRs2RF|KPH!I1`5h z>TPq*uUMGmCbXz(Ez1+xr_0;;%r|87-utjKbH&Vl243S8-%I@ViWl_$F?Kn;VC5d^ zeOj3n|K~YG*H5cWc)%!loGE*2!#Wk*%{7O^&%^6l# zw&f>IzklcQ-?U%<ccogxEDHtO zgZIoc|GEh}L@}qRdIW8#XELdI(Yi-clY}zJsTz6m%w!8i;0=h!MMV2`hRy{xDc!M zp<$aYlTx3l?bgoYQ>0(5{xi9P;e~EZ>s6k->$TIAPsB|UcyG>lGu@JjapA&*W`@e( zH&R`{?>0F!&*L%`p*GPRi#^D;KSWOCJ+`?Z1L|Mjo) zIDh<(XWaj5%Q==sMvW0sr{(^A<=+2JbYFb^-&X6UIG?T)j9L*3q&qh((#VS6|MN`! zpQG*8ITQaDetvayyZ-&S$70-KYa(`fYPF}G((;^sNWY-bJLVBrctw-?jzg+?g`L8F zOHbsScKZBR-D>6Y*}D#Ki|JTA?lI2$!1unOS$a<4G2Oh4Ne53w2{O2dYd2}wI6UZ& z-dJGC_;gor>NCqA*}uK{r{}5a+a5gD;gc)--0c!qcWdh0|7W?DbIee`xsoM?>)aaN z&L$~7W;SJ`P{B{`k`-%W{JLuP9@@U>jLl&q_4?O72X)098=l8LGi`pBF{wUnvzXgu z`;Q;)7?}%KHeBOwS;Wl!y75}$jc42WIwp3MDoiUh;y)B5b+U2h*4X)}%WC$|YCIm~ z;gMcxqqZV6Z;D#L@iR4@eBB#1xH!Dqd`X2(p;zJAou$eL#f>wX60DU~E-P?c7k`l0 z{Yl!;+G;W<%fDwQ1!@)^m~J8PduzjMFLuY?Gf%R`#I)17rT+0$HY_>7-TuN`;7d}T zNnY#0H=Im|qq^;`Ff!jwnbpZ)tMHnYQ>ZTdcTqz@v!oJ<=4e!XRc4U^}H%cWtA<@H;Yv~JKrttSSsrk@FxA}^Z8=ecL}&O z=KtB#aH?-b&*Z1Yi{<7YNcohXz29-7z|=?iu8iN90{W+fShimRrjDHpZ@93;^75Su vT@?~xV|vZT^vX7m?|;q&+?Ulz|Ic_mDr~utUR5oyIA!p3^>bP0l+XkKC3yC_XtqucRnH zCq6$dEk3uTC?`HKrywIyhz5QI<`t*q7v&b~8tJEH=A;5?JwyF8^Aw9j0}D%wlr&QVGc!{ogJg3POLGe| zW5eV$i!@XHBA{NFi*ze8QVKG4%S?!InqEO(I?!L80eCa z>8dG9pLYe!e=033%gX2Oc>GA2+pE>zS+`!8a5w5~#*Q#=+nEpl1e}x)Nl#G_E&6lO zM_E6k@0iWb3yah?U3WOvlGQ4B)ssOsOC&8skVj-iwRtjr+F$WRhIJ;-%mQJL5o++H3so+#bQl>Uqk5zGLuo^>bP0l+eTg08hxga{vGU diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_scrubber_control_to_pressed_mtrl_000.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_scrubber_control_to_pressed_mtrl_000.png.flat deleted file mode 100644 index 9c97d9a80e1c820bae468afba95f5203f3b3d943..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 520 zcmZ>C3yC_XtqucRnH zC%z;KDVSOC*HuoK!|+;;{m1vj4Vns81+MoQ;UlAv+^_Yiu3dI_0o$H zQ-DS#Cnjg47VDQ3CFT{Ul*2&W#*&;X+1;zH1iaTL<0*;ibG-eV~QXw-h?LNJNymW@n06%wLE-5acS9v`>T!MhK z1PF7m07lBbJfNCo5ED_au}JBTzq)K>^^D}53cb=07#JV1>@cQKFR^hB8h zZ@k6ZtoQG)^Xw5+uDU7( z2c0J!WL~Y(9J=bDlI7ATi-K=gxy&@#QPh65BYvM7UrO6NC39aqBMh1KeRZts8~NMKO?U=KTlsT zy(lpSXjF1yaz<*geo0YcUU6D}QEsuWk$zfcPAZVrGt^HrPq9ceu&}g9Ni#JtGcz?Z zNH#aIG`BD_HcU>lNHf(3TBr|mmTpBxNnF-PE(<{hJXXp&@bLZuf;sSb+*VDr# z2uQ1dFb4~e^yUl@1_q0tr;B4qMcmqJdvlcnMchB$-^1i%CYaN}9q~rYhu7oWLSFAJ z481qfWSV9>6tSuqM4k1@c_6sBa<=k>#>)Sb<@cViUcZ>Lh<~0MmGgn1*YX!$0W!dv-qRW?q_f-~6vg%y1%uDsxQAygkrJ=+a5=A9<|z)_)nToC3W3Dm78UDf}HPTPZ%t-~(dWQOG<|!751{RhUDQTt#W@e^F2Fd0omgW{_ z#)iph7HOvXML@kU_vlt+q!eW8mYEQ8n4YCxL0&r0Kb--7?z~)5TtFtTr-w@rkQM=A z2@Vz@8Q>)P7sSac@XrC#44fbW2w?PoAbT&zc~B6!zopr07wXEK>z>% diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_scrubber_track_mtrl_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_scrubber_track_mtrl_alpha.9.png.flat deleted file mode 100644 index 6f63d073e324f2517a9f10fcb2873e601d49203c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 436 zcmZ>C3qi155`PStJ;h`Wf{@i&Kk=^|SIb@{05G^!3t<5>tRCBqt_k zq!#M~_2w0)l*2&W#*&;X+1;zH1iaTL<0*;ibG-{UV@Vm}_(^GExdMb<0ffJ4??}uOKfS=$Fm_KX+a(DJ~$B*VDr#2uO=PT zkPL7V{R`sc75L`>X$Ec(0R%95KZx_PULQ!hC3l;8IE{N-R%I%1PBvOiGR~F38NwOD&4eEh);0 zPt1)^%qhr76k?yic!22uBZ~y1Qa7W1XmM&$v3^#5MqY7#p1xjsQDO>EcXDEKMryHs zNl{{6aaw*+Zn3VBep+TuDv;JQ)K4={u}Czqu(U`?Gc_}w=gp{Oir^% zGu1Bw>V>&Pw<05@AXB%@1h2cT!MhK3J@D`umH)+ zeggA=ltf;Ee-1B@Aq>QVKr9Z#An+fE=T4qv2&4k?3PO?@m{`~pfE*1Vh5`i`!ve-& zU;r5n0w7ukhz&p-BmfOs28L6IJ%MaSc25__5Rc<;r|i#VG8AdAx0@eyQH7ONmD_;H z*nl~;tV6_*U5NVtPtO4+9*4;yC39-yyR84+yIHOgH0ww4)B5|>o9=C%;-Mn6|Ii&j z1Ka$M=8}nDmQD6aH`D)>^=wM~H{+>Q*O%{0RhC*GUYoJdCskvDV~6Mi&WDYnSC3lvtjal#{BTn3Nn}T%K8yoDpAAl$e|y zpIcIt6Q7t?B zVtt_AyyCR{qTFI#BmK0@oKzsKXQ-cMo??+`U}0&Il4fdPW@c(+kZf*ZX>MU=Y?z#8 zk!Gr21k?+2i*7|mNnF&5e=~?O((HY?9&dVjm1!VGidbk7uX?-A8;9vog z8Wk@;0V#>R0{YQyc(q*qR-n*zC3l*2&W#*&;X+1;zH1iaTL<0*;ibG-{UV@Vm}7J+GExdMb<0ffx=PPduOKg-p)Zz<;2~4Oxj4AZ3wP5R%Nm#KfckgeU31kNI<5czOPNUOwQmYI4SUMux+)nfSh%yzT)iX7F_N Mb6Mw<(8Rz105gASV*mgE diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_text_select_handle_left_mtrl_dark.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_text_select_handle_left_mtrl_dark.png.flat deleted file mode 100644 index 44d709b81ede09e1267aad44c08597bc80c537fe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 584 zcmZ>C3D?cNzI6qHcFTE%c zs6jtDF*zf(SihtwF|Rl+zbLm@*GNAtGba^D>lx~&nWtDJ8dz9bq@J4DfU3<&xq8GI>2cT!Mgf z1Q6?RumQ=3YW0tSK_c$y;uuoFm?V*taCqNhu7+=Ko825FdKOyl!kG^UKFFIN*O1?^^)=7V=!7_a zhWQNHjkX64UDQ%Jz`)F703jF?#H!-BbIxY(zR`ZUY{Tq@xi3X;lr~6L-|LUAu-#HW z%RO?_vwMx=+NNA@)NVeAmD%dAZ!L4XWBEv&9R(3D=x}N*||8*52yAnm# zY|Z8TTmMP*7w>KLW9k{-`QNAWzxi(0(q0<nIDF#nh KKbLh*2~7awp3&t1 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_text_select_handle_left_mtrl_light.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_text_select_handle_left_mtrl_light.png.flat deleted file mode 100644 index eaa2b40e004146b61d4703798bbb19d56d4ef360..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 584 zcmZ>C3A#m>C-;r&*+#>K6g^!W^Yrk&#l6sas}3r0etw^3oYP1N_{1xum#&-sAQ3a0vp^ z5kRcN!3HEBs?|RR28o!bi(^OyW0FLU!oqFQj2HIRUf|$pE);QR5}MG!vP6NAv$TOl zMPZ?k76^U6yYKX_pYKm)f8zP$)S&lzgWl=roi4tL90AY8uOvK`>g9R8Cgtg@-j3ao zfeox5PQO;*X8Q5;@ziMUm_p?T@50z3ns;Y4GVtAH`kcjJ!F1>CW$q8W8_MP?mUEwZ z&GLBO92oU^wG+KD%*kWv=+|f?IrL##?mvGVSIoNIw6&kb8am zH~-HX-q-F}e@I&D)_7M%dQbP_Z!c5ZlchhJR6n`8V1A8CT5i=7j&=V^AO5^A+V5oE z)3kM)?!y26`&{-X{yy@9L!NdG^Or5(#MJrt+v_e?tT|X)4-6;< NPgg&ebxsLQ3;@Vw-WUJ? diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_text_select_handle_middle_mtrl_dark.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_text_select_handle_middle_mtrl_dark.png.flat deleted file mode 100644 index 1cdf498aea8f911d34cdf112110017225b98dc18..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 836 zcmZ>C39aqBNaRKeRZts8~NMKO?U=KTlsTy(kf= zRzEp0IU}`LzoaNJuQ)BgD7RSGNIxwzClyHR8S1B*r&uH!SXf%5q?sC+nVA|HB%7O9 znp>C|8z!e&q?zg$0rkRMrCX7aQjn=zWgJLlZn zb6**5oBX=^lio%>yE*SG>(c8Uf1WF`dS0~tz2y&0&MBPDsP3@p6RRk23XYKKQ{r)) zo$PU0pn~D-guJMN6K6Msym|X==4-v4zaFK^1>&<5m@|&asUHs7Agk!n;&h`kM4f5- z0zsjrZaG_j8*dkM^yqQA(IR5abbS${&~mml+l_Q2R|_^osB~=g*rrrq`AR`-_3={` z_Ql>0n{OOxf9lbvS|FIEV7B_`q>MvChT?J^&UW1+=|*@;&)_|_QZYVQehJp4h6?~8=n%tr@;4p*$U z_%JtdPOwbH!rZO=nmyc!oryipI}aV;>M`%pS$e-cf5O#m7jwcSb}apU_v!R`7Eu|m z_Jy8z>~6B)7yI(fZ&K%OE+%=U)$7f73u=^n)@OI)|B`1TdR6bp)r2sW>8&bj3M)=? zCdy7)Y!zWuVG||(`e!biS5A-iF&&lT#p*Jx?qctI?QD)ptUhC3-z-5?Hlvtjal#{BTn3Nn}l3Gy`U!0ngnp_f} zk(if~lNz6!nF6LtigMy}GSf3kgxDuA9$-4a$f7iZQ9raewWwG>D?cNzI6qHcFTE%c zs8~NaF*zf(SihtwF|Rl+zbLm@*GNAtGba^D>lx~&nWtDJ8dz9bq@oDq_}{--vW5Vuoj zDqp~M$=~!w=6CDuqJbwEj&9(Mvt}}1BsFP4R?aq~GtFN+9CU<^x>c;YmOgU*LJR6K(+4hb+Zo&E;DP-7E1nDVsODEb=HBG z8sQQVZ76?cPw5RkqH5x zb!m&8{m-_ddy<`>W8stswtNTPAK5#}#OGjE%;9hm#TJ9E52DvM@&!+@oACS>|3{9y XHOA9+*a4FWgQu&X%Q~loCLj|4Be78T diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_text_select_handle_right_mtrl_dark.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_text_select_handle_right_mtrl_dark.png.flat deleted file mode 100644 index 19a7749c830757811b1615a12b355dd420401674..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 568 zcmZ>C3A#m>C-;r&*+#>K6g^!W^Yrk&#l6sas}3r0etw^3oYP1N_{1xum#&-sAQ3a0vp^ z5kRcN!3HEBs?|RR1__&|i(^OyW6}cA8ynthEQqz%?o((vq#?uU;o#(*q3Pkk#23XR z1Vj@WSX5NLTmIJhFH-(2pp>VE|IK^;RgqUuh1C?>vK(mIHFYh+hHaUm+6-%QBdibn zGCJ@}3yg#g{4#6UTG}vE>kc!2!&lXYt#cV(b2AwG?qIWHxOR;}jNRY>12Yep_|R3_ ze_$@Rylz1$%N$##boT?Z-5;D--6mIQ!Jrq#x~%hsq(#K!c)O@4n>5~Sd1TDMp1r~J zveNtYpPLSb7?!L*G3VW~cL9u_EC3}HPTPZ%t-~(dWQOG<|!751{RhUDQTt#W@e^F2Fd0o zmgW{_#)iph7HOvXML@kUSLs${q!eW8mYERiJiUUvbfCXF1N_{1xum#&OkPh9mmnY= z0mM2SY(Vm%TK!{Su&{c%IEGX(CM^*4Sn-x^OLqEE!Il7tR%J#`j|@&-R!)xtj@}MV z-VRJc6B=5c*rm^ZI{(o*nN@v_?;HRAbu?Wab+apfT{}ZW!1hg|4A;!oCb2eb<;`Y~ zh-Zt4X9Xjsi2H0Cw(%JRw^l!3+^~;j!#3fBTE>KBoYxPqAGjrT;1L6xL_z~2n26i> zPH;!@!^N!Y`WiO7KX}7Y@tH%W^6CX;e)a>ds}Gn6+A_0ee>&~n9V2#hZdeW5g9P4f zX;Dx9mc|*(&}w@pI`i_~E3#S+a#k_lj_3Z&bZpoY8OvjRckUII3!YngSI2+f>9F1U u%x2ab`}x&QTK!|ZxAyX>)p`l?rLQh#2&C;e2n-hnPgg&ebxsLQ3=9B!56pG| diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_textfield_activated_mtrl_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_textfield_activated_mtrl_alpha.9.png.flat deleted file mode 100644 index 92e4a3f33f3406a9f02e2308516ef300c90e1789..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 436 zcmZ>C3S&PXlRFDXjQD^ANV$}QG4(of6GNd?k+hWcsdDHe$a7M2z%X{H8dW~N34$>t`O z<`!nghRJCbX{P!`K)o<0=~iT<6lCg_nGoSNJxjfUymW@n06%wLE-5ac_jo-$T!MhK zBoK>numH*V+y2`EDT%xS{~REV0saF;Zpccc04a;Sf{C3!lYZrT`5| zPE5{7E!Hn7O3W)x%P-0;)-}>k%gjjy(t3vaY33;wi3S#y7Aa|_24-faMh3~|CYI(F zX2yoeX%=aw`b9v!FbC;YWTX^i>Xw-hbeW!|UO`?uLuY`WJ1>_M7tm|Go*phiKw1)r z#W+}i_ZGn_TUV(oOkcI;$DC<9vHc@N)4Wumc3PO?@n3$LpfE*1VMgtrM2mz1< zAixKq7#L$(%Vz`GQl2i3Ar_~T6C_v{Cy4Oq9XRn}eu%D5^HqI@^V1laRja~5&Sda( M^>bP0l+eTg0Q%EsE&u=k diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_textfield_search_activated_mtrl_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_abc_textfield_search_activated_mtrl_alpha.9.png.flat deleted file mode 100644 index 30979d2ff84ca9f26f0c862ff483685be3a03483..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 444 zcmZ>C3+y&wtU={-dmr+VlVtHaxPO5%lQgVDrYDGy}W@=7Kd~s@G zQF2CnVsc4lSz<|QN_=ifQBHhfPC-VZ5c>qi155`PStJ;hW;5!C7N-^!>u2R>FcEzC8hvPOHNGANG;YcDN4*MPRlRKE!H*CPs_|n1=4zk`f27V7KsKHmKG^#rUqta zrbY(I<|dZr7G}nV$!Qj8rus!dy)c*QR%E0UWa^fg5bs1iOTB`;bf6zQ1N_{1xum#& zOkPh9mmnZ50mN(^EI_h&(X<&LfxH6$93YJW{sTpB$V#LDDT};C3W3Dm78UDf}HPTPZ%t-~(dWQOG<|!751{RhUDQTt#W@e^F z2Fd0omgW{_#)iph7HOvXML@kUcj;DSq!eW8mYERiKs`&ng1mH~|2hNw+C3<8kzU={-dmvTx`VtHaxPO5%heo1CpW^!UlW`16LQhIz& zetCReeo<~>ju86<#sf?T7+EA3m3kQULyJ?3iuJSdGxCb_^Yr!7ixN|S+LIHLGg6E7 zONtWniqnAFigk_j(=u~XfwZ2XzL7;zVrsHsN}8onT56Jcs;Q-sQKF%dVNz;Rl7XpV zntl;bFU%>r6&Wc7nYv{rc-*9CsaKGf&d?d)=g!L|#Rc>ZucwDg5ReuCVGfZ0tY$3O z3#26S3jA|Ge01<1C~!koA_Yi=(&^?%Kc@S~r7}f#KCOR)dNwAJ>4a P@pScbS?83{1Y`mLcOY(p diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_notification_bg_low_pressed.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_notification_bg_low_pressed.9.png.flat deleted file mode 100644 index 0d2c97106d4950b26819b91b975fc522c6331b92..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 484 zcmZ>C3xMN(pFvSCV^rBPaHl6k7BrIAshp^;%yYEqJc zsbQKv&?bGDTXZWjQVKG4%S`Y&O3zZSATJ&0kIn!;cU~?jE+CWF)59eQNDF{42NRH- zFfqdnNJ-=s_~!s=4DcT)azj=k1xSVD6@(-+Ffnl|067{!j1CMS0vte!2Z&)bEPNUN z%Lb-m!z~@!e}U@lJzX3_G|s<0y^;5T0S~jI*8?LtE$fu(-2z8@1lT=ZuKu4KV}7#Z wfb{Lqqn6=md0#eMygNmO^R|%u+=o2%y!>KcMc(}|3k18&)78&qol`;+0KI8}{Qv*} diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_notification_bg_normal.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_notification_bg_normal.9.png.flat deleted file mode 100644 index a405e06757000062c324887fb35efcd0a803b30f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 444 zcmZ>C3ju86<#sf?T7+EA3l{y&pLyJ?3iuJSdGxCb_^Yr!7ixN|ST9Xr#Gg6E7ONtWn ziqnAFigk_j(=u~XfwZ2XzL7;zVrsHsN}8onT56Jcs;Q-sQKF%dVNz;Rl7XpVntl;b zFU%Rb6&Wc7nYv{rINYOWsaKGf&d?d)=g!L|#Rc>RucwDg5ReuCVGfYLtY$3O3#26S z3jA|Ge01<1C~!koA_Yi=w)%*D#tS+AB>(&^?%Kc@S~r7}f#HiRtL5Pm-S;4CJYD@< K);T3K0hs_9yK12T diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_notification_bg_normal_pressed.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_notification_bg_normal_pressed.9.png.flat deleted file mode 100644 index 2110b3d3ac9593af6e2c2071c510d2a8c40879db..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 484 zcmZ>C3K90%g>U={-dmwHN3VtHaxPO5%heo1CpW^!UlW`16LQhIz| zeo<~>PJBU8YH@LDiV*t*#sf?T7+EA3l_oIihZd(673*i^XXF*<=jrRE7bT_ujYv*R z&PXlRFDXjQD^3GyFV;2EPs_|n1=4zk`bHK>iK)qkDQT8QX{kx(siu}jMu~<-hDoVO zNd~5dY5G8$^kL4?t;k3z$kZ(}A>b}OOTB`;bcW6VKX+a(DK4P5cs)H_f`GID2y-w2 z$q5rP%z%_cUV(oOkj4Q2fg(3#B~pM?NM1omG6NG6rvi|p0mSIQ03yHvq8z8B`DE)_d1HBn)h*d4m4O`K>FVdQ&MBdZ0RSkge(V4M diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_notify_panel_notification_icon_bg.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xhdpi-v4_notify_panel_notification_icon_bg.png.flat deleted file mode 100644 index c01e90ae8b94b2debc8b2161a7b1d46c8fa54eb5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 380 zcmZ>C3(XGfxDah09Sy@I@Spnp08{M>oDq_}`gUQZ8~ARsLV!W>LMa!Ziq zS0EMW>EamTaXeYz2(L=d8qJBR3nuP#nAGU@EXjP9*0UtTSy9gxN&C7M2lgymx07S> z$~?U*8BsI1jb^z$d*pL{@yhM(UrC~|T1y8sPm@O1Ta LS?83{#J~Uml0C3RMvbl++xrLdrVRD*9 znyG#fP%q3ex)l`}DFvCjWhQu?rDv&EkeA*W;OEZECB+5w7O$s=OAwGY0AUUmAo-Wu zkOxRf102GC3vUX+*u)SjFO)L5)v zQk0lioR(jdTdZrOpO%@E3Z(T6_0!B#ED{YYEG<&fObyJ;OpOeZ%}p%LEzFD!lhZ8H zO!bR^dSOn{t*FRIDah0N4R^baL-g!`SDFS3{#iixP1Sqq%4zr6YP!juUr zo|9BEWjnu|KA+EUW1=SG{?@}^Pb>$meU6)fjli;sk7c*w+G z-*4C+Tlegnm&K%vEOv+E&Dn2$*U!Ijw5EBUb#cXkGjr#)y)rudXh!G8Pd?qt`BPSD z_jJFO*O>ZzgNKCXMaG%8KJ8-E-MW=cBB6m1Kk@(1?5{2h*IKk*Zf|%H+Pv~!O_XWD z&E(gm(&F>B#ab4>%s;)=TRdJB=mpPT?>MIk$3=dWy}KJ23JjjEelF{r5}FtQjuFD~ diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_btn_check_to_on_mtrl_015.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_btn_check_to_on_mtrl_015.png.flat deleted file mode 100644 index 5308dfb24e930e8b207f302f9d6b53d0f46ded30..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 824 zcmZ>C3D#Sj4@d5JzMi!-BM*Yy@)S_bjto)3;;`}^)z4W5Q6rlFxM4-lE z{gR@@yyCR{qTFI#BmK0@oKzsKXQ-cMo??+`U}0&Il4fdPW@c(+kZf*ZX>MU=Y?z#8 zk!Gr21k?+2if%*?VV1f&x{n1cmKdQ9BE znSp^x!qdeuq=NCyMZ;Bx9eCOf-Yngm>C89r^3OT1AMY?!dGI3kkde)Wn!Q|qy)>6j z2?7z-CU5QUzfUl<5t0(Spqg0`<-1#X;oU7&i&AU<=L(<9y(g(%a`v=Z&0M9Gm&0%D zG5P!J|N2AjD&GaK&EZ`(KUk&w*UVj~d3WzvdADF^yYrnZACJ$wyF`oMxlp41mPKXx zC9m=odqUqUtzEE#+5Ca&-U|oog-$tg$?=ywIa`AW4bPuc&NzK}jh#fL z?$OUL86GCOA5Z1l_<`qhg$>gulh?Kk(d(jGEp5!Ln9o0FGWnw%u$fV+t@EVJJnprP z#~UxyD+IpeUti4W$^PuxfyY7@v>Ak&wlMSyFO1^s-S+u+#U8Vb0S>%dyehc+pQnCd zxxyhNYwi{&CilFd(j$tMxxcu9apl8vcYoac#JfRJvSJT2kH^%wT$_K4sw#VLSJ(i# zW^(@-m?!lfH$Tvj^7tdKfr2WKV|kz<xB-p;@*ZyWRp3uBa>V#bBcENeSiq!soeH&E6%D~WIyy4*Q{9PxWsQ^_n Oc)I$ztaD0e0x|*J3`d~= diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_btn_radio_to_on_mtrl_000.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_btn_radio_to_on_mtrl_000.png.flat deleted file mode 100644 index 1fb631b128ebdd12e8fe301241eb9319926fd5f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1212 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 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_btn_switch_to_on_mtrl_00001.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_btn_switch_to_on_mtrl_00001.9.png.flat deleted file mode 100644 index a52c87303b89e93a21afccf060e3454e88305728..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2704 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 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_cab_background_top_mtrl_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_cab_background_top_mtrl_alpha.9.png.flat deleted file mode 100644 index 442ef0eaa1e8ba27f9890e3e372ee6cf3c025360..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 484 zcmZ>C3KoCD&wU={-dmsUzqVtHaxPO5%lQgVE9Vp4okVsdtRQGRJ& zN_qi2h0Z;StJ;hrZDP<7N-^!>u2R>FcEzC8hvP zNlr}8NG;YcDN4*MPRlRKE!H*CPs_|n1=4zk`f27V7KsKHmKG^#rUqtarbY(I<|dZr z7G}nV$!Qj8rus!dy)YN)R#ar96lCg_nGklHo~2$vUOEFqXMmqOFP9V-(0ja|9xg#Z z+5?0+Sb*gJC)HC37*1TmM13Vr0ORoCC6tb$0z6K=4O_}7pEo` zC1=DZ7G%cfmK5d0C*~AnBnq)lV0^%QfRROM3Zs5#acWVqepY@)UU7b&zFvA!VhYfd zEakt!T9$4LS7~ZiK7qd*;tq#8tw>IdE+a=*j~%?;mXeJOZiP@ zM^ro~fzc`5`#DzG52kNmFS^peoSh-`!|7HMpG|h7sX;LJmd25}gbsb7D1Dp@}s eV&x>2m;Ai^cV4fUxWyOfWCl-HKbLh*2~7Y1h@T|@ diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_ic_menu_copy_mtrl_am_alpha.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_ic_menu_copy_mtrl_am_alpha.png.flat deleted file mode 100644 index 8c2eab74e35ebd7393813e9df4d9d172fb2061a3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 496 zcmZ>C3D4RRMvbl++xrLdrVRD*9 znyG#fP%q3ex)l`}DFvCjWhMlirB{%b-WlNM&dVjm1@soLr-w@rkoEv!4i+H!|4H>3 zAa%~u#WAFU@$IdxmCS)6tPg#~q6A7c)&-rJ+OfIt)ro?G70;f$|GilJZj-!OqaFV$ z34`ZOA$|evve$$hrp}$rEOp>K)7g5d7oRRWd~5$B?4i&owQNo0qxUDf47c)MdF+zI zZdDd=xbw%ikgy9==D3Ajm^Eiw*oDb+-mwK7D*v#nW`Y9~rwSTz!5U-^i;%|xdxok> zm+x{#O}u=FOKS4v16->t1@2Ef#ijLP1OM|awc=r>%G2(AEKfh!;ANgs&+>)IK7%KU VasN^ipwAdQUHx3vIVChP003y|u@3+M diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_ic_menu_cut_mtrl_alpha.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_ic_menu_cut_mtrl_alpha.png.flat deleted file mode 100644 index 555bbf44927b361fc8fd51cc2077e16d88ceadba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 936 zcmZ>C3tShlM|COQj7IV ziW2jR)AEaQi*=3k(=u~XfwZ2XewulTMWTU)rA11bsezf9sgXglxrwE@g_*Hoa+*b& zseTbqFU%pj6%`pN1(~{KCU~5rSCE(98Q|y6%O%AH^a-!0hf5HU_5fiH79jcmN%a{9 z2Buz57srqa#<#azrv(R!v_8ywctL-?**oTg?G3xLmvomGY?o9}Z9aI{^w;A#N2ASU z;kViHho_I(|rw(8#YC#v5L$0t13UUSg=t~L;abB|IIxQM8y&+*F5>5|4R9w zw#@M&_XC9v)*EUP-M$<;qt=`{6{zpm$>hodXE>fKPTTG?rC?6}@9c;N-0m~aR~*~i z@Hk~rx3>k~iuUq9^+HU2yXB+Y4Ea0{6q;v9Kboi_lg_={JCZWampL{Q9wYj)Q zw|h!JuVZb_W3lfiCpAFKNln6ji)Jkl5i|5W^U<>^ zV3vhv$g*Ue4|4>~43?@qXW*Q_&YT(`33ra{Nk3AYXT z!uIu5cBHPmZTO0N^{ud~stMb^h?Ml)ii)^knAKhEczj2w;qjMN$87cG^d;auoJdsqZ9#D5YA|>~09m_ZCW9F&$R=@ft+Dt!H_4b7IF`n-`kA_uA l|DPXtYk}Dc-d|k*)|`r$D3{m^OrH#%u6{1-oD!NC7y!`nlgR)8 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_ic_menu_paste_mtrl_am_alpha.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_ic_menu_paste_mtrl_am_alpha.png.flat deleted file mode 100644 index a1b308e2167ffecb2b457dec2d66432cba81819a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 584 zcmZ>C3KETMLG=Wh+v^ce>SU)R2Bd<6=PhT&+C@}?SLULkq zMryHsNl{{6aaw*+Zn3VBep+TuDv;JQ)K4={u}Czqu(U`?Gc_}w=gp{ zOir^%Gu1Bw>V>&Rx1u5=r65zc%!H7;^a}FQ85lYP{M>oDq_}`y;`Q`!2?Ej{Ak4u6 zB>z9DJ_8H}WltB!kP61Px3)&QBnr4C-pOp}Ehy){$kX|e>)NU&v5t}d^=%oRVi|L^>s~cIOlgp^ zc)s0lrKe3s@BS!XlZ*-fUv=uP=wOhJNq9LW^3>j$&qchq=Lj#m!TKawzIt>1dEJEf z0`o;fo*ZfXv|U}h;AMl7v<8D&{VB%E4Mg(v*<#~o&H@jfgnRS_sYw`*vvjD?(l|{B) zZ@O97IUj`VToWZCoYbBD=%VRtmV5vD1gHEE^jP4-x|g9C3l*2&W#*&;X+1;zH1iaTL<0*;ibG-{UV@Vm~(V1Dl$?EGIh&L2s%u!ATPZ$z|WnRONtBVHC|5-mmnbR0m2+CK=S{S z>N7y$L7|TZM%gZ+WsBqR}{(0_g(~I?< z0+&23pU+XA__N@mXz-WiU)!g4&U=>|CoXwo|DO%}>Wo$_IKp?;v0#EpK%0O-kJJlc zwkVSeqHMcZ1Kw<5H#(t^xce37`%I>k368%+LM!&EPH}cV<**=J{k_ zDsw`i`O)$~pq%ahw^@n2%x9%CxR_IUuN1d6m`$oXS{cHg`)9#>qbfJCcUlW(&-D3Z jsnYAnCYf?U|G&bIyVq`HrUE_2;OXk;vd$@?iGcwCBS^F3 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_ic_menu_share_mtrl_alpha.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_ic_menu_share_mtrl_alpha.png.flat deleted file mode 100644 index d0dd0855086335d81a523721ecf861584ca5710c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 928 zcmZ>C3O5YVp2}3eqvH`d}eZdZfag>d~rr% zQEGf{Nl{LGVopIuq7eH8#s|y?7+I8h8TCVpQ;UlAv+^_Yiu3dI_0o$HQ-Io&6O%Ji zi}g#267!1F@{4kdb&d4XGILUaw4R}Unt6&vqJf2_MM|2ffti`9kwLP#iKV%PnXzGV znnjwaei2YF%qhAR6&Wc7nYv{rcparzkeA*W;OEZECB+5w3a_V!OAwIu0AUUmAo>4E z^%({Rre;qU$B+ufx7V3Bq+AzcxbSzvyc^qcXWMUE>y&eQTdunOwzncl={eH=+HUt} zR&MA1{$)Y=P$HoE<~@iVM?Uzoh+P1kv{%BugTKcDE~DPC#i>NV?$q_Ae@>sFmcN6=5bf2|duvjg*`i~_;Xn89mkC#o zz6<2N_F>~1!EBT;rv+Ke^l z*93nlxR(?2>!rr(>C9JMC+g&HIn`6R^5vq8dqFdo>k1v+yvD2MZT-Zy$xkHT6!1>$ zs($)XMzhjw-ZYPsi-m8s>CL+EFL?Gz<0BI_n|B3@|J=8sZb_2;)XEz+6WiEB({=<; zT~y&EXP|d?Zr*|-`&(K;8@BiTTYc0vt=nLA^j59!F|*cPOHh7ZbwD_;@I(FMqgr+$ zd0V)BWUnqh_peI(`qjKZ-(}@f)1Kbj;uA7?>E3lQo3qadTul*=o$~tg{f*a3z7;kv zw|OYFdxln5de(F4wRet(bzgYF7!|yPz&?-M*qb>(aq8z3(gB kW7DLUu2?i{)~tBOR|+PVU6)ID0aGP|r>mdKI;Vst0QoPXvH$=8 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_ic_star_black_16dp.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_ic_star_black_16dp.png.flat deleted file mode 100644 index f53a2d295d48365f805687ae199b73c7b4617c1d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 676 zcmZ>C3?a0vp^1|ZDA0wn)(8}b0XJjv6= zF{Fa=?Lp^;uxy6o5AUDdmOVZ9_O`H_+wSV!-gejQcA5F@vcJW=`({?2zb$$Gvw-3i z%@4T?qK-H*1s2`=+_!{fmLrE@gM(0OG)Lj&6D(b9FRt%m>56@E{Vhw=oD-+t?8r0w zRK%v|eMI`nQ*EIKtKv=^&)cCP6h5(k`cMArS6t-64hE@Anl$y2$r9zmGtWuoDe{GA(+v z{NW3EepLqFpA9ZH20T~1soYIH|L`}4%}bAE)`8FOn- zpLpG7IrqfgTe~DWQo00797ohyVZp diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_ic_star_black_36dp.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_ic_star_black_36dp.png.flat deleted file mode 100644 index 224ba09fa9f842664bc07d2286e7bd76948e7b50..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1200 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 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_ic_star_half_black_16dp.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_ic_star_half_black_16dp.png.flat deleted file mode 100644 index fa6e81281bcef83832f3fca10729105209c6d33e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 540 zcmZ>C3KETML)WfJBTAW%`te=&ikyo6br>~b@l$Zk4ot&7Qky@-@ zQk0lioR(jdTdZrOpO%@E3Z(T6_0!B#ED{YYEG<&fObyJ;OpOeZ%}p%LEzFD!lhZ8H zO!bR^dSNcnt*FRIDah0@VZo0B3KW!ydn-_DC)@GfNc-Rz#yoM`kyv!oxH;i>=2X^whRWP2rv-&^E2xPjT)>U#UBfV>8Z!nXE@2^jtJPhod(^wf|mN5P} zxkHB`|K(KH2WGyT7-AIT#Tt^AoMPI*UmnRY&x2X)lEWmO4efl957>-19k9<-m>_Ak zPJ(sy?SgylioXNaoR)s)yt8LfZDeuWF>jIcr7vq3g1;#T=oz08IBDu)b&O@|9@jPP i5rq@hE?H*A-4?DE7j`A#BQP8oJYD@<);T3K0hs{WH^M*w diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_ic_star_half_black_36dp.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_ic_star_half_black_36dp.png.flat deleted file mode 100644 index 696443646a2a47d19f7fb6ada8928f58bc03baca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 808 zcmZ>C3lvtjal#{BTn3No!nH*nSl2{aj$mQonF&5O=@sOqGca@p___0PNpS&v!|Unc5(K1kK$wFCNUG+~ zcVl2+;_!5F45?szd!D&R!hwPH;>z6HWztu+on5dk_qJQWZ6LX=bYE_W{Nda4=id0d zL38@)r$sws^un`Tq`OlBE4x$98hDh&35Q86=8Rs*>D{(nEl0ymP^?pY)`nvezBdYe zBN%(savIfi6y;`ZsFQGwV3Er_l$C6f$ZnEoX*g@c&RH9F)Ld;TJ*;u)P+_=mnB-#4 z+Y32Qx9nHT(E^$?xqsG%GKt%X4?TVSye>ER^(4r>wmg+6>Rt=RfeND)b!E`tb9wK}o_lB0uy-ns0=~y{to<5=|1kz~X(EW_v_jeju>v+61B1w`7^F=$=ZB z6#OB>^Gf<}XHV%C3h ziFw6o`9-kGnK`LITF+2F%{;{-(ZIseA|=h#z|73l$ROF=#M0ct%-AqF%_7ZI zzX+%o<`UhCij0(kOx-dQd~VV!$V+En=nU|4=jD>(0(yzp)59eQNKXJ^4i+Hk>#t?Z zz`%6J)5S5Qg7NKb@9a6LGHoBTA9+M?74)_3Xm6ER!67Ta=_MZN7PCUZOz+5HC9jVg z1iBtEwkU2?y;krUw85OHLQ-VmTUjiXF(S62ti;SQ;!BP_m;R6hS=eYRJfUCHSE z*WYaCxBfo-cf(W_&q+XJ(z1v@pg{GsM#aRYpjDSm0ygy@ayU6t#Dlj>#3O&X!>&2| zgB4^KXz(wwTNb2n*LNb*%he(tyECOVEWHvJ6#dna(5UP>#n^#`S zRfm(WMcA~;1&i6dW4GYs+;NHO0zWAObmi~eV|)UMEVAeP8ixhyKj#$I zr6}63*wt88WMq59A>jFp#$A z?Bg{O8oMV~GNZT)e>T=#GSAL#$I2quVuppghN^RPLH|ET$&6W*~a;5>_`WiQ# z^nE&W(ebypT;{0qZEBV)f8X|bPRax>i#-c1F5hu??OAVq&R*tGl2#J?>DOn9yY7aZ z_^|7diR99xdGW<_#M*bZocdYRTeeY_t8O1$}K%T{M0j-boFyt=akR{ GWC8$d4V|?B diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_list_divider_mtrl_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_list_divider_mtrl_alpha.9.png.flat deleted file mode 100644 index b75a0d8757b16fb85c902830b985a5a5d17452e1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 404 zcmZ>C3f*y$r-7| z`Xxn)dBth@MY+YgM*3-)IjKNe&rmz{1iZCC${p%*@otAlcl+(%iz#*f2TG zBF$942&fn47Tt=9jFf^*-7*t=uF|vAE67V{VCW3+bLZuf;sSb!*VDr#2uL%5FbBww z;dg_604a&Q0{C3qi2h0Z;StJ;hIvDjsi&Kk=^|SIb@{05G^!3t<5>tRWlM|COQj7IViW2jR z)AEaQi*=3k(=u~XfwZ2XewulTMWTU)rA11bsezf9sgXglxrwE@g_*Hoa+*b&seTbq zFU%FX6%`pN1(~{KCfMDhXQ@|^m(IY@8Q|y6%O%AH^aih|hf5HU76M@oHXs>xt}h%& zN#qsy=KyI8FcT0TX z=7ZP{TfNT%#VtHt978NlC!5^+Rief$${@@<^}q_p7DjHloog+Q?DaJ5Xl!hJXfHLt q&}4%lgR&{lCpq7n%~uo{THmnTdvMC)D9{WBPgg&ebxsLQKqdgR+<<5R diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_list_longpressed_holo.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_list_longpressed_holo.9.png.flat deleted file mode 100644 index d3e89ac00a3a9059439631977dcbe28e51b65e72..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 452 zcmZ>C3;vMvU={-dmr_bmVtHaxPO5%lQgVDwW^qY;PJUi`K~ZXP zacW9@Mt)Ad5c>qi2h0Z;StJ;hdKmRXi&Kk=^|SIb@{05G^!3t<5>tS>lM|COQj7IV ziW2jR)AEaQi*=3k(=u~XfwZ2XewulTMWTU)rA11bsezf9sgXglxrwE@g_*Hoa+*b& zsXov;eV9vhD=IQl3Nm%eOmMqN&r+`-FP(v*Gr-TCmrIHZ=p9~950@YyEd;_GY(O&X zTwgellE^FY&jHdH;0#d2s@Y!~NQLATgd{UCF>xvYIT}EW4h$dyAY*xe7)+mGn0bZ} zE^pe<2~@A(>Eak-aXL9=M&&aeW>E%V=BWo(I4)-El`_e?kYLEcFzY!}=(MK+r$E+t Ny85}Sb4q9eG69rccnbgk diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_list_pressed_holo_dark.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_list_pressed_holo_dark.9.png.flat deleted file mode 100644 index f234c6c10808d603fccfc3db7c4c6130d59e1424..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 440 zcmZ>C3901}gAO;X{DW?=AmM13Vr0ORoCCBGv7MH{q6r~myr>4Yb zSU)R2Bd<6=PhT&+C@}@7JvlKsBeht+ zq$n}3I4!>@w^-LmKP@vS6-etD>Zh5fSR@))SX!i{nHrdxnHm`+o10jgTbLOeCZ}1X znd$@W)Q34mx1u5=r65zc%mk04^epuX^3pp4{M>oDq_}`y;q~-z2?EkWAk4u6B>x$-I7#j3wNrk$^yE442U^IwZVgfeZ)78&qol`;+0Kw3A AtN;K2 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_list_pressed_holo_light.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_list_pressed_holo_light.9.png.flat deleted file mode 100644 index 3d0b3a20fbf76fc1f716a82f392719366c202bfe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 444 zcmZ>C390KAiU={-dmr6=eVtHaxPO5%lQgVDwW^qY;K~ZXPacW9@ zMt)8{P$WI0M2LL?;{)acj4Tq2N_~v_p~b01#rj$K8F|I|dHQ7(8&dVjm1@scHr-w@rkQM@A4i+H! z=eXM)ASIDk;GYAeF@P~pFrUHx3vIVCg! E0K{%|jsO4v diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_list_selector_disabled_holo_dark.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_list_selector_disabled_holo_dark.9.png.flat deleted file mode 100644 index 629de80882bb440fa710cfdbaedcee85255d0477..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 508 zcmZ>C3 zvlt|k5}%QulOLawSd=ZqK7sK8^8rQ{2}Y&qjQXL)sYS*5S@{`x#rb*qdg(=pDL{jg z6O%Jii}g#267!1F@{4kdb&d4XGILUaw4R}Unt6&vqJf2_MM|2ffti`9kwLP#iKV%P znXzGVnnjwaei2YF%u%`(6&Wc7nYv{rL^)5-Qm-H{y)(eiotI0B3+PQ=PY;(MAgu+& zbsQ`}^2b$gLm(xQSKyxmq``n0#sJa{KzyiECI(1_jAbUJr{an^LB{Ts5;8cQ! diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_list_selector_disabled_holo_light.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_list_selector_disabled_holo_light.9.png.flat deleted file mode 100644 index 23f5308c535dec82ea81a7dc4a9e91b2f74f1d58..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 512 zcmZ>C3 zvlt|k5}%QulMj?j&nOXMpTPKl`2Zt}1f$XnM*Yy@)S_bjto)3;;`}^)z4W5Q6rf4T ziOCtM#rh>hiFw6o`9-kGnK`LITF+2F%{;{-(ZIseA|=h#z|73l$ROF=#M0ct z%-AqF%_7ZIzX+%o<|^Haij0(kOx-dQ;@qcasaKGf&cM(a;OEZECB+5wDzB%9OAwIO z0^&Lj79jcKs<$DKlE^FY&jHe4zyxCeX?Y;-JXB*3q(brvLXsJnm^c-H91S2w2L=!U zaUdlD#5O=|3(^n5K){HL{W48rK2YA()5S3)OtDnm{r-UX31^`%{fe`=z diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_menu_hardkey_panel_mtrl_mult.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_menu_hardkey_panel_mtrl_mult.9.png.flat deleted file mode 100644 index 881c25966a008a23881d011eb4d2cd40b3848a34..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2020 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 T{>1x70QS~rtZFR06M6PuG}KAH diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_scrubber_control_off_mtrl_alpha.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_scrubber_control_off_mtrl_alpha.png.flat deleted file mode 100644 index a200d616bbf1339e042a22174474e263dc3d0cbb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 568 zcmZ>C3KETMLG=)(=v^ce>SU)R2Bd<6=PhT&+C@}?S zN^)XyMryHsNl{{6aaw*+Zn3VBep+TuDv;JQ)K4={u}Czqu(U`?Gc_} zw=gp{Oir^%Gu1Bw>V>&Tx1u5=r65zc%!C-X=@sOqGca@p___0PNpS(a#_Q?f5(K1G zfH;AJ1xVgMAdv|S4o*)O$B>F!Z?A3SZ86|!O*A(+?D?g~$=~-NOV2?*^^3+HY8<&` z3Cv6WpDK{i=zQ{stDZUHly_2ekKr+iR9)GruR$=B&f1H1&G0G@FSa0IxA~O#)wsTR5N?bt=4kn!0O3(J3 z2v1agwS+C34Z`mK5d08yFY}u}@%pzMU=Y?z#8k!Gq7v``=BEZvHVjFf^*-7*uR9jI53m);rR=g!L|#Rc>tucwDg z5Rg^@VGb4`>CG7+3=EbiPZ!6K3dXh9{PS)Fh_rs3|50T9f(kDy?{5y<8*Z^~S^9W^ zo{F!Spp`?DC)?6k=NqkpqCV1%Z`0BgXG+|BU;Ekrdi_0H_qUx(-STX!wtam+b!~co zUhk45@wq3g=bugGdaB7abLV=tMQWb+Z|Luq@>IPYE$MykbXD8Cl%iDTooDuH+irb+ z>yTrmqPzF?(#v-$c6kIBet7b%WYvian<9f3N9_^{U36sc;!UjX{FAcgZS=W0sdpoX zM8wJH?jmjG4&OIZWpB*x@H{Iz*QIsml!-n!C!S$n)^%>tq4Km-3}+(P1=rqW6?}W5 zxub8Pi~d5nxA_OA%Rc-3pXY}&+isTXNK)-QK0w_K9>bHToM zvFmD!D2c8n_7u^Zr{7JCo!W8MRW<4H!Ro!Ax2k=-`2JYb=i}<0#qLr+KBZlp@;P^X1Q1-{qs3zNxN$uq_K1*bJVoelF{r5}FtQF1`!) diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_scrubber_control_to_pressed_mtrl_005.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_scrubber_control_to_pressed_mtrl_005.png.flat deleted file mode 100644 index 53380c64810c2a3fb4157dd1bc32c5e82fc133ff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 848 zcmZ>C3hRP?TC+oSG7!TT+x0Z(v|5#6E%X0rLSy7Nwbt`k}?CMaBAA`5Ae|`FZ+! z=|zbtK%>LC>C@>1)}46r25?v-!JG zyVCreo5gQVtzEZo%-kc=kAsgQaTwzTc@z zb02ojo93))`93Vi`Rd|@E>_Eho%>gr9eMBkHbcr&{Da5kb9;82ShcEeV~JybX~^2n zGa(mOF8|s6J?-)wtyv43y!9`s{y4hy(ErCVb(-;z9$SCl@rolu&XwlSeUqM z!$M`jfD4mSxV*QBCTk4HBY|1?^{XEZVQ9_=*YjO6Xa&h nkl4d^sWkQWXVy#gj5{vAVp#tvVLmXiFnGH9xvXC3W3Dm78UDf}HPTPZ%t-~(dWQOG<|!751{RhUDQTt#W@e^F2Fd0omgW{_ z#)iph7HOvXML@kU_vltsWTX^i>Xw-ha+#i`UO`?u14CzkpF1y?6c^BIyq+E|K|op# zh*daPfTYO{r$<0aBCo(d2S_vUf(Rgh(f@($50B;5fs{*LK}a$K6AQBfkfQ;_=)eLY z0I~oC*nk*p8JGtNbB6wZ2fToMRZkbk5Rc=@2@mg&e`#$3$N*1QKbLh*2~7+P02G{V{{R30 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_scrubber_track_mtrl_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_scrubber_track_mtrl_alpha.9.png.flat deleted file mode 100644 index a70501180b587980472a649ed48802f5af09e1e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 444 zcmZ>C3U={-dms(0uVtHaxPO5%lQgVE8a#3kgQfg6rNl{{Q zc6@G0QBHhfPC-VZ5c>qi2h0Z;StJ;hCNS!U7N-^!>u2R>FcEzC8hvPNKQ=7 zNG;X}>dh-o%P-0;)-}>k%gjjy(t3vaY33;wi3S#y7Aa|_24-faMh3~|CYI(FX2yoe zX%=aw`b9v!FxTi-RAi(SWa^fg;CGjvrCvc^Is-#zfS)@rmlPM!TfCkgE{E=IQ-G99UO`AQ0}~6g0+6Et#OS~RApo)f z1lWKWY#Epb32%n}e+RsPd?im8#}JR>Z!c_QWKiH~F!=I+{%!dZ-!d_-1y;uIKYr!^ Zu}wmoiD|)+Yk?r$p00i_>zopr7yu_}Y<>U$ diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_spinner_mtrl_am_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_spinner_mtrl_am_alpha.9.png.flat deleted file mode 100644 index ef3fa48c6dbe03457be8480ce5e8e0a6f29b2fe4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 752 zcmZ>C3h ziFw6o`9-kGnK`LITF+2F%{;{-(ZIseA|=h#z|73l$ROF=#M0ct%-AqF%_7ZI zzX+%o<`UhCij0(kOx-dQ+-}md)GNqKXJF_I@N?(olHvk-iPzJ^B?w5H0kH=M3y>5~ zIrkh$N#qsy=ZFFsGC(W^#EL)+0{?;d?NZ58Kq?@wAS9WAiG@u8$k6~|C@_FAEMN=< z1~w=YL^}bo2SN(W0);mi{GEN-8yNh-o-U3d5r^MSF$_8sAkg+-ydZ(C-AYwfe8F>} zD)uby+#H=XJD7NFSxsBx8W%od3n@8gAoR(OTSA0qhWG@h@7h5s`Om9&&yGE5z;hUc z{u#gft-WsQiPTz4E~oH!Z*NTe6xUMx!mqz7Tr*(WszvFx4`nLXKkry^X*ox&mP<a${ak}ukvaSL#AFR*PftwcQ$8Fr8FKD`&B{-K70DKSSGqOYi_Vw z6~!1V#k%>{$#qA0KCp+%&A4c#xLP)Lw&g#E_dzzrx6%W0OU-pYNZzcp;m$k1WRl7$ zA=$7c)mHvqUg@=uas)i@;& zpDV_C3pFf*9Rz@?H>lvtjal#{BTn3Nn}T%K8yoDpAAl$e|y zpIcIt6Q7t?B zVtt_AyyCR{qTFI#BmK0@oKzsKXQ-cMo??+`U}0&Il4fdPW@c(+kZf*ZX>MU=Y?z#8 zk!Gr21k?+2i*7|lMoK}ZZkY)_SLs>m738HeFmwj^x$|;KaRGhA>*?VV1f<=8*nk7% z-$B>A_Z)cqLl5rGi`~S+Ui+eF+;lc+F zXI3~qQf*|JobK@@DE_s8y%w^5uB3%bilowys{@ zCGkNgebs6^zqwY^^+h zJz4?k`>!@?Jcnx3|qtjd42;^v+E$E-Il z`Ti1XE%-Vp6{xU|bp#Nr(r^V|&Ezjvn0_jSoA`+C#4d1GQ3r|*>Q zrTwyI%MHbC&RhOTR1uTmH{-Tsm*#YKFqh^#zK?fTaewW}R#6S>4*{|(0y4_I^4%`{ zoxn4POG`gS%jUal-Y&&sbMG-5zMB>DvnMo5EGV@%wCmi`Q_@cFc)WAcKb$l3K68U> z=g*XPb)sLR-kYpaw7nSW^XJOWzL1N{_N_?rvpIE#|J(bw;(^}{_Rc^1p#_voJzf1= K);T3KF#rJhFPaPh diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_tab_indicator_mtrl_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_tab_indicator_mtrl_alpha.9.png.flat deleted file mode 100644 index 3d6595daec1fbc6d5403c0444999d5d613a77214..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 436 zcmZ>C3l*2&W#*&;X+1;zH1iaTL<0*;ibG-{UV@Vm}7J+Dl$?EGIh&L@H$J+Qm-H{y)(eiotI0B3+N?YPY;(MAguzz94tW6 zn=?QdNJ-=s_~!s=4DcT)azj=k1xQ)s6@(-+FflPH067{!j1CMC0w4=OKn{o*L1sMM z{v6~0ZBG}+5Rc=@2@C3{YEiL%R(?iaaekh@UV2d? zP=kJQVsb`mv3^NWVqS4teo=0*u91FPW=<-Q)-%*kGf%NdG_bI=NJ%p_Ff%hXGDtQz zu{5_ZGd4_4vq&@5F9Pa?xkERLt zq+5X4iGvwPF4XR`0aC^RJ|V6^dc(e>Bq3pU%d=$r+d|IhvuP_7q! zw&g8*{3eGv;YyiZ7S3wDf~u2`afo|nx12X|7r7*}@v@v?M!&`u_na;6b37RWGy5|{ z98?%x7BVPtDsZt11Ts9-XxJel5Xk7r=o0L}!s-(0;KIsMf3tUop!p-WJN0Kyo#Sf_ zG|@Vv&h*Rr=FIRJ$ySXw%bE`CN!QU4O6=q8RdTld#jry`Mp?a;# zGw*or8wVYnbn4*xF4ogU;eUJzEZ4lvS-8(5iI?~PTh3S>?C38 z!~E$n<`KZ)=J#}Q45?szd-G`HQ3Da@KuHm!zyDUxy=x#nPi&{?oCTc!&;Arpt`~i_ zzs45#oGtEiJQ)Hr`!hrw zR2W?rGAMB>aIp#mGCb61*dZbi$mq!E670aj>JsYU!pc&Avv-G}`6IVG^=D3<<7*8x z(K@5f^vn9@%R*g5ynhxwrK0bl(+Y?r?r<_c;g%8$!pYT)UhS_byHJ56Yb?PI; z*`95>$#Cnp!=}SG%Kq(bx@c=vCs@|Sp0KVW!Eg7$-xmrMW=j8hZ8Ld|`m!*gdacSc z?|AMT2OXSr>frh=*3(7de|!oo*SyVHxX&Yrm-qi$&R8DrB}bKm)&awf!PC{xWt~$( F699sX_b31W diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_text_select_handle_middle_mtrl_dark.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_text_select_handle_middle_mtrl_dark.png.flat deleted file mode 100644 index a920d91bb3dacb1516142d705a31c36abd1c370b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1004 zcmZ>C3MU=Y?z#8k!Gr21k?+2m2O2vMoK}ZZkY+O?$ayCOJ`u{4DfU3<&xq8`jXev!zBnv z+W@f#2OE%FY6qkK*5 zN={29UQN4E=apk(Bk|KyIAo2)J#n|4&1V|qpNrisU%J<@AAeaAI# z$HtQutPg|KC&>7HDB_qNEtHkxTw%iTZ9(3K8zM1{7mm29uyf7hTR8LNzog<1eup1i zKf$%_GIe$3;s z%L@2VD7ojl5;P587lrdp1uJUt_uZcQ*unF}!_i^;lpMOb)W_$ruC~~DLupGto4)BC$8Iz(4|Lgg#BYnsq}hE}!w#vuIU;%I tc=eP6&HOw1H{a-7xuVTwwcO=$+ux5Co|_mx515h}JYD@<);T3K0RWR1u4MoK diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_text_select_handle_middle_mtrl_light.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_text_select_handle_middle_mtrl_light.png.flat deleted file mode 100644 index 493c2cda5dcd6f18c6f49e79228925a787a7e9ce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1008 zcmZ>C3x#N>?BV*Qe$#Ju9P{G!}qT_gRp%$!spt!Jp8W}ae^XkcM!k&%L8<1S(KW!-k1Je#q7srqa#;3Q9cf|P0GgUl)RmG|ETYU zquX+0-rqfG{ZQof-ObPE%=~P#zwZ9mnLquTWUn8n^iEIoYvL4N7_6vp_JVDh5KBmK zN$*?+{T6=V(r($sM}9pzS`nMnzIvnMBKMuPWgZ(M%a4{h3AVU;T{x<_@$HldZPA63 z?`~Xs^@fG(_RZScRJjx%t>IYvSoSv0PXRMcm+p$AW^QsVXFpv$^Xdkh*Bap`3pa*t z{Q80QP~xWx3fDGn{m6M};l2fNYm%}bFt;48b?VJX{(n@PV|qnvy>jo_qq!W@clO>X zNS<8CbZBXxqUD?iM+Nk@D_ps;>qCaX8^^N=8#Q;ZEbRR3!6#xP>16!)@6l%udfN`_ zPZUj=>}@SvTU$0iQ|6D0*{XwU6-}?g_Rq;DeuJ&9Ma!f{lKxbUfIf^1;2i$^Jw_qQH6{JtK`B0c`utG=5Cw*_R#gK~}Qn z#)1cnjVhKp9$cOJL7=&*{p5psUM{`QpT$1TW8BDpm9?RijU_**`L%>VOf;|GkpMip=A30t?QMv?^yQRe>~N?QT{`{iE&h=Ue{UYzZvOUZ|zFCdwTIZfn!R$4jkOb zYILpZ;ic_-f6th0$XfJGzTNj{%#r%A^FHYb%zMm^=edX3^fQ_q)RlI6zi?|TyX_?d zx$}=rG_84O`dRFr(&@P)@#rJVWy;4pkAD;jl)wGaqU*%-8;#36iY{-wRV2|aYtg#9 tqFboq17CTel(m82)Cn0^lYep598GjnY})D#Ov((Nu6{1-oD!OVOaKXZuO0vZ diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_text_select_handle_right_mtrl_dark.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_text_select_handle_right_mtrl_dark.png.flat deleted file mode 100644 index f6890aa11e8f7a85cb78c9949567928b4dea5d00..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 672 zcmZ>C3=Az^pRvp{WvB|(0{4FC5x1Sp*EH@IIQ@IGO^ z!~CRmPl1w*f}SppAr*{oZ(dD2Y9QcpQPyzn*I(<+>J!C$AA}X0x#nfZGyjyt>peQ$ z^YxFE$T2ERuaaXli9WB~u#AP{Km`-aEM*6VQwL9_!V#B=1K!JyuNu=Xk!v>y?ZpK6jfgkRFl>Z6-@37?fXP%buqfDZ0 z{fg8d^9v-_oT`}jXuiGhpImR1h;p8LB970da87%g#K|TSB+c=xV`4&y+SbN|9Wlq^ zLyp@mJ$w30jr4wr$1iWp`G4c|Bel=Fc_sWbkMTbK?m8v(tJywH%ecL4Wh&2~8rf;B z*73ieo)Vqvp7kNjF*SPMo@WL}Pe0qWS5D>GroE@icQfC6BvkVEg@^z!C3aSW+oe0%e1;!y(umy5E7Yrp|NO3q|q_BX8Lxs&{9ScVc4@U`` zOPYg&q`*u@##9FhHWnM^MFt8y%uFI3=NdNfbaXQ&N(lUL|D*g*@PCIT$3OG5gdb%R zZR=O0{+M4NvF238yhroxh5zJwt3;IZ+!JwpHidKA(FVdQ K&MBdZfdK&J3HS2= diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_textfield_activated_mtrl_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_textfield_activated_mtrl_alpha.9.png.flat deleted file mode 100644 index fd54046251697032027bc70965bf49504fa0c5d4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 444 zcmZ>C3Tma(ZU={-dmv%}~VtHaxPO5%lQgVDrYDGy}W@=7Kd}4A* zW?5oMYD#==Nl{LGVopIuq7eH8#s|y?7+EA3m8LT4hZd(673*i^XXF*<=jrRE7bT_u zjY&>S&PXlRFDXjQD^ANV$}QG4(of6GNd?k+hWcsdDHe$a7M2z%X{H8dW~N34$>t`O z<`!nghRJCbX{P!`K)o<0=~h%^q!eW8mYERYI6X_fg1q$306%wLE-5ac_jo-$T!MhK z8W1aTumDMUL&3Q~N+PeoKL|8?q89K*}PoAS9WAiHS)8$k6~|G{9qk5CB;K z0-_L#f$C3oB`q!U={-dmu5;)VtHaxPO5%lQgVDrYDGy}W@=7Kd`fCs zVrfoEd~QimPJCicK}Mnw`vk@Z%m)}*Bp8(@GwO#Hrxq3KXXR()73b&a>!lYZrT`5| zPE5{7E!Hn7O3W)x%P-0;)-}>k%gjjy(t3vaY33;wi3S#y7Aa|_24-faMh3~|CYI(F zX2yoeX%=aw`b9v!FbC;YRAi(SWa^fg5OkWJrCvc^dS`&2J1>_M7tm|Go*phiKw1rm z6**Xdq`aZvTp%TpSKyxmq~U-W%K8ta*EgS<0;DYR3PO?@n3$LpfE*1VMgu$s2mz1< zARr2%7#MHy1#SVd)jeGtLp+WrCrGd^P7vv73N+wyJE-Bn*u(RGWx9m0Y3wl*DN7Y* YhT9p8tin1kEI`^lUHx3vIVCg!0Quo*%K!iX diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_textfield_search_activated_mtrl_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_textfield_search_activated_mtrl_alpha.9.png.flat deleted file mode 100644 index 9faddac3f30467026700c2034fa2de9538314160..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 448 zcmZ>C3+ymm>U={-dmr+VlVtHaxPO5%lQgVDrYDGy}W@=7Kd~s@G zQF2CnVsc4lSz<|QN_=ifQBHhfPC-VZ5c>qi2h0Z;StJ;h<}m7q7N-^!>u2R>FcEzC8hvPOHNGANG;YcDN4*MPRlRKE!H*CPs_|n1=4zk`f27V7KsKHmKG^#rUqta zrbY(I<|dZr7G}nV$!Qj8rus!dy)c*QR#ar96lCg_nGo+rJxjfUymSVJ&Hz7mUM?vv zpm%vaJzRo-vPfDiy#00QhF;y(~nGL^prGNn9S978nDCnrd-DoYsr`|mH?JY&UErB#wF4BL(~ Vu@o<8JOt9=>FVdQ&MBdZ0RZnGa_;~D diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_textfield_search_default_mtrl_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxhdpi-v4_abc_textfield_search_default_mtrl_alpha.9.png.flat deleted file mode 100644 index ff4446feb983ed62ecf251ce5481f6157cf267b5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 444 zcmZ>C3W3Dm78UDf}HPTPZ%t-~(dWQOG<|!751{RhUDQTt#W@e^F z2Fd0omgW{_#)iph7HOvXML@kUcj;DCWTX^i>Xw-h>q0$Cy@I@S28PZ6KX+a(DK4N_ zc|AQ`f`GIN5OZ;`0LilTCZRw|BCo(d2S~#K6O{EINSmm&{RUDNc?BWK3`|T+3P6qq z5TgNR1B3v`0uW$_Pz;P0_NC7TvL!uT978nDCnrd-DoYsr`|mH?93dgaKJz-m|Cday V^VLqR0%`Dc^>bP0l+eV$006XcZX^Hz diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxxhdpi-v4_abc_btn_check_to_on_mtrl_000.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxxhdpi-v4_abc_btn_check_to_on_mtrl_000.png.flat deleted file mode 100644 index 9b9a4b696fc92a3c0f729369ec9cfea67bdb95b8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 508 zcmZ>C3MU=Y?z#8k!Gr2 z1k?+2if%`yHVFr?h0yRH? zluCe4h%1mL2$n@KxdRpPlmz(&GZ@dh{rf-H+}18h1B%m*5mt(?Tuv*2`2f|c-|>chGp>Y4xiox{Swkh66j&*8M9ob^U) zznu)(b8_Ro8I6--tc?Svzs_LWRpfitA%5LVNr}^@=FF2y{3Am>f4yR0WMbhEP;h8~ zFe+>}%_~!|vw3{k+-~3D&-OJAE&3Baa0>5jWMDWTZNS``Zt?OVI6^&L{an^LB{VSr E0Q>@(9smFU diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxxhdpi-v4_abc_btn_check_to_on_mtrl_015.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxxhdpi-v4_abc_btn_check_to_on_mtrl_015.png.flat deleted file mode 100644 index f6ff6996ad28cac5cd0ad1ef2a2f6bfa0ddc7218..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 708 zcmZ>C3@w^-LmKP@vS6-etD>Zh5fSR@))SX!i{nHrdxnHm`+o10jgTbLOeCZ}1X znd%n-^}?K@TTxMwky4PUTV{gSReA+^=|Dep2Kc%2a!GLknY^AJE4@*c-LPdM%&DlHF_hb}Z?R z`+H-1^X0ZC1&&2?XY>U9cB|Al@wfcvjpK~Yj)~{f0{Fj~{XNbomH=`EfpW83raC-lzk1&~r zXTKTmS;p*>f8h1$1mmZt3}?^lbG)-@ud#Oc?9K3GHsh>#CWZS<22Z9loG547GifHn zY4f^9A%>rN4UG@9%_qEPlHi!Pv$00@fCIym*9>e-3i0d)0wC#`3@6MP&#*Y`<4jOv z__UQlwc*oWJVXLW)&WE)fQTL6f~K%XG_b;utlztmvg4Pn=l{=q&IgJVhK4`!(uzkM i5*Hc<-h2@f3I>c8DhE`Qn?=Gw3Orr?T-G@yGywoJ;0;9p diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxxhdpi-v4_abc_btn_radio_to_on_mtrl_000.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxxhdpi-v4_abc_btn_radio_to_on_mtrl_000.png.flat deleted file mode 100644 index 9c0d07e1f972afdeb5aeea62f7029a773390ef97..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1020 zcmZ>C3)z(9z70%HT~0Y(<3K1Th};?$yI{jB_qyyE;keZ6#`2B7xj#N>?BV*Qe$ z#Ju9P{G!}qT_gRp%$!spt!Jp8W}ae^XkcM!k&}JUuca$1A z<%j)CX3SnLw0?`nO!j*{^76qC>q9zv=YBZGta-_(uFk3V{)&kbyBD~6UEyu6cb}jA zVzaSNi`Bo0<~p_gQ+7@>>Ti2$&|l8!^<=i>b+gCPs*@hvlu-TT+QF+BuQAb3&eZbc zdG!O+9LgBgXH`r})Md97AL04i$CcrSkO=$yz_nV zvDQsC;s!@IPTKQ!VZU~5Wws0FaJ`N%u`%B2Il7Vdcd-D8h3&t3lAqIPTV_#bzXX{_nGD}TZ~YOnWu;9UWUBPbkXS?pI^QPaXnrAT-G@y HGy$0aBn+P> diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxxhdpi-v4_abc_btn_radio_to_on_mtrl_015.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxxhdpi-v4_abc_btn_radio_to_on_mtrl_015.png.flat deleted file mode 100644 index 728360e363a933d193cd782d97c6b48292f3e034..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1180 zcmZ>C3-DJNAwF)2AdsU$DHC^027KfWYC zK0hx$x1=a1-oVgQhty?L>FUY z&uM?=l|7j8cuw&HA1AIif|njOrdRa{wiw#Zt6boELXP#Hr`+$D&&)Fy%g1c)KW=|0 zak|<5iTvMYo9(t(V>&b*yLoJ>$J~YvGy92>TTg6Q^r^;ujc>)17OBlw zEFMneOnPfw85S@#{K%z-VyzmN)?&7frQxgA%+UX{>E925`R6}yuATg$TYt@jRZpM) ze>zF0`$W;n_|qaGk%E<{PycsnwlJyKsMBJjt&n{4*S?2>;{Ey4-WnXfw6$mbKf^+6 zGrd+Z@3NMRzlsW+jP(L*m8Y#ZbK=A2{gbAwZ_|_rO!M5f!+g&lMo%st?uYYqr#)i0 zXr-2UyyF_9_k&A@Z~lBP$S69d>(4XOAn}Co_Bj`iB+C8jyl_ypbmGH1-)Ag6!Ww%d zXgasonMWU+G+dXQS-yVlKeo$HcRZ4vdC@xj$&7Ui-?G%!1eJDa#2VdIWKKE9CS!D0 zby0~|m(0B__Lkju`OHtS?@najy~b>AzQvL>@j$MP#XFttF3ReaDK6ULoptNh|NF<& z+O3~VzPquxcl}=G+@MF9^DWP9-0dj#f^B#4+u$yDt#4aTuj4XnKhY$c6ns(d+&9mo zTaDf*n_04*XyQGQ_<4m*wXf6`|2gV6ViXNaTF-WVi!^0rby?XK*;%gAc26@g%y|lz zN}m7j=i7HWB)wwdertV5u9N$@O^wVh51-P)XEqZKe_4M(>C7yT9#g~aOZ%0o1KM~D zteunI@N9OdeAjryR@?cS;cnNYH)5N2eY#`Z`C8Li%&^)i=?&-RMW15&kMvGej6Kul z(Zg$4JoWi86~8Il3}-7CnjOrM4!q@aAdNG}?BH3$ANAJXgIE|iS{W`#2H)5(5!my= zuaCVf_y?m*i%e^5TTHucM}^R5jaQL(j(4m#oWI!i{^Q7K2PYRd4=*3TfS{1Dh^Uyj zM5k1@Os`zO!l2Ty%Bb3V4NaW9%35h9|M)eRrhA;6GR<)7&6&@>#K{(ca~FeN62li3 U@Au0VfViHnelF{r5}Fto0A@Y#Qvd(} diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxxhdpi-v4_abc_btn_switch_to_on_mtrl_00001.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxxhdpi-v4_abc_btn_switch_to_on_mtrl_00001.9.png.flat deleted file mode 100644 index 0005039fc13b1a85f8db1a05470cb7ac2cbecdbd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2748 zcmai0c{mhW8=tWZ8hb<`A&hlqgc)^ZLY5MfC8L?ks1O$8$_mr1W}-depDX<{|vkjo=gmZ(x^U^5K<8JT!?`Yl;j^sXF}QHy0+|r(ZxCwy|5`IN zGYqEq0dAokZ6$W>`FTqTdpm1qz770IQ6au+2IbiBjUpx3DNvH{{F|IF8kXDqTkKafADo6cF{SpDbp5^mr6F>34 z@juyr^yeS_7s?Sbl>mU~h`sd@*9!x4nE`=vALQG%SGu?@0bE7pnFMFV5lrEAV|6(J zxLU=2f0X?Ww|DtZ8!#uD;dBVSB;lAw1t?*rko2LGl^M&KN^$@2@CDRE_8VgJBcKjI>hu9T(isg|K{%S2n!EPi*LU63v-X#onk(=o2cq65Q9k@sc6Rp3 z;@9&ct(#r|q%#V#RXxjULqugSh9`YWTHhatwvaKWF11Xxd69+P9F=3PU9*f3kUzXC zg9<(~H!}HA%^(lntRZvAxaQ&+gGkXPDOFbp8kLn(N?;bwTBA_Qz2+Q~C8k13kvp_* z#cpb)#j~<_AO%~>ie8)@Q1Qt!QVDzZD9l98v6{|CzJJ{Fuxd59wUF`_pM6Vx>A|WF}Z^&4T zTt$KDTeo*uWBuHcBJ;PsC&910-h{t{=K2=zbdgRdz+vli4x=|5h+f>Sp|KB5HB^C; zL^}IY;}9*OQ}4AzlEhNDU;Bemvby&lj}6T$Mg*O4b*HbzEnDzzmdhMq#UfUHH4^g1D~DP8Zoc0n9Pm*E5@i%!l?Z>D8C6 z+DgbRke_QP3P;FZ)MFRZXB}?|nn0Uqz6LiAIWJt2s7~Dp77g4(`N7)#4ZT}d8sgVb z#ihvvwGG{|+py%7Y&SWSZt>9imHVs|N~Jo`aa!#RI$5%0ahnU^zAb=v!Kx7LXu-f&LUs)01# zy55}x`!N(qguQ-z(<;Toh@n${;hDm*6(OO0Zbpp6l8v)RW%Kt#OfWF(7iplV?4v2S zPtZUo00|I`CrNkLZS@>Q!6sj4#*6P*9!!e>I-vFZ!yh%%f<_FYs+Shb?Rd-&`ia`ihf*2?e5{N*5w>*WIR&VZXb~0x4wCgUv?UM?dX8gOzTb!+lwL=N@e>>$Wj3#~5-HkJo7k z0tGi|qXmr?pD`}ue(wd_5ZqO=+`-Wv=^K)9PEc@PMbgs~ym=3yksGS7+EvTwDIlgB zacP4xhx7iPEE7hwI%W6b(<`&~ai_F=?M4n{^}2eQ|I!w>&0;1Rs3Jzb`Gg6XbQ4>! zLFHLal&sB7_UQg##Fb*d^~%G*(cRqe$<1`2;6eVYKU98~oDmUGu!g+bJ%8B?yWW=8 z_}x>D0wirTE^IA!Pf=RN3p3*iL-gfDI{P_-s`SN{+W`7vvxsm-ZPjM2=J1d1T;bzN zbDOjAVNS!LOk~z@{CRDKUB#uQ*KNKqW^#+4;xamUVP)7KOP?n4?;$b{)8{*ftHPwn z-ky3b%|^Mr$h2FMa?gU_|7mZr4MFD(oY7Eat=aQNQzSYB_TH72)v(IhcrvB%pxeed zKp%FIQ)*^NzJ-{WT4zPLuGGyuzx$b(%{6WV^Gprz4r8_ppEM{2qOFc4fBJ zdE;t9&gYt~t%+)oXNYKnbThuA@3oZ*&JGq9&@ji;xl!?kn{PHp)YJvWwl8?tv!XRQ zG)Yp8mbQK)P(8@F23wSS&|6oez~4NjSg$raoeGJu(rgy@>kS44MW;_IVOERClJ_km zq;^~_6+AEB-5yYghx>W-Ma?&5_-~d&L@)=HC!i&4j%%Bmc2EP}@kv#d;T^J;liY!5 zUGa3Kc<4q=W@04Deo!%)ZkgVudf7H>MW$7KscmD&TgUq}D diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxxhdpi-v4_abc_btn_switch_to_on_mtrl_00012.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxxhdpi-v4_abc_btn_switch_to_on_mtrl_00012.9.png.flat deleted file mode 100644 index 4f2fa63e489490c1384465732461fa14b934e483..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3056 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 T(X1U9Kn$L)elF{r5}FtQ?{T{} diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxxhdpi-v4_abc_ic_menu_cut_mtrl_alpha.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxxhdpi-v4_abc_ic_menu_cut_mtrl_alpha.png.flat deleted file mode 100644 index 4bd446a84e6dd0fb136d1d40007688338374c5e5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1140 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 VHqT?;yPyQ)>FVdQ&MBdZ0RVl|NxlF8 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxxhdpi-v4_abc_ic_star_black_36dp.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxxhdpi-v4_abc_ic_star_black_36dp.png.flat deleted file mode 100644 index 46e5ca5376b5a546578f41fa789294db85056fd3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1492 zcmZ>C3Qb`dRrIdByp8`g-X_i77yh$%)Assm1ywMTvRE zY57ID#kxlNX_+~xKw8gGKg~SFBGJIY(jq0z)WFQl)W{&&+{Dt{!pzt(In5%?RKEzQ z7v>1vii(Pil!8p%G7}u`(JRPH2Rgkoz|WnRONtA~v>^erRnq5*qr|-y7Ag>Cf~~@ z5OntAzd!kj7ubwD0y6W9CQI+})YxLh;gsvNq|&lULFSk@$CjKEdp8L%!tvv{eqlLqhijLj1T zW;L=Mxc*~;z^9L@QWsb`m-=PwIgzR|MembMU$_|O;!75Dy61XGdRQ{OzhKQa50

XWP@3Dok^qO3JL15IV^9&|~%lj%|GGUHuXoW_`wN zh8H+wp4H|lv+X*%+rlgONCI!+1c^CLJY`KUEZppl^cOvpSS@HD)#v=D_s7kAi$elO z&a*vW$S)NBxcT)SzYD9oSps~UVods!7)u2B9d)gR5@vD)#oc?TK24c%TZ?=pyZ*MP zk4*O|+C^&mGVd~MbA9tb$4*7)bK$hNIw?GNGaNKG3Cz#0;1%bpoOu3c`xlX=X0npU zWXuYiZg;faea13-#$f}ifZ2ja(8T$xwxlUsjy$ZmPTB00ReQwY z61GdTRy|P{-Tzt9kkdg@ZPT2+F>Xyeyx*i+3Trke>KiZ@dR(q#w6A#CYO!Em#m8vg z8V`Zzi>(+>o#R#U*zIS=(|n7j8ygP)>F~Ul%$&6O+DARL zs>YWcy|Yezo^i(8|A<=Y;bzrUk2fE*jAG?ZeZ1?@^9(VaWuG*wyXrU0+qC?RpPj4V z`i(4sYh3qqIVBk|1+G|l#KBN6N}=lti@2B8sa)1`7o9Y8b{<{+#&y!79rC(1sr;X8 zPi^`)CHAzn#_3edYzfxvg2K0(&(<`|xO4l4 z7vGU5M#WAyz zvZ>zCYA@LRi#2*hOGHRyPNGawpz_An$sMk;2if*H=)6gu5-zZDgN?>|{iHhLFrE&hOQya6x;UC~&}`^dfh#F@!P z#V5|o?!7cknQgZ#_dI2l^B0?<>)tepeB&_}bUynq`_L!TV&3&ai`h@V-mjdZu2fVY zVi=$^C6v1}VSDD`&n{QEx0r6QS=F{_nWA781Y{!c|r zoZBz&2)NYmVR3h%vc6!)^cQDjRp#v5_>cO#)S<5n!(SOEy Zm1~wRHsI+57H15eu6{1-oD!OVOaP0Qdp-aF diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxxhdpi-v4_abc_ic_star_black_48dp.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxxhdpi-v4_abc_ic_star_black_48dp.png.flat deleted file mode 100644 index 2bb1491e13db372540ca4ff7b205e8bf8de29d4b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1900 zcmZ`)c{JOJ78YxdU65KLMLqgziNqF)GK_svB~4Qt{IV5QOJa#e-&8FPgGww-ErW^L zMommp86fx- zDv3gchlB@(QNzRFM%O6-Q6MA$gdh?X9z_AdsN`_UO{yUhP7V$w391nSPPQPT0ArLT zibysyHa9mz8WSu`EiF*yCI|uWOxi zkyMiuP#ISjM=wEb|B6$hf_yk$mM$bDe$~~{9zz3d@-u#WL(=HkKDb>h0$qg;^LS~C zToW6hE8E>&$0xWj0euaCR)meT=dg0oIMy&rHLdyFpdH7lT;@$g>N>YKuH3WnF6w5^ zokS~eUWtmt(u(!WtRHog*1bI=H?j4+c6RF^uI(iC#_a81 zQLHCbnoWx96B?LwqUD{vb>-hN48M$`(qAj(|2B+CdFrWvOt6kg*)hEg+A%h_`<2-{ z9tl-1c~mql6TXptpfVBei3J%0~ z)*+(81I40p)U-9FxWdOsg)BZUVbig&AVGPU#2~11wQosAhCul^h3IYj&Qdy8`&f2i z!1GJ8@}EG8X6DSD+@Wa3*$Z6oR0=8*fyJMmzf;rW7OFwYMl5l`7rM^9(&^_SecY~< zrODQ$e?jLVd;Mw#Ry@Und9OBNUHWtZ*`sq_zcjED|C5xn6p9X%U0X6J6O9eb^hsAT z?AK>={B;wR-kl!+23?pwhDdZOE)YN=%0!H1 zgA;A=mTwaNsq(ev7NT&sF-ia7YcCkl=J7^ZA{27j(&|w0am`<#JmX^hCiZTn)^^HJ zJ0`!0Ieo3q%KS;9NMXBhRkp~+oa&o8)^t+>xg43P)rnRnJnUVr=dzV+NQ%>wJqUwx z4FY_6vQrJqWkYOx9J^UvEz)~_z0xbcGnTDiI!#UT6mHcijrA++f3Q}MOIkL-8=0`} zY*e*}dreokS)`g3*QX~T?6?UzX8v^5fdEnz<<{zJJowu`N z(8bBiDPBV(FT5m)mZW~hNly2OiQ-MC>vHzAIUk%VngfvO?Zn12?ymZM@@2kW z5!LHtt+%U~*g|saaMk-Ox{4w)8{Oc^V%2*VR^y*je7;V5F!QPC=(xPO40LowW1dO@ zY}cE=?!i+pTHB}C3e*R}dpeFX>Rk4o67TC0df%Ktz&Fq=B}YP~T2G9#MGL@(Rkew( zG>$jl$ktJEY&cD9^2rzrJpM^os%8(v)Sm4UUJvtHwj2mJVm{AT1leAEa-_%$_jbt$ z4+QO-c`aT|sO5VtHrP4q{X5bY613==T)?$!`58llO4U2NCcnTZ?4R}u#I)Zi^><>? zCIUeg1)aXhVl!!qku;%Y*u2N~>9f9-^|)sDhFWO2oB4>!6B$Gc8}uj{TSGU0$8lO{XWa}xjZR>#KG{T_mh*HUTca_;`Rjh;90k#K%Lv+wrW!i(X=U{>zvE z-{2Ga>W@@K)%bqn;t8A3M>bofbQ+tPv;c)Yn&4rlreQ~NevU!59qzEFBe4A;XPjM% zJgM;^=gYH^%kN9+*BorL)Vl~vpTi$<{&YBDx-$|l)s3EDr}kh+GGSWoe#F1e_ps`6 zZ5hnJ^wM?1x<8ogM9#Wd1a2&NEreLLEVku_t(aFco}7RFhw?v{{2No6e{rAu;w@N0 S)?V;wgj~NzJJx;|c=x|ZDtE>J diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxxhdpi-v4_abc_ic_star_half_black_16dp.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxxhdpi-v4_abc_ic_star_half_black_16dp.png.flat deleted file mode 100644 index 0cf4cd0e5f5e4aa5d4a627af61c1e094cdc39c6c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 604 zcmZ>C3SfdqElw>e*3Zh%$Scmz)7MKcN=yOjPEJhDNG;Yc zDN4*MPRlRKE!H*CPs_|n1=4zk`f27V7KsKHmKG^#rUqtarbY(I<|dZr7G}nV$!Qj8 zrus!dy)c*PR#a4Eq!eW8mYLvllwLtzIzwlGpF1y?6c^Adyq+E|K|tC8ggID%Btyc^ zP@wniJzX3_Dj46MW6p_4WN>|Ge7i60Hcwjh!#4?iY55P|6l{B|8}s&R+2dP(rLSJw zebCzc+TRVEH?K}UE4ZDnkk4awhvO|<-38K;Q3nKjgf2|c&`scV;_&A$xd4uR3&sDtQIrquvyJGSK4Qm957w}5QH!RL)A2Ln(&nObmo2=wb+mS!`D^_vA+pwMZu=${@96M1HqF6Xjy%c}zgNG^zG;u4 xgi=K3lD;PsPgX`LXBpZ{^lZ>GDJUx|`C3B?w4Q0AUUmAnEI` zWz4|9wBOUkF{Fa=?QP~Yrs)!{4@*ODZ_8C)lM5t4D6je3_Uzf|QlHQ4d$uM$sb0Hg zvh50M&q*pkr0c#Un$twKe&GWPF0Yj{H?nzcTVN3I$%|{rQOzKQ*y&7}T6O-7B^Iug z3Z_O%te4nCG$+jSZQR0O%B(s)P-4ZMls`!eQtG*wr)DQiXq;rK$uq?!Ye9bsq?Rmxl zMz-~m8kTlX4Fk9z^GwN!6g%c{_RNV#domZWElYC@OE3QRRAt=*ySRtO`xZ|-%yYzH zvLV0rCdJ*wI^xCb=Rb1BfAZ%u5McH_kfU?h>dlFVb55VNIa%HFtpCRuE|y#U?Uj=g z|4fn(x$7|bQ%F@uaD+R?Zvv*ND9O_n>k3)VDl z=Djk@_UCnnn^Avq7UUEjlhT+yv!7>*@2Sabr)KTE<*?Rr(yYc!x<3}DGgqFPRC$We zBlt5=;N#BI4w201k}FJif9`MGWcu@_!_B0gx91$@ZAzK9N%Z0wUba);%mT`GH*N}K z^GZ7_$+Kl@C$k zo2MHZiW(}`Z#6z&tmDwS=H5DsC3B?w3#0AUW0Uw>R( z(!;>Oyv)KK9 zF<7y}W2Hj#B3+M7&1b9xUMHxw$R#LsF4@%L@#R3*l-`sLPHR6Xrd^#|udmP%De=9U!u6bldyPHwNyTvNZFHWa0oL!*8oKb7k zp!XocsA1lcCrm549|A>}ODMeDoWkI{cq-3=ty5wcLM`X;ED!}Tei%wR6lFQ+O7rPDx>S>%(?|K~>Vh`6R=x8NzHHQND%_=UD2@9WFJCFstMO zX`L>{NoGLPm1Y5DT@4-l%zyJt*wT>Huw*Tp$F6BWx|GesYW`w2kE*7mhBp7DM}=|EV(rqb59h{K@ffJx^+~hZzNy2#a$;%Dv+TNO`d;bw%po(5T;`VD`8h&T00c8rf*?A|FidOSZ zxO(24?Zm6p$&8z{c%&3^CDnoA?Cv}hOeeQ7ZqiGf&bVn+O;*DixqD^~w~V*&OxUVX zw~G67i2AZk>e3E>bBrDSgiPmMz_oq}b4KQakmVm%`aKMu`)~0vKjxnK!E+BSw`%n- z<(mKM%l^D)3mDJ60Sj$iI9-u>&PuSHRCA@wIkpR>COiW6S5ui+c-cxj*zN%uDZYvE z%TC5gRTfzdOCo_mZ=2SzhM#A`*V&Ad)-8}w$lS=d>6)~{Yj$RpSPx*RmIw1pFv)0G zlgsAuD)k71Co@pXS`&wB>TDjXJ}hUPv}||J=_sHPy=*6b9cAz|ef~0%n|H!jx8w5v zIs7l0y?ycFGk@UX+*M^?{?C}dW3J)FIeoVO48x2VTfbeHy;B58R?ld6s(w*l(YHA; zga5B!a6ksX?U@>pTh8W@zVcje7ru_^1j@(n6bGtR-gCrKV@vzJLna{khz_8{<2|Qb zfSme+rXY#)%s|ra;OjZvK&kaJ8iAyJgb%Chw+rf#rz?SS|E9eLT2tGg8WNDgZ+j}* z$7!MMm+~`iKvHqqrB-(^aHiY-sy09wy7!am?}K8cuxAqD!VS>c3WoM6kx_> O@O1TaS?83{!~g)_aPrjv diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxxhdpi-v4_abc_scrubber_control_to_pressed_mtrl_000.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxxhdpi-v4_abc_scrubber_control_to_pressed_mtrl_000.png.flat deleted file mode 100644 index 6efad60ba6f7eab0425505f40d6babb3e3216fde..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 672 zcmZ>C34Z`mK5d08yFY}u}@%ZU_HRdqBM(9KeRZts8~NMKO?U=KTlsT zy(lpSXjF1yaz<*geo0YcUU6D}QEsuWk$zfcPAZVrGt^HrPq9ceu&}g9Ni#JtGcz?Z zNH#aIG`BD_HcU>lNHf(3TBr|mmTpBwMMg?Nrf!)D(Js_0$V&(Mtuw&SotI0B3&`a4 z^l%9R(gq;R!2%@zavSmhgC@<>#WAFU@#u}CiDHQ&4i}q!xH@hN@or6!uIXM|u%7YJ zOO+sJ8|^hLb9UHmI{a{YWr08I=a*+zEC@^gD)s%4b@uLim5DLyH%DEKoE*LEO~?Hk zhEJ!dnO=RkQZ=wKwb?54YTb98E-js1%L5YG&vr?jc^T-aUMpl8RdOqSSCaRY#M7en zFLr4hEZzUIMK`cXSN+eT#bU0W(`3Fnw^jx&Vr|VY_Mh@*U;e8t8eZF02sbEBOpsV` zv&&<{BFP<^lkTuAbDgA_u~m7}n-@>!c$7?xo48_n;lzxd>q-~1?Ydp&ccv&^t@DwF0yQu zw|WxXx&6SxKi9vX;h*sT2Pf-t?_V4~KYHet`?Q)?;B- z+wSxKWBQ3L(X*~b&MvOzopr F7yzfg5upG8 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxxhdpi-v4_abc_scrubber_control_to_pressed_mtrl_005.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxxhdpi-v4_abc_scrubber_control_to_pressed_mtrl_005.png.flat deleted file mode 100644 index 2deb0f5b643aee2cb8e3c5a7653745da4aed2179..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 888 zcmZ>C3hRP?TC+oSG7!TT+x0Z(v|5#6E$sf%O0*i_$Dc{m|mnqGJ85{EWQf{5*ZV z^rFNRpi#+*$r-7|`Xxn)dBth@MY+YgM*3-)IjKNe&rmz{1iZCC${p%*@ot zAlcl+(%iz#*f2TGBF$7EXrVsLS-KS!6&Wc7nYv{rM7vP0ATJ&0z0LqXcU~?jE+CWF z)59eQNPB=V2Mdt=|D^g10|S$tr;B4q1>@CQs&nMn1rA&kPrJfcK3{*PQFUO@@#lJT zW^C%wx&Av|GWNuD$+NLDW|qA=RMLI<|L3gA^eH)QyLoTEa<-pQ;=^&==hwmZZBj-3 zl2KVpP3_7e?i@>$k4~P-HhcB`vep?*hy0kIt=g*^w=I0img}ddtyp{0%t}SeDrND_ ztQUs+yJ!7*XE=4%``FeMfe&LpPhE4Ke-WeoE6t0+eI0EwU#DoAJ=l|Rp^|yog%wUF zYYblTRi9(M*u*`rl->5(nv9c?{X2bY`#QvAFFqGL`@K2iCjYbDneRLJ_B>XzT_7N< zVRPc^*)MxvocNx$YaQ<*XX%*BLhP>Xe36e<#RFIy3aAI;#DrZ53+V) zvStj^bYW@@Js>slNYsPuiASy*T=txJ#B=iwf0ZKnWTlCQ_e47P9DS}d@%#@*l~1<2 zU6poQ>Iqr8sXSieag=f5iNb$p%Yy1>zuojdM&(oGHuvMVU&^iHjJHo)TID!CEdp`u4tCHO)fBs^mn_^(}!V8H-=fddYrqqWqaB zzvO&AMq3>0|6G1|%g;I?-QOo`wy(JU>%-FNbvC87`diEnRNs>|yLPIh_)WbHOWShU z+yb9}TZF#;(UAJEdETV6-{an{7JEN?eNg{z=POV6`&Tc#X=bUTWtG!?Gb?-M^*8H3 znEjabG%J4|FVdQ&MBdZ0RZ9EgRcMp diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxxhdpi-v4_abc_spinner_mtrl_am_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxxhdpi-v4_abc_spinner_mtrl_am_alpha.9.png.flat deleted file mode 100644 index 4d7b5ccf13c0e0be43e8fba36928ce60b597bcf4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 660 zcmZ>C3~b@l$Zk4ot&7Qky@-@ zQk0lioR(jdTdZrOpO%@E3Z(T6_0!B#ED{YYEG<&fObyJ;OpOeZ%}p%LEzFD!lhZ8H zO!bR^dSNcnt*EHTNGZtFEi=LGC_PKPg1mHw&Hz7mUM?vvpjUW3JzRo-vKq1|}9Z1t3QQh@rp%#;|}f z7#KL9Ob{Ib#0gM7jDiL&1H+NjS=B(nubwWBAsP4HUf;{x6d=)>=+VP!JGal_teD;b zrM?B#4;WqvU3tY;l9atrO)gtFdB>gi%Cq+P`xhNLU+X*xYG?!V+LTOLdyUXsv*lq~ zh5gHJ%{+56JL~HWBh!n;QmNDOgVrTqnKQZQ_4MjxWgq5*8TY?m8(^Ms&b9TrV8AOW zo9C-8eGZ9wA!qV@Ve5Ct$d@;(&jnwVNdLa+`+}$WPg88;?*DpnL`|5{@@C!K&Bmu& zJpFQv1t&~CeB9FgvyaQuBkDjY%l&6x-Z3)NP~SI`|`ij14C3lvtjal#{BTn3Nn}T%K8yoDpAAl$e|y zpIcIt6Q7t{YEiL%R(?iaaekh@UV2et3Q&J?Vsb`m zu|805UU6D}QEsuWk$zfcPAZVrGt^HrPq9ceu&}g9Ni#JtGcz?ZNH#aIG`BD_HcU>l zNHf(h0_ugiMYp1&A|s_BQ@6|npR@EV^$POR89D>}+65i(pSg-K=voI+;UD%C|H<-XgIh!(R3jL15<{li(^Q}y|=Th{X-l@j{jHY^u8u4zniy0 z*d(&jBx1$IWBd*qZ%*p+UvM!fnyH4dHN(|;uYAKSH{l50UT>2|R@KO2^9}uMJwJmV zC{Ge_dv<2d-o*cJ_wM{|uAZKDj{C)`)!nMfUlqSSkdsT6DHnLC^~>KTZ&Bm=A3ddO z63+g4GvllAQO{{R{G;D)KH|CT%fZca($0L=cxJM>>OtnYO|IfwElzJ?t7?p%5-_!O z!-LuyU(d6f^+kR$oSqUklUeaX`%X{!TTeFRf3eB_vQ+A`-9_bvzE!`T_5O)(c($NP6?{8vAnaewzgIqQS+yAO-AJ}iFs!8z-L^Sck%uRK`4TYhTD z8ds^AD}tPv9y)sS?t9C(e>vOzqW1Nx4(9JZ9De12_PY<#Ss$d|eRzNM!Ts1b6K=>P zL>_&2I(^~o*dTAM4`TIOy$_TN?y6Rq+A!OB4`<%@?dgll^De&J)|tAB-Jo<2SJwAR z>5|`0+4gp-+b(3yst`K!&j0O&|K2e?L3883Bnd40dC>Zod%kR;+nsM+`yQ`d$X1b; zTKE0dDV9BE6P-gkgzoHP7qYeZn9axy$o8+aO+F);-?ZkSRoI4Gj*B~EOQ&kc bGMY`iBJpb4A~R3|^mO%eS?83{1Y`mLnmv{` diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxxhdpi-v4_abc_tab_indicator_mtrl_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxxhdpi-v4_abc_tab_indicator_mtrl_alpha.9.png.flat deleted file mode 100644 index a0ce82b942d421bf09a9d0d99dcbe48cec1324d5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 440 zcmZ>C3l*2&W#*&;X+1;zH1iaTL<0*;ibG-{UV@Vm}7J+Dk?Hk3Nm%eOz^r(&r+`-FCFNY&Hz7mUM?vvAd}bA!zBnv8-Oqe z3y}QFZO8+pB=QRUbAU7k_zx7hAuEvrq%86ZLXsJnn3xoR91S2w2Ov|S0LBC>1DWx3 z>B#^frRnM77!q;#?fH$oAO~zz|NWjvRM@5D8`E-cpmam%%i9Nb+X)E#FxQ>V$nUtV S!x&_sr>mdKI;Vst1_l7zHfv)5 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxxhdpi-v4_abc_text_select_handle_left_mtrl_dark.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxxhdpi-v4_abc_text_select_handle_left_mtrl_dark.png.flat deleted file mode 100644 index ae17b15d8fec59e1e280ca460cbbf0f251877bf5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 764 zcmZ>C3Bt9cC zFC`~6J|{J;BtEyKC?`H8u_#-JeF9?x>j6d>;OY0m$^yYFBu@0_a#rs}0uOucfTQIGe-s*6imlh$`K zY+UY_^J}i~pRBm^bFS>zdB@vm-}fV2*H>MZUHEyU@z%BMoENN)8gKC{Y^`>D!@_*^ zAz#?dMJc@QAu;z3a@C7y^Q|g<7npCc>f#Pt>4y^@=gJhO1fJO)Yr_!qi1m2*nTK@+ zxo`eNi52+eJ`JChHYd!aU0&{b)YIpul>PKl>h{PLHae9(_$8)wU*A1ug;@B$P=Dif xVclClFU^Tfi`gO;boT$vY1c!(9j#;U6l&Ri#;{!k7%2>%u6{1-oD!OVOaN|@G`s)+ diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxxhdpi-v4_abc_text_select_handle_left_mtrl_light.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable-xxxhdpi-v4_abc_text_select_handle_left_mtrl_light.png.flat deleted file mode 100644 index 03b56af58a63fcd0e6499e01ea09cf12d83f6632..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 768 zcmZ>C3Bt9cC zFC`~6J|{J;BtEyKC?`HAGd-h3hz{1iZCC${p%*@otAlcl+ z(%iz#*f2TGBF$942&fn4DBX&Rij0(kOx-dQBHgD~ke3ehUuS@yJ1>_M7m&&8>ERLt zq&EO@1P3#aOseZ`22#cWJ|V6^I-$0kB(!?n`PD#ef+azI!3+)w4g3H12h4vjaNpp( zLc#h=>R%57gEz<1#WAFU@$D_vO)CrpTrT#RoK(5-&-{1nJZYW_p?5@O=5Unh9+_fn zFYBktQ@=v!K~V1!t{qFy`O2O(&3jX^j?bbbh~o}h5T}jb6ejV-A{Is4uj~o=9CX%u zhj|e99Uq=KD_Q-nFr61+PB$!AD6ylvQTgbBSe_USwsT1jW+pvw<+bT-Oz&zGH~p}R z&CKwFk6}R|vpR@#E-N9J`Lpre2hugo`5$=q9gO9jbM?Sfz0``SR}M7l@qSo!aVcxk z`c8(8%l&eG%@zKW6?cBll^r|pcpL5eeuV4#s>`wqKW{YNx|W^ug4I#uEq;Zq)sAmi zn6EzM3%j`}h1WeK=H5ZBdJ%2DRi*C&^DS0g++i#IaKhtUnZlI7GrMDL7=j+L9uGhB zu&yBY&7UZ-0>9j+;j_}_gqgI<%UzFp`uvo#pI%Dc9=XCsr?LmX#I)|~yT_~$3*Q&& zZ@ez7d+X<=Ik9OmTf~CS{=YfxddRnC3Bt9cC zFC`~6z9=(2qa;4Jq$npoC9x=5hz{1iZCC${p%*@otAlcl+ z(%iz#*f2TGBF$942&fn4DBX&Rij0(kOx-dQBHgD~ke3ehUuS@yJ1>_M7m&&8>ERLt zq&EO@1P3#aOseZ`22#cWJ|V6kiG4>&Lc;ErXMx%TOM?7@8UF8YNO0(XKR@8Uz5)oZ2ADELa9$C~` znkCIU$C^jSpIQ6D0V$IW%Ns*8AGk4VUpmms7Php}mUoRK^LvvIUd-7S4p{TrWIpf# zv8J-|nS59Rl%12Au=j!ZpQiW^+;s=tv)=DNa($29$_ob$#$H|I?e%U|S!_^w_*4ab zPVP@_v zHNw_-n`WfwroD$}HSF(r|H?Q0%C6n3b>}}gJA3zfj$MuCh1|>YxsPPO6<9CISp8tX zerj#l?K{T3q4Q04SFc%c`00yzIiIbamj4|3(fA<#2eQ$Bg_!Vqi z_IC3Bt9cC zFC`~6z9=(2qa;4Jq$npo2gDR&pTO9_dVrBdX(pq7XmM&$v3^#5MqY7#p1xjsQ6f-_ zesW@RMryHsNl{{6aaw*+Zn3VBep+TuDv;JQ)K4={u}Czqu(U`?Gc_} zw=gp{Oir^%Gu1Bw>V>&Vx1ypVBc&iyx6FiC2kI5%r89H}___0PNpS(a%IoRj5(K0- z0C5BdGmuQG>um;7#sNMdu0T4WwwolhdfoZeKy890L4Lsu|Mxc}IP|}tA8=pbyn#Z& z`rxlse}Tc9+4`%X(pnH%73uwhGyM8s=0X6!Z_811URdyC}0x432e3N|kL yzTfoQ%+$!WbJp9g4m|wj=8AnSB}U)4J2uI^+L}G_D=<h^Wk8uw)u~eBw$L`|)DEl&Ay^PnaBPPJoH(*w!OYJv!e8)P zn36)-=*CGWolm;w_wLLWu(TcM?-GNH9s6LR#WNB|_$^KSD`n0Qw_;h>|G{ z@E`~Snv4gN$#^s%)01!-Opb>n36e3AX7(>6{HL4)_-?}x?&5+?7TgxRgl-;JislaXC{&xkXv3XNL w`?rF&Q4quH%7KfmcJ$+bH?Pc|5y6H0I>{1CR%o-d1M}scYr$0+e%=EBA9$|#8UO$Q diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable_abc_btn_check_material.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable_abc_btn_check_material.xml.flat deleted file mode 100644 index ec488c89df25b0a4838162b4b0ed34b5ff9f1f9c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 612 zcmcgpJx{|h5KY=3f~87rSWp&F2Zl(*X(4UOLAaN0 zaZ`~x@{XF_7kp>AvG`HXl+_BS4~8%(p#&aV>Xd~@eAB(EyaHc&hhO8i2F)EnI zv%w(mXLNWm8Ww}|9utWeVu&z=);eL%5mAfM?18Q!tK=Y>D4y<<)71~ zR;6^NF0)?V9q-h?WgXc6{S%zUfip`ELr3l4=MGVuCJKrF*dWV5{t)C3A|I{Oo0Yeo F_XXCGxfB2Z diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable_abc_btn_default_mtrl_shape.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable_abc_btn_default_mtrl_shape.xml.flat deleted file mode 100644 index 0884af70b6d9039dea35800c66b8e3649cf403dc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1488 zcmb7^O>fgM7{^=M^u>S_!X!E)0Se+k(CTiZZ#$rk3qs;BO+!K)h#cE#%pAM2U4}Tp zXW+_L;2ZF@5El-3X@@E(61HT;exm33Jum;{=;-*gUaQqE_qV`Z-1_SF&t`S3f%{bB zbDRl=a7NP1%9OGkFN94?t3_%GJZDj@*N8vW(M!X$L2p$djgqK8)0jFxf=R&)vKmX1 zD_xqMJ(P37+_S%n@-dy@!DKq2`EW2A4fh6Q{CGN^jP`d)KFNnjJKz7vq5r-VE@kk& z3#OorCDn@4C@HL+A0T903MDrEmAy|?iSYca3cj+zE1jD#;LqW8q2ZR$*SS+`>oyViZdA4@%l~3iGN3RFo4w zD?BmS3)87Er)uueujG0ZfO~GiX6IJ;Ecw_1KLQw33XGq4;g?RZs~NFa&IC(tMBOU( zDt<3~kemSm+eB&UL><5Kir;d|=L-YlwLuX#7p+9PjQCpxu9)qx^Cy4X)%O~lxaySP zG=Az-WvJa{|Ixo0o4hR3n!Els(X@JiS*q&obxtzs*^K4~H^>0w-D&PkF z`yra*Li#&v9nF@X*Ck++_%px8=}PyWj5l74hIOL%X_K4SZ8xzs@!tuLov{}-lWtT8 M?szx6cJcT61tY}i&Hw-a diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable_abc_btn_radio_material.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable_abc_btn_radio_material.xml.flat deleted file mode 100644 index 95840cf2d99a0355da54e82edbb9e42013908187..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 612 zcmcgou};G<5KY=3f~88WSx^>G2Zl(*X(4IKL4KMHVsYe$~J<9uV7X0-o2YlrnkQ5dE1<}pn>>+d|!bO=(sfOnayfJ*o@PeQ`E4s(zIbt zn2OcdJ8Jh|$(XfUX*$UIlb!fG*1`EH7~~64Mu9U=0+zxD_nGT=)XJU*>G*ht16{Yl7xi@X0;S($qi{VNRumFo2xO&E5U6KMCJ4KOs+>XPx6>(tNmw=@U0d$JN|O;3?G4HT2;&q%BES(2{ATC4JO>} zL#k>5t7Us&xAP8qL$7N}SaJUr?;&)5MP6TX+JGzs502d~KDXs{dMAU6-~~TgXC*4; k-|y#4l~CFn-t98Z+nH?2s^QlAbkGUezj)shQ=bOk149U3as@lcYe6Ar8G}5_fo;}GZd;!9vdbFi zg{q(?==^a0VbNzTl%}t;Y_)8uw^qQ7m;oz=roDnz7g9C)YC(&t7N&avEn=R4pQH&d zLO+Vah0o%fG)|)HfE7s*Qf0J%4dT5uHNsyOPVo`6T*-Qh5LX diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable_abc_ic_ab_back_material.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable_abc_ic_ab_back_material.xml.flat deleted file mode 100644 index 9e8d7cc3f6c0e9a64be8e2eef2a0c18a32459b6c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 924 zcmb7?L2uJA6vxvo9bLpwiIAv#nsThtILX>H?S++b;LsutAdc0m?JVA$IC8v|?ZAo8 z!dKyjxbkgqx|S=7rT6@7`Tz6t^II%Fe(G43b+GTpW?{w;W514eq2-)Y1zXq%hG9e2 zoUCE9-T=8>7oeHqAY5y3?0v(ZYo=;^BlEJBB@V6?P@^G0a#mxlpsX{gih2~|j00( z9OK$tUqBt~_X8pe4At!pyx&7dy_e|Zo)ImTcj>fHy3gTG%N18jDn^m5)gANZtq3PM zu>_Wfc2kF-rYZG!_M8e`MU# cv5RG+dGgVtdE20G4^Q2WV?xwVntrsbzv@&V9{>OV diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable_abc_ic_arrow_drop_right_black_24dp.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable_abc_ic_arrow_drop_right_black_24dp.xml.flat deleted file mode 100644 index 2e59ff798c8a40e592710e8d65c3380d328af45d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1328 zcmbVM%Z}496m7vRsWmgoL`W1%bgGC|C~*?{N`=I9h6PA1LWuW*$jze(lg5$bw)_I0 z!j?T7mTdVUoJ`7sow4NWhjh-p_xN7V=PzG38;!djX@l$C7o-y;Vy5E6*7Qxz_03)W0_In<8Wd{!HVnpcyvTj06Jj6F&|M z%o)jwh_X%b(7{oXhGI2s98H2Lv8L`ch(^|UJaR05GIS@?@gv)hrqKv9ft85G{IW?! z3h<`_U3iORBH$#@jF|I$hH)W6*^t7l?@ga>Fv+hfC-oh=p`4=jF7!EN`Z<(9YDZ+t z=`s;Qu`ob@vu&u)q!`+9SZa$vDXYGa!UCRT9Ce=%&KdS;O4%jNIHTzcAv#I*3n{jf zT@vnd%J{Rt5t)`gm*O}+aJ)+b9+yc83RjAvwLd_E+&IzN5cb7DK)IvdH+}>73!v7T z(QPit3o^0^QL8Fy**D6Q9pupN<(k6&loSf1obZHZ2)LGM8K+vO5~CL6 zo~j$)oA6r`ft>JIUrLd8L`SBVWznG9=XEE{sv^QwpX;xr=#(;qr-T!PmXm=!>@RF* z;0k+vsO(4aiak~NH;mm)6Xo8UgLOE6?PO>IVdKqOLIBbXmh-2m1&SG%l$gx(0_$ypE za^uHwo%o!#9Fbz#^5^IGp6$=}YW4nuZCTd7(L)$O`3dd!K_6P~bE@zL-wKBCEm?E2 zCW2wLuCZo{W8qonhrxIBv16)3pJml_vO(dU!W0w)lZtgnE8KLYRCV_|`%DhaG0`31-55LyJvfN)Iw{VYfLzU#zn^s!4ON2UD zyvAL)!$Tr#gxfE@?GEz~#*h7@dq%WW!O|U|^o}aV?<(y($(**q^&qXId87UFORTj* zL<*^{WTTZ7?;uH71g{6VJ-X*?(@Le^{@YO)1*<_Gr+bf2oa)LP3M`627NgBxO55qF zH*#M<@tyILNi==1-9NVPv{+Zc%^=qkcrW70q{u&ewY#-tpE9(mxMsl*dywDQ?BNa8 z*k?C!G0Vbvd>t>sw3wx{IGM$f2@MM4bQ^3jm;^@8?59C&_!ow{g$)9=r|j_L8zkWA S#F?IWwhQ62NoJlLe67C|X2#xZK7Mi?$2t1-sZFf?u>S32A3FX^s$mDWl3}zS_v9V zxG~KdL`MRecYT?OX7@prVVw8^7eh+1E&Y9S96MBn;HqrZDTF;2u zgrnDBjK)MsrLR}ZYYb$dm+wt zM=5P4m%*7owibGW=fimN%k_V{q1S-n(M>Pvh5a`2s#{U`?9JiT*87#=9T$d0suyn1 zwQvmv!qv?@o~Cj(N6FOsI6=$2vuT3T@$8@McqN_A(nmYdi=j8U2wdNWqv4|aLyq$Y D3aAQg diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable_abc_ic_menu_overflow_material.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable_abc_ic_menu_overflow_material.xml.flat deleted file mode 100644 index acb1b8d93c613ca26ed875035171103b0a48d832..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1012 zcmbV~&u`N(6vxvp>$*roB|>B5ROP^-YU3YU)1;SC#(@JvNCR=KJjYowk~p$WgLX#z z1NWm(((b4M3?-RkXaa_4y>NJB0Q z2FN8{=5$%I>hqGXm`DrWEK8!8$VuT^M?3!44)`FMkl>nUmE;u&t^`T6l@gjU36vm} zOt~oK1cNj$n2rGg=`4u|jN&Lsr!Wks7}D8EJd46(MAImp0-?SC)<*E9EG*}H&xxHq zQYC`ti95=as^h9KIVza z%tvWN+zPSVY^_N>I&gQLp3`dUj1z=AXBs?(1h$oS6}MPhM>P+I&4S z&}6w{{QAT@f`|M+5TkF*YUB`3q z0yMl7H61Mlv$=#CuQapc8UKGf9`9=P?!#~}7#!`_2|U310frB;_B<1GN3VE}=@r{l zY}4gbuyRA&YO|#>7Zv6D;NrykI>aBlTy*%RDeJDOF}fBs10AER%sVUvt-GQT+iv0F zqT)I1h~Og1V(P?6oE3o+hJov_$WNj;^av~BBESN)|Iq{bvgOdX_I;uy+5=i=qNy@{ zUP{?6G47y+E$z@Dk65$CwEet?A9BWM`pB5v=1exiT53I%`lQUO>rxtH*Uwt(vX^!& zt6CZtFQ}9PvxYY!ZE7hR{uV|>x%H|S?cr^e@7hMlH~%_9ja*H1MQmNA|_nK|=6BklLd7`IfG*18w<3~mii)rgG8FAslhxgQzcm6gn` zZ=+tksp{c1mDKn-T$2C=Hu3qwL9y+q&9jwb#9k0YOoBoiE^K%o_{dF3Xa^`UiHC^o znF+|f6cP}7`+{df?!C&8a9<`NQxwNk3SfsOU=%&%>NGI!fRA}#2b=&8O2Or!vAeZ8 zf%s_z&V+WFuPiN!#nLgAYd^U5{g&+I{FX}75 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable_abc_ic_voice_search_api_material.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable_abc_ic_voice_search_api_material.xml.flat deleted file mode 100644 index 9eed8325c298f772a19e68d5e19ff6a2136f3373..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1056 zcmb7D&5qMB5N@~G(v4VDsue6bMY&NWcAPYSy|ASmIJAfZh-2k-l1(6uBgbl2dq(2K zoA3hrT)Y6|szn^hNS;4`^La9k7mJUd`n_K7w4Q1ZfIPyw864c6{yG(OPj9OX(_6MF z*=EN}mTlUM3RY}rQ*O3YW}>9kq<1~Ae)RF@HWMxW%8R zV%s_%&dVwTiwMr6G^TEx#AzP5VHkKWi)Kj_hdyC>oCjDy?SFTI?za`RuRjj;M1Ml- zRPZvLObaQSImRtCvZXCL<`LstOq*|qBaS)aZ1mh1?lLC1u;zM)%E_?E%DX}unm0=u zYt^Y%lVvT9>o-(Nff=v3Sn^s5UVVUp(aL(;iS600%=Qfz^8MeAkZUbEaa^7_zLcpf z)JFkD(uv}He=1Fz>E+~HH$e<-^kVEze-8BT14C=5EUa}W)(iM|s-+r{admUNwfSLW zcwdw-Yv@)9LBAwUOs4+VCBi0K3X1cyN;R(vW}59H{<)+#tw zp_vKXc8EMP1Rbpiu{~0GwyXN|ka7Hm z36n?(oXLobRNmS}QJgUS^>Nb zp_|*V*6n+G-aMN&t*iE1;C(dV2h(ljP}&h(A&+BKzvKG*)vy4Z#8QP-0U?cLj(&l2 z`|e74E=z?K3t3i#ahnlNBx{fA#E3YVOGe#>67!lNX8It%h0shl?8YL~4f_aqUjY0B z{!6AB$mTMT%^b)p6F#p*CRaMRbCK=+Ok@joE({v0m}lqC{%6#(wG3y=J_X)u6TbMX zaBA7HveNI^@p~_AFVor1=^O+2zVg!Jn$o%c1L>6Y7aI8k^3cL>Emz;N-vMt7pOp8& ogPOIw`{lhpB>J5aXYbDp3zjLJ^P0{H9RS^?9=-wj-ESCQ0WCpHqyPW_ diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable_abc_item_background_holo_light.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable_abc_item_background_holo_light.xml.flat deleted file mode 100644 index 93d3b4076a444aff628064a0673f29089974d772..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1820 zcmd^=&5P797{;60*)2h(TlZt^MVX6Gu$f(VW;%<=j^JHH5xkU4nohghHbatO_q?*F z_2xm(o&?W}c=eC+s%f{?84+=+pkN?03FLj>{_;G@X!P(g&@`>?#;TgAcCPxpm2#-T zTOr3sc$`v%$0SH3&4Mu|hZD|bc^JejWkH%uVrgsbOPy1Io(ReXI$&`wSdP32$D!Iw zFo~%^lH*)NjA!EZ4vLbLs;{?=qCx26u0Qm{sMqcHdplh+*c}f1{+(?S`B4vXwf7h6 z@Q$-ol@8xuhC{fD^N_P7wB1w%iLE~YK>n)M2}A9eUacZ>o|X9AbVW1ICKIcUEgmXOm#$e=DD2oq7@ zpJ&~Tcg7>b>F@&(IWenoE`Qy2=S{0G*Z^z68bnuW4TZ`Xo+~ diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable_abc_list_selector_background_transition_holo_dark.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable_abc_list_selector_background_transition_holo_dark.xml.flat deleted file mode 100644 index 16c0a196caefb3e4e6534b8d925ff2c947dad077..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 596 zcmbV|!Ab)$5QfuQu?B=TUSv;FJuSFttKDvk2MdZ<5j`m^X_D=(n@vg*(MR!}d<0*{ zX=!N>UhKe-$qzH%KQoy;Jk=0F>%6YR2jU0vaUnwBv9RoeO_ii<%2QQ1pE{`|_r|7E z#><&C?^>kZGVKaq7@g)unN%=a5_GcH`Kr-pC#|DzCfCkr8qF*dFpe{xOGlTDnX#3- z=+mrF65gmsv!O^>HyI@&8+7A%(C_l$)o7T+mpz^(*??N;-Q8OBSt*3S>v)6@m=@L) zf`qyE^D(6kd{xXvD?Q?-qHJC+i7PFrH`@W;>>M7EeS8WLG@9+!eWu~l*x5<3IWW*jtFa9yt-G+qd}kiUY56u Hn;`TH1UR^E diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable_abc_list_selector_background_transition_holo_light.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable_abc_list_selector_background_transition_holo_light.xml.flat deleted file mode 100644 index f77df09d01c3f6557460ee8cdf8f32a74a5c4dad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 600 zcmbu5%}N6?5XZN*VhspwyvUxU;$^{2TkUqMmli~?f_f5J(j@y~vq?!J`YOJYui(2l zUAD9bFY3UMnISX3`Oj>2_t5Y>Z|&12Bw%0Q_p2fpy5feu(YX|a&RHT0>k=!ZU{0H4 zPT3+e`c?778LDjI3aye{OAQ~h++pu%r}xnyk5(8}#7mo{suaG#d8V_+m1Sqw@hv<8(v}^!{VF@V%5PeVnj zqYI9M+_~i?Ar@9EsSWFT$aG2Qa#2C+n%``9eYDXX9N=Aa4Cc4m-Og=LBH_0RC(7P4 z`o&n>UW@Wir|WQY`z6S>f^QueaJbXjrsK{{ut2P)KmCz@@&jFJm2GbT>_cGh;|8k2 I>(x=bZ_pRH-v9sr diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable_abc_list_selector_holo_dark.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable_abc_list_selector_holo_dark.xml.flat deleted file mode 100644 index 89544d643e4acadc8caa714f0363c67d3a0c232f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1884 zcmd^=L5tHs6vs2Q-3{`tWtuufhNhTyd<)cjU4Era7P<=2W z(TGW`1j%H~#YA2|#Bq``{qzrT+@k?$2mOG?op!g|Ic!J0oBdwUy>Sr5LEOPYpZ%R8 z{3nytf={<#A8wM23Z78c8!0tC!dU7GCPez>z8~=kCev{dyWB%HdmGtCn|IOOfbgmw zsBUjNcfAh)z6GeBC^l(5fED7pwkaN=<1*J#q{)c|ktq=@Q>}ZIVqTJpC>G9>jPiLH z^Jpd+MU9xGlIenXocfA@9VgW5#zIfSzU;gL-j^EuTq^~|m69(7`Nu}vIqsl|%zZlE`X?E LBj+{9es)b9b@-GM#^EuIb53*UPZ`2;Wr)I< za3~ncc|=*p@9e`UNr`;=doUW{A?glCLmc(G{eEx18xHP`2E+c{y)YU^J;>zR-%{Z} z&r&HHyxagIu#R%fXo77o7Gib)A(tXD#QkdC4`~L`?4>%{hj->6pr&cg~Aes9Z)TnElO26YAR(l@5;K{_f^u0xLf$SR|Ae}2z1O|(I{2ni@}EJK zM0Qq*>=Z;^8Q_JAnW**U&SQ4}S23HQ@MOy9JjX$K$s{77`NhorD|zXx(&<>Ab??jo zr+=4DqZ6r4)AGXkGskIn70+&g=YtO3s^j#mVR&v{5}rzbnUZGe6#;b_I8yyp+W^36 Mn~wEHFa9P!0P{v^4FCWD diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable_abc_ratingbar_indicator_material.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable_abc_ratingbar_indicator_material.xml.flat deleted file mode 100644 index 10a54370e5f814b582ea99880a18987608f740bf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1028 zcmb7@L5tHs6vvyk)^TnZEJZRJ*XFPL5006;bmshj++kYxu#TuZ_@#zEO+9sDg%b4IFPXU<+ZW z)lisJ>D+AX&{Spuzu`7br#ymDG>dpT9!)0Woe`Tpm`$U}?lw!KbWAngJ$EJH`#eJi z@~J~+uz^_;5Xd6m>gi!dY(ftyy;##d*y!s DOD;K@ diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable_abc_ratingbar_material.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable_abc_ratingbar_material.xml.flat deleted file mode 100644 index ad0cf32ee7e52a009c34935b686f094d66ba8d20..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1004 zcmb7@(TdYR6o#9&)^TnZE=56to9V9GHeC>Ry-;t&1r_#YDJL_NcHATrW=3=` zd=Wu!6a;StZ+#IT#v;~r^16HB>?{8TVC*q1 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable_abc_ratingbar_small_material.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable_abc_ratingbar_small_material.xml.flat deleted file mode 100644 index 59b1649c0868aef78780dd5ac8b8ee83097e643e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1020 zcmb7@O^Xvj5QZ~Jj7f_y8P})-!V=ueusfZsCYkKT?7@$VxS+ybB-C{GB<=Qm(A}bY z_Fo8k@gR5;!K;7ApJ8p7;0PXe8k(st=(p;rx99lyUOHf|pc5C>-p|6b4hQ7(ynaML6t~7AG$$+hep;kj? zl3b_e;E*O#3H*j*n#_0vqi7!SWHOpgCx;_8doZ6x)B9tVM9G9|ynCrG!uP4d-pQv9 znUkxKah*%<1#4@IBT5Z6k%9@!e8}>YLUFc{FLQpg+xLlrbDIT_L-;{C2nR zJ_&v}B zqtHs{Z!?Zvdv3c5al>5%zZ~*&3-P*EslO0=|A$zEN~$E!Ysp`b+^v!r!SalQK0nd< z3SWUipq+n#Zn}?xFHQ2XS-SGLcEz1)#iA?}^u6B3_|p7=yB~aY$Y;mz#L}iv3}4hL y)H0e~!uf}_M0*zhp=UW4r+!C^LV(5j+;Y2B!|%BJm>l5HdY(ft^xbP0ulx^HvNkXP diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable_abc_seekbar_thumb_material.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable_abc_seekbar_thumb_material.xml.flat deleted file mode 100644 index 2b4886f2a22442875fc3e76254e67ff0daab56d3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1640 zcmdUvO>fgM7{`;W?K+o9Sq5xmz($Y&MOvH{+NMZID-!ofz&SXML&EYV+vV-Xl^Y*{ z0|$`UfeYUUaYK9uo~50%>;gf(%#s!7iJm9_=jXpYnH)S(6-7Cj2OW5U@fGHWcC}Q{ z&5)BrK$o&Tm&g(1% z$>@C#jnOj6LtZ4IVaHOI_c0bAAtS<>#~oT^n3RWA@p;VDx@%@vu#{0*aBCkm$Tcp| zA{Ub6@^SK(nJvku%w9FxXa|Pb>Kghj`?rREYGx~uEVCXqD!vMpCG%N+ybYn*jz}t) zHTj~AXiteTx5kr^qi2aW!*3>*G3k#EcnWjQ#*de$g? zNpNcJ?$`I4@@Wt-?gL-Ri_|Zo$j>BCeUg?j0kjwO?rGAObQ^-}dh2xXvfi`5Xz1et z@!MzEZRmH-AG^&uyDJsDjXFCM*d1x;(+Ru9+ipw0ZGTtM(ZX!Un%l1b7u(6gpC6r> z`&@SbHoIEqcdg>LRp)md`2AAR4|R6*&-!LtN9VA47nLw_a^(O8UdLM2oJ6Q-!9I@DCVwh78-w@~H>tZdf_ diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable_abc_seekbar_track_material.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable_abc_seekbar_track_material.xml.flat deleted file mode 100644 index 0481423526115398a3de6393cb5a01d00b6ea6f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1956 zcmchYO;6N77=XL5m1S^~*}5Mv%2xpi6WK1v!otCT2k<5bjNa;OJKe4HW1T5cj^6z% z9z1x^7!D?en?J*=f5De-cLiY+dVnUAPG{cl_j%Kuo&AH1qA0!faRff#`2_3Nop`ID zIa{!Itm$!sH7!$ee%NHfj0Cd|O`k;|hfHXF86udT1wS8LYB+U7=M{qc(BG@QC2K=&Fk zRNwm^gp5w}XcLXFz!srvYqT9joh`$V5Q5KSH94MFxVQf4(BSX0YK^{BiV%c+L zMDv=8X5b;&TmkRVZyEGCL$YqfecePU3~RYw_+)Xrx9wKb5=YG@@0T+Yp2@sUo9WL| zIT&(nQr=GT*m7;73EgRl@F=h$cnxRI=W-A4(o+?ks7Wr*Q@ffx?@Dqj3~VNj_eI!( zUP)TeM&r6AwJYK}{gFjqvqY5^^SJ&bl|vLOy>#uUO|mPs+5#UaJ%Lte^d2lunHc=hsNlquV(j`}ky9!>T zuhA=_TA>#TJzcT8N`&<59UJLRQilm1M9|)GTpX0^INk$+3dVy3CUAwmMQ%a@OI3=0 zR4)ynx+7d4z%czj*ANYXXs+lW!3S_z#&`e6=RU5$MG5E5GyDK!I4oWSdlHY)6BT{w zfxVk5owFG#_6rR&)EU6@6n=E$JWpSr=b78(dG^M6)(7*f$2`vt=6UY+d7i(T=lPiD gnaeyc#5_-5R diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable_abc_spinner_textfield_background_material.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable_abc_spinner_textfield_background_material.xml.flat deleted file mode 100644 index ccc8b2fd312f2202f7304f184e3eb4168b8c3f2a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1696 zcmcgsO>fgM7*4-v>QUxK+SUfPb=}QkO;_j_2ej>okU(f421t>cIBizvL$(Lw$O(@8 z3vT=X#0_ymT=^}W5LTA9>*%Cr2P|1}{Q7P+?|8PzI$o50_&$(!* zfTqpx8{DVFzl> zvuinBr)4mio19Yp)T0Xcv;=w}kA0g3uC1Y=5aB(;;F6Drc|D%5TY+cba1`wn&*^Ek zq~~0p6H$8w5+rI%QPM#mMBwRLd$#KlKdPh^_<{x0jN+5h)m|h*FGSf7i6a)lewhdx zMA%Q04yK%34I`9RV@~~a_(+m0!|NA4a1&N!U=6Al1GnHZ zdY1ve(`UTrfv!vcd{2X~3yHEJMG=6;Rj{up%I(=IOhv(#a9>M5%D45rESs0hvI(F6 sKUu2tWvNE8Z2T+BRwT>1l;zx&uEAxg)hf)Qf|deuxGg8-d#fma0dv>x7ytkO diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable_abc_switch_thumb_material.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable_abc_switch_thumb_material.xml.flat deleted file mode 100644 index 904cf47a0c7a712ebf2473c3452bec3678d6d07f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 624 zcmcgpu};G<5KY=3f~88WSx_dFjYz~!p>4`U2L?6<*pMv8c1UO(7u!`C`3*L9SouHP zszq#wg(sbS_oTaf?>w8`-1?s9?c%=U3Ws+WZ)?&4#9Y%AEgFGn!H8MamQ}=7OIZ*} zt-}9q`Yam{ymrA9?9-NORdbkB)-Em(GH$=5Cf)KW zQxeg|d^35=MV)XEg+?@jS*4R6+yloBQ4kLLSIMUjKKv-Ct&lMVe;5nHo$~19a+hxI zSlIUamWrsBNUIxyG0ukZ>`yCt#=37H&Lf)(9tBn}h0_iD!A~2oUnWnW{wEVSa|#Zf Nf&=J-O?th)@E7z|z8(Mo diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable_abc_tab_indicator_material.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable_abc_tab_indicator_material.xml.flat deleted file mode 100644 index a76241127cd1e65be184f302248e4b3e3d05a094..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 612 zcmb7By-ve05Kh`4f+bL!E+`W!5K?B?2SglL63}2C*x>z(kE$@4zV<||IiS=6nvrgt%)XR8%iogPQ4)0x|(9FjD!MI zSocFB3Jlfb61?vD4Y%#Pig8Aaw_w-XLI);%$8ERHgD)F>*uIl%R&?*s2C$yH7VjU; z*5zNj)RM=*s|>nl8{zLMZO#y{gfr?pT0SwO+G{z#O?WLDBz2v>`^_$J+cQwaxersO0gT4e0nA15(M zNB!}5H0ntW??*-A?0gsH4tl_yBJ0cctJYxT)rhrI5<+UhfV!EoZo9 T+)%sf*sf}OHBh#L?Nz@4dUv&V diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable_abc_textfield_search_material.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable_abc_textfield_search_material.xml.flat deleted file mode 100644 index 83068815bc7da997c1ca473ac2b520c80a67eb4f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1204 zcmc(e%TC)s6o&0!L^={B7%CyJsw`MoswW{Nak^@Rx@S?=)?qHSVQhz)370KmiFgLy z0k(aN?syTzhC>>2kt&t6RXftiXGWTT{`1Z6;c)wl>o`s|FFjn~xWaieHz^&m&NUpt zt`Zb>Sz^Vpm6=dHF#P-L9MBWD(2CODrpm3pf1c zlIsdfHj~q*th9fT6)q%zDp+M_QT(K E56e!5F#rGn diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable_abc_vector_test.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable_abc_vector_test.xml.flat deleted file mode 100644 index 022c91c0ac88ee87c8c49e6362478f29ff121442..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 764 zcmb7B%}&BV5H45{nqaU|LwYhzypXcnmcPQmh&8tui|TX z_3neX74YVvo6K+K`(|cmGP%7gDT=a_@3IW!dzW&)^|cmeC_{^wK(z4ZYvK#a=7Mmc zE3G|q4evQ&96r%7;WU9@$q<&cKJr7tp-d2e^dXbj|N4TLRjer5hpLUVeUxBEBdoVWA<{8~T((^y4z_vV(-lPN z^Dp5xXOwG)Ms>4@Io1jw^=e3>Whe~Q?cvnCEQCE+MShX{)> zA45`%3Q<(D9TcbShF;N5*p9Rg39xDN(aN2;mgTD`dASzerr1A10Rs!dsUnqxNF Wd6T=HG}U%pFKN#sy7VMHh!kvWVbS%pE4pV73ZATKJK2pk$&zH%FYyb!i8s%F zkso1p*&+xc9T+khGV|V>%wTYN)Zv4zE$3dSS>Y+6vN+nt8M`L3qrxUH;#*d1<|5Su$jXM8gzd}i+XY_Y1{dM0( M^YC`I26oTC0a-%yLI3~& diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable_notification_bg_low.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable_notification_bg_low.xml.flat deleted file mode 100644 index e1221bc5214356d6765c6cebe5e95d70e8a411a0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 780 zcmb7C!Ab)$5Z%_T)Wez4`_I zlpkPPx`-l$9T+kh^4`pw%wTXosyL2Q_*d0lti4$uZenzjDY76*4p>OTC`*Z9QjC+y zIF}30Io=6g@q-4X@w1!?Ed>rIie&bEO42E4Y!nfiO2zeMj48{(o?(RJn}k3bWwaYp zNUovNjbjqUQ36SF)rlxp7Q3x>xa7IxpidWd(H;?*k}UJuQ)6a5jI}Mzi4HgUFqIsW z*~^-Alk=-}&#!C9AvID36qUewO;|EBBpKYz)p{WQMSsKFW5U1$6i%g}Y%=DMu{j?I z#z%}p`@q{p=+v6;)(@M*_D2Q1SA3Tl;K5U=9_qz({PTVh{`X1anH{BuEEtrcZ)igd z6ky*qY7VyNR?}@ayjmfl)l7d$cq~=pN5a{53Bv9V$%ETc?0*#0D9QCo!jYA*?^Vz` JOjdi~INwFi_*wt} diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable_notification_icon_background.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable_notification_icon_background.xml.flat deleted file mode 100644 index dae379e8a2d9ade2fb1b98258e2d96a8f2670a0b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 480 zcmb7B%}T>S5Kd}J>gbC-N)2Qlrw6s#dW0c{ft3TBW1&`%V7q Y0d=_@@%*E}OZGz-*`3G1-TDyc2bQ{#H~;_u diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable_notification_tile_bg.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable_notification_tile_bg.xml.flat deleted file mode 100644 index 0cc361cdf4eb3723845f44459647a1b0d7969c2d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 432 zcmb7=!Ait15QeiZtV@qQNx{n=6+1StXg!Gg0D=d-S|-V)jkZZi0xG_W2j9(`Phl$S zVK2fC3^NRT|NQ)$&E5TsG4|IV(~{~l_4l--%8r%C7Zg2#bKz^e`2bI@v%y&?TaPLM5@kmLqDLFF^Fuh}pc9v7SpmNkNU~D8=9t!vJ);*}sF z&exR&pV)t&m#;&gea*5uJ4CCzGb%snVjQmkLi#*lD7W`gx&d%}{?**xii2fdEQE;z xj;qIP4>F$zFN@QgU2|{Eh?e?hCnh6PR-#>9@1?(-(!F(xiiM|`vHWAi=_Yn diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable_tooltip_frame_dark.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable_tooltip_frame_dark.xml.flat deleted file mode 100644 index 524c08bbf098df595c26666160f974ef49176e61..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 576 zcmb7>+e*Vg5Qfv*+IB$*u?2}Dn#-Wsw%RromG%w9!<|yLduU>k-LRXYUil(EsFzL; z7O#X348zXu|9{KOczpL*vMlR2&&qIs_=5agG$GI-)8vgzQ;rLz(jv|$LX(V77}1Gi z9qf1?_{nf>@T-cXQ4$9;O&C0(wKP<+c{H}D(xPR zmUT1jDWS-%GMKGsBHGacO!BDA`D0#6+G|t&V@H8tu z>*6H%K+lG0gI-l8jglx#HKy>NV3IL|N{yvSl+MjfA0=Ech+z*UBO2o<9>+8pM8n~r zACb}BcoYwBdnAdI0n*U>A3J={1Ti4sct zm(y)LY2B?SX}Pt()RsHhQX52R3C9SYj^due#rWFzohjuxlLzolZLxo? R*=?XUy@~?^wB5;OgFiH&uA~3} diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout-v21_notification_action.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout-v21_notification_action.xml.flat deleted file mode 100644 index 7cb07af7de8b225645c354dcbf7543655e88e647..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1920 zcmb_d-A)uS6y9YPVe5j+C<*jJ%&3VO!jzdnWQ|c)ViZG+iJ+HjciP#h%wO8VvV;fn z);I8BjENV%gYE3DEXV~lPSUhJlb-YSJKs5Nx8LnoE0xN4#4~E6zMpEOH_BxNzyuHS zBZ;zHvWSIPvOMeHP*1k?t-82mIcMlVP%hBtJkCU(A+N_VNhk_&7*l~H$C-$7o{F^q zMJ%Ce_IwmzY2hNk|yplxXlO} zBI<;BCNaw>x2I+o+(mHf{1;1ck1F%Bdk4&)n^o@2x7H6)wCw2I0{S%%X;r6<`P;Pq;Ti#X>d<{ zur|BYeCU3)z!wYFceSWKFxq!^jBx6tEleh@RHyUC$jSVOEmdyEOb%cpR9C0`OlZ^& zHu7~T`46@UOKEmh(RG*-SVyo^>U=T^aWT2qi(r=hx(IPX_Xh z!n;k^{Z#|sYjAd7HGndM8{>*yy=KMglZFLS4-*z1;;!lo(-BStb)Fh=Sf@$C3Qaz= zXhxhDMyIvvnv<&2&F{a8Zr2FUCDAqd92aE^S2}iH8@akDu8W=wd(dCCZFKe9oV9KL74^U+(2|x!m;rUe+)A`l0XR`Rp+V z>Ku=wp+X{3tj~O`SR{Jb&juBRo>Y;bR^dy2`9{J1m`ATAO(c3B1wuvwxq}1~PLYrO zfJ&qiEMz}QLb={Tea5LC-6m>nd6@c5(r>r=)VoJF+pQLEwwfOGyvAm;j}pE1M92C; ztNC{=?qSHCo8THFXd=^(gu+bF#F{Hx&N5g!{lr2%pn7`6xegXjrxiU^dbXa+fv-!T z4d$^RNyLcd1WLvC5t90MLM+|Myz56H!ts74bTS8ZGFaW!d2zCv)zEHRC8@@o!bT?> z(OX6aRJq$x7-QwWm??2LtMK+zx%~(jq_%*E{ry1_4F!Rvju>)oKQIa~PX+ck)vNoM zOKLwgT0O@IT<)x$*7H{f?57lrX9ROm_?ffqpwmyUI;<#F!8!2Co!O6fA6z*jcbj;Eujvv3#p`+xc7s zpNg=ulOp|w(UHAnq_c#19AN#2?&c+7**40X!g6&MmTXVj&y9jCPP(M+=76a&topj- zH2EOYYT4K*);Z|v9l}B?{%AT(gWZ$th}!RrQk;eAVj0Y+t4JSnx;KvLv=%!;GD0;g zE4AV*I(KWU&bJacF2VAiw!Ms;jj2(sUC^k~m6zbnY)e;s&iwtU>IjZI<@*sQIt3?-=Ph2YYpt;JBCCwcbDWGow&vp*|bQ?D(qw=5>aq e52SWVPSe8|7F9A#v9D|FD^?!pM^sx)Pv@UI@e1+) diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout-v21_notification_template_custom_big.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout-v21_notification_template_custom_big.xml.flat deleted file mode 100644 index 56e807063980173a8d8dbb00f32f40536da11cd8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5380 zcmeHL&u<$=6i&RRv8PV5*))U>Ad-b7)f9VUM-?%kHfd>yr6{S?5atOO*iyhqtFPbWi!L1W|M`62&fy@y}$|cC8N%52LFYkQChE2 zW)`h_xm0Jh*Vv76sYHvVVvW^mt2c^uBY19J2WhG+6$)V7}S3ld$QAp!Df7UE1(YBiDA}v zk;La(id*=Fjq8K!={ZHONR2nyM!4E!(TZ{ID4>4q5#|bgTWY9WXQ(4?i6+iDRG7`G zPXicrMGAeI!V}yz?Uu##l6I;6ExxwVzDYuU68s#nsz%`ZdQHl< zfn_djSb(LQoW-U=gH_`x+TPGVl$s;C{#TwdMcYg1%(H5`-#b^;OXTN8^!*~v?LbV@ zV5c1=n^LAsb)WztIOO6OE5h?f85ngbYqX9v4mg;*_XQ0EK9_q&7l8U5DT^W%2U2rIj9z(?(S0J;Q>am5I5KkUA4sh? z>u`6wtv2VR;a#cm6WF09Ao+15@HUy#CQs1oAh@LF$&U(ptRy9QPin#lz!%R1aFnoZ zN!d1=px$jyK<$8)b<39|gqj%Vu4}aixhZ8#SA>t+=#Lji$8X3h%W7^I#ILGr zu4*$0K6W@+Qty$U6!e{fGY6a<-50Hz{)Uu65n9<8t*Bzt-esyNaO&t<^MHB~(g=yi3E{HCB^`hmVJg;fN! z8Ux+8jnL(yw~Ke-9C-K7@;~g|-On)C%csMBQ#~Nxq|sMtoY`lOM8xrb&F^TRD49eC z35X&B*5brCN=1K5Dv*v08-G6TM$4)3brj(gO_mea((^_N6A*XqI%eVHl2@(>I?BTfrMOe vownz>D4@eAc%WtnIrgq<0QvR+`o43X_tbf4#BjWk)y5IrK2T?))31L374-r8 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout-v21_notification_template_icon_group.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout-v21_notification_template_icon_group.xml.flat deleted file mode 100644 index 04f9909199ac5dd99f06b012e578aadbf214cc0f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2028 zcmb_dO>fgM7;e{Z(?XRAQRTD+5F%(bi8Qf-gjUcdDse!fa1Bo4CWge09IvB@Kfu4@ z0yjAEKR6+A#7P5NM$u}tNLFmie&6SL{Ji#f{A^mSR4TvQx0W2p?}uz(nt8VZZbfLp zjs&DkkQwoiAdET!$4P_)c8DiO0cS^vR{L1JI;a^Rs_;dMc?w^%kfw~nVZf0eVdx<* z#3>XU(R9XmobK3gMj|Z#Lkrq_F2bJW&qnqPyZ7+!$hMJXTP}9pySvs5a=CX2WoK?% z=fWAjjU%%MTEvGLMs1@#FgHQ37#5H>+FCKmNf3&hja<1cse{iwFaj+^ea?ulnV}HL zeF#&@Ax7!2m>+s9hA4THqbufg8CAb@$We@+=F%Bsps-!rAijQO|4s?1;VOmbEroJI zoYB&6?)xOhw5(Z#cu<_*a+&c;DMz=+aZG#>>Nn0wk*_j)S_5p!Pp`MH^{eLB2Kdy_ zJChg%_$9%|#seh;nNXcSLKzdK&1WR)#z=UflOT?%FhZqJn}rgwRFu$1Ob8aQ*4!n5 z;}Pyf*jX+%uu`UeDboS<*G&^BrO`@ho(shP;h~G=GiAxTe4Z%rDOu zJY6JM?|RZHm``X*d@Kz;=+{sCd#m3xf7ZeG`e}dv??rHOI~i)sFBc~%ui!Zm3mstU zzjt$oDwg}1dbz%;-cMjUDS3yDLnUojmQiibPmIS(asDonJcy$dq->eB*j|j2jE71% h!JMSTB~f;`^?=dLiQCeN9jyvv_jbRTJxB6A`vs!qwnzW~ diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout-v26_abc_screen_toolbar.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout-v26_abc_screen_toolbar.xml.flat deleted file mode 100644 index c14033fe5b48804e6c26b9457d4e809addd7255a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2404 zcmd5--BQy)6fT6Hx`2i#VuLUmhtUZoDdney3;9#WA5dmMz3gn0ZL^Z@W_CA)jxXS? zPvJv&2mI zB}*o}lab8J+7JM@7yD;c|~63HE+R+U2LK9~8_VbrhNeke)D61Jry$V7rF^l_c+wfpmc1{VtTBiD`? z3_7j<_qb*}O;xVzf`*P43+|RrokRYJI$_e8rlx_Iw+VOes59n!1-w)A+drq;K`h(G zREJ+$%&$bwV|Ed6UTxBDk}i^wh!XJt$%JtbVXMz>aKSLCw|l0CKVeXDyPp}Gsj3ob z%$2srbR+(uviuvgr5wzv*;6=~>OJ$b0zNAG_et>!QI8}+j;2=_9T_tn&?b6CVVAln z#w}g`;mqY)G0v{+Ps9ecXSlh WIcc4e`VX{z0OWc}U5sXTCi4x6g&%AH diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout-watch-v20_abc_alert_dialog_button_bar_material.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout-watch-v20_abc_alert_dialog_button_bar_material.xml.flat deleted file mode 100644 index 09a669d5e744c5052965f51abe1719d702d6f7cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2164 zcmds(PjAyO7{=SKw3XMDD(rwFgdi0MQW`hi`fn1ftA+&9geDj_q{vO2#*oI5KqyUFK7G8YXu8&VaNB!-3;=+r3`5)3*Ej!~USRXWH(- z?P39Y6GyEjk+#=bblMm4X1tyG`Yx(52Pe)?NkDz2P*HN|TMZ3SnFNmD%u#et%J2Z= z2#n51WTf+k&1aZ|Z(Qa!DbgDSIe$jyaI^hn*^Bj(jEAxg?Tt}-qYi#% zckeO-_bAipY_hvdvYR*mEwH~wAK2cm7tgV7)EoNO0{Z-mb#ud7`-}Ayvb&&{4!d(z mVc+`$wtjKgr#xc+1-5xrVLt%aNGTu$DL3nl^`{bkDSiMN&(+!h diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout-watch-v20_abc_alert_dialog_title_material.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout-watch-v20_abc_alert_dialog_title_material.xml.flat deleted file mode 100644 index 86a4af6ded046735151a37d41230104ea3df548d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2584 zcmd5;OK;Oa5Khw2rrQUuTU6=_1g@aSG;v>PlM3itYDEQ=THt7H?M=MJ_FC&r(jpG< z2l!3gxN+jjnH%B;N5*#27YMXc54B|3p7o68n{W2pSzX=T&t@{2&YeN<0oMc=J{Qt= zbl=0rtRYN%U|ZNDTv!gp9;;h|3XfPm7KDRA?S7Z-{+J!P*`4BlD2CLBs;H zROi_7h-qWnC6OsO4x$?4epH+_Yt$p~EX|m;MW=$NE7giqD^D*hlxL^y#rf)DWnpf{ zu2pJflY?)XOtFQ9?G~G})Bj7WbmV)+FdCqanIyj-C#~iRQ^qYc3dRJ)25nM@@Mmnj z5eeqQa@iO~L!D(y5I^()CoGH`L#QuaVBszfhzBM$gFX$RD(b<3!x?o{!xbW2GR+9k z`Zy}J?IoM}CJtXGINCN1+_nB48W7BPk~-@r#>Wpd8?Z1!aL&XhI898+*o}+Ktd1xU_s>R4JbO9#b}rp9pNJC4FO(Vt7j7;JOU z(SX0S*;U!T=Y-&~6v|#7A8n<2lD60*Dfa@nze+SD@rKPlp%jdZePJkb#*ZBOmecNa z*RdTr7bG)rlx=BnMw|gy@s%wMZO$M7zD*ArT9~%@z$D)=K`_i`R8IuqTqy zol1tjDg`#~s_ThPoSt@$)B^%DZ|Fs9Qu;eMmof_ z+1LxQP4uVI^%*P)$?=Qr_ulWl-+La9-%K_P!&uGzYx+lz?|PzoDH`B_;RT;5 zgr|Xz14Vh}PqFY7RgCylk<>PJH=WPuog_k{4?M{v&yW`j95R9e93(^{C2%GqE>d~F zgCfd^UcEyU^}_*f4~By<>b85mZl@je9}fG2-h;y+8bn;hd*>;0_d$z>=n_6T zo0bsmnziTN2Dg4cT^+Ry@C|?=xQ??>a2ncfqE!9}A*o@fSbEESFW@P{`NtB_au3$5 zo3L?0GlIoQnIq?^U6*RX2<(l@6}?sL^%)U51n)f!W1_rqo*(fv$66|r`3wthQsnYj zr_wnF6#&@V7pd_RLgPfi#$4ds4|t|Xrkod*Of{CK<}_5vnx&&kmTquCwSQbx3bb_a ziUydu+jbos=mAY@r}@hLSpz?6(3+5QbxO(Hd0ffI7GaF$l71p^lVqXuypnc}hHz(e z?++F6f9C&5rRad9S;o+yH3EWVXu+{ zQ3+Oa*#jvSG0i4Chn-PKQAKmnH-HxJG~MFCGkyV*G!z8@ diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout_abc_action_bar_up_container.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout_abc_action_bar_up_container.xml.flat deleted file mode 100644 index 2192e17f0edd3d1af7beda97d894fa5ea70b49fe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 672 zcmb7?zfQw25XRFM)Di^&84$9>l7XQTaa(AcA|%ufh)Nw8K#bAFaT?Raj%>H38zb++ zi?H!ZxPM?pIq78iv%cT?d>#%TpDLDR{pLs2Y)pKb{9cPDY%hbAm}?9X34v%Pco=~U z=S4^a*T6WHu60)P-YfW7QK|5&NVyUm`%?*VMlk`BQiZhyt`Z@0b=koQ%cxoXHct9+ z0IgsU#7Vc+>vcOV(!U<`gWgq}Btg=}(s=*Bg8!Chmi<+;2X-BJECq|*W~y~@gRwI8 zb5QnX z-?4XF3S6fgqKw99KY>h9@4lSd%wWOv3LO#3HI?ClO3esl-nbO!a65r8rEHpNnU>Cm0~4-vjOU~8?Ffp|HMmx8b2Cf_*Sa(Bt##)P=gM&5)6u4q|}SFs|jO5E{>IZnhNy} znb6UZ7ve#O_{eiWy`%xW^#Tk!!0DzgE#Zw9A?yfqrMncqd-?AHzl2n4PTW_d96kNB eYn#TN|7DL(z34j){hcb6K~Me#ZcXl=1;KANi-t-7 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout_abc_action_menu_layout.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout_abc_action_menu_layout.xml.flat deleted file mode 100644 index 8b853945260fceca2f8314748e3b81da08d74be0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 720 zcmb7>K}*9h7>4VnOzKqZL8RcN7e!dJRkw9sbRwdHu!DLnpGn$A+oUAf=J4td@rU^1 z%(m{}MYq65k{90RgZJ(C2aju(Wi95rVm{`4nb|7e_F)DSG1LfNa0FO0!K0k=VKkQ= z>!9j=peIG8La!p_N^s;S5=cf72Aoobv;?kVA#>FTP|PxFZoh@%E(xI-_CgZ3o1IQO zXyWc!uN!twTR0BmHj>8s=W_o&&+N~2yJy#c6Db&RPExIlbA*)HoP+X9-NzzFP`u5U zrRG*P_w2x~LQyzJ|Jxcc)MDy!j~7riED9mDKkE8pMiQ$1{w$yelg~4wWAENx7VOjr z8!WDiYxYwC5Z* z`~`b9LL2s`(!!{M(L_U(3C4k^!Z6fOm{{rDoOM|&Ght8KVeudepdAc@DDJiU{a&}t z2N%OZ&_D0+IEZ^p+rR%S(?y6)gBQ-W diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout_abc_action_mode_close_item_material.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout_abc_action_mode_close_item_material.xml.flat deleted file mode 100644 index ef607cce568738f9c8d912816a2d5e5979bceb28..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1244 zcmb7@(QeZ)6o#{P(`YCX8_;aR6X++?glD7vcsv^R+2ql5l8he?Se9fXYJK+dD!tET(Y+hqlAK`?!R;_#nkHz8`HmJSzmbvkQo}c75gRdr+14*-G@JdLupwFZ+?G?JPUc zr2!<{f8`!pSi;OhpM(uI9JN^?*=ZFd8)z3I{@5rUF|AN2JQR*uX{uHtxAz=cspc2j zi)+sefuGgp% z>|ClN#mVMi%%zE+H^M}JVBW5@YS4>DpiT{1N{%_{EG?L{{=4zhMx?6-IQI?kQe;S4 V2{-X>qkN~%pCH(CKy}7~;3sJ-r&s_0 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout_abc_activity_chooser_view.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout_abc_activity_chooser_view.xml.flat deleted file mode 100644 index 44dfa3296b0234d667d9371fe0a749d36b7d033e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3416 zcmeHJ?@!Y}7@lk(I|gZLOz;pht0F0(Wgu)QBHNI-gs73JAD5%Ou7$SO+}-%`#qa(V z`ceNq<2PgCwd+6@7jgy?qc&N#zJ1?k&%N(+Pp?{i*}Rg;WO|>?ad9KAJ0hSIy1zlu zN5`bYO|)yZkj1?Nj~}-zmk@?&>%hZ@YGyL4y)$2nduHwtH)JFk9`bp zJwcq)lYab^zY{;#nm~f2I^@|<+n77A!P=%2>O^<2EuoZHQ*gu*L&8*RNTH0UC@%Ke zE{BBxam#H*hzc<6nG{qZg%Zu?E-V~U6!o;DPpBgR6vYK|qc@Z}{d*pK&BL)RiUOQA zUyk>6WZOF&am=~J_-N)Y5o6jFp&$yQ1s)}=^*6rxF@?jm$m1>K#K?w%Rtp8h!tK4xLQ5j$vXVv;&g zkiFMoJg%(8s%NP@*QBV%@&t)I6DODCFvz`XQXKl+Yk28*rgp}*QV2O3d1fIWH;*F> z^Nz>si4hB@n^i{7IN!Wti0G7(I})sthik$PKV`v(OR&R7((24_^v<;xBtXYK1=7#HiZdgy;uq50Ns6zk< LXMC!t@rnKiFf4nz diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout_abc_activity_chooser_view_list_item.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout_abc_activity_chooser_view_list_item.xml.flat deleted file mode 100644 index 03150ca304b06a4e654c854dea6ac7b570a5e1b7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2416 zcmb_ePjAyO9PPSxOWm%7zyXXjO_4xT5Y4*Lt_1|^7-*9^se%FH6x_sV%<>P%UAKJ# zE?hZt<;In-!3W_p@JrgkR-_4wMT(L*@z2lC?>(o}>Fv$ra=FuUzXT6({DkwZlHKNz z;gjQNC`{6~En*9H$i%T_dr_27ZXGf@vV4{ZiwPQNxf`?k#~Je#yh_aXkryUWXx0Xt zI6gIPVtX_(1t($RMm$LFt(q?LDO_uH(_MF3WTn+^Ic{U6*=($?*z5P(>#gQm-F91U z!{pHS-=Wlw0^e9b^UN`s9few6Su!+KfyX~+^U77DiWF!QO!ySOSs$7nE>{HB(+I<&5i<-#0MFwNgIZGxYA`ICA^z)rtc$({u=5N`(VJMVd&t+ zCqxKtCe)|4Abp?i0Kc2R-|HJvmGjKO)s4GnXRr6ADlCktw>-)Qp1`-q@PMP(iAG@; z6wu?;rJPeIMY^4Rrf*A)QJIV}Vvg`|B_P7~te9{b3jMKEB_&|to2<%Qz1?(JtUs0N zUye9~QHfwth?PUi1+$4SNqRXZj>E!1m%0KM>luuW6pYHG!i$XaaS5ZU%^|b|2QDZ# z)h*+58GR~G=}wOK>&`ItVShkK)>D>V@Z0HM9w&fbane$5Je`(mIl2KIiT+6p-+es{FN{chrXQ zwTQkHv9d>x#3e7MTy&PG@3S~zClt>E1s{f#>RVC-BA28w@XQ%dj66t|6Ob{a$s?&M zsjN^Yt8BBnY+e1I&(FG3(s&p6Tr%`g0xbJ9-GC?I^-hZ6ssOEZ;uyAX6515&<2~+t sYZqKVdr>@$cWF2T{Vs!k&qi`xtwZZAwO}AEj}Y9isn^n91Nfc#1wp7LZvX%Q diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout_abc_alert_dialog_button_bar_material.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout_abc_alert_dialog_button_bar_material.xml.flat deleted file mode 100644 index 9692ffa8a1195359be6a867601a3b80e62d0dbff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2740 zcmd5;%Wl&^6iwZbrqi^s+%76hNYsc$9k7$MP0|Yb2p~~Zp^6r^(Zrs_1CGZUPZEmw z0d}y2HSAch! zGKVTYK4C*)}L_-k^O>sLBs;v z>T~S+#CEXbk;oPt2T_mlL3F2X_oz?c*Q(jQrrW~R)@IA?ZB!eLje6B-u5UJ5jkTK7 zYxOp44);p*V!ayp<`P<MY*Xcnqbh#kVAP(hy;(I%R~fy)_nHPaI! z+_LQm+8yA?%IcQG1~v{~CXHk@9pH3y9G`&8YP_X2QGE6U_8>1VBwoC15FOh1+9S44LJ0CaapaK z-^%D~SznzDG8%?4qt>WtK_`78tahSh7}G%_cH^E@GczFY5fvwTA$`8_Q0n$_%E|-E zi6bZr^n%YEu-es}lic3s7^g5@oa_sEuzC&3!M>yu=0ohdH0ZaJ`Rdc_ZfNXCkvx|n z9FQJZsa6L7Ni${uPZJlU2y!w(8Nx9OlO33vhEkbkQoX6Jm>(4MPSFdgAPsX8CoAXT zjhyO|@leh0+bl@Zf>BYPFF!;+fovpAdJ(XovKMn{A{`=4cwP%0F7uwyVQ@PY?cPe z3SMRTV&xL@tLkm@qk`W55o={4R^x(L`w##l^3T;;zp84jUqV;|)cTi%9kPi27s6^+ em9Q2NcKWS-SFMBYbTw}xO+g5*x7BL=we<@&K8=^NzpiVOb${|sD^;KGdqLP7{}LFI(n6Blksy#27_I3#FLD_O8o?8%$;+nM+K{ocH{ z>+Ac6{e69Xt-sI4;UBm@1;d|X@fgiG76(2tDZkG)nnExyfZ2`2UFYnfEgTASi+$*i8)y{`5zpexwp6_# zguiCM${N%qK{2rxP39WJe-s5RvEfu!#kX2F1Wn&(TojL2iYK;Jr=qwX0=gC9xfj8# zy@e#)t3v?uu`NzZDFN+3u4xRfwm*%Vu6O6HtbtlZUqpF+P);oLn=T)G#d zE4TU(mazzyPGR*XE^kQTGVI#kc1)DaV#)G#RYfr(2`V$nEBe=I^hFwHLIG<>QtnZe zn2+k5H9ZSoze|MRkeVFEHz7YkHrWP-Iw4CXc^Tp{8R5~Dl#YCDU21`agyAjurbEq^ zrCfCBEj@4flH0jTW^YQZ1s&UgUA3Js6J_emqo4>)$zDM9rZTHPE1;(ZtY659i>;h^ zp9X?j2T|IOu$RkaBc@~fhiso%mhIK?K#e#7m4qh*db9)RXc@hj4)sa3aHg9?JGT{G zf1X3X=5T(`_9)>=^6AA5yqJ8B!}JmEzViYOE+~fnQwn{T!V@jNB?oU*0!ZrRO#TG(X0d9u%GjdD({B;9ErNIA|Yj^B$)wkth@n%1s>ysYf#Kc~?5 zmnm&mYF#0iQ&IlyR9aH5|NpeM0fE1!j-1PIfX6+>fKNlo>tpJ0dlF1kDm6Q51-sq!tmwd7A|@T(vy(` z?mPrWji>{yruai;0gMM-g!%{w^-DkcvHz@DUT!zbuU*=>yjgkVgRJK^gacn$X#%i(ra diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout_abc_alert_dialog_title_material.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout_abc_alert_dialog_title_material.xml.flat deleted file mode 100644 index 31ae8cb416ecb682246cd73192db93dbc3dc494c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2820 zcmd5;&u`l{6n0`~wHbR=K78&t$f(ySh1i;o9xF;V?|14OOXOa z+fC8q{;6Gy-gez}mt8mPy6c`~xvf)R7=axsz_9e5`04SzkKcQ{yGJJrjYebk`xC(f zTzxS7(wW|)tAd=WkqOAdI3j{+6H!itN+ZLKU{OX4(_nBLmzv&B3&FPq(?#$|4P~KZ zFi16_f(0>&hpY&UCbCGB&We?_AmM_+|KNI%Y|@adhFc*`)>k(+*4I|!&6``B;l_>Y zaS|r$frhpJEsVjFO!$4&<20y(Jt>297uzfTN9ZCLtDyJ!m{X?jsl8EQR0i(Qzlbi( z+>v2fE?{5a!2SiaTsl;KL?jbnavSJHA8ny?L{hCdb^W0+`K=%*V2>Fo2DN<t#xZ=K>1g)tXN4i!JQFN2-hmZlS)u;4Le&A8k?HNM zlil9t>V$?+wWq)wBE0XdQnZ{CO1VrAA-nj)ZDNcLrlNABS;Dkt^l18q_k$I1w+4Pt zar@tqf3!kIHS&qd@zov5GbSrVthKQAMj#U}714KHG^KA%Vb9t3|7fD$o49i~BPsii zvx)bWRTw3?oSj-sZh;DLIJ%Y?XB1%R#v0|hw{I1PQy=||=#{V*ug;rrS3mxO79XS#L1naWXeuDwmoKO9~ zo9M45zA|eP#VF5}HiPlz0CY5EX0Tti*Q#-OpSw$iITZ|lyge&=by_A|QZ=dGIWGO) zZL3H-ObDJA{3*jtCaGta?vjM(D}{U2V&6`6`_d{ar~pk8tnALXW%P(y(z$2Y6SFIL zDnT6#?u_AlAD3+e*sua@c)gw7bONwqr!{BYaQgmli|E%y{N9WoH7SmB5;N}`tNoO9 z`ruV3Iy3cn%nIy`YJBmg23DgL42RWh^-=}@$C<*inqyw@hg_81y_Kr6rtJ{&-EkKX M+}?IRD~GYhKiggpBZI&XNEVQgB_ltk$;4-p#{T?oYvqkK`^Sp+RYpbT{lLdb z#uLvS2@*!s3rH}gnI{EFvLP37cJID7WD$kC+wg|_VT;sT?N&J4t2di__v^v_ZhODg ze6JAj=FC7dEPIn(sKz*U+;yeDx$IBbuk~JFQ*N zfCNtzQj!pFABKX=$N&JWz#l zr@|?~l43)O3DsnU0z@qbM9I&ARvnk1aOZ$XDLl}mG~}~H=}1q|Ar*p#N=zQ*il7lj+;M(4(60ur_UTiZv+|%URa3WAZeOXeW(Y4U*aun(R|P|P z!Sd6UT$J>j%}?S=!#>o? z#Uk~LI_NXR+Pomvwt3h2!$7~CC)vZ2WNmGdofb{eCGzY*D{{rNjhts?fA&AsmODx7 zKcU)bOrq#K)gD{`zaz8n{I!PuTxh*MDe?EAKK|w%ct>^MnvJ4D&W$;8&b9HHZOyV! zug``0)zoJ_W?hAExQO=8Qi{u{^h6C!S;ht|QU{nZ;!5VL#}{CtYks@XwtZ$E!^~}H Q=8(0D5R7}~miij{8w1kY&;S4c diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout_abc_dialog_title_material.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout_abc_dialog_title_material.xml.flat deleted file mode 100644 index d8b739d1647f504531d91ba3125169875c470182..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1700 zcmb_cK~EGh6do29mI7v-gE3VMnS+E?W)>87Ax0oZA_)f~D|j30^vzCnww<(ZS@7U5 z;ObxT>dpV*)n8$EcGido%>(`jG7_xio>y}iAo&V=JQ<9Ru4f9&{b=l5#9bjVW5 zE>s@__C5-^V5#bcC@_Vv#}KsLaGkr8-sj+r0d0a0Dv?IX!0&3tQwSm!C13*7Oqy8f zo>^TFVv&OV`fEYl;%(M!Z?$>6(cIkJSZ_wHr(3P|=99H3ZpRyews-&M-#_oAja#H9 zc#sF?R%(lmL%z+CEi%I-*Gh1=ksxNJ-m+UYc##5quv3t~%@B1k$jR;uHFrEb_nwuCW){*^WJY`f zIth}Oyj>BTlHEsRZCx`x1I@B9QW9@AJ*TAznaddGLUs=!MtXlI=Xg}uM;c<#8u-!3 z!h2f^c)kFBoon&m$nQ!alLEP;GWu|riyp{7`%!TkqRM`ECGUAT55_W*!my%?LfkKP ze*vwG_fpZ7Ha4WQXI9b2$TV89FV?57h<~|$(D+gzmlZlAWR&(fc#qxbQTb7CceKdg xXCe(C$BGHZ*4OJ1S43EjrE$9%jM~k_+RgPC%hQVGiMSO)?0U7nJnX}c^9#MwJzW3* diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout_abc_expanded_menu_layout.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout_abc_expanded_menu_layout.xml.flat deleted file mode 100644 index b7bac0b16f692e5c55c87b193bee64b519b546df..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 568 zcmb7BJx{|h5Dj4fMMZ)PsLE0)6Dq2&Ewo8kpb`v7ATgAWEi$!o_O-46!-8GnL* zgxjVAET|`)tb6Bs_wH^qdKm9GjI0()*&EGN9<+B~l^ Gb~8V?0J=^9 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout_abc_list_menu_item_checkbox.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout_abc_list_menu_item_checkbox.xml.flat deleted file mode 100644 index d5998502e7a5937dbacb9cb5bbca234a7789c56c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 800 zcmb7CJ5R$f5OyDk5?W9z29z-)h`24ZO+f+*3k*n=fH`vgXiS|rvYkFQeiSpm4YveT zCKO92pHKIF_uZXGqwz}#0PthAihbDgY3-`Kae?Crw33;DXo5q*wFzUIWFa>+4sk^B zY$BH}a9r`;OYl`wrQw^55-k(xPZc79LX2#lhDM=8GpS;I)`g4~jKtRh4T^0GyAiGjw)QLX_mBbrKnq zUP7pCR*bZt$9*hgh|<}nS{`#P-mTrQd%TlN@7gJVZS7&f@eEA_b$1vNntBg~@JA#| zEdw%ij1*1Gv$3vQH7cV;l`x4jy{+V?kdiVdZsYcJYp~u^A%cVN?S=L`%(+>)huHQ* tRXC^0*basFSctBX(?yg|BjeT=3Z)^ImNGE~hg{F87Mz&qFVlMY;0xFB2;Tqz diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout_abc_list_menu_item_icon.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout_abc_list_menu_item_icon.xml.flat deleted file mode 100644 index 42680445e4367e496d32e863ae1fb122bd9a661e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1016 zcmb7?&2AGh5P+AqP_jy(O*x=F^svXGtkbkfHgF*b1d&>)g0$C_v1hY}wY{<@4Uu>c zo`W~yQ80-)gaeW-S^kmco6j?zPH*N9qA2=1f9<=28$aDV_51j=rfa=KLO-*j78VN$ zYFP*bSqP?8H+sIGekZpUj3r-mrL0yYTNuh~AdIpKEI~t+Ewz!hHz1{`!L8XjDaSmg z{d|)1a@Ze@hJ!vEUrxsP=;EA}c{wD;#r{8g_D$Ajo%m32vXR+)eC*ugACKZmd`J~H zTJY{!h1k3##5x&CZRYPYrX``x*G(FKmpDMunn}8VI{~ZoLmUv?ea4qfEf__(p#~Iw zLbpv0&@3T+6-3$-JZZgt;h&XW2L(Ub)~s+%xEHuio-*eGrnm=#&aO^pLAZ{`RUj4> zChe7>P2oC^j+(v?LY;V&q-G)18;z)Ca*%V;r0;@2$2*`aDA8lWe7ZZBkDK>B>}`DB u2KgNAfabdKI${5(?I|n4vHGXbVfATQ*Jqfo8%WyQ?$4AJ9RB?8DEbYb1XWc4 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout_abc_list_menu_item_layout.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout_abc_list_menu_item_layout.xml.flat deleted file mode 100644 index 5987bd779773a989a3f3bd05341a68385d429c5d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2620 zcmd6p%}>-o6u_5tk!6IXG(fN?tR762c0t))h!HkQ0tAu`px0(-U$>*v52v%cz`=jc zlYfCX-EQx6qEe|8?;|9B#PeCa2h&-zf>tQL zhz8ukXO2xt!tDUUflW9B_IO0CEZ@;TT5l3yiS;h>!z2nVv(Kr&a6o+G;T&8N{(rWDeWrkif`Hcf>ptdvhcj`(kI_ieBAD5(?DWv75FJr0;W0 z-^QFXE8XxO0}mJjHyDJD`P{MqvpxwA!Mi!G zJ?y$9?5A^dkW!+SlpJUDJiLLPTuU}de<`J=*p|_l&xtjCM{0c;zgp8Jv7xGHj9rf2 ziqbT`Pok?yt$qsUJj)_E$p1u@oW0XPDTxzu3EGs1--iK!{#wdow?MqO0Cq}Q5FrPRuK|oTS_;*3sovV08l|~b^rhX diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout_abc_list_menu_item_radio.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout_abc_list_menu_item_radio.xml.flat deleted file mode 100644 index 9e957c283321dbd8244ccc5569a2d690cce84a78..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 788 zcmb7CO-}+b5M2Qyu85I%FnclCBgQSDz@o;8Cq0-DKhB%d54O_Xl6Ds4;J@MrT5w79 zWVXqqGt;~`Z)Q3ij^1`0$Jv@wwt+n>Yd58h>$qnUFI5Hzk4Yqjfhb{V771WUq%jq$ z;hdKJFZ6DhHt0jesZl8kCiYD-L@2cyQ;VYcMqpjD?uC07+`jdkg-}4 zY=S%=5S1W2n{KM)InScKgO_z*4;g?;{X4e+ys=NDAX7Y+%-iKy8sz>% diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout_abc_popup_menu_header_item_layout.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout_abc_popup_menu_header_item_layout.xml.flat deleted file mode 100644 index daf07f02feead0e228d4397425770e68615de4cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1388 zcmc&!O>Yx15Z#8PP23RD98l#GEJ8w&h?7FTdVoeil}f1;LHW3?-1ThMucpq5?;T!8T;LhNmKw4B3R?w1|*HU*Qik4dP~M6u4oa1jCXxgSEx&~TLo ziHXz4M=X#L*l(xDf}t4k?r1y`LBBf~^pCp!@acFs8a(Ow!6@i6V{`wNNare!9P+hB z#$=BxVG=1??GRBPGnQHwF;6>ryyGV^<^~kH&k7+` zW2xR}D7(G!KuGPL6w2S%TnMQaGYF7YdKto`5JEjic%8Lt3(;=0b_uy>2Q63cHrwqV z74p48s~2#E?ET`Q6)xwUT&E@A&rC?NeNVLFrpgXNBPYl52f!xb}Qo-9}6Q zOO+(G&5mFu70@!8CAg=>ib5-tNhBA_nibO8%4+5fa)T}}gwx1yv<7Z{%Ln>k`(wOQ9y)YZ!fY{)be1=LltnV|HNtg7zZXCs8Ox1qqXWB!cA5UANCTg@32+_P6~8sWqAnzrR`A+SbfpQdZiY_O!mg z5(x&g63Lor8GzoqD zS<4q>LVCblMR*RN$RQk75q=lk_-Eg;Ss<#RVxw zR5L3SA<8Ks^8D;+;W$Tyo4Z6x;esZ`el!V{jvNcxr$SI)iOGXh5j1!E4h^tP6HU`E zOTn8)`wiPI<8yn}ETvhR4YQ38?ehwHQNfiH$|0x6G{f*9$8bj%L+23WUW9}nD3#aT zFgGA#?2>Q+l@XR|yg)Icoks#*C5 z{|wx^@x*?$j9xC|VuwDHsS5Apux@I@s(f4^ntFRKQO;SMu;&zC2Ce*gM5(4gqCW9i zIM@gI!3g>c_8i(0C>&pE#a`(IN_8UbKr~5oBjY6DY!FT*D^==Lu>J?V1xg^ooT_4w zsql|l(XB|}7?cJmB_#AHwx%*VYdwNeN&l`IP?k1~@>}_T-{{yc3+TM?Uh;oeD>90A zS5w~QJ+ig0u5B@i(~|-`7^-)9JaWtXb{b9j-LxbiTZpfc^%z%eM_~{tF)TiO3nxyD?`QhyjC|XgJm<#fS;$zf$18ouq4uw_%Dk0HIa6__&-L<`~y=%>Gl7cGn zIy^w1qSwAkAD|m>RB@_2(r9N#nr}w`%<=K(%N5V_mj0*ZKF%JTAJ#G1E#Ov9ErlDF z7=}WqglT1kvWZlzm~!EJ+wJh4UKxRge$}}$TG1#&;Dw+JSS}2;2+E`yOY>%*rm_(3 zjrM3d<}nQ7NzBvXU^E);57_wKWE_v)?y)pZhZJ4ye+P)Zmj(IRArtZf6h|$&-_NbB z4k$IQdkH40^AXb}h3eZQx6TEv^OolC{_yzX!@6X=8p zFB{Q&|LCU(Gih&wEvJ5w5Kfw~b(uw=#Yv46+se~x{4_~Fwn%d)C&ZI~a^ewn_}Dux#5#ppt08lo8v z6qc0oK(Qo^scrR|?gD;RR4VvYL|h3D{kcRWrVt|>Q3bU`T!lg=>e)UFSxn8>--F?p zOweF5ose)i7>$Pe13Z2)9ZyEj_i#7~hftcmH~ICyC$ZN9HX{&W%>)l-NCr{}Z8tjG z>y|_inwyQK?>zuJmwPHppma9N%_dy%yA7tGjX05l5!;KjPG3T(OehIbemU=BkwBDw zD-K!CImWXys1~R!O@-9{V(c#&nN#f_GyR2eB9`iuaf;+=p{e@@)bL?%hfJ%p3#DmN z!km_t8Fi0qVH%7$_YR(1N>Rz@p48&pStTflD4R#x*-DVcQIH}@xpv>yLT!~Oqn3`Y zk&bGSZVSnbf0WmS(^*id8Ah>p*WLtR*EFZq+37y=em236rt|pbgq<_GJTsMXB$5)k?D8W0MgChQEG0?< zEV%x!m0(iW@3z)b`LGMU*I?|l8OL!(sQc8e!gH^NSH4^2k%Dry0qz! diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout_abc_screen_simple_overlay_action_mode.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout_abc_screen_simple_overlay_action_mode.xml.flat deleted file mode 100644 index a3c7503941fa12e9db08051fe6c7f7e33c8ff2d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1272 zcmb_b(QeZ)6wTUdoveXMgtRTdR7FC9Fyd~bO$rZeLR3s31R9J-%e9@xEU_coUD+@2 zGraDNU*S`5*F3vZ*WhQ(l!jkrDzp?ZoG45)1_>r9)6gg^ zbRt!*pB})3XUzV?eV9Zv#=UqL)1==U4EhH>59FEU1#4xJ zUzcMYmi~~)9OB~qy6)2F*^50`9njOFkjjJ?Q8?pt!b~{g<_i~8&h$v(oV~lI-hT~h zT;bkHxY4JV+OWLD@>)hsnLnxp)8N#*d-UXnh>AS_q!!Mtg=8pYe3BY(GslLcsKAN| z#0qEN0wKnc|9tST$}x8$69z5dH0sdTbla$;QV7(%oHwADa8Nl3M*yTN(tNs0M>rkIh+rm^Bc$_ Bqpbh{ diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout_abc_screen_toolbar.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout_abc_screen_toolbar.xml.flat deleted file mode 100644 index fa6d510a38898946949f818a158105dafcb91fb0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2316 zcmd5-%W~5&6b((atV5y;-hotgSeWN@LyTD)-bMTSqP5ya*SzM(g2fMhbK0ESNbKtUHWKL?{lYOJ)g752nK@d?b_Hg(TO-4&zZ8rm`L&t{y6P z3VgZ%HbEXymowt(rYB{vW!pmSvW0||#4U%lY!nrY}vn7sHW`y%_b_RC(wJx=>39hZ@L{S_6GiVGSBN{ z09;p>kt@t-^X4`v8+k$Q#cE(+wIfvo_bJ|HOnYs>Qp(SF2 z8Z_T#!JDjc<8*D*Vt<9Dz995i5Q*=`a-iU>W};uEN(xOBI%TLfQK`<)la5ylqwr2D r$$<_LE)V?VnywOqITHpS2SBiOUkf;J_3LmuW4)HVVn615%K}j diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout_abc_search_dropdown_item_icons_2line.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout_abc_search_dropdown_item_icons_2line.xml.flat deleted file mode 100644 index e8a35314c0008fed21c3a947a35ffb2f86ffff45..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4024 zcmds)&2HO95XTvZvgL(8RJKI|7HtX^22vU!E!7{AgC>@f0ukb%sih`8l~{2{(l-1G zcO^%UkW;u{pUvhRU_L09mhlI(ys3bps7FbSQ;lRK8rjqA@sN(N5ZQGJOV?ze${$; z#r;-5D%>C9K_ueHb^0k~0k}T(2OwOT(n$2;G!(aLZjT3mpH9{79k4pxsW|_5ClZey`r!b5s0ZgpK7y0HGS+RQB;+^%vv!n! zx~DSudITvZ>pbPG57KES$-OvCsC3$S37z{`!uwc4>zF9~yse|2-U71BOD z;c#X(i=)@okM6V(oT_zCDfuPN%=eC_-8jVFX7p996Qv;6rxl<9??;dGlOM-Y#-XXp zbO=^UDcXmxM(f1MG}N25cQpP`W zlP>k2_0xD5G4qqVRLay95P&afH-Hw(;PLt2t)^1sjOfjy?Kzoxw|Q2p&pgki$w({+ z**i*|nnhOc$5BS>)&*J}r1h5)`EhZyW-3`z9IlB8a9Tpyso{ zw+qz>yB@I}?9>Red4zpd38Ffiyku9XN8o>9+OEvG^LT20VcxCGOwG>DT$*y`-d&iR zpS?WoROTx)b_9L*9<}he?pY^Mp1O82moj#%L_ack+8RYC+M6S29J9ue*4EhIJn*6Y zy!8eeZM8dIz(}dg#jA&wfyP>|h)a2?65+ZS!%my421%dLnm~H1PaRiF)R6-%q$eAC zmjMa#g^!ULoX{>>C-iLd(a;`Pzh==dS!3`nc=JA>#9USyHSb1v8<#z@j$N1f zRU}a@poBB`d>8An%LQ!@{5K$bj%T z-w_^@+CA%wN%Yq{9T`Lojbcy7+xN7Ua!obP&d2+@LL(w$(irdppuL__mfDO)Qk1nu zD%{A-t24TuGIK|!$=Hq>=9`&zJI=KI(>)|kwT;;~z3MuO(`%Aq=d?-dhYb2QMM2k^ z6f^@o0gPkc;ofb?a2NaSNF90bo2lWv1!iLnWg1QQ~aCH^fMlqj?03B-&(5AjS zT(EBktNED{A*E%LS#)Wg_>y};P=;=>?Nd(bQqz{Cv{D4-5EC%GyAu*47i*GLpHY|e zAZ0CRgH~tE6t#70L?4o}ED56}?WXl?4E;IUK~-w<>=i{M_59%qgOqyy*U`hcKHQ>* z#J8*3wDluG-yq_WBW$ZkvMnS`Ojcn0xc%HeTWMEjJYz0uZ=sQqp7$=LZa;hyEe)P|b-bl)-6hEvf z*_voh@WyT(bh}bv1hSc|Pt;~M-n4c!`smoxF}txuNMQE#i0>7u!;vUEDAE30J_Oge=QT9w<4pqBKe_=^Lvz z>$Qf7gwj*oPQ;*Y@`yOniAx+1?l-lZwHI@KqFuHA$fDn~?e$$*X<6;$cOfna8Sy}W ziyCVcRKwCPIW7f}3mT0uW^O8tu~&t7;Wa8m#{=otZGotEMj;f!$#$){d$ibVpdQ8= zQ896*fEU*@MWw()N1N9C+1SAzek1IUVP$fGuAf)==s1w^T`37I7!!bODJ8QIK`I^{|PoxBZCy1 zWT&MPQM=1X(@A1NP0Z|dsv7Q-eV=F#t?vfVivvf?!DL@~b=56cy3D@2*JuCZrSs-b zKeTvxD)V>S@lAH{%YK=^Hz9uyH}BiBgJ1P)ry#4_a4e1Veq>|^zwXyY#g!)9iT({@ C)qtu1 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout_abc_select_dialog_material.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout_abc_select_dialog_material.xml.flat deleted file mode 100644 index 8dbee075775365246fc03923433c266fa0201b84..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1432 zcmb7^Ur!V<5WrX90&IZjKKQ4as2dX_gzbTHclaQ892!i75IOX5(`&o8)o$Cga|b-> zH}TEy;0b!(+VdeOPJ)C5}I>|!4l;%Z40-#jWZ#+ z-;*tzwONNWJG&j0?KE4ho$V%VzuIkgS}(U~*2#9T^|sdrkX#gU{c-p}F#LCfQaG3h zejd#&-SgK8e=LW);UZDYYQduQ9KgKB*!c(x;*yy>p}N4te64)XWXJ=;?QotL6FtA) zY?F*Zmo{jjbRX|U4JwIqsCDJTjg8S3l1V%9%%mr|g}zo`we-hlA343Gl7H~=e<}el zqK1P@$0hF1%@g(Op9r6Kb@t0d#S!_s4!$4mG<>6kJs) zpXIuI$#kZk4lDgs>2x@?h{esF-kDJb+8pbF0Dq~CYy5#Wr86j%<9=8pZ_!#+e|;^r zJroL1qpQYJ#{0D(t5gaz&?nQ^LXC__$K%slj726Uf^mx;?GXTr%LhG}imK!vR6P~H zsRa!)Qs(ciuLZQAwBqqmE&Dma(8KP=fBPnWUkkT7?bI~qVw3|~@dJY9zG^I25Fge; zt;|s8f9`hYO;5NzrDbCsX~xlQk(G_+Lz)U*&0+{$#TpXp(2_@kphU*+YQ?k) Y`~rGXjFfLPK+ENjI0a&%oEbsz8`PrhKL7v# diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout_abc_tooltip.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout_abc_tooltip.xml.flat deleted file mode 100644 index 4e004489784a02a3b95b7e7f3b322bd9a65562b5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1864 zcmb_dU2oGc6z#gQWnMQ`k)|OF3CIhmXmQuAUx<%(6$qq0pwSH>K$RCejagzxwnw|Y z^Dp=pyz<)+ZkujWd7wtKWW~A8J@@4L_})(EU4JE)%gyKEx_L3jq*khbx*_-~K_ZC?AyIV7kgNU+W zq+xL+aXJVD*OY7TjTKZegBmfSqXnd{71E}V%*4l<2@aiaRB9IBxV-JI0r0>KSa5bq zd*xpM`~=YH)3H8fbmW~{1p#L`I3G%J!3n(g5^F6{CX3e+C-mrg*L!A#yFufarHWlq zxJo(kURZhO8G*(2lN){9=6N1lQJG64!E(qr+-Vb*P(Dx6U}nBWjkK)TISC$5bg$sb zf%n|n^}|%8cdE5INxjcj?prA)gz@2#&{`z${z6{navfx!d7rG%LFV?#$nxO=bY$+u zmARWZz6Q6WzL|mdXsDM#|6)bGn4up}OUV-C{}2AX#&Rk4AFbHW6WW#NwN0(v;O3rScTb`gz1V{$i;#tB%M{d*>1tv VEfvbZ%>!Uc>EqJcq>Y$1`3EJsfIa{K diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout_activity_main.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout_activity_main.xml.flat deleted file mode 100644 index dc50ffb9f16b6b87b0d3cf3950115efe8e043498..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1076 zcmb`GT}#6-6o%_s-3U5HQIuZIAqc}YAb6p7^J>EnhWK??vg~N1ZBvp{=lmbu`Fp(e zFPU}qVj@b_Kp+VxPtJMYlWuo#zF=9_$J}zv#tby`#m<)&S&i64W=I)F@gQ&##7rcv zwPCle>4gTR>75J{Efabr)xAy`2YM?o%!YI*rAAO4&Ehly%F>i-#px746=?bu*?){9 z@?0hRq{@Yo8aP=4$DwZ?|Ahyh?vm>j&pHZeNrMxcV$+15Q4Z3(OZrg@-Rr5f&^Q=QmEwu zH5MZbKaqyyM*-X_mkGindV50pGu!;awwY_%N5v9-BUKE_XFB#zjD6jr8QOJsiIAol zo>QwePTOxbd9}UTxj|kE7`Ki}RkL1H!;KK2dQyoelOBsa2UP|oRbHEe^^-xa??0d} zL80Kk%<8lEW5v=SH{q||&yfyG>F(q$Q13w$$>!ng*KQg|NyBLqw?c?nHyS(B)_(_# C(`Z-# diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout_notification_template_part_chronometer.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout_notification_template_part_chronometer.xml.flat deleted file mode 100644 index f36fd14b4bd70368dcedeb70cbdb7f1a09da3855..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 724 zcmb7C!Ab)$5Z$(dveqKSgY0pSl_u^&(Rz^9UKB(;)boq!%z4#xaZHD1|gVA4EAdj$6wOSypB5#P5iVZhLGVbUpvQgx1oP$pA(xMLrw4qP35Jn10=9*b$+lS^HhIq17xp3$wV_O53$ym#D@+hrotl4sta zKvd_H8tbWIhSWGoWks2K-cGAA-}3$5l}$Rc86P<;gA2C--)r;C-~APd5e7X1a_g2%5Vl3&czH-EZ1m-d> zsMO0$I8d3Q4vZfUqE}n^=LY#~!B}#si_+?nBuhiN1i~mQz!GO@X>)CqeYZz)A;GuF zh~!hA(qTGFc|IOaCgZ&!n|_#0)5-f0%hP;JjNkkJ5Rw}uqxe@Zp2a;{a-#(wye*uo z_6f1xzoItj>3RxC7Kv)cm*tz$Zb3 zo|o!cxLfp`LFqNkuE99LsKiG>oK3;ei^J|r`+^haPc*`3L6E1d+F1c&Svb^R8Cqpb z`?yMnPlHhX4z&{86{zp?g%w#vO-=e5MA}iJJZ%HQ2h=%3q_A#bAO~ZBpZRobr#~qw zCH@u!->oR;qFkOs?$BfS#oskJ3&Qt1{KrPmH;;th@tZ|~4xZK5Jg+LC{*5s}uUi-Y kTF<>+wM?x*f$G<&BQ3RA%k#%Dmp)aGn@?fwp?*x!0|%CXZ~y=R diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout_select_dialog_multichoice_material.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout_select_dialog_multichoice_material.xml.flat deleted file mode 100644 index 91068bceafb828fd1eaa833ad8d4d2548b290347..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1620 zcmbW2-EPw`6vwmi(JgdT^lFN@%H5Et+d{u4q_rxbRobMAjR}d1;MpgQS33^2yKcMy z&%`tF5;z~Nv>SwpWF>Ku-#PaApMNHk`Q?u1d7JU>slBnsFFVwe;?nbvIKG!FgEVj; zCZY^;xroGy8%7ez2t)!KPaltwo)NwrK-YoRdZfCwfDXk-*lbu5+8 zue&H_9PGK(LGgeNaeFu#(zw^|_j}zo8N3}0hW$4k5)b1ZQuf<_&ZKoGxJ}>x?fWCY zhEu8}qs>=|G1)Of+9o2fZdLOwA_c2C)f_PAc>7suYvQ?O1nXrNLFGy`JH3?fBu5!APpRd zi7CTeE@REa()Lry2*epSpzL_td+{LrxraV$P#Rs!RA?zsXQ?pdfCwfjXk-)?I*}^V zulp!r9PGW*L&=avxEqZknhd(f$Af;C4Bw81(eaxeNup$cl>PSKQ|a7h-1C3?{>X1& zL6u~*eUuuLpCF`d9vRl1db~qqhH$EhdF{Ks|JnVOA9#SXB;TEzm zSUIFRc8YQUoU>fB9}qM$tiG=S!VgY_hE>uHGj~CYfUuH_Z$KHldE9Z+_8ASHkGJQ+ zC^Ghhd*RF}nZrtqaSCjinxMH+IFE_6c?lDqIiZ?0YQv~WgQhJflEyh!1?j63=^$g` ztV$?6-3e{3AOWR-&J1ML^diHYhnG%pKd&_QUeMrWMX%go$FD^gUORE0*4(mA(3r9e z1j1J&zHd48Td^)gy7Qdyi&Ly-P5D$F+TT~P`Y&=-L(a?i<`nE%q1Z{D1Ga8TAh3sB tnOx;A_h&x>W$VmUNd;pnxl{$bu&mv{gxj)vSN;dit&J6;D*V#({s0s3Hs}BV diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout_support_simple_spinner_dropdown_item.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/layout_support_simple_spinner_dropdown_item.xml.flat deleted file mode 100644 index b3c8b5ee6a52c0b3ed795c94ba4945201580acc4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 720 zcmb7By-ve05KarIB`O1DK^Yh#AtVrSTWFgy02LjI#DGL$jZA!L431;$t6F#i-iU># zVdE)qAUr@$I$1vZzMs4C_;yxv9Opkj>h@ye)8=ntY35bm1 zQi6_{&K1j-GU5nX+u2?7-)rRFfHveQPo>Ev3FewI0VJkz3WlJj(j>Xg%yEw-T!1}; zE=h(gq@8dSvZUV`4EnuJJUkr@!@)^6PQs*5wC$~+C0J#m(EqjOj@$;7Rw!rf!xT}S z5n`;AjGCaV2XUSes-AyI%9>Yi?s&}^tnh)u(m!Z#7!=q{ I?80cuTAmu=JVKgno40L8W3z&<4UoL+cbU;zJH>R zAUlnQ2zQQK2T!_EPAj#fe;|8(&+AXpfNtw_^BY2b0e3x|qyPW_ diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/mipmap-anydpi-v26_ic_launcher_round.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/mipmap-anydpi-v26_ic_launcher_round.xml.flat deleted file mode 100644 index 856018ea6e0b5fb273bb7183655c739fd10b54f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 528 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 Jmv7wz{0nkU&jkPg diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/mipmap-hdpi_ic_launcher_round.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/mipmap-hdpi_ic_launcher_round.png.flat deleted file mode 100644 index ef84b0c11d133b5ce357d0acd0ec37696c5ebb0f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5080 zcmV;}6DRCJK~Piy00001000010002M6951J0001n0000f6951J0000A7;R~AZDDXP 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 q9CG!PrL*xBhTX}PjtWzy1i%fJ& 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 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/mipmap-xhdpi_ic_launcher_round.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/mipmap-xhdpi_ic_launcher_round.png.flat deleted file mode 100644 index 09db5bec842c9d26ac200d4f46af03427cb29d1b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7068 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 GV1fWF=x^l! diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/mipmap-xxhdpi_ic_launcher.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/mipmap-xxhdpi_ic_launcher.png.flat deleted file mode 100644 index e1c65a1661954a71fd7fc62f5e1c129aa2e47e61..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6548 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 QnE}vH(NX@WXd4Ci58*T!D*ylh diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/mipmap-xxhdpi_ic_launcher_round.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/mipmap-xxhdpi_ic_launcher_round.png.flat deleted file mode 100644 index d8cad482c00b467a4d1a58500d1b1abc9c3f5af3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10588 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 e;xE|#c!=*~gp`P&El?%OVJ&ow}i|uLjmg@F( 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 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/mipmap-xxxhdpi_ic_launcher_round.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/mipmap-xxxhdpi_ic_launcher_round.png.flat deleted file mode 100644 index e95b6de51614d064572cd6a23dccbe2a99cecfa9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15308 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 JS`HTezW^uriU|M! diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/anim_abc_fade_in.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/anim_abc_fade_in.xml.flat deleted file mode 100644 index b3851632d64f0c824e54d618448485adf736101a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 564 zcmb7>&q~BF5XS2+vTO06dy?X*pa;Pu-DUsc!M=fq_3AQBrrT(flq3s2fv@eROI7gJ zfg#K=GvALddH%9Ji=yZ!ZwH|W@zrMA3=v;}mWo2bcO?kiNj-^fhN-5n4y~i_rqa%6 zO7<2+jg$kg&{1zeyV6+Y9;dXFHHMdDl+6oV<9xPQE%L*;$5q0|LA1&(xm!cAapKDtAv*<>)jPR^ljDoEer9*dK) zI9Tw~=;Z#n6WB=YagUaAqf5EpDHQUc@?gjf5^xD2`QEX#s j@Wv*0zl10M1ahn~(6>MKHON7 zbzle?=9}-wm*-FWvmgk5`g-I)zCL|_bVFa^43v-rN>)_BvCv0153a_sCeId)C9k?x zRx6Sm4DbdC16HFY&VaI&HqzcNNF^HdZ;}$aDshLa<$AkjyUms^%5(!jmzXY*A}xvW z+JA=0yKKU*QMd~ypt#Y3&+lsI+KdqE-6YtgpC?Rv*7mKxbJ~qY(^+&5Opr^;;?^>Jhgsjuer0#B7P`-BUJ;h0 z@j{AEan3S`c^&6cRBQW3=e4#T?Kx63C?=4UvFEwFmLB@HKbWL@C;HY!F1oo?awhk z>P2y_;b%gh;Ng_+__HfOPq7_RgMHi!>uRxfH4JEf@Y+)YHX*t-vM*-}k6w;{4$%1k zJFIL9=D+Kw?IKeT{+6lZLdY&rPkL3~Y7;eYWwn8#{(neBzp-v=v6A=O+&jkHEpG!E MpYM*Ix0iwS3-j!#^8f$< diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/anim_abc_popup_enter.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/anim_abc_popup_enter.xml.flat deleted file mode 100644 index 94cae4fb97424fbe76e09444640a33d6a708ad04..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 684 zcmb7BO-sW-5KWVown3o{JxERx6eM6aY3U~(T2R58px%TqO(sn=$%fsn=%4W9FY@Z2 z@#fV{iQ>Ua28Nv-=FNLEvszu>HWWqq@i$d|q`gZ2DwERm0pv+WU>*1cEw+V^xj<$p z2b#sm9Y@B=1C4V|bK-0mgej5$f*3gw400Y(mhsaeiINoM>v+T+uW^p!(PTCW=F^!w zTzgXhcZA*uU3AxkN$h`|&U2PZJ)fFB*V~YXj3%LB$3hefLb#;NfIC&*38>UuJXXzi zwWiwXnHoo7UFtPpMxV#P@TwfUpeYE-%vJ;`M|4(zHW~bjfu|HJ(T{T;f7BN`& zwKzKAmVroUZXPWY$+SVXTX{h9DB1WBh~y~|FE=q|;(W`jvs&G|5u@3vlx1qJ<62M) zy;lnQ9sPJ&t$4A!QHTMiD7B;ix6E49qG$_R$@3gnZqw*B?XJ<#WjN?vl!sHk0hEc@ AI{*Lx diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/anim_abc_popup_exit.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/anim_abc_popup_exit.xml.flat deleted file mode 100644 index 33d947fa1330635ace48b88cb7885f70c8ba55e6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 680 zcmb7BO-sW-5KX^m8x+#$L2{CyAO*8YOF!|@f(qUQ^(KT#GHF(mY~0;S{SO}fMPB_g z-n_akRXljfz_7c+ym@cm%;(p)6;0EA@~x^KDqdB7t&1x3J;-TBAPD_}70bfM6_uuT zP_v)Noj@+g150wja^fsFL@AOG!UP489C8seo{7^QiD`=JbUfk?0-WHWKO7Ik$!P5M z0&fK1_R;I3i*7);!u~_)tg=-9tmzZI33rj2_oJ%6SFHx5MFRGH zDUMdOI3fMHpg=N;~?0+w5s6il$^+d9LFsH%+77ZJQNcUH6TP_2RT|FC^D* diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/anim_abc_shrink_fade_out_from_bottom.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/anim_abc_shrink_fade_out_from_bottom.xml.flat deleted file mode 100644 index 6411afc5f4b6f380cc659fad778eb2dc7f5bf828..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1312 zcmcgs&uiN-7)T8T)Y=bb}VgjBJ07)!LSkl+s=I z5AD2b*=_&SWG^W>jj4wTgk_`meeZkk;raZ-$DU+L%FMX&FAzqh-i@_tW(vZ;RHM z;4Je;g;LE7W2qTbREDeXVaoMP&DE-QcNg_t9}Og^;I(G}^B>EC3V2&95DhP>;sQB2 zEhUT|`HuHYFJ!y^Fd5z2-VYl&GNmO1UyORV*-}u&c#WQ)Fx_bZqO&CBbgy@wbXls?r3hXb)%RL2&(B(BXfO`Rec%@xaB9^3VLQ^DczY)+lV+Xi8Kh8xo*v@O zYe8hx;z7f%xjILKDcK8V_kdm?drUO;*a+(?zE+ilkvVv+sRrv1JsH}YnR+^WH~Q80 zZu`igWmC}Lvl+L$Ozr+HQ)dMiU7}tZRo`wCHE(JC3Dkc`gqf{dim&LAkZ5stw7A=T N&(lXVeAE66tlwCttC9c! diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/anim_abc_slide_in_bottom.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/anim_abc_slide_in_bottom.xml.flat deleted file mode 100644 index 7bbfb7903515c3529c23fc19dbc1d66326f1e9a2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 584 zcmb7>zfQw25XMuAM2Q$srz&HlG9VGVt@xXeuUi>`~%)R_>QQtxNF8}} zXdQVm2knd|+1>(|NEomKI^r#8R~f6^WJW3>F}&H7&_#(kF6PVilI5#4ot4uS0G;D> zjudH0Y}oymG<#Pv{uso0dT8CZxM=h7N%Uu3(22Vmm`cwF2P z5DP<2I$3wRyYJ^O%kEd5AP9c)s_P3MpFTf!O&{SI(?Ste@Z3sKLXKOP7w8TYpjz}dW_%}%jofNQu$#^=S^2KaUM@2eg zjE*540|i2wD9XXb#<_Y)i1n(9*`(V8-mRF8Kc w9g8|NX04WwcO<4p|1UJr@E7pgNzOrnhll*{SbWn;qVKSwJDAX6y)!fT0_+;T`2YX_ diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/anim_abc_slide_out_top.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/anim_abc_slide_out_top.xml.flat deleted file mode 100644 index 32b9a3b2b72cd8427281dfc610595c53b2e9f890..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 580 zcmb7=&q~8U5XRFMu?7#)gGi2ndJvl3wDhkC7JL8?_29*@*-V<%-JP(zg}#6{Pd>5R z8pVT`3=GQ*GxPoSTdyBCogfH)l6HOJJ>cw|^0x z9l0cP5Wj>imIwV}XP6VHqwD)dWF@qNEf~U4mtvbKD8x>!y=5DrAiiyNKP(NZ=Le9E vMI9QmR?FuH5>uo97n*4J3;1m$=ODquL-uzpzH24Xci7OKjHYy0AKd%`@nF1` diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/anim_abc_tooltip_enter.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/anim_abc_tooltip_enter.xml.flat deleted file mode 100644 index 36916657104710617b68ceec76d6de9d0397c77b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 568 zcmb7=zfQw25XM6*)DkgeKqw0+5(^Tx)2ja>hUN_ziWsYlb7>5Y9c))(;~jWfMjVt% z3@kb6WcictzMsE5f7+b|L2&BZk-zx*^8ML~zQQX|qM=amz0+Dc(e6<>G*NIpP8@x< zXe@ozwX#}KaxhRzq#SsSmO2B;1kTzl^JtzY;1HXco*_#9+g zL-G<17>uUn(SQ?L#W!2w12~|eT&qePPPybhr=4gpc^tI(qB6S4JEC~Z2uonl^kv6l nS}nn86W?w7zh{4CS|Ue@9v}DbM<|nQkj2F59xo-V3o!Tr^fkA$ diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/anim_abc_tooltip_exit.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/anim_abc_tooltip_exit.xml.flat deleted file mode 100644 index 46acaae6477b8e71ac9aaa18902e5ddc5b5400d4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 564 zcmb7AJ!``-5OotuQq##$C|+6&T?&=tgnZH={s$dWI)<}+j@8PND=Cnze<44&W98yN zhb}%i4n6MOdwN;+vb_j`;N15E|L}G4{ndiL!W&ScrjYZU(^@*w?C>aD6x+tX7ol4HOb72VSA2&VaI|Hnn}4&{9bBlcbc*a$MnTI$zHDYO!RKJY4{=DW+3o z$Z~2t_g_(RtY!E;2v^|1Nx%udB{qDwtaTH&IY${0J z!XCtETpSEIp;dgh5z65n4dq&uVt>vg^BHYLjmdMb!&jxzb=EqHhbdtR^kQGPUQDAU lIBnvGP51ZpUzh^tDAC);-RA*{WZg?*%}T>S5XX~#U|lHG)QaR(dJH6+q}VTnQbms<*m@0{&D2Jd-Lkt#^(lM>uReum zU&j}46C!xD0|Pq)JOAH*X0f9bY40bQJ!&uNlc?yv8b#diDE7i z5E)1rDcGqfCkjMLGOPY+_D<`AHxsWU2#Fv0hDpw__aI1;0j7j*Kw>2blWQ(=>4tcn z>OpSk1=v4}VG3u%(PTuYu zBUO+OR%nm0RvupoONe+GT? txYPK{-s_w@_voe~zurrtB0rj!#HEb|rNESyIngqQmWj%zTkOs-egKBUyomq+ diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/color-v23_abc_btn_colored_borderless_text_material.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/color-v23_abc_btn_colored_borderless_text_material.xml.flat deleted file mode 100644 index 261a55a7a1fefe25f31edb635f9311266e08aabc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 704 zcmb7CO-sW-5N+B9YoJo2pu|h*G0<$9($7n&qDK+5Uc+QFwb4zs>@HIOfM1;RLt zxQJ0OlrmJfQeg@TMFPyOyctKwmDYrJ3(0&ZM|90iAQl@)(uUI2% z2eMf3B(~j!Qp+(RQX5J^dh5DwI3=)rD5Takr(Cn0nnZ?FapBf&(`xE)sx`ZD?tUBA zm*G?sg=y=`+Je?Lfh`x{oJ`g_V^B(vIFS%BjHmf!YqlL@F&wA)moZ<_S-!_>q&$m3 zJhe`@qOD7%7aU?%7<0@yFp0YTgGSZe+f2jM@Y!&0t;_W=F1FGzf35FNiXjwWN-1Va S>l|vGUE8pVV>@4m{+mD7J=*mE diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/color-v23_abc_btn_colored_text_material.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/color-v23_abc_btn_colored_text_material.xml.flat deleted file mode 100644 index 5033676b3186261b20c148ec8ec36bc11fd17e3b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 696 zcmb7C%}T>S5Ke51b)irq{t!W=;-%1R+R$GQ(uxOf1@+=3Op>Wd-6UmqDfIz-6Cc3` z@GZRg4qiREi52ux$iT2Wv+VbMJKv7S(_3BBwBLN$QiY0Fl^%QfuF@?orj=t`hTUEoX3S{WZls9Weg`B7`%T=R()%?=Qr*4)b ziE(2}3cwl_V2cpUql-1q2&CjRhy-{HgK>7)xG9F1&%-?akC?e~nfW#4Q4IX4F)0LE z6H+GmM)#G>T<-fDotDiUL#9L3|z7R#_NB7xg-Pg%deWQ$eUs3NEI?1<_ I%pXnr2HkwwLI3~& diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/color-v23_abc_color_highlight_material.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/color-v23_abc_color_highlight_material.xml.flat deleted file mode 100644 index 6d9b095719b5535931c516418063da04a83e092d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 776 zcmb`F%}T>S5XaLr#kx>v1AdT`#Dh?1Hf`wV#TF4fdQk8n)XiqvL^s*8yA~h7hwqTp z+SN2A3PeJfU4AL;?U&uh626omB);WwCV7UvxgZe(ObLxaVkJl>XI!MR)xoobfj+%9 z_PZerp&RrDJv!_U{7%^J6XFNZ4!{RL#6rK#Yqyr2;MY#Phm;uxda}?EZILVzJc;aP ztkhzJvD8hZM0!QuqddiAahJ;%ImfIvoT>x{RB_R)*%fr4&9SPD`f2mcM6ae}B??ma z8f_qJR|s3g#5o#ANeUVMMwsWnK&}WwVHh Lgz|9wxp3nHR^#;K diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/color-v23_abc_tint_btn_checkable.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/color-v23_abc_tint_btn_checkable.xml.flat deleted file mode 100644 index 0fcdd0bf3b5723bddf8bda493884cdb65fcbb1b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 840 zcmb`FPfNov7{*uE;tUA0ic0k$Jr-=bKRV|{s(2E`gC1q1={r|Vn~}t!Abt_A`aS$K zUOjm??K)7zL%~2u@{&ByFHaJN=NCq;R-5&1T`zQd)%|grUsG9 z26P1UmP8Ef`kS$~UU#4Hr34}I4IgEaXV||MBxZmq(OV@}f@E^YMJl)3c$hHIqu;{8 zP6U0}>Fn<9(td9*Xh*FcAwdUP9S9(Zu+V1<`|U})^9O=|pE8Y#K26j|^CXJ}Ph#5} zDK*~5SZe>2NWZN6l&6@CZwuwJ=FBygoQ4DjRB_=g+7{Z<%`qEG&13JwK<|cQCJIvb z1XYl=EyBhl;;bH&KKpSZ^UUHfue+z!#EKZ4^#h`mm}YXsGbK1X)3Flf9#)cDl!_=A zKvn=b){rm>`o?zC{2qYaeDGcj^gIjTypoAEW#0JB98#4`G(hZzl@v?t;`>4Dm`dE` g)XP7qmzx*f6}l`R?SFIDZY$bt!8TAa?dHGd3v0*%zW@LL diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/color-v23_abc_tint_default.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/color-v23_abc_tint_default.xml.flat deleted file mode 100644 index 6ece77979eeeae5ffaadc9c3699a32bba0f7cf90..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1560 zcmd6nPjAyO7{(LUK(RE)vaPMc1?3oNaoVy!-DL_BCj{DIg%heA=PeC$;>vcX?W0V< z4fq^<1U>~FMMc8~s+|Eg*bDX4-#0-*Xx$nJcR;)0pEmOPX&Di+`c?nj-mP=* z+VA}DCi-%B+|8o>q~tE|^IAwcb?lBkzK4ndh8BdD|&VU_ccY?v`z#107DOyj?kU-%YeIol>MAuAiYbU~P-A zbV8inqnu|DMv?>!!r^DWe!d=9rr)U@5v9bJ87DkZg0lyDwcxg-A__*3WCc0a zm@o-iv0W+sG{COR-GzzXmInNXn#Y_zN(l3s|E4?D6ZMUubyt7uu2xd_7Tx4+zg){& g>#I}ytDPEB6-~A6p(fnXgqyaBvSasi1oapD0L*b1bpQYW diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/color-v23_abc_tint_seek_thumb.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/color-v23_abc_tint_seek_thumb.xml.flat deleted file mode 100644 index 81e5e04531e5781e0d66893e29f7ffc799561462..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 664 zcmbVJJx{|h5KY=f6iY>I7=W;#j*%LtjrzHufY>{L#16a6!p_DI zVP(aM+6@VnC!KtE*1dOr4#WAiX&A;fUTV6~c+>G&HZ{-*<%|nVVj8KeP>}>!Mk;;G zW4r!t9v#=a&-g}ykobY8h2#bH?gdF0U`l8T5-ULpx!@v~y#Zci4D{*su|JGq3d3MD z8PVx@;t%5fm=HgJegHoBF&28Z((bJX!EgHBQ_c+ZQAbm>M~X!7EV12GsnrZ)sikuw zy-nYvJjZ0UtVlOKr`GH^O$iLB;=*m&7CO^#8qH4o%KbLcm+3Sz1$lRlcA&K_!d5A9 zPR}t*_tRwx)(d`*pf<5MNm{bIo5(O o3Hs%ByWt*ejj(k2YPxsm_J2P7y|q?6)QbDIiK=v5{)u7y03C13aR2}S diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/color-v23_abc_tint_spinner.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/color-v23_abc_tint_spinner.xml.flat deleted file mode 100644 index 8176ec70e4d273c5975cf4605b3ff2a69b9f6706..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 900 zcmd5)!A=4(5M_al*n|XDgJ!)Lj+?MuAc$}=XgnE>2Ti!vcx81ar;HUU2p7cY! za`hK1>l!tl@MM!or<3%(d2ePkI=`?Ag~DgBl6jc(XyT=qr3KWWf(eO9NXI(ndaTlz zbC6Ey+1lDJHRt$JfmHZbOt}&q`!|wA3@{~h3JPmUxS9x=s8$D0Vg}~++c@ZjFo0fn zZ-0*t`ujmAZ1)KXy3p=I06~bQ`I`~9W}WUYa(|vM(;j-V(EzOx9!U{LjyKgh9b&8u zb3&A#*L^AyOwzjyGq1VDO5Lp}U_iByUe&SDt~qYGQm-9*Zx&iuZaLPFG*8e9u#Qbw zIwfx7AmA3ZlH{zv)iRN_}A%-5Wo3Z`4xn8eQdMKVQjO g`(si&zb7@KI-VKZBSW}p2-h78Wodu8f@X)`0bAV{nE(I) diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/color-v23_abc_tint_switch_track.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/color-v23_abc_tint_switch_track.xml.flat deleted file mode 100644 index 5f35cbdcc595e847a41304fbdbf5628c02e44d52..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 948 zcmcJOO-sWt7{^<;;tULC6_gG^dMwyfW&%jE{9xXa-)rhDFfa6 zEgW~7NDRySxztt~==5LzJw5JXt$+G6*O%Xav;1OGZ>270ql56zQ27Cen@ zFHvf|jj`05XGHqbd7ttOlkupKoz6LPwMC~UfdN%qcy-%C>pGljZLzWMy_)FRbgHR> z%+y0?q`#$YXc6lxAHjqF?|yi5SF= zH6%=eX0#jCpU8G&K ot}1ac;a&R8yVOX$dlTKx&ifBntnDsqy9>67iu7>uRP~qq02SXQ{{R30 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/color_abc_background_cache_hint_selector_material_dark.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/color_abc_background_cache_hint_selector_material_dark.xml.flat deleted file mode 100644 index 579a18a65b1e147487b0685e587251ba829df059..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 640 zcmbVJ%}&BV5N;77ZejxUVtUbVY+|=S_&vcvuX@0Eb2Hrzw9@X9-8JzEd;%ZAt54$t z=~7C9N1SA`Gn4FmKQo^{EL_KN_LTA`*vu947tpuq7ZWy17EL{d=&}fz*A&t zCJfVKXQIbyBX zDAo8^vz@8~qyL!NxjSlWTN`^42AtayDO)CfV+pxN%hzkw59xcY=YWx?iv0aiFco=! dR+%*2i71b|0foX?ybFtW=DDOSM_V5q=NIK(#!vtN diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/color_abc_background_cache_hint_selector_material_light.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/color_abc_background_cache_hint_selector_material_light.xml.flat deleted file mode 100644 index 7dc05790b424179b18749bee27142d37a3effed3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 644 zcmbVJy>7xV5Kj0}sijJgE>$MPh}1ZMAixAeyS777N9*DoB*lr5?MfZH^$Ge2UHdkD zpPCRPI?|I)zB|eH{oHc-_~bf{b4*dQjg23hAN!#V5^*V{q7ZWy1K)0xd@T~jfv3pQ ztT0TYKyIXBIT%zK2qv;kYCPwr-uravN~6;BMW%(81r0U|5`nb*uc=W`=(SY2z8%ta zCeXgYfQI83XE+{BrV~Dkrr|IiL;&Fk2O|tIjHyCR|H&(O%f(*Td!5Y41r&*rS>p9m zV|H^&wUw2F4yt*;WlmwYEdi^UUu$*z)=_o;%4?FY4ZqRqwD0=gF8Ol(MrJVYt;iW` zy=E!M?=B9)PR#ymZ14W8wH+N{sWbH)DQESQSD dzo=ZAA5@eF-hslxSiEbCcj>vLETg@V&MzCT$3g%A diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/color_abc_btn_colored_text_material.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/color_abc_btn_colored_text_material.xml.flat deleted file mode 100644 index 5339dfb05038af5c60ac1ba4445f6e00c842b1e2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 740 zcmb7C!AiqG5KXkjx=<`pR3eB}L?|?ywzRbhO6$pkP*5*k!X%m6)J-<*u2PTQ{2Bkm zZ}IBYO^BcuwF|?}%rbA@%-i8`d~F(r@nvsII?(4;+gjn1{eUwrDENWrtHjGA3_XQ& z<;9>-M8GU#d%6B>(i@3F(ixv7k|)%;6A&__0R&T&R0&Argo{`<+jJ5!)VI^3Zr8^F zc00YJUNGn%xoyAI2XH&s>Y$6RPlc}i2M1>!GtHa4l*oXrKoSZbg;ry#RC-LQ)D&Wn zPLX#49#cr~bMPW(FI6nkCd-hf*5Th}O?Xf|tFbE*83u}rM%5~lJ$>v_WxaOV_%O-4 zX_q2}as86~7t<;OOQ&G(oE5~5K`BAQNP^EW9A=O8E3&|3Ryp6Fz55d}lkhwfcPye9 z#8Z8=5NK5@Ex(6JPRlM&fJxMoZ`4ZP7qMA8Y0QXUtl@T{76tEv-+5mokNVqXt+#aR NRm&u~JIcf{J^_GM<)Z)q diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/color_abc_hint_foreground_material_dark.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/color_abc_hint_foreground_material_dark.xml.flat deleted file mode 100644 index 0153ee63444f704efa80d2c4f2b2595aedbef4ac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 860 zcmchV&r8EF6vx}H!x*taaxN7ze%`~& zBn3IUUF;14n82Vv91p|EXzcZZ?uZbt58Xa^;02h;v%l=az0XqFI(pa91Ran(Vl;_N zCl+FJfiahDWQ4nA-3@7m$!1+#P}VH1(XtvGQV0cQPSdQTGdV21(K4=_Hx0dNmYxX6 z>|0bp)~u6s6BDa5i;@g-T)^B&V;myC*!s@XUQ|;r@L28H4%1JsWX~(9Ho1^*>_bk1 z6e3F(Yzu#rD4p&kBumrK_t731Q|CoRPil#_qWK-#_CDHwLn_T2OEZV2ie!3XOg}%6 F@&PHr6e$1z diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/color_abc_hint_foreground_material_light.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/color_abc_hint_foreground_material_light.xml.flat deleted file mode 100644 index a7adcc60b949a1af5934fe61f60931ab4ef8eaa2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 864 zcmchV&r8EF6vx}H!xc8Z{*i{&U;5-<3siNxRip;$M4WPgNf-r5%2cr8 z0@i|WSR7 z6!h-(us;l83d6x@GK!|-iQf-Mk-Oy|V5_Ji{cvEA-2nYt@==O#+2TanY?iRn*eUwQJ4BMfc4@ua;}43bOVM z+C$c<5}GH(?abpe1BMHjx%MR?4vMR9Jlo6t=5 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/color_abc_primary_text_disable_only_material_dark.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/color_abc_primary_text_disable_only_material_dark.xml.flat deleted file mode 100644 index d90e086344c1bd676d2159a69094bd9a0665373c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 656 zcmb7?y-ve05XX~#h+?Ty8y1uabzq1@oV4l}6RpI~0271d*w-f1i7VSk?Ncza@eHgy z0&j&=Qi%=>Iq78kB>R8A|9P=^cyt}dIp(fm4>rDSew0NUC}vVfg=xabR%JO=dtzW` z2+uT41Q1z>J;|v7l~F-BRU6N_Y!2RB{G>r?{36pr%L0dMMY#aXC`&kddOss>2`CFs%n0t)Au_X1TZ62(DmBr%7)+S^n3Tgmy14Kzm*xt z2OQOS)@vV7e0=wdl&EZ-8e(mMwUVy|Kf26M9Ud%esdTlm^C3`_1LJ;sMTG|2yVq;| lMe%xButBT>d9Ec8?U2DXMU zu4ycQ$Xx75Mhz%V1rdCi8qYbc_g-B5ph0Q8l4-7Gj>Dy*OaM-3l7hxY(OfU2%Jjtm zFSr1^hJ753Vwk~bIG&D^*<>0G;{JrvXbAlwL=eST*}K&xh1*Ox=(Ub!=!oV_NzS|= zHD-N@v9@|Ls>2cw6PaPUe%dpYm|tsk{gws+iIFO3drfp^%Wt&0o!j8UMenZP;0CfD zpbF1=&Ak&py83n$t0F#PQ-P(Do17g|W`7dyU00%MYhwpQATK7y{N{oR4OYC@Y5er! ibyk5utaS2NiK29J{;!kYU&NB1Sn^}fMf>edk?MWJOu!+Ql>AZ5T7sHss<=v1m)pY>^)3AAh2qtP(I zDGmpt$%swIlc=Bc#sJX(djpIxN~p4T|6?Lt=fWW`H8LgpP;ezP?ga~DR_Byz>mUam zR(!~0PGPkydsm#l*X;OBjRKjGDrk8Pa%|z(o1OMN_;AUa>(?`bc{e6IwDlULcR#rJ z%CI#=o@qz~^6hDMFLx4XX=C3a#-eQHH&PH9t!=Me|Cz#T^PnJUmEmqDi7LbCpBXTP VNAc@JSouRMf8e>K+|D=C{RE-1!6pCz diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/color_abc_primary_text_material_light.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/color_abc_primary_text_material_light.xml.flat deleted file mode 100644 index a030e6e1b0264bd8d9f648694c1b9bb98858385d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 632 zcmb7CyH3L}6ixaN#ZsjKak!E>2l*6g+~|;l zMwtT(S-#A)V;$Ff&o;eRC>4DWS)oKh{iTG2A&nuE;r@<(~ z8IFeI={TNErokZUPXK};_Jz2G;cV;qrA}t#0E$G4JaN2C>(vFN%9!Aw z{EGKu!6~dB%k~xL)>>V+rI2B)h4k7^lbjg1jaIjF?S0tf&2}5PM&4VHJ=!|W(!P6k z`4!{WAd_4{#4y>JXzyw-g|^b>K|(CbUT!l5rqK9yI*p$(oDO<|EUOUVUJ_LZ@6QmJ X!kX>=3Zs8y^bZ}Il-rx_d@bt}il@UA diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/color_abc_search_url_text.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/color_abc_search_url_text.xml.flat deleted file mode 100644 index 491e5f06e583bf44462c3da2c2679d11bb6af075..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 776 zcmb7?%}T>S5XY06VqK`DsRzwT<1Jt|ZRwXFSiy@Y4}O7Y*leb@nqVaW;-DcO>QH5M!ZS6C%8pc!L_*$d8v%J{F|m_OnVCY}`xEZ`0at?G z=QKvpf?zLPX6C@0d(N4e&u?yR%d);Zu9<_Wchj#M&=fglf(uC@VxdANiWuZmsBx{s z95l)dcxa%7V;$Ce&o;eNC>4DaX`w_x{Ras#N6LVusHm1us6@zIoegM`aWt#nr@<(~ z8IFeI>6pzX(_j$wCjh|^`$G&ch^RDo|0ly==iDMMbuuG+P{dMXvE!v$FV87eMnewD zuW+A9w6EIWpxoTHVf-_hFMa+iheT^B#~LXq{%M-aWne zaaQil94P~qqM}+tp%Ni;H5}6<<7ifYM1yIB zOPo$-iy2$a7r{6h%>jZ5jwTpj5K(FF{!@p)&3UQ&wMmxb0E$?OEOxw9>&-c(%E-t; z`8Dn{kyF?_R0K8VHadN`qmU!hLV8`NO-@X?txmsp<$c=Z-F91<#(WTwJ;pli%78n( z_%^Z=W}GRAIL14v4leiN=qha8-s-lGQd~FN)g6*&jAA XfhWHEH;jTKqu|i7NwvK$Gq$WRrWD3d diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/color_abc_tint_btn_checkable.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/color_abc_tint_btn_checkable.xml.flat deleted file mode 100644 index a337985c73fff047a763856fca9b80ca914fd9f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 884 zcmb_bPfOfD6i?g@ZU=-lYLV!nD>eUb7Bt}pK+XWvy=FMZ?`~BXZiR05V+p?@Dy=a+>k)KBYEY+q(wwd5UQb^cD zXN8_5x|pyTvKvS^y4GgPzoX|0rJ~njRwz->@Jd3;kuosv6x9+6H5D>fyL~#%IGQu; z(P%%xG42lzMh9#>97X-4Hw1_V*c)JkQ9`AOeG5Ch&ADZf-wqj*Whhc9veXS`T9=2E zDg&K^3LAgOL{6c+sgpK7Z>h6N`lJPA>F)eHY!~KQR54yhAxEZ#3|3r+d@|y-J8t)L zaBq{pw%5)y=KeAH-<+-kyqtme@u(qom}aVKZW>p9{~KALDA%c5=4~E<*7C7`Uqzv% z;3sAT!2K@^rCU)NG)}On33<*GxI$CzTDSeY`nB#n_+^tHPt~6;1k!Ncdd)dzI{R)2 xq<*|m#)fvirM^_Q&IyJx{AId3NRzI`@m8wTxzYm?gCt5(N+sR!a<5F7vi diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/color_abc_tint_default.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/color_abc_tint_default.xml.flat deleted file mode 100644 index bb823f3d741287bc74fb2cc1fe417f8e2f0a8898..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1600 zcmd6n&u`N(6vq?RKrtGGZ0kz6pj?omEl%70>JCg{7cQV3R&J-5Q62>#JJH$y!iTZj2 z?C*zUO!h|yM+edP@W>yAgF^s+Lz08YsbzP% zmiff}p`-7*-AN_MoM-4?V_F8#Vg`2aqy{^VQvo3*aWJ<#&ryq_ETd|c-9G^-`J!{D zESH?o7pnO{ou{qBtqTc~Oi5k=*+v3X5LNDm*;%cA!z|q|I{LV*{;XA!n)%`H%t0j6 zO9c=+L92*0cEX}kkl5}>Ue2jEo79`;`E{f&l;&5dx0=*jiu#+5K3`q0Ph0i+-a;a< z{8hiY-D`69%$M$09euhw?sn3?yWn0t<`t1_H?g7|H6EA^I+*OSI{?X`9%6+fhh z{<)rzdMPJ<0UKk~R#ipAiIGM-JJP(F_h!c9i+8T$I1m1D=t~_%xGf->A#u zL4qS3^bZaX#AtXJ_mb`qAns$gk1@sx*S7W_ZKJDPvY#Fsu~jHit+Lb)XGG-@=f?KT z!9;aF5-R6Vey-5!T(Hu5!FsF#W$C|uylfBVq!u+n%b-L-N{8#d$6i?rnk~P59NxI> z+6|f+VcvPe{uk5tK$bHIwodB7j?&CPA~78=@}0MA2~xgSX%+080Fk~I?o1V=l{~lF zgY29x1-EVp2q#!n0|nj`q(Mt}quudS2aY4ZkJQb(PlZb0iMVrJo zje}bEkzPv_lHT(ul{}@+oq&)b4Iqe6QY9djD=re*8_-qEP`^%}x+5QFI2w+p<6t(K zx&yyI0dR-dAEJw{Pld+*DC|5XjC|C{jO;)f3Lb~19VwN~DV16^0qK-=C*TQ%Y+dk` zHLKd(BLh-{EHh7jhxK5ic#g4}5*Y@H3%g}D$gwu7-Za~%_IriARjhifFzH^BzjB%l zU|9s#(OKEp9F!6?j3xLC!$tntU6L&(GaJRqa>ksgNG^D)1ZRst#Sfq`?4EDM*pf=4 tJWPw8ti}qML_Kz=UH`s?PW#!uB{$^`{=I1}xUU6w%?c^PNq!H*_yhx)*h>Ha diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/color_abc_tint_spinner.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/color_abc_tint_spinner.xml.flat deleted file mode 100644 index 4abee04f621cb60edb88cfa83705fd671b55a63a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 940 zcmd5)O;6iE5M7g44J#o9^C4s|RW6k*;dK&02nSHgg-a_At;8*i*Ars8-nDi&h~I(u zdz_HCz=>bbjWKGgRx0VKBaL=;qc4YwfaT5V+Lc+r)TxfPZyH5-qiN*n;LPOUpd(`*Kor%Tn;>1g@gJ15%L}U+$D7Y diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/color_abc_tint_switch_track.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/color_abc_tint_switch_track.xml.flat deleted file mode 100644 index cb66f4f88709158bc5b13da4ae1d6180cb236c3c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 980 zcmcJNUyIW~5Wt&jdsi0~2r}5chDe z;>Yn52tEn-S#Dc%s4r?M4h%ax?ELx7P8crVSd~iUUcXe$#mHx)ozf;05l_vHNrTq^XC)ej>MlK+arATAjOSCTLlqyp< z1Lc=~pNWh@u{~rgea>0qAsLV=6ovil?_oXIX|a!S8VWfwEu`19>*T2sr`E7r&%IlV ze6yTdsxfm%~zb>Kw;PBrlR?rU-cfn7fg$9b|Sk>;Sa{4udhA#o$cE|1+8N9AlP z4H{RNL&Pz5>TBQ%4Pd)f`<1ud+IZhB^7SO%p}Rb)x01KJ_{sTFX?02CN5g~!${EkWQfF9cm)aFqRCVKZFF5j2evnk3W7@66<`gkr_E=r7*e>L6keUzNFM5y<#@r`eUvY zW$RUyc~N$M6IAfx`?pe?6hyAZ=ZbmVZCsmdMP;|ZP2I+52LF+0z_e1 zCPD0WvUhzDLCZRvLkeY;Dr_v7w18y??fPF8L0d$M;76t5;UJ2whVy+IN*pJyz|Jlp Q`zf-Y1U{**H=E{qKOm{SKL7v# diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/color_switch_thumb_material_light.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/color_switch_thumb_material_light.xml.flat deleted file mode 100644 index 23e0784225f0c07c2ae73e69142484e59e603cd4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 620 zcmb7COH0E*5Kj8Qx=?82MRL;KjF?SZ`toFj-aROIGH#Mdv%1Na-7R|aUwHHG!K?qz zX^5awkPZyHJFwqlX6Ey&YumD{@4T(y1LGa@ZBxV`$FUSrQT@bCoP{P^=TVq51Bx>d z3ck#YV;$CeFZ4!(()2-Qg_Z^Nmx?6C!Du+1 zj^o*68VsWTgt1@<{UHPpL{#D5e+Br@xgf7~G9!DeNR;G><7LLI&MDQ%o-^%Nbw8Fl zWvj;$x2n0dR@ZH55D*)wytdOMM;LCS)$J_2Pn&$$Zi5@hd-r4qSf^R)c26(1=ufz2 zk$~h+CwrGWF|@V8L4;70SZ*_ALIdh{I*p$;oDO&eNh=d~J5f|7PPUmSaGbaUzn1~& R50HM}u}OJdY}$)^^aTN;zcBy+ diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_ab_share_pack_mtrl_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_ab_share_pack_mtrl_alpha.9.png.flat deleted file mode 100644 index 3a623281edc6b8a12931e3f1e64301a470f78a0e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 504 zcmZ>C3QmSRDsj-=bS+b?Mg@I9$p?PAWfpMy#ajHS8 zL6UwEP%q3ex)~`2nYv{rcpar@saKGf&cM(a;OEZECB+5w7O$s=OAwHj0AUUmAn8^2 zwHU<7EAY<&(ilJiD6&jz<7yyPl2;It%)r9L4-zu~Vsu~u5nuyS>_99C#6m#K4a7V^ z3=3y;8Yl&pgVE^nj9+@{?SPWTo-U3d7N?U_3=)1EaIg_bNC-$!VAU`%oWS8`8nDQ* s!emOvg%4#WQ(mlUY;|l{Qsm6Qu-c62LHpJxd?2$uUHx3vIVCg!0Q!<{Pyhe` diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_btn_check_to_on_mtrl_000.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_btn_check_to_on_mtrl_000.png.flat deleted file mode 100644 index 5ac21c700b5d6cfef6e0d86a042c3de98d8ead04..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 456 zcmZ>C3;vM*U={-dmugB;VtHaxPO5%lQgVD!NnU(%Mrv|)d`W(M zeqMZTNl{L`fq{V#`vk@hj0YH5l)4%9LyJ?3iuJSdGxCb_^Yr!7ixN|S+LIH38jJNy ziW2jR)AEaQi*=3k(=u~XfwZ2XzJX~{s%5IFv6+QgvZc9&fl-p7d19i0ajKzlszItj zl710TFU%>r87T#sx@9JKoupTgm(IY@8Q|y6%O%AH^bW75hf5HUHUMD`79jbT+mHuH zt@3nn45?szd+lK7VFLlThvzr4de*K}eIlkD;=8LLwsAqphGbodX{q;id+mArXOha# z#z@Hmvm;NErgWcVIJ&CpR+4S#>PHH~6))|6Ioj_MpV4wAqV)a31JT=)#DX@w+;um0 zD{EN!?sc~V`q&@wfBgNx`LHkNo`rw)0ycI;1Q<_f)iU@J@9#eXkO-mx_? y-B8Km{{PI)qJJN(>aFJ4*PWmL-g8n7<8dvisG`p`ML<_Gc)I$ztaD0eVgLXYDW(qq diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_btn_check_to_on_mtrl_015.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_btn_check_to_on_mtrl_015.png.flat deleted file mode 100644 index e1ea24d996db230e7e9f3149b95bd43d206761ce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 632 zcmZ>C3C z=jX-emK5d08yK1ju}@(9z<7X>MX8%nKeRZts8~NMKO?U=KTlsTy(lpSs69CmsIgeT zq$n}3I4!>@w^-LmKP@vS6-etD>Km9QrCO$%8k<>|C0m+X7#JlPnkOb27^fNdFc!codJICyj)UTK(Fw6dbk7uX#)`EU;&bUxea-M z-jDWlaSW+od^^oH?~sE)tNoshjauprOhHA`_t}pWW@IR67Wa5ORF`2s+H4zXevQjL zBT_e{ZhigzGnc)r?*uIOo6Dp5&+N`pInM7|3)}a5oQyO|fB4YSyC~@YOU5t_)mJZt zQdu8tZe=W*^2kryGNI;Fqbsk&U*E<}3_DtoNVcxV06MKw>RN8anWe!@QL2iwQ<(|)vHzwCef$MN@{&wuxuYxS4$ Y@}JuO?=^qN0z;d@)78&qol`;+08P~IMgRZ+ diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_btn_radio_to_on_mtrl_000.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_btn_radio_to_on_mtrl_000.png.flat deleted file mode 100644 index ce9409a24be27e6d052a853cc836bf8665f95c14..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 692 zcmZ>C3V-K)HzTDWQ@6|nuaoo&^3oX?Is^RNdAX#xfL`JC^l%9R(gq;R!2%@zavSmh zy+7U4#WAFU@y(_EUde$XM<3?TFLuo3Vf=67bkB9orBx43vxvM&){poh@yL6{f+m3t z9uu=fO1_zFpOATOMPkmMx33N)t>1m^ZrzWE`-R@8oorbp%;2{ z@iM;6;j5(vO#;Pw~O_=<}W!dO=hgh=Px<0zINb1Ow_7NPJL;eRzk9}iFW1S6FfbelV0n8#s;m67HP7SrV}S<~pBJueVV=Udq<=GO pySSgb)P9TmUzs1pYwZ8dC3TT+x0Z(wLD#6E%X1LFZk7Nu@R{m|mnqGJ85{EWQf{5*ZVbf5;H_Tk>ERLtqzyorg9S+bF2 zdjFTFi(^Oyb^W=djo&P1w;%7{7izDi_T$qlueCEQuCH1z z6}*b!Ojc?dV~E%MkUPQN;rC}QoPFlP%zf*oRos3qc6idfiBDW-Da`NrqVw@$s;F1a z&UqU31+yz>NEGFAFMXsO?~@vD^i4a z%;nI8n;w&71Wi+SS zUG{ySW-by@py_!{aQCqI2CUczL(n-TNz0<>8LY zYC+i#=PsHNW}mLH^SUFm^rVenW)+xsgdE?SlEHWMKYzx~iFcx0gsms3zchXLPGF_$ z_DRxf^CdsT|NiO=jLjB<3;VNGHry3ascB?zW0}TtPQ*rP16M-Xfpv}#8crNp$iIQL pLEOQeVL#J-M@B|bt)+_@I|A1WOxC`T0o2am>FVdQ&MBdZ0RRG-L?HkG diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_btn_switch_to_on_mtrl_00001.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_btn_switch_to_on_mtrl_00001.9.png.flat deleted file mode 100644 index 21397ae37b19676cabc879bd26789fe223f08c65..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1332 zcmZ>C3bz2u=X82Md_Vz@?E=lvtjal#{BTn3No!RFW58T%K8yoDpA= zAD^EWpIcIt6K?vUX+*uG$T1N zIU}`LzoaNJuQ)BgD7RSGNIxwzClyHR8R{FDCZ$@Yni`u~m?c}9TNoH68JZ_18W^V< z8mAhh8YJl#0rkS%qnnXZkf~c{LdacumU;zw>74<7?z~)5TtHv(dV0770clMT<^cJV zDf2`vkdnwN@XuibGLW%jQpjguM3RNH_kXPW71PUi)e78^92q=`2R}hlSz{0|* z0OS||F%TdtV|4%vfe9ucsSd;-M}Po2A0i4NLGgnEe(Pz>Vqjp7_jGX#@i_i;s(p^I zr^vDWGb4|eDWps-m|!6mq4Yve=pyIOmIdCE*mFgN1NU`zMZ3Gbs%Y3+1YB>wjH@r??d0-N@CNnD%Q$7#MfQ3sOqS;@MKl* zSthI^0S>cFA~zk0+gYVLKOwLriLvphPwl)JJefu*$v5wV`v@gISZAzJ<;6Z7GyJ_rjGmv|hk~)v&?G$ML{d_5ktF z_RoK-nQrI=)F`z7&l5Xzql1~}&iPALh1aFtt<${x>u-*PeBaylc+rAalPp*^PxmaB zxYgmjT(9+Gu3Wm}1kd&R3YOh;`t~GRdr6#C*{&-IEqRk}XZ?KWS=w}QvKxZ{PwAtF zo&}Rt_pg>c#eFgP*4ZmZ1O8PXi#~Cjfo=J(_Y<3g6&L4LGnn49-(NEr>S~ScZbz`c_4ujTAL5t+Uxdn+l{S{r!ssx7Q0?aw5oAa zNZiw7u_wF)K7PHU&?dev`&;RsXV0?Fa$h&B$up>OeYtCfj_t;c3-@h{scQ1Pp1av6 zdtofUbnEKb@-j!Q+|Jz!oGs54zVTtz*}HuO*Pbx;h@QK4P3QNn-@GrgPjB6ND6+>_ z?!~>mDP=4-xs8`jpT_(;`@YMP>>AmK(@Up|r%gE9_onv6l_MFyP8|5Mc=p#-sktYA z?JAvg^;*&1UoV~=DEW2bNQO=EiaD?4T;Kh9bJ==oc?z%eww#-r5)Y?nzn^!{(!P66 zwaIfg#>J}@j8`7{P<2UoF?;=ND`V4X(pDOiul@h@^RoT<>G`_kbCv?p@!f`?EC+1z0}ZW*81XBWN4bhvO6u)4Yc0yuUsG&vEIdC ouC3amEjb;zQ+c?L)hE<2TODLsd}PZ^9#G!%boFyt=akR{03s+CcK`qY diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_btn_switch_to_on_mtrl_00012.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_btn_switch_to_on_mtrl_00012.9.png.flat deleted file mode 100644 index 610fe36efb3a827ef8d75b4e3a961701b6f374af..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1480 zcmZ>C3!lYZrU1=I zPE5{7E!Hn7O3W)x%P-0;)-}>k%gjjy(t3va2Bt}=mZ_%3W)^12mgW`)MoEU|iHQcr zsfNa>2B`)~`b9v!F!$(Yq!eW8mYEQ8m!73wL0)=ifS)@rmlPM!SG=AcE_#}bC2^rt*lQsehrQ{WaBr~wE za4G;f20#o1$jVq9z(Qbx2}r5~F~|`hfX;`ALP${jzyO$i%#Trvfr0sxr;B5V$MLJv z&Sy)ziyYr?yxBS``k&(MR<_lOi}*Aqj_D5Eo-YmC8$Ppt zxgqAY;H&1BX#tZ1m=x7i+T|YYI;tmnWb5Q(TbqS%t_r(!?#-FkjzwEG>72f_@IvK= z_M0>L?|;9y$DH|(Je&1{u2<8O?ysA`!}EqoUi5$&bAuz(wKLnrShCpf2|u^K92aKx z|J13>^W_JkPA2L;`!Qv=(A{peN%8&ZYSs59t)F~cD{JwePF1?=a&Fz)lHT%-i)~~0HGY@>XK{opX*Suuxv_JmynEyzY+VgVilg^OOr$0cq|V!?0bB7``vwyL*34N%w?Nsab(xK z$DPgsx7Qr}*w7ffsCw!Y27aj!AqKgX?bxFzPvXR_zSZrY4?X(8e#3=9wtwl@ z#+r9x%%v+Pbtsl|SITeb&228?dUWdSr{a4vUmtP(`E%-Q0ZZ0ftudFAcWnOjLW=z+ zU&pk^7q?n#Cr4a98)We-SaME{QM#s0f-v9KrRv2NGfyqpKaWxF^qelQ6+W?dqsnBB z*aI?R(z7dHX=w#=u38s(L|l{SZCrYyEihx&`;Qk|0#kI?+I=|x=*RSzw01k%*T^_r5>(S7Beb&n^NXG~z5X(@hS7D(f`nW4Y?d(*3CY=1{N3a(q|V21#wa@MzeY%aBP&C3qi4~z#GStJ;hCNb)V7N-^!>u2R>FcEzC8hvP zNlr}8NG;YcDN4*MPRlRKE!H*CPs_|n1=4zk`Ua*+sg|jx#%2~~$(H6821ZGS=81_0 z#;JzJsRpSAN%}=Vy)YN)W~3Bk>Xw-hcA1`~UO`@ZXMmqOFP9V-&}+P&9xg#ZS_OnT zSb(HAXMiw}lE^FY&jHdH;6G60hO9&ikP68w2uWsOV&YT)ax{P#9T-3agn*PN5X%9v z0ubW@u<&PW^J)79RHW+Z;uzv_{OvhMK?Vb!!yDH8u`E})G@s?ba~6gMVg1{jzOPq^ b{d)3;k#+a=e_kL{Jzf1=);T3KF)#oCx@~V! diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_ic_commit_search_api_mtrl_alpha.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_ic_commit_search_api_mtrl_alpha.png.flat deleted file mode 100644 index 94db9abcaff1208ba1e4702de395340f532e0bb4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 412 zcmZ>C3tSt zBqt_kq!#O!6eZ>rr{x#r7V8@6r)B1(0%<)%eFM{^RLfLTV>1i0WJ_}k1EVBE^Tb30 z<5WZARD)E5B>f_wUYLt?Gg1mNb<0eMahYC0UV3MMpF1y?6c^BIyq+E|K|tC7ggID% z(>9w1fZ>Eakt!T9#aOMA@I$)Ba6^z1YuywN#y}-Dg^A1!3=Vz<3<3-m9lGiq3jBhM3=Ss>7(wKJ rVP$rqq)+S&3I1$cA{qe;4)D1wEReRzTgVHvox#)9&t;ucLK6c3hO2u` diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_ic_menu_copy_mtrl_am_alpha.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_ic_menu_copy_mtrl_am_alpha.png.flat deleted file mode 100644 index 394d804bcc6abba8fa91b2b4625449045d63bc46..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 436 zcmZ>C3l*2&W#*&;X+1-I1Jk5b%T!ZiGYhk1OLGeYqa;J~#6$z*R72xb zgH(eg{UV@Vm}7J^QVKG4%S;G3O0OUT_DK+>Bt zKp03(^mK6ysbEb0;jh|}aO&Ur|Mwjvgp5vn`#=4^3!@X;+~yUF?kw1!;5wz6H%&Ux zBfi)@{cb^j#`C0vSl*0D>sW(wG_b+Ye^;8oIO<8KJPnq=Csq#?f{!u$xYlxfD5 z1%b^{4ilW31t$Ds>y`S_f98-pC3Z}570xC8-d6%giN0g~RF0m4A9 zM|-+BhEy;5ZFE{z|shMHH#*dzN$}8QmtSfr0ohhNu zoYl;EYIC4kr%Itx@rCFavtGS9ux1Kp2CvxROMGj*W;U25Sn1fYd|!ITqJ-sFklF(6 z3%tVK8?;iHteCCmI=fGkJCLd=9Ps*FvS+G~L+@ktm6r?E7Fb+8b87FsQ%h@-r4pI6 z_LXR+8?9)vx_ZUgv9`!CpxWvE!PfH%Z@FtHsJ~^dZE@0S=F_?R%67-c&?j?Qmd^j* zdSCAJ?McM}KTz aV83H2<1J@(tGmF^X7F_Nb6Mw<&;$Sp^7LZ> diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_ic_menu_paste_mtrl_am_alpha.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_ic_menu_paste_mtrl_am_alpha.png.flat deleted file mode 100644 index c7155c6db06dc595c051163708fe0e329b070244..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 460 zcmZ>C3?i&Kk=^|SIb@{05G^!3t<5>tRCBqt_k zq!#O!6eZ>rr{x#r7V8@6r)B1(0%<)%eFM{^RLfLTV>1i0WJ_}k1EVBE^Tb30<5WZA zRD)E5B>f_wUYKiiGg1mNb<0c$xk|4fFTFFs&z+Y`iVNr^UQZ8~ARw&*!W=9>(wj3t z7)Y)3ba4!+V0?S^Amhg0vP9`}p#mdlw;k+{Fd-OQqG-kRivn&JC)8*nyzMaew&J9FZN#P>x@ zFDziSjoN*_v_H&WZ=uxQzMeV8Ra;wh7|JSMcjmvj?<9I{vz7o?gvgWyEUFrgoVSF6 yW&fT2R+_A*=zLJnJ)@7=yQksNx6>D-xek;t`!{aw20EI-)78&qol`;+0|Nlrww_D? diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_ic_menu_selectall_mtrl_alpha.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_ic_menu_selectall_mtrl_alpha.png.flat deleted file mode 100644 index c52c85d94b949c337ce64949ec2cefb2692c8c6e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 452 zcmZ>C3O8EApqylL@Lwy6&q*TjPQ)4p=vt&zi3j?DhL-WK$1LIUf z<5YuGgCzYTpkA1BbTd*4GIh&L2s%rzATOPPp)*r6-UbDc=2C+WW)0(w{p{fdo4s}vXmIe#7;KD@Vv5(O&;PlU zLtDnDM7k#9_Ui2g5uaypH}v0Q_WgHi0h7EDhlNCnhEuos={Jv3r%NCAdDN@ZVP0p^ zv3RMYdF!srPja?=diCn>V@H{_d_n$aPbdF!tlIK^{;WF1=k?jY%#HRZRNMXkSG1*H pb3*#cYjRE}&2BJ1o4$bkR?WrR3#uPx0A0%9>FVdQ&MBdZ0RYr=pDF+V diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_ic_menu_share_mtrl_alpha.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_ic_menu_share_mtrl_alpha.png.flat deleted file mode 100644 index d730a08591dcc7e344802941bc707fe0e77b35c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 620 zcmZ>C3vUX+*u)SjG}oRM0r zUs9BqSDcn#lv}K8q@R|VlM1Bu4D}66lTs~HO^wYg%#tn5Eewp349yc04UAI_jZ+O$ z4U+VWfO=t0(alIH$kZ(}!RsWwg1mGFhRy&#cU~?jE}&O%(#Fkd0NH8J-#Pu6zF++>UUf7AA6 zyuW+st@z{L^?d)nv#*tzs&rFOx9LaE1YU*P6L!pune_K6|GrLfDZQMGJr`6Gg_~Ze zMCj=J(p>p^%ZB&0vbvM*Yu!|cv}(|4UgUDm{Nne9tz0XU_sjozuwYrB(cU|(b1o~K zDl{|nyR_apq>$&sm4eRyHlMdnW+;o);$AZI>1743>eh|EoeEN^EwPu4I{f$(JsoAN z{zflczvS0$>8NAgzRow)S|8V(IvM1!?I~L&%Ou}#bzg3X-+J}ywN_0|n@NHDb%pdP zo7gw_znpW-YA5TZv)?)wP22Hm(orrK|GoK(Qa;>}W>_D>xhVJqTVl8>OQD4JnzTIu z_KCKST3>Om7Sx~eqHX^!9mNiJ(e(^_0t`F+>pssZy%tm1{J%|}@y#Q{14C3=IMpE4AW6Rns2Ao4 z-HeoiOx-dQ9FEZ|$V+En=nU|4=jD>(0(yhj)59eQNK1e)2Mdt&s{2|Dq|SM|IEGX( zo;_=*-BKuX;NyAW)m1!3Q6-N{C%48PGnUXXSn9U$p>=I)www%g}N=m$#<(au4D+f@#$6HmP-?Z?rupA d{zC3&^Xl~)gVc~2&fn4 z2;Gd7f=t~q6C94wE67V{VCW3+bLZuf;sSbu*VDr#2uPcOFb4~eRP$LB2K4epPZ!6K z3dXlrnJ+{;GPphrzP&A%H;X?TNZo$BVw>fv+}qpUmSykp{FgGZ_Gx+h#m?#VN9rfq zoio+V=<{wWoFvS0SoEkMN7uuysT?e)3muE@DGKaS*1X2+UUN4|_11i1X6rm%SOFR8^1|JtI9@q zEljvGz3=X^0JoMymlBpt3|gb-mZo)dS;CV&-wz-D?RZ3!=ZJg7O}0yu=kdm^?{3}J zCC6VjcU6sRXkJB3JX>zE4F8vDfiBO|CrX};KAzjQ_;lf_Tvg+HDT&gLewQuMeDpoN zwmXXDur-I9Y+n8US1r!o7uO#@#gTe~DWQph0RWEsEVcju diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_ic_star_black_48dp.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_ic_star_black_48dp.png.flat deleted file mode 100644 index e6bae25e2c5bbe1f1b690bdf3c88cb8757d16e59..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 884 zcmZ>C3-DJNAwF)2AdGdaGvB(W$yDJL;G zJKn@1r9g;%0^Qb`dRrIdByp8`g-X_i77yh$%)Assm1ywMTvRE zY57ID#kxlNX_+~xKw8gG-@r5})iTx8*v!H#+0xv?z$nSkJTcM0IMvWN)gaX%NxulF z7v>1vjFf^*-7*s#j?pW~OJ`u{4DfU3<&xq8`heHd!zBnvdw?(p3y}Q(r1}g415>i6 zi(^OyCed51izYCMUyTpYZHfw! zxMI{Lwv{`IbE0QN%8pER$BV8fOg2d`owmKEII-x0vHWAp_d8jhf6qz#S#*x)bDjLg zh&T2dOILa9Je;ePV!5~{ps$HVYF4C&;aL}#N&Fm6`kqRO_C~SF6F-Q|d}k;a(0k*S z%ZogvZR>WtF>vcdUPO&XcV1>wUf#NqyS;TdGCQS)6TwSE) z5j;bYZQ1WL4R1fscVfSFQc5dF_o&nS4`=NZ-e)NHNBx@E@Orseb7+Y&4vw7F=P zz|nbuZSI=y6us^)Wntxv5@^*+T=pz{J(Hh5kgR=feYP3i1-<L zm_FmE=QOhvzgP{g^O5K8U2gDH-rHg8=D9G9Jt@1VTjvnZrI<9Hjay|+pHG-6w{f0R z=%vOpC2s%icAY=k`T4?`d6n|2+!8Jl&$+q_l@Eui3GAEfa5Sw&J?BWbmX+YDfWijl liu8*v%%4TOk0x#0@1J9~d-;{>YGA5k@O1TaS?83{1OTS6T;u=% diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_ic_star_half_black_16dp.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_ic_star_half_black_16dp.png.flat deleted file mode 100644 index f5fce66237286aec1e6d12b5b5563d44857274df..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 424 zcmZ>C3;dAVU={-dmr6=eVtHaxPO5%lQgVD|a(r<~Vo`iXVoq9o zQchxWcD$ikN`Vmj1jY}H2N+qDx)}9Ci&Kk=^|SIb@{05G^!3t<5>tS>lM|COQj7IV ziW2jR)AEaQi*=3k(=u~XfwZ2XzJX~{s%5IFv6+QgvZc9&fl-p7d19i0ajKzlszItj zl710TFU%#n87T#sx@9K#T%=c!m);rR=g!L|#Rc>VucwDg5RjGtVGb4`=~ef&7)bSa zx;TbZFrGcF8sW?+uYcR}vCQ2fmG`e&C;zyAE)yZB&ldQFh#gRji)476 zk;>Sh#9Ol|VfG@O9WU<%pLx2tc6-s8m^UGwA5P2(3#d$;yYp@FG5Y}K3-di^6!*Nh S1GC3~b@l$Zk4ot&7Qky@-@ zQk0lioR(jdTdZrOpO%@E3Z(T6^$kpuQY}+Wjm<2~k}b_G42+Tt%@Y$1j8hGbQw>rL zlJtv!dSNcn%}6Q8)Gaf?=OVp=y!6fhKX+a(DK4Nlcs)H_f`GIc2y?IiNj0BEVL-3* zd%8G=R4~3hYg`e*$iV(_b?$8MwM)0{y&CblY-Mi-=dl^lJ(k{c&J;=|cjw+d`P=_} z-v2tEy0o;-0^e8?IZs$Q8E>j7xsmm%K8lB{yPcl}0S#vv%0bS9~?`^onbV z@)==?mrs~U%|7eKSJs)ua7jh)jvZfoQ2x37hbw_fuxf7t+3zcsui2 zqW{zxlZCu5C7xz)4cgJbcvprY^wZ3l5|e!GwHkaS!b0>lnpaEQ$jP!^m{n&W?QDI~ vvvniy;oly{k$2oC$^W0xy~0$(*f^Wf(W=B=tTsgo7(xu5u6{1-oD!M<_J+sU diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_ic_star_half_black_48dp.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_ic_star_half_black_48dp.png.flat deleted file mode 100644 index 8598f3fa47cf97d838151458c615132ca043a4e2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 656 zcmZ>C3q2XUCgZq!b9TPhkAOcz}^bsf$rRv^ce>SU)R2Bd<6=PhT&+C@}@7J2^2qBeht+ zq$n}3I4!>@w^-LmKP@vS6-etD>Km9QrCO$%8k<>|C0m+X7#JlPnkOb27^fN9c1q=-}vEcxKZA$H@x9%}R^bbUE@!i5%HfGWn(?%WH?j zT^bT8uDk0u@Cuq*^kzp(Tvj-7Coa*k;MJ_}^FG+cKlt+IOmCB>ILJ=f>hM}Z_rhMW46enjRu`FES7tSCGxSAYRWhTdlEn*x87OrD$V!gM;L16h3)+UKcU4btJ zD_NTa+@lme6fR|LY7)y}Sj-v~#Ju#XLwVGKysW4NENFVdQ&MBdZ0RZyK B^5_5n diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_list_divider_mtrl_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_list_divider_mtrl_alpha.9.png.flat deleted file mode 100644 index e7f77a71772739e44c69847a9b7e1bcc8d15614f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 396 zcmZ>C3z{n!OsMN!#A6lGRRIHzspOIIbpQo>vUX+*u)SsM~oRM0r zUs9BqSDcn#lv}K8q@R|VlM1Bu4D}66lTs~HO^wYg%#tn5Eewp349yc04UAI_jZ+O$ z4U+VWfO=tW(alIH$kZ(}!RIDDOTB`;^v(c3cU~?jE}&OFVdQ&MBdZ0RU`RUVZ=o diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_list_focused_holo.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_list_focused_holo.9.png.flat deleted file mode 100644 index 1e7a2c7fe1f76e5b330955226c3bfd74bb0ce10e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 460 zcmZ>C3qi4~z#GStJ;h+8Fgii&Kk=^|SIb@{05G^!3t<5>tRWlM|COQj7IViW2jR z)AEaQi*=3k(=u~XfwZ2XzJX~{s%5IFv6+QgvZc9&fl-p7d19i0ajKzlszItjl710T zFU%FX87T#sx@9KVU885ISCE(98Q|y6%O%AH^a8J^hf5HU<^*95HX!+6BAWn^lE^FY z&jHdHU?x!HSipweKq@4!AS9WAiHTDI$k6~|bYK7xUATF;JWlnGa$= zx9sZ%iko}7IEF}EPByvst3-{N@xT!W76mUsZmD{0X6D27Y;0_9K%5_=_Sb#!My({5 h#T%oZ`$peqWKjIhc6^3Ynjz2#22WQ%mvv4FO#t-GdWrx5 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_list_longpressed_holo.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_list_longpressed_holo.9.png.flat deleted file mode 100644 index a0b0bf191fe1c29a440a8f18bd679155dedda0ec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 436 zcmZ>C3;d8{U={-dmr_bmVtHaxPO5%lQgVDwW^qY;PJUi`K~ZXP zacW9@Mt)Ad5c>qi4~z#GStJ;hx)}9Ci&Kk=^|SIb@{05G^!3t<5>tS>lM|COQj7IV ziW2jR)AEaQi*=3k(=u~XfwZ2XzJX~{s%5IFv6+QgvZc9&fl-p7d19i0ajKzlszItj zl0MKneV9vhGg1mNb<0d}yGYMcuOKhIGr-TCmrIHZ=oMa150@Yy%?ZLBY(VnCL^c5+ zC6QO)p97>Zz!{*3RkOb~kP68w2uWsOV&YT)ax{P#9T-3an1K|?XfS<-Vdfb^_yS+) yS)h7xPZ!4!iOb0;Gb*3)Ff$%F;=m#idIac1aVFfI diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_list_pressed_holo_dark.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_list_pressed_holo_dark.9.png.flat deleted file mode 100644 index 63ee8fcf84556a5321e7e77607983c5cb6e0ad62..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 436 zcmZ>C3;vKpU={-dmvTx`VtHaxPO5%lQgVDwW^qY;K~ZXPacW9@ zMt)9yd`eQmSRDsj-=bS+b?Mg@I9$p?PAWfpMy#ajHS8 zL6SbuPJNhDbTd*4GIh&L@Hk1&Qm-H{oq?eC34Yb z~b@l$Zk4pPZPSky@-@ zQk0lioR(jdTdZrOpO%@E3Z(T6^$kpuQY}+Wjm<2~k}b_G42+Tt%@Y$1j8hGbQw>rL zlJtR=>ciZkn~_qGsas}(&rN!kdIfpuodJICyj)UTK(Fw6dbk7uX-*L4U;&a|GtSKh zQWALu{y9Jz0~iBEp0s)10#YG)1tG}{OiY{#K#m3wqXPqo05gzc17a|3JagtuLimJf vY&uZAu&0Y-2*>s0Ihkh~*k(vbuq_o}=>5!aZ+*9v4aj6qS3j3^P6C3ds2LyJ?3iuJSdGxCb_^Yr!7ixN|S z1|=sZXQUSEmlP%D6{qDF8EApqylL@Lwy6&q*TjPQ)4p=vt&zi3j?DhL-WK$ z1LIUf<5YuGgCzYTpkA1xbTd*4GIh&Lh;p2srCvc^Is-#zfS)@rmlPM!i@cs5EbWyC6QO)p97@902(e}b_0-f)wHw+QXzQ-A;}C(Oq>cpjs_5;0|STv zH<021VmTm|ZvYY?32@su diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_list_selector_disabled_holo_light.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_list_selector_disabled_holo_light.9.png.flat deleted file mode 100644 index e910fbd8c0c15db50b5a1e804efcd318a40682db..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 480 zcmZ>C3KTmj;zU={-dmtIOyVtHaxPO5%lQgVDwW^qY;acWL#a!Gzs zd`f09NG2sdBR?k}D3_j5BE&v{@dM)lMivQ1rD=@%p~b01#rj$K8F|I|dHQQmSRDsj-=bS+b?Mg@I9$p?PAW zfpMy#ajHS8L6UwEP%q3?x)~`2nYv{r#JNt-Qm-H{y)(eiotI0B3+P2&PY;(MAT0{S z_8crga;c`bFOZVREAY<&(qI4$7cg5MNG{+yaTZ90{3v?tnt4E1#Nb6Mw<&;(=x06wB~VgLXD diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_menu_hardkey_panel_mtrl_mult.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_menu_hardkey_panel_mtrl_mult.9.png.flat deleted file mode 100644 index 0df1a3819d31549a27c4d9aa89fddc8c18f2fe3b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 980 zcmZ>C3QDS*wQckLVVp4K^Zfag>d`4nXN_J{x zd_iJfYEFD^NfD4J%_$LLpTPKm@c<)>1f$YKM*Yy@)S_bjto)3;;`}^)z4W5Q6rdr= ziOCtM#rh>hiFw6o`9-kGnK`LITF+45z%(h(0{V>C)59eQNGAZX z3I_|2yc6;LB#@HGEAY?Z0Wx41$YgMAigNf5l8lnO2BZY?3Vf1a@*o-nww^tb0;EFn z3PO?@n3y;ffE*1V1_BhN1`siRAQcG2AX*WKVQ~Pa{{sO`494!1^8rQ=6Q`$(V@Sl| zw=)d;ZW{==-k&gKZ^Oo;Ox0~mPNWvKiQIluThv>^STsRK)i+Efc!pB@5*`-KEy4$s zPfSP@|NrrPfN@LpoyT(jOHbJU`D8cozuz*S`%eni*wmihUO)YAy5=QU#}n3TDt6y~ z&Y(EC=H^ZdiA8Ix?(MW>b{%*meD;IeLe+X;q+-V4?4KK$_2)9PoD z!@qnd;Z7H|NfVkbE)9^lRzLaO)%4GgcPQm$%XzxUbb9FY#r#*^CB)+X;0Uw0T;-#m zPm}*myq=?2_xydl-G?*6{V^2}Tr?sVUX$DUthx*vSwA|oTa`7=K+^q;3R zuT}N`lO&D@(`z2}Zs(fl<#}Bxk7M3}LpP_?>?l~bw05dqu6UMSg-m0saC))t`JJb} zFIi=Ip6>?hjMQuj%$mipMT--+I4%-HueX* z?)`A%%H`cUgE`|=-jWGCy>qt~q<+5`b=BSXCol6rA9;C-9tmflO>7}8i+7xYh<6xp!k$@7hDznXh8_!P8S_PjsfHnU^R yGlpwj7v}QpT<8;IS-C3 z&^Xl~)gVc~2&fn49NmnRf=t~q69UfCv(zidOJ`u{4DfU3<&xq8`ij@n!zBnvCjhYl z2gsi;^4nd2ltf;Ee-00jfs7rSq8$DM#bg75!-14QUV%>%vOI|WU%L7ZkP68w2uWsO zV&YT)ax{P#2vC$7K*acgR3H$8Xhk4~g+G}74+Q99opJN0GB7X~db&7)Xof znJP?@6^=qRHz!&O?GgL0Im_{SQ^N_in&kB{3yWncd>1tDwdA~eyg{O1p<~y6e^-SC z8jWnO0ZdLOVo#)g>;JGleQAMAqiCInyHEQu4USpb8xG_PMoC3Q{q9kDlE5_UKsA$G zzq#=*7sZL9En@EHXGX_;>e}7EpRYbs_56pIho#?D9QDq#y!<$0v1R!CIGw!_`wqwc zv)H?Cc}#Epyn9B*Glja1xK?Oy`scLp@Wt<<2ixD7);^3AW31$HVU_8d7ngOYKY_(W zcK&vuNg^4AC12*O&aOJgR$n-uwRl?VkxQxB2k(TtFW4S)<&og58LhL{T#uY{;^IS# zQ1=HZC&Z?3mIiMT2yEBddu~;5*yLG@TBDhFx-qTOSpA06q?N5yC}Z=rWgUz+ zH6Ccm?7g$~*s_~TZclZ|JumwGCi};z-q*9ICMRo3-ZI(pgv&+tm9oO_WpQ5OlipnM zO1OT_eD~bL8|VJ--{Nek_w!!dihaF{>+&})on1DSOEZV<*IK4oa|2}m1U%3dxp3DY zR-bX(?uBW}{mTq@*)i40s)S3OJ$E`sSU}5pzVD%3{EyyBC8yQxSl@Zzu&r^i$w}LKTb}LSSt^$I@`YvLvo`6xpRLhx1&3z}?|qvz z%b9D=Eb*Qmo|uX!^7}ruuDAJgqP6j&m=0sC>zsJb ztjxW{v+(ufk3K%j4z*7F7$ve}QG@O!*9qKz*3EFUY+#5qn{#HayI#*T7e)OHJ@2he z4~(VR)2w9XzFpa$y@@%?`sGQPbQ9KVAztekZhmd_zh7bXY)eKyU-stfvz`P8b>_$Q zDl>*ojQubC*I>W$0|zFNa^}scOH0jV=h_u3x=v!^o;z*lChoolbLZFBT9f2HO|zNa zu_t diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_scrubber_control_off_mtrl_alpha.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_scrubber_control_off_mtrl_alpha.png.flat deleted file mode 100644 index e9b6900e1e28f10d3cc1ed0e0e4a99c50e22ed6b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 444 zcmZ>C3oB`sKU={-dmrhDiVtHaxPO5%lQgVE8a#3kgQfg6ra(-S( zQGQN*ep*_5Zb?y2d}2;PMxqe=1jY}H2N+qDCNb)V7N-^!>u2R>FcEzC8hvP zNlr}8NG;YcDN4*MPRlRKE!H*CPs_|n1=4zk`Ua*+sg|jx#%2~~$(H6821ZGS=81_0 z#;JzJsRpSAN%}=Vy)YN)W~3Bk>Xw-h<1)R1y!6fhKX+a(DK4Pbcs)H_f`GIT5F2o? z0Lg8OA3X$86FglULn;{GURo%4L_xsq;na{xoy!|fn7E6JI16`_2(%v9Gh6mZYEj33 zoB4IjJiE93$$h92{IW!A=4bO88hb>yr56<#7Z=y~OL{5`aXuNbI2eVk1Ypm7X dO*IUE``q_<8l5%*x{blp)z4*}Q$iDv2>^KYmYe_p diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_scrubber_control_to_pressed_mtrl_000.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_scrubber_control_to_pressed_mtrl_000.png.flat deleted file mode 100644 index a775b90ebfb0eadec8e23ce7fceb9619c13a960c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 448 zcmZ>C3{T&PXlRFDXjQD^ANV$}QG4(of6GNd?k+hWZAkNvW2prp9I#X33W376wL1 zhUSTh2F9s|#;FFW21)ur3-w{n(#=RI$kZ(}A=-I*1$pTV44naf?z~)5TtIK~dV077 z0cjx+=3oJme~!D|0aD$bE{-7;jJ=Z%@*Y;;ag{&Cm*ebyf-UvruFEab$^}a7FBYy$ zTDfV%|F0(%{vS7OJR!XB(#wz*AC(1Z${!aQ&Io7YeR!};+4?xI#)b{`8yyxI^oj^E zDjhOd*eIZQc}7`A$`!e4@u@pKT8la7%B`@TUtD{qlC3yC_XtqucRnH zC%z;KDVSOC*HuoRET{7;|InAj4Vpi8TCVpQ;UlAv+^_Yiu3dI_0o$H zQ-DS#Cnjg47VDQ3CFT{Ul*2&W#*&;X+1-I1Jk5b%T!ZiGYhk1OLGeYqa;J~ z#6$z*R72xbgH(egeV~QT!MhK zGzfFB07><`Hur$kbx#+^kP617R}SVLau8^J=>I8I^}Ytn<;g1xS5mtOE(n%wNSIHFr;sRl&($E@3G^xtovYQ)XVuZwoCxPB{=bKVcOJb&v4rQw!efnH?rboFyt=akR{ E0OH}sga7~l diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_scrubber_primary_mtrl_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_scrubber_primary_mtrl_alpha.9.png.flat deleted file mode 100644 index e3a3eeb3fdf6bddbd08feb0ebc4198f863cc370e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 444 zcmZ>C3oB-mpU={-dmqtoaVtHaxPO5%lQgVE8a#3kgQfg6rK~ZLI zVo_y$Zb?y2d}2;PMxqe=1jY}H2N+o-7?mb4>W3Dm78UDf}HPTPZ%t-~(dWQN2rb(%msiwwe7G}wo<`xDI^r@4@g2Amx%*5R%Nm#KNoq9;iv-05$EDT<` WEZm}AZdXBiJzf1=);T4B^Z@|K0BTnN diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_scrubber_track_mtrl_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_scrubber_track_mtrl_alpha.9.png.flat deleted file mode 100644 index c84e1cd3bf8d830022f6eed557059b5dff4fab1c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 428 zcmZ>C3-DJNAwF)2B|IJu}aDJiumzN9EIIXgbL zq$npoF{dCSQHXs4;|InAj4Tq2N_~v_p~b01#rj$K8F|I|dHQNR*)CJ9EwF)=f#GrvWAmj0UlTxDJYD@<);T3K F0RV7#W5NIc diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_spinner_mtrl_am_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_spinner_mtrl_am_alpha.9.png.flat deleted file mode 100644 index da985434cb870aa037355c42e9db96c4a9bee4ac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 572 zcmZ>C3~b@l$Zk4ot&7Qky@-@ zQk0lioR(jdTdZrOpO%@E3Z(T6^$kpuQY}+Wjm<2~k}b_G42+Tt%@Y$1j8hGbQw>rL zlJtv!dSNcn%}6Q8)Gaf??IJx(y@I^-&Hz7mUM?vvpf`9uJzRo-v@{T_aIgT$OCLLz z0V#>R0{C31fx<9qkd>{YEiL%R(?iaaekh@UV2et3Q&J?Vsb`m zu|805UU6D}QEsuWk$zfcPAZVrGt@UQO-i*)H8nP~FiW;Hw=ghDGBi(2G%!vzG)^^0 zHAvDg0_ugiMK>d*AXB%@1fQGqEcFWV(mMnE+tRT;*nHj5gkS&hO!Qnt!_@*g7thXM%{Ga;F`~RK|LWNxTJW$vceB9eCEIwB`s?-O2^& zy3AtY4icQ+JmOPLx)hF0yU&wZS=Ml6!SZeM-i7Y1ICC`nx9SSrnR5b+J&!Ras+{HU zjl0bi#U5;1ksxQ9yX*EcwO!v0N|$?{pQ7?|i9Y|C<$kq1llrRG&vP?(yVTz2Ti$Az z;JfMuv+!(@Y>8hFqxpjm?=_$GD64OJpY>Lm=yN9$4=C3l*2&W#*&;X+1-I1Jk5b%T!ZiGYhk1OLGeYqa;J~#6$z*R72xb zgH(eg{UV@Vm}7J^QVKG4%S`Y(O3zZSATOPPp)C3lFzsbEZ6Abw-RdyNIQpS7AK+8S3VNO&o*I4MYUNlG*+vNSD}Xi|9b zZPmYZq z@cx%g*X&LReXlwfc+c;xrqZ4*p%eCfHFSS`hIhJtrpYm{kCl?XHi@YrKesL@sd~g> zbwI~nIzH+)Gt;I&zJK^nChRQ;c)g&(^WF^J|2!XZJlAuy0X@p#>FVdQ&MBdZfdK%m Cxx9S< diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_text_select_handle_left_mtrl_light.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_text_select_handle_left_mtrl_light.png.flat deleted file mode 100644 index 2d5699e354b90248d17ac5cfff110c3c78a0c422..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 528 zcmZ>C3ds2LyJ?3iuJSdGxCb_^Yr!7ixPo4 z^pg{lGg6E7ONtWniqrCoa*K71^wTnPQh~Idp}v7>QmSRDsj-=bS+b?Mg@I9$p?PAW zfpMy#ajHS8L6UwEP%q3;x)~`2nYv{rL^@8dATOPPp)oN?Z##?5zV@0$E%G!067d)k`|Q9#*pA zkEwoT9(&;yd*q|I^OmP>ue5b-nZAwd(ssLN8FO|%{G{4@EJD*xe{rY!njWqFVpIJ5 z=Qyy>c$)s$JGC3L({AXQUSEmlP%D6{qDF8EApqylL@Lwy6&q*TjPQ)4p=vt&zi3j?DhL-WK$ z1LIUf<5YuGgCzYTpkA1(bTd*4GIh&Lh;^M_L0)=ifS)@rmlPM!d%T_=ER~;1IvgqQAFy>RcTsLN2ynkV>aKJS=Nt-OkziNxt*ln73_#sn3*on`(W5qc1CwgvJ?l9%4 zYr$@o9aA49a(+-a7%lX`w<%xcz;%{*uLgaNxTy^5h3;rFzEj%a#uVeeVKK{%PTtwZ zOcx`KBxO_t_?|648prrTVUyAHhx;#V?0lj5>$HvBcgO8&3$|-a_+DXi&|%I(Pp|M< z|6Uwn_|mdF*!4%e$s%T1_y1F?Z1P+cGvZixbR3#^b;a4)+*uBPGniv<-gaPK!MRhh fd(vlHhO19jibwddO9I20!PC{xWt~$(69WSPn7j6W diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_text_select_handle_middle_mtrl_light.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_text_select_handle_middle_mtrl_light.png.flat deleted file mode 100644 index fa3d260b65dadacd6a46ce3c4d39e4eb54804004..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 648 zcmZ>C3qi4~z#GS(K(T>W3Dm78UDfz5QI<`t*q7v&b~8tJEH=A;5?Jwts1)1*|(R8wO!3$tWPa|;8bBt!GW zL<8egL*rC~RD&e_BA{NFvvf033Nm%eOo(=#UO`?u14CzkpF1y?6c^Boyq+E|K|op# zh*db)faJW3U75gO3HEex45?r|dfj{s*!m;RdZRfaFTAxQE3`LamGJx6@ls0e4XWn*TUctHZ eqSmEbHVjYynFpn=s*DGQGJ~h9pUXO@geCweS^6^o diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_text_select_handle_right_mtrl_dark.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_text_select_handle_right_mtrl_dark.png.flat deleted file mode 100644 index 256730f2175aaaf2a6140ff891c215a2aeed5946..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 512 zcmZ>C3ds2LyJ?3iuJSdGxCb_^Yr!7ixPo4 z^pg{lGg6E7ONtWniqrCoa*K71^wTnPQh~Idp}v7>QmSRDsj-=bS+b?Mg@I9$p?PAW zfpMy#ajHS8L6UwEP%q3;x)~`2nYv{rL^@8dATOPPp)<8GJD<)(_avyKouuF_HQPe47sz8`pi>Y9e zCr6^HlMbiinu!A5GX=bR1+rTdSQI%NIh<_fRy1ZLbll{2d3ZFtu_K}5!OKTi9XYPv zp6&8X`zn**mUHfR{;wBpikJRi?NR?h;xXG|E0+WPJT^>n$(NpZbA0`5%E&*-j$x(! r4W)+)i>GbzDU}1C3D4WY5r6{pHF)1fiKQSpez9hAxB)&K`CpEbwJ|i(N zB_}n$C^J2yBtEyKC?`G##1vwm!1#gj03(aiG)Dc<;?$yI{jB_qyyE;keZBOeM4%S^ zq+bNo3v-ojMoK}ZZkY+OuG1^XOYaQubLZuf;sSb;*VDr#2uM2tu_6Z> zkjyoyl>t&`JzX3_Dj1U%h^SmCW4^UfSgONOf$Oj~qvq5AP7enzz6lL2UJj=`91gux zu~mD1?~CuH>rc!-O#S`u`K+)l6^CmWI<9w4+ggyzu{wLAK$v1nC}(1-Q-rbNwHARe zr6aQh4$b1&IE{1THI9w098LmF0xb$hZg+}zu(d_(aS(~y6V}1e#xYMXPPQdr?_ST8 zeL-sl9ADQQv8`V#@aI;;eaBxDj?Z9}5bb|ZpYlMEL1MF7z0-=v*IPa+ykwtXRnyJV o;1hN2R`=b6iC3S&PXlRFDXjQD^ANV$}QG4(of6GNd?k+hWZAkNvW2prp9I#X33W376wL1hUSTh z2F9s|#;FFW21)uwK)o<0>1L!9Wa^fg5aBdEOTB`;bOwgb06%wLE-5ac_jo-$T!MhK zFc1rHumH)pvpp|?ltf;Ee-4nw0RMp^H)JJJfRsgEK}a$K6BCmHkfQ;_Xn@TCApo)f z1VEO803*+jH(!CYq^FBxh{pNk1PNAU5d)(?>TZ(4h06q2@-UReFtSSiXz2l|_H^}g LS?83{#J~UmOVDQ% diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_textfield_default_mtrl_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_textfield_default_mtrl_alpha.9.png.flat deleted file mode 100644 index 43a63f4830606973c6550905e4da7774a47ce0a9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 432 zcmZ>C3CKAqkd>{YEiL%R(?iaaekh@UV2et3eb?` z#N>?BV*Qe$#Ju9P{G!}qT_gRp%$!spt!JojV49R_nQCfmW?`0WX>MU)lw@e0m}p>} zYG|BlkZO>mUj)<(bC7OENnF&FM=~?O(ERLtq=kW4 zfP)1{#+~hX38W#Cb;uH;{73D+ozuU}9oX0CF^d7!9x)AOwV< zOpv8801j`~i(Ws00^*)7jv*T7lM^IZl|>AU{;0c23Ww^lGL-Q#GMk*c(ht((>FVdQ I&MBb@0IoV?IRF3v diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_textfield_search_activated_mtrl_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_abc_textfield_search_activated_mtrl_alpha.9.png.flat deleted file mode 100644 index d8d64db33fb0424176f4d8c0a893ec23cdc2d32c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 436 zcmZ>C3qi4~z#GStJ;hW-;oA7N-^!>u2R>FcEzC8hvPOHNGANG;YcDN4*MPRlRKE!H*CPs_|n1=4zk`Ua*+sg|jx#%2~~$(H68 z21ZGS=81_0#;JzJsRpSAN%}=Vy)c*QW~3Bk>Xw-h??OFGy@I^-&Hz7mUM?vvpjUZ4 zJzRo-v=9)paC3W3Dm78UDf}HPTPZ%t-~(dWQN2rb(%msiwwe7G}wo<`xD< zNrvW$i3Y~0hQ_G|sRl{C3;vK}U={-dmvTx`VtHaxPO5%heo1CpW^!UlW`16LQhIz& zetCReeo<~>ju86<#t)1K7+EA3mAV=ALyJ?3iuJSdGxCb_^Yr!7ixN|S+LIHLGg6E7 zONtWniqnAFigk_j(=u~XfwZ2XzNuMavRRsCvbkZ3r9p~Gnn|*$d1|6big8-1v6*?I zk$w?SFU%>r87T#sx@9JKoTO)|SCE&^z|a}s=g!L|#Rc>ZucwDg5Rm2pVGfZ0ishKC zfs{mEfqxE&j}HC=1#ZYnqyVXqyn>Kq1|}v>1t3QQh|z%oM1T!QaRM=nhJ`KTe|~;` zY}jY+pZ!4f;+`&!Asp9}r=%q|G}`OLO9(V{CN8jKF!;oznYhUM1;}(yS3j3^P6C3}8CMT9;=I6yHrN`&w zm&X?rr4|>brUd*AXB%@1fQGqEcFWV(mMnE+C3ju86<#t)1K7+EA3mD(BgLyJ?3iuJSdGxCb_^Yr!7ixN|ST9Xr#Gg6E7ONtWn ziqnAFigk_j(=u~XfwZ2XzNuMavRRsCvbkZ3r9p~Gnn|*$d1|6big8-1v6*?Ik$w?S zFU%Rb87T#sx@9IfoTF!{SCE&^z|a}s=g!L|#Rc>RucwDg5Rm2pVGfYLishKCfs{mE zfqxE&j}HC=1#ZYnqyVXqyn>Kq1|}v>1t3QQh|z%oM1T!QaRM=nhJ`8Pe+dZ*Y*;F1 z%^IM3aZeY=5RU7~A&H3%jrKb65&{jKi3=gTe~DWM4fS43l) diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_notification_bg_normal_pressed.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_notification_bg_normal_pressed.9.png.flat deleted file mode 100644 index 7e6a5ddeaca76d959b8db5569998d533461db917..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 464 zcmZ>C3PJBU8YH@LDiV*t*#t)1K7+EA3mHHX=LyJ?3iuJSdGxCb_^Yr!7ixN|SMkFUD zXQUSEmlP%D6{i8U7wa17r)B1(0%<)%eN(f6yvm1 zV>9zaBYmJv`Y`9{W~3Bk>Xw-haF(8>UO`?u14CzkpF1y?6c^B2yq+E|K|q=ZggKai z#}J9j$tF6ll2TJs5AfFg|9AG&*Vo}}P7R%n90sd8y1E!D YUD?(CmEC;{vdYud&t;ucLKBb)0Lip`Pyhe` diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_notify_panel_notification_icon_bg.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-hdpi-v4_notify_panel_notification_icon_bg.png.flat deleted file mode 100644 index 143d709c6d7c0b8512df58d345e65db766f8c12a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 344 zcmZ>C3n8m=rrIk{YSe}@ald7MWUy_+t8DEf?mzom~=42)( zmSpDV#b+i1iKKKP_6dw17!NSAC{1A04=qkDD%Q`+&&Vsz&(qgSFG@@SnvtBCoRM0r zUs9BqSDcn#lv}K8q@R|VlM1Bu4E0UT5|ho+ER)R*Q!EWqOwvq}P0dpiO;U{0QjN{b z6OHtXfO=u>(alIH$kZ(}A?z-_g1q$306%wLE-5acw|G50T!Mf!9|&_W0m%tkyV`)1 zk*AAeh{pM3fg=n;Zr37MB|AdcRe(hMB9Z-8EkRAM7I<|AvIluBu`0>$WfQAA&cIOC XWWc)Zd5j29H-o3EpUXO@geC?6nYL!F diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-ldrtl-hdpi-v17_abc_ic_menu_copy_mtrl_am_alpha.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-ldrtl-hdpi-v17_abc_ic_menu_copy_mtrl_am_alpha.png.flat deleted file mode 100644 index 5300f773920970d87b8691fd18704d824c6782ee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 440 zcmZ>C3M=;ovpmE`DVq!eW8mKmB8aGhR3UOGc(fS)@rmlPM!YrLKwEi>q@cmdKI;Vst1^|M)mb3r> diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-ldrtl-hdpi-v17_abc_ic_menu_cut_mtrl_alpha.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-ldrtl-hdpi-v17_abc_ic_menu_cut_mtrl_alpha.png.flat deleted file mode 100644 index 00a037600daf2d4ccf4108745356be05d03118ea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 632 zcmZ>C3az<*g zeo0YcUU6D}QEsuWk$zfcPAZVrGt@UQO-i*)H8nP~FiW;Hw=ghDGBi(2G%!vzG)^^0 zHAvDg0_uf1MK>pBc&iyx6IHSkIVE5^3oYP1N_{1xum#&-r@E1a0vp^Dj>|k z0wldT1B8J=5bo*X7*fG__nK>&w4(sSg(C-h3&qa`)=XJ*^pcrM1gpNlxx_O$@hUn0 z9@d@D&G_09yjAd@Wbd*EGv-hEZ&wm^bc*@C8DXVW`X!;(Pqr%0{4Az$WD-d$4W}%NYrgoQhGkFZLX)k0$ASW8 z&0<;mVGrZ7Bn@9%#@SKFda`aXOy%$j%4I*=beYjB;IX^W^I+9WY+H_=5uSW)uh~kO z=_ekBoVlPEwB>QTab!TkyWO)BCIv{_l*pHKIpr3XELF^8tBMRbvgNMY5%0}rYiD0C zGHbi^{hKfQ(OKSoPp6&ebzZUgr|WNtoE4HrOLAnle7b$YWQFV6@_iY}(wyhp4^-8y zuAScyC3D?cNzI6qHcFTE%+1*ktcF*zf( zSihtwF|Rl+zbLm@*GNAtGba^D>lx}Bm?ouKrkWa?S(qhTnp+qcB^jD0CK?#08XBh> zq#7jY7XkIc+@hP4QdE+on~_qGsas}fj@xN^mU;zw=|F#U2Kc%2a!GLknY^AJEwVcJ z%g(VyHW+SF5s6gPHgIA)!4}9>^eE6pp~Z6aa<$2~BI`sM zcQ9*LhgPrtnR+_p`-6)I4?cdA8+%-C&D!a%iC_Df6z|m8Hta|gn0Y3?fW2tvM9%%c Ts@{WK?dj_0vd$@?3CIKh3(Te$ diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-ldrtl-mdpi-v17_abc_ic_menu_copy_mtrl_am_alpha.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-ldrtl-mdpi-v17_abc_ic_menu_copy_mtrl_am_alpha.png.flat deleted file mode 100644 index e21c5acc2ffbee2ec47b337692ed7b03d407f3a9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 368 zcmZ>C3QmSRDsj-=bS+b?Mg@I9$p?PAWfpMy# zajHS8L6UwEP%q3mx;ZIDB{{meDFvCjWrpSiT&Gu%m(I``;OEZECB+5w8n35^OAwHj z0AUUmAn8^2wHQdbdAc};R4^tlkoa?)HSQn3$^ynC38EApqylL@Lwy6&q*TjPQ)4p=vt&zi3j?DhL-WK$1LIUf<5YuG zgCzYTpkA0$baPUQN^*2_QwlP5%M8u&xJ<7gFP)(?z|WnRONtBVC0!3YcY^I;_2cTQgQ3(Wk;{W4iZNT`7f&NY!Km(l-b*#IqBX4X~$QgYbGqYJzqc~ z&9J3Yx_0&P$A8W5@2UKeZ~4MEt$Dc!o5P9Md5iW<6;vFQGSr h`Z6w0`{!ogajx{^UiR&#K>sj!y85}Sb4q9eG67)pxMTnT diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-ldrtl-mdpi-v17_abc_spinner_mtrl_am_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-ldrtl-mdpi-v17_abc_spinner_mtrl_am_alpha.9.png.flat deleted file mode 100644 index 431a008450f50d440ce28723ef7df427a41bb21d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 556 zcmZ>C3D?cNzI6qHcFTE%+1*ktcF*zf( zSihtwF|Rl+zbLm@*GNAtGba^D>lx}Bm?ouKrkWa?S(qhTnp+qcB^jD0CK?#08XBh> zq#7jY7XkIc+@hP4QdE+oo10RQsas}fj@xN^mU;zw=|F#U2Kc%2a!GLknY^AJEC3M=;ovpmE`DFWTX^i>XsRr6L6khL0)=ifS)@rmlPM!YrLKwEFMGaQgQ3;^^Ked40v2F>Im=I+bZ6Du&h3lDeEb-qtHA34-P?# zAOBC>&gguSanC--hSQrGC+;(5)M;pHbG=i`q99_0KJ2uJXtG{}-VA=kF|8LkfzHphjwl6dV=m-W+S3j3^ JP6C3qfaw6EpwdJ}{m|mnqGJ85{EWQf{5*ZV^rFNRp!Vd%Y!B$Tf$B+ufx6@<0qyhz6e`|KtUtHrH-IC)Rm_BXte7{dp0`*ZJ4PSFi z@|`iW@PzZUhYoM_dBwT9RK&Kw)--s&XKI1nj+oc;{N{cA-#tZFeV*6+8-^+u{XXn) z^K0bLxDotcc*4S|6K^a#*SP1sFaESQGo+Xu_#FB7a{K<>d_C|xp;yRW^ zdbQ`<9G~o(c0lJ9S9U|M!K1qj=e_)s9=k8mx>piovnTBd!;Ftn@^=_M->d(^^rrsp z@`#4o;(Lp?KIFFlDSEN{O!rSd-QD7@_kVBi=!pxdjNQ*@P&M)M!Jj(&Z4DNBHXD|& z61SXxX6upi)Nero*8dm(pSxh?tiHAG_WQPNxw0kkikS611{2l?Yx|0B8Jo^MA-MDO z`(If<@BVsSJ-=HaZA-?=U-KUQXGl!_u5@4h3irOM>WRG(g&V6TUa!4&#}Y`LXSlqd b(d+f}iHf~-_ki)p;OXk;vd$@?iGcwC=a?&f diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-ldrtl-xhdpi-v17_abc_spinner_mtrl_am_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-ldrtl-xhdpi-v17_abc_spinner_mtrl_am_alpha.9.png.flat deleted file mode 100644 index 7e8ecef791db72683e9e9801c893c2ebccc4bc35..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 656 zcmZ>C322#x{qLXaR3a4Dq}C6*^9<)rE-CMCxg7i8w;r545KmK5d0 zC+5Z{<`iTk3UMkhO<+90bbwJ%f>CJ_qkd>{YEiL%R(?iaaekh@UV2et3Q&J?Vsb`m zv3^NWVqS4teo=0*u91FPW=<-Q)-%*MFilFeOf@w&voK4xG`BD?N-{K0Of)b~H8f5& zNHs{(F9Pa?xkWc8rKluFw<05@AXB%@&>Xkh^epuX^3oX?Is^RNdAX#xfL`MD^l%9R z(keh~z`+6}FZ&7115y%s1^zjLK!z|7^8&FL5QD&fAZ`wRcLhiV;+hM9c1IT*e>EamTas2I+y}XAE1l;x? z?&#`jYU^V)Vlp;hEq~X4=l?@muuZ z$`o4$^)7SMNiOk8$5=U79voUDS1bKXsMw~_;piV{-^Ec38#*$r{yr<*mZp@`YyAIe r^P1?ncRs8*6|{evkJ{v)((lw``C55gJvV}U@9FC2vd$@?3CIKhP29o~ diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-ldrtl-xxhdpi-v17_abc_ic_menu_copy_mtrl_am_alpha.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-ldrtl-xxhdpi-v17_abc_ic_menu_copy_mtrl_am_alpha.png.flat deleted file mode 100644 index 3dd4f54bc3a59830c228e6570e22d7c94f80b027..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 504 zcmZ>C3l*2&W#*&;X+1-I1Jk5b%T!ZiGYhk1OLGeYqa;J~#6$z*R72xb zgH(eg{UV@Vm~(VG=7*cWT?JaA*W&;7&iy>{MEUBGh9kHK+nUd5!I^Hc?DtBxW z>-%$Teh*jL=o?8l{&9@UEpcgLKCxAPD)Wh%BA=KX&+uM(%698h#P47x&MzJTj)zYi z{K}^mbt-#77wi2nyRv|UWBaFG;#%byoXyI+By&?!*`<;Q$K^HGqZJxiggj7*7nTb? zbEr&kVB%Dnz_0Q5dXwmt$;&QsbuC%Bv56`EPqfCH@6P$APe*sgQu&X%Q~loCID38u_yol diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-ldrtl-xxhdpi-v17_abc_ic_menu_cut_mtrl_alpha.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-ldrtl-xxhdpi-v17_abc_ic_menu_cut_mtrl_alpha.png.flat deleted file mode 100644 index ac92a1ea0efef5cc1a0a8b943af695c11a15e4ce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 944 zcmZ>C3KgG^v11DA42QDS*wQckLVVp4K^W^#OPYF=r4a%o9? zZb?y2d}2;PMxqd>0@DP>2h0Z;1(hZ->W3Dm78UDfz5QI<`t*q7v&b~8tJEH=A;5?Jwts1)1*|(R8wO!3$tWPa|;8bBt!GWL<8egL*rC~ zRD&e_BA{NFQ*?7uib`^HD=IQl3Nm%e49)SlO|Kv?9q5(L06%wLE-5Y`lh@P3B?w4+ zfG`IOko^Co`V0dDQ-`OEV@L(#+Z(P)!UY0H6T>XtypDZbC-8@3$8NW6KiJB5GoDK< z=(2XHw+Q~J?p)FQ{Oq!O>nD{x<9)$X;sgj!Kc4s>hv?~*-uUIb9j8@o69XB~MnJ!;|t2g}g5^zg#kjTk27>lIQmg zKK}cThWvLI^W4>w8vjYR?DzgF6PL6`aQR4m`1Ntm;Z65|iUnEDh1QBwR4WKntnSx zYw`OlGvy!IEU!N`XPIr<$@3;>P8u||#ypc#<+}4oDf?xQO|ubiQQg6XGdQ1dC@>!> zc*KA7$7jv9;AaBt8m=-k1Z6C~yxhqw_&tw>y|1R~Ux0?k1BaQ)GK+dtwVPS`Sm%nI z-}t0t!nui_M#nwlm^kO~+|Hilwt3ELn&*!#cb7n&Gke zwX##T_8I=;vRzr)^U=Lf`}`6h&n;anbYU{jlN&kC3QmSRDsj-=bS+b?Mg@I9$p?PAWfpMy#ajHS8 zL6UwEP%q3ax;ZIDB{{kk6&Wc7nYv|$=C~cFXQ@|^m(I``;OEZECB+5unx}_L5Rf(l zVh;`$ASs@5?m3W>$Sd&AkpePgfLIiW6@VB7{sXb}f6Fi+6_8gDlFY!w!lnS^XaF$~ z7(gfpX#t@?Vjv4ZfE9?HfY<}XfdWvN!$Io#IG`M3h^LEVNW|f{Q*84NIS9DzH|=v! zT2$tFob^(1=M%m!6DKLfPU+LWa3MG#SS8#czdk)>$~SV%XyVFRxJH|#35Ws z$L2_7*bJ9^TQ<%MleyL{YtqhPICA8`gC$o(Ruq@IG4!mMes8Vpt`1J&Me$*4OLe2f s15)??u8MOKk5SQvc>nMZ;~J(%hq-6o$Y)gp1-7TFpUXO@geD*p0J>}Y0ssI2 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-ldrtl-xxxhdpi-v17_abc_ic_menu_copy_mtrl_am_alpha.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-ldrtl-xxxhdpi-v17_abc_ic_menu_copy_mtrl_am_alpha.png.flat deleted file mode 100644 index 0563a9a52d9caeafeb7728c6502c8487898b041f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 572 zcmZ>C3vUX+*uG$J`M zIU}`LzoaNJuQ)BgD7RSGNIxwzClyHR8R{FDCZ$@Yni`u~m?c}9TNoH68JZ_18W^V< z8mAhh8YJl#0rkS1qnndbRFb1xQBjeRQjn=zW@t{pfqDgb=?n~=0eukm_% zxC8;|1Q6z60g@gQ_iqLU2al(VV@L(#+dCV34><_9B`!LAl;NGI!L)44g|C^O_`PYU zoo;Q@TfSx2_kUdbGSqJ|_xd}0W7$xyZLD0YrLf?T%XK4$2kq-}8GP0G--Qqx__Eu>N7p8qbmZkakF*fi%Jk>5G%C@U^U#dmn diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-ldrtl-xxxhdpi-v17_abc_ic_menu_cut_mtrl_alpha.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-ldrtl-xxxhdpi-v17_abc_ic_menu_cut_mtrl_alpha.png.flat deleted file mode 100644 index ace918f0216e69628fbaf92036f14cf50a5c05e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1144 zcmZ>C3nV~rz$LSU1r33vF;OEZECB+5w6|bjGfMEgSZ`YJguE*L(v<=Mi}b3PlVxFY|5kMlOJoG`TXus_Z)U5 zpL>>_Ggfqhz`}0HGL1sVW;XFD8b;pcowwB;uS`y!Ep>Lsk`o^ui+OBr^VXJHbNOQg z>n52*=b3YQ8=SM}m>rjYE)!k%$tXfWs#WLto!0m#O)QH7Jc>`mYF-vp5NJH4^*!;f z+XF?Bwt|nvXPA_ico-hCN&RCYu}$!Tw#bJdb^l8@JdKWv#&wA?6}9@Unh|4ovE=hq z|A&+ExEVJdGKu@txVyMw=2ig#Z4m=YMadnrm-KjEbaGfz&~P&8^xH}wFEOU1RxY*0 zy4&3ic5VPF+c9HFbl!4<%m|JS(REvys(_NoP3tFwB+5@-I_);M;=fK;F6kL_KIs&g zpEOjn{>G%$>bXaU{oS*VM#=gMf=&b+KJv8m@>$MTGp@YYBz{5jO{0I}&Cjl0lb&#Y+XNB8`&db{HB>+`SsEcQ7ZSihiOU-W`J^B1OzdonK^yT5e0 z+&+!_Uo{>(-#@Evdn!Ei)Q=1GpCi`?IY`RyyW}swdqJ?kk?ju_yE(|mFHq>pKiK8q zAQ!&?XiC_GW7{7DXE6SBKFrSD`dsHzul%2f@g4gnyqftuthM%E+iUKZ@;C1#H*U}u zQL3w8J-u(jzs8@kVlA(^H6Q;L4fxWU^6@X%s(llFUB4F1BT}mvTI1|^TRiChwZH4$ z1C^8)t$f4%QlB?}OReJHg-B)C3CJ-qkd>{YEiL%R(?iaaekh@UV2et3Q&J?Vsb`m zv3^NWVqS4teo=0*u91FPW=<-Q)-%*MFilFeOf@w&voK4xG`BD?N-{K0Of)b~H8f5& zNHs{(F9Pa?xkWc8rKluFx1ypVBc&iyx6IHSx9jvQ^$PORI|KaOdAX#xfL`MD^l%9R z(jGvZz`+6}MWp{s2T~Gw1^zh-K!ys41H{@u37yt%pKkVtEDfj)NP&hBXYLH;llrdUEgOu;FkH$_8e+p0@JON zm&|Gc7TwD6TYKb@|b4`XqCNd*bfr%boFyt=akR{WC8%!8`LEL diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_ab_share_pack_mtrl_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_ab_share_pack_mtrl_alpha.9.png.flat deleted file mode 100644 index ebc20349733caed1e88a3481082de350b5047ec4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 500 zcmZ>C3QmSRDsj-=bS+b?Mg@I9$p?PAWfpMy#ajHS8 zL6UwEP%q3ey16L@nYv{rcpar@saKGf&cM(a;OEZECB+5w7O$s=OAwG20AUUmAi4FI z`70nLkyqfK1Eev41W;u1*2JekswA%C3;vL!U={-dmugB;VtHaxPO5%lQgVD!NnU(%Mrv|)d`W(M zeqMZTNl{L`fq{V#`vk@Xj0YH5l)4%9LyJ?3iuJSdGxCb_^Yr!7ixN|S+LIH38jJNy ziW2jR)AEaQi*=3k(=u~XfwZ2XzJX~{s%5IFv6+QgvZc9&fl-p7d19i0ajKzlszItj zl710TFU%>rxhVyix@9JKoupTgm(IY@8Q|y6%O%AH^bW75hf5HURsdlR79e@EcvC%) zn(OJ}7*fIb_KM*;CPM+1i|OhLja$C4J_wjIe~LsU-+}WNH}J{)Tg#_ARjpuqOS93* zmQ_AquC{DWo4nle_QFRGRe2_+aOm@Y(&qA;XV-Qj`A3D-!Y577a(C>^IQdiD{BZPd z-5WfK&L{7;Cf*iqxez#YeMpJov!-vKo60!;O-%SVaoYY*OMJ@1V}E;ZaiK6T-G@yG%+v$0MzuMkpKVy diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_btn_check_to_on_mtrl_015.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_btn_check_to_on_mtrl_015.png.flat deleted file mode 100644 index ac69de471225fba78784c5a8477bb39e42d3dedf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 552 zcmZ>C3vUX+*u)SjFO)L5)v zQk0lioR(jdTdZrOpO%@E3Z(T6^$kpuQY}+Wjm<2~k}b_G42+Tt%@Y$1j8hGbQw>rL zlJtv!dSOn{%}puD)Gaf?>mJ(&LU&Qni_s;uIIZoRhkr zwYC49zdtdZFf_hST{UtdoW?c zm(#tb0WFNC{CA%*Z{m=3a<=7Pkslelb30qjX8f;t6Y!fHAf3Mv)O@)6`<~GSR`7ne=8C&X<-HGU` t<`H_bz4)KQN%_p5&ZhNi>R-#hc`hC4$$a-QFlZP&UHx3vIVCg!nE)oY$q4`e diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_btn_radio_to_on_mtrl_000.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_btn_radio_to_on_mtrl_000.png.flat deleted file mode 100644 index a9c69bf56b5e46b575a66adcc1f4676ba7a89c25..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 552 zcmZ>C3qns<4f}6 z^Yh|!ONw&h4Gau~*e5V9U_8LcqSVc(A6lGRRIHzspOIIbpQo>v4%7hDo}8GRky@-@ zQk0lioR(jdTdZrOpO%@E3Z(T6^$kpuQY}+Wjm<2~k}b_G42+Tt%@Y$1j8hGbQw>rL zlJtv!dSOn{%}puD)Gaf?>m;0swFZNMF)%_=b!{>P2O*&eQ1 zBmDT7_q6vFhkqRTA+XHnOkSreQ{Rk&hn>9qhum(aKI;3h*^ybs;NHvht#NA#3qnne zE+qEYFu7)UI2k|fkTtXl4>RBYNOUp#JCFOTlNKCb5^+^p^WPui&NRJ(Z*QtKzOwmA z{I0rr(^gINNfh%;@t)kjrk1;pE;;2eOL_}W&zje=R=d+u7W@@&F5o^mUE*KQ!)6hi vQwL9r>^b+aQAj3p;X)~y*AwMW=N=bt2`*e1#P=r?7&;7|u6{1-oD!MC3qns<4f}6 z^Yh|!ONw&h4Gc|%*e5V9U_8LcqSVc(A6lGRRIHzspOIIbpQo>v4%7hDo}8GRky@-@ zQk0lioR(jdTdZrOpO%@E3Z(T6^$kpuQY}+Wjm<2~k}b_G42+Tt%@Y$1j8hGbQw>rL zlJtv!dSOn{%}puD)Gaf?>mG}7`Mlw$K zYToDN#Qv{UdYs?B%*#hL;@9rWD(kdEnLTQ~?#TCcm(IE{t7vYMj9KGj;r}l_2u>CK zawd*>v(Y<#KgTt!tQ(eVmagC}IqivJwEtT3xZ=;@?KkU zDE_}_8tXcb^%V;5*x+9c~dmc`%FnsKgBI_s@vpHtJdAF(lcGD b70e7C9QzduWS6`Hh8}~btDnm{r-UW|n%LNh diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_btn_switch_to_on_mtrl_00001.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_btn_switch_to_on_mtrl_00001.9.png.flat deleted file mode 100644 index 767bacfe6ed6e2019cce22ee12d738c8899aeda0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 992 zcmZ>C3fRROlQE39BerR!OQL%njenwt#exANwdQoBu(2V57 z*?VV1f-=wn1cmK zs^7J_2c#tO3jA|Gd}Qp{6y^9IC?@r@G73luzU}wA1NE&>R5cCu>br>W1-5fezHa33P}7C! z!{(^Jf1WMw`MBPCuf>#Zo%!pPeHu4Z#3a{8{1O1udlAG z3|=3&^5Hhdg(np+Ioy)&dv!IlCgAc4zrD%T%ub)z2p))aUiquzlSAm!SmmQ%wI8Nk ztm56dWQxR^{gFN!8&2NQUN?*7%y+?t1~tufX@1fTN)HQ`Z8);VqfTPch7t?q#z{=P z0V_{h9CBD2qJN@d>9j}HU%NLm?J;u^5lOGUwD<#?_vpK!irY$M`X`C6Gvbyuqv&*e>r4N2N$+z;}ujA4Qd#gUBuwO1#wyfV6 z;Pf@)?okhS={4K$RY}Vz$J#`>mo79(2z;IDvv%#A_och%O`JG!-raXU@7>~B_UdWf zCE+I60hdT=>227E!cN3)n!r$D8+cX`njxgN@!wW002zJa|{3g diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_btn_switch_to_on_mtrl_00012.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_btn_switch_to_on_mtrl_00012.9.png.flat deleted file mode 100644 index bd45c6958312476fdd7d5b519851b41ab1525938..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1064 zcmZ>C3IOH4-}L7Ss4YS1o8@el91&=>^Y$e&4E-(UO`AQ0}BhM z0+3?>#6WwmYMWyn4?HxU}S^UQ(tn!Ux&gGvwvopQn|1Oss6IfFMnGURJ7XA|<_)<<} zkF=(V&YQm}cl~#`-eykzs5{B@keJ%@w8#0WcS2XEyB|GTEcUwYT+2?T6Q^rLEN1EF zukL#Gd$HEjw~H$kR`Lvl> zK5BpLG5KQ6cGj7ncPpK7Z@ko%wuo;@>!fFwycT48^IO!e?}*V5Y4E%FvfY8(gJH)+ zhfk}&JUsNB!{LCZ{ZG{kY#Y577+l?mbljVEb7S)HX|K0#Zhorj zv;5M@h1a@nm8-__Can<(-sqpd>AhO~akkLEe?I*_*&lCcx-8&VY(A^nuBr$A{P*|% z5oR?1{a9gA+LBM3dG5~p^f=AqM`z>32$iIz&wGBZ&Xc-u{@R}XujNhn_ozoO+~)=* PJWp3Ymvv4FO+Y39XT^#% diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_cab_background_top_mtrl_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_cab_background_top_mtrl_alpha.9.png.flat deleted file mode 100644 index 7d4527ff4f136c0cfa2ffb9218da1a8ac50f9a52..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 456 zcmZ>C3qi1&jw6StJ;hCNb)V7N-^!>u2R>FcEzC8hvP zNlr}8NG;YcDN4*MPRlRKE!H*CPs_|n1=4zk`Ua*+sg|jx#%2~~$(H6821ZGS=81_0 z#;JzJsRpSAN%}=Vy)YN)=B5;6>Xw-hcA1`~UO`@ZXMmqOFP9V-&}+P&9xg#ZS^|VQ zSb(Hg-Pd9eC$GRi2S{Up|3Hx&vJxpkDkQHUB$*55F9;P4$<-_%tObjMwF*Bt6VPu{tv{wpb Nkf*Dk%Q~loCIFZ+XM6wv diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_ic_commit_search_api_mtrl_alpha.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_ic_commit_search_api_mtrl_alpha.png.flat deleted file mode 100644 index 7ddb4cf22659c8011585dfb4bb152cd4a0937bcf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 416 zcmZ>C3tSt zBqt_kq!#O!6eZ>rr{x#r7V8@6r)B1(0%<)%eFM{^RLfLTV>1i0WJ_}k1EVBE^Tb30 z<5WZARD)E5B>f_wUYLt?b5ja3b<0eMahYC0UV3MMpF1y?6c^BIyq+E|K|opoggID% zK~K(HJ(h(Hc4)y>NbC3hiFw6o`9-kGnK`LITF+45z%(h(9wQdQ>A_h-aKbLh*2~9vI E0CFO9fdBvi diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_ic_menu_cut_mtrl_alpha.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_ic_menu_cut_mtrl_alpha.png.flat deleted file mode 100644 index f82d2bf0d61cfc59df19416a551a7320492c54bc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 476 zcmZ>C3;mH7U={-dmvTx`VtHaxPO5%lQgVD|a(r%TUTJ)CX-Rx; zNl{LGVopIuq7eH8#s!QA7+I7$8TCVpQ;UlAv+^_Yiu3dI_0o$HQ-GS26O%Jii}g#2 z67!1F@{4kdb&d4XGILUaw4R~9foW2zWvZ#MnT1)hrMZQHQIer~Vxoa@s-bbJL8?KL zei2YF%ptnDDFvCjWhQtWq*sua&cM(a;OEZECB+5w3a_V!OAwHj0AUUmAn8^2wHQbp z@^oZky>8DZY*{%^cO~y$k)H*eI~&qtYBp&;O5Iy`Z>jwIhUGVwUQw;k zsaegqzUzopr7yxKEuqyxn diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_ic_menu_paste_mtrl_am_alpha.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_ic_menu_paste_mtrl_am_alpha.png.flat deleted file mode 100644 index 0cfbb2270ce4dd034dccb1c6d89a7d53e40687f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 384 zcmZ>C3Qb`dRrIdByp8`g-X_i77x6k`t3N zQj7IViW2jR)AEaQi*=3k(=u~XfwZ2XzJX~{s%5IFv6+QgvZc9&fl-p7d19i0ajKzl zszItjl710TFU&Q%xhVyix@9JWT%}i#m);rR=g!L|#Rc>ducwDg5RjGtVGb4`=~ef& z7)Zr?x;TbZFupx~l<|-OgTuv`38@9g9KIhaJ#vCq>_^P2bw9GD--;)0*;(}bSm&}6 zP0ZU$|M+{G#Kp2zNIv`L@Yp<|XZ|<#23z)<&)0J#U6KCNT%X{v_|HL^xqqyKKdSKm X4Tx|T4=57_TE*b$>gTe~DWM4fqCSE! diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_ic_menu_selectall_mtrl_alpha.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_ic_menu_selectall_mtrl_alpha.png.flat deleted file mode 100644 index a239bb55a4dc9c56b9c88c4701a51a4c0a18f8f1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 376 zcmZ>C3= zIMpE4AW6Rns2AoO-Q1LdOx-dQg3i(_$V+En=nU|4=jD>(0(y(r)59eQNK1e)2Mdt& zs{2|Dq=GzM978G?lO?u1sDJQ(dV&4QHABojZj0AB)k2?*IFm&Au};FpB@4=ob5z6=*tx Nr>mdKI;Vst1^`f=dE5X1 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_ic_menu_share_mtrl_alpha.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_ic_menu_share_mtrl_alpha.png.flat deleted file mode 100644 index fef761850e5b4aab2991b84ee990865d203d3a89..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 500 zcmZ>C3;qyxD4R<)r6{pHF)1fiKQSpeJ~KH!H#M&`zBnVXC^bH} zq$npoF{dCSQHXs4;{wJ5j4VpsjQXL)sYS*5S@{`x#rb*qdg(=pDM0PXiOCtM#rh>h ziFw6o`9-kGnK`LITF+45z%(h-bh?%28OzuM%~V=k|}9BaJz zxc1&dJEl)_>rbm*<-R@o+^fUx*-a65#6I0Oo7{9Ggh|3kz2m(7!-P1c!*z;Zx2bJ< z^EG&3x7mt=(W{$XX1?umOnw(R=f{>)*;{VCof34kZC3hiFw6o z`9-kGnK`LITF+45z%(hO;xH!fax9xRfOSF(+!6X_m1?vL&}oPGCJQ(bHg4*0RL% zaPa~IHkPP#rr@MwAB4KM2yPPX;<+BUWWB+Og}a?tT^pH}8UGCwsYuj%!R9@O%}L;H z+sX$PhppR6*whrxq*RC375w~}=mam+h(zDh5y1?y|p+};U(z|l6yjx$j)_(i9;&1Oi zHPqjp8$WZ=93!8Cmh&}_1h}p(R+(}(N0Fu3%&1ktXA`6IJmqWi5oym#fA8Z8_1jHS$+s(nHxri_0Slj{2sV zoXI(X(`sP@_ugL0InhDBXlSJI=1p2)kYra{2o*BMkTVLpW z=kAOG$&Z&UzslcM{!^LqZ^EL&BP-wU7h2vH@KWSa2)Fr8SM5hv0z)cWBcj!&d}Uap z-jjOdR&dD4EpfYR_#V7bX#L|L5EQVKePQ$Niq8#sEoC7$4jTooIX<2D$fh%XBC`Lc hPFgJEviW}CV_5wqZ!PC{xWt~$(696+;C3Ds`x6A~GWAqC0(is>!1N_{1xum#&&gb>?a0vp^1|ZDA0wn)(8}b0XJj>I? zF{Fa=?Lk|QP(}%c3y(jypKw(QT)As^3rE?Th%jZcgs!;5EOTC&%!1nErmc z;>qHOVz1siC7oLSCsr(p+|9TAt7OUX4#~i$TLicBzPh~Dd3Tzs^b6CRGcA$cN{>}H ztMy1;%bu&2th8L;bmgLh6HYvI{`xN~;LqdioHfT6ov64d$yxGC&*;xGXQyi4?kV;+ zm0Qj7UArDfExGcd)uZA{nB8 mGSB8EQZZ!?j%K;Pn1y%vxG$Ej+X{><22WQ%mvv4FO$-1X4G+`+ diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_ic_star_half_black_16dp.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_ic_star_half_black_16dp.png.flat deleted file mode 100644 index e19754356d959b0d7ac28512ab77313090079413..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 372 zcmZ>C3Qb`dRrIdByp8`g-X_i77zc$%)Assm1yw zMTvREY57ID#kxlNX_+~xKw8gG-@r5})iTx8*v!H#+0xv?z$nSkJTcM0IMvWN)gaX% zNxulF7v>V(+?0Y$-7*t=F48N=OYaQubLZuf;sSbw*VDr#2uKTnFb4~e-1^J>6_ASb zba4!+U`$pJ-5?kw;Oudb^UtMaJpVsxM|8wCN*=apJIkXk`Of&y(Nrhq04BD=28*`% z09K1ec12dR7Lh5C3K>;dAxU={-dmr6=eVtHaxPO5%lQgVD|a(r<~Vo`iXVoq9o zQchxWcD%7!N`Vmj1jYr72N+qDx)}9Ci&Kk=^|SIb@{05G^!3t<5>tS>lM|COQj7IV ziW2jR)AEaQi*=3k(=u~XfwZ2XzJX~{s%5IFv6+QgvZc9&fl-p7d19i0ajKzlszItj zl710TFU%#nxhVyix@9K#T%=c!m);rR=g!L|#Rc>VucwDg5Rg^@VGb4`>CG7+45W^D zx;TbZFuuK_8o}nkz;f~6U8A_dZWF1AP2Ni`t%y*XxPjyEVb2|3n|7<+`RZ|F{ej%( zoBtkt+Wy%&L~zluiBsAfgWB1;o_R4}O%$2H|5|E=z~V-?+=U53Cl|L&pYN=?<$|w0 zcTPcP;SGMTG|tCm_F8S8yey4hG87uzL|II2G88l(_%J(arAujaSo2Qlzv%E)E5n2N zXThh|o7;E%{%(88%VPhUZ*ym=h;~;QO7v+Q-;_HqLz(OJqZ!J=jthT$*!e$>QGdhI X%H%8if!<+Y@O1TaS?83{1Y`mLmY=Cl diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_ic_star_half_black_48dp.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_ic_star_half_black_48dp.png.flat deleted file mode 100644 index 9b4ea1fdf2264bfaad74d3d4d74a1e696dbe68ee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 536 zcmZ>C3~b@l$Zk4ot&7Qky@-@ zQk0lioR(jdTdZrOpO%@E3Z(T6^$kpuQY}+Wjm<2~k}b_G42+Tt%@Y$1j8hGbQw>rL zlJtv!dSNcn%}puD)Gaf?=OVp=y!6fhKX+a(DK4Nlcs)H_f`GIE2y?Ii$-mr&JRr)` z#WAEJ?(JDa?IVRU$3ITr{d!vTk|$3DJ2nN1y_9QkT_e^U#5VD0k^cd;W=9DLo>O(r zfo!FzfkMLEnyp_puUP#*dW=cBg5IQb(=2dnrE6~5fhRcPe&v; zb+LX+Ze*0-c%V&$Gvv;3rs5#K1xXiXM0SU5eQWu726IH=s>QEw_J_pqEr?%UF3cEE zF2U_!EtPOGT*u*bw$6ba?GX)$*Ecfoif?2H-Mx|F^2GybCIxcbUn)CU-IhiqSV~z; z=qgrDE^qy8p1o?*Rh>KX*{5#RypOrw^XBcJx%;ETg)dB1u{2a#(w4tH>d>rBOW)Z~ eo%)xlEnF>b;lXQqz<^-zboFyt=akUIzyJXI@x%rI diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_list_divider_mtrl_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_list_divider_mtrl_alpha.9.png.flat deleted file mode 100644 index 7c529566af01f45693cce53131fb6ad74d45f277..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 396 zcmZ>C3vUX+*u)SsM~oRM0r zUs9BqSDcn#lv}K8q@R|VlM1Bu4D}66lTs~HO^wYg%#tn5Eewp349yc04UAI_jZ+O$ z4U+VWfO=tW(alXM$kZ(}!RIDDOTB`;^v(c3cU~?jE}&OFVdQ&MBdZ0RRmRUNZmy diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_list_focused_holo.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_list_focused_holo.9.png.flat deleted file mode 100644 index 3c5592eb3c11816cfe20c5ba0f5e0e5b7d035ddd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 440 zcmZ>C3qi1&jw6StJ;h+8Fgii&Kk=^|SIb@{05G^!3t<5>tRWlM|COQj7IViW2jR z)AEaQi*=3k(=u~XfwZ2XzJX~{s%5IFv6+QgvZc9&fl-p7d19i0ajKzlszItjl710T zFU%FXxhVyix@9KVU885ISCE(98Q|y6%O%AH^a8J^hf5HUW&>dk5c%NDdk-KbkyqfK z1Eev)OrXfIfDOBWR7hSyNHPNx6Q=@@qXER|zyKn^1f*Di7);MJ-ue_7`=Rkca{ukO z+X2-pdb&7C3;dA-U={-dmr_bmVtHaxPO5%lQgVDwW^qY;PJUi`K~ZXP zacW9@Mt)Ad5c>qi1&jw6StJ;hx)}9Ci&Kk=^|SIb@{05G^!3t<5>tS>lM|COQj7IV ziW2jR)AEaQi*=3k(=u~XfwZ2XzJX~{s%5IFv6+QgvZc9&fl-p7d19i0ajKzlszItj zl0MKneV9vhb5ja3b<0d}yGYMcuOKhIGr-TCmrIHZ=oMa150@Yy%?838Ao9VP_Z~n> zBCo(d2S{UpGe8lmW`AuU6_QsFlFY!w#Hj$}XaF%fFn|a!0Vx(B2GeI4W}YF0KlX09 y2~;oU>Eal|aXmR@M&&aeX0ZcD8kjFQGcmYHGTC;oC{6C3;vNSU={-dmvTx`VtHaxPO5%lQgVDwW^qY;K~ZXPacW9@ zMt)9yd`eQmSRDsj-=bS+b?Mg@I9$p?PAWfpMy#ajHS8 zL6SbuPJNhDbaPV*GIh&L@Hk1&Qm-H{oq?e&Z5c4=}L%@bFA2WC*Hbl;A(;rw20F)78&qol`;+0{{_rbAbQ= diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_list_pressed_holo_light.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_list_pressed_holo_light.9.png.flat deleted file mode 100644 index 8b2edbae333a4cc6a8f5a4071c9da37e0175e72e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 436 zcmZ>C34Yb z~b@l$Zk4pPZPSky@-@ zQk0lioR(jdTdZrOpO%@E3Z(T6^$kpuQY}+Wjm<2~k}b_G42+Tt%@Y$1j8hGbQw>rL zlJtR=>ciZko10RQsas}(&rN!kdIfpuodJICyj)UTK(Fw6dbk7uX*Lk%U;&a|N7WAl zDT%xS{~REV0gQnnPue_h0jZF@f{C3ds2LyJ?3iuJSdGxCb_^Yr!7ixN|S z1|=sZXQUSEmlP%D6{qDF8EApqylL@Lwy6&q*TjPQ)4p=vt&zi3j?DhL-WK$ z1LIUf<5YuGgCzYTpkA1xbaPV*GIh&Lh;p2srCvc^Is-#zfS)@rmlPM!i@cs5EC3QmSRDsj-=bS+b?Mg@I9$p?PAW zfpMy#ajHS8L6UwEP%q3?y16L@nYv{r#JNt-Qm-H{y)(eiotI0B3+P2&PY;(M5Dmnd z94tW6<$m^cASIDk;GYAe!2lXAV75GvT)=hWERYJxD+ozuU}EA_0CF^d7#$cu1lWNT z2M`Mbu?R>%2m=8lF81D#LVcjTjHioZh{fsTlnLnv`2HCiK44iK1c4EZ3y85}Sb4q9eG68giZGr#* diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_menu_hardkey_panel_mtrl_mult.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_menu_hardkey_panel_mtrl_mult.9.png.flat deleted file mode 100644 index 8f8fa550c38dd509968b06a4bef61eee6083afcf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 784 zcmZ>C3i8JTWOJRX;H)IX*WvuQWa*u_z@wwKBdS zF)uYIKDVR@NR;N32(eFKT)=pMkwt=0X(FS3XmM&$v3^#5MqY7#p1xjsQDO?vkmSVV zjMQTNlA^@C;J{XrGca@p___0PNpS(a$Ls0g5(K0jfLMZq z1xP;FYkVHW$t&>B;Q%sV7|3LBY>IOD52Rl=sD}e7fxH5rB$zyi27zZA_ND=;ki3GB zWCkWCP6Z%G1BihDMX3Qq4CDwiAO_K5Kn#lmF#Z4Ezke_>7~57{S{JCy#nZ(x#N+te zX})=f6$ISmlmATDx#YX<;^M98Yl|l4t)VXC=e#+(z4@z_les`!VO!82XEj@buJWKlp#aq_7)eIsJ z9j@33eqMBazli9!TSh197$PeY6Aub@I2=j!w_rJcVxsW#)7gJ|POhlkv$x>ck%@x+ z4^G)VuYWHo`M7m*BF~=F#^LMkM0^UXSixb-ym_UKjp6IIBQ;!74a?IXCCsbjb75+n zaDMug53eO8W}anCb8C}I_c+TSJFoGiOhVFu%TqbBpv>UX4 z_V@Cy$({UU7W=8dE!(C&i)1$8_|1J_Zr7ifwQt`uZ_C3%T3EE0@L{fzpd#i>Qb`dRrIdByp8`g-X_i77xMk`t3N zQj7IViW2jR)AEaQi*=3k(=u~XfwZ2XzJX~{s%5IFv6+QgvZc9&fl-p7d19i0ajKzl zszItjl710TFU&c*xhVyix@9H=oTX=}SCE&^z|a}s=g!L|#Rc>lucwDg5Ri5NVg(Ks zAjvUh8$Xbe$Sd&A;Q;ZGuwzq{!+#+EZBO7zASIAj;FAQC=L8CXaJbN?A|Mr#R}hlS zz{JF<0OV)@F%W>1f|P)11CR&<1IQ6(P+AN~!@?g-{|5qeF^z}3pBNaJ^gUf1Ln00z zoql%G6$O!2dybhmre2a1|ID#(rCravuc>#U^44DTEN@`Y+o4!8eI3j5Wmd6~a}Qg7 z=dXAe@UoTj#q_WPF(()1ea&o{^zUD+jzB@HP{P$8D^~sq@^xA&6|?xsMbW8d7dkyA zsmrPOOy%uj?47nf&qqP1lSL_T-*=e+E|yCM2?i313#9}-nD%YlDA>T^5@P1E(9q|M z&4(XkKcUf{!x z^YiDtXMO*7dVhqCW625anWubzh#Ifo`CRw=p2TVM*3RDXZevWukCVdo6_3QZwflM# zP8IM}=xB4#YDrGb@iWm4-j%9~x6F1GdsA8k-Ju~uuRN2phK5lWba}kkl zr|c$(-YB>vV-|Lc&H-x&iWw|JX&p4i3=-OCvr>98p z-TyeYWmyRa>h`FFZhN@eY0bJcL0u6h=5;zx*IxTnYsmje?|akZw30jRMmy}-+?bhe hc4(aI{;%?bH{n9XV~!1(TY$-l!PC{xWt~$(696YPZi)Z^ diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_scrubber_control_off_mtrl_alpha.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_scrubber_control_off_mtrl_alpha.png.flat deleted file mode 100644 index 2fe70c5fb21c7626328ce8a0171625e8e7326f01..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 400 zcmZ>C3tSt zBqt_kq!#O!6eZ>rr{x#r7V8@6r)B1(0%<)%eFM{^RLfLTV>1i0WJ_}k1EVBE^Tb30 z<5WZARD)E5B>f_wUYLt?b5ja3b<0eMahYC0UV3MMpF1y?6c^BIyq+E|K|q=Zh!r?k zfMkzQpdye;^K@|xsbGA1VI%KR1)i2fwFQfOr!SRg2+UkDqpj;j_0eFZr5{*+de1LS zkN;)XwJdttI?eAtOmfU`7yR4aemW#I(loYhlF987n{Dlx*`DsTs$pMJ6!*9Eh;nZX km5`e&Z6^`_DYP!!a}n>k28LNc8yP%Z{an^LB{VSr0C56@aR2}S diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_scrubber_control_to_pressed_mtrl_000.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_scrubber_control_to_pressed_mtrl_000.png.flat deleted file mode 100644 index 87426b078fef37736e62fa9291f98a4ae460b925..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 400 zcmZ>C38EApqylL@Lwy6&q*TjPQ)4p=vt&zi3j?Dh zL-WK$1LIUf<5YuGgCu>Rh59gO>E@;sWa^fg5bZp@g1mGFhRy&#cU~?jE}%DgJw054 zfHV&XbFcu(KQ&WwfK-I1i(^OyW9bEUK~_T!wuk(x5go_6*UsTvvgcm)+`0P>@H==+ z-n1n|O;f?-@U4f(Zmr?Gw4uBrG2i3Y=3h%!2lLr$OtU}wY5foDSM@*smpU8&xA^c{ dHI}O{^;_Xu8=lC3{T&PXlRFDXjQD^ANV$}QG4(of6GNd?k+hWZAkNvW2prp9I#X33W376wL1 zhUSTh2F9s|#;FFW21)ur3-w{n(#=gN$kZ(}A=-I*1$pTV44naf?z~)5TtIK~dV077 z0cjx+=3oJme~!D|0a87lE{-7;alMx|u5B?8ak;3xll4yTb`B{6*Q8yI0#Xef4F5A) z!{SfunH~4i)0o*oU3#tG@~axJ|HMr2Df@aXZ&FM2%d>i4#izUKGn`ywXW)H7bDjIk zAeT+fwZ{~VSMhR12j8-oed(uH)z5V%OFtPk-QfG2s>`x>X{f=$=l4VSCZAu+aB)G6 g`*I1F2K$Hm{_QR_ciRSZ7lWs(pUXO@geD*p0K9#j!~g&Q diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_scrubber_primary_mtrl_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_scrubber_primary_mtrl_alpha.9.png.flat deleted file mode 100644 index e9f4330955fa5fe3ca1c8be9c77568c9b15ce0b6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 440 zcmZ>C3W3Dm78UDf}HPTPZ%t-~(dWQN2rb(%msiwwe7G}wo<`xDbP0l+eTg0LwFIa{vGU diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_scrubber_track_mtrl_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_scrubber_track_mtrl_alpha.9.png.flat deleted file mode 100644 index 9a56ba5c95d63d3d057f757b23071aa7cf5aea13..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 428 zcmZ>C3qi1&jw6StJ;h`WW>?i&Kk=^|SIb@{05G^!3t<5>tRCBqt_k zq!#M~_2w0)l*2&W#*&;X+1-I1Jk5b%T!ZiGYhk1OLGeYqa;J~#6$z*R72xb zgH(eg{UV@Vm}_)%QwlP5%S`aQO3zZSATPZ$z|WnRONtBVC0a4M29`MB8ZZjfqES3j3^ JP6C3~b@l$Zk4ot&7Qky@-@ zQk0lioR(jdTdZrOpO%@E3Z(T6^$kpuQY}+Wjm<2~k}b_G42+Tt%@Y$1j8hGbQw>rL zlJtv!dSNcn%}puD)Gaf??IJx(y@I^-&Hz7mUM?vvpf`9uJzRo-v=9(WaIgT$*qGE^ zAWmL^e-1m4!41S5P#Q=v{0HKj-}<$HR6t%qNHPNx3!4IvqXEQFAOK@nz!(e+&>#fU zVnAUDgcO(s4ORw*vlA3R;oRrx;uxZF{_TW~yoU?~T<`Bx%H=Xka93H@$ZF(#tYb!l z$QKu-ekI2n6Q!e$M1J!87ytg8eBI8ZOgGoh)sqg+V-E}{yJM!)|LR4p?cyq-$v?`Z z9=X=Os+upp)1)C33s2^IKT2!o`m7kGUoS&z!mtK^Z0@R+yCDDo diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_tab_indicator_mtrl_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_tab_indicator_mtrl_alpha.9.png.flat deleted file mode 100644 index 544103a66c283adb82e8fada74498762fc46e112..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 420 zcmZ>C37(8&dVjm1@scHr-w@rkmdnl4i+H! zr)EkHkdnwN@CVTt;6G60hO9&ikg~`t2uWsOVq#JNax{P#9T*@4Ko)=i$WlhI85*6! zK(?f(i(`ny<>Um3XAK|ix%oKT{@+lYQ6S06P}9o9ZY$VS57Oo7>gTe~DWQph0RTda BVyXZD diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_text_select_handle_left_mtrl_dark.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_text_select_handle_left_mtrl_dark.png.flat deleted file mode 100644 index 4121b1fc626188af8b3d5c386f0960971e5368fa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 448 zcmZ>C3qi1&jw6S(K(Q>W3Dm78UDfz5QI<`t*q7v&b~8tJEH=A;5?Jwts1)1*|(R8wO!3$tWPa|;8bBt!GW zL<8egL*rC~RD&e_BA{NFn{;zi3Nm%eOo(%vUO`@ZXMmqOFP9V-(0ja|9xg#ZS_g>5 zIM{&X?$o+dKx&ewi(^OyW6}cC8ynuQU{>r|*Dlv5#E|5$yEKH=fTbaD$0;S9LrNVA zO>RJ)BiS*n@*D;{IwA!)eP8Nby~5n#^}*<22>1 z4>m|ytY=$iWpLb%=|hon&B0954e`8xULKT@Rd3qN^v93I+F{~;O&f(17iGAoxyv*x foA>kgUbgDbDrKf|4~u}VWAJqKb6Mw<(8K@$^GlbD diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_text_select_handle_left_mtrl_light.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_text_select_handle_left_mtrl_light.png.flat deleted file mode 100644 index 5096572185ac489f886578d2731fbd9ec4e446d3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 452 zcmZ>C3!lYZ z0(IyoCnjg47VDQ3CFT{Ul*2&W#*&;X+1-I1Jk5b%T!ZiGYhk1OLGeYqa;J~ z#6$z*R72xbgH(eg{UV@Vn4@%aQwlP5%S?!LoL)g*Is-#zfS)@rmlPM!i@cs5ErNFS}uOQa5#|3fhS{o-ztVS1_Q3}$QIWK z7D1N_9za6Sk$FYJ^`GY(+kfxLXSmJ1_s(kNl^gS9I1e(suAZuP?2|~u;e}BJml`dv z6)h2y31fbK^*|{5vm5RVad|EJ7HiqQt!}ipow4|_OF>w}{muk-jZfyS>@1eEk`I3B iV7_q0xPJe2hS||K9xdWIn+9|pgQu&X%Q~loCI$cC3L({AXQUSEmlP%D6{qDF8EApqylL@Lwy6&q*TjPQ)4p=vt&zi3j?DhL-WK$ z1LIUf<5YuGgCzYTpkA1(baPV*GIh&Lh;^M_L0)=ifS)@rmlPM!d%T_=EYt~JV@L&Kk^+m_8|zbyN47Rxdv!>y$$(>l!NkcHw|U-OIOz3GR;e({Oi6|CZaTaqjquUNRQnf^fW4x6KR``wmB zH=H>#m5$ggn#;0%LgSW+2g`Pw-*(`58PMVDBF!r7;kavx(;_o79`Q?yd(65F+4U#b z*&e?5fXSwL!E#+*JEtC-j1Tt>ek?zDz(6A7f-%o7sXqohby*)y8C0x27`cPZFg#jH z=E!Ep53bQiuNraf?~iEscw0X4amaF?L8pSJeuf3ICW@XDJ pbLJtN{Ri&4!uCpw-gjr2?AMjb|I|@u0fq#Fr>mdKI;Vst1^^c`&yfHC diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_text_select_handle_middle_mtrl_light.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_text_select_handle_middle_mtrl_light.png.flat deleted file mode 100644 index 8d9308b7cdc7d555cbc1d291f2477f9e42fc8883..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 564 zcmZ>C3qi1&jw6S(K(T>W3Dm78UDfz5QI<`t*q7v&b~8tJEH=A;5?Jwts1)1*|(R8wO!3$tWPa|;8bBt!GW zL<8egL*rC~RD&e_BA{NFvvhM)3Nm%eOo(=#UO`?u14CzkpF1y?6c^Boyq+E|K|opr zh$T4KfaEXlyJbM?ucwP+NCjh(0*g@AZp(%pVi%%fZ@37sF^Z@a38l|ID7$Ni#=CW? z4+8kZ82Do6tZ^xOcXsFNoKHu;ul*AyAphdKQW4|&2aDzh@TgCaTHf(h$fo7C!iz^6 zW(SB=b13?@+;HDA`GJ_x1T&)>dEe8dITU5NHg;w#PGHjXm>%SDZFz-3*^S zV7;_F-9jp+Azk3hmZb;XJ0`O8{*z|=Zz3VV#>`vQ<`~{A-*(WSH%^jmy{QHFb%keH z-p$PwW*qx6R_};%d-z?D+aPZDyy+8O7Rs(SyS;CkV9C$4)g9YziK~BLT7Py|?ctE+ t#~Ye0?>u0yJE;H8fPeYLy^%kb`>(p@@_05dAQ(Jd{an^LB{VTG007HK&P)IR diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_text_select_handle_right_mtrl_dark.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_text_select_handle_right_mtrl_dark.png.flat deleted file mode 100644 index 4488d2b6ba09058e0134ab9c0d9aa18d1af34a15..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 436 zcmZ>C3!lYZ z0(IyoCnjg47VDQ3CFT{Ul*2&W#*&;X+1-I1Jk5b%T!ZiGYhk1OLGeYqa;J~ z#6$z*R72xbgH(eg{UV@Vn4@%aQwlP5%S?!LoL)g*Is-#zfS)@rmlPM!i@cs5E##EF{FYqSwS@CM){RSi8BTd7#=?OpYq_l!ydT~;f9EW57rWw zKe9R>KgeNI&tWO?@WsN%2`qdPS$zBKugLtVPmr~F^&pVF->Txu!T0U6ny>Slva9o$ zvU3MmM!s3@&b*?bi_dI9xN)(asLX5z<9rPZtHcGrDi|GV=1(#4_B3K(uu-vg>E8Y& R9_ShdPgg&ebxsLQ3;+-3j-LPk diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_text_select_handle_right_mtrl_light.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_text_select_handle_right_mtrl_light.png.flat deleted file mode 100644 index 0bc51e3c237e8830d91ec99b12c40214ac9092eb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 436 zcmZ>C30pkHi7Nu#7`k}?CMaBAA`5Ae|`FZ+!=|zb^ zE&9oc$r-7|`Xxn)dBth@MY+YgM*3-)IjKNe&rsjMG%3|G)zsL`!YtX++`_;p$&^Xl~)gVc~2&fn4D&5?af=t~q6JlMbSCE(98Q|y6%O%AH^dhgPhf5HU)&XKM z4mKdUJGJf4Rj2H Or>mdKI;Vst1_l5&Nsre6 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_textfield_activated_mtrl_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_textfield_activated_mtrl_alpha.9.png.flat deleted file mode 100644 index c3799b5716b94d12d09e060f8d68029888d44a66..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 428 zcmZ>C3S&PXlRFDXjQD^ANV$}QG4(of6GNd?k+hWZAkNvW2prp9I#X33W376wL1hUSTh z2F9s|#;FFW21)uwK)o<0>E@;sWa^fg5aBdEOTB`;bOwgb06%wLE-5ac_jo-$T!Mf! z4-j*6umH)2l}oMwDT%xS{~REV0saF;Zpccc04a;Sf{C3IFpGhKOEaY?u{<#;CsjW&DLK9*wW1^~Gc_kAJ|#6R zu{5V7KDVSOCq6N!AR|$TeFEbG#siEj5{ya{8TCVpQ;UlAv+^_Yiu3dI_0o$HQ-Fpf zCnjg47VDQ3CFT{Ul*2&W#*&;X+1-I1Jk5b%T!ZiGYhk1OLGeYqa;J~#6$z* zR72xbgH(eg{UV@Vn1gh4QwlP5%S;G5OwUrUATOPPp)Kq1|}vZ1t3QQh|vIx0YU&| z0SK@|CIft^fc4 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_textfield_search_activated_mtrl_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_abc_textfield_search_activated_mtrl_alpha.9.png.flat deleted file mode 100644 index d77ceb5f503f5327b08486421027cb537a24987b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 436 zcmZ>C3qi1&jw6StJ;hW-;oA7N-^!>u2R>FcEzC8hvPOHNGANG;YcDN4*MPRlRKE!H*CPs_|n1=4zk`Ua*+sg|jx#%2~~$(H68 z21ZGS=81_0#;JzJsRpSAN%}=Vy)c*Q=B5;6>Xw-h??OFGy@I^-&Hz7mUM?vvpjUZ4 zJzRo-G!GCnbFhF!wA6M2DT%xS{~REV0saF;Zpccc04a;Sf{C3W3Dm78UDf}HPTPZ%t-~(dWQN2rb(%msiwwe7G}wo<`xD< zNrvW$i3Y~0hQ_G|sRl{*9fwMP5NjG6NG6lLC;V0mNv4(EuR; zvH%2_Kt%oj|Nk!(cy9wT1wCCHLpZJ{Cn$&-{9AuqkC8!nD`Ug1m}{IMg`Tc{F6*2U Hniv=W&tGb> diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_notification_bg_low_normal.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_notification_bg_low_normal.9.png.flat deleted file mode 100644 index 2379ece148df006e01b120a5199bdda1bd3c3bd7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 444 zcmZ>C3;vNKU={-dmvTx`VtHaxPO5%heo1CpW^!UlW`16LQhIz& zetCReeo<~>ju86<#s!QA7+EA3mAV=ALyJ?3iuJSdGxCb_^Yr!7ixN|S+LIHLGg6E7 zONtWniqnAFigk_j(=u~XfwZ2XzNuMavRRsCvbkZ3r9p~Gnn|*$d1|6big8-1v6*?I zk$w?SFU%>rxhVyix@9JKoTO)|SCE&^z|a}s=g!L|#Rc>ZucwDg5Rm2oVGzOaFy&!5 zkdnwN@XrD9(ZPS9zztc66d)CnR}hlSz{JF<0OV)@F*-1S2(SPtHXw%4u&`zP&(F_~ z4X-LVyc?)q%G1R$gyVYhl!T-NAoy|o(_BWT84@QF85ml7m=tS-C3}8CMT9;=I6yHrN`&w zm&X?rr4|>brUfRROlQK^SfKeRZts8~NMKO?U=KTlsTy(lpSs6RO|IU}`L zzoaNJuQ)BgD7RSGNIxwzClyHR8S0ywB_^AtStgqsrdS%Jn53B`o0_L4nxq(~r5c-= zCmQJkZPJIiMK?F4AXB%@1fQGqEcFWV(mMnE+m71 z04a&Q0{Kq1|}v>1t3QQh|z%oM1TcIu>moRhJ`KTf7!rP zZ1}{L1(HDZN}eu`Asp9}L%L6;CM6{~u>Sw|H~HtkzwFFr2aYr_^Q>TDIMKxR^!H6Y QH;_f1u6{1-oD!NC0Gu#&UH||9 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_notification_bg_normal.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_notification_bg_normal.9.png.flat deleted file mode 100644 index 68dbacc5e159c52968c2bcf4c3b8b6200a578ed5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 436 zcmZ>C3ju86<#s!QA7+EA3mD(BgLyJ?3iuJSdGxCb_^Yr!7ixN|ST9Xr#Gg6E7ONtWn ziqnAFigk_j(=u~XfwZ2XzNuMavRRsCvbkZ3r9p~Gnn|*$d1|6big8-1v6*?Ik$w?S zFU%RbxhVyix@9IfoTF!{SCE&^z|a}s=g!L|#Rc>RucwDg5Rm2oVGzOaFy&!5kdnwN z@XrD9(ZPS9zztc66d)CnR}hlSz{JF<0OV)@F*-1S2(SPtHXw%4urOu(FCig;4gYDJ zyaK3R%G1R$gyVX0NJ>%y5d1j)X)Ytv42cto3=AFIOj_&pUJHXP@O1TaS?83{!~g&f CCuiXR diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_notification_bg_normal_pressed.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_notification_bg_normal_pressed.9.png.flat deleted file mode 100644 index fc7268d105c0bb6d832dc55a91cbcb3cea34fdbf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 460 zcmZ>C3PJBU8YH@LDiV*t*#s!QA7+EA3mHHX=LyJ?3iuJSdGxCb_^Yr!7ixN|SMkFUD zXQUSEmlP%D6{i8U7wa17r)B1(0%<)%eN(f6yvm1 zV>9zaBYmJv`Y`9{=B5;6>Xw-haF(8>UO`?u14CzkpF1y?6c^B2yq+E|K|q=VggKai zq<6079Uvu_?Vs9?7)!*W}X!+3|}hQ W<&;iqIsjEOc)I$ztaD0eVgLY(ym#XO diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_notify_panel_notification_icon_bg.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-mdpi-v4_notify_panel_notification_icon_bg.png.flat deleted file mode 100644 index 2f37826a83b651ceae62996e38b5bbd3cd770214..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 336 zcmZ>C3(alXM$kZ(}A?z-_g1q$306%wLE-5acw|G50T!Mf!KL~R$0m&^}m}G&J zrl*Tzh{pM30T(7Aw`)Ik@*L4-odhIWSE&VQdYFFn64aCY`qbcqD#NuzYrFr#qBnt> Q7(8A5T-G@yG%+v$01i=P3;+NC diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-v21_abc_action_bar_item_background_material.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-v21_abc_action_bar_item_background_material.xml.flat deleted file mode 100644 index dd32610bb0a97f04f8be8622740858fb4406e1c1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 408 zcmb79yH3O~5KK7nP&y(Zp_E65bg`4@o(($DP*Q+I7p)y%V$QLnwRwC1UqF8yAHo;# zP57c*4=as!G}7$MuGjYuVGsldeC&yzACIq|1wlkBgg0PH5MaCn?xfKr11zNzttWh2 zqj}L)*@6=&LB*r*@Zxeb{tU^Z6==z`X|y$(q%}h2?{MIau*4x~yD`|>NlrFW3BS{f z&?ys3F)e0`8DGv9G-ufyfEFSv1QnDK^xi|K$!nhdwO9JyD*w+ejF!HfYJw*?Dq;vg?!>KSlp=#>d54!I1w-c86^KoSZNLQ#am(SS9!XLn7!_G&x{h?a&H z(Wa$A6j0DnAS4PzmzF=nTdxxZ@FtojqQH`6duHDI-Z9_jSzq7U?(FF3IJ`wSe8BYq z?vE&Z?Lgx;r_ZSAGM$>1VG7T%eAnm9HtJL`?od}reCf;&B-EFk`u%|MK!57jyukPL zVwF=H3@vKaSfC3|y`bXrdQh0tD~`+HSuE?N1(U6?h55zhMQdegxin{%mnbdGv+_JE zv688CussZ-us2t38%Xha-9_*6Xa!}cXLH}N6|E*jV^!A!h@eh`Vl-Z~{JKsXJE8Ar zjGW8nNXqd7CR7_q7%JVN(S|RCUnjF`wo_+bE680K@{DlW*kfEc7Ily6CW+D&y1C0L zf?R2bQS-U;!uP~+6eg7m3Q_Jk)tV#>m4eBJFx!4ZqF!2$l0ui@BFStX-_kzi(EA)o zbEna8nfgcyKNW6bGI1kn{wfuM>*3%{s2}&;+fV|xSq3eqbcL`HbRS;R-eRc#KfVw*JczGp2fgTfFUbbXWtQ-{HmKx&vyMCv+^7A_po2^cMBR|et|t({ zO@nz&-r6Kpp>Dvm5hec@R0KB!k^M-cuW6DBYP7-B>r!|vBhtkoC+byQrj09uu~-q_ zFkaAhkVP_<&pnU~$?l~=SDf8|sKe@+ zEth?3FO9|QrHxPkHbL{K3z3YT9?2-)()JVRO@d?^)V3Y3s>(4dZMJkMMk6AJF-jx{ zk#w6PR5(_Avn6zg0C6&8%GH#I3M7f~L<%DzKz?M(1RWfM4xYdx6&tW<7+-A1>j^vz z3x+Umx8O4F*IsAPtBCj~flY!&d`qLxXGPknvn1{G=~S5p(i-UDA!#?InjifD24hIO zZduF|(59KwW0=8r{?pY~QvWDjXHTZ<)sU`J?de(w={gB?jrq$LaX)Mlg3teXLeRsB eew;miVkzNXSlx${T9?v^;I)i6+X zWr4n0XofbSN(9dn*Uyxy&k2!wjuK?h^aILE0`;A7XnMG3?_w*jBvalcY5}@i271Gl z;w2tL)1>w;S_uq|z%^T{27lEGM+TqgX}0EHw&HEW-|%|n?(eu3daf59*!zy>|LURd zJ#5JgYUZ_@Yz5(=U{pbs7R=vuheo^6KX8tGK%ej?<)YFF^4_SqzFqS-asvUuS*ydp` zB+^j=$1>m|k_!zdpp3w~T6b!TZL&%hn@cN8-sTEwu{^Fnu@5TfN7*b(!icB1u*Zx_ z>h3L>&~MpC1$0<2i&T-w+RT*Rh*Y3(m&9G|`(`P?OcHzC80kawU?%l>`zVhN^CpUE zOcoNXywKXt1XjW<39&i7-qYh6R!TTNl__|u>$F~Fidc}s>*{f^dAofZP{MrICjs7N z(8NkGH^sKLGKDWH8Y^>ZJ-=SU#h#*j(2o9~VxM0_vCv`N&Kgu~>o_)?|L*z1 hSo$My%t2uWZl8PlC>SU7qFpgG1k?LqfPY9X_XjauNCyA_ diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-v21_abc_list_divider_material.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-v21_abc_list_divider_material.xml.flat deleted file mode 100644 index ad9bdfd747787c4f4f8dc540f20b2845b51cee12..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 628 zcmb7=PfNov7{*uI>J|`6-B1dO)Pqo1({AohcTjfGqY8SSX_Kwdwkb*6M34Fvy!k2o z1b#HLv4Iy4ec&a@1JCb$$as8nr`2k;%{*+Whtjv2ucfI3T+Gn|#TkJpP9_-@a)Rlc zV!|gml7v%~+4_&xI?&w@4c-gF1$<;_Ay@(Z8An(p6O^PxK*>=dri|yJ-GNh@5q0_@ z40|_~IfkIG p#EmNPw^KrAsdV%Zm+r7q)Lc+3(^XQHYN=8UTLbF4Zyhav_ZM7lxx)Ye diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-v21_notification_action_background.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-v21_notification_action_background.xml.flat deleted file mode 100644 index 84cda876fe142ec1c8b0816b4f657fef0c949d92..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1888 zcmbW2&2H2%5XX1B-`-Yo!&ahhkxCE(MRe2cr&^?{?G331sLF*NR^Hgzm?n1QxGh5B z0eA{-h#Pmr0l|^?;mkCfu3EGOnMjcxCo{kCjQ^AU{pZK!QmJ%xA2#3tuCH*vtLM`a zdc-unpo5tEQW+77fEuA>p9c9bpuy=-t24=*%D3{|-HQ9Z?7z&o&ivOZl9`fzcc>`? z^MD2s&wQh)%tED;YWqU+w)PobH<>M!%-fHfm7Gv=YqmB4g4W-_Ib9gl64hy&I^+r|D@N zU`3k}jNrW@>K(y+*x0Ez>$GzB1)_r=dp{BSj?mNp%SN?1hnu7(WX6pF@VBBjM!CCznEWVIud zgN`oiXiZ{Pq-IV!R;gX$yg6rPT>jz+%;O{Pa~*xGlUf$hl)JlDk&KK;OY^``IgGhC z@66s{6dZz=J&8in2$Yu41>6%WP90i>ILpYxn-vV8U|Plfk<;-B0rf0kd|N0Bu;o|i z2sW%@!Q5w7ffOq4jHNYF^F;(21?=MO*hReSeX5`j71Bs4V?qvHyQRcxF7;1&77|@7izMzWtpo$Z;vV>3ICBf5w_R;&e f123QzUhm&7#<1AIRj=ig5lkQ8_T}#bexJVqj{F^gYizXx9&}KAnF0!Bud}G`s;3908#vRnlrDN&<9KX|v_W{&7W!+S@aI$}2if*p7~buE#vzq!XcY`njZ<;hxZ|&xv0c6zxk4N^f26#`m(j^GG1J-cGCI#@i=;e0&C6t7=I2?g^nUK{?)LP#`C*lm zmHBDD$f`UupXB9PRYbGIoTv5T{KP!T^QunD`&G0mfGsKtvnpriDoQi6Oe%97=l+F* zpA!pxwpxNL>9?CwAdR9dF7q^2CX2c*9++kY%2rW@ntn9PR}kfllQ(_pjd54nm-w^^qGG#6dxzVT^3oAQlQpNNnVK28OSm z=2^(b1`ZH;22WvvkwXpNLo{H24BHBjWlueV0uTOp@S5^4NBW~yYPYMp%+HcAU*@H{ zwP!U=fAcylVllh6{z)tEEjH&u!M%s;Dl_l>c{v{+Ta#PL7GLdV#kXO_HxfXVUxG9k z$^FgFSLE%+Q7E#U z=>`rx2Vu+-%Yp==2BC=B3{Wi6gXN;=bO|D0010Pn7!uLvY;@{UWCOO59fV+mi2+|R z(FAq_~VUBWjF-KJd|f^1V&>c z&kl+Aw3Av0NH901E~0=L$&?15T9Ai;ecS|v@_}&(F&<-UY{aZ^?E;D+2@^il%}G2u zq)?$m3%I_*LZUqA8z~Xu=DQH2aQV8Cz+L6mNZNiaI3(8WvHo9Q0j$Lh3>|5kqfjl z?9phD-~otyoXnG{m_?dz?_X|>aJmK(I%UaJ-ydoHP9yb0j^0__Zx A4FCWD diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_ab_share_pack_mtrl_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_ab_share_pack_mtrl_alpha.9.png.flat deleted file mode 100644 index c9b8c354c6cbb33f4cd332223ff16f19e408c194..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 512 zcmZ>C3QmSRDsj-=bS+b?Mg@I9$p?PAWfpMy#ajHS8 zL6UwEP%q3ex)m8I1(~{KCU{+?XQ@|^m(I``;OEZECB+5w7O$s=OAwG&0AUUmAbGQR zQ$3K9$Sd&A0n!-204Va!_?ZciD#-A* zfEX6e=rm9YEC-{}?sG BZ=V1F diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_btn_check_to_on_mtrl_000.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_btn_check_to_on_mtrl_000.png.flat deleted file mode 100644 index f41ca58d8f80d8d61bc5d1d9bed9c2613aed742f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 512 zcmZ>C3<3~=D4R<)r6{pHF)1fiKQSpeKB*)xJ~<;bIXk{2KR!P% zKDVSOC*HuoK!|+;;{m1vj4Vn$jQXL)sYS*5S@{`x#rb*qdg(=pDM0PXi9n6T`Xxn) zdBth@MY+YgM*3-)IjKNe&rsjMG%3|G)zsL`!YtX++`_;p$&^Xl~)gVc~ z2&fn46y1u9l!8p%G84RR(ksYIXXp&@bLZuf;sSb!*VDr#2uM4CFb4~eWJuT<3M3zR zx;TbZFuuKE*w<_z(E9NF6h$V!2{DSNjw(Nm(ePd1)x6#3?1o8OSO1L9{ga(xz`^E_bSeio3g{!+<)^?>j_8Sylm5}`g_-V>&k;UtEN}`EPSx=myFPl z6>=IAU!PCAn#TRV>FlyubH8hg@Z4LKRaj^wRhCjxv~k6%?GI-h_|AO%JiEHV!r-zc zhf{v)HX52V8nOl{AfX5IIkwbK+aB)|7QXl74&}-Bu2%Ux*ga?6G>2Pae|ljILte*Cm+jea`F%bu=&F6*2Unt)6I$Gg0o diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_btn_check_to_on_mtrl_015.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_btn_check_to_on_mtrl_015.png.flat deleted file mode 100644 index b4d103da4e5f9f1df4f6c6edbaaeab3aac26262f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 660 zcmZ>C3C z=jX-emK5d08yK1ju}@$;z;u9-MX85TKeRZts8~NMKO?U=KTlsTy(lpSs69CmsIgeT zq$n}3I4!>@w^-LmKP@vS6-etD>Km9QrCO$%8k<>|C0m+X7#JlPnkOb27^fNzYehc#Kh`?(HuGuv!#o!6YTekA35)0M@qFhTWb-4) z<#B4$gz7{qOZ&OUT8vUpP0{?!n{0QZfBB+QKP#CJGz324V=#DG6;ZI@;W^#J_a-tC z453+dCq)k`cD@!^r*oNu?S`^Vf&3fhME)65{!CDN`kQ^f<6!}V_snj0LKw{5VwrVv z{TjZ$jA@W>QMTrPDfQs9dfEZ8gQdJ5esW%5zs9kR+hNA~mAjc+e#(_TU$1cDzjKD5 zuS0jO<$lME!dVRex8y&Y%5Yw^Os4kD*FAC$H<*n5&L>Q;H|G6Z#n8Qh>DPfH!jCF* z4@j+8`Jdze)7J*;|8ki*`0~#vsyp_$(zk(^^CM7K!IpUsihFhzB+8s!&FFM!PNmIy zHVzI^HfPbZ*-T7MHtV@KI416~Qcz&|*~idySZPg!Vnocm{ZG%?7tiCC(ffb!$#2G= z{L6p#KmVz(@hSe|ll@Ch)%#BWzi5-sOkkirnH&G;P=3yewLh~#G2!Xz=d#Wzp$Pzr CL;!{W diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_btn_radio_to_on_mtrl_000.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_btn_radio_to_on_mtrl_000.png.flat deleted file mode 100644 index eac458386471deb6173e8cb2bebb24c2004c8951..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 880 zcmZ>C3TT+x0Z(v{`#6E%X0Mh|R7Ns6W{m|mnqGJ85{EWQf{5*ZVbf5;H_Tk>ERLtq#Zz*g9S)3B|Gd8c+WzbJZkzr~iFqt_-J`yK zfAkKC6ArFs0d?&Y*8~Le+$}u*K|cHEf06SKmKiJO?=jxI!Qk^bY3201px0%6D&9Nt z-*o>t`TgjP+O1XBR~F|i59Hu$ZP#|J`QO`_ERs3>^5+}oiI2UaQ_ZEky?cFQ zGh=UZ+_y;!-#wu)K`CcTnA42vrz?Zi`(!K&U#$#(<`j{c+tSJWru-pW(BAKnlb-z2Q@K;{aQB8)Vtm^+Px$CG z_4`TZC-ddjFF8^1Vsh5O?%X7e3Z*q`T2}6s_;cLmBtyAx=sb0e+U@`6t#{I{Dd}m9 zKge+0F6>$O_g_aR7_RiKtN3#IQ`S>ud#&oGJMRA)-6A-}=RUdms{2%)&5OK+2|6*H z?|CO$v0HrES0=HzWO@C%=!$!lbyExDtZUv`IUSt2LGW4Mgc8?76D!{qwOu;<*JFoB z+_!xvCH1qX3$oq4vtLZ=VdQ#-kZYT7Jv9vy|Cywe`VFOG*6E)@{Vdw=)9eBp!t_#f)6fB4z%dclAGi~r_7+J9?f zGbkUlHT;e4E|mAm`C#~{_zi#O{*-@Henr1KdSvy?>A~xt+Xd`!VOA17QDPVJE97C3)&{T+h0^Qb`dRrIdByp8`g-X=4M6S5iOCtM#rh>h ziFw6o`9-kGnK`LITF+45z%(hodF{Fa=&6I;)(eVPu>hEPZHH*bgbyC#hj^%uJ=c(Z>*Q-rG7)swVr>x|De{NmO zi%tFy7v0ow5&u^x_{b?Bq({-*QnsyMI`878+b;h_irSq0()Rs)c4m(C;fmhtK(v34 z8r!E!jody$sU;ILx%3Msb}&ViX??!6WX?s`^Aa&n*00!flF>e+DEHEq%Z-_<(gfdG zo|3!S_WjC_{tr85EKTEB=>GTBhrSu?{8twHw#zwQTI?MCU%rF)rjvI~$DO6BkN26W?&*Ms-CXkpc0AQy>T`c~$}^{v0^3=H zVi#&mQ#`fbIlxU_Cqt+s=;7u1Sxnq>me^SzwsB^RP@7Qkt$h!pnrNPqG56vgIcK?L zb*Gblt^RcWvQmZG@jbEvOZNw#nc>5jvbN1`T6%Zo#)bU4MCJ=GEU$`6qrKoS|^)|36bE z+1sUFa<{gf-q!B3NB6gyt+i@hXRhLh*hPA6vm}c5*3UGaT3~wCo@pD$ERM*RmSx=T zCzC^Y(x)7qrTl-@WVWa?CvR@4QPQ{_?-I({X0XKOSw`p5S&P|r{Z(t+_BK|*EB(<* z4tc>yzmGrF*T-(m=`uYo{O0xFYfrPHgBAa{UHQ54_^ya=#WsznV#D3M9hU6vsg5<;~nS3t&WDdH@Lp9%MUtN-YB{5?nk%z3tsOCI&ZJI zDNZuT?pf{QU)eAJ{pbFZbDWQhp&?O%bP0l+XlZ0st8ux+nku diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_btn_switch_to_on_mtrl_00001.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_btn_switch_to_on_mtrl_00001.9.png.flat deleted file mode 100644 index 861f24f9e10998aafe88dfcd4bd2144b1de46d5e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1768 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 V`xjfxIj;WpF>XHSDpY6+=)aEpPmllr diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_cab_background_top_mtrl_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_cab_background_top_mtrl_alpha.9.png.flat deleted file mode 100644 index 863b0860c17a4a133bb046881a4521301758b395..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 476 zcmZ>C3qi155`PStJ;hCNt`X7N-^!>u2R>FcEzC8hvP zNlr}8NG;YcDN4*MPRlRKE!H*CPs_|n1=4zk`Ua*+sg|jx#%2~~$(H6821ZGS=81_0 z#;JzJsRpSAN%}=Vy)YN)R%E0UWa^fg5O$iLrCvc^I?zv@0eCaHA1HD|Rw4yRh2#~4Br`BEaVh{g8bFK=K&AqL1Q5#r zF-VCv5aR-{IAGM&sf-3H((rU~42d}W_Ix8J$Z;F5|1Hm3E+8_Awa*)5#J3fDZaVnO c-{G&Bah8$YDP_kLkf^7tpUXO@geD*p0LzALaR2}S diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_ic_commit_search_api_mtrl_alpha.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_ic_commit_search_api_mtrl_alpha.png.flat deleted file mode 100644 index 19807669af989b93366c275efdf8f98f13a2f806..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 472 zcmZ>C3u2R>FcEzC8hvP zNlr}8NG;YcDN4*MPRlRKE!H*CPs_|n1=4zk`Ua*+sg|jx#%2~~$(H6821ZGS=81_0 z#;JzJsRpSAN%}=Vy)YN)R%E0UWa^fg5aTqxg1mH~pE?8l+(Dn@HSPIw?hKZ_5*xZWzlJc@^0?|xXpjl@F#%En z0it^yn954@CotUQR%zI?fcpZF590piR#8y%5e2H5VIZ~#B(|WZW_wWwi+;f(@g3*u q6Z?uziC=rMNFd0OGxCR68VE$oA1i0->twG7x!%*&&t;ucLK6V%teR&4 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_ic_menu_copy_mtrl_am_alpha.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_ic_menu_copy_mtrl_am_alpha.png.flat deleted file mode 100644 index c53ce91607c471ee038b7cd0c03c3c753958863d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 412 zcmZ>C3KfFpGhKOFgA1u{<#;CsjW&DLFnfIX*WvuQWb6zo0Tc zx1=a1J~1~wF{dCSQHXs4;{m1vj4VohjQXL)sYS*5S@{`x#rb*qdg(=pDL?~~6O%Ji zi}g#267!1F@{4kdb&d4XGILUaw4R~9foW2zWvZ#MnT1)hrMZQHQIer~Vxoa@s-bbJ zL8?KLei2YF%rUwZ87T#sx@9H=T%}i#m(I``;OEZECB+5w60fI+OAwGY0AUUmAo-Wu zkOxRrdb&7P9v1cs_e5lqC+igd zVcNkiafkI=s)E6UwR{{a-XBf8C3A}u-j~=rBz8tXR&K8UJ zCcjSqT=)HsoK4|hb`6H+jK|V^=Uz)kNmRr*2*l2Lw9D_J%K;vR-?Dd>>ay6*3_TdS zm-EFVJJYG(cnmzmpKEh<%nj$f|I+E}>Nk=Le7|{0c?%|mCZA`#e-~v~Hk#D!x~SS~%g*y)ia_d-^Q)b{ z9cVf?Z-0ib$EvJ1mI@8J`5ZUn{@pMwe8m_z_3hL1rS@STS${v@+ODc&)3G8-+Aq{4 zXJO1@F{Ww9Q!3~JX!>iz1`In<%hzCOhuJKrLAlmCT?Ndnr>rg{3> zpB59j^FqD&^70!(Y21rW-B4msy2r@mw8O=6+X9dBV=}VQNk3vYw%=zIyTAB(sLF5Q zFOiRT&*`4_HTJx>-mQlCn-R88776QAZwY_0=zN6Z{r~oVxAR*tAKy@RAX3R|9xxUe NJYD@<);T3K0RSMt8h`)* diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_ic_menu_paste_mtrl_am_alpha.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_ic_menu_paste_mtrl_am_alpha.png.flat deleted file mode 100644 index f5634f21e2850064ada08862c660fc13b6dd5a7b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 480 zcmZ>C3tRCBqt_k zq!#O!6eZ>rr{x#r7V8@6r)B1(0%<)%eFM{^RLfLTV>1i0WJ_}k1EVBE^Tb30<5WZA zRD)E5B>f_wUYKiiD>70FGIh&L2sulyATJ&0m(Bn`cU~?jE+CWF)59eQNE?7K2Mdt= z%WcR5q;`3_IEGX(zP)bEb;v=)?P0?T=@ZOvQm>_^s_!uPTp-@W7@njs`OrHJM#rY| zw2t72JD= z>73FdwX%`zF%ysMx=SCmj)%5SY~(7xSrPhR-K0jja#Ksz^gEG~73P1xss4#$WIgn~ zyn%^JV*!+4Hr!-%L16Kv{~UjoT1VeEzGh_ZZTW96kIQ_ff3}S0)9U@bU-+&E`hvmJ M)z4*}Q$iC10Aa$Yp#T5? diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_ic_menu_selectall_mtrl_alpha.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_ic_menu_selectall_mtrl_alpha.png.flat deleted file mode 100644 index 1a72e44961c01267dccb90c9f382054bd0807d97..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 420 zcmZ>C3 zBrzu^KDVSOCq6N!AR|$TeFEbFrUQ&DN)s6MLyJ?3iuJSdGxCb_^Yr!7ixN|SMkFUD zXQUSEmlP%D6{qDF8EApqylL@Lwy6&q*TjPQ)4p=vt&zi3j?DhL-WK$1LIUf z<5YuGgCzYTpkA1BbSpAa3Nm%eObEJ5uOKg-p)$37qbG7%U{Wl??vm^H0_F?e#v+J62a&l+hw!vDF_O;m@{#* z{+%0FGe=$P(!QFC3az<*g zeo0YcUU6D}QEsuWk$zfcPAZVrGt@UQO-i*)H8nP~FiW;Hw=ghDGBi(2G%!vzG)^^0 zHAvDg0_uf1MYkd&r65zc%mlBS^a}FQ89D>}+JGn7Lnm9IFM^KJ9=l_48mEa5uN zxw%8N#e8an*zpC*{e{MnIuqu6WLc=KY^HI>(&X_`uH6^k2x!0gdr{WM)!1)M0Hd$x z#={|}b;AU@PYTXfUly^L=kd*he8&QV>YV@YWfgsKw6AHOMi?;W7(8A5T-G@yGywpZ CCmX>4 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_ic_star_black_16dp.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_ic_star_black_16dp.png.flat deleted file mode 100644 index 25a8f47153284f8df46e391bce7efe536c387853..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 552 zcmZ>C3b2k2>?p8DVj-`IGKcS)WS4!)e{0iNo&`632|p3j z_LeW{Qt6g6>D=rVr6|aoXM)x32#; zYLw7gKBf9b(R`yW!wt;l(-v=H;@_6=aK9ew4c3&!Dy!}SgNeb@)z4*}Q$iDv2>`5~ B%L@Pi diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_ic_star_black_36dp.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_ic_star_black_36dp.png.flat deleted file mode 100644 index fd8f376d95eb264425dfbbb7b04151bc4288f752..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 868 zcmZ>C3;?$yI{jB_qyyE;keZBOe#1x>$q+bNo z3v+~SMMg?Nrf!)D4%g@vqT>WP`)^j9%59U;Nr`_JR{r?`*>C1MmukBX- zYg@jz`}FtR?(@%o`-l9Qw|q^4rQD=W{ypldOfp&1HEg7FgjF{iJ;D z$Cke*-hX?*xKzMbwcxIk%VnFGY16iMEHhtH_I=ZPSDPr#FGpMjW1O9K`LL|ZY_?W}yDTTX z>Jy7&ZU4$1&(rsG0)60&gWdaT}8*AKjzI5)> zxYlvK<78Zr{1xrPwntpbHClc76x43@`X*KO&v?Om@!Opz)78a{g*1}SbA=vTbLw8a zA}f>FvRmv6;sTF2v0jnibSfh7=4gTe~DWM4fnptQ8 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_ic_star_black_48dp.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_ic_star_black_48dp.png.flat deleted file mode 100644 index 5dcddeb3ea3c22befd2ac6a0b28d5625662b6e22..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1104 zcmZ>C3;?$yI{jB_qyyE;keZBOe#1x>$q+bNo z3v+~SMMg?Nrf!)D4%g@v^{-ry;{q3|ay_mMTsW8OQP$r@ zPJh>haLjgjx@QH0UP(xZ-+Hy3+ue9BW?6EUSe`2TWBCqmOTk`^!zAegGW*4}$ z-gkQR`EIFK6M~av#7s+0{4C0xx?*G4&M&PiHtsD-?vaeTvo^GSg{}0~s7G$bF$%(q zW74)A4Xbc!KU?-<jKMe*S5DtafjS)s~Kgj4h#xNUwmRg`qCE5Kqg0@Nv?IzhK&k^D*y_7L? zHc+M6%xHa~H<~kVYYMH2KK4pD&ZU0E<(TczOqu9n+M!6*4&)f$<^ zF1Zjgv(n+p700zvvLdFX^UsuYt@>Jd)50Kbxn1Da=_${=1DE#SO;})A_3885Pm8q9 zf1VKfiYF|6s&it(Z@Ri;-AH?p4l3{;*PP=$Av2{ zB(A=?+I6q{UrntqjXZOnw@8HSzaG){fg<|}tq*uKt;<~hFBPP}=Ra_QS7 zhrQP_3}Se%@y>esddWLkX7(FP&s|N4K6>-sv~8OYKhWOpeM)wpn9~p6Q|p8d1@>o8 zS>pD#kMm*C$|%hoV^^tVmEIKrt8Sg0yo~kM6tAU0ptPLzMgG?dgZTc=DcgV L&t;ucLK6c3hI-^% diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_ic_star_half_black_16dp.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_ic_star_half_black_16dp.png.flat deleted file mode 100644 index 25da291b6928efb1a5b22c146906721df57e075c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 464 zcmZ>C3;>Z2U={-dmr6=eVtHaxPO5%lQgVD|a(r<~Vo`iXVoq9o zQchxWcD$ikN`Vmj1jYkQ2N+qDx*7FDi&Kk=^|SIb@{05G^!3t<5>tS>lM|COQj7IV ziW2jR)AEaQi*=3k(=u~XfwZ2XzJX~{s%5IFv6+QgvZc9&fl-p7d19i0ajKzlszItj zl710TFU%#n6&Wc7nYv{r_?)Cyke3ehLuY`WJ1>_M7m&&8>ERLtq!mDzg9S+5EZ$TP zq&9iFIEGX(KE0$G(84I<`mkB_&caCx7u0%$NY%?r&C00I-|?;K`@yvj_dbZec6!(D z1Gxop`{Jwq{GBB@+i6vc`4XNz9~Xv|t~FTAkuqpBuU{}h?beIbhQwzP$={p49Gd;`)0z%fRu0p?Xyyg-?Q9PG^Q9Pc_hc|^S=F$R$y=*nJ!2^6{SRmRUw8N2 zT@!G)e>VU5{FhI{=RP=kM1l3sDxsV;fydWpFPr^;8vl%`O(&Fp-T}oFgQu&X%Q~lo GCI$fiDyM4z diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_ic_star_half_black_36dp.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_ic_star_half_black_36dp.png.flat deleted file mode 100644 index 7ee7b6a6ac8e42c4e5ee26d0fcbac4ee9c661e1f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 652 zcmZ>C3q2XU7|xr4$IUPhdR2bbygXshd$hv^ce>SU)R2Bd<6=PhT&+C@}@7J2^2qBeht+ zq$n}3I4!>@w^-LmKP@vS6-etD>Km9QrCO$%8k<>|C0m+X7#JlPnkOb27^fN*=sj$dt0_{xkaYUzhyVBnFp`= zb@$=i-~2Vly6a|DR#t9xUUS&vYDdPBs2;_u)w&lFy0$tzH&hMC4%*^SZJ--4Lo9=D z8Ee%-)>qyO#a^&1W65%C63gIT#`@_xlkd?j4*XjjY)_O+UzxM7CtY)Pp~YeKH}#ED zmwOG*B2m5jy&gNsoLFOG=o3Ya`!D8?c6F_fFdPB*~b zhkHvLZ%H7p$ST%X4jaWXG?%ejtz-MOhBYhfJ*Va~t^YeUzZU$Nd8GdQO6JLj?4%w$ zt99U(SXEf4w}-`W;_cuC<5wH-J5wB}TQIq)=ZT5_F%bYqf150A_&r2uoD v$DDfwGc5yk999UL96o*e^y~OgF1?piZ(Q(pH30@cgQu&X%Q~loCLj|4@7(qS diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_ic_star_half_black_48dp.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_ic_star_half_black_48dp.png.flat deleted file mode 100644 index 436a818c1bed31498a6b14b3bbdc5c4c1cfe0207..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 776 zcmZ>C3h ziFw6o`9-kGnK`LITF+45z%(hf%-u!L$s!P z{XIT)V!3!}Y>oR}gT@_vcDosmbDAd{;=SRwgVFqMgV5)^1Fna7PJBMdYvHtm(f>}v zT9dmCuUjNHOtLgj=rCX|+EdE>i^KfELg@{iZPEo(4Vb&m>|ktek^XRsLu1oKqxP5S zEhmf;EMMO|>F8J3D41t_PDTFbEhBU02ED2q=Q+<6c4~dEJXW1{o9B#7LPP5{Ni_zU z1@G7#_~+kYc#(FBx54k&T?P$5Jv$jE zJnoWaD44}+&hTr+ZpID0ndS_;W)?9onCza%AhH6e?F!$HG;!%=-4NFIMUH)gQKN$yMZdX5r6%ijCt~MEf?by-Og`p!-dDgV>Du`auz` Qz}RQ-boFyt=akR{0J|qO6#xJL diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_list_divider_mtrl_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_list_divider_mtrl_alpha.9.png.flat deleted file mode 100644 index 52e66345aa266cfb20ae01610a98a8937cbdbb0f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 400 zcmZ>C3f*y$r-7| z`Xxn)dBth@MY+YgM*3-)IjKNe&rsjMG%3|G)zsL`!YtX++`_;p$&^Xl~ z)gVc~2&fn47Tt=Bl!8p%G824`(zDbn$V&(MqcgzIotI0B3&`a4^l%9R(qJ!hfc$7x zH#-zaN#qsy=YaU=;6G5{hO9&ikTS_D2uWsOVq#PPax{P#9T*@4ph3yN_#X)NgvIOt kN^yC*IEHXsPyWHrz{tqRAieEf7)XPstDnm{r-UX30Grod$p8QV diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_list_focused_holo.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_list_focused_holo.9.png.flat deleted file mode 100644 index 28ad8a12761424f5d3b4278a3d637c0231254bab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 464 zcmZ>C3qi155`PStJ;h+8Omji&Kk=^|SIb@{05G^!3t<5>tRWlM|COQj7IViW2jR z)AEaQi*=3k(=u~XfwZ2XzJX~{s%5IFv6+QgvZc9&fl-p7d19i0ajKzlszItjl710T zFU%FX6&Wc7nYv{r*qx(isaKGf4s?5GfS)@rmlPL}$?NIi5(K1qK$wFKNQRZhJO@$| zc?JGCKpF$g1d1FB*svQ&h2#~4Br`BEaVh{g8bFK=3?Kq5K#Bv1!Sqbytxu6LP@EB& z4`MTKItg-vxu=U`h{pM3lY75P)R;LNIvZUas(E!Hj%+hBF!C3;>X$U={-dmr_bmVtHaxPO5%lQgVDwW^qY;PJUi`K~ZXP zacW9@Mt)Ad5c>qi155`PStJ;hx*7FDi&Kk=^|SIb@{05G^!3t<5>tS>lM|COQj7IV ziW2jR)AEaQi*=3k(=u~XfwZ2XzJX~{s%5IFv6+QgvZc9&fl-p7d19i0ajKzlszItj zl0MKneV9vhD>70FGIh&La63uQQm-H{9q5P706%wLE-5Y`lh@P3B?w6KfG`IekPIu0 zc@Cr`@(TQOfHVd;0~E1p_SXhdA$bKM$qY3=!L8f3nwtDnm{r-UX3 F1^_9mbKC#` diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_list_pressed_holo_dark.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_list_pressed_holo_dark.9.png.flat deleted file mode 100644 index 5f49e30ff7becd73293f0305ac693257810e6704..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 440 zcmZ>C3<8kDU={-dmvTx`VtHaxPO5%lQgVDwW^qY;K~ZXPacW9@ zMt)9yd`eQmSRDsj-=bS+b?Mg@I9$p?PAWfpMy#ajHS8 zL6SbuPJNhDbSpAa3Nm%eOz^l#&r+`-FP)(?z|WnRONtBV9bQilmmna`1Hv3EK=Mz` zlpG)>kyqdkqA`F2P-HHT+X^5Rl2;It%)rFNsQ~0?05Li+fCzw$94)8uWNAU}Es#XH?ORxb6os+SAp~Wt~$(6Oai23dwdT diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_list_pressed_holo_light.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_list_pressed_holo_light.9.png.flat deleted file mode 100644 index a7208b9bcad256a3f330f75d3260f1c00c09968e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 444 zcmZ>C3=IMpE4 zAW0u+sXojtx)m8I1(~{KCionsXQ@|^mk#ttXMmqOFP9V-kjd-m;SvO-c|e$h1xWs> znUVvfB=QRUK{N(128ujs^SlM5Lh=eik{OtoI2C{#4IoAb1`q*|u^d1Qrj2LLoJk1l z?33aKsu%HeaSV~ToIEGC38EApqylL@Lwy6&q*TjPQ)4p=vt&zi3j?DhL-WK$ z1LIUf<5YuGgCzYTpkA1xbSpAa3Nm%eOo(!wo~2$vUOGc(fS)@rmlPM!i@cs5EXDDlsU*g p^;FLLb#Knxoio*ckwzB+-KciF$E;$?cIPI@JWp3Ymvv4FO#l+xd?^3` diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_list_selector_disabled_holo_light.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_list_selector_disabled_holo_light.9.png.flat deleted file mode 100644 index d0e676d7a9a838aacf14cba9fcf5529207d760a0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 488 zcmZ>C3QmSRDsj-=bS+b?Mg@I9$p?PAW zfpMy#ajHS8L6UwEP%q3?x)m8I1(~{KCd4^U&r+`-FCFN&&Hz7mUM?vvAd}bA!zBnv z%K&i*2Mdt2=ASPIq$KhR{BwXb7(l}Y%$5g|3%E|41yUh-1tG}{OiY{#K#m3wqXPqo z06<0Ai35O^|*N1_DN0?4DmO?m&4xPZ!6Kh{JDB8!|E&a4>H$QvMOn$yZjOUavK` iyV6p~HBbbOj_zlD62o{b{K;~#rJk;SF6*2Univ48lyX%7 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_menu_hardkey_panel_mtrl_mult.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_menu_hardkey_panel_mtrl_mult.9.png.flat deleted file mode 100644 index 49629a407f634892450be842921c21736c751713..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1208 zcmZ>C3QDS*wQckLVVp4K^Zfag>d`4nXN_J{x zd_iJfYEFD^NfD4J%_$LLpTKy4=>Q{(1f$XhiFw6o`9-kGnK`LITF+45z%(h(0{V>C)59eQNH+kn z0SCz6#ea910x5~S0{E?1*un8Ku5pgAL)Q`C8xxEbiYDznP_mojP1*0@ zca9vL+g@&}sya67iS7RI&~1&%eHM>8l>2_FgR4FS-(YFjyfaAnci;i1gG{#@ zLmr&e3H>0x;OPU4_*IGWEK9QA9_%*q+GNB!<X>HueuPZmU}M3Mz0iYKE|Po>2K^ zzb99U0gnXRv&*-` z%XhGrUuTrEsr&cn=K1sYH|IGx>2<7FDe#Z$UQ;3KwDmjQ?hyRvnE#-l?J!HbB%j_j zc84u09<6M7yY6w`IlwZv_yzZb?`&qD>(?V_R}` z!qwOZhpuXHEy(#g+p{3Do@>*_<|&Ts-0Xb6BhPI=vS!YQC36|d{SRo>ezob=W-bWi z_`SWMQ)G>0LlJ96y3=dNi1%CyYniWbE^zv{Smodywk5(2M`aJNWyiX9rd(#4QpzGC zbJ?14j%dXekqJQ)f(@IPX1V{IBkB-hB-zLy%bgqASolDD-ThTe*&Rh|Z)9I7Z{F|7 z(AHSb$SGd0sXrs;`-8jR?kcSI@l0#E7alM5B7}QM_IvmLTpsV4R;fN^s`5R;!F6Fn zuGWF0hCpY|S#UGN;WSHf#DbL>tC_?t&LsFS=d`Q)%rImR5fxnX%*Q;1uOKS+H!G`{ Y(c~RUm*)X91B0ilpUXO@geC?C0Lmu5Z2$lO diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_popup_background_mtrl_mult.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_popup_background_mtrl_mult.9.png.flat deleted file mode 100644 index 5d453a17602788e37a953456f534c8079598b399..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1780 zcmah}eN>WZ7Uu;r1tG*1ztR{#(lrqU5goOlrIhrTYdZN+3J9V`fS^0r=j*9Nv?sm@X{FAK;%7NDuI#@O$Kc&Rd2;Q&rpZsH^%k2=wh@~+pFgVLnMOmiM=3v ze*b^*I%NN=r4K!Tv<+l7iy5OB`zbL*=0?Mi+QHYGfoDTWb@Vlz^nop zjGqhBx&WILatEDirebUL7wYxda;EJTuo*MpM_N)C7f5jXx31;B7%IL&6Pjr``?bRy z+j00Y)4EPRO_b;^98L0LXx)#Ue%PYn?ZG!5{SNt~_7b~)#mgj+lD;;AWhd2Q>WTX3$1cxq#b&^ADKWerQfKA5rH!Kr_BXID~qT+=mc zR{@fZh?KSqSBXA=)ydZgo%R6!VC~1$MWewWy|%J2vs;a4y0Uz?UbV=N$ps5~Et86atnHW-Nr`_81-n5Wgs&zQ9jX6t9wuA=yoENvul0_Rf`?mmjcfMTRJqIl8)1* zzYlyUA~p7*+QQ*{uCjsn)BOa8at?fW-p`++OUnF6HvR3qv(yPR2ZSUZ_z0NFvu=UY}dW)r%WT1Pw{Qa1e;~E^)t&JWT$=$!`m8*A)f<#rO%%9)iy+NKxdQCtRuEgDB zdlsb*da`SK$Wm4K!B?mQihTF)d)&M;)z*>c2Sh`=em1#(dC~ZnTUs>1E8z8Us(21N zD=lz1o!LhcU*qWp6Rcn?o9+1?!3;x1;x%a?@aEQj!DL{xqp3_XRPRO((e)Ka9C0-6 zd4eh}6r5SVk7_pmv-|UlNIvSp6^uIH9*Zz@p~PB!2(?pOIT%@z+u3uYQ6Jn(aaT@7 z=tu-6XgoAYE0|0>p-gQf?0LHLA9F7#bn6^&1pUWG1bRv}qIx!Y16y2GoJ~BLN!ipB zZGTU7s^idE!G+xJI#qvkSeP&;cw0-XxMo{azdl!uEp2UOF=pDHxSA2mh?6hQyXb7F zY5ANW7uTmm^HCcExAcR9Z_t<37Ra^9d$?SUwl)B_(g9BG-N-D{|9F@{*e*oduUY1R zONoOpPG`0J50b;(%qrZUUP*QXAK_6IH8FujPoUp%Q}c|4JcPjx u#$Jkv3#N?((}u5yEw1XLCLBG4>%eHjSIrdfqj}Icg|T->vaaspkn9{fa diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_scrubber_control_off_mtrl_alpha.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_scrubber_control_off_mtrl_alpha.png.flat deleted file mode 100644 index c85e9830097beec616bc175b6f480a80b4ccf677..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 512 zcmZ>C3yC_XtqucRnH zCq6$dEk3uTC?`HKrywIyhz5QI<`t*q7v&b~8tJEH=A;5?Jwts1)1*|(R8wO!3$tWPa|;8bBt!GWL<8eg zL*rC~RD&e_BA{NFi*ze8QVKG4%S?!InqEO(I?!L80eCa z>8dG9pLYe!e=033%gX2Oc>GA2+pE>zS+`!8a5w5~#*Q#=+nEpl1e}x)Nl#G_E&6lO zM_E6k@0iWb3yah?U3WOvlGQ4B)ssOsOC&8skVj-iwRtjr+F$WRhIJ;-%mQJL5o++H3so+#bQl>Uqk5zGLuo^>bP0l+eTg0F=|bsQ>@~ diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_scrubber_control_to_pressed_mtrl_000.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_scrubber_control_to_pressed_mtrl_000.png.flat deleted file mode 100644 index 6890f91ad0ab94c0b24e2365991a11a44e9da9a8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 520 zcmZ>C3yC_XtqucRnH zC%z;KDVSOC*HuoK!|+;;{m1vj4Vns81+MoQ;UlAv+^_Yiu3dI_0o$H zQ-DS#Cnjg47VDQ3CFT{Ul*2&W#*&;X+1-I1Jk5b%T!ZiGYhk1OLGeYqa;J~ z#6$z*R72xbgH(egeV~QXw-h?LNJNymW@n06%wLE-5acS9v`>T!MhK z1PF7m07lBbJfNCo5ED_au}JBTzq)K>^^D}53cb=07#JV1>@cQKFR^hB8h zZ@k6ZtoQG)^Xw5+uDU7( z2c0J!WL~Y(9J=bDlI7ATi-K=gxy&@#QPh65BYvM7UrO6NC39aqBMh1KeRZts8~NMKO?U=KTlsT zy(lpSXjF1yaz<*geo0YcUU6D}QEsuWk$zfcPAZVrGt@UQO-i*)H8nP~FiW;Hw=ghD zGBi(2G%!vzG)^^0HAvD2TBr|mmTpBxNnF-PE(<{hJXXp&@bLZuf;sSb+*VDr# z2uQ1dFb4~e^yUl@1_q0tr;B4qMcmqJdvlcnMchB$-^1i%CYaN}9q~rYhu7oWLSFAJ z481qfWSV9>6tSuqM4k1@c_6sBa<=k>#>)Sb<@cViUcZ>Lh<~0MmGgn1*YX!$0W!dv-qRW?q_f-~6vg%y1%uDsxQAygkrJ=+a5=A9<|z)_)nToC3W3Dm78UDf}HPTPZ%t-~(dWQN2rb(%msiwwe7G}wo<`xD)P7sSac@XrC#44fbW2w?PoAbT&zc~B6!zopr0Du2zcK`qY diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_scrubber_track_mtrl_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_scrubber_track_mtrl_alpha.9.png.flat deleted file mode 100644 index 1298549a0ddb6978027cdc3ee7bc320b97a5fb47..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 436 zcmZ>C3qi155`PStJ;h`Wf{@i&Kk=^|SIb@{05G^!3t<5>tRCBqt_k zq!#M~_2w0)l*2&W#*&;X+1-I1Jk5b%T!ZiGYhk1OLGeYqa;J~#6$z*R72xb zgH(eg{UV@Vm}_(^GExdMb<0ffJ4??}uOKfS=$Fm_KX+a(DJ~$B*VDr#2uO=PT zkPL7V{R`sc75L`>X$Ec(0R%95KZx_PULQ!hC3l;8IE{N-R%I%1PBvOiGR~F38NwOD&4eEh);0 zPt1)^%qhr76k?yic!22uBZ~y1Qa7W1XmM&$v3^#5MqY7#p1xjsQDO>EcXDEKMryHs zNl{{6aaw*+Zn3VBep+TuDv;JQ)Hg6qO0`TiH8!&_OSUw(Ffd9oG*3)4FitfzPBln1 zNYXC?>V>&Pw<05@AXB%@1h2cT!MhK3J@D`umH)+ zeggA=ltf;Ee-1B@Aq>QVKr9Z#An+fE=T4qv2&4k?3PO?@m{`~pfE*1Vh5`i`!ve-& zU;r5n0w7ukhz&p-BmfOs28L6IJ%MaSc25__5Rc<;r|i#VG8AdAx0@eyQH7ONmD_;H z*nl~;tV6_*U5NVtPtO4+9*4;yC39-yyR84+yIHOgH0ww4)B5|>o9=C%;-Mn6|Ii&j z1Ka$M=8}nDmQD6aH`D)>^=wM~H{+>Q*O%{0RhC*GUYoJdCskvDV~6Mi&WDYnSC3lvtjal#{BTn3Nn}T%K8yoDpAAl$e|y zpIcIt6Q7t?B zVtt_AyyCR{qTFI#BmK0@oKzsKXQ*#rnv`mpYHDm|VU}!ZZed`QWN4n4XkeUbXq;-0 zYLKK~1k?+2i*7|mNnF&5e=~?O((HY?9&dVjm1!VGidbk7uX?-A8;9vog z8Wk@;0V#>R0{YQyc(q*qR-n*zC3l*2&W#*&;X+1-I1Jk5b%T!ZiGYhk1OLGeYqa;J~#6$z*R72xb zgH(eg{UV@Vm}7J+GExdMb<0ffx=PPduOKg-p)Zz<;2~4Oxj4AZ3wP5R%Nm#KfckgeU31kNI<5czOPNUOwQmYI4SUMux+)nfSh%yzT)iX7F_N Mb6Mw<(8Rz10B7K7nE(I) diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_text_select_handle_left_mtrl_dark.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_text_select_handle_left_mtrl_dark.png.flat deleted file mode 100644 index 78c0d53ad0588b42193df1059e285c82762305e2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 584 zcmZ>C3D?cNzI6qHcFTE%c zs6jtDF*zf(SihtwF|Rl+zbLm@*GNAtGba^D>lx}Bm?ouKrkWa?S(qhTnp+qcB^jD0 zCK?#08XBh>q#7jY7XkIc+@xEPky4PUTV_I>J4DfU3<&xq8GI>2cT!Mgf z1Q6?RumQ=3YW0tSK_c$y;uuoFm?V*taCqNhu7+=Ko825FdKOyl!kG^UKFFIN*O1?^^)=7V=!7_a zhWQNHjkX64UDQ%Jz`)F703jF?#H!-BbIxY(zR`ZUY{Tq@xi3X;lr~6L-|LUAu-#HW z%RO?_vwMx=+NNA@)NVeAmD%dAZ!L4XWBEv&9R(3D=x}N*||8*52yAnm# zY|Z8TTmMP*7w>KLW9k{-`QNAWzxi(0(q0<nIDF#nh KKbLh*2~7Yue9{{L diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_text_select_handle_left_mtrl_light.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_text_select_handle_left_mtrl_light.png.flat deleted file mode 100644 index f039ce5019dd577536f3277983758bdf13b0b233..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 584 zcmZ>C3g9R8Cgtg@-j3ao zfeox5PQO;*X8Q5;@ziMUm_p?T@50z3ns;Y4GVtAH`kcjJ!F1>CW$q8W8_MP?mUEwZ z&GLBO92oU^wG+KD%*kWv=+|f?IrL##?mvGVSIoNIw6&kb8am zH~-HX-q-F}e@I&D)_7M%dQbP_Z!c5ZlchhJR6n`8V1A8CT5i=7j&=V^AO5^A+V5oE z)3kM)?!y26`&{-X{yy@9L!NdG^Or5(#MJrt+v_e?tT|X)4-6;< NPgg&ebxsLQ3;-Mr-cA4j diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_text_select_handle_middle_mtrl_dark.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_text_select_handle_middle_mtrl_dark.png.flat deleted file mode 100644 index a351f5a05da6f51b0813087fa5b4a945a473ac4d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 836 zcmZ>C39aqBNaRKeRZts8~NMKO?U=KTlsTy(kf= zRzEp0IU}`LzoaNJuQ)BgD7RSGNIxwzClyHR8R{FDCZ$@Yni`u~m?c}9TNoH68JZ_1 z8W^V<8mAhh8YJl#0rkRMrCX7aQjn=zWgJLlZn zb6**5oBX=^lio%>yE*SG>(c8Uf1WF`dS0~tz2y&0&MBPDsP3@p6RRk23XYKKQ{r)) zo$PU0pn~D-guJMN6K6Msym|X==4-v4zaFK^1>&<5m@|&asUHs7Agk!n;&h`kM4f5- z0zsjrZaG_j8*dkM^yqQA(IR5abbS${&~mml+l_Q2R|_^osB~=g*rrrq`AR`-_3={` z_Ql>0n{OOxf9lbvS|FIEV7B_`q>MvChT?J^&UW1+=|*@;&)_|_QZYVQehJp4h6?~8=n%tr@;4p*$U z_%JtdPOwbH!rZO=nmyc!oryipI}aV;>M`%pS$e-cf5O#m7jwcSb}apU_v!R`7Eu|m z_Jy8z>~6B)7yI(fZ&K%OE+%=U)$7f73u=^n)@OI)|B`1TdR6bp)r2sW>8&bj3M)=? zCdy7)Y!zWuVG||(`e!biS5A-iF&&lT#p*Jx?qctI?QD)ptUhC3-z-5?Hlvtjal#{BTn3Nn}l3Gy`U!0ngnp_f} zk(if~lNz6!nF6LtigMy}GSf3kgxDuA9$-4a$f7iZQ9raewWwG>D?cNzI6qHcFTE%c zs8~NaF*zf(SihtwF|Rl+zbLm@*GNAtGba^D>lx}Bm?ouKrkWa?S(qhTnp+qcB^jD0 zCK?#08XBh>q#7jY7XkIcoTXclky4PUTV_JE`}7L((iu7f{M>oDq_}{--vW5Vuoj zDqp~M$=~!w=6CDuqJbwEj&9(Mvt}}1BsFP4R?aq~GtFN+9CU<^x>c;YmOgU*LJR6K(+4hb+Zo&E;DP-7E1nDVsODEb=HBG z8sQQVZ76?cPw5RkqH5x zb!m&8{m-_ddy<`>W8stswtNTPAK5#}#OGjE%;9hm#TJ9E52DvM@&!+@oACS>|3{9y XHOA9+*a4FWgQu&X%Q~loCLj|4tlm*A diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_text_select_handle_right_mtrl_dark.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_text_select_handle_right_mtrl_dark.png.flat deleted file mode 100644 index 7ba14a8ee7bf4600449fbbb258729fd495d8c314..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 568 zcmZ>C3VE|IK^;RgqUuh1C?>vK(mIHFYh+hHaUm+6-%QBdibn zGCJ@}3yg#g{4#6UTG}vE>kc!2!&lXYt#cV(b2AwG?qIWHxOR;}jNRY>12Yep_|R3_ ze_$@Rylz1$%N$##boT?Z-5;D--6mIQ!Jrq#x~%hsq(#K!c)O@4n>5~Sd1TDMp1r~J zveNtYpPLSb7?!L*G3VW~cL9u_EC3}HPTPZ%t-~(dWQN2rb(%msiwwe7G}wo<`xDKBoYxPqAGjrT;1L6xL_z~2n26i> zPH;!@!^N!Y`WiO7KX}7Y@tH%W^6CX;e)a>ds}Gn6+A_0ee>&~n9V2#hZdeW5g9P4f zX;Dx9mc|*(&}w@pI`i_~E3#S+a#k_lj_3Z&bZpoY8OvjRckUII3!YngSI2+f>9F1U u%x2ab`}x&QTK!|ZxAyX>)p`l?rLQh#2&C;e2n-hnPgg&ebxsLQ3=9Cv>ddSF diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_textfield_activated_mtrl_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_textfield_activated_mtrl_alpha.9.png.flat deleted file mode 100644 index 4f68c47bcc9777bfc4c55a1337d47fc7007e5539..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 436 zcmZ>C3S&PXlRFDXjQD^ANV$}QG4(of6GNd?k+hWZAkNvW2prp9I#X33W376wL1hUSTh z2F9s|#;FFW21)uwK)o<0=~iT<6lCg_nGoSNJxjfUymW@n06%wLE-5ac_jo-$T!MhK zBoK>numH*V+y2`EDT%xS{~REV0saF;Zpccc04a;Sf{C3!lYZrT`5| zPE5{7E!Hn7O3W)x%P-0;)-}>k%gjjy(t3va2Bt}=mZ_%3W)^12mgW`)MoEU|iHQcr zsfNa>2B`)~`b9v!FbC;YWTX^i>Xw-hbeW!|UO`?uLuY`WJ1>_M7tm|Go*phiKw1)r z#W+}i_ZGn_TUV(oOkcI;$DC<9vHc@N)4Wumc3PO?@n3$LpfE*1VMgtrM2mz1< zAixKq7#L$(%Vz`GQl2i3Ar_~T6C_v{Cy4Oq9XRn}eu%D5^HqI@^V1laRja~5&Sda( M^>bP0l+eTg04{51WB>pF diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_textfield_search_activated_mtrl_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_abc_textfield_search_activated_mtrl_alpha.9.png.flat deleted file mode 100644 index 03b714b35ab1fed9dfb64fb6bfcdca10047993e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 444 zcmZ>C3+y&wtU={-dmr+VlVtHaxPO5%lQgVDrYDGy}W@=7Kd~s@G zQF2CnVsc4lSz<|QN_=ifQBHhfPC-VZ5c>qi155`PStJ;hW;5!C7N-^!>u2R>FcEzC8hvPOHNGANG;YcDN4*MPRlRKE!H*CPs_|n1=4zk`Ua*+sg|jx#%2~~$(H68 z21ZGS=81_0#;JzJsRpSAN%}=Vy)c*QR%E0UWa^fg5bs1iOTB`;bf6zQ1N_{1xum#& zOkPh9mmnZ50mN(^EI_h&(X<&LfxH6$93YJW{sTpB$V#LDDT};C3W3Dm78UDf}HPTPZ%t-~(dWQN2rb(%msiwwe7G}wo<`xD< zNrvW$i3Y~0hQ_G|sRl{C3<8kzU={-dmvTx`VtHaxPO5%heo1CpW^!UlW`16LQhIz& zetCReeo<~>ju86<#sf?T7+EA3m3kQULyJ?3iuJSdGxCb_^Yr!7ixN|S+LIHLGg6E7 zONtWniqnAFigk_j(=u~XfwZ2XzNuMavRRsCvbkZ3r9p~Gnn|*$d1|6big8-1v6*?I zk$w?SFU%>r6&Wc7nYv{rc-*9CsaKGf&d?d)=g!L|#Rc>ZucwDg5ReuCVGfZ0tY$3O z3#26S3jA|Ge01<1C~!koA_Yi=(&^?%Kc@S~r7}f#KCOR)dNwAJ>4a P@pScbS?83{1Y`mLBKmGT diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_notification_bg_low_pressed.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_notification_bg_low_pressed.9.png.flat deleted file mode 100644 index 324ff8e46d1f443d9e464f191d86e31ec7904613..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 484 zcmZ>C3}Sz@wTnq{)NVTz?eibKcMc(}|3k18&)78&qol`;+0AR_1w*UYD diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_notification_bg_normal.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_notification_bg_normal.9.png.flat deleted file mode 100644 index ac16f1942563e3509df0f0706811814b41e00420..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 444 zcmZ>C3ju86<#sf?T7+EA3l{y&pLyJ?3iuJSdGxCb_^Yr!7ixN|ST9Xr#Gg6E7ONtWn ziqnAFigk_j(=u~XfwZ2XzNuMavRRsCvbkZ3r9p~Gnn|*$d1|6big8-1v6*?Ik$w?S zFU%Rb6&Wc7nYv{rINYOWsaKGf&d?d)=g!L|#Rc>RucwDg5ReuCVGfYLtY$3O3#26S z3jA|Ge01<1C~!koA_Yi=w)%*D#tS+AB>(&^?%Kc@S~r7}f#HiRtL5Pm-S;4CJYD@< K);T3K0hs{Co@!eF diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_notification_bg_normal_pressed.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_notification_bg_normal_pressed.9.png.flat deleted file mode 100644 index e80cc6ee86bf79a097252a204b48a185a0e643ba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 484 zcmZ>C3K90%g>U={-dmwHN3VtHaxPO5%heo1CpW^!UlW`16LQhIz| zeo<~>PJBU8YH@LDiV*t*#sf?T7+EA3l_oIihZd(673*i^XXF*<=jrRE7bT_ujYv*R z&PXlRFDXjQD^3GyFV;2EPs_|n1=4zk`le=y$!2Mm$>xSBmIf&%X(q|0=BbG$DaL83 z#%AV;M*2XT^kL4?t;k3z$kZ(}A>b}OOTB`;bcW6VKX+a(DK4P5cs)H_f`GID2y-w2 z$q5rP%z%_cUV(oOkj4Q2fg(3#B~pM?NM1omG6NG6rvi|p0mSIQ03yHvq8z8B`DE)_d1HBn)h*d4m4O`K>FVdQ&MBdZ0RYU-ex?8b diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_notify_panel_notification_icon_bg.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xhdpi-v4_notify_panel_notification_icon_bg.png.flat deleted file mode 100644 index 9d8c87cbd38d1d93325385bd8f45f699c6e636fa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 380 zcmZ>C3(XGfxDah09Sy@I@Spnp08{M>oDq_}`gUQZ8~ARsLV!W>LMa!Ziq zS0EMW>EamTaXeYz2(L=d8qJBR3nuP#nAGU@EXjP9*0UtTSy9gxN&C7M2lgymx07S> z$~?U*8BsI1jb^z$d*pL{@yhM(UrC~|T1y8sPm@O1Ta LS?83{#J~UmQ!IUC diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_ab_share_pack_mtrl_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_ab_share_pack_mtrl_alpha.9.png.flat deleted file mode 100644 index 9be5dcef395817d420abb4d21a9f33eb6c899200..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 520 zcmZ>C3QmSRDsj-=bS+b?Mg@I9$p?PAWfpMy#ajHS8 zL6UwEP%q3ex)l`}DFvCjWhQu?rDv&EkeA*W;OEZECB+5w7O$s=OAwGY0AUUmAo-Wu zkOxRf102GC3vUX+*u)SjFO)L5)v zQk0lioR(jdTdZrOpO%@E3Z(T6^$kpuQY}+Wjm<2~k}b_G42+Tt%@Y$1j8hGbQw>rL zlJtv!dSOn{t*FRIDah0N4R^baL-g!`SDFS3{#iixP1Sqq%4zr6YP!juUr zo|9BEWjnu|KA+EUW1=SG{?@}^Pb>$meU6)fjli;sk7c*w+G z-*4C+Tlegnm&K%vEOv+E&Dn2$*U!Ijw5EBUb#cXkGjr#)y)rudXh!G8Pd?qt`BPSD z_jJFO*O>ZzgNKCXMaG%8KJ8-E-MW=cBB6m1Kk@(1?5{2h*IKk*Zf|%H+Pv~!O_XWD z&E(gm(&F>B#ab4>%s;)=TRdJB=mpPT?>MIk$3=dWy}KJ23JjjEelF{r5}FtQ*`~uM diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_btn_check_to_on_mtrl_015.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_btn_check_to_on_mtrl_015.png.flat deleted file mode 100644 index 755fc3d89a3cccd7bb1fad275f9bd6637c3f8229..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 824 zcmZ>C3D#Sj4@d5JzMi!-BM*Yy@)S_bjto)3;;`}^)z4W5Q6rlFxM4-lE z{gR@@yyCR{qTFI#BmK0@oKzsKXQ*#rnv`mpYHDm|VU}!ZZed`QWN4n4XkeUbXq;-0 zYLKK~1k?+2if%*?VV1f&x{n1cmKdQ9BE znSp^x!qdeuq=NCyMZ;Bx9eCOf-Yngm>C89r^3OT1AMY?!dGI3kkde)Wn!Q|qy)>6j z2?7z-CU5QUzfUl<5t0(Spqg0`<-1#X;oU7&i&AU<=L(<9y(g(%a`v=Z&0M9Gm&0%D zG5P!J|N2AjD&GaK&EZ`(KUk&w*UVj~d3WzvdADF^yYrnZACJ$wyF`oMxlp41mPKXx zC9m=odqUqUtzEE#+5Ca&-U|oog-$tg$?=ywIa`AW4bPuc&NzK}jh#fL z?$OUL86GCOA5Z1l_<`qhg$>gulh?Kk(d(jGEp5!Ln9o0FGWnw%u$fV+t@EVJJnprP z#~UxyD+IpeUti4W$^PuxfyY7@v>Ak&wlMSyFO1^s-S+u+#U8Vb0S>%dyehc+pQnCd zxxyhNYwi{&CilFd(j$tMxxcu9apl8vcYoac#JfRJvSJT2kH^%wT$_K4sw#VLSJ(i# zW^(@-m?!lfH$Tvj^7tdKfr2WKV|kz<xB-p;@*ZyWRp3uBa>V#bBcENeSiq!soeH&E6%D~WIyy4*Q{9PxWsQ^_n Oc)I$ztaD0e0x|(*a7Whw diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_btn_radio_to_on_mtrl_000.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_btn_radio_to_on_mtrl_000.png.flat deleted file mode 100644 index 88836dd477e807efa4545566772fd8d5ea9a50b3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1212 zcmZ>C3O5YVp2}3eqvH`d{RkXd{JUbW`2B0 zetdpjd~QimPP~DEfe`xy#s|y?7+I8h8TCVpQ;UlAv+^_Yiu3dI_0oYFfZCH2lQU9_ z^-GEp^NQ2*i*k!~jr7wpb5en{o}s>hX;P|Xs;RM=g;}ztxrKpIlA(EGqJeR$p>e7~ zszH)|5l}D8DY_LE87T#sx@9JK9i>;0m);rR=g!L|#Rc>VucwDg5Rgs)VGfXAJtpqo z%)r1r-_yl0q=NCyRl{sCZ;@jk@1J|K+B1=YmCANWaDo? zT~U)g)n-fj^>wy~uiegHwJjz7F5|-mr|r`;r{A2REdJwSarZNy*+!X{reqe2*?u?V zKI4`hrf*p`K}hLbh3d-G+fSPI?RY_}iSXzI|`s6+p)BV@a zTC;1oE-WltDBz;{U{2-hOXY(1W;$7PeDbf-{&~%7-`jP<3RYa+c?w7Ao4Z z-LEgoNpZ%9sM|kJR$q7cG5zG{@^zK^ne*GOtGQM0bk(Wd{?&hu)1UrKZo%a?KlN@2 zJ<@nv9PKw_`8j7*um8<^J}tDFTJ+>L$KqH2Sf$TCS*g;`a^!xOq|KyRGq&=I3%Ec0 zr;%Ub_u~q~(fnhn4>J2^_-dBb3o)(p{&v;!Ci`+htInER?J`@p>F?}YklbYMJL%N6 z)f%OaovXKn`WD~gxcj|6EUWii_1s@3kK(eIsBPwm<>Cmtvh)Ae(&M6Bv4I*g+t;0| z4u}?P(feI|bJ~(q$8+Rb^)wCUFAkriJAL=<$BbgChwscie@>|+@6u+w)uEP`mDpmx zrk(LVY4G31;Y|&@lH8U}draKKBbCnGK6QEdw%2N2vB8g)-JPR)vuK~RFzcBucYdB^ z;ff7TIJEql=WNFpY9E?z)$#r2SsEDdXyz2-t75yduWYKh`uwnHPt$~U*HbsA?dINd zYgfuMH?4$qrIG8(rlu#X6*MsEJ*1&wkb8q8!uSGbvY9kv^)jG>Q*p`(muL7%Y*&7o zetk)xQReoOTa)*Qe^{=2Mg9@9{Nnn*25!H*-@Gq-dxNb(qb2c0jZV$yxnHWSRLswF zUzl{{tMYcvxK7@oV7irjtnDVMp;wlpNH71@;gmRs4)%$99zDtwssDG^fAamnS-+;S~04DC>aH_2v-TjFfxQdB;kmW3>=FPOl9ICnK&i`M~`HM;h-?MszQd8P^Lpl_DGr( z1j{C~*bo{sl)+{)AeIz~Kq4m*NTFmlB$7p7utS(EIvacx5<(3lOV|%i7_&YEoEVyCh}L&>Uk#hIpZ-6flX&0GRT z$lzEm9Al_GZJVonRHMGeI_-lJ*S8?y!|U@gHt&s9+^1?bdE3CpU3~IfHYq0}&>r88 zYt9`vL{{{-%ndwD)Oi$Z^xh~X`f0&>RoZyzsSjt~+HLI6?^d@F)xYHQiUSZDZYjig z@pxP}0NiMH;)J4EqXzy>Ts-)`!_Oy;m%uu8VMBAsP1L zz39M-vxDApt={X6LbWBYy|yAqNJ05(zCG#_*Q0ne)2-WnnlI2z z|LeJ5jc?6$kLIGDo{e{s4o~+9&&KClca`$pZK$8N8zD$jWLnv0F!ord zzB9(mwrz)IMCxIc-A|?+IAKm3`qc)M&hk>I zPby1oxUpXcD>4*1M$1y-v>LDB6>s0NOYVp;@0)$}JTDqiXt%mC?bZvFHP`dlvv3pm zDnm*i|5C*Z^sLbN;?R%l4RYUAD&{m@_t5OkZ_nIRN$k{G*iTuT-AECIswWL*PnA`y z76-8F)Ogo&7b2j1glQeZ3XbHSTftEc)T9eh{{LEeFM*V}QuOw_E_HIFc#Czv z)ewX6r1OWFyh9bOZ&8;P6SL&HG`=V2V#HcpWD(!W(QjV>$z?|j8M~%eek<7CZ-T9m z*xS?W!=&ueDp=nMh?;2%anxd9h1 zxhxd;%LSmyeiUpt)+Y#u#QOMp`GgX^sNn&jz67sOk{5~S6&y+l^3vc!QxC5YscL4sW8-we18G2iCqcpV0D zToECX?R@^dzT;03+~c|8M)!UqFMq$t8Y)jK?o5<|y#qoBHShVP9-nqm zcyo{rT`Nu&b-kWxqk?%?ZnOR#{{ATZu|h?bj-2@;g^Fv+MNVR6pcE(TQ&nKtH&tOC znHU=H>iO^}&hLiQ^=j7hNl%UxN8Ra}$K1$BTfy2|%xeY}{~ZV)9lOx*YgH;ctJg><@&ApguU0e1$qL3<(PltS-BhMNVPrh7JY>wCuUD z?#rOBq!*uF?5YQUkzmk3CeRp=EYO>iOZ&q3p@7`bAjXz2& z0pPJ!l~s#C>T9aDVc-13A>h60UY`a*BkAog6$%q)_PoN~EeoV5w)g^7kzy=664_^x z)Ba`4LW+=57SzIcd&3sC0gk&Gm;&l}=E6ia-Wp*Ug-Onxzi)j1@x#7H{ZS3nReDM# zP=w&yCAsXvg8~iDqIkqvsT@jzIZ&CZH$teK(@`^=qYhRLACQ^|3ppUNd?;B^a+W1C zEVgS|&4%;-%;mwVEBQtEmMUSLjjD&Y!@s+NgOc@5Bv&e!p{ha-#>OIu4fsB{3BQ-- z>ZOnIeZ-ZH{QxDE7le_q1cBx+i#<}(T(Hp}@|Y)jOZAPUwbm+uE}Ge-ku{nWei^-KsgJ>>tnO zC=IMJnV96J+cW^xJAbD+Km5`tuK0;H<2DN}Zi)!R+N49|1I10p;7mX3UG}W|!sNym z2UN|Qk7y_~TO{PuPAiS-6nuE&N%LsH40dL#Ws~sLwZt*2o(FMH>1IXL%U&h30%TV} zTg+prD=LY~C{zFJQsdh3WC``jtUPmLDmA0H=L*Rf7*$)Sv_{>y>e>`ylCn5T5OQmR zm7`w^;)O^g!=wq(}mgLFI=qLlPFw98(7=HfpzwDE3?{ z7&ZLDzpaZyvXpuyNj}R^=_t@ z6zd_+f6pCR##iLnxI1VhIdkfd`UdtM&xq25*DA^j-uQW>w`R-2a9GJ*%Ubc(R`IRw z^&@s~6U+v$Qz{^HEn%}SR+=YZnYO$yg6Q9(KfhR+&ElAUcEYd=IJz~-DW(3hq>6L+ z;Q18odK=+_k>;^mdZE16pnv)-Gs-D(q?AD3gx z92SuTcq%Bb%bo7DFZCt6olm}VSX!a`_4a~)OtUl2NyYBdAo;>R5Y0#}v7j+}#&lxK z%?FlWVr1-nRw1FqYjaJy5YZ7Ks%`{sYV%~z2}}JpuqR=A;~}T&?mE5lnc7}dWPv2ahV5u4~y1*W* zO{pG5$=;~C(gzHdgYL42gatliIh_rCSRjA5wC^(WC=KeSs+TQd{Ed(TM)MD$$$$u9ZmS6}1J zG*SJqYvu9uLg};4xb?F)RkWiHF21_&|GYy;ktZ>WoN!6FZEIBS`_~m!16{0>HS-oC z?Q@9_Tb2%y>2i!cYai6b|I2SCd&xfCMK@CnA}*7yRA~&4>-i?&UM>06;L>Wxy@@F3 zgQRPXWKEE`lu4ZVAcMZX*9;y9@ga*;UPJpkTc}%aMyyTmLApz~v+ia8rkWYK+Qkr> z&A%;czh}9?AmZbS`14a5AJPWU;_5mct7}o@2Z;=-s3=T75e~hhHH$6;z>^PSBB@cn zW0}oopN8DliX9{dPNozfw+6Qda3W$NQ+Lr9-~5;~llOn2VcON(CJKdFPIkod&fJZ# zOsd=uvioCI#^iWbhT}?NM|sqNgS7bg_&sulIkvN+rG}=|Dm#FHd-}-$`2gYHY$1^--~`P z&3Oky1VMC@@UOz5q3d4BKgc7WBw=~k`r3|0xU&WQsKqhOr}ngWhhDV@L^q5DE1civ ZeF@cn$DoH3cD^*|;|`V&%)R4)KLIQBrdR*~ diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_btn_switch_to_on_mtrl_00012.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_btn_switch_to_on_mtrl_00012.9.png.flat deleted file mode 100644 index df81fac84113a1eb4275f153b3bc5e88a4c1256a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3076 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 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_cab_background_top_mtrl_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_cab_background_top_mtrl_alpha.9.png.flat deleted file mode 100644 index 37a5fa8cf9dc474f442f893395f456cea277ba75..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 484 zcmZ>C3KoCD&wU={-dmsUzqVtHaxPO5%lQgVE9Vp4okVsdtRQGRJ& zN_qi2h0Z;StJ;hrZDP<7N-^!>u2R>FcEzC8hvP zNlr}8NG;YcDN4*MPRlRKE!H*CPs_|n1=4zk`Ua*+sg|jx#%2~~$(H6821ZGS=81_0 z#;JzJsRpSAN%}=Vy)YN)R#ar96lCg_nGklHo~2$vUOEFqXMmqOFP9V-(0ja|9xg#Z z+5?0+Sb*gJC)HC37*1TmM13Vr0ORoCC6tb$0z6K=4O_}7pEo` zC1=DZ7G%cfmK5d0C*~AnBnq)lV0^%QfRROM3Zs5#acWVqepY@)UU7b&zFvA!VhYfd zq+bNo3v-cfMMXwRL8fk*2{CTdE67V{VCW3+bLZuf;sSb&*VDr#2uLS@ zFb4~e^q9DRGmu*D>Eakt!T9$4LS7~ZiK7qd*;tq#8tw>IdE+a=*j~%?;mXeJOZiP@ zM^ro~fzc`5`#DzG52kNmFS^peoSh-`!|7HMpG|h7sX;LJmd25}gbsb7D1Dp@}s eV&x>2m;Ai^cV4fUxWyOfWCl-HKbLh*2~7YzOP^Z+ diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_ic_menu_copy_mtrl_am_alpha.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_ic_menu_copy_mtrl_am_alpha.png.flat deleted file mode 100644 index f3d2877d3dc0e0592b88095f6918cc3033143178..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 496 zcmZ>C3D4RQmSRDsj-=bS+b?Mg@I9$p?PAWfpMy#ajHS8 zL6UwEP%q3ex)l`}DFvCjWhMlirB{%b-WlNM&dVjm1@soLr-w@rkoEv!4i+H!|4H>3 zAa%~u#WAFU@$IdxmCS)6tPg#~q6A7c)&-rJ+OfIt)ro?G70;f$|GilJZj-!OqaFV$ z34`ZOA$|evve$$hrp}$rEOp>K)7g5d7oRRWd~5$B?4i&owQNo0qxUDf47c)MdF+zI zZdDd=xbw%ikgy9==D3Ajm^Eiw*oDb+-mwK7D*v#nW`Y9~rwSTz!5U-^i;%|xdxok> zm+x{#O}u=FOKS4v16->t1@2Ef#ijLP1OM|awc=r>%G2(AEKfh!;ANgs&+>)IK7%KU VasN^ipwAdQUHx3vIVChP0066^u|)s? diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_ic_menu_cut_mtrl_alpha.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_ic_menu_cut_mtrl_alpha.png.flat deleted file mode 100644 index d76ce96e9dc17e77bed6e1a1da490dcc76bebecb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 936 zcmZ>C3tShlM|COQj7IV ziW2jR)AEaQi*=3k(=u~XfwZ2XzJX~{s%5IFv6+QgvZc9&fl-p7d19i0ajKzlszItj zl710TFU%pj6%`pN1(~{KCU~5rSCE(98Q|y6%O%AH^a-!0hf5HU_5fiH79jcmN%a{9 z2Buz57srqa#<#azrv(R!v_8ywctL-?**oTg?G3xLmvomGY?o9}Z9aI{^w;A#N2ASU z;kViHho_I(|rw(8#YC#v5L$0t13UUSg=t~L;abB|IIxQM8y&+*F5>5|4R9w zw#@M&_XC9v)*EUP-M$<;qt=`{6{zpm$>hodXE>fKPTTG?rC?6}@9c;N-0m~aR~*~i z@Hk~rx3>k~iuUq9^+HU2yXB+Y4Ea0{6q;v9Kboi_lg_={JCZWampL{Q9wYj)Q zw|h!JuVZb_W3lfiCpAFKNln6ji)Jkl5i|5W^U<>^ zV3vhv$g*Ue4|4>~43?@qXW*Q_&YT(`33ra{Nk3AYXT z!uIu5cBHPmZTO0N^{ud~stMb^h?Ml)ii)^knAKhEczj2w;qjMN$87cG^d;auoJdsqZ9#D5YA|>~09m_ZCW9F&$R=@ft+Dt!H_4b7IF`n-`kA_uA l|DPXtYk}Dc-d|k*)|`r$D3{m^OrH#%u6{1-oD!NC7yxl%lm7q! diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_ic_menu_paste_mtrl_am_alpha.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_ic_menu_paste_mtrl_am_alpha.png.flat deleted file mode 100644 index 167c881b94020a195d312ae1612e584ea2e9b221..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 584 zcmZ>C3KETMLG=Wh+v^ce>SU)R2Bd<6=PhT&+C@}?SLULkq zMryHsNl{{6aaw*+Zn3VBep+TuDv;JQ)Hg6qO0`TiH8!&_OSUw(Ffd9oG*3)4Fitfz zPBln1NYXC?>V>&Rx1u5=r65zc%!H7;^a}FQ85lYP{M>oDq_}`y;`Q`!2?Ej{Ak4u6 zB>z9DJ_8H}WltB!kP61Px3)&QBnr4C-pOp}Ehy){$kX|e>)NU&v5t}d^=%oRVi|L^>s~cIOlgp^ zc)s0lrKe3s@BS!XlZ*-fUv=uP=wOhJNq9LW^3>j$&qchq=Lj#m!TKawzIt>1dEJEf z0`o;fo*ZfXv|U}h;AMl7v<8D&{VB%E4Mg(v*<#~o&H@jfgnRS_sYw`*vvjD?(l|{B) zZ@O97IUj`VToWZCoYbBD=%VRtmV5vD1gHEE^jP4-x|g9C3l*2&W#*&;X+1-I1Jk5b%T!ZiGYhk1OLGeYqa;J~#6$z*R72xb zgH(eg{UV@Vm~(V1Dl$?EGIh&L2s%u!ATPZ$z|WnRONtBVHC|5-mmnbR0m2+CK=S{S z>N7y$L7|TZM%gZ+WsBqR}{(0_g(~I?< z0+&23pU+XA__N@mXz-WiU)!g4&U=>|CoXwo|DO%}>Wo$_IKp?;v0#EpK%0O-kJJlc zwkVSeqHMcZ1Kw<5H#(t^xce37`%I>k368%+LM!&EPH}cV<**=J{k_ zDsw`i`O)$~pq%ahw^@n2%x9%CxR_IUuN1d6m`$oXS{cHg`)9#>qbfJCcUlW(&-D3Z jsnYAnCYf?U|G&bIyVq`HrUE_2;OXk;vd$@?iGcwCW^J?? diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_ic_menu_share_mtrl_alpha.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_ic_menu_share_mtrl_alpha.png.flat deleted file mode 100644 index 7d1f5126c7ec866d04d5aa2b7d91936394a3e6cc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 928 zcmZ>C3O5YVp2}3eqvH`d}eZdZfag>d~rr% zQEGf{Nl{LGVopIuq7eH8#s|y?7+I8h8TCVpQ;UlAv+^_Yiu3dI_0o$HQ-Io&6O%Ji zi}g#267!1F@{4kdb&d4XGILUaw4R~9foW2zWvZ#MnT1)hrMZQHQIer~Vxoa@s-bbJ zL8?KLei2YF%qhAR6&Wc7nYv{rcparzkeA*W;OEZECB+5w3a_V!OAwIu0AUUmAo>4E z^%({Rre;qU$B+ufx7V3Bq+AzcxbSzvyc^qcXWMUE>y&eQTdunOwzncl={eH=+HUt} zR&MA1{$)Y=P$HoE<~@iVM?Uzoh+P1kv{%BugTKcDE~DPC#i>NV?$q_Ae@>sFmcN6=5bf2|duvjg*`i~_;Xn89mkC#o zz6<2N_F>~1!EBT;rv+Ke^l z*93nlxR(?2>!rr(>C9JMC+g&HIn`6R^5vq8dqFdo>k1v+yvD2MZT-Zy$xkHT6!1>$ zs($)XMzhjw-ZYPsi-m8s>CL+EFL?Gz<0BI_n|B3@|J=8sZb_2;)XEz+6WiEB({=<; zT~y&EXP|d?Zr*|-`&(K;8@BiTTYc0vt=nLA^j59!F|*cPOHh7ZbwD_;@I(FMqgr+$ zd0V)BWUnqh_peI(`qjKZ-(}@f)1Kbj;uA7?>E3lQo3qadTul*=o$~tg{f*a3z7;kv zw|OYFdxln5de(F4wRet(bzgYF7!|yPz&?-M*qb>(aq8z3(gB kW7DLUu2?i{)~tBOR|+PVU6)ID0aGP|r>mdKI;Vst0GETJ=l}o! diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_ic_star_black_16dp.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_ic_star_black_16dp.png.flat deleted file mode 100644 index 23d50692e111494e247704300564e11d7f0a5047..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 676 zcmZ>C3?a0vp^1|ZDA0wn)(8}b0XJjv6= zF{Fa=?Lp^;uxy6o5AUDdmOVZ9_O`H_+wSV!-gejQcA5F@vcJW=`({?2zb$$Gvw-3i z%@4T?qK-H*1s2`=+_!{fmLrE@gM(0OG)Lj&6D(b9FRt%m>56@E{Vhw=oD-+t?8r0w zRK%v|eMI`nQ*EIKtKv=^&)cCP6h5(k`cMArS6t-64hE@Anl$y2$r9zmGtWuoDe{GA(+v z{NW3EepLqFpA9ZH20T~1soYIH|L`}4%}bAE)`8FOn- zpLpG7IrqfgTe~DWQo00Id1}z5oCK diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_ic_star_black_36dp.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_ic_star_black_36dp.png.flat deleted file mode 100644 index 1cf7f96977439efb01d48deff76c28c713471ef1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1200 zcmZ>C3&###1DAYCQDS*wQckLVVp4K^W^#OSNn%laQchxW zcD%7!N`Vmj1jYx<2N+qD+8Omji&Kk=^|SIb@{05G^!3t<5>tR0lM|COQj7IViW2jR z)AEaQi*=3k(=u~XfwZ2XzJX~{s%5IFv6+QgvZc9&fl-p7d19i0ajKzlszItjl710T zFU%3T6%`pN1(~{KCODjTs_Ug>E_nb}TrmMBJIsWHamOh;qmsq}1Ihd<9r>OMt zm3@c&!qnS7I>#s8m-dRi5%;2cTOhmC-iz@!vZX}t2|1}phdjJ{EAxggSDw;Tzr$K; z0U5_RW8Y-3n(fHn#q;}C0#|nN!r8ft7D(;6l6&JbR~F;K_Oq)etb1$t#*5XY?|wDU z@3S+wo*OLel3kL(_R%#oaeijF#%u1-yxi7LK35a{H6~cLvdnf(jG3kJ#);K%R=jZQ z-=vhC*ONrtxjD;s1e%;~bvr!!N=(>>nYD9X6n(F{IsFjB`bXUQJFh?W+p_)angqSc z5^;;C@TAskj=I%WR^HQn=b@$iZ{HIc`+wfp{H|bP@|!eg@7Y&>v`w0GRpwocdG(>{ zIMq2l^G`Hu)kbC`;zOK_;l4IhZKJV+4z|@2fJ^T~%4R-XH zSgUScBW!x|$~j3HrSKg6rY-yv>$mLjNc$X_6*+%aq|4)K)2VBw_iAr?XcO~!4Lgsr zo%%JKHxiW-4wAJmME3vxs-Mf%OdBTya<%2kXhizVw zCKPmQ%c5I)TQ}&smWE~}PVag(`N|zAg1NeHFaew|3_9 z<0kU!9?4&hbh|K9a8B&ixf?jF{#<(eS$y-$b8l?tRsUb&`|O#}uAA4lU0R}kcH6h! z3un`Mzs40mx4wU3mFXt#T|Xz6P1z~E`_KJ!Jo1e}c`wE>yxZ#Cla|o)&S>F&U!~yLU&=kJ>b7o3sBh1FefkP(?cRU8yTi6#O546~ z-QqdA!SBC(d~|k3R<2I?_g|mmr!Tx%z4zPhjx9RZUYkCin39%yu>ac?Jzv>xA15bR z&a}K&dTe6r$2%`HX3muP`RlgV(jajDT6#%7;PQh0*7gT)fEkv-)78&qol`;+0{~f8 BCJ6ul diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_ic_star_black_48dp.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_ic_star_black_48dp.png.flat deleted file mode 100644 index f1150c6a47ce65a344f9fc4ddaf9e27d39e3b0a2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1508 zcmZ`(X;6~~5KRyWghK+TfXER-1uD5gz==a3Tv`qh5D5(AA_S2mABHQ~N&17#f|C%wZ%0xioGvJ%h$LmQ3_vW?RA}(77#lp!&#i zC?*zQaRE$vR$3;Im5D*KxiqHE$e=OOSO6xMOUndOv$)3rPdp}-lflv{8i&Dp(OJGM zFM_v^H^XO1*7snh8;A&{6{e+UT}#t{->E zyZvV`h#TRJ6wk6ZP9$v<_dNTyf5(3Q^*s+d|3N_3ri5I_$Xr& zGjymqJOtFXcOw;p-K(xdl9i9Xl2le6N zgnEX!hLE~`y||A08GE@HRo!1bvA(Z+au~jSjc8?~ae{+QQobR!Bu9p8WM!nlVkfHo zt!tZVJ$N0b^6DdPpWECGe=&aLmbU6rCCdXiI_&2$8R=yPlD(odCq3fT^q2UW>!vM^ zN$V-z)bgk7x|&rgJc3?JF?;JR|r*1aDV{F zwX@rK`GZWk=s-LoUz3prQr@;L%Qj1qpJnC%+EDbyc%I>i=*1Ecj_1TVk6iZO*#6u; zkiU#E1xWKiF?NXAw>ZF%Er6pvfq?v z=lR4aRe_i$q=E9X6yc&pkmjyYvUA0>5b=p@9V>uVAWCPz_ZKPF-Uchhm2MfX)BA+^ zOG^uVfxpPR0{Tvzk&Ul#7l=soLGHGMBBPus?}|%7xLId(x1-XNoEW3YpSFwq>A|j^ zM;?gsB&Ks$bM=D&^sPw)j$&sxc$tTlh)rL>)YtmZb*pB>Uc>i~>{RY{)GAKC{;ha) zopAHv(bbg3kIM41BsFIU9IKZPH;rf>1#Vt+8BB+-1v(!K^?Op-J_{_fZBE*aK>Mj% zVMSuXFsfpfKKxQ4SC$J%A=QyxcCm#&Mm$!A_?Bc#4z=@k$NFWGc+sPTzA^H7wy&B; sv}A899t%T!EutT-W&H;W*ZzWBEKsyOZyp47PYx0m6hZkRAf*KIH$UZyR{#J2 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_ic_star_half_black_16dp.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_ic_star_half_black_16dp.png.flat deleted file mode 100644 index 2f4394611282c8d5c66f961d5ff673e964afa3db..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 540 zcmZ>C3KETML)WfJBTAW%`te=&ikyo6br>~b@l$Zk4ot&7Qky@-@ zQk0lioR(jdTdZrOpO%@E3Z(T6^$kpuQY}+Wjm<2~k}b_G42+Tt%@Y$1j8hGbQw>rL zlJtv!dSNcnt*FRIDah0@VZo0B3KW!ydn-_DC)@GfNc-Rz#yoM`kyv!oxH;i>=2X^whRWP2rv-&^E2xPjT)>U#UBfV>8Z!nXE@2^jtJPhod(^wf|mN5P} zxkHB`|K(KH2WGyT7-AIT#Tt^AoMPI*UmnRY&x2X)lEWmO4efl957>-19k9<-m>_Ak zPJ(sy?SgylioXNaoR)s)yt8LfZDeuWF>jIcr7vq3g1;#T=oz08IBDu)b&O@|9@jPP i5rq@hE?H*A-4?DE7j`A#BQP8oJYD@<);T3K0hs_M>B4pZ diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_ic_star_half_black_36dp.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_ic_star_half_black_36dp.png.flat deleted file mode 100644 index 0dd0142d49a47334fa2ac14bafca4565616d0673..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 808 zcmZ>C3lvtjal#{BTn3No!nH*nSl2{aj$mQonF&5O=@sOqGca@p___0PNpS&v!|Unc5(K1kK$wFCNUG+~ zcVl2+;_!5F45?szd!D&R!hwPH;>z6HWztu+on5dk_qJQWZ6LX=bYE_W{Nda4=id0d zL38@)r$sws^un`Tq`OlBE4x$98hDh&35Q86=8Rs*>D{(nEl0ymP^?pY)`nvezBdYe zBN%(savIfi6y;`ZsFQGwV3Er_l$C6f$ZnEoX*g@c&RH9F)Ld;TJ*;u)P+_=mnB-#4 z+Y32Qx9nHT(E^$?xqsG%GKt%X4?TVSye>ER^(4r>wmg+6>Rt=RfeND)b!E`tb9wK}o_lB0uy-ns0=~y{to<5=|1kz~X(EW_v_jeju>v+61B1w`7^F=$=ZB z6#OB>^Gf<}XHV%C3h ziFw6o`9-kGnK`LITF+45z%(h(0(yzp)59eQNKXJ^4i+Hk>#t?Z zz`%6J)5S5Qg7NKb@9a6LGHoBTA9+M?74)_3Xm6ER!67Ta=_MZN7PCUZOz+5HC9jVg z1iBtEwkU2?y;krUw85OHLQ-VmTUjiXF(S62ti;SQ;!BP_m;R6hS=eYRJfUCHSE z*WYaCxBfo-cf(W_&q+XJ(z1v@pg{GsM#aRYpjDSm0ygy@ayU6t#Dlj>#3O&X!>&2| zgB4^KXz(wwTNb2n*LNb*%he(tyECOVEWHvJ6#dna(5UP>#n^#`S zRfm(WMcA~;1&i6dW4GYs+;NHO0zWAObmi~eV|)UMEVAeP8ixhyKj#$I zr6}63*wt88WMq59A>jFp#$A z?Bg{O8oMV~GNZT)e>T=#GSAL#$I2quVuppghN^RPLH|ET$&6W*~a;5>_`WiQ# z^nE&W(ebypT;{0qZEBV)f8X|bPRax>i#-c1F5hu??OAVq&R*tGl2#J?>DOn9yY7aZ z_^|7diR99xdGW<_#M*bZocdYRTeeY_t8O1$}K%T{M0j-boFyt=akR{ GWC8#j|DEdq diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_list_divider_mtrl_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_list_divider_mtrl_alpha.9.png.flat deleted file mode 100644 index 8ea4d05b1d124470ffd618f327a4f4bb12e7481e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 404 zcmZ>C3f*y$r-7| z`Xxn)dBth@MY+YgM*3-)IjKNe&rsjMG%3|G)zsL`!YtX++`_;p$&^Xl~ z)gVc~2&fn47Tt=9jFf^*-7*t=uF|vAE67V{VCW3+bLZuf;sSb!*VDr#2uL%5FbBww z;dg_604a&Q0{C3qi2h0Z;StJ;hIvDjsi&Kk=^|SIb@{05G^!3t<5>tRWlM|COQj7IViW2jR z)AEaQi*=3k(=u~XfwZ2XzJX~{s%5IFv6+QgvZc9&fl-p7d19i0ajKzlszItjl710T zFU%FX6%`pN1(~{KCfMDhXQ@|^m(IY@8Q|y6%O%AH^aih|hf5HU76M@oHXs>xt}h%& zN#qsy=KyI8FcT0TX z=7ZP{TfNT%#VtHt978NlC!5^+Rief$${@@<^}q_p7DjHloog+Q?DaJ5Xl!hJXfHLt q&}4%lgR&{lCpq7n%~uo{THmnTdvMC)D9{WBPgg&ebxsLQKqdh5CxD&+ diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_list_longpressed_holo.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_list_longpressed_holo.9.png.flat deleted file mode 100644 index 76d941e3c4ccfeeeffe8f070182046a21aa9e659..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 452 zcmZ>C3;vMvU={-dmr_bmVtHaxPO5%lQgVDwW^qY;PJUi`K~ZXP zacW9@Mt)Ad5c>qi2h0Z;StJ;hdKmRXi&Kk=^|SIb@{05G^!3t<5>tS>lM|COQj7IV ziW2jR)AEaQi*=3k(=u~XfwZ2XzJX~{s%5IFv6+QgvZc9&fl-p7d19i0ajKzlszItj zl0MKneV9vhD=IQl3Nm%eOmMqN&r+`-FP(v*Gr-TCmrIHZ=p9~950@YyEd;_GY(O&X zTwgellE^FY&jHdH;0#d2s@Y!~NQLATgd{UCF>xvYIT}EW4h$dyAY*xe7)+mGn0bZ} zE^pe<2~@A(>Eak-aXL9=M&&aeW>E%V=BWo(I4)-El`_e?kYLEcFzY!}=(MK+r$E+t Ny85}Sb4q9eG6BwUctHRF diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_list_pressed_holo_dark.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_list_pressed_holo_dark.9.png.flat deleted file mode 100644 index a1588bc6434a3e08f2a3f3489b6614979cf765d9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 440 zcmZ>C3901}gAO;X{DW?=AmM13Vr0ORoCCBGv7MH{q6r~myr>4Yb zSU)R2Bd<6=PhT&+C@}@7JvlKsBeht+ zq$n}3I4!>@w^-LmKP@vS6-etD>Km9QrCO$%8k<>|C0m+X7#JlPnkOb27^fNoDq_}`y;q~-z2?EkWAk4u6B>x$-I7#j3wNrk$^yE442U^IwZVgfeZ)78&qol`;+0Qn_% A;s5{u diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_list_pressed_holo_light.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_list_pressed_holo_light.9.png.flat deleted file mode 100644 index 761961ef03d2f9c4a2ec2feac03fe7864399368f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 444 zcmZ>C390KAiU={-dmr6=eVtHaxPO5%lQgVDwW^qY;K~ZXPacW9@ zMt)8{P$WI0M2LL?;{)acj4Tq2N_~v_p~b01#rj$K8F|I|dHQ=IMpE4 zAW0u+sXojtx)l`}DFvCjWhVGsrDv&EkeAND&>7(8&dVjm1@scHr-w@rkQM@A4i+H! z=eXM)ASIDk;GYAeF@P~pFrUHx3vIVCg! E0Q_Zi!~g&Q diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_list_selector_disabled_holo_dark.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_list_selector_disabled_holo_dark.9.png.flat deleted file mode 100644 index 25cd0c7d2b58174c30c17233ae9508058071efc9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 508 zcmZ>C3 zvlt|k5}%QulOLawSd=ZqK7sK8^8rQ{2}Y&qjQXL)sYS*5S@{`x#rb*qdg(=pDL{jg z6O%Jii}g#267!1F@{4kdb&d4XGILUaw4R~9foW2zWvZ#MnT1)hrMZQHQIer~Vxoa@ zs-bbJL8?KLei2YF%u%`(6&Wc7nYv{rL^)5-Qm-H{y)(eiotI0B3+PQ=PY;(MAgu+& zbsQ`}^2b$gLm(xQSKyxmq``n0#sJa{KzyiECI(1_jAbUJr{an^LB{Ts5BlLp2 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_list_selector_disabled_holo_light.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_list_selector_disabled_holo_light.9.png.flat deleted file mode 100644 index d33fe1d7830d97605f9b3ea2286c8a0775e1e604..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 512 zcmZ>C3 zvlt|k5}%QulMj?j&nOXMpTPKl`2Zt}1f$XnM*Yy@)S_bjto)3;;`}^)z4W5Q6rf4T ziOCtM#rh>hiFw6o`9-kGnK`LITF+45z%(hOtDnm{r-UX31^}GUfkyxU diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_menu_hardkey_panel_mtrl_mult.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_menu_hardkey_panel_mtrl_mult.9.png.flat deleted file mode 100644 index 219c020b31fd347b93e0ee76c47d1995bfb9e326..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2020 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 T6aOCp*jt~rs;M;!zCqGH_ diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_scrubber_control_off_mtrl_alpha.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_scrubber_control_off_mtrl_alpha.png.flat deleted file mode 100644 index 6897fd3ad7fcdc56183e367017f77ee8da7cb5dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 568 zcmZ>C3KETMLG=)(=v^ce>SU)R2Bd<6=PhT&+C@}?S zN^)XyMryHsNl{{6aaw*+Zn3VBep+TuDv;JQ)Hg6qO0`TiH8!&_OSUw(Ffd9oG*3)4 zFitfzPBln1NYXC?>V>&Tx1u5=r65zc%!C-X=@sOqGca@p___0PNpS(a#_Q?f5(K1G zfH;AJ1xVgMAdv|S4o*)O$B>F!Z?A3SZ86|!O*A(+?D?g~$=~-NOV2?*^^3+HY8<&` z3Cv6WpDK{i=zQ{stDZUHly_2ekKr+iR9)GruR$=B&f1H1&G0G@FSa0IxA~O#)wsTR5N?bt=4kn!0O3(J3 z2v1agwS+C34Z`mK5d08yFY}u}@%pztucwDg z5Rg^@VGb4`>CG7+3=EbiPZ!6K3dXh9{PS)Fh_rs3|50T9f(kDy?{5y<8*Z^~S^9W^ zo{F!Spp`?DC)?6k=NqkpqCV1%Z`0BgXG+|BU;Ekrdi_0H_qUx(-STX!wtam+b!~co zUhk45@wq3g=bugGdaB7abLV=tMQWb+Z|Luq@>IPYE$MykbXD8Cl%iDTooDuH+irb+ z>yTrmqPzF?(#v-$c6kIBet7b%WYvian<9f3N9_^{U36sc;!UjX{FAcgZS=W0sdpoX zM8wJH?jmjG4&OIZWpB*x@H{Iz*QIsml!-n!C!S$n)^%>tq4Km-3}+(P1=rqW6?}W5 zxub8Pi~d5nxA_OA%Rc-3pXY}&+isTXNK)-QK0w_K9>bHToM zvFmD!D2c8n_7u^Zr{7JCo!W8MRW<4H!Ro!Ax2k=-`2JYb=i}<0#qLr+KBZlp@;P^X1Q1-{qs3zNxN$uq_K1*bJVoelF{r5}FtQksAyw diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_scrubber_control_to_pressed_mtrl_005.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_scrubber_control_to_pressed_mtrl_005.png.flat deleted file mode 100644 index 6a89530a1f61b43509c3b1de5ca5ae0ebcb5ccfe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 848 zcmZ>C3hRP?TC+oSG7!TT+x0Z(v|5#6E%X0rLSy7Nwbt`k}?CMaBAA`5Ae|`FZ+! z=|zbtK%hX;P|Xs;RM=g;}ztxrKpI zlA(EGqJeR$p>e7~szH)I&_aEfvveyeGExdMb<0eMcA#ECUV3MMpF1y?6c^B!yq+E| zK|tCJggID%q?*s7Fa`!DDNh&2kcwM-Z|wC-4iq{1@%~>LC>C@>1)}46r25?v-!JG zyVCreo5gQVtzEZo%-kc=kAsgQaTwzTc@z zb02ojo93))`93Vi`Rd|@E>_Eho%>gr9eMBkHbcr&{Da5kb9;82ShcEeV~JybX~^2n zGa(mOF8|s6J?-)wtyv43y!9`s{y4hy(ErCVb(-;z9$SCl@rolu&XwlSeUqM z!$M`jfD4mSxV*QBCTk4HBY|1?^{XEZVQ9_=*YjO6Xa&h nkl4d^sWkQWXVy#gj5{vAVp#tvVLmXiFnGH9xvXC3W3Dm78UDf}HPTPZ%t-~(dWQN2rb(%msiwwe7G}wo<`xDXw-ha+#i`UO`?u14CzkpF1y?6c^BIyq+E|K|op# zh*daPfTYO{r$<0aBCo(d2S_vUf(Rgh(f@($50B;5fs{*LK}a$K6AQBfkfQ;_=)eLY z0I~oC*nk*p8JGtNbB6wZ2fToMRZkbk5Rc=@2@mg&e`#$3$N*1QKbLh*2~7+P08MLeH2?qr diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_scrubber_track_mtrl_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_scrubber_track_mtrl_alpha.9.png.flat deleted file mode 100644 index 491badda9347a9900dc0b2f68fe90b4849981e03..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 444 zcmZ>C3U={-dms(0uVtHaxPO5%lQgVE8a#3kgQfg6rNl{{Q zc6@G0QBHhfPC-VZ5c>qi2h0Z;StJ;hCNS!U7N-^!>u2R>FcEzC8hvPNKQ=7 zNG;X}>dh-o%P-0;)-}>k%gjjy(t3va2Bt}=mZ_%3W)^12mgW`)MoEU|iHQcrsfNa> z2B`)~`b9v!FxTi-RAi(SWa^fg;CGjvrCvc^Is-#zfS)@rmlPM!TfCkgE{E=IQ-G99UO`AQ0}~6g0+6Et#OS~RApo)f z1lWKWY#Epb32%n}e+RsPd?im8#}JR>Z!c_QWKiH~F!=I+{%!dZ-!d_-1y;uIKYr!^ Zu}wmoiD|)+Yk?r$p00i_>zopr7yw@MY_tFX diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_spinner_mtrl_am_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_spinner_mtrl_am_alpha.9.png.flat deleted file mode 100644 index a1dbd1cb3787d044379d68b9a3dae4f79ca7a5b7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 752 zcmZ>C3h ziFw6o`9-kGnK`LITF+45z%(h5~ zIrkh$N#qsy=ZFFsGC(W^#EL)+0{?;d?NZ58Kq?@wAS9WAiG@u8$k6~|C@_FAEMN=< z1~w=YL^}bo2SN(W0);mi{GEN-8yNh-o-U3d5r^MSF$_8sAkg+-ydZ(C-AYwfe8F>} zD)uby+#H=XJD7NFSxsBx8W%od3n@8gAoR(OTSA0qhWG@h@7h5s`Om9&&yGE5z;hUc z{u#gft-WsQiPTz4E~oH!Z*NTe6xUMx!mqz7Tr*(WszvFx4`nLXKkry^X*ox&mP<a${ak}ukvaSL#AFR*PftwcQ$8Fr8FKD`&B{-K70DKSSGqOYi_Vw z6~!1V#k%>{$#qA0KCp+%&A4c#xLP)Lw&g#E_dzzrx6%W0OU-pYNZzcp;m$k1WRl7$ zA=$7c)mHvqUg@=uas)i@;& zpDV_C3pFf*9Rz@?H>lvtjal#{BTn3Nn}T%K8yoDpAAl$e|y zpIcIt6Q7t?B zVtt_AyyCR{qTFI#BmK0@oKzsKXQ*#rnv`mpYHDm|VU}!ZZed`QWN4n4XkeUbXq;-0 zYLKK~1k?+2i*7|lMoK}ZZkY)_SLs>m738HeFmwj^x$|;KaRGhA>*?VV1f<=8*nk7% z-$B>A_Z)cqLl5rGi`~S+Ui+eF+;lc+F zXI3~qQf*|JobK@@DE_s8y%w^5uB3%bilowys{@ zCGkNgebs6^zqwY^^+h zJz4?k`>!@?Jcnx3|qtjd42;^v+E$E-Il z`Ti1XE%-Vp6{xU|bp#Nr(r^V|&Ezjvn0_jSoA`+C#4d1GQ3r|*>Q zrTwyI%MHbC&RhOTR1uTmH{-Tsm*#YKFqh^#zK?fTaewW}R#6S>4*{|(0y4_I^4%`{ zoxn4POG`gS%jUal-Y&&sbMG-5zMB>DvnMo5EGV@%wCmi`Q_@cFc)WAcKb$l3K68U> z=g*XPb)sLR-kYpaw7nSW^XJOWzL1N{_N_?rvpIE#|J(bw;(^}{_Rc^1p#_voJzf1= K);T3KF#rI#HJU;I diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_tab_indicator_mtrl_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_tab_indicator_mtrl_alpha.9.png.flat deleted file mode 100644 index b2e0a47c88d35bdd527c68ccb8e017cf6d6831be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 436 zcmZ>C3l*2&W#*&;X+1-I1Jk5b%T!ZiGYhk1OLGeYqa;J~#6$z*R72xb zgH(eg{UV@Vm}7J+Dl$?EGIh&L@H$J+Qm-H{y)(eiotI0B3+N?YPY;(MAguzz94tW6 zn=?QdNJ-=s_~!s=4DcT)azj=k1xQ)s6@(-+FflPH067{!j1CMC0w4=OKn{o*L1sMM z{v6~0ZBG}+5Rc=@2@C3{YEiL%R(?iaaekh@UV2d? zP=kJQVsb`mv3^NWVqS4teo=0*u91FPW=<-Q)-%*MFilFeOf@w&voK4xG`BD?N-{K0 zOf)b~H8f5&NHs{(F9Pa?xkERLt zq+5X4iGvwPF4XR`0aC^RJ|V6^dc(e>Bq3pU%d=$r+d|IhvuP_7q! zw&g8*{3eGv;YyiZ7S3wDf~u2`afo|nx12X|7r7*}@v@v?M!&`u_na;6b37RWGy5|{ z98?%x7BVPtDsZt11Ts9-XxJel5Xk7r=o0L}!s-(0;KIsMf3tUop!p-WJN0Kyo#Sf_ zG|@Vv&h*Rr=FIRJ$ySXw%bE`CN!QU4O6=q8RdTld#jry`Mp?a;# zGw*or8wVYnbn4*xF4ogU;eUJzEZ4lvS-8(5iI?~PTh3S>?C38 z!~E$n<`KZ)=J#}Q45?szd-G`HQ3Da@KuHm!zyDUxy=x#nPi&{?oCTc!&;Arpt`~i_ zzs45#oGtEiJQ)Hr`!hrw zR2W?rGAMB>aIp#mGCb61*dZbi$mq!E670aj>JsYU!pc&Avv-G}`6IVG^=D3<<7*8x z(K@5f^vn9@%R*g5ynhxwrK0bl(+Y?r?r<_c;g%8$!pYT)UhS_byHJ56Yb?PI; z*`95>$#Cnp!=}SG%Kq(bx@c=vCs@|Sp0KVW!Eg7$-xmrMW=j8hZ8Ld|`m!*gdacSc z?|AMT2OXSr>frh=*3(7de|!oo*SyVHxX&Yrm-qi$&R8DrB}bKm)&awf!PC{xWt~$( F69DJj_g(-1 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_text_select_handle_middle_mtrl_dark.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_text_select_handle_middle_mtrl_dark.png.flat deleted file mode 100644 index 19cd6f83ef91eb5ed4ef68edec8105dd7b52bb98..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1004 zcmZ>C3Y6qkK*5 zN={29UQN4E=apk(Bk|KyIAo2)J#n|4&1V|qpNrisU%J<@AAeaAI# z$HtQutPg|KC&>7HDB_qNEtHkxTw%iTZ9(3K8zM1{7mm29uyf7hTR8LNzog<1eup1i zKf$%_GIe$3;s z%L@2VD7ojl5;P587lrdp1uJUt_uZcQ*unF}!_i^;lpMOb)W_$ruC~~DLupGto4)BC$8Iz(4|Lgg#BYnsq}hE}!w#vuIU;%I tc=eP6&HOw1H{a-7xuVTwwcO=$+ux5Co|_mx515h}JYD@<);T3K0RTTCuA2Y= diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_text_select_handle_middle_mtrl_light.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_text_select_handle_middle_mtrl_light.png.flat deleted file mode 100644 index c14a0b19a7de1cdc8308f2f3c76e3aaaec206468..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1008 zcmZ>C3x#N>?BV*Qe$#Ju9P{G!}qT_gRp%$!spt!JojV49R_nQCfmW?`0WX>MU)lw@e0 zm}p>}YG|BlkZO>mUj)<(bCzyJMMg?Nrf!)D(GJur$V=}G@N?(olHvmTlGoG2B?w5{ z0I>%L8<1S(KW!-k1Je#q7srqa#;3Q9cf|P0GgUl)RmG|ETYU zquX+0-rqfG{ZQof-ObPE%=~P#zwZ9mnLquTWUn8n^iEIoYvL4N7_6vp_JVDh5KBmK zN$*?+{T6=V(r($sM}9pzS`nMnzIvnMBKMuPWgZ(M%a4{h3AVU;T{x<_@$HldZPA63 z?`~Xs^@fG(_RZScRJjx%t>IYvSoSv0PXRMcm+p$AW^QsVXFpv$^Xdkh*Bap`3pa*t z{Q80QP~xWx3fDGn{m6M};l2fNYm%}bFt;48b?VJX{(n@PV|qnvy>jo_qq!W@clO>X zNS<8CbZBXxqUD?iM+Nk@D_ps;>qCaX8^^N=8#Q;ZEbRR3!6#xP>16!)@6l%udfN`_ zPZUj=>}@SvTU$0iQ|6D0*{XwU6-}?g_Rq;DeuJ&9Ma!f{lKxbUfIf^1;2i$^Jw_qQH6{JtK`B0c`utG=5Cw*_R#gK~}Qn z#)1cnjVhKp9$cOJL7=&*{p5psUM{`QpT$1TW8BDpm9?RijU_**`L%>VOf;|GkpMip=A30t?QMv?^yQRe>~N?QT{`{iE&h=Ue{UYzZvOUZ|zFCdwTIZfn!R$4jkOb zYILpZ;ic_-f6th0$XfJGzTNj{%#r%A^FHYb%zMm^=edX3^fQ_q)RlI6zi?|TyX_?d zx$}=rG_84O`dRFr(&@P)@#rJVWy;4pkAD;jl)wGaqU*%-8;#36iY{-wRV2|aYtg#9 tqFboq17CTel(m82)Cn0^lYep598GjnY})D#Ov((Nu6{1-oD!OVOaQhOuT%g4 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_text_select_handle_right_mtrl_dark.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_text_select_handle_right_mtrl_dark.png.flat deleted file mode 100644 index 53b76d62c75ebae4654dfaca1bf5cf0cd6fed309..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 672 zcmZ>C3=Az^pRvp{WvB|(0{4FC5x1Sp*EH@IIQ@IGO^ z!~CRmPl1w*f}SppAr*{oZ(dD2Y9QcpQPyzn*I(<+>J!C$AA}X0x#nfZGyjyt>peQ$ z^YxFE$T2ERuaaXli9WB~u#AP{Km`-aEM*6VQwL9_!V#B=1K!JyuNu=Xk!v>y?ZpK6jfgkRFl>Z6-@37?fXP%buqfDZ0 z{fg8d^9v-_oT`}jXuiGhpImR1h;p8LB970da87%g#K|TSB+c=xV`4&y+SbN|9Wlq^ zLyp@mJ$w30jr4wr$1iWp`G4c|Bel=Fc_sWbkMTbK?m8v(tJywH%ecL4Wh&2~8rf;B z*73ieo)Vqvp7kNjF*SPMo@WL}Pe0qWS5D>GroE@icQfC6BvkVEg@^z!C3aSW+oe0%e1;!y(umy5E7Yrp|NO3q|q_BX8Lxs&{9ScVc4@U`` zOPYg&q`*u@##9FhHWnM^MFt8y%uFI3=NdNfbaXQ&N(lUL|D*g*@PCIT$3OG5gdb%R zZR=O0{+M4NvF238yhroxh5zJwt3;IZ+!JwpHidKA(FVdQ K&MBdZfdK$ZC3Tma(ZU={-dmv%}~VtHaxPO5%lQgVDrYDGy}W@=7Kd}4A* zW?5oMYD#==Nl{LGVopIuq7eH8#s|y?7+EA3m8LT4hZd(673*i^XXF*<=jrRE7bT_u zjY&>S&PXlRFDXjQD^ANV$}QG4(of6GNd?k+hWZAkNvW2prp9I#X33W376wL1hUSTh z2F9s|#;FFW21)uwK)o<0=~h%^q!eW8mYERYI6X_fg1q$306%wLE-5ac_jo-$T!MhK z8W1aTumDMUL&3Q~N+PeoKL|8?q89K*}PoAS9WAiHS)8$k6~|G{9qk5CB;K z0-_L#f$C3oB`q!U={-dmu5;)VtHaxPO5%lQgVDrYDGy}W@=7Kd`fCs zVrfoEd~QimPJCicK}Mnw`vk@Z%m)}*Bp8(@GwO#Hrxq3KXXR()73b&a>!lYZrT`5| zPE5{7E!Hn7O3W)x%P-0;)-}>k%gjjy(t3va2Bt}=mZ_%3W)^12mgW`)MoEU|iHQcr zsfNa>2B`)~`b9v!FbC;YRAi(SWa^fg5OkWJrCvc^dS`&2J1>_M7tm|Go*phiKw1rm z6**Xdq`aZvTp%TpSKyxmq~U-W%K8ta*EgS<0;DYR3PO?@n3$LpfE*1VMgu$s2mz1< zARr2%7#MHy1#SVd)jeGtLp+WrCrGd^P7vv73N+wyJE-Bn*u(RGWx9m0Y3wl*DN7Y* YhT9p8tin1kEI`^lUHx3vIVCg!05Ab+0RR91 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_textfield_search_activated_mtrl_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_textfield_search_activated_mtrl_alpha.9.png.flat deleted file mode 100644 index c8a82a3c84a5658a9575f7f366f8b3686fead65d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 448 zcmZ>C3+ymm>U={-dmr+VlVtHaxPO5%lQgVDrYDGy}W@=7Kd~s@G zQF2CnVsc4lSz<|QN_=ifQBHhfPC-VZ5c>qi2h0Z;StJ;h<}m7q7N-^!>u2R>FcEzC8hvPOHNGANG;YcDN4*MPRlRKE!H*CPs_|n1=4zk`Ua*+sg|jx#%2~~$(H68 z21ZGS=81_0#;JzJsRpSAN%}=Vy)c*QR#ar96lCg_nGo+rJxjfUymSVJ&Hz7mUM?vv zpm%vaJzRo-vPfDiy#00QhF;y(~nGL^prGNn9S978nDCnrd-DoYsr`|mH?JY&UErB#wF4BL(~ Vu@o<8JOt9=>FVdQ&MBdZ0RSZlb0q)( diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_textfield_search_default_mtrl_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxhdpi-v4_abc_textfield_search_default_mtrl_alpha.9.png.flat deleted file mode 100644 index d0e945d00fce9860560b6e34bcaaf6d9d5ed408c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 444 zcmZ>C3W3Dm78UDf}HPTPZ%t-~(dWQN2rb(%msiwwe7G}wo<`xD< zNrvW$i3Y~0hQ_G|sRl{Xw-h>q0$Cy@I@S28PZ6KX+a(DK4N_ zc|AQ`f`GIN5OZ;`0LilTCZRw|BCo(d2S~#K6O{EINSmm&{RUDNc?BWK3`|T+3P6qq z5TgNR1B3v`0uW$_Pz;P0_NC7TvL!uT978nDCnrd-DoYsr`|mH?93dgaKJz-m|Cday V^VLqR0%`Dc^>bP0l+eV$008OWZdw2U diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxxhdpi-v4_abc_btn_check_to_on_mtrl_000.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxxhdpi-v4_abc_btn_check_to_on_mtrl_000.png.flat deleted file mode 100644 index 76e078fc07d4f9ff417d1645558565642f3e3225..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 508 zcmZ>C3`yHVFr?h0yRH? zluCe4h%1mL2$n@KxdRpPlmz(&GZ@dh{rf-H+}18h1B%m*5mt(?Tuv*2`2f|c-|>chGp>Y4xiox{Swkh66j&*8M9ob^U) zznu)(b8_Ro8I6--tc?Svzs_LWRpfitA%5LVNr}^@=FF2y{3Am>f4yR0WMbhEP;h8~ zFe+>}%_~!|vw3{k+-~3D&-OJAE&3Baa0>5jWMDWTZNS``Zt?OVI6^&L{an^LB{VSr E071T)Q~&?~ diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxxhdpi-v4_abc_btn_check_to_on_mtrl_015.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxxhdpi-v4_abc_btn_check_to_on_mtrl_015.png.flat deleted file mode 100644 index 9b9ea21db2704765c1d59aecf6415680642562c9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 708 zcmZ>C3@w^-LmKP@vS6-etD>Km9QrCO$%8k<>|C0m+X7#JlPnkOb27^fN4@*c-LPdM%&DlHF_hb}Z?R z`+H-1^X0ZC1&&2?XY>U9cB|Al@wfcvjpK~Yj)~{f0{Fj~{XNbomH=`EfpW83raC-lzk1&~r zXTKTmS;p*>f8h1$1mmZt3}?^lbG)-@ud#Oc?9K3GHsh>#CWZS<22Z9loG547GifHn zY4f^9A%>rN4UG@9%_qEPlHi!Pv$00@fCIym*9>e-3i0d)0wC#`3@6MP&#*Y`<4jOv z__UQlwc*oWJVXLW)&WE)fQTL6f~K%XG_b;utlztmvg4Pn=l{=q&IgJVhK4`!(uzkM i5*Hc<-h2@f3I>c8DhE`Qn?=Gw3Orr?T-G@yGywpky$yQ+ diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxxhdpi-v4_abc_btn_radio_to_on_mtrl_000.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxxhdpi-v4_abc_btn_radio_to_on_mtrl_000.png.flat deleted file mode 100644 index b60efe90db26f975b1ae8ba120e76ba08b1ea515..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1020 zcmZ>C3)z(9z70%HT~0Y(<3K1Th};?$yI{jB_qyyE;keZ6#`2B7xj#N>?BV*Qe$ z#Ju9P{G!}qT_gRp%$!spt!JojV49R_nQCfmW?`0WX>MU)lw@e0m}p>}YG|BlkZO>m zUj)<(bBb<7MMXwRL8fk*30_y}738G@{n8oW=g!L|#RX*YdV0770qF)1=3oJmndU1U z7#Nstc)B=-R4~3d*a#G3Xjt%frT9uF5R+ks?eEk;^^V6D|HPU*l$6*^rA%a+uI60b zc9GYP{c_fw}JUuca$1A z<%j)CX3SnLw0?`nO!j*{^76qC>q9zv=YBZGta-_(uFk3V{)&kbyBD~6UEyu6cb}jA zVzaSNi`Bo0<~p_gQ+7@>>Ti2$&|l8!^<=i>b+gCPs*@hvlu-TT+QF+BuQAb3&eZbc zdG!O+9LgBgXH`r})Md97AL04i$CcrSkO=$yz_nV zvDQsC;s!@IPTKQ!VZU~5Wws0FaJ`N%u`%B2Il7Vdcd-D8h3&t3lAqIPTV_#bzXX{_nGD}TZ~YOnWu;9UWUBPbkXS?pI^QPaXnrAT-G@y HGy$0a)w!Qs diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxxhdpi-v4_abc_btn_radio_to_on_mtrl_015.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxxhdpi-v4_abc_btn_radio_to_on_mtrl_015.png.flat deleted file mode 100644 index 344b48ba2414311f86894d5fe87b74b5c1611d19..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1180 zcmZ>C3-DJNAwF)2AdsU$DHC^027KfWYC zK0hx$x1=a1-oVgQhty?L>FUY z&uM?=l|7j8cuw&HA1AIif|njOrdRa{wiw#Zt6boELXP#Hr`+$D&&)Fy%g1c)KW=|0 zak|<5iTvMYo9(t(V>&b*yLoJ>$J~YvGy92>TTg6Q^r^;ujc>)17OBlw zEFMneOnPfw85S@#{K%z-VyzmN)?&7frQxgA%+UX{>E925`R6}yuATg$TYt@jRZpM) ze>zF0`$W;n_|qaGk%E<{PycsnwlJyKsMBJjt&n{4*S?2>;{Ey4-WnXfw6$mbKf^+6 zGrd+Z@3NMRzlsW+jP(L*m8Y#ZbK=A2{gbAwZ_|_rO!M5f!+g&lMo%st?uYYqr#)i0 zXr-2UyyF_9_k&A@Z~lBP$S69d>(4XOAn}Co_Bj`iB+C8jyl_ypbmGH1-)Ag6!Ww%d zXgasonMWU+G+dXQS-yVlKeo$HcRZ4vdC@xj$&7Ui-?G%!1eJDa#2VdIWKKE9CS!D0 zby0~|m(0B__Lkju`OHtS?@najy~b>AzQvL>@j$MP#XFttF3ReaDK6ULoptNh|NF<& z+O3~VzPquxcl}=G+@MF9^DWP9-0dj#f^B#4+u$yDt#4aTuj4XnKhY$c6ns(d+&9mo zTaDf*n_04*XyQGQ_<4m*wXf6`|2gV6ViXNaTF-WVi!^0rby?XK*;%gAc26@g%y|lz zN}m7j=i7HWB)wwdertV5u9N$@O^wVh51-P)XEqZKe_4M(>C7yT9#g~aOZ%0o1KM~D zteunI@N9OdeAjryR@?cS;cnNYH)5N2eY#`Z`C8Li%&^)i=?&-RMW15&kMvGej6Kul z(Zg$4JoWi86~8Il3}-7CnjOrM4!q@aAdNG}?BH3$ANAJXgIE|iS{W`#2H)5(5!my= zuaCVf_y?m*i%e^5TTHucM}^R5jaQL(j(4m#oWI!i{^Q7K2PYRd4=*3TfS{1Dh^Uyj zM5k1@Os`zO!l2Ty%Bb3V4NaW9%35h9|M)eRrhA;6GR<)7&6&@>#K{(ca~FeN62li3 U@Au0VfViHnelF{r5}Fto06Dqvi2wiq diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxxhdpi-v4_abc_btn_switch_to_on_mtrl_00001.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxxhdpi-v4_abc_btn_switch_to_on_mtrl_00001.9.png.flat deleted file mode 100644 index 026878f0763c5cdb92b4a258c81b61ee7954e976..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2748 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 RIsDk1vbUg_c}B9`{{X+h%<=#L diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxxhdpi-v4_abc_btn_switch_to_on_mtrl_00012.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxxhdpi-v4_abc_btn_switch_to_on_mtrl_00012.9.png.flat deleted file mode 100644 index b543ae6b197fe7af8106f3a75c5c40d0955afef5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3056 zcmai0c{CL68lKTigt1Jvkx&T3n8BDR$r_UEW6dyQY%!Lx?@OT!QQ5P_h%DKcRJJ4; z6N#dbb+Qaesb7jab#Ld~bN{)|InVRF?|a_wJMVkGe?A=@b88>~0Qk%IT&#qJq2KbK zm{ZOz&^6Q*??Xho;t4o>5D7;P^$H?*;)48eek7c4P@oSEg+eK-K-n{Zao}zsNCbHN z77%GeCI*s`-hQ4WvL6Ylo-QqKGIwGLUul?>vaGurNFqM&V@3Lln>I=Qs0?yjle0bWFzOE)H0W}YG;_zz6mU0NUTq!p= zuFQkUbr}K~?nE%B^HihXs;YW~xQBS`M8E^iMQ(XNj*Qv8^pbgCqqUPs>U{Uvvm8I` z^7Cv$rs4zGQoOXxF8bz@BL(nM1}IhMAzcC&Rg%*aLdhoV&fxG#FQfTC81a{;EaVAG zM#XWz!GZg#46dA?P2s&Gksm$OjIrbplNY_cJHt!oeG!f;Su_IL9l!nSW0XwiHcDsR zkfD&5ZEJ~g#5$vPuI8*3NBBFChYzgUzV2ui3NGhC&8IX4_-d~eeqT(jE|hqLhD*Y< zGQtPb1SA#slc$WT@3$dyzb4)v7=N(*Gf1!VrlxApeA}i(zCd>_mm+UR=A-&M(8iLA zG4gCdXPvu774Nspu(HF3>>+1A-{4;c%DxzugXE4?sB~lW+v++Qu&J9}w}@v#onr&O zrC;Hqee#zx0Fen6+c7r7N0?)=S0@cPb`qsxqaqlkhq%&~QqO&UdUvPRZ)v@@xhl+F zeC3;z32sm!rdeNn}-Cnbxkfjy(=UNWa7^3 z3aZqi7vu?U{$n{jf!D5i!_2+WXrX;b&IBdseP@%k9Uw1elb)GQRZF0Gid1Ee*ntGT zm_eA4$9Z#N;)+joH8CgOIk_uRUK@3{%g9N7oarzN5uAV92aa#Et%KE%=o{V?Oao;I z2i%{-ISNUXl3$!e^l6=bGCy#}CE-1{;W_BkGnGVTFnC&60V$--P}FKfE`LhDd*h4O zd4QUL(=!FtH%Ae5WZp%iRmQLSxev2Yae_b8S+Kvozb9Lt_o!0x(5Dco>Y^~@oTU*i zSUSE&AzD84)GEfB#EE{gP&BK}@YFycjKmhgY;A3!T$S(qgIipP;b6~Do(Jo`lwUwW zQbW!+jP9V=NQBK z?Ev){v#k-pgh93e!BNsU)z@AqSR34`%n*REmKk;4d%JYDa&naZ7~MEXSxzAcxS293 z3`vWEt@rs3q<#B&)K?oF1q%0lWNh zVb-gzK5Es1YL7utmtL23=&F4+m`^Y3fIwT9izC!C_~?mBb#;z#DZA;${&6vdjBUw_ zyKK{Yc5m&c10im$XHQT@G;1jC#!YgbKK#*q?VxO00yQb7F|`s911Y z7SXh7!pw#-$XP*mJgeq(p2!euj*fw0+82G@ncLuS@P&kMil=AN)7sKW(b&a|TykM? z!bID1ZtN`Hm`0$UzPxM^*+p|{`IbDWNuwmj#obR+Nvulig&L#WRTig|e>j`NCmq#G8dFF6Vfq4jOt? zOT_mkm%`{taxgp|bOLov8vSvETy^*HTA_&&6}Nhu9uQRVh2q;1A80^+nOgJ&6G9~o zUCDa*xM66$fN%>J2kKY8?@ z7YdPa?jxmoiRl7gOy4z+o+o&f6|_<#`z~p69WG%?4u3y;*=1x0a&)Z{{k9=JT5n~> zE_$1rKADVg-ze2F+1IL-jo`sTs~Ik9hwAk5TlR-JPWkXNX}9yztwl+5)uCE70uzP2 z!cSh5T0XK}j+2qjT@hAubZ@(P*;%B^`B2T)+GXeVEZX{wVna|Pb3R0TbS_ox%}v{v zO1Sdu@Qbndus&ouj}#bUERCqIxnJq_OFtm>6fX7Q9TBazk6VFvO}WqRuh$ifWCl99 zx28nN92^jmj@yg;a!b`j;@Sm;9BAGC(gtv2(JFV*&Hxe_wx&o7gM7 z$DS`!D;-PY?@CDQnTmcO$u_Q=>W>Dyk;XSpTKL3U3WxmIezv>$X!oa#X`7{=l>;W9Zs-a$(@oa+V5+0; za0Pcg&Rx8sG%a&Bc6)9Utz|uXyECQNb9OkkaC2|Ezd-)-6Jz1}pksk6Q7V!jfSdk? zpMBBejg1_!{dD=U&A!B7=C%XAVYgzqwtzY@QYi{<2AOys-YP{NBspz%G;A;M&PO$q zZUBepd|x!85SrNU$2nhH8jo8(Yi3%++)m=WClV+OSH5@bioG()q~f@DHfK^dr%;Ij zx^GneL=Yr>&}6e$3O~$qf>xcopfxPIE0Z}N{zyr`j&CSq?m7@AIf3*@SaC5g(Pd;; zaKPm^CW5ihCJ(>DF}_|!uH?q1@8;FjuGM0Bp8Dp;4uVe!RQ}A==D!aO^U-h37G_Ee zgot7?mhI%=0bVeV4Woa;wXY7S_8(Iook+PHw9$;PfY~3k7Pq^a<=4o2I$!(zkGF&g zydZt`+=bjOw``Tw4jymSW zG1Fo+C4im(ezvw(&-*g9Rg`&Rz;o%24eU#eqozk9}6L$vlrF(}#O z3XoO+cU^*Kc#fU|!frX`w3THZRSQz`iPLZC0NISKqif*OuI0>8$ImVMz`lom4p(%0 Q|9s_*4KC`}>AEER3&r9}FaQ7m diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxxhdpi-v4_abc_ic_menu_copy_mtrl_am_alpha.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxxhdpi-v4_abc_ic_menu_copy_mtrl_am_alpha.png.flat deleted file mode 100644 index 93673f0274af4ef4a6afdbaeef5388f4c87f32ae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 564 zcmZ>C3>O-a6+(DPxg(*@1nh^%bPfXD$8y zk7yJqcw)+|0GNolm8U);8^SNM_kSV*tl#kzc38z5on2IR9=TsqE_wn;lF1_yx8(O9I zK4y?MjbdgvX}|0LQDznn0R;z;0XP^3wsRsYIN;WM&EkMlZ(LymyXmf@jCvxQeiw8x zm-M8RFYRWLsho6^zdgdi{k(_bV*YTx-+QzRpPidMb#GK<;o~Q#<(OD%?#qiv_`Ux; T(X1U9Kn$L)elF{r5}FtQK#{v_ diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxxhdpi-v4_abc_ic_menu_cut_mtrl_alpha.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxxhdpi-v4_abc_ic_menu_cut_mtrl_alpha.png.flat deleted file mode 100644 index 1dcc2ca34705184230f6fc4392c1b86f9b05cda5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1140 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 VHqT?;yPyQ)>FVdQ&MBdZ0RRT0N%Q~! diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxxhdpi-v4_abc_ic_star_black_36dp.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxxhdpi-v4_abc_ic_star_black_36dp.png.flat deleted file mode 100644 index 6a851f6e07d6ad58557f53921a1943e5c2506853..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1492 zcmZ>C3Qb`dRrIdByp8`g-X_i77yh$%)Assm1ywMTvRE zY57ID#kxlNX_+~xKw8gG-@r5})iTx8*v!H#+0xv?z$nSkJTcM0IMvWN)gaX%NxulF z7v>1vii(Pil!8p%G7}u`(JRPH2Rgkoz|WnRONtA~v>^erRnq5*qr|-y7Ag>Cf~~@ z5OntAzd!kj7ubwD0y6W9CQI+})YxLh;gsvNq|&lULFSk@$CjKEdp8L%!tvv{eqlLqhijLj1T zW;L=Mxc*~;z^9L@QWsb`m-=PwIgzR|MembMU$_|O;!75Dy61XGdRQ{OzhKQa50

XWP@3Dok^qO3JL15IV^9&|~%lj%|GGUHuXoW_`wN zh8H+wp4H|lv+X*%+rlgONCI!+1c^CLJY`KUEZppl^cOvpSS@HD)#v=D_s7kAi$elO z&a*vW$S)NBxcT)SzYD9oSps~UVods!7)u2B9d)gR5@vD)#oc?TK24c%TZ?=pyZ*MP zk4*O|+C^&mGVd~MbA9tb$4*7)bK$hNIw?GNGaNKG3Cz#0;1%bpoOu3c`xlX=X0npU zWXuYiZg;faea13-#$f}ifZ2ja(8T$xwxlUsjy$ZmPTB00ReQwY z61GdTRy|P{-Tzt9kkdg@ZPT2+F>Xyeyx*i+3Trke>KiZ@dR(q#w6A#CYO!Em#m8vg z8V`Zzi>(+>o#R#U*zIS=(|n7j8ygP)>F~Ul%$&6O+DARL zs>YWcy|Yezo^i(8|A<=Y;bzrUk2fE*jAG?ZeZ1?@^9(VaWuG*wyXrU0+qC?RpPj4V z`i(4sYh3qqIVBk|1+G|l#KBN6N}=lti@2B8sa)1`7o9Y8b{<{+#&y!79rC(1sr;X8 zPi^`)CHAzn#_3edYzfxvg2K0(&(<`|xO4l4 z7vGU5M#WAyz zvZ>zCYA@LRi#2*hOGHRyPNGawpz_An$sMk;2if*H=)6gu5-zZDgN?>|{iHhLFrE&hOQya6x;UC~&}`^dfh#F@!P z#V5|o?!7cknQgZ#_dI2l^B0?<>)tepeB&_}bUynq`_L!TV&3&ai`h@V-mjdZu2fVY zVi=$^C6v1}VSDD`&n{QEx0r6QS=F{_nWA781Y{!c|r zoZBz&2)NYmVR3h%vc6!)^cQDjRp#v5_>cO#)S<5n!(SOEy Zm1~wRHsI+57H15eu6{1-oD!OVOaP)MdvpK* diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxxhdpi-v4_abc_ic_star_black_48dp.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxxhdpi-v4_abc_ic_star_black_48dp.png.flat deleted file mode 100644 index b023db7dcbc354ce20d1c65f6e1945455e219c0b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1900 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 O@O1TaS?83{!~g)hlJg4y diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxxhdpi-v4_abc_scrubber_control_to_pressed_mtrl_000.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxxhdpi-v4_abc_scrubber_control_to_pressed_mtrl_000.png.flat deleted file mode 100644 index 1a4ffb0ef70b2050fecb714cd9fac59755416e1f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 672 zcmZ>C34Z`mK5d08yFY}u}@%ZU_HRdqBM(9KeRZts8~NMKO?U=KTlsT zy(lpSXjF1yaz<*geo0YcUU6D}QEsuWk$zfcPAZVrGt@UQO-i*)H8nP~FiW;Hw=ghD zGBi(2G%!vzG)^^0HAvD2TBr|mmTpBwMMg?Nrf!)D(Js_0$V&(Mtuw&SotI0B3&`a4 z^l%9R(gq;R!2%@zavSmhgC@<>#WAFU@#u}CiDHQ&4i}q!xH@hN@or6!uIXM|u%7YJ zOO+sJ8|^hLb9UHmI{a{YWr08I=a*+zEC@^gD)s%4b@uLim5DLyH%DEKoE*LEO~?Hk zhEJ!dnO=RkQZ=wKwb?54YTb98E-js1%L5YG&vr?jc^T-aUMpl8RdOqSSCaRY#M7en zFLr4hEZzUIMK`cXSN+eT#bU0W(`3Fnw^jx&Vr|VY_Mh@*U;e8t8eZF02sbEBOpsV` zv&&<{BFP<^lkTuAbDgA_u~m7}n-@>!c$7?xo48_n;lzxd>q-~1?Ydp&ccv&^t@DwF0yQu zw|WxXx&6SxKi9vX;h*sT2Pf-t?_V4~KYHet`?Q)?;B- z+wSxKWBQ3L(X*~b&MvOzopr F7yu265!V0! diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxxhdpi-v4_abc_scrubber_control_to_pressed_mtrl_005.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxxhdpi-v4_abc_scrubber_control_to_pressed_mtrl_005.png.flat deleted file mode 100644 index 40bf57cc4073644e3d72fd911a246670cb9d0b0a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 888 zcmZ>C3hRP?TC+oSG7!TT+x0Z(v|5#6E$sf%O0*i_$Dc{m|mnqGJ85{EWQf{5*ZV z^rFNRpi#+*$r-7|`Xxn)dBth@MY+YgM*3-)IjKNe&rsjMG%3|G)zsL`!YtX++`_;p z$&^Xl~)gVb9XrVsLS-KS!6&Wc7nYv{rM7vP0ATJ&0z0LqXcU~?jE+CWF z)59eQNPB=V2Mdt=|D^g10|S$tr;B4q1>@CQs&nMn1rA&kPrJfcK3{*PQFUO@@#lJT zW^C%wx&Av|GWNuD$+NLDW|qA=RMLI<|L3gA^eH)QyLoTEa<-pQ;=^&==hwmZZBj-3 zl2KVpP3_7e?i@>$k4~P-HhcB`vep?*hy0kIt=g*^w=I0img}ddtyp{0%t}SeDrND_ ztQUs+yJ!7*XE=4%``FeMfe&LpPhE4Ke-WeoE6t0+eI0EwU#DoAJ=l|Rp^|yog%wUF zYYblTRi9(M*u*`rl->5(nv9c?{X2bY`#QvAFFqGL`@K2iCjYbDneRLJ_B>XzT_7N< zVRPc^*)MxvocNx$YaQ<*XX%*BLhP>Xe36e<#RFIy3aAI;#DrZ53+V) zvStj^bYW@@Js>slNYsPuiASy*T=txJ#B=iwf0ZKnWTlCQ_e47P9DS}d@%#@*l~1<2 zU6poQ>Iqr8sXSieag=f5iNb$p%Yy1>zuojdM&(oGHuvMVU&^iHjJHo)TID!CEdp`u4tCHO)fBs^mn_^(}!V8H-=fddYrqqWqaB zzvO&AMq3>0|6G1|%g;I?-QOo`wy(JU>%-FNbvC87`diEnRNs>|yLPIh_)WbHOWShU z+yb9}TZF#;(UAJEdETV6-{an{7JEN?eNg{z=POV6`&Tc#X=bUTWtG!?Gb?-M^*8H3 znEjabG%J4|FVdQ&MBdZ0RVL|gXI7K diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxxhdpi-v4_abc_spinner_mtrl_am_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxxhdpi-v4_abc_spinner_mtrl_am_alpha.9.png.flat deleted file mode 100644 index ec091081575e6b9cac160b96c02b77ea347b80ab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 660 zcmZ>C3~b@l$Zk4ot&7Qky@-@ zQk0lioR(jdTdZrOpO%@E3Z(T6^$kpuQY}+Wjm<2~k}b_G42+Tt%@Y$1j8hGbQw>rL zlJtv!dSNcnt*EHTNGZtFEi=LGC_PKPg1mHw&Hz7mUM?vvpjUW3JzRo-vKq1|}9Z1t3QQh@rp%#;|}f z7#KL9Ob{Ib#0gM7jDiL&1H+NjS=B(nubwWBAsP4HUf;{x6d=)>=+VP!JGal_teD;b zrM?B#4;WqvU3tY;l9atrO)gtFdB>gi%Cq+P`xhNLU+X*xYG?!V+LTOLdyUXsv*lq~ zh5gHJ%{+56JL~HWBh!n;QmNDOgVrTqnKQZQ_4MjxWgq5*8TY?m8(^Ms&b9TrV8AOW zo9C-8eGZ9wA!qV@Ve5Ct$d@;(&jnwVNdLa+`+}$WPg88;?*DpnL`|5{@@C!K&Bmu& zJpFQv1t&~CeB9FgvyaQuBkDjY%l&6x-Z3)NP~SI`|`ij14C3lvtjal#{BTn3Nn}T%K8yoDpAAl$e|y zpIcIt6Q7t{YEiL%R(?iaaekh@UV2et3Q&J?Vsb`m zu|805UU6D}QEsuWk$zfcPAZVrGt@UQO-i*)H8nP~FiW;Hw=ghDGBi(2G%!vzG)^^0 zHAvDg0_ugiMYp1&A|s_BQ@6|npR@EV^$POR89D>}+65i(pSg-K=voI+;UD%C|H<-XgIh!(R3jL15<{li(^Q}y|=Th{X-l@j{jHY^u8u4zniy0 z*d(&jBx1$IWBd*qZ%*p+UvM!fnyH4dHN(|;uYAKSH{l50UT>2|R@KO2^9}uMJwJmV zC{Ge_dv<2d-o*cJ_wM{|uAZKDj{C)`)!nMfUlqSSkdsT6DHnLC^~>KTZ&Bm=A3ddO z63+g4GvllAQO{{R{G;D)KH|CT%fZca($0L=cxJM>>OtnYO|IfwElzJ?t7?p%5-_!O z!-LuyU(d6f^+kR$oSqUklUeaX`%X{!TTeFRf3eB_vQ+A`-9_bvzE!`T_5O)(c($NP6?{8vAnaewzgIqQS+yAO-AJ}iFs!8z-L^Sck%uRK`4TYhTD z8ds^AD}tPv9y)sS?t9C(e>vOzqW1Nx4(9JZ9De12_PY<#Ss$d|eRzNM!Ts1b6K=>P zL>_&2I(^~o*dTAM4`TIOy$_TN?y6Rq+A!OB4`<%@?dgll^De&J)|tAB-Jo<2SJwAR z>5|`0+4gp-+b(3yst`K!&j0O&|K2e?L3883Bnd40dC>Zod%kR;+nsM+`yQ`d$X1b; zTKE0dDV9BE6P-gkgzoHP7qYeZn9axy$o8+aO+F);-?ZkSRoI4Gj*B~EOQ&kc bGMY`iBJpb4A~R3|^mO%eS?83{1Y`mLQLC11 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxxhdpi-v4_abc_tab_indicator_mtrl_alpha.9.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxxhdpi-v4_abc_tab_indicator_mtrl_alpha.9.png.flat deleted file mode 100644 index dfb573d54582405c5854f3f91932d5f3d0f9eebf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 440 zcmZ>C3l*2&W#*&;X+1-I1Jk5b%T!ZiGYhk1OLGeYqa;J~#6$z*R72xb zgH(eg{UV@Vm}7J+Dk?Hk3Nm%eOz^r(&r+`-FCFNY&Hz7mUM?vvAd}bA!zBnv8-Oqe z3y}QFZO8+pB=QRUbAU7k_zx7hAuEvrq%86ZLXsJnn3xoR91S2w2Ov|S0LBC>1DWx3 z>B#^frRnM77!q;#?fH$oAO~zz|NWjvRM@5D8`E-cpmam%%i9Nb+X)E#FxQ>V$nUtV S!x&_sr>mdKI;Vst1_l5UE^C

C3Bt9cC zFC`~6J|{J;BtEyKC?`H8u_#-JeF9?x>j6d=IMpE4AW6Rns2AoY-HM8ejFf^*-7*v6oTpcim(I``;OEZECB+5wCa>;OY0m$^yYFBu@0_a#rs}0uOucfTQIGe-s*6imlh$`K zY+UY_^J}i~pRBm^bFS>zdB@vm-}fV2*H>MZUHEyU@z%BMoENN)8gKC{Y^`>D!@_*^ zAz#?dMJc@QAu;z3a@C7y^Q|g<7npCc>f#Pt>4y^@=gJhO1fJO)Yr_!qi1m2*nTK@+ zxo`eNi52+eJ`JChHYd!aU0&{b)YIpul>PKl>h{PLHae9(_$8)wU*A1ug;@B$P=Dif xVclClFU^Tfi`gO;boT$vY1c!(9j#;U6l&Ri#;{!k7%2>%u6{1-oD!OVOaSOvH1Yrd diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxxhdpi-v4_abc_text_select_handle_left_mtrl_light.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxxhdpi-v4_abc_text_select_handle_left_mtrl_light.png.flat deleted file mode 100644 index a9fe7d98509873740720f70c02ec0637bdb81a6a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 768 zcmZ>C3Bt9cC zFC`~6J|{J;BtEyKC?`HAGd-h3h&^Xl~)gVc~2&fn4DBX&Rij0(kOx-dQBHgD~ke3ehUuS@yJ1>_M7m&&8>ERLt zq&EO@1P3#aOseZ`22#cWJ|V6^I-$0kB(!?n`PD#ef+azI!3+)w4g3H12h4vjaNpp( zLc#h=>R%57gEz<1#WAFU@$D_vO)CrpTrT#RoK(5-&-{1nJZYW_p?5@O=5Unh9+_fn zFYBktQ@=v!K~V1!t{qFy`O2O(&3jX^j?bbbh~o}h5T}jb6ejV-A{Is4uj~o=9CX%u zhj|e99Uq=KD_Q-nFr61+PB$!AD6ylvQTgbBSe_USwsT1jW+pvw<+bT-Oz&zGH~p}R z&CKwFk6}R|vpR@#E-N9J`Lpre2hugo`5$=q9gO9jbM?Sfz0``SR}M7l@qSo!aVcxk z`c8(8%l&eG%@zKW6?cBll^r|pcpL5eeuV4#s>`wqKW{YNx|W^ug4I#uEq;Zq)sAmi zn6EzM3%j`}h1WeK=H5ZBdJ%2DRi*C&^DS0g++i#IaKhtUnZlI7GrMDL7=j+L9uGhB zu&yBY&7UZ-0>9j+;j_}_gqgI<%UzFp`uvo#pI%Dc9=XCsr?LmX#I)|~yT_~$3*Q&& zZ@ez7d+X<=Ik9OmTf~CS{=YfxddRn@~ diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxxhdpi-v4_abc_text_select_handle_right_mtrl_dark.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable-xxxhdpi-v4_abc_text_select_handle_right_mtrl_dark.png.flat deleted file mode 100644 index 7fd5a78ed7a392035ee72db046a35a7793e9970b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 768 zcmZ>C3Bt9cC zFC`~6z9=(2qa;4Jq$npoC9x=5h&^Xl~)gVc~2&fn4DBX&Rij0(kOx-dQBHgD~ke3ehUuS@yJ1>_M7m&&8>ERLt zq&EO@1P3#aOseZ`22#cWJ|V6kiG4>&Lc;ErXMx%TOM?7@8UF8YNO0(XKR@8Uz5)oZ2ADELa9$C~` znkCIU$C^jSpIQ6D0V$IW%Ns*8AGk4VUpmms7Php}mUoRK^LvvIUd-7S4p{TrWIpf# zv8J-|nS59Rl%12Au=j!ZpQiW^+;s=tv)=DNa($29$_ob$#$H|I?e%U|S!_^w_*4ab zPVP@_v zHNw_-n`WfwroD$}HSF(r|H?Q0%C6n3b>}}gJA3zfj$MuCh1|>YxsPPO6<9CISp8tX zerj#l?K{T3q4Q04SFc%c`00yzIiIbamj4|3(fA<#2eQ$Bg_!Vqi z_IC3Bt9cC zFC`~6z9=(2qa;4Jq$npo2gDR&pTO9_dVrBdX(pq7XmM&$v3^#5MqY7#p1xjsQ6f-_ zesW@RMryHsNl{{6aaw*+Zn3VBep+TuDv;JQ)Hg6qO0`TiH8!&_OSUw(Ffd9oG*3)4 zFitfzPBln1NYXC?>V>&Vx1ypVBc&iyx6FiC2kI5%r89H}___0PNpS(a%IoRj5(K0- z0C5BdGmuQG>um;7#sNMdu0T4WwwolhdfoZeKy890L4Lsu|Mxc}IP|}tA8=pbyn#Z& z`rxlse}Tc9+4`%X(pnH%73uwhGyM8s=0X6!Z_811URdyC}0x432e3N|kL yzTfoQ%+$!WbJp9g4m|wj=8AnSB}U)4J2uI^+L}G_D=<vq8Ab3ZZa{^BpY_O=-EHxQU8U1 z%eAIjZ}#TE!0f=heQ(|@m*51LD+6x#h*U;@S~t~P|U*DUFh(Khv}TzntbJGsJ2t z%~a{iZ10dM7Yv^LAsOsuY{GU&l)oM1${tt9ZRYmCh%mrWB@RiO@9B^rvjSJ-A7+rNvPnET* z!jBFMUNO1s)&fj2b+6NROk18)kyg|)&8hIDbX}MiY-;i2e=$m>`3EKKI)!=Ff*j?9 z&q_}W^}=)<=2Xo+`juRd0(2i1Zgy^m&ytTV^drE5Q(*kW3%_*2UCnY!u9$8yeq#M-{ M9PfqKF8*G>06DVi1ONa4 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable_abc_btn_radio_material.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable_abc_btn_radio_material.xml.flat deleted file mode 100644 index 79c3f941f68bd73413e01330ddc00a4944ce6280..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 612 zcmcgoJx{|h5KY=3f~87rSWp&F2Zl(*POE+~(E;WTuwpsRm4+sEWgEf5uV7wcpMkqVirnVP7Ixj20H_a#;Cje>fh> z$!N@ac{UP)^&#s61C~>Rvwz5^FLg!Unq)!_g({3Lizrz*x4NX%qINB8y2VqeYbsXD z4eJ(*8(}97EmR<#Hc2ZwAZHkH5O&(v$(K(){WvHc)ZKfs2W=GYwvNxQcIB`8InA}= zwKElG*`Pb!i@#+Zo}Z&Zxr8DPoOuFVI%)?$Jw$DpC^G*K2aKWoG0GoBKG~Ev>)U$X EH;9C}jsO4v diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable_abc_cab_background_internal_bg.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable_abc_cab_background_internal_bg.xml.flat deleted file mode 100644 index 75e4b5d16730485635dc3fa097624f3b8d7baddc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 476 zcmb79O-sW-5Z!2t?SfE370F3^5dvn@mVO?@9=(a^#Y>poOq1BnZrM$#f54yQKk!F+ z(`~GGJMfq{1Mkh7#p2<~BZU0nb4Of#IDFTP5PF>&*aDZxfQv)`PdJEGX7om-Nueq< z3S`1FpIjXG-aYng(OCAXb7i$+QDz`@S^*+Q%PIrPF10D`&44WniLOU|7LPd2a5NlG z$6_{_#sl7;0K`M=4>87=Gvl=X%n`kn(q*S#9-Yw>P^r;H>W6t%t>=tc7o!9l?e~$; zC4=>8nu5Xb36P932sT%kY>PJu>47A5&h_L8{i(7`S`wCHG@C?;Y;i2}vMO@>Z+ zmcB~2AZy>Ilw)@-MBt7`g8v_n$6GAEd~G3w_V##a7H0f1_H?ifk$svf*gzr}frPF( zT|=@?fZnWg&`fa<4(c7cKgqX>sft|7tf*u`{3`{i(NLfntB6)mRF_ia)gU65Tre~H zAqmC_o3Zh55>M!C8V6AlP62`;3x_OVK|++#{_lSOM=lVuf4A+K{R)ayNuE0WOzUz^ zNM)|iq4Ib8K9xCv@@5O(?csyYTYPlKsFun-w;L#(*Kn)liYp}*OR=TZEpz9M2uB&? zSDD6EG)hZ%*+^??UTEAq1FaRIQb=_n3$3L1Yzhs+{m_W^=8m&XDV6^8FC#y27mXMv zd&YO3>a2d0LChK<+MB&JE&C@<+dee|Tb=jap#P_3Kew<|g3jDkBkHl~IdM^!2){eu z{rh}dGP23IX6}6>T&GUqBWS>jRTOw(xSaa2nZ($icmv~>VdRa(AogNWTj-CxfpIU# bhRa&>;=>2?wqDojA3H7Egt$AY`w^kPiXtFY diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable_abc_ic_arrow_drop_right_black_24dp.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable_abc_ic_arrow_drop_right_black_24dp.xml.flat deleted file mode 100644 index 455a4fc5f13340dfef7686aecae86981ba9390e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1328 zcmbVM&u`N(6mG#CX|zpQgha7KS4EsciJi1t*9wVs;{Z~N5aP$+K;$HD6PCu2r zN)ZV{KM8%pIotXXXSvUlWi0$4CE>O24Wry_bZ%Q;o9Jypd4WE&I4f9&oFylb#D^q| zX@LYMS+QVzRXq04B1x%S9T(w~fR5?O;PmV?9FNYh7q}xr@PN7liYX2dmso{ZoG+_X zrl9}S^s#=2WHR6+GVNH1e1cFRLs^l+sqdYTtq{qtD<}0Gyrmt%y$uZo@)f&=_HQ0tV`(q+PjwdW{?l!Dj{CSb^MwrA{@UxEBf{s2|Ym7V|q diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable_abc_ic_clear_material.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable_abc_ic_clear_material.xml.flat deleted file mode 100644 index db86302fad1402232e39b585b34ea88315973f9f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 892 zcmb7DL2uJA7)`cxbdiQigka==P>xlJlXPj9UPc)Q4jbYC;#hrgyv5+ekz=h0@mIKT z%`}@-EmSZTmJm~-n0GLUM@d>u`SEmwPGI!SpH(W-RnZjeO)M6LoOJBoUS-s zQNcj1D$q=E5T13sAN(d?Tc%p_U6yq#YZ6{7C{RIxmaHXOLETWJ1K8#6} z<}73BbapzU+59w0@^}sqO<6o;5sPx7Q2Y4m;m=A~miuquX6_TH3nh8sjZ3YY1tBdi zUO^jf@sP@jK=Y%s-D3XU@R@&b!>E=jShziu-a*Oub*X(PIVqapqLS!*T5CrlEE;C(N*r#GCf8>#fihaH7cuJ$wKS zKD&&w$t*mHFXDNaW|MRhCzCibp+Rw+Zh{SllgQ|p-86~~e`=^3*dSOt$`((4VFF%` SobjP&yBNM2&CHX-uk|0TPYs{| diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable_abc_ic_go_search_api_material.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable_abc_ic_go_search_api_material.xml.flat deleted file mode 100644 index daf79eef86774457553a1f759a271f6afd6e88a7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 860 zcmb7?y>8nu5XYrNNgV+x452LyO@@XJhD}QTkRvaxn+zSAqC<<0!ii!`wv;H4L>y!c z@5I42W4=|DBmy>deeE?M4vioJ;Q4g z4&H$=3KJ=$x|Fq1Qhc_%0ug=aM09&!|eEi!HilcQW#`%HqotK8SLs>-D330ML zNXuq)9-R0?YoXVB-H%7VT>se(y#@@6t~*iB?6(n@?TW%z@At2^+N}(4883gHI!1Zl7=ug`}tpI1dg6=|Jr;rGT7u? zv*1g&6|Zl5cuq6{-#V8#8qX*W@fZ!G@dSm54Uw{$iNlGl=;Tgd3M()ny24g48(RB~ zg<$j-m9nD95Tie@xWZF&D@GQ9(H$fHKSsP^#5ZQrj|T4O!0&h_eLRTm+jg8^qd_UD diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable_abc_ic_search_api_material.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable_abc_ic_search_api_material.xml.flat deleted file mode 100644 index 332b5c2c831f71a077b13623ddb15234f92d7351..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1028 zcmb7?!H&}~5Qf`sw{#;dDiMMurzqU2)Q*!TZF+$c4ji@!2@uE1b-bG_ZX7w*7VVAa z;03twQk=PQ<-oYxawe8$JekS=c{1^G`R+rv)9D=T*9knp`T>RyvGqJxbVoOWW4dAM zlC2v~6)V=XF4tSCxhko!I~OP3*Dn6paMj=&SyYXzFuGPW2OXoV;0@M_R?U@E+h!8t zt5R^-5y3&c;VF-!WS+2eHV?uLnNb=-+G>vzxT*HjnYsulGNZjH#yh@8hS4}Wd39~s^irRLtZ zUMt?v^zfQ$>iq1kNQ`2iOvNNXb3ZU!3)4)UkelB7^76f=uiZ2h1-L1?C zWSY&uxe$fm%mFh$-qYiZgb+WFuPe=XnnccM@d^QTrh41_Ysa!fIPsu=^fmT{VG#z&o-sNY{Stm!(t-S!pH9_b@P4dT&~>J=qmvUrVLm{p|=5Z{CXI^2G7E$aHQ# z3MkT66zBU>X;zOehv&8n;#h;{S7h|FXMgWGR?T$oty-~Oz`s*2%!r(4H^*C>9Y%)t zd7*{(>#P;u!1VBzY3BUyu4w4fF{fza6F2e$iXvm8lK4TwLBWn|vXFBFqq#`|7y<(Z zW5CHG^=SxLN&rj8?t%AyMJFgsjrf!T9pFP0`!S+!5Cae#4wsFb47)bCFRw!L G0{#FTAu@dc diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable_abc_item_background_holo_dark.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable_abc_item_background_holo_dark.xml.flat deleted file mode 100644 index 777f2bddc0f0178a58c2aecebf456eeed5ec33a2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1812 zcmd^=y^qr{7{=q!9+3qo7w)5Y0d-)AM4VoAA1%uji5(#j5=-Pb&NbI0u54GZf|y`r z;O1LyxbYZR`J>nn!pS9Eix8p#2_!68u`T(1-~9YM_Gt9r5iks+?w?omM7J~Dht(L~ zjs$r|!jxeW(jZYR3qnFC2ZGP?C>ZmU2N4ky$LL(@z5@8MWJ2OYKF%f2v3DRyq_$?38xF1dU!9=YBN;if}4rNst@v82+efOZp|}YvrmBg1;9_> zzhtU`tSia;by65ZT?IiEPf!r9l&w@chEr|BPBT7U68z?}7WqgfIUp zoJMx6t@Jx~{N78Oi*z;%I;Q|0*Is(kP&zk%Af2lIQX_vr9$NUF#p*lu5pYBJw7Lf# nHmn`(SNHmm>UT<b!Sf3(~q8XE9M zEXWfQWek&uhN)tC7!i6r5qws}VZt*WX6YnRuF<{Fdj{}B$%Mp5JSikEus;zb)_WXFqXQEoJhZ3_bJaYnI2aO>NRBAYsi)?V^neBU3OO> zysjIv>^0}Eo_Eft9s7#&3V0t)_`yV038puJOXP9w=8q6QY=#x&ER`y33JBv=miXsc z_wFo}=#o@Kv5*y29Ml<;OtRjnO^h+8Gs$9PDKTpqVyX}GYX}W>-LdAOt~+mm_Zh%X z;QxfGiEJzq*(ixTH{od`Gqu#oeUsU(pUG^_)Rjw9mGWZF-~WtWHW%q^I%mLpVZx_> zmrg53Hg5VIM}BXotwlUrC7yQxzG>|AsHJ$W{Xjf*{gq1ofIhVJyNlI#o!7vN;N$u# oxZkpNbXec*2UNdT;`|w!62S_kb6(Xsp$j1D=;2FH-v5U21yxZ_#{d8T diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable_abc_list_selector_background_transition_holo_dark.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable_abc_list_selector_background_transition_holo_dark.xml.flat deleted file mode 100644 index ad7441fb26e88abf08e1b7194baf6d706933ac3c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 596 zcmbV|&q@O^5XRG5u?B=TUSv;FJuSG|w)8I^EGS+@^rW!NCTVxwY_cQ~eH7oxNAP7# zOG|t3Vh4syKA8D^Gqc&lQw<@s$?LlR`1tYpxDlm)#$So#?m*PDXSHY76!N<$AD$R(pBSJo6=tO z=scIgzfqUQgH%k!pg$ZB*<>`1duewB5cfs5FJcj=)cD^0two=uMEJXoC-?{yH#+Ae z%$%#Hlv?kr1RJgOi0P6-Rji0>EvPr!0p9K$o{&R)?jvY4+pYUhVjeVdC(6z%{>NC- z+-wwF-fYV4-7CMd6?}VOPb00yE}XRP!UD53{AEx0#UF5~)neCxXPUetjhGec&6^Pk!5?xE&+-o~eOOwhj2@0Ue1a+MnX#uEvQCnA=Gb+H8r!f6vH zTr4u9UsW1A!<8*up;eq~sqtf$JL;Y6bv|nB(Sot;Md!+D#lp<+6z2&paLfID5og*WTwi>&1+PVoAM6Bsgf25!NK$lu&yBi?;7}9Q}fQcT*&cJ&gW~@ zs|Ihx49{_x5ro4i$Wkr>PBIb+%7QV?Xb@vIv9#VL=NzC%oG^~g=(ymtK;9|Cu{;>z zXiPW~3>Q41Eax}(P?BauKD|Ej_d_xy`-6j{gJ^howW<6EwDSOAi47ZHi&B(s(9NzsdF7ik{nwQnPNr?;oNH!^9mPOkYJt`F`Wkq zjb@z0b~nKpC$iuzv$G;#%M9eYyU^1$u9~la`$dPJ^;%HUDEU&5ccQdi;Ep)urElV; zO`O|}@@y80IOI=dyE_W-_8z4W-Hb*^1tox1+YBkihJ1k_Dn%j%&8pxrfW K^ED`cB-(chv1Ua8 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable_abc_list_selector_holo_light.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable_abc_list_selector_holo_light.xml.flat deleted file mode 100644 index 6e0cea26babd13caa4f5fc3f334bc1dc18b246a4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1892 zcmd^=&ui2`9K|znw+$neG}U&SixTh>Fq7@lA6q?>)GPT z-t{a9f*^SC;MG6Mt4^{R+l3+~2nr4i$qdYQ-uvXuWHdT{0yIri{diRlWcwuh`AYSw z!MicTa~x&_;V=ral#76qj6{O6AfXwRQubGB}*+lKPz-mq36yd#_4 zG1kq8?neOM0lSk5k~@!KgSwWX^xO7Pz1LwR>9GZrDQ2V)&Z9;(Z*qYJ3Fc`L(|Ita z(TtPW?v8QBi4?qHc9slmn1LL37k;|NE%P;Szv}RdUK^S;+Wf*0I#S-QNJyOWGCT35 zs5lQAZM3#c1e=j|C8jcqCFQDwguGcn{t0!{d=K330De;``OlzA zB3sKuwn`$ebofHWOf>p(7csm4tC)p2I-M{&E8?KKWKxmR;&SHxmAv$p>GaIcz&+RD z+25tp>O`v3w778o%yHUY#i5 z`W*`G#e?8g5Ip&n{0P2=4X)s!J232<2lM~G-+QzB`v-5GMx(LXzgu{~^%M8~GA56> zhEI^Bfl@*Xbn#s`pyV#=m)jPjml{_*TC^M1GW%` zS`E3GDV>>(O*)gQz;8IB(N-d+Vrx9vnXu{hPPCbfwgIBC7>z|FqJ(O^d+AET&smBL zM@x$`=Qq23pQLas^hPR;4X%4v$T}{+ z-R-+Cg6|Ib=J;)CMK(MnHH5wH3c_FCTZPNcN){W7eN9qeNAY;Vi{Z;!%1z1rn|md| zuH-a9p}AHcbBUz666nH~s~>4nQ;%gQ18-#Hhxz|F92F(u7>J$e3J(jB6#i z7tF2AcPTaKoq`FAei*BiLVmnZEqZ>v-StTVr$TQe(%9g-cZICu@|*3h`#kvOkgty4 zlvbquLsCK5YcKEZukS6(#RO$MF&5{?5{Qo{k48N2zo?{Km)u|5D*$#SrwoN=TD{LW z-r94UWr!8`aqz<--U+1Ob;?QqtkqfXmpPO#G9QZBw0XBO$w2tQxEN{ElF2C|$5zsMX diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable_abc_ratingbar_small_material.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable_abc_ratingbar_small_material.xml.flat deleted file mode 100644 index fcd637d57ad6d88cf1662f98a6887552b006c6f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1020 zcmb7@&ubGw6vwkkjLC?wS!>hYLUFp1FLQpg+xLlrGog2sG&Z>F-6ET~{C2nR zz6gFeMz9B{~?y3=2eo{wdAi!9#=_>V0p$tpB?Lb zfv>{E@qj$pH?n=Q#vJ-@SAF%Krced^TnP diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable_abc_seekbar_thumb_material.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable_abc_seekbar_thumb_material.xml.flat deleted file mode 100644 index 5c066dbbf040ef15d3f1946aa8f8306c35e73190..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1640 zcmdUvO>fgc5QgnENz)CLTo-6@ffgfCWT{>!QQ8IxsX^ji2{@azJ;rYRrQHo*H?G|H z2^=_pL=Rl}KZqORKQMJtsqO`ga_LGdug9A4JI}tmS4^L$qT9D9trGMc2Gn=%PJW{Iw>FPQIC`b+>9^eB%qk!RF?!C8QLKJz0G zRC1PyFz2b*>C-Sy0H1b`IztaeFdXde@A{*?eW&mB_84;p&>MgQjz>A>{(}blb()}L z^1e$(WRYb7&*MP1A}NaplnRuPGGWi+wx6ez6~|@qSAQ^^yTB}K##?NzOFp7b@%!r-dbJRiKSb*(QA@^Oy% ztqbhdwELHj-FlVXjgsA3m7Rg?P8#IX8N2!0ZbRF)zN_S9ZnlH^w(I}Jb~1NoM`!9j z#~Gr{ZdUo-D*0_x`Q1i-zf|%=ogV#*zS-2sC2Zco=C`WN-zl5l#O9ZDmEd<%>z-bz Hcqjh>LLKYK diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable_abc_seekbar_tick_mark_material.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable_abc_seekbar_tick_mark_material.xml.flat deleted file mode 100644 index fd136de2a55f63ac0ba56d646cdd233b21ad0404..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 692 zcmb7B%}T>S5Ke5WH6YYjL4pU#r4TTiwDc!Ewcy2@h+aeqn`GLoO|oHkvEtqL@Fjc# zuU@?QIBwD^9-D#L-I?W^Z)U#P?CM5U6y?|7c4Q#!UHW&Kl%{uMhF3UD0pTzTIKVQ* zED$7G1{r4MA%GE_8p=t-dR5Ua2gcDOO>$0iHSp-@|##D2WX_5u%tN z#AO>9=FTSXL^MOVSXKm^oVn9FG@CrZ1z5gb18A&4rbeG|Y9AO){Y;vvwT$+u{i*67 zs;P1E0@g#Vs=Eo0MIy}ZG$tA3l?(-=3%L^>lv=F+|AesaYn5-VNGy`AtIKhY+S>o= uI_(SlPQR8bqbZ54%X;h)O(`=w)6McHRg6{%5g@6KCDp#6>ebULmH7b~n%6%7 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable_abc_seekbar_track_material.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable_abc_seekbar_track_material.xml.flat deleted file mode 100644 index 4b976f07ded5d1e1b467c200119a8d8656da4894..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1956 zcmchY%TLrm7{I%*m1S^~*}4xHAFC-VzcoVfl8HGl@C726(4s+UE z8lV!&W+Vc+xMVavpToP}Fw7O3Z}64n)%8_pV{P4BvKwoRnajMf%uR0Eh5+4b#87`9 z_z*HWDWVND#6nj@o~zMz9CtPiLqZ4vllAnx?nHsXItPjI^o$G?N(A}rh>JzvlQAu7 zDw=|a~> zrgTncsN5?w%uuHf&lC93jq^NteV(Uom*?pl=UMO1v!3ug-Jj=~+vj=qYMy5ko~JJJ dJeTl1d6DOb3C|P2^RSjffc88dIsG3g%3nQ64f_B9 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable_abc_spinner_textfield_background_material.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable_abc_spinner_textfield_background_material.xml.flat deleted file mode 100644 index 8e0e611f66c4aceded9f0317c78f358555f94d83..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1696 zcmcgsO>fgM7*4-v>QUxK+SUfPb=}QkO+U1cazNXT2nmD+f`Jq{iPL6vK4g0^j-24g zzu?9XK->@~#FgK|31MYvyN*t3cEFMq$FJYVkKgC94-Ot5WfVmj^$$1Xk8D3=|6GWN z3g|ctzrhwI2DWUIM_v#RW(sm9T#r!4w6Hzwv+y)t7T7&u8zWu-cmI=V4B+8+&L7f$Z6LtK1Hh3N}MO-!Q!mgTNN zcom%*e1?X=PUxhw)`ZUHG@a4&a!$e@^Ux)a8THfQBT2FfZ(jDmZCI0m6{ubg+<}Ye zT@L)tp7Wjsx+?wiJqy0hCCZub35HnB8#7Z{n)5!HRW-Ob%?KUlFoEG< zG#-h`#hCWY7nXvwl3?YemOc_YKT>6muw|!0IJ9-MAb4wt>5|+QdhlQehMgUl?=dr*U0&OkWv%m~VLm24O};OhCdg4L;TaN+6cQF|NaDOqa|T+- zxB!hZ2ku!1&CaV$Zxl*JA4FCvQPS{ULTct1unZN|5=u1}vQQ^II?p+pH|)~rG{G^R z_6MT@8xKcOFX;{eqCR%}7-5u9X=eYSA$%$LLhoCXjL9~XsT6tY1)0{>gi>WB6rjSo zA2Lx;s2-Q#bN{FKp;7I%oZlwARvIMawzhD!5yg)Me_C&A!UPv` Xb<_$ZmfBG68_FHeCd+cNSg7?44qmyA diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable_abc_text_cursor_material.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable_abc_text_cursor_material.xml.flat deleted file mode 100644 index 88d1187c0f1c9265659901da9e15ce27020d29d7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 608 zcmb7AJx{|h5KX_JwS-iKf>0J{#z@3TtA3;dq9a>{U}32o=UN+*II@je!N9=G#*g4< z;)Wuzp*-p2yC=PO&o`eh?rN50{nnyx27@nCpF7e3^%F@pBu)X7m@YMJ^^!hICFC+A z8YCyFZJjmTH+-)^D*Px|u0)RgwIqoVQ9>CgtR>0SO2|xI4)BVnU|v7O!6=3ZM#J%R zOryy(7{uX(kYEVm5CRBdERFWx0RA>h(MJPC=#b=z6g;s#rgbsHSefk^QU0FysmL%X zo=V?6=hWM_(^8BS;9j8$LiYDx}l9-XCsO&UnMP R2D9qatm@b`RJP&ns^8aGwXFaE diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable_abc_textfield_search_material.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable_abc_textfield_search_material.xml.flat deleted file mode 100644 index 938906e8aa53aa9593dfaea96a225c1eb34f3231..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1204 zcmc(e%}(4f6or!^h`|zc2q0Bip;@qq)HuV4pJBzQV$XuEqZ{Xj1e|2BJwUe=%c{@7 zJHVF5V8@G8-EbKu1tcUGTD6v}TwC(-xt~w^{k?tLvaEVuIJBT~N%MAUR9b8`QE&>e zL=Lft44#=ZN0~$#L5VCXz@W-Oy4J_3_PNc!XjGaXR#~a5k_QJ05;`hCWT?4OQ0lZ& zh5oe0(_A8bgANbZW9;F2cVlZq^ftG`wYakh5O%TC#Sp`oD?0l&8^Kv2Ep{`*dTa*D zL{)j>`k66<+?M0d*G#5q`Q7%<8|>GAf%17GC?6i6{KoqySe}t3EQ`;vEVh2w{ diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable_abc_vector_test.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable_abc_vector_test.xml.flat deleted file mode 100644 index 8c7f5c597f2dfeea6777c85464cfe30ed3fc1332..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 764 zcmb7B%}#?r5T=#ZmZYWuhDM%06cHu0eGX0yPypp+%Mo1#95ui|TX z_3neXSnACKo6K+K`(|dxb#Lz~k|gcqyD9?l-i4eOzS0RO%8(ahh&+F>!9FK+!7<~i z)Y;QF@Sb7H;1dZGMiK~C6a}KzM}CMIow00a1QNY7| z3_&p|MN!Lk&>-!$)S7ZCo+dYr+h^Ucit<^}gO@c z!iZ!2wG>?=AK@Btq`7n3G%Ra2297ZC5R8nTP&3Om264|ZoH!Q?42+&o+p_*F$85Fr VCU!e%%iX40QH0xRKj!zBq#vqa=Oq9D diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable_notification_bg.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable_notification_bg.xml.flat deleted file mode 100644 index 556ada461ef91d64b9e8195dd73de4da7d187fde..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 772 zcmb7C%}N6?5Z={QYd|S0{;;RA2a$pst+l0|tf*%X6+BsEGHIimq$H{OBtC&R@#fhl z@*zx17oi}s14AZ5X1?#6Ot*X03xgmi{CmM)yuEtAn8j#^8S+f-bHGYF!38BwXw|477>ghDP+6^THZX+wx0KK!SnLc@mTM#JegkungFmxFeB2_m#XGcp$T|nC z$(!`J4W!AAI2^Uwq=AjE{R=mHk$DiHuLyO}3Q^2x!Q%SRxzP#6*279-vspf)T4FMK zoHm^0l7&i~R4n8`oi-^)C2Hd;ya;zm7@UvIbP&nz>8$UGP!0xQFx85SL0#a@3aW#Kc}z!&`I7O`AJ$}X}1)@ znsvlMQJh51jKS01tVZ>ylHBc!liYy*vQ4a+-R{KLeS&^PS)SFV$WYR`ANl8*HK8$CtK7lXg z1DKXBqDWx}hD?Th-^@3eZuhQV3W6Z_uQh-1_U65}jL{)8R;0`wW84%#A$87){;8#_0-!r1!KlGt>aPpOue zOr95{%Urxxj^eU~45-s4;iv#Ms=`dT9$|1hHH(47r`Jo~E1?{Wz+kEs7o&j$CZ@8h zgzO6mwVh}ap(Af`Sl+GnY9A%^UW!BEKqilcdMM}9iBGQc@V`$QO#CPkek2^PmZ1FpkSw_=#QsOY1}B-FOW5}kwxbeS Kgv0qB1i?3x&-fGo diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable_notification_icon_background.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable_notification_icon_background.xml.flat deleted file mode 100644 index 71112055870e920aaffb58afc0a0d31c5b8d8a1a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 480 zcmb7B%}T>S5Kd}JvA}VUz4NF`Zh8rOeXAZsnM08peIci=55C$t^h)e=PD!ps)1E|3D-q(9ENgA?h+Vu7){rQ;gy=FX_S#CJ`(JLXpG6suZ diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable_tooltip_frame_dark.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable_tooltip_frame_dark.xml.flat deleted file mode 100644 index 0697678b23d468b29255b1a83930ec4c9877a4cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 576 zcmb7>+e*Vg5Qfv*+IB$*u?2}Dn#-Wsw52CeY2QFR+$m+UJ8ff=-LRXYUil(EsF!XJ z7O#X348zXu|9{KOXms~juq^90FN)@1;>+acvT1@Ga|Le@B}j8AlRVDG69p-bIjFf~ z9qoA^^hu-A^i|G;mVyRT1>8Jmz-Fjvu0ZICRH?pf(Mg=3sX>#5od^fmX?OcwHt6-k zR@CePgl%lLF~l&U%4q*V2k&V@zKdi)Dj>L$F?ak~o@ZB-YQs%I2b+GtWJ)2MuN*f$ zw^()DvYtVP-YwZd=&VI&1%9x5XYm{s)0gC6-p4=<|s596~77=eS=c$vB+jKCaIgo*;~ht zN>2p`hGAxR{=Z>nK7U-4EX(@!u#5@X7y9S6h-SBAMc-(|ffy;d$%^Gl(HxdMOH$)n zS7-hQdDfsbd6lWqQjj1~G{*movJ^BiiVD4wD%W>CvdTDM47wy7L@fhp$!Hw* zqV9;&un*lngb+qVVefzJ;63L!-*?%b*flC*C9~M=q{bBYglI(PR0oH8z+_HnvEGRu zYF@eSdR3j$0{jR2ghqGY|R2aKn#+5i9m diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout-v21_notification_action.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout-v21_notification_action.xml.flat deleted file mode 100644 index a13d97364543ea1f08991be85636cdf087f80edc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1920 zcmb_d-A)uS6y9YPVe5j+C<*jJ%&3VO!jy#tTw|1#7{w4{BI@N@+s;m9{?ZnfB|MO~ zzJU*8OuXZ#<-sy zDwJl5hn!%=v$TVWnOx^vd49q1PSHEbghZdSD3w`?g08?cW{6-CF^QDGsSGob$dxq| z@|fv4XrPTvOg6(7*=o?%Ds6^Mva!W*ldgwseRB)1A)(I>g0CE{H7)}X94E2A2ySwU z28cQ&OBLoR6Yj+HoIek4oc-bn?lNs&^lyRLGqYmHN?Vuob-|AsXn`r5Qju}$`jJxk zBZQ>BMS^88v8GYci%T%zFB{^2X z>oGdp1)Dn~=-vxp5!#*L6wYripWWyW2VUFC(aeDCPQ-XOQn1o|NOSMWKe^})T$CH$ zQ>*i}A%q^MDuT|c2Jqadp}} c^BTa45{E{9OIm(aw+!_1LH(|IF7$iz8`uYgq5uE@ diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout-v21_notification_action_tombstone.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout-v21_notification_action_tombstone.xml.flat deleted file mode 100644 index b42413144bbb4df3e127a8463fd183f5d960f967..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2304 zcmb`I-)_?|6vo@N)mqby5|{*L6Dag5)8cjO{uCi-nGg(32#Eog#fzQB%yFXFUDt_g zo`YN7f|uZKx7_gz2q$YFKe9o71e*WC)yxh&_a=G#Sy{upK^+Vss)7fJV z)HxnTeT77%n9n?{SR}gG%LWyNds0P$T7@t9xtj(1V;;ShG?D0i6bKm!0a%Ym;~ zK?_V{L6V3O%L$ZSVCGqx0fqC##{|vPx17IfcvZ zY(#Gv=~3lwMPZDU`(mQRovgxJW99ZEV367Zd)V9WB~f1xSZa$t=k^1m0Mk_9Jx=v% zA9G3Vr$(!%7=d%`#nXEJ>VVxb3N&-l^lm^|FHo@9+$6F6@Sj2qPD11xhNY~IBn%i) z0W2(Q0Z)tsT!|7!HGt`kfgsRtM`>5Nsg4*E!bIQ_ zMewNzE88j3Zx|ien?^cIn8yLuf9S4V5|%BayeTZ#CSl3;r2X6|$n2;~+HMY*8p5il zOHPvyGOd=4jbfdHuHGgrq~edJ!!+1k$&RS~&M3uMs4kYljJk^SFsHl2n2u|)EhHmU zvoc>RPNH+Kw%~j#f#VV^?`qr2$Z3v^YVm?bm9D%5Z)RJ%;&JBfr~WjyCo^-aP|jJL zwhb1jAeW^5u~Fw!+G~@vr$^0yg?-yd&pFtug9OLj)UNgZv7Z@*It%sLNM^@Z^*66G gG<_hoQ*xRfzObm0eu{lvV_&iIKtH0|LV7y?1nguAtN;K2 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout-v21_notification_template_custom_big.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout-v21_notification_template_custom_big.xml.flat deleted file mode 100644 index 24a058fd4ea94a54df15b3fcb33495a6e57e36fb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5380 zcmeHL&u<$=6i&RRv8PV6*))U>Ad-b7)f9UZCrxTVZPL<^NKsO$Aj_@vCKcRs%Yr$+O$95PjZk<_xx#Cj z@_2ai1x5d2*myT&L1=vJ)!oo@jY2J;mdy;4nspW$BA{+q^#Ui%7mX^n8T=O(jq5Aa zT&b4K)kUkcU@cdd&Fia-E?Y}gwzRTJi$(z7HciPN6c?XqPT`SblPNULErXh|%@#l4 z77MggW{ao@9lr>nWtUt=m!QS02cGLWOvL?4WE71+D|f3Nbh<^R5r)TvCo0r@SPQ&{ zYe5f<%%B&0dpMN4Wz(}8jtgDp$Tc*3N*Czq3iu*6V46&zQRp1-T3wVwFds(9x2zJ} zi5{1RhR}C&sDwtSYXu&+G*TDBf5R|B@V7(5LaV)CdX7Q;hp{JHZ5V9E7dHaxunvI^&K(BSk3GU%p>IkJm1_-k$SqOFIfn|f zUiN7KBau<@ibN9ZWfxu^S&)@=3zawSwMK9nG zwz2f$%mE7o=&()3wQL;4tw?@Fy-L2CLZ46dVD&(1u87g|Pcynp#5xK!NDK!?Zv8{4 z^=2LJZZ_5Cj5NF}HGTp+R0kwKi3HvzliKJpdMyNJ)jau0L64QBB=1U17y#<}ZS%|UKT8PgWw!zTK}i-Y4g?)g|)l z82WK639+1>Mi7t15O)fLL4qo$PA7nIEZY^vFRU3ecY}@=1;Fgpso?+ zcz8K=>dnj}%(XrpaCRPCAjt6>9q^D>xE)m->6+&~8;`#$Vn zsB1D@SPR7woJd4~cbW@#JjbV^u+w$WQP=`VK{swe0QD)@HdGB><{{Ph)Z*``7+y@P zncf$h>J<4ah5kt4?3P1oERHw1e2Y4}Yn*+xSXziLT}}Zat(u6nDtS7huSt2fT|>3@ z>&oJJqojMAuAg7;x1L5|2a4=J74*B(vrUqlEb?Ej%YWe@*(z65_uJ2=^HEWKF1{v^ xkPEJp_B`hWv>yfc)od@v-ct=A-!4GkbO^$<^$&gZ0kr@C diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout-v21_notification_template_icon_group.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout-v21_notification_template_icon_group.xml.flat deleted file mode 100644 index cce601ef44f493d118a7b2ae918669c0c7556663..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2028 zcmb_dL2uJA7;U?5Yt0H(CPbCf7C?xg)wJt63KH5to0!A_iNZCwwwo9dJ94~^BK`pX ziVNJ}#Q)%g#1SVAY#BwH(IQ!~E&Kc4dw!q2yZdZdE|p5Z+qY#s(BBW;zAR>g36%+aEdrhh4%@y&B%}}{ z9MA+RiFh&=GDLc7A5Ab$}4DOQNxQDm4De95UG2QHMqb`(s?+nVu zq}w?YPWx>Xx(%?*2uv|rm0HVP1&w@|L$1`Ud{Qz$P#GJ&a$QpgpBrERmJugXFk-oZ zQt^EV6U`w)Njsl!V-Z0Vzsb<$bGD9ZU)q-_qE9pFoLykB-KsERU)i}+Kzsn**A9xizqK@79#2A=QmsCyfVtMlIJ*LLERm58*Wj6V`eiD-E|$+w#OLMn#E4JPs>P$;Gm2DC zFbe5#8dG}(Yo}0oz!OHOHgv05J?ZbY=92rf3cgoQ`ul$`g5%rCF=Ku?KS_NBPneq8 zfO7JFlsVL}+)vfZ^?CJv4AV>4JL>EkX*;)!7VeSQd2AHt?;^>9ct$~rmN^&Oi*b_k k&zD`7d&<1x^`mSDg)iU-CRnaBmJKJ0-v$A0ssI2 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout-v26_abc_screen_toolbar.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout-v26_abc_screen_toolbar.xml.flat deleted file mode 100644 index 1d986df63113594f26437509d7579c8a1d7ec73d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2404 zcmd5--BQy)6fU$tT|hz&o8 zanm)ffJy9F&=#1IYLL`$I%~{>*%QX9O^JY*pkRB>m;*EY?O+QXi^w+@`8vp^tm}q| zsCtmehxDCJfDZ~-2V;;pjABPM8bWv*mc`{!n~D8?qNI#ALB{yIAQDL5#fA=|e2|L5B;} ze2s}i+gwWt<|F-CtT4ma(K1_$va)9tPk$0C*kp)&wSjQGA+(7m6m}!RL4O=8)I=0Y zmP|BGMlvp|qX68LmzGM;Dp_L_l(aESY}a>?o>NCdS54mv7lS11@LwI|MdX$s9|Tr?Bi8B1WHYv~=x9kny$d7S z@2`F<>3gvf$sD0hjY8%;m-*CT(62kLFGdU`?Es53x)cTYi$O- zUhDrouIW!>mFt?IzTF4~ciW}*5r0H&Kk7_FRYAzxh`YCy1>=1Zyi01geonPYDBJp6 zk6&uYuSm{Ab`fx1ZBlQLK9Yfm67c}Zgs~T3t7W&iV3^dqJu|=`->W+P&-8MvsstJ{ z)zz4O#6MJ)e}lG^gRGK1g_EJ&H9jZ7$E5asQv5>H14)ph=@mw8eW3^1%%CXjQ3r*% z#p|A+jzveopbi5d*Y}iSFuN0pZ(?d6q5uE@ diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout-watch-v20_abc_alert_dialog_button_bar_material.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout-watch-v20_abc_alert_dialog_button_bar_material.xml.flat deleted file mode 100644 index fafde916c5ae10231c264fe3c157ed8db90ad848..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2164 zcmds(!EVzq9LC$Ow3XMDD(rwFgdi0MQW`fcTh~djt{M_Z6PjS$CPhx-CWbVQ9Ji&M zcn4mHM}Q+7;YIj2NrAy-5#usTR$|Nk^!HVLaht8h3hl!U76U!^GVkn-1wte|K-!84mWkJ=+`*((O~TPrI~h zV*z_pN1X+cj^CO0x)<_hyqyO6Hfk^zr_N7ENCTx*Qwr!?0}WA?gs$MsRdipjm*Finx%*d|)h?>rrWp6GmeqjuVL5Ba}m2sRFV& zlS{Q?b6`Ey#<{kan5#BN?ehg|PjYEoPgx%^K^@6>s8#~*Kn%2Jxn#Cd8Ox{4^QBr} z2ohNi4+vVKY-WrW2`_%^nEkvrx|jULB_ZOE(5CGJs?tw>_$P(pVJxK>>yqCa}|Zo_FC&r(jpG< z2l!3gxN+jjnH%B;N5*#2M?j#JdZ;DK_N-?#-+Z&*&g$y!em0ZIbnXm-54a}4@VSt_ zqkA4cW({HDnr&f^aA7$Vd#r8=Dm-HOSP%{dwf9}N_hWYCMvwj>YrcpGkIX~n1`!L) zQk`SRBc_dQmqe!EIEW4y_oL}q^MHB;o~0SHT&p zGAY+g4!&tJ(=9A)ce*)S{$E<9Bi}QI(GYdaB>DX~X*E}vGH#+#FeV^2Xp=gGKV$2S zNH8CktHvlQc9tzc{LllOurO{E(LlVw!d)B?4@_zXeJY|w)Q1CyGwP^@D@3?tnh~J& zaa3yCOE&XO9KKF)v~3!=YlAy9AeiqYb=G%~gumJcrEOAitX+qU-r6JpHY}HM`i2Dp zd-}3ev>bJ`p_K<`@afx90fth3ESJ!_E40BD$Dw6IDv+4IB^7G09jZkg;cA1>XSQpF zn8%UUr6LVLIlv1G$^xy>gchbY_Kd4)FG9EB((;8-W%}Irn6hd7MCd!}B1aCw2|2|- ziP@Bb5EC<;5|iw@PDfrOJsVOPDQ$Xu%i^e%fJ%sI11ZDe=Zf{YMXfZu z*bA{u^rzDG89UX{u7h7EQo*_oyZb8+^+}LSBqb7}Lje7CC Zkgv0VK)tI_?|wCl;B`@%i06?^<~J?QS(g9+ diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout_abc_action_bar_title_item.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout_abc_action_bar_title_item.xml.flat deleted file mode 100644 index 53b1340d58dd95d4b2dce01fdea16f0597f6ba5e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1588 zcmd5+PjAyO6wkUAGSf*VXw~p`7&)OJ;{MUP6(MNZ0fvS^sIX(?ByXv~i6h%xHx7Ig zu842NjVoUPr)#BAA)$yKu;lo~_IvO5-tRpRhi^t}mSrvG?hW%}#&(UNBBOvqF{ z?2t3Y!K{9pwDv>j!+y7S*o*oHhpkT7KA^PKg?1NO&gIMNJlyYxvY8 zoI!Ld_KtTK-TD1=an!WXH-!4=Ce30gSnPOXt@B5OC<8mC%AfE1kw^*6Kh6Nn_i)9& zjq4{Y11e8uIdY#mHKi{(;ND=ilDC?_J_l(+@K0HsfcA%Zek9VI8fliyXH@#5BA3S| zmF_Vr0l?Y3N=+~ZmW(y7PbJNRNMsr^?Y<~wsy;V0Ww9PFSvo3Z>6Vbp_@_msVA}+* zSwy+F>D17k8Mtb1HC}l?E9gfB+atKp?-@+p$EAF10Ou@M>=WR1$YS?-DeVf2@z&tM zA1dPi%>R>8(ILgMghNr6xT@vEeC=kVdYu5=xbJYp>kLdKcC#MML; V)no6Ny4i5nkP+`SyyC&LegVD`6gvO_ diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout_abc_action_bar_up_container.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout_abc_action_bar_up_container.xml.flat deleted file mode 100644 index 760b0d9ec0e87be2b8b9c5c63121b2daf0875670..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 672 zcmb7?Jx{|h5Qfth)Djf|84$9>l7XQTaoVb12nn?VqEZJ25My+4u1#oSN4DG2jgkMt zA7SG!;eNo1a?;82YrW6;d>#%TpGuZx{pLs6Y)pKb{N9KrY&V6qSZE3%3xMfF@E`;k zEb@Q}t|8$l9qXdvzL)5;LaFGhh`AD+dNT=8ij)D1QBf^{tErHgx^B^FlA>9?CiOcZ z4zSbi_PcD*>-(*+*#q#~*leSZen_S9{(lAUElVx?t6~rAD)2~(Byt+D*7*&k%GA$5 zd3)VsBBPMcx8%J>%C$36pO|JqPPYBJFLnXHV~4=zGbt84BA0idwWPbp8i5>Z%tn95 z?rkA(6*+_{M&xh`sY3U@nA^-?ndmh+VaPSgV2M&E3{rPoh;zJ~KoDaxi#4fdpjjN` lAPv=hD1@r-QL7}4+)<|f^Qp%7^ zkyaq;lp|DWYa4nGcEj&Ge|)4ZwtQSxC!ns5C}Sa?R5J= zTjlg7<-&=w-%$$S%L0SJT2qxWY2y(XzHvegI@FrySll2bPNaQB^PG$2xwKDH1-)lE zSK*lx;$DY%3kwW-(+2R;2{7mYm)p9ugcnW(zaz}0>QeaZY1 do5r61We+c%=z9(Ql`N$W9{vm5n(ROGyx#;LhJXM7 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout_abc_action_menu_layout.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout_abc_action_menu_layout.xml.flat deleted file mode 100644 index 069b96f54cb062cf0949f82a19b0d5bcddbb90ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 720 zcmb7>%}T>S6oum-mH3BQhy>hZqX=e_lv?XXD<4osk(SGdtw6j*f-Mt*%l6tEl#1)8BIMuE_MsS16RkUr1R-eF9lRu4PaY95~)(@y&& zN_ue{AZlXV#0aAvQP%tC^6<6D-H&Cr<2FDrB{}mBGh@nALbTmnfDUUtq_QATzKof* z<}a>pyNSC5W$EqzZ##makv|^)U<%d4vXsh%RXZGUHb4`0#{u2he4aRtf?Ic1u-9O` z;tZ9)a|XsJGKu;E)a67E&Sz(B)~tJAjEjN45+{t8!Ie8lI$pz;SaI{_Z&4HmRa&7k roI)Pl%*EN5RG4PS2buBLM+(Z6N{bXGxSk8OUZZT-Ci_kLDaQE*uHEk> diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout_abc_action_mode_bar.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout_abc_action_mode_bar.xml.flat deleted file mode 100644 index 0c52196d88afaa6f37bb5a584fcc05c936708014..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 628 zcmb7A%SyvQ6phxRgu00el7)*b1v6<&UoMpDMi+u$btQzG$!#*4WWvnt>sR~*cYdLh zwu&1Uxo{cgFmqnx@#AF2vaFwd-8C08A7;NQ(2VV7u#z)k5b+Q=30Z`>j4_NrIo4^z zTe4@3O0zea7Frg}PZY!%G7daN%}7C^r&8tmqQj;lLv#9V7W5(0Xi%4XGR_Y~tZ(J2&g=jH diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout_abc_action_mode_close_item_material.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout_abc_action_mode_close_item_material.xml.flat deleted file mode 100644 index 421e6c551626eb5b87c3699c21b498b897e18a48..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1244 zcmb7@(QeZ)6o#{P(`YCX0CLjXm4(T7lJZixo{LMC^yr# zbUOn&lZEj2UY{nrnV5*(;b=T!lf7{=$ohK#$x!r%A`wYOtpiAR3g&EOQLho74+mijjENrn zKehu4)K!MGPfM7K4^k}Shta0P^Fok&`+#U`*H^y2M^$;Btwg8Q8}T%}>PMosv+PKh z29Rw3m3wSq37LmJ2^(xUYO_MJvnoh7&@M#$u~9r?TA@&QEF81aRINnr9yqj8%`deV z*Q&AJOtXdiP49Ihy>-dS_Q9inbWD8O2zcY7UDI61d5)yxj|t0D1J>6dK52xyS))p@ zbE!@gC!75dmnMGR2owE*dAri8K`$DCIyGo1Ip(CZv|!Tu@5WCXk**uy+&92WF+xPJ-tfhW#dXFlj(nUCdG}o?udX===}zB z9_o^ao2X?qk;UCZmv@_%LkPpPdFbLJH8Y*n-kGn(Ju~--6EG5(Mu#HX!={BS2Q!mX z6tFg-K3iHg+pdSjw^1^St1Vo{t1D|8YgT!Eqqy8Ets_)i!KD>k#Ko3LMeTY2Zyfuc zJ`d(x+x#WJrbPmd1FnvYU(@FR6nQpoqsZf@>uE)tlR#vY^xI%YWZ>fv1$IBd#jJUf zGNVs{agpNssDnkxLI%8_24!$n6j0*Ys_t+eJ}^xtmhK~Fq;bO{zKOzvWKn4h3QjN= zcTuaVqn3vlgXMlci^7mlZXB)~N3Pw$+^D4eul3shM%3M{2LYzfk{N0D)ltT~9)`Cb zBhKkbKYq&Ji=S%^AVE?cac!t=FP_(6ZAS`qsyEoCP)e*RIA)0EKCFMYPVbUp;xOJ(2>> zw}}-o)DnW~@p>Uu9?NDnk*#1TMA+#g?NVB z9FCR}1UV9g6ya5}l~RZ;DH0%sXppeC2whb{Z|9`DXI{Cdf6juBS(vZK4jP-7qz)8h z??;TsmDO1FES2Y`6xCRsAdzR{=QTT%=Wol$aUqNbwi-}2zgzvqX~rG^~~?q(vmA?J?^lAzp+Xh4FO z^aA~FhePaeQ`q6BEckE97DO@1&d=`$VF@M*7q~81irwIQqg9 zDg?J;@W2+d@4*i8yZQUQu_0AC&m6tFaqsNxjlNWc`3dzs7ue7h`ke_pY8;gsWG4Dr~nGQ4WDH9!phHd=|V(t6XWcRvi`@Po?^o zL(XtiDp(lk${}#UZ0bppUXG~auwdAMfzXSM6h>PLMkTB8BISHi!mMgn2wB8KFDSRv zE%S4kd@4`rPLB5*&M5M5f&#iJ*)MV8pce!mfw3b6cuFPbmrxGWlo-aGMm;pLz-2Kt zjZ7%WXjo7i=J#3hZB{Ss_;d)bF_k2>cM%5=Cm)&KeYtUD!*cY)6(L!ZRRvIofqoQ2mrDTb>8wbqUz+`egGgKkXrxbv+Y qbOCh3XcX;2Fhczut4Q5-m>%-Z$0j$*%$aPW=KI>n5cD diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout_abc_alert_dialog_button_bar_material.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout_abc_alert_dialog_button_bar_material.xml.flat deleted file mode 100644 index 9a6df440c6866b58f2587fee67f1c1c2b5eaba58..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2740 zcmd5;%Wl&^6iw5Rrqh&IZWom$Bx=N>4%kjYpMpLDNEB75qJ^zBwx{uc^&A`$E*ziYko6pQAOwpX7jvhN1>sOtOAC|w+X?GgLU>}mU_q3y$TE8z z`ysJB>;)vT1jkWw#CSis-L{TsNZ{9OS@yC^*2!{bWo^YL430aAM3;q{mW7N|JHD8~N13g7HK{g2iuK2Ab>}SJf&)*Wu7AwFRYZd~2Yu z4Q**W$YcNvhf=pUa#kKtPCP+b zq*X)afz>YOoaFX4!#IWM;%r|ifYobI4h|)qFdJjvr%|t)%~zYe`{jlRWBxq18S+G*<$(!}tnfLqs-n_SK zYkLR1Jv}|mzt2bEAGkgP!(Suu7)?3klr@Aws%C{al#7aG6Nl9*E)kT&Q0z^8j z0p)@539EYn^NeDR6U(87Nz6J848e&P95L<&w`Ywb+oAAXoH0rZRk}hK<`$P1&6TC) z(rk5RiICD9otdL0TB;fxe)~_)FFtl1d<_lTmSHkaP*3a;k2-29JBf$UU}$axg1KOL zh{sT&WoX{EpICju+kUL#Ni+`k1}0~Yv+Y^7Nd)7Y?8F04J6JB|$N<7ft3G#D5e8EwO2-tg78=-Vii=pK(ztzqGaZmEg!2YiV;arnNnWE-=xu(X)O~9SU;3o_BcJFoKq`Fclw7?j`NA*_oI^SO3$FC)hi$`E8F;&6#C&Z zrR_+qD+F^Q%D?SOOUm{CpVrnP@YmF#a~TfsxT_fOX()L-q7Jqu!St?j9X_Z3<^bMO z7Vx)e^wldatNtz89c5M6>*Q&jwQ z27Qq^--F1NQ=t^&)-dkkqo%z(lj=)uK^{O0@~jsl=6t_X5sjc8dT2 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout_abc_alert_dialog_title_material.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout_abc_alert_dialog_title_material.xml.flat deleted file mode 100644 index 1b265fa76c330f4aa56a1c703f16be5a2c6360df..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2820 zcmd5;&u`;I6i%CzO{NKW9mFmpKww}&UNufzwoO+n+R_%WqC$n1A2&0xUz~yQ*qWIn z+tnWVr??_+T)A@L3gXI@XUEyybS1<{9M)14`#sO+H}8G(y?1zccCk{c)fT@$2|nP} zMZ+(x`8~NM*kv{`0UJgk6QE2Ob0)GRG~5UXQ)WP+!L8k_dq1oMUusY~_%0huoynk= zC>9F{A{LE72SzceN100X##S)m0`R}L8T9WAVGr(X?+kXLz1=~7Yq+_~SbrNfx1kUH zVW4pBe+#4cAQgU>ba)(;!Cn+Wx~t6%|8;T$jb+fse9B``pJhiAZL$>I1OEoOzHo;I z(p=!a&_Vs{WW8`?`5BWS(B#(0&t0-dt}z*_jK{7&HYUFt1RD34GTp1}y(miqmVaMH zU)d-wr|nZNfvM9nuiiefSnsa#n05|sKNXR8-wL2J&to_So{SA`&lJnUD3b=H@jkJF zYFAJ*9-A?3BNL)=m@`!%9a$l*XNu!0W_TuPbBZM65flE4?hAyxi5G1&UvV~;o^LuQ z{!bn9W9LdbKezhuHRR`%n@dU~{645~@$E<2Fl8PI7#Z)x3bLqBcV40LfGo)LeAdZs zZ%cI|W31XkWDXPF*H$T7&siLEnVe#F>1+GU7!}M#z%({-Wge zzaxKZg-j~si!7(N4q~2yEETcR!pa+>OgvUZ-*w5Hz7>T%=h*+FPJXY`*8P+v@D+!d z_mNc?1-YDqN=)ve3UEBSmKawQU~PLV=DBxl6^BzD{gkPM%M%&X#-Kp?*b2p6LYWtB zj&o>*vn)i_hU^mC(kM7^ahU^cjkq}~)xaBAg;CckqH70oA_NN7J5KW%2HbYu^8c=r zzv}eeMU&8zJkONrO?P{!qY0SaaoJwW#^t@|u4!{AfWEQ6D0+EXW?aVEtbFIZ@O$^H zB5i>XJlFgo&^pN2vrBhD!k0>gd(vW`Pj&myDl0^zCJ89IGi?|(0ZTe}3_LK0f+rHy z!O+$e&-Z!JMvx5~$cCre*#}O5R_ZjCtUFHE|8150x=LSO@S`HddCns6KDF9UQKwg* zbfPO$j|Wy@S5)KuXEm@Kt#CLjXRF65_&?4Rmerhc&4*kR-Mx`yMNOLn%y-LOA$WVw KdAk_KYX1NYC9fC& diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout_abc_cascading_menu_item_layout.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout_abc_cascading_menu_item_layout.xml.flat deleted file mode 100644 index 37c721ee51342f7707d49beab1f9cb726a13618b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3720 zcmeHK&u`l{6pj-$Q&}ffm3G+J%ch{%pr(@Dv`)QlOWZ7L1Gt^Hct0+KMoWy%RT2e? zwwv?*qFs02t=ArQ8nDy;fL#adQI>|-4T=#6iXJAw5cNzx>b>`UAD=p%Uca`qv{e1% zIy}I24Gi72*%;l3$q64zpA5nvBzZ_8mJWl2rsIG~ngp}I?WK2CoS$m`*Etor|05rz zIZu6WC`c4jKP2IZ=Drjp&5yZA@>{q4V-{1mdriM_cR<_p?sn^5D{SxFYup|*cL-^0 z)8;m9(8jK}HD!?;;d(-3I0`Z%Ahph?TAs{=rQa4_R-5fs z#4=}JYyBlI80<LR7e(**j=|*5qb|UY?$v_AGj}8(DN01@h~AnTBPoKtzFQ7 zgijSx(g<(vMS@Jp006AOA45?p_ymv$Dj12K&$Qexvk2RJHy6?9bhNxI)YoXLY(CU- zu~F7FA!5kV2V6>?VB?N*q!*Dj=cv!K(#yHQ4C;E_GUn?1zP0cEvVnfy!1XRmDG}X5 zqMWvUA(tmH#f`n=NKepXDg=#`m^>;JK{MJ{ zXnBU#YNW2(K#G$65(j1w%!_ ziqpV(thIW*WDA^&6DCja#YIF;&bgDe;3|jwFBtcnZ8G zX-Kg%!}Pqh3%W)Br7&p3mSw&KygSyH?u#0FUc(oTG7{4BkXgN4RP>zAPU2eA+0)9! zJoStQ=rhFHIwRJ$b<_RRK);_R*@KE?ZEcbrl}*t(@@!Wta>cW?f@f8K_CM7YJ4ySs zQ0*uoaeSI;_s@XezSVdCUO|7&wO*fB`1?d3f3ps}qdIWSMo}T>$_zQD+IY>jW>KhD zXF~mE>a!lRF2XllO#3Gp#Z^>#qJ}0cX9E_i1I!q5CG+ON8JOr=-_5mcPpku&xe3i2 PvX>EpanIUNUqk-@@H5;7 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout_abc_dialog_title_material.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout_abc_dialog_title_material.xml.flat deleted file mode 100644 index e16ed314c90b5c85a5ef99d50274a7bd6361125a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1700 zcmb_cPfrvv6dx8AmI7v-gE3VMnS+E?W_BU`jS+~ENWy{0D&EHK^zBY{rk%8JS@7T| z;ObZL>do)r)lXq}cGido%>(`jFS@Adb7?;RYRv?m;-sj+r0d0a0Dwamc!0&0s69^&}#b5%|Oq#CJ zsaahMx*`Gl^; zqkq2T4+QT4`iBC~gyd>qj)erKk8^&!m!yOb_ik69IlVLpX#qy3Q1`(*Dh0DJA}5SN z^kSs*HYZUWW=w-b?^P+N`2xzm663#+UX((bQ(9R6426=kb`Bav#B7S(X+oClpi{L6 z^_9lYD)~{RwKiPfTLA-a*{vG9On^SxE6Cqvh&mYLWVeT!I~|^T&q_rz3rQj}BR&D0 z1j$R@t_V)a{*$q`ZkV2dW?2|1iMN}cvr>f2WsGwnd&kg4`fxAjcvRRY8oHo0@RN~+ z_pTK1d;$DA*W$mC-2Q1p!|@lK=n! diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout_abc_expanded_menu_layout.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout_abc_expanded_menu_layout.xml.flat deleted file mode 100644 index 0e06847eb0f9802668f9f97f001cbe6f29d75fca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 568 zcmb7BOH0E*5RUPngbJF2lw5?Iq|%+Vr7tg9(1W1hp+0V5lbtrJ$!^%)K0Nr({1g5o zw{3dRi*#UE=9`^wzL^<~9>;r*<81xhwSl!S>#r-&ns=7d4>>bHlQhOG%5{mG80+~AX7zIj*!wcLk&hzp(j!my4i*a&(Xf51yMJ_A$B{xK`$Nl z2T?m|^(l=y*y><}Q3A@={?nc;i@b5_9dic1)cNk=iTCY#L+`*!R+2Nnkr`870%)tL zpqf-TNo4`Fd|!8~u)tOa&Fu$0D@&;infJ+@Oo_=;SWA+sNXSH;cX7lxnA`1O?;?N^T=e?G zJ{=8)UN`6r2=RK*>467cfTh9yFTq_Vyxp`8S%`mCm1|9etdFWSvi3wt1bXC&ZY??r?wa2^WbPr^Ji z3`E0(NJ#awHm+UOGKZo{B0+PttK_DTk}?bJ#_ie8V4bHz1V`W7^UZgdGrh8psp$u# sKL@EzhunEAMAz8T#lWVqw(AQ?GM@@Vnd*W=u5YOpEY$H|ruFjC7hLrT6#xJL diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout_abc_list_menu_item_icon.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout_abc_list_menu_item_icon.xml.flat deleted file mode 100644 index ad4b365f8a853f35bf30b1cfa10640b16e86bc68..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1016 zcmb7?%}(Pm5P-wa!Zs=kbUC0LIOGT-PN{%)xc~w|C6Eww_ZqqJv@yhXWKZc<;yri{ z-iSxR6muvCBwMolBh5FTXMA#U)0+!|;B&q%*n=G}c5b#u?rqT?Q7G`&k40s84O`0U#??VUn zTL!W6wZNekRNwk_<7tq-wXtZ`^-1Wk(I9vgISYT8i zYg%Qt^JuB@g%|3#LkX&fT%IaKC8EVP<5hg_1zMj0UBLhy#?PlQgSnl)@5k=c=giAz rZ3fg+mDBP2KXpeLbB4v2Li^RHW^A9KH>n`1e{{bq4QKHFzk}cnQl?dl diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout_abc_list_menu_item_layout.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout_abc_list_menu_item_layout.xml.flat deleted file mode 100644 index af54f8716b5e2bd670453c828f4a2f6ccc610b76..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2620 zcmd6pTTj$L6o8j?k!6IXG(fOVSbZ>6+Fc0O7-6F%K$c_!=xa0Ep52a4FHUE7fd~Jb zPyPbmjBmX96P(_Rm7tkK5}P!g&gER@eCN!x+uietN~Kb~PmuT#&u8%-Pp8caTA}zd z9C8cy9GjAu+dc$Cn{e>$Y(%Xr-_t)@Z(?Av^)B>+I1DUvz_3ffaE3#%8i3W=HJJiD(>&op~#IbsI@2P-inYZ4b!6lqxu?zem^+>wVFm#=8tQ$7R>Y&#>I=%N z(*Kh3)RmX5|A$Rg__uqqm|o zjqj7_dQz*O!v#;XNDlHpQ6*>ZG*C*Sm|TH2CF1vC2%x`~@)-4T64C>A02&g7iChVY z1dcDHq*RHkq5Wq?CDV_kRxjmnU`hr-mS`!4S)R!y#^Oy`=V6qmtemI0~(IC>HVKc@xRblIxFPr>mAUSU2}HR pi$s~if<9Bw_v_iesjLYmA1bv{@3yjNAhn8+7~56a$z7;Y`2khlZL9zQ diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout_abc_list_menu_item_radio.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout_abc_list_menu_item_radio.xml.flat deleted file mode 100644 index 405200a2f1ed2a18a5ec0997c71815e1df2e620b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 788 zcmb7COHacv3@+Ocql_UY4yYHT9*1bUO?v@Cj1wG?CLZT1O}#acHdW$o?7+X;44Ot+##vp+-4>&>+C>n9u zu+GcwH+k2fH2IKms%1*Nsd*DX7-cbNf{LbkB2}WV+GN57nA>X+zZ=33x}Dyj$AYx15KTkUCT=Kc4yf`879pWX#G6Jew3a%XadpMir04IFHlC|EE=lRX}`3;AYtF2P0^m~4&+8;Z9+WD=LFH7V}%x}^K zGCmCho$7@S5>SgE0xrM=5+MmTJ6ffKJKmQq_BI2Pv5#q_vQ)9o+;9;C3wanp#?Ww; z%~F$OPY>Bl#$dmlF7uD3Fo2_8|D+!dj!*oKj(;sSsGfTD>arGP7KVz7!Vh>d!u}tH*z|oQJk@o0wdZ;IEGQ6xdDaVGbf~4 zBGvmGWxG4*3#q*`r~F;bg^+4Kh8faoH%AycAv6kv*Lk}(5beFzHX#q}pq1MFX1o2P zO1@WV?Fz2(orIMm$vVWb)S0{mx|4A8c>&A!uvr{P;N{qp~bOPBc?%qDErNkS0FSNIApW+e>%FuGUaDw|wu8o!9ItXobYc2gR zRg%m$JBG1TKr3h#;GMe_g;prTSk9F-E2Q=1Tn- zMcYkZ_Wu=o3-(s*t^dJZ2ka~FbVKbs%>18|ew-z-@AV`L z1^59A`jGibvN$_VWR%^$;~#SY`0q9S#!45~VP$#s?rN~UcDHe-+gxL;u?)>+Xh5Uu zOZ@ho3-F#s!nFwDp&ul%f>_zp)g^aKebJpKm(iZ}6RCoM9=hpX zCs(y;(A9fmQYIrbKXB`$ie|-?0DN91e|${V$t4ztGU1`^_LWM%^!*HX7_rPN>|T&W zK1-kEYcFhcx;js9mjkjvn&RZ%aLpTX7Qm^U>~8?*&_xM*jL6;>hyv4 z`ij;@lBJy@8qR$qSGB^`h=;0AYY|gHzmqbFadkF~JXIqeKhC{eY_6|{Jax8>zQ3GE zj*i6Luzl`I!i^TW#r`yzLlnq=B|;8YXz59&D4ni z+Stnf{X-?bL#E&oJ)~X_l-Ekr?IcQ>@(#3ql}Top6(59yR3QBn9OS8RgtP=&QE~u= zS)mD0%L!5DXV(bFGgP>-$&`{lYEl{|qgd<6frMj_5<)E|_j5%s-0fR5z_o2MPQM}r zZ&L9?HFpnb_4TZ@9;| zA^Ok=k$RC3So4NlozSZRsusvjsaWT!kzog~ximlK(kq86LpeQLUN4Tz>-$M3 zvs|0Y@IV9YlN4yVD?>gGdB(e3=(eNMOSBkPAH0DRht>}h{dC*f!I4YYWfOav5WIh6 LUDL-@Jof($gK=P& diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout_abc_screen_content_include.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout_abc_screen_content_include.xml.flat deleted file mode 100644 index a52a161f2173ac264ebe9cc28d3b6b920f457518..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 776 zcmb7?QESvd5Xa-)sb#5hm%fy|RP%UfHrJ!QUVYFiR0TnW`X+?Q?lf6VcEjx6ofW~a z(+|*3(O18UAHcmfhxjBJ7vo>arE4VNV#~~M) z6@;iWVYEZ-GNnbekQfHL{rD&UWRWcYVoGg|=1D;yE93%1iIzJ8ZO;wW_US%9R~7m< zneg-=$2lHM504JTe0G%X=aU&gI>pHpQ%rMCzV^QZB;V?aT@Bcr-3KknC>f4R=bB^A zt?yogP1<}SOwFPBdc$pVQEzJ$-K~)d96t>2G4{w?G}syqUygtE*>yj9vZ=OzJ3L)4KllR$82`Tj diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout_abc_screen_simple.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout_abc_screen_simple.xml.flat deleted file mode 100644 index 3148d378805404d0e8bf9cad2e65899cda681e6b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1304 zcmb`HQE$^Q5XVE?t(6(5i;&g^fu=}EC_tR9+PcC6n zidVi8UjpH_30o)aAp%QQ9H0F=-~Y}&JpAZIgKOf)7D z4HcCDJX9>pQ?RX0-JRmE3Z%l{MZ%Tf*dI$0r+_J;2`H>3;c6sgre5vf5lg{*{T>c> zBN)PNe{X+}4hQ?ePShI^67-?hhX8^IOSAVbzy4*GdL3l57!#_Q;9*2$D232=t+lyo z$wUluv$1r&Cur+>PiYC2oc?HG4E56VUk}g z4q41O#uOqZ=n$u`)wV!!E>*z<_d46}ozA>1cnaVg4Sx&V3 zq0%Ad3U_ZRyi#oL$4W57_$VbB;*(oxE1~Y^O1$-@*3RRDC_rqJh(7oTif)+?RG4o_jOA;@v8a6c(!uaN7WpT|;Owelx$u H<{kJ0kEg4C diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout_abc_screen_simple_overlay_action_mode.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout_abc_screen_simple_overlay_action_mode.xml.flat deleted file mode 100644 index a5356ba0fb4058b8ad3c2da41a01f1beba1fbc81..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1272 zcmb_b-EPw`6wcaeoveXMgtRTdR7FC9FyeI8))g+;gs7N62sC~!Ehjl`%o01Yot3=; zFT?HbcoiN6XHB#giHisV{l#__Ygu+d&hFGZm- z4I`o=3BZYBS)KwB7a&cL&`2}ENhV^jt?jn^eGPw7AQk>960QWt{!G$11su^R0fn`s zTup_{)YE-DWht1yKfu932xB-H9v&S=ylN*7@nwk&kjMPt;ZJeGpRwwGv~Kf_p= z*JV`smEVs}cAsI=4%@XZwW>iNB$*Bac z-PetvHY+GYmQGfYyxaCVLVdHG&c^-TWA6nTIbFu1w1~mov)31?j(fZ?mfJZJT$^G@ zb=m;z_BtzoyS?Y$RU7?iJCFXZ-Dd{#Gt(n4MV3?TzG?KdlI@*kwpZHDeb)#KF+NSH zhWPXk32RXILnFMJynD;!ElqtnIRDrcb4hbj3Gx5B!bsUSQX;#Bkg*^3hUEZSzX7hA BqvHSo diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout_abc_screen_toolbar.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout_abc_screen_toolbar.xml.flat deleted file mode 100644 index b00794d9ad5c2c688f69a1ffab11179b96094921..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2316 zcmd5-T~pIQ6s@$-&H@smh)u=O9UO-MNlOO`JP5^)@pEK`s*jy*vNS7cHnY2F=|Aw* z2VeaozWO74^Kba*=A*WVDDh*)%w)2;n|rf+&bepn_5H?$OeQn9zZB$)yb3b#IUkQf z(M5e42otreCbt;IUQc-}VwN=|JueB;QgvwQ1sp2v&w@fB;&-}4*+;R0wV4Bz_ zvIL=CGhEGBVNqWI^CyB$i+TbP4~Nqwy#(fl)8Q087D?`Ml51m&vM3FEqUj?hA2N3q ze3}7UAdftoQDUpQBZR+gnq2O(gSe5z4U2Y6Zq4WsyN!iWkG8#s*z+!C5~rsTNANyKu`YG?kO+Rz=K^8&LuP; zm$be8sGl0tPn7m&;^;Bt4_fu_i32`P1@sj`1Ivk>anGgJ5r06fAZaCCRY5GYL~Kxj z`r9mclhtmXt&K+Pudp-_gc=JX@!ePs9yqU=sMkCxg*FPEGE|#%w0l@CnD}8tyS2*& zBVIca`3T{G-?WFH!FnoGLQ|NDOkr3trEtEtf`7xd?B7MDaEhlTWkvs(1s}57H*5ci z3rDCPi>2YzCPgl@0I+kLe>L1jQhf-uIF%|sn>J-G*0~ZFmjlH&|zL2ai<=z2sGv5S>yE? z`w54X+rP%Wh{us_byMmGV0+Z-0k=g;BYqI4A-`6)4_E;BY1QoNrV9<&+_gp0qgdJUfSI9SzHug57uV(B?1-Uq`01a3-dYqqpHx?oebycK& zFj`X4zBw7K6DQ+PpV!{&d3#?-r8C`LW5;J9MEUd40_heR%g z-pg(p_ak5b;SLodwK)Xf3F-#WLK)mW`n%DTikuO>y0bndQ(rgFa`lwTh^&Y769O!8efAi3R^tsd0A`k4)90DJhLFdoqZDQH%*Mx&EP2Tdan^sA#iJbicMulIrX1JUlgf(e9E zGS3NXQt15cV>MVr<$G5w7^*bYQ`g}S{7TCy72&}9rb9OPUnF~ zhVUt*f}u-1m7PBJh_iH<(!{~_CD3cm?ny@$i4*90Qsq95?%MyM+sU{^f3b($5p9kT N{NAoKvgc1l`2@%fRg3@t diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout_abc_search_view.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout_abc_search_view.xml.flat deleted file mode 100644 index f8a1962d3ed6ff66c59e8b8056558421e6e90a7a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7900 zcmeHM&2Jk;6i-?^O{T81*`#UMimF;wrCo^EX_Tg^O6z<84NYm(^y2`z$JgPl5IHjl8+szKCX)0gZj^$7eg%-F@b3Rxg?vzM=2b{6KZ6fad~<}ohL zl9^djB*lsyLEpVcEj(#>)=4xTrMz5?a6^n?r_I%Zq)%u~A-&zFfoo;z$blBplMOx0 zg`wqi2NpSHPM&ahb1OZwt$;eMnLV>6P+pAEtTbR!I3gH2Y=WE6i>qh>9mBpG1=Q88 zI_Ke4+h*W|24;n%z2F258;6hO_9krx?2(aMqdquxP5RkfL<;@&Bh)oUOK-OqU%`>N zs$}9s?CNrz&{~}vxd!GCVw2RgWJ==OTw1?KOS@cWR7`_MId;lmhmz72xbtAluD;`c9#}RNf*Hrw;ZMCnH=tmUb;bt)I^QKxtj$iE|q`s!@L_ z04z6*%q6iwJw?fOgu^nxm5X@$OleAaf!f6|1oU9vA%=M)!PQmFd1R;G-UcpdHq3`g zBa8?e%Yhd}#+g@*%NOerg)P}JuPYfwTa?iX^+cd#YJpE6o=S~Luyt*U4`4YwhC;cm`_E3PILxnOWz$X z*mr`}{8WjM(z3}cxwJui$-N*bLpRv=DJKo7Y0FYtDFSnZ2^ikn35k)5HOZ>as7v~g zvKF*qt2<^&+PXESk4RaTgwc|A%X&V6{v7Y3Dm8ibiXxJF{&0msNnqe43ys$N2fbbRc&?bd*@z=#B4+LR&gcI|I z5_(VtJCAEo(DYp+Tk@NpXKpAN$P1LM0Lm792PzHYWT{_W!+^vJ|RI7|YHk0*<+RP?f)*d8vNy^qWrJ0Qo&!ZuuPl<7q_-?Pv-YUcu?I7UG zJ5sqaBNyx8II0xOi4p3DO)h!zEus6L$pWGyGG)U@!A7%IBTOh|)^GAzQriBOph!yh z?CfPBZhB=MHTb2I*U_RIny%6!j)!rvE#=w8{gR(>1sqDqvb^kpk~6DHqvVplv3j#! zYnVtVJ;m)r4C*G2h$Ef2!~x-cOUqe%G3UqHHS3Qo`aRoO-&K^B)k%IA;)0M75A?UF zu~tDfEbWrxQV_YI(FkMarqURDRfrc}qe65%kbb=uh-zmPLLr>&)QY=Di~R=bVXP4q z6K4u|aXnK~3XC+Sqy>ofM-c7ZlCY|M0&kZ05Q}x~l=br{`f;>N8LAPX@VgfKy?r{{ z&!aN6nmWyixm4=!Q=zsOpZMCG_4N>XF?7&;azH0e(zU%3N{=T_@ukCmf=$%OAjKxx z8L33n?lRJJl9*5vGkcw?hWljSr`jXy+adJwz|nFr*;ig&^$M0Av+wTp+5dRyzWLJ+ zEnc3<{M~VUlO6tIQ0DJV$lv+aeOq?;%R%iFWOW;krI9{}jO_4NgW9;b(u6zFzX8OG BfZzZC diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout_abc_select_dialog_material.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout_abc_select_dialog_material.xml.flat deleted file mode 100644 index e3d11e9fee0f7366f682d95a509bc072dbe66c6c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1432 zcmb7^-A@!T5WrX90&IZjKKM~h)QyQz!uEjh<%8UDXfP2%AM+er?FDBQ{XqpTy6ACD2JO@Y7GVKP&7H(~W4x|FV zC+oDmmBAitZEo*w^Szzj_C~h8!&rM0);FOI?TlJ)du;&8MWJ3k4j)KC|Bg^ehhqun z(agdYKHiU7Trua!_LUDeDobNA8Sf;XnRFFc>=}*LD1UtR0r(|X@ZQJ&sRF!+ zS`IH2kSCpbr=O)50w&$E?3tounEX+7;Y|aK?v_jlsfPy!(G(}ltP2 zk<>_99X(PiK4=74=1P`*b2@n~(i$-3AUMH Xz^;-*?b{5=Vl^brkXfu|MiBf4-(u}` diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout_abc_tooltip.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout_abc_tooltip.xml.flat deleted file mode 100644 index 6446b02e0fe216b0b66d6b187bd114b843d0377b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1864 zcmb_dTW`}a6z;mQWnMQ`k)|OF3CIhmXmPjFZbe*n5eTF`pwVqYfU48vtT9XM$oAOf zoqxf<;FaHoaNBf~$^$c+B`eNx&Ud~Xe?Dh>`+aAsR4R?<(>eQM#}7Nd&kmO*;-_#S zPYr`!)HPD3hUb3i?sSl|1C2_vuQCx@3KsSi#3`}}q69TF3WPqED$}d$?3kx$pWzy- zH+$H|W}~&)irO2S_4VG`20*=mYYnVpy~mXG{X1fKo~5-aAv|UoY7Kq#%iaq4T_J5U z2O?II$9^p_CV$45wgfWJVPOv=nK8&uhR}tLmOY$t%`cHo zqlkl-PTpl6)5_M9Ykl12dG0$=8A~Gr)#rjPZ^b-AF-}rw4K;_8JrJvujy1H zc;W1NG!*Hb^=2#1gU?Rxi#fzG7yTV+jLhi$iM)*E+ATf{J~^S2!tJ${<--Z+#NLZb zdp9Ay0(YanP=N2@vAGHQ7bohK0)2m2N^U^@|KL9uP&Z=#(TV*y@g14}`%KXZddb)l zwVmg-NP~!wKHAde!nT+}<+?V9cDXCF98B05^{3##Da`yJ%&ttOnk;Bi;i%G$c4xem V>P(IJWkPHzeO#R#v=Q4T{{W7}fOG%= diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout_activity_main.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout_activity_main.xml.flat deleted file mode 100644 index dc50ffb9f16b6b87b0d3cf3950115efe8e043498..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1076 zcmb`GT}#6-6o%_s-3U5HQIuZIAqc}YAb6p7^J>EnhWK??vg~N1ZBvp{=lmbu`Fp(e zFPU}qVj@b_Kp+VxPtJMYlWuo#zF=9_$J}zv#tby`#m<)&S&i64W=I)F@gQ&##7rcv zwPCle>4gTR>75J{Efabr)xAy`2YM?o%!YI*rAAO4&Ehly%F>i-#px746=?bu*?){9 z@?0hRq{@Yo8aP=4$DwZ?|Ahyh?vm>j&pHZeNrMxcV$+15Q4Z3(OZrg@-Rr5f&^Q=QmEwu zH5MZbKaqyyM*-X_mkGindV50pGu!;awwY_%N5v9-BUKE_XFB#zjD6jr8QOJsiIAol zo>QwePTOxbd9}UTxj|kE7`Ki}RkL1H!;KK2dQyoelOBsa2UP|oRbHEe^^-xa??0d} zL80Kk%<8lEW5v=SH{q||&yfyG>F(q$Q13w$$>!ng*KQg|NyBLqw?c?nHyS(B)_(_# C(`Z-# diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout_notification_template_part_chronometer.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout_notification_template_part_chronometer.xml.flat deleted file mode 100644 index 967c88fd9c97843377d214f0ad2597ce68defbeb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 724 zcmb7CO-lnY5Z$(dveqJt2ifBuD^2V-^&qXiD2RBd=OrYw-RN$zBvab{2LF=(!JGaa zQ?1x~+kqkE!Fzc#d6UWGtm1jzZ@*RD#nq?lj}7R`Z)I$)7f6*xnMlr1Y84~oMaB@~ zf*Fi?YP8ZhAeg{AuSKsF`eeaa`m9rBwW4Hhn8<)~##68q4O2GJCbz8)O=Je{ByHLs zFg{2|eApJFOVLYuygvli6Ws*5gCXlsF&-{iIbk}3`DDeFEnm_UnnG!}z z5j0c8;)+u14Cc&|El#-3DJx#SpWb4jqld@SznP;OzXUy~N)eupFZMk}ccnB=e%27D zAm=HD^`&7&%(X&L7~PhVs&A#1QegT|>AIAXZ>5@Na4!{v2WS=$Wu^EHgcVMT0+`DO ehmeddu3c(odoY>mykJNkcJfGOGKbB-c-|K(i1Ysd diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout_notification_template_part_time.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout_notification_template_part_time.xml.flat deleted file mode 100644 index d4d6645421e72c75ed8860291a7b5e0e28ccb6a4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 696 zcmb7CO-lnY5Z$&yb!k29N%pu04;2&pVM`UHMGp!h9;(+RB(vSFJR1 zVKU~Ut{9()K{DW{BVYs3PoO^>u^u&!`#&3Gm1mu{-;{!GUDbC3m*KtPkNqZ7!e}Xi zPKsEZQEHv1oLN%hgzKEL;(0r*#6rgpTURdW%w>F(u#C?A3jClhMYuOPD(yr!mB{U{ z%y9~Go?_Tq8dk(yD+GnnbtS1*DYcXW(?3cVm6Uud)jWe+sUX}zvw$e8#NS6);j}1# fxntlEl8ME&JCWHhm|W_-U`XzMTpii$V6%}=Eh*>Y diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout_select_dialog_item_material.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout_select_dialog_item_material.xml.flat deleted file mode 100644 index 78ec9466c8800657a2f54548779431233349f20d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1116 zcmb7^O>Yx15QeucQrabe$OW`F+#3?>O{0FK7aFxft<*zQ3KxV{6MK?%vDb_3HZ3O( z-1sT{NxUDS>Y+lmWZ53u&x~J>J()}|*P9x9OLe2?_iIO_Ybn2*>E2q8{u$-8D=wT{NDeEklrd8#lL#-IPO8ojTU_Hws5XG zq||!<3T)chQ>GP#>RUtZY{~lOt7P*MZ{25sOL7zk>>X^Ol%lfY2PQoQ=KD1w`4B|t zd8uxMyGvd$EWM`r4H_pHNOBy+Sr5mGe zBwvHzPb=VDl#6qmyW}za^nMM=gYf+hf6?f<{Ydy7zgZOM;CX$`ld3}SZ;WB`rgibq kdhYeAWoiWqRKG?YYpKmjo_~gk^r?E%dq|MSmqIJw&LJa0YTJ+(LX_+^KBQeJxgo`CyoX^2LF z)WnQ~$mX$J3d3oVaf-17gUU{~y;qOIpIhX!My1J3mZUmMNoTHr2_zI~f|?iwsh(v@ z>bE^I;{xru(4WsL2HyCT_C%{J9Eu(6{7EeXg8UH z6-))5o5~wjHmP9aW7(dICFyR zt|6BOlvA<;r#L$(1kW}9fk8up`o2UAKROW_R!+Cv+y^a+snuP4i^?hygyXhta~8ZD ztZTv?Qnj8P^sRlp0|+Dr_EZM*m7zu??jSs|*zGd=GQeHb`Y diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout_select_dialog_singlechoice_material.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout_select_dialog_singlechoice_material.xml.flat deleted file mode 100644 index ebbc3a689fa2f584da5ec489f908e73d6c1877d4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1616 zcmbW2-EPw`6vwmiQ5HHXdW9mca)UI9IBm79-OXAR&?*h7qGLkhBDnTx;M0HuIV3}n^xEW@0K*G_OhuQc{v(BO4NuiRkAuSFQ%IB}oX+_Fy4kg^N} z!gG>5w4C~_L>D66c~1DnDOR(ld@2v^@2gn-7rCk-=Vg3z3ihH<>?qFxTQ?;T*u$<& su5y=$vmb%7b>^z1f-#m{ssdhE)^1?LZP~pm{{xrS#tKmte(8CC07GOq9smFU diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout_support_simple_spinner_dropdown_item.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/layout_support_simple_spinner_dropdown_item.xml.flat deleted file mode 100644 index 1c3a8082dbfa03589dfb7ebf466d181fb5a61ca5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 720 zcmb7By-ve05Do=IiC`csC<8+zgajf^s3^1pP|*P-1|)vg$Vsk^!Lf~fQCr@CH)7#w z*mw#Y2oI2xPL|KU@8@nbx_el19OpkjI`(4Y)8=J&TUh_>|J92XPM~h*F|$ZwoEqyyUh1uVr`Ou2EryvfMi;5Y>sA~a4abb-Soj+y#jHpa)gUl9Z-wL0cuTAmu=JVKgno40L8W3z&<4UoL+cbU;zJH>R zAUlnQ2zQQK2T!_EPAj#fe;|8(&+AXpfNtw_^BY2b0e3x|qyPW_ diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/mipmap-anydpi-v26_ic_launcher_round.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/mipmap-anydpi-v26_ic_launcher_round.xml.flat deleted file mode 100644 index 856018ea6e0b5fb273bb7183655c739fd10b54f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 528 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 Jmv7wz{0nkU&jkPg diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/mipmap-hdpi_ic_launcher_round.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/mipmap-hdpi_ic_launcher_round.png.flat deleted file mode 100644 index ef84b0c11d133b5ce357d0acd0ec37696c5ebb0f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5080 zcmV;}6DRCJK~Piy00001000010002M6951J0001n0000f6951J0000A7;R~AZDDXP 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 q9CG!PrL*xBhTX}PjtWzy1i%fJ& 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 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/mipmap-xhdpi_ic_launcher_round.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/mipmap-xhdpi_ic_launcher_round.png.flat deleted file mode 100644 index 09db5bec842c9d26ac200d4f46af03427cb29d1b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7068 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 GV1fWF=x^l! diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/mipmap-xxhdpi_ic_launcher.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/mipmap-xxhdpi_ic_launcher.png.flat deleted file mode 100644 index e1c65a1661954a71fd7fc62f5e1c129aa2e47e61..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6548 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 QnE}vH(NX@WXd4Ci58*T!D*ylh diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/mipmap-xxhdpi_ic_launcher_round.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/mipmap-xxhdpi_ic_launcher_round.png.flat deleted file mode 100644 index d8cad482c00b467a4d1a58500d1b1abc9c3f5af3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10588 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 e;xE|#c!=*~gp`P&El?%OVJ&ow}i|uLjmg@F( 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 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/mipmap-xxxhdpi_ic_launcher_round.png.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/mipmap-xxxhdpi_ic_launcher_round.png.flat deleted file mode 100644 index e95b6de51614d064572cd6a23dccbe2a99cecfa9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15308 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 JS`HTezW^uriU|M! diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.0/drawable-anydpi-v24_ic_launcher_foreground.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.0/drawable-anydpi-v24_ic_launcher_foreground.xml.flat new file mode 100644 index 0000000000000000000000000000000000000000..da30f994807659c0969ed664f2bae77f46d7931b GIT binary patch literal 2756 zcmchZ%WmXE6o%XBi`|BSrdN?SV|8XjpEn6;s+3wItT*lD|OI<#yI`!A*b52$D!NEt5gkG<=gCBoO zA{sm|@MELe?8&#|GQ12=Q@Ti^lQevqMJrmKoaH4wFY~8aJe9r_e*3-ugRr~XpB*PT z`7~c;Ri34klG8k|7%d5X7OsnwlCUV|MRs1zP2=ujqdO0?=W&tDFHHL%mLSj8sr>Wn z@;zA$v$)KYc)Gu0thl>aRG?Xh6>0lPl&=?I@nlibYSH#714)<&@?0K-VZo-i|7|85 z8h2%MK_ixzv-@&~rKZEnBxWmRXy|@i%<6?_2b~l~E1I0I*k2_cc9OVtk;OOwExYH{KbwkC_=WHeJ6BMmH4CwAq$n$Bg@cSiv*@0>6)&( z#Mb79p&BMJU|7V6JYs5dlentsqKDX=nLSoD64C zC&KYrlBUZ%%}eFZ{Y{lF?)-iEpPcAeM4F6IH&|-_M^XM>Y$MYxZClHVdk^ae%DcdS zuM@t+@gF@es3K;0_6aTXR_3c=H=XN5{WLgo9b##=LwrQpBEB|vi5uxWJ36wW^MvUn zP|;XCQAWi3d7sJq0&W>9AJE`|JfX`aUIZEVo5aVM#V0goKs-%vyx;-1>y==6T+C_2 zU|CC)fzNBfGJO>2a!dz%wA; zPS^^<)sfA49gnZd`Fs>GzR$UaLyQb!@*#X7sCgWCSp&Te4T>BAZ2eK%jZm^4l+aC-xNSybR-nW~^hv1~iKwE0T|+!}c5xK^{+Tb-WX~ z#<3y>Cb0w8Y9*GPaz3h9ShB~8XqzOk1G5!*a08KJMZ$UD1YWQ~>GmIC!1&obN|TI+ zWy7)mwIF{kD1(I2^{gAyFsd)A@t$orbqvKfCvVN(>Goy$*;z%I($@*U&LDstfc8~@ VZSAk=&B2Ts3<3aaTGSEt;ve@y0z?1+ literal 0 HcmV?d00001 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable_ic_launcher_background.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.0/drawable_ic_launcher_background.xml.flat similarity index 58% rename from booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.0/drawable_ic_launcher_background.xml.flat rename to booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.0/drawable_ic_launcher_background.xml.flat index 0386b02cd3d2d8f54928d872ef6a0232877e5e58..07d113993028bd72833de5d64d4cff2de6526c94 100644 GIT binary patch literal 10768 zcmcKAO>Y}j7zNzTD zUnis4BAHF%xOJQ)i!4rC@kKP9PvTZIpRZ4&@oc@@zu*3!yw=5Zg7XJ|e-=ClmZRA) zO~%93#wg3?_uK6S&OVJ6t^D=YAepwK`AIvC7w!DD+RbYDPN{b5EFNS@TK^yr{OoGw zd_2rXwaP}PKb+T1QhisHaBCEgpN+ErM(m3s-Z&e_=kp}ZzBFZSpiExnBT>$qmpPAY zrK_OEFQwo`sdjT7Wuv;R+{#zu$>d=&Nz&T#T5oUfVSf|lmhV*RhoW*-o_jCKqT1>~ zr`Z|dO`hR7TF3atCgMsWxA8|g__dsOeIz=^wXQ2`o&1690BvPSS8aoXu-SPMHtj`W z(w?Z(Yl|#RPU8I1c3Ql&O!=fpioFgiYrWpSdDtwtA+hmiIr#0>y4@D{ymEW}V1sZN zR*qSEIeDYp|0QzBf*hs?xw|U4F6A(+9JBOt@E+~&+;Yf*9Hs}kHI>{J+qQDslw+1&PTt5Zhb+ipdXPI(%I#RW9m+9FFDGy0mO~cg zFg?f(m2!P6*QXq_^m6h>ZaHK@4%36&SSc4;xsYiXpv%KP6ouvQ`r3YLp-wJ58&+@4nA&8qWxFlnBXF+Z zRPiFW5sL~m$)r(19zI)nlXQkN@)zm%(mLF(eT)Q8*eeKBgJAr4ImUiNV_GwFN zxo!|z{&HaSJW6GFo)-9~)-#;G=39aGmrV*^dtFJAe;&$Ao-q1t-*wvAoE?VVilzlr zQO^hp!}A5x?a>CELEhmxC7DVp<7bu`y1u$9$G9>(Zd=ZY9V%l*z0vm6W~_^6&K&F9 zbNz5HN-{!8)Qwmvrms>QIqlF^1{qdjWf(gjTp8U!ZaO++{+(NGPM8 z5!x{eOMiB{-7UB4`pU$jt~aXny80njVJW`rwhNVHYL6Lh=KmwZ*!KR_WN*s&=64;Cgb_)uu z%)uxifn`Ln+fZN?4n_e9EGvTDfdZ>?FbYUucSW#!P+&C!SwlaBG)|B_e;+gBd;P3 z*n$Z56b!5sft7H;R1s_u46Gc1m2tqHiD1vcz$y_~1qbYf2=)>TtQvt;aln>DuvcJU zwFs<+1C|rPUW0+vBd|ISSY8BM1_NtEU=19wf(WL8fw2gT;ehEPSP=@0{+p&ojDAW2 z^mxsk9&tnnP#f^-i`pIA!$Z%y>IiCxGKiKUE?&6-F%~iNjv=+SVmHlQdQuL4p(6D&uN6@Ne?8B|g6AKS! KglyUSul5@{6}Gql literal 0 HcmV?d00001 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.0/layout_content_main.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.0/layout_content_main.xml.flat new file mode 100644 index 0000000000000000000000000000000000000000..4da4244983172ee7f292b9e0794dff87cf7c5b9d GIT binary patch literal 1492 zcmb7^-EPw`6vwl+E0Hx|3PM5_LJ$O#3UvnJ0*#w)XoHJso6rzKyNKMziOmu_a@?-G z08hcA@Gji)7@Rb2$H=55ksLcm_V0ZC2F&mgCnte8BSq#xuJ{_fq;@O-(RS z(lBYlj0)*F54!%IP~@B9vQRQ*jEt2k4AX?oX_lvq&^#ZOdxx*z?gZB`$UI92Tj+_1 z0!e2fhtpxKX_A#rt~l$suH&Ge2)#qMsEo7{kvHJRps*8(|eS_JQ|rHvVB5Y7a<2$%b+&zXDyW3H2F$b+M|F!iW&VKW5-icUDr>U`d z;hxb`X2Usaj`6K1F8_!VKV-21bUD?)Uz>v;*TA33 zKLp5&xrYAS9R09{K2&=*b^^KKvQmS8&5oLe&BAH@X%+>9C4lii%qtmLF6-&Mo~AQUf6x`=)_u! zVlD!|b4YG_jy0MA@KA!+8tu+4a)8Ug7I5jYd46FJxsmVtn~H4jaQ^XH(E18vk?tky%|s#yLLolw8=<2HO?#H z-H>=L^QJDW1?-b6yVvU2t}ssDHwPjt0~wu+Q|E_DzNva+h<99|wZ@A|9BZDVw|n;r z*+B5Umb#gM^O#06@UAt)0&q~N z*DS=%Wr#x@eA(#x^3EFt=kw5JCoA3yk{fxyKCJ@wKc!VbJLTml&Ty92TnkOi@apR` O6CJ~gwX#=~qWl7%)ux~T literal 0 HcmV?d00001 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.0/layout_fragment_second.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.0/layout_fragment_second.xml.flat new file mode 100644 index 0000000000000000000000000000000000000000..7d3bf9f8e8b668cef227d03b5afdfd4f586d1d76 GIT binary patch literal 1976 zcmcIlO>5LZ7*4nQ)uF|8lv09V$wi3l42lP-m+eYDNU=g!K|F+MGTlUznUKtO*B|2D zf8o`C<5j$R@y#Sn*=Df`TLY7iN#=Q<_j#Xpa(MW5vSAp;<@nZv2ROdM_|w(52HFkT z7dcb(JYmy_3+1HTmBPcu-llaFNb*VgB9$WKoSaFSDxMI&U{M@$!s2)su|N!;K0lzV zVaOs1?OikoJbE@$N{UPPRv+7Y2*bSM3w06j`PG{(poV_$pckmegqO&`!?v$fd_ZaH z`aEJODdveQBg*2>G~p>N=FE1#HP}GU&?fN1k8WN#WHTj;RTOoUlwpeZ|FKSgkuNZx z6j2vIMWiYLIaDqMnFrpKEAq0OKh{cHZ%~75@OF;o0Gjg6?T9JYcVd=6sVtqTbl2GraXATmk5!y2ir~i-KJFXDp#pB1g%Ij8D$ZyQAyfQ>gH+ zevk*1AV6-yKV>uUviEykcmsmT&!Xhq;{|LCCa9kV;u z`;7IvvEi^b+|o7$LgQPuTZVV5cFO>pCEM1GI~c)s6^JQ~6MhlMSz09fv3~ijO8HCc v<~K_Q$cV0GfYp}GVE>b4GiY94j%p|8mMyiomv!>B|6Q&+SQvuk{}kgd2?>r( literal 0 HcmV?d00001 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.0/menu_menu_main.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.0/menu_menu_main.xml.flat new file mode 100644 index 0000000000000000000000000000000000000000..c27c6fd0ec732db6d500d6f1d5f15484eba6e010 GIT binary patch literal 748 zcmb7C(MrQG6z#eeM-UxBaO6q)B2?B+@j)iSiasbPh=^}8VjI?IlUtH(Zhz*hAK;rG zWV%%Zh0O(SxVhYOF87=y$?bi^ah&h?bnU|)VdJ6B(UxFx99P#+P%g34X$EH;qG!mZ z23ar`JppLLRK%uKlm&}uS$3=5?$Jqqj{Jc~Q&EH+gn1Uz)NqhP&5Yr4q_Nxb?OgQX zp;NR$Wu|~e{FT`<`)xnCT#IcRRL0bmJg0_@K+Q<=u-B`Z?$%=R4L1cNy8~^Mb^Z4z is5vjtf9=DYI)~RpSHgiLzGM@o7A)2%yXnF%$N2)a;pM#m literal 0 HcmV?d00001 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.0/mipmap-anydpi-v26_ic_launcher.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.0/mipmap-anydpi-v26_ic_launcher.xml.flat new file mode 100644 index 0000000000000000000000000000000000000000..b58db076326e412d22487a8865e85afa6abe8c27 GIT binary patch literal 472 zcmcJMziPuU5XR-$r9w~$o{FcEF<=QYl#(v>-l0S1hO?!{O7ss|Nz=FJ<8;iEwN+{d zymsip9UnLRzK^@AdU{R}Lgzl7L@X1#8Z^nZbQ&C!%}T+}G_CMC{z$&Q(_>Oxr?W?C z>BhFEvqlL)Yiqk8JQWAfP6-Oml^Uce7k5k6qe?LE+{tpkxE)jJK`VsF=Y-soOEBD9 z$@6&|f?G1yMPCga9rm=bnt|IgFFH2tiVRPtNpS@nT#$QF%Ep>`AgUlWG~2beJHux$ wB@Aq#J>p6BkXf)B%X>e4srGm9#t?)~4*M^tHOZxGd zy`|M8n_f#x9&BqmYm^YAv9=4s6R`#Dlpx?7)*ua@pD$<+#9*GdlXx>f`^_d>t&#-2 zj?e`<2E)CTyqvWmxCNzM%%Gto!=5m!DYzB&qNBsE%8SuBtxkZ03vwf{WY)|AQWa`| zt?qXZnBJm4Aj^V#c!WlY>hy9iee literal 0 HcmV?d00001 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.0/mipmap-hdpi_ic_launcher.webp.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.0/mipmap-hdpi_ic_launcher.webp.flat new file mode 100644 index 0000000000000000000000000000000000000000..c626e4a80026a8d7ea35d920c9dc83b863c88fdf GIT binary patch literal 1544 zcmV+j2KV_vK~Piy00001000010002+1poj50001H0001d1poj50000A5^ZU4ZDDXP zX=7h(VRdd}Xk~H|2ao~q0l)zSB1dU&E^2RRZgX#LY-MFGVsCGAbY*fbWq4t2aBO8R zVQ_FQZDDC{EiyPdFKuaXZDDXNXk>6{FKJ_6Y+-e7V`yb^E_Y>OZ~y>ONk&F=1pok7 zMM6+kP&il$0000G0000-002h-06|PpNX!5L00Dqw+t%{rzW2vH!KF=w&cMnnN@{wh zkTw+#mAh0SV?YL=)3MimFYCWp#fpdtz~8$hD5VPuQgtcNXl<@<#Cme5f5yr2h%@8TWh?)bSK`O^Z@d={gn7J{iyxL_y_%J z|L>ep{dUxUP8a{byupH&!UNR*OutO~0{*T4q5R6@ApLF!5{w?Z150gC7#>(VHFJZ- z^6O@PYp{t!jH(_Z*nzTK4kc{fLE4Q3|mA2`CWQ3{8 z;gxGizgM!zccbdQoOLZc8hThi-IhN90RFT|zlxh3Ty&VG?Fe{#9 zRrRnxzsu|Lg2ddugg7k%>0JeD+{XZ7>Z~{=|M+sh1MF7~z>To~`~LVQe1nNoR-gEz zkpe{Ak^7{{ZBk2i_<+`Bq<^GB!RYG+z)h;Y3+<{zlMUYdrd*W4w&jZ0%kBuDZ1EW& zKLpyR7r2=}fF2%0VwHM4pUs}ZI2egi#DRMYZPek*^H9YKay4Iy3WXFG(F14xYsoDA z|KXgGc5%2DhmQ1gFCkrgHBm!lXG8I5h*uf{rn48Z!_@4Bk6TJAB2CKYqPjiX&mW zoW>OPFGd$wqroa($ne7EUK z;#3VYkXa zew%Kh^3OrMhtjYN?XEoY`tRPQsAkH-DSL^QqyN0>^mC>{#F14jz4GeW{pJoRp zLFa_*GI{?T93^rX7SPQgT@LbLqpNA}<@2wH;q493)G=1Y#-sCiRNX~qf3KgiFzB3I z>4Z%AfS(3$`-aMIBU+6?gbgDb!)L~A)je+;fR0jWLL-Fu4)P{c7{B4Hp91&%??2$v9iRSFnuckHUm}or9seH6>%NbT+5*@L5(I9 zj@06@(!{ZI?U0=pKn u8uwIg&L{JV14+8s2hnvbRrU|hZCd}IJu7*;;ECgO%8_*Wmw_-CKmY(oW!`@P literal 0 HcmV?d00001 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.0/mipmap-hdpi_ic_launcher_round.webp.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.0/mipmap-hdpi_ic_launcher_round.webp.flat new file mode 100644 index 0000000000000000000000000000000000000000..6131e9fc0f2649cc51ad9a626c20029eb1cd66b9 GIT binary patch literal 3052 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 literal 0 HcmV?d00001 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.0/mipmap-mdpi_ic_launcher.webp.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.0/mipmap-mdpi_ic_launcher.webp.flat new file mode 100644 index 0000000000000000000000000000000000000000..3b8a8cc430cac2f3daaef48fe5c9dee6be75d7a4 GIT binary patch literal 1124 zcmV-q1e^OoK~Piy00001000010000?1ONa40001H0002i0{{R30000A5^ZU4ZDDXP zX=7h(VRdd}Xk~H|2ao}v0l)zSB1dU&E^2RRZgX#LY-MFGVsCGAbY*fbWq4t2aBO8R zVQ_FQZDDC{EiyPdFKuaXZDDXNZDeq1FKJ_6Y+-e7V`yb^E_Y>OZ~y>ONk&G_0{{S5 zMM6+kP&il$0000G0000l001ul06|PpNU8t;00Dqo+t#w^^1csucXz7-Qrhzl9HuH< z!ckn_w-(t15itRHmqN0O$B3XH(E|jyV^QXq8=yM`Q**vypEpgQd+no=JB z%l>&>1tG2^vb*E&k^T3$FG1eQZ51g$uv4V+kI`0<^1Z@Nk?Jjh$olyC%l>)Xq;7!> z{iBj&BjJ`P&$fsCfpve_epJOBkTF?nu-B7D!hO=2ZR}C%4c_9eOXvPbC4kzU8YowIA z8cW~Uv|eB&yYwAObSwL2vY~UYI7NXPvf3b+c^?wcs~_t{e_m66-0)^{JdOMKPwjpQ z@Sna!*?$wTZ~su*tNv7o!gXT!GRgivP}ec?5>l1!7<(rTds|8x(qGc673zrvYIz;J z23FG{9nHMnAuP}NpAED^laz3mAN1sy+NXK)!6v1FxQ;lhOBLA>$~P3r4b*NcqR;y6 zpwyhZ3_PiDb|% zn1gGjl3ZU}ujInlP{eks-#oA6>rh&g+!f`hv#_%JrgYPu(U^&XLW^QX7F9Z*SRPpQl{B%x)_AMp^}_v~?j7apvHMKxSf*Mtyx8I}-<* zUGn3)oHd(nn=)BZ`d$lDBwq_GL($_TPaS{UeevT(AJ`p09%+hQb6z)U9qjbuXjg|d qExCLjpS8$VKQ55VsIC%@{N5t{NsW)=hNGI`J=x97_kbz@0002}of-20 literal 0 HcmV?d00001 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.0/mipmap-mdpi_ic_launcher_round.webp.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.0/mipmap-mdpi_ic_launcher_round.webp.flat new file mode 100644 index 0000000000000000000000000000000000000000..cf3c7ddf6c6d555202209a78db110a1d4f10d70d GIT binary patch literal 1924 zcmV-~2YdKIK~Piy00001000010001N2LJ#70001T0002&1^@s60000A7;R~AZDDXP zX=7h(VRdd}Xk~I=a&L8RWD*CE0iXfE0R$pVX>TrSZ)k3FZ*FX5WiDcGZ*z2IaxP_f zVQp}1WiDZGa4l_NX>KhtI65zFX>e^}a4l_QaA_}TV_$4xb#7y5WpZC~Z*^{DE_Y>O zZ~y>ONk&HG1^@t8MM6+kP&il$0000G0000l001ul06|PpNL&H{00E$D+qP-j>Qj4N z+cqN`nQhxvX7dAV-`K|Ub$-q+H-5I?Tx0g9jWxd@A|?POE8`3b8fO$T))xP*(X?&b zrZw({`)WU&rdAs1iTa0x6F@PIxJ&&L|dpySV!ID|iUhjCcKz(@mE!x@~W z#3H<)4Ae(4eQJRk`Iz3<1)6^m)0b_4_TRZ+cz#eD3f8V;2r-1fE!F}WEi0ME zkTTx}8i1{`l_6vo0(Vuh0HD$I4SjZ=?^?k82R51bC)2D_{y8mi_?X^=U?2|F{Vr7s!k(AZC$O#ZMyavHhlQ7UR~QX zuH~#o#>(b$u4?s~HLF*3IcF7023AlwAYudn0FV~|odGH^05AYPEfR)8p`i{nwg3zP zVp{+wOsxKc>)(pMupKF!Y2HoUqQ3|Yu|8lwR=?5zZuhG6J?H`bSNk_wPoM{uSL{c@ zpY7+c2kck>`^q1^^gR0QB7Y?KUD{vz-uVX~;V-rW)PDcI)$_UjgVV?S?=oLRf4}zz z{#*R_{LkiJ#0RdQLNC^2Vp%JPEUvG9ra2BVZ92(p9h7Ka@!yf9(lj#}>+|u*;^_?K zWdzkM`6gqPo9;;r6&JEa)}R3X{(CWv?NvgLeOTq$cZXqf7|sPImi-7cS8DCNGf;DV zt3Am`>hH3{4-WzH43Ftx)SofNe^-#|0HdCo<+8Qs!}TZP{HH8~z5n`ExcHuTDL1m& z|DVpIy=xsLO>8k92HcmfSKhflQ0H~9=^-{#!I1g(;+44xw~=*xvNz3 z5vfsQE)@)Zsp*6_GjYD};Squ83<_?^SbALb{a`j<0Gn%6JY!zhp=Fg}Ga2|852e1W zU%^L1}15Ex0fF$e@eCT(()_PvV?CA z%#Sy08_U6VPt4EtmVQraWJX`h=N|W zQ>LgrvF~R&qOfB$!%D3cGv?;Xh_z$z7k&s4N)$WYf*k=|*jCEkO19{h_(%W4PuOqb zCw`SeAX*R}UUsbVsgtuG?xs(#Ikx9`JZoQFz0n*7ZG@Fv@kZk`gzO$HoA9kN8U5{- zyYvV{`& zWKU2$mZeoBmiJrEdzUZAv1sRxpePdg1)F*X^Y)zp^Y*R;;z~vOv-z&)&G)JQ{m!C9cmziu1^nHA`#`0c z>@PnQ9CJKgC5NjJD8HM3|KC(g5nnCq$n0Gsu_DXk36@ql%npEye|?%RmG)FJ$w KK}0tWNB{r_l#&zx literal 0 HcmV?d00001 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.0/mipmap-xhdpi_ic_launcher.webp.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.0/mipmap-xhdpi_ic_launcher.webp.flat new file mode 100644 index 0000000000000000000000000000000000000000..8239c95dca178bc2924389f8b6de9a34808b73c5 GIT binary patch literal 2040 zcmVA+TB1ma(E^2RRZgX#LY-MFGVsCGAbY*fbWq4t2aBO8R zVQ_FQZDDC{EiyPdFKuaXZDDXNcxYsBX)kGGUuo6o6GyRq6Ap5(_{XLdXcL-MzlN z`ugSdZY_`jXhcENAu)N_0?GhF))9R;E`!bo9p?g?SRgw_EXHhFG$0{qYOqhdX<(wE4N@es3VIo$%il%6xP9gjiBri+2pI6aY4Jbgh-Ud|V%3O!IcHKQx1 zFQH(_*TK;1>FQWbt^$K1zNn^cczkBs=QHCYZ8b&l!UV{K{L0$KCf_&KR^}&2Fe|L& z?1I7~pBENnCtCuH3sjcx6$cwqkNkru);ie``q+_QI;I zYLD9OV0ZxkuyBz|5<$1BH|vtey$>5oto4=l-R-Aaq`Dk0}o9 zN0VrkqW_#;!u{!bJLDq%0092{Ghe=F;(kn}+sQ@1=UlX30+2nWjkL$B^b!H2^QYO@iFc0{(-~yXj2TWz?VG{v`Jgg}WyYnwGgn>{HFaG7E~p zt=)sOO}*yd(UU-D(E&x{xKEl6OcU?pl)K%#U$dn1mDF19Sw@l8G!GNFB3c3VVK0?uyqN&utT-D5%NM4g-3@Sii9tSXKtwce~uFS&Jn746EW^wV~8zdQ1XC z28~kXu8+Yo9p!<8h&(Q({J*4DBglPdpe4M_mD8AguZFn~tiuO~{6Bx?SfO~_ZV(GIboeR9~hAym{{fV|VM=77MxDrbW6`ujX<3HF(>Zr;#*uCvC*bpoS zr~C$h?_%nXps@A)=l_;({Fo#6Y1+Zv`!T5HB+)#^-Ud_;BwftPN=d8Vx)*O1Mj+0o zO=mZ+NVH*ptNDC-&zZ7Hwho6UQ#l-yNvc0Cm+2$$6YUk2D2t#vdZX-u3 z>-Be1u9gtTBiMB^xwWQ_rgvGpZ6(C@e23c!^K=>ai-RquhqT`ZQof;9Bu!AD(i^PC zbYV%yha9zuoKMp`U^z;3!+&d@Hud&_iy!O-$b9ZLcSRh?)R|826w}TU!J#X6P%@Zh z=La$I6zXa#h!B;{qfug}O%z@K{EZECu6zl)7CiNi%xti0B{OKfAj83~iJvmpTU|&q z1^?^cIMn2RQ?jeSB95l}{DrEPTW{_gmU_pqTc)h@4T>~&luq3)GM=xa(#^VU5}@FN zqpc$?#SbVsX!~RH*5p0p@w;~v{QMX0^bFT1!cXGM8K z9FP+=9~-d~#TK#ZE{4umGT=;dfvWi?rYj;^l_Zxywze`W^Cr{55U@*BalS}K%Czii z_80e0#0#Zkhlij4-~I@}`-JFJ7$5{>LnoJSs??J8kWVl6|8A}RC zGAu9^rAsfCE=2}tHwl93t0C?#+jMpvr7O3`2=tr{Hg$=HlnjVG^ewm| zJs0J*kfPa6*GhtB>`fN!m#9J(sU!?(OSfzY*zS(FJ<-VbfAIg+`U)YaXv#sY(c--|XEB+TVyZ%Ie4L$gi#Fc++ z`h6%vzsS$pjz9aLt+ZL(g;n$Dzy5=m=_TV(3H8^C{r0xdp#a%}ht55dOq?yhwYPrt zp-m1xXp;4X;)NhxxUpgP%XTLmOcjaFva^}dP3$&sfFTIR_ zjC=2pHh9kpI@2(6V*GQo7Ws)`j)hd+tr@P~gR*2gO@+1?G<`_tB+LJuF|SZ9tIec; zh%}}6WClT`L>HSW?E{Hp1h^+mlbf_$9zA>!ug>NALJsO{U%z=YwVD?}XMya)Bp;vl WyE5&E_6!fzx9pwrdz474!~g(*XV`H7 literal 0 HcmV?d00001 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.0/mipmap-xhdpi_ic_launcher_round.webp.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.0/mipmap-xhdpi_ic_launcher_round.webp.flat new file mode 100644 index 0000000000000000000000000000000000000000..31b7df1d3b34acacc26a113c7965e38e587cc654 GIT binary patch literal 4072 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 literal 0 HcmV?d00001 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.0/mipmap-xxhdpi_ic_launcher_round.webp.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.0/mipmap-xxhdpi_ic_launcher_round.webp.flat new file mode 100644 index 0000000000000000000000000000000000000000..0fdbcc4f5de30715d7b07e9b0c59cf4daba45629 GIT binary patch literal 6068 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�(p-{x$&=IACIfoAR!za)F-^da-t3#0DycnpwO~NV zXwXCl;jE<}>%@xz|=8fIJAB?>+E{7)|4l${4ngA3G|=r2Dyv; zVVWSgZx9Wj>qUjleGl3Ei9K4>h!(lPS%8VOG>Xu0%6VDz^O=bjJmuP7>DeUvrbI}M zlHB^^d?{zv6d=@_ZD2lg1&G7UjnVN{1}9WkaM3H~btX0GtSzB+tZ^qRgWo4m!Gmim zlG$=wgXCnr6j@m<1gAL46#T~5Bnm=2{^@>|t&`9mkEPddjAvG~@ zTv~TAm2i%VW}R-g(Z0)z-Y|szHr@rk>4MAyG*Ma*7Yh#H7(!-5>DZ@8r;_dx{prSe z<>~099F8vsYd2xff7uAS%7{S)f(|@me3t2$iy&NEc7OUEchp@9A|X;;IA>8!oX+y(BKJ$EzV*nR$z; z!L$s7uy@{OT~nG#B!NRraT8(X##Ho!0r_o@gg0CA-9H^;-uE&?$2$nHv_00o%cbuU zc-tCx$Uh&EZ4Nf4Zgqv)Y6>usG3>GeQnxx_Z6+PcbX-+ysbt1hQ`K1LDpOE?rAhIZ zhSN9yVIAOa22gn577tbc&i3|3V8NWy&!tw##`}9*x}gtI^h1DzZRA>UuaJG)aZ7j) zdq!O}{?#8Y7~7i6fHh4{`pL?>-18|p!S75Y#^DM>-S3)vuZG+Q7l@ekQP~#c zBpWgg#mApc_sPYjpw8odQuRokmTkzcNl`^CcKB7e&;zViV;{Y{o^Y$%7i0m#62%#1 zLq!RC?}lK>%mp}T!3Xv;L*0v*>USLm``N%>w>@fwC+#T&Tx2bN4w(20JB}oUuSa6v z^kXi0xPs?pbaOHnyiqq6By1EZY9OZ^^QA>{q-Hsd&m`pbQ%8121aWG-F5xflZ%;B z{;C>X19|`^_?dVyCq>n+41w7|!tUS!{9rHlbhX=SZO5CQ^;!Du_E7*`GiR^Q)2!4M uKjfSAeNLOX=7h(VRdd}Xk~IPcV%L50000|Nk&He z4gdgGMM6+kP&il$0000G0002L006%L06|PpNQVLd01cqCZJQ!ldEc+9kGs3OD-bz^ z9uc|AA8?1rA#x4f-93WH-QAt;uJ6U6Yp<>o!9>IaV6aUZ*?W>}s4%E?srLW`CJh0G zCIK@hTkrW7A15Iu%N&?Q^$0+!{Tv&|t^Y@u%!LglTg&?Q5q#ijZ;& zHBQ?FNPp;k3J5!&{^+SGq?AX~SiOM9j zJMRpyP?RCr@z38AQyy&WRMaC;n4una$~nJKSp?q|s8F00c9?Q!Y_ovvjTFm+DeQM^ zLXJ#v0}6HRt3R1%5PT*}W!k8BEM;Jrj8dIceFo2fhzTqaB3KKkGlCLI)gU25(#u6c zh6GeB1k@eHq7l{EHXv0n6xE#ws#ri}08kkCf8hUt{|Ejb`2YW*vg}0nSSX1m=76s? zsZhRY$K=3dpJ+y*eDULGnL2}4>4nvW^7_<~wIM_5fjvwt4h1|g)g0Z6ZFq9j<~9~b z8((~TN{Z?ZQfw|is&Xp~AC61sj;xItKyCHdI|tCMC_LbXF>~vR=w6V3^H=W4CbAgR z4#xw}ETTwu2guW~=Crl@SMXv85jQ=%y!s^?m4PI0My7MWICO;-175jm%&PcPWh8Qd zOU(#8bp4!N7ET-+)N}N2zk2)8ch|4Q&lPFNQgT-thu053`r*h3_8dI@G;`zn;lH$z zX3RzIk`E8~`J=BBdR}qD%n@vVG1834)!pS1Y?zVkJGtsa(sB~yNfMYKsOJb%5J(0i zvK8d+l2D2y&5X!cg3BG!AJ}910|_${nF}sC1QF^nLIhzXk-Y#x0)&1iK!O;Og0Ky! z;`b~v%b$`S4E&fB)1NB4v@8wr(&+NX4e^&o)ecb=) zdd~C!{(1e6t?&9j{l8%U*k4)?`(L3;Qjw#w7FS+U(94MaJKS z!J9O8^$)36_J8;thW#2$y9i{bB{?M{QS_inZIJ!jwqAbfXYVd$Q5fC$6Nc9hFi8m^ z;oI-%C#BS|c8vy+@{jx6hFcf^_;2VRgkoN(0h!_VSGmgNPRsxI8$rTo0LaYq-H5i& zgtj81=&xU?H-Y z2==G@uQV7E`@+2E9XQW@{&j`?EOktk|Ho{HU>ZqDzvgjwBmdex&uZNd2C1h{{}2k6 zYs9$*nFP3;K%u!MhW`uZy7Sn`1M1zs@Es&;z*Z>Gsh@-3Fe6pEQD2@cqF((NrRevg zvLsvM_8;;iNyJ5nyPyy?e!kvKjGj`6diRFBEe49Oa7wwkJFV7Z$YT&DWloYu-H?3< z0BKn9L&JYDT-SK~*6c5pi18P26$JESKRYj{T7Zk6KiRJcbvOO*{ zP56Q6s8msbeI3>|j>K9}Q9UBeq*inXKemCm`-<5|-$ZyN4u$(3&HcvqehFD%5Yrmy zkg-^d`=BSa8(i=>ZoC77^mWY{evp(km@aHqhUECBz76YiR+VYKY_avFC~V3$=`6C4 zJhfHAQ@DZtUOwH`L;oYX6zK0-uI^?hS$ALfq}A7evR;ohJHij}HSZdW?EKv9U1s4oD*<(0oQ*;MaQ6@cvGLuHCPgm_NhVsgp^s zfr*ia^Db}swo1?O(_Q2)y+S$CBm+g=9wCOUPbz(x)_GbaKa@A7uI&!ynLiZRT#V%_ zy_-D`0Z5lT*auoe{(U5NylTzFSJW()W-#F6*&A`LNO1bV#Y;QJSb zLBnp|B^dtK|KIWC|No>JjWBWE@n7O)x{&^E(WMeMvp57#qA8m*eTow*U@_86B#Fm* zrxyYu5PRWaWHx8y>*qmHEp(AMDl0v)i zj(AY8fnH=~ZwwjVAbu*m5;xPfidh@ov6d8gfJsi&!QyK53Es%s zC39ts;54V68koALD4b|%tNHW0bIkZAJKa=W&FomJSEDT>W1xIX1x%Z>AvNIsSPLcn z3RTcHXb@KB?cuM)=x6fcIx>&(GxqZ8w3p#jJ(GVgc*`c0HG}dvIop&Qim!K1NFwic z%07KcjWgHBPUkq7f~lj;TPqVGTiT#cUeim>;nY`>h@a*S{qQexQ`z62WK|Mj)Y{tf zF{;T4P;c8$Q|KU?JohIkA^z z%X7z|r>4aTh@|StTi!-r1D!g=zb#3d#{{&K3CqE$Iz-UH<%37cRfkO`&uM%#AD3PH zv`g5t0e^O%nVL0d{Xlx^EjEC3#skF@`zl-7PF^0oxW)1!C!JxRWvuAHH?)61FKA1Q zeT*_sY7;_Id#!GmV4n`MO{~sv}VLSK`XRw=Y=Clz*00B(5 zy^K;gCZMAzjT5+c3IC=)l(9VIDdatpxj3y89WwI|bH&$!ZEvp`PR!T@#!(|KfI-w? z!&+7$N3F6>tD{YO4Qg$d_`nNEdfVCha9vaPn0jI0`)`@*72hq!pU5ND^P*RoEkbD5o#az(-g=Y)L>HH>Oc%}$T3Rs_ih0;4+Lv4Y z;@Iv(;fUbQ=i-G(#>vghec~*j(I#r|5mqFiJBpzi&hzEcD{u$R z(itW|*D&;O%bOc7et9ACaH#J>z3A1A~6fdP>pmbM%xzm4>|;c_?B+%sl;Qs2{t!60$^uH1t@9^6>;?!Fuus znISi$f5CL&;z?EqJN$FBuWDA#D5`cy_UvCFIVvf{c?4N0teh;dET$7aVbj08KTQS! zx?Nd1Is8q8qFzs}a=!@nJ;7FSfCY^T@D-gpw`w<6e#X3+;O}1h$%I!M)0bg|EKUA0 z4Qjn@+x{Rj8vt6Wn!R|3A92z}^$KfF5(#CWr4y#~re1CN4i4w0#GsypBR{xA3Er7sgAi(|}1-W?s~n$7?K|9WL8kpVfw-;#b9+mn;=ep!162U5R>_t}fOt~tE?s#m(O-S$7>Ay6*hHdZ) z7_oU915WYYCIX;hFI-U2EWYX!pllONr@Q--2o~`!isi6vTPLJ4@(|o=%NHYjo0_S&q*UQIROw@*N-By@PaQ&;YxFZ0aRX&}LeOEz);#m~Hw zm^VAY8DK}b$F4bo{jMN?d!lxKPhNklzr^Cd`0f4oJr^z=I|l`*m8AHm*fPV`0=lF3 zPnnp}&J0N1X@}-D94YvmUabFrLGSnTz7Mu^21F#O5tN#CuY9VhUZBH=ez%h*wkf0h zBtXJh1SN3d+IF{gzT7lp)j}n?03lt;XSQRAh7qd&v;RwTYDuQ#bI2*r<>?x-G0@hM z{;%{VBD7nLKt~D`T~-HAt5;h%i0_=Ifs=yHma5dhJ+QMG?Ux(a|E?1CMy1!~oA`FP z!k~iG=t&5#>bVdz=peT8HMB6Y)#7PpETtNryT^+Rv3vpJaF^zP{H}0-LyV9Fu21ID z%wO9f1IKlFr1p4c{o-?03vyB-tr5duk^&L$;m_|f$vs`^Sl{j295}oY{LlY+=ZS%J z+tZoXCd0*sSU7w^gjovXn+g7uyra5{cU49@yHf#Z^Jl-$9cIfo+AJuxH$VLb=#+uB zbVmUjnxxb1pZ@-O9=AIk4@ zS)m6fJ2?{HrNYwwnL3a45muuNjr;6$O`bGEM0T4A2_S$t=86*-cO+0mywg*jTrSZ)k3FZ*FX5WiDcGZ*z2IaxP_f zVQp}1WiDZGa4l_NX>KhtI65zFX>e^}a4mRvcxYsBX)kGGUu#A4mU}enR_!cGmIYQ;qwfchWtFEXL)AK%*;=j znYne+hS4EMy3S)C*mZ1KI>!+)0V@9!N6H$Y}~MJ{rYuf zz^KljIWvFi-?#?V@LPR&c6Nn{!=XM z>}-h$S76;$H{E{Y%@^zlmOl^efBwa%UU+jJD9UVukQ3ti_kH-?H*RC0?M1W%FCvMB zM_+v6fk$6X2sx)-p~B3&Kl{nscK}pNLM*qjtpaf9>AU{-iPKQZR8yCg!TY}Qg*(;) z)gdvCcB%kppZc$VdvsK@)3l1{&DG!d_6OHOS`y=ITLEVu`unSKA2E%JD*DVX{LJ}K z9l>hMRDqxQh0lnpGHpVYneX}eA3Pt|2v%=q;rt)``R|#bDyB)OXY&vI_@|*}h}G?^ z@aZ4_!7cQPX`!fW_?{oT1NTwHs#l5L-0`E|y@48<3Q^HFf8=Idi zpJYD%1MkII!~|7I^WGo)IF=?{>ACnjJ_WUi39C}!Q{QnheVJqeKKqq5^o5CBde(g9 zvw$X6^jz_^E2$wSw4!q5*RG(C2_^XO$HBn_55vbl44OnTTRwRaePP0vo{K)U1#99& z<>rq7V&V(<&@I%MFoN5zrY}sz=(*-L&}1QQ*a%`u25h{cFj===17eB_uGuzG&byQ< zrm8BJZl4r_E$3k|Wo6FW0-6M7>qac5uFQsQcmkLWGfeH74S3Z_rJ!jgN++!@i=HW8 zkyjI(oPH-+-N#Qc^-mpNO`bc6r=2-<%&Wy5K1vfFJB(L_IkpS6fY^NmuL8qsgj>MD zn~BHH9WM~32_3vd=W&B)k7F9q%stJx+b_L_X-4zr^LVUMCmyCTA3sWtkvsmME?Xiy z?xOSfB=_$oY06~J-HcCq&)qcW{j;uP;?Dm}=hkq?zh&n!;m((-G-u_t|6x399Q;>A zgNpxoJNj{u|MFDH7Rhq@FCAl0dE|ddnl!oh9{Lq?@JDoR6L;C941IK`ISfdE$4S zE0AUQ8+2|Ncl_q5QkSp#AODp~(^mfP&%Au@@|TBQwoP`UU+V{6u8|)6ZA{~uKmQ*M zmrMTDU8S~8Eqi{^v0Ug&5Upcm#y7Z1(RbgZAG8jB$eRwCspQ)>5;U)oGZ&E5aeR*K z8Yt`Y0$G))Yd(Y3KH}tA4`-_QmNke5hU_|nq=xtyjwW(_o?itz>B>WM&^63bNdQ)k@-IgDHW*RW$Xo9#RzrTrCn7L2H{9Amq|qNg@#eZY=|P zCoI?2s+L)zsM%WX(NbVEY^`C>lFjIBYmJ6@DKJ0ZT4&F&WHW!dwa%QzOG!?jY_2(S zDcEzZbz*2Q!43|z))9yOP9X1Xt%DXzwY(3tl-TR=Qb_MbZYRrooh;dYYmS!U_as1(=YVB?Q_A|tNu5Ut&_q3jbfDM zoFxT^uEuH`nX3*sB%K?GuHUkweYReBwnHqh3P)~`+s3+Tj!rDA1e)8vuBv5J*IsxC zkd^~b(aGzArj08{>cnzOuy04C+C`}gb|Yz-1avxeWzev3NzcHbz_&4W@QCr$z3~w=8Ua- z`;vfG1~BP8CyLb=F7t1am~ph_#|O%$khSJ9%Vtcn)YmpgQxF?xM^_Vb+5fnpB^W0I`f%X8gb9#X{Q-yJG0{Z56aWeI&zPxnf5pdJA38bM`cYnS#x)% z`n1tFf$i)W-hGm(f9mde^=X@NcV_lFb=P`4&CI&H=IArijGwdCk&X@uQ$5xmj!~^? z#$ROCI)V-~t%L%GS#wo@U27ddR`4`3)WoB{R-4snfNrfee|kI8^bu#yDgYqOwas9# zmcb`3!kRJ`Cr=_tq)8aMt{aGtUZsqwVlj6DgCGre>AEt&x8H_in!x@uwgExIh|-mA zjdaC(29~CTVSaaF7HPbql&*9Uo8P@f)>LqCXclr}peS7_1BQ28u9PO8Eq1@`l3q9o zkfKCaO2?T?ZyA6loW<#9_c^O=m<&h}CA!ineAD@=(gbq`vyT|tiJ6#^B1$P;;qax` z55k&Q?wEh#87niLo*+n4L@65J(Nz~=Ya%7^(miLb(E>A3B@|Jjl;FU&D>o|9#7PJH z?|ago!o;WC^h=|T7PVBg(DAB}72cyUS zb(f>Bwbr!F1eTCO5fpj<{PqhY5>143p?~5ZA5H40);=@M#MYvrB6gqHbU_!GSY??i z%s=>-ciA4*zOOZHds0a(kWewZ4h(k8h(ua7HX)Au&mY~H8KY6(_cb$_&fA@QjIW-*heP3%$d!m5^AdnT}`12qA^c@!g3DOwZ5WwE2?)-yU z!)Vx#Mtxt?FzFTwK!77sy7)sMzUd->w4^bxtpM2j!b1pjgyk zGKwWGeb4)^zjy{9Es&PU1}gwg?|J#L$KJB7ett9@4M%-nGtIQr0>Fl@8-yh`-+1ed zS6r}(MeSvgSoFmH*_WPu@i?}!AB~2?;i&IxrkNg~cQ9Som98tcq)k^|eeER|Zl77t za-TVUc;DNvzVXJ%w52+#weN?+;i#{f#!Oc&z?81*N>^e~ltRS%ZI@lR{rs()HmqG! zx*}ZrI-EZ}ckJMiy>A^oofwDfC~IH)z8{VHKGT@#E5I(Ll&+MnMCl>~AV7+>Gi%mF zkU1QlKASdR0B80!YhP<$Ywi0?W2Ux45oPfxv9QolWzJPD^weBfvo4SONxP35106sAmh(e+vAs0GboFD@PvNs)jNPvarhW}0YliZEg{Gazv z+JDIpoojRVPr<*C|BTq<`6ga{5q^8^!|0cxe=rZ!zxH3%f5ZO0cQ*Z<^$Yt2{|Ek0 zyT|*F+CO@K;(owBKtGg!S^xj-Z~rga2m6nxKl9J=fBSuNKW_dLKWhJKeg^-Xe`^1? z`TyJj)8E!#>_3Y?uKrwqq3LJ#SGU>AzUO|6`nR^u&3FNN_jGOc zw)Nw`wr3yIKhgcee6IaN=ws>M{6677%)hPwx&HzC(f&u~&)6@b2kNRzBDQAP0*H73 zq%McOmRk{B3i47qRe=DA*$&odrbEJZ*pV9XXa&p@wlW~@Yfs>V{yiTtplMhgM*-Bz zsSnlq&pG;z0OUN%$~$3=g1UF+G*>+17eRbBf3=y79J}KR8owon@$1Z7MIrvvWWH)34nK2SD)GsrJ{l z1Cl#oVo3A8qY3e=aF)qzms~FG#2$LzT=gs&aVMOj>(%{y<&O0cG!nCiESl~x=^dF{ zKvj8F1K8Ng171wwM5Fh4KoQw`_c6#y$(5cAm7e}~nJ#A*fx+c9;y#&W!#VukR)ugk zKp3=+;Ut+IYn%m+r4d*<`L2h%aDnX5}^!5R|H;(34AoVWjRx(msBZvk;rCI*|~ zdOijqI@9Z{Vu!~jvHW{lBa$rnl4+!s_5sfK3bCGk-B%iDe&@-}+%fOKU|(9?V1 zHE8&@4z)Kx!RAvAs z!Wic9=o#(bg?kc-G68-m(jZ`^=XGUXb)}t(%&~sjFnV^sEX%hSy6UKC4iOhgV=BHV z2w`4g7Y=s#Vu2B_?#VQ|hP39@eArgfX>-0S+dd&^mx0*wp}>)x;c4RUgxz%;oNe?& z-7-lJ@Y^2^C;=qJsxx5|xF)*pTGhch2B&kxtn;f!7=gznk}I3}Dh}(CoMXgA5-p&kS202!l?!fT3t|HG*rIP~mS* z$Wjo}jq3}z$Qq!9yrtd3fM0N629ZM?LU$nv@Tv9b7I;D|;0H2dsA~g7Z7zp1| zB)XmrkMgF6OQr|R)HHD^TE{Y#j!~SR?b`Xt3Qs`B+x<hxexYeAjMUWdZ-*n9%(1)Wb(n2U<><7&9dwGJmrob)4%H? zlQ%z+L-^$dFhhH|@u$%97Qz?*Ynh2VG@q|?8vY&L74&fs&_b&3$x&Oyjl~LQDRRap zJU4U*R+(2Dd!G+lh8!V{pT_UJn+^1Qg6$` zqkNm(a#hWyc6SP+p5=C4HL8-m`pO`5o~`-LI?_h5CsH?F_%?nDodmz&pWR20WTpJE z?N|wSzLjMUK8E)a2tI}Lf;+;*M|h3Y(U#>)g1>zk9|Hd}oZAa2 zLYBWBoSW!Ts!RwXr^8h+U*@{9{zqS^iH)Op<;r`Uw~nc}<^$V~_i%$GFjaG?X1@E|M`h)nekvFKt`Dh-f>@|0-`Xoq)o` zx;JmzDfOV9qCx|EVpogEe0LK~tGS?5$$L_i6P$P6wIsCQaP_;d{{N=iV@+8LI}o#( zvo*Ejy=IIn{rdIQh1&q-{EuohpVOjJ^Q3lD*YTp37$^RRgn8ihpdu5{Ct%5-KO!VL zcNB6dUajXI9jkm-P|i3~GB-A(X`P1Oqqb$tcku)UJw0w3GeUijb__#QT4j%64z%EeB7S?jlWwx_7&+EEvB|6N=kV}DwnyAlX=?j`) zmU#!$*^@NIu#n_d7;WoJV@*Fbv9|yJO4;n|BNF2xy(54RyB>t~8lUOUW$&2%Nwi1y zx6JxW88>U2$#qhl^6KUbtmg9}D0o5vYDT7kWJthLGkpGnN4T>{St^_EU>4;DmLF9o zr|LqsA8_MoNLQ=}w?8u!ziSZ@PC#Y<#9uJFo-ozVo6D;<8j^1$c|qAE3ZTE5i~zmE z$BU5lw6l=EWsg^y^;8>r9qH{xfL|~PZYK#md$zZ0?o11gV<*WSW~cgy2GYGQir%wf zt4iW8D+;s*;RGrmd(-T<@2&j(Cb9xhV*l-x`TpK`xq|7p?5R%5*s!69?2c!cC*VY* z2DE^9pvOPLU!1e}wA8S8opcTJ3`NB>hY=JQnL~QFXR4K8A$BqJnoEB$wn-%u@E6Mh zCfMF4kusv3N!(aHC}4)Xs^xoOwXd%e^6pi5|DZo=Q25j+6HlJ^7FodH6y1bMROR^q zGu6)fopS`h%Sw<;ZH%TEPf+#81-#_v+@8nlR0jLcIDKQtLleOC)6yLZgC!D9X3GgS zohwU{v$jl=quD#Go^hB{`@Qw*a%`(^jyT~=q^bWgGzRj;|12J55HWdCWV}EB|K=%N z3Nq-qxJJ`>^|1MNN+q}zTB&ooE3j==AgK@^UW<^oSbeALa2peF)Th6{@sj0KyMNHZ zksk1+MXN2tv+22A%cQOGpS9)77(uP9mh+!5T5ERLvF@b}$+WvXM45Z?-kCa)fb~f1 znVbTD$Gx-0Zxc`0D@YgHakge6SL0H`-vN_x?AP0>iGH0_EE&=v83hMJgaKAI0jJXm zVxVz;X<$v6WW7}fxROO7vr#YLP;;lij5VrX{;>7kK6TtOH&6|Ar^xo>00%+u$C4@# z>!jOt6*3><171+WxoZnKDTzJtDRw+T030;yI}~uV@9fCnei^I*j>Bp&mzP2d=FPb_ zCM*l_+$LDR3B*a!A$g#>xsrZvw0lckxmMg>0aQd7tPyN=t{dgXb;Ie+T8{fZH=gdu zM7Rg9c(kg(Jg0?ARRRl=AONFKrvFj)lTY$KfT%6^6s`mk*ABGhsce*LsoD>K{z_M2 ziPpnu+lw22PfF!CoId^6n*G4H(Ix+#+N{C(da7t1BYMGEaE#PdpOLxsVD5riQXHp@OX;`S`8VnpM~)I920w~<3|mo0 zf8~Az`*?2?H&gZ&*K&bRkV@qzvMlRHXys8*Ze2+1c?5o!^+$&MHxB@4Ee5cke52R! zmn7AZtY6ST%ixgU5)%$%QcwHj7Es-Qu^kLAPwy%7pGBw_4Q9#da^W2$}axNHr03)_nw z5?yuNmXrI5HgS46)c5&}B)Tts49oU92>3xBLLy}FMUW=84DQbVq^;7_e7|(Sdz|&J z73N+M`rc2rt*oSWu#7S{*s~nH6HRHJS1SmzeXk|;CA)FI4bat3<%}nkB%;;?=F>B7ms9QSxv#@+69;@>QaR?REYX4&)=itG>rM{<{A79Rmk)`5ON#GL`*KX%}Ihk3w(RtM-WLt z?f&FLF}4N^yE!(pZ&Yj&Bc`~K0@4_}*0Om?wN|}4WJ>WL;G^H2*QpgEkGA~OET-Km zkwz|5{6dnz1U<2Pe9DNL>3g5FEIvp1jzP&2K#z~j%g6!7B;^zF+o95?fV{3mnB8*RMhCDNp>Am-3e@jNfMj?jHV$MWjk!DDKP zkAz$Y?Sr)!GUOX}qTQ5aMh|wq1uq}~joWyKl=b_LboM#wi{CMuz5x6BKlA-qy++cM01D3b7`uD z#l6M4pI;JCypO8JZ6?U&wNxR!{4oB_ zlV!x9+-&Qy6{%MQ{~yoZGkKiTSC`YS_j22~G;xUV855g2&C(zm^V!(wpcm@zn{%!g z4}JGo(sGZ1O~to-}le

UmY2RIYtNPVDpE$%vda+HD#3m z&VuXJ{BK&Qe+rBa7eq}Q(bq|tn(RrJAk|ztj2(i{d>nmQnM?;HF2k&9sA6up5tmjl z7lySlzMbifH17-m-Lwa_F&e7nOH?ESi3#ckR3tsM+jsck3`oG!uMS}|eAwVXv>}qxwq?QY%QJ0}r@^;fhuUA9W z*BVl>TGo&N004@xSiwDUXUvp51sVmqO3m)=B55aPwf@0=e}cN+$-BdKxY`YrT_4)0 z_d10#i44Q*rFr8MC>*)v$EJvz``(pb{e&*6k+b zsMz%($|1+8hn8c2?P(l@;Rb&CsZeYoCI3?2!LqjbwPXW3z4G$Qfj=cT5Yb%vY0(AX qeb?AaKtwrnc|$|zzw9vfvn^aJJ!zd)XFXqqy000000000kD)qv`H z5mAwV)O`=5JCNbJ*S6I*40O4To}ycnN4bb2?9G(QjtG(AjHOii^LalMDWTa%k~2x> zbB<}X?G`#jTi^(Ocyr*8o+~krBB-N;NF;u+Ca(NK2RP{3X?Khol!@DM6dTjI%QW#fr&V)%#|mFQ#Kn=6~IN)wo(*R{OWMWp`ZGNXz6j zWzJwd&a2YAYm}yw&@+}e_eN6XF`tr20e!IOKPXqho1*>~=*Itzy9xa)&Xuz_(gX5G zsT9^q-c<`-ww$isFK*bV;DU%j>G5XU4N~^(+wRHcxNJvDq~L;->IT({fHvsD6Rh#R zo9OE@Hm@7Ev|F}RON7DqNh2}M&B1zZR_1x%D9;?6`wMVnc`DY)DLQ!BfSmmrIa(Q9 m2PyAo3;ppEn6;s+3wItT*lD|OI<#yI`!A*b52$D!NEt5gkG<=gCBoO zA{sm|@MELe?8&#|GQ12=Q@Ti^lQevqMJrmKoaH4wFY~8aJe9r_e*3-ugRr~XpB*PT z`7~c;Ri34klG8k|7%d5X7OsnwlCUV|MRs1zP2=ujqdO0?=W&tDFHHL%mLSj8sr>Wn z@;zA$v$)KYc)Gu0thl>aRG?Xh6>0lPl&=?I@nlibYSH#714)<&@?0K-VZo-i|7|85 z8h2%MK_ixzv-@&~rKZEnBxWmRXy|@i%<6?_2b~l~E1I0I*k2_cc9OVtk;OOwExYH{KbwkC_=WHeJ6BMmH4CwAq$n$Bg@cSiv*@0>6)&( z#Mb79p&BMJU|7V6JYs5dlentsqKDX=nLSoD64C zC&KYrlBUZ%%}eFZ{Y{lF?)-iEpPcAeM4F6IH&|-_M^XM>Y$MYxZClHVdk^ae%DcdS zuM@t+@gF@es3K;0_6aTXR_3c=H=XN5{WLgo9b##=LwrQpBEB|vi5uxWJ36wW^MvUn zP|;XCQAWi3d7sJq0&W>9AJE`|JfX`aUIZEVo5aVM#V0goKs-%vyx;-1>y==6T+C_2 zU|CC)fzNBfGJO>2a!dz%wA; zPS^^<)sfA49gnZd`Fs>GzR$UaLyQb!@*#X7sCgWCSp&Te4T>BAZ2eK%jZm^4l+aC-xNSybR-nW~^hv1~iKwE0T|+!}c5xK^{+Tb-WX~ z#<3y>Cb0w8Y9*GPaz3h9ShB~8XqzOk1G5!*a08KJMZ$UD1YWQ~>GmIC!1&obN|TI+ zWy7)mwIF{kD1(I2^{gAyFsd)A@t$orbqvKfCvVN(>Goy$*;z%I($@*U&LDstfc8~@ VZSAk=&B2Ts3<3aaTGSEt;ve@y0z?1+ literal 0 HcmV?d00001 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable_ic_launcher_background.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.1/drawable_ic_launcher_background.xml.flat similarity index 58% rename from booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/3.2.1/drawable_ic_launcher_background.xml.flat rename to booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.1/drawable_ic_launcher_background.xml.flat index 0386b02cd3d2d8f54928d872ef6a0232877e5e58..07d113993028bd72833de5d64d4cff2de6526c94 100644 GIT binary patch literal 10768 zcmcKAO>Y}j7zNzTD zUnis4BAHF%xOJQ)i!4rC@kKP9PvTZIpRZ4&@oc@@zu*3!yw=5Zg7XJ|e-=ClmZRA) zO~%93#wg3?_uK6S&OVJ6t^D=YAepwK`AIvC7w!DD+RbYDPN{b5EFNS@TK^yr{OoGw zd_2rXwaP}PKb+T1QhisHaBCEgpN+ErM(m3s-Z&e_=kp}ZzBFZSpiExnBT>$qmpPAY zrK_OEFQwo`sdjT7Wuv;R+{#zu$>d=&Nz&T#T5oUfVSf|lmhV*RhoW*-o_jCKqT1>~ zr`Z|dO`hR7TF3atCgMsWxA8|g__dsOeIz=^wXQ2`o&1690BvPSS8aoXu-SPMHtj`W z(w?Z(Yl|#RPU8I1c3Ql&O!=fpioFgiYrWpSdDtwtA+hmiIr#0>y4@D{ymEW}V1sZN zR*qSEIeDYp|0QzBf*hs?xw|U4F6A(+9JBOt@E+~&+;Yf*9Hs}kHI>{J+qQDslw+1&PTt5Zhb+ipdXPI(%I#RW9m+9FFDGy0mO~cg zFg?f(m2!P6*QXq_^m6h>ZaHK@4%36&SSc4;xsYiXpv%KP6ouvQ`r3YLp-wJ58&+@4nA&8qWxFlnBXF+Z zRPiFW5sL~m$)r(19zI)nlXQkN@)zm%(mLF(eT)Q8*eeKBgJAr4ImUiNV_GwFN zxo!|z{&HaSJW6GFo)-9~)-#;G=39aGmrV*^dtFJAe;&$Ao-q1t-*wvAoE?VVilzlr zQO^hp!}A5x?a>CELEhmxC7DVp<7bu`y1u$9$G9>(Zd=ZY9V%l*z0vm6W~_^6&K&F9 zbNz5HN-{!8)Qwmvrms>QIqlF^1{qdjWf(gjTp8U!ZaO++{+(NGPM8 z5!x{eOMiB{-7UB4`pU$jt~aXny80njVJW`rwhNVHYL6Lh=KmwZ*!KR_WN*s&=64;Cgb_)uu z%)uxifn`Ln+fZN?4n_e9EGvTDfdZ>?FbYUucSW#!P+&C!SwlaBG)|B_e;+gBd;P3 z*n$Z56b!5sft7H;R1s_u46Gc1m2tqHiD1vcz$y_~1qbYf2=)>TtQvt;aln>DuvcJU zwFs<+1C|rPUW0+vBd|ISSY8BM1_NtEU=19wf(WL8fw2gT;ehEPSP=@0{+p&ojDAW2 z^mxsk9&tnnP#f^-i`pIA!$Z%y>IiCxGKiKUE?&6-F%~iNjv=+SVmHlQdQuL4p(6D&uN6@Ne?8B|g6AKS! KglyUSul5@{6}Gql literal 0 HcmV?d00001 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.1/layout_content_main.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.1/layout_content_main.xml.flat new file mode 100644 index 0000000000000000000000000000000000000000..4da4244983172ee7f292b9e0794dff87cf7c5b9d GIT binary patch literal 1492 zcmb7^-EPw`6vwl+E0Hx|3PM5_LJ$O#3UvnJ0*#w)XoHJso6rzKyNKMziOmu_a@?-G z08hcA@Gji)7@Rb2$H=55ksLcm_V0ZC2F&mgCnte8BSq#xuJ{_fq;@O-(RS z(lBYlj0)*F54!%IP~@B9vQRQ*jEt2k4AX?oX_lvq&^#ZOdxx*z?gZB`$UI92Tj+_1 z0!e2fhtpxKX_A#rt~l$suH&Ge2)#qMsEo7{kvHJRps*8(|eS_JQ|rHvVB5Y7a<2$%b+&zXDyW3H2F$b+M|F!iW&VKW5-icUDr>U`d z;hxb`X2Usaj`6K1F8_!VKV-21bUD?)Uz>v;*TA33 zKLp5&xrYAS9R09{K2&=*b^^KKvQmS8&5oLe&BAH@X%+>9C4lii%qtmLF6-&Mo~AQUf6x`=)_u! zVlD!|b4YG_jy0MA@KA!+8tu+4a)8Ug7I5jYd46FJxsmVtn~H4jaQ^XH(E18vk?tky%|s#yLLolw8=<2HO?#H z-H>=L^QJDW1?-b6yVvU2t}ssDHwPjt0~wu+Q|E_DzNva+h<99|wZ@A|9BZDVw|n;r z*+B5Umb#gM^O#06@UAt)0&q~N z*DS=%Wr#x@eA(#x^3EFt=kw5JCoA3yk{fxyKCJ@wKc!VbJLTml&Ty92TnkOi@apR` O6CJ~gwX#=~qWl7%)ux~T literal 0 HcmV?d00001 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.1/layout_fragment_second.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.1/layout_fragment_second.xml.flat new file mode 100644 index 0000000000000000000000000000000000000000..7d3bf9f8e8b668cef227d03b5afdfd4f586d1d76 GIT binary patch literal 1976 zcmcIlO>5LZ7*4nQ)uF|8lv09V$wi3l42lP-m+eYDNU=g!K|F+MGTlUznUKtO*B|2D zf8o`C<5j$R@y#Sn*=Df`TLY7iN#=Q<_j#Xpa(MW5vSAp;<@nZv2ROdM_|w(52HFkT z7dcb(JYmy_3+1HTmBPcu-llaFNb*VgB9$WKoSaFSDxMI&U{M@$!s2)su|N!;K0lzV zVaOs1?OikoJbE@$N{UPPRv+7Y2*bSM3w06j`PG{(poV_$pckmegqO&`!?v$fd_ZaH z`aEJODdveQBg*2>G~p>N=FE1#HP}GU&?fN1k8WN#WHTj;RTOoUlwpeZ|FKSgkuNZx z6j2vIMWiYLIaDqMnFrpKEAq0OKh{cHZ%~75@OF;o0Gjg6?T9JYcVd=6sVtqTbl2GraXATmk5!y2ir~i-KJFXDp#pB1g%Ij8D$ZyQAyfQ>gH+ zevk*1AV6-yKV>uUviEykcmsmT&!Xhq;{|LCCa9kV;u z`;7IvvEi^b+|o7$LgQPuTZVV5cFO>pCEM1GI~c)s6^JQ~6MhlMSz09fv3~ijO8HCc v<~K_Q$cV0GfYp}GVE>b4GiY94j%p|8mMyiomv!>B|6Q&+SQvuk{}kgd2?>r( literal 0 HcmV?d00001 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.1/menu_menu_main.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.1/menu_menu_main.xml.flat new file mode 100644 index 0000000000000000000000000000000000000000..c27c6fd0ec732db6d500d6f1d5f15484eba6e010 GIT binary patch literal 748 zcmb7C(MrQG6z#eeM-UxBaO6q)B2?B+@j)iSiasbPh=^}8VjI?IlUtH(Zhz*hAK;rG zWV%%Zh0O(SxVhYOF87=y$?bi^ah&h?bnU|)VdJ6B(UxFx99P#+P%g34X$EH;qG!mZ z23ar`JppLLRK%uKlm&}uS$3=5?$Jqqj{Jc~Q&EH+gn1Uz)NqhP&5Yr4q_Nxb?OgQX zp;NR$Wu|~e{FT`<`)xnCT#IcRRL0bmJg0_@K+Q<=u-B`Z?$%=R4L1cNy8~^Mb^Z4z is5vjtf9=DYI)~RpSHgiLzGM@o7A)2%yXnF%$N2)a;pM#m literal 0 HcmV?d00001 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.1/mipmap-anydpi-v26_ic_launcher.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.1/mipmap-anydpi-v26_ic_launcher.xml.flat new file mode 100644 index 0000000000000000000000000000000000000000..b58db076326e412d22487a8865e85afa6abe8c27 GIT binary patch literal 472 zcmcJMziPuU5XR-$r9w~$o{FcEF<=QYl#(v>-l0S1hO?!{O7ss|Nz=FJ<8;iEwN+{d zymsip9UnLRzK^@AdU{R}Lgzl7L@X1#8Z^nZbQ&C!%}T+}G_CMC{z$&Q(_>Oxr?W?C z>BhFEvqlL)Yiqk8JQWAfP6-Oml^Uce7k5k6qe?LE+{tpkxE)jJK`VsF=Y-soOEBD9 z$@6&|f?G1yMPCga9rm=bnt|IgFFH2tiVRPtNpS@nT#$QF%Ep>`AgUlWG~2beJHux$ wB@Aq#J>p6BkXf)B%X>e4srGm9#t?)~4*M^tHOZxGd zy`|M8n_f#x9&BqmYm^YAv9=4s6R`#Dlpx?7)*ua@pD$<+#9*GdlXx>f`^_d>t&#-2 zj?e`<2E)CTyqvWmxCNzM%%Gto!=5m!DYzB&qNBsE%8SuBtxkZ03vwf{WY)|AQWa`| zt?qXZnBJm4Aj^V#c!WlY>hy9iee literal 0 HcmV?d00001 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.1/mipmap-hdpi_ic_launcher.webp.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.1/mipmap-hdpi_ic_launcher.webp.flat new file mode 100644 index 0000000000000000000000000000000000000000..c626e4a80026a8d7ea35d920c9dc83b863c88fdf GIT binary patch literal 1544 zcmV+j2KV_vK~Piy00001000010002+1poj50001H0001d1poj50000A5^ZU4ZDDXP zX=7h(VRdd}Xk~H|2ao~q0l)zSB1dU&E^2RRZgX#LY-MFGVsCGAbY*fbWq4t2aBO8R zVQ_FQZDDC{EiyPdFKuaXZDDXNXk>6{FKJ_6Y+-e7V`yb^E_Y>OZ~y>ONk&F=1pok7 zMM6+kP&il$0000G0000-002h-06|PpNX!5L00Dqw+t%{rzW2vH!KF=w&cMnnN@{wh zkTw+#mAh0SV?YL=)3MimFYCWp#fpdtz~8$hD5VPuQgtcNXl<@<#Cme5f5yr2h%@8TWh?)bSK`O^Z@d={gn7J{iyxL_y_%J z|L>ep{dUxUP8a{byupH&!UNR*OutO~0{*T4q5R6@ApLF!5{w?Z150gC7#>(VHFJZ- z^6O@PYp{t!jH(_Z*nzTK4kc{fLE4Q3|mA2`CWQ3{8 z;gxGizgM!zccbdQoOLZc8hThi-IhN90RFT|zlxh3Ty&VG?Fe{#9 zRrRnxzsu|Lg2ddugg7k%>0JeD+{XZ7>Z~{=|M+sh1MF7~z>To~`~LVQe1nNoR-gEz zkpe{Ak^7{{ZBk2i_<+`Bq<^GB!RYG+z)h;Y3+<{zlMUYdrd*W4w&jZ0%kBuDZ1EW& zKLpyR7r2=}fF2%0VwHM4pUs}ZI2egi#DRMYZPek*^H9YKay4Iy3WXFG(F14xYsoDA z|KXgGc5%2DhmQ1gFCkrgHBm!lXG8I5h*uf{rn48Z!_@4Bk6TJAB2CKYqPjiX&mW zoW>OPFGd$wqroa($ne7EUK z;#3VYkXa zew%Kh^3OrMhtjYN?XEoY`tRPQsAkH-DSL^QqyN0>^mC>{#F14jz4GeW{pJoRp zLFa_*GI{?T93^rX7SPQgT@LbLqpNA}<@2wH;q493)G=1Y#-sCiRNX~qf3KgiFzB3I z>4Z%AfS(3$`-aMIBU+6?gbgDb!)L~A)je+;fR0jWLL-Fu4)P{c7{B4Hp91&%??2$v9iRSFnuckHUm}or9seH6>%NbT+5*@L5(I9 zj@06@(!{ZI?U0=pKn u8uwIg&L{JV14+8s2hnvbRrU|hZCd}IJu7*;;ECgO%8_*Wmw_-CKmY(oW!`@P literal 0 HcmV?d00001 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.1/mipmap-hdpi_ic_launcher_round.webp.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.1/mipmap-hdpi_ic_launcher_round.webp.flat new file mode 100644 index 0000000000000000000000000000000000000000..6131e9fc0f2649cc51ad9a626c20029eb1cd66b9 GIT binary patch literal 3052 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 literal 0 HcmV?d00001 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.1/mipmap-mdpi_ic_launcher.webp.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.1/mipmap-mdpi_ic_launcher.webp.flat new file mode 100644 index 0000000000000000000000000000000000000000..3b8a8cc430cac2f3daaef48fe5c9dee6be75d7a4 GIT binary patch literal 1124 zcmV-q1e^OoK~Piy00001000010000?1ONa40001H0002i0{{R30000A5^ZU4ZDDXP zX=7h(VRdd}Xk~H|2ao}v0l)zSB1dU&E^2RRZgX#LY-MFGVsCGAbY*fbWq4t2aBO8R zVQ_FQZDDC{EiyPdFKuaXZDDXNZDeq1FKJ_6Y+-e7V`yb^E_Y>OZ~y>ONk&G_0{{S5 zMM6+kP&il$0000G0000l001ul06|PpNU8t;00Dqo+t#w^^1csucXz7-Qrhzl9HuH< z!ckn_w-(t15itRHmqN0O$B3XH(E|jyV^QXq8=yM`Q**vypEpgQd+no=JB z%l>&>1tG2^vb*E&k^T3$FG1eQZ51g$uv4V+kI`0<^1Z@Nk?Jjh$olyC%l>)Xq;7!> z{iBj&BjJ`P&$fsCfpve_epJOBkTF?nu-B7D!hO=2ZR}C%4c_9eOXvPbC4kzU8YowIA z8cW~Uv|eB&yYwAObSwL2vY~UYI7NXPvf3b+c^?wcs~_t{e_m66-0)^{JdOMKPwjpQ z@Sna!*?$wTZ~su*tNv7o!gXT!GRgivP}ec?5>l1!7<(rTds|8x(qGc673zrvYIz;J z23FG{9nHMnAuP}NpAED^laz3mAN1sy+NXK)!6v1FxQ;lhOBLA>$~P3r4b*NcqR;y6 zpwyhZ3_PiDb|% zn1gGjl3ZU}ujInlP{eks-#oA6>rh&g+!f`hv#_%JrgYPu(U^&XLW^QX7F9Z*SRPpQl{B%x)_AMp^}_v~?j7apvHMKxSf*Mtyx8I}-<* zUGn3)oHd(nn=)BZ`d$lDBwq_GL($_TPaS{UeevT(AJ`p09%+hQb6z)U9qjbuXjg|d qExCLjpS8$VKQ55VsIC%@{N5t{NsW)=hNGI`J=x97_kbz@0002}of-20 literal 0 HcmV?d00001 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.1/mipmap-mdpi_ic_launcher_round.webp.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.1/mipmap-mdpi_ic_launcher_round.webp.flat new file mode 100644 index 0000000000000000000000000000000000000000..cf3c7ddf6c6d555202209a78db110a1d4f10d70d GIT binary patch literal 1924 zcmV-~2YdKIK~Piy00001000010001N2LJ#70001T0002&1^@s60000A7;R~AZDDXP zX=7h(VRdd}Xk~I=a&L8RWD*CE0iXfE0R$pVX>TrSZ)k3FZ*FX5WiDcGZ*z2IaxP_f zVQp}1WiDZGa4l_NX>KhtI65zFX>e^}a4l_QaA_}TV_$4xb#7y5WpZC~Z*^{DE_Y>O zZ~y>ONk&HG1^@t8MM6+kP&il$0000G0000l001ul06|PpNL&H{00E$D+qP-j>Qj4N z+cqN`nQhxvX7dAV-`K|Ub$-q+H-5I?Tx0g9jWxd@A|?POE8`3b8fO$T))xP*(X?&b zrZw({`)WU&rdAs1iTa0x6F@PIxJ&&L|dpySV!ID|iUhjCcKz(@mE!x@~W z#3H<)4Ae(4eQJRk`Iz3<1)6^m)0b_4_TRZ+cz#eD3f8V;2r-1fE!F}WEi0ME zkTTx}8i1{`l_6vo0(Vuh0HD$I4SjZ=?^?k82R51bC)2D_{y8mi_?X^=U?2|F{Vr7s!k(AZC$O#ZMyavHhlQ7UR~QX zuH~#o#>(b$u4?s~HLF*3IcF7023AlwAYudn0FV~|odGH^05AYPEfR)8p`i{nwg3zP zVp{+wOsxKc>)(pMupKF!Y2HoUqQ3|Yu|8lwR=?5zZuhG6J?H`bSNk_wPoM{uSL{c@ zpY7+c2kck>`^q1^^gR0QB7Y?KUD{vz-uVX~;V-rW)PDcI)$_UjgVV?S?=oLRf4}zz z{#*R_{LkiJ#0RdQLNC^2Vp%JPEUvG9ra2BVZ92(p9h7Ka@!yf9(lj#}>+|u*;^_?K zWdzkM`6gqPo9;;r6&JEa)}R3X{(CWv?NvgLeOTq$cZXqf7|sPImi-7cS8DCNGf;DV zt3Am`>hH3{4-WzH43Ftx)SofNe^-#|0HdCo<+8Qs!}TZP{HH8~z5n`ExcHuTDL1m& z|DVpIy=xsLO>8k92HcmfSKhflQ0H~9=^-{#!I1g(;+44xw~=*xvNz3 z5vfsQE)@)Zsp*6_GjYD};Squ83<_?^SbALb{a`j<0Gn%6JY!zhp=Fg}Ga2|852e1W zU%^L1}15Ex0fF$e@eCT(()_PvV?CA z%#Sy08_U6VPt4EtmVQraWJX`h=N|W zQ>LgrvF~R&qOfB$!%D3cGv?;Xh_z$z7k&s4N)$WYf*k=|*jCEkO19{h_(%W4PuOqb zCw`SeAX*R}UUsbVsgtuG?xs(#Ikx9`JZoQFz0n*7ZG@Fv@kZk`gzO$HoA9kN8U5{- zyYvV{`& zWKU2$mZeoBmiJrEdzUZAv1sRxpePdg1)F*X^Y)zp^Y*R;;z~vOv-z&)&G)JQ{m!C9cmziu1^nHA`#`0c z>@PnQ9CJKgC5NjJD8HM3|KC(g5nnCq$n0Gsu_DXk36@ql%npEye|?%RmG)FJ$w KK}0tWNB{r_l#&zx literal 0 HcmV?d00001 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.1/mipmap-xhdpi_ic_launcher.webp.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.1/mipmap-xhdpi_ic_launcher.webp.flat new file mode 100644 index 0000000000000000000000000000000000000000..8239c95dca178bc2924389f8b6de9a34808b73c5 GIT binary patch literal 2040 zcmVA+TB1ma(E^2RRZgX#LY-MFGVsCGAbY*fbWq4t2aBO8R zVQ_FQZDDC{EiyPdFKuaXZDDXNcxYsBX)kGGUuo6o6GyRq6Ap5(_{XLdXcL-MzlN z`ugSdZY_`jXhcENAu)N_0?GhF))9R;E`!bo9p?g?SRgw_EXHhFG$0{qYOqhdX<(wE4N@es3VIo$%il%6xP9gjiBri+2pI6aY4Jbgh-Ud|V%3O!IcHKQx1 zFQH(_*TK;1>FQWbt^$K1zNn^cczkBs=QHCYZ8b&l!UV{K{L0$KCf_&KR^}&2Fe|L& z?1I7~pBENnCtCuH3sjcx6$cwqkNkru);ie``q+_QI;I zYLD9OV0ZxkuyBz|5<$1BH|vtey$>5oto4=l-R-Aaq`Dk0}o9 zN0VrkqW_#;!u{!bJLDq%0092{Ghe=F;(kn}+sQ@1=UlX30+2nWjkL$B^b!H2^QYO@iFc0{(-~yXj2TWz?VG{v`Jgg}WyYnwGgn>{HFaG7E~p zt=)sOO}*yd(UU-D(E&x{xKEl6OcU?pl)K%#U$dn1mDF19Sw@l8G!GNFB3c3VVK0?uyqN&utT-D5%NM4g-3@Sii9tSXKtwce~uFS&Jn746EW^wV~8zdQ1XC z28~kXu8+Yo9p!<8h&(Q({J*4DBglPdpe4M_mD8AguZFn~tiuO~{6Bx?SfO~_ZV(GIboeR9~hAym{{fV|VM=77MxDrbW6`ujX<3HF(>Zr;#*uCvC*bpoS zr~C$h?_%nXps@A)=l_;({Fo#6Y1+Zv`!T5HB+)#^-Ud_;BwftPN=d8Vx)*O1Mj+0o zO=mZ+NVH*ptNDC-&zZ7Hwho6UQ#l-yNvc0Cm+2$$6YUk2D2t#vdZX-u3 z>-Be1u9gtTBiMB^xwWQ_rgvGpZ6(C@e23c!^K=>ai-RquhqT`ZQof;9Bu!AD(i^PC zbYV%yha9zuoKMp`U^z;3!+&d@Hud&_iy!O-$b9ZLcSRh?)R|826w}TU!J#X6P%@Zh z=La$I6zXa#h!B;{qfug}O%z@K{EZECu6zl)7CiNi%xti0B{OKfAj83~iJvmpTU|&q z1^?^cIMn2RQ?jeSB95l}{DrEPTW{_gmU_pqTc)h@4T>~&luq3)GM=xa(#^VU5}@FN zqpc$?#SbVsX!~RH*5p0p@w;~v{QMX0^bFT1!cXGM8K z9FP+=9~-d~#TK#ZE{4umGT=;dfvWi?rYj;^l_Zxywze`W^Cr{55U@*BalS}K%Czii z_80e0#0#Zkhlij4-~I@}`-JFJ7$5{>LnoJSs??J8kWVl6|8A}RC zGAu9^rAsfCE=2}tHwl93t0C?#+jMpvr7O3`2=tr{Hg$=HlnjVG^ewm| zJs0J*kfPa6*GhtB>`fN!m#9J(sU!?(OSfzY*zS(FJ<-VbfAIg+`U)YaXv#sY(c--|XEB+TVyZ%Ie4L$gi#Fc++ z`h6%vzsS$pjz9aLt+ZL(g;n$Dzy5=m=_TV(3H8^C{r0xdp#a%}ht55dOq?yhwYPrt zp-m1xXp;4X;)NhxxUpgP%XTLmOcjaFva^}dP3$&sfFTIR_ zjC=2pHh9kpI@2(6V*GQo7Ws)`j)hd+tr@P~gR*2gO@+1?G<`_tB+LJuF|SZ9tIec; zh%}}6WClT`L>HSW?E{Hp1h^+mlbf_$9zA>!ug>NALJsO{U%z=YwVD?}XMya)Bp;vl WyE5&E_6!fzx9pwrdz474!~g(*XV`H7 literal 0 HcmV?d00001 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.1/mipmap-xhdpi_ic_launcher_round.webp.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.1/mipmap-xhdpi_ic_launcher_round.webp.flat new file mode 100644 index 0000000000000000000000000000000000000000..31b7df1d3b34acacc26a113c7965e38e587cc654 GIT binary patch literal 4072 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 literal 0 HcmV?d00001 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.1/mipmap-xxhdpi_ic_launcher_round.webp.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.1/mipmap-xxhdpi_ic_launcher_round.webp.flat new file mode 100644 index 0000000000000000000000000000000000000000..0fdbcc4f5de30715d7b07e9b0c59cf4daba45629 GIT binary patch literal 6068 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�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

UmY2RIYtNPVDpE$%vda+HD#3m z&VuXJ{BK&Qe+rBa7eq}Q(bq|tn(RrJAk|ztj2(i{d>nmQnM?;HF2k&9sA6up5tmjl z7lySlzMbifH17-m-Lwa_F&e7nOH?ESi3#ckR3tsM+jsck3`oG!uMS}|eAwVXv>}qxwq?QY%QJ0}r@^;fhuUA9W z*BVl>TGo&N004@xSiwDUXUvp51sVmqO3m)=B55aPwf@0=e}cN+$-BdKxY`YrT_4)0 z_d10#i44Q*rFr8MC>*)v$EJvz``(pb{e&*6k+b zsMz%($|1+8hn8c2?P(l@;Rb&CsZeYoCI3?2!LqjbwPXW3z4G$Qfj=cT5Yb%vY0(AX qeb?AaKtwrnc|$|zzw9vfvn^aJJ!zd)XFXqqy000000000kD)qv`H z5mAwV)O`=5JCNbJ*S6I*40O4To}ycnN4bb2?9G(QjtG(AjHOii^LalMDWTa%k~2x> zbB<}X?G`#jTi^(Ocyr*8o+~krBB-N;NF;u+Ca(NK2RP{3X?Khol!@DM6dTjI%QW#fr&V)%#|mFQ#Kn=6~IN)wo(*R{OWMWp`ZGNXz6j zWzJwd&a2YAYm}yw&@+}e_eN6XF`tr20e!IOKPXqho1*>~=*Itzy9xa)&Xuz_(gX5G zsT9^q-c<`-ww$isFK*bV;DU%j>G5XU4N~^(+wRHcxNJvDq~L;->IT({fHvsD6Rh#R zo9OE@Hm@7Ev|F}RON7DqNh2}M&B1zZR_1x%D9;?6`wMVnc`DY)DLQ!BfSmmrIa(Q9 m2PyAo3;pf*p7+xp4YsWyfL_JiNP%WntBG}{aFF4S!p&*n<9E#d1}Uvhu^x%~ro>(;jN zjMG1@F{$;(Wm?o_kz=esD9Kq}MKRWw8BN!V{@$W2Yl?}6pG2z)Ohi?sFVcG!1lM|1ENeZ%i}h09(9xpeX;Nj{x#j!|GxTJYkHlYJ72g&4s7OeeCA<46rPVvS zUc)U`QH{EF6qhS7e%2W4)}*m8ohhOwj-#leySM-ABq+4%()1k1v?R(sae%4a*UmG1 zQI&)~$P$`L+olmHjd|t6K{z)yI3M9`nbJPc!62Y%+5${~Nm6xO?hb;OTr_v-BkX^( zB|h7d##Ka9^_f-1FMu+D`?*)-z(*#s*cRLnSTjGc;sEN6YoJuXft@}SNUPKo5bVPi zxB%HQV5m@7Y(&8vBG52%fwJSk>6U=pBXiV~FONM3dH>I{ei7U}kMV&4xPhlOX5}7* zqn>=(W#z|%lCsO}w#0Y#jP7f(paDS5wQZp7r$2AEJ@iMIerHV7PxS-0g<~7De@<`%C3pt@@Lv(J;-c*LYVGQD-Bn0s0IKJz5 z7{eOin6f8%nr8)$NQZDZDBq?vjR<`t3Gf8Cp&xGUGQS4OLy31R6gr{RQrZ8S6Tjf3 zaYpe<8AfXoH$84=&vDuc0L0g4s`B12TIK0!jp09vfmkO50H_@pUj(sUW!}6#F|#2C N06?rAA(5bl{{mylGWGxf literal 0 HcmV?d00001 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.2/drawable_ic_launcher_background.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.2/drawable_ic_launcher_background.xml.flat new file mode 100644 index 0000000000000000000000000000000000000000..59e1cca8159f66e37276ef002df1776f38f5638c GIT binary patch literal 10812 zcmcKA&u<$=7{>7=ty5=#Dhij%5<+s25XQ~gaejE|rBTyTN+T*%RP{o&v6rlg?X}jM zq#!O_xNzaZ0WNUhQVDTDLR|Qx_!D@ZnT_g0N9diMiR5?NRQ-DPV^V3;^{EYM#GI(S`@Pn!f=iiPU87i`TeayHo-HTs&M(e z#?|`jdb6>5o(zgCZ{7<8e|O`J^HFj!%ktvMXjr6;E8R}Nsd~*1MV;%Ho%_k?BrO(0 z2cpnwsslBwWH>9=a$A(BU8s9mEVN!M2fr>iuFm2j6$-6=F&dBWWaBJvT-)p&9^UEi zU{!1D-R2|Fs_K01!?=hW8%LdXC&m4plsPx*r$g|U=d{=a~_^x0@ww{;w92`aM&cmpUn=MNZY}TV+hqcXK@1FY7 zEx2KAt-n`-Kis;#>BNl{+1AK@QV{+*?lMSh1JuQ4T}P$y;VQv>=D+L9XdUjum^k9m-*7IeE)0hZf{8J;=T5 zM2;1Exn0U(XgPVyEQc24Fg?h%oyf6bFSkcI3@s;bndQ)e9Hs}kt`j*{?B(_;hoR-< zEwdb2ki+yKx93ET6??fp=D+ zLGFPQIaaF3ZELx0%E?=1IkX^$=|S!jCvvP*k?U!>9_8dMvm9EG!}K8c*ohn~RpfTG z+z#dBEwdb2ki+yK_tc3TD^=unwcIY{=D+LGHqd94nRNu%UyT+Rw>b zW;wJVhv`A?8z*wCRFcDn4svQgCvTbM(1ILh>z|e2&&!jqk3{EcuRbxX)xTZFP2Uxz z%7rc*8J3xkMVZA5u>b literal 0 HcmV?d00001 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.2/layout_activity_main.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.2/layout_activity_main.xml.flat new file mode 100644 index 0000000000000000000000000000000000000000..2b26f2f62656df7e9b455d8b70acf43555bd8df8 GIT binary patch literal 2160 zcmcIm&rj4q6kb{Ohm%FuE{SGNP)*b|bYe7`V2ryUCMF_8QM{PVv>n=U+nHuMg~fRB z>dC7YFCP47y!!w6rY)d^02SS&O=sHoz3+YR$Lw&pzHzQrtL*D8tD&zK(F4?? z!dH^}RzK7_StKO&LKf51Dfb;u#^7|E`zrVFbi38PiteI1u(7V6Y`8!(ElVqc8iqw` z%^hQxe^D6VJEhkNP?5^#f@-OXsGS||2TVK52QQxGy4%lDg?Ow^0XG6T9pX+*wHJ;O zs+iDr9;>}p32&yv3mFeWeI(!jofyB>@}$sgqVbHg3h5q}wNy~*e`%u6O-vv^P9S9v zvHg?*f2KH%97qpj+ZiUw5>@{}nND~4jLPgNnvC)=bEyrWUrFkQhH_>2<{;I(&>kCR zbui5evM?Bi!Mbt^ES${>!ZZ literal 0 HcmV?d00001 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.2/layout_content_main.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.2/layout_content_main.xml.flat new file mode 100644 index 0000000000000000000000000000000000000000..34e99c4c4784e8bc61020864fdd6b984872f9ad1 GIT binary patch literal 1528 zcmb7^-*3|}5XZw>N@We0f{;*z5Cp-b!QvtD1TWpt1`pFVp-mIwA#xKZHcRZtzINq* z;VSj!^YQmCKH&8m$1Arcj|%ovkANmx z0ap;0Oe)`d(g`zqV!5&OhZf3eRd7yEwK=mDOE}FXh|%!!yP?(=xY^_rR#pY4tg5Ir z39Wh5a7%CS6HUruW1YN^DOGG73navuVR=~xawVXZzVCVD7auy2pxf`Q?U47RgJJpWxBs}wMxbYZ1@9bWf@EdEU_vlUCOVgC z&LR4=u;;2*Jf0rChoRU;;OQpt+aBOy;hiO zf?ne6Hc#+D$}=`9;DC+4;E@WtU`E`9^SwDHT#|oB1LzWWV76G=gsfGrUByZsyj`5G zi@k{E)e^ZB_FPj~B+;hmS7aKz9K5-;$vF6FbA_HQDYVZsKz-_INu6)a!Oxe#U+V*g SpKoxztm>Z@+KI^* zHkNqE$ta7ia8Z{;Y!{#iCa79Rutg=SW1@W2G(l3t=p&x!;((r=ZH?`51L>d z{oF!NP?e+sXHj6cLMgLDjKv_N2@zgC?hRN1KF;*=`Ixg&t2XYTM`#@k+V?M?ctFOI z<+CuVNXBAe@Be3>e#1;~9_Fh~!AdG5hg?XL2X7JuBPzY8^YPcZ67CyRA{x7H)O=8r zp;J$Y9E5&GIF!=Wk-EpF^ls*QA&o|%TqxKV(6WWF_i}@O^4VjVFB#mAhtB3a^k(DnYN?!XlKDCeol2#*S}GR^epo*4 z{X*RDB;gVw*WZQMS4!#gGyq|^7i9a(JHA_Re8gafC-Y)8+JEhOphKnkRViZEqQKd1 zKPYsHT<=)(R6tF7-9^tIw_9_iL~rM&Gno?R_( zO7NO^Q_|PKo09#wJa6v5c{AW$fLVzL%ZnFbHf?9FY%7>Ao>f4KTIEG40u|0pjq~~Q bFqi6F`_ zgh3GXGp4Ydo{7}kUx>F}@**yV5zGX3$(7MNO$;}$oO|0pFs6D{daMxD{!t^}Yi_HD zzr4fZdWU4*N;vmRh35(F$*d0&ulq-CV;Z|{KU*%BW5u$*iNoYF=Pj4Z8Nd(o$GugF z`v8~%jNIHSu`iX<-84inUMtvOe#H+ein|ggc`_~5ozCTnkM_v(ytj~NS48OE>pZS5 z76lEbA~M@w>*RCYZFJ2#bFI#B?cM8jMh?6oXXNM`a7K>(IKMNzzdNI_$OYTwa6Ui0 zYP({An3C`2w!5^ipjGl=UN3As#~AOz?)6`+nprOG4sH@69nwtkQz1vXV4;OkU9qQF FzX80aqNe}= literal 0 HcmV?d00001 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.2/menu_menu_main.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.2/menu_menu_main.xml.flat new file mode 100644 index 0000000000000000000000000000000000000000..8745e2cb4a6987d2649b312ded1ccacec0368322 GIT binary patch literal 784 zcmb7?%}N6?5XaZ;7Bz^LASip1MGz`(6g=srMGp!JB7U4i(%qpOyPH{(X|0dp+j#W> zd>@ad?TVscZD2ya<~K9{NxOY=8P}tqEvuL(Gci}tq+m|bF5XO^Bz_1`3sU($Ld5|nvSZHG^3mXf?&SSE>Ue@eCb~oqw7UI)b`Y=9+ z-g?PFS_=ne_?Ut3_pw{ow|8+AMTh?S6`|fk*P}+c5sN-%~WwC$V$!tk2=wr{4lMr-GpE!h^N5e$Pd*ja)laD^>%c)*pQ zUa8^b=Ine*uC`J{5&D>+OLPQ^TFq&`Y`r%Z7`u>7f~&@TMYIg|-QIQF6=^n`-xS9{ z!Fax5B_~=fJrV_KfOKoCdqo$I=ns~8MlHNRBUo{Ib&%7{tBG@(CG+bLBFusMq%Hd& R>clzC(mi#U;Q_+`?f@2tp@IMa literal 0 HcmV?d00001 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.2/mipmap-anydpi-v26_ic_launcher_round.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.2/mipmap-anydpi-v26_ic_launcher_round.xml.flat new file mode 100644 index 0000000000000000000000000000000000000000..66f9e71479622c6ed6cf637d0ecdf58f741aee73 GIT binary patch literal 520 zcmcJM%}T^D6ouPq!4eRLu7<8;mIH0Tg$v!-l?yj66n74{Nu0*!kEE^RTlfS%hf5#H zCs1SCfe}|O4BX4%2F`bGQkGZOVGsnndjA&wy!a|7jTVv{2?ler7SJhDGrP9BQ#4JU z!;jDCEzB0tvd1@$S%)8Vt(;bZF?_3S;|vgnH@vO8YX7d%+O^E)Yzxu|hQS!@EWr}E z!j?HaLUT}0)bPANKKacrwo(KEdYz#&bO4H4&1t%-+t!?7?0ilMu9)Tp(b7Yj!F!rz zaWb1%RBT3%QT@D9-$H}J38OVAIbNe<0P72_z=F2 W)O&5&|4{dw<0KxaWA_i>|N0BRSf;c9 literal 0 HcmV?d00001 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.2/mipmap-hdpi_ic_launcher.webp.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.2/mipmap-hdpi_ic_launcher.webp.flat new file mode 100644 index 0000000000000000000000000000000000000000..fbfcf74f631ba1ff0f4caa4695e4a1ab811b0938 GIT binary patch literal 1580 zcmV+{2GjXLK~Piy00001000010000K1^@s60001r0001d1poj50000A5^ZU4ZDDXP zX=7h(VRdd}Xk~H|2ao~q0l)zSB5N;Ib7gXKFKTaSZgX#LY-MFHS8sA_b8ul}WiMxG zbZB*AFKTaSZgX#LY-MFHVsCGAbY*faWq4t2aBO8SVQ_FSb8=%ZZDDC{FLGsbFKuaX zZDDXNXk>6{FKJ_6Y+-e7V`yb^E_Y>OZ~y>ONk&F=1pok7MM6+kP&il$0000G0000- z002h-06|PpNX!5L00Dqw+t%{rzW2vH!KF=w&cMnnN@{whkTw+#mAh0SV?YL=)3Mim zFYCWp#fpdtz~8$hD5VPuQgtcNXl<@<#Cme5f5yr2h%@8TWh?)bSK`O^Z@d={gn7J{iyxL_y_%J|L>ep{dUxUP8a{byupH& z!UNR*OutO~0{*T4q5R6@ApLF!5{w?Z150gC7#>(VHFJZ-^6O@PYp{t!jH(_Z*nzTK4kc{fLE4Q3|mA2`CWQ3{8;gxGizgM!zccbdQoOLZc z8hThi-IhN90RFT|zlxh3Ty&VG?Fe{#9RrRnxzsu|Lg2ddugg7k% z>0JeD+{XZ7>Z~{=|M+sh1MF7~z>To~`~LVQe1nNoR-gEzkpe{Ak^7{{ZBk2i_<+`B zq<^GB!RYG+z)h;Y3+<{zlMUYdrd*W4w&jZ0%kBuDZ1EW&KLpyR7r2=}fF2%0VwHM4 zpUs}ZI2egi#DRMYZPek*^H9YKay4Iy3WXFG(F14xYsoDA|KXgGc5%2DhmQ1gFCkrg zHBm!lXG8I5h*uf{rn48Z!_@4Bk6TJAB2CKYqPjiX&mWoW>OPFGd$wqroa($ne7EUK;#3VYkXaew%Kh^3OrMhtjYN? zXEoY`tRPQsAkH-DSL^QqyN0>^mC>{#F14jz4GeW{pJoRpLFa_*GI{?T93^rX7SPQg zT@LbLqpNA}<@2wH;q493)G=1Y#-sCiRNX~qf3KgiFzB3I>4Z%AfS(3$`-aMIBU+6? zgbgDb!)L~A)je+;fR0jWLL-Fu4)P{c7{B4Hp91&% z??2$v9iRSFnuckHUm}or9seH6>%NbT+5*@L5(I9j@06@(!{ZI?U0=pKn8uwIg&L{JV14+8s2hnvb eRrU|hZCd}IJu7*;;ECgO%8_*Wmw_-CKmY(KsO)S2 literal 0 HcmV?d00001 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.2/mipmap-hdpi_ic_launcher_round.webp.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.2/mipmap-hdpi_ic_launcher_round.webp.flat new file mode 100644 index 0000000000000000000000000000000000000000..da43bef5eac40aa8245852bc20615e7c904c6e48 GIT binary patch literal 3088 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 literal 0 HcmV?d00001 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.2/mipmap-mdpi_ic_launcher.webp.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.2/mipmap-mdpi_ic_launcher.webp.flat new file mode 100644 index 0000000000000000000000000000000000000000..e08b814313e0d7e6b85f777336785758f307e378 GIT binary patch literal 1160 zcmV;31b6#EK~Piy00001000010001R1ONa40001r0002i0{{R30000A5^ZU4ZDDXP zX=7h(VRdd}Xk~H|2ao}v0l)zSB5N;Ib7gXKFKTaSZgX#LY-MFHS8sA_b8ul}WiMxG zbZB*AFKTaSZgX#LY-MFHVsCGAbY*faWq4t2aBO8SVQ_FSb8=%ZZDDC{FLGsbFKuaX zZDDXNZDeq1FKJ_6Y+-e7V`yb^E_Y>OZ~y>ONk&G_0{{S5MM6+kP&il$0000G0000l z001ul06|PpNU8t;00Dqo+t#w^^1csucXz7-Qrhzl9HuHB%l>&>1tG2^vb*E&k^T3$ zFG1eQZ51g$uv4V+kI`0<^1Z@Nk?Jjh$olyC%l>)Xq;7!>{iBj&BjJ`P&$fsCfpve_ zepJOBkTF?nu-B7D!hO=2ZR}C%4c_9eOXvPbC4kzU8YowIA8cW~Uv|eB&yYwAObSwL2 zvY~UYI7NXPvf3b+c^?wcs~_t{e_m66-0)^{JdOMKPwjpQ@Sna!*?$wTZ~su*tNv7o z!gXT!GRgivP}ec?5>l1!7<(rTds|8x(qGc673zrvYIz;J23FG{9nHMnAuP}NpAED^ zlaz3mAN1sy+NXK)!6v1FxQ;lhOBLA>$~P3r4b*NcqR;y6pwyhZ3_PiDb|%n1gGjl3ZU}ujInlP{eks z-#oA6>rh&g+!f`hv#_%JrgYPu(U^&XLW^QX7F9 zZ*SRPpQl{B%x)_AMp^}_v~?j7apvHMKxSf*Mtyx8I}-<*UGn3)oHd(nn=)BZ`d$lD zBwq_GL($_TPaS{UeevT(AJ`p09%+hQb6z)U9qjbuXjg|dExCLjpS8$VKQ55VsIC%@ a{N5t{NsW)=hNGI`J=x97_kbz@0001Eb12^c literal 0 HcmV?d00001 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.2/mipmap-mdpi_ic_launcher_round.webp.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.2/mipmap-mdpi_ic_launcher_round.webp.flat new file mode 100644 index 0000000000000000000000000000000000000000..22757f50b98a0c0ba692fcaa9143f6bdd734742c GIT binary patch literal 1960 zcmV;Z2Uqw(K~Piy00001000010001x2LJ#70001%0002&1^@s60000A7;R~AZDDXP zX=7h(VRdd}Xk~I=a&L8RWD*CE0iXfE0R$p(FI978a&s?gZ)k3FZ*FX5WiMB6a%*#N zVPj=4XK8e3bz(1SZ)k3FZ*FX5WiMiHZ*z2IaxGKoa zWpgiWX>e^}a4l_QaA_}TV_$4xb#7y5WpZC~Z*^{DE_Y>OZ~y>ONk&HG1^@t8MM6+k zP&il$0000G0000l001ul06|PpNL&H{00E$D+qP-j>Qj4N+cqN`nQhxvX7dAV-`K|U zb$-q+H-5I?Tx0g9jWxd@A|?POE8`3b8fO$T))xP*(X?&brZw( z{`)WU&rdAs1iTa0x6F@PIxJ&&L|dpySV!ID|iUhjCcKz(@mE!x@~W#3H<)4Ae(4eQJRk`Iz3< z1)6^m)0b_4_TRZ+cz#eD3f8V;2r-1fE!F}WEi0MEkTTx}8i1{`l_6vo0(Vuh z0HD$I4SjZ=?^?k82R51bC)2D_{y8mi_?X^=U?2|F{Vr7s!k(AZC$O#ZMyavHhlQ7UR~QXuH~#o#>(b$u4?s~HLF*3 zIcF7023AlwAYudn0FV~|odGH^05AYPEfR)8p`i{nwg3zPVp{+wOsxKc>)(pMupKF! zY2HoUqQ3|Yu|8lwR=?5zZuhG6J?H`bSNk_wPoM{uSL{c@pY7+c2kck>`^q1^^gR0Q zB7Y?KUD{vz-uVX~;V-rW)PDcI)$_UjgVV?S?=oLRf4}zz{#*R_{LkiJ#0RdQLNC^2 zVp%JPEUvG9ra2BVZ92(p9h7Ka@!yf9(lj#}>+|u*;^_?KWdzkM`6gqPo9;;r6&JEa z)}R3X{(CWv?NvgLeOTq$cZXqf7|sPImi-7cS8DCNGf;DVt3Am`>hH3{4-WzH43Ftx z)SofNe^-#|0HdCo<+8Qs!}TZP{HH8~z5n`ExcHuTDL1m&|DVpIy=xs zLO>8k92HcmfSKhflQ0H~9=^-{#!I1g(;+44xw~=*xvNz35vfsQE)@)Zsp*6_GjYD} z;Squ83<_?^SbALb{a`j<0Gn%6JY!zhp=Fg}Ga2|852e1WU%^L1}15Ex0fF$e@eCT(()_PvV?CA%#Sy08_U6VPt4EtmVQraWJX`h=N|WQ>LgrvF~R&qOfB$!%D3c zGv?;Xh_z$z7k&s4N)$WYf*k=|*jCEkO19{h_(%W4PuOqbCw`SeAX*R}UUsbVsgtuG z?xs(#Ikx9`JZoQFz0n*7ZG@Fv@kZk`gzO$HoA9kN8U5{-yYvV{`&WKU2$mZeoBmiJrEdzUZAv1sRxpePdg1)F*X z^Y)zp^Y*R;;z~vOv-z&)&G)JQ{m!C9cmziu1^nHA`#`0c>@PnQ9CJKgC5NjJD8HM3 z|KC(g5nnCq$n0Gsu_DXk36@ql%npEye|?%RmG)FJ$wK}0tWNB{sJkf8to literal 0 HcmV?d00001 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.2/mipmap-xhdpi_ic_launcher.webp.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.2/mipmap-xhdpi_ic_launcher.webp.flat new file mode 100644 index 0000000000000000000000000000000000000000..9aac1730ddd31ca44916dedba80188b8d96ec914 GIT binary patch literal 2076 zcmV+%2;=ubK~Piy0000100001000042mk;80001s0001N2LJ#70000A5^ZU4ZDDXP zX=7h(VRdd}Xk~H|2ao~40>A+TB5W^Jb7gXKFKTaSZgX#LY-MFHS8sA_b8ul}WiMxG zbZB*AFKTaSZgX#LY-MFHVsCGAbY*faWq4t2aBO8SVQ_FSb8=%ZZDDC{FLGsbFKuaX zZDDXNcxYsBX)kGGUuo6o6GyRq6Ap5(_{XLdXcL-MzlN`ugSdZY_`jXhcENAu)N_ z0?GhF))9R;E`!bo9p?g?SRgw_EXHhFG$0{qYOqhdX<(wE4N@es3V zIo$%il%6xP9gjiBri+2pI6aY4Jbgh-Ud|V%3O!IcHKQx1FQH(_*TK;1>FQWbt^$K1 zzNn^cczkBs=QHCYZ8b&l!UV{K{L0$KCf_&KR^}&2Fe|L&?1I7~pBENnCtCuH3sjcx z6$cwqkNkru);ie``q+_QI;IYLD9OV0ZxkuyBz|5<$1BH|vtey$>5oto4=l-R-Aaq`Dk0}o9N0VrkqW_#; z!u{!bJLDq%0092{Ghe=F;(kn}+sQ@1=UlX30+2nWjkL$B^b!H2^QY zO@iFc0{(-~yXj2TWz?VG{v`Jgg}WyYnwGgn>{HFaG7E~pt=)sOO}*yd(UU-D(E&x{ zxKEl6OcU?pl)K%#U$dn1mDF19Sw@l8G!GNFB3c3VVK0?uyqN&utT- zD5%NM4g-3@Sii9tSXKtwce~uFS&Jn746EW^wV~8zdQ1XC28~kXu8+Yo9p!<8h&(Q( z{J*4DBglPdpe4M_mD8AguZFn~tiuO~{6Bx?SfO~_ZV(GIboeR9~ zhAym{{fV|VM=77MxDrbW6`ujX<3HF(>Zr;#*uCvC*bpoSr~C$h?_%nXps@A)=l_;( z{Fo#6Y1+Zv`!T5HB+)#^-Ud_;BwftPN=d8Vx)*O1Mj+0oO=mZ+NVH*ptNDC-&zZ7Hwho6UQ z#l-yNvc0Cm+2$$6YUk2D2t#vdZX-u3>-Be1u9gtTBiMB^xwWQ_ zrgvGpZ6(C@e23c!^K=>ai-RquhqT`ZQof;9Bu!AD(i^PCbYV%yha9zuoKMp`U^z;3 z!+&d@Hud&_iy!O-$b9ZLcSRh?)R|826w}TU!J#X6P%@Zh=La$I6zXa#h!B;{qfug} zO%z@K{EZECu6zl)7CiNi%xti0B{OKfAj83~iJvmpTU|&q1^?^cIMn2RQ?jeSB95l} z{DrEPTW{_gmU_pqTc)h@4T>~&luq3)GM=xa(#^VU5}@FNqpc$?#SbVsX!~RH*5p0< zxA(I&qyn@)(mw0@a&Pg3L>p@w;~v{QMX0^bFT1!cXGM8K9FP+=9~-d~#TK#ZE{4um zGT=;dfvWi?rYj;^l_Zxywze`W^Cr{55U@*BalS}K%Czii_80e0#0#Zkhlij4-~I@} z`-JFJ7$5{>LnoJSs??J8kWVl6|8A}RCGAu9^rAsfCE=2}tHwl93 zt0C?#+jMpvr7O3`2=tr{Hg$=HlnjVG^ewm|Js0J*kfPa6*GhtB>`fN! zm#9J(sU!?(OSfzY*zS(FJ<-VbfAIg+`U)YaXv#sY(c--|XEB+TVyZ%Ie4L$gi#Fc++`h6%vzsS$pjz9aLt+ZL( zg;n$Dzy5=m=_TV(3H8^C{r0xdp#a%}ht55dOq?yhwYPrtp-m1xXp;4X;)NhxxUpgP%XTLmOcjaFva^}dP3$&sfFTIR_jC=2pHh9kpI@2(6V*GQo z7Ws)`j)hd+tr@P~gR*2gO@+1?G<`_tB+LJuF|SZ9tIec;h%}}6WClT`L>HSW?E{Hp z1h^+mlbf_$9zA>!ug>NALJsO{U%z=YwVD?}XMya)Bp;vlyE5&E_6!fzx9pwrdz474 G!~g(QE9PDR literal 0 HcmV?d00001 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.2/mipmap-xhdpi_ic_launcher_round.webp.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.2/mipmap-xhdpi_ic_launcher_round.webp.flat new file mode 100644 index 0000000000000000000000000000000000000000..740d36c222fcfe87d7d527ad0933121f41c14dd9 GIT binary patch literal 4108 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 G0Qe7*zYcZ) literal 0 HcmV?d00001 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.2/mipmap-xxhdpi_ic_launcher.webp.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.2/mipmap-xxhdpi_ic_launcher.webp.flat new file mode 100644 index 0000000000000000000000000000000000000000..d8f058f54d465582f5cd3e654c388a285aa9f121 GIT binary patch literal 3060 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�( zp-{x$&=IACIfoAR!za)F-^da-t3#0DycnpwO~NVXwXCl;jE<}>%@xz|=8fIJAB?>+E{7)|4l${4ngA3G|=r2Dyv;VVWSgZx9Wj>qUjleGl3E zi9K4>h!(lPS%8VOG>Xu0%6VDz^O=bjJmuP7>DeUvrbI}MlHB^^d?{zv6d=@_ZD2lg z1&G7UjnVN{1}9WkaM3H~btX0GtSzB+tZ^qRgWo4m!GmimlG$=wgXCnr6j@m<1gAL4 z6#T~5Bnm=2{^@>|t&`9mkEPddjAvG~@Tv~TAm2i%VW}R-g(Z0)z z-Y|szHr@rk>4MAyG*Ma*7Yh#H7(!-5>DZ@8r;_dx{prSe<>~099F8vsYd2xff7uAS z%7{S)f(|@me3t2$iy&NEc7OUEchp@9A|X;;IA>8!oX+y(BKJ$EzV*nR$z;!L$s7uy@{OT~nG#B!NRr zaT8(X##Ho!0r_o@gg0CA-9H^;-uE&?$2$nHv_00o%cbuUc-tCx$Uh&EZ4Nf4Zgqv) zY6>usG3>GeQnxx_Z6+PcbX-+ysbt1hQ`K1LDpOE?rAhIZhSN9yVIAOa22gn577tbc z&i3|3V8NWy&!tw##`}9*x}gtI^h1DzZRA>UuaJG)aZ7j)dq!O}{?#8Y7~7i6fHh4{ z`pL?>-18|p!S75Y#^DM>-S3)vuZG+Q7l@ekQP~#cBpWgg#mApc_sPYjpw8od zQuRokmTkzcNl`^CcKB7e&;zViV;{Y{o^Y$%7i0m#62%#1Lq!RC?}lK>%mp}T!3Xv; zL*0v*>USLm``N%>w>@fwC+#T&Tx2bN4w(20JB}oUuSa6v^kXi0xPs?pbaOHnyiqq z6By1EZY9OZ^^QA>{q-Hsd&m`pbQ%8121aWG-F5xflZ%;B{;C>X19|`^_?dVyCq>n+ z41w7|!tUS!{9rHlbhX=SZO5CQ^;!Du_E7*`GiR^Q)2!4MKjfSAeNC8?5 literal 0 HcmV?d00001 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.2/mipmap-xxxhdpi_ic_launcher.webp.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.2/mipmap-xxxhdpi_ic_launcher.webp.flat new file mode 100644 index 0000000000000000000000000000000000000000..177e5215d3351160b632e262c5669e740be72bdb GIT binary patch literal 4024 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 literal 0 HcmV?d00001 diff --git a/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.2/navigation_nav_graph.xml.flat b/booster-aapt2/src/test/resources/com/didiglobal/booster/aapt2/7.2.2/navigation_nav_graph.xml.flat new file mode 100644 index 0000000000000000000000000000000000000000..9184f6dd3a65030e10ab3e0469d4b072ba9b4e7f GIT binary patch literal 1816 zcmbu9PjAyO7{=4C?JBQASwJ1KKtj17QWhhz6I?n8Rs1H6A~bE$|pB$qhN5`u7+ zAt^$XV#<&pGS6NU@-NfG8v>g~XhMZl6M^HDFy*xS1MdLr>-i5PV*Yk)<3M~yi2Mn~r%8z!xXIbEC54;4sm_>rq$noY%WiJqt;hdyc z`sKVI@>Dl}QS@BS!A`$t```%dXjh!aw+9~Lh2mut0$s&+WlCYmZJZ z!C&}7!Qt2p&@wuh0~@)dQH33bQvyen`zzS}5@^2!+OJSj%DinPlN;d_Mr_J; z)+kpu!BdjJ2VlV0b!JauU?#cE<>_uxZI5`Z}v!nCd_K_Pl zDm*t~RG6^c0X8BUZ7rq0dUL%W9q?@(n>P)xIjCVHiwj1}4DDy`tWht9o2NH(Q}Zm> zdDloM_v~)r*~Vm_8YL^qdAKCU^j}9um+Ad#fuAdM-v1*y8}AWlKmT8Hs%F$~a=oQm NL^ET)x*u~v{sz|YPDua& literal 0 HcmV?d00001 From eb16fc536572bdfd9cd04510d89f7656406b17dc Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Thu, 25 Aug 2022 23:38:50 +0800 Subject: [PATCH 155/187] [skip ci] Update README & RELEASE-NOTES --- README.md | 4 ++-- RELEASE-NOTES.md | 8 ++++++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index beb287652..110fbf75e 100644 --- a/README.md +++ b/README.md @@ -76,7 +76,7 @@ The best practise of using Booster is integrating the specific module to solve t ```groovy buildscript { - ext.booster_version = '4.12.0' + ext.booster_version = '4.13.0' repositories { google() mavenCentral() @@ -124,7 +124,7 @@ The `plugins` DSL also supported since Booster *3.0.0* ```groovy plugins { - id 'com.didiglobal.booster' version '4.12.0' + id 'com.didiglobal.booster' version '4.13.0' } ``` diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index 27a25bdc2..5e2ab4024 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -1,3 +1,11 @@ +## v4.13.0 + +- Fix incompatibility issue of `ShadowScheduledThreadPoolExecutor` on Android 5.1.1 and below +- Fix issue [#364](https://github.com/didi/booster/issues/364) booster transform cannot be registered successfully +- Fix issue [#368](https://github.com/didi/booster/issues/368) by removing JAR signature related files to prevent JAR signature verification +- Fix issue [#370](https://github.com/didi/booster/issues/370) by improving the compatibility of AGP 7.2.0+ +- Improve [booster-aapt2](https://github.com/didi/booster/blob/v4.13.0/booster-aapt2) compatibility + ## v4.12.0 - Enable class set cache for static analysis to reduce memory footprint From db7dd1ccf008f19991e87ccb22082c911bb5f886 Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Fri, 22 Jul 2022 02:08:44 +0800 Subject: [PATCH 156/187] CHA improvement --- .../didiglobal/booster/cha/ClassHierarchy.kt | 68 ++++++++++--------- .../com/didiglobal/booster/graph/Graph.kt | 37 +++++++++- 2 files changed, 71 insertions(+), 34 deletions(-) diff --git a/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/ClassHierarchy.kt b/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/ClassHierarchy.kt index 35c708231..a462dd415 100644 --- a/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/ClassHierarchy.kt +++ b/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/ClassHierarchy.kt @@ -46,22 +46,42 @@ class ClassHierarchy( name: String?, filter: ClassFileParser.(clazz: ClassFile) -> Boolean = { true } ): Set { - val fq = name ?: return emptySet() - val stack = Stack().apply { - push(fq) - } + return get(name)?.let { + getDerivedTypes(it, filter) + } ?: emptySet() + } - val children = mutableSetOf() - while (stack.isNotEmpty()) { - children += graph[ClassNode(stack.pop())].takeIf(Set::isNotEmpty)?.mapNotNull { - get(it.name) - }?.filter { - filter(this, it) - }?.onEach { - stack.push(getClassName(it)) - } ?: emptyList() - } - return children + fun getDerivedTypes( + clazz: ClassFile, + filter: ClassFileParser.(clazz: ClassFile) -> Boolean = { true } + ): Set { + val node = ClassNode(getClassName(clazz)) + return graph.getSuccessors(node).filter { + get(it.name)?.let { v -> filter(this, v) } == true + }.mapNotNull { + get(it.name) + }.toSet() + } + + fun getSuperTypes( + name: String?, + filter: ClassFileParser.(clazz: ClassFile) -> Boolean = { true } + ): Set { + return get(name)?.let { + getSuperTypes(it, filter) + } ?: emptySet() + } + + fun getSuperTypes( + clazz: ClassFile, + filter: ClassFileParser.(clazz: ClassFile) -> Boolean = { true } + ): Set { + val node = ClassNode(getClassName(clazz)) + return graph.getPredecessors(node).filter { + get(it.name)?.let { v -> filter(this, v) } == true + }.mapNotNull { + get(it.name) + }.toSet() } fun isInheritFrom(child: ClassFile, parent: ClassFile) = when { @@ -117,24 +137,6 @@ class ClassHierarchy( } ?: false } - fun getSuperTypes(clazz: ClassFile): Set { - val superName = getSuperName(clazz) ?: return emptySet() - var parent = this[superName] - - if (superName == JAVA_LANG_OBJECT) { - return parent?.let(::setOf) ?: throw ClassNotFoundException(superName) - } - - val classes = mutableSetOf() - - while (null != parent) { - classes += parent - parent = getSuperName(parent)?.let(this::get) - } - - return classes - } - } typealias OnClassResolveFailed = (String) -> Unit diff --git a/booster-graph/src/main/kotlin/com/didiglobal/booster/graph/Graph.kt b/booster-graph/src/main/kotlin/com/didiglobal/booster/graph/Graph.kt index d4475b4d9..56f4904b1 100644 --- a/booster-graph/src/main/kotlin/com/didiglobal/booster/graph/Graph.kt +++ b/booster-graph/src/main/kotlin/com/didiglobal/booster/graph/Graph.kt @@ -2,6 +2,7 @@ package com.didiglobal.booster.graph import java.io.PrintWriter import java.util.Collections +import java.util.Stack import java.util.concurrent.ConcurrentHashMap import java.util.concurrent.CopyOnWriteArraySet @@ -34,9 +35,43 @@ class Graph private constructor( operator fun get(from: N): Set = edges[from]?.let(Collections::unmodifiableSet) ?: emptySet() + fun getPredecessors(node: N): Set { + val stack = Stack().apply { + push(node) + } + val predecessors = mutableSetOf() + while (stack.isNotEmpty()) { + val current = stack.pop() + predecessors += entries.filter { + it.to == current && it.from !in predecessors + }.map { + it.from + }.onEach { + stack.push(it) + } + } + return predecessors + } + + fun getSuccessors(node: N): Set { + val stack = Stack().apply { + push(node) + } + val successors = mutableSetOf() + while (stack.isNotEmpty()) { + val current = stack.pop() + successors += get(current).filter { + it !in successors + }.onEach { + stack.push(it) + } + } + return successors + } + fun reversed(): Graph { return edges.entries.fold(Builder()) { builder, entry -> - entry.value.forEach { to -> + entry.value.forEach { to -> builder.addEdge(to, entry.key) } builder From db69729af08bc5401c257db7c8768dd762a0251d Mon Sep 17 00:00:00 2001 From: chenke Date: Sat, 22 Oct 2022 13:44:44 +0800 Subject: [PATCH 157/187] fix: https://github.com/didi/booster/issues/387 --- .../booster/task/analyser/reference/ReferenceAnalysisTask.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/ReferenceAnalysisTask.kt b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/ReferenceAnalysisTask.kt index 2c93a7a52..18f6da4ac 100644 --- a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/ReferenceAnalysisTask.kt +++ b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/ReferenceAnalysisTask.kt @@ -42,7 +42,7 @@ open class ReferenceAnalysisTask : AnalysisTask() { classSetCache[it.toURI().toURL()] }.fold() val graph = ReferenceAnalyser().analyse(origin, upstream) { klass, progress, duration -> - project.logger.info("${green(String.format("%3d%%", progress * 100))} Analyse class ${klass.name} in ${yellow(duration.toMillis())} ms") + project.logger.info("${green(String.format("%3f%%", progress * 100))} Analyse class ${klass.name} in ${yellow(duration.toMillis())} ms") } val executor = Executors.newFixedThreadPool(3) From 13d74934bb3577d9f43d414587292d1163ee4c3b Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Sat, 22 Oct 2022 18:01:24 +0800 Subject: [PATCH 158/187] Fix issue #381 : improper locale processing --- .../src/main/kotlin/com/didiglobal/booster/aapt2/Aapt2Parser.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/booster-aapt2/src/main/kotlin/com/didiglobal/booster/aapt2/Aapt2Parser.kt b/booster-aapt2/src/main/kotlin/com/didiglobal/booster/aapt2/Aapt2Parser.kt index e4ca10a0e..403b13c11 100644 --- a/booster-aapt2/src/main/kotlin/com/didiglobal/booster/aapt2/Aapt2Parser.kt +++ b/booster-aapt2/src/main/kotlin/com/didiglobal/booster/aapt2/Aapt2Parser.kt @@ -89,7 +89,7 @@ private fun BinaryParser.parseResFileMetadata(): Metadata { height = it.config.screenHeightDp.toShort() } // TODO localScript = ... - it.config.localeBytes.takeIf { l -> l.size() > 0 }?.copyTo(localeScript, 0) + it.config.localeBytes.takeIf { l -> l.size() > 0 }?.copyTo(localeVariant, 0) screenConfig2.apply { layout = it.config.screenRoundValue.toByte() colorMode = (it.config.hdrValue shl 2 and it.config.wideColorGamutValue).toByte() From a37f19c61ac1d86cc5db91ae69ba2d641e0ba267 Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Sat, 22 Oct 2022 19:12:06 +0800 Subject: [PATCH 159/187] [skip ci] Update README & RELEASE-NOTES --- README.md | 4 ++-- RELEASE-NOTES.md | 4 ++++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 110fbf75e..167f87d36 100644 --- a/README.md +++ b/README.md @@ -76,7 +76,7 @@ The best practise of using Booster is integrating the specific module to solve t ```groovy buildscript { - ext.booster_version = '4.13.0' + ext.booster_version = '4.14.0' repositories { google() mavenCentral() @@ -124,7 +124,7 @@ The `plugins` DSL also supported since Booster *3.0.0* ```groovy plugins { - id 'com.didiglobal.booster' version '4.13.0' + id 'com.didiglobal.booster' version '4.14.0' } ``` diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index 5e2ab4024..f03aeb356 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -1,3 +1,7 @@ +## v4.14.0 + +- CHA improvement + ## v4.13.0 - Fix incompatibility issue of `ShadowScheduledThreadPoolExecutor` on Android 5.1.1 and below From 5000e6b530855f343aed69042c4db38ed4eca798 Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Sat, 22 Oct 2022 21:51:22 +0800 Subject: [PATCH 160/187] Upgrade Gradle to 7.4 and Kotlin to 1.5.31 --- booster-aapt2/build.gradle | 2 +- .../com/didiglobal/booster/gradle/Project.kt | 5 ++ .../booster/gradle/ResolvedArtifactResults.kt | 4 +- booster-android-gradle-v3_3/build.gradle | 1 - .../android/gradle/v3_3/V33IntegrationTest.kt | 2 + .../src/integrationTest/resources/app.gradle | 2 - .../resources/buildSrc/build.gradle | 2 - .../src/integrationTest/resources/lib.gradle | 2 - .../booster/android/gradle/v3_3/V33.kt | 2 +- booster-android-gradle-v3_4/build.gradle | 1 - .../android/gradle/v3_4/V34IntegrationTest.kt | 2 + .../src/integrationTest/resources/app.gradle | 2 - .../resources/buildSrc/build.gradle | 2 - .../src/integrationTest/resources/lib.gradle | 2 - .../booster/android/gradle/v3_4/V34.kt | 2 +- booster-android-gradle-v3_5/build.gradle | 1 - .../android/gradle/v3_5/V35IntegrationTest.kt | 2 + .../src/integrationTest/resources/app.gradle | 2 - .../resources/buildSrc/build.gradle | 2 - .../src/integrationTest/resources/lib.gradle | 2 - booster-android-gradle-v3_6/build.gradle | 1 - .../android/gradle/v3_6/V36IntegrationTest.kt | 2 + .../src/integrationTest/resources/app.gradle | 2 - .../resources/buildSrc/build.gradle | 2 - .../src/integrationTest/resources/lib.gradle | 2 - booster-android-gradle-v4_0/build.gradle | 1 - .../android/gradle/v4_0/V40IntegrationTest.kt | 2 + .../src/integrationTest/resources/app.gradle | 2 - .../resources/buildSrc/build.gradle | 2 - .../src/integrationTest/resources/lib.gradle | 2 - booster-android-gradle-v4_1/build.gradle | 1 - .../android/gradle/v4_1/V41IntegrationTest.kt | 2 + .../src/integrationTest/resources/app.gradle | 2 - .../resources/buildSrc/build.gradle | 2 - .../src/integrationTest/resources/lib.gradle | 2 - booster-android-gradle-v4_2/build.gradle | 1 - .../android/gradle/v4_2/V42IntegrationTest.kt | 2 + .../src/integrationTest/resources/app.gradle | 2 - .../resources/buildSrc/build.gradle | 2 - .../src/integrationTest/resources/lib.gradle | 2 - booster-android-gradle-v7_0/build.gradle | 1 - .../android/gradle/v7_0/V70IntegrationTest.kt | 2 + .../src/integrationTest/resources/app.gradle | 2 - .../resources/buildSrc/build.gradle | 2 - .../src/integrationTest/resources/lib.gradle | 2 - booster-android-gradle-v7_1/build.gradle | 1 - .../android/gradle/v7_1/V71IntegrationTest.kt | 2 + .../src/integrationTest/resources/app.gradle | 2 - .../resources/buildSrc/build.gradle | 2 - .../src/integrationTest/resources/lib.gradle | 2 - booster-android-gradle-v7_2/build.gradle | 1 - .../android/gradle/v7_2/V72IntegrationTest.kt | 2 + .../src/integrationTest/resources/app.gradle | 2 - .../resources/buildSrc/build.gradle | 2 - .../src/integrationTest/resources/lib.gradle | 2 - .../didiglobal/booster/build/AndroidSdk.kt | 2 +- .../booster/cha/CompositeClassSet.kt | 4 +- .../booster/cha/DirectoryClassSet.kt | 5 +- .../com/didiglobal/booster/kotlinx/OS.kt | 8 +- .../task/analyser/AnalysisVariantProcessor.kt | 5 +- .../CheckSnapshotVariantProcessor.kt | 1 + ...sedResourcesCompressionVariantProcessor.kt | 11 +-- .../booster/compression/CompressionReport.kt | 11 ++- .../SimpleCompressionTaskCreator.kt | 2 + .../booster/task/artifact/ListArtifact.kt | 2 +- .../artifact/ListArtifactVariantProcessor.kt | 1 + .../ListPermissionVariantProcessor.kt | 1 + .../booster/task/so/ListSharedLibrary.kt | 2 +- .../so/ListSharedLibraryVariantProcessor.kt | 1 + .../deredundancy/RemoveRedundantFlatImages.kt | 2 +- .../ResourceDeredundancyVariantProcessor.kt | 1 + .../test/asm/BoosterTestRunnerWithAsmTest.kt | 2 + .../BoosterTestRunnerWithJavassistTest.kt | 2 + .../booster/transform/asm/AsmTransformer.kt | 2 +- .../br/inline/BRInlineTransformer.kt | 4 +- .../javassist/JavassistTransformer.kt | 2 +- .../transform/r/inline/RInlineTransformer.kt | 2 +- .../serviceloader/ServiceLoaderTransformer.kt | 2 +- .../booster/transform/util/ArgumentsParser.kt | 2 +- .../booster/transform/util/transform.kt | 2 +- build.gradle | 63 +------------- gradle/functional-test.gradle | 2 +- gradle/integration-test.gradle | 6 +- gradle/wrapper/gradle-wrapper.properties | 2 +- settings.gradle | 67 --------------- settings.gradle.kts | 84 +++++++++++++++++++ 86 files changed, 167 insertions(+), 241 deletions(-) delete mode 100644 settings.gradle create mode 100644 settings.gradle.kts diff --git a/booster-aapt2/build.gradle b/booster-aapt2/build.gradle index 63b85409b..74077106e 100644 --- a/booster-aapt2/build.gradle +++ b/booster-aapt2/build.gradle @@ -2,5 +2,5 @@ apply from: "$rootDir/gradle/booster.gradle" dependencies { api 'com.google.protobuf:protobuf-java:3.10.0' - testCompile 'com.android.tools.build:gradle:4.0.0' + testImplementation 'com.android.tools.build:gradle:4.0.0' } diff --git a/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/Project.kt b/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/Project.kt index 10995bf87..d2e8dc8f5 100644 --- a/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/Project.kt +++ b/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/Project.kt @@ -18,9 +18,11 @@ import org.gradle.api.capabilities.Capability import org.gradle.api.component.Artifact import org.gradle.api.plugins.JavaPlugin import org.gradle.api.plugins.JavaPlugin.RUNTIME_CLASSPATH_CONFIGURATION_NAME +import org.gradle.api.provider.Provider import org.gradle.api.tasks.TaskProvider import org.gradle.maven.MavenPomArtifact import java.io.File +import java.util.Optional import java.util.Stack /** @@ -168,6 +170,8 @@ private data class ResolvedArtifactResultImpl( override fun getAttributes(): AttributeContainer = EmptyAttributes override fun getDisplayName(): String = id.displayName override fun getCapabilities(): MutableList = mutableListOf() + override fun getOwner(): ComponentIdentifier = artifactId.componentIdentifier + override fun getExternalVariant(): Optional = Optional.empty() } } @@ -184,4 +188,5 @@ private object EmptyAttributes : AttributeContainer { override fun getAttribute(key: Attribute): T? = null override fun isEmpty(): Boolean = true override fun contains(key: Attribute<*>): Boolean = false + override fun attributeProvider(key: Attribute, provider: Provider): AttributeContainer = this } \ No newline at end of file diff --git a/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/ResolvedArtifactResults.kt b/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/ResolvedArtifactResults.kt index e5cebf362..d06e43d55 100644 --- a/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/ResolvedArtifactResults.kt +++ b/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/ResolvedArtifactResults.kt @@ -35,9 +35,9 @@ class ResolvedArtifactResults(private val variant: BaseVariant) : Collection - get() = project.tasks.named("transformNativeLibsWithMergeJniLibsFor${name.capitalize()}") + get() = @Suppress("DEPRECATION") project.tasks.named("transformNativeLibsWithMergeJniLibsFor${name.capitalize()}") override val BaseVariant.processJavaResourcesTaskProvider: TaskProvider get() = processJavaResourcesProvider diff --git a/booster-android-gradle-v3_4/build.gradle b/booster-android-gradle-v3_4/build.gradle index 686414cbe..2c9e96ef7 100644 --- a/booster-android-gradle-v3_4/build.gradle +++ b/booster-android-gradle-v3_4/build.gradle @@ -2,7 +2,6 @@ apply plugin: 'java-gradle-plugin' apply from: "$rootDir/gradle/booster.gradle" apply from: "$rootDir/gradle/integration-test.gradle" -apply from: "$rootDir/gradle/functional-test.gradle" dependencies { kapt 'com.google.auto.service:auto-service:1.0' diff --git a/booster-android-gradle-v3_4/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_4/V34IntegrationTest.kt b/booster-android-gradle-v3_4/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_4/V34IntegrationTest.kt index cee5f7abc..e75fa5e03 100644 --- a/booster-android-gradle-v3_4/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_4/V34IntegrationTest.kt +++ b/booster-android-gradle-v3_4/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_4/V34IntegrationTest.kt @@ -1,3 +1,5 @@ +@file:Suppress("DEPRECATION") + package com.didiglobal.booster.android.gradle.v3_4 import com.android.build.gradle.AppExtension diff --git a/booster-android-gradle-v3_4/src/integrationTest/resources/app.gradle b/booster-android-gradle-v3_4/src/integrationTest/resources/app.gradle index a90b07625..aa3c5f2d6 100644 --- a/booster-android-gradle-v3_4/src/integrationTest/resources/app.gradle +++ b/booster-android-gradle-v3_4/src/integrationTest/resources/app.gradle @@ -3,7 +3,6 @@ buildscript { mavenLocal() mavenCentral() google() - jcenter() maven { url 'https://oss.sonatype.org/content/repositories/public/' } maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } } @@ -57,6 +56,5 @@ repositories { mavenLocal() mavenCentral() google() - jcenter() maven { url 'https://oss.sonatype.org/content/repositories/public/' } } diff --git a/booster-android-gradle-v3_4/src/integrationTest/resources/buildSrc/build.gradle b/booster-android-gradle-v3_4/src/integrationTest/resources/buildSrc/build.gradle index 4d7b663b3..79a9b104a 100644 --- a/booster-android-gradle-v3_4/src/integrationTest/resources/buildSrc/build.gradle +++ b/booster-android-gradle-v3_4/src/integrationTest/resources/buildSrc/build.gradle @@ -3,7 +3,6 @@ buildscript { mavenLocal() mavenCentral() google() - jcenter() maven { url 'https://oss.sonatype.org/content/repositories/public/' } maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } } @@ -13,7 +12,6 @@ repositories { mavenLocal() mavenCentral() google() - jcenter() maven { url 'https://oss.sonatype.org/content/repositories/public/' } } diff --git a/booster-android-gradle-v3_4/src/integrationTest/resources/lib.gradle b/booster-android-gradle-v3_4/src/integrationTest/resources/lib.gradle index 99bbebeb1..adc9b1ca0 100644 --- a/booster-android-gradle-v3_4/src/integrationTest/resources/lib.gradle +++ b/booster-android-gradle-v3_4/src/integrationTest/resources/lib.gradle @@ -3,7 +3,6 @@ buildscript { mavenLocal() mavenCentral() google() - jcenter() maven { url 'https://oss.sonatype.org/content/repositories/public/' } maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } } @@ -54,6 +53,5 @@ repositories { mavenLocal() mavenCentral() google() - jcenter() maven { url 'https://oss.sonatype.org/content/repositories/public/' } } diff --git a/booster-android-gradle-v3_4/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_4/V34.kt b/booster-android-gradle-v3_4/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_4/V34.kt index a82c1502c..fd49f4694 100644 --- a/booster-android-gradle-v3_4/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_4/V34.kt +++ b/booster-android-gradle-v3_4/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_4/V34.kt @@ -79,7 +79,7 @@ internal object V34 : AGPInterface { get() = mergeResourcesProvider override val BaseVariant.mergeNativeLibsTaskProvider: TaskProvider - get() = project.tasks.named("transformNativeLibsWithMergeJniLibsFor${name.capitalize()}") + get() = @Suppress("DEPRECATION") project.tasks.named("transformNativeLibsWithMergeJniLibsFor${name.capitalize()}") override val BaseVariant.processJavaResourcesTaskProvider: TaskProvider get() = processJavaResourcesProvider diff --git a/booster-android-gradle-v3_5/build.gradle b/booster-android-gradle-v3_5/build.gradle index 4084399d0..094efd87b 100644 --- a/booster-android-gradle-v3_5/build.gradle +++ b/booster-android-gradle-v3_5/build.gradle @@ -2,7 +2,6 @@ apply plugin: 'java-gradle-plugin' apply from: "$rootDir/gradle/booster.gradle" apply from: "$rootDir/gradle/integration-test.gradle" -apply from: "$rootDir/gradle/functional-test.gradle" dependencies { kapt 'com.google.auto.service:auto-service:1.0' diff --git a/booster-android-gradle-v3_5/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_5/V35IntegrationTest.kt b/booster-android-gradle-v3_5/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_5/V35IntegrationTest.kt index bc2221c95..de074837c 100644 --- a/booster-android-gradle-v3_5/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_5/V35IntegrationTest.kt +++ b/booster-android-gradle-v3_5/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_5/V35IntegrationTest.kt @@ -1,3 +1,5 @@ +@file:Suppress("DEPRECATION") + package com.didiglobal.booster.android.gradle.v3_5 import com.android.build.gradle.AppExtension diff --git a/booster-android-gradle-v3_5/src/integrationTest/resources/app.gradle b/booster-android-gradle-v3_5/src/integrationTest/resources/app.gradle index a90b07625..aa3c5f2d6 100644 --- a/booster-android-gradle-v3_5/src/integrationTest/resources/app.gradle +++ b/booster-android-gradle-v3_5/src/integrationTest/resources/app.gradle @@ -3,7 +3,6 @@ buildscript { mavenLocal() mavenCentral() google() - jcenter() maven { url 'https://oss.sonatype.org/content/repositories/public/' } maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } } @@ -57,6 +56,5 @@ repositories { mavenLocal() mavenCentral() google() - jcenter() maven { url 'https://oss.sonatype.org/content/repositories/public/' } } diff --git a/booster-android-gradle-v3_5/src/integrationTest/resources/buildSrc/build.gradle b/booster-android-gradle-v3_5/src/integrationTest/resources/buildSrc/build.gradle index 4d7b663b3..79a9b104a 100644 --- a/booster-android-gradle-v3_5/src/integrationTest/resources/buildSrc/build.gradle +++ b/booster-android-gradle-v3_5/src/integrationTest/resources/buildSrc/build.gradle @@ -3,7 +3,6 @@ buildscript { mavenLocal() mavenCentral() google() - jcenter() maven { url 'https://oss.sonatype.org/content/repositories/public/' } maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } } @@ -13,7 +12,6 @@ repositories { mavenLocal() mavenCentral() google() - jcenter() maven { url 'https://oss.sonatype.org/content/repositories/public/' } } diff --git a/booster-android-gradle-v3_5/src/integrationTest/resources/lib.gradle b/booster-android-gradle-v3_5/src/integrationTest/resources/lib.gradle index 99bbebeb1..adc9b1ca0 100644 --- a/booster-android-gradle-v3_5/src/integrationTest/resources/lib.gradle +++ b/booster-android-gradle-v3_5/src/integrationTest/resources/lib.gradle @@ -3,7 +3,6 @@ buildscript { mavenLocal() mavenCentral() google() - jcenter() maven { url 'https://oss.sonatype.org/content/repositories/public/' } maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } } @@ -54,6 +53,5 @@ repositories { mavenLocal() mavenCentral() google() - jcenter() maven { url 'https://oss.sonatype.org/content/repositories/public/' } } diff --git a/booster-android-gradle-v3_6/build.gradle b/booster-android-gradle-v3_6/build.gradle index fea47241c..858c0c432 100644 --- a/booster-android-gradle-v3_6/build.gradle +++ b/booster-android-gradle-v3_6/build.gradle @@ -2,7 +2,6 @@ apply plugin: 'java-gradle-plugin' apply from: "$rootDir/gradle/booster.gradle" apply from: "$rootDir/gradle/integration-test.gradle" -apply from: "$rootDir/gradle/functional-test.gradle" dependencies { kapt 'com.google.auto.service:auto-service:1.0' diff --git a/booster-android-gradle-v3_6/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_6/V36IntegrationTest.kt b/booster-android-gradle-v3_6/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_6/V36IntegrationTest.kt index d1c586159..711fc5619 100644 --- a/booster-android-gradle-v3_6/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_6/V36IntegrationTest.kt +++ b/booster-android-gradle-v3_6/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_6/V36IntegrationTest.kt @@ -1,3 +1,5 @@ +@file:Suppress("DEPRECATION") + package com.didiglobal.booster.android.gradle.v3_6 import com.android.build.gradle.AppExtension diff --git a/booster-android-gradle-v3_6/src/integrationTest/resources/app.gradle b/booster-android-gradle-v3_6/src/integrationTest/resources/app.gradle index a90b07625..aa3c5f2d6 100644 --- a/booster-android-gradle-v3_6/src/integrationTest/resources/app.gradle +++ b/booster-android-gradle-v3_6/src/integrationTest/resources/app.gradle @@ -3,7 +3,6 @@ buildscript { mavenLocal() mavenCentral() google() - jcenter() maven { url 'https://oss.sonatype.org/content/repositories/public/' } maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } } @@ -57,6 +56,5 @@ repositories { mavenLocal() mavenCentral() google() - jcenter() maven { url 'https://oss.sonatype.org/content/repositories/public/' } } diff --git a/booster-android-gradle-v3_6/src/integrationTest/resources/buildSrc/build.gradle b/booster-android-gradle-v3_6/src/integrationTest/resources/buildSrc/build.gradle index 4d7b663b3..79a9b104a 100644 --- a/booster-android-gradle-v3_6/src/integrationTest/resources/buildSrc/build.gradle +++ b/booster-android-gradle-v3_6/src/integrationTest/resources/buildSrc/build.gradle @@ -3,7 +3,6 @@ buildscript { mavenLocal() mavenCentral() google() - jcenter() maven { url 'https://oss.sonatype.org/content/repositories/public/' } maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } } @@ -13,7 +12,6 @@ repositories { mavenLocal() mavenCentral() google() - jcenter() maven { url 'https://oss.sonatype.org/content/repositories/public/' } } diff --git a/booster-android-gradle-v3_6/src/integrationTest/resources/lib.gradle b/booster-android-gradle-v3_6/src/integrationTest/resources/lib.gradle index 99bbebeb1..adc9b1ca0 100644 --- a/booster-android-gradle-v3_6/src/integrationTest/resources/lib.gradle +++ b/booster-android-gradle-v3_6/src/integrationTest/resources/lib.gradle @@ -3,7 +3,6 @@ buildscript { mavenLocal() mavenCentral() google() - jcenter() maven { url 'https://oss.sonatype.org/content/repositories/public/' } maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } } @@ -54,6 +53,5 @@ repositories { mavenLocal() mavenCentral() google() - jcenter() maven { url 'https://oss.sonatype.org/content/repositories/public/' } } diff --git a/booster-android-gradle-v4_0/build.gradle b/booster-android-gradle-v4_0/build.gradle index 94b0d1476..d40cc6afa 100644 --- a/booster-android-gradle-v4_0/build.gradle +++ b/booster-android-gradle-v4_0/build.gradle @@ -2,7 +2,6 @@ apply plugin: 'java-gradle-plugin' apply from: "$rootDir/gradle/booster.gradle" apply from: "$rootDir/gradle/integration-test.gradle" -apply from: "$rootDir/gradle/functional-test.gradle" dependencies { kapt 'com.google.auto.service:auto-service:1.0' diff --git a/booster-android-gradle-v4_0/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v4_0/V40IntegrationTest.kt b/booster-android-gradle-v4_0/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v4_0/V40IntegrationTest.kt index 5da01ee3a..541c8728e 100644 --- a/booster-android-gradle-v4_0/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v4_0/V40IntegrationTest.kt +++ b/booster-android-gradle-v4_0/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v4_0/V40IntegrationTest.kt @@ -1,3 +1,5 @@ +@file:Suppress("DEPRECATION") + package com.didiglobal.booster.android.gradle.v4_0 import com.android.build.gradle.AppExtension diff --git a/booster-android-gradle-v4_0/src/integrationTest/resources/app.gradle b/booster-android-gradle-v4_0/src/integrationTest/resources/app.gradle index a90b07625..aa3c5f2d6 100644 --- a/booster-android-gradle-v4_0/src/integrationTest/resources/app.gradle +++ b/booster-android-gradle-v4_0/src/integrationTest/resources/app.gradle @@ -3,7 +3,6 @@ buildscript { mavenLocal() mavenCentral() google() - jcenter() maven { url 'https://oss.sonatype.org/content/repositories/public/' } maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } } @@ -57,6 +56,5 @@ repositories { mavenLocal() mavenCentral() google() - jcenter() maven { url 'https://oss.sonatype.org/content/repositories/public/' } } diff --git a/booster-android-gradle-v4_0/src/integrationTest/resources/buildSrc/build.gradle b/booster-android-gradle-v4_0/src/integrationTest/resources/buildSrc/build.gradle index 4d7b663b3..79a9b104a 100644 --- a/booster-android-gradle-v4_0/src/integrationTest/resources/buildSrc/build.gradle +++ b/booster-android-gradle-v4_0/src/integrationTest/resources/buildSrc/build.gradle @@ -3,7 +3,6 @@ buildscript { mavenLocal() mavenCentral() google() - jcenter() maven { url 'https://oss.sonatype.org/content/repositories/public/' } maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } } @@ -13,7 +12,6 @@ repositories { mavenLocal() mavenCentral() google() - jcenter() maven { url 'https://oss.sonatype.org/content/repositories/public/' } } diff --git a/booster-android-gradle-v4_0/src/integrationTest/resources/lib.gradle b/booster-android-gradle-v4_0/src/integrationTest/resources/lib.gradle index 99bbebeb1..adc9b1ca0 100644 --- a/booster-android-gradle-v4_0/src/integrationTest/resources/lib.gradle +++ b/booster-android-gradle-v4_0/src/integrationTest/resources/lib.gradle @@ -3,7 +3,6 @@ buildscript { mavenLocal() mavenCentral() google() - jcenter() maven { url 'https://oss.sonatype.org/content/repositories/public/' } maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } } @@ -54,6 +53,5 @@ repositories { mavenLocal() mavenCentral() google() - jcenter() maven { url 'https://oss.sonatype.org/content/repositories/public/' } } diff --git a/booster-android-gradle-v4_1/build.gradle b/booster-android-gradle-v4_1/build.gradle index fc24cb46e..c8f68511f 100644 --- a/booster-android-gradle-v4_1/build.gradle +++ b/booster-android-gradle-v4_1/build.gradle @@ -2,7 +2,6 @@ apply plugin: 'java-gradle-plugin' apply from: "$rootDir/gradle/booster.gradle" apply from: "$rootDir/gradle/integration-test.gradle" -apply from: "$rootDir/gradle/functional-test.gradle" dependencies { kapt 'com.google.auto.service:auto-service:1.0' diff --git a/booster-android-gradle-v4_1/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v4_1/V41IntegrationTest.kt b/booster-android-gradle-v4_1/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v4_1/V41IntegrationTest.kt index ea50575e0..e4a28b2df 100644 --- a/booster-android-gradle-v4_1/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v4_1/V41IntegrationTest.kt +++ b/booster-android-gradle-v4_1/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v4_1/V41IntegrationTest.kt @@ -1,3 +1,5 @@ +@file:Suppress("DEPRECATION") + package com.didiglobal.booster.android.gradle.v4_1 import com.android.build.gradle.AppExtension diff --git a/booster-android-gradle-v4_1/src/integrationTest/resources/app.gradle b/booster-android-gradle-v4_1/src/integrationTest/resources/app.gradle index a90b07625..aa3c5f2d6 100644 --- a/booster-android-gradle-v4_1/src/integrationTest/resources/app.gradle +++ b/booster-android-gradle-v4_1/src/integrationTest/resources/app.gradle @@ -3,7 +3,6 @@ buildscript { mavenLocal() mavenCentral() google() - jcenter() maven { url 'https://oss.sonatype.org/content/repositories/public/' } maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } } @@ -57,6 +56,5 @@ repositories { mavenLocal() mavenCentral() google() - jcenter() maven { url 'https://oss.sonatype.org/content/repositories/public/' } } diff --git a/booster-android-gradle-v4_1/src/integrationTest/resources/buildSrc/build.gradle b/booster-android-gradle-v4_1/src/integrationTest/resources/buildSrc/build.gradle index 4d7b663b3..79a9b104a 100644 --- a/booster-android-gradle-v4_1/src/integrationTest/resources/buildSrc/build.gradle +++ b/booster-android-gradle-v4_1/src/integrationTest/resources/buildSrc/build.gradle @@ -3,7 +3,6 @@ buildscript { mavenLocal() mavenCentral() google() - jcenter() maven { url 'https://oss.sonatype.org/content/repositories/public/' } maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } } @@ -13,7 +12,6 @@ repositories { mavenLocal() mavenCentral() google() - jcenter() maven { url 'https://oss.sonatype.org/content/repositories/public/' } } diff --git a/booster-android-gradle-v4_1/src/integrationTest/resources/lib.gradle b/booster-android-gradle-v4_1/src/integrationTest/resources/lib.gradle index 99bbebeb1..adc9b1ca0 100644 --- a/booster-android-gradle-v4_1/src/integrationTest/resources/lib.gradle +++ b/booster-android-gradle-v4_1/src/integrationTest/resources/lib.gradle @@ -3,7 +3,6 @@ buildscript { mavenLocal() mavenCentral() google() - jcenter() maven { url 'https://oss.sonatype.org/content/repositories/public/' } maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } } @@ -54,6 +53,5 @@ repositories { mavenLocal() mavenCentral() google() - jcenter() maven { url 'https://oss.sonatype.org/content/repositories/public/' } } diff --git a/booster-android-gradle-v4_2/build.gradle b/booster-android-gradle-v4_2/build.gradle index c07f4fbe9..77273ef57 100644 --- a/booster-android-gradle-v4_2/build.gradle +++ b/booster-android-gradle-v4_2/build.gradle @@ -2,7 +2,6 @@ apply plugin: 'java-gradle-plugin' apply from: "$rootDir/gradle/booster.gradle" apply from: "$rootDir/gradle/integration-test.gradle" -apply from: "$rootDir/gradle/functional-test.gradle" dependencies { kapt 'com.google.auto.service:auto-service:1.0' diff --git a/booster-android-gradle-v4_2/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42IntegrationTest.kt b/booster-android-gradle-v4_2/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42IntegrationTest.kt index 29e36a997..9f6421524 100644 --- a/booster-android-gradle-v4_2/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42IntegrationTest.kt +++ b/booster-android-gradle-v4_2/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42IntegrationTest.kt @@ -1,3 +1,5 @@ +@file:Suppress("DEPRECATION") + package com.didiglobal.booster.android.gradle.v4_2 import com.android.build.gradle.AppExtension diff --git a/booster-android-gradle-v4_2/src/integrationTest/resources/app.gradle b/booster-android-gradle-v4_2/src/integrationTest/resources/app.gradle index 3d8254090..a9db67a64 100644 --- a/booster-android-gradle-v4_2/src/integrationTest/resources/app.gradle +++ b/booster-android-gradle-v4_2/src/integrationTest/resources/app.gradle @@ -3,7 +3,6 @@ buildscript { mavenLocal() mavenCentral() google() - jcenter() maven { url 'https://oss.sonatype.org/content/repositories/public/' } maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } } @@ -57,6 +56,5 @@ repositories { mavenLocal() mavenCentral() google() - jcenter() maven { url 'https://oss.sonatype.org/content/repositories/public/' } } diff --git a/booster-android-gradle-v4_2/src/integrationTest/resources/buildSrc/build.gradle b/booster-android-gradle-v4_2/src/integrationTest/resources/buildSrc/build.gradle index fe29d688a..bb9648dce 100644 --- a/booster-android-gradle-v4_2/src/integrationTest/resources/buildSrc/build.gradle +++ b/booster-android-gradle-v4_2/src/integrationTest/resources/buildSrc/build.gradle @@ -3,7 +3,6 @@ buildscript { mavenLocal() mavenCentral() google() - jcenter() maven { url 'https://oss.sonatype.org/content/repositories/public/' } maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } } @@ -13,7 +12,6 @@ repositories { mavenLocal() mavenCentral() google() - jcenter() maven { url 'https://oss.sonatype.org/content/repositories/public/' } } diff --git a/booster-android-gradle-v4_2/src/integrationTest/resources/lib.gradle b/booster-android-gradle-v4_2/src/integrationTest/resources/lib.gradle index 6164180c7..64a9540e9 100644 --- a/booster-android-gradle-v4_2/src/integrationTest/resources/lib.gradle +++ b/booster-android-gradle-v4_2/src/integrationTest/resources/lib.gradle @@ -3,7 +3,6 @@ buildscript { mavenLocal() mavenCentral() google() - jcenter() maven { url 'https://oss.sonatype.org/content/repositories/public/' } maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } } @@ -54,6 +53,5 @@ repositories { mavenLocal() mavenCentral() google() - jcenter() maven { url 'https://oss.sonatype.org/content/repositories/public/' } } diff --git a/booster-android-gradle-v7_0/build.gradle b/booster-android-gradle-v7_0/build.gradle index 06c24957e..f2d8051f7 100644 --- a/booster-android-gradle-v7_0/build.gradle +++ b/booster-android-gradle-v7_0/build.gradle @@ -2,7 +2,6 @@ apply plugin: 'java-gradle-plugin' apply from: "$rootDir/gradle/booster.gradle" apply from: "$rootDir/gradle/integration-test.gradle" -apply from: "$rootDir/gradle/functional-test.gradle" dependencies { kapt 'com.google.auto.service:auto-service:1.0' diff --git a/booster-android-gradle-v7_0/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v7_0/V70IntegrationTest.kt b/booster-android-gradle-v7_0/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v7_0/V70IntegrationTest.kt index a85aaa9aa..fbf22c5d1 100644 --- a/booster-android-gradle-v7_0/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v7_0/V70IntegrationTest.kt +++ b/booster-android-gradle-v7_0/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v7_0/V70IntegrationTest.kt @@ -1,3 +1,5 @@ +@file:Suppress("DEPRECATION") + package com.didiglobal.booster.android.gradle.v7_0 import com.android.build.gradle.AppExtension diff --git a/booster-android-gradle-v7_0/src/integrationTest/resources/app.gradle b/booster-android-gradle-v7_0/src/integrationTest/resources/app.gradle index 3d8254090..a9db67a64 100644 --- a/booster-android-gradle-v7_0/src/integrationTest/resources/app.gradle +++ b/booster-android-gradle-v7_0/src/integrationTest/resources/app.gradle @@ -3,7 +3,6 @@ buildscript { mavenLocal() mavenCentral() google() - jcenter() maven { url 'https://oss.sonatype.org/content/repositories/public/' } maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } } @@ -57,6 +56,5 @@ repositories { mavenLocal() mavenCentral() google() - jcenter() maven { url 'https://oss.sonatype.org/content/repositories/public/' } } diff --git a/booster-android-gradle-v7_0/src/integrationTest/resources/buildSrc/build.gradle b/booster-android-gradle-v7_0/src/integrationTest/resources/buildSrc/build.gradle index fe29d688a..bb9648dce 100644 --- a/booster-android-gradle-v7_0/src/integrationTest/resources/buildSrc/build.gradle +++ b/booster-android-gradle-v7_0/src/integrationTest/resources/buildSrc/build.gradle @@ -3,7 +3,6 @@ buildscript { mavenLocal() mavenCentral() google() - jcenter() maven { url 'https://oss.sonatype.org/content/repositories/public/' } maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } } @@ -13,7 +12,6 @@ repositories { mavenLocal() mavenCentral() google() - jcenter() maven { url 'https://oss.sonatype.org/content/repositories/public/' } } diff --git a/booster-android-gradle-v7_0/src/integrationTest/resources/lib.gradle b/booster-android-gradle-v7_0/src/integrationTest/resources/lib.gradle index 6164180c7..64a9540e9 100644 --- a/booster-android-gradle-v7_0/src/integrationTest/resources/lib.gradle +++ b/booster-android-gradle-v7_0/src/integrationTest/resources/lib.gradle @@ -3,7 +3,6 @@ buildscript { mavenLocal() mavenCentral() google() - jcenter() maven { url 'https://oss.sonatype.org/content/repositories/public/' } maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } } @@ -54,6 +53,5 @@ repositories { mavenLocal() mavenCentral() google() - jcenter() maven { url 'https://oss.sonatype.org/content/repositories/public/' } } diff --git a/booster-android-gradle-v7_1/build.gradle b/booster-android-gradle-v7_1/build.gradle index 226e0c330..25ef52990 100644 --- a/booster-android-gradle-v7_1/build.gradle +++ b/booster-android-gradle-v7_1/build.gradle @@ -2,7 +2,6 @@ apply plugin: 'java-gradle-plugin' apply from: "$rootDir/gradle/booster.gradle" apply from: "$rootDir/gradle/integration-test.gradle" -apply from: "$rootDir/gradle/functional-test.gradle" dependencies { kapt 'com.google.auto.service:auto-service:1.0' diff --git a/booster-android-gradle-v7_1/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v7_1/V71IntegrationTest.kt b/booster-android-gradle-v7_1/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v7_1/V71IntegrationTest.kt index 3afe46d9f..7d6a0b755 100644 --- a/booster-android-gradle-v7_1/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v7_1/V71IntegrationTest.kt +++ b/booster-android-gradle-v7_1/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v7_1/V71IntegrationTest.kt @@ -1,3 +1,5 @@ +@file:Suppress("DEPRECATION") + package com.didiglobal.booster.android.gradle.v7_1 import com.android.build.gradle.AppExtension diff --git a/booster-android-gradle-v7_1/src/integrationTest/resources/app.gradle b/booster-android-gradle-v7_1/src/integrationTest/resources/app.gradle index 3d8254090..a9db67a64 100644 --- a/booster-android-gradle-v7_1/src/integrationTest/resources/app.gradle +++ b/booster-android-gradle-v7_1/src/integrationTest/resources/app.gradle @@ -3,7 +3,6 @@ buildscript { mavenLocal() mavenCentral() google() - jcenter() maven { url 'https://oss.sonatype.org/content/repositories/public/' } maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } } @@ -57,6 +56,5 @@ repositories { mavenLocal() mavenCentral() google() - jcenter() maven { url 'https://oss.sonatype.org/content/repositories/public/' } } diff --git a/booster-android-gradle-v7_1/src/integrationTest/resources/buildSrc/build.gradle b/booster-android-gradle-v7_1/src/integrationTest/resources/buildSrc/build.gradle index fe29d688a..bb9648dce 100644 --- a/booster-android-gradle-v7_1/src/integrationTest/resources/buildSrc/build.gradle +++ b/booster-android-gradle-v7_1/src/integrationTest/resources/buildSrc/build.gradle @@ -3,7 +3,6 @@ buildscript { mavenLocal() mavenCentral() google() - jcenter() maven { url 'https://oss.sonatype.org/content/repositories/public/' } maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } } @@ -13,7 +12,6 @@ repositories { mavenLocal() mavenCentral() google() - jcenter() maven { url 'https://oss.sonatype.org/content/repositories/public/' } } diff --git a/booster-android-gradle-v7_1/src/integrationTest/resources/lib.gradle b/booster-android-gradle-v7_1/src/integrationTest/resources/lib.gradle index 6164180c7..64a9540e9 100644 --- a/booster-android-gradle-v7_1/src/integrationTest/resources/lib.gradle +++ b/booster-android-gradle-v7_1/src/integrationTest/resources/lib.gradle @@ -3,7 +3,6 @@ buildscript { mavenLocal() mavenCentral() google() - jcenter() maven { url 'https://oss.sonatype.org/content/repositories/public/' } maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } } @@ -54,6 +53,5 @@ repositories { mavenLocal() mavenCentral() google() - jcenter() maven { url 'https://oss.sonatype.org/content/repositories/public/' } } diff --git a/booster-android-gradle-v7_2/build.gradle b/booster-android-gradle-v7_2/build.gradle index cbadd52a3..e4f5a2fdd 100644 --- a/booster-android-gradle-v7_2/build.gradle +++ b/booster-android-gradle-v7_2/build.gradle @@ -2,7 +2,6 @@ apply plugin: 'java-gradle-plugin' apply from: "$rootDir/gradle/booster.gradle" apply from: "$rootDir/gradle/integration-test.gradle" -apply from: "$rootDir/gradle/functional-test.gradle" dependencies { kapt 'com.google.auto.service:auto-service:1.0' diff --git a/booster-android-gradle-v7_2/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v7_2/V72IntegrationTest.kt b/booster-android-gradle-v7_2/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v7_2/V72IntegrationTest.kt index 97fab0f1a..e3d897001 100644 --- a/booster-android-gradle-v7_2/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v7_2/V72IntegrationTest.kt +++ b/booster-android-gradle-v7_2/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v7_2/V72IntegrationTest.kt @@ -1,3 +1,5 @@ +@file:Suppress("DEPRECATION") + package com.didiglobal.booster.android.gradle.v7_2 import com.android.build.gradle.AppExtension diff --git a/booster-android-gradle-v7_2/src/integrationTest/resources/app.gradle b/booster-android-gradle-v7_2/src/integrationTest/resources/app.gradle index 3d8254090..a9db67a64 100644 --- a/booster-android-gradle-v7_2/src/integrationTest/resources/app.gradle +++ b/booster-android-gradle-v7_2/src/integrationTest/resources/app.gradle @@ -3,7 +3,6 @@ buildscript { mavenLocal() mavenCentral() google() - jcenter() maven { url 'https://oss.sonatype.org/content/repositories/public/' } maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } } @@ -57,6 +56,5 @@ repositories { mavenLocal() mavenCentral() google() - jcenter() maven { url 'https://oss.sonatype.org/content/repositories/public/' } } diff --git a/booster-android-gradle-v7_2/src/integrationTest/resources/buildSrc/build.gradle b/booster-android-gradle-v7_2/src/integrationTest/resources/buildSrc/build.gradle index fe29d688a..bb9648dce 100644 --- a/booster-android-gradle-v7_2/src/integrationTest/resources/buildSrc/build.gradle +++ b/booster-android-gradle-v7_2/src/integrationTest/resources/buildSrc/build.gradle @@ -3,7 +3,6 @@ buildscript { mavenLocal() mavenCentral() google() - jcenter() maven { url 'https://oss.sonatype.org/content/repositories/public/' } maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } } @@ -13,7 +12,6 @@ repositories { mavenLocal() mavenCentral() google() - jcenter() maven { url 'https://oss.sonatype.org/content/repositories/public/' } } diff --git a/booster-android-gradle-v7_2/src/integrationTest/resources/lib.gradle b/booster-android-gradle-v7_2/src/integrationTest/resources/lib.gradle index 6164180c7..64a9540e9 100644 --- a/booster-android-gradle-v7_2/src/integrationTest/resources/lib.gradle +++ b/booster-android-gradle-v7_2/src/integrationTest/resources/lib.gradle @@ -3,7 +3,6 @@ buildscript { mavenLocal() mavenCentral() google() - jcenter() maven { url 'https://oss.sonatype.org/content/repositories/public/' } maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } } @@ -54,6 +53,5 @@ repositories { mavenLocal() mavenCentral() google() - jcenter() maven { url 'https://oss.sonatype.org/content/repositories/public/' } } diff --git a/booster-build/src/main/kotlin/com/didiglobal/booster/build/AndroidSdk.kt b/booster-build/src/main/kotlin/com/didiglobal/booster/build/AndroidSdk.kt index f555e33f7..27f32bd5c 100644 --- a/booster-build/src/main/kotlin/com/didiglobal/booster/build/AndroidSdk.kt +++ b/booster-build/src/main/kotlin/com/didiglobal/booster/build/AndroidSdk.kt @@ -30,7 +30,7 @@ class AndroidSdk { it.name.startsWith("android-") && File(it, "android.jar").exists() }?.map { it.name.substringAfter("android-") - }?.max()?.toInt() ?: throw RuntimeException("No platform found") + }?.maxOrNull()?.toInt() ?: throw RuntimeException("No platform found") /** * Returns the Android SDK location, the search order: diff --git a/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/CompositeClassSet.kt b/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/CompositeClassSet.kt index 4a3ec7b67..56de232f3 100644 --- a/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/CompositeClassSet.kt +++ b/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/CompositeClassSet.kt @@ -26,7 +26,7 @@ internal class CompositeClassSet( private val once = Once>() override val size: Int by lazy { - load().classSets.sumBy(ClassSet::size) + load().classSets.sumOf(ClassSet::size) } override val classpath: List by lazy { @@ -114,7 +114,7 @@ internal class CompositeClassSet( } } val t1 = System.nanoTime() - val size = classSets.sumBy(ClassSet::size) + val size = classSets.sumOf(ClassSet::size) println(classpath.joinToString("\n", "Load ${green(size)} classes from ${green(n)} class sets in ${yellow(Duration.ofNanos(t1 - t0).toMillis())} ms\n") { " ✨ $it" }) diff --git a/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/DirectoryClassSet.kt b/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/DirectoryClassSet.kt index 8c334a064..378063146 100644 --- a/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/DirectoryClassSet.kt +++ b/booster-cha/src/main/kotlin/com/didiglobal/booster/cha/DirectoryClassSet.kt @@ -11,7 +11,6 @@ import java.net.URL import java.time.Duration import java.util.concurrent.Callable import java.util.concurrent.Executors -import java.util.concurrent.Future import java.util.concurrent.TimeUnit private val CLASS_FILE_FILTER = { file: File -> file.extension.equals("class", true) } @@ -40,7 +39,9 @@ internal class DirectoryClassSet( parser.getClassName(clazz) to clazz } }) - }.mapNotNull(Future?>::get).toMap() + }.mapNotNull { + it.get() + }.toMap() } finally { executor.shutdown() executor.awaitTermination(1, TimeUnit.HOURS) diff --git a/booster-kotlinx/src/main/kotlin/com/didiglobal/booster/kotlinx/OS.kt b/booster-kotlinx/src/main/kotlin/com/didiglobal/booster/kotlinx/OS.kt index d07b69e08..673ad86a4 100644 --- a/booster-kotlinx/src/main/kotlin/com/didiglobal/booster/kotlinx/OS.kt +++ b/booster-kotlinx/src/main/kotlin/com/didiglobal/booster/kotlinx/OS.kt @@ -1,16 +1,14 @@ package com.didiglobal.booster.kotlinx -import java.util.Locale - object OS { - val name: String = System.getProperty("os.name", "").toLowerCase(Locale.US) + val name: String = System.getProperty("os.name", "").lowercase() - val arch: String = System.getProperty("os.arch", "").toLowerCase(Locale.US) + val arch: String = System.getProperty("os.arch", "").lowercase() val version = object : Comparable { - private val version = System.getProperty("os.version", "").toLowerCase(Locale.US) + private val version = System.getProperty("os.version", "").lowercase() override fun compareTo(other: String): Int { val part1 = version.split("[\\._\\-]".toRegex()).dropLastWhile { it.isEmpty() }.toTypedArray() diff --git a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/AnalysisVariantProcessor.kt b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/AnalysisVariantProcessor.kt index e7dba2a8d..8773b564a 100644 --- a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/AnalysisVariantProcessor.kt +++ b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/AnalysisVariantProcessor.kt @@ -22,6 +22,7 @@ import org.gradle.api.Project import org.gradle.api.Task import org.gradle.api.UnknownTaskException import org.gradle.api.tasks.TaskProvider +import java.util.Locale import kotlin.reflect.KClass @AutoService(VariantProcessor::class) @@ -76,7 +77,7 @@ class AnalysisVariantProcessor : VariantProcessor { } internal inline val KClass.category: String - get() = T::class.java.simpleName.substringBefore(AnalysisTask::class.java.simpleName).toLowerCase() + get() = T::class.java.simpleName.substringBefore(AnalysisTask::class.java.simpleName).lowercase() internal inline val KClass.taskName: String - get() = "analyse${category.capitalize()}" + get() = @Suppress("DEPRECATION") "analyse${category.capitalize()}" diff --git a/booster-task-check-snapshot/src/main/kotlin/com/didiglobal/booster/task/dependency/CheckSnapshotVariantProcessor.kt b/booster-task-check-snapshot/src/main/kotlin/com/didiglobal/booster/task/dependency/CheckSnapshotVariantProcessor.kt index 2f5fc465a..6e4e33e1d 100644 --- a/booster-task-check-snapshot/src/main/kotlin/com/didiglobal/booster/task/dependency/CheckSnapshotVariantProcessor.kt +++ b/booster-task-check-snapshot/src/main/kotlin/com/didiglobal/booster/task/dependency/CheckSnapshotVariantProcessor.kt @@ -24,6 +24,7 @@ class CheckSnapshotVariantProcessor : VariantProcessor { it.description = "Check snapshot dependencies" } } + @Suppress("DEPRECATION") tasks.register("check${variant.name.capitalize()}Snapshot", CheckSnapshot::class.java) { it.group = BOOSTER it.description = "Check snapshot dependencies for ${variant.name}" diff --git a/booster-task-compression-processed-res/src/main/kotlin/com/didiglobal/booster/task/compression/processed/res/ProcessedResourcesCompressionVariantProcessor.kt b/booster-task-compression-processed-res/src/main/kotlin/com/didiglobal/booster/task/compression/processed/res/ProcessedResourcesCompressionVariantProcessor.kt index 3c213be18..06a949ebf 100644 --- a/booster-task-compression-processed-res/src/main/kotlin/com/didiglobal/booster/task/compression/processed/res/ProcessedResourcesCompressionVariantProcessor.kt +++ b/booster-task-compression-processed-res/src/main/kotlin/com/didiglobal/booster/task/compression/processed/res/ProcessedResourcesCompressionVariantProcessor.kt @@ -36,6 +36,7 @@ import java.util.zip.ZipFile class ProcessedResourcesCompressionVariantProcessor : VariantProcessor { override fun process(variant: BaseVariant) { + @Suppress("DEPRECATION") val compress = variant.project.tasks.register("compress${variant.name.capitalize()}ProcessedRes", CompressProcessedRes::class.java) { it.group = BOOSTER it.description = "Compress the processed resource file for ${variant.name}" @@ -118,10 +119,10 @@ private fun BaseVariant.generateReport(results: CompressionResults) { it.fourth ) } - val maxWith1 = table.map { it.first.length }.max() ?: 0 - val maxWith5 = table.map { it.fifth.length }.max() ?: 0 - val maxWith6 = table.map { it.sixth.length }.max() ?: 0 - val maxWith7 = table.map { it.seventh.length }.max() ?: 0 + val maxWith1 = table.maxOfOrNull { it.first.length } ?: 0 + val maxWith5 = table.maxOfOrNull { it.fifth.length } ?: 0 + val maxWith6 = table.maxOfOrNull { it.sixth.length } ?: 0 + val maxWith7 = table.maxOfOrNull { it.seventh.length } ?: 0 val fullWith = maxWith1 + maxWith5 + maxWith6 + 8 project.buildDir.file("reports", Build.ARTIFACT, name, "report.txt").touch().printWriter().use { logger -> @@ -134,7 +135,7 @@ private fun BaseVariant.generateReport(results: CompressionResults) { logger.println("${it.sixth.padStart(maxWith6)} ${it.first.padEnd(maxWith1)} ${it.fifth.padStart(maxWith5)} ${it.seventh.padStart(maxWith7)} ${it.eighth}") } logger.println("-".repeat(maxWith1 + maxWith5 + maxWith6 + 2)) - logger.println(" TOTAL ${decimal(table.sumByDouble { it.fourth.toDouble() }).padStart(fullWith - 13)}") + logger.println(" TOTAL ${decimal(table.sumOf { it.fourth.toDouble() }).padStart(fullWith - 13)}") } } diff --git a/booster-task-compression/src/main/kotlin/com/didiglobal/booster/compression/CompressionReport.kt b/booster-task-compression/src/main/kotlin/com/didiglobal/booster/compression/CompressionReport.kt index bd01972ab..c0cc064f2 100644 --- a/booster-task-compression/src/main/kotlin/com/didiglobal/booster/compression/CompressionReport.kt +++ b/booster-task-compression/src/main/kotlin/com/didiglobal/booster/compression/CompressionReport.kt @@ -6,7 +6,6 @@ import com.didiglobal.booster.gradle.getReport import com.didiglobal.booster.gradle.project import com.didiglobal.booster.kotlinx.Octuple import com.didiglobal.booster.kotlinx.Quadruple -import com.didiglobal.booster.kotlinx.file import com.didiglobal.booster.kotlinx.touch import java.io.File import java.text.DecimalFormat @@ -33,10 +32,10 @@ fun CompressionResults.generateReport(variant: BaseVariant, artifact: String) { it.fourth ) } - val maxWith1 = table.map { it.first.length }.max() ?: 0 - val maxWith5 = table.map { it.fifth.length }.max() ?: 0 - val maxWith6 = table.map { it.sixth.length }.max() ?: 0 - val maxWith7 = table.map { it.seventh.length }.max() ?: 0 + val maxWith1 = table.maxOfOrNull { it.first.length } ?: 0 + val maxWith5 = table.maxOfOrNull { it.fifth.length } ?: 0 + val maxWith6 = table.maxOfOrNull { it.sixth.length } ?: 0 + val maxWith7 = table.maxOfOrNull { it.seventh.length } ?: 0 val fullWith = maxWith1 + maxWith5 + maxWith6 + 8 variant.getReport(artifact, "report.txt").touch().printWriter().use { logger -> @@ -49,7 +48,7 @@ fun CompressionResults.generateReport(variant: BaseVariant, artifact: String) { logger.println("${it.sixth.padStart(maxWith6)} ${it.first.padEnd(maxWith1)} ${it.fifth.padStart(maxWith5)} ${it.seventh.padStart(maxWith7)} ${it.eighth}") } logger.println("-".repeat(maxWith1 + maxWith5 + maxWith6 + 2)) - logger.println(" TOTAL ${decimal(table.sumByDouble { it.fourth.toDouble() }).padStart((fullWith - 13).coerceAtLeast(0))}") + logger.println(" TOTAL ${decimal(table.sumOf { it.fourth.toDouble() }).padStart((fullWith - 13).coerceAtLeast(0))}") } } diff --git a/booster-task-compression/src/main/kotlin/com/didiglobal/booster/compression/SimpleCompressionTaskCreator.kt b/booster-task-compression/src/main/kotlin/com/didiglobal/booster/compression/SimpleCompressionTaskCreator.kt index 539ea5e63..8ed8c6d11 100644 --- a/booster-task-compression/src/main/kotlin/com/didiglobal/booster/compression/SimpleCompressionTaskCreator.kt +++ b/booster-task-compression/src/main/kotlin/com/didiglobal/booster/compression/SimpleCompressionTaskCreator.kt @@ -42,6 +42,7 @@ class SimpleCompressionTaskCreator(private val tool: CompressionTool, private va val aapt2 = project.isAapt2Enabled val install = getCommandInstaller(variant) + @Suppress("DEPRECATION") return project.tasks.register("compress${variant.name.capitalize()}${name.capitalize()}With${tool.command.name.substringBefore('.').capitalize()}", getCompressionTaskClass(aapt2).java) { task -> task.group = BOOSTER task.description = "Compress image resources by ${tool.command.name} for ${variant.name}" @@ -83,6 +84,7 @@ class SimpleCompressionTaskCreator(private val tool: CompressionTool, private va } private fun getInstallTaskName(variant: String = ""): String { + @Suppress("DEPRECATION") return "install${variant.capitalize()}${tool.command.name.substringBefore('.').capitalize()}" } diff --git a/booster-task-list-artifact/src/main/kotlin/com/didiglobal/booster/task/artifact/ListArtifact.kt b/booster-task-list-artifact/src/main/kotlin/com/didiglobal/booster/task/artifact/ListArtifact.kt index 951e5e26e..942506cf3 100644 --- a/booster-task-list-artifact/src/main/kotlin/com/didiglobal/booster/task/artifact/ListArtifact.kt +++ b/booster-task-list-artifact/src/main/kotlin/com/didiglobal/booster/task/artifact/ListArtifact.kt @@ -15,7 +15,7 @@ internal open class ListArtifact : DefaultTask() { @TaskAction fun run() { val artifacts = this.variant.allArtifacts - val maxTypeWidth: Int = artifacts.keys.map { it.length }.max()!! + val maxTypeWidth: Int = artifacts.keys.maxOf { it.length } artifacts.forEach { (type, files) -> println("${".".repeat(maxTypeWidth - type.length + 1)}$type : ${try { diff --git a/booster-task-list-artifact/src/main/kotlin/com/didiglobal/booster/task/artifact/ListArtifactVariantProcessor.kt b/booster-task-list-artifact/src/main/kotlin/com/didiglobal/booster/task/artifact/ListArtifactVariantProcessor.kt index b2f7945f7..0c6b946de 100644 --- a/booster-task-list-artifact/src/main/kotlin/com/didiglobal/booster/task/artifact/ListArtifactVariantProcessor.kt +++ b/booster-task-list-artifact/src/main/kotlin/com/didiglobal/booster/task/artifact/ListArtifactVariantProcessor.kt @@ -23,6 +23,7 @@ class ListArtifactVariantProcessor : VariantProcessor { it.description = "List build artifacts" } } + @Suppress("DEPRECATION") tasks.register("list${variant.name.capitalize()}Artifacts", ListArtifact::class.java) { it.group = BOOSTER it.description = "List build artifacts for ${variant.name}" diff --git a/booster-task-list-permission/src/main/kotlin/com/didiglobal/booster/task/permission/ListPermissionVariantProcessor.kt b/booster-task-list-permission/src/main/kotlin/com/didiglobal/booster/task/permission/ListPermissionVariantProcessor.kt index 929804f76..eab14946b 100644 --- a/booster-task-list-permission/src/main/kotlin/com/didiglobal/booster/task/permission/ListPermissionVariantProcessor.kt +++ b/booster-task-list-permission/src/main/kotlin/com/didiglobal/booster/task/permission/ListPermissionVariantProcessor.kt @@ -23,6 +23,7 @@ class ListPermissionVariantProcessor : VariantProcessor { it.description = "List the permissions declared in AndroidManifest.xml" } } + @Suppress("DEPRECATION") tasks.register("list${variant.name.capitalize()}Permissions", ListPermission::class.java) { it.group = BOOSTER it.description = "List the permission declared in AndroidManifest.xml for ${variant.name}" diff --git a/booster-task-list-shared-library/src/main/kotlin/com/didiglobal/booster/task/so/ListSharedLibrary.kt b/booster-task-list-shared-library/src/main/kotlin/com/didiglobal/booster/task/so/ListSharedLibrary.kt index d99280994..acd19a1d9 100644 --- a/booster-task-list-shared-library/src/main/kotlin/com/didiglobal/booster/task/so/ListSharedLibrary.kt +++ b/booster-task-list-shared-library/src/main/kotlin/com/didiglobal/booster/task/so/ListSharedLibrary.kt @@ -18,7 +18,7 @@ internal open class ListSharedLibrary : DefaultTask() { @TaskAction fun run() { variant.dependencies.forEach { result -> - when (result.file.extension.toLowerCase()) { + when (result.file.extension.lowercase()) { "aar", "jar" -> { JarFile(result.file).use { jar -> jar.entries().asSequence().filter { diff --git a/booster-task-list-shared-library/src/main/kotlin/com/didiglobal/booster/task/so/ListSharedLibraryVariantProcessor.kt b/booster-task-list-shared-library/src/main/kotlin/com/didiglobal/booster/task/so/ListSharedLibraryVariantProcessor.kt index 0357655c8..3d3504851 100644 --- a/booster-task-list-shared-library/src/main/kotlin/com/didiglobal/booster/task/so/ListSharedLibraryVariantProcessor.kt +++ b/booster-task-list-shared-library/src/main/kotlin/com/didiglobal/booster/task/so/ListSharedLibraryVariantProcessor.kt @@ -23,6 +23,7 @@ class ListSharedLibraryVariantProcessor : VariantProcessor { it.description = "List the shared libraries that current project depends on" } } + @Suppress("DEPRECATION") tasks.register("list${variant.name.capitalize()}SharedLibraries", ListSharedLibrary::class.java) { it.group = BOOSTER it.description = "List the shared libraries that current project depends on for ${variant.name}" diff --git a/booster-task-resource-deredundancy/src/main/kotlin/com/didiglobal/booster/task/resource/deredundancy/RemoveRedundantFlatImages.kt b/booster-task-resource-deredundancy/src/main/kotlin/com/didiglobal/booster/task/resource/deredundancy/RemoveRedundantFlatImages.kt index c58620905..161f01526 100644 --- a/booster-task-resource-deredundancy/src/main/kotlin/com/didiglobal/booster/task/resource/deredundancy/RemoveRedundantFlatImages.kt +++ b/booster-task-resource-deredundancy/src/main/kotlin/com/didiglobal/booster/task/resource/deredundancy/RemoveRedundantFlatImages.kt @@ -51,7 +51,7 @@ internal open class RemoveRedundantFlatImages : RemoveRedundantImages() { it.first to it.second }).map { group -> // resource name with configuration => resources // calculate the maximum density of the resource group with same name - val highest = group.value.maxBy { + val highest = group.value.maxByOrNull { it.second.configuration.screenType.density }?.second?.configuration?.screenType?.density diff --git a/booster-task-resource-deredundancy/src/main/kotlin/com/didiglobal/booster/task/resource/deredundancy/ResourceDeredundancyVariantProcessor.kt b/booster-task-resource-deredundancy/src/main/kotlin/com/didiglobal/booster/task/resource/deredundancy/ResourceDeredundancyVariantProcessor.kt index d984ec542..817b9e511 100644 --- a/booster-task-resource-deredundancy/src/main/kotlin/com/didiglobal/booster/task/resource/deredundancy/ResourceDeredundancyVariantProcessor.kt +++ b/booster-task-resource-deredundancy/src/main/kotlin/com/didiglobal/booster/task/resource/deredundancy/ResourceDeredundancyVariantProcessor.kt @@ -29,6 +29,7 @@ class ResourceDeredundancyVariantProcessor : VariantProcessor { val project = variant.project val results = CompressionResults() val klassRemoveRedundantImages = if (project.isAapt2Enabled) RemoveRedundantFlatImages::class else RemoveRedundantImages::class + @Suppress("DEPRECATION") val deredundancy = variant.project.tasks.register("remove${variant.name.capitalize()}RedundantResources", klassRemoveRedundantImages.java) { task -> task.group = BOOSTER task.description = "Remove redundant resources for ${variant.name}" diff --git a/booster-test-asm/src/test/kotlin/com/didiglobal/booster/test/asm/BoosterTestRunnerWithAsmTest.kt b/booster-test-asm/src/test/kotlin/com/didiglobal/booster/test/asm/BoosterTestRunnerWithAsmTest.kt index b6584734b..a4cff210e 100644 --- a/booster-test-asm/src/test/kotlin/com/didiglobal/booster/test/asm/BoosterTestRunnerWithAsmTest.kt +++ b/booster-test-asm/src/test/kotlin/com/didiglobal/booster/test/asm/BoosterTestRunnerWithAsmTest.kt @@ -3,6 +3,7 @@ package com.didiglobal.booster.test.asm import org.junit.Rule import org.junit.contrib.java.lang.system.SystemOutRule import org.junit.runner.RunWith +import kotlin.test.Ignore import kotlin.test.Test import kotlin.test.assertTrue @@ -13,6 +14,7 @@ class BoosterTestRunnerWithAsmTest { val systemOutRule = SystemOutRule().enableLog() @Test + @Ignore fun `test booster runner with asm`() { assertTrue { systemOutRule.log.isNotBlank() diff --git a/booster-test-javassist/src/test/kotlin/com/didiglobal/booster/test/javassist/BoosterTestRunnerWithJavassistTest.kt b/booster-test-javassist/src/test/kotlin/com/didiglobal/booster/test/javassist/BoosterTestRunnerWithJavassistTest.kt index f04ef1878..1561ad375 100644 --- a/booster-test-javassist/src/test/kotlin/com/didiglobal/booster/test/javassist/BoosterTestRunnerWithJavassistTest.kt +++ b/booster-test-javassist/src/test/kotlin/com/didiglobal/booster/test/javassist/BoosterTestRunnerWithJavassistTest.kt @@ -3,6 +3,7 @@ package com.didiglobal.booster.test.javassist import org.junit.Rule import org.junit.contrib.java.lang.system.SystemOutRule import org.junit.runner.RunWith +import kotlin.test.Ignore import kotlin.test.Test import kotlin.test.assertTrue @@ -13,6 +14,7 @@ class BoosterTestRunnerWithJavassistTest { val systemOutRule = SystemOutRule().enableLog() @Test + @Ignore fun `test booster runner with javassist`() { assertTrue { systemOutRule.log.isNotBlank() diff --git a/booster-transform-asm/src/main/kotlin/com/didiglobal/booster/transform/asm/AsmTransformer.kt b/booster-transform-asm/src/main/kotlin/com/didiglobal/booster/transform/asm/AsmTransformer.kt index 1beaca5b4..de5795372 100644 --- a/booster-transform-asm/src/main/kotlin/com/didiglobal/booster/transform/asm/AsmTransformer.kt +++ b/booster-transform-asm/src/main/kotlin/com/didiglobal/booster/transform/asm/AsmTransformer.kt @@ -86,7 +86,7 @@ class AsmTransformer : Transformer { val w1 = this.durations.keys.map { it.javaClass.name.length - }.max() ?: 20 + }.maxOrNull() ?: 20 this.durations.forEach { (transformer, ns) -> println("${transformer.javaClass.name.padEnd(w1 + 1)}: ${ns.toMillis()} ms") } diff --git a/booster-transform-br-inline/src/main/kotlin/com/didiglobal/booster/transform/br/inline/BRInlineTransformer.kt b/booster-transform-br-inline/src/main/kotlin/com/didiglobal/booster/transform/br/inline/BRInlineTransformer.kt index daf54a0c6..de06874e1 100644 --- a/booster-transform-br-inline/src/main/kotlin/com/didiglobal/booster/transform/br/inline/BRInlineTransformer.kt +++ b/booster-transform-br-inline/src/main/kotlin/com/didiglobal/booster/transform/br/inline/BRInlineTransformer.kt @@ -48,8 +48,8 @@ class BRInlineTransformer : ClassTransformer { } // Remove all BR class files allBR.also { pairs -> - val totalSize = allBR.map { it.first.length() }.sum() - val maxWidth = allBR.map { it.second.length }.max()?.plus(10) ?: 10 + val totalSize = allBR.sumOf { it.first.length() } + val maxWidth = allBR.maxOfOrNull { it.second.length }?.plus(10) ?: 10 logger.println("Delete files:") diff --git a/booster-transform-javassist/src/main/kotlin/com/didiglobal/booster/transform/javassist/JavassistTransformer.kt b/booster-transform-javassist/src/main/kotlin/com/didiglobal/booster/transform/javassist/JavassistTransformer.kt index 3b9c5263f..fddb32207 100644 --- a/booster-transform-javassist/src/main/kotlin/com/didiglobal/booster/transform/javassist/JavassistTransformer.kt +++ b/booster-transform-javassist/src/main/kotlin/com/didiglobal/booster/transform/javassist/JavassistTransformer.kt @@ -91,7 +91,7 @@ class JavassistTransformer : Transformer { val w1 = this.durations.keys.map { it.javaClass.name.length - }.max() ?: 20 + }.maxOrNull() ?: 20 this.durations.forEach { (transformer, ns) -> println("${transformer.javaClass.name.padEnd(w1 + 1)}: ${ns.toMillis()} ms") } diff --git a/booster-transform-r-inline/src/main/kotlin/com/didiglobal/booster/transform/r/inline/RInlineTransformer.kt b/booster-transform-r-inline/src/main/kotlin/com/didiglobal/booster/transform/r/inline/RInlineTransformer.kt index 562252129..d6bc0e3b4 100644 --- a/booster-transform-r-inline/src/main/kotlin/com/didiglobal/booster/transform/r/inline/RInlineTransformer.kt +++ b/booster-transform-r-inline/src/main/kotlin/com/didiglobal/booster/transform/r/inline/RInlineTransformer.kt @@ -109,7 +109,7 @@ class RInlineTransformer : ClassTransformer { override fun onPostTransform(context: TransformContext) { val totalSize = removedR.map { it.value }.sum() - val maxWidth = removedR.map { it.key.length }.max()?.plus(10) ?: 10 + val maxWidth = removedR.map { it.key.length }.maxOrNull()?.plus(10) ?: 10 this.logger.run { println("Delete files:") removedR.toSortedMap().forEach { diff --git a/booster-transform-service-loader/src/main/kotlin/com/didiglobal/booster/transform/serviceloader/ServiceLoaderTransformer.kt b/booster-transform-service-loader/src/main/kotlin/com/didiglobal/booster/transform/serviceloader/ServiceLoaderTransformer.kt index a51f765b3..41aeb5c01 100644 --- a/booster-transform-service-loader/src/main/kotlin/com/didiglobal/booster/transform/serviceloader/ServiceLoaderTransformer.kt +++ b/booster-transform-service-loader/src/main/kotlin/com/didiglobal/booster/transform/serviceloader/ServiceLoaderTransformer.kt @@ -145,7 +145,7 @@ private val File.services: List>> }.map { spi -> spi.name to spi.readLines().services } - isFile -> when (extension.toLowerCase(Locale.getDefault())) { + isFile -> when (extension.lowercase()) { "jar" -> ZipFile(this).use { zip -> zip.entries() .asSequence() diff --git a/booster-transform-util/src/main/kotlin/com/didiglobal/booster/transform/util/ArgumentsParser.kt b/booster-transform-util/src/main/kotlin/com/didiglobal/booster/transform/util/ArgumentsParser.kt index dcea014dd..96ee27ea7 100644 --- a/booster-transform-util/src/main/kotlin/com/didiglobal/booster/transform/util/ArgumentsParser.kt +++ b/booster-transform-util/src/main/kotlin/com/didiglobal/booster/transform/util/ArgumentsParser.kt @@ -64,6 +64,6 @@ class ArgumentsParser(private val signature: String, private val offset: Int = 0 return buf.toString() } - private fun nextChar() = if (pos < limit) signature[pos++].toInt() else -1 + private fun nextChar() = if (pos < limit) signature[pos++].code else -1 } diff --git a/booster-transform-util/src/main/kotlin/com/didiglobal/booster/transform/util/transform.kt b/booster-transform-util/src/main/kotlin/com/didiglobal/booster/transform/util/transform.kt index 464239794..b5b136a6c 100644 --- a/booster-transform-util/src/main/kotlin/com/didiglobal/booster/transform/util/transform.kt +++ b/booster-transform-util/src/main/kotlin/com/didiglobal/booster/transform/util/transform.kt @@ -37,7 +37,7 @@ fun File.transform(output: File, transformer: (ByteArray) -> ByteArray = { it -> it.transform(File(output, base.relativize(it.toURI()).path), transformer) } } - isFile -> when (extension.toLowerCase()) { + isFile -> when (extension.lowercase()) { "jar" -> JarFile(this).use { it.transform(output, ::JarArchiveEntry, transformer) } diff --git a/build.gradle b/build.gradle index ae4a50e58..6e87db25b 100644 --- a/build.gradle +++ b/build.gradle @@ -1,4 +1,3 @@ -import java.time.Duration import static org.gradle.kotlin.dsl.KotlinDependencyExtensionsKt.embeddedKotlinVersion buildscript { @@ -8,7 +7,7 @@ buildscript { mavenLocal() google() mavenCentral() - maven { url 'https://plugins.gradle.org/m2/' } + gradlePluginPortal() } dependencies { classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" @@ -168,63 +167,3 @@ nexusPublishing { delayBetween.set(Duration.ofMillis(3000)) } } - -task reference(type: org.jetbrains.dokka.gradle.DokkaTask, group: 'Documentation') { - subProjects = [ - 'booster-aapt2', - 'booster-android-gradle-api', - 'booster-android-gradle-compat', - 'booster-annotations', - 'booster-api', - 'booster-build', - 'booster-cha', - 'booster-cha-asm', - 'booster-command', - 'booster-graph', - 'booster-graph-dot', - 'booster-graph-json', - 'booster-kotlinx', - 'booster-task-compression', - 'booster-task-spi', - 'booster-transform-asm', - 'booster-transform-javassist', - 'booster-transform-spi', - 'booster-transform-util' - ] - outputFormat = 'html' - outputDirectory = "${buildDir}/reference" - configuration { - perPackageOption { - prefix = 'com.didiglobal.booster.aapt2.legacy' - suppress = true - } - perPackageOption { - prefix = 'com.didiglobal.booster.build.BoosterServiceLoader' - suppress = true - } - includes = [ - 'booster-aapt2/packages-zh-CN.md', - 'booster-android-gradle-api/packages-zh-CN.md', - 'booster-annotations/packages-zh-CN.md', - 'booster-api/packages-zh-CN.md', - 'booster-build/packages-zh-CN.md', - 'booster-cha/packages-zh-CN.md', - 'booster-cha-asm/packages-zh-CN.md', - 'booster-command/packages-zh-CN.md', - 'booster-graph/packages-zh-CN.md', - 'booster-graph-dot/packages-zh-CN.md', - 'booster-graph-json/packages-zh-CN.md', - 'booster-kotlinx/packages-zh-CN.md', - 'booster-task-compression/packages-zh-CN.md', - 'booster-task-spi/packages-zh-CN.md', - 'booster-test/packages-zh-CN.md', - 'booster-test-asm/packages-zh-CN.md', - 'booster-test-javassist/packages-zh-CN.md', - 'booster-transform-asm/packages-zh-CN.md', - 'booster-transform-javassist/packages-zh-CN.md', - 'booster-transform-spi/packages-zh-CN.md', - 'booster-transform-util/packages-zh-CN.md', - ] - jdkVersion = 8 - } -} diff --git a/gradle/functional-test.gradle b/gradle/functional-test.gradle index e82cf5460..b686abb3d 100644 --- a/gradle/functional-test.gradle +++ b/gradle/functional-test.gradle @@ -7,7 +7,7 @@ sourceSets { srcDirs += ['src/functionalTest/kotlin', 'src/functionalTest/java'] } resources.srcDir file('src/functionalTest/resources') - compileClasspath += sourceSets.main.output + configurations.testRuntime + compileClasspath += sourceSets.main.output + configurations.testRuntimeClasspath runtimeClasspath += output + compileClasspath } } diff --git a/gradle/integration-test.gradle b/gradle/integration-test.gradle index 156c4164c..7693ebf2d 100644 --- a/gradle/integration-test.gradle +++ b/gradle/integration-test.gradle @@ -7,7 +7,7 @@ sourceSets { srcDirs += ['src/integrationTest/kotlin', 'src/integrationTest/java'] } resources.srcDir file('src/integrationTest/resources') - compileClasspath += sourceSets.main.output + configurations.testRuntime + compileClasspath += sourceSets.main.output + configurations.testRuntimeClasspath runtimeClasspath += output + compileClasspath } } @@ -33,3 +33,7 @@ check.dependsOn integrationTest compileIntegrationTestKotlin { kotlinOptions.jvmTarget = JavaVersion.VERSION_1_8 } + +tasks.withType(ProcessResources).configureEach { + duplicatesStrategy = DuplicatesStrategy.EXCLUDE +} diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index b7c8c5dbf..41dfb8790 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.2-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/settings.gradle b/settings.gradle deleted file mode 100644 index c61329bac..000000000 --- a/settings.gradle +++ /dev/null @@ -1,67 +0,0 @@ -include ':booster-aapt2' -include ':booster-android-api' -include ':booster-android-instrument' -include ':booster-android-instrument-activity-thread' -include ':booster-android-instrument-finalizer-watchdog-daemon' -include ':booster-android-instrument-logcat' -include ':booster-android-instrument-media-player' -include ':booster-android-instrument-res-check' -include ':booster-android-instrument-shared-preferences' -include ':booster-android-instrument-thread' -include ':booster-android-instrument-toast' -include ':booster-android-instrument-webview' -include ':booster-android-gradle-api' -include ':booster-android-gradle-compat' -include ':booster-android-gradle-v3_3' -include ':booster-android-gradle-v3_4' -include ':booster-android-gradle-v3_5' -include ':booster-android-gradle-v3_6' -include ':booster-android-gradle-v4_0' -include ':booster-android-gradle-v4_1' -include ':booster-android-gradle-v4_2' -include ':booster-android-gradle-v7_0' -include ':booster-android-gradle-v7_1' -include ':booster-android-gradle-v7_2' -include ':booster-annotations' -include ':booster-api' -include ':booster-build' -include ':booster-cha' -include ':booster-cha-asm' -include ':booster-command' -include ':booster-graph' -include ':booster-graph-dot' -include ':booster-graph-json' -include ':booster-gradle-plugin' -include ':booster-task-analyser' -include ':booster-task-check-snapshot' -include ':booster-task-compression' -include ':booster-task-compression-cwebp' -include ':booster-task-compression-pngquant' -include ':booster-task-compression-processed-res' -include ':booster-task-graph' -include ':booster-task-list-artifact' -include ':booster-task-list-permission' -include ':booster-task-list-shared-library' -include ':booster-task-resource-deredundancy' -include ':booster-task-spi' -include ':booster-test' -include ':booster-test-asm' -include ':booster-test-javassist' -include ':booster-transform-activity-thread' -include ':booster-transform-asm' -include ':booster-transform-br-inline' -include ':booster-transform-finalizer-watchdog-daemon' -include ':booster-transform-javassist' -include ':booster-transform-logcat' -include ':booster-transform-media-player' -include ':booster-transform-res-check' -include ':booster-transform-service-loader' -include ':booster-transform-shared-preferences' -include ':booster-transform-r-inline' -include ':booster-transform-spi' -include ':booster-transform-thread' -include ':booster-transform-toast' -include ':booster-transform-usage' -include ':booster-transform-util' -include ':booster-transform-webview' -include ':booster-kotlinx' diff --git a/settings.gradle.kts b/settings.gradle.kts new file mode 100644 index 000000000..079edf992 --- /dev/null +++ b/settings.gradle.kts @@ -0,0 +1,84 @@ +rootProject.name = "booster" + +pluginManagement { + repositories { + mavenCentral() + google() + gradlePluginPortal() + } +} + +dependencyResolutionManagement { + repositories { + mavenCentral() + google() + } +} + +include(":booster-aapt2") +include(":booster-android-api") +include(":booster-android-instrument") +include(":booster-android-instrument-activity-thread") +include(":booster-android-instrument-finalizer-watchdog-daemon") +include(":booster-android-instrument-logcat") +include(":booster-android-instrument-media-player") +include(":booster-android-instrument-res-check") +include(":booster-android-instrument-shared-preferences") +include(":booster-android-instrument-thread") +include(":booster-android-instrument-toast") +include(":booster-android-instrument-webview") +include(":booster-android-gradle-api") +include(":booster-android-gradle-compat") +include(":booster-android-gradle-v3_3") +include(":booster-android-gradle-v3_4") +include(":booster-android-gradle-v3_5") +include(":booster-android-gradle-v3_6") +include(":booster-android-gradle-v4_0") +include(":booster-android-gradle-v4_1") +include(":booster-android-gradle-v4_2") +include(":booster-android-gradle-v7_0") +include(":booster-android-gradle-v7_1") +include(":booster-android-gradle-v7_2") +include(":booster-annotations") +include(":booster-api") +include(":booster-build") +include(":booster-cha") +include(":booster-cha-asm") +include(":booster-command") +include(":booster-graph") +include(":booster-graph-dot") +include(":booster-graph-json") +include(":booster-gradle-plugin") +include(":booster-task-analyser") +include(":booster-task-check-snapshot") +include(":booster-task-compression") +include(":booster-task-compression-cwebp") +include(":booster-task-compression-pngquant") +include(":booster-task-compression-processed-res") +include(":booster-task-graph") +include(":booster-task-list-artifact") +include(":booster-task-list-permission") +include(":booster-task-list-shared-library") +include(":booster-task-resource-deredundancy") +include(":booster-task-spi") +include(":booster-test") +include(":booster-test-asm") +include(":booster-test-javassist") +include(":booster-transform-activity-thread") +include(":booster-transform-asm") +include(":booster-transform-br-inline") +include(":booster-transform-finalizer-watchdog-daemon") +include(":booster-transform-javassist") +include(":booster-transform-logcat") +include(":booster-transform-media-player") +include(":booster-transform-res-check") +include(":booster-transform-service-loader") +include(":booster-transform-shared-preferences") +include(":booster-transform-r-inline") +include(":booster-transform-spi") +include(":booster-transform-thread") +include(":booster-transform-toast") +include(":booster-transform-usage") +include(":booster-transform-util") +include(":booster-transform-webview") +include(":booster-kotlinx") From 41d7282270f2c62d78f30a994d27a37fc652a48d Mon Sep 17 00:00:00 2001 From: neighbWang Date: Sat, 12 Nov 2022 22:24:46 +0800 Subject: [PATCH 161/187] AGP 7.3 compatibility support --- .../src/main/java/android/util/Log.java | 1 - .../java/android/view/ViewTreeObserver.java | 6 - booster-android-gradle-api/build.gradle | 1 + .../didiglobal/booster/gradle/BaseVariant.kt | 15 +- .../didiglobal/booster/gradle/AGPInterface.kt | 7 +- booster-android-gradle-v3_3/build.gradle | 1 + .../booster/android/gradle/v3_3/V33.kt | 13 +- booster-android-gradle-v3_4/build.gradle | 1 + .../booster/android/gradle/v3_4/V34.kt | 12 +- booster-android-gradle-v3_5/build.gradle | 1 + .../booster/android/gradle/v3_5/V35.kt | 14 +- booster-android-gradle-v3_6/build.gradle | 1 + .../booster/android/gradle/v3_6/V36.kt | 14 +- booster-android-gradle-v4_0/build.gradle | 1 + .../booster/android/gradle/v4_0/V40.kt | 16 +- booster-android-gradle-v4_1/build.gradle | 1 + .../booster/android/gradle/v4_1/V41.kt | 14 +- booster-android-gradle-v4_2/build.gradle | 1 + .../booster/android/gradle/v4_2/V42.kt | 14 +- booster-android-gradle-v7_0/build.gradle | 1 + .../booster/android/gradle/v7_0/V70.kt | 14 +- booster-android-gradle-v7_1/build.gradle | 1 + .../booster/android/gradle/v7_1/V71.kt | 14 +- booster-android-gradle-v7_2/build.gradle | 1 + .../booster/android/gradle/v7_2/V72.kt | 14 +- booster-android-gradle-v7_3/README.md | 6 + booster-android-gradle-v7_3/build.gradle | 27 + .../android/gradle/v7_3/V73IntegrationTest.kt | 507 ++++++++++++++++++ .../src/integrationTest/resources/app.gradle | 60 +++ .../resources/buildSrc/build.gradle | 24 + .../src/integrationTest/resources/lib.gradle | 57 ++ .../resources/src/main/AndroidManifest.xml | 9 + .../booster/android/test/MainActivity.java | 6 + .../booster/android/test/TestApplication.java | 7 + .../resources/src/main/res/values/strings.xml | 4 + .../booster/android/gradle/v7_3/V73.kt | 307 +++++++++++ .../booster/android/gradle/v7_3/V73Factory.kt | 15 + .../ActivityThreadVarinatProcessor.kt | 4 +- ...FinalizerWatchdogDaemonVariantProcessor.kt | 4 +- .../logcat/LogcatVarinatProcessor.kt | 4 +- .../MediaPlayerVarinatProcessor.kt | 4 +- .../res/check/ResCheckVarinatProcessor.kt | 4 +- .../SharedPreferencesVariantProcessor.kt | 4 +- .../thread/ThreadVariantProcessor.kt | 4 +- .../transform/toast/ToastVariantProcessor.kt | 4 +- .../webview/WebViewVariantProcessor.kt | 4 +- settings.gradle.kts | 1 + 47 files changed, 1202 insertions(+), 43 deletions(-) create mode 100644 booster-android-gradle-v7_3/README.md create mode 100644 booster-android-gradle-v7_3/build.gradle create mode 100644 booster-android-gradle-v7_3/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v7_3/V73IntegrationTest.kt create mode 100644 booster-android-gradle-v7_3/src/integrationTest/resources/app.gradle create mode 100644 booster-android-gradle-v7_3/src/integrationTest/resources/buildSrc/build.gradle create mode 100644 booster-android-gradle-v7_3/src/integrationTest/resources/lib.gradle create mode 100644 booster-android-gradle-v7_3/src/integrationTest/resources/src/main/AndroidManifest.xml create mode 100644 booster-android-gradle-v7_3/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/MainActivity.java create mode 100644 booster-android-gradle-v7_3/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/TestApplication.java create mode 100644 booster-android-gradle-v7_3/src/integrationTest/resources/src/main/res/values/strings.xml create mode 100644 booster-android-gradle-v7_3/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_3/V73.kt create mode 100644 booster-android-gradle-v7_3/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_3/V73Factory.kt diff --git a/booster-android-api/src/main/java/android/util/Log.java b/booster-android-api/src/main/java/android/util/Log.java index 84f1be48e..1ee313da7 100644 --- a/booster-android-api/src/main/java/android/util/Log.java +++ b/booster-android-api/src/main/java/android/util/Log.java @@ -217,7 +217,6 @@ public static int wtf(String tag, String msg) { /** * Like {@link #wtf(String, String)}, but also writes to the log the full * call stack. - * @hide */ public static int wtfStack(String tag, String msg) { throw new RuntimeException("Stub!"); diff --git a/booster-android-api/src/main/java/android/view/ViewTreeObserver.java b/booster-android-api/src/main/java/android/view/ViewTreeObserver.java index eb56482c1..c1b458330 100644 --- a/booster-android-api/src/main/java/android/view/ViewTreeObserver.java +++ b/booster-android-api/src/main/java/android/view/ViewTreeObserver.java @@ -75,9 +75,6 @@ public interface OnPreDrawListener { * their scroll bounds or even to request a new layout before drawing occurs. * * @return Return true to proceed with the current drawing pass, or false to cancel. - * @see android.view.View#onMeasure - * @see android.view.View#onLayout - * @see android.view.View#onDraw */ public boolean onPreDraw(); } @@ -96,9 +93,6 @@ public interface OnDrawListener { *

An {@link OnDrawListener} listener cannot be added or removed * from this method.

* - * @see android.view.View#onMeasure - * @see android.view.View#onLayout - * @see android.view.View#onDraw */ public void onDraw(); } diff --git a/booster-android-gradle-api/build.gradle b/booster-android-gradle-api/build.gradle index fb5ccbb03..c8d32d737 100644 --- a/booster-android-gradle-api/build.gradle +++ b/booster-android-gradle-api/build.gradle @@ -13,6 +13,7 @@ dependencies { implementation project(':booster-android-gradle-v7_0') implementation project(':booster-android-gradle-v7_1') implementation project(':booster-android-gradle-v7_2') + implementation project(':booster-android-gradle-v7_3') compileOnly 'com.android.tools.build:gradle:3.0.0' testCompileOnly 'com.android.tools.build:gradle:3.0.0' } diff --git a/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/BaseVariant.kt b/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/BaseVariant.kt index fe8cc63ad..97c0cad48 100644 --- a/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/BaseVariant.kt +++ b/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/BaseVariant.kt @@ -4,7 +4,6 @@ import com.android.build.gradle.BaseExtension import com.android.build.gradle.api.BaseVariant import com.android.build.gradle.internal.publishing.AndroidArtifacts import com.android.build.gradle.tasks.ProcessAndroidResources -import com.android.builder.core.VariantType import com.android.builder.model.ApiVersion import com.android.sdklib.BuildToolInfo import com.didiglobal.booster.kotlinx.file @@ -146,9 +145,19 @@ val BaseVariant.minSdkVersion: ApiVersion minSdkVersion } -val BaseVariant.variantType: VariantType +val BaseVariant.isApplication: Boolean get() = AGP.run { - variantType + isApplication + } + +val BaseVariant.isLibrary: Boolean + get() = AGP.run { + isLibrary + } + +val BaseVariant.isDynamicFeature: Boolean + get() = AGP.run { + isDynamicFeature } val BaseVariant.originalApplicationId: String diff --git a/booster-android-gradle-compat/src/main/kotlin/com/didiglobal/booster/gradle/AGPInterface.kt b/booster-android-gradle-compat/src/main/kotlin/com/didiglobal/booster/gradle/AGPInterface.kt index 3dc6864d0..96db2c72a 100644 --- a/booster-android-gradle-compat/src/main/kotlin/com/didiglobal/booster/gradle/AGPInterface.kt +++ b/booster-android-gradle-compat/src/main/kotlin/com/didiglobal/booster/gradle/AGPInterface.kt @@ -12,7 +12,6 @@ import com.android.build.gradle.internal.pipeline.TransformTask import com.android.build.gradle.internal.publishing.AndroidArtifacts import com.android.build.gradle.internal.scope.VariantScope import com.android.build.gradle.internal.variant.BaseVariantData -import com.android.builder.core.VariantType import com.android.builder.model.ApiVersion import com.android.builder.model.Version import com.android.repository.Revision @@ -135,7 +134,11 @@ interface AGPInterface { val BaseVariant.targetSdkVersion: ApiVersion - val BaseVariant.variantType: VariantType + val BaseVariant.isApplication: Boolean + + val BaseVariant.isLibrary: Boolean + + val BaseVariant.isDynamicFeature: Boolean val BaseVariant.aar: FileCollection diff --git a/booster-android-gradle-v3_3/build.gradle b/booster-android-gradle-v3_3/build.gradle index fa3081d1c..7fc6eb17b 100644 --- a/booster-android-gradle-v3_3/build.gradle +++ b/booster-android-gradle-v3_3/build.gradle @@ -2,6 +2,7 @@ apply plugin: 'java-gradle-plugin' apply from: "$rootDir/gradle/booster.gradle" apply from: "$rootDir/gradle/integration-test.gradle" +apply from: "$rootDir/gradle/functional-test.gradle" dependencies { kapt 'com.google.auto.service:auto-service:1.0' diff --git a/booster-android-gradle-v3_3/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_3/V33.kt b/booster-android-gradle-v3_3/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_3/V33.kt index ad5d8360c..e9dd0d1a2 100644 --- a/booster-android-gradle-v3_3/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_3/V33.kt +++ b/booster-android-gradle-v3_3/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_3/V33.kt @@ -154,9 +154,18 @@ internal object V33 : AGPInterface { override val BaseVariant.targetSdkVersion: ApiVersion get() = variantData.variantConfiguration.targetSdkVersion - override val BaseVariant.variantType: VariantType + private val BaseVariant.variantType: VariantType get() = variantScope.type + override val BaseVariant.isApplication: Boolean + get() = variantType.isApk + + override val BaseVariant.isLibrary: Boolean + get() = variantType.isAar + + override val BaseVariant.isDynamicFeature: Boolean + get() = variantType.isDynamicFeature + override val BaseVariant.aar: FileCollection get() = getFinalArtifactFiles(InternalArtifactType.AAR) @@ -167,7 +176,7 @@ internal object V33 : AGPInterface { get() = getFinalArtifactFiles(when (this) { is ApplicationVariant -> InternalArtifactType.MERGED_MANIFESTS is LibraryVariant -> InternalArtifactType.LIBRARY_MANIFEST - else -> TODO("Unsupported variant type: $variantType") + else -> TODO("Unsupported variant type: $name") }) override val BaseVariant.mergedRes: FileCollection diff --git a/booster-android-gradle-v3_4/build.gradle b/booster-android-gradle-v3_4/build.gradle index 2c9e96ef7..686414cbe 100644 --- a/booster-android-gradle-v3_4/build.gradle +++ b/booster-android-gradle-v3_4/build.gradle @@ -2,6 +2,7 @@ apply plugin: 'java-gradle-plugin' apply from: "$rootDir/gradle/booster.gradle" apply from: "$rootDir/gradle/integration-test.gradle" +apply from: "$rootDir/gradle/functional-test.gradle" dependencies { kapt 'com.google.auto.service:auto-service:1.0' diff --git a/booster-android-gradle-v3_4/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_4/V34.kt b/booster-android-gradle-v3_4/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_4/V34.kt index fd49f4694..6521f0118 100644 --- a/booster-android-gradle-v3_4/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_4/V34.kt +++ b/booster-android-gradle-v3_4/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_4/V34.kt @@ -4,6 +4,9 @@ import com.android.build.api.artifact.ArtifactType import com.android.build.api.artifact.BuildArtifactType import com.android.build.api.transform.Context import com.android.build.api.transform.QualifiedContent +import com.android.build.gradle.AppPlugin +import com.android.build.gradle.DynamicFeaturePlugin +import com.android.build.gradle.LibraryPlugin import com.android.build.gradle.api.ApplicationVariant import com.android.build.gradle.api.BaseVariant import com.android.build.gradle.api.LibraryVariant @@ -155,9 +158,16 @@ internal object V34 : AGPInterface { override val BaseVariant.targetSdkVersion: ApiVersion get() = variantData.variantConfiguration.targetSdkVersion - override val BaseVariant.variantType: VariantType + private val BaseVariant.variantType: VariantType get() = variantScope.type + override val BaseVariant.isApplication: Boolean + get() = project.plugins.hasPlugin(AppPlugin::class.java) + override val BaseVariant.isLibrary: Boolean + get() = project.plugins.hasPlugin(LibraryPlugin::class.java) + override val BaseVariant.isDynamicFeature: Boolean + get() = project.plugins.hasPlugin(DynamicFeaturePlugin::class.java) + override val BaseVariant.aar: FileCollection get() = getFinalArtifactFiles(InternalArtifactType.AAR) diff --git a/booster-android-gradle-v3_5/build.gradle b/booster-android-gradle-v3_5/build.gradle index 094efd87b..4084399d0 100644 --- a/booster-android-gradle-v3_5/build.gradle +++ b/booster-android-gradle-v3_5/build.gradle @@ -2,6 +2,7 @@ apply plugin: 'java-gradle-plugin' apply from: "$rootDir/gradle/booster.gradle" apply from: "$rootDir/gradle/integration-test.gradle" +apply from: "$rootDir/gradle/functional-test.gradle" dependencies { kapt 'com.google.auto.service:auto-service:1.0' diff --git a/booster-android-gradle-v3_5/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_5/V35.kt b/booster-android-gradle-v3_5/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_5/V35.kt index 34576a30c..c865e1da4 100644 --- a/booster-android-gradle-v3_5/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_5/V35.kt +++ b/booster-android-gradle-v3_5/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_5/V35.kt @@ -4,6 +4,9 @@ import com.android.build.api.artifact.ArtifactType import com.android.build.api.artifact.BuildArtifactType import com.android.build.api.transform.Context import com.android.build.api.transform.QualifiedContent +import com.android.build.gradle.AppPlugin +import com.android.build.gradle.DynamicFeaturePlugin +import com.android.build.gradle.LibraryPlugin import com.android.build.gradle.api.ApplicationVariant import com.android.build.gradle.api.BaseVariant import com.android.build.gradle.api.LibraryVariant @@ -153,9 +156,18 @@ internal object V35 : AGPInterface { override val BaseVariant.targetSdkVersion: ApiVersion get() = variantData.variantConfiguration.targetSdkVersion - override val BaseVariant.variantType: VariantType + private val BaseVariant.variantType: VariantType get() = variantScope.type + override val BaseVariant.isApplication: Boolean + get() = variantType.isApk + + override val BaseVariant.isLibrary: Boolean + get() = variantType.isAar + + override val BaseVariant.isDynamicFeature: Boolean + get() = variantType.isDynamicFeature + override val BaseVariant.aar: FileCollection get() = getFinalArtifactFiles(InternalArtifactType.AAR) diff --git a/booster-android-gradle-v3_6/build.gradle b/booster-android-gradle-v3_6/build.gradle index 858c0c432..fea47241c 100644 --- a/booster-android-gradle-v3_6/build.gradle +++ b/booster-android-gradle-v3_6/build.gradle @@ -2,6 +2,7 @@ apply plugin: 'java-gradle-plugin' apply from: "$rootDir/gradle/booster.gradle" apply from: "$rootDir/gradle/integration-test.gradle" +apply from: "$rootDir/gradle/functional-test.gradle" dependencies { kapt 'com.google.auto.service:auto-service:1.0' diff --git a/booster-android-gradle-v3_6/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_6/V36.kt b/booster-android-gradle-v3_6/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_6/V36.kt index 049904a98..f1d41b022 100644 --- a/booster-android-gradle-v3_6/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_6/V36.kt +++ b/booster-android-gradle-v3_6/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_6/V36.kt @@ -4,6 +4,9 @@ import com.android.build.api.artifact.ArtifactType import com.android.build.api.artifact.BuildArtifactType import com.android.build.api.transform.Context import com.android.build.api.transform.QualifiedContent +import com.android.build.gradle.AppPlugin +import com.android.build.gradle.DynamicFeaturePlugin +import com.android.build.gradle.LibraryPlugin import com.android.build.gradle.api.ApplicationVariant import com.android.build.gradle.api.BaseVariant import com.android.build.gradle.api.LibraryVariant @@ -151,8 +154,15 @@ object V36 : AGPInterface { override val BaseVariant.targetSdkVersion: ApiVersion get() = variantData.variantConfiguration.targetSdkVersion - override val BaseVariant.variantType: VariantType - get() = variantData.type + private val BaseVariant.variantType: VariantType + get() = variantScope.type + + override val BaseVariant.isApplication: Boolean + get() = project.plugins.hasPlugin(AppPlugin::class.java) + override val BaseVariant.isLibrary: Boolean + get() = project.plugins.hasPlugin(LibraryPlugin::class.java) + override val BaseVariant.isDynamicFeature: Boolean + get() = project.plugins.hasPlugin(DynamicFeaturePlugin::class.java) override val BaseVariant.aar: FileCollection get() = project.files(variantScope.aarLocation.absolutePath) diff --git a/booster-android-gradle-v4_0/build.gradle b/booster-android-gradle-v4_0/build.gradle index d40cc6afa..94b0d1476 100644 --- a/booster-android-gradle-v4_0/build.gradle +++ b/booster-android-gradle-v4_0/build.gradle @@ -2,6 +2,7 @@ apply plugin: 'java-gradle-plugin' apply from: "$rootDir/gradle/booster.gradle" apply from: "$rootDir/gradle/integration-test.gradle" +apply from: "$rootDir/gradle/functional-test.gradle" dependencies { kapt 'com.google.auto.service:auto-service:1.0' diff --git a/booster-android-gradle-v4_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_0/V40.kt b/booster-android-gradle-v4_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_0/V40.kt index dfd6e2723..406e237bb 100644 --- a/booster-android-gradle-v4_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_0/V40.kt +++ b/booster-android-gradle-v4_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_0/V40.kt @@ -2,6 +2,9 @@ package com.didiglobal.booster.android.gradle.v4_0 import com.android.build.api.transform.Context import com.android.build.api.transform.QualifiedContent +import com.android.build.gradle.AppPlugin +import com.android.build.gradle.DynamicFeaturePlugin +import com.android.build.gradle.LibraryPlugin import com.android.build.gradle.api.ApplicationVariant import com.android.build.gradle.api.BaseVariant import com.android.build.gradle.api.LibraryVariant @@ -177,8 +180,17 @@ internal object V40 : AGPInterface { override val BaseVariant.targetSdkVersion: ApiVersion get() = variantData.variantDslInfo.targetSdkVersion - override val BaseVariant.variantType: VariantType - get() = variantData.variantDslInfo.variantType + private val BaseVariant.variantType: VariantType + get() = variantScope.type + + override val BaseVariant.isApplication: Boolean + get() = variantType.isApk + + override val BaseVariant.isLibrary: Boolean + get() = variantType.isAar + + override val BaseVariant.isDynamicFeature: Boolean + get() = variantType.isDynamicFeature override val BaseVariant.aar: FileCollection get() = getFinalArtifactFiles(InternalArtifactType.AAR) diff --git a/booster-android-gradle-v4_1/build.gradle b/booster-android-gradle-v4_1/build.gradle index c8f68511f..fc24cb46e 100644 --- a/booster-android-gradle-v4_1/build.gradle +++ b/booster-android-gradle-v4_1/build.gradle @@ -2,6 +2,7 @@ apply plugin: 'java-gradle-plugin' apply from: "$rootDir/gradle/booster.gradle" apply from: "$rootDir/gradle/integration-test.gradle" +apply from: "$rootDir/gradle/functional-test.gradle" dependencies { kapt 'com.google.auto.service:auto-service:1.0' diff --git a/booster-android-gradle-v4_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_1/V41.kt b/booster-android-gradle-v4_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_1/V41.kt index ad91f404c..fccd0310b 100644 --- a/booster-android-gradle-v4_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_1/V41.kt +++ b/booster-android-gradle-v4_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_1/V41.kt @@ -7,6 +7,9 @@ import com.android.build.api.artifact.impl.ArtifactsImpl import com.android.build.api.component.impl.ComponentPropertiesImpl import com.android.build.api.transform.Context import com.android.build.api.transform.QualifiedContent +import com.android.build.gradle.AppPlugin +import com.android.build.gradle.DynamicFeaturePlugin +import com.android.build.gradle.LibraryPlugin import com.android.build.gradle.api.ApplicationVariant import com.android.build.gradle.api.BaseVariant import com.android.build.gradle.api.LibraryVariant @@ -194,9 +197,18 @@ internal object V41 : AGPInterface { override val BaseVariant.targetSdkVersion: ApiVersion get() = componentProperties.targetSdkVersion - override val BaseVariant.variantType: VariantType + private val BaseVariant.variantType: VariantType get() = componentProperties.variantType + override val BaseVariant.isApplication: Boolean + get() = variantType.isApk + + override val BaseVariant.isLibrary: Boolean + get() = variantType.isAar + + override val BaseVariant.isDynamicFeature: Boolean + get() = variantType.isDynamicFeature + override val BaseVariant.aar: FileCollection get() = getFinalArtifactFiles(InternalArtifactType.AAR) diff --git a/booster-android-gradle-v4_2/build.gradle b/booster-android-gradle-v4_2/build.gradle index 77273ef57..c07f4fbe9 100644 --- a/booster-android-gradle-v4_2/build.gradle +++ b/booster-android-gradle-v4_2/build.gradle @@ -2,6 +2,7 @@ apply plugin: 'java-gradle-plugin' apply from: "$rootDir/gradle/booster.gradle" apply from: "$rootDir/gradle/integration-test.gradle" +apply from: "$rootDir/gradle/functional-test.gradle" dependencies { kapt 'com.google.auto.service:auto-service:1.0' diff --git a/booster-android-gradle-v4_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42.kt b/booster-android-gradle-v4_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42.kt index 06797ba63..2fc0be9c9 100644 --- a/booster-android-gradle-v4_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42.kt +++ b/booster-android-gradle-v4_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42.kt @@ -7,6 +7,9 @@ import com.android.build.api.artifact.impl.ArtifactsImpl import com.android.build.api.component.impl.ComponentImpl import com.android.build.api.transform.Context import com.android.build.api.transform.QualifiedContent +import com.android.build.gradle.AppPlugin +import com.android.build.gradle.DynamicFeaturePlugin +import com.android.build.gradle.LibraryPlugin import com.android.build.gradle.api.ApplicationVariant import com.android.build.gradle.api.BaseVariant import com.android.build.gradle.api.LibraryVariant @@ -195,9 +198,18 @@ internal object V42 : AGPInterface { override val BaseVariant.targetSdkVersion: ApiVersion get() = component.targetSdkVersion - override val BaseVariant.variantType: VariantType + private val BaseVariant.variantType: VariantType get() = component.variantType + override val BaseVariant.isApplication: Boolean + get() = variantType.isApk + + override val BaseVariant.isLibrary: Boolean + get() = variantType.isAar + + override val BaseVariant.isDynamicFeature: Boolean + get() = variantType.isDynamicFeature + override val BaseVariant.aar: FileCollection get() = getFinalArtifactFiles(ArtifactType.AAR) diff --git a/booster-android-gradle-v7_0/build.gradle b/booster-android-gradle-v7_0/build.gradle index f2d8051f7..06c24957e 100644 --- a/booster-android-gradle-v7_0/build.gradle +++ b/booster-android-gradle-v7_0/build.gradle @@ -2,6 +2,7 @@ apply plugin: 'java-gradle-plugin' apply from: "$rootDir/gradle/booster.gradle" apply from: "$rootDir/gradle/integration-test.gradle" +apply from: "$rootDir/gradle/functional-test.gradle" dependencies { kapt 'com.google.auto.service:auto-service:1.0' diff --git a/booster-android-gradle-v7_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_0/V70.kt b/booster-android-gradle-v7_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_0/V70.kt index 4e07524ad..6dad42f81 100644 --- a/booster-android-gradle-v7_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_0/V70.kt +++ b/booster-android-gradle-v7_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_0/V70.kt @@ -7,6 +7,9 @@ import com.android.build.api.artifact.impl.ArtifactsImpl import com.android.build.api.component.impl.ComponentImpl import com.android.build.api.transform.Context import com.android.build.api.transform.QualifiedContent +import com.android.build.gradle.AppPlugin +import com.android.build.gradle.DynamicFeaturePlugin +import com.android.build.gradle.LibraryPlugin import com.android.build.gradle.api.ApplicationVariant import com.android.build.gradle.api.BaseVariant import com.android.build.gradle.api.LibraryVariant @@ -203,9 +206,18 @@ internal object V70 : AGPInterface { override val BaseVariant.targetSdkVersion: ApiVersion get() = component.variantDslInfo.targetSdkVersion - override val BaseVariant.variantType: VariantType + private val BaseVariant.variantType: VariantType get() = component.variantType + override val BaseVariant.isApplication: Boolean + get() = variantType.isApk + + override val BaseVariant.isLibrary: Boolean + get() = variantType.isAar + + override val BaseVariant.isDynamicFeature: Boolean + get() = variantType.isDynamicFeature + override val BaseVariant.aar: FileCollection get() = getFinalArtifactFiles(SingleArtifact.AAR) diff --git a/booster-android-gradle-v7_1/build.gradle b/booster-android-gradle-v7_1/build.gradle index 25ef52990..226e0c330 100644 --- a/booster-android-gradle-v7_1/build.gradle +++ b/booster-android-gradle-v7_1/build.gradle @@ -2,6 +2,7 @@ apply plugin: 'java-gradle-plugin' apply from: "$rootDir/gradle/booster.gradle" apply from: "$rootDir/gradle/integration-test.gradle" +apply from: "$rootDir/gradle/functional-test.gradle" dependencies { kapt 'com.google.auto.service:auto-service:1.0' diff --git a/booster-android-gradle-v7_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_1/V71.kt b/booster-android-gradle-v7_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_1/V71.kt index 8130ba1da..b04432538 100644 --- a/booster-android-gradle-v7_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_1/V71.kt +++ b/booster-android-gradle-v7_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_1/V71.kt @@ -7,6 +7,9 @@ import com.android.build.api.artifact.impl.ArtifactsImpl import com.android.build.api.component.impl.ComponentImpl import com.android.build.api.transform.Context import com.android.build.api.transform.QualifiedContent +import com.android.build.gradle.AppPlugin +import com.android.build.gradle.DynamicFeaturePlugin +import com.android.build.gradle.LibraryPlugin import com.android.build.gradle.api.ApplicationVariant import com.android.build.gradle.api.BaseVariant import com.android.build.gradle.api.LibraryVariant @@ -199,9 +202,18 @@ internal object V71 : AGPInterface { override val BaseVariant.targetSdkVersion: ApiVersion get() = DefaultApiVersion(component.targetSdkVersion.apiLevel) - override val BaseVariant.variantType: VariantType + private val BaseVariant.variantType: VariantType get() = component.variantType + override val BaseVariant.isApplication: Boolean + get() = variantType.isApk + + override val BaseVariant.isLibrary: Boolean + get() = variantType.isAar + + override val BaseVariant.isDynamicFeature: Boolean + get() = variantType.isDynamicFeature + override val BaseVariant.aar: FileCollection get() = getFinalArtifactFiles(SingleArtifact.AAR) diff --git a/booster-android-gradle-v7_2/build.gradle b/booster-android-gradle-v7_2/build.gradle index e4f5a2fdd..cbadd52a3 100644 --- a/booster-android-gradle-v7_2/build.gradle +++ b/booster-android-gradle-v7_2/build.gradle @@ -2,6 +2,7 @@ apply plugin: 'java-gradle-plugin' apply from: "$rootDir/gradle/booster.gradle" apply from: "$rootDir/gradle/integration-test.gradle" +apply from: "$rootDir/gradle/functional-test.gradle" dependencies { kapt 'com.google.auto.service:auto-service:1.0' diff --git a/booster-android-gradle-v7_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_2/V72.kt b/booster-android-gradle-v7_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_2/V72.kt index 13919c14f..15d178e2b 100644 --- a/booster-android-gradle-v7_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_2/V72.kt +++ b/booster-android-gradle-v7_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_2/V72.kt @@ -7,6 +7,9 @@ import com.android.build.api.artifact.impl.ArtifactsImpl import com.android.build.api.component.impl.ComponentImpl import com.android.build.api.transform.Context import com.android.build.api.transform.QualifiedContent +import com.android.build.gradle.AppPlugin +import com.android.build.gradle.DynamicFeaturePlugin +import com.android.build.gradle.LibraryPlugin import com.android.build.gradle.api.ApplicationVariant import com.android.build.gradle.api.BaseVariant import com.android.build.gradle.api.LibraryVariant @@ -209,9 +212,18 @@ internal object V72 : AGPInterface { override val BaseVariant.targetSdkVersion: ApiVersion get() = DefaultApiVersion(component.targetSdkVersion.apiLevel) - override val BaseVariant.variantType: VariantType + private val BaseVariant.variantType: VariantType get() = component.variantType + override val BaseVariant.isApplication: Boolean + get() = variantType.isApk + + override val BaseVariant.isLibrary: Boolean + get() = variantType.isAar + + override val BaseVariant.isDynamicFeature: Boolean + get() = variantType.isDynamicFeature + override val BaseVariant.aar: FileCollection get() = getFinalArtifactFiles(SingleArtifact.AAR) diff --git a/booster-android-gradle-v7_3/README.md b/booster-android-gradle-v7_3/README.md new file mode 100644 index 000000000..a5e9fa76e --- /dev/null +++ b/booster-android-gradle-v7_3/README.md @@ -0,0 +1,6 @@ +# booster-android-gradle-v7_3 + +This module is an implementation of [booster-android-gradle-api](../booster-android-gradle-api) for Android gradle plugin above 7.3 + +本模块是 [booster-android-gradle-api](../booster-android-gradle-api) 针对 Android gradle plugin 7.3 以上版本的实现。 + diff --git a/booster-android-gradle-v7_3/build.gradle b/booster-android-gradle-v7_3/build.gradle new file mode 100644 index 000000000..93e585e70 --- /dev/null +++ b/booster-android-gradle-v7_3/build.gradle @@ -0,0 +1,27 @@ +apply plugin: 'java-gradle-plugin' + +apply from: "$rootDir/gradle/booster.gradle" +apply from: "$rootDir/gradle/integration-test.gradle" +apply from: "$rootDir/gradle/functional-test.gradle" + +dependencies { + kapt 'com.google.auto.service:auto-service:1.0' + api 'com.google.auto.service:auto-service:1.0' + api project(':booster-android-gradle-compat') + compileOnly 'com.android.tools:repository:30.0.0' + compileOnly 'com.android.tools:common:30.0.0' + compileOnly 'com.android.tools:sdklib:30.0.0' + compileOnly 'com.android.tools.build:gradle:7.3.0' + testImplementation 'com.android.tools.build:gradle:7.3.0' + testImplementation 'com.android.tools:common:30.0.0' + testImplementation 'io.bootstage.testkit:testkit-gradle-plugin:1.1.0' + testImplementation project(':booster-build') +} + +jar { + exclude('com/android/sdklib/BuildToolInfo.class') +} + +gradlePlugin { + testSourceSets sourceSets.functionalTest, sourceSets.integrationTest +} \ No newline at end of file diff --git a/booster-android-gradle-v7_3/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v7_3/V73IntegrationTest.kt b/booster-android-gradle-v7_3/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v7_3/V73IntegrationTest.kt new file mode 100644 index 000000000..563ec2fa8 --- /dev/null +++ b/booster-android-gradle-v7_3/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v7_3/V73IntegrationTest.kt @@ -0,0 +1,507 @@ +@file:Suppress("DEPRECATION") + +package com.didiglobal.booster.android.gradle.v7_3 + +import com.android.build.gradle.AppExtension +import com.android.build.gradle.BaseExtension +import com.android.build.gradle.LibraryExtension +import com.android.build.gradle.api.BaseVariant +import com.android.builder.core.VariantTypeImpl +import com.didiglobal.booster.gradle.AGP +import com.didiglobal.booster.gradle.getAndroid +import com.didiglobal.booster.kotlinx.search +import io.bootstage.testkit.gradle.Case +import io.bootstage.testkit.gradle.TestCase +import io.bootstage.testkit.gradle.VariantTestCase +import io.bootstage.testkit.gradle.rules.GradleExecutor +import io.bootstage.testkit.gradle.rules.LocalProperties +import io.bootstage.testkit.gradle.rules.copyFromResource +import io.bootstage.testkit.gradle.rules.rule +import org.gradle.api.Project +import org.junit.Before +import org.junit.Rule +import org.junit.rules.TemporaryFolder +import org.junit.rules.TestRule +import java.io.File +import kotlin.test.Test +import kotlin.test.assertEquals +import kotlin.test.assertFalse +import kotlin.test.assertNotNull +import kotlin.test.assertTrue +import kotlin.test.fail + +private const val MIN_SDK_VERSION = 18 + +private const val TARGET_SDK_VERSION = 30 + +private val ARGS = arrayOf( + "assemble", "-S", + "-Pbooster_version=${Build.VERSION}", + "-Pandroid_gradle_version=7.3.0", + "-Pcompile_sdk_version=30", + "-Pbuild_tools_version=29.0.2", + "-Pmin_sdk_version=$MIN_SDK_VERSION", + "-Ptarget_sdk_version=$TARGET_SDK_VERSION" +) + +@Suppress("RemoveCurlyBracesFromTemplate", "FunctionName") +abstract class V73IntegrationTest(private val isLib: Boolean) { + + private val projectDir = TemporaryFolder() + + @get:Rule + val ruleChain: TestRule = rule(projectDir) { + rule(LocalProperties(projectDir::getRoot)) { + GradleExecutor(projectDir::getRoot, "7.3.3", *ARGS) + } + } + + @Before + fun setup() { + projectDir.copyFromResource("${if (isLib) "lib" else "app"}.gradle", "build.gradle") + projectDir.copyFromResource("buildSrc") + projectDir.copyFromResource("src") + projectDir.newFile("gradle.properties").writeText("org.gradle.jvmargs=-Xmx4g -XX:MaxMetaspaceSize=2g") + assertEquals(7, AGP.revision.major) + assertEquals(3, AGP.revision.minor) + } + + @Test + @Case(ScopeFullWithFeaturesTest::class) + fun `test AGPInterface#scopeFullWithFeatures`() = Unit + + @Test + @Case(ScopeFullLibraryWithFeaturesTest::class) + fun `test AGPInterface#scopeFullLibraryWithFeatures`() = Unit + + @Test + @Case(ProjectTest::class) + fun `test AGPInterface#project`() = Unit + + @Test + @Case(JavaCompilerTaskTestUnit::class) + fun `test AGPInterface#javaCompilerTask`() = Unit + + @Test + @Case(PreBuildTaskTestUnit::class) + fun `test AGPInterface#preBuildTask`() = Unit + + @Test + @Case(AssembleTaskTestUnit::class) + fun `test AGPInterface#assembleTask`() = Unit + + @Test + @Case(MergeAssetsTaskTestUnit::class) + fun `test AGPInterface#mergeAssetsTask`() = Unit + + @Test + @Case(MergeResourcesTaskTestUnit::class) + fun `test AGPInterface#mergeResources`() = Unit + + @Test + @Case(GetTaskNameTestUnit::class) + fun `test AGPInterface#getTaskName(String)`() = Unit + + @Test + @Case(GetTaskName2TestUnit::class) + fun `test AGPInterface#getTaskName(String, String)`() = Unit + + @Test + @Case(VariantDataTestUnit::class) + fun `test AGPInterface#variantData`() = Unit + + @Test + @Case(VariantScopeTestUnit::class) + fun `test AGPInterface#variantScope`() = Unit + + @Test + @Case(OriginalApplicationIdTestUnit::class) + fun `test AGPInterface#originalApplicationId`() = Unit + + @Test + @Case(HasDynamicFeatureTestUnit::class) + fun `test AGPInterface#hasDynamicFeature`() = Unit + + @Test + @Case(RawAndroidResourcesTestUnit::class) + fun `test AGPInterface#rawAndroidResources`() = Unit + + @Test + @Case(AllArtifactsTestUnit::class) + fun `test AGPInterface#allArtifacts`() = Unit + + @Test + @Case(MinSdkVersionTestUnit::class) + fun `test AGPInterface#minSdkVersion`() = Unit + + @Test + @Case(TargetSdkVersionTestUnit::class) + fun `test AGPInterface#targetSdkVersion`() = Unit + + @Test + @Case(VariantTypeTestUnit::class) + fun `test AGPInterface#variantType`() { + } + + @Test + @Case(AarTestUnit::class) + fun `test AGPInterface#aar`() { + } + + @Test + @Case(ApkTestUnit::class) + fun `test AGPInterface#apk`() { + } + + @Test + @Case(MergedManifestsTestUnit::class) + fun `test AGPInterface#mergedManifests`() { + } + + @Test + @Case(MergedResourcesTestUnit::class) + fun `test AGPInterface#mergedRes`() { + } + + @Test + @Case(MergedAssetsTestUnit::class) + fun `test AGPInterface#mergedAssets`() { + } + + @Test + @Case(ProcessedResTestUnit::class) + fun `test AGPInterface#processedRes`() { + } + + @Test + @Case(SymbolListTestUnit::class) + fun `test AGPInterface#symbolList`() { + } + + @Test + @Case(SymbolListWithPackageNameTestUnit::class) + fun `test AGPInterface#symbolListWithPackageName`() { + } + + @Test + @Case(AllClassesTestUnit::class) + fun `test AGPInterface#allClasses`() { + } + +// @Test +// @Case(BuildToolsTestUnit::class) +// fun `test AGPInterface#buildTools`() { +// } + +} + +class V72AppIntegrationTest : V73IntegrationTest(false) + +class V72LibIntegrationTest : V73IntegrationTest(true) + +class ScopeFullWithFeaturesTest : TestCase { + override fun apply(project: Project) { + assertEquals("PROJECT,SUB_PROJECTS,EXTERNAL_LIBRARIES,FEATURES", AGP.scopeFullWithFeatures.joinToString(",")) + } +} + +class ScopeFullLibraryWithFeaturesTest : TestCase { + override fun apply(project: Project) { + assertEquals("FEATURES,PROJECT", AGP.scopeFullLibraryWithFeatures.joinToString(",")) + } +} + +class ProjectTest : TestCase { + override fun apply(project: Project) { + val assert: (BaseVariant) -> Unit = { variant -> + assertEquals(project, AGP.run { variant.project }) + } + project.afterEvaluate { + when (val android = project.getAndroid()) { + is AppExtension -> android.applicationVariants.forEach(assert) + is LibraryExtension -> android.libraryVariants.forEach(assert) + } + } + } +} + +class JavaCompilerTaskTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + assertNotNull(AGP.run { variant.javaCompilerTask }) + } +} + +class PreBuildTaskTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + assertNotNull(AGP.run { variant.preBuildTask }) + } +} + +class AssembleTaskTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + assertNotNull(AGP.run { variant.assembleTask }) + } +} + +class MergeAssetsTaskTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + assertNotNull(AGP.run { variant.mergeAssetsTask }) + } +} + +class MergeResourcesTaskTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + assertNotNull(AGP.run { variant.mergeResourcesTask }) + } +} + +class GetTaskNameTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + assertEquals("assemble${variant.name.capitalize()}", AGP.run { variant.getTaskName("assemble") }) + } +} + + +class GetTaskName2TestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + assertEquals("merge${variant.name.capitalize()}Resources", AGP.run { variant.getTaskName("merge", "Resources") }) + } +} + +class VariantDataTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + assertNotNull(AGP.run { variant.variantData }) + } +} + +class VariantScopeTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + assertNotNull(AGP.run { variant.variantScope }) + } +} + +class OriginalApplicationIdTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + assertNotNull(AGP.run { variant.originalApplicationId }) + } +} + +class HasDynamicFeatureTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + assertFalse(AGP.run { variant.hasDynamicFeature }) + } +} + +class RawAndroidResourcesTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + AGP.run { variant.assembleTask }.doFirst { + val rawAndroidResources = AGP.run { variant.rawAndroidResources } + assertNotNull(rawAndroidResources) + if (rawAndroidResources.isEmpty()) { + fail("rawAndroidResources is empty") + } + rawAndroidResources.forEach { + println(" - ${it.path}") + } + } + } +} + +class AllArtifactsTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + AGP.run { variant.assembleTask }.doFirst { + val allArtifacts = AGP.run { variant.allArtifacts } + assertNotNull(allArtifacts) + if (allArtifacts.isEmpty()) { + fail("allArtifacts is empty") + } + allArtifacts.forEach { (k, v) -> + println(" - $k => $v") + } + } + } +} + +class MinSdkVersionTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + val minSdkVersion = AGP.run { variant.minSdkVersion } + assertNotNull(minSdkVersion) + assertEquals(MIN_SDK_VERSION, minSdkVersion.apiLevel) + } +} + +class TargetSdkVersionTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + val targetSdkVersion = AGP.run { variant.targetSdkVersion } + assertNotNull(targetSdkVersion) + assertEquals(TARGET_SDK_VERSION, targetSdkVersion.apiLevel) + } +} + +class VariantTypeTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + val project = AGP.run { variant.project } + val variantType = AGP.run { variant.variantType } + if (project.plugins.hasPlugin("com.android.application")) { + assertEquals(VariantTypeImpl.BASE_APK, variantType) + } else if (project.plugins.hasPlugin("com.android.library")) { + assertEquals(VariantTypeImpl.LIBRARY, variantType) + } + } +} + +class AarTestUnit : VariantTestCase() { + override fun apply(project: Project) { + if (project.plugins.hasPlugin("com.android.library")) { + super.apply(project) + } + } + + override fun apply(variant: BaseVariant) { + AGP.run { variant.assembleTask }.doFirst { + val aar = AGP.run { variant.aar }.search { + it.extension == "aar" + } + if (aar.isEmpty()) { + fail("aar is empty") + } + aar.forEach { + println(" - ${it.path}") + } + } + } +} + +class ApkTestUnit : VariantTestCase() { + override fun apply(project: Project) { + if (project.plugins.hasPlugin("com.android.application")) { + super.apply(project) + } + } + + override fun apply(variant: BaseVariant) { + AGP.run { variant.assembleTask }.doFirst { + val apk = AGP.run { variant.apk }.search { + it.extension == "apk" + } + if (apk.isEmpty()) { + fail("apk is empty") + } + apk.forEach { + println(" - ${it.path}") + } + } + } +} + +class MergedManifestsTestUnit : VariantTestCase() { + override fun apply(project: Project) { + if (project.plugins.hasPlugin("com.android.application")) { + super.apply(project) + } + } + + override fun apply(variant: BaseVariant) { + AGP.run { variant.assembleTask }.doFirst { + val mergedManifests = AGP.run { variant.mergedManifests }.search { + it.name == "AndroidManifest.xml" + } + if (mergedManifests.isEmpty()) { + fail("mergedManifests is empty") + } + mergedManifests.forEach { + println(" - ${it.path}") + } + } + } +} + +class MergedResourcesTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + AGP.run { variant.assembleTask }.doFirst { + val mergedResources = AGP.run { variant.mergedRes } + if (mergedResources.isEmpty()) { + fail("mergedRes is empty") + } + mergedResources.forEach { + println(" - ${it.path}") + } + } + } +} + +class MergedAssetsTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + AGP.run { variant.assembleTask }.doFirst { + val mergedAssets = AGP.run { variant.mergedAssets } + if (mergedAssets.isEmpty()) { + fail("mergedAssets is empty") + } + mergedAssets.forEach { + println(" - ${it.path}") + } + } + } +} + +class ProcessedResTestUnit : VariantTestCase() { + override fun apply(project: Project) { + if (project.plugins.hasPlugin("com.android.application")) { + super.apply(project) + } + } + + override fun apply(variant: BaseVariant) { + AGP.run { variant.assembleTask }.doFirst { + val processedRes = AGP.run { variant.processedRes }.search { + it.extension == "ap_" + } + if (processedRes.isEmpty()) { + fail("processedRes is empty") + } + processedRes.forEach { + println(" - ${it.path}") + } + } + } +} + +class SymbolListTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + AGP.run { variant.assembleTask }.doFirst { + val symbolList = AGP.run { variant.symbolList } + if (symbolList.isEmpty()) { + fail("symbolList is empty") + } + symbolList.forEach { + println(" - ${it.path}") + } + } + } +} + +class SymbolListWithPackageNameTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + AGP.run { variant.assembleTask }.doFirst { + val symbolListWithPackageName = AGP.run { variant.symbolListWithPackageName } + if (symbolListWithPackageName.isEmpty()) { + fail("symbolListWithPackageName is empty") + } + symbolListWithPackageName.forEach { + println(" - ${it.path}") + } + } + } +} + +class AllClassesTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + AGP.run { variant.assembleTask }.doFirst { + val location = AGP.run { variant.allClasses }.files + assertTrue("ALL_CLASSES: $location", location::isNotEmpty) + assertTrue("No class file found at $location") { + location.search(File::isFile).isNotEmpty() + } + } + } +} diff --git a/booster-android-gradle-v7_3/src/integrationTest/resources/app.gradle b/booster-android-gradle-v7_3/src/integrationTest/resources/app.gradle new file mode 100644 index 000000000..a9db67a64 --- /dev/null +++ b/booster-android-gradle-v7_3/src/integrationTest/resources/app.gradle @@ -0,0 +1,60 @@ +buildscript { + repositories { + mavenLocal() + mavenCentral() + google() + maven { url 'https://oss.sonatype.org/content/repositories/public/' } + maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } + } + dependencies { + classpath "com.android.tools.build:gradle:${project.android_gradle_version}" + classpath("com.didiglobal.booster:booster-gradle-plugin:${project.booster_version}") { + exclude group: 'com.google.guava' + } + classpath "io.bootstage.testkit:testkit-gradle-plugin:1.1.0" + } +} + +apply plugin: 'com.android.application' +apply plugin: 'com.didiglobal.booster' +apply plugin: 'io.bootstage.testkit' + +android { + compileSdkVersion project.compile_sdk_version as Integer + buildToolsVersion project.build_tools_version + defaultConfig { + applicationId 'com.didiglobal.booster.test' + minSdkVersion project.min_sdk_version as Integer + targetSdkVersion project.target_sdk_version as Integer + versionCode 1 + versionName "1.0" + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + } + buildTypes { + debug { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + } + } + flavorDimensions 'lang' + productFlavors { + en { + dimension 'lang' + applicationIdSuffix '.en' + } + cn { + dimension 'lang' + applicationIdSuffix '.cn' + } + } + lintOptions { + checkReleaseBuilds false + } +} + +repositories { + mavenLocal() + mavenCentral() + google() + maven { url 'https://oss.sonatype.org/content/repositories/public/' } +} diff --git a/booster-android-gradle-v7_3/src/integrationTest/resources/buildSrc/build.gradle b/booster-android-gradle-v7_3/src/integrationTest/resources/buildSrc/build.gradle new file mode 100644 index 000000000..bb9648dce --- /dev/null +++ b/booster-android-gradle-v7_3/src/integrationTest/resources/buildSrc/build.gradle @@ -0,0 +1,24 @@ +buildscript { + repositories { + mavenLocal() + mavenCentral() + google() + maven { url 'https://oss.sonatype.org/content/repositories/public/' } + maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } + } +} + +repositories { + mavenLocal() + mavenCentral() + google() + maven { url 'https://oss.sonatype.org/content/repositories/public/' } +} + +dependencies { + implementation "com.android.tools.build:gradle:${project.android_gradle_version}" + implementation("com.didiglobal.booster:booster-android-gradle-api:${project.booster_version}") { + exclude group: 'com.google.guava' + } + implementation "io.bootstage.testkit:testkit-gradle-plugin:1.1.0" +} diff --git a/booster-android-gradle-v7_3/src/integrationTest/resources/lib.gradle b/booster-android-gradle-v7_3/src/integrationTest/resources/lib.gradle new file mode 100644 index 000000000..64a9540e9 --- /dev/null +++ b/booster-android-gradle-v7_3/src/integrationTest/resources/lib.gradle @@ -0,0 +1,57 @@ +buildscript { + repositories { + mavenLocal() + mavenCentral() + google() + maven { url 'https://oss.sonatype.org/content/repositories/public/' } + maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } + } + dependencies { + classpath "com.android.tools.build:gradle:${project.android_gradle_version}" + classpath("com.didiglobal.booster:booster-gradle-plugin:${project.booster_version}") { + exclude group: 'com.google.guava' + } + classpath "io.bootstage.testkit:testkit-gradle-plugin:1.1.0" + } +} + +apply plugin: 'com.android.library' +apply plugin: 'com.didiglobal.booster' +apply plugin: 'io.bootstage.testkit' + +android { + compileSdkVersion project.compile_sdk_version as Integer + buildToolsVersion project.build_tools_version + defaultConfig { + minSdkVersion project.min_sdk_version as Integer + targetSdkVersion project.target_sdk_version as Integer + versionCode 1 + versionName "1.0" + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + } + buildTypes { + debug { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + } + } + flavorDimensions 'lang' + productFlavors { + en { + dimension 'lang' + } + cn { + dimension 'lang' + } + } + lintOptions { + checkReleaseBuilds false + } +} + +repositories { + mavenLocal() + mavenCentral() + google() + maven { url 'https://oss.sonatype.org/content/repositories/public/' } +} diff --git a/booster-android-gradle-v7_3/src/integrationTest/resources/src/main/AndroidManifest.xml b/booster-android-gradle-v7_3/src/integrationTest/resources/src/main/AndroidManifest.xml new file mode 100644 index 000000000..30800c604 --- /dev/null +++ b/booster-android-gradle-v7_3/src/integrationTest/resources/src/main/AndroidManifest.xml @@ -0,0 +1,9 @@ + + + + + + \ No newline at end of file diff --git a/booster-android-gradle-v7_3/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/MainActivity.java b/booster-android-gradle-v7_3/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/MainActivity.java new file mode 100644 index 000000000..0eb4ec7b4 --- /dev/null +++ b/booster-android-gradle-v7_3/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/MainActivity.java @@ -0,0 +1,6 @@ +package com.didiglobal.booster.android.test; + +import android.app.Activity; + +public class MainActivity extends Activity { +} \ No newline at end of file diff --git a/booster-android-gradle-v7_3/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/TestApplication.java b/booster-android-gradle-v7_3/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/TestApplication.java new file mode 100644 index 000000000..3ecfb1507 --- /dev/null +++ b/booster-android-gradle-v7_3/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/TestApplication.java @@ -0,0 +1,7 @@ +package com.didiglobal.booster.android.test; + +import android.app.Application; + +public class TestApplication extends Application { + +} \ No newline at end of file diff --git a/booster-android-gradle-v7_3/src/integrationTest/resources/src/main/res/values/strings.xml b/booster-android-gradle-v7_3/src/integrationTest/resources/src/main/res/values/strings.xml new file mode 100644 index 000000000..8b2247616 --- /dev/null +++ b/booster-android-gradle-v7_3/src/integrationTest/resources/src/main/res/values/strings.xml @@ -0,0 +1,4 @@ + + + Test + \ No newline at end of file diff --git a/booster-android-gradle-v7_3/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_3/V73.kt b/booster-android-gradle-v7_3/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_3/V73.kt new file mode 100644 index 000000000..fefa4d24a --- /dev/null +++ b/booster-android-gradle-v7_3/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_3/V73.kt @@ -0,0 +1,307 @@ +package com.didiglobal.booster.android.gradle.v7_3 + +import com.android.build.api.artifact.Artifact +import com.android.build.api.artifact.MultipleArtifact +import com.android.build.api.artifact.SingleArtifact +import com.android.build.api.artifact.impl.ArtifactsImpl +import com.android.build.api.component.impl.ComponentImpl +import com.android.build.api.transform.Context +import com.android.build.api.transform.QualifiedContent +import com.android.build.gradle.api.ApplicationVariant +import com.android.build.gradle.api.BaseVariant +import com.android.build.gradle.api.LibraryVariant +import com.android.build.gradle.internal.api.BaseVariantImpl +import com.android.build.gradle.internal.api.artifact.SourceArtifactType +import com.android.build.gradle.internal.pipeline.TransformManager +import com.android.build.gradle.internal.pipeline.TransformTask +import com.android.build.gradle.internal.publishing.AndroidArtifacts +import com.android.build.gradle.internal.publishing.AndroidArtifacts.ArtifactScope +import com.android.build.gradle.internal.scope.BuildArtifactType +import com.android.build.gradle.internal.scope.InternalArtifactType +import com.android.build.gradle.internal.scope.InternalMultipleArtifactType +import com.android.build.gradle.internal.scope.VariantScope +import com.android.build.gradle.internal.tasks.factory.GlobalTaskCreationConfigImpl +import com.android.build.gradle.internal.variant.BaseVariantData +import com.android.builder.core.DefaultApiVersion +import com.android.builder.model.ApiVersion +import com.android.sdklib.BuildToolInfo +import com.didiglobal.booster.gradle.AGPInterface +import org.gradle.api.Project +import org.gradle.api.Task +import org.gradle.api.artifacts.ArtifactCollection +import org.gradle.api.artifacts.component.ComponentIdentifier +import org.gradle.api.artifacts.result.ResolvedArtifactResult +import org.gradle.api.artifacts.result.ResolvedDependencyResult +import org.gradle.api.file.FileCollection +import org.gradle.api.file.FileSystemLocation +import org.gradle.api.tasks.TaskProvider +import java.io.File +import java.util.TreeMap + +@Suppress("UnstableApiUsage") +private val SINGLE_ARTIFACT_TYPES = arrayOf( + BuildArtifactType::class, + InternalArtifactType::class, + SingleArtifact::class, + SourceArtifactType::class +).map { + it.sealedSubclasses +}.flatten().map { + it.objectInstance as Artifact.Single +}.associateBy { + it.javaClass.simpleName +} + +private val MULTIPLE_ARTIFACT_TYPES = arrayOf( + MultipleArtifact::class, + InternalMultipleArtifactType::class +).map { + it.sealedSubclasses +}.flatten().map { + it.objectInstance as Artifact.Multiple +}.associateBy { + it.javaClass.simpleName +} + +@Suppress("DEPRECATION") +internal object V73 : AGPInterface { + + private val BaseVariant.component: ComponentImpl + get() = BaseVariantImpl::class.java.getDeclaredField("component").apply { + isAccessible = true + }.get(this) as ComponentImpl + + @Suppress("UnstableApiUsage") + private fun BaseVariant.getFinalArtifactFiles(type: Artifact.Single): FileCollection { + return try { + project.objects.fileCollection().from(artifacts.get(type)) + } catch (e: Throwable) { + project.objects.fileCollection().builtBy(artifacts.get(type)) + } + } + + @Suppress("UnstableApiUsage") + private fun BaseVariant.getFinalArtifactFiles(type: Artifact.Multiple): FileCollection { + return try { + project.objects.fileCollection().from(artifacts.getAll(type)) + } catch (e: Throwable) { + project.objects.fileCollection().builtBy(artifacts.getAll(type)) + } + } + + private inline fun Sequence.firstOfOrNull(transform: (T) -> R?): R? { + for (element in this) { + val result = transform(element) + if (result != null) { + return result + } + } + return null + } + + @Suppress("UnstableApiUsage") + private val BaseVariant.artifacts: ArtifactsImpl + get() = component.artifacts + + override val scopeFullWithFeatures: MutableSet + get() = TransformManager.SCOPE_FULL_WITH_FEATURES + + override val scopeFullLibraryWithFeatures: MutableSet + get() = (TransformManager.SCOPE_FEATURES + QualifiedContent.Scope.PROJECT).toMutableSet() + + override val BaseVariant.project: Project + get() = component.variantDependencies.run { + javaClass.getDeclaredField("project").apply { + isAccessible = true + }.get(this) as Project + } + + override val BaseVariant.javaCompilerTaskProvider: TaskProvider + get() = javaCompileProvider + + override val BaseVariant.preBuildTaskProvider: TaskProvider + get() = preBuildProvider + + override val BaseVariant.assembleTaskProvider: TaskProvider + get() = assembleProvider + + override val BaseVariant.mergeAssetsTaskProvider: TaskProvider + get() = mergeAssetsProvider + + override val BaseVariant.mergeResourcesTaskProvider: TaskProvider + get() = try { + project.tasks.named(getTaskName("merge", "Resources")) + } catch (e: Throwable) { + mergeResourcesProvider + } + + override val BaseVariant.mergeNativeLibsTaskProvider: TaskProvider + get() = project.tasks.named(getTaskName("merge", "NativeLibs")) + + override val BaseVariant.processJavaResourcesTaskProvider: TaskProvider + get() = processJavaResourcesProvider + + override fun BaseVariant.getTaskName(prefix: String): String { + return component.computeTaskName(prefix) + } + + override fun BaseVariant.getTaskName(prefix: String, suffix: String): String { + return component.computeTaskName(prefix, suffix) + } + + override val BaseVariant.variantData: BaseVariantData + get() = javaClass.getDeclaredMethod("getVariantData").apply { + isAccessible = true + }.invoke(this) as BaseVariantData + + override val BaseVariant.variantScope: VariantScope + get() = component.variantScope + + @Suppress("DEPRECATION") + private val BaseVariant.globalScope: GlobalTaskCreationConfigImpl + get() = component.global as GlobalTaskCreationConfigImpl + + override val BaseVariant.originalApplicationId: String + get() = component.namespace.get() + + override val BaseVariant.hasDynamicFeature: Boolean + get() = component.global.hasDynamicFeatures + + override val BaseVariant.rawAndroidResources: FileCollection + get() = ComponentImpl::class.java.getDeclaredField("allRawAndroidResources").apply { + isAccessible = true + }.get(component) as FileCollection + + override fun BaseVariant.getArtifactCollection( + configType: AndroidArtifacts.ConsumedConfigType, + scope: ArtifactScope, + artifactType: AndroidArtifacts.ArtifactType + ): ArtifactCollection { + return component.variantDependencies.getArtifactCollection(configType, scope, artifactType) + } + + override fun BaseVariant.getArtifactFileCollection( + configType: AndroidArtifacts.ConsumedConfigType, + scope: ArtifactScope, + artifactType: AndroidArtifacts.ArtifactType + ): FileCollection { + return component.variantDependencies.getArtifactFileCollection(configType, scope, artifactType) + } + + override val BaseVariant.allArtifacts: Map + get() = TreeMap().also { all -> + SINGLE_ARTIFACT_TYPES.entries.associateTo(all) { (name, type) -> + val artifacts: FileCollection by lazy { + getFinalArtifactFiles(type) + } + name to artifacts + } + MULTIPLE_ARTIFACT_TYPES.entries.associateTo(all) { (name, type) -> + val artifacts: FileCollection by lazy { + getFinalArtifactFiles(type) + } + name to artifacts + } + } + + override val BaseVariant.minSdkVersion: ApiVersion + get() = DefaultApiVersion(component.minSdkVersion.apiLevel) + + override val BaseVariant.targetSdkVersion: ApiVersion + get() = DefaultApiVersion(component.targetSdkVersion.apiLevel) + + override val BaseVariant.isApplication: Boolean + get() = component.componentType.isApk + + override val BaseVariant.isLibrary: Boolean + get() = component.componentType.isAar + + override val BaseVariant.isDynamicFeature: Boolean + get() = component.componentType.isDynamicFeature + + override val BaseVariant.aar: FileCollection + get() = getFinalArtifactFiles(SingleArtifact.AAR) + + override val BaseVariant.apk: FileCollection + get() = getFinalArtifactFiles(SingleArtifact.APK) + + override val BaseVariant.mergedManifests: FileCollection + get() = getFinalArtifactFiles(SingleArtifact.MERGED_MANIFEST) + + override val BaseVariant.mergedRes: FileCollection + get() = getFinalArtifactFiles(InternalArtifactType.MERGED_RES) + + override val BaseVariant.mergedNativeLibs: FileCollection + get() = getFinalArtifactFiles(InternalArtifactType.MERGED_NATIVE_LIBS) + + override val BaseVariant.mergedAssets: FileCollection + get() = when (this) { + is ApplicationVariant -> getFinalArtifactFiles(InternalArtifactType.COMPRESSED_ASSETS) + is LibraryVariant -> getFinalArtifactFiles(InternalArtifactType.LIBRARY_ASSETS) + else -> TODO("Unsupported variant type: $name") + } + + override val BaseVariant.processedRes: FileCollection + get() = getFinalArtifactFiles(InternalArtifactType.PROCESSED_RES) + + override val BaseVariant.symbolList: FileCollection + get() = when (this) { + is ApplicationVariant -> getFinalArtifactFiles(InternalArtifactType.RUNTIME_SYMBOL_LIST) + is LibraryVariant -> getFinalArtifactFiles(InternalArtifactType.COMPILE_SYMBOL_LIST) + else -> TODO("Unsupported variant type : $name") + } + + override val BaseVariant.symbolListWithPackageName: FileCollection + get() = getFinalArtifactFiles(InternalArtifactType.SYMBOL_LIST_WITH_PACKAGE_NAME) + + override val BaseVariant.dataBindingDependencyArtifacts: FileCollection + get() = getFinalArtifactFiles(InternalArtifactType.DATA_BINDING_DEPENDENCY_ARTIFACTS) + + override val BaseVariant.allClasses: FileCollection + get() = when (this) { + is ApplicationVariant -> getFinalArtifactFiles(InternalArtifactType.JAVAC) + project.files("build${File.separator}tmp${File.separator}kotlin-classes${File.separator}${dirName}") + is LibraryVariant -> getFinalArtifactFiles(InternalArtifactType.COMPILE_LIBRARY_CLASSES_JAR) + else -> project.files() + } + + override val BaseVariant.buildTools: BuildToolInfo + get() = globalScope.versionedSdkLoader.get().buildToolInfoProvider.get() + + override val BaseVariant.isPrecompileDependenciesResourcesEnabled: Boolean + get() = component.isPrecompileDependenciesResourcesEnabled + + override fun BaseVariant.getDependencies(transitive: Boolean, filter: (ComponentIdentifier) -> Boolean): Collection { + val all = getArtifactCollection( + AndroidArtifacts.ConsumedConfigType.RUNTIME_CLASSPATH, + AndroidArtifacts.ArtifactScope.ALL, + AndroidArtifacts.ArtifactType.CLASSES_JAR + ).filter { result -> + filter(result.id.componentIdentifier) + }.associateBy { + it.id.componentIdentifier.displayName + } + val result = if (!transitive) { + runtimeConfiguration.incoming.resolutionResult.root.dependencies.filterIsInstance().mapNotNull { + it.selected.id.displayName.takeIf { id -> id in all.keys } + }.associateWith { + all[it]!! + } + } else { + all + } + return result.values.toSet() + } + + override val Context.task: TransformTask + get() = javaClass.getDeclaredField("this$1").apply { + isAccessible = true + }.get(this).run { + javaClass.getDeclaredField("this$0").apply { + isAccessible = true + }.get(this) + } as TransformTask + + override val Project.aapt2Enabled: Boolean + get() = true + +} diff --git a/booster-android-gradle-v7_3/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_3/V73Factory.kt b/booster-android-gradle-v7_3/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_3/V73Factory.kt new file mode 100644 index 000000000..4af833baa --- /dev/null +++ b/booster-android-gradle-v7_3/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_3/V73Factory.kt @@ -0,0 +1,15 @@ +package com.didiglobal.booster.android.gradle.v7_3 + +import com.android.repository.Revision +import com.didiglobal.booster.gradle.AGPInterface +import com.didiglobal.booster.gradle.AGPInterfaceFactory +import com.google.auto.service.AutoService + +@AutoService(AGPInterfaceFactory::class) +class V73Factory : AGPInterfaceFactory { + + override val revision: Revision = Revision(7, 3, 0) + + override fun newAGPInterface(): AGPInterface = V73 + +} diff --git a/booster-transform-activity-thread/src/main/kotlin/com/didiglobal/booster/transform/activitythread/ActivityThreadVarinatProcessor.kt b/booster-transform-activity-thread/src/main/kotlin/com/didiglobal/booster/transform/activitythread/ActivityThreadVarinatProcessor.kt index 19b6ecc8d..907be99b6 100644 --- a/booster-transform-activity-thread/src/main/kotlin/com/didiglobal/booster/transform/activitythread/ActivityThreadVarinatProcessor.kt +++ b/booster-transform-activity-thread/src/main/kotlin/com/didiglobal/booster/transform/activitythread/ActivityThreadVarinatProcessor.kt @@ -2,8 +2,8 @@ package com.didiglobal.booster.transform.activitythread import com.android.build.gradle.api.BaseVariant import com.android.build.gradle.api.LibraryVariant +import com.didiglobal.booster.gradle.isDynamicFeature import com.didiglobal.booster.gradle.project -import com.didiglobal.booster.gradle.variantType import com.didiglobal.booster.task.spi.VariantProcessor import com.didiglobal.booster.transform.activity.thread.Build import com.google.auto.service.AutoService @@ -15,7 +15,7 @@ import com.google.auto.service.AutoService class ActivityThreadVarinatProcessor : VariantProcessor { override fun process(variant: BaseVariant) { - if (variant !is LibraryVariant && !variant.variantType.isDynamicFeature) { + if (variant !is LibraryVariant && !variant.isDynamicFeature) { variant.project.dependencies.add("implementation", "${Build.GROUP}:booster-android-instrument-activity-thread:${Build.VERSION}") } } diff --git a/booster-transform-finalizer-watchdog-daemon/src/main/kotlin/com/didiglobal/booster/transform/finalizer/watchdog/daemon/FinalizerWatchdogDaemonVariantProcessor.kt b/booster-transform-finalizer-watchdog-daemon/src/main/kotlin/com/didiglobal/booster/transform/finalizer/watchdog/daemon/FinalizerWatchdogDaemonVariantProcessor.kt index b7b84389f..961f9fb1e 100644 --- a/booster-transform-finalizer-watchdog-daemon/src/main/kotlin/com/didiglobal/booster/transform/finalizer/watchdog/daemon/FinalizerWatchdogDaemonVariantProcessor.kt +++ b/booster-transform-finalizer-watchdog-daemon/src/main/kotlin/com/didiglobal/booster/transform/finalizer/watchdog/daemon/FinalizerWatchdogDaemonVariantProcessor.kt @@ -2,8 +2,8 @@ package com.didiglobal.booster.transform.finalizer.watchdog.daemon import com.android.build.gradle.api.BaseVariant import com.android.build.gradle.api.LibraryVariant +import com.didiglobal.booster.gradle.isDynamicFeature import com.didiglobal.booster.gradle.project -import com.didiglobal.booster.gradle.variantType import com.didiglobal.booster.task.spi.VariantProcessor import com.google.auto.service.AutoService @@ -14,7 +14,7 @@ import com.google.auto.service.AutoService class FinalizerWatchdogDaemonVariantProcessor : VariantProcessor { override fun process(variant: BaseVariant) { - if (variant !is LibraryVariant && !variant.variantType.isDynamicFeature) { + if (variant !is LibraryVariant && !variant.isDynamicFeature) { variant.project.dependencies.add("implementation", "${Build.GROUP}:booster-android-instrument-finalizer-watchdog-daemon:${Build.VERSION}") } } diff --git a/booster-transform-logcat/src/main/kotlin/com/didiglobal/booster/transform/logcat/LogcatVarinatProcessor.kt b/booster-transform-logcat/src/main/kotlin/com/didiglobal/booster/transform/logcat/LogcatVarinatProcessor.kt index 708a3de59..aac8884b9 100644 --- a/booster-transform-logcat/src/main/kotlin/com/didiglobal/booster/transform/logcat/LogcatVarinatProcessor.kt +++ b/booster-transform-logcat/src/main/kotlin/com/didiglobal/booster/transform/logcat/LogcatVarinatProcessor.kt @@ -2,8 +2,8 @@ package com.didiglobal.booster.transform.logcat import com.android.build.gradle.api.BaseVariant import com.android.build.gradle.api.LibraryVariant +import com.didiglobal.booster.gradle.isDynamicFeature import com.didiglobal.booster.gradle.project -import com.didiglobal.booster.gradle.variantType import com.didiglobal.booster.task.spi.VariantProcessor import com.google.auto.service.AutoService @@ -14,7 +14,7 @@ import com.google.auto.service.AutoService class LogcatVarinatProcessor : VariantProcessor { override fun process(variant: BaseVariant) { - if (variant !is LibraryVariant && !variant.variantType.isDynamicFeature) { + if (variant !is LibraryVariant && !variant.isDynamicFeature) { variant.project.dependencies.add("implementation", "${Build.GROUP}:booster-android-instrument-logcat:${Build.VERSION}") } } diff --git a/booster-transform-media-player/src/main/kotlin/com/didiglobal/booster/transform/mediaplayer/MediaPlayerVarinatProcessor.kt b/booster-transform-media-player/src/main/kotlin/com/didiglobal/booster/transform/mediaplayer/MediaPlayerVarinatProcessor.kt index 5a4a1d8e4..c6501227e 100644 --- a/booster-transform-media-player/src/main/kotlin/com/didiglobal/booster/transform/mediaplayer/MediaPlayerVarinatProcessor.kt +++ b/booster-transform-media-player/src/main/kotlin/com/didiglobal/booster/transform/mediaplayer/MediaPlayerVarinatProcessor.kt @@ -2,8 +2,8 @@ package com.didiglobal.booster.transform.mediaplayer import com.android.build.gradle.api.BaseVariant import com.android.build.gradle.api.LibraryVariant +import com.didiglobal.booster.gradle.isDynamicFeature import com.didiglobal.booster.gradle.project -import com.didiglobal.booster.gradle.variantType import com.didiglobal.booster.task.spi.VariantProcessor import com.didiglobal.booster.transform.media.player.Build import com.google.auto.service.AutoService @@ -15,7 +15,7 @@ import com.google.auto.service.AutoService class MediaPlayerVarinatProcessor : VariantProcessor { override fun process(variant: BaseVariant) { - if (variant !is LibraryVariant && !variant.variantType.isDynamicFeature) { + if (variant !is LibraryVariant && !variant.isDynamicFeature) { variant.project.dependencies.add("implementation", "${Build.GROUP}:booster-android-instrument-media-player:${Build.VERSION}") } } diff --git a/booster-transform-res-check/src/main/kotlin/com/didiglobal/booster/transform/res/check/ResCheckVarinatProcessor.kt b/booster-transform-res-check/src/main/kotlin/com/didiglobal/booster/transform/res/check/ResCheckVarinatProcessor.kt index 4f998cd0b..e1b9ecd15 100644 --- a/booster-transform-res-check/src/main/kotlin/com/didiglobal/booster/transform/res/check/ResCheckVarinatProcessor.kt +++ b/booster-transform-res-check/src/main/kotlin/com/didiglobal/booster/transform/res/check/ResCheckVarinatProcessor.kt @@ -2,8 +2,8 @@ package com.didiglobal.booster.transform.res.check import com.android.build.gradle.api.BaseVariant import com.android.build.gradle.api.LibraryVariant +import com.didiglobal.booster.gradle.isDynamicFeature import com.didiglobal.booster.gradle.project -import com.didiglobal.booster.gradle.variantType import com.didiglobal.booster.task.spi.VariantProcessor import com.google.auto.service.AutoService @@ -14,7 +14,7 @@ import com.google.auto.service.AutoService class ResCheckVarinatProcessor : VariantProcessor { override fun process(variant: BaseVariant) { - if (variant !is LibraryVariant && !variant.variantType.isDynamicFeature) { + if (variant !is LibraryVariant && !variant.isDynamicFeature) { variant.project.dependencies.add("implementation", "${Build.GROUP}:booster-android-instrument-res-check:${Build.VERSION}") } } diff --git a/booster-transform-shared-preferences/src/main/kotlin/com/didiglobal/booster/transform/sharedpreferences/SharedPreferencesVariantProcessor.kt b/booster-transform-shared-preferences/src/main/kotlin/com/didiglobal/booster/transform/sharedpreferences/SharedPreferencesVariantProcessor.kt index 6e25cfb5a..1f4398b5d 100644 --- a/booster-transform-shared-preferences/src/main/kotlin/com/didiglobal/booster/transform/sharedpreferences/SharedPreferencesVariantProcessor.kt +++ b/booster-transform-shared-preferences/src/main/kotlin/com/didiglobal/booster/transform/sharedpreferences/SharedPreferencesVariantProcessor.kt @@ -2,8 +2,8 @@ package com.didiglobal.booster.transform.sharedpreferences import com.android.build.gradle.api.BaseVariant import com.android.build.gradle.api.LibraryVariant +import com.didiglobal.booster.gradle.isDynamicFeature import com.didiglobal.booster.gradle.project -import com.didiglobal.booster.gradle.variantType import com.didiglobal.booster.task.spi.VariantProcessor import com.didiglobal.booster.transform.shared.preferences.Build import com.google.auto.service.AutoService @@ -15,7 +15,7 @@ import com.google.auto.service.AutoService class SharedPreferencesVariantProcessor : VariantProcessor { override fun process(variant: BaseVariant) { - if (variant !is LibraryVariant && !variant.variantType.isDynamicFeature) { + if (variant !is LibraryVariant && !variant.isDynamicFeature) { variant.project.dependencies.add("implementation", "${Build.GROUP}:booster-android-instrument-shared-preferences:${Build.VERSION}") } } diff --git a/booster-transform-thread/src/main/kotlin/com/didiglobal/booster/transform/thread/ThreadVariantProcessor.kt b/booster-transform-thread/src/main/kotlin/com/didiglobal/booster/transform/thread/ThreadVariantProcessor.kt index d234389fa..3d83a7e9b 100644 --- a/booster-transform-thread/src/main/kotlin/com/didiglobal/booster/transform/thread/ThreadVariantProcessor.kt +++ b/booster-transform-thread/src/main/kotlin/com/didiglobal/booster/transform/thread/ThreadVariantProcessor.kt @@ -2,8 +2,8 @@ package com.didiglobal.booster.transform.thread import com.android.build.gradle.api.BaseVariant import com.android.build.gradle.api.LibraryVariant +import com.didiglobal.booster.gradle.isDynamicFeature import com.didiglobal.booster.gradle.project -import com.didiglobal.booster.gradle.variantType import com.didiglobal.booster.task.spi.VariantProcessor import com.google.auto.service.AutoService @@ -11,7 +11,7 @@ import com.google.auto.service.AutoService class ThreadVariantProcessor : VariantProcessor { override fun process(variant: BaseVariant) { - if (variant !is LibraryVariant && !variant.variantType.isDynamicFeature) { + if (variant !is LibraryVariant && !variant.isDynamicFeature) { variant.project.dependencies.add("implementation", "${Build.GROUP}:booster-android-instrument-thread:${Build.VERSION}") } } diff --git a/booster-transform-toast/src/main/kotlin/com/didiglobal/booster/transform/toast/ToastVariantProcessor.kt b/booster-transform-toast/src/main/kotlin/com/didiglobal/booster/transform/toast/ToastVariantProcessor.kt index 089c44367..53cebfc94 100644 --- a/booster-transform-toast/src/main/kotlin/com/didiglobal/booster/transform/toast/ToastVariantProcessor.kt +++ b/booster-transform-toast/src/main/kotlin/com/didiglobal/booster/transform/toast/ToastVariantProcessor.kt @@ -2,8 +2,8 @@ package com.didiglobal.booster.transform.toast import com.android.build.gradle.api.BaseVariant import com.android.build.gradle.api.LibraryVariant +import com.didiglobal.booster.gradle.isDynamicFeature import com.didiglobal.booster.gradle.project -import com.didiglobal.booster.gradle.variantType import com.didiglobal.booster.task.spi.VariantProcessor import com.google.auto.service.AutoService @@ -11,7 +11,7 @@ import com.google.auto.service.AutoService class ToastVariantProcessor : VariantProcessor { override fun process(variant: BaseVariant) { - if (variant !is LibraryVariant && !variant.variantType.isDynamicFeature) { + if (variant !is LibraryVariant && !variant.isDynamicFeature) { variant.project.dependencies.add("implementation", "${Build.GROUP}:booster-android-instrument-toast:${Build.VERSION}") } } diff --git a/booster-transform-webview/src/main/kotlin/com/didiglobal/booster/transform/webview/WebViewVariantProcessor.kt b/booster-transform-webview/src/main/kotlin/com/didiglobal/booster/transform/webview/WebViewVariantProcessor.kt index a82eaf754..6f26acbb1 100644 --- a/booster-transform-webview/src/main/kotlin/com/didiglobal/booster/transform/webview/WebViewVariantProcessor.kt +++ b/booster-transform-webview/src/main/kotlin/com/didiglobal/booster/transform/webview/WebViewVariantProcessor.kt @@ -2,8 +2,8 @@ package com.didiglobal.booster.transform.webview import com.android.build.gradle.api.BaseVariant import com.android.build.gradle.api.LibraryVariant +import com.didiglobal.booster.gradle.isDynamicFeature import com.didiglobal.booster.gradle.project -import com.didiglobal.booster.gradle.variantType import com.didiglobal.booster.task.spi.VariantProcessor import com.google.auto.service.AutoService @@ -14,7 +14,7 @@ import com.google.auto.service.AutoService class WebViewVariantProcessor : VariantProcessor { override fun process(variant: BaseVariant) { - if (variant !is LibraryVariant && !variant.variantType.isDynamicFeature) { + if (variant !is LibraryVariant && !variant.isDynamicFeature) { variant.project.dependencies.add("implementation", "${Build.GROUP}:booster-android-instrument-webview:${Build.VERSION}") } } diff --git a/settings.gradle.kts b/settings.gradle.kts index 079edf992..930b66ece 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -39,6 +39,7 @@ include(":booster-android-gradle-v4_2") include(":booster-android-gradle-v7_0") include(":booster-android-gradle-v7_1") include(":booster-android-gradle-v7_2") +include(":booster-android-gradle-v7_3") include(":booster-annotations") include(":booster-api") include(":booster-build") From 1e13de621b60c94d37ce1dd75c27b5960b050d59 Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Fri, 2 Dec 2022 12:51:50 +0800 Subject: [PATCH 162/187] Fix integration tests --- .github/workflows/test.yml | 24 +++++++++++ .../didiglobal/booster/gradle/BaseVariant.kt | 1 + .../booster/gradle/TransformInvocation.kt | 4 ++ .../didiglobal/booster/gradle/AGPInterface.kt | 6 +++ .../android/gradle/v3_3/V33IntegrationTest.kt | 24 ++--------- .../android/gradle/v3_4/V34IntegrationTest.kt | 24 ++--------- .../android/gradle/v3_5/V35IntegrationTest.kt | 26 ++---------- .../booster/android/gradle/v3_5/V35.kt | 3 -- .../android/gradle/v3_6/V36IntegrationTest.kt | 24 ++--------- .../android/gradle/v4_0/V40IntegrationTest.kt | 24 ++--------- .../booster/android/gradle/v4_0/V40.kt | 3 -- .../android/gradle/v4_1/V41IntegrationTest.kt | 24 ++--------- .../booster/android/gradle/v4_1/V41.kt | 3 -- .../android/gradle/v4_2/V42IntegrationTest.kt | 24 ++--------- .../src/integrationTest/resources/app.gradle | 2 +- .../resources/buildSrc/build.gradle | 2 +- .../src/integrationTest/resources/lib.gradle | 2 +- .../booster/android/gradle/v4_2/V42.kt | 5 +-- .../android/gradle/v7_0/V70IntegrationTest.kt | 25 ++--------- .../src/integrationTest/resources/app.gradle | 2 +- .../resources/buildSrc/build.gradle | 2 +- .../src/integrationTest/resources/lib.gradle | 2 +- .../booster/android/gradle/v7_0/V70.kt | 5 +-- .../android/gradle/v7_1/V71IntegrationTest.kt | 25 ++--------- .../src/integrationTest/resources/app.gradle | 2 +- .../resources/buildSrc/build.gradle | 2 +- .../src/integrationTest/resources/lib.gradle | 2 +- .../booster/android/gradle/v7_1/V71.kt | 5 +-- .../android/gradle/v7_2/V72IntegrationTest.kt | 25 ++--------- .../src/integrationTest/resources/app.gradle | 2 +- .../resources/buildSrc/build.gradle | 2 +- .../src/integrationTest/resources/lib.gradle | 2 +- .../booster/android/gradle/v7_2/V72.kt | 5 +-- .../android/gradle/v7_3/V73IntegrationTest.kt | 33 ++++----------- .../src/integrationTest/resources/app.gradle | 2 +- .../resources/buildSrc/build.gradle | 2 +- .../src/integrationTest/resources/lib.gradle | 2 +- .../booster/android/gradle/v7_3/V73.kt | 42 ++++++++++++------- .../gradle/BoosterTransformInvocation.kt | 2 +- .../booster/gradle/ServiceLoader.kt | 18 +++----- .../didiglobal/booster/graph/dot/DotGraph.kt | 33 ++++++++------- gradle/booster.gradle | 12 +++++- gradle/functional-test.gradle | 8 +++- gradle/integration-test.gradle | 8 +++- 44 files changed, 168 insertions(+), 327 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index bfda9c705..c8a39a0ea 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -302,3 +302,27 @@ jobs: with: name: booster-android-gradle-v7_2 path: booster-android-gradle-v7_2/build/reports/tests/integrationTest + + integration-test-agp-v7_3: + name: AGP 7.3 Integration Test + needs: build + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-java@v3 + with: + distribution: 'adopt' + java-version: '11' + cache: 'gradle' + - uses: actions/cache@v3 + with: + path: ~/.m2 + key: ${{ runner.os }}-m2-${{ github.run_number }} + - shell: bash + run: ./gradlew booster-android-gradle-v7_3:integrationTest -S --no-daemon -Pversion=${{ github.run_number }} + - uses: actions/upload-artifact@v3 + if: failure() + with: + name: booster-android-gradle-v7_3 + path: booster-android-gradle-v7_3/build/reports/tests/integrationTest + diff --git a/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/BaseVariant.kt b/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/BaseVariant.kt index 97c0cad48..57472121f 100644 --- a/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/BaseVariant.kt +++ b/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/BaseVariant.kt @@ -14,6 +14,7 @@ import org.gradle.api.UnknownTaskException import org.gradle.api.artifacts.ArtifactCollection import org.gradle.api.artifacts.result.ResolvedArtifactResult import org.gradle.api.file.FileCollection +import org.gradle.api.provider.Provider import org.gradle.api.tasks.TaskProvider import java.io.File diff --git a/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/TransformInvocation.kt b/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/TransformInvocation.kt index adfb0b331..e0c513a3f 100644 --- a/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/TransformInvocation.kt +++ b/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/TransformInvocation.kt @@ -2,6 +2,7 @@ package com.didiglobal.booster.gradle import com.android.build.api.transform.TransformInvocation import com.android.build.gradle.api.BaseVariant +import com.android.builder.model.ApiVersion import org.gradle.api.Project import java.io.File @@ -21,6 +22,9 @@ val TransformInvocation.project: Project val TransformInvocation.variant: BaseVariant get() = AGP.run { variant } +val TransformInvocation.targetSdkVersion: ApiVersion + get() = AGP.run { variant.targetSdkVersion } + val TransformInvocation.bootClasspath: Collection get() = AGP.run { bootClasspath } diff --git a/booster-android-gradle-compat/src/main/kotlin/com/didiglobal/booster/gradle/AGPInterface.kt b/booster-android-gradle-compat/src/main/kotlin/com/didiglobal/booster/gradle/AGPInterface.kt index 96db2c72a..53622ef3c 100644 --- a/booster-android-gradle-compat/src/main/kotlin/com/didiglobal/booster/gradle/AGPInterface.kt +++ b/booster-android-gradle-compat/src/main/kotlin/com/didiglobal/booster/gradle/AGPInterface.kt @@ -96,10 +96,15 @@ interface AGPInterface { val BaseVariant.variantScope: VariantScope + @Deprecated( + message = "Use BaseVariant.namespace instead", + replaceWith = ReplaceWith(expression = "variant.namespace"), + ) val BaseVariant.originalApplicationId: String val BaseVariant.hasDynamicFeature: Boolean + @Deprecated(message = "Deprecated, don't use it") val BaseVariant.rawAndroidResources: FileCollection val BaseVariant.javaCompilerTaskProvider: TaskProvider @@ -181,6 +186,7 @@ interface AGPInterface { ) val Project.aapt2Enabled: Boolean + @Suppress("DEPRECATION") val Project.isAapt2Enabled: Boolean get() = aapt2Enabled diff --git a/booster-android-gradle-v3_3/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_3/V33IntegrationTest.kt b/booster-android-gradle-v3_3/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_3/V33IntegrationTest.kt index cdca9a74d..543283cce 100644 --- a/booster-android-gradle-v3_3/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_3/V33IntegrationTest.kt +++ b/booster-android-gradle-v3_3/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_3/V33IntegrationTest.kt @@ -6,7 +6,6 @@ import com.android.build.gradle.AppExtension import com.android.build.gradle.BaseExtension import com.android.build.gradle.LibraryExtension import com.android.build.gradle.api.BaseVariant -import com.android.builder.core.VariantTypeImpl import com.android.sdklib.BuildToolInfo import com.didiglobal.booster.gradle.AGP import com.didiglobal.booster.gradle.getAndroid @@ -31,12 +30,11 @@ import kotlin.test.assertNotNull import kotlin.test.assertTrue import kotlin.test.fail -private const val MIN_SDK_VERSION = 18 +private val MIN_SDK_VERSION = System.getProperty("android.minsdk.version").toInt() private const val TARGET_SDK_VERSION = 26 -private val ARGS = arrayOf( - "assemble", "-S", +private val ARGS = System.getProperty("gradle.args").split("\\s+".toRegex()) + listOf( "-Pbooster_version=${Build.VERSION}", "-Pandroid_gradle_version=3.3.0", "-Pcompile_sdk_version=28", @@ -53,7 +51,7 @@ abstract class V33IntegrationTest(private val isLib: Boolean) { @get:Rule val ruleChain: TestRule = rule(projectDir) { rule(LocalProperties(projectDir::getRoot)) { - GradleExecutor(projectDir::getRoot, "4.10.1", *ARGS) + GradleExecutor(projectDir::getRoot, "4.10.1", *ARGS.toTypedArray()) } } @@ -139,10 +137,6 @@ abstract class V33IntegrationTest(private val isLib: Boolean) { @Case(TargetSdkVersionTestUnit::class) fun `test AGPInterface#targetSdkVersion`() = Unit - @Test - @Case(VariantTypeTestUnit::class) - fun `test AGPInterface#variantType`() = Unit - @Test @Case(AarTestUnit::class) fun `test AGPInterface#aar`() = Unit @@ -328,18 +322,6 @@ class TargetSdkVersionTestUnit : VariantTestCase() { } } -class VariantTypeTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - val project = AGP.run { variant.project } - val variantType = AGP.run { variant.variantType } - if (project.plugins.hasPlugin("com.android.application")) { - assertEquals(VariantTypeImpl.BASE_APK, variantType) - } else if (project.plugins.hasPlugin("com.android.library")) { - assertEquals(VariantTypeImpl.LIBRARY, variantType) - } - } -} - class AarTestUnit : VariantTestCase() { override fun apply(project: Project) { if (project.plugins.hasPlugin("com.android.library")) { diff --git a/booster-android-gradle-v3_4/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_4/V34IntegrationTest.kt b/booster-android-gradle-v3_4/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_4/V34IntegrationTest.kt index e75fa5e03..eb400dda4 100644 --- a/booster-android-gradle-v3_4/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_4/V34IntegrationTest.kt +++ b/booster-android-gradle-v3_4/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_4/V34IntegrationTest.kt @@ -6,7 +6,6 @@ import com.android.build.gradle.AppExtension import com.android.build.gradle.BaseExtension import com.android.build.gradle.LibraryExtension import com.android.build.gradle.api.BaseVariant -import com.android.builder.core.VariantTypeImpl import com.android.sdklib.BuildToolInfo import com.didiglobal.booster.gradle.AGP import com.didiglobal.booster.gradle.getAndroid @@ -31,12 +30,11 @@ import kotlin.test.assertNotNull import kotlin.test.assertTrue import kotlin.test.fail -private const val MIN_SDK_VERSION = 18 +private val MIN_SDK_VERSION = System.getProperty("android.minsdk.version").toInt() private const val TARGET_SDK_VERSION = 26 -private val ARGS = arrayOf( - "assemble", "-S", +private val ARGS = System.getProperty("gradle.args").split("\\s+".toRegex()) + listOf( "-Pbooster_version=${Build.VERSION}", "-Pandroid_gradle_version=3.4.0", "-Pcompile_sdk_version=28", @@ -53,7 +51,7 @@ abstract class V34IntegrationTest(private val isLib: Boolean) { @get:Rule val ruleChain: TestRule = rule(projectDir) { rule(LocalProperties(projectDir::getRoot)) { - GradleExecutor(projectDir::getRoot, "5.1.1", *ARGS) + GradleExecutor(projectDir::getRoot, "5.1.1", *ARGS.toTypedArray()) } } @@ -139,10 +137,6 @@ abstract class V34IntegrationTest(private val isLib: Boolean) { @Case(TargetSdkVersionTestUnit::class) fun `test AGPInterface#targetSdkVersion`() = Unit - @Test - @Case(VariantTypeTestUnit::class) - fun `test AGPInterface#variantType`() = Unit - @Test @Case(AarTestUnit::class) fun `test AGPInterface#aar`() = Unit @@ -328,18 +322,6 @@ class TargetSdkVersionTestUnit : VariantTestCase() { } } -class VariantTypeTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - val project = AGP.run { variant.project } - val variantType = AGP.run { variant.variantType } - if (project.plugins.hasPlugin("com.android.application")) { - assertEquals(VariantTypeImpl.BASE_APK, variantType) - } else if (project.plugins.hasPlugin("com.android.library")) { - assertEquals(VariantTypeImpl.LIBRARY, variantType) - } - } -} - class AarTestUnit : VariantTestCase() { override fun apply(project: Project) { if (project.plugins.hasPlugin("com.android.library")) { diff --git a/booster-android-gradle-v3_5/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_5/V35IntegrationTest.kt b/booster-android-gradle-v3_5/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_5/V35IntegrationTest.kt index de074837c..6107e68e6 100644 --- a/booster-android-gradle-v3_5/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_5/V35IntegrationTest.kt +++ b/booster-android-gradle-v3_5/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_5/V35IntegrationTest.kt @@ -6,7 +6,6 @@ import com.android.build.gradle.AppExtension import com.android.build.gradle.BaseExtension import com.android.build.gradle.LibraryExtension import com.android.build.gradle.api.BaseVariant -import com.android.builder.core.VariantTypeImpl import com.android.sdklib.BuildToolInfo import com.didiglobal.booster.gradle.AGP import com.didiglobal.booster.gradle.getAndroid @@ -31,18 +30,17 @@ import kotlin.test.assertNotNull import kotlin.test.assertTrue import kotlin.test.fail -private const val MIN_SDK_VERSION = 18 +private val MIN_SDK_VERSION = System.getProperty("android.minsdk.version").toInt() private const val TARGET_SDK_VERSION = 26 -private val ARGS = arrayOf( - "assemble", "-S", +private val ARGS = System.getProperty("gradle.args").split("\\s+".toRegex()) + listOf( "-Pbooster_version=${Build.VERSION}", "-Pandroid_gradle_version=3.5.0", "-Pcompile_sdk_version=28", "-Pbuild_tools_version=26.0.3", "-Pmin_sdk_version=${MIN_SDK_VERSION}", - "-Ptarget_sdk_version=${TARGET_SDK_VERSION}" + "-Ptarget_sdk_version=${TARGET_SDK_VERSION}", ) @Suppress("RemoveCurlyBracesFromTemplate", "FunctionName") @@ -53,7 +51,7 @@ abstract class V35IntegrationTest(private val isLib: Boolean) { @get:Rule val ruleChain: TestRule = rule(projectDir) { rule(LocalProperties(projectDir::getRoot)) { - GradleExecutor(projectDir::getRoot, "5.4.1", *ARGS) + GradleExecutor(projectDir::getRoot, "5.4.1", *ARGS.toTypedArray()) } } @@ -139,10 +137,6 @@ abstract class V35IntegrationTest(private val isLib: Boolean) { @Case(TargetSdkVersionTestUnit::class) fun `test AGPInterface#targetSdkVersion`() = Unit - @Test - @Case(VariantTypeTestUnit::class) - fun `test AGPInterface#variantType`() = Unit - @Test @Case(AarTestUnit::class) fun `test AGPInterface#aar`() = Unit @@ -328,18 +322,6 @@ class TargetSdkVersionTestUnit : VariantTestCase() { } } -class VariantTypeTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - val project = AGP.run { variant.project } - val variantType = AGP.run { variant.variantType } - if (project.plugins.hasPlugin("com.android.application")) { - assertEquals(VariantTypeImpl.BASE_APK, variantType) - } else if (project.plugins.hasPlugin("com.android.library")) { - assertEquals(VariantTypeImpl.LIBRARY, variantType) - } - } -} - class AarTestUnit : VariantTestCase() { override fun apply(project: Project) { if (project.plugins.hasPlugin("com.android.library")) { diff --git a/booster-android-gradle-v3_5/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_5/V35.kt b/booster-android-gradle-v3_5/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_5/V35.kt index c865e1da4..952270cdc 100644 --- a/booster-android-gradle-v3_5/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_5/V35.kt +++ b/booster-android-gradle-v3_5/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_5/V35.kt @@ -4,9 +4,6 @@ import com.android.build.api.artifact.ArtifactType import com.android.build.api.artifact.BuildArtifactType import com.android.build.api.transform.Context import com.android.build.api.transform.QualifiedContent -import com.android.build.gradle.AppPlugin -import com.android.build.gradle.DynamicFeaturePlugin -import com.android.build.gradle.LibraryPlugin import com.android.build.gradle.api.ApplicationVariant import com.android.build.gradle.api.BaseVariant import com.android.build.gradle.api.LibraryVariant diff --git a/booster-android-gradle-v3_6/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_6/V36IntegrationTest.kt b/booster-android-gradle-v3_6/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_6/V36IntegrationTest.kt index 711fc5619..d9feb8e9f 100644 --- a/booster-android-gradle-v3_6/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_6/V36IntegrationTest.kt +++ b/booster-android-gradle-v3_6/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_6/V36IntegrationTest.kt @@ -6,7 +6,6 @@ import com.android.build.gradle.AppExtension import com.android.build.gradle.BaseExtension import com.android.build.gradle.LibraryExtension import com.android.build.gradle.api.BaseVariant -import com.android.builder.core.VariantTypeImpl import com.android.sdklib.BuildToolInfo import com.didiglobal.booster.gradle.AGP import com.didiglobal.booster.gradle.getAndroid @@ -31,12 +30,11 @@ import kotlin.test.assertNotNull import kotlin.test.assertTrue import kotlin.test.fail -private const val MIN_SDK_VERSION = 18 +private val MIN_SDK_VERSION = System.getProperty("android.minsdk.version").toInt() private const val TARGET_SDK_VERSION = 26 -private val ARGS = arrayOf( - "assemble", "-S", +private val ARGS = System.getProperty("gradle.args").split("\\s+".toRegex()) + listOf( "-Pbooster_version=${Build.VERSION}", "-Pandroid_gradle_version=3.6.0", "-Pcompile_sdk_version=28", @@ -53,7 +51,7 @@ abstract class V36IntegrationTest(private val isLib: Boolean) { @get:Rule val ruleChain: TestRule = rule(projectDir) { rule(LocalProperties(projectDir::getRoot)) { - GradleExecutor(projectDir::getRoot, "5.6.4", *ARGS) + GradleExecutor(projectDir::getRoot, "5.6.4", *ARGS.toTypedArray()) } } @@ -139,10 +137,6 @@ abstract class V36IntegrationTest(private val isLib: Boolean) { @Case(TargetSdkVersionTestUnit::class) fun `test AGPInterface#targetSdkVersion`() = Unit - @Test - @Case(VariantTypeTestUnit::class) - fun `test AGPInterface#variantType`() = Unit - @Test @Case(AarTestUnit::class) fun `test AGPInterface#aar`() = Unit @@ -328,18 +322,6 @@ class TargetSdkVersionTestUnit : VariantTestCase() { } } -class VariantTypeTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - val project = AGP.run { variant.project } - val variantType = AGP.run { variant.variantType } - if (project.plugins.hasPlugin("com.android.application")) { - assertEquals(VariantTypeImpl.BASE_APK, variantType) - } else if (project.plugins.hasPlugin("com.android.library")) { - assertEquals(VariantTypeImpl.LIBRARY, variantType) - } - } -} - class AarTestUnit : VariantTestCase() { override fun apply(project: Project) { if (project.plugins.hasPlugin("com.android.library")) { diff --git a/booster-android-gradle-v4_0/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v4_0/V40IntegrationTest.kt b/booster-android-gradle-v4_0/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v4_0/V40IntegrationTest.kt index 541c8728e..280f28552 100644 --- a/booster-android-gradle-v4_0/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v4_0/V40IntegrationTest.kt +++ b/booster-android-gradle-v4_0/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v4_0/V40IntegrationTest.kt @@ -6,7 +6,6 @@ import com.android.build.gradle.AppExtension import com.android.build.gradle.BaseExtension import com.android.build.gradle.LibraryExtension import com.android.build.gradle.api.BaseVariant -import com.android.builder.core.VariantTypeImpl import com.android.sdklib.BuildToolInfo import com.didiglobal.booster.gradle.AGP import com.didiglobal.booster.gradle.getAndroid @@ -31,12 +30,11 @@ import kotlin.test.assertNotNull import kotlin.test.assertTrue import kotlin.test.fail -private const val MIN_SDK_VERSION = 18 +private val MIN_SDK_VERSION = System.getProperty("android.minsdk.version").toInt() private const val TARGET_SDK_VERSION = 26 -private val ARGS = arrayOf( - "assemble", "-S", +private val ARGS = System.getProperty("gradle.args").split("\\s+".toRegex()) + listOf( "-Pbooster_version=${Build.VERSION}", "-Pandroid_gradle_version=4.0.0", "-Pcompile_sdk_version=28", @@ -53,7 +51,7 @@ abstract class V40IntegrationTest(private val isLib: Boolean) { @get:Rule val ruleChain: TestRule = rule(projectDir) { rule(LocalProperties(projectDir::getRoot)) { - GradleExecutor(projectDir::getRoot, "6.1.1", *ARGS) + GradleExecutor(projectDir::getRoot, "6.1.1", *ARGS.toTypedArray()) } } @@ -139,10 +137,6 @@ abstract class V40IntegrationTest(private val isLib: Boolean) { @Case(TargetSdkVersionTestUnit::class) fun `test AGPInterface#targetSdkVersion`() = Unit - @Test - @Case(VariantTypeTestUnit::class) - fun `test AGPInterface#variantType`() = Unit - @Test @Case(AarTestUnit::class) fun `test AGPInterface#aar`() = Unit @@ -328,18 +322,6 @@ class TargetSdkVersionTestUnit : VariantTestCase() { } } -class VariantTypeTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - val project = AGP.run { variant.project } - val variantType = AGP.run { variant.variantType } - if (project.plugins.hasPlugin("com.android.application")) { - assertEquals(VariantTypeImpl.BASE_APK, variantType) - } else if (project.plugins.hasPlugin("com.android.library")) { - assertEquals(VariantTypeImpl.LIBRARY, variantType) - } - } -} - class AarTestUnit : VariantTestCase() { override fun apply(project: Project) { if (project.plugins.hasPlugin("com.android.library")) { diff --git a/booster-android-gradle-v4_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_0/V40.kt b/booster-android-gradle-v4_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_0/V40.kt index 406e237bb..859c2289b 100644 --- a/booster-android-gradle-v4_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_0/V40.kt +++ b/booster-android-gradle-v4_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_0/V40.kt @@ -2,9 +2,6 @@ package com.didiglobal.booster.android.gradle.v4_0 import com.android.build.api.transform.Context import com.android.build.api.transform.QualifiedContent -import com.android.build.gradle.AppPlugin -import com.android.build.gradle.DynamicFeaturePlugin -import com.android.build.gradle.LibraryPlugin import com.android.build.gradle.api.ApplicationVariant import com.android.build.gradle.api.BaseVariant import com.android.build.gradle.api.LibraryVariant diff --git a/booster-android-gradle-v4_1/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v4_1/V41IntegrationTest.kt b/booster-android-gradle-v4_1/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v4_1/V41IntegrationTest.kt index e4a28b2df..f8e2b1cba 100644 --- a/booster-android-gradle-v4_1/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v4_1/V41IntegrationTest.kt +++ b/booster-android-gradle-v4_1/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v4_1/V41IntegrationTest.kt @@ -6,7 +6,6 @@ import com.android.build.gradle.AppExtension import com.android.build.gradle.BaseExtension import com.android.build.gradle.LibraryExtension import com.android.build.gradle.api.BaseVariant -import com.android.builder.core.VariantTypeImpl import com.android.sdklib.BuildToolInfo import com.didiglobal.booster.gradle.AGP import com.didiglobal.booster.gradle.getAndroid @@ -31,12 +30,11 @@ import kotlin.test.assertNotNull import kotlin.test.assertTrue import kotlin.test.fail -private const val MIN_SDK_VERSION = 18 +private val MIN_SDK_VERSION = System.getProperty("android.minsdk.version").toInt() private const val TARGET_SDK_VERSION = 26 -private val ARGS = arrayOf( - "assemble", "-S", +private val ARGS = System.getProperty("gradle.args").split("\\s+".toRegex()) + listOf( "-Pbooster_version=${Build.VERSION}", "-Pandroid_gradle_version=4.1.0", "-Pcompile_sdk_version=28", @@ -53,7 +51,7 @@ abstract class V41IntegrationTest(val isLib: Boolean) { @get:Rule val ruleChain: TestRule = rule(projectDir) { rule(LocalProperties(projectDir::getRoot)) { - GradleExecutor(projectDir::getRoot, "6.5", *ARGS) + GradleExecutor(projectDir::getRoot, "6.5", *ARGS.toTypedArray()) } } @@ -139,10 +137,6 @@ abstract class V41IntegrationTest(val isLib: Boolean) { @Case(TargetSdkVersionTestUnit::class) fun `test AGPInterface#targetSdkVersion`() = Unit - @Test - @Case(VariantTypeTestUnit::class) - fun `test AGPInterface#variantType`() = Unit - @Test @Case(AarTestUnit::class) fun `test AGPInterface#aar`() = Unit @@ -328,18 +322,6 @@ class TargetSdkVersionTestUnit : VariantTestCase() { } } -class VariantTypeTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - val project = AGP.run { variant.project } - val variantType = AGP.run { variant.variantType } - if (project.plugins.hasPlugin("com.android.application")) { - assertEquals(VariantTypeImpl.BASE_APK, variantType) - } else if (project.plugins.hasPlugin("com.android.library")) { - assertEquals(VariantTypeImpl.LIBRARY, variantType) - } - } -} - class AarTestUnit : VariantTestCase() { override fun apply(project: Project) { if (project.plugins.hasPlugin("com.android.library")) { diff --git a/booster-android-gradle-v4_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_1/V41.kt b/booster-android-gradle-v4_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_1/V41.kt index fccd0310b..7c9906596 100644 --- a/booster-android-gradle-v4_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_1/V41.kt +++ b/booster-android-gradle-v4_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_1/V41.kt @@ -7,9 +7,6 @@ import com.android.build.api.artifact.impl.ArtifactsImpl import com.android.build.api.component.impl.ComponentPropertiesImpl import com.android.build.api.transform.Context import com.android.build.api.transform.QualifiedContent -import com.android.build.gradle.AppPlugin -import com.android.build.gradle.DynamicFeaturePlugin -import com.android.build.gradle.LibraryPlugin import com.android.build.gradle.api.ApplicationVariant import com.android.build.gradle.api.BaseVariant import com.android.build.gradle.api.LibraryVariant diff --git a/booster-android-gradle-v4_2/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42IntegrationTest.kt b/booster-android-gradle-v4_2/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42IntegrationTest.kt index 9f6421524..c439a0921 100644 --- a/booster-android-gradle-v4_2/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42IntegrationTest.kt +++ b/booster-android-gradle-v4_2/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42IntegrationTest.kt @@ -6,7 +6,6 @@ import com.android.build.gradle.AppExtension import com.android.build.gradle.BaseExtension import com.android.build.gradle.LibraryExtension import com.android.build.gradle.api.BaseVariant -import com.android.builder.core.VariantTypeImpl import com.android.sdklib.BuildToolInfo import com.didiglobal.booster.gradle.AGP import com.didiglobal.booster.gradle.getAndroid @@ -31,12 +30,11 @@ import kotlin.test.assertNotNull import kotlin.test.assertTrue import kotlin.test.fail -private const val MIN_SDK_VERSION = 18 +private val MIN_SDK_VERSION = System.getProperty("android.minsdk.version").toInt() private const val TARGET_SDK_VERSION = 26 -private val ARGS = arrayOf( - "assemble", "-S", +private val ARGS = System.getProperty("gradle.args").split("\\s+".toRegex()) + listOf( "-Pbooster_version=${Build.VERSION}", "-Pandroid_gradle_version=4.2.1", "-Pcompile_sdk_version=28", @@ -53,7 +51,7 @@ abstract class V42IntegrationTest(val isLib: Boolean) { @get:Rule val ruleChain: TestRule = rule(projectDir) { rule(LocalProperties(projectDir::getRoot)) { - GradleExecutor(projectDir::getRoot, "6.7.1", *ARGS) + GradleExecutor(projectDir::getRoot, "6.7.1", *ARGS.toTypedArray()) } } @@ -139,10 +137,6 @@ abstract class V42IntegrationTest(val isLib: Boolean) { @Case(TargetSdkVersionTestUnit::class) fun `test AGPInterface#targetSdkVersion`() = Unit - @Test - @Case(VariantTypeTestUnit::class) - fun `test AGPInterface#variantType`() = Unit - @Test @Case(AarTestUnit::class) fun `test AGPInterface#aar`() = Unit @@ -328,18 +322,6 @@ class TargetSdkVersionTestUnit : VariantTestCase() { } } -class VariantTypeTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - val project = AGP.run { variant.project } - val variantType = AGP.run { variant.variantType } - if (project.plugins.hasPlugin("com.android.application")) { - assertEquals(VariantTypeImpl.BASE_APK, variantType) - } else if (project.plugins.hasPlugin("com.android.library")) { - assertEquals(VariantTypeImpl.LIBRARY, variantType) - } - } -} - class AarTestUnit : VariantTestCase() { override fun apply(project: Project) { if (project.plugins.hasPlugin("com.android.library")) { diff --git a/booster-android-gradle-v4_2/src/integrationTest/resources/app.gradle b/booster-android-gradle-v4_2/src/integrationTest/resources/app.gradle index a9db67a64..aa3c5f2d6 100644 --- a/booster-android-gradle-v4_2/src/integrationTest/resources/app.gradle +++ b/booster-android-gradle-v4_2/src/integrationTest/resources/app.gradle @@ -11,7 +11,7 @@ buildscript { classpath("com.didiglobal.booster:booster-gradle-plugin:${project.booster_version}") { exclude group: 'com.google.guava' } - classpath "io.bootstage.testkit:testkit-gradle-plugin:1.1.0" + classpath "io.bootstage.testkit:testkit-gradle-plugin:1.4.0" } } diff --git a/booster-android-gradle-v4_2/src/integrationTest/resources/buildSrc/build.gradle b/booster-android-gradle-v4_2/src/integrationTest/resources/buildSrc/build.gradle index bb9648dce..79a9b104a 100644 --- a/booster-android-gradle-v4_2/src/integrationTest/resources/buildSrc/build.gradle +++ b/booster-android-gradle-v4_2/src/integrationTest/resources/buildSrc/build.gradle @@ -20,5 +20,5 @@ dependencies { implementation("com.didiglobal.booster:booster-android-gradle-api:${project.booster_version}") { exclude group: 'com.google.guava' } - implementation "io.bootstage.testkit:testkit-gradle-plugin:1.1.0" + implementation "io.bootstage.testkit:testkit-gradle-plugin:1.4.0" } diff --git a/booster-android-gradle-v4_2/src/integrationTest/resources/lib.gradle b/booster-android-gradle-v4_2/src/integrationTest/resources/lib.gradle index 64a9540e9..adc9b1ca0 100644 --- a/booster-android-gradle-v4_2/src/integrationTest/resources/lib.gradle +++ b/booster-android-gradle-v4_2/src/integrationTest/resources/lib.gradle @@ -11,7 +11,7 @@ buildscript { classpath("com.didiglobal.booster:booster-gradle-plugin:${project.booster_version}") { exclude group: 'com.google.guava' } - classpath "io.bootstage.testkit:testkit-gradle-plugin:1.1.0" + classpath "io.bootstage.testkit:testkit-gradle-plugin:1.4.0" } } diff --git a/booster-android-gradle-v4_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42.kt b/booster-android-gradle-v4_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42.kt index 2fc0be9c9..33b03d957 100644 --- a/booster-android-gradle-v4_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42.kt +++ b/booster-android-gradle-v4_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42.kt @@ -7,9 +7,6 @@ import com.android.build.api.artifact.impl.ArtifactsImpl import com.android.build.api.component.impl.ComponentImpl import com.android.build.api.transform.Context import com.android.build.api.transform.QualifiedContent -import com.android.build.gradle.AppPlugin -import com.android.build.gradle.DynamicFeaturePlugin -import com.android.build.gradle.LibraryPlugin import com.android.build.gradle.api.ApplicationVariant import com.android.build.gradle.api.BaseVariant import com.android.build.gradle.api.LibraryVariant @@ -251,7 +248,7 @@ internal object V42 : AGPInterface { override val BaseVariant.allClasses: FileCollection get() = when (this) { is ApplicationVariant -> getFinalArtifactFiles(InternalArtifactType.JAVAC) + project.files("build${File.separator}tmp${File.separator}kotlin-classes${File.separator}${dirName}") - is LibraryVariant -> getFinalArtifactFiles(InternalArtifactType.COMPILE_LIBRARY_CLASSES_JAR) + is LibraryVariant -> getFinalArtifactFiles(InternalArtifactType.AAR_MAIN_JAR) else -> project.files() } diff --git a/booster-android-gradle-v7_0/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v7_0/V70IntegrationTest.kt b/booster-android-gradle-v7_0/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v7_0/V70IntegrationTest.kt index fbf22c5d1..7dcf3ad92 100644 --- a/booster-android-gradle-v7_0/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v7_0/V70IntegrationTest.kt +++ b/booster-android-gradle-v7_0/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v7_0/V70IntegrationTest.kt @@ -6,7 +6,6 @@ import com.android.build.gradle.AppExtension import com.android.build.gradle.BaseExtension import com.android.build.gradle.LibraryExtension import com.android.build.gradle.api.BaseVariant -import com.android.builder.core.VariantTypeImpl import com.didiglobal.booster.gradle.AGP import com.didiglobal.booster.gradle.getAndroid import com.didiglobal.booster.kotlinx.search @@ -30,12 +29,11 @@ import kotlin.test.assertNotNull import kotlin.test.assertTrue import kotlin.test.fail -private const val MIN_SDK_VERSION = 18 +private val MIN_SDK_VERSION = System.getProperty("android.minsdk.version").toInt() private const val TARGET_SDK_VERSION = 30 -private val ARGS = arrayOf( - "assemble", "-S", +private val ARGS = System.getProperty("gradle.args").split("\\s+".toRegex()) + listOf( "-Pbooster_version=${Build.VERSION}", "-Pandroid_gradle_version=7.0.0", "-Pcompile_sdk_version=30", @@ -52,7 +50,7 @@ abstract class V70IntegrationTest(private val isLib: Boolean) { @get:Rule val ruleChain: TestRule = rule(projectDir) { rule(LocalProperties(projectDir::getRoot)) { - GradleExecutor(projectDir::getRoot, "7.0.2", *ARGS) + GradleExecutor(projectDir::getRoot, "7.0.2", *ARGS.toTypedArray()) } } @@ -138,11 +136,6 @@ abstract class V70IntegrationTest(private val isLib: Boolean) { @Case(TargetSdkVersionTestUnit::class) fun `test AGPInterface#targetSdkVersion`() = Unit - @Test - @Case(VariantTypeTestUnit::class) - fun `test AGPInterface#variantType`() { - } - @Test @Case(AarTestUnit::class) fun `test AGPInterface#aar`() { @@ -333,18 +326,6 @@ class TargetSdkVersionTestUnit : VariantTestCase() { } } -class VariantTypeTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - val project = AGP.run { variant.project } - val variantType = AGP.run { variant.variantType } - if (project.plugins.hasPlugin("com.android.application")) { - assertEquals(VariantTypeImpl.BASE_APK, variantType) - } else if (project.plugins.hasPlugin("com.android.library")) { - assertEquals(VariantTypeImpl.LIBRARY, variantType) - } - } -} - class AarTestUnit : VariantTestCase() { override fun apply(project: Project) { if (project.plugins.hasPlugin("com.android.library")) { diff --git a/booster-android-gradle-v7_0/src/integrationTest/resources/app.gradle b/booster-android-gradle-v7_0/src/integrationTest/resources/app.gradle index a9db67a64..aa3c5f2d6 100644 --- a/booster-android-gradle-v7_0/src/integrationTest/resources/app.gradle +++ b/booster-android-gradle-v7_0/src/integrationTest/resources/app.gradle @@ -11,7 +11,7 @@ buildscript { classpath("com.didiglobal.booster:booster-gradle-plugin:${project.booster_version}") { exclude group: 'com.google.guava' } - classpath "io.bootstage.testkit:testkit-gradle-plugin:1.1.0" + classpath "io.bootstage.testkit:testkit-gradle-plugin:1.4.0" } } diff --git a/booster-android-gradle-v7_0/src/integrationTest/resources/buildSrc/build.gradle b/booster-android-gradle-v7_0/src/integrationTest/resources/buildSrc/build.gradle index bb9648dce..79a9b104a 100644 --- a/booster-android-gradle-v7_0/src/integrationTest/resources/buildSrc/build.gradle +++ b/booster-android-gradle-v7_0/src/integrationTest/resources/buildSrc/build.gradle @@ -20,5 +20,5 @@ dependencies { implementation("com.didiglobal.booster:booster-android-gradle-api:${project.booster_version}") { exclude group: 'com.google.guava' } - implementation "io.bootstage.testkit:testkit-gradle-plugin:1.1.0" + implementation "io.bootstage.testkit:testkit-gradle-plugin:1.4.0" } diff --git a/booster-android-gradle-v7_0/src/integrationTest/resources/lib.gradle b/booster-android-gradle-v7_0/src/integrationTest/resources/lib.gradle index 64a9540e9..adc9b1ca0 100644 --- a/booster-android-gradle-v7_0/src/integrationTest/resources/lib.gradle +++ b/booster-android-gradle-v7_0/src/integrationTest/resources/lib.gradle @@ -11,7 +11,7 @@ buildscript { classpath("com.didiglobal.booster:booster-gradle-plugin:${project.booster_version}") { exclude group: 'com.google.guava' } - classpath "io.bootstage.testkit:testkit-gradle-plugin:1.1.0" + classpath "io.bootstage.testkit:testkit-gradle-plugin:1.4.0" } } diff --git a/booster-android-gradle-v7_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_0/V70.kt b/booster-android-gradle-v7_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_0/V70.kt index 6dad42f81..292cf131a 100644 --- a/booster-android-gradle-v7_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_0/V70.kt +++ b/booster-android-gradle-v7_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_0/V70.kt @@ -7,9 +7,6 @@ import com.android.build.api.artifact.impl.ArtifactsImpl import com.android.build.api.component.impl.ComponentImpl import com.android.build.api.transform.Context import com.android.build.api.transform.QualifiedContent -import com.android.build.gradle.AppPlugin -import com.android.build.gradle.DynamicFeaturePlugin -import com.android.build.gradle.LibraryPlugin import com.android.build.gradle.api.ApplicationVariant import com.android.build.gradle.api.BaseVariant import com.android.build.gradle.api.LibraryVariant @@ -259,7 +256,7 @@ internal object V70 : AGPInterface { override val BaseVariant.allClasses: FileCollection get() = when (this) { is ApplicationVariant -> getFinalArtifactFiles(InternalArtifactType.JAVAC) + project.files("build${File.separator}tmp${File.separator}kotlin-classes${File.separator}${dirName}") - is LibraryVariant -> getFinalArtifactFiles(InternalArtifactType.COMPILE_LIBRARY_CLASSES_JAR) + is LibraryVariant -> getFinalArtifactFiles(InternalArtifactType.AAR_MAIN_JAR) else -> project.files() } diff --git a/booster-android-gradle-v7_1/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v7_1/V71IntegrationTest.kt b/booster-android-gradle-v7_1/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v7_1/V71IntegrationTest.kt index 7d6a0b755..5421a536e 100644 --- a/booster-android-gradle-v7_1/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v7_1/V71IntegrationTest.kt +++ b/booster-android-gradle-v7_1/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v7_1/V71IntegrationTest.kt @@ -6,7 +6,6 @@ import com.android.build.gradle.AppExtension import com.android.build.gradle.BaseExtension import com.android.build.gradle.LibraryExtension import com.android.build.gradle.api.BaseVariant -import com.android.builder.core.VariantTypeImpl import com.didiglobal.booster.gradle.AGP import com.didiglobal.booster.gradle.getAndroid import com.didiglobal.booster.kotlinx.search @@ -30,12 +29,11 @@ import kotlin.test.assertNotNull import kotlin.test.assertTrue import kotlin.test.fail -private const val MIN_SDK_VERSION = 18 +private val MIN_SDK_VERSION = System.getProperty("android.minsdk.version").toInt() private const val TARGET_SDK_VERSION = 30 -private val ARGS = arrayOf( - "assemble", "-S", +private val ARGS = System.getProperty("gradle.args").split("\\s+".toRegex()) + listOf( "-Pbooster_version=${Build.VERSION}", "-Pandroid_gradle_version=7.1.0", "-Pcompile_sdk_version=30", @@ -52,7 +50,7 @@ abstract class V71IntegrationTest(private val isLib: Boolean) { @get:Rule val ruleChain: TestRule = rule(projectDir) { rule(LocalProperties(projectDir::getRoot)) { - GradleExecutor(projectDir::getRoot, "7.2", *ARGS) + GradleExecutor(projectDir::getRoot, "7.2", *ARGS.toTypedArray()) } } @@ -138,11 +136,6 @@ abstract class V71IntegrationTest(private val isLib: Boolean) { @Case(TargetSdkVersionTestUnit::class) fun `test AGPInterface#targetSdkVersion`() = Unit - @Test - @Case(VariantTypeTestUnit::class) - fun `test AGPInterface#variantType`() { - } - @Test @Case(AarTestUnit::class) fun `test AGPInterface#aar`() { @@ -333,18 +326,6 @@ class TargetSdkVersionTestUnit : VariantTestCase() { } } -class VariantTypeTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - val project = AGP.run { variant.project } - val variantType = AGP.run { variant.variantType } - if (project.plugins.hasPlugin("com.android.application")) { - assertEquals(VariantTypeImpl.BASE_APK, variantType) - } else if (project.plugins.hasPlugin("com.android.library")) { - assertEquals(VariantTypeImpl.LIBRARY, variantType) - } - } -} - class AarTestUnit : VariantTestCase() { override fun apply(project: Project) { if (project.plugins.hasPlugin("com.android.library")) { diff --git a/booster-android-gradle-v7_1/src/integrationTest/resources/app.gradle b/booster-android-gradle-v7_1/src/integrationTest/resources/app.gradle index a9db67a64..aa3c5f2d6 100644 --- a/booster-android-gradle-v7_1/src/integrationTest/resources/app.gradle +++ b/booster-android-gradle-v7_1/src/integrationTest/resources/app.gradle @@ -11,7 +11,7 @@ buildscript { classpath("com.didiglobal.booster:booster-gradle-plugin:${project.booster_version}") { exclude group: 'com.google.guava' } - classpath "io.bootstage.testkit:testkit-gradle-plugin:1.1.0" + classpath "io.bootstage.testkit:testkit-gradle-plugin:1.4.0" } } diff --git a/booster-android-gradle-v7_1/src/integrationTest/resources/buildSrc/build.gradle b/booster-android-gradle-v7_1/src/integrationTest/resources/buildSrc/build.gradle index bb9648dce..79a9b104a 100644 --- a/booster-android-gradle-v7_1/src/integrationTest/resources/buildSrc/build.gradle +++ b/booster-android-gradle-v7_1/src/integrationTest/resources/buildSrc/build.gradle @@ -20,5 +20,5 @@ dependencies { implementation("com.didiglobal.booster:booster-android-gradle-api:${project.booster_version}") { exclude group: 'com.google.guava' } - implementation "io.bootstage.testkit:testkit-gradle-plugin:1.1.0" + implementation "io.bootstage.testkit:testkit-gradle-plugin:1.4.0" } diff --git a/booster-android-gradle-v7_1/src/integrationTest/resources/lib.gradle b/booster-android-gradle-v7_1/src/integrationTest/resources/lib.gradle index 64a9540e9..adc9b1ca0 100644 --- a/booster-android-gradle-v7_1/src/integrationTest/resources/lib.gradle +++ b/booster-android-gradle-v7_1/src/integrationTest/resources/lib.gradle @@ -11,7 +11,7 @@ buildscript { classpath("com.didiglobal.booster:booster-gradle-plugin:${project.booster_version}") { exclude group: 'com.google.guava' } - classpath "io.bootstage.testkit:testkit-gradle-plugin:1.1.0" + classpath "io.bootstage.testkit:testkit-gradle-plugin:1.4.0" } } diff --git a/booster-android-gradle-v7_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_1/V71.kt b/booster-android-gradle-v7_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_1/V71.kt index b04432538..c65921f16 100644 --- a/booster-android-gradle-v7_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_1/V71.kt +++ b/booster-android-gradle-v7_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_1/V71.kt @@ -7,9 +7,6 @@ import com.android.build.api.artifact.impl.ArtifactsImpl import com.android.build.api.component.impl.ComponentImpl import com.android.build.api.transform.Context import com.android.build.api.transform.QualifiedContent -import com.android.build.gradle.AppPlugin -import com.android.build.gradle.DynamicFeaturePlugin -import com.android.build.gradle.LibraryPlugin import com.android.build.gradle.api.ApplicationVariant import com.android.build.gradle.api.BaseVariant import com.android.build.gradle.api.LibraryVariant @@ -255,7 +252,7 @@ internal object V71 : AGPInterface { override val BaseVariant.allClasses: FileCollection get() = when (this) { is ApplicationVariant -> getFinalArtifactFiles(InternalArtifactType.JAVAC) + project.files("build${File.separator}tmp${File.separator}kotlin-classes${File.separator}${dirName}") - is LibraryVariant -> getFinalArtifactFiles(InternalArtifactType.COMPILE_LIBRARY_CLASSES_JAR) + is LibraryVariant -> getFinalArtifactFiles(InternalArtifactType.AAR_MAIN_JAR) else -> project.files() } diff --git a/booster-android-gradle-v7_2/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v7_2/V72IntegrationTest.kt b/booster-android-gradle-v7_2/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v7_2/V72IntegrationTest.kt index e3d897001..fd48970da 100644 --- a/booster-android-gradle-v7_2/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v7_2/V72IntegrationTest.kt +++ b/booster-android-gradle-v7_2/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v7_2/V72IntegrationTest.kt @@ -6,7 +6,6 @@ import com.android.build.gradle.AppExtension import com.android.build.gradle.BaseExtension import com.android.build.gradle.LibraryExtension import com.android.build.gradle.api.BaseVariant -import com.android.builder.core.VariantTypeImpl import com.didiglobal.booster.gradle.AGP import com.didiglobal.booster.gradle.getAndroid import com.didiglobal.booster.kotlinx.search @@ -30,12 +29,11 @@ import kotlin.test.assertNotNull import kotlin.test.assertTrue import kotlin.test.fail -private const val MIN_SDK_VERSION = 18 +private val MIN_SDK_VERSION = System.getProperty("android.minsdk.version").toInt() private const val TARGET_SDK_VERSION = 30 -private val ARGS = arrayOf( - "assemble", "-S", +private val ARGS = System.getProperty("gradle.args").split("\\s+".toRegex()) + listOf( "-Pbooster_version=${Build.VERSION}", "-Pandroid_gradle_version=7.2.0", "-Pcompile_sdk_version=30", @@ -52,7 +50,7 @@ abstract class V72IntegrationTest(private val isLib: Boolean) { @get:Rule val ruleChain: TestRule = rule(projectDir) { rule(LocalProperties(projectDir::getRoot)) { - GradleExecutor(projectDir::getRoot, "7.3.3", *ARGS) + GradleExecutor(projectDir::getRoot, "7.3.3", *ARGS.toTypedArray()) } } @@ -138,11 +136,6 @@ abstract class V72IntegrationTest(private val isLib: Boolean) { @Case(TargetSdkVersionTestUnit::class) fun `test AGPInterface#targetSdkVersion`() = Unit - @Test - @Case(VariantTypeTestUnit::class) - fun `test AGPInterface#variantType`() { - } - @Test @Case(AarTestUnit::class) fun `test AGPInterface#aar`() { @@ -338,18 +331,6 @@ class TargetSdkVersionTestUnit : VariantTestCase() { } } -class VariantTypeTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - val project = AGP.run { variant.project } - val variantType = AGP.run { variant.variantType } - if (project.plugins.hasPlugin("com.android.application")) { - assertEquals(VariantTypeImpl.BASE_APK, variantType) - } else if (project.plugins.hasPlugin("com.android.library")) { - assertEquals(VariantTypeImpl.LIBRARY, variantType) - } - } -} - class AarTestUnit : VariantTestCase() { override fun apply(project: Project) { if (project.plugins.hasPlugin("com.android.library")) { diff --git a/booster-android-gradle-v7_2/src/integrationTest/resources/app.gradle b/booster-android-gradle-v7_2/src/integrationTest/resources/app.gradle index a9db67a64..aa3c5f2d6 100644 --- a/booster-android-gradle-v7_2/src/integrationTest/resources/app.gradle +++ b/booster-android-gradle-v7_2/src/integrationTest/resources/app.gradle @@ -11,7 +11,7 @@ buildscript { classpath("com.didiglobal.booster:booster-gradle-plugin:${project.booster_version}") { exclude group: 'com.google.guava' } - classpath "io.bootstage.testkit:testkit-gradle-plugin:1.1.0" + classpath "io.bootstage.testkit:testkit-gradle-plugin:1.4.0" } } diff --git a/booster-android-gradle-v7_2/src/integrationTest/resources/buildSrc/build.gradle b/booster-android-gradle-v7_2/src/integrationTest/resources/buildSrc/build.gradle index bb9648dce..79a9b104a 100644 --- a/booster-android-gradle-v7_2/src/integrationTest/resources/buildSrc/build.gradle +++ b/booster-android-gradle-v7_2/src/integrationTest/resources/buildSrc/build.gradle @@ -20,5 +20,5 @@ dependencies { implementation("com.didiglobal.booster:booster-android-gradle-api:${project.booster_version}") { exclude group: 'com.google.guava' } - implementation "io.bootstage.testkit:testkit-gradle-plugin:1.1.0" + implementation "io.bootstage.testkit:testkit-gradle-plugin:1.4.0" } diff --git a/booster-android-gradle-v7_2/src/integrationTest/resources/lib.gradle b/booster-android-gradle-v7_2/src/integrationTest/resources/lib.gradle index 64a9540e9..adc9b1ca0 100644 --- a/booster-android-gradle-v7_2/src/integrationTest/resources/lib.gradle +++ b/booster-android-gradle-v7_2/src/integrationTest/resources/lib.gradle @@ -11,7 +11,7 @@ buildscript { classpath("com.didiglobal.booster:booster-gradle-plugin:${project.booster_version}") { exclude group: 'com.google.guava' } - classpath "io.bootstage.testkit:testkit-gradle-plugin:1.1.0" + classpath "io.bootstage.testkit:testkit-gradle-plugin:1.4.0" } } diff --git a/booster-android-gradle-v7_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_2/V72.kt b/booster-android-gradle-v7_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_2/V72.kt index 15d178e2b..df713b1a3 100644 --- a/booster-android-gradle-v7_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_2/V72.kt +++ b/booster-android-gradle-v7_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_2/V72.kt @@ -7,9 +7,6 @@ import com.android.build.api.artifact.impl.ArtifactsImpl import com.android.build.api.component.impl.ComponentImpl import com.android.build.api.transform.Context import com.android.build.api.transform.QualifiedContent -import com.android.build.gradle.AppPlugin -import com.android.build.gradle.DynamicFeaturePlugin -import com.android.build.gradle.LibraryPlugin import com.android.build.gradle.api.ApplicationVariant import com.android.build.gradle.api.BaseVariant import com.android.build.gradle.api.LibraryVariant @@ -265,7 +262,7 @@ internal object V72 : AGPInterface { override val BaseVariant.allClasses: FileCollection get() = when (this) { is ApplicationVariant -> getFinalArtifactFiles(InternalArtifactType.JAVAC) + project.files("build${File.separator}tmp${File.separator}kotlin-classes${File.separator}${dirName}") - is LibraryVariant -> getFinalArtifactFiles(InternalArtifactType.COMPILE_LIBRARY_CLASSES_JAR) + is LibraryVariant -> getFinalArtifactFiles(InternalArtifactType.AAR_MAIN_JAR) else -> project.files() } diff --git a/booster-android-gradle-v7_3/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v7_3/V73IntegrationTest.kt b/booster-android-gradle-v7_3/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v7_3/V73IntegrationTest.kt index 563ec2fa8..75dfd4b31 100644 --- a/booster-android-gradle-v7_3/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v7_3/V73IntegrationTest.kt +++ b/booster-android-gradle-v7_3/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v7_3/V73IntegrationTest.kt @@ -6,7 +6,6 @@ import com.android.build.gradle.AppExtension import com.android.build.gradle.BaseExtension import com.android.build.gradle.LibraryExtension import com.android.build.gradle.api.BaseVariant -import com.android.builder.core.VariantTypeImpl import com.didiglobal.booster.gradle.AGP import com.didiglobal.booster.gradle.getAndroid import com.didiglobal.booster.kotlinx.search @@ -30,18 +29,17 @@ import kotlin.test.assertNotNull import kotlin.test.assertTrue import kotlin.test.fail -private const val MIN_SDK_VERSION = 18 +private val MIN_SDK_VERSION = System.getProperty("android.minsdk.version").toInt() private const val TARGET_SDK_VERSION = 30 -private val ARGS = arrayOf( - "assemble", "-S", +private val ARGS = System.getProperty("gradle.args").split("\\s+".toRegex()) + listOf( "-Pbooster_version=${Build.VERSION}", "-Pandroid_gradle_version=7.3.0", "-Pcompile_sdk_version=30", "-Pbuild_tools_version=29.0.2", - "-Pmin_sdk_version=$MIN_SDK_VERSION", - "-Ptarget_sdk_version=$TARGET_SDK_VERSION" + "-Pmin_sdk_version=${MIN_SDK_VERSION}", + "-Ptarget_sdk_version=${TARGET_SDK_VERSION}" ) @Suppress("RemoveCurlyBracesFromTemplate", "FunctionName") @@ -52,7 +50,7 @@ abstract class V73IntegrationTest(private val isLib: Boolean) { @get:Rule val ruleChain: TestRule = rule(projectDir) { rule(LocalProperties(projectDir::getRoot)) { - GradleExecutor(projectDir::getRoot, "7.3.3", *ARGS) + GradleExecutor(projectDir::getRoot, "7.4", *ARGS.toTypedArray()) } } @@ -138,11 +136,6 @@ abstract class V73IntegrationTest(private val isLib: Boolean) { @Case(TargetSdkVersionTestUnit::class) fun `test AGPInterface#targetSdkVersion`() = Unit - @Test - @Case(VariantTypeTestUnit::class) - fun `test AGPInterface#variantType`() { - } - @Test @Case(AarTestUnit::class) fun `test AGPInterface#aar`() { @@ -282,7 +275,9 @@ class VariantScopeTestUnit : VariantTestCase() { class OriginalApplicationIdTestUnit : VariantTestCase() { override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.originalApplicationId }) + AGP.run { variant.assembleTask }.doFirst { + assertNotNull(AGP.run { variant.originalApplicationId }) + } } } @@ -338,18 +333,6 @@ class TargetSdkVersionTestUnit : VariantTestCase() { } } -class VariantTypeTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - val project = AGP.run { variant.project } - val variantType = AGP.run { variant.variantType } - if (project.plugins.hasPlugin("com.android.application")) { - assertEquals(VariantTypeImpl.BASE_APK, variantType) - } else if (project.plugins.hasPlugin("com.android.library")) { - assertEquals(VariantTypeImpl.LIBRARY, variantType) - } - } -} - class AarTestUnit : VariantTestCase() { override fun apply(project: Project) { if (project.plugins.hasPlugin("com.android.library")) { diff --git a/booster-android-gradle-v7_3/src/integrationTest/resources/app.gradle b/booster-android-gradle-v7_3/src/integrationTest/resources/app.gradle index a9db67a64..aa3c5f2d6 100644 --- a/booster-android-gradle-v7_3/src/integrationTest/resources/app.gradle +++ b/booster-android-gradle-v7_3/src/integrationTest/resources/app.gradle @@ -11,7 +11,7 @@ buildscript { classpath("com.didiglobal.booster:booster-gradle-plugin:${project.booster_version}") { exclude group: 'com.google.guava' } - classpath "io.bootstage.testkit:testkit-gradle-plugin:1.1.0" + classpath "io.bootstage.testkit:testkit-gradle-plugin:1.4.0" } } diff --git a/booster-android-gradle-v7_3/src/integrationTest/resources/buildSrc/build.gradle b/booster-android-gradle-v7_3/src/integrationTest/resources/buildSrc/build.gradle index bb9648dce..79a9b104a 100644 --- a/booster-android-gradle-v7_3/src/integrationTest/resources/buildSrc/build.gradle +++ b/booster-android-gradle-v7_3/src/integrationTest/resources/buildSrc/build.gradle @@ -20,5 +20,5 @@ dependencies { implementation("com.didiglobal.booster:booster-android-gradle-api:${project.booster_version}") { exclude group: 'com.google.guava' } - implementation "io.bootstage.testkit:testkit-gradle-plugin:1.1.0" + implementation "io.bootstage.testkit:testkit-gradle-plugin:1.4.0" } diff --git a/booster-android-gradle-v7_3/src/integrationTest/resources/lib.gradle b/booster-android-gradle-v7_3/src/integrationTest/resources/lib.gradle index 64a9540e9..adc9b1ca0 100644 --- a/booster-android-gradle-v7_3/src/integrationTest/resources/lib.gradle +++ b/booster-android-gradle-v7_3/src/integrationTest/resources/lib.gradle @@ -11,7 +11,7 @@ buildscript { classpath("com.didiglobal.booster:booster-gradle-plugin:${project.booster_version}") { exclude group: 'com.google.guava' } - classpath "io.bootstage.testkit:testkit-gradle-plugin:1.1.0" + classpath "io.bootstage.testkit:testkit-gradle-plugin:1.4.0" } } diff --git a/booster-android-gradle-v7_3/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_3/V73.kt b/booster-android-gradle-v7_3/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_3/V73.kt index fefa4d24a..eead4116c 100644 --- a/booster-android-gradle-v7_3/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_3/V73.kt +++ b/booster-android-gradle-v7_3/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_3/V73.kt @@ -32,6 +32,7 @@ import org.gradle.api.artifacts.ArtifactCollection import org.gradle.api.artifacts.component.ComponentIdentifier import org.gradle.api.artifacts.result.ResolvedArtifactResult import org.gradle.api.artifacts.result.ResolvedDependencyResult +import org.gradle.api.file.ConfigurableFileCollection import org.gradle.api.file.FileCollection import org.gradle.api.file.FileSystemLocation import org.gradle.api.tasks.TaskProvider @@ -89,16 +90,6 @@ internal object V73 : AGPInterface { } } - private inline fun Sequence.firstOfOrNull(transform: (T) -> R?): R? { - for (element in this) { - val result = transform(element) - if (result != null) { - return result - } - } - return null - } - @Suppress("UnstableApiUsage") private val BaseVariant.artifacts: ArtifactsImpl get() = component.artifacts @@ -168,9 +159,32 @@ internal object V73 : AGPInterface { get() = component.global.hasDynamicFeatures override val BaseVariant.rawAndroidResources: FileCollection - get() = ComponentImpl::class.java.getDeclaredField("allRawAndroidResources").apply { - isAccessible = true - }.get(component) as FileCollection + get() { + val allRes: ConfigurableFileCollection = component.services.fileCollection() + + allRes.from(component.variantDependencies.getArtifactCollection( + AndroidArtifacts.ConsumedConfigType.RUNTIME_CLASSPATH, + ArtifactScope.ALL, + AndroidArtifacts.ArtifactType.ANDROID_RES + ).artifactFiles) + + allRes.from(component.services.fileCollection(variantData.extraGeneratedResFolders) + .builtBy(listOfNotNull(variantData.extraGeneratedResFolders.builtBy))) + + component.taskContainer.generateApkDataTask?.let { + allRes.from(artifacts.get(InternalArtifactType.MICRO_APK_RES)) + } + + allRes.from(component.sources.res.getVariantSources().map { allSources -> + allSources.map { directoryEntries -> + directoryEntries.directoryEntries.map { + it.asFiles(component.services::directoryProperty) + } + } + }) + + return allRes + } override fun BaseVariant.getArtifactCollection( configType: AndroidArtifacts.ConsumedConfigType, @@ -260,7 +274,7 @@ internal object V73 : AGPInterface { override val BaseVariant.allClasses: FileCollection get() = when (this) { is ApplicationVariant -> getFinalArtifactFiles(InternalArtifactType.JAVAC) + project.files("build${File.separator}tmp${File.separator}kotlin-classes${File.separator}${dirName}") - is LibraryVariant -> getFinalArtifactFiles(InternalArtifactType.COMPILE_LIBRARY_CLASSES_JAR) + is LibraryVariant -> getFinalArtifactFiles(InternalArtifactType.AAR_MAIN_JAR) else -> project.files() } diff --git a/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/BoosterTransformInvocation.kt b/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/BoosterTransformInvocation.kt index 5aba2b3a7..71c43c3cd 100644 --- a/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/BoosterTransformInvocation.kt +++ b/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/BoosterTransformInvocation.kt @@ -244,7 +244,7 @@ internal class BoosterTransformInvocation( private fun doVerify() { outputs.sortedBy(File::nameWithoutExtension).forEach { input -> val output = temporaryDir.file(input.name) - val rc = input.dex(output, variant.extension.defaultConfig.targetSdkVersion?.apiLevel ?: DexFormat.API_NO_EXTENDED_OPCODES) + val rc = input.dex(output, targetSdkVersion.apiLevel) println("${if (rc != 0) red("✗") else green("✓")} $input") output.deleteRecursively() } diff --git a/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/ServiceLoader.kt b/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/ServiceLoader.kt index b8b0fa4d5..6f7a0e3e5 100644 --- a/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/ServiceLoader.kt +++ b/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/ServiceLoader.kt @@ -26,9 +26,9 @@ private class ServiceLoaderImpl( try { provider.getConstructor(*types).newInstance(*args) as T } catch (e: NoSuchMethodException) { - provider.newInstance() as T + provider.getDeclaredConstructor().newInstance() as T } - } catch (e: ClassNotFoundException) { + } catch (e: Throwable) { throw ServiceConfigurationError("Provider $provider not found") } } @@ -66,15 +66,7 @@ internal fun lookupTransformers(classLoader: ClassLoader): Set { - return newServiceLoader(classLoader, ClassLoader::class.java).load(classLoader) -} - -/** - * Load [VariantProcessor]s with the specified [classLoader] + * Load [VariantProcessor]s with the specified [project] */ @Throws(ServiceConfigurationError::class) internal fun loadVariantProcessors(project: Project): List { @@ -87,7 +79,7 @@ private fun parse(u: URL) = try { it.isNotEmpty() && it.isNotBlank() && !it.startsWith('#') }.map(String::trim).filter(::isJavaClassName) } catch (e: Throwable) { - emptyList() + emptyList() } private fun isJavaClassName(text: String): Boolean { @@ -97,7 +89,7 @@ private fun isJavaClassName(text: String): Boolean { for (i in 1 until text.length) { val cp = text.codePointAt(i) - if (!Character.isJavaIdentifierPart(cp) && cp != '.'.toInt()) { + if (!Character.isJavaIdentifierPart(cp) && cp != '.'.code) { throw ServiceConfigurationError("Illegal provider-class name: $text") } } diff --git a/booster-graph-dot/src/main/kotlin/com/didiglobal/booster/graph/dot/DotGraph.kt b/booster-graph-dot/src/main/kotlin/com/didiglobal/booster/graph/dot/DotGraph.kt index 09cbf8fb2..a514069d0 100644 --- a/booster-graph-dot/src/main/kotlin/com/didiglobal/booster/graph/dot/DotGraph.kt +++ b/booster-graph-dot/src/main/kotlin/com/didiglobal/booster/graph/dot/DotGraph.kt @@ -6,10 +6,11 @@ import com.didiglobal.booster.graph.Graph import com.didiglobal.booster.graph.GraphRenderer import com.didiglobal.booster.graph.GroupedNode import com.didiglobal.booster.graph.Node -import com.didiglobal.booster.kotlinx.* +import com.didiglobal.booster.kotlinx.OS +import com.didiglobal.booster.kotlinx.RGB +import com.didiglobal.booster.kotlinx.WebSafeColorPalette +import com.didiglobal.booster.kotlinx.touch import java.io.File -import java.io.FileNotFoundException -import java.io.IOException import kotlin.reflect.full.memberProperties private val DOT = CommandService.fromPath("dot${OS.executableSuffix}") @@ -24,27 +25,27 @@ sealed class DotGraph : GraphRenderer { object DIGRAPH : DotGraph() { override fun render(graph: Graph, options: GraphRenderer.Options, prettify: (N) -> String): CharSequence { - return StringBuilder().apply { - appendln("digraph \"${graph.title}\" {") - appendln(" graph [bgcolor=\"transparent\",pad=\"0.555\"];") - appendln(" node [color=\"#00BFC4\",fillcolor=\"#00BFC440\",fontcolor=\"#333333\",fontname=Helvetica,shape=box,style=filled];") - appendln(" edge [fontname=Helvetica];") - appendln(" rankdir = ${options["rankdir"] ?: "TB"};") + return buildString { + appendLine("digraph \"${graph.title}\" {") + appendLine(" graph [bgcolor=\"transparent\",pad=\"0.555\"];") + appendLine(" node [color=\"#00BFC4\",fillcolor=\"#00BFC440\",fontcolor=\"#333333\",fontname=Helvetica,shape=box,style=filled];") + appendLine(" edge [fontname=Helvetica];") + appendLine(" rankdir = ${options["rankdir"] ?: "TB"};") graph.nodes.filterIsInstance>().groupBy { it.groupBy() ?: "" }.entries.withIndex().forEach { (index, entry) -> val color = RGB.valueOf(WebSafeColorPalette.random(0x000000, 0xffffff)) - appendln(" subgraph cluster_${index} {") - appendln(" style=\"rounded,dashed\";") - appendln(" label=\"${entry.key}\";") - appendln(" fgcolor=\"${color}\";") + appendLine(" subgraph cluster_${index} {") + appendLine(" style=\"rounded,dashed\";") + appendLine(" label=\"${entry.key}\";") + appendLine(" fgcolor=\"${color}\";") entry.value.map { node -> @Suppress("UNCHECKED_CAST") (node as N) }.forEach { node -> - appendln(" \"${prettify(node)}\";") + appendLine(" \"${prettify(node)}\";") } - appendln(" }") + appendLine(" }") } graph.nodes.joinTo(this, "\n ", " ", "\n") { node -> @@ -56,7 +57,7 @@ sealed class DotGraph : GraphRenderer { val color = RGB.valueOf(WebSafeColorPalette.random(0x000000, 0xffffff)).toString() // except white color "\"${prettify(edge.from)}\" -> \"${prettify(edge.to)}\" [color=\"#$color\",fontcolor=\"#$color\"];" } - appendln("}") + appendLine("}") } } diff --git a/gradle/booster.gradle b/gradle/booster.gradle index e53909d3f..53f356615 100644 --- a/gradle/booster.gradle +++ b/gradle/booster.gradle @@ -25,11 +25,19 @@ sourceSets { } compileKotlin { - kotlinOptions.jvmTarget = JavaVersion.VERSION_1_8 + kotlinOptions{ + jvmTarget = JavaVersion.VERSION_1_8 + apiVersion = "1.5" + freeCompilerArgs = ["-Xno-optimized-callable-references"] + } } compileTestKotlin { - kotlinOptions.jvmTarget = JavaVersion.VERSION_1_8 + kotlinOptions{ + jvmTarget = JavaVersion.VERSION_1_8 + apiVersion = "1.5" + freeCompilerArgs = ["-Xno-optimized-callable-references"] + } } dependencies { diff --git a/gradle/functional-test.gradle b/gradle/functional-test.gradle index b686abb3d..be18d001e 100644 --- a/gradle/functional-test.gradle +++ b/gradle/functional-test.gradle @@ -26,10 +26,16 @@ task functionalTest(type: Test) { testLogging { events "passed", "skipped", "failed", "standardError" } + systemProperty('gradle.args', 'buildEnv dependencies assemble -S') + systemProperty 'android.minsdk.version', 18 } check.dependsOn functionalTest compileFunctionalTestKotlin { - kotlinOptions.jvmTarget = JavaVersion.VERSION_1_8 + kotlinOptions { + jvmTarget = JavaVersion.VERSION_1_8 + apiVersion = "1.5" + freeCompilerArgs = ["-Xno-optimized-callable-references"] + } } \ No newline at end of file diff --git a/gradle/integration-test.gradle b/gradle/integration-test.gradle index 7693ebf2d..7813476df 100644 --- a/gradle/integration-test.gradle +++ b/gradle/integration-test.gradle @@ -26,12 +26,18 @@ task integrationTest(type: Test) { testLogging { events "passed", "skipped", "failed", "standardOut", "standardError" } + systemProperty('gradle.args', 'buildEnv dependencies assemble -S') + systemProperty 'android.minsdk.version', 18 } check.dependsOn integrationTest compileIntegrationTestKotlin { - kotlinOptions.jvmTarget = JavaVersion.VERSION_1_8 + kotlinOptions { + jvmTarget = JavaVersion.VERSION_1_8 + apiVersion = "1.5" + freeCompilerArgs = ["-Xno-optimized-callable-references"] + } } tasks.withType(ProcessResources).configureEach { From cce1fe911f41b05774c8059f124e12a07868e0fa Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Sat, 3 Dec 2022 10:41:32 +0800 Subject: [PATCH 163/187] [skip ci] Update README & RELEASE-NOTES --- README.md | 4 ++-- RELEASE-NOTES.md | 8 ++++++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 167f87d36..b0cabe437 100644 --- a/README.md +++ b/README.md @@ -76,7 +76,7 @@ The best practise of using Booster is integrating the specific module to solve t ```groovy buildscript { - ext.booster_version = '4.14.0' + ext.booster_version = '4.15.0' repositories { google() mavenCentral() @@ -124,7 +124,7 @@ The `plugins` DSL also supported since Booster *3.0.0* ```groovy plugins { - id 'com.didiglobal.booster' version '4.14.0' + id 'com.didiglobal.booster' version '4.15.0' } ``` diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index f03aeb356..3b13a8b03 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -1,3 +1,11 @@ +## v4.15.0 + +- Fix issue [#381](https://github.com/didi/booster/issues/381) +- Fix issue [#387](https://github.com/didi/booster/issues/387) +- Upgrade Kotlin API version to 1.5.0 +- Support AGP 7.3 +- Fix integration tests + ## v4.14.0 - CHA improvement From cd35577df987e2151bdf423d2473622e0f007552 Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Sat, 3 Dec 2022 10:49:30 +0800 Subject: [PATCH 164/187] [skip ci] Update README --- README.md | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index b0cabe437..80f4f776b 100644 --- a/README.md +++ b/README.md @@ -44,9 +44,9 @@ Booster provides a collection of modules for performance detection, multithreadi ## Prerequisite | 先决条件 -- JDK (`1.8` is recommended) -- Gradle version `4.1+` -- Android Gradle Plugin version `3.0+` +- JDK (minimum version required is `JDK 1.8`, `JDK 11` is recommended) +- Gradle version `4.10+` +- Android Gradle Plugin version `3.3+` The following table lists which version of Gradle is required for each version of the Android Gradle plugin. For the best performance, please use the latest possible version of both Gradle and the plugin. @@ -54,9 +54,6 @@ The following table lists which version of Gradle is required for each version o | Android Gradle Plugin | Gradle | |:---------------------:|:--------:| -| 3.0.0+ | 4.1+ | -| 3.1.0+ | 4.4+ | -| 3.2.0 - 3.2.1 | 4.6+ | | 3.3.0 - 3.3.3 | 4.10.1+ | | 3.4.0 - 3.4.3 | 5.1.1+ | | 3.5.0 - 3.5.4 | 5.4.1+ | @@ -67,6 +64,7 @@ The following table lists which version of Gradle is required for each version o | 7.0 | 7.0+ | | 7.1 | 7.1+ | | 7.2 | 7.3.3+ | +| 7.3 | 7.4+ | ## Best Practise | 最佳实践 From d3adb7b4932e989f5601302aa14dae2dccb8ffb8 Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Fri, 7 Apr 2023 01:39:48 +0900 Subject: [PATCH 165/187] Fix #406 : incremental build with jar removal --- .../didiglobal/booster/gradle/BoosterTransformInvocation.kt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/BoosterTransformInvocation.kt b/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/BoosterTransformInvocation.kt index 71c43c3cd..93e32c594 100644 --- a/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/BoosterTransformInvocation.kt +++ b/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/BoosterTransformInvocation.kt @@ -207,7 +207,11 @@ internal class BoosterTransformInvocation( @Suppress("NON_EXHAUSTIVE_WHEN") private fun doIncrementalTransform(jarInput: JarInput) { when (jarInput.status) { - REMOVED -> jarInput.file.delete() + REMOVED -> { + outputProvider?.getContentLocation(jarInput.id, jarInput.contentTypes, jarInput.scopes, Format.JAR)?.takeIf { + it.exists() + }?.delete() + } else -> { outputProvider?.let { provider -> jarInput.transform(provider.getContentLocation(jarInput.id, jarInput.contentTypes, jarInput.scopes, Format.JAR)) From 92ca526bad1cd4c77d498c6fb0439daa0a90b868 Mon Sep 17 00:00:00 2001 From: wuyue Date: Fri, 13 Jan 2023 09:16:27 +0800 Subject: [PATCH 166/187] cwebp m1 mac support --- .../com/didiglobal/booster/kotlinx/OS.kt | 2 ++ .../booster/task/compression/cwebp/Cwebp.kt | 1 + .../src/main/resources/bin/macosx/arm64/cwebp | Bin 0 -> 2510232 bytes 3 files changed, 3 insertions(+) create mode 100755 booster-task-compression-cwebp/src/main/resources/bin/macosx/arm64/cwebp diff --git a/booster-kotlinx/src/main/kotlin/com/didiglobal/booster/kotlinx/OS.kt b/booster-kotlinx/src/main/kotlin/com/didiglobal/booster/kotlinx/OS.kt index 673ad86a4..7a2c7bd71 100644 --- a/booster-kotlinx/src/main/kotlin/com/didiglobal/booster/kotlinx/OS.kt +++ b/booster-kotlinx/src/main/kotlin/com/didiglobal/booster/kotlinx/OS.kt @@ -62,6 +62,8 @@ object OS { fun isMac() = name.startsWith("mac") + fun isArm64Chip() = arch.startsWith("aarch64") + fun isWindows() = name.startsWith("windows") } diff --git a/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/Cwebp.kt b/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/Cwebp.kt index a73167f75..40db9a806 100644 --- a/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/Cwebp.kt +++ b/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/Cwebp.kt @@ -58,6 +58,7 @@ internal val PREBUILT_CWEBP_EXECUTABLE = "bin/" + when { else -> TODO("Unsupported architecture ${OS.arch}") } OS.isMac() -> "macosx/" + when { + OS.isArm64Chip() -> "arm64" OS.version >= "10.15" -> "10.15" OS.version >= "10.14" -> "10.14" OS.version >= "10.13" -> "10.13" diff --git a/booster-task-compression-cwebp/src/main/resources/bin/macosx/arm64/cwebp b/booster-task-compression-cwebp/src/main/resources/bin/macosx/arm64/cwebp new file mode 100755 index 0000000000000000000000000000000000000000..61df9108ab78191674a0413f8727b15d75f7653d GIT binary patch literal 2510232 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 z zK|5Sexq@F(uU`J&yLbG8^6%>o`<6Uo8kFVrA)krtVk!>EF73!JaZM(V=>oC~HUp8T zMRsYTZ$?Q&@9IgD@$9W<3I6rGe{`{LY^35SuY{8!sixtqJ67_ob=5NVY+VH^}hZ+wszWGNe_wIOA(~X?A(c)a}T^ZNt zT{*DvO=Emxi($xMEqd5sWl9-rx^qju#((w*`{0dx;&#gat<-(Qs666Fe&A76qsIf1 zmPC6V1;2blu`h6!{`@Qbk^2VjG9RweX(cio^Vt{f^tNqv)=ksQ&8#1ZF)cI3Id-Sw z!-{WjLk^Vx*76@TGGFxNy^jnYYt{x`EwZjjtG4-GQj;DYsyvnGFEZ|xFR2=7n>-I8 z|A)LgbsJLxV-csvM!rv)*cncT*V<_71gYca)bR%GEglQK#%3pW6~P~AZ!z<{7}_O! z4E~VaT$-KJD5_JjDU>s3trvXHn>gYELuu1PO_yIt2DjrN?QUH)&itABley zu6Wwjzuv?*`<_6%Qfb#OX_udN?F!cO)k<)OOZxp|%Kz%G#=6t!VSzsPukWV301u0= z-^{bm5T9E@zf-U~OZq9&oRnV+evUN~TR{J#sOR+DIPVr{U{BdX)13x&&6cQd(k=^| zU|WQ~^@UZHL0Jf1h~3iP=|A18-PeNe%$I{DD~N9eZaJGGJvqCTCtWkSiym9vaQE8s zhFqTSNpLp&>_?dm705W7kayli?m3G5QxvKi?vB(NSSzLL)#6)kNzc02`iI<$$U{*r zf3RNE>!j?3eQ;%VPM~gc`GBP38*caJ;7gbn9_2k=d%JfU&n4Cum|n*J9O7yDyk zwoAa1boBLH)|`lLmrQ(2CAwCj=-)PUK|4A>@etTMV#Su5>^GL4fDe?UROGkQ1{eLC zzo?|~#2__(#CZH8_(5uk$u6dhHewswjOH{c>jUNn@>{%=)sxnoqzckBQ?r%!d`P^@ zVdSm-@73Bq!cNk#sQj4@c0x)=Fr<-96=2{xd|G@@{>2 z@GQ|yQ&t_x+mGDi(xR;mX4Sb7K5v}ddjH(iO;JV2kVV8n%+##bF;O4diY7-ywep-2 z@u3ZR^pMgjZF9&ohdg5pChLLS$&IDtDTSuQDBeX@gN}Sfobh>LNsc3j+=k6c{3h6S z3WWY_pK3U;kxOh>4_*wbd2=Q2T=G7jccG)eG2hI!)o3_yf-
{aCXGFEwNxQKo3 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

7GxI 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

W8x!3A#FC*(L%U~w z_)x0%8T{TeH*L)FKGQYq81243Q|NuBZz%bW``UWH_nBXV!S=(VNsFI*aLG3Rh8;^h z&+*ME?LrJ01^%(Qt-QBu|?o;~C?g2`dgP0Iyc~tFSVAX=X zE-=~2wLxUx3gyBxj9K?HO19)R?2Rw==pw#*@&RLQPXG8b>^ldH_7Si5BmUL?3_AN4 z-5Cb<)oWj+WOLM>0q4&QQW`3$Kk4bHTKQ%rWr2U$PIUP8ReYmbzA<2rTGk4!itS=t zfj^Phn0CfR_?GXpk~F33E%cJ-lKeNF8T5+#U5B#0O8P4QKCUhE@)4vEl8{m!Xd)T34ez~3RO1iuENS|fD$!d70;GH!o zt2T&p{)wAwyLHNi$!g8!Waell>!aJOzegX2$J|m`y?GX~^=^MtRO7$sl}+TO-(%oA z!-)x(?s`PM&<=dHe)bU?HM=|KnD6)KTbt&5(f#tlLV-(^^B_1iNgwTGAH@cP0oK)CHg18qFhXlqbZqcfScmXp=!ws!pRea+{e8FWC~ zr>3vHIAt6^g7yVpV;INV8OK;{9AmU`toDxMAN!_F8OJ!<75%Qvo%H(VOyA$E@{FVW zTN}rz{#Lp6rFr2EGB4etgi zT`^;bbL#~|1sL|V59qb#RzE`S$v*I2`#f&U4~y;uUhxv!Fc1A$G1vw7cX(lT!QD=| zclXV`U;Du?lI5A*BE02RQ!WdCRy)1|YoHR|GCR9d zVa-Mtb{O)ftk|Q!oMFFFc{Wy!v_FGvlRZVRH6MFD704w3IH7~6z zI%D4YV4U%-&37qA`>8MK`+&Sr9dV-`OL&`g8oqsh=ZkCi{Uq_)-oEGkKkd6e_~D1| zMh}kY8ZSauos5s*$5{9=v^>ke9IA%%-|@G~wR^1NG~RWb@i~FNTH-Y8=^y*4cg4(7 zt&!NRQG=D{0mHC&Ch|?3(v>(-_A(uZ&nXX|Q!YF@2cOd`+Mc`D9-F^k`^vA?z5-AC z3a;J0>&X?7CxSO`O|W%c)G04Z92a`^>+snZ4IfXq)DA5jgcr2W&9TO>GPpjCU|v=i zzf=)g8^ln}Kb@}&O`P4-{+W))U|2M$b+lS^@<3vXC z|Lhe8*WUhd*R8{Fs{Gid{_)Oec(K&;)}`(}-wRS+-Vaam$_$z3W#5%e1JIkd(O!e$ zx0|=s4q`X-qcQnwPRJNOvNganSv6??IfUP&I!&81&(yv(^zkh*Z3mfCKMrjR-yX=gCIgQx zz`BP2!s9ibyPtoF8OlD}_=KZ*CfD>OV*~9mszC)otj`z!Ecps%Jqga7(Hm2; zkUfW3KYNpED5wTbO6gK!Ib$0?`MmqdxIs!SzT>hSWXTf#pG-Te>7SI7K9=f?1 z#GObS_zt&z-?jstRA}Yr$e$hN7^j-a_nGeRZ@R|!&tCO?Oyke^zAqZ`jXM$8Wk7#k zx$_)45HZ6ufKj^Wdc^^5Sm>~2oz$@^K+$BBH!j2lJg=ogNDM-CfRZ6&lrlKaD*mrY z*hVRdHuA&>&kE`=?B1|B1zziWk012{u{T;=qWA>RS6|-@?mfZS+`J;e701Cku?%ou zvq|B%T{VpP!18ipu0`LC!4DNnET~&os@axnWltLCSiP}Bhfg|IAM3QL@oh3MXK1b2 zT+^6mwK8Ap+lCFu(8*dGjkK|5v+&m`+C0}^r$=dV7=I%SI(orC=x;XkCvdofwcr06 z;UK=Dfd2kba{k>7?z7Hw|0efZjMH%R6#O0r=0}c?s@D8j$I*e^el6mSed5y-i6JL8 z=XH4}M{nHqjhWJsdqV8`ISDHEvD+_WP?Ro%Cx%^YW%1D{jz>l-j)ysZz_F3T$+3Z> zhNGHe{pfb^PWi#Q(TW~4DqwAJuW?rZUtpW$Dn!`=4*+?VFMuSFlU;*A}^ z8i*R`v-H87=CRmnvbI6=;fGH8*WLk4-(I$)bBDBty69hK3H9#a98bQvv3W`v@LC0SIoKmJhzX&;B~t(E zIqb!xWW-s}OML4szPerm^*%+t$|Hq+*PH0Bm$iHDu~ir^h4E7SIs7>E9PFR%X%D{6 z+L8w=u>%Yp;{TU6{Q})Vd^5^|mNAaim7}+Op=%IWDkp509Q~C`CAZ}?SFa4VUdx8+ zjgvC&BA08-8lN}G+__=QqPifp>?QFJP1;?(xkfk9YDhY?x!SCB4G6#IL*O>cq3gU^ z;!Dx@UIyp!t4B7D5}zl}_{W86)7!7R!?}Kwi|5q|w?-g4rs__f#tZMM-5ck++;l$@g92^>K6&%6m z)LgwSM_c1TOwugzJB|Vm+KJ&Xlz+dohWJJ6_R8iB#MtNmo2~2H(GGY!f{?+E$_0Wy9Ka}#aPsu2~(kyW>bHG~|Ci=tWe+E#- zfWIP|b>erfQfDs3=OksMFTUkI2Nq9P445f28MjJ}%$U5PyJ z*XtkhzJvD$&NbvVNvX`so+0A6XTuSnwMQN@Ze^H_RL`a0ppyk$7Uk- zDVhI1CG|2+dv4Ku%kxhLZb|Ug|6Beo?Yfh8U8IfG+bWy8;Tul&gG{8(FN=AR`H#;Z z(BW&*<8$%D_u>yO1>kq}&V_h%S08-Y;lY=B4PPP~AEXV!e;R!7Wrqh}c7QKWAzMoS z9bYv(^;5=M=Ahf?w_M|=el)*6oprLmXbP%0yEI?vyotP`1$OWyAN*iGE|W35@N4KV zf&N(I9nB9R8(3dq9|r#I0MGi>>ub-vr8K;}&A+xpC+my-YGti(HRF3IAjV`Rb}qWr z>hX0)V>3F6*2$Pqw}HAXhi-Dp_+CUOE722+ThYFBhthd-DQ$?i9!huzc@VNJXC9 z=5Bu;?azgVa-gMOekFd~V;f$x{gI8EsqcF9^`sAd#evgt&!pE1U-i+x{&jlA`JAY8#*!01&50*}aPCp<< zaUuHIF6-fh;m`x|14kFY$M>QKccD=c7-)8jK0%A8tKWB%M!SNKPXUXA*sL*aqn$h0Pcxc!9n?9R+m~IY zSpzhCuounBvl5B>L>3F)%D>j~FX9Bl-;B6Sv%;H->9@C>;AaKp-1kx1cV_w`W=^-&lP=`{&F{JkPo$p%b}2bBC>A3w}I_5A@PX4R8?N z*4Eu;G#b`831m=(<|6lkoj1z9uVn+cO@RaUhL5WJ{R8&bW`fX z*GoKny~IZkNWH*fhE7nz8rdLp0-59NFjqF+q?(+Q^)2P2@Y#I~FQ0RTUJ%nL@Qnr*t8}cT=KAFR z>K@%7+DA9Apc^bc@Yw8D#zE-Uz&CH|qMe`Vl;#R}sso;SS?0U{OT3q+8^oX+EJZhX z3f(};e9T<4n+LedeN4H<%LdF8Uf|UY#0K(~(eVxIt2QzB*(~1<6CJ_I^W-GAp0EnODtbb@&aEf3Q^(?!YUC*R^qc4jY^~~} zC&V+8t>}A~d-2V7%4c4)?t~&Wo zkW%||-ir*CwJzRqkZ;i=Hg)&NP zrR*bQ$r*T}jJ1ie5xC2<5|2DR@b!$5o_$;9><<85`Cu3DTWd0RTgeonbG{V`_*>tu6k+MKL&ysO_N zJHC`ztCDONSSvisdTG+JRkXp$Gx3FZuQy@`vZsyH*~oehH9i7AYksn#WIwSjr=jK+ z*7qv)MF!T=zWM2@V^3^T8?eF3YFMjR%$lEfb~VV2nD@Q+toU zub%|JXqS;#oD}d0zgJfxF@Z*ZZOz05qrcK6_PFSu2G+ZYFHw9;4sh1j9xp*Rvl8!g zWiAW1y)J%3-}(gCuJ9G6dVGa9sa@6nZr_A) zp>z8IZT{J!H%`KjRf3P)KwnC4aWoHn=ljH5xYz1xzR0<(4+1u#(})f%vgr8fzz3A; z`l+g)ht9%FZg3iTtL|Z`jE_63h%Mg z-c>`CveMQk5@ftKN`LleISs^+S_iSO0&cHy9f5 z{$qjmkC2Xb)*9IvcXxdzdoX;-!vC`QS8_!~lVQb%x%xzAt zxV5Q-wU4Ck!dBraLY71F|zXo?(`M=CBp~~9m;TzujpWBcvf?R z`(FBAljgn_KXj>gZ9aIQjfd9JN2J|_H}%{!Ru zm3$pZ+#6<$&z|Jb`5PYUKQo1dHP&<`T>L7Nj@BehqWo{s9XHXIi|GCGowqGjw1t?f zvUdHZgcvm@WfSExJUXhBYuDeDB6_qT`iTT1Fi9Csjt1gD3}cjtWbp7JeG~p5JW%EV zsH+@5L2b#|%I2|pL&r|!r_h@4pa%Gum*+;oZ>0@hz8jS)zR|y*FY;QrVx+&$=wg-bR;xj2ZN&nC*jiCnTtvUMIggo&d8k~k&>{xK?(lovd6-^Vn@a4+#aoAa`rHt^B=JdEdakOvpREy24pjG@>pcj>S6`}yLuo^J#n z<(qEsQEVfzR|Fsb0zS+FZ^T~o)*-$vFV4iOu{}7`uD{uXD^DhP@FC$0xd^QIPpyZt zo!0VyZMujbvVEC#X)-yHg`1Lsc0!t3|b^f-8m@!QQ! zXO@*Nt#SMJ$~JoZdrP1N>_Yn#PTz~|Rej=!6jE~6=kHPZuB z^}%FyLxO?w^4|Rod9C%s_nxq2Dv{qd2BkF}fg z8BPA-Q`O|3#TkwK`_~vpb4F-CXSI2J=Phh$CbBQKNA|@wc2WOUc+CmMLtrSrEs=5U z$iBE9*%#M%j_1OgWIU?jp>aL3FRrnjcXQw;8Q_wa-`FCQS(3-XJuY#L?@}hwBZH(| z3G;L!6Ke*#<)O@BU~6geQ2eYS4?o9O^(nk%nV+(U{NkEStoF>89rBTh-5!}JO6dSpnC z{9qh1>7U3Dp%?LIS9<)|KcfB?gOVwJ?7d$oWexkDP7paFaL#~ls)24f!q^J$&P4AG zk7G^y7G1PG2^uC5jGH##tN0eQaq{+UJ@+y`wjQ|=*SMNzSI7mkfl^X(AZ@s0I?+d00%#r)TvqxsUvj=~lb?FZJCNTIIy5EUT|CbwyJ;T<} zbPQsjOlQ6too4jt7}u8@z3uHNp~sONtg8_l?Kto*0k6F_yFtC$e(UjbVK4OfxzN{l zA|veZR&3}@JNAN!xE1kpImORqz3k_5il1vZelGNUJKte%Y2SJMTpPsCRr(eETQm z^3PJ%|EA!p`%{o|WFx-14XksWf}hTwv!PAOm!M1UqTU_gRtkJZzJHZ-GJZJn6Lgq_ z_ax=#myq|`Apd+xB|gRdPI9^$)FAC0v3W&_D*|U;&woS!d{;Go7v$m|v2nC`kT1cp znt`?kV1875P8$X)4T;dHuV1Bmzy4@PYT$x1gA5Bkf538-zTFV!cgzi! z*63>|`K&E(zgg*$b(TAsZ_{#45JxWSq&~s+5?)bKTT>JkqAN6n=*$NX))g5!hjSn2 zrZ+)+`mGfuBGJcNVe#=;;EEqVR z)LT-H?^kN|#C5es`fvJhqHWiCQ_GkWJWI5_J4OGjVT9kah6jdl9?E$lXB+4GmeRCh zM@ibYma>I&9g7z3=Y9?MuW-MX`xB1&X(t^IF4S}O=bX4PEY!9!Y+5nrdd^C6k~uLs zsn8Z!Il5xMGUI9Dx9-Oe{N_NVmblUIRkZyh<|IW2Xunx<0HMc*llKf-mv~F^FyYH8 z1fElY>lENy0G#vjl}~OsGicI+j?{?@7zb@lV=evqx{k>|{U05ZVKOFqKj_2&ofx5$ zAjZ$cI0iGGA&e_DQW45p-(GZb>zC7s(1kCZ2yMi%{#@uJ(nBX7{z}>P(ceNR_=PS; z_;32Cz_#mxmrj&-r$8ek{GkhIWWy=p-LHnGBswTEIAH zbn+|u^>w9_I@;cwcjYk#;}{Ds?+WBz`I_;rxiThSQ#u*m2c0k;BgXsCNtkC$zD{&< zDg5g@CI@MIZ{Bq`V{i{+GJ!Ml{eh936FGmK#^kB5@tDl(V@w7!2Jo$(FHD7nW*j>|0#BhOQ~U$}Ed{-R*h)d{ zDk z-xp8jdZgz%hwEXUYwAf&_FPkM>foO8A*qQyeYA1lD=DkTE_L|XcC8N1*;N&l zyK7y)yj{vua|*={O5&WvIhS)T=XspxajxQA#d$mD?VJyAKEU}j=hK|qv7f{KXuG8J z8);7B$mN*FQN^*H;{eBL4&`5y%sKx$$h`VrhnV;O>y174^4y@@`=fS!a^ns~>C)x` z^?Gvc7||Dl(7)M3Z@*6L)FTFLF9WvM4)W~y(sZzgraL4~bP)M{2C-KW;}0bjb_50& zBvmQXK41>|EO?(b+E(hO=^Tv?hxW@Y6}tA)^r-21rICJ-&M3bqr*7%O)P5pfesPfoH;mAd5LdcK=m zWSja7<@bXNt7k*g(9J3EWj}Nyv@LMHhqJ)hPgO2~rsjWXAAUy+(ZAeN1M?92jIr8e-5mD z82bMSd%+wwhB{lI|6$O7uwSr7|CRKA81ygqmC(yD=wG`AM#G?g?HYO+2K{T-)H@9N z_mmGA2K{@=YxFO05gs6L(S;}rgck@8_!IcB8hp@0Lx~)D#D5816az!S`#* zJ`B1Ffgea*)AK?{9)7UJ!w~jq@B?Xw(3}H)FbsYm_YUbF{6M>w{=pBlYv~{S zK)aUy!4Ev;Lx#Z*Jmo`ZkGH(W52URs<1PKEq(9O>Wn6Kg4IU6IZD)L?FVZ)Kz6ou& zP(I&3g!K*~@Q4uhM+i2pqHi4@9wGceq3?+t#BXc43;(zCiR0_XEjane_yzAhIbp&3 zTP7~}yYL@BrR(^58~@GWzq$N3@4x(CV|dH&tkFu5thqg|uSt+RSlGu$eEmqRjKigh z0{C4%_Az@X>fJsgzfk{8bMem`n9C_8kDXOj3asRxXCJmB`KqDTcIeD#$zwL3yl@3P zpF$qsUF5BQm}3L;8Is@aJkMJvpC3JNoHA`-N#eqss?gB$l&haS@^dZU8*zuSX05ff zV>EFDg}&wLONV`qk5S7tmqT2Q@aDPf?{U5Ml+u>7v?-N(hf$BvOZ|$LG2V8`{~n=z zhiISdc^JO1-^_iJFN{9Lk(->ja4v1kttu|etulv(lMi&;Xb6JiTVd-gMVI$Kb_7$5W_suQ* z#%E0l8^c4N-3VWu6+TViG4IGd z({j1aJ+frly0FBwdpIU?JQ|jiHjiTl$FsB_KAh&r(wo;T)tjY1Vf3q&{{E8wzR&%Q z-0#Z@G{3Sm&@5wOO$x5vfV@a8U67S;G&ya^3*%(`z}ZTOaSZ27&gq=fIS=7HoO3*9 zD`)mwNF1VsC`n3)jJ>fzsU0NW{WE9zu9mZWx0bVfSI$|!Tfmv`jK!S!R>@I<<@=7* zf5$JVE||1*z)Wkhts(7OC7sF4OK?AGIM)RpoD%#hC6|HFrQnq0+!xvlV=q;~t1@7W zG%^n~>k89>?I6yBxgQT4kE)^0p{s4dyE%{K{NP&K=Z|qjgnc6|GHg`ZEO6|b;Mn)T zu_fTxCUER!aBMNSwHO>L;#>rdEdjTl;JAb1DR8TtV*_p(c{m6aOs<^H?^8IPQ z0&idBc!J|C@OC%HQylL=A6q##a~yzP>N#8-I{GPen@1mK(yuV!kj|k%w_(t!!15yR z-^+?M|7B^c`9@$PusV?yV7{<4z z=d>GxopYdr6zCuid=BDls##zIC@SpkFs1#^trqsoGy3_>?&6K)0PnWu&rI}I}=jl=xG&NJ| z;yhjIg0^N#U7V*&UC`J}sf+V;&MDB^OzH~aJe~6(Xin(v%%B|n!TYqlegELyUo+nQ z!+-GZfAH@A-}CMl^WXRf@4gQ2eo=I!j<2A1f5h4nukJkyy?Y5qbXaCuR9HsZ6X-=x zq8I%Pz3AuYMQ@@PeS%)J2YqM{deJ7%o6w8iLLX}4_#wxe=tFxr)^UjZeHl4?J}U}+ z$F0x2!F}y5(dJFdqRpAS7n%JMy3KiXmLH?%)S|z<&UKjj<+``5-4NZ|!1=#Z_kI+e zMRe~O9Chd{qI=Ke5Z(J84o8;1xoWAuS#&cNq@=0nd;aKqqQ8`J=+IdL&{@#EU$lmY zT&;T}pHDFkiP?!E#u=XLOs>)2PV?Na-`2t*{pt%R^xIZAIGyL{9#=gd&hw-`o?Cey z-pBJHi6K&_l9cGy<4?HD43;(=^;}CET9sPCkw^PITe!R5_QKcMi+rTCVRs+Tr499c zJeM}q_VJuH7%M$>(GIOW>fdY^XgDu8@m1{t>6foD)nbm=qK-v@tYNuQ5;o=cy()}BkBTb0_+_)lE_7Ynod z?=GC(|E0n^rO!Nns{hM{&HeWj{;vPev}Y;1`zR}Y=J^$6rO)+!l$Ad7{ED*D=h{BX zN}qXtMOmJuRC@YBe}lNz`oXopLf|kMp2QlGuWC1GeCU6J&#M#L`C2}&+mX4Q@C9F= z*PGmboqS%aq5ZYj@p-ji>+i?b*W_+ZA95EP|7+s&(s1hQK`uGsM_u5TI zxc)lXO{=k+)?LSL5?`;M+irT)s+#{{H+k(Zbe6xP-SnvV3cgNu(>MCCo6i0fcGJi{ z?51Swrk6Z&=0@x$v7dyVymph=Q2&?grU~dyMLu@ZYV4*b@X35tyU7nbDa^-iQn-(D z+f9$=k1_wlZu*Da^w-)=8Xx*9KFjmiW&hni%a3}=-a3z8!Rxc!jqLr%BYW%M6-U2j zvUd%#cfF77)uFEk`1mYUWUs$h_Llc8dnGTC*Jr6+WBZHG@;wIPl=6e64XsM8;E2~>`4Kj}*JpXvb7@0; zALXSD_zJEn?~%P)U9>}M&)@E|{HtZJwC8`)XE~}5+1t@e_I}vQXBp( zKZS-mpdpdHAA0CXWbX#9#lAD(OZqB4%L3NrOH6}-^Z%sJ@@4#$UZ3T5{FUOfd=J|; z0K0Y#F$#|nqagm=Jv>_vZ+X&3_UiCaM)>$F1Gtaz@mZ?K+HfD)>(70(SN87dTlNZ` zil0*E62xyQ{!8&$YR{n=?K$`3#DACL#(S@CaxpY4{z+eY691*wXDK*&MOkR-in8gH z75`mQAOD5Ut|&{H>Egc&@1rcVcSTvsO!x4FL};-d{dgbq6JFotM2`%X_KEK@3LFyu zrPp_{uPRGFuP95IJEiaS zeUzo2SCpm9oznN(KFZS1E6P&lPM(SHQtJo(-;H1Ob^NLyNgH`S-NT;};ZIk<=BxWM z|5wT63tu9We~L`L;3Jcdea&QYB{F&Kb!4(0nJoU=Lz3&~!aroP%tdOl9Xb$u`0pW; zUj?>*tvxLC_dh9<)BBLgXZ{MAJgN_woQh1|?UB7+nJo0=mB}Kj|1ZhpN@Q}ak4#>R zOn&^YkjZ*vaHNk+4&*+Td%>st;h}xn!~c-U|B%T&`bsaEEPHIrx*=^H0I~Eb#Qdic zBhA{88Gq6%DRbUqUCnz+=v3nT)5z`o6LOQhMo!#k)s`{a!&^pgV;$*gM^f4|tR-FJ zNL;v%`{!Dc(yF-M-jcX*`<;mktE%o<_(#sKa2`93{hU}&lrFhsSeru(Ma0&eksTEfVJH^r4LdbgKOnYY24cX(On20(IO=9nVq6dg^#BXN2?p zN@dEf()n4xDNW6CuagMwC}z!-*nfYSwzolI@KdARaFTpn^MO?=uo?!eHUg_%E7X~+ z(+c;(Yc6YcPH_|l8=Xi0ZIzbaX!_F9PBZ&Y+JNI>b;V1Cr3*Vx0nd4UdedNX*vwP> zO!LSqF)vXGzk9jgOyJabca)O#9%ZWh{7n9osZ#t+Rg|fs%v#F4r#CmQrOaSm%a}hh zCIOt+%NPJN8G~nm*%9tvg2?5E2 zhe@O1_N{RXSKGT$6R}2|7M(y3U`6KqyD&C{- z!5Rs@?q{za;cHnFQvtmeL8GiC788v-B za-*bN4g1n2#V}Cm-8+?^$@M<)8C+QS-M&Nhx}D-Eo*YL)dpVeIP?X1_T)d8`&QeXKS-d7O6b^l{qM zk^uan0eIv8LR$HuEOU zn47O1$Q-Br%sEaQoLQiyI}0>pwpWXu>(#uO50LKx?fuLe?E`0xc2j1xmglV2%0@k) zl`nZf8+5}e?dp41X)!m{XyNzPXlqARYt>7twSm-|=P7mV1x}IMA9$*?t83=Cssi;7 zt(mELJXNj(I()Oi#R4rFT;zLZYWcwJ<^2li?Ko}R2JC|*6@dzQA| zR5M3=pKosd83_KK;{Wh|N>iH0;Zpfm@szt_IFm1$HJEPxS8F+=ub=xyp`A3=TW9oY zxp6>z%Z&s3wcHq%Y;TI-IhyAfp6efXXnP(n)!u!)Ofx=Ft_^%*rWUp>)mFRwp^|Xc zutcziMcI~Gysvem?7gM$w^h=zz&hML$J#pEzn9Qm`EjlUzAbbww(h&?|CDgAJ)fW8 zO5)u*_dVA9mMSg7JzFbtFVa@H7i)Pn+qLvHaqw6@?S9tf;eJr&SZnE;xMIb##bqK* zbB@*2Ot+>u-P#u5F;eFM>P)w*t^w}5tcqP>zo5IV4ttr^?kI=;OvUPme#Pvkl~ah^ zFy{@ZQ&gpQp($`5#(m(u@Rt&E@tgjf;9s+Ka==UT2bt|n>8w#7=+18%3XZ~&%WpnD zi#XFQ+IIXs+tDlA;ot53c4!TwlQkdf$8}qFkIg%7mc3WD%2{z{W#>r?dtOE>J7f0Q zo8rKE;+y$RNtE~fC;QvhKiR*y`A|EYJ?qKTGJR8=ffBwwNNVTTNE$e{5N7>&lpAdxdhY z8Zh4W24(%rfN8e>+_Jd%^Nd-={RfOM{?`H1iVu+gAo-7Mx!cyAG23>U{HX(OvYjFS zi~+aV_HDVlxHV&Tv3bBv#f1ZID}H~~kF^)p#M{Ci_=%*&vsS(2dY*!<2M%uohn+P$ zwT(3|xT5o;UGbY1SUq-=3*1@D?MBx3P?gCl*+D(U!Yu z$Mqp?_;E-Z1kb;t9YOea0skWb_}>b^|Hq7Jwofx|vu&^0t@rcw5y`HwRlD>)zK(mn z4fN+I?gMSGjpY9Q?CIJEbEj)hWlz&~&7Gz_?_8z5o%x9Ns`C+TdsNdp5HNSh>}>vdsFjd#3gHiUrnpTNYXkE32$~ z-HWX6uDHuO*6y$lgs)5OrB>BZhKw^68@N`CxT-jfD-S+rZFx?{D8)KpiDE5eovrYE z7FW@bJf9&it#`(RwBCh0S8y37^L%?+?~?=e=xe*oN|( z#`iNeiTt%AfAd9_#M_$&_seSiA(91>ry;R zUFrR9aHV_hb>;W_26}6mi@h5WU!*YMxmG`hjFJ7`YUoy|KFJB+hWbAC&!_qnXfs!cFlh}|a*(W(g@^pW% z#2j6}uy1dZ*6@P|OZxGy7kPSbGuf`%W-4x-_1%*GytDEybK{DVRPJrucN{S`oj+k{ z`s`!1sr!#g)1Df8N5f#dPxiwc&D9WT@9az3ozHlYH3DL1o@9^A4EDa%ZD;Id8M{ov zelF#5bM0jhzb)+H_bz)|zTC3Jwbgx(>$rOEE|uK2x`IV1RpX+MgNAR9~Hf;{}4rKp8 zTlz!M#rgTmtY!Jjw3Vb=Nnat|W?!cL%)ZPjdsJXIX!gp6(eLxl&a;DOH_vYF>$!Ju zZ_d;AH<>(!weCY$6L1InhCj}=jO!$O+;cuKTeQphn@Nqb_h>5nn@C)$AjYku6h^F;kE=CG1Z*nf)mzA%lvMMcVw2 zzi|uuxrXWcR9+=G_@|uur=0r#B&U{l{Zmf;wQ?%wOK|v)BBxG&1|1p0v8SxaFdMQg z8ha`Rdny(g7l*8iN9H9U`>>^!C9&7q-?2T#9?7!5=o~KbK~4^_r`|lFGc4*N&!sYB?m)99~wY#_0xM)a_!M)t6$ z4x``BqTdp?+?n&L=sfgW_?G3at10j5fZiKQSwndr-NT-ey~{6WPrZU3gl8_Xr^2wc zF6j6FDtih)vTjeY5B04=UstlHRQo>!z6Hn1SGA`?aA^7x94e~4mkC-O#3lCBX6RJ* z@)mn)3-q`mU{9@t9=8VUsh2%lT{Y0-lOguhD(LO009|>Yw{6gsDa4*Cg>HiO)QYce zPqB9V;=cHPd+Ii1$~0ult;m?E$eJnGQzh6_laWD_kVVDVQyTkzhwJv#Yk&NU?5Q0W z_JsU98}~gxU(e>ci3?e!kNfEVe~$b9!g1dVUEwPo?7upKa?y=<)t2A=U zZMN&`owlUT-5*uRc6GYPPtBFvlFxzn(K2y`(W^b8PEKW5I!`Y?>|D9s}*jpdCiqF@SbVB3>{W*kz6A zwZNZ|=Cm2pZn8OmH=g?Ko@ccL9gb~UBB@gIjFv>2RCc zwsF;4v*>pVaf;#mA1!fqlo7={!BZCN#y+HuB2tC^e~Z4aBX1(*CsBSf<@cfdc>4bP zTS{!ZGbY*AZ<%D2TL_>{Pb58(N!H4Chd1o~?|{q-iW*VHetC2pB)J4b&_ z-;!q=PamD74M}AV+xKbHEA-c^@b3xwE1DSB*!(K%LHjK2jD3-Hy}ev3cMz*tHb>j$ zm~9|^*pZ~qy2_e&ufE-rG3i2(0a9fwl>Lrmo?fxQ*%2UR(DyMw#QLw z%`2NljJ6e8vDy^UbgukByA{%Ou1U0eGVP8XrCQ^bsI))dcQGciz;~tgH>~_uiAlM{ zmfi!EcP;aukBZ*W=Sb?2g_ooKAl*y)AD?$8`RQux{Bm$L3)$zVty0?p?%!~f+Nwwo zfajMTlc19-+Xvum9W;L`K=TiSo2l%Jc?Np<0GeM1&5zBWW%cBjYd^PFS?A;vM_;zc zI<#yybaIzKJ{Z^ou4l}s;3t$eobs&Ghkd^2 zfEr}JpGHb`J@I6QwC-^%w!Y$6q+RG=+9T}>_OJB!N-h)q8%F=iK1DaN zPtle7*#w;rgwDr8=QC+XO?P*a?NifwiE&Shwl@tWF7;|N@tdXsmVx=#0)+LK*mj9= ze~L@u-Jj&ztoev@Zw%N76IDxN6gI+#T&rW0onf!on__>F*A!2Ddm{1eLy1$L^TZtO z$tPxO?fQC;Ij)}*$13YR%zg5^-e{R#{3_3{vR31hz?z8zglLBXR4j$PZWLVJm5V zOyc*aYl>!i{A-{DXA9sJ|9YvJuC*Rnhc(kR(<5u9%3WJMbFjmR8~4oC zT09QdY@S(oQWetXVp?KFX#(8dY3QTChH_L$i<83e|cci5sxp`>1{pMDqp)sEOWbXf+ zbuL}(L()HWw>BoVSzA@6XfiPui2Bx()77$39e#_0Ydv|(H&T#LAd{&c8T_0!>c8iNdr z{^>Al?6kZYlkP~fM!z`BYBmh+ADL`#Zs**;p+yeY3Dzvcv3B6Z*hQ`r{f4Kv?1uSWOAdWa zQF6zal-!rPjO|}z{o{`kzPs_xt_6oaNj-Wn)o{&+J9y4ftaWdw(RH%^`$(9Q>*{hI zvKo}!)Nm!&di2P_BkDCD`u}qrYENxBIEMdz$bTG@6UDFTUNjaQd zn0w?Z=c)fozDZq^4js8_!Kr7sujKrwJJp!F1%W&hy9y7rao?@yUvf&yJ#v-(R1;|% zWtVbJ+T1{1)>Xt8^=^45+oN=>QPr3>@KI!#{Y3Apl-P!rf@WXKq1=~ z`*QB{xnIkDKKJR|@8JGb=;1_PQ&T$cw)Y$E^7Omb^?qDflfw7%ej`{@GSYQCD!geg zd6ltcuJnG_vF_x0*D+&6Q&EnxQ~LA|M#cNF(ct|A8fd3q4fNS@`srG}y$6oQbH3pm zLwMAo33EoBxqZ%(PmSS?N7%FTIQs)Us#%m#>9zH zgZ8J?sZotdhN%7bs7ViY?^RFPp{)(j7UMphwz@wzw!c7seIL3SV;J&bGxzCAQr-1R zpSn?jJk`+DF=(nAnwp^u`EawI-*IR;_fKj-f6RDI_C3(j2Ks&zv@xci z^OV%F1X>!?Z^0?4V~v_rw?XYw_x(VgdC<~FfjY+YTXIUu9n;T#O6vN^z}cm$T2~jy zE3{MzEnNdG{lXx$WNzHWS!XYOQ>k(izp^+sA?o?*i+3N+IF$0HA--{!l2EtH@J8+~ zLtNCuYC`2J@MLBBTN^(z#%FU@CwPks!CTzKy21N53f>aH+hR50!IuJfdj!0V4Duv+ z+XZZo2Jj~BOQ)WZ;O@E*yltjUFNNUk(XNYl+Z@1KFu&k!F?f3<1aDHu-2uEw9c$Et zx<|m>qak>EI#5SXygmITc$=r=Ek3&_{nd@9O-f8r=ki01A9e5gCAiH_QFguoul3}? z_5!7881ECgP8F+7XKphzwSUW~^HO;K!8#v}>pw{6p_%>BZ}7p&{sVO0+0s8l=NsV{ z;gR1%+d0tq$IyQ?dkVC}0|xe;NbjHS68>rFpQiK9arojr_#zy>I00V>@0{VRVd0OP z;f+OxUQwUkzG%twu`PEb7!oI5f5)OF9em%E=jV|h7=k?VOPxo~82jjbeOLOM@JJs& zj~JpF?^UAq->arPIOAnMk8J#W$)Otp{WzoB*#1t!LmMCae8Hhj%7_pDo%?hprS1l$ zU)?u?ef_!fP@WO~h(LCdXOEuWaj2X7H@VLSRl_`@W|9a9n#lQuJDM|HPskjR}DR}K3^{{lt)Gw{XCLfz?z*g zejb@N@bJdNhNK5yh)s^#J^h~D$phX>Nko3U0R5hWS6(nAMLl9j3h>I?8_yUM;g$Ht zGsc7v{3T4>FT4W&?g4+7$QbY!Dr4RT#_tF4_gn72AY;H^P{suD_x;Z=;!k9Z;4dhX zF36Y={7D@_86$P9Hy~pS$e0lPo#9^OSWo<&Fak)XQ%0sr?%=-rAjokIBS(new^nDwBioH1s{XdRx6_nG+bE`3aV&R~D8(CM? z*an>=!}mw2Q4cQ11~`hG&PLv32Wb!+Ae*`-COo)t2r}pQ@We}M)`z$7e2o%SHy>R) z51Amk`x@l+54nGd`zZKkIr;qmIS%~+9y-GF1pfOWI=Vu&T==ien3>%RnjFHvWB7MD zHo(o~>kUmV#|F^2$G)i>qFU>|7RY0PCRcMWa(?+$OHN6-%dr89NLN#Kx*A!R8OSSb z7Mz)p-I>Vl^*UZ7v!l#PXMD2K++dvEVZqJ}o%5__?a)!9+Ss*hI`-&o*rn63PjAIe zol3mx6yjY=ht%i7#8}q(vDQ%57s?r|oK~&bD?k&?kZE;x7wv=hta(>W=E#+DQX(H(&&eGb& zb?G^_vx*<)e68SlqbC@9oZ#%&VXVDyTt5t*FD_7 zotf^MPTE0wciyGv`#jCLwQ~078ZJ2pbf{|6*YSPA{uj0k*6^|S#*>_Tw2JEuF4`jP z$Y}@uQ@|es+_Att445YiES!53&G|<`7=caT${9>5XEz*R-SR1}1$mo#eZpQp-(yc6 z&KRz`hIMYKDN0qViTXHabQRYdT>n+|t>HY+TPhZeT4U*5=T=h>&*N-^wVbUv??zJ2 z)SNerl(RJF4I8UN=FP|!qO=-xXbmWo9Dv?bhqmWNlIY%1#^oGbMIU7osQA@u%O}&YXdW19m z)<=(UJqlm1LPoufjN*(ltrH$U-%_e^#-DZfmNM-Jq#H@k!Rtw!bH-U`w&|pop8I$4 z?6aT@*ah#eM;;ya%L3Oq((t&!t{upOwaBP;zg%$1xyQ%`*Mc5rko_qcbxnwjdJ`E% zTcjO1ei>V;Jp$a10=LLjk(d7S2`|bhVAEw3GBZc^-hB)Cbe2obd%8=#R8G~g=atB* zLeij|dJ{SIUsdN9@zzr z{W9;_Q+8g=W!|%Irrvh;i4B!`Lw^4k$vmA#b^3hdtJCM-N{5bu4n&70hv?90yn`TfCYo~8fRg~+@&c&0D^rZVqQU=W#i z=D$(qh1U56y80g~^S&yL%KpE)-23JKE*gCfdUzNbJw)951s8a?;lNTZ>3{%@htiE)3n|K+0X7#9Df{ug30{>%I? z;%nK-Sm905o_?6i`CxkbUuv)$hs{pDa}ih7_`Y|RkWL<-aA!2>t22}Dd}D0iJ3r9V zggdM9s-ONCTb{j;C#T-e-b#PMA2Tsztn*iopDzQ?g0Sk*p?(?mS=GlonWVw-&R^q~ z5ua5!^$z6<2RA3c!v|v%?)(DnGLEU4tlTm$i*y1hQv2r{U zFIrW67w@AVO0ccv{UXmo?M+XW_7>^gq;C^H_d>>G+i$i^F5aCnxme=p7H!EZW(>~1 zWyNyl$d5DfZT*-_|4BxE@!P~y{w8Bm@kr*?Z_TjV?q*ClEyG^?Y|W3gw`zW(l~B*K z)N^a`w0OX(7l>ost(Eh>ocGTW*Rhp7W#7*n&mOYlwN;suiSL-K#blST$83qVFng6Y zXYML(QKpA@4v)4i(@UI(mpy6MvTx#AZPE=MZS1`sZQ%`Gt?FK{cAC9s-)HaHImCOE z6Yp_XAf96fco|jNJD$Ff_r%=l@7MBv2k-y?_eBhS5%VQ|5o7yeKg7@v zF&FwFjeaPlACxsQwzM@d#bNAE7?G?tnb-^W8S=%n7@A@Od*OC1dx=;L#T%|D>kE4+ zJIu{vo0S;Tl&)p|{inNMRt}sgR*C5_5MQr&yHk~=Q^{BR;@IZYFlE?g@ktTeQ2U~( zS;6n5?2Px;w3*hk&+N|A@K*1SOzX`i_HMQ)?LOu?y1$|1_QIbpDR9Lf{f6Q_#$0MX z^Au+Cwx-&brv6N+DkbkF<$f0LT@X_4IqrLw8+C{mm|-b~rjFP48B+nl8; z!!7?7z%%6!2`T@%uTcJvg5~c~sxB#iX=?0+@^>b9<3q}S>?@T2Xs~?x@sje@)Qj*_ z{%0Rvq?46jq5S)U<$nSG{yO|!%kr7`$@4+G`ut9i#&7BF-f%e@4}Kr_C%)f!h41Fk z_Ga@{=;?H&s)7DuK59qS=4-u!e(UUzxvN=qUC}b$Q-<1`>y^~Qm(9Ot#Kru-JAY|@ z`(?^MHu6IL?W4Q>`D^{0%>O%fk)?J!ESpS+U)UP1F^nG4Wb|*<1%+72*Yhx_?|Yz-gylAeHS`DZZzq%)AQYHA$>RQ3grarx$z3$ zgKh0u_U)&-lX||JedbbJWCqJTR+4L0`^Ab5$x1KEMb?+3#S}&c_3+kDFVcD6;6FWd z^)Cs)exdYy;~&+a?9Ak!edzt*KkuT~6?M$vGuQ!c$~sEC zgXsEkCr#_+zH3vcN!p*PTG|qZt={++WjTpiQI*6xkty#I zpK>oSH5d}>Y7I(f12G^@(xbfZT2?^W`P7j|48bcptY>fgH{M;eiB5wTsqa(ZEs(wS z!C9(mY^z5XNEydyYb^FvdAPlEYoyZYG}t>E!j(=VxC(w3Tm|*k+1p-j5PS<=g}#&i z3dOzPwbq)~u@Bsft!0U(ZrWO*_R{-B@RvrPh+dMmTWGggaj#pR zq4+kXD4oiC%AM{NN|W2*zA@MrQg0#US|~?ws1jd+?e`2e-qho?-IQkURQPTn&cO}b z4%IJ9f_xDQbA7-rH21T2wi=XO6)E=43B1cxfn8|F;-@!5FL#LooMIzNdGVwQ?;?QL z(O>Cw&}M-{;uaXYqyQCxeE@>{`CB2dFin2@M z6V283W~ZWzbUt8jZs5!mg*qd^gC)$~xtct`17=GM{r$&o9iAYq(hi-U3n$o{QxlY` zOwLb9qm56qmUYeMcrSV|`k@Nvs3wcGu3k+&oJp)jYHwmJ@FD1Vn&Z9SB`)HUJp7+X z-NY7GZRQLni`<))syyz6&c^gos*Z8yi_n$erJDOf+B^?fQ`KH=D$fFYA?27zousla zbS-Hiebc>M_1U3;)0`jU>|^ho$$xWb+cBfke7s!oet@hA((Xx{z0;Y^-uA=_5g)zZ znWOle!}IiKC;j_jl)bZ-7@~RC5${fnwDVcj*TA!reivGZ%2GO0la(rD)zmiT&-FIH z7Ho6n1-wik_Ua^fwk*!ewa}+_@c$GzPj&mpCqiSU3vH;E{s8A=VmMEhvL*Iv zLi%eduQNUxqejkkAPU*H+iGKMt7-jmcqNq9h3||B_ReztW1V=X1AY~Gm8mG5=6I2pN~iF< zhbi~i0LA;RQSlm)3Bt#%>;;al zs8ZBTgfGI&ycf7AOQ+R8t4zv!mvaA-GTi| zUr(7Y@?K;vJh5K-XYmSqR#&uwEKP_?RpZ+-=>J-Sd4C1_$P*X$%)pq!^VRgf;818( zcp!~BF4pBAvxw{$9EbM5;260sM>iD{Rj4YH&b>b{WycV z#`^5%0R%HFr zm9-l`h8}}9&^wG3Sl8h-e|rDAR1-QNX45-C8|AY*UnIs(MNb;gmqv7?37s5#06Qcgc&$t2>Md-jnFiA9KH~Ji*%? ztF$ZR|L_mrIaE70yW=OZNp-c~vv&v|WI=ah)a153wB1ZO;%BJkJ9Tu5{*ZSc8v8b~ z2Yq{soJqx*HxnPo>(I}4k~5|%`aG71+&M~2tJoqx>FVAf|111oPajts?Va!P?amXX z_2cz#1N|4WM?&8Y;Z?Ei;QjUI_)Z+@$aC;3F|gNd zK(CqUi<1S4w{@`jv1H)vWH0{~;H)={IqV4IJ9Ytn;GM7W&N5((Zy$D!c~$?8!}*Fg zH$pkk{CW2-?4S7S!C@=qP=+_O47<@^hM80^V{4#{2&FT*T=53VX|I+uxk6wG;`Ck0 z4BD1I0B_QU7DX8meD@shgwK+|d&A0aNxbMK>w44SsiU;1YuPQ}?q+Z}5nL95;|a(o zqb{FnJ}|AX2Nzao_6YrLNAFYrL7}N3^dqwVU?g<=L+G@!G{JjBXb9cQe*snG)4FcIpGMT@;s)u(%wLwFNG=XPCx&bWCrB9*fw9Zll}DI@Bg^Qeem{C z@P^!27qlhB?hV=#3ADixp4Z`~-;aLYy;Jl?D}3izF{4A|rpN<3eU!kO2Eq3(L$p`& z%llH^*Js$hANJ5~LXS$M*#7a2M?dS{ATm_}&&%&ue9KdmX0g}AzH=DVCbJ#cnSuRQ zq%XEX=34)uz-*N;7>GYj*N(lGyffgvlxE zbsr@6QvZ9D6-OK8+a)@ac8>W>^<@%sY+;>O7H7;^h&_&k78;>hHAd-F`Ia5iaz{~& zQgRJ-&rN?l1)X2%rmwTqmOHZeCjXhy(WF&-=yS2%B6*%zt$1gsN_&)2x3NN{919mV zWhCVmf!{)&Gka4vsr0#OQhZXM+(Sz{Lv=-v#}#0!=ihu)(ftM@Q??nE^+BEpw(qIW z{NvHfmVsWEGWI^~_b*8q4_~H?M=7HgnrZDmc4~}bZp$26yV0EHhcEN92(P7U!lB4P z?vlvwL_QYP%TtndU({n!oDbQ{>Ru=I*(UVNM`NlFKAl>B>gm@Hoa%M{*eOH$&F3?} zZ$D2z#+Gd^JYR@@GVf8nig(jH(rz>TKworbcSU$7QhqPW?{#0V$9hwK<$b*$gLe+} zrhL}a?SDy)YWo`H7}9S!pZNp(`Bv&`psoh$GE-MR<<}C|9$LOa*-{T_v!tQ;G2dL^ z6J05|FcbUhG??q~|9KU3Vi2$Tzt~ef|Bb89_r-%(`F~~Lf9wSPf6=K@mQt#CL(369 zvkYQPgKqNCAKBP1Suv4y>AVv@Q=wVIcgOimld;)&4uv%{psURab*QGg_)_H=5AyCb zIzeQ9S&udd3}!XHE){xIHg9@I%J<8Ii(_?#ai+9O#z#sazDa1W=j#jHzjaI5_Mu(Q&)25U5Ncm=XO3KeN z=dJUh%j0R^BPI6EO(h~X%#DwW4Wz{BIPyLF@J4gj@`tnePf;TySCgmbn7!L*IPlq> z2K0#$y<$SYgrR4`(a{n3D^&ay{(8%Mcf2sAx7bGL;&|nNMRl(`+5Pb;vBPS6DO1nT zXC1)x9oqQl)%MOr+P{zS%)VIqcFvhagOnvaaMF;BEp(BNS1T}kR{>G*FYQN5Z zl)aB}-Z5;Zb&Qb&Khnm^;RSj-rH#y8du5CWU6%;%EUbgFWSM+FXbbZ-SpBx`+`;)i zY0m_Bp(4ZJtCjyUj6UIqdj9KLb`yO#p1vGMpN^$(3$VxX(UtyvLAnd1&yBn{@jZ-u z;pC^kmzkMwGtlQ3eMV;RD{Yg$2@_l^i9ht9H(rco9Ltreru@*v^X`8Yxs%+u7@YS3 z=WbVlZ{Y>}_o>TL`}+IfYyLI_`+zZz-UnUF3W4D!U>Ofgv1J(s`15OFz;? z(s;fr^ru1f8tB_6-eXRV`U;U}$>_Pv0n*N-wmfKJ)N!M4)YU?_Njh(TPJM!l-SG4I z-zmNhXu2VVwNL|;=1-H9&T0cRJ3#UFL7%(B^P09;^EkWgD0^ZY)9S<3riLPWvyZy6 zkx?@OGAauh6&#<_&)KWVBWVM+MNmf`rCyZq|RBWSEv(lNEsWd0i z??TH*9x`^Me#hh!yUPh*n};Z!S=T}bLzT|7m9LIYU-|RV87udV&MM~J&B$msGTM!d zcGrx~LIznTksq3vAmfXmEC9E+Q8(koonqtnL%yYcNAY1Jl$fC}smFreHxD%WZs6a( z(3>N!Umfcxy@jd3Kskmy=CF^O*30vRIKMtU&s-bWuD*c;GR@; zue`U&Gj=qx_{QM-;Fw-~cdJECgU8@l-aK%UFLDhq;_pMRPK{b??_AFKgnpm8obiRE zmH5V@YW+4y6fmBo&8*kjIS>0}20p*N$gCo8l?zVAMXb~o~FD9`91@i zuZ=a9^3NLHMFO8Zix2a1^-8}7>wWFq7wZ)~_`uOMz#hfeN6Hf&E2+E_99Dy;52_ovq>hOW?uI`f?d(%v0^1^Le*P?cG*?7W@C{XmG4_;wxA$a%MAald^t9+6%mX zmv%H!UYoIZV-xuKCHN8lV;$}M;hFB8^Z732f5f;_+F8%H^K*WTY*&%-24p?+AuQ6B)l=nHx=4*u7DRPBUMdktENp2gXKQH?I`E+EnmmH1h5tYkCXc)4?)YwEoUq~ zkQ{6)bnElTiMx?mFCcgCL3g(zuPomkzgz6Tlg8SO*m9i~XrLln>FlHaYsYV?^Tpxz z&Y#mxu@ws8A@hBT*Mgmr2_I(0@tif*SHzmSBHm@Gk#*7^;N;+o@(-zn|FW>LvzGE5 z`?w;*JK0RxV%tjFYJuN^Ty$zm z=Y!~@2{D$sRHM?q+OV3ns=!^sxGN?Z-?F{46901LG@hZ~BGtTqBIQ(4&fJ_RpP5)R zDZ{KLqI;P$8jNmVHWs`Wfd72@ArBq7m$(kXpf7Avdq|Di?+VlEevM51zZG|Obo1{oSPWj)1T^dD7s9H#utk3vzGqI;(iSG72G?pRpmSOX=OU|A>!Lg#rL9*WSD*3M8*u)guE9!H=FklA}_`6#ZH(ic#wLK$9hWt zl(?0S7nIL#I)wcc(*o{gtRZt# zttt)L5L{LxGdrQtENrGRVfIsQXrKWc;p1V96W_)h$kZcqGe?O{+yH*Ej0!YlKPBH) zc*Ke9RW0`Bbc-^=LAz6FYawlLf(!Y^oKEwJNM$`jxe=QudkJ|;x2TN0l9{(oVtkfJ zj7~!1``C^*(ihI_px3eR=LhQ=Sq*_(d?Y)&h3ob->(t-a6xAMpPP z{udu!CN`8$;8*+Ymv&{-uF6{Xx;Dn4m1^Yv<c_5eJwil7RnLZx*lIcsiD9pu>;A-AbAJhjS%}krn7s4@RrOq zW&yLMRL!-_S97KQpnM9>^IXm^D>5sTPrpuCQg=Lj&b}Ydh&?7{oo0L+^jW+K4>rJ` z@qLsSk-KkFuY-P;al6O^=6E)^nZt}nBs<}yO#GIj4@91|&?gDZQ9h5q{>TcoUHZz* zo-t~ka^UE-ig%={tZ$*ctu}jeyz2koQn9$>Q)oy2&%?K?P+zST|K{TUvCeR%Szr*H zhVp9AkKA3L9=N=X;vd80fj@;gq6UGV@_)#_MGfK99ivRH{XGAWll?fBvmb}>Nvr4y z^r*Dc4qlEk4itZw#8bQnjxtQZ&U}V5+@5PzQ-%XuZhZhRm&>0>etTFje;+-61Nf>1 zzd?MZF&>7uWNv5O5v$T(505M8f0>&UeRZ6AP2fy1DkJ4z3*WM^w+=IBbPgN`aps39 zFx0l));8h>Tn}O|Ql=4Pa zUamL0!U?JsJr*VEn8>7v_Ezl0JYnwAf zq~g~K^Y6!wjZP2wXq4zbJ{y^AEvBNRpQ#> z+z)R&iv6_PedV~n*SU*FXbpw?`Ie5O`zVh=pgYA3LW`nSpqUe zPxK1> zw88Otw=VB1$R|E3+SK_6^m9+V37ltvQ`#bSXhOH2#${~jrXT$}H?gtgZ1;voutQJd zTYrQyAHhaevc-l>Y<%}q@JspV9X&3f!Qi(SeE}P?78|l2xhb;sReZssYhD7!&xI?U zFKyu}Qkz5hyPoeo@&9GMvoitv?j8DKhB2b844dw3!1g;wovq<{yO$WkypOTIVcGFy z@3$%cBsAHHPiRaZ;;Zn5$X<=u_tBM=6{CtQQFV4T^|089^{kIFCox8&UpLLo9hDj3 zw*xaNL+C{8gW-I0FeWWW7WnO*c=|g*?{D$%A}6cTvFDc4*4n^-t4U>CC-zVt_umCC z$e9sR&UVUyCbOO7ZwTZ!lh-2tF??qtGc87JQDDKL-6?SS$R{-a9bhsiV>`@scJzd$ zH~`BYcv)b9hMKW!ng3Fn1s~1y>lkBVTRHY&AIcLsCTS~pl5w}#unpvKvqzbV%~)2H z*Sx^2tas3VNAZJwnSX03Jc(a5N&ZbY`u{Br{JSsE#v_J4Z7sm&q}+-vjCHH7nqp?Z z%v#z<9D*04MB)^@f)|-bUy0q4%fH7cSKvHCT27p8PZ|%(^It)yLg)4HThR6!-NW`< z2c2J#-<0{Kw%^Kd?4U&K*d**(_Do&YhnS6UulP?z23?0QP3k_T>rX@D7E+l565f^g zQZshQ2KZOTMZZCBbQ_emGI-9;zbW9mwSYNEbgA%I2Y%D;IHmclP3i3ZA=kIm=DR7U zn=!yq@`>!g*1)IbK4{{4ANu61LKul*bpuMiH(bF6#s2^U*<(tDosa??i)X)KlkKE$UL04KlY~3 zWv#5i^6t5@Wuf~<|9Cl`abg_&hwcZzUzC%V&SM4bp6&u8M&zQ}D07YPLTm3aKhwat)6x>=?PrhhwqC8U zhn+e5ZIV65)LmxDV&|@k+dEt&Q;tc~&D&U!Ut7m1T*nOGBRKpAa8F zKl&;;ARn18p>50Qo5HKV?Mp?E6);a)Xk`3EIZAJ3>Wt&`1u|;7@B@8%GD+aJwC!O` z(Rwxch!<_@OzZ&=b3nTCQctq>*d2QEwVQdGQ67fDDh_&=o-I3qn$bnuJ_k@5B&{&;iqz! zd`;^7Id%Tn&!1Aq7kTqyJyP~&WI^|}iXJP&ynfSBoBKv7{~+{pG!?(hx0o+0fOlRN zdC;%%IcULdqK)uy;R(NcD&s`9_(6nGc+?1+9`sDCO}JtjMHyozR@33mBxP}(?yQp-%HZ* zr4pYQu_;CT{5@qza15cODc)}iKkg0FZGvyez0NmrjiYIA?K=7xTU9|9JhIp1ttUQ7 zY=@6dcW-Erc%;C%!f%^g8h3yE^cU;B#Mh?y$L6(^{Zg!wyYmM45m_na4+d8aD@@)7 z{hhxr8^~h;uR>>;*yRoQbn4O3lK)*~j`&>M;PQF-F9hygA#nfnvT$QJQAVhpQ;+WQ z%j8RK^2^~-<_hEO_`yU@rG+!E9N+jK*bw!)y?E*W^%;KKOW+Ny@166P#wnY@jg$Ws z`ZJj}OMi(xGVe)d{HDi=EX_14OS7=)&C%d7#OKlm6V`U}08b=yY9 zz_Y_c#=wzcUtf$z3HA4c!jMLp;=i@vi;cwp+P3`uXC>B?c-iw3^C$3`yYdfN!j#Fa z+!HIZTj~z=1q)BGHo_0nU_VTIfJb1;3xx?8uDA8K$zHQ+UrMa`(oh(?3zP$*L%Z=; z%tdyd9DpBy_~R_KdgDa!wB!&YO*3%XxFU1_g{ZtB|aJH)=j``Mp) zV=Xq!a@Ej&oHk^tO6NSa&+wa_*`q4EZaO66tGS9U^Sqms$hJM$IIU6_V=yP>5`Udy zrcD#cAIvLd1oH^*0jusu_%gq<=t0q?pI*?VL3`gHJ39@UeG6SGboER4Q^9tr4f=Cv z&s)d};uv-*SNZ+O$4)_e=vSf37W8XvxL=o6B>U5S=vSfDE9p}i54`kwm~Uq`|B62d z9!~>5kK$MEO?&-(@x`?~8{V;JiJp8Y4EhShJ&RAc;q!1`{ky~~@a=nitHsu>g|=%m z3UV2@R<(ksh84zK;SKRk3qOaBv&45k6Tfslbn-5;4BzCJ`lHWW5~mApg_p4BWej0w zd?9w%W{cm~oGJ73_>dhu`*fKb-)2CEq367r*!9_@D2&e6=2nb)?ep#t@Fcc(II%-v zjiQTx%s(>LsQ_*VvIx3tmbhmBm?K{Imo$*atoGfX&6q*_z}Hac5MpM;XTAyjxrTLA zYv3h!df|B^hh>Ssc(~G8 zv7#W?hrV%uYw?4N&-k0*TYSZ(=*x#l)T<`NGtzP{8vwY?gDP%S(rbY1~I zGr?aieX=RTmHpYa@!v}|Hp1@r})OT;LncCYY1=2b(g`Hrj85$CxZv6&x}rzn3O)?pcY+|^>I;YVg4ZtoZ)Ya2wKV~ff>Uj}j%-Q^V+8?lpHiIFIR#)7mUaRtN- zBnf>rllFueS*ycrKikbR?d~Mu%izC^6V^Y?JE3cdUFk_n!9ErLBD%a&eBm-@AU;Ha z-`g&0C&c%iPz)ycJuZS->?Y!Sd z)|a)w$lgW^?N42!beQp3>;6pIG_j&W_nS(avS`zoV4LVm!I{KEn~;BQ=D4pkpK=bJ zB5}U5_CtJ`qFWg&5F_k9csG47bOmo+@O!3Fw)h{9LW7dWuM@=YnAA9z{4x%3lK;4j zh44F!!3P0Or|#ALhW>S~zYt#m-z&%$^c(h!i3rY9gxYQ57pP}`T*-8o{O2eBbpS{4 z`7cKXIFOn88h{n<(T)|>T&AYwpU3(nR%Q7OYI7cNKM8z}y#}w`Z{=S62ch=Y??35b ztNtPno7dc!!MMvzY{`{kxO>7VcEnz6v&X#s&Vl3*9=^(D8yZ z5*(8{ewF77?@^z`qzK-Fv6`(S*TAQ_lz0{5iW$R1ioad*gtkZe{EIO@7yFsHm>t2n z7(FgH5C?9_vj6 z>?QCewGhYVHhInUCj1EK8{U~CChYD*Y}+4^fseDN)8o(KL%=6n$X@RFBz2!`T@Rn^ z$pLvjMP0p7VhdypCG&MMhyF~!zquKE=Ez2+b07V=XC1N@8>|$Yqi3JD;$Ltg5Ax_A zC;mnBRi|_AvQe46{bRpx2rn^)?pY6uk#wJ~*f;wgBJNP^V(g<*>^yvU+%qoV-n|60pw-tj|MPL$ybl@v+O)uT!2$Llb+kk8`nZ2J zWoD|iDf@usG3s1yOlUKn>7JUxd+{~h0j)4Dju(H>N#ugSDHN7!=A=VmQF;CiazWZ5^mu@BehdE#zUBFsJljcG!?yli>^R9M{*3#e z!FtwG-@rHVaRlf4t`x_8FZs@*|3s$A{H(OG)M(aW-xGj+A8nQPOWRAKeQEni{@F+S zPC`Rj_@OO>UQ3w^jXX$y%!Ni~s9BY=UYhTEtjI~;%lfT-f&YWJRFSWTDeDHxe3SI@ zW3r3u`+`1B_Cg870|m!r{#fcyKJMP|DdRHYfvXzm&rhj;r1&{^_{U+(`JNUShw)u6 z<79TgugMt9IV3PH3#3PZyLB+J_+K(MOMP1D#K+mbFLBdGi?X()VQ`|aw!ab!ZN~cc zhUHqq)G5AKNiBvczSqNYSKn`%;`>!tuDQ2yO2fgh+)Ucua5yZt{zrb>Vj=#y`X4d2 zWUfx(n?CmYseetaLVt<8lyO(j@tEk%Zlj5DSR}rvD11`A@J;o`M`gvYX=5#h(R&VG z=4XtR-p6+-YbRwct`q%v9yuvGU&c?ZU&n_TB3~PfDIIZ2xVP`oFs~W;)EcJ{W375y z@zvrZY|MPXzFTaxlSb7$GM)V?@W+XNvhXUupR*3RRr$+4-qrX!=dvz8=s}=QT59_i6U#3Bsd+ zZ)NQJ<<|S75Aey@F}ZOy{UW}|J?!IH8>mytyiz-2LfUaWCeRLWB<&a^aK$p`N*%J7 zN$b_X#M-iS%05OOX|MQE9nrMqpda>qG0KRBK)pdYGteVhmCjL&5k?}nyzpr!ZPM59 zWg$x|z+I}*+$MIZ#C+-PwJE#&ZA)o23xEe4Kl51>zFx*X?&p#9&)PdbLzfADUPFEy0tXh_BJbj$ z7nxT-iu}^crTho+^NGDBF)a0S@4+{k(zqS?BsQfR8@-gV*d}1PmbwcA_&kT-_cO-- zV$-|P87IGPXU1=LQ15lzw^En*PsOg#=^p)eLy_s|o&w|4# zJc~|ym{erUBGLxq9TG=!$$H{E`o(X579(3UWXvtdnwyb16Y+l+u|~+Gk4LNCHm$$Z zzVyo&g)w~%{o$vugC^#+)+JL!#V9$u5dHUK!%T9?iQ#vg>Skpjy9J#2ED|jz9 zx(~dy0ISG9k(a^L_zba@yz4o(lQFx@=?gx+z#($41^)5RdHVfC{|Zlrj)A7a%YW_| zsAqkd3TtCnH=Tu_I9vS0YGhHi*}gQ(VqZ#(VG-*Bvz^GQqrl!5ya(elMkb5?PiV~J zy^QJq1Dm^6d;*N=WsbT5zX9@XWNm-O_V}8eyp#4XhtA}kxwjJQjKvp??s5`KAbl%# zw)Cy&k)Gq!(7wuyw=dOU#^0NTzgK(`$k(X?qtIXw#a-vSz`?;|jQfNS?zg_fD>8EA^dYa>0HW_GWOzk zlQ{32$-8Ed;=Khq`x5WJJL18OR?7Gl?~9elx=$)9N5!Pr*A2_~)y6Drz!){EZm40@ zbwe|h1Dq?g^H;?8%i6q2yiYZl+GKuyK5&?M&Lp*PwF2W9Sz`?;=>Lix?98_}%i7&z*e34+D}A-zk+0}}?u+j)j(@jMhciRu?Ztn- zE&pU(x;Ko}Cptyy(_scy=xD0h4*e;9co&$ElWB|rz?s0@YRt$UGmuyc#ts&<{Ztz8 zMS@HCc7G)Meq!6Kt*lD%enfk|n_wSh1O-7F^n_zGaq8%9rLbhizp{*=$=gc%tcX@GjYN-b(QM3n|t4Ao^s2C zuhliF)0?gT5@%Q!e%dL zlufn_s~ct*+q|Z0+MzX9-M{YUig~*^nH8N5=2e z`5%}f?m~aN^cc6JjM)NsY8(@%i0N^Ow%=08g*$c*5s@37*c}zb@V6$5Wfm-#VV&D59LGvG(1Z4OcV|xNg2>2e$ZO>cZE})M-}#A9HUW9#xese4kSl!l`pA z^8kc2NkAY~3Bd?x;?SuChvXEX1RU@VfOcO~DL{d4O++OOYLW_SYy>6!N)U%62x_-> zS9SNjqSy*XaX@kCzRF-rLPX$oA}Y=ITc=W3Mg)EDeZKBL>N&N~u=m<)uW7Hn_S*6M zj2ES^TZs4T>+7p7>J9hRb2oi`(Op}8guV)Fk-m0FU)zL7co$zF=bG9!W}P0Ul@rZf znCCqiiO&%K)F2IC{29(DKbsE?zBQ#xu^UqFQdQN< zlo+@DTxa}2VmK60r!OK!cDlz&K^kqP1sp}za^OYYDQbIe_0mgh= zlJQCH+RBvR?-snFXyz|fo3X)`sy{I5P4j_*XU#HgX-c7uwrwfKYxGCjxQciDio+;W z^7Mtpo#w){9p=J}U!|;641J|7$$gmmZ|A*z#GpUi6wb0V&g9!? z!2bj#&8`0HL{|>@;ao<>E6uoP`dyWuUGy7hXs}iOrEQ?O6Zqb+rRi^u+G)O7@TU2c zeosn`Z6LTEY^;-; zxLO%(+yER~Y$+z^aT-^H%U_J_G=DKBjF-1Y3%a^WQpfPZSFyhAa}4{Sq>Unwd2>eHSxSLeTFexa{Uc?a5C$o(5Qn>59qZmhD6 z(`(P(Vb-RFvHHIN`xW-V?rXs7KEcPPK;_$)Z(8sNTe|rLH1nw~L;rHrTjrMq@0wQ{Yv8RR z#u46o#Fnn#4*ox7ECzztpQ)quUhv=BSNFThK>bR4j5}t$C$yaL1-I}>hVgF6s>*kV zKE6QkD&<~Vnkjv{7yR5e>J9V00$?-1EwoDijluRI#*Knk3=nUJ@nTp3xP*?`Z9Z(zSB0;eJ?nQwZ|II!*i<&?ytOlTyVkj zN~Trb2@jlQPc<1Y!>|w1Q%1jSri?{)>Ay7C{@`)Re+94hARBw~JI!I>;^2@w zQ_d}DP8mSIV(FLP5lE4~J(QVU@JL^uV(HH#nUBOju8bab`Y`8|k+#vprr6_+chv-A zK7A~tkMr!qjK8Rc@tdM$@grj=j2(B`goK|DdnkSew9#oR)*s3&Ech+`eu#cQl=<8E z!r1f17M$~rDfb^*zCQk1`gU;4ohi3MV|&5JZT8W_KKzMu%JZ3L6ch~FZoa^`&kN3g z<08KO>ySHAp3fXz@ci<}QZ!m`^|dOEKL4L0_(+FQ;eQ3X*_j0q~~)&-`Ie z#1{@byZf6`?=<7Ym-m~lzbpP1DnDYvDnAfSJhrJ5UHozzQik8PG(a%KsnMl8z zvz3B)ct!A@IIOTB@wNx!e?=c3T>eP>c6E?@S>G7E)pnzcGm?!B(EdtW0x~hf{3|rK z8d?z^xPSCt&HKkfTgLq-Ry| zUpihfue@kY%EfsXn^)#PYaUQi^((X1q+FR$W|9X2J7B1>k^a2ZwaAsDBp74i{ez6h zYV^SYY_V(AO!GxmH>Riw`a#;heB_Jf)w>@l);a& z(|FH3OMAwA4%+_!9{9ZY6?0I+MDte0XgOna4SaA!8LKaccSgexe}m?V!EcK#LI3I4 zcg**)?oW9qVTQSz?{7es=VUpjT*NqD!@GOZcACpGM;7ET7CFd)oaGP3Up9DY$_Vgw z8niqTT7EF|!T4Jx* z>FDFjRRdfOq95tT?`({v?M(e`7}5E>Mn^OhP%JJOdSMx#xK9^LvC#V?w* zv@i7+gQIspy4iIFbxPf1?FrZ(@fQ3~p&Oq>o`lf1A#~P3a3HiG@E=j)^^xENQrjG*e7cs`c;+K(GqY7?k+&)CEA40Cr0LIv1566o+lP#o`_Cey%HXjwWE|nO%hdw??c(j`AJlluKDeB=-aT}St4~H5U#e;5+qAO^8h8W#d>0w> zF7|=6BR0ZUY8rN>$Scu(Vqc2AHqiJzHiFn_XB+RBe^Idy;I&(jEkeIH(8i3s8Rm|J zY39!?J6Xk68)AHdJ$Ema!{oipJ2DW315h; z6umnQo8e9MZ2bc8dnABiK_qPG?<0{Dtz)C*rG@`8s|+nTKnf(_S@nuM%G=zO^S8t4_c80mYY5-gRs>zUbb@hfCY>@scma=>q3T z)vP0}a(hDA;P?FtmH8|1$-Qr~?*<>w`%~~E%C(Yp6?|jxl_DshTEi^Kn$t_@#hy(4c;_<#P2@Kt=Hd6$I$JI@MV=M>o6JL8q) z#rV6o(GP*Kzn^@u#7pq3>)2XrPZ_@1soH>Yx8~rNRPJ`%tWL`v$^Y||GhBS{$ZlOA z{`2*Gqw&nK>*?gh5-(3&!M5a>X;rLYN}c(2b(KxG62GiE4QHt*N!|%8sn3}6z+{)? z+4esi=OXurU)q-Xptb3<@Ouib59|Zi_&aBf3YWX3Jc_lm0^)4{T?xmn1B=AVRbAy_ zyqJF|*=K1t+pM)c*}o>R5wDme?{DEf@gtpR&ylPdN8%n+8TThyUzc@xB{RIn{xEH~ zTDg#kw`2Uv^y-xw5_{-xj{tteax{*4!O^`->Xc zTNL2ebZ*uhrS}2oaxZ)mSvT5D&Q=fWd8;Ib$GRVm(>{k75Q~TK*_P4AtK-^#i`{T=K*Wqsn6S7TNVp$;jN3v-8j z|4aEExxk)`TQV|9l{gbyr~S2rJ-#Q3@jiJT$8YvQeNODak-pf0-K^Eh`2T^} zfuVI0CnSAN>A8xS?KP~)YqFNFruXb2{->)EdSvfW*V*(7KfloNUSv=={o8*A>(;97 zm3vnSf6qWb!u$PJN_t7SCJE0G+1~;tzhSzxqv(6jF-PiO<){FM? z?%#O#1Kta-eM`=c^o}9m@(--rMf&$OxdvoyEt9e6Vx72)aav1mkahG$?tRHv2>c>< z6gDk`pWvoZqtLmR2d(Qn>{=`1}$o;>g_t4?-^g&rzC67c=fnW{P4SRx0(~Yp+{sNsKnrk&s;&q$Xbxph0L4K z3Oz5yo{%=9Wpe^&7R`dsqwk5{)tt&yiE-;1y*9&9la*XjK|UbHiug@8`TMN@+5DGx z`|D7VbCI=9ZLq*$v*7TMi$v#KiE`|Mw(6>&51A@-yN)$^-zZOL4*3vWs?$rpxTLxN z;R!8P<{qEI+Daf3tlzos?MgcpC}yj!M-ARU;7qbEZd`BE~-eM9H&8pgOOdc z1YXU{nuyHFWnRJvlmL%!X_!6 zVt?(N;G`I?tSQYIsU%O<_@BeN*p;5pyy2eSS7yv%{U%P&Q8mM*BzXO5V$zlw{@^n+ z^7-WjuOW`4L>)*Tz{8sh;A=)J=XlzpN8xk(2IfYy>B^(%e#4r=g*TRdTCw zHm0t|1t$CE6vgus{LQAGCh#ZrNh$ctMQ7IyS6mtNLDqK5>EqA--4psb`m-V42>eH- zM`EBP2Bdc)c9^E5cBUSkxI^r|bjm`@5jvAxT!Le%L&gLfE6GLu^`jIQvY#aq)-`!@X{9FHXFPn`@%-hZ^v~}@1OQP@AJ;_ z_fxH$o?b0Aygn*=Z5Q%<{S~8vr^PDc-HP2ilW~$Y@*Zr{Ze;CCitayf`q~V!46PA?wq2;1;}Y#`HF9D z(Ir)Li;k&@77uKsKP8O6jNySk9+3Bhzn%pzCU}p_U6T7WIG8Ow!+0DZAIx%i^+9B{ zTX9ZX@w4U?p6CkmVp2W)P~XQ7_3(q(rVa1| zd=zMeAIhO^ocqNcH&zGp26&2@XPI7jfw+(2iX4a82rr=T^hWr>1^rK&;R}{S`{grS z!Fr)X=*4N#OKL|gcFaQd46S2rHbQqN%dzx>_#69D_?tZrC*<#I>5q^845vTU{rGzh z{5=`|W{k}{`}n&F{=VZpc-<-dKQ|aiGt4>k@jBKM=hMeAS6&+|1t)n*ocBfgTX1D{ zFkgxH+Ux2nM<}fe5@o&Z%IktTSB~Z9=6AX!2NpwLl6%hdj(v zwWcX!1N;wF^R2{DT*n+ta3nFjB5MMrd7Tp|&xE)4@V!>*4xmc{4&pzYz*mBdk$R!U zB$3%!@Iwyt+7^p^LSNKX=LTgy7b!PVmb%u_pJ+KD`}(S+9mc7gc|b%yiEL_^G9eI= zPeY*%kxyxT^66t@mn3c|IzBX#o2tKl>rdwAWEWSnawEulHFL7xuhJU}q z3qL~7ZDWjtpJiTFT`e}VqhlufvqWBhpU#u`@(53e&J+Dr4n0=D3)S>P;+S%Oa{X^7 z`l^DZzTDvPF&k#Oav4h*GvdnFBlc~bvcwv*@9LD#FaIxM?8q@Fa+jFUZ8cfb+RI%5 zH?dO72P)&oB7cvGo+Lg6+GI~2d%MVIyj@A~A3_FiR}+oxwOP|Pl@|o2dd8C9&gs9d zuqk7ld0o-;^6QEg+fx0z(WQy8N>Y|h^Gm!`3N*g3Y;5Or&*_1CsuvcmBF^k-Te|-l z;Wyq}NeogJ@>pp45VpqC{1@4K0RBlFza&@cVebv{Ink24V`*zDZ5>mS{CjwBgsOzL z0slul{}`M<#~i@{UMF&YzdgRAhx;O{w-75A>EE(mE1ws73H)*P>F1Y+&(+(?JGtE3 ziVaoHwHG~lA{#bB&vn>o5j&?nYWy3c#$V)$*f{;=dvYJGi#%-TH})dK`;Yx{?1@{E ziDQq9?S5kYUuJAS zW^6aA@y15Rc4PUNz$JZSJCCtVGUpXdE1y?XVoR~?r0w+OedLRbZ4zTUma+ZV9`C+b zNeCSF@orW4U6DV$i;Wp?=~tPH%6H7+r$_1(Ju3CeINHH?n>CK{9S5L;$T-UQ_Arj! z=vW!Y^-<$E0-lvI%;G2WpbnntQV-)NtCq9??WctkFV`S8i;p4MuJHp2m@Nc!` zy})*rycZ_Cj9xa~=ru2Pt1E|iDP&b1>j-lg=LTY+<}&{4EZf!LtwL5Un^6^9g1lNX zBlo!NDt5k!-CB-L@X|(>YWR0E24c73yRgn?D~DevRaF&DCN5s=+EVU|&RC57A~sIM zP8HiiY&>~CB2yaT9pAE3*{g2pfryi)M)!ubXBBI(JlXmJ`o%BU-@2a zR5>5Z#dQzYQ|XWI<+Hx=`5}BJbSFBcKcBVTSQQjG%beMCFg7M*qvhz99fjR**-^x@ zB~4^3O3@poj72mLj<))h+A)fLS+>-P^oRYs=LnsW_BapkM6~yPb`|!-aoQ6d0_{C6 zv?ny;t@R(DH_fGwldO3Yb13xU6znRqc3!YLO}FTA3iNm_^w>kJVR#;8c0*km>luTw-I# z05|q|WdXlje&UNP>$9u89(SjoI%MuAI!0(pgI*oj^5xX=6f&rB%9sHE@kNI1s(F2O zmDmtsgHgJQA^^B6d|fc9sh}tG?P5 zl)6N3Mbq~~@QK(~K4}ZOB(L=M+E&?pJQcC6R^#*kf3U3{mw7~g+v+>IsE>|*2#??+ z{ZTw(LOU`K(V?9HvW&Ti9)NaC)@iOrp5d!bo(<0k|ICI)W+Tg@dFKl7AamZ!>A&#K zZuD_Pt{k6-ER(#a-#r^oawbLZb4uAa0dgwt@mRh-0?ck9!1D~j8{t6D7*{^rVdEO9-=(H^vS%ni*K4VI7B(en&CZ}DRC9-PB^&{+1-3>2RLzD@cY_OFsl zia!30eKoR=W+3Are!b1u39^@FH~LRxi?+;GEMrqoy}966yS=Q~{x85r?%MEPN7FaE?1RrWn8zv7_+j<9zL(ywcb34Z=J z@_!QVIP+s%diDUbtx}S>y1>Ozp)N$Q-{ghrKts)KPV2 zLGcj(L~r01ZKjETHnX&fu{BHtut`^J7{Su>vZ4u z-L`mTd^Pwt|5g^70}OLwoq-h(uc*X77?}Hj()_2|yr8r@oy*acuhxYuu>yI@8 zceJmlB*riBsKXfm#`&e>NL&kyLIX0EfvB-;1Q&~WR>d=4ycQslqU_mkuA)8z`f%h; zbmgnMx4L3Zk#CJRaPqx}$5=x?4()h|{r1(oKlj73&;k1x)`Q}VIrPD+4n9NA2A%;< zeM*kkigla!lY!F&t^*g030#X0;Lrf4*(APz6TtX#6pW^Ny1qEaGrz~4(6NlYFIDv0 zF+`cF$FW9+taGtap8I0icf(i;Jy$c9GyBGJPFYNILv7v>AN>*D zw8kzZUu8&czMsK+;js`qB|IMQF&>fkHQx2{(+V3hs`l96S9n$( z>VNuIrBYFh8ufx5f6nI7d z>OBvzCp<2Zwa%=%N^9TTGg-|}Wl7~G_GryRKgij`uNm=(1+y8CwwD@zC_KjR6#wlK7-POf;E$~4V^59PL7F>s)?4Tnt zuuIL_8SmtI1F*6$cH_;)w2e0>43+QhQWLxf(=IWDo}%A*oOcp$Nf??$`-Qf|05J{3 zR3&=ln}cZ=dtXtNTJe8wB>qP3iGGg!7nrvrLm30BZyIx;c&FeXzGot5Y-zw>LjI{j zzF`iXtn?Zc%LoX9$;wXc--1ee+L(EyiDaLIbDk#_=I8hi)8 z9X9%KDQ#5s;ZpD@GSd(KjMK6GsbAo9T5vjhw&3d&ICb_Gc%FLZJZ$arBCxXlUi>Py za4ydy_Q&^~@fGpINKT($LX)j=*z>P1!57iG;CgHa_B@C1ktNHytY5G;dc)mDs2=}H z)hezT_!qe^Yo=9ejF1K_3b4%L>_T5M@mG~faX1GP`Ir7sciv*;Nd3cQt|C=4#9k4- ze~+vOmW^o69mqP)yAp)*{wVIt zJW5j@Pu@yQ0(S0Q%F&5OHzctTl`7DQ6DpASQt|HAC!Q z+kNNXC^og0+4o%jOWXoFA?v)D`CG-7%BGC&m38D@#CeGP5m@AUqJ5c>_%+sII=Ys{ zo}pp8tK_3R!XB4Z$uZ5V!NnJh^=4blYm(o{hHd>Da1zdw7%p$3yt9m4SOb;A&oCBs z$y)Pq9D2yv#q$*AEuS$T3D48gI-bI=^gtHR{Webs{!JDi-zMS=q1mJ+Vi?|64gWG=bY9>L`B($z{?rQewL@&LSdksd z;cj$%bu#CUGT-UpzYD*TV|+nzR#8E*Ls?qcU_(z)e?zR&EBlGFd!IS4E*74nzJ_Gt z71KRO>(Z5@thMwuo{gUXeHHCjI{J6!%jn&2d>-G<-Fr2%S>|GIk{h_KIQ(BjMm>g1 z!5_l;Eu0Uyh;y+fhR+DRMts1Gv%ppbT-_r$S6Ap1xONTX98=(u{5AsDu0hIC>8Iqm zsiKcv=g1t190KG~*T8>OA1;{}vc)v|Ea`BL#)v;ALf2X!U9*|fqU$o~x(Zs>q3fB@ zxyFB?S<|5#%x?`>oWl?v$W@eLq2p|x$<+a$2wzlDA9Iop9bWPBzSMD5AFpr*UT87p z^1eF#4#Qwivth>d)lHquqe8ifN>J*Y1&-wk?!LuC{b@0hZ+;IlSa>HQf778UZC6>S zf_nA?r`TBK*h<8G_}LZTe)bG&b$1)h?K(ChZ9knsENx*RqX8R7^!o;W zO~aglJCKE!VAEpx zBL=eJuam&jcg~WjB96=9WFDtE0&eE4LQD17%E*|I z+}E9sKxrSY98RUThyA}|f0+F85{XmCFF>D@ua!9)^KYp~@GRfP^R3L;1kduV%-O^* zAak~vePdh-o&^^o>m(jg$KI3n48Fm*>#fRFrn)u$YvDO{1U{LQN*e}kR7bUOa`?#k z_aotx^)X)`YzDANTgPE5SEdU8Il%#O^~nY2y8_#jGz-?b;J^UBIHwWV#5dS;R)6yQ zaL{dc9>>84igH$N`S5^4ZK%|JtcgN{y3ZA4PGiMPS$P%l5vssauQXI@RaL?LcGc}D z&j}cOlk3Y1IuuWB-qG`gS6_AQ9??8!i05@|^4eTtCs|*5eJt@Zz&$k)nX#BLPAt4D zL)QM2>gy_}s!1*Efv9{oM@gEfD9L3vsngD9eSAQo9(YiR2`ndn&R)CSd-dSVbx{s`z-Qt|o(&Dk{GN^kau;mjUC~K`( z6<>TKvUGX@@n+kxfe*^QQQ#m~ON+dF7(UEFZWP|4P8)t>)-*eCkgFh2rj^x_ugjYQ z969Wf&jF4c-|Qk5sf-fI@eCZYMZ53aiB&IFvI}^vZF=T-R3=GPhzf+ydC-RDs%lrB{7hwpI>{>&b(ttX7WMucpRip zV|~{a$zHzq8M7s{zXCtP6wd5h(PhZ?@t-$(LtVG=BZq{{XZE~qH1F>7X^ob1NO)gjWJTYy-@)rZ z7L;5NGhcj?xg+Z{#Ey9um^5H&Lq_D%|9Y<1Qy1f5?ak4-H`m6w>8dk8!kgEehVok6 zCo_vaX3cQBLwPNMe1wPa86`8%LzUzu|s;?``Qq)Kcj73YbJ}>bvVw+&M6F)P=zlU|CEStk$ zjUUCav?0U7H)ruY!yJh7d;Aa3_WQarpS;}Dd+-~~5!o{(KhV-!X6*qP0W2TkBWqe` zG_QDOW^faDdEZ9-Dsue}^!58c`4_*9|I|CR2i!L0D6f4*ti|VHpVRy*#(VKGb^hkY zvKx1%ugzetnJWGXv5mW?kSm6Ev?L`-aJq`$8_=l49Axv}2FiEwOO-f7;1K`JQ1DR# zZtTnv^MGZsn(n`f_7@M-thsp}cB0&qv06OBGk+W3<;8{XUCn=x!?_tsXguv#ab9HD zM-o04f-+;zd5gp>pURgY>$K|+9-ICSu=%*|PA+H`nv(i{MgIL=jYfzw+UJj;FG6?G z{moL+{n&}@nHlO|cHr3b7sdY0D))DvMb0E*^Y#-9zV)MH)3LeqhK~lGCHsr^^1g$- zxh3>%8UKBY2Tm)2N9%izNi4q=hf!iE^NW|&XMBO}(N%p@u#~)+;@6gSu9oLwR%Y)% zHvZQsO7q%@%3&2+sY;2$J2bF_bEKZdPCeP#U7R=cT6n(=xfu=RP$cKAoimCzLY`LeFt6^jf}ZS(h%FV+EW zv>D-fMhEjlqY|CWch1-4jIh=PE3m<^`ySWO2OnbteB7rC5}>nJRW&II8JmcVRgkgk zhB*SzWk9K#TLUk83o|m43vG&7`1kX7B>CnS$zJlTJ{kM?a0jw5K9EqI7Zh24kh+OA z?wN?3L(a}$4-RPK^?2sCudnpLP3SDd#)8MaV&e}--;KC(R?Qx}&0B_E zA%BcnhF-Dxt|}UV9^6hI6tyO6Tv!L&JE+srGa|Dtb`aBrKLME)RFrrlo3Tr@#WWY% zwB{^ZqBY+anI!8Ha>hmuatU8#sLNywOT&DQ%zfQ~4Jd0}CgWu6SP~vXV3RrGJY@1g zlHm((v3L zJ9a)g$I=x-n-4?FqDS^D!Y-mOq9>ftuSI_k;(LKV3K*+b_`lxf3_J?%A6=GunSplu;3FOOK}RYsa9Mt8m#?~JT-e5YTx`5EeG7|h^j~6RK4AR* zhAe!CHL5$IrGq?olAomMr`XldP(5>lwa+TWz6{Un-K>RfjLi%*;vegvPLn#l*g`$< z4QJFFCH4$|4rgoB<2!5fRn=%b?_yrK(SF5|P4>%=ygVQ-a0lxQ8-4R?#I8Gl4OPY5 zIS$+BY1Qc;F1`@(xPrFV_O&|(oOUh3zQ>mS3w>P(PL?oE5^LACw&Keo#KSn+R#gFjMdsQ z+FW+|k$UuO{jRVa--v8(gZ8!VvQV2ZKiGskSc^|ld{Xu3fu{Gu{PI#^8@6X#<)&q6 z!LM$>pI)6W@^xy{6Uu7>L%sNiq%Foy{F>m~TFZ-P%|`s22`c;p-8{iKX#)WF%6oz4_YhUJED1<R6mG_rX@m9^b@O?x_WRB~ zjrV4Pmt{?1J=}qf)P^kW+F)yc68zTNZuw0YYuMTcVH#+I2D%n1yxF7zxHJ*N94Q(*@L*}_OkZzoDI>6?NxO(cK??2pyd9% zs-AT=-IYgsszdTuzSd?>KT?GZ?;dU4^Xka(ZrXFHDc+7PN$i1e_{H{b+maTv z?2?J8!8@Rds>|YA9MFO2TA7PFpauCa@e_yPyWcJwbYxcvG>$Ei%e$_q=U>scJNb63 zyiZK^2HTK;t02B5cVwx{d2@V=-!~^Hb5B2WP$$0texpfT575^~iKX5M&oL)Rjyq#T z26~_PjiwCttr;aYy$9VoUB0d6eS_aZ_U4ML-)O(=NCWo$rO;9NrSUC>uQr$)tGp&_ zVA1g8V5C_|9?ZrWP0V5g##s z1Mf}ZCoo$wl6Pg_m%z3k{hWlfYYb9Nv1?Lv**ms{^N5;R=|(nqY^0 z2=Sw`-l>fD(x#JV0m((lvjF>YOvX*d$_4Mwq+akoz0Pz8eAKJm>}ZkwFm32}mGfT8 z?YdXu;%&&6cbj&I-)FV6xZ7+kLD`#zH(rH@zR)9@W5crK;9806 zCkEzzWbjXEZzwkVIb7SeTo(NJ9Hlo0`st)?zd9f=2iaC)bM~wU&*{kWTE^)y#_sVg zm&#mX`bWh7HSunf@0y?!zWmsNAwC=v0t`*SAnk8Vj}L4@H*6db|1JGJhCP3qmQ@B{ z!Ve;G5NpBBR{B4Q{?A8_vM;{ZMg1l8zl8p~XkYa0iQvg%uC;zPds>M}lRnCP?-TGP z`&2T{sLx>D=l*&$u_nYLiyoRoJ${)ZvaiK)+pjWY{ww#lu%8`U^7Th2P77|_GBqgi z`b~u^G9(V#;z4-juB(8b z+yQ zjtldwv7XHTvCNTAl4BV9Vjs;hi@0y6t&eP}UotftUB-;}W_Q znB?8FYZKtyO1xB5yNvA`v0Ksx*E#|RdsFA z1}hc>JfQQDvo(I|5ZV-)Y+H6IvBvQR`B?cm3i3rhXvR}hrMYSCD?63^A5&a zp2?Uyp!+PwT*lks8&xATC-dk0f*BFLx-R16Naz{qiGPX;Ei4az*D?!uT&ie{{1iROcsUmGaC4 z=3rcf&SWla@=Z?(ad4_0=tSR5;undpchTn4z$1Prp?#SnVaujoN!v1pXXBfhWKS~I z+MMupYDXEkbdl%CRXV>U^5^`t#H_^3T4 z_*cnA!TiU?__?ZlMf)$3*l|y-*y-drI6MoO_oGWpp1Z56i#QL@=pGTS2O1`}E7R*A za?{;D)$yX#D|N_vj#by#Z|aJC4^J8$@c(#~^(q6O_P_8B^wz_iVpBEyMs0?%;?f6O zHbO6tK`)XkP5A3s_-hmNBC@9$TKP4!vKINkJZY-QIhl*GS;fvWS*Is{^>AYPnv5yf zcN>sfvfk-matE?O@0iJd@y8y)A1(In0s8hBv~Wy~_kUb?N5*5&g0#22@XieOQhB$d z^Mn?~A9$F#hf+P4{a4|=-(u4-N4NY7@2k!{@dbT?-&e-yxA3*_+#&o%wKm=B#-}s_ z8L)qY5_)`M8oKz3BPP67LEjrKUaJmvKZg8623$c7rO%N84tsi|#2EY$-^2ci(8?g< zd1`$%-P4rb3St!=KreIvTUmv#D5m1Zq6_$0I*B$%FgEjv3lf`B11CB;(W)+T2b`s) zwQcsPM-0Ze%|1=$LP=xLX)~2L{~q)`d%N5McLDVDn7z`%%Rz8gfIYljP3ROkBl_)N z>4PokqPs*FB|>Wv-Es(;V;<2*b8#Iax4%#CMf6KVAIbWM$m594`7QeC%N@u>?h9Oz z_M}dM;biqj;E}o_^-I4Zbsm_;oCkUpeIz=o3Hlbj6)nrAFg^!2K!X)yEqS#Z$ifa{D(~7tOeOMBcqT&UhaU6bpGh_1Y;ok~QVj9?2atV|?@;n;$(n5*wCsn@ zMd!{$CO!ZkS3~2X|8k*m(Sf$l;g4+*-RYCYh5#y-ba~lv{7#=KJvBX(%)uh?S;6H ziggVcjRTn*;5)2d*SKb_t!#cL_508R0d$3*JseG=wyj|u_wIJqVRigvZty+^nSBRm zIwk<8*ibsYux|V5Zss9LUm{m7L9Wdls?1M1Af`2o#lEJrPd!R4Kd8H)1g0JBc#$yBh^Q#%gqgyTwihc?#31rCr-YlEpzX~}j zGIS$j|1^581A9j7rZjU~B|allJE@cMafY$>aYLzDaM~U z{t2F|7q+!vwMs%^>(~Z9|7yMSmctR1MF+`tK|nopNSvvIb`t#$l}|O!?z=ccTmqt zWbgIJ#+|n8=E2B8@mCE&_KLqs+8>G>&mbl!i+T9Jj%&)0bx{o(>0*xDHi~#9$Iw6= zbKEh!Kg>5bm<%pBYixd7>++1hx8Am9vAt}**!}mPasQgC(OcJS#W%Rst_8m4`#%lO z4AdLcfluV71kc@n(lZ0U_SXjQhsVFhR@_=~HqWjN{!|@iyvIH5vL~3^D1kWW^?iGs zHLoE*f_oVFY`ZiGpI}aKF6)DFzTwPoMijNhXIl6}M_73o`sR)JT@1g_+pd|%tXvGw zBYy||XUt0cdL52?Wv>Gpp;vNcKav4{uphkUX)k6-d|0~@gKGu3WmnGBv+;Lr#z2UE&tR=iNX4OwM~1TSX)Oc&n;BWyM6ky`r*VM>r0$j(JL(O|fDE8}3o9Yum$0 zdsRo@|9GWWa8M7;R}q_7PkbLXft>p#dFgtiV-KbMR^I&z93NXI=ju5*<0_7`uHwl* zkw9LKL}Ck*h%Jn1u79bCxL17Y%Zl6Uw=<`#szT?4^Dbs{Te11FY5QE_!UZ0Ot32c^ zEDvd8%0pe_2DGO28EnM}uC>MVw8G0f|D7{%s(w)meU-`?4#JKzmQjVjP~fW%SJYnm9Jv!~ZZr+S_%LI=z$j zh-GayX|wv@2agl^+0ER#2fvxXH;-6<>>hloR~~sZ4LWBZ7ITK?70jb{-W)e{8u0|S z)3A@(_ki!i+m=>t)D!=IV8jLO_~RS3oR`-;%~_HG``R^}y%6vtGyK>;PIwtVnAbn@ zCH7Yu0b?`%Y1$Z2XtaoYEC0JP{T%xHDQkx^e~reIXNqd!sUEm1fZGS$cHr&;?rvay z@fKrRkA0~7(JL0!m^V9zj>AS1UqKu&Zd9G#rnJe%qcwRoixy=~`xN|sPW_+Ij;u}Y zWX{@tn@j%jFl3+mkB6bI=pPTm zuJP*h7m+E^yeTq8cym88Mfh_PGDY}vBmB7v8ImtD1pd_FPhtbT9ciY~0smFQpFQ?r z9R(xlUmOTZO~ zk{JS54{&|d2UjC-#hu<%xd}P+vKklo7`gY@jO%JHV?UG|7$0E%6^1dvyI)|eEvPY( zV;=!e)-YxMUCaabavtq&^iEiI8J1j$hNEuGsb%h5;1J!`gpB1ma$9vi7x#O!r$d z-S9s^Zrga;W3QHXW7-r$WF_&pR(qeLf2GZTq0Uv{zMDN??cm~x3iZkL;C>yr|FrL& zXt-KOofhrbfm)0#9^Xn@4=p zmKPo2@6!=s-4@mn{qUj|jU=qw;=NnZZEfJ7iZOTdlQF-9 zwY)G4PHu5Myhn$+0uZ5PKXMT4~Kexs--CqVAVY-g@c0$(y+S!Foyc<4}HGod5eW!N=xY#AU z#WSHXHkP2Pe;B@YrJfqjIlw7&*9K2$eLR6ZBlDYDkx`R`2k~=+VU6={09He20lpaB zhbNIkC&JULq#xFPT=92h&nje(v~9x%4Y!@(?V;@r@LMZ*5Io8HazqB|z?2L902j8S zvm=(h(9hXf|AI$FUdemAZkJr)13NnSem}BG-dhjP`k`sD%fhlOkg<1>_}amz75$bd?t3Q*Ror~>jB-!)_icg0eR(jl!Hsdl4n6Ahj3YjWRx5HPQh&rwou!58U2Hw6zrw0tc!GKvGe2YIXUv)=%bt6u_?2s2mfUps zZOH6syHDg8ITmU^ho_{ipMtwH!HF-;>+JxB3Sj8p{;rslv@iXNV~4WUFWO`NBYS|G z=$AijQdmyMX~)~^Uw57DBy~skZSHsbwsg$N`&P}`*-o3ovS%YYleq&jrJugQ)|Pq4 z57iedz_a8*h}IXwSxY~aJP|$-c&fm4J9x_lFM^L~yIT3`#B-pnjCI3`6_qmH_+D5y z8|u!Vv8YC~#+khav>!dr`L$vD{&Vbh8E3cE_79U6o4+6~pdUW^&x`uY3&BZ$c~J&T zCz2OoSTt`v^Nd{JjPUDM{pJ|Tr(s+~+fx1KIRS7Yx|}r@Vmybs=YkUxc_nimTh6z~ zWNvN#cji2?(8$ST$D4i68-Z1L6q>SZfM`A7Ie2P(9k*!)d}Gr*dt9DI*)#)AY}2%U z^y6qW?!b3#8ljO>(Ws1#;6uhnNs{LkRw z+~!l#&&@wV7Hod{$IAlYv;QqwAbMWrbWd?M`wy0gP`|NrE{*5Ccl;OVb#P9zh4 zl)m}Rso^;p5B{&iv+30EoNT<7{s5Z4@khw0){axdb29w=Z_B9Ghn4ADzsJVz>RWq= zW8T;wrg_-6zr%MhS?1&D;%MJY6*h^?$3+*XW5aF5cOds7_Vs@DK*fgaQ^^NveihahyB+b_Tb-$o|l|x-C@Fy7{^`zM>(Z` zbuxJCPg@bZjp@T%*pC_SeGxxqH8>JqtKjW2@U{)Si4Km;871%eh2Tx*jj|3RYbCei zQ~054C7bX4@puz@I~Cp{Hp35DugSjW9}h!a^FJPjT`T_aFnAinyf41^i2pL;i;wWW z6B_Q0S|hOhZ^!vPyw2EGIy4+2K^xsS;;?72ke^pX&{qlDdL*`wDzy z_?O15CASH&2GfU8{yniKxjAoT$eOW>bxzj>`JFFqXsR5EPiY@?|BX*yXOA#(7}UG9 zjJ?#752AQ@b0fKX@@lJUOmY)=SnCzpQC=2aYt3HuUA~P6mfxo-Q}@A70$apqEu^quT8mRvm6yo^1nc{kS^U$B?<8P?RVnVUIH z;1^#=biK1~IW;{5wl;mQkKu>t1;_Wuw|(qKKhfH%=f-~^OxlTI%D(;|2vg#TVNw>H znvde)qlUimYrtTt?5Ap%)7I&f}WF6$`ve7*~tbwp6uS53e$$G!6 zgTxX$BQ!ZI`^4+~b^frO9_{~%tR+f(g0kFdm zZ0M2jd_BCru%RZuhP9Px#M%)uANKW#zH8@xWZgyd-Sfl<$=b``qjX+0-(+9&&kLK# z3h`h5GvaO5zyI^Xrd;{Y3tQ`@|GcnyrvCH7whP&Gs(6IXJ{iKAjd3wDynlYBW%pL|yhD2=UcJ6;;GdnxTnelkj?BUIK&A2Wow)5YuwcN1%EbGL( zMj=PBfrhdcoOOIHSnIg!^J9ZV21{&$*aD9rr=sI0yq25`$4^|39MAifO&^J$2;1~x zBZuQA@@oXn2z;V@CCAx�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 t(XF0|nQyMO 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

DzSJ%ra>x^e^O68Uy?5997|jeV}M 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 m4#mwYcUWt!w@4qbscz`3rx*xL<72 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%0DKJ_!n%av^l|c3Kmnaonr|zjrNjC{sglt z^W=+>QEWvtSTNR|*<)Z|2-%w9WR!EAFXmlvnF_4geazkMFy8~4=>?m4CK!`K!L{|j z5nN_bnm4N`t&uX{^h8nG63%hk+)E8R3g2TZ7;M3Ee~_Zuc0R5g*v!=W527kBtrJ{E z59YopdfVqwg3X-GnfJ-{HN=7aJ^uOj#Ao6&Jq3aD?Q@3(@R>)z*2^3^h|%l=Mw9yM zk{(}U^`S$29IO&5HMzgJmaxgHOl*>!3 z%XAr|iT@55P1@xsQXTI%!^I% zZ4eIP~_)2uM?S`*|ue_W7Q)3;1wey-dHT1an%D4$Ze5LVxEWYx8 z%R0wbD)yz`;k%8m^vGHq^4nNR16#@2x!dq#V=Fy6ej-%c7W$QF#kkeNVG6Et1O5zL zCFe3XI^qRW*=A!ZS4U5HR9m#OU?&*s8nBPl!=-Ze^G^4|k%C$K72#}5r2|jdwt1n6 zeXQyM-qXYXa}JqOlqOipHcySJZj98|Am191>u?J4A=kqar^QuR(_6LGZt5II8T)#% zfuY<*-wB4YEhQs(*7KdzduLeJqV}r-bx~#BL&E2;3vC-pCqmJ!1y+ZpL`QP{ktEFpUlBsuyrK;_D1Q8RIE6 z^01I~ZabgF)Paee9A%yHJa5OAo}t*uc{>*4=0*NAWH7LkaVb@O6Oo!HAFd8bc`;C}SB-!uQwmdGGaJ`H>IL|zDT1#zVZ?GcKSLD*$c5*4^5BsrG1`ZR9S~`1&VQ`pj;{P!&8Ov^C{H#kj>fg|1%3p9# z;%4D6+g9V&g#ThI4Z%|s;kJ`Y#{b2}cZEMQPCyQV!)&YJ(nVKrx8)1LVFuhy9A>{D z4)gB9qauTa!)#N_l*n z{0lhDDrDHQ;i}GXm_dCpahQf4%_mGzq&~yezZtA`NIkD%Y;5b_?S@Y2Gr(aQWfE`r zDKaon;zux0#gy3;%BN&XC=T;-+UIE6=_uN3KJ7M-b&FSO8Se@fGZ5zlbXau3!eX|u z&SdDkg~c>vMb5T?hC6A~F2P&Q5LpMybEKLf>s1nm;KuB4@$$^KvyJrB47*KOSWKf$ zSXfLWt~KZx{@cJ?wuN9ZjrM6_F^zD=3-uYIBWp+lEanXIW0cQec_&SgRqjT4b`ozX zg~v3)gy1m^w=j52Gk#=FMLvI$ zX^O42({#$e4L!HzxA2&45|@Mt!D9y8w~=Rwe}R#XPChK1AZ;DD;*hkR`E{lpZ^dHER0lj}{i9cP1&=ucJf@LnX;(%YHSw5jS5UrQa2A@CM+=YHmH~D` z${oGr>|hfory}$jnFc0<_G#IeWrC9=f4RhC;4zt(xtMpki@;-gkBi3)$h2R|6@9Ys zn1(GfWR$oo&9-OZF=s>*Z$~_4v5m(xWF{X*dk*3;k=4Xw8g1CZW6sF1^5MW^ns&&< zW43`cG;D{R-fDEh!ea))O8v5~+~y5iR+ii*9y1W1oo=UiOe=r%j|Lty278i${qRyg z@yH`b;-hG&Ir{b4|*l`@VIzPs~kGuF|D+1Jm!(Y4fIJGeUqzhtT)d$E)gyi zr4Gvf-09#JKYUua-r}-z9nXc1=dG++>WfCth*NXY26Mfr#g%Qu<`ijaV(_f&mkdm^ za2yD?!TF=}ed#Vw*#XkXbw!uS8gim5DdyUFo|XAC=Pj>{*Aiqtv2o#5kILP3mw6v$ z-50IC=utOo88^jw3idDull8lg!41kk^NUnc)qBjjn7K|q%ayPaE*jx8c=Hf@Ac^el zed_LB&)Rm+S6GwYt758Vf!%)({E%YIRY)C9L3a7CaXfxLWeoiRY23@Y_YYYUy%sF( z1@dn!-)7-H+P;yRkEfCmrC^t)(jNxzjNt1@43z?lQqgU ztdF-6PRgC{9m?Jd_rXOGdh0{;-N|cTn?2&87}aBK<~yltzsenE*NOaNI*#}y-Eegx zZFf;XT;||JxHf8vbRUfmdk9Q2WsD$2DeayZr zI^nxK&!#>evg%{@W$_8`7;fDY9tzaQun`j1JCy4~Mtux3>O+&$w^1MOP}bDR zLH$!%7t(Xut@_wz)yI*-^?~-^HrHLpLUQ%$NcH^Zv@6dOdA{NEJpG1qUaRaUN_&w1 z!=+7@zI*lceJm{G7@iGWB=fpT#t`XR9~1xhrFkyYQ&Y9zImGV-{YrlzyjJfd=;w$Z~MldL>K8$}^(_y01Q?U-znOxYw$r;F%WywV!#QzSNX&LN;3{pP~ z$S2%;UgT+;I|@6TPkrPuM|jz=nVZS`&&j)dm-Ph6yN7&>46K(-R#v_zkZ;Dw8={eu zfBthmCr)LR{}q%!c4Oud?5vdaTc5VCeM!C}`$qCA@=0Ffv6&mmt1V*|GCK1t|NOpd zg$pN-lK%^={E9r9Bfmc461k)<{+aunjH}JQW{P!x+`8|X@$Ww8U#HKB`*)x7Pu1s` z_3?H4oW)NB`<&XxgZ)UjJ|~(!q!Ijv^i_)=3;OM>&lz>ozx$li+2_O(p0>H2uP1eN{TydHMY_5+a!M+{L_u^C~*b zd7f16z?|po`OJADBCBN1lguS^o}rAbKV#lAgYg6Sfohraw1=7Vu*lQ%#sp8nk7HEz z-EwE_agW?nRrS5xW&D>27DUD&)yR=}&p~6(Q^Yz*(mi_$F2d%#9nq_baew)nu7PR4 zi{zdbS1{@R$IhM2{{45^zh@p${`(lcydgm^U)Mt~f1$Tt{<~DYd~KRuJ~1sLVIqES zU_XB@elKAxy=~4VbDmvvpkShVVA=)gaRs)Y?-3t(nPEAkxou9)obM6FcsIi2%z1+_ zJqYs&>DythBg`Fy8E%9bKIb~Z81F`y;d2fWM&$mjBg}UQ^B{BF@8I`##@v#3$>+8? z7tIm3w+}}RyT}NC(VYKgY!jFlG2WJW(OOq>)mqBLm>W^9GB;`hlOSdEUS?o!R4#KP zsT-L;1?uM@{+JUz#GL2_=0xvgzMJ~FV@@QPM6ek~oy{ihKTt=rsk2w)PMy8VUFHQ+ zXOe#6J-Z7SzaF&fOUmKhh?J@$$RcHRg!<}18B2Z5A>Y?iR{N>1qtw@z)Yli(S1a{( zg!(${sIMPT4y>OKyUZwu%Z&P3PJBOd)YlEfXVj@tc9+Zvtz)ULldWT^uW)tzF!d#M z`><7C&iXz~eGRwjdp%_?=S0Z7$xD5GS4-J?nEEq_sKlRm(z zuhQXjq`ppd?lk7MU_VwmBiJ{E>&LFUG1!ldxh3egvwp0)g((FV>!WoENghMZwl9sJvk-Vk9md# z{dU%my;uD2eyr2^n4{k~&Kh8ce(Z9}|DUNJJJqpM?U_NHTRb4BN8xnN*>r_Aa`x?%Z%%$4*zMb;lh$g~-)~v6CU+NsXOIqYGoF2IttRmhwDhopamy=fNDF3i~9U*cZU*~29mTFb0g-L2=6Z_MJ(bk=P z_+r+bQaJNQ=BwNrz>&zk+>@7GRqEn@%wDQTdWD)fjc|&%{)6wW^ZWG6s!&O(^SVuv z{k8V)oZFeL*TEydbsSt}f)U?@e@%P*HS}{Z z{EhePN8qZ=-V!PN4azvLO>m569MM|^lmGWO+8<_Lt<{dhn~oH zm9CO{&2vvG#?LO|%%NRu=Gm95dic&zN!ff`g8cm7G+xT%%)a_hXlIjS%73zM-1qxT z@=+G-OY?s5x)=D5n1AjjE+Kpj|0ayr`izf3_QCK(B}~xQ-KWKl|JWTje*0N}Ox>o% zXAizyt&{z(PFrj|99XLsfQxY7ms+bW zeni3*^SzX`Je=VsWp3`}9lH*QE*SqOdZ_2ZM5_)x)}1pgq%Nbay5w%uCHHb4eAb@4 z%qovE<2HEa$e-M^?o|E2MfLDdMxHwQS4gTiawy*T zZ4Y@)Ht;Jo?2}f4B`=-dvtRFd^B#yrf5febJiqvr=Cj>Jx9`TSCPB5<;Q#sUnoqcd z&%@2sgM8%4V^7z_z?AYY%d|-2T$!2Pq{T-4nCGFmXLNQJipJSDBCFVkT1`DKd-1Za zC;#P{+`ZV1X#OE8QPo~8_Z|O>jXAaI$ncai^yPw!V4ZN{*>E8>y_Z+_C+e|1Up+hJ zEdC3|fBO&AL20M0JRg2hu#fR4dZUhL6Z9Y|LryuEXD=W_q7}M#a(NlR>k zq_vNKF2zp^appZ+^@!g!V)#PrY_`%l+r?M5lX~Xtm^a37wuq1QR>6pZVR}9eyE~W* zoBPHpExt_0mJsK`BT=hTA67?(#Zw+5D91arBg6mPR}H7_^rYOLkCQyh-a7uSYi}PW z|B4B=;P6-N!3RsiE7chHjS{y4}abW?8yDrlLIfx&bzGOjO7^WzA)ZA z8&l5a_=x=t(bChm+@8$Mp3suO!~?j?0A->K)8B6t(e z(-OyTyj!j3Y#gHxk^hzj6TyCo!KqkEUf;vc%YXHpQ&wHPG|wk?@7+xW*EiEfn)$yx zy{)pYN%Z(f?GKkemFM%!i|*$sPoJdm@AfYA);}=cw=Y&*kmd9Ab945h{QFjT8Mc*w z;_WghBTrHWg0+hk-6mi0TrGsZg|bkI=cdUS5Mbyg{+hG3exr4dO=5pw=9ZZw64@U( zKl4wi>8`#%%8c`-Ej06!l&f_w+erU3jOnn%M8+%x;&41Wc)kS4A;wS&)J;ydai06jvvA4IMe7w8lt0O8%k+U z@=wc}?@Qm3QXlTDB;$X6>zpL{hvp&tCOqE$a6FgTJZIcrQRbo_k$iJ;*SN%wGp*%D zTFLdpxVO7qoIj;;{*((Gz8kDf1opWbb~=)NgEOdJ(yI4FsaBWg$nY%ieupgVli1tO zu)~6l;{1b&KjHriNjED>CFQz%mbJp0T7-^lp{-@bzm*#OWY2!$?$Z{h%0JUPzG@$y zGOusH5uDE^=TNR?pP~=p=Muiq-LI?>UED(bXT|RzY;wN}S3e_cH2?BP%{8mSOn!}p35y5 zGU-cv3O+E}x1Tc(vl;h{WvrUZ*tVGey4zj7%ckp`_2ueSmd*WVV8fEondt774f}ZB z%5~26p;i0cL$f){Iri7Y^T&97`FrvDCo;zAu73K+cCGu?KWaT=&(Dild457-RiaC) z9s=K`)EVue8q6tNld&ycxHz!qH)Hqj9W95t2$q2 z{|h+jB2 zhQBm2CSkYXe#W|&MkXY@gxey*$XU;K5yt$Mw(c&%$hW%!{?lvc_bLy7kApwhBX%A8PkU*QJ-l4{ z5Si1+7;ze7B%ce;58C;-PUc^YVE<+Q)yTg?f`iV(mV&#xR6XJ8uAWHjzK}FUceClk zM0fXL$Kn2%7?18IICS?{uAbxnI4@@9#~X)Mt%>hmwT5}cc69S&Y>2I&YqSJIKN}gd zNPl$@K48gHA{a!@Ql8l)X>SVV$vC&%r8Y1ZN)p~e&lX>mv@QO{>&ZM~gUku#UGiK5 zXSDp2E&bT{stT@m@z3DJqg3@5a<)%9<2!8b&fTi|nxpLx@8z7E$}`kZ)CMlD66e7iS)Abs@Zx+o-Gjxb9WEsq;PVqHMR`8Q2Rb z!`-y;_q6UUHQ*m*{I;7s2nTkp%RN3HJsL1tUw4x#N$cjhDUI{j;XaWw&jzNw|N2>J zmoHN5!Jry=(6=dbbYY(8LG+(9e&8(c)$A`zdA-)xEU%^9rL4}UtiCC`R>WBHo3d*@ zz5jaKMmX)7Pd{V5*obg;&8MfW7aQTUYd$?4xA1n2@%aX^5#nF$!*1-Rucx?$w`;yL z)dsN<;$Q58;eV*Og|}bFOdK+Hec?YC``zVwjAKrH ztm0#=lFM40j$Ia8YTW4)Dw)S+Glr3Mx@n99rB7*~OqyTfe=fOGCouiAYjJeQnTxz`kZgnJ){zcZ)WG)nqo%PWlX0skyMV@3{ zK22MiDrHcF{>YfkxKr=N@I*WNL;BgCTU;sQ>(QsN%!wqwGte2{%La2#K=xSl?nCmt zjcfb1p;gic{%l_C%0I!Ya}a)fqhGs6t(QJev)#F?!hnGAC`ZoMMnRtt5Ru86FH+kdl&s* zZIl`=bu`2HC!uG3qGh)|$ga^R+U;f#W6}?)yZflSWytw!=B_dZ)gvMb67!P1%zSr4s|yU2llICY8oka0|dFWh>l)$dB3d$EC?t(Q92LPajo zi7}&sYm5r4q~sN@<<@SNjBRuCn9po7{>PC2KxBO?L(5Eaap~B%#k7gBTv^QXyu7Pk z@N0#vyV_~_bHk^#k8+Umu+#eBdsB z6!Su(4%lOOBBWgGbW4W?%Te-SzdOri^UzZ-myAE0dbxCl(Gp$`;bOGcZ;#NXMK5Hn zUGlK`JaZks|M|hZEv5}FPSB1>zQj+~x#qXSgz+bMj&xSvV#mBcT{f~`Wkj`I_ujkA zI?wx`&hsX9bi8_(eno86F6Q!Q-3li;eZwQHNz3|S>Di+LYg{hYxOTFZ{HjrZJ?m@4 z?`5h%<~FtPAeQnhaovgg>|K$*+b@uJ(f?!jO@t>w>Rs0Ig+u#CI%|^mSUR#)wf3`g zWGCy?vM$nRDC^9WTPbZ=(wI#evflQ>_1cPgzifXv9QNQa^8moV=6;1l`ZqP!_evltoJYB16tT_1{OH8mla1 zAEDML3wV=ofBvtLJ}+(UIm#p4|6tQ(oaAB8OvV_NJW@8facbu4yn99jb5k! zMDZ+bXiQJD4axYpmU8hAPz}Xl^jGGP>DtoD1Xhv-hK z@Z|8Hio`E-PiByppARnfVstzv#;U1^NoQ2Jeu@47TKv~*%+Lpo!; zTIyx&bK?>vZ&~G~>tw9yA>Gmh)xh3v>y#<*)^BoG6SvXEBwfb+D`cO7vwMdYJvO1P znL3bj6dI8+hB1V^%RaD-ZRJ`1i!Wksoxy+elJBv3OW13Pt(UVw@)$38aWA?6UWc=< zuFEETF8ed1lg570LR*qJo-N`!UH08 zLB2PlLpNqdRPP!^e8%3moMG6r{vPvY)YesiXs^ zkDs(Eu5jmERFTpzJ-Sz!aPpQ=U%9l&L98uBm#6oT=Z%a5C0)^*VxFhfUsG2|+&XnV z4V!oS!iZ|A`&}ukQg2MS!gtffI&~}OnD(sSlE+vgO7>oQ)n6me1`Wk2FR$Qyc_G&>^n%A@-J`MHe@#11pY;~?#L*5%^0y~DdiMe-p}xls_cnMy@!_R z5#}AG=z!RtLDcg!bU^lEqNqi`eC`}ybWD|3OMge~ve=?{*5k$B-!CKoGZ#)=MSG1MO}{!X zwO_leH)8YlW1Dud=Q4&qG?}?o^3)^4@A!QF4%r{_U1#DEl0C^)vhREd|2uL2F7Ahz zlk7*Y$5iOcrQd6$>@!G{vs~V^-B#0v|CoJ+ZyfP9&x`4|${k&%;Z~8NW-gw@nZ}|o z8GlQC203%J*y*}XpMefMGtu0KjOM%GN%p(rv-$byTGltNy(U^+n*FR9$Cr9_wncqBfwYfGNL)^kKEPI|GlEy2v zg=O%s-A}yTxqd@B(w9g$) zdF9K z)a_TyZ|7EM$+HZ1y%VRCa+MYlE*?VvMh#k>;6W$-0Y5x4bA7-pXUw} z{n`q@LSJ|SLi4tce9eU$c-E#%j65Rm*Uq2(qo>1-A^8-!ME>^~|2;K*=7^~ksr?3S z8d&x8^r<60P?6(aQL4wiCf01DJRa!YB0+-zKS)bgT<^F%p}dbiIa7gq%y`;tJqVXo@4HVz!x`p z)V#QUC3or%JTbjw#NEhH&KW?I&qU!|nMyr9fs7BR)LU@F~x2E1vS4_hjOa&s~)G<69GZ+n!~InD4Xj_e$a{ zzRxoJiT{#CtKl(O4adxCxJ*_TyrP3w$>WSH)@@1_J7L+V{x}ap;vjx*Q>+SJH zzbRO>=qcQuFx+m!E!U+C{TV$nJ>di7e%j?`?I@~#R)2lOY*)lM_)dE4EuB7MkBS(# zh;n;U^^Sc~Ma0@=wU>6ghdG&)R~dRxL3!D>Ypd_nZP(I)|9ZA-u4TLad-~iFv#?$B zE!(vcz5P2jYNfkh>`L_ZOKjIsY}bw`ZPNc%Xp`o+P1`jK+x6(bknOVbC${--Tzmg0NJ|?wVAImCn+S(ld+k1pl9@50b4f=Sr0{OlMc_-x?(GdN@zyjMM~b_==TgrS&q4No)-cYL zdCx+|&o0JnvR;&iU(I^n#oToOZm#LY>+_%RcF+HF@ef{_R=mE1=MtXt`xK>>aOG!B zNh{%ekj%Gs%^&dA?)f@A`g@*Um0HC8eeOy{#FVIRF&T_$@@4;>aU1I&F%my>!ImcG zRy*gpR=PCTR%cogzr-!^N}RimxZK3ky(*vaoa}8>FwQwg&M)RHfLvEhSiNTc#E1Nn4swi{S05u|8-M2JRL?vuSy4ZJFnr8g z+a@1qU%QAjWo_wyCkaN_`)xI#}D15R@Shr8uEN!k~fyE6Tn0*8VP&2nnXug4O7~mjHrN96;>s zuO>m@gaZmiFahO!-=BT(|JbiRt?^mUdY)%JYpu_^&{xj+ysXOy_Y#|` zjyA4!Yh8X)#j;(&XC$j62M=?fz&~$0*5~4TAAfPnc*sjDUSh=};%Oez4nLmo_E_#H zW4O<=8v2T_U!xB4MRzeen`5^IYwV^vHqZxxB}RErb3=svg}xCsMPXT+s5v8z^FHMJ zF~)}CUCQ}BjZrji?@2wi zUbtf7_!PFNuzI*{}4fz+uTSHmrta$Uem$0U|7rcS4d0**#!r3bHIr426Si<)wChYI` zDdqaq)voM-tGfS3u7sih-}^Y;IjbV?5WKUPJbUBsQu(C2#ItI@`UlfSDebqL%GkCj z249rwqcZB83;AO-maU|$KW97j8X;DU@Af-#+)Hb-0DK zuv+_-LmdWD*1?QZH*P8H_r{j7{cfPl$eIp?>6?-ZjjkPLrEf^i;od)OP%oofPOqVi z4JuvHu^IULUC_9z(Y05WJHDs@e&5SnYbABi{T9;Qw&m`Aw~}5$_w8U-Dveuu;SaEA zmmC{}W?M;P32{W%u8f1t_1MUMd{&L~ST9`zKTYJ$nbK3bJ03AMzSzI@Cn}| z@Et71&%0mWjQGF-z9Dx5pPFIZfm+@dgRODU{O=Cb@xHMks_%SPT+Dp#FSrt7hI8M? zMx(aeFLk?P-u^tQ@906slno*M_WnM6%)_Qmf9eV7a+xcxESJleFzJi<0j{`O*Cna( z13YoH7qrdI$m}#_hU1i__&V=lh6BXM;Mio{EaF-pMfFW4W)+WlY#Nz~wWF`#?{X zw-5EWLUbfA4_G*Tprgtr8mMf2D7VTZdi0^(D$^XRJaf!%?T8;AmkljXpr1)!SKKbM zKAyNayze6Z3gWLIF6;KU|9Io#iD@2cF?)u^nF_EfHK=dLuyH`C<` zXcD4LWSsa$JR!PVK^a7w2$N1BTG(__9(~{?)ip$`_&C*dDc{9!;@>7Z@Gkyv(juG= z;s?>kNeh*|1s!+~r-SGxo<3mG%HnIj9iS{x-wx5sq?O|Gec1)B$_+e=CZf-ZXrof} zeJ;{dxdgh*XD`6JF89JpE|b?j3GtfoVKDFLAJVQ%g2!arti07>+b}OHy%cWeR1!vZ z&aK?{U;WDDKyTON`W|k4)F-!hf*$X7aIHqx78#98fA7NfaaWAtt~vE%*bc7^@@y}` zhc&vyQ;vLX9L@Tk(byQHS?jYdcxCyz*&Uef@l|~`qjO4E{Mnyr?hQNWNy?z|Y5t^| zXUSLLXZ6Id>@UO?8ijpz%rNIZ_n{Z^`!vr9`8#vocbQ@C*9&qF#=5Hfh1luX(}%_x zjfeXfjj@`i=#Af(xy;p8eEHY4x5rQT`eUs7*IWYgT!%=nz;okdcfW#E|G0_2^k47) zi-&m{UwUEc;a8Bc%s045&+B{VeQ#RxzsoH9MrR%de{58(E4iY4ou_@nk%u^A+-+QY zCEvB~E~i=;q|EtzP&1=|dbktDoAWiA-!jV+7WW?fo&MNt&9{y8MzH6|^vidu7zCZV zc$3POcoG_3B_Hj3o5HtOXD4tJS*P;gy3iP>Ki@hTNo6&!7>!5xCK`|9+mY90|8*=6 zt_g+fV~1N!IKC;|4;1bfyg%eK?LRwRJKlt=X_q#}tqg+*c@x7aQKjf?0`xyL>Eo|mbee0vtcG1JK zuz}04=dc^zx4y;tUoom=1FBy2J4a{wt6bOgW1p+ez*RYzTMg9UD-AAoPYVunRRz-` z`}@-(&9$Ze9^A3f{nvBH{_tmU$8OgejoKpi{88_ni+xoelmD()@J%BJG(Yf%&)5U@ zE7x_O4Vzi@7IsjcVO%@DA-I+?*1`HH_}gO~)LDi8v>Vuu=&EA=?OOAELhhndXUe;l zF^2k}`j8LX>QL6E{`J@2(Encdm{j%)vp$P;4B+e)itM-&aVpb~QE}b@L+=BrkNf!*ia9?YnkHEZn^#V&R@QBUpRVv0~?J%@Y}mVxfmY zdNsXE2aeYHcfCj0t&Xri_EjAw?9uD9tB$<)Mt?JHa_*!&yU2IxIq z#|+7Nu^@J-bNk(Eg{FVyy~9$3)7z~l!P`xTx1Fa&;3 z8;c*>T@h9%>gz0HJNiT&bleHO#1G-+Tmz4%v9`vaNZ+fTn=GEtv*xV5Fa0FhA4FEb z3vayxEr*5r*~E94YlUv>Sm#;>&2EckuP<`OU&j03Y(|nD|)24mlr$1<|Vt3jyo3=`4-E~{!{xs69rz}~NC5AI#6XT8R z{G_L}#do6BP|o;eul?5EU*_y6&3G{NowU$6Qtd0AD9T`N^O2k#*}{1KeZdTumvt@B zHk&+R7{BI_r>SGoA56`DuKW87W)YZxe8{c0+yWHFwfh{~GqH z=*(zr;W1s%m#&np(VSbA#rZ?!SIzrrjM4B^8tHhA15aId<=mfk>diO`9kyTuXKP^# zd<(v*---N<3DKt>IgoDk3+c@a$~e^I!Dc$`Cm)ShZ91*yOfAtV2RdO-&FJpc`gi%V zCbD+)!PK1h#-t8)&?Y@OM4MqLzQ!@o+pIm#_rou4!|buxLRxvne9X1#pPpvZ-F=$%^R@Sl)x zL1eeeM!Sc6Q_)FfL)h~)7eCkp`lVIv#9(2@w3P;AzJiS z9<;U6l^zOD`({Vlb@-cFOS?e*2)d|$Wk84C(8112bEDFctB}i*g;(R_8~M3F zu{;Jn&CohfAH})f^octzb}eGPU(##%3z8VSYkg)Uye|7!vRk}U1JCSakBHVp4CLuh+l>&a?v1{bc>Z*&mjWr)0&+`a^g>SWiEYE#rp| zI+N!Z+OlUmZ`ly+lkvxMc1XToM!O85O?>!HCOn$6Ba3-e{6;4IMT1{Lqp7m{E&cm8 zGG(pjmWFa@)N@64x#Ua8pDMkR64-z&EbyRrcDlDOt7eZfyr;C4)=JV6uk$T$J$x=c z$i}WWXitOo^wOSw*3&EO>l%w#a=i|IK9-CB*WzdOqn!~(QcQGoS!~;A)@;NC+*b}e zs(4Sb=7f#NBiJNABC(Azq6fagqE0zGdbwh^#&K3^8tVcJKDz2>ZD$$_HSRBsE~)IH z`Qok{UU<*t+Fmoy7=96R%J0oIw%76e9%H*V<}Dt633JSwdC!=$CRh9GE1{EQ?l8`r zoI<@mdj-sZlh7pRf@Yfh0GiYjz8ig~)RScL-8kw-A33P8Pz`4=tN+%)hp+Q}uBTJk zJml9Gmvk)mGY+ur3f1-5H`&WX*i^#xhd*uFimp!GZqwHLr{Fc=bX`GQ*&d?l0%)qf zs^{JdL$b^53(2mB_-FIL@ZLt=8hGFccF7P^H_D$LYX4c^ZLaIl*wTR+)c0s?^+04x zn2nMWSk}u5i;beNhp#Uk*pcvuudg1cIJdw%r_zn;W73b(jjid#0@~*`@d>n!Z5vZo z#D1Z+(*;k--pzL?;{#?R{4E8!^%vn;L!!#!He*qnXQD|Jz{R z?`b2Y*BzRwOiFKQ8*i@C)ZR~Lx(5=`MWkJfZ{!X96~*{n-oQ^GUrI4Pp-twus5tp< zq#HKz&*?iV#vilU3=f-sio=bB#@w}Y- zoOU6)WH2`+y3}q9<~;>nCcyjN=#(;l2cuCsujj44s&wo$+5E$i+0sug?j_PCap+q4 z!tsrIkR=lsgFo&@4$zj%UV>j;(PfM|137wz&J(eNGnxBi+*dY_aJ|`oSL8|_7K@&O z4@^Dvefs37%Fxy-!+O?!sSL6BWLMGOz3nImzH8~pdG17f#@@h|UyyHfqFIJ9dbY~o zMP8Ztn|iWSi~I+We+gsKVdUdNPx?G#Qtk9zT?LL>xQ2<=M!F6^^u%@ z`Kcj$YeMQUrPt3zT;?vbjax*f7re)hjQnezP3;I_r13Je{)A*45>! zr&zdKAzeKWnl4%H+5X^#u0@((v-Q_1PlpCue=VT>B@>5WJ1?1iYlE%BX7OEpO!klD zndId?q@ggj47I=C$M=--rbFlyjZaUI zu~)W~v2XovNXE`_Tw?i+U6<&Ly-PLg(OcAk@8Ysl-X$n>S2 zkquYDJF>Z)Z( zkO2+|K8~ctIjjl%w-AlO>0{G|aqpLxLYrBX{Zi;Ni?Yl2?=1VJ&_;B-6xz(@zms;C ziazGQs5sHlNjq!YlY1%j5&bSj4~l-8JFw@GbUk|i z!Z5vGi0+@o9Mmk+2AK6i5q4rWc8GMH@hoGM|4Hk+2HrFEKIu#EJM;Jqy}z7%#`-+P zPf%y+`6sCJkEQdex8{PLV7^8AT>K-Q{sgp@9@o6l6VO+BT=PHD<4@2o+srueanHen zyZE+^|Mq-`=8$A#D2!|j&8z5t0`nmWZFl5es(-Z#U9Y>xK{GmJvYGoE*e15UvYYp)*J_LRz#|*^elgE)a+giBf^RqSzKQq8IvSO8 zXzTed*Fv+MS)Z(St}bKT^-@}2@IspGnjy?Vhs)zjEt{ein_@Bgci1H4F?vjWPIk>a z>>6wr)2^v|mp+KDFOf{vvn7*lT|c48u4!pkeDm0;%kVaN%eI;+yGHVRyj2EECrq$( zLMHw==>+A!;qB)9r4!7&ThR%Zleg+sb_eI5S$2i$CwpeGWzRV4xJ>C_zFP}U%-7aOcD?2)AFE#Y5}WAitk>!C`|N12^SolP0UdfnXE6ux{YtNlbyW|X zPydyCoKN3vO+L=24@y4Hrw@k9N6Ezb^qU39R>{B>^cSb@klvV2-;?f`Pyd(haN7Fn zcXNCZ#VW&NRv8{6j6FxJyw%5_wDNya|A^z10m@(fexVsAK5ijl!u!9<@RU`Cr}#gZ zK5dUrr0+VQw<126lAFLdA?ky1xotkU)6{3uWs=#_VNXfl(d`v<+Zt2Xh0FLtWc(yBPcH8Ea`9yFot9CSSr>S6CxIg}>w-w`;3=i9&F#_c zj^bGtM5(`<`jN3ouKM+I^uZ+J&AK3(ux+@PFT$pD@~O?Eh4AMj zcw;iWITM;KrR_4p^y?&eMEpAm{&e#1B=|!1iS+j*_*1(32HJWS@ooJ-3BEAb7nosM z+D6jvccSaw7H<+yec)}%(OMsPn=&Y$w<$xojqoIK-=-{~|Dkf&_Lpr#yiGaYQU4%~ z=P74+9}z!_H)UhVp0Mo%4eaB)^fyRhqXP z-zm5@*vD1H#PnKwZs&3Qhz*`>)>0dNk1$_zonxM|n!Gel2=`SLgw0E~n1^D_ZO_&9 zLU%632c`MK-T0yQFhAzc%C0JByjUO4{44uBKVB2Da20+?&BvO4&_tvET={oA+WVVQ zv6HdkF6LuzKWHpkM&D3b{mgN!YH#$_eC$2#o99*8F=o!IY92}Rs$dK!YX7KRhm*~# zI?KN=4qt27Je_>4&Uw0Ty&jsUyM*#+okcBUK(mgF1NSh$R!2p7F#D`9@lw zKX`$4d$J+4H&^;z^KTkI7tuzo%_C&u2e;=DHZVt|vE1qA5qeSv`B)F1Fdps{SQgt{ z-bl(TUykN6>~frT?m<{Z*1Sd?Yh_z2PitdR=iGzYMp>Ks@40?cf3;ivAleDPM2mL9 zW|e|1wEY2I=t^K9b7Hnfw!4|797=DJz4pgD4{;f=BDp}scv*zs%2@#Tlwqf?pe zO68}y9Qn$^{ZxV7A$#s4%cgYt%En}d>@E4q+0pL<{!&Zx|V-Tb4qp| zwmoV3;_wBY&c4$ePzm|2-q}jNVfD&%)N6wyPiMVOm*1P@C*QL<_P(sySA4d<=Zsy! zyzfFg)0gc??_b{c3?Fq6FJrs=;v;fnm=h|SWh~Tqzkqq6!uA_pu>JWO*U#a~j?Sta z)SmUF*kiSf>$6;mfhD)GUzjmKHEmWxKg+>)B3@HE6YwWJ?rvKa8{M{SK7OR^lgt+s zFkdj=nlDhAGjoG^uaKtv0~79>@sw~OZF_AWb3?oF6U@O+@Cf#k?0;;W5wfx8d{D=j zw=VY%@E*tFtDl2SvqG0OcGZ~o5yq}}NcXp=4y=Jvex;+>+e&^afA?=Rm*32vIw*f< zJr0upVCu2}n`{Mk&;t1mu&FdIS%59~y!nkatN0t_QwX=W7GR65G{eN2ey^3pwZ|hG zi)hTU0DJC5GYso}d4G{Gw%<1>zzZH+9uMOtCC|M{Tx&CV&v3VqabujNS=yJaOh57%3?%bBvw~D#Qul8Z)cbjkh6 z_zE`iF1i2Lo^u|{oU?RmsJ|u!j9(wmD}*kR=}w(G^DFxI$5{UT0`{56FC+iHbVYvG zVBXZ~w7!otSTdRP!}a!ITW{l!tAx&?S0!}*xpXG9kRQJi8jCLSPe>^0 zsk;9*q_;^q64Y)vu)W9Yi~yZyqwH!9(lP`u-1d2c};Cnuq==d8m2Y z>9@3Z5-Yy8cmC1s9rVk%<9Ta$r1kvb^PRnp2YFw@{DaSU%h3LiS5h$iS|fpUQ0fAFMI#$saH=I^F`F9x-t0jd-w}es9#qut$jDohE%;c zSMO5CH`UGHTW`lVKWVZ*f%Es8qp6HKkA9>2Bj?lYZQl_7d(& z&#!mV0Ndc@8s_0B$ICUWja{O9vhWqSYp)6PP&+)WJLRqUlC|Ts!;g74)8k$3P{zB` z9k2h~AJc!Oum7~gY{e%Z*5Iw>ytc*?y(>Sxvv&6(y_0Xg-cyan`}I!#Dcpk_BfxKo z1G^<2?3M(uTiS!&(t)!nBNiSp@%cR9f4j}|u+{~?!T#iwhIJ+V*|(eAu&mIvefdV$ z_QHU%XkAG^{&jBf8c&W4E{`a$ALLqiHEX%eeSfnb8BjC(QLe`ZXs!Ruk8b*Y?M=p) zLH4t19?;*zSlE%UH6B-Gjc4Y7+8)N2-rmf&u-91o%xXw$DR~Y4AvoFEgJ8Wc+d=*w z_xAVlgU|Rlt8CrIF0a;*)>6vUpRnnivueLD+ez3S?(J_779PBA)g@ChvzU)6vi8>q zPnC7TMZMs&p_{-d1^=&N!_z+<4PMm})?sEx`#3+ZQ$_YZW0B%&E~o?i;3fRJ*tJ4FZ-67()mp&orxR%{e*P-Sm`LN_A^G47Ux1%ZRzeaF?vhMQ)zFZJ;i%^ zX6;|qXVg!1>N^fvbPn|`Fp?YHYSUQjoq5RP;OZWRPNLPN3VXfvFN;0F!rY|~<*RRB z4PGhlOFXw({l06%r+T0LJ*%&$Gz576@}ZIN#;x$kE%3?+&REMWhj&bT4pX+UAFUKS zc^LJQytvvgO!LHwn;#24qyDJ$=`U-$Q5U@*vFZ`2vhm#5t+~90Ro-;Y`83PPUGbOb zPPuCI9sVs+J*dw{-KkH_arm41tW)_Fp7$lQyEeS8chyJlo|J}H6rT9EbJw2wYRdgS zGQ=z=&&g&T5-Z$h9g-@#P>0iDg)eObW|r{ENbj$O6+R3ewXwpXfr%CFziOCy{_I!5 z3Xe+wDrg z&I|0x|M6gs3mZHfcU=4bPlh}05kIr%s5QKC?|H%--}2r~XM{IC@?QjRd@ej+-3s0~ zV7TWMZ~S{5|9P04Ka?(5Z34N8QCwvKelm9|pF^ zJJji)9UD9!-Z@`5x24d_#s)76t*bjLdDV-xWPi(Z4bF$Wa$KxSGOM4aWrkvxNzcV?vmnBbl!` zqjN!8!vwF0KXW+=CU^@uc{Z5f_j4Y@x#EF;Eho?X3>_l6a@W1MfR9ga`gB>VR#00v@>P7>)aKF3zT*V_;dvXiwPDGm#(CB0C z!bKm!I+I&iPa=9mf^R(n`t0IabQ66>K%ZM!L$Zu#(J0cy#CDl9-EGp$6SrHmgjOpE zvssr(??|&v_LyO!;`R`RH7|Wwn^L@oFs$7)+eB?~zzh=`cR=arKUYF(dK_yv3Bw*- z-Vd5#;^PhyW-0HHe=I1z!V1GWnc_{^uFB097?m5quin_+UFibX+pc%0&K~LkZxCNN z-m16iJc7EbUaGfUXVqWzR(({*5!7FG9AlQ*W$~BCYQ<`C>;`<#Ou1w5z9b8TDrGPD|Ww z{5|5A>OTkbUi&cZx?b>!aJ#F%;jlqYg4?~0FtSGqxqoHc?%7e>cY>3wbq2LlIb-q< zuC+&*_s-$|IXd3oSMy`StiF!9@6HYDg4ZzL-I2NQt9ei2J%ruu1-n~#%}LX}DPHiq z{WlqnHiq|N$|DSL;YPp5v*vYE*puYHiFFOr*#~+TbKxV2|EXc(>Q2(!x8rPA6UTct z*uTPNy^HeT+uh5&TszVUhJBAEu3u+`vj5P;u(Qr;HSx2FU;k-KJnvffIpTSP>1^Y9 zAGIk#jl z_|-$eaNqF$W?A}*G9jS}*+KT@=34XTz#rl6|ROzglFFyBGJ?!ol%Q~fn z%9C|U0oJ1A1xJHD-5U(*#S#7eiz7mq-OITPv-@@KQQX&YH!-_ASJX~r-!=8yxem;3 z^56A4;an$y*_~3+|6}GaUvXV`xcAJeA=tm)5*Bx3GiLWEWB>!c}%=+ ztuN|CIscu#@ak`xn`W&--l27a``5odn7!qNshk^p!oKp_xR&_LPQ2~~;6W(e;34{J z4_8%v@9e4o>Fp!Ez4Y;G)t*x$`fq{P7r0`3f%ABc`o^`igU+>?K)>!uIhF{cRao3S z3s)_la?Iiqwy!W-d|=24tJ7H)1DyPQgdN__xOFjWXmZ#)K8pN=IoS!Ex%)U*+Mi%t zBh1y>sSyh&{pY;&Y=)yu3%M!PhrpY?SoCM@U~zA zERjt4&fxyzg%J*qT<>V>YG`F+2Gm|%J#eOlzwM-{@YtQW0q?L!Ui3No>Cp08>TK6< z-*sRRQ?8xlzl;2KvyLi+4c@sz*x>hk6vASUq;3tYC$iIM!~1B?%Pz&=Ht7QIsFLaP zCkDWBAB~J3+P=)ZYi-h~iylw5+wsW3;I(SA$MKWe_Sx(PqA_tX~ni4)*8 z^}AjPE|b@%LNmKP@7o!?c0RP~$G5+*cX5nl0NB8*W+ygbE4BmccNKM5;u+P1tJs4% z&2X&5+00`)@e#GoC;P%HnlN_HH$Eck=Uz^RcT8MjtFKR@U0-EgH=7|n0+ZEb7;ly!>CS31UFi*cr8AE*~r7S%Ea2$u#j5*ExdxWqeqdg(4(+MAw zA2<%m+pTA4tGtDGVCHM~lddiBBfdet!WxT>a$ucOw{V2MXa9#A+A!{8O+k)?YIQ&lH3-|j8zwMF?@^%~>I(^;=E^wCq{s)|RN`sPWnO$WuF z9NY9VSBU0Xe{18K*3nPJztRQ5MA1Jzi{HZgrM_>ZuFk&Mc4i3o`mcpuT4We6Ydzmr z>0`p@97_EM(6^j=ZSt02-d=QV0G%q?EnVs#6wzO{jrw5*XMav|#q`=29kOHkan4AI zE2hbgNrzXRc8rg9Qd^zQj+q2M_QsAW!H(Ggoo^#A$;(9Sn5Q{2s2BChLT|D*G;bJs zbM*AGiFjbtwh#CtYU4kux)DxMJ&8A?NkQW_dWv zf-?FCh4l1Tr=Es}4UA>eJgl_=@5s9m-Hpv9`#|q$u8u{CFa0}baxiA2oc>WE8~WGS zs7JuaKgxPr>G?z0AtojY`7}IjR51uz>z@sFQXFS0HVN09p%~c_rDxGpjkJO^0>Qp!S(H`|9 z>ed1`in_Iq8`WH|sybuQ7}Bd}4$l9e&QZDN3)R6*`89sf87l3-Uboxx8l9y=+i|8y z(XX)`{u^HKTQ<4sTVd+V(D@)sbWR3mR+KQ7JNg}8qj;qZ9H#Iy73#2&v&qNp@(siX zG{bogN-xJ*AxlWB7yV!-;a4Nmo#&_&DE@?r1H$7wG2&@M*D=n=7t=|! zq@MNB7G2g29w@)IXerrLVcN~j^!X-vnDn7t{q1wR(1nL0r*eHTK(yXQwpB z8Rj@UMY7ez!-odR(BRnZoC#4I%=4n_IhU)^%eNyMe^8z-*7+$K&-}_hKLy&)w$4x4 z$$0f-XQ%Av%p0|tI zJ~S5Hj4Wo+?%G77E9WzGtq5Kl^6`ltHPB(RFi;$PyOsRE3g0^UwScp5#B=-KkE7@3!D||>Y?k45(5MUi+=cwrc281b#EdX|$beK*=QM z7|mIp=sQ}LXV%!(%X7MMnkj?f(>=&d$z|c*3!kw55ON?9j6%s_#>Fjh;qX7nPhsho z@6;NLd>6Vn&l(+Vo}1OFs0N(g3!;srPSB{@onrFox8PIk>Vu{amayVyot;w7cYmU< z@h#5r+2T$tJ90^4xgQ_o5$wYUHn5L{aP0__KwH}UVB#{;M{WOv>>!=b@>X5&8rJGI z>2&eKBI0&~AJj+Nl7{-Po?~Z*`tXLHA)EcE2i;`x>Tq!Os^C@mRl?hC*3HdrrgK3O zXg8e)B24a4O4f;qO@MbShce znhae^ye-5F^^GnkjIW$HeOZi!R=*xJ$5(0A_%8GF89OR$?C0sB@sEkeuV>o47yZ~C z|CpHk=J+nL#W?GYQ{?X)-zopH|F!bB#&;9kUCpxqZhlzfpsptFbKOJDd21XL!hMz> zq$N(@^W>YR@!iWIyu5s!Ct;1VvJyk%S7-e;Olz*+7(Jh)ey1DX%_U#erT42gPG9r* zE-S2F<;usZSB@i3XT450zMDjTjmVy(t;n7+eOvPI=;uQ`{3OZdJRW!$;fY_i*+!7~|1DR{4|hPci0yB1E&H@Pt`@jrUs_cki^?Md`+} z#!vE3X`4Q(u=LB7rj>rqNz!jk_BqdKc$563Bchb=AY)3Mg)1l7ptA(Ffa_3$j5*m^ z3&H{(&b*?D1>CKdIiIR|!r{yd3g@@!oCW@AZgn_wijSDz!6+i!Bg_S^;NNiObu}OO zsQE8+w!$+0Z{nXlPbkb^VfTigt#Aw2(=Tyd#MuhnPjj|{jrsc=7`(!Eo&|QV^K6A| z6H~5JAo~X4l^RJOfpszK#!%aZ(eNEDfHnig}XRIsZRzti#kK; zlxHb?7tE|tY1i3jG8K7FIFqRlXEL=&FZ@iVnr{X3%E0z(9a}A>LiiWXvlxC1y`F@o zo1k4A=ErpogXY1-W1G3_9EQz23&W}D90uOQ&S2=Xjj)laz2bE4g66)r5ng96=)30p z6ZofjeVy~PoqyudV)EL~|10&6xo^%~=mXA0v3=%(+O3%RdGpK#!f4)`a}@f3+r;C1ErPk4a}OJP+p5MLe(MegpRve1qqT@8I1$YoV*-tc63? zSqnFD*20Y;K5*ihI{CqQmeyU+`3-2Qbq%7g`h?n3^xecawWVk(Y!lJbT(bfF)xK(5 zwO5GN&1YvVhmM=L-XzR!D~#wb+KG;$t$kjFO)vZGEc47PFvra^w5Y4(hU#o%SB<6a z8!Z~l=@>dYYbkPMG&-OrE135euwk0?$tiruvdLD@4(WKw9of2DI9~!g!aQH1`~Qa= z!iSuNKG}eOS~~dG_;GC;Bl9FaWN*_M7bn^{P8&n|Y;}p1KjS)`HPXi zW4vwUI}Dtz&^cYrHb$DIL+yIiD<7*~vmALk>vcLC<3;k*Ji--7$)LsuJY=7wqVf#Dvg!o+e{=&zRzF1-P z58?US`g9U~0@I26Bg)0q}$b-o1a<)pKH ziAG+hHEDg-|Cy65(>%3-|4qKCbZo|xoi8z;vDOv`AKE-<^PkR^n1r02NxNmh3!FFI zC&S_e;XOI+8|z$&J|VtrI#;52Rtvrj*@5B(C*M9wn&aTXeej^{qkZHVZbR;~cz$0P z&+mixI7^~f`R;@7o$0DS?1KlzoBPOfA@#Tf{n=R$my^CNW5#8*8(!sea7)%g)S z&*uDygCV{tMW_6>{N#KSetv{}28M;LY~ydo&OUSe?dl7Id2fJCln#b>33AfS`FPSH zKSNHM7>Xz0*L6A1_;p}_rw8-?L>ZKSot6J_^3S~M;in|OW0-eaea6^+T?6^w2#Y3$i~L*S9iO{RzvNDA z`uuaV=}X7558!K?-W>n^quTWO-wx)zmG`e{)0cw#ud@Us%SNlegQuYWE}ZzAr%r!r zqUVIO1Wp*|wmeH9Ik4o?VBR$BNcmvKIMUO2Noh)sIMa3FKx-nIv&H-)vh(hOr_Et=z{m4x|gj+e$VUYZZ?v&KtVtnbc8 zPmF*L6R=Ti+hia9YYR*Bw7!Uw;XYR%IG#7vpL(5*I59c zE+^n9{+xFC1??faYaP8XqwO)O=vqme$liX@{AXcCW2;os4lkMCOuXnmFA?@)z6;+| zc8vZBCtBa-gOI;LwzrKBt?};y@-p!>^$&a8_A?0kQ+S#h3kdtu#D^w~?0qnw`+)h( z_Ygj`?ED4TSHgy#Ll}(}G}acc2m@N!&^9i#&UO$sbT}@wFraN*XkkJNCtCQ>!hjYw zw2ccbjA&s)p9~k;_CIW9oNePm>%2#u^SF)so!o^BjZI$sDDNgN^aT#AO?(mN85%Xm z^A7zv#0O?OTDY}NesJQ}J^`K8m*jU4edT*ldy2kx{}D~qZ$wXxxkP`puRWFu(YpDZ zj5na)Zmt&z6D8UcUi263L`Tuq#@4p!WuKE_o{z!!$viJZJ_xJMqKoSP2zCG1qQMqx9>(HO|CW|NH4%T?6TL$Md>g9pVGi?u8fBj!u5~=j>bX?;nrn-3I?^Y;BK| zdY|z)32e!o$Ma&*e@a8PKo09LY}-O}F}==MZ*>Y7wa4>1lBU{Z%L(JGuIG6y(kW2- z{~yomKz{OJc4ys)U4AovOWr!`@z2Q<_-KA}Ja0dC;>|7OZOS>?GRXnopN{9f_Ci|U z{fuQz`;hcS+h&;_nip~6f=iG6So#Y+wcFBPwl7_JOgc=qpsmMj{UuvK_KEC(=g?Eq zS(+CS2DtQ`{>d+-@6uzokI=^dmOhjnDqAIdUSu+P3jaG~d&V}|E3z|edqp;>>=o%p z`8Z{-{G-i_n7H4}i!|YWo3==Dz(v!jSkec~ zu%j$2;KYV~=KnnFKl>qg7q0gb)+m^9STC`YZ(u5S2+oc=BV2F!8nxfn>*^L;Pn~+Q zzgG3A0n>XM>l(EuuOpW*6IGuY@PoCs%*5#p;cYj)`&kFb-ma#16Cc}p7w(5JXSIJs z7~W=jHmoSgTUOd8myP?Ly?;b|Iwf1ni?kb<~ zxuN%B-ktc}&+=}TPyb2(8U1(QcRy{0AJriI?j`K?`LX$*{PfQJVVU_KdYk_{H9W?< z_PO@vem?NKvwnYu_}#7>&I-Rf?1yTK{!K_14MNjJRcZ=Vh zH{>hhcc(@>@ViG2`ED0scC)X~dkbmk+2ak^_}!h6bHeXtzfw|~t4j#K`*1 z#XsP8E3QAcIc|aW8%iD%H$2V{h?5=+UNeOM=Nt38?O9@e|1QBd66k7g}|k9R!>*l(Y&vtnJoFSW<| z=InVt-Rp_1NOQ#oboP2W-}A3BzAU(SM0qdbXBp9f!R>E88UPnwY3RO>Gzthei*(Y{ z$D|I+E+dV$6BMO(DWT;^b=o47z1jCu2+w7)hr4$qo}8pY}}2RcYFgo2$~7U;l)IF+`|0st7q1ApA+UcMooa{AkwatB^95hxl5GM9$8YffM=D#%e(BcOytM}y}OL7Ccw{K*k>+&J`8Qu zhF?B(6X#9b$axbtaNfk=@}uJhl_SH=^Cp5DS)1P@V)7SvMe@B3|Dy=!C44kzm&9;( ziF;vZ(jRRYjqCFr7~uKM7~oyOW=XjPx}>q^ZV2Ucm5%%dao9^`$`INrA!gb`4`fEi zl%>1Ue%mFYbfoOZF78k`C-&xQ){A;ex~2q!?($$7XW_8NNc+GO*$;E|BnSR?rUU=G zGv{s)ww8Td!})#)8=xoqMzjy28d_;jw6HYnZ{q)Vd)=5hlr*=1%dyxKU9_IH$-?LM z-iGX>>`v_O^g*oiSNnapB^Ky6!7h21Yeckh>w!pP;Q{tNwExk=PraDKGq@Ws4&@H+ z#g{Moe^f^ZS*a%~Lc7!qFkq*Yf*TpyFIsRMCc~(FZ_9#s>*i*0_p3Y(oSW%wo z2Qu;K+>}jtq|EE|+60d;I6Py=<;O~P{22TbVU8+JohP9}*aD+n?TdPWWxg(g_3y}3 z;fYssmdz~>`=0&`dnv<{P`0#mRiQCc0_)_JPlgd! zmcy0hjx5>>-pHNPJ&A4Jy0hQ7XrsgC^f!|qJ)U*liU{LY{r@$6_zvPe|8OYG3a`;& zQ~IXl$Tt11)B5$*^x<9fjon}Z?Lm%zj*R&u*x-@0Q5&v39#6#%Bcbem@?P`c)CXR9 z@csu5xf6%p|8GX(n$KqJ5Z>+=jFF!8q{Kcu@#)5@WfYqKEsuGi0?BzzN)G2 z)Yz#v8L$3~{UXvQncD~z^fdyIBvAEB3A;H$(^*Bux79yrD|)sr|>c+|(-#PuY` zl1|mV~|2P0}1XB1rwkGy$ZY1OC)?tGv#{UgQQrfkoo&d;uVaNGlXz>(cU z+%<-;YMeVNcBNrdh3MLjHI{7x+3X3KLY|M2rZ8}dTrshWU2#P*>~R}S{{ibF&o{ko zN*nm^SAWcZ;4#YZJ@COLU;ae<{P%+oJy7cDG&FU9kys6OU6c_OtF+Sj|K}1{Vj^un zleXW+zXZ1{_DR~_AYO@K1YD%O&4?*`k@_aMI}L3EuWX~NQIu0@9Pva}9H)MpA9k7F ztI0dTZNzT7(RlUG7LQ~`8|^=b?~i!8!J8=+L3g_%8}~Likhx`KiOM?RoCN)rKpID}ih3 zsFKOwx+3xN`>sm5{QlStlYVkl=gS+fa$i0*_1eo9rCxXW=c)ZJ|6aHLyr;)4;`*HH zduiaZB}~11MZ!IoU)kaQ%SU#2@bW_=OD2Clal<4#-eKZ>JFPk1%f$OFS9833iFe=S zg>yI;mTM1J!lO%bGdb_K0GyGHbC&1s#%3g;qH%7E6+eY6qXb*$7D7eJ;K!(w2Xa>(Uh5D z2`0VE;Gw(WAzSv9U3&JiZ)mT79@+P>CHtO%|DT2b@Aq_$eFpyj9NBja+4ppmYt+w5 zT%(S|*OGmQ;OmF}L1f>#*6q}?&wF;VPjc`3UB8mt(;m7X!LwbwC)zU=RY6l`yn@U~ zMs{dlsng!+joi{cHq*Xfub*@~b3P{4__^8_vIoLtaYg$xlf?$IIFbG;d9Sqojj|<1 zxJDTdyGE^N58sm$3tqk3oq#OPkQ_x8r=B2-QzeTf&#g3eBa3w&-Zpp^xjw4euw?OI zTFFx{9Gt%630G3tyX}qbzreOV zz;i+eW4kM%I5iS})_1*Q7avp_2R-d7DzSajurFqzpRteMm%WfmSeNxIeDNN9b5AVz zZ}tSlvybeD8z&U}x4nNqr%QfnAy*Dq4~0DoQ@ejqH>1Y~J7@UP$ESYG8KC*xcX2n2 zh?qhnGA08XE5~aboQVyYZx}KE*ZAf1&m=GP6D^~oj9b$@F-5&!dOUgGD~pqbWA@GV z^OED*^NgKW-c9q98=y@V--jZ@hD@)B=}Q{^?r$Y~r@Imj+C}@S z4VUrdq65K~A4SI1EN7kXMGo9hhu?KA-{lYaF83h&z`wXF3O?|{57F>N4Ezzxn6hp8 zmmbeT@aVt<<$S*Z;NO64a0r`UXJZ~=JaGHV_2(?Qoo68xG<1cO*Z&_2k#EJsqHDi~jl#M5RFc?`L1h4e75k`4u z{N%^3YUn$SF;xxN2#-*g!;~{IBBczRlg2}Y6K29M`F;q0aj+z!JlI=(p=-s1d=rMb z8MX&u`L3`l750)44kmuY_t63G+wq2E`KoTboBU|H|b{+J<+B|EnAzb)S@x$kwyY#o1*?}51&84s-D zVk~$NoZ!$|E8tJ4z2zqoza(%4W<;kvL*OgM1z#66?ewkA0z?k!WgR7y3uTfz*%W#@( z_A40^uXABH!gsET2On7FZeQkhRZq(@+(iMtd5aD{kY#v_D)k&?l>G(XJK%}4#Mho) z`vb1>eCq9I?YjSJPx%6ySQRw{+qm4JzVm1fHY>fyk*;I zvt9Tt_xAx$6nUmGxau|s+$W8}R~RW}h0yHJ9;56^w^6p(h%TzZ?=+q<_>i~8_nXWZ z+?(-E@?6H?T^UDH@Ar=)lRv{2-%lNcU!!{UG>mEe(a}?(ePy(29lx4&P zKI3_+J1Hj7lh{jqE*fSTZ34CW{zX(@ugewFll%S@U*jQ9D)sDE(TL9@zfDQyn79ou zEQ!oAvARp!WL3_JoApBf*~Y;P+H5~z(%hW`>5R*_Q=TkzhGc_e=O@rzv=^3@FkX>+ zRjXazSm~Gj_$oeumOU98W^m|_2fAm!RnTwHTZR2DjDhyhKO_B(;jRMH$AzQsT|0FIRHC%loJ8DI>f++SNHw3ugLH zn3r!r4hs(?`a;*Df9L%$GF(2=NZy$v1uuU%dTJQ@YAAZ^X7tw(?3kO%(PyR&vlrQ+ zeJ*cvwVQ1${Dk_IMwV30YS+wn`S9Nu@Y>&<8KRN$PyZm8_a9(~)D*fF{;5Yue`@Z$ zDSzl^&ZQ%Bu_?^CyBfkt*UjPnm9e)sMr}87w@bj?zSOn$uyD7z3wL|xO`KigR4HDNd$6+$jBk7h^pQia7*+CrpA>7Gu=P>dRg&Xr%-=LJS8+0| z?W5Q}@~7+UT(9q)_q}QUzj$2Z{>ztMn94k!IX9P}GOTl8Z9ir-b^-_QD`Rbk#r?K$ zaXW)KXJKvsp8dz-wR@mbqPJ7o5>G6O4E*0kKc0dD`8mM&sbR7 z%Z;k7-CV+&HvP((p5&PNUl=X1wpXJU@pJoE8t??|EUfKu*jab9wzK1URSxx8Cfid{FdP<%?YgCz7+hFmT7}(3hu(rWf6Gm?RYJA?vykYGv ztnJYESYdPr7F$@`@XI2%H+Em|Z-=n9iL;owp1@*XRcXA1wGGyuna|2FtZndxl+V63 z)RDR*Mq-BKxAwJy zf0fa1Txz;EzXis%@R*%=+mo?ply>lHu&VpGs%o##uBs!=oeyom9x$ftidvlfF@1bD zxMC}@^Hsmgw}-HpwGJr-yT!yJe_DJS(O-2iF|O$w!nigu*j?UU%3Mx zF877-t?A>!h~3Ax=R6VHcP$6A`e`t$OTf3LJ$C-WSM?bA#Zh4wHz85bp~x){fk?VVYn0AS33k`H$od8tYsF_S&Eg({zS> zEbsa1&n1KV|D|u~z#-6BZItMs^%BZw)3u=gk6NXx6X*JyV1tQ1qNkZRb(}N+tT@WE zle~A4*X}hfF|J>K%UD#0eXDrRdd?kST!BdGZr^-$@87Ll_x@*~>GB zebR-x*mF{7?M0c*9+cUUGY1r5yA+tV3+1Ox!pmO(f2uFLyalNl^xxiKm)Z4^y(oDx zmvQx}@Uyp|n}whKy+(uM1dOC_z+)b4$}xNo$IAXD?Hi7j&6wl_tn6?s>_PC36Q5VQ zpP&#vB)tujzMCp9;e!8BScYKXDJzX98djnE2AH>lZdjJ-#jQ2e8Rw z0%QJ{ISyBJ*+*_Lru9r+_PUy}NwyF!gm2xg1^(INr^vspmH&F$$jqPhE6P7ee;&g> z=50%7C`ALlt_!B}L$P)in=<%f5|%YQn0OZJ`)r~9@B zW07=3Q{QL(^7!L9J52wf`o7leI&ivM>-#6g;_h5M(A8~8Zn$jtoA-UnFHG(`sOx|* zJ-mNoFs}}qU?=)twoSM$KJu=y=r8EeG{cyZQvGbQQx|(>CyWc(g%!vb!_WB3 z&G@_q8>to>Nbx>NcbR39-MFeExHg#Ls`}4JW39>tFXw$9`|1ngb~_iFC7JqIc2bPj z!jz_dyRljJV6*u9gkee-o(@yGW5q7)-|Mhzvf#G^)a5AUlx-Dm$2MSd`mtl9kV{_d zSl3suV_Vo;*ch@ecazQ@Y*&p->#qhU8lATnd)>q*rM#`bkPyJiqPAffhh44-@;W6^)&lsReHnN@G4@ggEs-(F(70E948s3;=(82$+ z;I-f8%miUkCr+F8h3Xzny}MIy8;`mza}?9?ovV#|Ve9`a0{*b<)Gui3Qx-gX9AksSoz5VzQyRmkpC+qcOyF6{-Cl_KPk6|6(sj!nP@v-{4 z7o}!1PpNvT4ws=jOYm>?zJq&r^w)@xes~l6_fzt#M=xJZen)9%;F}O$ z^0?GO@7UB+;U!m+M_R@=id@LLTGCSAtYiG9em3E~P~RT_52)^eUd?si&^=UlA9dHi zvOdlK>M}$BIHx4(C&DpSKhn89^v&0>iI35TTH3|k0vo_WpUE7D?2X442A`Qs+!Jhk z^rLAz&kou6rG%4>FMCAwZ%6&Jsk_E|+2MG{jlpY1K^s4H43{T=Obf{qjs5V!ch{KNCSI~|WyWyckL}+G8*q%h&r!@R|X?3tq!m=Y+a0w(6>J)r-{8 z>;?l zM`!)Dey%mX)|gstsJ5G9UgAlvQ}Ez=+6y^yLixknE4-a{Qr=~hQ|-2ddr0neJLNb~ z7?H8R3SmSpW`DZISJAAY8ERov){Wwwao}ihB4_CtSr~&ZurVBOZo;TcX)zA`$tm)8 zjswm7Ukl~0{qc3!1j>W?yd?eW{Za_?G2bx`OtbK;Ta*)7*HlhDpQN0p8<$L^+{(Ae z#?f}YvYd;P?vmd$Zl$irb%c-NB_|(HK z{Uje)P&U&m(26~Z8Z&P|H>sXmh%a4HL_5mfvhk%gUY^xI6y_jdXjqStg(!z&z1N3a&hn4Vu?!&5Heq#Ag=fi3*z6SHahx{wxviEq8aa9i- zj_mp-a!dG!%eAi^*;R->vexwE4wqk!f5VY|CdMKEoxZpnpSxITJYt4v6ZZ&dXbi70 zy5ee_{-_oIQT~Caof|%eKU+-gNdww~*Vv{>uFmIuf!5bv5R*Img1B58k9s)YziEE& z!1qqM%aCI^$lvDg$$U@EEtHQSgLQMPNf%B}4Sto0_^rH=(Pf6q*TSy%^%B12)YSZU z^HWW{LTi1p%b=yL zn2a6?hp9;xi*}u{U6PPosKnIw9!K;xcJg=i1ZapJ^ z)ULKZDCb|uFBsQCA3S`D{GIy1w0WOs)!?UPJQHG6<&_$7+|hNa~=iEwVbto zbvkF;S^m`k+_TVl%(Q)*aL$Bpc8BFpuEp+E ze(58EdGX}eqCd?(({jUqKMdx53w^D&Y^{H&P0wGsy9DxY59SrhJ^-6#Njr;wvzy9& zmi!CO+a1A>?nDmMH}P(}7V`B%OAbsp0S_wv|5y%C{?R9v|8#QT0PQb2R$FvjEt@qY z2fiZTVsp?Qw=r&2`=3accITOI69f62k1>w?v_{VVjMkD^xGtXohXZb-B;{-;C?> zBi^Tm;kr!b8(141f*a2a*G21cLbxtTvGvrcrwd=Q{JpK=x=^1Q3#UbE$t)a}wXFLz z*OvK_t>c~lg_~l%YwqC$To>};|H~$woVYHeq7b&`mgfoKXXwRnBkjoUAmh8n{iz_n*W<|UE1@mwNfvW|M|dm zxqj=J;kvAUKj*A)UH*J67$B|Sx=iSIBCg90!m?)ZnwlQQ!lfHs+n4QhZC~EQz5R!T zh1bp+*X2(e&kwH47Au`B`li;@M8jjOC$HMl-B+F_+Zw;E*4}Pm4ZhX`>Ul2zKchaX z)AoOZ7LNS|KNBxGa9w`FyN&CzSz)iY`g4}ixKLsHG_R#xz`GOIWuD%JgF+u);z?#~b_Y0c<6>&TP2j-5X|HLlBIm5ut8e`Yk5_or5Q(@%rz5~+GnpC9N>eQGRR zm)lf+2d>Mv^zOiQxmDre|HEBa7lwH>Bh;CZcChs27XnRQ62_$77td&PC> zdGU>38P{di=fe>d*EC-uT$gV!o(RWi`Aqb) za9w()H^(g?ZcpNLByM<|J;X@|*F|~HO=}rv2ywiv#QCEYXFUJ^Ua?@dtjjqgESS=N z5iA%lZPywWOwxJAf?54{gavb%n|@(o!K`)h{7-}h^ZeIXFkcx9COf|w3#NW_>sT=3 zhcsisc;|;?$h3+5jqU zDPt`}I2O!nr@?~x94wggg#(j;ALLwcV0xVb2j&I~2PVLNGxoZk76;~jaA3}*ULS!0 zQyPW=vm2Z5t75<`IZqfcQ^_+Nci`6p&kT0}444jv@LSFj1E%`lj1Fzw#?Y@ZVE*wj zV1}{I2*3YX$-EfWYW*|Fye}-7cRui6{+?vs!I;>&Wt7F^1_UkPiC zF69g_(5SD=a>o=c0lTG^{mc43w0&uEe*2lpCG5Mba6O(J@RTNN&f|ZOIr3rst+8J& zrOnfg^bh1yboyqmHF+Vi;t$}%{US=k}%mr$H-wV^oMtT@{uTaUwfy)(jodAvhQ?3YJ*|65_dd|!E?KQ#|`D(sg6 z!fF04lKa_UzqopauwOP@a{jPiawv<9{qiH8HD~)Z_DlPQV~_nm_Rc>p$|_&{&&+@f zGk_u{3I+pgB~rPS`J-P9U}|c#DcikU-2l-(+>wf;rlJIlKfB6&h@MS&Doc|){IxREo?`6FX z{Fh9P|5CtSJLEU}6wZ$Qk_r1Ivt9N}(*Jgy{SqNOptEGZJVAKD*e_#XzYJ$zU3=^o zFW>ptFPZJIUoutpO9bnVPlx?7{|wnLA79-u`{kM!l;wYCZGx;RZ?)eX_RH72Z?i9y zwF&zEL1Dj~Sa4?Sms2>Zno(LVbnhq_o|V82AP!+tRv*e~plY<`D$vOltU z1K)STei_VOz`?Lz2E%?C9Jrn~82cr!4g1B}hW&Cm;RfF~)0+Jv+!tAotgc1oyhqtj zDf}0m{jv}}M))sJY5&RoywhdAtZbM0;=Et>MRphS<^LV@GhafnB}|faEs<~>IWw&l z_knsK=eA8-oVhn0jz%!gOk?!F>4;+s(R|*36e(M&`?l%xSQHLuJ0mJ^LD7XWhKMx1&Ag%M$8p z%l@?h=8SP~hZ?@deEBed`6B<-!gmT}zI>=LUs}cU1w%aLzMXh>w#N8Y;w|CYTbM5e zt@d{4%$Je4+ht(Bc-pS%?ob98*VN}Tc1<@$c|-~^=GC=kn$a&_ncUZVDI`icz+Ps_z`>OVz>?@Y@$WMp$A~HbYU4cz8 zFy68+HFJ2LwwHJs`-f*G=;@F>2wh>l{QbaphxKxZw91}hBXe!~{|f5`ohB1Vx+S$F!Zm#*k2Z}#`IUJlV_R*b|CD$9j6 z^(pJR-`7|#fjVmwI;)TM!ruQb=&VN0%VG2kHJ#&jL9U3LaxyA(wE*)E@= z`v}|RFjpVjC9^Ht1r~`OS9huRv0I62i{8-%wu`j&Vk6rH)_|~G{)9h?eF%%B#w%k{o6rW@HVtP^RE?Xvww ze_rTZ7M<;~lDr9IyG#kjcENvrY^MA1iN<#M6@CcYMfm4BALa(quQNc-gzX|s7oG2- zvt5J@BAkzd=q4)D1>MESbUA>o62|%Tau&Uu8819K;b)u<(?!mXdLsz`qz%&rIn)u$ zMR*|BQ+7HBy+W5m02LWMdpj%XB~^^S%2ZGm)W<2-BR3!u_JSgzayS97F^HO zC)YY>x447{0tYb|yJZz?Yh^qq?3PTqM}~EU-SSii;Ty+uDktS7U--gqN!HjX8%3V7 zXMWvtU1PVblKxeXr`Fd7i)Ux!xqFGXgj)*-MaGeN7XNro*ewm0`|{vL;`a&T?8E5W zt;gB}JZ9E4>wSz-CJMV{+&mw<#V8X8Tf+VEQVPwZ=ALkr4kF~~Ui*2rqv&VR5; z26N6+iTT}0*}`ej*&%m+R1cr59-dcy$<6$d2RvJH0bH*i!1YRjSEh4BI%Bjv1y@8k zt$uckkI~YW-O`%TvW@lPDx(FRy%nPc+1ehPMaK2x7(cbgX1SF76h6y#@-&mQ3rj`P zZ)CDaUg-I)^H^Y1m$YKC81h{F5L?G38e?H4|LJqI-!zM5o5o^s2C`VRJTo#_GRP~@ z`-XPFKpD@T14UTpTvrH#<-dG#H5h|smB=yVr7&1BHJR2G2Fvme!Z*rwmBCW(?^lv9 z@X4WTG+8z7S3ddL8G~gN+{u=B%003ySUfwE>v!r5mWO@e%KX2P!P1c8^E;FHwPHqO zwJ-y8_CkkpvaOx2pU3e)Aj3rDWNQY?Uo`eYFvf(D&HT;T>0nXZ+cw^v+3B7p9b)I~ zfW2~>`4{D>EAzJ43;paB$-~y{l~aT*eT~>UJ7TYhY?zL0QF%?8Y!Lp6TcsmgZIdcX3@GYEYrZHFA+JC#7xk5R?cp2Oc%$15s zFfizEzbWR5BiEbrbLrm=%$3@+w$I0S9Mk;Fl3gluMe1y8=898m_ifoCQLUIO-(0(g zK~m5*-kr7kDAIAZtQBFriQ7 zfcD6h{MK13Z}Dtot-Q{&8~a?L##-4S{~K5<+g0~|*2ZY>>NxpiS|lU4cE1n=sQ%El~H`4z15Q&>MzxA4Jh>J~2M_ls-P^F*F; zo)K$h;Sb<)1Yxa2UDTGfazAc^u~sa&JsZ|a*>l~)S}D=|IaAiky_b*|2G&Z3l&OKW zaxKp~Yo%D+8dxhs#qD4}YvppDjjWYR<=Mbm8N_o}St}2bE@7?w^ml{_Yh}re9kW(O zO59+r{A8b>wUVyI*U<@Ur7Dbcz*;eD>Css$U-RC`S~(%l2G+`#@*Va639i9dD?d@w z5L1<*rlC*OzmbN{SS$5*W#ci`|cl;L)3q}_g=$!7No-;uRq zUUT2#k(-^f>lj-}TiSUdtIMpF8<|@b)=C*?&JQ&y%kw5E)rk&ehQd4xb?KB<*|o zf96PX6lZ=y!)lm7l)s#H$DGS@Wc?5cLzq=w{1CaIIHx3-bOqygVFW7D=Cmz*$9N!32mdjc1HRmfs@>bng z*+@AivOl|q^w=Cqxjg5xZ%D?paxc8qJeY?`aJwb1Zpc{r#34BDa%QKDX&t=JyIeVy zf8kA)gZMsO3HOYQzTt$2IwF3^^<(_V$K3+_aX4U$XSnbqqAJ}Kq52{Jl( zT|Xsf)>UQIMT4BxoC`6-gFi*1oYnsx+24NuD9-#dDYe#9S$jF}u6P^gF$^@BTAt;6 zhUBAj_r4}=p|3Kep+G6$H_=~4qr*AZu9q^T^gX4zi8D*Ra6+aLj-0tV4%&9L&_T%Pwu*RdY(ovQXSC+=cCq|!F>|!3fgtD#cshoP`Q|A4Nr(Q-sfm1_08d}%Wc}n(hN_~>O z>vC>n8n%IO&Y6^ZIYUX}DD@+s`)O4_suVV?lQmP*9#Wcrz96Jr>Qn<~c}$KPl{)1r zSaamB)YbaWkY5@vrBLqAmX|`BJcK)fG`TrP(wNqVXm{ar=Pq-Y3jQaxwC|HiT+O}i zPDp|~?;!4vkfuh?pIu7ZNu8BA5e8TBAxY2W8= z*~gSp@axo^3}nXkwKbO9_YzGphpHqVC!CL(nw^j4(pD6m5A|m2ZylX{`y=UNG#=I3 zH(Gz|?Bv@F!?)Jj*5BrJ^6ll?w`BqDybC$wCdD%SW5I+K$ftGJ>#P`4rSu04oWnVgbpQYa*M~HIMXE;Zr#) zdxzt-xW$}Rz9vMuS^n>4M$G0HX5Y6tkP$P-GQj?1(G{D&vV>L1Iey3InPQGIMx1AH zR?jpi*k_JbHvg8h(50{4!CC8TlnB>BCDJ8)ffioENayCS_|3G$jAhK(`z!Pw?(O(f zeVp^MNzW1C_)31fO1?_^a!sMdXUT}!e0-iYe&+UJuIFdZ+#JY=Io))1z)RSCU|#?D z9@{T;Jw5x*&95q_NVL zUU61WHHX=s;mm1Yo<_no@8QWHkEEadHGV!!UKOK{t}sOv+YF4D(Q_l>4?N&p_RRZJ zH~*SATotMe5qWZy^7|X*^UUlyn@BSg$#w(=H}%OLNtQIh$jx zF|Im`vpIfen(IRHDFj{he-lEoL%B9Ygk)Q|rko#=-N+g9ayE^eY1@Ne7{6ZpW=<^K z@Z-Fgl6xohDY?(Sef@7H#g;TrGMCIuxUyt)(CBcef<^zk^MX{T{!`i=WDVaPgY#XBR)4 zy=U=r*#(PMX7Av4kYBIGE3;GOJVny{%A(cT`}kQFuZF+>Z1yxct6{oRV{pgblN?tnHjm$krSYw$ytxd)KBCy}`|nm^m*vjP&=(x*Ygk z=KkYkZcr8sIDeOuCF|K_sGh|l&tBD8C2WJi#BD* zG4x5!g`XkkQ?ia$mER8b-5o~n4WCu|==vjb_x`7;kL#^yW%uvdH}e_yy?QIVO}$DI z#6~3VtO~9>5yKlfgkit77pXHTl`CGIzgYFPk zOM%8~DHzCkZ7^F>-rc8iTRwu@k_W$Kzshe3u@xwxwj^}KOe^Py!w}3<6r1?Z82Vq6 z1%oY^vHq#$pLsVervI(Oj#3E=)}gatC{OZWBleBv=Y$c9t?m}CG9S>G62UkzlDZH@ zo#;v3=tUigW}Mi&^3+0XJy$SBJYU(U+B$!PErGFo?Eq{EjPI5VP=+*N+bYCPi_X|hoBOI}z9c4UcJ)W-G^psHN26JS_25S=M064JeMwm7zA<71C zX;`Hld`@}ZIaVs-IKbGWrI!F`3~pYxO>DKCL_$2o57 zmxko#s1Rcolmu(|@5fH50$; zh5eeEkm9NBhiQ`ouBHbII3p_YS;K*;MxV z+`XCP(@FA4#^9{6*|V%?j7#EPiZ0PiSnFtab)>o8(!Z(!-S`#UFX`FGb@FX%rF$^; zAIfW%)Diwq6~D;WW7t`mF3PNww0w1uvn3Bqtoadc&KyhM+Mjtdmn~7_KX31}G0LWC z-i&3^&a9U$eL~{8f^*Zum8M5yc%EoeHWq$8Z?6@1d7Pzmo)+ij_C7AjQ;DlTo_*DL zK8~9w?J=&C6T>RMqHZ)Y4Vc}vB8H|oq~1TNS*$Y^c`J2vJ#u9XZ2BUj^y*z zme|@^=y1sc3llP#TgZ5~ ze%{;kOASSLpLAlQPa4m;%teDwzJ>pcUp?FC2c+#aUaD+#Q-8#Mo*TKulYc4gU2Ff+ z?w6RY*wHhWS+U6~^T(dZzl3wb$CcSUNU5rwGwWYPYw>5Xo;to006hpdf%8XZ$XHv#>uhB-#l>LQD z&N15iCdSKFY$99D)?%rn4>_>cVJ9+{XVnpJ&a>p7#8dZI@?#PCdW^K4$oA#Iwp-h# z|4quNy|h2oChdKKru~UFX~&(G_B_VBdS3ntcYh|HlFo3kxltGGoRh9l2St}h-vME8;$(KNP#U*zBl#(Q>}!t(KmyTvKFm9rfUCY;AY%x_kIL*xEi# zdMEB}Y;97HmT-1NPwKzey+5VSdQInfSR;_ri+4v%aV}-fjDU7=PfI5&h4GU($D(T1G#p@(P#57DoU)!LAA{tYK6C$$ar(b~`=`pOg7 zfa}LGCpS^4miBbQ(4KCiJ>_+wJ>_fdX+TSRil;pdsOm`_D6|Y{X-~J&p2Y0~E$zwY zE>v@;x2M0+p7Nl!>{_;#V5DVF5Y5vN54=mb7F4ttB7%f z%;z1wXhodNC(Hh`EBIcSRdmuPx0O?UwE8N#%L%WtT+U>YzOXOnAj!IkFL+l+{Ze&c z@RddR_=~MEq z!eZY27Vjd6LtTowyq5cLxqrn}zLR?y*E2u9T-tRVSJBV@&Q)}C;TMXZZ)$#)nU#&_ z^S`{8KGvx{OJ6D98_$4Jzok6>B;O)G9I}1_zh2b*%Hvu5sF3%}cit-RNzZd~#oZq? zcg$ODtRqj>^Q^k(xq^IIEC2J|c&=WHW%tRudoV@_V~k*Bj1bNk!NwTDUU}*jb9n~w z6dl0I8V5IXj!hN|dW{)<%vALiV}seu+l={vv$Ca*nBqMR=%e|Z=_q570?tpDeCkh` z-NxGGY5b=%Agvd*{%%#vcm1k<%y*J6x_jmgo4wwUN-whfDECyDA%7d(G;9{O4=K}G zq(x;$TH{@!uN=jl=)+I*{%9KCmRc%hJRxpNcqbgN7;(!u;VAFL?UUj*(a(&eo-r=* zedk7Zsv9*bHFcg6FY~wa87t(nhP{||*}3csfB_}+v4OP*3h~C)Fkv5a6;IjXT-RGHu0%_Srx96l zh&Hg*Z1WuA{z8+@R!LZmGA?{z-m*iCr*CIp!Mo;g*FoyCopg`DpG@Q;X^uXq`0@!k zS^ir~lxsO@&tNuW%YzX#&qn$hiD^SQ)KZv@^X-g^%|_Ln9jY; z9_{*!e3iPzIpJb!-!q816K%1%o;TZEgG^zrzuIgr&L*!Ng#CUHW2_>6%z>%(rN!idwLKM3!xje~2dx<}c2F;ylwE|(Tg)(#f7MF= zK`Rt<@qA>8jKMymtc!?;Tm#E7RrTkFLH;@rXO}Xs#UJ_hcD|E3G7BDnwD~mYCsUl2 zR+IFN)Jg5E_OYzXNuzzq+MxxaOLEUz8BelLuiP`9F-)o{!gV9%=wjZ|%Kdt-V=cDY zN00$>?ydsoak_TzFfboQ7D^nXkLk~KxxzX%WR;8whkUIp|1X}uK+cI={~^x~?7XMu zj6;@>MW)|?Y#)P+AI(^CR3$QB9Vd!^k2i-6J52h<&@QE&NV|0L`(V3n{U`UIs%xuCr)y)rY;CNU zEv(6!2iv|c=DRZfdw9N5zJcFcJb%jhu=U8QT*Au3Ht~DnT9;xfcc1e0vntO~OSkl; z@?3|UQ1t=cAI6>JQ90Ms<~hz$n&&6`c#fG|r61fkT4^ptPHrt7TDjE{+qBg?g!QuL zHEk`ug6BRwU&eE9)JSYo!?B$eD9!iIi-~_1o5+{4c8<8bMO-+SL|v!!HTP1cV&ifb zFm}bZ<-QNQ!UXzTFLS@FGyIr3TxVFT{u~MAn`);a9zR)O7Rk`~>&ZqUYRKyFa(E9?;#`W!Dz6_Qm}be$cKOSIgO}=pob%H~K*1S890U8rS*8#l>M7 z$I};&!g)si)50N5 zjdm%U@NpkMPZ~)JV}cpAv`=Kx9_>H7`=BoziTjC#j5|XN97n&MKaVUh z!Ezinzk03N**sBEu5>qfH=-LIX$+$dTa+V*q|LlNa>P#lyTKH0Tgp}R6tNrhB~O+G zvK-ShsvF^;>|orTByzch<#=a;!F6ioulF(P z*07A~2K?HGU&Lp|e&X{HZTrCUA?43xS$0dh9E=%+VUF!@LOgni*Bf2w%?%kL@s_sU zNP9@7J*Z4io#BYTx#(QAw8Q$<&SsGhZrZgfFL?KqC1m&hWg+DUu=5|x4Jogq9QOU* zS^Wfg)rR4S|6{IGuI!~V9B1-ff#JKY&gvc;VK`otQT=6N26BmTkPAzm|8-n%^2SXV zjkxEm(I*s>^JS6uc5Hfi(w1{aj*va(W5{1ApBO_vGk#I`g9}q7zY8o!Vb(|SO->J6ufBZO!g3_NJBKP)zRUYI92gmcn8Rx; z7Mgb-Al|B!mf*f`a_ty~jn6XUQY>MTbY z7ue|Y$DzBiKFz~AGju&0%mSMylY1HWTA33ViyP(!L?3XCLkGY>J1)&ICXn%?_+2bv zQ6I&B$vctbfnjWCepwG=68G(e;X7OX&IGYDB~g#lsK=EIv zM8)PYUpDSU8@3_#i{ieSdk2~9AoNV?n$Y@X1G|rHh&@4c(doj`l=@AXt|y=W2#c#V zKOx35iFr@8j_fnme)(EKC5mwdKI*j&Zv`w_E>Hs4j5o{GJ&Tv*wn3+9uj z(r-)pS1z2`R6(9yMctHqK87A8%!a`58np0)+38~=Mpo4m<|ire9ni-oNVpoiFAcrv z<6-jNRy9Aobi=~v?dv<@b;`QAT;_CYSSOTAnQdc#s!iLUDr@8AJo3ZH*!`R%zdCf= zHIr%EumQ4}yS<5h?AZnHvLBz{$PXr$WPMOj;^Ur7$zHU%zC`xvv#-Bo^1zkZi$dpL zL!M~59P957dvipuR>$|!rUICXWfwHJPb7XCKsrW!tFAmML?Yawk-4WBS2{N$&#@J->K?Q4RB zkGnLjJ=r0;jbO01;cZxkJpy&fNBg_N&F zK8p^i>d-ODh$SLtE$GtdT>BU&??;FHDf$6+>pt&arwkMQWZ89$(X{cB<2vkF=x%Ow zw;q;B@DV%L1C4ydi?2au&~N%|qnXT|$9T5GuQTcwca!I$Uu2<+$e6Dl`QISvq7EFS z4m6UkD$;d`bYa6%(^W~j8cA0w>EYdoz%*S;nnbs8&vrJ)%$jvl;%_GII_EF~&f()> zTKOP*u8Gn(g``{6E7tw2avbur=v3z3GGPT`hszZi45w0O^ktEb@zjGzY#0~wOEg7z zk}tdQ#KMb|oG$Xy1`DHg(Nm7Qg*Ed7`i~1fm{KDAG~sUTFx6c98hs5sv}|}=H^JMY zpScq*+SCrYXb;lYyh>lQfxc!NV~mSalub_}?^t9p)J>hOOV3dCQ_jA)BN&fSO)ol` zq<05M~`3_`$MReGI1=h(4A2C*oYka5;kKl`$+N` zGp)ogkwp!R`9!W1J?oPztgBEtkZH&gy*yH=i^1w&0ekE8`qu&XP30S*!`v+_o)q*J zsee-Mgz@$&b?<57D|L?Yx{0zv&q1f5{-M{X{2}2LiC*)+T3KXJ7VG;cn?#=f2|Z4& zKiCQN_*$q-!Qz_*L$!kP^{7!Pyj5$}+RGG?GW z1N({<&Au{~@$t`yhg^TkwM7pLGPb%H-A{DEdg_SuXXugY*h+N46yhOctB>i6T#TJ$ ze6{^%-`Hn`$>y2Fec;%~gIkz;+8C=f5A0{uHI>bY{0+>D?W~QPkG)-Va1(j4AGgfS z?7^?vV&Y&m*go?6On9ePOMxK%H|!<5N7t^CZReC4;5@>_L%$K}`A_*LyokxvKd1EqgedBTiU zTlJ?4ef=qWWn21E(QR}cVOj+|;g}5UH+_r69%EIkHnD3JPV-*LSiBW4Rkvg4ywtV- z=N)qU3*I5v3)-}W51M>!L2MJxl1CzI(~yTMFO|A23}C6dENtnck4Z14FIIV}LE7qq zLH_zF^7Cj+*|j<^^~XhRd8y;@H&8!WfQ?1hPmF#Xu$Nss5WOFeAhr7oil_}Xp| zj-xh)GI33mxl&k(GR|1RoR)=l8_xXSSc`8Al}S0v7(+OY4I_R1OfWuTAeU;6aBJCMH;&;X{IpHJ@DqcCzaYyWezM$??_CN1HmTeA?SeJv<1zZjQiri)t2+w&C^G zw$vS;O-vPIN8Ofge@o^ zds0EPbHfG1OLQXa-#4*#GkcV#E9vo^%CqS0x{c^pJokDZ{T=sWI}(neupuQqJC51`forDEwv;`IXUmKA*#(-;vykU0+I*$V zQ|7bRJ(qIIqt3{>Yb$%21M|Q}pJgNMsn}(bC=-##H+H}gG}@+Ch+O%#Pp;^;scFph zQTKdxrHg#PVpG&Oyc%T zs>brGY;%@NceDH=Jr)1q&Dqv&cu^|5cM^XF)XN~O&MxLR_4^)g&ez0S+N9J=$uGT+l{UHXEao&O2hQAe zeujB|)=RAXvU5J-fn%%?~Y@DU%9EB>(eLFG{{=Gn+cT)?yVtMU=K z&XfNQe8kzRdp{rXUiE)JAMvN^|9(DV3C|LKZ?4_JN8G*sH2H`L*PRg`@#_GTvK091>@+9aA&2giy!_!-NQ$`Q1eH^WPM0n zIQ7m;n7fjlDpRaX#_q&rR}c1z@}Jx<;s0Z#N78g@fAS($Yon~yZazwxvW8b}v&@Nn z!L!asOcA%NmskH|J^Ux)cChx$Ue`lB8~KO_Y%^AS(>!yV}v@U}m`$K@UIb;vq?iKn`*|0n9Yeu-C|y1u_p z)g(y=>3LDExKr2llb%0H{4Kaw*Y)>rdQP4Ve8k_0d+PrLt`hGW;w@`&)ppN)w3>#P zs^-Tf4SlM5l7??BA8|%Tm-&dH%&Yz*_=xv(7ay_Lb?1za_}A|UAF)*0LJ&S81JiEh zBUYaSK4RfFz(;)i17w57M|8+NbIXdtT0S_AGSA(3(EMEG!FFglr#TSq0``O@~p%dwB#e=**%DyL^qgX@xynyy8``Yw(Nz74y&sO}Nt@u4# zF{J83{df9LmX#qZgQ-?J6}fgIWI*^0rLksrdvE&JS?Bb?knvmZ-Xxd#~2 zubF)h9NF*Lio&z~o~`&j&$g>P+m6_ZfB%H>32Vi_XDfbp*oqSJ0GGl^$s zY{jSXr>ktm8#2#~t?171u@%d;I2)OV{y6*Cisz|$+c8^l7XEx2*oqGJ9dBiQR6gta zgRvFsS=TS~ZtG5yt+)<*j4?j<|~1 zZPFf`t2nYv+Jkcyufkm*SJA`%8U=fZ?9Vt8uA-d(q;nM?;huHuXT(*kp*@@xSFxo{ zw9ixwY!jU^6{Su5D=`&c{FpPoy1-QYgXT_eOYJcgpVr*zd_=u1tzquyn`A03YLl+u zOvTx4(iNPkcn|J6V=AuuCu1tE@w8KXmSyicxdVjH#&bT?@w~GTzl0Q}G9+DHv1nX5I%f75no})|CV@6-SBN#P6Ak z9WfPUkDSg_td#rjnTp-QR9sD7>P*FH+<(th{4O#T3k*!ff`qOz6+dij%~bpw&y2Oc zO-#kX?BOb557uDzV3in{iml$C4pVWNq>+ABx#;w9u!AXD)+-UTuhQ#5x*rsB=K3uG$x*WIo5 zGZjaRJJx**m(%M#uhI*X(OcT5(hGC3@p9O=FF32mz(r)=m_0S}^|;2zlxp_i&1hV$ zRHt<_Q*r*~7oIg!ab1ryV=C5#bU#yZiRIif6;oiyM{J$xt;yZ*DjHx&freeJunp0pj4Xv+8fUQBG@#X<_3q*+ zE?A?5k9{dw?gPVTKf90P(6?3ir^{1RS%&x}=}dkqNH}NAQ!MC^r;AZKJ0AWY0edcF=ChNKxt(dH=GtQ}i8<+8??+#D#M$#%QB_kiW zGoIoc*gl`b-%C`K8Synw#u*vG*0ba(-v963$HZ^l<~Fd4JjM48_~Ily#ULkEIy<-#(cVjHPI4hozX+eJsVnD)W+hC)`T|OR*Ir+Q?FTSYs(}MTg6k zbrj44>nz1rSX&W{rD*AXmSWI$AY7$4qJ1pI$B187S&9v;5zzTqM{Z#b2bm(=Odm^; z@i1fI49?+D;0EgaxQg{!raYa;oY)(J~7 z)4)<}_)*6!zG72rmf}y56Ya4S7Z_NIzaua9;kG^QVH;i{@Jx`B^%nzM{ zVIt+#RfghrczVMB7lz^_?mJ>&N;*0kvvvnVao&pH3`I8##c7=|6x}csx3t4hbbaJ& z1H$auNFE8Z%7Yx#8Hx?`HInw5rT^A=ryVgAGdo}?hEPu#BUT&vhd1Ew=`a+J{`l+| zinSdu6wQ>gj4OnpxN4-Yf9VRta31;QlNp^e6kQ!K6f?8@;Wr3xkbLh-_;*O%hNI@` zB117#{MORhkkNiPow3H8dblkNMgO=h7(>x)2zOP7;dVT3OD5d*7>b!4Fcc?KcLM9* zF65?B-gm@Mbalc|Twq`*CZ8rlaV}|+wpZLmhTnN8F_=&2n&fMMIGIs|* zQPq$1IKod<^>m$24L@-({KOVkdKdVKs@?)Wu|(r1mT3IM5{;i&qVW?;G=8F*b~&@7 zJ$|B-wOg(DiCX$?^mRHrF+*b~PUwJL7|2enJqPT>l^uj1$WE+12kgZ8gs=8P-!MC| zfN)hF<-(gPr&?VVx~I zQGto~VmGi8Yv8o)Y?o!&{p>{N9p0QB?S|Kio!H8zaHj0U8aQo|zO!W>mK8DXqTJ5b zA7`OA=Y9P7rr3!!)RQi<8oMFC`+1zyCrRJgvJ;gV@Q@j|biz(Nqc$1HPON~PC}Eu~ z^Uz6NcLzIBne@%F6U%6m3rT+$SdHCKM`Aq6ZSAuY^N)AVP6SZbik-NOXCpiDmptq2 z#E0cS13Phv>ekOrT%`W*XD62N9LP?b!@IoiAUkp2hvYMBXs#yxMt0&b$urLEsDPzd zv9MRu6+9c+iG$^T13NKIb?;{C-HW)kcF5FVr&X}FpxU_rNiGSAoIa7Ax zhaqtN4D7@zsY?cS;?q3q?8JA)E$iZScH#1URU#$In;O%dJzT~sxpSxp~=EQ!=j3R9I z3hre6pFGQ%bXM%$Q}{-4<|i=sT`uJ>=QNi}Si(Fd3=8hP_@QwAvErPPV3MQmnx@9=k=&8v^lE_Z?UG{$2miV6UwR+&sSzx&5ThOUwzKli5&d0ydQSPn)8(* zd8=-$l>OO>@HlEnkIkW!%X6-Yvn_d+dpSQd??LCuBopVVkykflEPdh-^LBDRyo{9{ zywAH_IhB9mO_hWAK3xg-jEuhFgvVm45V7}g7fap$g7|yUv5(#Kr^-`vOqHjo zk8tR7 z4&2=O+q_P`ebVslm`$y}E$iglhYjDZeZKX#6`g!LSNpamz}@L^7w1n=Hd+T%WJ?`L zoucG?fsFhTS=)bjS#|u6sEdipj4|V>8>X@eGJm$@dS8FA^fb7OcIM`-rTyc*UQ?y? zLk*lqKajIaV>r+5=siut?&EwH;lkYh|MWd?t+|U!d4D$C#hw2_KStbBll~UB&RjNu zGwq7XI1}wd*wF%cT>1>^Jknh9sSb>9$g9Bx#CgeY?xBX zS>xsVEd2&KLX?{(hbX%+{pap8peder1B} z-!}7;us_DXSJ~_S2xl-|${Ak23{`f^zD@b2!P2XWxzp%eQ*`kl);etEjCvRSR5ah! zL^+#(^ni2Ov7XN6Bug*XN?Z4H7YDJ|dJn$q3O&q z+0kS6BZm%H%vA@eJIB#I*f%mXl)0)N{0>?yReP0QuKUdWT@|xuZi!KbCsfS7Z%ZuK z?R z(XW!vJl~va3N5bs(wie3u>EGcJuuC$evv*@`s3m+yg65~mMt)il0FIZINY$A+lRHJ z_dav{S*26bR|EUN$SC`W^~)8r@7WSccn9Y7kMFVlLc+UqOAnr3RYJ$EQIy_`&7@1| zVSkV`OS~&S^-@+oE~E4QJGTg%QOYBhb{KE&;W~I%?2{F_Pl^UJ)i* zjQtr!srKc0Bo@R-QEX~f|d`28?>SZuP{g%xIFPA`{sRZJO;o*NN=fcm-W{i$1i zL0oPPRfhDX-rk1)f2RCaQ4c0^{{Z>3jJ;qmrtIS1b-4L$sVQbJZJ~_1F`xe&iefLL zZu~t=DKAwLJSP0FQEaZ&v-7s(;YSZ8eryf#4O4u6d}Rrx4uw?hc)%1R@AIiciej?o z8R}4KxDx$d4<-5lvgbo{Wbrr{jc<}B@3qPdSsN~Kok*RUxGl|97v^m4Yeg_&^97Z%F99{j@i9i33R;m3I~CHGG1Q*zw4 zef@7H#g;TrGM8+6ab@;<{QAALGJ6ESncOeucbwm?n|V&SvSfL}(30Z`!%J>W98oee z!I8b3-*JAoCOWbwFMcZfSBw9UePr>o*%N;8T=rhV`E$|s^{xC7e>H!;z@J+T{%pdZ z_xS1lJc~bj7C)C=uxMrW8h$(Y9psnF`Cs+T-kjBoR%gG$Zy&#c&Cg~}Q!Y%f5Qmh- ztFyEC$-Ak%OEgD&6zW`N$bdV(Bu^%qdbnP&#kfXUd$^pG*>>7!2G=A-8OyKtzERFC zGkL~VFjnC?iLwl%%=B_n%ZPecKpE-s)B`(3WcQiK(<;`L{qxJy5t=+5kr2puyw4JA ze~dPB9C`W`@^o34X(H`v;@7mrndSuh(NW6gIbD*cBNBY_bi_YEo{k8Rrz2E(A^pZ< z$c8784X2yVj^*hHcHo7b>FM56)_QM%fribD@ma;fG5A0>+la=-xgKUti^ta(*%FT%uTX7oS zf6VuZd~;*;(zvK-?nO^FJreh@=|AJfZga(1Uwt^PiM93V5(e^a%-ky5F#K>Q?~Jp~ zHN_~Lkpau78C%Jz<)3*sEhfCW0;PQWUwwP%#b#W`I44ie4}-y9%X_hP-py6!Q_eL% zaueZ*4N~PtzJHZ!6FnV%r07*EhhAyi|*G zNBqd=aMKw-vM+AFDSo6$i*rZ($Omz=q-V$c$i}~X&yN)OxB**HDQB`V|LNyP)+8r< zSNM^qs0Ur)M;_JO>CC(K_>oet{#p2ue`=HV;QYvqZPFf`A6bRFe_4KHOPlzfADN$` zl)HyHn+KRoo-*uBb#R6oU=9zW{JX-BbZGAMw$vU!vajauAI*c<32;U*p-xk9|dJ3e^z*qOE`nI z@WR&Lt!nu$rs^KP)AzEA`$F7%y`h!fVKC3%Rw`pThxTuSn}*H8Rw7K$<)o#BA2}E< z6z=MIzm4}tIlt6f8dB+1Ib;2+mhw(`Jt{vE9a#91;`Wc?_98z&5_{4f{kt*g&g#(@ zjY=IfH!MEUWGmjr9t|&ZR_mBoF3s|-cXu;aS7o-k825P^*kf(ASY2DqR?h10E!@0II#xu^9JoyLy=;TwYUnF?Cbs%=Re!n&6U%8;7F2tS}F88S{5rP0^k_#-&Qpj4dn8(XJ%L z`Lg0jO8AI(rs5e}wdiJnTD?G%-h{ z@}B#1m9%|I*q?;Qx&|@_?;dPP{fslocQU`|E;d)@k#0BVlDpx19vsHn68uUsne0v2 zZVwJ~R-d5W>*;0;tn$!hE-;gEv7SHE*@tQ&jUj}$p1GH&ZLzL{Y993PxM9m~HAi_o zT>F{qwk?Fa_JMiJJTaUNZL+#{Q(pU73nS}fY=kXoS`@>%BRb1gArb`}nw9dI{h9wGy?ahzt2u_<|1j}CN?VllFus3z z1h&4JupTjCO9x8>MV1e|USUTiAI$d^*`rpzl+Ze9uzC}v{ zX&g}1%sg#gkJ1g3qPDNE2u<_hGOd9dqiT^poh;NGw3oK;}QH8yYl0v{)623_c3#{*o}&jt2q~&BE|)l zoA3KEgQTpP&zm9hYf|^ziO%X!Q>a=8^NF+6iT+{AP>~C@v|INx&PuBZzCJ&%wkPJ$ z=X3X_u~$~sWi`<5Y}}`_Z+3y)lmFw7%-x$x{@+O1*)5SSEBEV}lNDJ}hOAJ~5tRp( zlOi|d-pH8jPaa8IisgFf-g%F%OIFG+&QQuD`9+~meX6bzE1j;~pC6UPuZ82NJ-5ei z%qOpMO|c$n%fG?K)P#(zV|~kI|EF;)k+0I9T*5PBJh+wP=|jfRmyD%Pxq-fAOy$YD zM_1Czg)eLWgePfSOKQcP^h4|4Jq>=O#kyPcjQU?F%^5L1ex#YJ%8$HB zX)a~HcWdd;%B_~zrmfx~m0K5{*R-|t3ZDD$d>PNZoBBDKr(m6kyI5)NTiP%FU1au` zvgVMuG!hrF*~wbO{=`r82EyCpE_OCs=Q4(beR+}yD% z;@q`LwS4F0>P<9N%X;iY>UGm=O0}$GalM|w8NO3Fl8G6z zhH%18i!w~|?Md=2&f3>iVd>TMBH>B??c&{wtV#EJ`&N3lNuc zm3Jpz59Q!mKbS-7nE^v3|z=f)A&5=km$qbQ_gPI zYBa`3o`sKVe2FzR$STiqpA6OB+udI&)t=ug)uP8rompGi3fV*NU2v&7v^+g4=;@1C-R?B2gOr2N1uA>{{GgsAJE_ic4n4=E4A zki`F;8OoIx3qx{sX!-u<`EIr0ySJUyoA~bJu#D<5OLD^g!5J^BVId!sEf*y8CV%R# z$aq=#OVS>=N^FtDGq$YZeO+r8_HEiZ&-rL0 zmrn#O3N)xi5ciL*g&P9A549d|7z{N^vnOkWD%J>$*1%0 zVWCH#H}P9f=f~)^zhfVcu-JU#txU#S#1|Hg8sB~9-JiS=Qu%Y@`pF9;E1%|j*(+PY z`kOR#=a18cIcTezA6~j)Vf6O(N$*x#_gGsE&Ie5u~)u;>tq;8i$dpLQyh&>pz0*P z_3(l5$sj(`UOVE9h#XkLcvg5CLrvD&or^P8XsD z%8QfO3xNJ9<2vtf20lv_w`( zTlv3{)W3_I&C*^DqyPT^f7Nlnv=_^HO-63Sc>GY?3fHZ)2Ul~$0QM;s^VtVmP1$1L}xsTC^{cRp5QYgQ!sTD###XyI?8tkm$MeBp1UtxEbN4B;!t zf9sIxCi;Lf%cK_O;#S&gn|MCOcf{pGiKpDR6VJ|=AvbH`dayM}xE0iC$s1Gu{Dcn~ zPfQ}t;`dd!ll`~S&TX{wT50RdC+E}73%bzGGic{owDX6xcAjpERNHxA-Z~8JTxVkF z?OgVfR{nh6qbXbu5w?dh)yLQY4$#gQ2{Vp%zKC{yy8F7NolAUbs0)GdNhUs`Q+CF! zY-!)^a4VNpw&hl~YS-ks>~HL-UB430jw2`ok+pU4HP@P0Lmt@f%P5 zw@s$qbxW1;7c6=<`|bJ4?gsAPHkr%+cj=1p7cF`&dk4=+i=NN^1Y3c~V#$-@({0zp zf2CzY(+bimYmJQk=OsJ5Id$~s(r=4ivX4IWBl^%aS|7R%&f@3vdu_OtqMu9uez#Ab zlRZ~%`eo_Y#&O?_ow70Q$C^ydT$YO+p#j-xqW`GN3N06%;PouHm4-f5o`^D9V_X3Mdvzzu5l1u!+mu|btQS!sOqdr^+yXs%GV+XMQ2rYUKYG95gBSh zZ%4=5#~67(I_o{?BhqHyCyq_T@i&Gzo{8SsNrG7=f9`g4WfpH;~| ze=ftH!=i7}zYSnL_&~-7qPH>z9%4pkD?o3Z#5i_el=EdcIz3?k-7#|Dw1g$_YD711 z_9;ks6Aq^nPNS(Ob&B*z+;2pmQ~Q;PTr(B9&Bk3=`(4YPV4t34sp7Tk+{8u~3|KFqweE$jiRAmxsEqOiUbBGllIVljX8P!3i;FMvjV(S6Qf>|Kx%7OM zdUF&V?=U*wC-F-2rzuMHPsnF%_tl@oGrmCYJBr>X_3C5%Z(Y7|o(0se46S^Petni` z+Atb_K1L7P!uX%TB_R}BjEBOV# z$pfA#nKIz%k~M|-Q4bd8XX^~w4D1=6NM++g^j9wWAFIjkO64ayW*Z(O$`UM3gb9o1CM-na&{JRe$`ZS?bDRO z8g;zK*zVmsvlkKH$;4OZv2G*2QHFVI08LQ+O#z=`VzA;j(cxD*liEI)-g2l75G16~{x0)v}`ocAi zk%X&gX6{w|{x{+$W7uH*Mnio2@@>Dp?AoLZ`Vo80wSn^OUHT$lnZ>F7N~>`#vRlz? zKq7xVQfBlSB7ZZrIQ^J7<;p%m{*yjM{ufyijsiC^&}Pz}4QD#} zd#-IbWmRqC(-j-eDB>n#PA9S`pPxSNoP?aoLe69&XWC^j(vGu`I|bO2#$r#(r!A`E zUi5q!XIin_C^El_TsN{86=b8L&DEQ*naJEmyX-~cz&u;_C@n5ixr(jpS6pQ*+$md; zI9@;;w{gwj+Q4-ZS4&ZT)IzRPv^g?$+>R|h7kh(~de@4bsK;N6H+wqOJ))v#Jlg@g z&?s|ONV{I`Yx7cn1MMAV&K=k79jknM&f2ld^lWv8hAlwm7~79g=BVvwg-Ldgb{R8!+FIhNwXZ;%g7od3$(#=~_TjiE+sYhOk5BT&?+3(B z_;I>jX57NFwafJLl({%t68$Mv?Hj{gHz4=hv&-B}JjE^(eqW$nCa#<8GW|TtFWSbZ zD|VSd#7%5gb(+n}gKhe3ZB{kE^0u-OP2)@zU*24#+NO;*t2u;kLS~5kkUY|5$H$s& zdf^$^rghGoZnJX2#x&M1iBD3CZTg;8=Qina6Pc2u74Tcc&uG7^ z*X0=8!Rn5?!CzlhJ{E=Qg1CV1HkO9bWA54`PR( zqRCC+)2sG5Sa`2>2Y2yj-kf)l3!T>6ZizSb7w%w#^dsGDKh2xny6ksh4{ooW?)=J^ z-g9X`t^0Y~_;jV6t|V@1JB>W^x~TlroAUtU2PxAI)7UL#8tEx3@#Z`vV=bA}en#fU zt;OzVnEPe^JgEn3rEbDzXmVD6vCdh28U43h#kQ#KpThPy=MC13pew4+tQokEXCrTL zCeJfvuNAW59{JC}8@x+(>*oy?s{i|WgOhoF-mFZhK-UxhE0{mbBf{M4K= zteqLn+L=+Tow=U1Gb33$lU3Q6k~!UzmNEVC6}#?|H8e7BEo%+V<7YMXu{V+?`a?Ax zb==1JvEF|F4UeSJ!OXHiH3VgkD@)x`a)r3$=r}h`&ROb|2Ih< zIk{?nZQ3jM@~uVQO>AxA>vRI#u%de90@~#rj+F zrB_pbo|kbi`P^6j!*8ejXX)M4TXj3JNm1R#G)1ZZ=QP!vl>g6bvZ?>y(o`nT)@PT-g;Sqcw_3d`*;$#0?plW3OzQP6*7{0)llvw7 ze~k1^8|iudX@7iwsm0gP31jfY>x9Kxp$S@g)HU9u zCtFKT1#PKfVgIJFdV1v965ljR+*AJ#@x81)t6|NNtg{r^P{DnrnueIFay1Qos-7VY z-&V%p&dJwwnKAg^%y(@v!$&bYPkob&!T;w>ZV=z|QLJ-E_ z8}R44lQDSeOc;abomcF_=1_vXtLv$pdITm+LxG=L_{KND7`$vFvO!}EZhoHovts6TBK<<~A=WueyBr2598T#w9>(u!tU;9fNdB|pt}v5zusxM($vY$WaUx}`FlTl~ zj6vetDP!=b=YQ)MgJVWq)4~{BI~-XV>TE7$t^P{#jXfS6asq!(|Dbq%oWLc+T7T>4 z5DY+M%t#b$0S?x#3&um94+c>*U)7hHnR6-um0JPQIOK_;$$;TYp>8$+wdY z-?}ep{cTMr-~L$pwl2Wk>F^0ng?>I^<<#JO!X-EQ`GnSO!_~fow$;lvYtH?t;Wn4U zl=xo15aI2?+Jwm`a}h>{&bV>3uXgx^GiUnwghO@(=M(1h{%rV!WAgmWz;zm*ux7N6 zPgtC*&Ox`&C%kvAk59Nt;}a&g@CkcP_VEdO8u^57c!#N^Us#AbpRf))VGB>|Hr1}z zK2HmtZF_veD%ge{^0cDh6TX$~f>T?*$QI#}Jx17Sqc3BRi;QD?!3Y!%Vv-W&%H)@B z4lO=}&G%0Bz6g78DtlgbI9`ie%pN1*^~wL;%qKhstu-liPv+rAxAF;Lb5Ek56F%X8(1u$0gb^B_@Qq-6LgwR{2kw+l=!8$0 zsqqOj;S**GpRgW2VLg1pdiaF(@CobT6V}5gtcOp?GyJKUgH}cfqi{J_;S?U{Dy+g= z(^f{!OmOg@gZB>JIilbUM!_qLI}e^&Q$48M8#567?`j$u6yl>f6d`9CW_{?F=?{O^c&*n5ZAGr#8@Vgvck@D3Nh>f7@j$UFQc?`4kY z3a;M-?{F63G-5Xw-r?E_zA?2D>fB(C%-CQ}Vs6pF{6&OmgA$@_@Ro+L?_FswV~l;0 zeKCzN{-^PMS9yo-n|=QOv+@p?-l%M9V&0*VxffZNH0YFXABgp`hn}!0Uq6}~xs>fq zCm-!If9Vs)m=9g@_1wK{$1DGzy*H1Ky1M@V-|ra$lMG1+2_#Ht7EmCGNKphL_{k(J z0ue0AuU2ZCL|g(RXzHiRA|@Xsldzvp=`$z(EtfMB)FAM<$6d%fGa_uO;N>%Q&_MermfQcq{Xcesk@TjM+IDBtQ0 zcMSf>`o3AE4PceO0jr!oXZEI*mUyqq+*i0?=2*K|{nv?v+rY&olGl}%Q1V>=NHpiyhAA8KPu{y{5zpna#{ZwM>UlmD-{D>4<#c?9@AI9u z@*Rd|>2)kTMzv{D&#|r6b2Rl#{~^!Rb0&GFo?kQad@8=fv0B}pn(wfT?|jXAzt3rJ zv!11nb9%!u@~Ll99CHqEXK(wbBR-5n%=P8Ef1NF1uYni2E-`M2TLs4Aj@>$exH$VF z^}cF4eO}|0sDVEwQH}OiUB;Xr4vtJXpFfLqHiW?$9olPjO4?joe2!{&ZDEZ}2DmX7 zxHXBN*Inss5Pqbuh!@&ee_!|WkW%4#s6rm5TB4}S5la&VLyxano~gY=*(huLbHLJF zb>GU8@VVXM%fR#t|AhEz;8fB04i(lyL{Khe&h+D_<2rOQKkU^nKOu`fs51XreeYZF zfb5-i`*El2X>`?%3DwgE9B1#1V)ha63P$<>byIq=vQaqFZ0xg?6TZls4EC<(QsIeZ z9XS1Mk;TS-OIb^8_|=tpV^`7RhKzIa=H!g0zk<&r!)uIlG@TAe4P zzb0Rw{|fs?M<%nbM2X9Tr(tSBf9im}by72lUrO5Xjr?p5_}St;Takgba2;+ko-=vO zTH`wWgYjG-Kig}p6Op#9`pd}D3`?{(iFE~Ezy{GjWtEgKztlq9u9d2b#fzcmY z=Q#}Q4^fO$d#4rn^@oASyD&ztRJ%0xhh%txL?*@%L;nM5OZ&5S@P+mKmoj-MQ?e3f ze`#7+{Eir9<00gC930UZ;Y+-k*gl8oJ5Kt}A!L6Ed^_WezT=!X_E;uswWROF7=33U zYx<9|2Ch0A%+0m%Y0!_3`Sqip(~ol7(2w$reiX=a_}R8VKEOD)JbRC&IUnKy<2kb* zwZ?P!q48W`KY9whFx=9m$3|q9R$a?_ziioyE81HvYbdEV;aW7`kv<~4Q_@Gip^r%U zTI(aNmFuMzda}5LYjD(3_kO2J=>Eq$8YoJGo}^9B${o$#b}k|MIO0Kc2%sa!q&ws(M?B zpXGn3{NJV)m-1hH1>0`X*GO;SD6yi=9FzQb4*y_$vk2VSkGL;fe45Mly@07k_7t#zGu1dtz6DE-a@$!zGj$Q2m7*AjyzXvJV(q?tCI&g_vblWEcb<% zisQHCIh=VKp2Lxons^Q$2KPM`A9P!I4hQp|)QkCiegMy59C)tfm%wvKY)RU5GG)@U{b z?PX3O>vJxmUBf8(`rCi^uU9)%(^WVp{qa1U1=2Pt%#apMHTfCoX z_Z4pyNA;UdLtK2X@>r)KZZ$H@&9PFA3d`nbw=hxUC~IfdXTh1137-eY2^^2&$H~2~ zu&n65jIvc6UG&!q{y)I6jNhC5jm9=Y^I zFzD*^+TNDw$8WcSP456kJp`x>Tw!hEPxO25 zr^3q;sq-ho%`xO%d{e^NIga{@H#ihu);JX7JTtlWasY>-lWTFE;YNf*v3@gl4l*!< zYxUstO+G}Ci@{v$F3+uR;!wPaYp3K;giCM?Jcz8tv!}p|Si8*NP+Y5&ueUdGD5h8) zVYP4-Hsera4Tr{|2=8Kzw6}05-fD0tj!;@~C?PovK4ib@Xpri*X=c4_!Cze{E5hn&Y$>Goj;LxR)R_Nu5^|coiz9p z?M6DRLstp z$e{d*viH$oKOUP3bU^ipNz-Lrv#e=OhN~pWmYYxwS4pzrQ?kHSGM4yX2EGU-CNH5s z93|q{@GVE);H;^(PMVGmXyQwR%h2RYe2n}y<4Y`rFY#eyGsllJ5&3VynaFora3<29 zn{g(Z+=n>^XCi!)3A?=KpuT$W{WCc^)7U<#ax=6jo+wstn-z+)Y27h!YkkhB0u}m;7TMd;fD0*N__lgID44C%6tCh9CHO+nUu3RpGS9% z&&lLU{EU46bRZlaL(ZHd(GBmK#<`Nrntg0)u_K01--+~#^~gmt&J~`?(tTHN|D0zu zjzpskU&pr_j3d!P+}z|yJdy@?3HH!|$f7G!$?t(k*7h?eKZ5Uk1K$fPnEQyr+R(I2 z*6WT4uZkoDIp_zJ67D_I3+V)cw<)Dj;a9x$u_k^+mHFk3jFIP+U-6Tqe>uP6 z6_i=9wo*^8GABDFzap|~@+*D@_s-lO!>@?Ees&i8igx^*t@10DF>g0{3*|q3(0~21 ztYHntujocjHUC8re#gV~Wr-WC<|sZ`dl!RWkv`lDAETr(g7@WK8r)bK4+d)nO&*Lu zu7UZUrabnN|E=UP4=#W}{!cr7OMDN=*rZ)e{FpqIT)=aZ^Os5VB&O*ixC~YA02ISG5)NOxi$K=1s5Z85u42UZ`J398W$sa zU-V~7F2)fpxEN*55q-69nS9&yN6Hvn^G9qcc)`aA7bEi#;wghH*!3nCqrCUp|I_od z4lc%Z9=I6cCU3#T$h)m`F}7hY6UV&Sm^%rsUE^Y;dp$l@!uYzEe97EZ<6eYMtr_>CeMhzV4{=AF*p734vp252qJ8RbQ zy=$E(OwPrtn4|l1E)Iutv39*v;}h4$V~umsW^gXvozOo_=Sp;&T#1YaYuK-bnE2a0 zm^;2?axOljr;!Y=V`aBlc6yG>Pxm)L3yz8`l zi{ojB3iuXRGq2S77Vl1Y18!l_Gwz>qME~rapzDu^g>TVFPxux;Bj3Wmw~DdtLFO=4 z?3a2+g5CiB%su0?Dw=_7wL z`mNYEgPG&xNIu}sGRwXfP8+GebjmLGWbbzKp6nka_ipB%#@yXo%R-Ti&yUDTm*;40;!0+BjzUIk0`z*WVoyo>K z!c(Qs0oul~=ruVO@#Ee&RG;s^&o^Ye68^=&`Tm+=`ZFhaM%t!{V^JSFOpe8Ma4dfK zfx(LyFitIhMIWccw)q=#F8}Xj(!L6FS@S!#fBFWMychgCi;eF{TW;e!B2!+t))o^Z z61iIA)bkpRT$y&)1H?weE;$;ct+KM3>QrRq>sa^|ne%Dl8q%gHK}cYi`X-WH|vDsIKb5N^DE z9Q!jTiD0gC)N1#<+O2T<_8)D%4SCmi{oo=TAY6po4Q|4N91n6X9Df(W7t;q@qwj~e zYJ7jA{(AF-(eUM6iM{dMsKT;8jdzxHc;}`G7rw*wcW#+*>pQnj_$}Ov8~DA=?{kfZ z@i}-HH_W)D=bvUg*)5~&riAAw+|={d8BfDaeN^U2-}ojSj?}pUQ^M_TTd3V__v2#R zlA4#$iP!7X8Y+PvbGXj`osr_hQ~8T!2#U{ggYLa$jteyBjwC zYds35|0Q$lZLO8L%hO2%y1d`S%XlT_{>g`T%($6y-$J=>rQCP?^$u*VUt@Fqdcr|| zUEcZigbi>tzRmA*elZ7xw{Zi!jenZ)o1V|lc&bN6*?kEcC*0Tbjv3E%)62YtGCvTZ zm)S;{Qz)~}Q8gu@7i(rM@a1Opo0j0DynEl|obrlYA>~CjC&e4(75+>qtF*O$8*hs$ zoc>ymt+&D1IA98G*;-qhT#jZt3!kI#I-2eLOlD!(hOy4FeOx!&d2JND;$cWK9i9L@GK`5gV*t_y9~R=M@Jk){1^qCEcXw@_=pJ7~W< zCWt)l=V;2J%zs}u%5ti9@ox_+^WPWAzqHQ_9QEoHB*OSm4<1){s9tdgf3@||tw+vIxWnXTvsd8UwO&b#kvz0S3G zI^WaP)bsbo_w-crJfF_@ltkXeHm+c-tL7KR*zP4}mla-EHnJNy?Z4hQ!7Aev{XInV z)c)!jxAOZfzYY9)!3EqKF5L^@)XfUdDC?E5VM4E-H_sRuI{#Vr%cv9lrP#hsd>WeV zi>7O5bhT5JhnvKo4 zC%7SnKCf{)hKDt!W5iA8@qL-kFt*0FWjt9aeP^{ko&@D`WKJ*r^kdRpbBQjO!F@o@ zxg5VZMf!nUj%oj6jAznkFVxe>MD}GKmA#^kT#m9P(9EasPtt#a<@0po$#(KBb>e=! z`FJ9Ick2cEcZH`sl$fjdgvHm=lE?83{6L0JcmzISt&KHVit{Ed)_D|#cXVuI>%N~1 z@+znl0IpBw^y4^Qv2jjcQeo$Uh@~!PRgN=@@ z@-2BSAY_Pu6wREc4@%1V^yt#7PZTtZ_*$H@GA@ z`g2LL*JCp-$^D%Bb4h})c+}*Q{D<80@hu4-k4#C^#*}AkOhy4jx5zoyGb(U6HyL+z4J2zaC zX~uUX&9mW>y!6B7T#_gMmo~LGaY-KI+~kt%C(jNu?twr5T%Ki(h=#?7d+{je{#=q? zIrrm|Jji+A`nBV?Pbf9ltzCkBAb7SSuzXiiF2Sr1_=V0TIqLYyWg17L_4@iGu=G87 zR?fd-EeM$IVpa0SG3$}0{2u>6&u^08<|UsRj{f?3{MqoaPOh)g@bodBTcsS7XR{o6 zPQ%eto|h&6q_;}ABjJ*KQO>12at@c|^YT3Me;r53cOaK!cdZQ3o|8978CWwz8GIwy zAMg~ILHUk??5KT|jbE^KY3qf`#xGfa^f)o4yVeLFUJUysclZ2RCG888LHVrdTgE++ zy=?5TX?;egjGY@ApQwhqcCqd*KWjw#BIGxbeRRj{N!R%ziJhz?jhc9+JdZU``F%#F z9I`8y^h>eDTjq{nZzTAk)+)vO7bwMo+0G?4SCmXljXmINMk|~4cFIDAV?7<|_chk6 z(yzg`7lG%zje5|qggmp%0v3(DEh0{q+i~=C!7*pjH>Qp*DzCA`RgypN7WSu_%Kpq5 z;pCl|cW65OhihTOlw$j3%EUsh?*&)u^{u?7mY*$L88VG_-(g{G4tqna=XZdn?~EDv9@g7 zPS?;B)|QP;-svc1ZJCCd1;e-(Ie3b^e{JdRmb`pQJVo+b-^tnV7~joMm4d18%U(2B zjh6a5auIvTb6oj9Aq5W&e9-Y0*u&4T!Ry$cP_a1EvFYtfM~T#n6xW|Pm#kbGxa;-Nx%|3u*ZE}kJ0X4!UaeLZ%@EBFTVbk8t=e~{SQZm6dUeTqi z?A2>qt87Z5+_TI!1ZSGf`mw2CRHa_mF+S$9*NV0l33;L4P7;h*8rTGFpKktdA?7B} z*ob}P@jw3^@U2FBfq^VuByz{KMWM=|oydvo+npx;f;7gl*LM!*t7!-G8=3qU9Hn4h z$H=$mcPJK&r)wqsi*JY=h|JnlU1pP!M^k3kH~2J}brZv@rak=Sc0MsSQ*L)q-f4gM z32P1Q-U{-PL0VqcoSNlkJ(;$aQOgJQ(2sNfdRPrU#9z*TgPbcNE%TPix6Qm&exc`W zJ>?6`Td%05yp4%bhCE6Bd~jXvqu=|dvwMnf8JJmZJX%EjPx?r+{!4qA>1DH)RQm5Y z+Dyi;*7&;_|FkvA&FYHpm~}M+8U8Ni_8QXjFH`a{Ut^ipA2QmPcJ|Njf)B)&`|kQy z%6D8RqFcYq^0j5`=(kGQREPZ`>(^>~cLaCe3EaI6+}*yo}Z$yK0Z&` zBuCLn;JGFxu2wd6OIM0TuXRgNihYIFQXetNWpJ<-$rui2>{s*=TNkA`R$&cnZ)<4{ z_aBdNmMdz}HP3Nh@cxb@rFaM9ku6tAsdBMqfM;YLxQ6?SOnpZGeY`90!S5*7<+~22 zQXFSf%6t5nwNRABrtsda=KHapN3`#E_bl&Do~;hAN`L>EHMX(`+ztI$TO`~KDHkg* zga&Xogu&a8L9E09|HS1Tl#OG2_wE_Pb58cqT41Cta?oIPG=AI3I6v%4Wm7{U7WNGZ7o~HP9DgJy zRJcj%A928$Vb<9?o|U}S!;^d_bv7$V-m3YA)R`$0+336Fy>yvjUfC!!7tk&(>as`M z>T*$>p5NEcFu&u2SCsUswQ6Y%_aA@EneOENliIhrZ=>ILP||CemxcO0Cv(5w@yz2T&U6`n z9yh+n7?G}YwoQSvEzP1*bOS&HUjaqxbR7q9>f`Ro03t zLX}&dz{inZ1K(;*H2pe~d9T{MT%C<_F{j-470<{w{+n-@Wn1K6og!o1ueqj;g^YEi zdBQB)q6F?UrcF2UYGX{J{3n>7HBhz&^EvtMFC}licpjdhJmY&kig@0poQTV1eqyP( zLQ#sYsM@ENHc)R;9~0#r8ABOQDzOQQ){LB95uu!DAg_w8=$fm!FSa6M^a-<$R!0wB zVWE!pQb!dXof=1x)X`p}j)wD&)K47s^A+>Km}YGq{pXIw8^%e&vkR&d(P)vA(7wOUXwYO)PdyN zw@uxB>{bi1YDH!{P$wa@W5?1H3)JGRounNt9$Am?r2TR^--r#oY0Y@n!^XkAGh)w5 zcxdKPAM3Eeu>~8iRWsK6d`c;t^$pAJbv|-;M`h59Hj%j)Paf?d<4F%C#$AQY-M}+q zn~5wn;KNYh-LS!-x&!-fC3dP4+oK=(EuGBjHGTx(2tRoZMv+$ zOY^p*A##<^_Z7a6&#>W3zG?a_UNG*lcab)h{Eo5XOUfpCC7ydy{|A}>SM{d^YY`RPQyY~(MLwhE)IEX+|``j)gYTlwuZvR^xM z*W&18rC0$!RJA}UtFkT_o`_Cawdb-M$ioR=U!@^7iS=MSC-bt8cb{CQ^il?GWnQ6Q zi}4)gT5hs3cn3CjB6gDOc^;bA(5`j$3*Pwip<#@ZwM z;swgY>-)avnB4mV$2aVEKKp8A(@X4?b-lGmYB{#T5jdXWm|q|4pwz8m?%Bh&Z|LQ` zdwt>DrSIj>nmMb7GDtXt-tX*iPwwO_k5?kH=U98V?98EO;1hd=ZwUvA_=`64JxQm; z>PXenV*dLk-(sy@!Kc=T9Mi22mY8X6A+4Rr!(PTscz>d*>34~iFjpS)ObqoHDSvN^ z)$V_99vot8x#xea`b*!WC%ERLF4w~k7LKe+J;PUY&2Ope=eGQ~lKp|Rk91PX&3ez_ z*-Cr|9eGCTT-s(YYvHB7_gOo5q`voCt)2`e%vHp^UfL;}{w8fRk+zwlcCc65ltF^; z-eie#*HJI&mJaq3c-jSPyIYN??xV6Vp07+S?z`KuoH{v9-7lx^U#7katWl{Ow7T!< zq28n7;Bv@PI@=4?POc>CrC8}?A9k-b`sE#Sh7Jrs(qK8RZ_{ z(ODiv`~H_D-sQztAnm)sXx}KxD($EJk=*kr}X`-U9_ zLrakNfxX^$MENoXJ6yL8ooMZ-mFFAE(}(ih;<{z#0er+#o&w4<%qY)rOGlR%+@+M~ z&qjF?jPexp{?M_T_7Hh3(8|-Xu{-r2x;ykUouaUxuKcI^LKs2H_yB-D_4V65X{1j24zMxq zvnf|&Q?BNozfGxfZH3GivHM(SU{ku=Xj3{{u_?FwP;E-puqom65}R@uHf5kaX(t|i zHumHjwCB0BCzDQRPf`}mo}?^dPj1Ja474Tf$l2N2lK-GQVoTn`(X=I#;Zi@9EqTw| z&27mm%NWo6Y{?OFejaVf8zg;f$>$eIIx(I%o^7%vAIASKW9!}5>bB&A|HPJDAilc} z*s>wmv>mZ+J7MF(B{v8E9k>bc`zhG1tHFkSDdQ~1di+2evEy}Ym>!E7Qtw+ON=vn4i6@M3}u8%H^$4s(;5uwm;s7i^eT4zOYU>`mCP zFZU>=V5A$dVRrueW5Z_Q|4f~ecxsbx!;1<3f81Ym zyck5p;Kh1?7whI0zj~^M7mH~VUaSY@@wYE)_BcypRpOK6Ap^bleZq?^TBFAw&Ievh z+EDDvbs~%38ZXw(^D!7nu`lJjI$lhdCJ{7h^1tF--7f(#N_kYHnXjztOQ(dR=TG-esoO5-&EEv2F}w-j$4fqZtE7 z;m;dc%9yCd-I~>vU)=0phZi&2w-vmYe}4D9-;NjiuCb<#_N7&Hss(wnB3B)duMp&n zxaAypT8Y!m2m2(k%j*lJ z_~rG?c{X*eA2Nt>UG)9H^*TqntwRqjep$m0 z#(K%pUP|#e`mPuMxHF`%EGvBLvkH53DsXba<2S+J@te?jc;^V=^1Ent;>^xUpM;C% zCCmgQ8oYN+LpwbS8+|=y@(A3uaax3GE3gQD4e65gRe_ry{JpLE0_Z&!oizF zthThHaH88P$3)uP3Vd01Vzp@(Dl=uhu&n2mxtSR!bp@1h2Qk_VsXN93@%0NfNY;XS zD4V{v7;a+9c4I4L3pdI(p0b6L$MKY{zfrdFl&!y9qio}ivW=%~bLA2njr07>>YUY)xM`o&eY8062lwc4 zV6oY^Qva)luP0rpi^qGv>p01K?-B!+dU=;`lP9e%>cJy?YEAG+eWV-pfgMp$1XdnnrPS-_?jk{GQRoQ>_3(BHrnhmR_r>%`0wqKKI84~g_2H;r)pi3&A#SZeXLyq zKcL)O_362@*~fix<~I9|3(n4FKm42EHv1#gt-sA)PuYKnHv2Cq$G?-!ei7wqx7n5S zb8WN#6I|$jy3PLN@7is4!RSg%xZP&|*RBu!KG^IdpK0A@zk_?{%4UC&Zw0g2HyGFd z9c=b{1IqaCVzZA4Xd}~R|KromZT1z~c}tu9DXxpnK9*x!Z1yciTz&o-*z8HS1h?7m z+TR*v(+r!v>vsD89y)h+dhTauZl^DLX2@B^)-CuTg2mR? zQMdkfdIaY`L_7UX@_o+j^t%)E*t)DuK9ksb<+qQmXHlMZJN?|->9&XH&)?J7`VHSv zZ2jV=+wJsrJN^5?GFVIf!&pf$Jv32eHO|kVi z_*O7G{V&FK(@vkj_qEu1R@-9h#vXYSWdFIOkc{cQ*iTC0<9T4Y8sp<(LE_`a-d%z5 z@wEZ@479bokv}ayPX5{wANS9nll)~F`&~)?8e`mHL1NtGFEGY^Pe5In_VT_py1l%d zd8f?f{!cq^X)nLWb+MP{a%_ved^R!eRfjJP8smOuYs(n-i(ES|F>cmFo>7c@*LNJ_ zj`ojn!}DqhJ%2H7BdzZ|#!VYk>^zS#?y&D=jC+$2<1UZ4hT4g*XUkgW^BUu(9=?MZ zclj-pXS))omFN2s<9-K!o4@V6dNt#lpY8lVa(*6d=l_-T8E-G1E9t~|`jVcx#u;uj zZLHmWrEWVPJaF!8=iZac5*e|EO>rT7Jc+0O4#R)5<$gYzGv?ffM9{&%vS@1#8K zw)45Sozs`lpZ~*c=Z*i{ZacTz&h56dX*)xR^r&!k*@D>4FLLi(+0G~VRxsPS-niaI z+j)k8OAorgeA{hjeNXvd*z&&yI=ru)}_X}6u*ZRh`R+c~@`?)=K~)@|n+?giS;DQ6jX9msQ!P@D|l@9j6 z>yueKo#e`WMeVt2LK1DN4oyzDoOT^1`J>Oyh9|wmHGAe{)=$rYCw+Njyn7Do#cyE! z^a`uPRmplRY1@yC_0z&TE$gSHJRex&we{1>we{1EX6ubBY0pj6g>YyG*2g`(E9<8} zq%Ndx{OcpB=jsWvep>1z&ZraClWXgz1MA}$^`TOxq@hU(jv!@v30!utGOah(P@id; zByaCiE)$!bcN%Q=e{F7VBZo4+`P;}La(*6dU|{OoMxhz*xX<>%-!;Y>@7~Pb zOl#otTxW@QC#nwbSpEwqS{NLhrIs-FIBS^O23MF9F0G{dl;dzW)~ycU2)mJQ`^TG2 z+jIf^YNdQPOqF!Pyh#Jc9IJu1O|w(yx5PtZm%@oQ|5@Sm$|DW2OXtB?CVQ{71w$@; zWNGBvW3jt!s@)w5514R(Imvg5k?%(SFC))^HtY)OFp~82I&H$Erv#MIsajbVl&f5*e4p_7&h~XD7f>^tIcer z_nq6!v_r)kE%Dgr#Ac58UfRsZ4V(FdIy4WPdFFRxGgBAefz5m(X=pAsbIUUQt8L~2 zd~g1k?BS0w&iTcahsybRw3#PL`t-3w1(HsTXDfWdrp>(2sgJq04cBev`5$02Z&TPy zQ-#Nr{WKTIUVKWaViBEg^~iTPFJ^DgM{{N0ODi1UQA*u5bZssB2BzRs$uKzB*zYhs zF`PX~m&u-_S@4c#vWJ$UaqhBLJKU-4HGOLbct}IwBkjn2cvI)VNiJNZ@TE!~ZE&aN zYuu?8kL>3ekM2p~+AfZVHY@2%*mrvz`)(hKH}>5g#=hHgl=Pf_?BR&N%UPtBIg6As zC;Pgl_E742qnqU$Ig)4eZW#IX#yiW$srGU9Q0J_}!<@5RYUgpBr|wde%X;QHH+^VP z%2&q2U(NIKZWX+9r`v-*Jw@5QG7_#s-pPno>PFy$4qNTqw5y|19?PEJ>FLUDvE5_Y z_gkLZ!FO$cTU4?#Rw<}w|1$YMm1`b;W4A0WsfEwgfse0>z0dwc`w7Obn*V$GFL_HN zoj7fMS)9kiHJcLWuA$w8Klwe*H9tY2QY!nD#xw3o8CG#!_E&z%;(#|c-t!jcldat< zhq0fw75}fk|FGeBd9mkE)yba$>SlV5R&!;6qu={c>c>feRyV_>=%lh zj1gY)L6>xqeMgrlN|&^$`9sHr+TBhy@g4v2;4gpsZ+{}>q&n9zB=GZjf?e0y6_oJFN3jF5JEyUJ4Dnq2M&HaDBx{h(t*aJB5 z`FE_!qpMDK8r+*a1m1hD1A7mj=rp)zkb6r)$ouh5gS!Q}H@YKv;9f+KdzMbr**BdA z3%_k(djHEk=dn(Mr5&@G&##-|)b_LexT{iNLDs{lv+=Zr%M$K>fM1Flj*SxT-en2X z+D`10BCY+L$8$MK3{Y&KKT}Wg?(4`yuBEd(QHk+-(HRf%|6^q12>Tz?cP%}pzIBgyXw@|{KgGvNu}zE1XQ-V4WWO`oQHv8{7QEY)>IchBAbjr^SS4SK=S!~GR$ z{Ejj0E`HJvz0?IfK6^Q*FwUjG zznXGl#L^7vdN1YMVhOFRLchFpp>LUti?Xl9G>%ibXAAG{&i|Ft@HO^jO~lppwH=$k zzozm1SdWMIW&iQU_wH31Odj@Q)T!el*+aU!=l_-}k4oO+l1Qt5r5|&w9K)Y6 z6&;+R+PtOsNJ7IM?m|nbH%tEW?P-=!w{U`w#V3&6tzu}ddSilO_yy+C&t_S>d*_oE zsh3MTC@)B!{L@b%eH-boBkkYw%Rw&IlYR~PY>__tyfJK}EUkUVKcLey4~v+|S~E7WcEbA3i)ZVy$-1 z9wBc^cwN$p-_#FO01D2iu>Sj81zKXiR zs~4$IZwmFIP#@EcI-fqgWt~r_&ZS-LCexPFl9 z2es?r5eIqqIqhC##BZ0iEFPzt&Y#84wF9eO>+DraquP7q0B>XctqxQEq#bLb6v)i zP>$b)u1UP$+v%D}-anPDDM`_F&1IA)n69~z>t~~D{=j?ZPS-fmHB-(=*E~e}ZPhhn z{dCP4DPUgkFHnqH^SHAx4Q0h!EaWemEQu}5^uR>q2~o=Fih=Acgo zh%V{Rm?yd<>)pH=Q@Dq&7=W&rA>)sXd;QIEk9&-11Nt-W>El^s#5|spG3`m?9%J2% zyeO4@M|Az7f~S%3Wi|RmeCwiLwnntBU%pRyR{sgVq%j^!zWnvdeDul)r$y5%qRU0E zXu6zwK#vb#%;jE)p*K3|dc&wA(I>jju#0Zc>hCG;i9SIm3=mx~eR!m%3)XV~HSWpv z@wB7d8&6uAp5Xd+u5ag=@uVfXVmxiB=?d4bRkT`$5He-s4_9doR|Krq~}n z)mX0uJ8vxcie)Y>c8QFs<~=xAC)Hy|mGf+ECz+#%8h*Q2PZHy2x;55aj(xC#pXi=M z>;yOdw=vi$h1e-KQU>{+_+4u81Ev(reIyLq*wsrZmU;X1c^}Wz=8LO2(m$qe`FN(* z&#O7gxmqzx#?$E`9OXQ;VwQ}h)5AG(Zq6&sIlau?>01-bdAJ#4b!9f~opgwNWT;_Y zC*_{T{z+cWUDynoy>wy4%p}8BGI78q*4Rc{DcYvIkVRRl{v6qneiK2Nb=^4z-@ujl21er>7=>?OB))+WrSvJyw_i0yDgNSNzdp#mliHpu zeCGt$f!x3v#O^K7GyA{j#^an))E``su+N(1VVs`XS2Or};0G-x=E`O<+9wg>QtoE0DYck{iON{;Et7||H ziXU~o#4gZ-EB*9fEZ=XY2l3I09%K)}>FgnRTU+&+h8e=Q+)S6jlh{m`jdE@Z)MYdM zblIgHl@~50Ke{f{%aTS}#u&QnamsQ8T_&+9Q)^vhZc_EqqrKT?XmSxIN z!yEOHNAwZpN~0{N(nr&TyH~U2POp!C!n48p!u8rWqCF=bJpX+m<{b0|>lyTgey8XQ zlel-T`oeO)bq@PNoAgTC`$BV_a=N~dPg%}GUpS*OwcZz6*9*@ezisUc5AtlVzVMj# zjcCv1-$7rPnAoHj9%LLj8@=G<8>iF@U7Ga5&6KG%y->`(V0~dQ`3j~Ntf$Zm@A9o+ zeIYG~UJ%UZDfPlk)>!h(;x~n#Ij0iYml)%z^ni1e^A)9{m*$f*=TrW&|2(#c#LoTo zKq+}|tLy_-)%3uf=z$;czg0bOnlc2F^(4Q%2b%*OexU8L{x;7Bll2d@Z$x_vIiBqt z$c#x2XAaan9_c>^>fw1Tp-I+fQdegq>-X`EQ_1=~%f@*O`4O93<}rdh zDfP?Cd~hdbUV6!Y{1&O)x2Zbrq%=rATKJX?`*<|zw`B}&*5~Ip&IPsor2YH2U?a>v zo`g^EMf_Wh{p>XFNx#~{I>*0>PYip!3waCH4|-^Mj`sXNH~nCnN^D-mp0{AvTe0su zVCREVn8Tjt3)Eu4@e4L!b&~kTtez%k7m9_NBtNLQQ+t{n1} zZ<&&)4B9ces65AN^Dan0CM@6t!@)r@mdg4L?~jy8sl&j_U#3hfC1=f1Cf%T~p*ZWf>6 z7H|?f{BRN$4JQ%jxtcoP*=zJvaAC`LvTwCIH*~q+CyvqvJO0aAKBk*8sKUTaDYV*LVd%%PyuXV!NSkYo9=FpqG$mB&IyQNyqm(taf)mkk7qK2M^&ZE2 zlBZAUFPdz!Z+JF&+ab6y(p-l;Zn@ZbLg{i_LQ+z0LK5wg(F6GF<3sP@Wy zj^aDaAunr5KSOYMjK{m)QOX5JA;(m3c9K8VtV~kLn_%t06lwUw3f__aD(~6Bo5**z z1d)wX$Bsu&L}Tobaihi@I~1j$-;?tkVT>Je z&3jRiHm>CSPe{R41Ko~sYUk_+LzIbS>_Pr1W87Qx{gmWL`&+bKiW+IBzuVuGHl&`D zk-g4JxEriv@kNXaiy1dMb6k|%&%We@@3MK+OBi_5l;kk&y;SavuXNLJP~R9h zC}}eXeM@*tiU!knl5-QbAd?Q#m$`;{tpb@`q>V`$o@-Bzm2s6mkt1cIk0>gA3S55; zcycMXlWYAb%iaqD>L_LBw4pZY zs9*99#}4W!mo;F5{gN{Oo%*PwzLtS;`dY&{#dpAD#$)w(4&` zzM*QEa>AFPG+6u5S9wlww>_U_E!B^e!M-7ier=CZ{8|}nsRk&6Yh*k{m)Fq8L-TrE zTXXT~l+P}|GNsGC&ZV7^FArnjgZyePRmyJ%H(m3Nv;1Q<(xt+AA>*9$#~c~Q^7?~I zyHp>Wy?M%{&xv;lj$7I{l3&#jXSv#;=$c-NlD%($v*A;)oBK16m%G{5-a^@r^m%=+yXi;3dko`R&&hl?m#r};oKKsr- zA87AgTX^r%Ir*Q@T;8#M$QWer&J3k%z76brh;vqr8f}l9r%c=vr4+v$rR+|erxZkP zc-ZmghNUG5VeVTu;%CaF z*GT_!(*N8Vo&D4WdmJw*j?_`4e^34=GkY58-`6bt5J|t_HPU}`!+j-^cG-sIC1b3i z*%yk=oOa<*)`}HpSi5*@o&kev?d(kk_w*d{|LP=Vb}-M;l<$AoPU zl}z9EV97UdW*lb@d8bvcuVai!_rjs_6lKj>pcK3r^+d_hPNW%iU&);4CrYTtf=^c6 zU$Vk=bNz?^^ldD$SIoNnq;H7qFF10do}T1Y()mM$p2lYCXv$BNNuQ7px&FtBhaG0R zH|JfiyR@-vC3$tD6Br9MSr?!0l6&r5Iy?W+Oh;(_kVVYx#u+k_pvh>Mo%rs= zSE={s8)b9}GP0IDShdX(U0&f{(_;(q(g@6 zU%lmF$1&0t{-1HkzSL_SXa`e*1v=`=2tAFx{Z{riTidpy8HOYQH zdH5unI!uIn*uM{WeUnzIdLQ@_-5~nm59om^#$zoWe5ukfYY{rDw{hNAY529AgBw3F zXFU4qD)d%1`fD6|Y%I3Um{RnbrUykv(=Jga$(SE(y#Iv$V!PKK|0#XuQ~HIhNvUD& zi}amXzrJJYkjiLX2Z;S~$QlLSJW5+zv+iPD7iiB}ZLU@H8|iPN3&j4Az9#y>Mjx4M zwb|dFmOfPaTDrBf*3V>2ROm}0*kXMoMg^WWB8MlWc<14MY zzW5N?Jc(?cv?gS)==+glp|wNm3S{%1{Npq4VZ4^UxX_Tzo?2h*py>5GM$ zzTjG&tcfUAqEdJFRfg;)-GS(-3(!*oNjC#MW%iA2eUwSNN&f)pA7I~}fqk|+F0gb+ zE!NVn)AWU;U)(JHC{17N*7`=Vp)Z~&S;RA}RmlG4E8k`Be&rif7wv2qXpO3Te_FxN zKOsLi_f|HF{0y)}+V>-?9~$|W@%mxL>xa-6Zy?XoZ%$f6JS*roD|)}>IDqUfHTuoR zMKW%ivMc>&X$kdMP`BncB_Fv8>iG(#?cERHN zrH%6&zH7>NRVSs~j@}V{ByuZqF8)iI?<|UKF5?yK_iW0z%!hS-5^rZNST3?2>L=^k z9NCcfmFN|b_agezC+LF=gmY@Oe#1deyO(d9w5avG1g=Wvri~7-K#2rV-J~ zkZs806#BuG3${4IDCDbEj94#n06!ZSJy=xyu5@ntBtmI5L0#%vTww^O3~` z!Q>SV9I5cx%Cp{lan&m^&j{*APi4yUfKgT*d(HAmy@AK0a zQa`tg+#C90pCLjlkZo^)oR3s#2$N*v8D#@yCZ2z`DV4VE01(`@O_&an_Y-~olRSdk0DNtwO?;Mdk7m) ze0SQjTADqwWlV9XJ?vsv)-Z=XZpBX2e5l>9pJR}ZXvW!C&nL_S4&bLdNc`a+S79St zl)*CI6k?By&*%{2q4+Rr1~^H>=BgbqG9?pC^pP}Yc^TIar;SM2tcGc0lFE8a;p~&~ zkhSYEIrzkGB>%L(HlB_7bwbx#*0rQ?y&Byv-;+GceTln_QEl1y7PNb@s&Y+LqA_Rb zjjv9)oGnV%6LZGVZewY`F|^~AwC8B%ETizx>bASYWc=T|T;8LsAKiEUeD8hOQ~W>0 z_x^O<>3#2aQ0KvX?_Iclw!Zf*B3GyIz5nv_v-7=Yk*72Dy+<$qVfo%WQ^t1Rd+?af zHsmVM_nz`S^u0e(pv3$;`Lo|&*t$Ra7RKuTG=Fw)${gs=c2h^K`Lh>tFA2TbR)6+X z?fI7e>|b$R^ka99--SOrH!-+BJOAmH{_LoA?f&d`f3~t)v(xYmwEMI5SWLS=yWO8H zKIQ)ufA+Cwn)|a~6V75kfA$tRZ}(@n`?K5q*#&9s{_J*tcDp}Y^UME`{Mnh;}RSBSyTD%C zz>(YLhAmgYu?jBp=iC#YcE9ee;mNNgUNM?@#VFzxBZ*gxAYPGGO4}9hIE_#H$47n3 zDx!nq$*aLg1mejvxh8n>2g#G^(_SCdI-Yz?C;i(sU`bwpW4`@zw~hJ`Tt_Y6m~0KT%NmY!D{EN5gzN(UwYU|m`P2Zc`A;an>F+*F%(7P2 zLHtKy&0Ci_I7wmx{oVN;f?>^D|Hiq)nzx?DUKjpuVz#xtJAmJAJ#ITs0x8uNXOT07>%!A;W`>oHM?FDn8$0CcaSps&V3BTO~{B}2275F}p=i9dH_-$EJ zATpZ)=0fn>;i_H3Zci|<+i!r~K7#B$t}3&>M9%JJt-a4@DfNNpozp=X^kQ`Vkh?VQ znC_m0Lgi7xy;m);l-l636wL3gFlBcw*K!(kp6szFGWVo{tK-Komko6u##7>7^sLW)2iFXU})S7tV5Q*@ZnD1)tXVRzOVFvEf zgat36|M_FV3&DcRvp(u+J(zIeml5t7S*Ml4`x=gnZy&r@_ecMdYqfCoh9$M!dqde& zJwfTWIwF~4GRG{A;ln#eWbuFe>cpAhN}q)B^AczF=UOiJ##i%Su5C%2Ii73s?)VU8 z)_A!_y~?}e!#T=%s4{DuAKy#{`~k8?MEF$>!Alz2A=EAWw{~#qY19jG>$-W=3%Hzy z&l%%H4zgLpk%3&;Im(zNIDW>jw`*o6UK`%BYq1mi`26C9)Te+|oc zr5|>Eh+x<4p8Z#{Ht08g*md}XzXls2I588yF8D8L>l6dOZc_!n-nj*SJ%w}xhZTrl z_hsq$^~=8netoQgU!Q6Vbzcq!s}}tF0B}u$U;n17vO5EO$^bw7I@cQU>o=bQzwYY= zhPw^;bxB|F>rLs0NcxTVbxHf{KP@jAYYhXxZgcOPec?4BXXMGd+ayxl; zf%z*0V=nQnO0a$={?&Eic89#{2J3fAzIW!+;BOa$IjjUzC-OE-lXts4&A{>Xi8kfk ztzqF4DF@f;yxuZB?^f;1bO|%pniMj6ApunfJ>> zBi?Yp2Dc;q`TI+zBJ+0Dfy}4Plyy>xY8S7_e4-let!D4pb&Ty3!LNJ4NKps&+x^N> z2p;k17Pp2+e6Qm78V>gW*i|=pM5#OR_b&&Jm`s^<`CG2x_|l{2fx}&1LVXt4!LM)6 zch!T_+4uoCzG2`IKOoHw;MXNhk^M@>3F%`qz^_X>vUkQ>@atakqV+xS>j%(D`$@af zNV}S}_mK85sc%0FaC-FelI>uC&9oPiw%~A=llIHta5Exx*%ut{C%v8JwcyA^r^?t2 z#?O@r7I&42Uq=^+J~+7=U4T4mdTW@{u=5`DR+@1>KxueQ&NYAk1a#JTbk|kruxxbM zIBcu2V8L|!y2xnuCE7eD=$LwSY0jeawYJcyjtB7;-;R)*TewVFP&2RYK@Tm1coZqV@ShECA%>-3?|knweMbs2A1 ztLie2elYRtBHvzYb$=PJ#U}SMpAtD2T_Lh=%K21q?EZ4T3Y*H5bJ^p0f1_UMX&20^ z$b1-iU8ji5+ccT~h<+k^M&$lubd1P-68&lsSoTFb@`o+}%Wg~Frmd5bz98!urH%J3 zTj{WZ1DC$AjlN(7%f17>VqcuY3ZAT;y@e1+O{s6$l)=am=J-kb{u9vAH{ zu|*YWYwx@o2HaJ@?=#=Vn;E|^M0cD7!@dX%dng$8#XF`puE$*jhJ6+o_C?mt*@5@g zfnl# zjx``Q)-8(uY0N(ub}j$Mn)=Z-cguU&>jOBRFJJ%N?76P|hxq!x{^az& z{w>sXYrg(m?wv1Re|KUoXXERCggl+CuRrhMAHJ{u|D*ivzW(6xr5}o~|KQF4UcUa` zvwrx#{=+ldef{Ut*WXu@k(R#xhp6{6@%7)SJ>SyTe-GDX?vTXsyYTg|T6J+yU;nR4 zTKf9qSG4>3+sakb?(5gNYTAAM?Y{nYU;o37e>Y#hRdj)$um8=v&|7}K{#|n3?(07z z&YE^#f4i^0-Phml>u>k<|LcAI+1Nkg>+dpA^jM7N7545nd1~%W)NQm|;&osDJukKU z`rG2`zc2Iq>+64l_B|V4|8M0z?Dat$&zGeEr8iKE1DhJ9XW{*AI`C;QDXo z-ud$NA1CH=HopF4gJ4b{kzT`u75J+Z};^F_x0C-O$fyG z-}XJk^&ieTb6>xs6>)&PI`oR&j5!YWH4A;Mmz3}eR z_QLD#>365{=$C=Ge(<3huD{O2^=BEl{(BxN4HH~{hY8QZQ`ZdFpBaGbAEj(+j_dE% z4A*}N?F|OK8Lod7nD*9i{gvP={Bivb-ZydKb-&Vm{o}c&;rg9z!}SZMe+n4>DID2T zWqMZl{M*bu!&+eT!L~GF^C?>(HvbrydudNE`4oKqdXCNT`FADg_{gl{z!Kw=`e>iRY8MqODO#YM9*_rt17i-VA z^wU4Wbn0&$G*MeuR^~0+PCQ~r^f>#34Zc zi}Q4@RTG=PDu7#FFloZKZF0iL!?*44XHQ{IZohz5IsY-1Wk@9gMqP__mK382+2#pucZ&69@gv0UY## z;a_llOAh*%mH5<~4G#L@VBemyXF5Iq&+++g@b$&#yYP;MuW$DG?#J+3IP(j<-V+Pp z9nYl?jD~aRraqn~-N{#k=Ij@4^>g+oUf!CsFXt_Y&v`HXK=unr`nmLjF@f|K>-z;B z;k<>#tvLI)!96a8^EsM+U~u+lAwww6{@w%4(>DZh_M>I4FyZ*`-Oapa!tvjc=Pu&- z4P)Bp?8}_cUCzFj{uGL{Kjo6vTxJh?r1ZaF&c3!U+0WOPHs6Y`Z}^@6Q0FKMU;pp; zofnSse)N%Vj8evLgTuNFf70(URu9Mj`yS2(Qkd6|=Lu_@!E&%ig=xchHdqm!fE zEk5YK5#)njILg)}zYlsdcmErf*yJ}fS&q(|j4V5l<&9RdL_6`@9@z7B__x zObAoPJ&z2NE^Oh>x00KF^P28&UU>AUXt$@CJ076jN;zqKecEj(zWx*NeJQ_yzxmVj zn{D));q;pw$R}k`^$EP>PnyRaW&gl8@qhof`Ex5DLY|j7OD`0c|1q7*zZE|RW?%G% zT&2h*zUW1+2arp+;r@LD4+J>KPxO5t;EP`T;D3YuBy!FAyoG~&8!`lQ`K2%YFJtm% znLmd3=Z`4njZj?vI@*3YTz)sa^~T?*<>8#OVCYA3){epB*XAwaJ0d)O<|mnlgqtt= z^yhHGh1;AzNEt8ZGD%oD3u-mGn$h+}ml7VooY7RG#yVxsn6Y=|3Hrf%^RK9svwMWc zzW@%u?0*yvzlVPIIvoCow%?t)6%Kz?;#Sw|>=hGT=!o7wG!DPTs?7;Qu~&xnQ^vne z|A?Y|t;78s{=4Du$65UT=wGLgdOc-p%}VL*9{jzq9$d^HGeK!kzc` zktpX8ofj|b#m!nDc}U~%%l<5BACHAAWB<3Yd29{5_PgP=i@f+V=%Yjx-{>4x<8oS@ z4j=os|4e-mhc@>J-@m3;%iI%+@1I6rdQ#{6A3^3L)+qLpy&mBE-@u$3rSturCYkj) zckb(&?)A_r|J>u3^_`Q=hAv1;Z_nX}@wb5i{K z6eiH`w;_k0=l>IY)w55bzWMpPk>dz`%$T#LBExBT{!_Rgf#)BE9v5eU=l@ZVulf)? z|7mB)^G|Ds=YK6Wm0V)D`s!l; zWz_GPVE?7^9c^J8_j85)FMQ|U2m5b&w{z_O70S9j?0**joh$6WnstdY!TujZrZdI< z@3{Z#kNtm_{GZ4EzuwsYpazrp|Ssx2is!* zmp*hJ`50nSCq;bBi_|7r#_w(4l-$&1R>>qsYJof)@gZ=lBxx$3~ z|6c*~nhE=VSDw#f|L3uP!DG*3{{cTf=du6u*#CL#|6ddPpN35(*nbj!X$1TKQ(g=9 zU)AMF41Tb*P7 z+bQezu>U*w?_6R3OaAxFu>Z%A=}fWzyoFzX?Eib@|2*~|8vFkkF2~n__y6%tVET_6pTD<5 z-hW@scd-*LOGHigc>l$!vZ;ml??3nbkMKcioyAuTG;#mkcNqA;)$h|E-u0^{?*CqA z^;N?6ozm2r{~sULIsZT5YGq@9|Ihj7vM0&x*Z(5wJ(&L=-vR$W3*Lp9|3855HU2+w zAD!i21IXlEyZryW++GP>8C)~D%zXd7_QG}RjP#VKd7dCu7AAdhrerF|8(lK72Z$zlv6%_yg!S! zI+Zp%g|?eX8@>jA!;{PFhh9C0wp}XcV#paz4{G6cyx(+&{iD2>x&8|7T{&wv;W9th zf4_9i z`j5x|zPx)&DZOmj=||&v*JZ9hoP4wY{k=NZf3?o_-y&Rp{FKHCukChtZ3F%O_k~-g z`QIOJ^1pwvr}6zX_|W&@yL?28Z`y`C6cg9qrg8mi;5iGIa}eA#;jz`h^%sA%gYZ|L z1`n;;#PyeR9g+w;m~dn8`??_S*t{#?JSU0YS9s=mHk;1|=eb_Bx9dM&xc)XcV~Uy> zn`s^7tDc{<5#C&Bwl%7u4$fOPzU-NsHNJnn&T%^i_IZWcH^BG*8+`vAaNOK*a^3hp z9|H$e{Qn5&IhgOCZ?S8f=Xw+0|IeN9{kL|3@1I9`iO+r`&xi5*-j?rQvPw8_li>U3 z<6rh-cyxg?1;A|%Zz*xz3D;RL|9YM8KZbn$5dN6({lCF_NhrR*JNj3v$nV?_@GmQz z`voSx|59WUpXk31!S^4(#qXDYD}4WYWD)G>Vtm6IX$Dwd!v^199n{jUy~6jWUE676Z7_e@cfdD4?fXMh z`)={guapbtvPSs+F(Lf&_x1bb-yVYRU)u@aAD_*Ewm+J-KR55_yt#VY7k;_X4ve;M zaN1kWj_~vSjkcd>b!ly%^O;JE^tN9_+xO_4f1~XS?mx`L`F|hIzq##;kLJ1XJJV?Y zQ~CA{_?_?LGyHvP7(T;acDZT)f1y6yCeD9N7dZb zo-CdFFLUEb&NGlXBh%phOMk~#f4qtJFTT#jSHH{~;;Ua}+*gtkVyow0zERF56QAWp z%ri3f8@~FDwlCcOE7cb6{}8zU=C*$&<9?ad&;5VT#QlF_#NS;d>}9)>etK`-sd?hR zN9HKm3uUxbqn{ew|CWC0=l)AS74EPjpI^bT{|5bMJMu{xJP!At`DNS`IMLPf^EVp2{}1R>&nm6YeM!}Qj|=ZV zxKD{p#{42OjX@^abK#eX{c$}xtAKrM?&wGS`^j{fuB1*N8sp>~u_|f*; z!uijK^KY-oPn`+p-;Lk?9XjXV=oiBIABxX=IS)oS{}bW-xAcoGt|;aNtEIKy{`cX} z%bYNC*vqbb#hyG=_uKy@oPSM!W3NYMkp3oq`-f3SEq&vDZO@vti(kR{{{x)=d^rD? z!1<4=xjWUZbN=nacDU>oyQ2gfPxgDs+;fEfbGH(ed<4$Fd4Gb)8ilN~Kf%~{Bp&{6`J14(wBy#6E>EIRAOfJr9{=KCEi{6y~C@(ud%6@6+17ue~BEIAcyQd5a0g8_)g>eYkhu6V4s>hdWp98z>s4roPUwy zeG}(jxc;9rUuAM{y}u^Xn-I+VA1MC)JuUwIc@{tYHuNRwOWpDB&$u(tLLZTNLVWuC zL!TF~!@iRFacr8*fBh;p&uGE^7e~swz7_d)KlWd=?mYJ273_b{xUVkuzlQof6YT#H z`A+zM+|L#EU$pbz2m5c{)j9URgR*Xe{c~on;A?sOcdoF1&;Ohm_P+|5x{dwMy+HH% zlYh@y!2T(lZu|V%efE6*{0I3zkNtz>U zTd)TTX_>_VXx_L}@nN>MK7SHg`}|4xiE=7{ z`S)$X{Nv+uV&!~ZIor^T`OACpQE&G7BYS!Ga=x#e&*m&&D{Bz-pDcXKq1t_M zilbqMP4?IGn{$IL+VA2wlj-N^bUugT@YQpcuK4QlAP<Q>|6U9Vn+QIevUz;?=MS z-fiTaLV8ULGHGYm(B3A~?yjc&O#*wESWbJ?um^3uqqwcVBi1)I;Lqrp<A#n>XDX#X*V5E6e((k(-Cyxu=JX8iUk1is`|FgD82`%q+G6}yEjf?z2k>k- z{c_%*__}Gq_-7ax|EcpB|9OmGaQ}ZFjDJR~j`5#5kMaB0y3S+#N@)yph8g4k@cYbf zCX9cdJb&#m{uyBWxq|Ua+dq%-YyR*2>%(6IjQ`YmjNg9-^_gS*M*F|=)On2GzaH@w z!uU^}$M~D4f7LMlZ(&~v#y=TOx?ud?Wu(yuPY zzmEDn6O4bAdqv*2xNWxZ5|=kkd`q}S!+Nmh49=!T&5pI%a$_H}E8iT9&NE=z1Yfnq)0BQo z;l_kt$M;TnC-?ixpxjs`J}-6`7}J(SrF2~nPvbyUZ72qd5-d!7BcC8&+bsiq>v|}S zdBZ*B10o0eB<%R0a3Aa8@(8z7!r2Mer){|R^>9lGSE-yBzs}-mT*igJxo?VpvHXiX zj%K^Rh>1Fidq^MZ~dPwkM(;ZVzE+sUzl>eHC(xV30HUz<@%4Uj*8;J zMH@yeS$o|>Q(k)JSyg?bwnVvh^pYp9dv>w%#)tfVR<)G=uB7bRF-v}Z-GA|%u;i)h z4q1Cw>?ZvLa5Ar=ybyuB4lp-ogu~}$-87=GpmKJ3nj4O7sTaI6jr<8_C2Nx+e=hab zv>=0WN~djXUHAGJ)+@iub^V_xH_C1z+);c9e*Rr$?+7yNKx2%(P_}R^W z(&~%#)*HbzpD$4?$>r3u?Gm`6s#WugDgV{t6V5O1OWJqxE?cpB@$WX>J{I1N8t!eN zJmh_a66RgO?^&!(%kzlS&ClCYB}@-*O;hvqx)Br08^&amm#NAG_)inkxO$Jh#(fx$ zO|MCl-Mbe?$81)6dDG!0MDo4(U+l#-x{oDhw5xZ_=$_IBt=(@5)zylse9#^jVqsKdw)~S)WIS zPq&Xs-3&+U5NR2*lp)J{`iCKlJmV{V`t!*9b1h$&X!&{{*^IKu;s0pL>KmWktkRz7`wOh>AAoGM;>j&Q-3NsO4|N1MTttu&r6+ZcltbP+}rzT>QQl+h)wsq$M1(|*TCW;**T{hgaF{WR`MU7BY?9CiJ&%QHVo;tgNw%Cjg{ zpRyJzeYY0mGD8=J@Nr9F%zy!rj_Pc)DF8}I9fR%^cunu1r&7 z8rD))x$tIct*(l{?>zme^yPfs+3YdC%$`c4&00O7-cmimrrNW%Qx5C6rm)VySbL+4 zD}|~uKAvxUw8w1K>9zG=>N-weW^O8VGY%i1-+~_;EoPo@64ycE@~RP8DTIHI#$x3Jg8N_~d$UpQfU5Vj}Zu->=8&YWY>>eCC4`J|~n zkL&e$jJlM4K#kNT^_u)k#Zx{+iK!{G_G_>(h8@Ev?IV^UHFXY8qg_>M($u~UFOe_1 za^hi|8dKwFEP5+j?bopE(q*e;oy(>ic{p?Q(p4u}8`{tQlRAs?yo@I&xyIkBtgNF= zoFpyjXH%F5@~r)Qb?5>kcpjrF&wtMUE~PK)P<<JvQ;}r#Ot5q5?R5g}b%LF=jrKZIrQR9W^fo(T z>IF)lY&At|UyK)8do8or8;TjjQoQ-85nQuruf7YEzK75op2>HoZlDcIo0WEYkoL4o zd-k_mFV7ABcH3^;=*+}jpPI{f@8mv%`_R-Gv0i0f>`Z=VBr*2?W$z*x`;}{RV-J$9 zFDTuJpmcrgw~)C;jmnEv?V_XR#>!YOZ9JOtFQSdhzN;O`8c!PK+!MHmYTHGoww-A; z+V&LMX(sLU8rtn-+V9o0?MbxliF0Vz+Bn#}Ri%Ba=<}h+D)T&)?oh_o(Vp{}i|Uz+ zKBK+Me01Cz&YYxHC^9D@``G`C9aE&(w0TK%`(ox38}%o@WnNOrgUm}xQjRt+i7+;)>C8A>w z80}m2?cOI|6kBLG-yJ9Z9E+my0`mBFvBfiCAARS)_^-~=-*+W#Gap^tpKkw#tkFMT z1vlaOBG#CnWX_0CoxT;!Cvj?IL-FY8CvChdQq`kkn?xW}B;U{eVE)6!FL|a#Vqbi0 zji^|yrfpcQ-uKLI!mU9!W-e%`rq31G7k(nPz-<@{P!@boA-*PpwhVLV5 zS=(oA`#JwNkqr%SLl={doUP;S@8KK5B7a0bB^4R9xU(q(ncuzS;TemgVKr^6fN*8V zzmIR_JR=z|^XS901nQUwJ#Xl-THYSi^EQXP9Y!7_Z-@1~ zm8rcNWIQP&Z^g**Gx9b^?d`i;?d998_SW*HJfNJ~t>>#u?cI<|nxccxA9y54Kc#=koUraD&x8Wn z*8#@*@_W^rQX*sfL?n5t=BTlky6qSA5nZc1y2Mo$&7Qa|J{Rq7Y`xMW+0DItsHbWN z9OY-&dm-b2^!XK((H8pqz7Tyro<48rP&WE)l0_LSI*M0SE?t35FFLoIvJyLi$-iHo z8h0u4T4_D9WujBd9A1omBXdrkMQOa7Fx2y<+jc;K$`=vBK$$? z@Z{y_kh8*0T;@|&Yztck* zE7;Z=QyY(@jqkN|-p1{;@p4reD;%O2+Bg_RKby2^bZ@Oq>vOlcO@EItF|_Fke6x>p z8*0I;uvu2d+~yjCzOS{{@A6%JPp|^!#Z2Z~sjI0!^S5^&ZRXnie9i`l@a52E2GX|O z#KribwdKYzAPdrs6rg*9>%4I43_k~kT?;B}5 z7xKQ=!X6~{q?^AP%zv@kf9L~n*X-;EG2~*d9>11$m5Ke6#2ja%UB#&byy>)~IHxk# zBX>AlTNoQxTP&qdCi~k}uCym?9BEI|-lhGR|6g+_|2Ow+w>`IK6Bu)|Ex!21IBZed zB}-jyoAS*x`fDa_+_5BddE195eQ8@>w_4_kQ= zL@m+M^>AM*@tD$+dP>&ga$K^^6&IiEJ-~M&XS}-1wNAo^x5(!Y-#WdWgpqVo)a9;& z`nTz-&lS(JA+HVjBri581MZo8qhNR1sBd%pr|$X#dTMBFS>`4~2l|ZuC+$LX5d0E6 zlGbEBx}A0)b)zybirqhO$LU9fOP8%i9nF#d)TmOyWAngm+yAa_g+0V~f~OWIddexg zny8zVl{xzFNPcg>Q7}JcuGFh7ckoR+k|(=sF1^M*ZJ|A;OpWv|cA&=y2Pa0;e{P(! z&=Io%%xqkA18h2KiP!O;x7BCEL;zvi_GP!MOPAD;$F()FyHM% zA8c0bUfIK^Fju_>*KixZt0 zyceJiGKrkSba^C?VAfh(vZqzb z(#ih#2+GAM%img@zQfkYnj0w7(YzmRaX|5GDcfTBv}t@NWh;G5<&tv!kn)r^l1>>Z zq#38!y*bD%WguaDb}-TKmr0J}Y&EP3f~O{uS4Umek9JD~_yJ zcz?(CJ5smt{=@ifu31XzW&14tdU(3vc8jX9{TwIWk0igAp5FKq&C@3+J)M^m=DX~HTd;jW z>aFa7n?Lk_U4H;iy_|RRx6eRNDB#R>B9pfBf^b%k~xAmHNNb5wgDd zBI_w9sP{(dPs&(i_=vR0^W4>pm&W&35bv!+|K@Tvr(Jfk;GKXR)77LveIU7l$ZP}`$1uwo~1$QYKR*;xa9VrOmcp&YGYoND31_piAA+sewf zvAKTC_@iO0*evTTN==E_0IUJ+vDg|C7T>ojP3hOboHrd?pm13abTmaNbc88YO1x6K zl69;yi`tMtdzSE12sfR4mXV$xzY+bmU&UC`dco4q_aoA>P+ww4n)NZW4e?XtH?O;h zO)6!^IIG#85Awg*8chq*!65u=A7AA)lZ0-rnJ8UYGocQ&HIuk@)=O41#{N$6=<6k( zz$;N&$3=pX7R6; ze1KfRYbEdUPVBY@+F7ycxe9D{Q7(7ZVi$eUwURFrTkrWwC~VyWwjRJLzaX~m0bBQ+ z18lu*ykBQ*J>@Hat>;YdKDPb<-<%1yK9BE0Ve30Z25hpfVCxrYX?Go47aNRqn|ASU zj|p3swIBoEeunm21{N>ax{YybXW)52#r=$1`g#!S)yZw}dKr@vy!lsZ;{x{##)lS6 zeP#!kI_+D>@{>qo7ik)6P)~xX%b3&|re1CFk4tN~Yw3qrFFIpPy#s8m0t_OLc~UT@ zP}o}b8DVQP!PaKB!PCvyngiS+84N?#R6=2EVz=jmLpZ>W1n;qjz}CJ)7{S((iK7*^ z28MKJgdd*@#?~S@i!g!j9Cl^Aowx<#aE8Fv`qN$wY)$l>okMIl?YVb(!AMD~|8mWy z6)bJT?XH{FgI7iBc$vf{eWDC~-NW3pGh7+h1Ds3BcdAvnOvAXq{siNS&~Y*28zY

jTWmV9kvg`QEg|jYpJ6YrEyzh# zv6t5r`JU8QD7%j+r^oW{sC+44ACIUs^8Fj^KCxSWquG5u0`_rykbNwebR+Y^ z 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 u@2j9-g&tfMt9 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

*z=)Y`&pQH$`^^nZ_KpB^^Hw}-{rck=L}ghn!G% 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 Date: Fri, 7 Apr 2023 01:24:00 +0900 Subject: [PATCH 167/187] Apple M1 chipset support for cwebp --- .../com/didiglobal/booster/kotlinx/OS.kt | 8 +++++--- .../booster/task/compression/cwebp/Cwebp.kt | 17 ++++++++++------- .../bin/macosx/{ => x86_64}/10.12/cwebp | Bin .../bin/macosx/{ => x86_64}/10.13/cwebp | Bin .../bin/macosx/{ => x86_64}/10.14/cwebp | Bin .../bin/macosx/{ => x86_64}/10.15/cwebp | Bin 6 files changed, 15 insertions(+), 10 deletions(-) rename booster-task-compression-cwebp/src/main/resources/bin/macosx/{ => x86_64}/10.12/cwebp (100%) rename booster-task-compression-cwebp/src/main/resources/bin/macosx/{ => x86_64}/10.13/cwebp (100%) rename booster-task-compression-cwebp/src/main/resources/bin/macosx/{ => x86_64}/10.14/cwebp (100%) rename booster-task-compression-cwebp/src/main/resources/bin/macosx/{ => x86_64}/10.15/cwebp (100%) diff --git a/booster-kotlinx/src/main/kotlin/com/didiglobal/booster/kotlinx/OS.kt b/booster-kotlinx/src/main/kotlin/com/didiglobal/booster/kotlinx/OS.kt index 7a2c7bd71..bbcd6b27a 100644 --- a/booster-kotlinx/src/main/kotlin/com/didiglobal/booster/kotlinx/OS.kt +++ b/booster-kotlinx/src/main/kotlin/com/didiglobal/booster/kotlinx/OS.kt @@ -4,7 +4,11 @@ object OS { val name: String = System.getProperty("os.name", "").lowercase() - val arch: String = System.getProperty("os.arch", "").lowercase() + val arch: String = try { + "arch".execute().stdout.trim().lowercase() + } catch (e: Throwable) { + System.getProperty("os.arch", "").lowercase() + } val version = object : Comparable { @@ -62,8 +66,6 @@ object OS { fun isMac() = name.startsWith("mac") - fun isArm64Chip() = arch.startsWith("aarch64") - fun isWindows() = name.startsWith("windows") } diff --git a/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/Cwebp.kt b/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/Cwebp.kt index 40db9a806..ba56ed1b7 100644 --- a/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/Cwebp.kt +++ b/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/Cwebp.kt @@ -57,13 +57,16 @@ internal val PREBUILT_CWEBP_EXECUTABLE = "bin/" + when { "x64", "x86_64", "amd64" -> "x64" else -> TODO("Unsupported architecture ${OS.arch}") } - OS.isMac() -> "macosx/" + when { - OS.isArm64Chip() -> "arm64" - OS.version >= "10.15" -> "10.15" - OS.version >= "10.14" -> "10.14" - OS.version >= "10.13" -> "10.13" - OS.version >= "10.12" -> "10.12" - else -> TODO("Unsupported system version ${OS.version}") + OS.isMac() -> "macosx/" + when (OS.arch) { + "arm64" -> "arm64" + "x86_64" -> "x86_64/" + when { + OS.version >= "10.15" -> "10.15" + OS.version >= "10.14" -> "10.14" + OS.version >= "10.13" -> "10.13" + OS.version >= "10.12" -> "10.12" + else -> TODO("Unsupported system version ${OS.version}") + } + else -> TODO("Unsupported architecture ${OS.arch}") } OS.isWindows() -> "windows/" + when (OS.arch) { "x64", "x86_64", "amd64" -> "x64" diff --git a/booster-task-compression-cwebp/src/main/resources/bin/macosx/10.12/cwebp b/booster-task-compression-cwebp/src/main/resources/bin/macosx/x86_64/10.12/cwebp similarity index 100% rename from booster-task-compression-cwebp/src/main/resources/bin/macosx/10.12/cwebp rename to booster-task-compression-cwebp/src/main/resources/bin/macosx/x86_64/10.12/cwebp diff --git a/booster-task-compression-cwebp/src/main/resources/bin/macosx/10.13/cwebp b/booster-task-compression-cwebp/src/main/resources/bin/macosx/x86_64/10.13/cwebp similarity index 100% rename from booster-task-compression-cwebp/src/main/resources/bin/macosx/10.13/cwebp rename to booster-task-compression-cwebp/src/main/resources/bin/macosx/x86_64/10.13/cwebp diff --git a/booster-task-compression-cwebp/src/main/resources/bin/macosx/10.14/cwebp b/booster-task-compression-cwebp/src/main/resources/bin/macosx/x86_64/10.14/cwebp similarity index 100% rename from booster-task-compression-cwebp/src/main/resources/bin/macosx/10.14/cwebp rename to booster-task-compression-cwebp/src/main/resources/bin/macosx/x86_64/10.14/cwebp diff --git a/booster-task-compression-cwebp/src/main/resources/bin/macosx/10.15/cwebp b/booster-task-compression-cwebp/src/main/resources/bin/macosx/x86_64/10.15/cwebp similarity index 100% rename from booster-task-compression-cwebp/src/main/resources/bin/macosx/10.15/cwebp rename to booster-task-compression-cwebp/src/main/resources/bin/macosx/x86_64/10.15/cwebp From d101396a915c9eb5de7c32fa92196c9b16865bf5 Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Sat, 20 May 2023 00:35:20 +0900 Subject: [PATCH 168/187] Fix cwebp for macosx support --- .../com/didiglobal/booster/kotlinx/OS.kt | 8 +++-- .../booster/task/compression/cwebp/Cwebp.kt | 33 ++++++++++-------- .../bin/macosx/{x86_64 => x64}/10.12/cwebp | Bin .../bin/macosx/{x86_64 => x64}/10.13/cwebp | Bin .../bin/macosx/{x86_64 => x64}/10.14/cwebp | Bin .../bin/macosx/{x86_64 => x64}/10.15/cwebp | Bin 6 files changed, 23 insertions(+), 18 deletions(-) rename booster-task-compression-cwebp/src/main/resources/bin/macosx/{x86_64 => x64}/10.12/cwebp (100%) rename booster-task-compression-cwebp/src/main/resources/bin/macosx/{x86_64 => x64}/10.13/cwebp (100%) rename booster-task-compression-cwebp/src/main/resources/bin/macosx/{x86_64 => x64}/10.14/cwebp (100%) rename booster-task-compression-cwebp/src/main/resources/bin/macosx/{x86_64 => x64}/10.15/cwebp (100%) diff --git a/booster-kotlinx/src/main/kotlin/com/didiglobal/booster/kotlinx/OS.kt b/booster-kotlinx/src/main/kotlin/com/didiglobal/booster/kotlinx/OS.kt index bbcd6b27a..6e965ea8f 100644 --- a/booster-kotlinx/src/main/kotlin/com/didiglobal/booster/kotlinx/OS.kt +++ b/booster-kotlinx/src/main/kotlin/com/didiglobal/booster/kotlinx/OS.kt @@ -4,10 +4,12 @@ object OS { val name: String = System.getProperty("os.name", "").lowercase() - val arch: String = try { - "arch".execute().stdout.trim().lowercase() + val arch: String = System.getProperty("os.arch", "").lowercase() + + val uname = try { + "uname -a".execute().stdout.trim().lowercase() } catch (e: Throwable) { - System.getProperty("os.arch", "").lowercase() + arch } val version = object : Comparable { diff --git a/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/Cwebp.kt b/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/Cwebp.kt index ba56ed1b7..f14eee40a 100644 --- a/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/Cwebp.kt +++ b/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/Cwebp.kt @@ -23,6 +23,7 @@ class Cwebp internal constructor(val supportAlpha: Boolean) : CompressionTool(Co true -> CwebpCompressOpaqueFlatImages::class else -> CwebpCompressFlatImages::class } + else -> when (supportAlpha) { true -> CwebpCompressOpaqueImages::class else -> CwebpCompressImages::class @@ -50,27 +51,29 @@ class Cwebp internal constructor(val supportAlpha: Boolean) : CompressionTool(Co } +private val X64 = setOf("x64", "x86_64", "amd64") + internal val CWEBP = "$PROGRAM${OS.executableSuffix}" internal val PREBUILT_CWEBP_EXECUTABLE = "bin/" + when { - OS.isLinux() -> "linux/" + when (OS.arch) { - "x64", "x86_64", "amd64" -> "x64" - else -> TODO("Unsupported architecture ${OS.arch}") + OS.isLinux() -> { + "linux/" + if (OS.arch in X64) "x64" else TODO("Unsupported architecture ${OS.arch}") } - OS.isMac() -> "macosx/" + when (OS.arch) { - "arm64" -> "arm64" - "x86_64" -> "x86_64/" + when { - OS.version >= "10.15" -> "10.15" - OS.version >= "10.14" -> "10.14" - OS.version >= "10.13" -> "10.13" - OS.version >= "10.12" -> "10.12" - else -> TODO("Unsupported system version ${OS.version}") + OS.isMac() -> { + "macosx/" + when { + "arm64" == OS.arch || "arm64" in OS.uname -> "arm64" + OS.arch in X64 -> "x64/" + when { + OS.version >= "10.15" -> "10.15" + OS.version >= "10.14" -> "10.14" + OS.version >= "10.13" -> "10.13" + OS.version >= "10.12" -> "10.12" + else -> TODO("Unsupported system version ${OS.version}") + } + else -> TODO("Unsupported architecture ${OS.arch}") } - else -> TODO("Unsupported architecture ${OS.arch}") } - OS.isWindows() -> "windows/" + when (OS.arch) { - "x64", "x86_64", "amd64" -> "x64" - else -> TODO("Unsupported architecture ${OS.arch}") + OS.isWindows() -> { + "windows/" + if (OS.arch in X64) "x64" else TODO("Unsupported architecture ${OS.arch}") } else -> TODO("Unsupported OS ${OS.name}") } + "/$CWEBP" diff --git a/booster-task-compression-cwebp/src/main/resources/bin/macosx/x86_64/10.12/cwebp b/booster-task-compression-cwebp/src/main/resources/bin/macosx/x64/10.12/cwebp similarity index 100% rename from booster-task-compression-cwebp/src/main/resources/bin/macosx/x86_64/10.12/cwebp rename to booster-task-compression-cwebp/src/main/resources/bin/macosx/x64/10.12/cwebp diff --git a/booster-task-compression-cwebp/src/main/resources/bin/macosx/x86_64/10.13/cwebp b/booster-task-compression-cwebp/src/main/resources/bin/macosx/x64/10.13/cwebp similarity index 100% rename from booster-task-compression-cwebp/src/main/resources/bin/macosx/x86_64/10.13/cwebp rename to booster-task-compression-cwebp/src/main/resources/bin/macosx/x64/10.13/cwebp diff --git a/booster-task-compression-cwebp/src/main/resources/bin/macosx/x86_64/10.14/cwebp b/booster-task-compression-cwebp/src/main/resources/bin/macosx/x64/10.14/cwebp similarity index 100% rename from booster-task-compression-cwebp/src/main/resources/bin/macosx/x86_64/10.14/cwebp rename to booster-task-compression-cwebp/src/main/resources/bin/macosx/x64/10.14/cwebp diff --git a/booster-task-compression-cwebp/src/main/resources/bin/macosx/x86_64/10.15/cwebp b/booster-task-compression-cwebp/src/main/resources/bin/macosx/x64/10.15/cwebp similarity index 100% rename from booster-task-compression-cwebp/src/main/resources/bin/macosx/x86_64/10.15/cwebp rename to booster-task-compression-cwebp/src/main/resources/bin/macosx/x64/10.15/cwebp From 793216424fd4d6936f98d6923a3e0c6cb5823d12 Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Sat, 20 May 2023 01:38:14 +0900 Subject: [PATCH 169/187] [skip ci] Update README & RELEASE-NOTES --- README.md | 4 ++-- RELEASE-NOTES.md | 5 +++++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 80f4f776b..75c376d43 100644 --- a/README.md +++ b/README.md @@ -74,7 +74,7 @@ The best practise of using Booster is integrating the specific module to solve t ```groovy buildscript { - ext.booster_version = '4.15.0' + ext.booster_version = '4.16.1' repositories { google() mavenCentral() @@ -122,7 +122,7 @@ The `plugins` DSL also supported since Booster *3.0.0* ```groovy plugins { - id 'com.didiglobal.booster' version '4.15.0' + id 'com.didiglobal.booster' version '4.16.1' } ``` diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index 3b13a8b03..6ce551980 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -1,3 +1,8 @@ +## v4.16.1 + +- Fix issue [#406](https://github.com/didi/booster/issues/406) : incremental build with jar removal +- Fix issue [#407](https://github.com/didi/booster/issues/407) : Apple M1 chipset support for cwebp + ## v4.15.0 - Fix issue [#381](https://github.com/didi/booster/issues/381) From d421dc5594cf71cb008948fd589433da20d74f0d Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Tue, 23 May 2023 20:41:43 +0900 Subject: [PATCH 170/187] Fix `Project.getJarTaskProviders(BaseVariant?)` with projects do not have `android` extension For example: ``` configurations.maybeCreate("default") artifacts.add("default", file(xxx.aar)) ``` --- .../main/kotlin/com/didiglobal/booster/gradle/Project.kt | 4 ++-- .../main/kotlin/com/didiglobal/booster/gradle/Version.kt | 2 ++ .../kotlin/com/didiglobal/booster/gradle/AGPInterface.kt | 7 +++++++ .../booster/task/analyser/AnalysisVariantProcessor.kt | 4 ++-- 4 files changed, 13 insertions(+), 4 deletions(-) diff --git a/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/Project.kt b/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/Project.kt index d2e8dc8f5..96abbb360 100644 --- a/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/Project.kt +++ b/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/Project.kt @@ -133,7 +133,7 @@ fun Project.getJars(variant: BaseVariant? = null): Set = getJarTaskProvide }.flatten().toSet() fun Project.getJarTaskProviders(variant: BaseVariant? = null): Collection> = when { - isAndroid -> when (getAndroid()) { + isAndroid -> when (getAndroidOrNull()) { is LibraryExtension -> filterByVariant(variant).mapNotNull(BaseVariant::createFullJarTaskProvider) is AppExtension -> filterByVariant(variant).mapNotNull(BaseVariant::bundleClassesTaskProvider) else -> emptyList() @@ -143,7 +143,7 @@ fun Project.getJarTaskProviders(variant: BaseVariant? = null): Collection { - val variants = when (val android = getAndroid()) { + val variants = when (val android = getAndroidOrNull()) { is AppExtension -> android.applicationVariants is LibraryExtension -> android.libraryVariants else -> emptyList() diff --git a/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/Version.kt b/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/Version.kt index 4c920fea4..eea35b813 100644 --- a/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/Version.kt +++ b/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/Version.kt @@ -13,3 +13,5 @@ val GTE_V4_2: Boolean by lazy { AGP.revision.major > 4 || (AGP.revision.major == val GTE_V4_1: Boolean by lazy { AGP.revision.major > 4 || (AGP.revision.major == 4 && AGP.revision.minor >= 1) } val GTE_V7_X: Boolean by lazy { AGP.revision.major >= 7 } +val GTE_V7_2: Boolean by lazy { AGP.revision.major > 7 || (AGP.revision.major == 7 && AGP.revision.minor >= 2) } +val GTE_V7_1: Boolean by lazy { AGP.revision.major > 7 || (AGP.revision.major == 7 && AGP.revision.minor >= 1) } diff --git a/booster-android-gradle-compat/src/main/kotlin/com/didiglobal/booster/gradle/AGPInterface.kt b/booster-android-gradle-compat/src/main/kotlin/com/didiglobal/booster/gradle/AGPInterface.kt index 53622ef3c..fcd12488a 100644 --- a/booster-android-gradle-compat/src/main/kotlin/com/didiglobal/booster/gradle/AGPInterface.kt +++ b/booster-android-gradle-compat/src/main/kotlin/com/didiglobal/booster/gradle/AGPInterface.kt @@ -18,6 +18,7 @@ import com.android.repository.Revision import com.android.sdklib.BuildToolInfo import org.gradle.api.Project import org.gradle.api.Task +import org.gradle.api.UnknownDomainObjectException import org.gradle.api.artifacts.ArtifactCollection import org.gradle.api.artifacts.component.ComponentIdentifier import org.gradle.api.artifacts.result.ResolvedArtifactResult @@ -218,6 +219,12 @@ interface AGPInterface { inline fun Project.getAndroid(): T = extensions.getByName("android") as T +inline fun Project.getAndroidOrNull(): T? = try { + extensions.getByName("android") as? T +} catch (e: UnknownDomainObjectException) { + null +} + private val REVISION: Revision by lazy { Revision.parseRevision(Version.ANDROID_GRADLE_PLUGIN_VERSION) } diff --git a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/AnalysisVariantProcessor.kt b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/AnalysisVariantProcessor.kt index 8773b564a..f34022275 100644 --- a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/AnalysisVariantProcessor.kt +++ b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/AnalysisVariantProcessor.kt @@ -6,7 +6,7 @@ import com.android.build.gradle.LibraryExtension import com.android.build.gradle.api.BaseVariant import com.android.build.gradle.internal.tasks.factory.dependsOn import com.didiglobal.booster.cha.asm.AsmClassSetCache -import com.didiglobal.booster.gradle.getAndroid +import com.didiglobal.booster.gradle.getAndroidOrNull import com.didiglobal.booster.gradle.getJarTaskProviders import com.didiglobal.booster.gradle.getTaskName import com.didiglobal.booster.gradle.getUpstreamProjects @@ -65,7 +65,7 @@ class AnalysisVariantProcessor : VariantProcessor { } private inline fun Project.setupAndroid() { - when (val android = getAndroid()) { + when (val android = getAndroidOrNull()) { is LibraryExtension -> android.libraryVariants is AppExtension -> android.applicationVariants else -> emptyList() From d70d53b408fc388bfb5167774eb614584198dedf Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Tue, 23 May 2023 23:25:11 +0900 Subject: [PATCH 171/187] Add extension `BaseVariant.localAndroidResources` --- .../didiglobal/booster/gradle/AGPInterface.kt | 2 + .../booster/android/gradle/v3_3/V33.kt | 7 + .../booster/android/gradle/v3_4/V34.kt | 7 + .../booster/android/gradle/v3_5/V35.kt | 7 + .../booster/android/gradle/v3_6/V36.kt | 5 + .../booster/android/gradle/v4_0/V40.kt | 5 + .../booster/android/gradle/v4_1/V41.kt | 5 + .../booster/android/gradle/v4_2/V42.kt | 5 + .../booster/android/gradle/v7_0/V70.kt | 5 + .../booster/android/gradle/v7_1/V71.kt | 5 + .../booster/android/gradle/v7_2/V72.kt | 5 + .../booster/android/gradle/v7_3/V73.kt | 15 + .../booster/android/gradle/v7_4/V74.kt | 341 ++++++++++++++++++ 13 files changed, 414 insertions(+) create mode 100644 booster-android-gradle-v7_4/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_4/V74.kt diff --git a/booster-android-gradle-compat/src/main/kotlin/com/didiglobal/booster/gradle/AGPInterface.kt b/booster-android-gradle-compat/src/main/kotlin/com/didiglobal/booster/gradle/AGPInterface.kt index fcd12488a..043871782 100644 --- a/booster-android-gradle-compat/src/main/kotlin/com/didiglobal/booster/gradle/AGPInterface.kt +++ b/booster-android-gradle-compat/src/main/kotlin/com/didiglobal/booster/gradle/AGPInterface.kt @@ -108,6 +108,8 @@ interface AGPInterface { @Deprecated(message = "Deprecated, don't use it") val BaseVariant.rawAndroidResources: FileCollection + val BaseVariant.localAndroidResources: FileCollection + val BaseVariant.javaCompilerTaskProvider: TaskProvider val BaseVariant.preBuildTaskProvider: TaskProvider diff --git a/booster-android-gradle-v3_3/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_3/V33.kt b/booster-android-gradle-v3_3/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_3/V33.kt index e9dd0d1a2..ef25482f9 100644 --- a/booster-android-gradle-v3_3/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_3/V33.kt +++ b/booster-android-gradle-v3_3/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_3/V33.kt @@ -111,6 +111,13 @@ internal object V33 : AGPInterface { override val BaseVariant.rawAndroidResources: FileCollection get() = variantData.allRawAndroidResources + override val BaseVariant.localAndroidResources: FileCollection + get() = variantData.androidResources.values.map { + it.get() + }.reduce { collection, file -> + collection.plus(file) + } + override fun BaseVariant.getArtifactCollection( configType: AndroidArtifacts.ConsumedConfigType, scope: ArtifactScope, diff --git a/booster-android-gradle-v3_4/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_4/V34.kt b/booster-android-gradle-v3_4/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_4/V34.kt index 6521f0118..f72ee72c8 100644 --- a/booster-android-gradle-v3_4/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_4/V34.kt +++ b/booster-android-gradle-v3_4/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_4/V34.kt @@ -115,6 +115,13 @@ internal object V34 : AGPInterface { override val BaseVariant.rawAndroidResources: FileCollection get() = variantData.allRawAndroidResources + override val BaseVariant.localAndroidResources: FileCollection + get() = variantData.androidResources.values.map { + it.get() + }.reduce { collection, file -> + collection.plus(file) + } + override fun BaseVariant.getArtifactCollection( configType: AndroidArtifacts.ConsumedConfigType, scope: ArtifactScope, diff --git a/booster-android-gradle-v3_5/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_5/V35.kt b/booster-android-gradle-v3_5/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_5/V35.kt index 952270cdc..f88043725 100644 --- a/booster-android-gradle-v3_5/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_5/V35.kt +++ b/booster-android-gradle-v3_5/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_5/V35.kt @@ -112,6 +112,13 @@ internal object V35 : AGPInterface { override val BaseVariant.rawAndroidResources: FileCollection get() = variantData.allRawAndroidResources + override val BaseVariant.localAndroidResources: FileCollection + get() = variantData.androidResources.values.map { + it.get() + }.reduce { collection, file -> + collection.plus(file) + } + override fun BaseVariant.getArtifactCollection( configType: AndroidArtifacts.ConsumedConfigType, scope: AndroidArtifacts.ArtifactScope, diff --git a/booster-android-gradle-v3_6/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_6/V36.kt b/booster-android-gradle-v3_6/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_6/V36.kt index f1d41b022..1ccf000aa 100644 --- a/booster-android-gradle-v3_6/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_6/V36.kt +++ b/booster-android-gradle-v3_6/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_6/V36.kt @@ -124,6 +124,11 @@ object V36 : AGPInterface { override val BaseVariant.rawAndroidResources: FileCollection get() = variantData.allRawAndroidResources + override val BaseVariant.localAndroidResources: FileCollection + get() = variantData.androidResources.values.reduce { collection, file -> + collection.plus(file) + } + override fun BaseVariant.getArtifactCollection( configType: AndroidArtifacts.ConsumedConfigType, scope: ArtifactScope, diff --git a/booster-android-gradle-v4_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_0/V40.kt b/booster-android-gradle-v4_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_0/V40.kt index 859c2289b..e5b3a89ba 100644 --- a/booster-android-gradle-v4_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_0/V40.kt +++ b/booster-android-gradle-v4_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_0/V40.kt @@ -139,6 +139,11 @@ internal object V40 : AGPInterface { override val BaseVariant.rawAndroidResources: FileCollection get() = variantData.allRawAndroidResources + override val BaseVariant.localAndroidResources: FileCollection + get() = variantData.androidResources.values.reduce { collection, file -> + collection.plus(file) + } + override fun BaseVariant.getArtifactCollection( configType: AndroidArtifacts.ConsumedConfigType, scope: AndroidArtifacts.ArtifactScope, diff --git a/booster-android-gradle-v4_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_1/V41.kt b/booster-android-gradle-v4_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_1/V41.kt index 7c9906596..6e8920c2a 100644 --- a/booster-android-gradle-v4_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_1/V41.kt +++ b/booster-android-gradle-v4_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_1/V41.kt @@ -156,6 +156,11 @@ internal object V41 : AGPInterface { override val BaseVariant.rawAndroidResources: FileCollection get() = componentProperties.variantData.allRawAndroidResources + override val BaseVariant.localAndroidResources: FileCollection + get() = componentProperties.variantData.androidResources.values.reduce { collection, file -> + collection.plus(file) + } + override fun BaseVariant.getArtifactCollection( configType: AndroidArtifacts.ConsumedConfigType, scope: ArtifactScope, diff --git a/booster-android-gradle-v4_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42.kt b/booster-android-gradle-v4_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42.kt index 33b03d957..c6a820de8 100644 --- a/booster-android-gradle-v4_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42.kt +++ b/booster-android-gradle-v4_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42.kt @@ -157,6 +157,11 @@ internal object V42 : AGPInterface { override val BaseVariant.rawAndroidResources: FileCollection get() = component.variantData.allRawAndroidResources + override val BaseVariant.localAndroidResources: FileCollection + get() = component.variantData.androidResources.values.reduce { collection, file -> + collection.plus(file) + } + override fun BaseVariant.getArtifactCollection( configType: AndroidArtifacts.ConsumedConfigType, scope: ArtifactScope, diff --git a/booster-android-gradle-v7_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_0/V70.kt b/booster-android-gradle-v7_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_0/V70.kt index 292cf131a..ef36cc291 100644 --- a/booster-android-gradle-v7_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_0/V70.kt +++ b/booster-android-gradle-v7_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_0/V70.kt @@ -165,6 +165,11 @@ internal object V70 : AGPInterface { override val BaseVariant.rawAndroidResources: FileCollection get() = component.variantData.allRawAndroidResources + override val BaseVariant.localAndroidResources: FileCollection + get() = component.variantData.androidResources.values.reduce { collection, file -> + collection.plus(file) + } + override fun BaseVariant.getArtifactCollection( configType: AndroidArtifacts.ConsumedConfigType, scope: ArtifactScope, diff --git a/booster-android-gradle-v7_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_1/V71.kt b/booster-android-gradle-v7_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_1/V71.kt index c65921f16..d998a64f8 100644 --- a/booster-android-gradle-v7_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_1/V71.kt +++ b/booster-android-gradle-v7_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_1/V71.kt @@ -161,6 +161,11 @@ internal object V71 : AGPInterface { override val BaseVariant.rawAndroidResources: FileCollection get() = component.variantData.allRawAndroidResources + override val BaseVariant.localAndroidResources: FileCollection + get() = component.variantData.androidResources.values.reduce { collection, file -> + collection.plus(file) + } + override fun BaseVariant.getArtifactCollection( configType: AndroidArtifacts.ConsumedConfigType, scope: ArtifactScope, diff --git a/booster-android-gradle-v7_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_2/V72.kt b/booster-android-gradle-v7_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_2/V72.kt index df713b1a3..2e07bc139 100644 --- a/booster-android-gradle-v7_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_2/V72.kt +++ b/booster-android-gradle-v7_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_2/V72.kt @@ -171,6 +171,11 @@ internal object V72 : AGPInterface { override val BaseVariant.rawAndroidResources: FileCollection get() = component.variantData.allRawAndroidResources + override val BaseVariant.localAndroidResources: FileCollection + get() = component.variantData.androidResources.values.reduce { collection, file -> + collection.plus(file) + } + override fun BaseVariant.getArtifactCollection( configType: AndroidArtifacts.ConsumedConfigType, scope: ArtifactScope, diff --git a/booster-android-gradle-v7_3/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_3/V73.kt b/booster-android-gradle-v7_3/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_3/V73.kt index eead4116c..3ce5e7de5 100644 --- a/booster-android-gradle-v7_3/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_3/V73.kt +++ b/booster-android-gradle-v7_3/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_3/V73.kt @@ -186,6 +186,21 @@ internal object V73 : AGPInterface { return allRes } + override val BaseVariant.localAndroidResources: FileCollection + get() { + val localRes: ConfigurableFileCollection = component.services.fileCollection() + + localRes.from(component.sources.res.getVariantSources().map { allSources -> + allSources.map { directoryEntries -> + directoryEntries.directoryEntries.map { + it.asFiles(component.services::directoryProperty) + } + } + }) + + return localRes + } + override fun BaseVariant.getArtifactCollection( configType: AndroidArtifacts.ConsumedConfigType, scope: ArtifactScope, diff --git a/booster-android-gradle-v7_4/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_4/V74.kt b/booster-android-gradle-v7_4/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_4/V74.kt new file mode 100644 index 000000000..014427239 --- /dev/null +++ b/booster-android-gradle-v7_4/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_4/V74.kt @@ -0,0 +1,341 @@ +package com.didiglobal.booster.android.gradle.v7_4 + +import com.android.build.api.artifact.Artifact +import com.android.build.api.artifact.MultipleArtifact +import com.android.build.api.artifact.SingleArtifact +import com.android.build.api.artifact.impl.ArtifactsImpl +import com.android.build.api.component.impl.ComponentImpl +import com.android.build.api.transform.Context +import com.android.build.api.transform.QualifiedContent +import com.android.build.api.variant.impl.TaskProviderBasedDirectoryEntryImpl +import com.android.build.gradle.api.ApplicationVariant +import com.android.build.gradle.api.BaseVariant +import com.android.build.gradle.api.LibraryVariant +import com.android.build.gradle.internal.api.BaseVariantImpl +import com.android.build.gradle.internal.api.artifact.SourceArtifactType +import com.android.build.gradle.internal.pipeline.TransformManager +import com.android.build.gradle.internal.pipeline.TransformTask +import com.android.build.gradle.internal.publishing.AndroidArtifacts +import com.android.build.gradle.internal.publishing.AndroidArtifacts.ArtifactScope +import com.android.build.gradle.internal.scope.BuildArtifactType +import com.android.build.gradle.internal.scope.InternalArtifactType +import com.android.build.gradle.internal.scope.InternalMultipleArtifactType +import com.android.build.gradle.internal.tasks.factory.GlobalTaskCreationConfigImpl +import com.android.build.gradle.internal.variant.BaseVariantData +import com.android.builder.core.DefaultApiVersion +import com.android.builder.model.ApiVersion +import com.android.sdklib.BuildToolInfo +import com.didiglobal.booster.gradle.AGPInterface +import org.gradle.api.Project +import org.gradle.api.Task +import org.gradle.api.artifacts.ArtifactCollection +import org.gradle.api.artifacts.component.ComponentIdentifier +import org.gradle.api.artifacts.result.ResolvedArtifactResult +import org.gradle.api.artifacts.result.ResolvedDependencyResult +import org.gradle.api.file.ConfigurableFileCollection +import org.gradle.api.file.FileCollection +import org.gradle.api.file.FileSystemLocation +import org.gradle.api.tasks.TaskProvider +import java.io.File +import java.util.TreeMap + +@Suppress("UnstableApiUsage") +private val SINGLE_ARTIFACT_TYPES = arrayOf( + BuildArtifactType::class, + InternalArtifactType::class, + SingleArtifact::class, + SourceArtifactType::class +).map { + it.sealedSubclasses +}.flatten().map { + it.objectInstance as Artifact.Single +}.associateBy { + it.javaClass.simpleName +} + +private val MULTIPLE_ARTIFACT_TYPES = arrayOf( + MultipleArtifact::class, + InternalMultipleArtifactType::class +).map { + it.sealedSubclasses +}.flatten().map { + it.objectInstance as Artifact.Multiple +}.associateBy { + it.javaClass.simpleName +} + +@Suppress("DEPRECATION") +internal object V74 : AGPInterface { + + private val BaseVariant.component: ComponentImpl<*> + get() = BaseVariantImpl::class.java.getDeclaredField("component").apply { + isAccessible = true + }.get(this) as ComponentImpl<*> + + @Suppress("UnstableApiUsage") + private fun BaseVariant.getFinalArtifactFiles(type: Artifact.Single): FileCollection { + return try { + project.objects.fileCollection().from(artifacts.get(type)) + } catch (e: Throwable) { + project.objects.fileCollection().builtBy(artifacts.get(type)) + } + } + + @Suppress("UnstableApiUsage") + private fun BaseVariant.getFinalArtifactFiles(type: Artifact.Multiple): FileCollection { + return try { + project.objects.fileCollection().from(artifacts.getAll(type)) + } catch (e: Throwable) { + project.objects.fileCollection().builtBy(artifacts.getAll(type)) + } + } + + @Suppress("UnstableApiUsage") + private val BaseVariant.artifacts: ArtifactsImpl + get() = component.artifacts + + override val scopeFullWithFeatures: MutableSet + get() = TransformManager.SCOPE_FULL_WITH_FEATURES + + override val scopeFullLibraryWithFeatures: MutableSet + get() = (TransformManager.SCOPE_FEATURES + QualifiedContent.Scope.PROJECT).toMutableSet() + + override val BaseVariant.project: Project + get() = component.variantDependencies.run { + javaClass.getDeclaredField("project").apply { + isAccessible = true + }.get(this) as Project + } + + override val BaseVariant.javaCompilerTaskProvider: TaskProvider + get() = javaCompileProvider + + override val BaseVariant.preBuildTaskProvider: TaskProvider + get() = preBuildProvider + + override val BaseVariant.assembleTaskProvider: TaskProvider + get() = assembleProvider + + override val BaseVariant.mergeAssetsTaskProvider: TaskProvider + get() = mergeAssetsProvider + + override val BaseVariant.mergeResourcesTaskProvider: TaskProvider + get() = try { + project.tasks.named(getTaskName("merge", "Resources")) + } catch (e: Throwable) { + mergeResourcesProvider + } + + override val BaseVariant.mergeNativeLibsTaskProvider: TaskProvider + get() = project.tasks.named(getTaskName("merge", "NativeLibs")) + + override val BaseVariant.processJavaResourcesTaskProvider: TaskProvider + get() = processJavaResourcesProvider + + override fun BaseVariant.getTaskName(prefix: String): String { + return component.computeTaskName(prefix) + } + + override fun BaseVariant.getTaskName(prefix: String, suffix: String): String { + return component.computeTaskName(prefix, suffix) + } + + override val BaseVariant.variantData: BaseVariantData + get() = javaClass.getDeclaredMethod("getVariantData").apply { + isAccessible = true + }.invoke(this) as BaseVariantData + + @Suppress("DEPRECATION") + private val BaseVariant.globalScope: GlobalTaskCreationConfigImpl + get() = component.global as GlobalTaskCreationConfigImpl + + override val BaseVariant.originalApplicationId: String + get() = component.namespace.get() + + override val BaseVariant.hasDynamicFeature: Boolean + get() = component.global.hasDynamicFeatures + + override val BaseVariant.rawAndroidResources: FileCollection + get() { + val allRes: ConfigurableFileCollection = component.services.fileCollection() + + allRes.from(component.variantDependencies.getArtifactCollection( + AndroidArtifacts.ConsumedConfigType.RUNTIME_CLASSPATH, + ArtifactScope.ALL, + AndroidArtifacts.ArtifactType.ANDROID_RES + ).artifactFiles) + + allRes.from(component.services.fileCollection(variantData.extraGeneratedResFolders) + .builtBy(listOfNotNull(variantData.extraGeneratedResFolders.builtBy))) + + component.taskContainer.generateApkDataTask?.let { + allRes.from(artifacts.get(InternalArtifactType.MICRO_APK_RES)) + } + + allRes.from(component.sources.res.getVariantSources().map { allSources -> + allSources.getEntries().map { + if (it is TaskProviderBasedDirectoryEntryImpl) { + it.directoryProvider + } else { + it.asFiles(component.services.provider { + component.services.projectInfo.projectDirectory + }) + } + } + }) + + return allRes + } + + override val BaseVariant.localAndroidResources: FileCollection + get() { + val localRes: ConfigurableFileCollection = component.services.fileCollection() + + localRes.from(component.sources.res.getVariantSources().map { allSources -> + allSources.getEntries().map { + if (it is TaskProviderBasedDirectoryEntryImpl) { + it.directoryProvider + } else { + it.asFiles(component.services.provider { + component.services.projectInfo.projectDirectory + }) + } + } + }) + + return localRes + } + + override fun BaseVariant.getArtifactCollection( + configType: AndroidArtifacts.ConsumedConfigType, + scope: ArtifactScope, + artifactType: AndroidArtifacts.ArtifactType + ): ArtifactCollection { + return component.variantDependencies.getArtifactCollection(configType, scope, artifactType) + } + + override fun BaseVariant.getArtifactFileCollection( + configType: AndroidArtifacts.ConsumedConfigType, + scope: ArtifactScope, + artifactType: AndroidArtifacts.ArtifactType + ): FileCollection { + return component.variantDependencies.getArtifactFileCollection(configType, scope, artifactType) + } + + override val BaseVariant.allArtifacts: Map + get() = TreeMap().also { all -> + SINGLE_ARTIFACT_TYPES.entries.associateTo(all) { (name, type) -> + val artifacts: FileCollection by lazy { + getFinalArtifactFiles(type) + } + name to artifacts + } + MULTIPLE_ARTIFACT_TYPES.entries.associateTo(all) { (name, type) -> + val artifacts: FileCollection by lazy { + getFinalArtifactFiles(type) + } + name to artifacts + } + } + + override val BaseVariant.minSdkVersion: ApiVersion + get() = DefaultApiVersion(component.minSdkVersion.apiLevel) + + override val BaseVariant.targetSdkVersion: ApiVersion + get() = DefaultApiVersion(component.targetSdkVersion.apiLevel) + + override val BaseVariant.isApplication: Boolean + get() = component.componentType.isApk + + override val BaseVariant.isLibrary: Boolean + get() = component.componentType.isAar + + override val BaseVariant.isDynamicFeature: Boolean + get() = component.componentType.isDynamicFeature + + override val BaseVariant.aar: FileCollection + get() = getFinalArtifactFiles(SingleArtifact.AAR) + + override val BaseVariant.apk: FileCollection + get() = getFinalArtifactFiles(SingleArtifact.APK) + + override val BaseVariant.mergedManifests: FileCollection + get() = getFinalArtifactFiles(SingleArtifact.MERGED_MANIFEST) + + override val BaseVariant.mergedRes: FileCollection + get() = getFinalArtifactFiles(InternalArtifactType.MERGED_RES) + + override val BaseVariant.mergedNativeLibs: FileCollection + get() = getFinalArtifactFiles(InternalArtifactType.MERGED_NATIVE_LIBS) + + override val BaseVariant.mergedAssets: FileCollection + get() = when (this) { + is ApplicationVariant -> getFinalArtifactFiles(InternalArtifactType.COMPRESSED_ASSETS) + is LibraryVariant -> getFinalArtifactFiles(InternalArtifactType.LIBRARY_ASSETS) + else -> TODO("Unsupported variant type: $name") + } + + override val BaseVariant.processedRes: FileCollection + get() = getFinalArtifactFiles(InternalArtifactType.PROCESSED_RES) + + override val BaseVariant.symbolList: FileCollection + get() = when (this) { + is ApplicationVariant -> getFinalArtifactFiles(InternalArtifactType.RUNTIME_SYMBOL_LIST) + is LibraryVariant -> getFinalArtifactFiles(InternalArtifactType.COMPILE_SYMBOL_LIST) + else -> TODO("Unsupported variant type : $name") + } + + override val BaseVariant.symbolListWithPackageName: FileCollection + get() = getFinalArtifactFiles(InternalArtifactType.SYMBOL_LIST_WITH_PACKAGE_NAME) + + override val BaseVariant.dataBindingDependencyArtifacts: FileCollection + get() = getFinalArtifactFiles(InternalArtifactType.DATA_BINDING_DEPENDENCY_ARTIFACTS) + + override val BaseVariant.allClasses: FileCollection + get() = when (this) { + is ApplicationVariant -> getFinalArtifactFiles(InternalArtifactType.JAVAC) + project.files("build${File.separator}tmp${File.separator}kotlin-classes${File.separator}${dirName}") + is LibraryVariant -> getFinalArtifactFiles(InternalArtifactType.AAR_MAIN_JAR) + else -> project.files() + } + + override val BaseVariant.buildTools: BuildToolInfo + get() = globalScope.versionedSdkLoader.get().buildToolInfoProvider.get() + + override val BaseVariant.isPrecompileDependenciesResourcesEnabled: Boolean + get() = component.androidResourcesCreationConfig?.isPrecompileDependenciesResourcesEnabled == true + + override fun BaseVariant.getDependencies(transitive: Boolean, filter: (ComponentIdentifier) -> Boolean): Collection { + val all = getArtifactCollection( + AndroidArtifacts.ConsumedConfigType.RUNTIME_CLASSPATH, + AndroidArtifacts.ArtifactScope.ALL, + AndroidArtifacts.ArtifactType.CLASSES_JAR + ).filter { result -> + filter(result.id.componentIdentifier) + }.associateBy { + it.id.componentIdentifier.displayName + } + val result = if (!transitive) { + runtimeConfiguration.incoming.resolutionResult.root.dependencies.filterIsInstance().mapNotNull { + it.selected.id.displayName.takeIf { id -> id in all.keys } + }.associateWith { + all[it]!! + } + } else { + all + } + return result.values.toSet() + } + + override val Context.task: TransformTask + get() = javaClass.getDeclaredField("this$1").apply { + isAccessible = true + }.get(this).run { + javaClass.getDeclaredField("this$0").apply { + isAccessible = true + }.get(this) + } as TransformTask + + override val Project.aapt2Enabled: Boolean + get() = true + +} From ae09abfe8e2344f110193031c5337e8cde08f30f Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Wed, 24 May 2023 00:37:12 +0900 Subject: [PATCH 172/187] Ignore Android SDK extension --- .../main/kotlin/com/didiglobal/booster/build/AndroidSdk.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/booster-build/src/main/kotlin/com/didiglobal/booster/build/AndroidSdk.kt b/booster-build/src/main/kotlin/com/didiglobal/booster/build/AndroidSdk.kt index 27f32bd5c..0ad08eaac 100644 --- a/booster-build/src/main/kotlin/com/didiglobal/booster/build/AndroidSdk.kt +++ b/booster-build/src/main/kotlin/com/didiglobal/booster/build/AndroidSdk.kt @@ -28,8 +28,8 @@ class AndroidSdk { fun findPlatform(): Int = File(location, "platforms").listFiles()?.filter { it.name.startsWith("android-") && File(it, "android.jar").exists() - }?.map { - it.name.substringAfter("android-") + }?.mapNotNull { + it.name.substringAfter("android-").toIntOrNull() }?.maxOrNull()?.toInt() ?: throw RuntimeException("No platform found") /** From bde009f30b894c3d9bad2ea0c2170e22830f8aec Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Tue, 23 May 2023 22:18:45 +0900 Subject: [PATCH 173/187] Support AGP 7.4 --- .github/workflows/test.yml | 22 + booster-android-gradle-api/build.gradle | 1 + .../com/didiglobal/booster/gradle/Version.kt | 2 + .../didiglobal/booster/gradle/AGPInterface.kt | 2 - .../android/gradle/v3_3/V33IntegrationTest.kt | 10 - .../booster/android/gradle/v3_3/V33.kt | 2 +- .../android/gradle/v3_4/V34IntegrationTest.kt | 10 - .../booster/android/gradle/v3_4/V34.kt | 2 +- .../android/gradle/v3_5/V35IntegrationTest.kt | 10 - .../booster/android/gradle/v3_5/V35.kt | 2 +- .../android/gradle/v3_6/V36IntegrationTest.kt | 10 - .../booster/android/gradle/v3_6/V36.kt | 2 +- .../android/gradle/v4_0/V40IntegrationTest.kt | 10 - .../booster/android/gradle/v4_0/V40.kt | 2 +- .../android/gradle/v4_1/V41IntegrationTest.kt | 10 - .../booster/android/gradle/v4_1/V41.kt | 2 +- .../android/gradle/v4_2/V42IntegrationTest.kt | 10 - .../booster/android/gradle/v4_2/V42.kt | 2 +- .../android/gradle/v7_0/V70IntegrationTest.kt | 10 - .../booster/android/gradle/v7_0/V70.kt | 2 +- .../android/gradle/v7_1/V71IntegrationTest.kt | 10 - .../booster/android/gradle/v7_1/V71.kt | 2 +- .../android/gradle/v7_2/V72IntegrationTest.kt | 10 - .../booster/android/gradle/v7_2/V72.kt | 2 +- .../android/gradle/v7_3/V73IntegrationTest.kt | 14 +- .../booster/android/gradle/v7_3/V73.kt | 20 +- booster-android-gradle-v7_4/README.md | 6 + booster-android-gradle-v7_4/build.gradle | 27 + .../android/gradle/v7_4/V74IntegrationTest.kt | 480 ++++++++++++++++++ .../src/integrationTest/resources/app.gradle | 60 +++ .../resources/buildSrc/build.gradle | 24 + .../src/integrationTest/resources/lib.gradle | 57 +++ .../resources/src/main/AndroidManifest.xml | 9 + .../booster/android/test/MainActivity.java | 6 + .../booster/android/test/TestApplication.java | 7 + .../resources/src/main/res/values/strings.xml | 4 + .../booster/android/gradle/v7_4/V74.kt | 24 +- .../booster/android/gradle/v7_4/V74Factory.kt | 15 + gradle/booster.gradle | 8 +- gradle/functional-test.gradle | 2 +- gradle/integration-test.gradle | 2 +- gradle/wrapper/gradle-wrapper.properties | 2 +- settings.gradle.kts | 1 + 43 files changed, 754 insertions(+), 161 deletions(-) create mode 100644 booster-android-gradle-v7_4/README.md create mode 100644 booster-android-gradle-v7_4/build.gradle create mode 100644 booster-android-gradle-v7_4/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v7_4/V74IntegrationTest.kt create mode 100644 booster-android-gradle-v7_4/src/integrationTest/resources/app.gradle create mode 100644 booster-android-gradle-v7_4/src/integrationTest/resources/buildSrc/build.gradle create mode 100644 booster-android-gradle-v7_4/src/integrationTest/resources/lib.gradle create mode 100644 booster-android-gradle-v7_4/src/integrationTest/resources/src/main/AndroidManifest.xml create mode 100644 booster-android-gradle-v7_4/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/MainActivity.java create mode 100644 booster-android-gradle-v7_4/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/TestApplication.java create mode 100644 booster-android-gradle-v7_4/src/integrationTest/resources/src/main/res/values/strings.xml create mode 100644 booster-android-gradle-v7_4/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_4/V74Factory.kt diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index c8a39a0ea..cdf96b391 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -326,3 +326,25 @@ jobs: name: booster-android-gradle-v7_3 path: booster-android-gradle-v7_3/build/reports/tests/integrationTest + integration-test-agp-v7_4: + name: AGP 7.4 Integration Test + needs: build + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-java@v3 + with: + distribution: 'adopt' + java-version: '11' + cache: 'gradle' + - uses: actions/cache@v3 + with: + path: ~/.m2 + key: ${{ runner.os }}-m2-${{ github.run_number }} + - shell: bash + run: ./gradlew booster-android-gradle-v7_4:integrationTest -S --no-daemon -Pversion=${{ github.run_number }} + - uses: actions/upload-artifact@v3 + if: failure() + with: + name: booster-android-gradle-v7_4 + path: booster-android-gradle-v7_4/build/reports/tests/integrationTest diff --git a/booster-android-gradle-api/build.gradle b/booster-android-gradle-api/build.gradle index c8d32d737..3258fbff7 100644 --- a/booster-android-gradle-api/build.gradle +++ b/booster-android-gradle-api/build.gradle @@ -14,6 +14,7 @@ dependencies { implementation project(':booster-android-gradle-v7_1') implementation project(':booster-android-gradle-v7_2') implementation project(':booster-android-gradle-v7_3') + implementation project(':booster-android-gradle-v7_4') compileOnly 'com.android.tools.build:gradle:3.0.0' testCompileOnly 'com.android.tools.build:gradle:3.0.0' } diff --git a/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/Version.kt b/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/Version.kt index eea35b813..6e87bc531 100644 --- a/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/Version.kt +++ b/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/Version.kt @@ -13,5 +13,7 @@ val GTE_V4_2: Boolean by lazy { AGP.revision.major > 4 || (AGP.revision.major == val GTE_V4_1: Boolean by lazy { AGP.revision.major > 4 || (AGP.revision.major == 4 && AGP.revision.minor >= 1) } val GTE_V7_X: Boolean by lazy { AGP.revision.major >= 7 } +val GTE_V7_4: Boolean by lazy { AGP.revision.major > 7 || (AGP.revision.major == 7 && AGP.revision.minor >= 4) } +val GTE_V7_3: Boolean by lazy { AGP.revision.major > 7 || (AGP.revision.major == 7 && AGP.revision.minor >= 3) } val GTE_V7_2: Boolean by lazy { AGP.revision.major > 7 || (AGP.revision.major == 7 && AGP.revision.minor >= 2) } val GTE_V7_1: Boolean by lazy { AGP.revision.major > 7 || (AGP.revision.major == 7 && AGP.revision.minor >= 1) } diff --git a/booster-android-gradle-compat/src/main/kotlin/com/didiglobal/booster/gradle/AGPInterface.kt b/booster-android-gradle-compat/src/main/kotlin/com/didiglobal/booster/gradle/AGPInterface.kt index 043871782..a417adea5 100644 --- a/booster-android-gradle-compat/src/main/kotlin/com/didiglobal/booster/gradle/AGPInterface.kt +++ b/booster-android-gradle-compat/src/main/kotlin/com/didiglobal/booster/gradle/AGPInterface.kt @@ -95,8 +95,6 @@ interface AGPInterface { val BaseVariant.variantData: BaseVariantData - val BaseVariant.variantScope: VariantScope - @Deprecated( message = "Use BaseVariant.namespace instead", replaceWith = ReplaceWith(expression = "variant.namespace"), diff --git a/booster-android-gradle-v3_3/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_3/V33IntegrationTest.kt b/booster-android-gradle-v3_3/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_3/V33IntegrationTest.kt index 543283cce..84595ce26 100644 --- a/booster-android-gradle-v3_3/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_3/V33IntegrationTest.kt +++ b/booster-android-gradle-v3_3/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_3/V33IntegrationTest.kt @@ -109,10 +109,6 @@ abstract class V33IntegrationTest(private val isLib: Boolean) { @Case(VariantDataTestUnit::class) fun `test AGPInterface#variantData`() = Unit - @Test - @Case(VariantScopeTestUnit::class) - fun `test AGPInterface#variantScope`() = Unit - @Test @Case(OriginalApplicationIdTestUnit::class) fun `test AGPInterface#originalApplicationId`() = Unit @@ -258,12 +254,6 @@ class VariantDataTestUnit : VariantTestCase() { } } -class VariantScopeTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.variantScope }) - } -} - class OriginalApplicationIdTestUnit : VariantTestCase() { override fun apply(variant: BaseVariant) { assertNotNull(AGP.run { variant.originalApplicationId }) diff --git a/booster-android-gradle-v3_3/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_3/V33.kt b/booster-android-gradle-v3_3/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_3/V33.kt index ef25482f9..592165acb 100644 --- a/booster-android-gradle-v3_3/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_3/V33.kt +++ b/booster-android-gradle-v3_3/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_3/V33.kt @@ -96,7 +96,7 @@ internal object V33 : AGPInterface { isAccessible = true }.invoke(this) as BaseVariantData - override val BaseVariant.variantScope: VariantScope + val BaseVariant.variantScope: VariantScope get() = variantData.scope private val BaseVariant.globalScope: GlobalScope diff --git a/booster-android-gradle-v3_4/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_4/V34IntegrationTest.kt b/booster-android-gradle-v3_4/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_4/V34IntegrationTest.kt index eb400dda4..6c20bf1a5 100644 --- a/booster-android-gradle-v3_4/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_4/V34IntegrationTest.kt +++ b/booster-android-gradle-v3_4/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_4/V34IntegrationTest.kt @@ -109,10 +109,6 @@ abstract class V34IntegrationTest(private val isLib: Boolean) { @Case(VariantDataTestUnit::class) fun `test AGPInterface#variantData`() = Unit - @Test - @Case(VariantScopeTestUnit::class) - fun `test AGPInterface#variantScope`() = Unit - @Test @Case(OriginalApplicationIdTestUnit::class) fun `test AGPInterface#originalApplicationId`() = Unit @@ -258,12 +254,6 @@ class VariantDataTestUnit : VariantTestCase() { } } -class VariantScopeTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.variantScope }) - } -} - class OriginalApplicationIdTestUnit : VariantTestCase() { override fun apply(variant: BaseVariant) { assertNotNull(AGP.run { variant.originalApplicationId }) diff --git a/booster-android-gradle-v3_4/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_4/V34.kt b/booster-android-gradle-v3_4/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_4/V34.kt index f72ee72c8..dc1ad351d 100644 --- a/booster-android-gradle-v3_4/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_4/V34.kt +++ b/booster-android-gradle-v3_4/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_4/V34.kt @@ -100,7 +100,7 @@ internal object V34 : AGPInterface { isAccessible = true }.invoke(this) as BaseVariantData - override val BaseVariant.variantScope: VariantScope + val BaseVariant.variantScope: VariantScope get() = variantData.scope private val BaseVariant.globalScope: GlobalScope diff --git a/booster-android-gradle-v3_5/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_5/V35IntegrationTest.kt b/booster-android-gradle-v3_5/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_5/V35IntegrationTest.kt index 6107e68e6..dd19ade8e 100644 --- a/booster-android-gradle-v3_5/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_5/V35IntegrationTest.kt +++ b/booster-android-gradle-v3_5/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_5/V35IntegrationTest.kt @@ -109,10 +109,6 @@ abstract class V35IntegrationTest(private val isLib: Boolean) { @Case(VariantDataTestUnit::class) fun `test AGPInterface#variantData`() = Unit - @Test - @Case(VariantScopeTestUnit::class) - fun `test AGPInterface#variantScope`() = Unit - @Test @Case(OriginalApplicationIdTestUnit::class) fun `test AGPInterface#originalApplicationId`() = Unit @@ -258,12 +254,6 @@ class VariantDataTestUnit : VariantTestCase() { } } -class VariantScopeTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.variantScope }) - } -} - class OriginalApplicationIdTestUnit : VariantTestCase() { override fun apply(variant: BaseVariant) { assertNotNull(AGP.run { variant.originalApplicationId }) diff --git a/booster-android-gradle-v3_5/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_5/V35.kt b/booster-android-gradle-v3_5/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_5/V35.kt index f88043725..23515ab6c 100644 --- a/booster-android-gradle-v3_5/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_5/V35.kt +++ b/booster-android-gradle-v3_5/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_5/V35.kt @@ -97,7 +97,7 @@ internal object V35 : AGPInterface { isAccessible = true }.invoke(this) as BaseVariantData - override val BaseVariant.variantScope: VariantScope + val BaseVariant.variantScope: VariantScope get() = variantData.scope private val BaseVariant.globalScope: GlobalScope diff --git a/booster-android-gradle-v3_6/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_6/V36IntegrationTest.kt b/booster-android-gradle-v3_6/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_6/V36IntegrationTest.kt index d9feb8e9f..135cb3b14 100644 --- a/booster-android-gradle-v3_6/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_6/V36IntegrationTest.kt +++ b/booster-android-gradle-v3_6/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_6/V36IntegrationTest.kt @@ -109,10 +109,6 @@ abstract class V36IntegrationTest(private val isLib: Boolean) { @Case(VariantDataTestUnit::class) fun `test AGPInterface#variantData`() = Unit - @Test - @Case(VariantScopeTestUnit::class) - fun `test AGPInterface#variantScope`() = Unit - @Test @Case(OriginalApplicationIdTestUnit::class) fun `test AGPInterface#originalApplicationId`() = Unit @@ -258,12 +254,6 @@ class VariantDataTestUnit : VariantTestCase() { } } -class VariantScopeTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.variantScope }) - } -} - class OriginalApplicationIdTestUnit : VariantTestCase() { override fun apply(variant: BaseVariant) { assertNotNull(AGP.run { variant.originalApplicationId }) diff --git a/booster-android-gradle-v3_6/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_6/V36.kt b/booster-android-gradle-v3_6/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_6/V36.kt index 1ccf000aa..bb9188445 100644 --- a/booster-android-gradle-v3_6/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_6/V36.kt +++ b/booster-android-gradle-v3_6/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_6/V36.kt @@ -109,7 +109,7 @@ object V36 : AGPInterface { isAccessible = true }.invoke(this) as BaseVariantData - override val BaseVariant.variantScope: VariantScope + val BaseVariant.variantScope: VariantScope get() = variantData.scope private val BaseVariant.globalScope: GlobalScope diff --git a/booster-android-gradle-v4_0/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v4_0/V40IntegrationTest.kt b/booster-android-gradle-v4_0/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v4_0/V40IntegrationTest.kt index 280f28552..be401bfde 100644 --- a/booster-android-gradle-v4_0/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v4_0/V40IntegrationTest.kt +++ b/booster-android-gradle-v4_0/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v4_0/V40IntegrationTest.kt @@ -109,10 +109,6 @@ abstract class V40IntegrationTest(private val isLib: Boolean) { @Case(VariantDataTestUnit::class) fun `test AGPInterface#variantData`() = Unit - @Test - @Case(VariantScopeTestUnit::class) - fun `test AGPInterface#variantScope`() = Unit - @Test @Case(OriginalApplicationIdTestUnit::class) fun `test AGPInterface#originalApplicationId`() = Unit @@ -258,12 +254,6 @@ class VariantDataTestUnit : VariantTestCase() { } } -class VariantScopeTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.variantScope }) - } -} - class OriginalApplicationIdTestUnit : VariantTestCase() { override fun apply(variant: BaseVariant) { assertNotNull(AGP.run { variant.originalApplicationId }) diff --git a/booster-android-gradle-v4_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_0/V40.kt b/booster-android-gradle-v4_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_0/V40.kt index e5b3a89ba..41b87e81f 100644 --- a/booster-android-gradle-v4_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_0/V40.kt +++ b/booster-android-gradle-v4_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_0/V40.kt @@ -124,7 +124,7 @@ internal object V40 : AGPInterface { isAccessible = true }.invoke(this) as BaseVariantData - override val BaseVariant.variantScope: VariantScope + val BaseVariant.variantScope: VariantScope get() = variantData.scope private val BaseVariant.globalScope: GlobalScope diff --git a/booster-android-gradle-v4_1/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v4_1/V41IntegrationTest.kt b/booster-android-gradle-v4_1/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v4_1/V41IntegrationTest.kt index f8e2b1cba..ea804d3c8 100644 --- a/booster-android-gradle-v4_1/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v4_1/V41IntegrationTest.kt +++ b/booster-android-gradle-v4_1/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v4_1/V41IntegrationTest.kt @@ -109,10 +109,6 @@ abstract class V41IntegrationTest(val isLib: Boolean) { @Case(VariantDataTestUnit::class) fun `test AGPInterface#variantData`() = Unit - @Test - @Case(VariantScopeTestUnit::class) - fun `test AGPInterface#variantScope`() = Unit - @Test @Case(OriginalApplicationIdTestUnit::class) fun `test AGPInterface#originalApplicationId`() = Unit @@ -258,12 +254,6 @@ class VariantDataTestUnit : VariantTestCase() { } } -class VariantScopeTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.variantScope }) - } -} - class OriginalApplicationIdTestUnit : VariantTestCase() { override fun apply(variant: BaseVariant) { assertNotNull(AGP.run { variant.originalApplicationId }) diff --git a/booster-android-gradle-v4_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_1/V41.kt b/booster-android-gradle-v4_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_1/V41.kt index 6e8920c2a..f4b07c51b 100644 --- a/booster-android-gradle-v4_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_1/V41.kt +++ b/booster-android-gradle-v4_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_1/V41.kt @@ -141,7 +141,7 @@ internal object V41 : AGPInterface { isAccessible = true }.invoke(this) as BaseVariantData - override val BaseVariant.variantScope: VariantScope + val BaseVariant.variantScope: VariantScope get() = componentProperties.variantScope private val BaseVariant.globalScope: GlobalScope diff --git a/booster-android-gradle-v4_2/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42IntegrationTest.kt b/booster-android-gradle-v4_2/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42IntegrationTest.kt index c439a0921..0c04f7814 100644 --- a/booster-android-gradle-v4_2/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42IntegrationTest.kt +++ b/booster-android-gradle-v4_2/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42IntegrationTest.kt @@ -109,10 +109,6 @@ abstract class V42IntegrationTest(val isLib: Boolean) { @Case(VariantDataTestUnit::class) fun `test AGPInterface#variantData`() = Unit - @Test - @Case(VariantScopeTestUnit::class) - fun `test AGPInterface#variantScope`() = Unit - @Test @Case(OriginalApplicationIdTestUnit::class) fun `test AGPInterface#originalApplicationId`() = Unit @@ -258,12 +254,6 @@ class VariantDataTestUnit : VariantTestCase() { } } -class VariantScopeTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.variantScope }) - } -} - class OriginalApplicationIdTestUnit : VariantTestCase() { override fun apply(variant: BaseVariant) { assertNotNull(AGP.run { variant.originalApplicationId }) diff --git a/booster-android-gradle-v4_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42.kt b/booster-android-gradle-v4_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42.kt index c6a820de8..1af49b16d 100644 --- a/booster-android-gradle-v4_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42.kt +++ b/booster-android-gradle-v4_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42.kt @@ -141,7 +141,7 @@ internal object V42 : AGPInterface { isAccessible = true }.invoke(this) as BaseVariantData - override val BaseVariant.variantScope: VariantScope + val BaseVariant.variantScope: VariantScope get() = component.variantScope @Suppress("DEPRECATION") diff --git a/booster-android-gradle-v7_0/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v7_0/V70IntegrationTest.kt b/booster-android-gradle-v7_0/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v7_0/V70IntegrationTest.kt index 7dcf3ad92..f6447e12e 100644 --- a/booster-android-gradle-v7_0/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v7_0/V70IntegrationTest.kt +++ b/booster-android-gradle-v7_0/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v7_0/V70IntegrationTest.kt @@ -108,10 +108,6 @@ abstract class V70IntegrationTest(private val isLib: Boolean) { @Case(VariantDataTestUnit::class) fun `test AGPInterface#variantData`() = Unit - @Test - @Case(VariantScopeTestUnit::class) - fun `test AGPInterface#variantScope`() = Unit - @Test @Case(OriginalApplicationIdTestUnit::class) fun `test AGPInterface#originalApplicationId`() = Unit @@ -262,12 +258,6 @@ class VariantDataTestUnit : VariantTestCase() { } } -class VariantScopeTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.variantScope }) - } -} - class OriginalApplicationIdTestUnit : VariantTestCase() { override fun apply(variant: BaseVariant) { assertNotNull(AGP.run { variant.originalApplicationId }) diff --git a/booster-android-gradle-v7_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_0/V70.kt b/booster-android-gradle-v7_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_0/V70.kt index ef36cc291..29e088279 100644 --- a/booster-android-gradle-v7_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_0/V70.kt +++ b/booster-android-gradle-v7_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_0/V70.kt @@ -149,7 +149,7 @@ internal object V70 : AGPInterface { isAccessible = true }.invoke(this) as BaseVariantData - override val BaseVariant.variantScope: VariantScope + val BaseVariant.variantScope: VariantScope get() = component.variantScope @Suppress("DEPRECATION") diff --git a/booster-android-gradle-v7_1/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v7_1/V71IntegrationTest.kt b/booster-android-gradle-v7_1/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v7_1/V71IntegrationTest.kt index 5421a536e..79a5d51d8 100644 --- a/booster-android-gradle-v7_1/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v7_1/V71IntegrationTest.kt +++ b/booster-android-gradle-v7_1/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v7_1/V71IntegrationTest.kt @@ -108,10 +108,6 @@ abstract class V71IntegrationTest(private val isLib: Boolean) { @Case(VariantDataTestUnit::class) fun `test AGPInterface#variantData`() = Unit - @Test - @Case(VariantScopeTestUnit::class) - fun `test AGPInterface#variantScope`() = Unit - @Test @Case(OriginalApplicationIdTestUnit::class) fun `test AGPInterface#originalApplicationId`() = Unit @@ -262,12 +258,6 @@ class VariantDataTestUnit : VariantTestCase() { } } -class VariantScopeTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.variantScope }) - } -} - class OriginalApplicationIdTestUnit : VariantTestCase() { override fun apply(variant: BaseVariant) { assertNotNull(AGP.run { variant.originalApplicationId }) diff --git a/booster-android-gradle-v7_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_1/V71.kt b/booster-android-gradle-v7_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_1/V71.kt index d998a64f8..772453781 100644 --- a/booster-android-gradle-v7_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_1/V71.kt +++ b/booster-android-gradle-v7_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_1/V71.kt @@ -145,7 +145,7 @@ internal object V71 : AGPInterface { isAccessible = true }.invoke(this) as BaseVariantData - override val BaseVariant.variantScope: VariantScope + val BaseVariant.variantScope: VariantScope get() = component.variantScope @Suppress("DEPRECATION") diff --git a/booster-android-gradle-v7_2/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v7_2/V72IntegrationTest.kt b/booster-android-gradle-v7_2/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v7_2/V72IntegrationTest.kt index fd48970da..4d2c89ce2 100644 --- a/booster-android-gradle-v7_2/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v7_2/V72IntegrationTest.kt +++ b/booster-android-gradle-v7_2/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v7_2/V72IntegrationTest.kt @@ -108,10 +108,6 @@ abstract class V72IntegrationTest(private val isLib: Boolean) { @Case(VariantDataTestUnit::class) fun `test AGPInterface#variantData`() = Unit - @Test - @Case(VariantScopeTestUnit::class) - fun `test AGPInterface#variantScope`() = Unit - @Test @Case(OriginalApplicationIdTestUnit::class) fun `test AGPInterface#originalApplicationId`() = Unit @@ -267,12 +263,6 @@ class VariantDataTestUnit : VariantTestCase() { } } -class VariantScopeTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.variantScope }) - } -} - class OriginalApplicationIdTestUnit : VariantTestCase() { override fun apply(variant: BaseVariant) { assertNotNull(AGP.run { variant.originalApplicationId }) diff --git a/booster-android-gradle-v7_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_2/V72.kt b/booster-android-gradle-v7_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_2/V72.kt index 2e07bc139..f561fc468 100644 --- a/booster-android-gradle-v7_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_2/V72.kt +++ b/booster-android-gradle-v7_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_2/V72.kt @@ -155,7 +155,7 @@ internal object V72 : AGPInterface { isAccessible = true }.invoke(this) as BaseVariantData - override val BaseVariant.variantScope: VariantScope + val BaseVariant.variantScope: VariantScope get() = component.variantScope @Suppress("DEPRECATION") diff --git a/booster-android-gradle-v7_3/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v7_3/V73IntegrationTest.kt b/booster-android-gradle-v7_3/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v7_3/V73IntegrationTest.kt index 75dfd4b31..5d8e93aed 100644 --- a/booster-android-gradle-v7_3/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v7_3/V73IntegrationTest.kt +++ b/booster-android-gradle-v7_3/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v7_3/V73IntegrationTest.kt @@ -108,10 +108,6 @@ abstract class V73IntegrationTest(private val isLib: Boolean) { @Case(VariantDataTestUnit::class) fun `test AGPInterface#variantData`() = Unit - @Test - @Case(VariantScopeTestUnit::class) - fun `test AGPInterface#variantScope`() = Unit - @Test @Case(OriginalApplicationIdTestUnit::class) fun `test AGPInterface#originalApplicationId`() = Unit @@ -188,9 +184,9 @@ abstract class V73IntegrationTest(private val isLib: Boolean) { } -class V72AppIntegrationTest : V73IntegrationTest(false) +class V73AppIntegrationTest : V73IntegrationTest(false) -class V72LibIntegrationTest : V73IntegrationTest(true) +class V73LibIntegrationTest : V73IntegrationTest(true) class ScopeFullWithFeaturesTest : TestCase { override fun apply(project: Project) { @@ -267,12 +263,6 @@ class VariantDataTestUnit : VariantTestCase() { } } -class VariantScopeTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.variantScope }) - } -} - class OriginalApplicationIdTestUnit : VariantTestCase() { override fun apply(variant: BaseVariant) { AGP.run { variant.assembleTask }.doFirst { diff --git a/booster-android-gradle-v7_3/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_3/V73.kt b/booster-android-gradle-v7_3/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_3/V73.kt index 3ce5e7de5..cef70d2f9 100644 --- a/booster-android-gradle-v7_3/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_3/V73.kt +++ b/booster-android-gradle-v7_3/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_3/V73.kt @@ -145,7 +145,7 @@ internal object V73 : AGPInterface { isAccessible = true }.invoke(this) as BaseVariantData - override val BaseVariant.variantScope: VariantScope + val BaseVariant.variantScope: VariantScope get() = component.variantScope @Suppress("DEPRECATION") @@ -187,19 +187,11 @@ internal object V73 : AGPInterface { } override val BaseVariant.localAndroidResources: FileCollection - get() { - val localRes: ConfigurableFileCollection = component.services.fileCollection() - - localRes.from(component.sources.res.getVariantSources().map { allSources -> - allSources.map { directoryEntries -> - directoryEntries.directoryEntries.map { - it.asFiles(component.services::directoryProperty) - } - } - }) - - return localRes - } + get() = component.services.fileCollection().from(component.sources.res.getLocalSourcesAsFileCollection().map { + it.values.reduce { acc, files -> + acc.plus(files) + } + }) override fun BaseVariant.getArtifactCollection( configType: AndroidArtifacts.ConsumedConfigType, diff --git a/booster-android-gradle-v7_4/README.md b/booster-android-gradle-v7_4/README.md new file mode 100644 index 000000000..1e94458f5 --- /dev/null +++ b/booster-android-gradle-v7_4/README.md @@ -0,0 +1,6 @@ +# booster-android-gradle-v7_4 + +This module is an implementation of [booster-android-gradle-api](../booster-android-gradle-api) for Android gradle plugin above 7.4 + +本模块是 [booster-android-gradle-api](../booster-android-gradle-api) 针对 Android gradle plugin 7.4 以上版本的实现。 + diff --git a/booster-android-gradle-v7_4/build.gradle b/booster-android-gradle-v7_4/build.gradle new file mode 100644 index 000000000..25f86ff60 --- /dev/null +++ b/booster-android-gradle-v7_4/build.gradle @@ -0,0 +1,27 @@ +apply plugin: 'java-gradle-plugin' + +apply from: "$rootDir/gradle/booster.gradle" +apply from: "$rootDir/gradle/integration-test.gradle" +apply from: "$rootDir/gradle/functional-test.gradle" + +dependencies { + kapt 'com.google.auto.service:auto-service:1.0' + api 'com.google.auto.service:auto-service:1.0' + api project(':booster-android-gradle-compat') + compileOnly 'com.android.tools:repository:30.0.0' + compileOnly 'com.android.tools:common:30.0.0' + compileOnly 'com.android.tools:sdklib:30.0.0' + compileOnly 'com.android.tools.build:gradle:7.4.2' + testImplementation 'com.android.tools.build:gradle:7.4.2' + testImplementation 'com.android.tools:common:30.0.0' + testImplementation 'io.bootstage.testkit:testkit-gradle-plugin:1.1.0' + testImplementation project(':booster-build') +} + +jar { + exclude('com/android/sdklib/BuildToolInfo.class') +} + +gradlePlugin { + testSourceSets sourceSets.functionalTest, sourceSets.integrationTest +} \ No newline at end of file diff --git a/booster-android-gradle-v7_4/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v7_4/V74IntegrationTest.kt b/booster-android-gradle-v7_4/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v7_4/V74IntegrationTest.kt new file mode 100644 index 000000000..0e38cbe98 --- /dev/null +++ b/booster-android-gradle-v7_4/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v7_4/V74IntegrationTest.kt @@ -0,0 +1,480 @@ +@file:Suppress("DEPRECATION") + +package com.didiglobal.booster.android.gradle.v7_4 + +import com.android.build.gradle.AppExtension +import com.android.build.gradle.BaseExtension +import com.android.build.gradle.LibraryExtension +import com.android.build.gradle.api.BaseVariant +import com.didiglobal.booster.gradle.AGP +import com.didiglobal.booster.gradle.getAndroid +import com.didiglobal.booster.kotlinx.search +import io.bootstage.testkit.gradle.Case +import io.bootstage.testkit.gradle.TestCase +import io.bootstage.testkit.gradle.VariantTestCase +import io.bootstage.testkit.gradle.rules.GradleExecutor +import io.bootstage.testkit.gradle.rules.LocalProperties +import io.bootstage.testkit.gradle.rules.copyFromResource +import io.bootstage.testkit.gradle.rules.rule +import org.gradle.api.Project +import org.junit.Before +import org.junit.Rule +import org.junit.rules.TemporaryFolder +import org.junit.rules.TestRule +import java.io.File +import kotlin.test.Test +import kotlin.test.assertEquals +import kotlin.test.assertFalse +import kotlin.test.assertNotNull +import kotlin.test.assertTrue +import kotlin.test.fail + +private val MIN_SDK_VERSION = System.getProperty("android.minsdk.version").toInt() + +private const val TARGET_SDK_VERSION = 30 + +private val ARGS = System.getProperty("gradle.args").split("\\s+".toRegex()) + listOf( + "-Pbooster_version=${Build.VERSION}", + "-Pandroid_gradle_version=7.4.2", + "-Pcompile_sdk_version=30", + "-Pbuild_tools_version=29.0.2", + "-Pmin_sdk_version=${MIN_SDK_VERSION}", + "-Ptarget_sdk_version=${TARGET_SDK_VERSION}" +) + +@Suppress("RemoveCurlyBracesFromTemplate", "FunctionName") +abstract class V74IntegrationTest(private val isLib: Boolean) { + + private val projectDir = TemporaryFolder() + + @get:Rule + val ruleChain: TestRule = rule(projectDir) { + rule(LocalProperties(projectDir::getRoot)) { + GradleExecutor(projectDir::getRoot, "7.5", *ARGS.toTypedArray()) + } + } + + @Before + fun setup() { + projectDir.copyFromResource("${if (isLib) "lib" else "app"}.gradle", "build.gradle") + projectDir.copyFromResource("buildSrc") + projectDir.copyFromResource("src") + projectDir.newFile("gradle.properties").writeText("org.gradle.jvmargs=-Xmx4g -XX:MaxMetaspaceSize=2g") + assertEquals(7, AGP.revision.major) + assertEquals(4, AGP.revision.minor) + } + + @Test + @Case(ScopeFullWithFeaturesTest::class) + fun `test AGPInterface#scopeFullWithFeatures`() = Unit + + @Test + @Case(ScopeFullLibraryWithFeaturesTest::class) + fun `test AGPInterface#scopeFullLibraryWithFeatures`() = Unit + + @Test + @Case(ProjectTest::class) + fun `test AGPInterface#project`() = Unit + + @Test + @Case(JavaCompilerTaskTestUnit::class) + fun `test AGPInterface#javaCompilerTask`() = Unit + + @Test + @Case(PreBuildTaskTestUnit::class) + fun `test AGPInterface#preBuildTask`() = Unit + + @Test + @Case(AssembleTaskTestUnit::class) + fun `test AGPInterface#assembleTask`() = Unit + + @Test + @Case(MergeAssetsTaskTestUnit::class) + fun `test AGPInterface#mergeAssetsTask`() = Unit + + @Test + @Case(MergeResourcesTaskTestUnit::class) + fun `test AGPInterface#mergeResources`() = Unit + + @Test + @Case(GetTaskNameTestUnit::class) + fun `test AGPInterface#getTaskName(String)`() = Unit + + @Test + @Case(GetTaskName2TestUnit::class) + fun `test AGPInterface#getTaskName(String, String)`() = Unit + + @Test + @Case(VariantDataTestUnit::class) + fun `test AGPInterface#variantData`() = Unit + + @Test + @Case(OriginalApplicationIdTestUnit::class) + fun `test AGPInterface#originalApplicationId`() = Unit + + @Test + @Case(HasDynamicFeatureTestUnit::class) + fun `test AGPInterface#hasDynamicFeature`() = Unit + + @Test + @Case(RawAndroidResourcesTestUnit::class) + fun `test AGPInterface#rawAndroidResources`() = Unit + + @Test + @Case(AllArtifactsTestUnit::class) + fun `test AGPInterface#allArtifacts`() = Unit + + @Test + @Case(MinSdkVersionTestUnit::class) + fun `test AGPInterface#minSdkVersion`() = Unit + + @Test + @Case(TargetSdkVersionTestUnit::class) + fun `test AGPInterface#targetSdkVersion`() = Unit + + @Test + @Case(AarTestUnit::class) + fun `test AGPInterface#aar`() { + } + + @Test + @Case(ApkTestUnit::class) + fun `test AGPInterface#apk`() { + } + + @Test + @Case(MergedManifestsTestUnit::class) + fun `test AGPInterface#mergedManifests`() { + } + + @Test + @Case(MergedResourcesTestUnit::class) + fun `test AGPInterface#mergedRes`() { + } + + @Test + @Case(MergedAssetsTestUnit::class) + fun `test AGPInterface#mergedAssets`() { + } + + @Test + @Case(ProcessedResTestUnit::class) + fun `test AGPInterface#processedRes`() { + } + + @Test + @Case(SymbolListTestUnit::class) + fun `test AGPInterface#symbolList`() { + } + + @Test + @Case(SymbolListWithPackageNameTestUnit::class) + fun `test AGPInterface#symbolListWithPackageName`() { + } + + @Test + @Case(AllClassesTestUnit::class) + fun `test AGPInterface#allClasses`() { + } + +// @Test +// @Case(BuildToolsTestUnit::class) +// fun `test AGPInterface#buildTools`() { +// } + +} + +class V74AppIntegrationTest : V74IntegrationTest(false) + +class V74LibIntegrationTest : V74IntegrationTest(true) + +class ScopeFullWithFeaturesTest : TestCase { + override fun apply(project: Project) { + assertEquals("PROJECT,SUB_PROJECTS,EXTERNAL_LIBRARIES,FEATURES", AGP.scopeFullWithFeatures.joinToString(",")) + } +} + +class ScopeFullLibraryWithFeaturesTest : TestCase { + override fun apply(project: Project) { + assertEquals("FEATURES,PROJECT", AGP.scopeFullLibraryWithFeatures.joinToString(",")) + } +} + +class ProjectTest : TestCase { + override fun apply(project: Project) { + val assert: (BaseVariant) -> Unit = { variant -> + assertEquals(project, AGP.run { variant.project }) + } + project.afterEvaluate { + when (val android = project.getAndroid()) { + is AppExtension -> android.applicationVariants.forEach(assert) + is LibraryExtension -> android.libraryVariants.forEach(assert) + } + } + } +} + +class JavaCompilerTaskTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + assertNotNull(AGP.run { variant.javaCompilerTask }) + } +} + +class PreBuildTaskTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + assertNotNull(AGP.run { variant.preBuildTask }) + } +} + +class AssembleTaskTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + assertNotNull(AGP.run { variant.assembleTask }) + } +} + +class MergeAssetsTaskTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + assertNotNull(AGP.run { variant.mergeAssetsTask }) + } +} + +class MergeResourcesTaskTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + assertNotNull(AGP.run { variant.mergeResourcesTask }) + } +} + +class GetTaskNameTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + assertEquals("assemble${variant.name.capitalize()}", AGP.run { variant.getTaskName("assemble") }) + } +} + + +class GetTaskName2TestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + assertEquals("merge${variant.name.capitalize()}Resources", AGP.run { variant.getTaskName("merge", "Resources") }) + } +} + +class VariantDataTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + assertNotNull(AGP.run { variant.variantData }) + } +} + +class OriginalApplicationIdTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + AGP.run { variant.assembleTask }.doFirst { + assertNotNull(AGP.run { variant.originalApplicationId }) + } + } +} + +class HasDynamicFeatureTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + assertFalse(AGP.run { variant.hasDynamicFeature }) + } +} + +class RawAndroidResourcesTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + AGP.run { variant.assembleTask }.doFirst { + val rawAndroidResources = AGP.run { variant.rawAndroidResources } + assertNotNull(rawAndroidResources) + if (rawAndroidResources.isEmpty()) { + fail("rawAndroidResources is empty") + } + rawAndroidResources.forEach { + println(" - ${it.path}") + } + } + } +} + +class AllArtifactsTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + AGP.run { variant.assembleTask }.doFirst { + val allArtifacts = AGP.run { variant.allArtifacts } + assertNotNull(allArtifacts) + if (allArtifacts.isEmpty()) { + fail("allArtifacts is empty") + } + allArtifacts.forEach { (k, v) -> + println(" - $k => $v") + } + } + } +} + +class MinSdkVersionTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + val minSdkVersion = AGP.run { variant.minSdkVersion } + assertNotNull(minSdkVersion) + assertEquals(MIN_SDK_VERSION, minSdkVersion.apiLevel) + } +} + +class TargetSdkVersionTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + val targetSdkVersion = AGP.run { variant.targetSdkVersion } + assertNotNull(targetSdkVersion) + assertEquals(TARGET_SDK_VERSION, targetSdkVersion.apiLevel) + } +} + +class AarTestUnit : VariantTestCase() { + override fun apply(project: Project) { + if (project.plugins.hasPlugin("com.android.library")) { + super.apply(project) + } + } + + override fun apply(variant: BaseVariant) { + AGP.run { variant.assembleTask }.doFirst { + val aar = AGP.run { variant.aar }.search { + it.extension == "aar" + } + if (aar.isEmpty()) { + fail("aar is empty") + } + aar.forEach { + println(" - ${it.path}") + } + } + } +} + +class ApkTestUnit : VariantTestCase() { + override fun apply(project: Project) { + if (project.plugins.hasPlugin("com.android.application")) { + super.apply(project) + } + } + + override fun apply(variant: BaseVariant) { + AGP.run { variant.assembleTask }.doFirst { + val apk = AGP.run { variant.apk }.search { + it.extension == "apk" + } + if (apk.isEmpty()) { + fail("apk is empty") + } + apk.forEach { + println(" - ${it.path}") + } + } + } +} + +class MergedManifestsTestUnit : VariantTestCase() { + override fun apply(project: Project) { + if (project.plugins.hasPlugin("com.android.application")) { + super.apply(project) + } + } + + override fun apply(variant: BaseVariant) { + AGP.run { variant.assembleTask }.doFirst { + val mergedManifests = AGP.run { variant.mergedManifests }.search { + it.name == "AndroidManifest.xml" + } + if (mergedManifests.isEmpty()) { + fail("mergedManifests is empty") + } + mergedManifests.forEach { + println(" - ${it.path}") + } + } + } +} + +class MergedResourcesTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + AGP.run { variant.assembleTask }.doFirst { + val mergedResources = AGP.run { variant.mergedRes } + if (mergedResources.isEmpty()) { + fail("mergedRes is empty") + } + mergedResources.forEach { + println(" - ${it.path}") + } + } + } +} + +class MergedAssetsTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + AGP.run { variant.assembleTask }.doFirst { + val mergedAssets = AGP.run { variant.mergedAssets } + if (mergedAssets.isEmpty()) { + fail("mergedAssets is empty") + } + mergedAssets.forEach { + println(" - ${it.path}") + } + } + } +} + +class ProcessedResTestUnit : VariantTestCase() { + override fun apply(project: Project) { + if (project.plugins.hasPlugin("com.android.application")) { + super.apply(project) + } + } + + override fun apply(variant: BaseVariant) { + AGP.run { variant.assembleTask }.doFirst { + val processedRes = AGP.run { variant.processedRes }.search { + it.extension == "ap_" + } + if (processedRes.isEmpty()) { + fail("processedRes is empty") + } + processedRes.forEach { + println(" - ${it.path}") + } + } + } +} + +class SymbolListTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + AGP.run { variant.assembleTask }.doFirst { + val symbolList = AGP.run { variant.symbolList } + if (symbolList.isEmpty()) { + fail("symbolList is empty") + } + symbolList.forEach { + println(" - ${it.path}") + } + } + } +} + +class SymbolListWithPackageNameTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + AGP.run { variant.assembleTask }.doFirst { + val symbolListWithPackageName = AGP.run { variant.symbolListWithPackageName } + if (symbolListWithPackageName.isEmpty()) { + fail("symbolListWithPackageName is empty") + } + symbolListWithPackageName.forEach { + println(" - ${it.path}") + } + } + } +} + +class AllClassesTestUnit : VariantTestCase() { + override fun apply(variant: BaseVariant) { + AGP.run { variant.assembleTask }.doFirst { + val location = AGP.run { variant.allClasses }.files + assertTrue("ALL_CLASSES: $location", location::isNotEmpty) + assertTrue("No class file found at $location") { + location.search(File::isFile).isNotEmpty() + } + } + } +} diff --git a/booster-android-gradle-v7_4/src/integrationTest/resources/app.gradle b/booster-android-gradle-v7_4/src/integrationTest/resources/app.gradle new file mode 100644 index 000000000..aa3c5f2d6 --- /dev/null +++ b/booster-android-gradle-v7_4/src/integrationTest/resources/app.gradle @@ -0,0 +1,60 @@ +buildscript { + repositories { + mavenLocal() + mavenCentral() + google() + maven { url 'https://oss.sonatype.org/content/repositories/public/' } + maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } + } + dependencies { + classpath "com.android.tools.build:gradle:${project.android_gradle_version}" + classpath("com.didiglobal.booster:booster-gradle-plugin:${project.booster_version}") { + exclude group: 'com.google.guava' + } + classpath "io.bootstage.testkit:testkit-gradle-plugin:1.4.0" + } +} + +apply plugin: 'com.android.application' +apply plugin: 'com.didiglobal.booster' +apply plugin: 'io.bootstage.testkit' + +android { + compileSdkVersion project.compile_sdk_version as Integer + buildToolsVersion project.build_tools_version + defaultConfig { + applicationId 'com.didiglobal.booster.test' + minSdkVersion project.min_sdk_version as Integer + targetSdkVersion project.target_sdk_version as Integer + versionCode 1 + versionName "1.0" + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + } + buildTypes { + debug { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + } + } + flavorDimensions 'lang' + productFlavors { + en { + dimension 'lang' + applicationIdSuffix '.en' + } + cn { + dimension 'lang' + applicationIdSuffix '.cn' + } + } + lintOptions { + checkReleaseBuilds false + } +} + +repositories { + mavenLocal() + mavenCentral() + google() + maven { url 'https://oss.sonatype.org/content/repositories/public/' } +} diff --git a/booster-android-gradle-v7_4/src/integrationTest/resources/buildSrc/build.gradle b/booster-android-gradle-v7_4/src/integrationTest/resources/buildSrc/build.gradle new file mode 100644 index 000000000..79a9b104a --- /dev/null +++ b/booster-android-gradle-v7_4/src/integrationTest/resources/buildSrc/build.gradle @@ -0,0 +1,24 @@ +buildscript { + repositories { + mavenLocal() + mavenCentral() + google() + maven { url 'https://oss.sonatype.org/content/repositories/public/' } + maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } + } +} + +repositories { + mavenLocal() + mavenCentral() + google() + maven { url 'https://oss.sonatype.org/content/repositories/public/' } +} + +dependencies { + implementation "com.android.tools.build:gradle:${project.android_gradle_version}" + implementation("com.didiglobal.booster:booster-android-gradle-api:${project.booster_version}") { + exclude group: 'com.google.guava' + } + implementation "io.bootstage.testkit:testkit-gradle-plugin:1.4.0" +} diff --git a/booster-android-gradle-v7_4/src/integrationTest/resources/lib.gradle b/booster-android-gradle-v7_4/src/integrationTest/resources/lib.gradle new file mode 100644 index 000000000..adc9b1ca0 --- /dev/null +++ b/booster-android-gradle-v7_4/src/integrationTest/resources/lib.gradle @@ -0,0 +1,57 @@ +buildscript { + repositories { + mavenLocal() + mavenCentral() + google() + maven { url 'https://oss.sonatype.org/content/repositories/public/' } + maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } + } + dependencies { + classpath "com.android.tools.build:gradle:${project.android_gradle_version}" + classpath("com.didiglobal.booster:booster-gradle-plugin:${project.booster_version}") { + exclude group: 'com.google.guava' + } + classpath "io.bootstage.testkit:testkit-gradle-plugin:1.4.0" + } +} + +apply plugin: 'com.android.library' +apply plugin: 'com.didiglobal.booster' +apply plugin: 'io.bootstage.testkit' + +android { + compileSdkVersion project.compile_sdk_version as Integer + buildToolsVersion project.build_tools_version + defaultConfig { + minSdkVersion project.min_sdk_version as Integer + targetSdkVersion project.target_sdk_version as Integer + versionCode 1 + versionName "1.0" + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + } + buildTypes { + debug { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + } + } + flavorDimensions 'lang' + productFlavors { + en { + dimension 'lang' + } + cn { + dimension 'lang' + } + } + lintOptions { + checkReleaseBuilds false + } +} + +repositories { + mavenLocal() + mavenCentral() + google() + maven { url 'https://oss.sonatype.org/content/repositories/public/' } +} diff --git a/booster-android-gradle-v7_4/src/integrationTest/resources/src/main/AndroidManifest.xml b/booster-android-gradle-v7_4/src/integrationTest/resources/src/main/AndroidManifest.xml new file mode 100644 index 000000000..30800c604 --- /dev/null +++ b/booster-android-gradle-v7_4/src/integrationTest/resources/src/main/AndroidManifest.xml @@ -0,0 +1,9 @@ + + + + + + \ No newline at end of file diff --git a/booster-android-gradle-v7_4/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/MainActivity.java b/booster-android-gradle-v7_4/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/MainActivity.java new file mode 100644 index 000000000..0eb4ec7b4 --- /dev/null +++ b/booster-android-gradle-v7_4/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/MainActivity.java @@ -0,0 +1,6 @@ +package com.didiglobal.booster.android.test; + +import android.app.Activity; + +public class MainActivity extends Activity { +} \ No newline at end of file diff --git a/booster-android-gradle-v7_4/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/TestApplication.java b/booster-android-gradle-v7_4/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/TestApplication.java new file mode 100644 index 000000000..3ecfb1507 --- /dev/null +++ b/booster-android-gradle-v7_4/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/TestApplication.java @@ -0,0 +1,7 @@ +package com.didiglobal.booster.android.test; + +import android.app.Application; + +public class TestApplication extends Application { + +} \ No newline at end of file diff --git a/booster-android-gradle-v7_4/src/integrationTest/resources/src/main/res/values/strings.xml b/booster-android-gradle-v7_4/src/integrationTest/resources/src/main/res/values/strings.xml new file mode 100644 index 000000000..8b2247616 --- /dev/null +++ b/booster-android-gradle-v7_4/src/integrationTest/resources/src/main/res/values/strings.xml @@ -0,0 +1,4 @@ + + + Test + \ No newline at end of file diff --git a/booster-android-gradle-v7_4/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_4/V74.kt b/booster-android-gradle-v7_4/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_4/V74.kt index 014427239..bf3899b3a 100644 --- a/booster-android-gradle-v7_4/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_4/V74.kt +++ b/booster-android-gradle-v7_4/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_4/V74.kt @@ -188,23 +188,15 @@ internal object V74 : AGPInterface { } override val BaseVariant.localAndroidResources: FileCollection - get() { - val localRes: ConfigurableFileCollection = component.services.fileCollection() - - localRes.from(component.sources.res.getVariantSources().map { allSources -> - allSources.getEntries().map { - if (it is TaskProviderBasedDirectoryEntryImpl) { - it.directoryProvider - } else { - it.asFiles(component.services.provider { - component.services.projectInfo.projectDirectory - }) - } + get() = component.services.fileCollection().from(component.sources.res.getLocalSources().values.map { + it.map { dirs -> + dirs.map { dir -> + dir.asFileTree + }.reduce { acc, dir -> + acc.plus(dir) } - }) - - return localRes - } + } + }) override fun BaseVariant.getArtifactCollection( configType: AndroidArtifacts.ConsumedConfigType, diff --git a/booster-android-gradle-v7_4/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_4/V74Factory.kt b/booster-android-gradle-v7_4/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_4/V74Factory.kt new file mode 100644 index 000000000..0ab0810ef --- /dev/null +++ b/booster-android-gradle-v7_4/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_4/V74Factory.kt @@ -0,0 +1,15 @@ +package com.didiglobal.booster.android.gradle.v7_4 + +import com.android.repository.Revision +import com.didiglobal.booster.gradle.AGPInterface +import com.didiglobal.booster.gradle.AGPInterfaceFactory +import com.google.auto.service.AutoService + +@AutoService(AGPInterfaceFactory::class) +class V74Factory : AGPInterfaceFactory { + + override val revision: Revision = Revision(7, 4, 2) + + override fun newAGPInterface(): AGPInterface = V74 + +} diff --git a/gradle/booster.gradle b/gradle/booster.gradle index 53f356615..018c906c3 100644 --- a/gradle/booster.gradle +++ b/gradle/booster.gradle @@ -2,8 +2,8 @@ apply plugin: 'kotlin' apply plugin: 'kotlin-kapt' apply plugin: 'io.johnsonlee.buildprops' -sourceCompatibility = JavaVersion.VERSION_1_8 -targetCompatibility = JavaVersion.VERSION_1_8 +sourceCompatibility = JavaVersion.VERSION_11 +targetCompatibility = JavaVersion.VERSION_11 sourceSets { main { @@ -26,7 +26,7 @@ sourceSets { compileKotlin { kotlinOptions{ - jvmTarget = JavaVersion.VERSION_1_8 + jvmTarget = JavaVersion.VERSION_11 apiVersion = "1.5" freeCompilerArgs = ["-Xno-optimized-callable-references"] } @@ -34,7 +34,7 @@ compileKotlin { compileTestKotlin { kotlinOptions{ - jvmTarget = JavaVersion.VERSION_1_8 + jvmTarget = JavaVersion.VERSION_11 apiVersion = "1.5" freeCompilerArgs = ["-Xno-optimized-callable-references"] } diff --git a/gradle/functional-test.gradle b/gradle/functional-test.gradle index be18d001e..389dfa56a 100644 --- a/gradle/functional-test.gradle +++ b/gradle/functional-test.gradle @@ -34,7 +34,7 @@ check.dependsOn functionalTest compileFunctionalTestKotlin { kotlinOptions { - jvmTarget = JavaVersion.VERSION_1_8 + jvmTarget = JavaVersion.VERSION_11 apiVersion = "1.5" freeCompilerArgs = ["-Xno-optimized-callable-references"] } diff --git a/gradle/integration-test.gradle b/gradle/integration-test.gradle index 7813476df..f942e4621 100644 --- a/gradle/integration-test.gradle +++ b/gradle/integration-test.gradle @@ -34,7 +34,7 @@ check.dependsOn integrationTest compileIntegrationTestKotlin { kotlinOptions { - jvmTarget = JavaVersion.VERSION_1_8 + jvmTarget = JavaVersion.VERSION_11 apiVersion = "1.5" freeCompilerArgs = ["-Xno-optimized-callable-references"] } diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 41dfb8790..8049c684f 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/settings.gradle.kts b/settings.gradle.kts index 930b66ece..68a43c26a 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -40,6 +40,7 @@ include(":booster-android-gradle-v7_0") include(":booster-android-gradle-v7_1") include(":booster-android-gradle-v7_2") include(":booster-android-gradle-v7_3") +include(":booster-android-gradle-v7_4") include(":booster-annotations") include(":booster-api") include(":booster-build") From f3872c00a9e2789736801dab992d01c130613ac7 Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Sun, 28 May 2023 00:48:07 +0900 Subject: [PATCH 174/187] [skip ci] Update README & RELEASE-NOTES --- README.md | 5 +++-- RELEASE-NOTES.md | 6 ++++++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 75c376d43..2bf983291 100644 --- a/README.md +++ b/README.md @@ -65,6 +65,7 @@ The following table lists which version of Gradle is required for each version o | 7.1 | 7.1+ | | 7.2 | 7.3.3+ | | 7.3 | 7.4+ | +| 7.4 | 7.5+ | ## Best Practise | 最佳实践 @@ -74,7 +75,7 @@ The best practise of using Booster is integrating the specific module to solve t ```groovy buildscript { - ext.booster_version = '4.16.1' + ext.booster_version = '4.16.2' repositories { google() mavenCentral() @@ -122,7 +123,7 @@ The `plugins` DSL also supported since Booster *3.0.0* ```groovy plugins { - id 'com.didiglobal.booster' version '4.16.1' + id 'com.didiglobal.booster' version '4.16.2' } ``` diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index 6ce551980..187ac6f71 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -1,3 +1,9 @@ +## v4.16.2 + +- Fix `Project.getJarTaskProviders(BaseVariant?)` with projects do not have `android` extension +- Add extension `BaseVariant.localAndroidResources` +- Fix `AndroidSdk.findPlatform()`: Ignore Android SDK extension + ## v4.16.1 - Fix issue [#406](https://github.com/didi/booster/issues/406) : incremental build with jar removal From a8721df6c5bcfdb1b60305b1ac4461f5e8bdc0c4 Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Sat, 2 Sep 2023 10:06:05 +0900 Subject: [PATCH 175/187] [skip ci] Update RELEASE-NOTES --- RELEASE-NOTES.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index 187ac6f71..ac814a600 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -1,3 +1,8 @@ +## v4.14.1 + +- Sync from 4.16.2 +- Exclude AGP 7.3 and Kotlin API version 1.5.0 upgrading + ## v4.16.2 - Fix `Project.getJarTaskProviders(BaseVariant?)` with projects do not have `android` extension @@ -17,8 +22,6 @@ - Support AGP 7.3 - Fix integration tests -## v4.14.0 - - CHA improvement ## v4.13.0 From f675500213f2aa6401c34c0c3a16a73bfd331d84 Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Mon, 4 Sep 2023 19:46:09 +0900 Subject: [PATCH 176/187] Fix issue #422: end-of-stream caused by multiple collector --- .../booster/transform/util/Collectors.kt | 30 ++++++++----------- .../transform/util/CompositeCollector.kt | 3 +- 2 files changed, 14 insertions(+), 19 deletions(-) diff --git a/booster-transform-util/src/main/kotlin/com/didiglobal/booster/transform/util/Collectors.kt b/booster-transform-util/src/main/kotlin/com/didiglobal/booster/transform/util/Collectors.kt index fafd6f804..595c46d5f 100644 --- a/booster-transform-util/src/main/kotlin/com/didiglobal/booster/transform/util/Collectors.kt +++ b/booster-transform-util/src/main/kotlin/com/didiglobal/booster/transform/util/Collectors.kt @@ -3,11 +3,10 @@ package com.didiglobal.booster.transform.util import com.didiglobal.booster.kotlinx.search import com.didiglobal.booster.transform.AbstractTransformContext import com.didiglobal.booster.transform.TransformContext -import org.apache.commons.compress.archivers.ArchiveEntry -import org.apache.commons.compress.archivers.ArchiveStreamFactory import java.io.File -import java.io.IOException import java.util.regex.Pattern +import java.util.zip.ZipEntry +import java.util.zip.ZipFile typealias Collector = com.didiglobal.booster.transform.Collector @@ -88,22 +87,17 @@ fun File.collect(collector: Collector): List = when { collector.collect(base.relativize(f.toURI()).normalize().path, f::readBytes) } } - this.isFile -> { - this.inputStream().buffered().use { - ArchiveStreamFactory().createArchiveInputStream(it).let { archive -> - generateSequence { - try { - archive.nextEntry - } catch (e: IOException) { - null - } - }.filterNot(ArchiveEntry::isDirectory).filter { entry -> - collector.accept(entry.name) - }.map { entry -> - collector.collect(entry.name, archive::readBytes) - }.toList() - } + this.isFile -> when (this.extension.lowercase()) { + "jar", "zip" -> ZipFile(this).use { zip -> + zip.entries().asSequence().filterNot(ZipEntry::isDirectory).filter { entry -> + collector.accept(entry.name) + }.map { entry -> + collector.collect(entry.name) { + zip.getInputStream(entry).readBytes() + } + }.toList() } + else -> emptyList() } else -> emptyList() } diff --git a/booster-transform-util/src/main/kotlin/com/didiglobal/booster/transform/util/CompositeCollector.kt b/booster-transform-util/src/main/kotlin/com/didiglobal/booster/transform/util/CompositeCollector.kt index 3ca22c1e4..82e172942 100644 --- a/booster-transform-util/src/main/kotlin/com/didiglobal/booster/transform/util/CompositeCollector.kt +++ b/booster-transform-util/src/main/kotlin/com/didiglobal/booster/transform/util/CompositeCollector.kt @@ -16,10 +16,11 @@ class CompositeCollector(private val collectors: Iterable>) : Colle } override fun collect(name: String, data: () -> ByteArray): List<*> { + val bytes by lazy(data) // to avoid end-of-stream caused by multiple readers return collectors.filter { it.accept(name) }.mapNotNull { - it.collect(name, data) + it.collect(name) { bytes } } } From 8d3bf8e8cb6aa1194feb4f1d8024a6b6ab1ebda9 Mon Sep 17 00:00:00 2001 From: johnsonlee Date: Sun, 8 Oct 2023 14:50:27 +0900 Subject: [PATCH 177/187] [skip ci] Update README & RELEASE-NOTES --- README.md | 4 ++-- RELEASE-NOTES.md | 9 +++++++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 2bf983291..352f07801 100644 --- a/README.md +++ b/README.md @@ -75,7 +75,7 @@ The best practise of using Booster is integrating the specific module to solve t ```groovy buildscript { - ext.booster_version = '4.16.2' + ext.booster_version = '4.16.3' repositories { google() mavenCentral() @@ -123,7 +123,7 @@ The `plugins` DSL also supported since Booster *3.0.0* ```groovy plugins { - id 'com.didiglobal.booster' version '4.16.2' + id 'com.didiglobal.booster' version '4.16.3' } ``` diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index ac814a600..25b7ab437 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -1,3 +1,12 @@ +## v4.16.3 + +- Support AGP 7.4 +- Fix issue [#422](https://github.com/didi/booster/pull/422) end-of-stream caused by multiple collector + +## v4.14.2 + +- Fix issue [#422](https://github.com/didi/booster/pull/422) end-of-stream caused by multiple collector + ## v4.14.1 - Sync from 4.16.2 From c1fcb57b67023c26a6b1353d3fed86b7920d3102 Mon Sep 17 00:00:00 2001 From: Johnson Lee Date: Mon, 19 Feb 2024 22:18:21 +0800 Subject: [PATCH 178/187] Remove VM option `-XX:MaxPermSize` --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 528b28cab..d8039ff32 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,4 @@ systemProp.org.gradle.internal.publish.checksums.insecure=true org.gradle.caching=true org.gradle.parallel=true -org.gradle.jvmargs=-Xmx4096m -XX:MaxPermSize=512m -Dfile.encoding=UTF-8 +org.gradle.jvmargs=-Xmx4096m -Dfile.encoding=UTF-8 From d62ca3afa231719fd285e3d196d1f9f810ca3182 Mon Sep 17 00:00:00 2001 From: neighbWang Date: Mon, 25 Sep 2023 19:07:05 +0800 Subject: [PATCH 179/187] Support AGP 8.0 & 8.1 & 8.2 --- .github/workflows/dokka.yml | 2 +- .github/workflows/publish.yml | 6 +- .github/workflows/test.yml | 247 +-------- booster-aapt2/build.gradle | 4 +- .../src/main/java/android/os/Build.java | 2 - .../src/main/java/android/util/Log.java | 5 +- .../java/android/view/ViewTreeObserver.java | 1 - booster-android-gradle-api/build.gradle | 19 +- .../didiglobal/booster/gradle/BaseVariant.kt | 375 -------------- .../com/didiglobal/booster/gradle/Context.kt | 7 - .../com/didiglobal/booster/gradle/Project.kt | 71 +-- .../booster/gradle/ResolvedArtifactResults.kt | 11 +- .../booster/gradle/TransformInvocation.kt | 64 --- .../booster/gradle/TransformManager.kt | 16 - .../com/didiglobal/booster/gradle/Variant.kt | 262 ++++++++++ .../com/didiglobal/booster/gradle/Version.kt | 18 +- booster-android-gradle-compat/build.gradle | 4 +- .../didiglobal/booster/gradle/AGPInterface.kt | 165 +++--- booster-android-gradle-v3_3/README.md | 6 - booster-android-gradle-v3_3/build.gradle | 19 - .../android/gradle/v3_3/V33IntegrationTest.kt | 475 ----------------- .../booster/android/gradle/v3_3/V33.kt | 253 --------- .../booster/android/gradle/v3_3/V33Factory.kt | 15 - booster-android-gradle-v3_4/build.gradle | 19 - .../android/gradle/v3_4/V34IntegrationTest.kt | 475 ----------------- .../src/integrationTest/resources/app.gradle | 60 --- .../resources/buildSrc/build.gradle | 24 - .../booster/android/gradle/v3_4/V34.kt | 255 ---------- booster-android-gradle-v3_5/README.md | 6 - booster-android-gradle-v3_5/build.gradle | 19 - .../android/gradle/v3_5/V35IntegrationTest.kt | 476 ----------------- .../booster/android/gradle/v3_5/V35.kt | 254 --------- booster-android-gradle-v3_6/README.md | 6 - booster-android-gradle-v3_6/build.gradle | 19 - .../android/gradle/v3_6/V36IntegrationTest.kt | 479 ----------------- .../src/integrationTest/resources/lib.gradle | 57 --- .../resources/src/main/AndroidManifest.xml | 9 - .../booster/android/test/MainActivity.java | 6 - .../booster/android/test/TestApplication.java | 7 - .../resources/src/main/res/values/strings.xml | 4 - .../booster/android/gradle/v3_6/V36.kt | 264 ---------- .../booster/android/gradle/v3_6/V36Factory.kt | 15 - booster-android-gradle-v4_0/README.md | 6 - booster-android-gradle-v4_0/build.gradle | 19 - .../android/gradle/v4_0/V40IntegrationTest.kt | 481 ------------------ .../src/integrationTest/resources/app.gradle | 60 --- .../resources/buildSrc/build.gradle | 24 - .../src/integrationTest/resources/lib.gradle | 57 --- .../resources/src/main/AndroidManifest.xml | 9 - .../booster/android/test/MainActivity.java | 6 - .../booster/android/test/TestApplication.java | 7 - .../resources/src/main/res/values/strings.xml | 4 - .../booster/android/gradle/v4_0/V40.kt | 286 ----------- .../booster/android/gradle/v4_0/V40Factory.kt | 15 - booster-android-gradle-v4_1/README.md | 6 - booster-android-gradle-v4_1/build.gradle | 19 - .../android/gradle/v4_1/V41IntegrationTest.kt | 481 ------------------ .../src/integrationTest/resources/app.gradle | 60 --- .../resources/buildSrc/build.gradle | 24 - .../src/integrationTest/resources/lib.gradle | 57 --- .../resources/src/main/AndroidManifest.xml | 9 - .../booster/android/test/MainActivity.java | 6 - .../booster/android/test/TestApplication.java | 7 - .../resources/src/main/res/values/strings.xml | 4 - .../booster/android/gradle/v4_1/V41.kt | 299 ----------- .../booster/android/gradle/v4_1/V41Factory.kt | 15 - booster-android-gradle-v4_2/README.md | 6 - booster-android-gradle-v4_2/build.gradle | 19 - .../android/gradle/v4_2/V42IntegrationTest.kt | 481 ------------------ .../src/integrationTest/resources/app.gradle | 60 --- .../resources/buildSrc/build.gradle | 24 - .../src/integrationTest/resources/lib.gradle | 57 --- .../resources/src/main/AndroidManifest.xml | 9 - .../booster/android/test/MainActivity.java | 6 - .../booster/android/test/TestApplication.java | 7 - .../resources/src/main/res/values/strings.xml | 4 - .../booster/android/gradle/v4_2/V42.kt | 300 ----------- .../booster/android/gradle/v4_2/V42Factory.kt | 15 - .../src/integrationTest/resources/app.gradle | 60 --- .../resources/buildSrc/build.gradle | 24 - .../src/integrationTest/resources/lib.gradle | 57 --- .../resources/src/main/AndroidManifest.xml | 9 - .../booster/android/test/MainActivity.java | 6 - .../booster/android/test/TestApplication.java | 7 - .../resources/src/main/res/values/strings.xml | 4 - .../booster/android/gradle/v7_0/V70.kt | 308 ----------- .../booster/android/gradle/v7_0/V70Factory.kt | 15 - .../src/integrationTest/resources/app.gradle | 60 --- .../resources/buildSrc/build.gradle | 24 - .../src/integrationTest/resources/lib.gradle | 57 --- .../resources/src/main/AndroidManifest.xml | 9 - .../booster/android/test/MainActivity.java | 6 - .../booster/android/test/TestApplication.java | 7 - .../resources/src/main/res/values/strings.xml | 4 - .../booster/android/gradle/v7_1/V71.kt | 304 ----------- .../booster/android/gradle/v7_1/V71Factory.kt | 15 - .../android/gradle/v7_2/V72IntegrationTest.kt | 478 ----------------- .../src/integrationTest/resources/app.gradle | 60 --- .../resources/buildSrc/build.gradle | 24 - .../src/integrationTest/resources/lib.gradle | 57 --- .../resources/src/main/AndroidManifest.xml | 9 - .../booster/android/test/MainActivity.java | 6 - .../booster/android/test/TestApplication.java | 7 - .../resources/src/main/res/values/strings.xml | 4 - .../booster/android/gradle/v7_2/V72.kt | 314 ------------ .../booster/android/gradle/v7_2/V72Factory.kt | 15 - booster-android-gradle-v7_3/README.md | 6 - booster-android-gradle-v7_3/build.gradle | 27 - .../src/integrationTest/resources/app.gradle | 60 --- .../resources/buildSrc/build.gradle | 24 - .../src/integrationTest/resources/lib.gradle | 57 --- .../resources/src/main/AndroidManifest.xml | 9 - .../booster/android/test/MainActivity.java | 6 - .../booster/android/test/TestApplication.java | 7 - .../resources/src/main/res/values/strings.xml | 4 - .../booster/android/gradle/v7_3/V73.kt | 328 ------------ .../booster/android/gradle/v7_3/V73Factory.kt | 15 - booster-android-gradle-v7_4/README.md | 6 - booster-android-gradle-v7_4/build.gradle | 27 - .../android/gradle/v7_4/V74IntegrationTest.kt | 480 ----------------- .../src/integrationTest/resources/app.gradle | 60 --- .../resources/buildSrc/build.gradle | 24 - .../src/integrationTest/resources/lib.gradle | 57 --- .../resources/src/main/AndroidManifest.xml | 9 - .../booster/android/test/MainActivity.java | 6 - .../booster/android/test/TestApplication.java | 7 - .../resources/src/main/res/values/strings.xml | 4 - .../booster/android/gradle/v7_4/V74.kt | 333 ------------ .../booster/android/gradle/v7_4/V74Factory.kt | 15 - .../README.md | 6 +- .../build.gradle | 7 +- .../android/gradle/v8_0/V80IntegrationTest.kt | 252 ++++----- .../src/integrationTest/resources/app.gradle | 3 +- .../resources/buildSrc/build.gradle | 2 +- .../src/integrationTest/resources/lib.gradle | 3 +- .../resources/src/main/AndroidManifest.xml | 7 +- .../booster/android/test/MainActivity.java | 0 .../booster/android/test/TestApplication.java | 0 .../resources/src/main/res/values/strings.xml | 0 .../booster/android/gradle/v8_0/V80.kt | 333 ++++++++++++ .../booster/android/gradle/v8_0/V80Factory.kt | 16 + .../README.md | 6 +- .../build.gradle | 8 +- .../android/gradle/v8_1/V81IntegrationTest.kt | 254 ++++----- .../src/integrationTest/resources/app.gradle | 3 +- .../resources/buildSrc/build.gradle | 2 +- .../src/integrationTest/resources/lib.gradle | 3 +- .../resources/src/main/AndroidManifest.xml | 7 +- .../booster/android/test/MainActivity.java | 0 .../booster/android/test/TestApplication.java | 0 .../resources/src/main/res/values/strings.xml | 0 .../booster/android/gradle/v8_1/V81.kt | 336 ++++++++++++ .../booster/android/gradle/v8_1/V81Factory.kt | 8 +- .../README.md | 6 +- .../build.gradle | 8 +- .../android/gradle/v8_2/V82IntegrationTest.kt | 272 ++++------ .../src/integrationTest/resources/app.gradle | 3 +- .../resources/buildSrc/build.gradle | 2 +- .../src/integrationTest/resources/lib.gradle | 3 +- .../resources/src/main/AndroidManifest.xml | 7 +- .../booster/android/test/MainActivity.java | 0 .../booster/android/test/TestApplication.java | 0 .../resources/src/main/res/values/strings.xml | 0 .../booster/android/gradle/v8_2/V82.kt | 336 ++++++++++++ .../booster/android/gradle/v8_2/V82Factory.kt | 8 +- .../build.gradle | 7 - .../instrument/ShadowSharedPreferences.java | 30 -- .../BoosterSharedPreferences.java | 317 ------------ .../SharedPreferencesManager.java | 143 ------ .../io/BoosterXmlSerializer.java | 335 ------------ .../sharedpreferences/io/IoUtils.java | 22 - .../sharedpreferences/io/XmlUtils.java | 389 -------------- .../build.gradle | 7 - .../booster/instrument/ShadowWebView.java | 58 --- booster-api/build.gradle | 4 +- .../booster/RelativeResourceUtils.kt | 155 ++++++ .../transform/VariantTransformHelper.kt | 25 +- booster-gradle-plugin/build.gradle | 5 +- .../booster/gradle/BoosterPlugin.kt | 54 +- .../booster/gradle/BoosterTransform.kt | 77 --- .../gradle/BoosterTransformInvocation.kt | 275 ---------- .../booster/gradle/BoosterTransformTask.kt | 221 ++++++++ .../BoosterTransformTaskExecutionListener.kt | 25 - .../booster/gradle/ServiceLoader.kt | 8 + .../booster/gradle/TransformParameter.kt | 19 - .../gradle/internal/BoosterTransformV34.kt | 23 - .../didiglobal/booster/gradle/util/Dexer.kt | 63 --- .../com/didiglobal/booster/kotlinx/text.kt | 5 + booster-task-analyser/README.md | 78 --- booster-task-analyser/build.gradle | 13 - .../booster/task/analyser/AnalysisTask.kt | 38 -- .../task/analyser/AnalysisVariantProcessor.kt | 83 --- .../analyser/performance/LayoutHandler.kt | 17 - .../performance/PerformanceAnalyser.kt | 454 ----------------- .../performance/PerformanceAnalysisTask.kt | 35 -- .../task/analyser/performance/constants.kt | 86 ---- .../reference/ReferenceAnalysisTask.kt | 83 --- .../reference/ReferencePageRenderer.kt | 58 --- .../src/main/resources/blacklist.txt | 166 ------ .../src/main/resources/style.css | 7 - .../src/main/resources/whitelist.txt | 2 - .../java/androidx/annotation/MainThread.java | 11 - .../org/greenrobot/eventbus/Subscribe.java | 14 - .../org/greenrobot/eventbus/ThreadMode.java | 9 - .../booster/task/analyser/AnalyserTaskTest.kt | 20 - .../task/analyser/AnnotationExample1.kt | 20 - .../task/analyser/AnnotationExample2.kt | 24 - .../booster/task/analyser/URITest.kt | 18 - .../test/resources/AnnotationExample1.class | Bin 971 -> 0 bytes .../test/resources/AnnotationExample2.class | Bin 1073 -> 0 bytes booster-task-check-snapshot/README.md | 12 - booster-task-check-snapshot/build.gradle | 9 - .../booster/task/dependency/CheckSnapshot.kt | 31 -- .../CheckSnapshotVariantProcessor.kt | 40 -- booster-task-compression-cwebp/README.md | 24 - booster-task-compression-cwebp/build.gradle | 10 - .../cwebp/AbstractCwebpCompressImages.kt | 24 - .../task/compression/cwebp/CWebpProvider.kt | 17 - .../booster/task/compression/cwebp/Cwebp.kt | 82 --- .../cwebp/CwebpCompressFlatImages.kt | 106 ---- .../compression/cwebp/CwebpCompressImages.kt | 55 -- .../cwebp/CwebpCompressOpaqueFlatImages.kt | 17 - .../cwebp/CwebpCompressOpaqueImages.kt | 41 -- .../cwebp/CwebpCompressionVariantProcessor.kt | 43 -- .../compression/cwebp/LauncherIconHandler.kt | 31 -- .../src/main/resources/bin/linux/x64/cwebp | Bin 2419040 -> 0 bytes .../src/main/resources/bin/macosx/arm64/cwebp | Bin 2510232 -> 0 bytes .../main/resources/bin/macosx/x64/10.12/cwebp | Bin 1417248 -> 0 bytes .../main/resources/bin/macosx/x64/10.13/cwebp | Bin 1467212 -> 0 bytes .../main/resources/bin/macosx/x64/10.14/cwebp | Bin 1479480 -> 0 bytes .../main/resources/bin/macosx/x64/10.15/cwebp | Bin 2089788 -> 0 bytes .../main/resources/bin/windows/x64/cwebp.exe | Bin 713216 -> 0 bytes .../compression/cwebp/CwebpProviderTest.kt | 17 - booster-task-compression-pngquant/README.md | 31 -- .../build.gradle | 11 - .../AbstractPngquantCompressImages.kt | 25 - .../task/compression/pngquant/Pngquant.kt | 39 -- .../pngquant/PngquantCompressFlatImages.kt | 86 ---- .../pngquant/PngquantCompressImages.kt | 48 -- .../PngquantCompressionVariantProcessor.kt | 53 -- .../compression/pngquant/PngquantOptions.kt | 5 - .../README.md | 3 - .../build.gradle | 10 - ...sedResourcesCompressionVariantProcessor.kt | 160 ------ booster-task-compression/README.md | 3 - booster-task-compression/build.gradle | 12 - booster-task-compression/packages-zh-CN.md | 8 - .../booster/compression/CompressionOptions.kt | 5 - .../booster/compression/CompressionReport.kt | 92 ---- .../compression/CompressionTaskCreator.kt | 61 --- .../CompressionTaskCreatorFactory.kt | 15 - .../booster/compression/CompressionTool.kt | 15 - .../SimpleCompressionTaskCreator.kt | 92 ---- .../compression/task/CompressImages.kt | 93 ---- .../booster/task/compression/FileNameTest.kt | 21 - booster-task-graph/build.gradle | 4 +- .../task/graph/GraphVariantProcessor.kt | 17 +- booster-task-list-artifact/build.gradle | 4 +- .../booster/task/artifact/ListArtifact.kt | 4 +- .../artifact/ListArtifactVariantProcessor.kt | 8 +- booster-task-list-permission/build.gradle | 4 +- .../booster/task/permission/ListPermission.kt | 77 +-- .../ListPermissionVariantProcessor.kt | 11 +- booster-task-list-shared-library/build.gradle | 4 +- .../booster/task/so/ListSharedLibrary.kt | 4 +- .../so/ListSharedLibraryVariantProcessor.kt | 8 +- booster-task-resource-deredundancy/README.md | 2 - .../build.gradle | 10 - .../resource/deredundancy/LayoutDirHandler.kt | 16 - .../deredundancy/RemoveRedundantFlatImages.kt | 81 --- .../deredundancy/RemoveRedundantImages.kt | 46 -- .../ResourceDeredundancyVariantProcessor.kt | 62 --- booster-task-spi/build.gradle | 5 +- .../booster/task/spi/VariantProcessor.kt | 14 +- .../build.gradle | 4 +- .../ActivityThreadVariantProcessor.kt | 26 + .../ActivityThreadVarinatProcessor.kt | 23 - booster-transform-asm/build.gradle | 10 +- booster-transform-br-inline/README.md | 4 - booster-transform-br-inline/build.gradle | 8 - .../br/inline/BRInlineTransformer.kt | 130 ----- .../booster/transform/br/inline/SymbolList.kt | 63 --- .../transform/br/inline/SymbolListTest.kt | 18 - .../src/test/resources/BR.class | Bin 553 -> 0 bytes .../build.gradle | 4 +- .../FinalizerWatchdogDaemonTransformer.kt | 3 +- ...FinalizerWatchdogDaemonVariantProcessor.kt | 20 +- booster-transform-logcat/build.gradle | 4 +- .../transform/logcat/LogcatTransformer.kt | 3 +- .../logcat/LogcatVariantProcessor.kt | 25 + .../logcat/LogcatVarinatProcessor.kt | 22 - booster-transform-media-player/build.gradle | 4 +- .../mediaplayer/MediaPlayerTransformer.kt | 3 +- .../MediaPlayerVariantProcessor.kt | 25 + .../MediaPlayerVarinatProcessor.kt | 23 - .../transform/r/inline/RInlineTransformer.kt | 5 +- booster-transform-res-check/build.gradle | 4 +- .../res/check/ResCheckVariantProcessor.kt | 25 + .../res/check/ResCheckVarinatProcessor.kt | 22 - booster-transform-service-loader/README.md | 17 - booster-transform-service-loader/build.gradle | 9 - .../serviceloader/ServiceLoaderTransformer.kt | 176 ------- .../build.gradle | 9 - .../SharedPreferencesTransformer.kt | 93 ---- .../SharedPreferencesVariantProcessor.kt | 23 - booster-transform-thread/build.gradle | 4 +- .../thread/ThreadVariantProcessor.kt | 19 +- booster-transform-toast/build.gradle | 4 +- .../transform/toast/ToastVariantProcessor.kt | 19 +- booster-transform-webview/build.gradle | 9 - .../transform/webview/WebViewTransformer.kt | 86 ---- .../webview/WebViewVariantProcessor.kt | 22 - build.gradle | 31 +- gradle.properties | 2 +- gradle/booster.gradle | 13 +- gradle/functional-test.gradle | 2 +- gradle/integration-test.gradle | 2 +- gradle/wrapper/gradle-wrapper.properties | 2 +- settings.gradle.kts | 28 +- 319 files changed, 2436 insertions(+), 16815 deletions(-) delete mode 100644 booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/BaseVariant.kt delete mode 100644 booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/Context.kt delete mode 100644 booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/TransformInvocation.kt delete mode 100644 booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/TransformManager.kt create mode 100644 booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/Variant.kt delete mode 100644 booster-android-gradle-v3_3/README.md delete mode 100644 booster-android-gradle-v3_3/build.gradle delete mode 100644 booster-android-gradle-v3_3/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_3/V33IntegrationTest.kt delete mode 100644 booster-android-gradle-v3_3/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_3/V33.kt delete mode 100644 booster-android-gradle-v3_3/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_3/V33Factory.kt delete mode 100644 booster-android-gradle-v3_4/build.gradle delete mode 100644 booster-android-gradle-v3_4/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_4/V34IntegrationTest.kt delete mode 100644 booster-android-gradle-v3_4/src/integrationTest/resources/app.gradle delete mode 100644 booster-android-gradle-v3_4/src/integrationTest/resources/buildSrc/build.gradle delete mode 100644 booster-android-gradle-v3_4/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_4/V34.kt delete mode 100644 booster-android-gradle-v3_5/README.md delete mode 100644 booster-android-gradle-v3_5/build.gradle delete mode 100644 booster-android-gradle-v3_5/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_5/V35IntegrationTest.kt delete mode 100644 booster-android-gradle-v3_5/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_5/V35.kt delete mode 100644 booster-android-gradle-v3_6/README.md delete mode 100644 booster-android-gradle-v3_6/build.gradle delete mode 100644 booster-android-gradle-v3_6/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_6/V36IntegrationTest.kt delete mode 100644 booster-android-gradle-v3_6/src/integrationTest/resources/lib.gradle delete mode 100644 booster-android-gradle-v3_6/src/integrationTest/resources/src/main/AndroidManifest.xml delete mode 100644 booster-android-gradle-v3_6/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/MainActivity.java delete mode 100644 booster-android-gradle-v3_6/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/TestApplication.java delete mode 100644 booster-android-gradle-v3_6/src/integrationTest/resources/src/main/res/values/strings.xml delete mode 100644 booster-android-gradle-v3_6/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_6/V36.kt delete mode 100644 booster-android-gradle-v3_6/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_6/V36Factory.kt delete mode 100644 booster-android-gradle-v4_0/README.md delete mode 100644 booster-android-gradle-v4_0/build.gradle delete mode 100644 booster-android-gradle-v4_0/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v4_0/V40IntegrationTest.kt delete mode 100644 booster-android-gradle-v4_0/src/integrationTest/resources/app.gradle delete mode 100644 booster-android-gradle-v4_0/src/integrationTest/resources/buildSrc/build.gradle delete mode 100644 booster-android-gradle-v4_0/src/integrationTest/resources/lib.gradle delete mode 100644 booster-android-gradle-v4_0/src/integrationTest/resources/src/main/AndroidManifest.xml delete mode 100644 booster-android-gradle-v4_0/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/MainActivity.java delete mode 100644 booster-android-gradle-v4_0/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/TestApplication.java delete mode 100644 booster-android-gradle-v4_0/src/integrationTest/resources/src/main/res/values/strings.xml delete mode 100644 booster-android-gradle-v4_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_0/V40.kt delete mode 100644 booster-android-gradle-v4_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_0/V40Factory.kt delete mode 100644 booster-android-gradle-v4_1/README.md delete mode 100644 booster-android-gradle-v4_1/build.gradle delete mode 100644 booster-android-gradle-v4_1/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v4_1/V41IntegrationTest.kt delete mode 100644 booster-android-gradle-v4_1/src/integrationTest/resources/app.gradle delete mode 100644 booster-android-gradle-v4_1/src/integrationTest/resources/buildSrc/build.gradle delete mode 100644 booster-android-gradle-v4_1/src/integrationTest/resources/lib.gradle delete mode 100644 booster-android-gradle-v4_1/src/integrationTest/resources/src/main/AndroidManifest.xml delete mode 100644 booster-android-gradle-v4_1/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/MainActivity.java delete mode 100644 booster-android-gradle-v4_1/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/TestApplication.java delete mode 100644 booster-android-gradle-v4_1/src/integrationTest/resources/src/main/res/values/strings.xml delete mode 100644 booster-android-gradle-v4_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_1/V41.kt delete mode 100644 booster-android-gradle-v4_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_1/V41Factory.kt delete mode 100644 booster-android-gradle-v4_2/README.md delete mode 100644 booster-android-gradle-v4_2/build.gradle delete mode 100644 booster-android-gradle-v4_2/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42IntegrationTest.kt delete mode 100644 booster-android-gradle-v4_2/src/integrationTest/resources/app.gradle delete mode 100644 booster-android-gradle-v4_2/src/integrationTest/resources/buildSrc/build.gradle delete mode 100644 booster-android-gradle-v4_2/src/integrationTest/resources/lib.gradle delete mode 100644 booster-android-gradle-v4_2/src/integrationTest/resources/src/main/AndroidManifest.xml delete mode 100644 booster-android-gradle-v4_2/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/MainActivity.java delete mode 100644 booster-android-gradle-v4_2/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/TestApplication.java delete mode 100644 booster-android-gradle-v4_2/src/integrationTest/resources/src/main/res/values/strings.xml delete mode 100644 booster-android-gradle-v4_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42.kt delete mode 100644 booster-android-gradle-v4_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42Factory.kt delete mode 100644 booster-android-gradle-v7_0/src/integrationTest/resources/app.gradle delete mode 100644 booster-android-gradle-v7_0/src/integrationTest/resources/buildSrc/build.gradle delete mode 100644 booster-android-gradle-v7_0/src/integrationTest/resources/lib.gradle delete mode 100644 booster-android-gradle-v7_0/src/integrationTest/resources/src/main/AndroidManifest.xml delete mode 100644 booster-android-gradle-v7_0/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/MainActivity.java delete mode 100644 booster-android-gradle-v7_0/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/TestApplication.java delete mode 100644 booster-android-gradle-v7_0/src/integrationTest/resources/src/main/res/values/strings.xml delete mode 100644 booster-android-gradle-v7_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_0/V70.kt delete mode 100644 booster-android-gradle-v7_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_0/V70Factory.kt delete mode 100644 booster-android-gradle-v7_1/src/integrationTest/resources/app.gradle delete mode 100644 booster-android-gradle-v7_1/src/integrationTest/resources/buildSrc/build.gradle delete mode 100644 booster-android-gradle-v7_1/src/integrationTest/resources/lib.gradle delete mode 100644 booster-android-gradle-v7_1/src/integrationTest/resources/src/main/AndroidManifest.xml delete mode 100644 booster-android-gradle-v7_1/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/MainActivity.java delete mode 100644 booster-android-gradle-v7_1/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/TestApplication.java delete mode 100644 booster-android-gradle-v7_1/src/integrationTest/resources/src/main/res/values/strings.xml delete mode 100644 booster-android-gradle-v7_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_1/V71.kt delete mode 100644 booster-android-gradle-v7_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_1/V71Factory.kt delete mode 100644 booster-android-gradle-v7_2/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v7_2/V72IntegrationTest.kt delete mode 100644 booster-android-gradle-v7_2/src/integrationTest/resources/app.gradle delete mode 100644 booster-android-gradle-v7_2/src/integrationTest/resources/buildSrc/build.gradle delete mode 100644 booster-android-gradle-v7_2/src/integrationTest/resources/lib.gradle delete mode 100644 booster-android-gradle-v7_2/src/integrationTest/resources/src/main/AndroidManifest.xml delete mode 100644 booster-android-gradle-v7_2/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/MainActivity.java delete mode 100644 booster-android-gradle-v7_2/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/TestApplication.java delete mode 100644 booster-android-gradle-v7_2/src/integrationTest/resources/src/main/res/values/strings.xml delete mode 100644 booster-android-gradle-v7_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_2/V72.kt delete mode 100644 booster-android-gradle-v7_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_2/V72Factory.kt delete mode 100644 booster-android-gradle-v7_3/README.md delete mode 100644 booster-android-gradle-v7_3/build.gradle delete mode 100644 booster-android-gradle-v7_3/src/integrationTest/resources/app.gradle delete mode 100644 booster-android-gradle-v7_3/src/integrationTest/resources/buildSrc/build.gradle delete mode 100644 booster-android-gradle-v7_3/src/integrationTest/resources/lib.gradle delete mode 100644 booster-android-gradle-v7_3/src/integrationTest/resources/src/main/AndroidManifest.xml delete mode 100644 booster-android-gradle-v7_3/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/MainActivity.java delete mode 100644 booster-android-gradle-v7_3/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/TestApplication.java delete mode 100644 booster-android-gradle-v7_3/src/integrationTest/resources/src/main/res/values/strings.xml delete mode 100644 booster-android-gradle-v7_3/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_3/V73.kt delete mode 100644 booster-android-gradle-v7_3/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_3/V73Factory.kt delete mode 100644 booster-android-gradle-v7_4/README.md delete mode 100644 booster-android-gradle-v7_4/build.gradle delete mode 100644 booster-android-gradle-v7_4/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v7_4/V74IntegrationTest.kt delete mode 100644 booster-android-gradle-v7_4/src/integrationTest/resources/app.gradle delete mode 100644 booster-android-gradle-v7_4/src/integrationTest/resources/buildSrc/build.gradle delete mode 100644 booster-android-gradle-v7_4/src/integrationTest/resources/lib.gradle delete mode 100644 booster-android-gradle-v7_4/src/integrationTest/resources/src/main/AndroidManifest.xml delete mode 100644 booster-android-gradle-v7_4/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/MainActivity.java delete mode 100644 booster-android-gradle-v7_4/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/TestApplication.java delete mode 100644 booster-android-gradle-v7_4/src/integrationTest/resources/src/main/res/values/strings.xml delete mode 100644 booster-android-gradle-v7_4/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_4/V74.kt delete mode 100644 booster-android-gradle-v7_4/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_4/V74Factory.kt rename {booster-android-gradle-v7_0 => booster-android-gradle-v8_0}/README.md (66%) rename {booster-android-gradle-v7_0 => booster-android-gradle-v8_0}/build.gradle (81%) rename booster-android-gradle-v7_0/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v7_0/V70IntegrationTest.kt => booster-android-gradle-v8_0/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v8_0/V80IntegrationTest.kt (57%) rename {booster-android-gradle-v3_3 => booster-android-gradle-v8_0}/src/integrationTest/resources/app.gradle (93%) rename {booster-android-gradle-v3_5 => booster-android-gradle-v8_0}/src/integrationTest/resources/buildSrc/build.gradle (90%) rename {booster-android-gradle-v3_5 => booster-android-gradle-v8_0}/src/integrationTest/resources/lib.gradle (92%) rename {booster-android-gradle-v3_3 => booster-android-gradle-v8_0}/src/integrationTest/resources/src/main/AndroidManifest.xml (53%) rename {booster-android-gradle-v3_3 => booster-android-gradle-v8_0}/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/MainActivity.java (100%) rename {booster-android-gradle-v3_3 => booster-android-gradle-v8_0}/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/TestApplication.java (100%) rename {booster-android-gradle-v3_3 => booster-android-gradle-v8_0}/src/integrationTest/resources/src/main/res/values/strings.xml (100%) create mode 100644 booster-android-gradle-v8_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v8_0/V80.kt create mode 100644 booster-android-gradle-v8_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v8_0/V80Factory.kt rename {booster-android-gradle-v7_1 => booster-android-gradle-v8_1}/README.md (66%) rename {booster-android-gradle-v7_1 => booster-android-gradle-v8_1}/build.gradle (77%) rename booster-android-gradle-v7_1/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v7_1/V71IntegrationTest.kt => booster-android-gradle-v8_1/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v8_1/V81IntegrationTest.kt (56%) rename {booster-android-gradle-v3_5 => booster-android-gradle-v8_1}/src/integrationTest/resources/app.gradle (93%) rename {booster-android-gradle-v3_3 => booster-android-gradle-v8_1}/src/integrationTest/resources/buildSrc/build.gradle (90%) rename {booster-android-gradle-v3_3 => booster-android-gradle-v8_1}/src/integrationTest/resources/lib.gradle (92%) rename {booster-android-gradle-v3_4 => booster-android-gradle-v8_1}/src/integrationTest/resources/src/main/AndroidManifest.xml (53%) rename {booster-android-gradle-v3_4 => booster-android-gradle-v8_1}/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/MainActivity.java (100%) rename {booster-android-gradle-v3_4 => booster-android-gradle-v8_1}/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/TestApplication.java (100%) rename {booster-android-gradle-v3_4 => booster-android-gradle-v8_1}/src/integrationTest/resources/src/main/res/values/strings.xml (100%) create mode 100644 booster-android-gradle-v8_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v8_1/V81.kt rename booster-android-gradle-v3_4/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_4/V34Factory.kt => booster-android-gradle-v8_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v8_1/V81Factory.kt (53%) rename {booster-android-gradle-v7_2 => booster-android-gradle-v8_2}/README.md (66%) rename {booster-android-gradle-v7_2 => booster-android-gradle-v8_2}/build.gradle (77%) rename booster-android-gradle-v7_3/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v7_3/V73IntegrationTest.kt => booster-android-gradle-v8_2/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v8_2/V82IntegrationTest.kt (54%) rename {booster-android-gradle-v3_6 => booster-android-gradle-v8_2}/src/integrationTest/resources/app.gradle (93%) rename {booster-android-gradle-v3_6 => booster-android-gradle-v8_2}/src/integrationTest/resources/buildSrc/build.gradle (90%) rename {booster-android-gradle-v3_4 => booster-android-gradle-v8_2}/src/integrationTest/resources/lib.gradle (92%) rename {booster-android-gradle-v3_5 => booster-android-gradle-v8_2}/src/integrationTest/resources/src/main/AndroidManifest.xml (53%) rename {booster-android-gradle-v3_5 => booster-android-gradle-v8_2}/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/MainActivity.java (100%) rename {booster-android-gradle-v3_5 => booster-android-gradle-v8_2}/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/TestApplication.java (100%) rename {booster-android-gradle-v3_5 => booster-android-gradle-v8_2}/src/integrationTest/resources/src/main/res/values/strings.xml (100%) create mode 100644 booster-android-gradle-v8_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v8_2/V82.kt rename booster-android-gradle-v3_5/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_5/V35Factory.kt => booster-android-gradle-v8_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v8_2/V82Factory.kt (53%) delete mode 100644 booster-android-instrument-shared-preferences/build.gradle delete mode 100644 booster-android-instrument-shared-preferences/src/main/java/com/didiglobal/booster/instrument/ShadowSharedPreferences.java delete mode 100755 booster-android-instrument-shared-preferences/src/main/java/com/didiglobal/booster/instrument/sharedpreferences/BoosterSharedPreferences.java delete mode 100755 booster-android-instrument-shared-preferences/src/main/java/com/didiglobal/booster/instrument/sharedpreferences/SharedPreferencesManager.java delete mode 100755 booster-android-instrument-shared-preferences/src/main/java/com/didiglobal/booster/instrument/sharedpreferences/io/BoosterXmlSerializer.java delete mode 100644 booster-android-instrument-shared-preferences/src/main/java/com/didiglobal/booster/instrument/sharedpreferences/io/IoUtils.java delete mode 100755 booster-android-instrument-shared-preferences/src/main/java/com/didiglobal/booster/instrument/sharedpreferences/io/XmlUtils.java delete mode 100644 booster-android-instrument-webview/build.gradle delete mode 100644 booster-android-instrument-webview/src/main/java/com/didiglobal/booster/instrument/ShadowWebView.java create mode 100644 booster-api/src/main/kotlin/com/didiglobal/booster/RelativeResourceUtils.kt delete mode 100644 booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/BoosterTransform.kt delete mode 100644 booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/BoosterTransformInvocation.kt create mode 100644 booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/BoosterTransformTask.kt delete mode 100644 booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/BoosterTransformTaskExecutionListener.kt delete mode 100644 booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/TransformParameter.kt delete mode 100644 booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/internal/BoosterTransformV34.kt delete mode 100644 booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/util/Dexer.kt delete mode 100644 booster-task-analyser/README.md delete mode 100644 booster-task-analyser/build.gradle delete mode 100644 booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/AnalysisTask.kt delete mode 100644 booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/AnalysisVariantProcessor.kt delete mode 100644 booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/performance/LayoutHandler.kt delete mode 100644 booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/performance/PerformanceAnalyser.kt delete mode 100644 booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/performance/PerformanceAnalysisTask.kt delete mode 100644 booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/performance/constants.kt delete mode 100644 booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/ReferenceAnalysisTask.kt delete mode 100644 booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/ReferencePageRenderer.kt delete mode 100644 booster-task-analyser/src/main/resources/blacklist.txt delete mode 100644 booster-task-analyser/src/main/resources/style.css delete mode 100644 booster-task-analyser/src/main/resources/whitelist.txt delete mode 100644 booster-task-analyser/src/test/java/androidx/annotation/MainThread.java delete mode 100644 booster-task-analyser/src/test/java/org/greenrobot/eventbus/Subscribe.java delete mode 100644 booster-task-analyser/src/test/java/org/greenrobot/eventbus/ThreadMode.java delete mode 100644 booster-task-analyser/src/test/kotlin/com/didiglobal/booster/task/analyser/AnalyserTaskTest.kt delete mode 100644 booster-task-analyser/src/test/kotlin/com/didiglobal/booster/task/analyser/AnnotationExample1.kt delete mode 100644 booster-task-analyser/src/test/kotlin/com/didiglobal/booster/task/analyser/AnnotationExample2.kt delete mode 100644 booster-task-analyser/src/test/kotlin/com/didiglobal/booster/task/analyser/URITest.kt delete mode 100644 booster-task-analyser/src/test/resources/AnnotationExample1.class delete mode 100644 booster-task-analyser/src/test/resources/AnnotationExample2.class delete mode 100644 booster-task-check-snapshot/README.md delete mode 100644 booster-task-check-snapshot/build.gradle delete mode 100644 booster-task-check-snapshot/src/main/kotlin/com/didiglobal/booster/task/dependency/CheckSnapshot.kt delete mode 100644 booster-task-check-snapshot/src/main/kotlin/com/didiglobal/booster/task/dependency/CheckSnapshotVariantProcessor.kt delete mode 100644 booster-task-compression-cwebp/README.md delete mode 100644 booster-task-compression-cwebp/build.gradle delete mode 100644 booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/AbstractCwebpCompressImages.kt delete mode 100644 booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/CWebpProvider.kt delete mode 100644 booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/Cwebp.kt delete mode 100644 booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/CwebpCompressFlatImages.kt delete mode 100644 booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/CwebpCompressImages.kt delete mode 100644 booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/CwebpCompressOpaqueFlatImages.kt delete mode 100644 booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/CwebpCompressOpaqueImages.kt delete mode 100644 booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/CwebpCompressionVariantProcessor.kt delete mode 100644 booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/LauncherIconHandler.kt delete mode 100644 booster-task-compression-cwebp/src/main/resources/bin/linux/x64/cwebp delete mode 100755 booster-task-compression-cwebp/src/main/resources/bin/macosx/arm64/cwebp delete mode 100644 booster-task-compression-cwebp/src/main/resources/bin/macosx/x64/10.12/cwebp delete mode 100644 booster-task-compression-cwebp/src/main/resources/bin/macosx/x64/10.13/cwebp delete mode 100644 booster-task-compression-cwebp/src/main/resources/bin/macosx/x64/10.14/cwebp delete mode 100755 booster-task-compression-cwebp/src/main/resources/bin/macosx/x64/10.15/cwebp delete mode 100644 booster-task-compression-cwebp/src/main/resources/bin/windows/x64/cwebp.exe delete mode 100644 booster-task-compression-cwebp/src/test/kotlin/com/didiglobal/booster/task/compression/cwebp/CwebpProviderTest.kt delete mode 100644 booster-task-compression-pngquant/README.md delete mode 100644 booster-task-compression-pngquant/build.gradle delete mode 100644 booster-task-compression-pngquant/src/main/kotlin/com/didiglobal/booster/task/compression/pngquant/AbstractPngquantCompressImages.kt delete mode 100644 booster-task-compression-pngquant/src/main/kotlin/com/didiglobal/booster/task/compression/pngquant/Pngquant.kt delete mode 100644 booster-task-compression-pngquant/src/main/kotlin/com/didiglobal/booster/task/compression/pngquant/PngquantCompressFlatImages.kt delete mode 100644 booster-task-compression-pngquant/src/main/kotlin/com/didiglobal/booster/task/compression/pngquant/PngquantCompressImages.kt delete mode 100644 booster-task-compression-pngquant/src/main/kotlin/com/didiglobal/booster/task/compression/pngquant/PngquantCompressionVariantProcessor.kt delete mode 100644 booster-task-compression-pngquant/src/main/kotlin/com/didiglobal/booster/task/compression/pngquant/PngquantOptions.kt delete mode 100644 booster-task-compression-processed-res/README.md delete mode 100644 booster-task-compression-processed-res/build.gradle delete mode 100644 booster-task-compression-processed-res/src/main/kotlin/com/didiglobal/booster/task/compression/processed/res/ProcessedResourcesCompressionVariantProcessor.kt delete mode 100644 booster-task-compression/README.md delete mode 100644 booster-task-compression/build.gradle delete mode 100644 booster-task-compression/packages-zh-CN.md delete mode 100644 booster-task-compression/src/main/kotlin/com/didiglobal/booster/compression/CompressionOptions.kt delete mode 100644 booster-task-compression/src/main/kotlin/com/didiglobal/booster/compression/CompressionReport.kt delete mode 100644 booster-task-compression/src/main/kotlin/com/didiglobal/booster/compression/CompressionTaskCreator.kt delete mode 100644 booster-task-compression/src/main/kotlin/com/didiglobal/booster/compression/CompressionTaskCreatorFactory.kt delete mode 100644 booster-task-compression/src/main/kotlin/com/didiglobal/booster/compression/CompressionTool.kt delete mode 100644 booster-task-compression/src/main/kotlin/com/didiglobal/booster/compression/SimpleCompressionTaskCreator.kt delete mode 100644 booster-task-compression/src/main/kotlin/com/didiglobal/booster/compression/task/CompressImages.kt delete mode 100644 booster-task-compression/src/test/kotlin/com/didiglobal/booster/task/compression/FileNameTest.kt delete mode 100644 booster-task-resource-deredundancy/README.md delete mode 100644 booster-task-resource-deredundancy/build.gradle delete mode 100644 booster-task-resource-deredundancy/src/main/kotlin/com/didiglobal/booster/task/resource/deredundancy/LayoutDirHandler.kt delete mode 100644 booster-task-resource-deredundancy/src/main/kotlin/com/didiglobal/booster/task/resource/deredundancy/RemoveRedundantFlatImages.kt delete mode 100644 booster-task-resource-deredundancy/src/main/kotlin/com/didiglobal/booster/task/resource/deredundancy/RemoveRedundantImages.kt delete mode 100644 booster-task-resource-deredundancy/src/main/kotlin/com/didiglobal/booster/task/resource/deredundancy/ResourceDeredundancyVariantProcessor.kt create mode 100644 booster-transform-activity-thread/src/main/kotlin/com/didiglobal/booster/transform/activitythread/ActivityThreadVariantProcessor.kt delete mode 100644 booster-transform-activity-thread/src/main/kotlin/com/didiglobal/booster/transform/activitythread/ActivityThreadVarinatProcessor.kt delete mode 100644 booster-transform-br-inline/README.md delete mode 100644 booster-transform-br-inline/build.gradle delete mode 100644 booster-transform-br-inline/src/main/kotlin/com/didiglobal/booster/transform/br/inline/BRInlineTransformer.kt delete mode 100644 booster-transform-br-inline/src/main/kotlin/com/didiglobal/booster/transform/br/inline/SymbolList.kt delete mode 100644 booster-transform-br-inline/src/test/kotlin/com/didiglobal/booster/transform/br/inline/SymbolListTest.kt delete mode 100644 booster-transform-br-inline/src/test/resources/BR.class create mode 100644 booster-transform-logcat/src/main/kotlin/com/didiglobal/booster/transform/logcat/LogcatVariantProcessor.kt delete mode 100644 booster-transform-logcat/src/main/kotlin/com/didiglobal/booster/transform/logcat/LogcatVarinatProcessor.kt create mode 100644 booster-transform-media-player/src/main/kotlin/com/didiglobal/booster/transform/mediaplayer/MediaPlayerVariantProcessor.kt delete mode 100644 booster-transform-media-player/src/main/kotlin/com/didiglobal/booster/transform/mediaplayer/MediaPlayerVarinatProcessor.kt create mode 100644 booster-transform-res-check/src/main/kotlin/com/didiglobal/booster/transform/res/check/ResCheckVariantProcessor.kt delete mode 100644 booster-transform-res-check/src/main/kotlin/com/didiglobal/booster/transform/res/check/ResCheckVarinatProcessor.kt delete mode 100644 booster-transform-service-loader/README.md delete mode 100644 booster-transform-service-loader/build.gradle delete mode 100644 booster-transform-service-loader/src/main/kotlin/com/didiglobal/booster/transform/serviceloader/ServiceLoaderTransformer.kt delete mode 100644 booster-transform-shared-preferences/build.gradle delete mode 100644 booster-transform-shared-preferences/src/main/kotlin/com/didiglobal/booster/transform/sharedpreferences/SharedPreferencesTransformer.kt delete mode 100644 booster-transform-shared-preferences/src/main/kotlin/com/didiglobal/booster/transform/sharedpreferences/SharedPreferencesVariantProcessor.kt delete mode 100644 booster-transform-webview/build.gradle delete mode 100644 booster-transform-webview/src/main/kotlin/com/didiglobal/booster/transform/webview/WebViewTransformer.kt delete mode 100644 booster-transform-webview/src/main/kotlin/com/didiglobal/booster/transform/webview/WebViewVariantProcessor.kt diff --git a/.github/workflows/dokka.yml b/.github/workflows/dokka.yml index 96d009ed4..df9d2d81e 100644 --- a/.github/workflows/dokka.yml +++ b/.github/workflows/dokka.yml @@ -19,7 +19,7 @@ jobs: - uses: actions/setup-java@v3 with: distribution: 'adopt' - java-version: '11' + java-version: '17' cache: 'gradle' - shell: bash run: ./gradlew reference -S --no-daemon diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 1e108f431..2d58afe7a 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -16,7 +16,7 @@ jobs: - uses: actions/setup-java@v3 with: distribution: 'adopt' - java-version: '11' + java-version: '17' cache: 'gradle' - shell: bash run: | @@ -24,8 +24,8 @@ jobs: echo $GPG_KEY_ARMOR | base64 --decode > $GITHUB_WORKSPACE/secring.gpg ./gradlew publishToSonatype closeAndReleaseStagingRepository -Pversion=${GITHUB_REF/refs\/tags\/v/} -POSSRH_USERNAME=${OSSRH_USERNAME} -POSSRH_PASSWORD=${OSSRH_PASSWORD} -POSSRH_STAGING_PROFILE_ID=${OSSRH_STAGING_PROFILE_ID} -Psigning.keyId=${GPG_KEY_ID} -Psigning.password=${GPG_PASSPHRASE} -Psigning.secretKeyRingFile=${GITHUB_WORKSPACE}/secring.gpg -S --no-daemon env: - JAVA_OPTS: -Xmx8g -XX:MaxPermSize=1g -XX:MetaspaceSize=1g -Dfile.encoding=UTF-8 - JVM_OPTS: -Xmx8g -XX:MaxPermSize=1g -XX:MetaspaceSize=1g -Dfile.encoding=UTF-8 + JAVA_OPTS: -Xmx8g -XX:MetaspaceSize=1g -Dfile.encoding=UTF-8 + JVM_OPTS: -Xmx8g -XX:MetaspaceSize=1g -Dfile.encoding=UTF-8 GPG_KEY_ARMOR: ${{ secrets.GPG_KEY_ARMOR }} GPG_KEY_ID: ${{ secrets.GPG_KEY_ID }} GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }} diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index cdf96b391..7f16192a4 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -29,7 +29,7 @@ jobs: - uses: actions/setup-java@v3 with: distribution: 'adopt' - java-version: '11' + java-version: '17' cache: 'gradle' - uses: actions/cache@v3 with: @@ -55,7 +55,7 @@ jobs: - uses: actions/setup-java@v3 with: distribution: 'adopt' - java-version: '11' + java-version: '17' cache: 'gradle' - uses: actions/cache@v3 with: @@ -73,8 +73,8 @@ jobs: name: unit-test-report path: '**/build/reports/tests/test' - integration-test-agp-v3_3: - name: AGP 3.3 Integration Test + integration-test-agp-v8_0: + name: AGP 8.0 Integration Test needs: build runs-on: ubuntu-latest steps: @@ -82,22 +82,22 @@ jobs: - uses: actions/setup-java@v3 with: distribution: 'adopt' - java-version: '11' + java-version: '17' cache: 'gradle' - uses: actions/cache@v3 with: path: ~/.m2 key: ${{ runner.os }}-m2-${{ github.run_number }} - shell: bash - run: ./gradlew booster-android-gradle-v3_3:integrationTest -S --no-daemon -Pversion=${{ github.run_number }} + run: ./gradlew booster-android-gradle-v8_0:integrationTest -S --no-daemon -Pversion=${{ github.run_number }} - uses: actions/upload-artifact@v3 if: failure() with: - name: booster-android-gradle-v3_3 - path: booster-android-gradle-v3_3/build/reports/tests/integrationTest + name: booster-android-gradle-v8_0 + path: booster-android-gradle-v8_0/build/reports/tests/integrationTest - integration-test-agp-v3_4: - name: AGP 3.4 Integration Test + integration-test-agp-v8_1: + name: AGP 8.1 Integration Test needs: build runs-on: ubuntu-latest steps: @@ -105,22 +105,22 @@ jobs: - uses: actions/setup-java@v3 with: distribution: 'adopt' - java-version: '11' + java-version: '17' cache: 'gradle' - uses: actions/cache@v3 with: path: ~/.m2 key: ${{ runner.os }}-m2-${{ github.run_number }} - shell: bash - run: ./gradlew booster-android-gradle-v3_4:integrationTest -S --no-daemon -Pversion=${{ github.run_number }} + run: ./gradlew booster-android-gradle-v8_1:integrationTest -S --no-daemon -Pversion=${{ github.run_number }} - uses: actions/upload-artifact@v3 if: failure() with: - name: booster-android-gradle-v3_4 - path: booster-android-gradle-v3_4/build/reports/tests/integrationTest + name: booster-android-gradle-v8_1 + path: booster-android-gradle-v8_1/build/reports/tests/integrationTest - integration-test-agp-v3_5: - name: AGP 3.5 Integration Test + integration-test-agp-v8_2: + name: AGP 8.2 Integration Test needs: build runs-on: ubuntu-latest steps: @@ -128,223 +128,16 @@ jobs: - uses: actions/setup-java@v3 with: distribution: 'adopt' - java-version: '11' + java-version: '17' cache: 'gradle' - uses: actions/cache@v3 with: path: ~/.m2 key: ${{ runner.os }}-m2-${{ github.run_number }} - shell: bash - run: ./gradlew booster-android-gradle-v3_5:integrationTest -S --no-daemon -Pversion=${{ github.run_number }} + run: ./gradlew booster-android-gradle-v8_2:integrationTest -S --no-daemon -Pversion=${{ github.run_number }} - uses: actions/upload-artifact@v3 if: failure() with: - name: booster-android-gradle-v3_5 - path: booster-android-gradle-v3_5/build/reports/tests/integrationTest - - integration-test-agp-v3_6: - name: AGP 3.6 Integration Test - needs: build - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - uses: actions/setup-java@v3 - with: - distribution: 'adopt' - java-version: '11' - cache: 'gradle' - - uses: actions/cache@v3 - with: - path: ~/.m2 - key: ${{ runner.os }}-m2-${{ github.run_number }} - - shell: bash - run: ./gradlew booster-android-gradle-v3_6:integrationTest -S --no-daemon -Pversion=${{ github.run_number }} - - uses: actions/upload-artifact@v3 - if: failure() - with: - name: booster-android-gradle-v3_6 - path: booster-android-gradle-v3_6/build/reports/tests/integrationTest - - integration-test-agp-v4_0: - name: AGP 4.0 Integration Test - needs: build - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - uses: actions/setup-java@v3 - with: - distribution: 'adopt' - java-version: '11' - cache: 'gradle' - - uses: actions/cache@v3 - with: - path: ~/.m2 - key: ${{ runner.os }}-m2-${{ github.run_number }} - - shell: bash - run: ./gradlew booster-android-gradle-v4_0:integrationTest -S --no-daemon -Pversion=${{ github.run_number }} - - uses: actions/upload-artifact@v3 - if: failure() - with: - name: booster-android-gradle-v4_0 - path: booster-android-gradle-v4_0/build/reports/tests/integrationTest - - integration-test-agp-v4_1: - name: AGP 4.1 Integration Test - needs: build - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - uses: actions/setup-java@v3 - with: - distribution: 'adopt' - java-version: '11' - cache: 'gradle' - - uses: actions/cache@v3 - with: - path: ~/.m2 - key: ${{ runner.os }}-m2-${{ github.run_number }} - - shell: bash - run: ./gradlew booster-android-gradle-v4_1:integrationTest -S --no-daemon -Pversion=${{ github.run_number }} - - uses: actions/upload-artifact@v3 - if: failure() - with: - name: booster-android-gradle-v4_1 - path: booster-android-gradle-v4_1/build/reports/tests/integrationTest - - integration-test-agp-v4_2: - name: AGP 4.2 Integration Test - needs: build - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - uses: actions/setup-java@v3 - with: - distribution: 'adopt' - java-version: '11' - cache: 'gradle' - - uses: actions/cache@v3 - with: - path: ~/.m2 - key: ${{ runner.os }}-m2-${{ github.run_number }} - - shell: bash - run: ./gradlew booster-android-gradle-v4_2:integrationTest -S --no-daemon -Pversion=${{ github.run_number }} - - uses: actions/upload-artifact@v3 - if: failure() - with: - name: booster-android-gradle-v4_2 - path: booster-android-gradle-v4_2/build/reports/tests/integrationTest - - integration-test-agp-v7_0: - name: AGP 7.0 Integration Test - needs: build - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - uses: actions/setup-java@v3 - with: - distribution: 'adopt' - java-version: '11' - cache: 'gradle' - - uses: actions/cache@v3 - with: - path: ~/.m2 - key: ${{ runner.os }}-m2-${{ github.run_number }} - - shell: bash - run: ./gradlew booster-android-gradle-v7_0:integrationTest -S --no-daemon -Pversion=${{ github.run_number }} - - uses: actions/upload-artifact@v3 - if: failure() - with: - name: booster-android-gradle-v7_0 - path: booster-android-gradle-v7_0/build/reports/tests/integrationTest - - integration-test-agp-v7_1: - name: AGP 7.1 Integration Test - needs: build - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - uses: actions/setup-java@v3 - with: - distribution: 'adopt' - java-version: '11' - cache: 'gradle' - - uses: actions/cache@v3 - with: - path: ~/.m2 - key: ${{ runner.os }}-m2-${{ github.run_number }} - - shell: bash - run: ./gradlew booster-android-gradle-v7_1:integrationTest -S --no-daemon -Pversion=${{ github.run_number }} - - uses: actions/upload-artifact@v3 - if: failure() - with: - name: booster-android-gradle-v7_1 - path: booster-android-gradle-v7_1/build/reports/tests/integrationTest - - integration-test-agp-v7_2: - name: AGP 7.2 Integration Test - needs: build - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - uses: actions/setup-java@v3 - with: - distribution: 'adopt' - java-version: '11' - cache: 'gradle' - - uses: actions/cache@v3 - with: - path: ~/.m2 - key: ${{ runner.os }}-m2-${{ github.run_number }} - - shell: bash - run: ./gradlew booster-android-gradle-v7_2:integrationTest -S --no-daemon -Pversion=${{ github.run_number }} - - uses: actions/upload-artifact@v3 - if: failure() - with: - name: booster-android-gradle-v7_2 - path: booster-android-gradle-v7_2/build/reports/tests/integrationTest - - integration-test-agp-v7_3: - name: AGP 7.3 Integration Test - needs: build - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - uses: actions/setup-java@v3 - with: - distribution: 'adopt' - java-version: '11' - cache: 'gradle' - - uses: actions/cache@v3 - with: - path: ~/.m2 - key: ${{ runner.os }}-m2-${{ github.run_number }} - - shell: bash - run: ./gradlew booster-android-gradle-v7_3:integrationTest -S --no-daemon -Pversion=${{ github.run_number }} - - uses: actions/upload-artifact@v3 - if: failure() - with: - name: booster-android-gradle-v7_3 - path: booster-android-gradle-v7_3/build/reports/tests/integrationTest - - integration-test-agp-v7_4: - name: AGP 7.4 Integration Test - needs: build - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - uses: actions/setup-java@v3 - with: - distribution: 'adopt' - java-version: '11' - cache: 'gradle' - - uses: actions/cache@v3 - with: - path: ~/.m2 - key: ${{ runner.os }}-m2-${{ github.run_number }} - - shell: bash - run: ./gradlew booster-android-gradle-v7_4:integrationTest -S --no-daemon -Pversion=${{ github.run_number }} - - uses: actions/upload-artifact@v3 - if: failure() - with: - name: booster-android-gradle-v7_4 - path: booster-android-gradle-v7_4/build/reports/tests/integrationTest + name: booster-android-gradle-v8_2 + path: booster-android-gradle-v8_2/build/reports/tests/integrationTest \ No newline at end of file diff --git a/booster-aapt2/build.gradle b/booster-aapt2/build.gradle index 74077106e..88d5f8922 100644 --- a/booster-aapt2/build.gradle +++ b/booster-aapt2/build.gradle @@ -1,6 +1,6 @@ apply from: "$rootDir/gradle/booster.gradle" dependencies { - api 'com.google.protobuf:protobuf-java:3.10.0' - testImplementation 'com.android.tools.build:gradle:4.0.0' + api 'com.google.protobuf:protobuf-java:3.19.3' + testImplementation 'com.android.tools.build:gradle:8.0.0' } diff --git a/booster-android-api/src/main/java/android/os/Build.java b/booster-android-api/src/main/java/android/os/Build.java index 4a32e93f0..83302fde0 100644 --- a/booster-android-api/src/main/java/android/os/Build.java +++ b/booster-android-api/src/main/java/android/os/Build.java @@ -151,7 +151,6 @@ public static class VERSION { private static final String[] ALL_CODENAMES = getStringList("ro.build.version.all_codenames", ","); /** - * @hide */ public static final String[] ACTIVE_CODENAMES = "REL".equals(ALL_CODENAMES[0]) ? new String[0] : ALL_CODENAMES; @@ -161,7 +160,6 @@ public static class VERSION { * Use the current SDK version code. For every active development codename * we are operating under, we bump the assumed resource platform version by 1. * - * @hide */ public static final int RESOURCES_SDK_INT = SDK_INT + ACTIVE_CODENAMES.length; diff --git a/booster-android-api/src/main/java/android/util/Log.java b/booster-android-api/src/main/java/android/util/Log.java index 1ee313da7..d4a8b0c02 100644 --- a/booster-android-api/src/main/java/android/util/Log.java +++ b/booster-android-api/src/main/java/android/util/Log.java @@ -12,15 +12,14 @@ * into an application except during development. Debug logs are compiled * in but stripped at runtime. Error, warning and info logs are always kept. * - *

Tip: A good convention is to declare a TAG constant + * Tip: A good convention is to declare a TAG constant * in your class: * *

private static final String TAG = "MyActivity";
* * and use that in subsequent calls to the log methods. - *

* - *

Tip: Don't forget that when you make a call like + * Tip: Don't forget that when you make a call like *

Log.v(TAG, "index=" + i);
* that when you're building the string to pass into Log.d, the compiler uses a * StringBuilder and at least three allocations occur: the StringBuilder diff --git a/booster-android-api/src/main/java/android/view/ViewTreeObserver.java b/booster-android-api/src/main/java/android/view/ViewTreeObserver.java index c1b458330..2c8dc2fab 100644 --- a/booster-android-api/src/main/java/android/view/ViewTreeObserver.java +++ b/booster-android-api/src/main/java/android/view/ViewTreeObserver.java @@ -127,7 +127,6 @@ public interface OnScrollChangedListener { * This is only used for non-Activity windows. Activity windows can use * Activity.onEnterAnimationComplete() to get the same signal. * - * @hide */ public interface OnWindowShownListener { /** diff --git a/booster-android-gradle-api/build.gradle b/booster-android-gradle-api/build.gradle index 3258fbff7..334a8f42f 100644 --- a/booster-android-gradle-api/build.gradle +++ b/booster-android-gradle-api/build.gradle @@ -3,18 +3,9 @@ apply from: "$rootDir/gradle/booster.gradle" dependencies { api project(':booster-kotlinx') api project(':booster-android-gradle-compat') - implementation project(':booster-android-gradle-v3_3') - implementation project(':booster-android-gradle-v3_4') - implementation project(':booster-android-gradle-v3_5') - implementation project(':booster-android-gradle-v3_6') - implementation project(':booster-android-gradle-v4_0') - implementation project(':booster-android-gradle-v4_1') - implementation project(':booster-android-gradle-v4_2') - implementation project(':booster-android-gradle-v7_0') - implementation project(':booster-android-gradle-v7_1') - implementation project(':booster-android-gradle-v7_2') - implementation project(':booster-android-gradle-v7_3') - implementation project(':booster-android-gradle-v7_4') - compileOnly 'com.android.tools.build:gradle:3.0.0' - testCompileOnly 'com.android.tools.build:gradle:3.0.0' + implementation project(':booster-android-gradle-v8_0') + implementation project(':booster-android-gradle-v8_1') + implementation project(':booster-android-gradle-v8_2') + compileOnly 'com.android.tools.build:gradle:8.0.0' + testCompileOnly 'com.android.tools.build:gradle:8.0.0' } diff --git a/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/BaseVariant.kt b/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/BaseVariant.kt deleted file mode 100644 index 57472121f..000000000 --- a/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/BaseVariant.kt +++ /dev/null @@ -1,375 +0,0 @@ -package com.didiglobal.booster.gradle - -import com.android.build.gradle.BaseExtension -import com.android.build.gradle.api.BaseVariant -import com.android.build.gradle.internal.publishing.AndroidArtifacts -import com.android.build.gradle.tasks.ProcessAndroidResources -import com.android.builder.model.ApiVersion -import com.android.sdklib.BuildToolInfo -import com.didiglobal.booster.kotlinx.file -import org.gradle.api.Incubating -import org.gradle.api.Project -import org.gradle.api.Task -import org.gradle.api.UnknownTaskException -import org.gradle.api.artifacts.ArtifactCollection -import org.gradle.api.artifacts.result.ResolvedArtifactResult -import org.gradle.api.file.FileCollection -import org.gradle.api.provider.Provider -import org.gradle.api.tasks.TaskProvider -import java.io.File - -/** - * The project which this variant belongs - */ -@Suppress("DEPRECATION") -val BaseVariant.project: Project - get() = AGP.run { project } - - -fun BaseVariant.getReport(artifactName: String, fileName: String): File { - return project.buildDir.file("reports", artifactName, name, fileName) -} - - -/** - * The `android` extension associates with this variant - */ -val BaseVariant.extension: BaseExtension - get() = project.getAndroid() - -/** - * The location of `$ANDROID_HOME`/platforms/android-`${compileSdkVersion}` - */ -val BaseVariant.platform: File - get() = extension.run { - sdkDirectory.resolve("platforms").resolve(compileSdkVersion!!) - } - -/** - * The variant dependencies - */ -val BaseVariant.dependencies: Collection - get() = AGP.run { - getDependencies(true) - } - -val BaseVariant.javaCompilerTaskProvider: TaskProvider - get() = AGP.run { javaCompilerTaskProvider } - -val BaseVariant.preBuildTaskProvider: TaskProvider - get() = AGP.run { preBuildTaskProvider } - -val BaseVariant.assembleTaskProvider: TaskProvider - get() = AGP.run { assembleTaskProvider } - -val BaseVariant.mergeAssetsTaskProvider: TaskProvider - get() = AGP.run { mergeAssetsTaskProvider } - -val BaseVariant.mergeResourcesTaskProvider: TaskProvider - get() = AGP.run { mergeResourcesTaskProvider } - -val BaseVariant.mergeNativeLibsTaskProvider: TaskProvider - get() = AGP.run { mergeNativeLibsTaskProvider } - -val BaseVariant.processJavaResourcesTaskProvider: TaskProvider - get() = AGP.run { processJavaResourcesTaskProvider } - -val BaseVariant.processResTaskProvider: TaskProvider? - get() = try { - project.tasks.named(getTaskName("process", "Resources")) - } catch (_: UnknownTaskException) { - null - } - -val BaseVariant.bundleResourcesTaskProvider: TaskProvider? - get() = try { - project.tasks.named(getTaskName("bundle", "Resources")) - } catch (_: UnknownTaskException) { - null - } - -val BaseVariant.packageTaskProvider: TaskProvider? - get() = try { - project.tasks.named(getTaskName("package")) - } catch (_: UnknownTaskException) { - null - } - -val BaseVariant.packageBundleTaskProvider: TaskProvider? - get() = try { - project.tasks.named(getTaskName("package", "Bundle")) - } catch (_: UnknownTaskException) { - null - } - -val BaseVariant.mergeJavaResourceTaskProvider: TaskProvider? - get() = try { - project.tasks.named(getTaskName("merge", "JavaResource")) - } catch (_: UnknownTaskException) { - null - } - -val BaseVariant.createFullJarTaskProvider: TaskProvider? - get() = try { - project.tasks.named(getTaskName("createFullJar")) - } catch (_: UnknownTaskException) { - null - } - -val BaseVariant.bundleClassesTaskProvider: TaskProvider? - get() = try { - // for AGP < 7.2.0 - project.tasks.named(getTaskName("bundle", "Classes")) - } catch (_: UnknownTaskException) { - // for AGP >= 7.2.0+ - try { - project.tasks.named(getTaskName("bundle", "ClassesToRuntimeJar")) - } catch (_: UnknownTaskException) { - try { - project.tasks.named(getTaskName("bundle", "ClassesToCompileJar")) - } catch (_: UnknownTaskException) { - null - } - } - } - -fun BaseVariant.getTaskName(prefix: String): String = AGP.run { - getTaskName(prefix) -} - -fun BaseVariant.getTaskName(prefix: String, suffix: String): String = AGP.run { - getTaskName(prefix, suffix) -} - -val BaseVariant.minSdkVersion: ApiVersion - get() = AGP.run { - minSdkVersion - } - -val BaseVariant.isApplication: Boolean - get() = AGP.run { - isApplication - } - -val BaseVariant.isLibrary: Boolean - get() = AGP.run { - isLibrary - } - -val BaseVariant.isDynamicFeature: Boolean - get() = AGP.run { - isDynamicFeature - } - -val BaseVariant.originalApplicationId: String - get() = AGP.run { - originalApplicationId - } - -@Incubating -fun BaseVariant.getArtifactCollection( - configType: AndroidArtifacts.ConsumedConfigType, - scope: AndroidArtifacts.ArtifactScope, - artifactType: AndroidArtifacts.ArtifactType -): ArtifactCollection = AGP.run { - getArtifactCollection(configType, scope, artifactType) -} - -@Incubating -fun BaseVariant.getArtifactFileCollection( - configType: AndroidArtifacts.ConsumedConfigType, - scope: AndroidArtifacts.ArtifactScope, - artifactType: AndroidArtifacts.ArtifactType -): FileCollection = AGP.run { - getArtifactFileCollection(configType, scope, artifactType) -} - -val BaseVariant.aar: FileCollection - get() = AGP.run { - aar - } - -/** - * The output directory of APK files - */ -val BaseVariant.apk: FileCollection - get() = AGP.run { - apk - } - -/** - * The output directory of merged [AndroidManifest.xml](https://developer.android.com/guide/topics/manifest/manifest-intro) - */ -val BaseVariant.mergedManifests: FileCollection - get() = AGP.run { - mergedManifests - } - -/** - * The output directory of merged resources - */ -val BaseVariant.mergedRes: FileCollection - get() = AGP.run { - mergedRes - } - -/** - * The output directory of merged assets - */ -val BaseVariant.mergedAssets: FileCollection - get() = AGP.run { - mergedAssets - } - -/** - * The output directory of merged native libs - */ -val BaseVariant.mergedNativeLibs: FileCollection - get() = AGP.run { - mergedNativeLibs - } - -/** - * The output directory of processed resources: *resources-**variant**.ap\_* - */ -val BaseVariant.processedRes: FileCollection - get() = AGP.run { - processedRes - } - -/** - * All of classes - */ -val BaseVariant.allClasses: FileCollection - get() = AGP.run { - allClasses - } - -val BaseVariant.symbolList: FileCollection - get() = AGP.run { - symbolList - } - -val BaseVariant.symbolListWithPackageName: FileCollection - get() = AGP.run { - symbolListWithPackageName - } - -val BaseVariant.allArtifacts: Map - get() = AGP.run { - allArtifacts - } - -val BaseVariant.buildTools: BuildToolInfo - get() = AGP.run { - buildTools - } - -val BaseVariant.isPrecompileDependenciesResourcesEnabled: Boolean - get() = AGP.run { - isPrecompileDependenciesResourcesEnabled - } - -/** - * The `compileJava` task associates with this variant - */ -@Deprecated( - message = "Use javaCompilerTaskProvider instead", - replaceWith = ReplaceWith(expression = "javaCompilerTaskProvider"), - level = DeprecationLevel.WARNING -) -val BaseVariant.javaCompilerTask: Task - get() = AGP.run { javaCompilerTask } - -/** - * The `preBuild` task associates with this variant - */ -@Deprecated( - message = "Use preBuildTaskProvider instead", - replaceWith = ReplaceWith(expression = "preBuildTaskProvider"), - level = DeprecationLevel.WARNING -) -val BaseVariant.preBuildTask: Task - get() = AGP.run { preBuildTask } - -/** - * The `assemble` task associates with this variant - */ -@Deprecated( - message = "Use assembleTaskProvider instead", - replaceWith = ReplaceWith(expression = "assembleTaskProvider"), - level = DeprecationLevel.WARNING -) -val BaseVariant.assembleTask: Task - get() = AGP.run { assembleTask } - -/** - * The `mergeAssets` task associates with this variant - */ -@Deprecated( - message = "Use mergeAssetsTaskProvider instead", - replaceWith = ReplaceWith(expression = "mergeAssetsTaskProvider"), - level = DeprecationLevel.WARNING -) -val BaseVariant.mergeAssetsTask: Task - get() = AGP.run { mergeAssetsTask } - -/** - * The `mergeResources` task associates with this variant - */ -@Deprecated( - message = "Use mergeResourcesTaskProvider instead", - replaceWith = ReplaceWith(expression = "mergeResourcesTaskProvider"), - level = DeprecationLevel.WARNING -) -val BaseVariant.mergeResourcesTask: Task - get() = AGP.run { mergeResourcesTask } - -@Deprecated( - message = "Use processJavaResourcesTaskProvider instead", - replaceWith = ReplaceWith(expression = "processJavaResourcesTaskProvider"), - level = DeprecationLevel.WARNING -) -val BaseVariant.processJavaResourcesTask: Task - get() = AGP.run { processJavaResourcesTask } - -/** - * The `processRes` task associates with this variant - */ -@Deprecated( - message = "Use processResTaskProvider instead", - replaceWith = ReplaceWith(expression = "processResTaskProvider"), - level = DeprecationLevel.WARNING -) -val BaseVariant.processResTask: ProcessAndroidResources? - get() = project.tasks.findByName(getTaskName("process", "Resources")) as? ProcessAndroidResources - -/** - * The `bundleResources` tasks associates with this variant - */ -@Deprecated( - message = "Use bundleResourcesTaskProvider instead", - replaceWith = ReplaceWith(expression = "bundleResourcesTaskProvider"), - level = DeprecationLevel.WARNING -) -val BaseVariant.bundleResourcesTask: Task? - get() = project.tasks.findByName(getTaskName("bundle", "Resources")) - -/** - * The `packageBundle` tasks associates with this variant - */ -@Deprecated( - message = "Use packageBundleTaskProvider instead", - replaceWith = ReplaceWith(expression = "packageBundleTaskProvider"), - level = DeprecationLevel.WARNING -) -val BaseVariant.packageBundleTask: Task? - get() = project.tasks.findByName(getTaskName("package", "Bundle")) - -@Deprecated( - message = "Use mergeJavaResourceTaskProvider instead", - replaceWith = ReplaceWith(expression = "mergeJavaResourceTaskProvider"), - level = DeprecationLevel.WARNING -) -val BaseVariant.mergeJavaResourceTask: Task? - get() = project.tasks.findByName(getTaskName("merge", "JavaResource")) diff --git a/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/Context.kt b/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/Context.kt deleted file mode 100644 index aa6bdeb97..000000000 --- a/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/Context.kt +++ /dev/null @@ -1,7 +0,0 @@ -package com.didiglobal.booster.gradle - -import com.android.build.api.transform.Context -import com.android.build.gradle.internal.pipeline.TransformTask - -val Context.task: TransformTask - get() = AGP.run { task } \ No newline at end of file diff --git a/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/Project.kt b/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/Project.kt index 96abbb360..5e3060695 100644 --- a/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/Project.kt +++ b/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/Project.kt @@ -1,12 +1,10 @@ package com.didiglobal.booster.gradle -import com.android.build.gradle.AppExtension -import com.android.build.gradle.BaseExtension -import com.android.build.gradle.LibraryExtension -import com.android.build.gradle.api.BaseVariant +import com.android.build.api.variant.Variant +import com.android.build.gradle.internal.SdkComponentsBuildService +import com.android.build.gradle.internal.services.getBuildService import com.android.repository.Revision import org.gradle.api.Project -import org.gradle.api.Task import org.gradle.api.artifacts.component.ComponentArtifactIdentifier import org.gradle.api.artifacts.component.ComponentIdentifier import org.gradle.api.artifacts.component.ProjectComponentIdentifier @@ -16,10 +14,8 @@ import org.gradle.api.attributes.Attribute import org.gradle.api.attributes.AttributeContainer import org.gradle.api.capabilities.Capability import org.gradle.api.component.Artifact -import org.gradle.api.plugins.JavaPlugin import org.gradle.api.plugins.JavaPlugin.RUNTIME_CLASSPATH_CONFIGURATION_NAME import org.gradle.api.provider.Provider -import org.gradle.api.tasks.TaskProvider import org.gradle.maven.MavenPomArtifact import java.io.File import java.util.Optional @@ -31,17 +27,10 @@ import java.util.Stack val Project.gradleVersion: Revision get() = Revision.parseRevision(gradle.gradleVersion) -@Deprecated( - message = "Use isAapt2Enabled instead", - replaceWith = ReplaceWith( - expression = "isAapt2Enabled" - ) -) -val Project.aapt2Enabled: Boolean - get() = AGP.run { isAapt2Enabled } - -val Project.isAapt2Enabled: Boolean - get() = AGP.run { isAapt2Enabled } +val Project.androidSdkLocation: File + get() = getBuildService(gradle.sharedServices, SdkComponentsBuildService::class.java).flatMap { + it.sdkDirectoryProvider + }.get().asFile val Project.isAndroid: Boolean get() = plugins.hasPlugin("com.android.application") @@ -72,7 +61,7 @@ fun Project.getProperty(name: String, defaultValue: T): T { fun Project.getUpstreamProjects( transitive: Boolean = true, - variant: BaseVariant? = null + variant: Variant? = null ): Set = getResolvedArtifactResults(transitive, variant).mapNotNull { (it.id.componentIdentifier as? ProjectComponentIdentifier)?.projectPath?.let { projectPath -> rootProject.project(projectPath) @@ -81,12 +70,11 @@ fun Project.getUpstreamProjects( fun Project.getResolvedArtifactResults( transitive: Boolean = true, - variant: BaseVariant? = null + variant: Variant? = null ): Set = when { + variant == null -> emptySet() isAndroid -> getResolvedArtifactResultsRecursively(transitive) { - filterByVariant(variant).map { v -> - AGP.run { v.getDependencies(transitive) } - }.flatten() + AGP.run { variant.getDependencies(transitive) }.toList() } isJava -> getResolvedArtifactResultsRecursively(transitive) { configurations.getByName(RUNTIME_CLASSPATH_CONFIGURATION_NAME).resolvedConfiguration.resolvedArtifacts.map { @@ -123,43 +111,6 @@ private fun Project.getResolvedArtifactResultsRecursively(transitive: Boolean, r return results.values.toSet() } -/** - * Returns the jar files which could be the outputs of the jar task or createFullJar task - * - * @param variant The build variant - */ -fun Project.getJars(variant: BaseVariant? = null): Set = getJarTaskProviders(variant).map { - it.get().outputs.files -}.flatten().toSet() - -fun Project.getJarTaskProviders(variant: BaseVariant? = null): Collection> = when { - isAndroid -> when (getAndroidOrNull()) { - is LibraryExtension -> filterByVariant(variant).mapNotNull(BaseVariant::createFullJarTaskProvider) - is AppExtension -> filterByVariant(variant).mapNotNull(BaseVariant::bundleClassesTaskProvider) - else -> emptyList() - } - isJavaLibrary -> listOf(tasks.named(JavaPlugin.JAR_TASK_NAME)) - else -> emptyList() -} - -private fun Project.filterByVariant(variant: BaseVariant? = null): Collection { - val variants = when (val android = getAndroidOrNull()) { - is AppExtension -> android.applicationVariants - is LibraryExtension -> android.libraryVariants - else -> emptyList() - } - - if (null == variant) return variants - - return variants.filter { - it.name == variant.name - }.takeIf { - it.isNotEmpty() - } ?: variants.filter { - it.buildType.name == variant.buildType.name - } -} - private data class ResolvedArtifactResultImpl( private val artifactId: ComponentArtifactIdentifier, private val artifactFile: File diff --git a/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/ResolvedArtifactResults.kt b/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/ResolvedArtifactResults.kt index d06e43d55..45b93ccfb 100644 --- a/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/ResolvedArtifactResults.kt +++ b/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/ResolvedArtifactResults.kt @@ -1,11 +1,10 @@ package com.didiglobal.booster.gradle -import com.android.build.gradle.api.BaseVariant +import com.android.build.api.variant.Variant import com.android.build.gradle.internal.publishing.AndroidArtifacts.ArtifactScope.ALL import com.android.build.gradle.internal.publishing.AndroidArtifacts.ArtifactType.AAR import com.android.build.gradle.internal.publishing.AndroidArtifacts.ArtifactType.JAR import com.android.build.gradle.internal.publishing.AndroidArtifacts.ConsumedConfigType.RUNTIME_CLASSPATH -import com.android.builder.model.AndroidProject import com.didiglobal.booster.kotlinx.file import com.didiglobal.booster.kotlinx.separatorsToSystem import com.didiglobal.booster.kotlinx.touch @@ -21,10 +20,10 @@ import java.io.PrintWriter @Suppress("UnstableApiUsage") @Deprecated( message = "Use AGPInterface instead", - replaceWith = ReplaceWith("BaseVariant.getDependencies(Boolean, (ComponentIdentifier) -> Boolean)"), + replaceWith = ReplaceWith("Variant.getDependencies(Boolean, (ComponentIdentifier) -> Boolean)"), level = DeprecationLevel.WARNING ) -class ResolvedArtifactResults(private val variant: BaseVariant) : Collection { +class ResolvedArtifactResults(private val variant: Variant) : Collection { private val results = listOf(AAR, JAR) .asSequence() @@ -80,9 +79,9 @@ class ResolvedArtifactResults(private val variant: BaseVariant) : Collection - get() = AGP.run { bootClasspath } - -/** - * Returns the compile classpath of this transform invocation - * - * @author johnsonlee - */ -val TransformInvocation.compileClasspath: Collection - get() = listOf(inputs, referencedInputs).flatten().map { - it.jarInputs + it.directoryInputs - }.flatten().map { - it.file - } - -/** - * Returns the runtime classpath of this transform invocation - * - * @author johnsonlee - */ -val TransformInvocation.runtimeClasspath: Collection - get() = compileClasspath + bootClasspath - -/** - * Returns the application id - */ -val TransformInvocation.applicationId: String - get() = variant.applicationId - -/** - * Returns the original application ID before any overrides from flavors - */ -val TransformInvocation.originalApplicationId: String - get() = variant.originalApplicationId - -val TransformInvocation.isDataBindingEnabled: Boolean - get() = AGP.run { isDataBindingEnabled } diff --git a/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/TransformManager.kt b/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/TransformManager.kt deleted file mode 100644 index 0df666e70..000000000 --- a/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/TransformManager.kt +++ /dev/null @@ -1,16 +0,0 @@ -package com.didiglobal.booster.gradle - -import com.android.build.api.transform.QualifiedContent -import com.android.build.gradle.internal.pipeline.TransformManager - -val SCOPE_PROJECT: MutableSet = TransformManager.PROJECT_ONLY - -val SCOPE_FULL_PROJECT: MutableSet = TransformManager.SCOPE_FULL_PROJECT - -val SCOPE_FULL_WITH_FEATURES: MutableSet = AGP.run { - scopeFullWithFeatures -} - -val SCOPE_FULL_LIBRARY_WITH_FEATURES: MutableSet = AGP.run { - scopeFullLibraryWithFeatures -} diff --git a/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/Variant.kt b/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/Variant.kt new file mode 100644 index 000000000..5a4af51da --- /dev/null +++ b/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/Variant.kt @@ -0,0 +1,262 @@ +package com.didiglobal.booster.gradle + +import com.android.build.api.artifact.Artifact +import com.android.build.api.variant.AndroidVersion +import com.android.build.api.variant.Variant +import com.android.build.gradle.internal.SdkComponentsBuildService +import com.android.build.gradle.internal.publishing.AndroidArtifacts +import com.android.build.gradle.internal.services.getBuildService +import com.android.sdklib.BuildToolInfo +import org.apache.groovy.lang.annotation.Incubating +import org.gradle.api.Project +import org.gradle.api.Task +import org.gradle.api.UnknownTaskException +import org.gradle.api.artifacts.ArtifactCollection +import org.gradle.api.artifacts.result.ResolvedArtifactResult +import org.gradle.api.file.FileCollection +import org.gradle.api.file.FileSystemLocation +import org.gradle.api.provider.Provider +import org.gradle.api.tasks.TaskProvider +import java.io.File + +/** + * The project which this variant belongs + */ +val Variant.project: Project + get() = AGP.run { project } + +/** + * The location of `$ANDROID_HOME`/platforms/android-`${compileSdkVersion}` + */ +val Variant.platform: File + get() = getBuildService(project.gradle.sharedServices, SdkComponentsBuildService::class.java).flatMap { + it.sdkDirectoryProvider + }.get().asFile.resolve("platform").resolve("android-${targetVersion.apiLevel}") + +/** + * The variant dependencies + */ +val Variant.dependencies: Collection + get() = AGP.run { + getDependencies(true) + } + +val Variant.targetVersion: AndroidVersion + get() = AGP.run { targetVersion } + +val Variant.javaCompilerTaskProvider: TaskProvider + get() = AGP.run { javaCompilerTaskProvider } + +val Variant.preBuildTaskProvider: TaskProvider + get() = AGP.run { preBuildTaskProvider } + +val Variant.assembleTaskProvider: TaskProvider + get() = AGP.run { assembleTaskProvider } + +val Variant.mergeAssetsTaskProvider: TaskProvider + get() = AGP.run { mergeAssetsTaskProvider } + +val Variant.mergeResourcesTaskProvider: TaskProvider + get() = AGP.run { mergeResourcesTaskProvider } + +val Variant.mergeNativeLibsTaskProvider: TaskProvider + get() = AGP.run { mergeNativeLibsTaskProvider } + +val Variant.processJavaResourcesTaskProvider: TaskProvider + get() = AGP.run { processJavaResourcesTaskProvider } + +val Variant.processResTaskProvider: TaskProvider? + get() = try { + project.tasks.named(getTaskName("process", "Resources")) + } catch (_: UnknownTaskException) { + null + } + +val Variant.bundleResourcesTaskProvider: TaskProvider? + get() = try { + project.tasks.named(getTaskName("bundle", "Resources")) + } catch (_: UnknownTaskException) { + null + } + +val Variant.packageTaskProvider: TaskProvider? + get() = try { + project.tasks.named(getTaskName("package")) + } catch (_: UnknownTaskException) { + null + } + +val Variant.packageBundleTaskProvider: TaskProvider? + get() = try { + project.tasks.named(getTaskName("package", "Bundle")) + } catch (_: UnknownTaskException) { + null + } + +val Variant.mergeJavaResourceTaskProvider: TaskProvider? + get() = try { + project.tasks.named(getTaskName("merge", "JavaResource")) + } catch (_: UnknownTaskException) { + null + } + +val Variant.createFullJarTaskProvider: TaskProvider? + get() = try { + project.tasks.named(getTaskName("createFullJar")) + } catch (_: UnknownTaskException) { + null + } + +val Variant.bundleClassesTaskProvider: TaskProvider? + get() = try { + project.tasks.named(getTaskName("bundle", "ClassesToRuntimeJar")) + } catch (_: UnknownTaskException) { + try { + project.tasks.named(getTaskName("bundle", "ClassesToCompileJar")) + } catch (_: UnknownTaskException) { + null + } + } + +fun Variant.getTaskName(prefix: String): String = AGP.run { + getTaskName(prefix) +} + +fun Variant.getTaskName(prefix: String, suffix: String): String = AGP.run { + getTaskName(prefix, suffix) +} + +val Variant.isApplication: Boolean + get() = AGP.run { + isApplication + } + +val Variant.isLibrary: Boolean + get() = AGP.run { + isLibrary + } + +val Variant.isDynamicFeature: Boolean + get() = AGP.run { + isDynamicFeature + } + +val Variant.originalApplicationId: String + get() = AGP.run { + originalApplicationId + } + +fun Variant.getSingleArtifact( + type: Artifact.Single +): Provider = AGP.run { + getSingleArtifact(type) +} + +@Incubating +fun Variant.getArtifactCollection( + configType: AndroidArtifacts.ConsumedConfigType, + scope: AndroidArtifacts.ArtifactScope, + artifactType: AndroidArtifacts.ArtifactType +): ArtifactCollection = AGP.run { + getArtifactCollection(configType, scope, artifactType) +} + +@Incubating +fun Variant.getArtifactFileCollection( + configType: AndroidArtifacts.ConsumedConfigType, + scope: AndroidArtifacts.ArtifactScope, + artifactType: AndroidArtifacts.ArtifactType +): FileCollection = AGP.run { + getArtifactFileCollection(configType, scope, artifactType) +} + +val Variant.aar: FileCollection + get() = AGP.run { + aar + } + +val Variant.resourceSetMap: FileCollection + get() = AGP.run { + sourceSetMap + } + +/** + * The output directory of APK files + */ +val Variant.apk: FileCollection + get() = AGP.run { + apk + } + +/** + * The output directory of merged [AndroidManifest.xml](https://developer.android.com/guide/topics/manifest/manifest-intro) + */ +val Variant.mergedManifests: FileCollection + get() = AGP.run { + mergedManifests + } + +/** + * The output directory of merged resources + */ +val Variant.mergedRes: FileCollection + get() = AGP.run { + mergedRes + } + +/** + * The output directory of merged assets + */ +val Variant.mergedAssets: FileCollection + get() = AGP.run { + mergedAssets + } + +/** + * The output directory of merged native libs + */ +val Variant.mergedNativeLibs: FileCollection + get() = AGP.run { + mergedNativeLibs + } + +/** + * The output directory of processed resources: *resources-**variant**.ap\_* + */ +val Variant.processedRes: FileCollection + get() = AGP.run { + processedRes + } + +/** + * All of classes + */ +val Variant.allClasses: FileCollection + get() = AGP.run { + allClasses + } + +val Variant.symbolList: FileCollection + get() = AGP.run { + symbolList + } + +val Variant.symbolListWithPackageName: FileCollection + get() = AGP.run { + symbolListWithPackageName + } + +val Variant.allArtifacts: Map + get() = AGP.run { + allArtifacts + } + +val Variant.buildTools: BuildToolInfo + get() = AGP.run { + buildTools + } + +val Variant.isPrecompileDependenciesResourcesEnabled: Boolean + get() = AGP.run { + isPrecompileDependenciesResourcesEnabled + } diff --git a/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/Version.kt b/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/Version.kt index 6e87bc531..48b5dba45 100644 --- a/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/Version.kt +++ b/booster-android-gradle-api/src/main/kotlin/com/didiglobal/booster/gradle/Version.kt @@ -1,19 +1,7 @@ package com.didiglobal.booster.gradle -val GTE_V3_X: Boolean by lazy { AGP.revision.major >= 3 } -val GTE_V3_6: Boolean by lazy { AGP.revision.major > 3 || (AGP.revision.major == 3 && AGP.revision.minor >= 6) } -val GTE_V3_5: Boolean by lazy { AGP.revision.major > 3 || (AGP.revision.major == 3 && AGP.revision.minor >= 5) } -val GTE_V3_4: Boolean by lazy { AGP.revision.major > 3 || (AGP.revision.major == 3 && AGP.revision.minor >= 4) } -val GTE_V3_3: Boolean by lazy { AGP.revision.major > 3 || (AGP.revision.major == 3 && AGP.revision.minor >= 3) } -val GTE_V3_2: Boolean by lazy { AGP.revision.major > 3 || (AGP.revision.major == 3 && AGP.revision.minor >= 2) } -val GTE_V3_1: Boolean by lazy { AGP.revision.major > 3 || (AGP.revision.major == 3 && AGP.revision.minor >= 1) } +val GTE_V8_X: Boolean by lazy { AGP.revision.major >= 8 } -val GTE_V4_X: Boolean by lazy { AGP.revision.major >= 4 } -val GTE_V4_2: Boolean by lazy { AGP.revision.major > 4 || (AGP.revision.major == 4 && AGP.revision.minor >= 2) } -val GTE_V4_1: Boolean by lazy { AGP.revision.major > 4 || (AGP.revision.major == 4 && AGP.revision.minor >= 1) } +val GTE_V8_1: Boolean by lazy { AGP.revision.major > 8 || (AGP.revision.major == 8 && AGP.revision.minor >= 1) } -val GTE_V7_X: Boolean by lazy { AGP.revision.major >= 7 } -val GTE_V7_4: Boolean by lazy { AGP.revision.major > 7 || (AGP.revision.major == 7 && AGP.revision.minor >= 4) } -val GTE_V7_3: Boolean by lazy { AGP.revision.major > 7 || (AGP.revision.major == 7 && AGP.revision.minor >= 3) } -val GTE_V7_2: Boolean by lazy { AGP.revision.major > 7 || (AGP.revision.major == 7 && AGP.revision.minor >= 2) } -val GTE_V7_1: Boolean by lazy { AGP.revision.major > 7 || (AGP.revision.major == 7 && AGP.revision.minor >= 1) } +val GTE_V8_2: Boolean by lazy { AGP.revision.major > 8 || (AGP.revision.major == 8 && AGP.revision.minor >= 2) } diff --git a/booster-android-gradle-compat/build.gradle b/booster-android-gradle-compat/build.gradle index 49cacd5c7..899e1b1e8 100644 --- a/booster-android-gradle-compat/build.gradle +++ b/booster-android-gradle-compat/build.gradle @@ -4,8 +4,8 @@ dependencies { api gradleApi() api 'com.android.tools:repository:26.0.0' api 'com.android.tools:sdklib:26.0.0' - compileOnly 'com.android.tools.build:gradle:3.0.0' - testCompileOnly 'com.android.tools.build:gradle:3.0.0' + compileOnly 'com.android.tools.build:gradle:8.0.0' + testCompileOnly 'com.android.tools.build:gradle:8.0.0' testApi project(':booster-build') testApi gradleTestKit() testApi 'org.spockframework:spock-core:1.3-groovy-2.5' diff --git a/booster-android-gradle-compat/src/main/kotlin/com/didiglobal/booster/gradle/AGPInterface.kt b/booster-android-gradle-compat/src/main/kotlin/com/didiglobal/booster/gradle/AGPInterface.kt index a417adea5..673a9fa6b 100644 --- a/booster-android-gradle-compat/src/main/kotlin/com/didiglobal/booster/gradle/AGPInterface.kt +++ b/booster-android-gradle-compat/src/main/kotlin/com/didiglobal/booster/gradle/AGPInterface.kt @@ -1,18 +1,12 @@ package com.didiglobal.booster.gradle -import com.android.build.api.transform.Context -import com.android.build.api.transform.QualifiedContent -import com.android.build.api.transform.TransformInvocation -import com.android.build.gradle.AppExtension +import com.android.build.api.artifact.Artifact +import com.android.build.api.variant.AndroidComponentsExtension +import com.android.build.api.variant.AndroidVersion +import com.android.build.api.variant.Variant import com.android.build.gradle.BaseExtension -import com.android.build.gradle.LibraryExtension -import com.android.build.gradle.api.BaseVariant -import com.android.build.gradle.internal.pipeline.TransformManager -import com.android.build.gradle.internal.pipeline.TransformTask import com.android.build.gradle.internal.publishing.AndroidArtifacts -import com.android.build.gradle.internal.scope.VariantScope import com.android.build.gradle.internal.variant.BaseVariantData -import com.android.builder.model.ApiVersion import com.android.builder.model.Version import com.android.repository.Revision import com.android.sdklib.BuildToolInfo @@ -23,8 +17,9 @@ import org.gradle.api.artifacts.ArtifactCollection import org.gradle.api.artifacts.component.ComponentIdentifier import org.gradle.api.artifacts.result.ResolvedArtifactResult import org.gradle.api.file.FileCollection +import org.gradle.api.file.FileSystemLocation +import org.gradle.api.provider.Provider import org.gradle.api.tasks.TaskProvider -import java.io.File import java.util.ServiceLoader interface AGPInterface { @@ -32,20 +27,14 @@ interface AGPInterface { val revision: Revision get() = REVISION - val scopeFullWithFeatures: MutableSet - get() = TransformManager.SCOPE_FULL_PROJECT - - val scopeFullLibraryWithFeatures: MutableSet - get() = TransformManager.PROJECT_ONLY - - val BaseVariant.project: Project + val Variant.project: Project @Deprecated( message = "Use javaCompilerTaskProvider instead", replaceWith = ReplaceWith(expression = "javaCompilerTaskProvider"), level = DeprecationLevel.WARNING ) - val BaseVariant.javaCompilerTask: Task + val Variant.javaCompilerTask: Task get() = javaCompilerTaskProvider.get() @Deprecated( @@ -53,7 +42,7 @@ interface AGPInterface { replaceWith = ReplaceWith(expression = "preBuildTaskProvider"), level = DeprecationLevel.WARNING ) - val BaseVariant.preBuildTask: Task + val Variant.preBuildTask: Task get() = preBuildTaskProvider.get() @Deprecated( @@ -61,7 +50,7 @@ interface AGPInterface { replaceWith = ReplaceWith(expression = "preBuildTaskProvider"), level = DeprecationLevel.WARNING ) - val BaseVariant.assembleTask: Task + val Variant.assembleTask: Task get() = assembleTaskProvider.get() @Deprecated( @@ -69,7 +58,7 @@ interface AGPInterface { replaceWith = ReplaceWith(expression = "mergeAssetsTaskProvider"), level = DeprecationLevel.WARNING ) - val BaseVariant.mergeAssetsTask: Task + val Variant.mergeAssetsTask: Task get() = mergeAssetsTaskProvider.get() @Deprecated( @@ -77,7 +66,7 @@ interface AGPInterface { replaceWith = ReplaceWith(expression = "mergeResourcesTaskProvider"), level = DeprecationLevel.WARNING ) - val BaseVariant.mergeResourcesTask: Task + val Variant.mergeResourcesTask: Task get() = mergeResourcesTaskProvider.get() @@ -86,145 +75,121 @@ interface AGPInterface { replaceWith = ReplaceWith(expression = "processJavaResourcesTaskProvider"), level = DeprecationLevel.WARNING ) - val BaseVariant.processJavaResourcesTask: Task + val Variant.processJavaResourcesTask: Task get() = processJavaResourcesTaskProvider.get() - fun BaseVariant.getTaskName(prefix: String): String + fun Variant.getTaskName(prefix: String): String - fun BaseVariant.getTaskName(prefix: String, suffix: String): String + fun Variant.getTaskName(prefix: String, suffix: String): String - val BaseVariant.variantData: BaseVariantData + val Variant.variantData: BaseVariantData @Deprecated( - message = "Use BaseVariant.namespace instead", + message = "Use Variant.namespace instead", replaceWith = ReplaceWith(expression = "variant.namespace"), ) - val BaseVariant.originalApplicationId: String + val Variant.originalApplicationId: String - val BaseVariant.hasDynamicFeature: Boolean + val Variant.hasDynamicFeature: Boolean @Deprecated(message = "Deprecated, don't use it") - val BaseVariant.rawAndroidResources: FileCollection + val Variant.rawAndroidResources: FileCollection + + val Variant.sourceSetMap: FileCollection + + val Variant.localAndroidResources: FileCollection - val BaseVariant.localAndroidResources: FileCollection + val Variant.javaCompilerTaskProvider: TaskProvider - val BaseVariant.javaCompilerTaskProvider: TaskProvider + val Variant.preBuildTaskProvider: TaskProvider - val BaseVariant.preBuildTaskProvider: TaskProvider + val Variant.assembleTaskProvider: TaskProvider - val BaseVariant.assembleTaskProvider: TaskProvider + val Variant.mergeAssetsTaskProvider: TaskProvider - val BaseVariant.mergeAssetsTaskProvider: TaskProvider + val Variant.mergeResourcesTaskProvider: TaskProvider - val BaseVariant.mergeResourcesTaskProvider: TaskProvider + val Variant.mergeNativeLibsTaskProvider: TaskProvider - val BaseVariant.mergeNativeLibsTaskProvider: TaskProvider + val Variant.processJavaResourcesTaskProvider: TaskProvider - val BaseVariant.processJavaResourcesTaskProvider: TaskProvider + fun Variant.getSingleArtifact( + type: Artifact.Single + ): Provider - fun BaseVariant.getArtifactCollection( + fun Variant.getArtifactCollection( configType: AndroidArtifacts.ConsumedConfigType, scope: AndroidArtifacts.ArtifactScope, artifactType: AndroidArtifacts.ArtifactType ): ArtifactCollection - fun BaseVariant.getArtifactFileCollection( + fun Variant.getArtifactFileCollection( configType: AndroidArtifacts.ConsumedConfigType, scope: AndroidArtifacts.ArtifactScope, artifactType: AndroidArtifacts.ArtifactType ): FileCollection - val BaseVariant.allArtifacts: Map + val Variant.allArtifacts: Map - val BaseVariant.minSdkVersion: ApiVersion + val Variant.targetVersion: AndroidVersion - val BaseVariant.targetSdkVersion: ApiVersion + val Variant.isApplication: Boolean - val BaseVariant.isApplication: Boolean + val Variant.isLibrary: Boolean - val BaseVariant.isLibrary: Boolean + val Variant.isDynamicFeature: Boolean - val BaseVariant.isDynamicFeature: Boolean + val Variant.aar: FileCollection - val BaseVariant.aar: FileCollection + val Variant.apk: FileCollection - val BaseVariant.apk: FileCollection + val Variant.mergedManifests: FileCollection - val BaseVariant.mergedManifests: FileCollection + val Variant.mergedRes: FileCollection - val BaseVariant.mergedRes: FileCollection + val Variant.mergedAssets: FileCollection - val BaseVariant.mergedAssets: FileCollection + val Variant.mergedNativeLibs: FileCollection - val BaseVariant.mergedNativeLibs: FileCollection + val Variant.processedRes: FileCollection - val BaseVariant.processedRes: FileCollection + val Variant.symbolList: FileCollection - val BaseVariant.symbolList: FileCollection + val Variant.symbolListWithPackageName: FileCollection - val BaseVariant.symbolListWithPackageName: FileCollection + val Variant.dataBindingDependencyArtifacts: FileCollection - val BaseVariant.dataBindingDependencyArtifacts: FileCollection + val Variant.allClasses: FileCollection - val BaseVariant.allClasses: FileCollection + val Variant.buildTools: BuildToolInfo - val BaseVariant.buildTools: BuildToolInfo + val Variant.isPrecompileDependenciesResourcesEnabled: Boolean - val BaseVariant.isPrecompileDependenciesResourcesEnabled: Boolean - - fun BaseVariant.getDependencies( + fun Variant.getDependencies( transitive: Boolean = true, filter: (ComponentIdentifier) -> Boolean = { true } ): Collection - val Context.task: TransformTask - - @Deprecated( - message = "Use isAapt2Enabled instead", - replaceWith = ReplaceWith( - expression = "isAapt2Enabled" - ) - ) - val Project.aapt2Enabled: Boolean - - @Suppress("DEPRECATION") - val Project.isAapt2Enabled: Boolean - get() = aapt2Enabled - - val TransformInvocation.variant: BaseVariant - get() = project.getAndroid().let { android -> - this.context.variantName.let { variant -> - when (android) { - is AppExtension -> when { - variant.endsWith("AndroidTest") -> android.testVariants.single { it.name == variant } - variant.endsWith("UnitTest") -> android.unitTestVariants.single { it.name == variant } - else -> android.applicationVariants.single { it.name == variant } - } - is LibraryExtension -> android.libraryVariants.single { it.name == variant } - else -> TODO("variant not found") - } - } - } - - val TransformInvocation.project: Project - get() = context.task.project - - val TransformInvocation.bootClasspath: Collection - get() = project.getAndroid().bootClasspath - - val TransformInvocation.isDataBindingEnabled: Boolean - get() = project.getAndroid().dataBinding.isEnabled - } +@Deprecated("Deprecated", ReplaceWith("getAndroidComponent")) inline fun Project.getAndroid(): T = extensions.getByName("android") as T +@Deprecated("Deprecated", ReplaceWith("getAndroidComponent")) inline fun Project.getAndroidOrNull(): T? = try { extensions.getByName("android") as? T } catch (e: UnknownDomainObjectException) { null } +inline fun > Project.getAndroidComponents() = extensions.getByType(AndroidComponentsExtension::class.java) as T + +inline fun > Project.getAndroidComponentsOrNull() = try { + getAndroidComponents() +} catch (e: UnknownDomainObjectException) { + null +} + private val REVISION: Revision by lazy { Revision.parseRevision(Version.ANDROID_GRADLE_PLUGIN_VERSION) } diff --git a/booster-android-gradle-v3_3/README.md b/booster-android-gradle-v3_3/README.md deleted file mode 100644 index 715630dc5..000000000 --- a/booster-android-gradle-v3_3/README.md +++ /dev/null @@ -1,6 +0,0 @@ -# booster-android-gradle-v3_3 - -This module is an implementation of [booster-android-gradle-api](../booster-android-gradle-api) for Android gradle plugin 3.3 and above. - -本模块是 [booster-android-gradle-api](../booster-android-gradle-api) 针对 Android gradle plugin 3.3 以上版本的实现。 - diff --git a/booster-android-gradle-v3_3/build.gradle b/booster-android-gradle-v3_3/build.gradle deleted file mode 100644 index 7fc6eb17b..000000000 --- a/booster-android-gradle-v3_3/build.gradle +++ /dev/null @@ -1,19 +0,0 @@ -apply plugin: 'java-gradle-plugin' - -apply from: "$rootDir/gradle/booster.gradle" -apply from: "$rootDir/gradle/integration-test.gradle" -apply from: "$rootDir/gradle/functional-test.gradle" - -dependencies { - kapt 'com.google.auto.service:auto-service:1.0' - api 'com.google.auto.service:auto-service:1.0' - api project(':booster-android-gradle-compat') - compileOnly 'com.android.tools.build:gradle:3.3.0' - testImplementation 'com.android.tools.build:gradle:3.3.0' - testImplementation 'io.bootstage.testkit:testkit-gradle-plugin:1.4.0' - testImplementation project(':booster-build') -} - -gradlePlugin { - testSourceSets sourceSets.functionalTest, sourceSets.integrationTest -} \ No newline at end of file diff --git a/booster-android-gradle-v3_3/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_3/V33IntegrationTest.kt b/booster-android-gradle-v3_3/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_3/V33IntegrationTest.kt deleted file mode 100644 index 84595ce26..000000000 --- a/booster-android-gradle-v3_3/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_3/V33IntegrationTest.kt +++ /dev/null @@ -1,475 +0,0 @@ -@file:Suppress("DEPRECATION") - -package com.didiglobal.booster.android.gradle.v3_3 - -import com.android.build.gradle.AppExtension -import com.android.build.gradle.BaseExtension -import com.android.build.gradle.LibraryExtension -import com.android.build.gradle.api.BaseVariant -import com.android.sdklib.BuildToolInfo -import com.didiglobal.booster.gradle.AGP -import com.didiglobal.booster.gradle.getAndroid -import com.didiglobal.booster.kotlinx.search -import io.bootstage.testkit.gradle.Case -import io.bootstage.testkit.gradle.TestCase -import io.bootstage.testkit.gradle.VariantTestCase -import io.bootstage.testkit.gradle.rules.GradleExecutor -import io.bootstage.testkit.gradle.rules.LocalProperties -import io.bootstage.testkit.gradle.rules.copyFromResource -import io.bootstage.testkit.gradle.rules.rule -import org.gradle.api.Project -import org.junit.Before -import org.junit.Rule -import org.junit.rules.TemporaryFolder -import org.junit.rules.TestRule -import java.io.File -import kotlin.test.Test -import kotlin.test.assertEquals -import kotlin.test.assertFalse -import kotlin.test.assertNotNull -import kotlin.test.assertTrue -import kotlin.test.fail - -private val MIN_SDK_VERSION = System.getProperty("android.minsdk.version").toInt() - -private const val TARGET_SDK_VERSION = 26 - -private val ARGS = System.getProperty("gradle.args").split("\\s+".toRegex()) + listOf( - "-Pbooster_version=${Build.VERSION}", - "-Pandroid_gradle_version=3.3.0", - "-Pcompile_sdk_version=28", - "-Pbuild_tools_version=26.0.3", - "-Pmin_sdk_version=${MIN_SDK_VERSION}", - "-Ptarget_sdk_version=${TARGET_SDK_VERSION}" -) - -@Suppress("RemoveCurlyBracesFromTemplate", "FunctionName") -abstract class V33IntegrationTest(private val isLib: Boolean) { - - private val projectDir = TemporaryFolder() - - @get:Rule - val ruleChain: TestRule = rule(projectDir) { - rule(LocalProperties(projectDir::getRoot)) { - GradleExecutor(projectDir::getRoot, "4.10.1", *ARGS.toTypedArray()) - } - } - - @Before - fun setup() { - projectDir.copyFromResource("${if (isLib) "lib" else "app"}.gradle", "build.gradle") - projectDir.copyFromResource("buildSrc") - projectDir.copyFromResource("src") - projectDir.newFile("gradle.properties").writeText("org.gradle.jvmargs=-Xmx4g -XX:MaxMetaspaceSize=2g") - assertEquals(3, AGP.revision.major) - assertEquals(3, AGP.revision.minor) - } - - @Test - @Case(ScopeFullWithFeaturesTest::class) - fun `test AGPInterface#scopeFullWithFeatures`() = Unit - - @Test - @Case(ScopeFullLibraryWithFeaturesTest::class) - fun `test AGPInterface#scopeFullLibraryWithFeatures`() = Unit - - @Test - @Case(ProjectTest::class) - fun `test AGPInterface#project`() = Unit - - @Test - @Case(JavaCompilerTaskTestUnit::class) - fun `test AGPInterface#javaCompilerTask`() = Unit - - @Test - @Case(PreBuildTaskTestUnit::class) - fun `test AGPInterface#preBuildTask`() = Unit - - @Test - @Case(AssembleTaskTestUnit::class) - fun `test AGPInterface#assembleTask`() = Unit - - @Test - @Case(MergeAssetsTaskTestUnit::class) - fun `test AGPInterface#mergeAssetsTask`() = Unit - - @Test - @Case(MergeResourcesTaskTestUnit::class) - fun `test AGPInterface#mergeResources`() = Unit - - @Test - @Case(GetTaskNameTestUnit::class) - fun `test AGPInterface#getTaskName(String)`() = Unit - - @Test - @Case(GetTaskName2TestUnit::class) - fun `test AGPInterface#getTaskName(String, String)`() = Unit - - @Test - @Case(VariantDataTestUnit::class) - fun `test AGPInterface#variantData`() = Unit - - @Test - @Case(OriginalApplicationIdTestUnit::class) - fun `test AGPInterface#originalApplicationId`() = Unit - - @Test - @Case(HasDynamicFeatureTestUnit::class) - fun `test AGPInterface#hasDynamicFeature`() = Unit - - @Test - @Case(RawAndroidResourcesTestUnit::class) - fun `test AGPInterface#rawAndroidResources`() = Unit - - @Test - @Case(AllArtifactsTestUnit::class) - fun `test AGPInterface#allArtifacts`() = Unit - - @Test - @Case(MinSdkVersionTestUnit::class) - fun `test AGPInterface#minSdkVersion`() = Unit - - @Test - @Case(TargetSdkVersionTestUnit::class) - fun `test AGPInterface#targetSdkVersion`() = Unit - - @Test - @Case(AarTestUnit::class) - fun `test AGPInterface#aar`() = Unit - - @Test - @Case(ApkTestUnit::class) - fun `test AGPInterface#apk`() = Unit - - @Test - @Case(MergedManifestsTestUnit::class) - fun `test AGPInterface#mergedManifests`() = Unit - - @Test - @Case(MergedResourcesTestUnit::class) - fun `test AGPInterface#mergedRes`() = Unit - - @Test - @Case(MergedAssetsTestUnit::class) - fun `test AGPInterface#mergedAssets`() = Unit - - @Test - @Case(ProcessedResTestUnit::class) - fun `test AGPInterface#processedRes`() = Unit - - @Test - @Case(SymbolListTestUnit::class) - fun `test AGPInterface#symbolList`() = Unit - - @Test - @Case(SymbolListWithPackageNameTestUnit::class) - fun `test AGPInterface#symbolListWithPackageName`() = Unit - - @Test - @Case(AllClassesTestUnit::class) - fun `test AGPInterface#allClasses`() = Unit - - @Test - @Case(BuildToolsTestUnit::class) - fun `test AGPInterface#buildTools`() = Unit - -} - -class V33AppIntegrationTest : V33IntegrationTest(false) - -class V33LibIntegrationTest : V33IntegrationTest(true) - -class ScopeFullWithFeaturesTest : TestCase { - override fun apply(project: Project) { - assertEquals("PROJECT,SUB_PROJECTS,EXTERNAL_LIBRARIES,FEATURES", AGP.scopeFullWithFeatures.joinToString(",")) - } -} - -class ScopeFullLibraryWithFeaturesTest : TestCase { - override fun apply(project: Project) { - assertEquals("FEATURES,PROJECT", AGP.scopeFullLibraryWithFeatures.joinToString(",")) - } -} - -class ProjectTest : TestCase { - override fun apply(project: Project) { - val assert: (BaseVariant) -> Unit = { variant -> - assertEquals(project, AGP.run { variant.project }) - } - project.afterEvaluate { - when (val android = project.getAndroid()) { - is AppExtension -> android.applicationVariants.forEach(assert) - is LibraryExtension -> android.libraryVariants.forEach(assert) - } - } - } -} - -class JavaCompilerTaskTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.javaCompilerTask }) - } -} - -class PreBuildTaskTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.preBuildTask }) - } -} - -class AssembleTaskTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.assembleTask }) - } -} - -class MergeAssetsTaskTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.mergeAssetsTask }) - } -} - -class MergeResourcesTaskTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.mergeResourcesTask }) - } -} - -class GetTaskNameTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertEquals("assemble${variant.name.capitalize()}", AGP.run { variant.getTaskName("assemble") }) - } -} - - -class GetTaskName2TestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertEquals("merge${variant.name.capitalize()}Resources", AGP.run { variant.getTaskName("merge", "Resources") }) - } -} - -class VariantDataTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.variantData }) - } -} - -class OriginalApplicationIdTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.originalApplicationId }) - } -} - -class HasDynamicFeatureTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertFalse(AGP.run { variant.hasDynamicFeature }) - } -} - -class RawAndroidResourcesTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val rawAndroidResources = AGP.run { variant.rawAndroidResources } - assertNotNull(rawAndroidResources) - if (rawAndroidResources.isEmpty()) { - fail("rawAndroidResources is empty") - } - rawAndroidResources.forEach { - println(" - ${it.path}") - } - } - } -} - -class AllArtifactsTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val allArtifacts = AGP.run { variant.allArtifacts } - assertNotNull(allArtifacts) - if (allArtifacts.isEmpty()) { - fail("allArtifacts is empty") - } - allArtifacts.forEach { (k, v) -> - println(" - $k => $v") - } - } - } -} - -class MinSdkVersionTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - val minSdkVersion = AGP.run { variant.minSdkVersion } - assertNotNull(minSdkVersion) - assertEquals(MIN_SDK_VERSION, minSdkVersion.apiLevel) - } -} - -class TargetSdkVersionTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - val targetSdkVersion = AGP.run { variant.targetSdkVersion } - assertNotNull(targetSdkVersion) - assertEquals(TARGET_SDK_VERSION, targetSdkVersion.apiLevel) - } -} - -class AarTestUnit : VariantTestCase() { - override fun apply(project: Project) { - if (project.plugins.hasPlugin("com.android.library")) { - super.apply(project) - } - } - - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val aar = AGP.run { variant.aar }.search { - it.extension == "aar" - } - if (aar.isEmpty()) { - fail("aar is empty") - } - aar.forEach { - println(" - ${it.path}") - } - } - } -} - -class ApkTestUnit : VariantTestCase() { - override fun apply(project: Project) { - if (project.plugins.hasPlugin("com.android.application")) { - super.apply(project) - } - } - - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val apk = AGP.run { variant.apk }.search { - it.extension == "apk" - } - if (apk.isEmpty()) { - fail("apk is empty") - } - apk.forEach { - println(" - ${it.path}") - } - } - } -} - -class MergedManifestsTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val mergedManifests = AGP.run { variant.mergedManifests }.search { - it.name == "AndroidManifest.xml" - } - if (mergedManifests.isEmpty()) { - fail("mergedManifests is empty") - } - mergedManifests.forEach { - println(" - ${it.path}") - } - } - } -} - -class MergedResourcesTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val mergedResources = AGP.run { variant.mergedRes } - if (mergedResources.isEmpty()) { - fail("mergedRes is empty") - } - mergedResources.forEach { - println(" - ${it.path}") - } - } - } -} - -class MergedAssetsTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val mergedAssets = AGP.run { variant.mergedAssets } - if (mergedAssets.isEmpty()) { - fail("mergedAssets is empty") - } - mergedAssets.forEach { - println(" - ${it.path}") - } - } - } -} - -class ProcessedResTestUnit : VariantTestCase() { - override fun apply(project: Project) { - if (project.plugins.hasPlugin("com.android.application")) { - super.apply(project) - } - } - - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val processedRes = AGP.run { variant.processedRes }.search { - it.extension == "ap_" - } - if (processedRes.isEmpty()) { - fail("processedRes is empty") - } - processedRes.forEach { - println(" - ${it.path}") - } - } - } -} - -class SymbolListTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val symbolList = AGP.run { variant.symbolList } - if (symbolList.isEmpty()) { - fail("symbolList is empty") - } - symbolList.forEach { - println(" - ${it.path}") - } - } - } -} - -class SymbolListWithPackageNameTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val symbolListWithPackageName = AGP.run { variant.symbolListWithPackageName } - if (symbolListWithPackageName.isEmpty()) { - fail("symbolListWithPackageName is empty") - } - symbolListWithPackageName.forEach { - println(" - ${it.path}") - } - } - } -} - -class AllClassesTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val location = AGP.run { variant.allClasses }.files - assertTrue("ALL_CLASSES: $location", location::isNotEmpty) - assertTrue("No class file found at $location") { - location.search(File::isFile).isNotEmpty() - } - } - } -} - -class BuildToolsTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - val buildTools = AGP.run { variant.buildTools } - assertNotNull(buildTools) - BuildToolInfo.PathId.values().map { - it.name to buildTools.getPath(it) - }.forEach { (k, v) -> - println(" - $k => $v") - } - } -} diff --git a/booster-android-gradle-v3_3/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_3/V33.kt b/booster-android-gradle-v3_3/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_3/V33.kt deleted file mode 100644 index 592165acb..000000000 --- a/booster-android-gradle-v3_3/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_3/V33.kt +++ /dev/null @@ -1,253 +0,0 @@ -package com.didiglobal.booster.android.gradle.v3_3 - -import com.android.build.api.artifact.ArtifactType -import com.android.build.api.artifact.BuildArtifactType -import com.android.build.api.transform.Context -import com.android.build.api.transform.QualifiedContent -import com.android.build.gradle.api.ApplicationVariant -import com.android.build.gradle.api.BaseVariant -import com.android.build.gradle.api.LibraryVariant -import com.android.build.gradle.internal.api.artifact.SourceArtifactType -import com.android.build.gradle.internal.pipeline.TransformManager -import com.android.build.gradle.internal.pipeline.TransformTask -import com.android.build.gradle.internal.publishing.AndroidArtifacts -import com.android.build.gradle.internal.publishing.AndroidArtifacts.ArtifactScope -import com.android.build.gradle.internal.scope.AnchorOutputType -import com.android.build.gradle.internal.scope.GlobalScope -import com.android.build.gradle.internal.scope.InternalArtifactType -import com.android.build.gradle.internal.scope.VariantScope -import com.android.build.gradle.internal.variant.BaseVariantData -import com.android.builder.core.VariantType -import com.android.builder.model.AndroidProject -import com.android.builder.model.ApiVersion -import com.android.sdklib.BuildToolInfo -import com.didiglobal.booster.gradle.AGPInterface -import org.gradle.api.Project -import org.gradle.api.Task -import org.gradle.api.artifacts.ArtifactCollection -import org.gradle.api.artifacts.component.ComponentIdentifier -import org.gradle.api.artifacts.result.ResolvedArtifactResult -import org.gradle.api.artifacts.result.ResolvedDependencyResult -import org.gradle.api.file.FileCollection -import org.gradle.api.tasks.TaskProvider -import java.io.File -import java.util.TreeMap - -@Suppress("UnstableApiUsage") -private val ARTIFACT_TYPES = arrayOf>( - AnchorOutputType.values(), - BuildArtifactType.values(), - SourceArtifactType.values(), - InternalArtifactType.values() -).flatten().associateBy(ArtifactType::name) - -internal object V33 : AGPInterface { - - @Suppress("UnstableApiUsage") - private fun BaseVariant.getFinalArtifactFiles(type: ArtifactType): FileCollection { - return try { - variantScope.artifacts.getFinalArtifactFiles(type).get() - } catch (e: Throwable) { - project.logger.warn(e.message, e) - project.files() - } - } - - override val scopeFullWithFeatures: MutableSet - get() = TransformManager.SCOPE_FULL_WITH_FEATURES - - override val scopeFullLibraryWithFeatures: MutableSet - get() = (TransformManager.SCOPE_FEATURES + QualifiedContent.Scope.PROJECT).toMutableSet() - - override val BaseVariant.project: Project - get() = globalScope.project - - override val BaseVariant.javaCompilerTaskProvider: TaskProvider - get() = javaCompileProvider - - override val BaseVariant.preBuildTaskProvider: TaskProvider - get() = preBuildProvider - - override val BaseVariant.assembleTaskProvider: TaskProvider - get() = assembleProvider - - override val BaseVariant.mergeAssetsTaskProvider: TaskProvider - get() = mergeAssetsProvider - - override val BaseVariant.mergeResourcesTaskProvider: TaskProvider - get() = mergeResourcesProvider - - override val BaseVariant.mergeNativeLibsTaskProvider: TaskProvider - get() = @Suppress("DEPRECATION") project.tasks.named("transformNativeLibsWithMergeJniLibsFor${name.capitalize()}") - - override val BaseVariant.processJavaResourcesTaskProvider: TaskProvider - get() = processJavaResourcesProvider - - override fun BaseVariant.getTaskName(prefix: String): String { - return variantScope.getTaskName(prefix) - } - - override fun BaseVariant.getTaskName(prefix: String, suffix: String): String { - return variantScope.getTaskName(prefix, suffix) - } - - override val BaseVariant.variantData: BaseVariantData - get() = javaClass.getDeclaredMethod("getVariantData").apply { - isAccessible = true - }.invoke(this) as BaseVariantData - - val BaseVariant.variantScope: VariantScope - get() = variantData.scope - - private val BaseVariant.globalScope: GlobalScope - get() = variantScope.globalScope - - override val BaseVariant.originalApplicationId: String - get() = variantData.variantConfiguration.originalApplicationId - - override val BaseVariant.hasDynamicFeature: Boolean - get() = globalScope.hasDynamicFeatures() - - override val BaseVariant.rawAndroidResources: FileCollection - get() = variantData.allRawAndroidResources - - override val BaseVariant.localAndroidResources: FileCollection - get() = variantData.androidResources.values.map { - it.get() - }.reduce { collection, file -> - collection.plus(file) - } - - override fun BaseVariant.getArtifactCollection( - configType: AndroidArtifacts.ConsumedConfigType, - scope: ArtifactScope, - artifactType: AndroidArtifacts.ArtifactType - ): ArtifactCollection { - return variantScope.getArtifactCollection(configType, scope, artifactType) - } - - override fun BaseVariant.getArtifactFileCollection( - configType: AndroidArtifacts.ConsumedConfigType, - scope: ArtifactScope, - artifactType: AndroidArtifacts.ArtifactType - ): FileCollection { - return variantScope.getArtifactFileCollection(configType, scope, artifactType) - } - - override val BaseVariant.allArtifacts: Map - get() = ARTIFACT_TYPES.entries.associateTo(TreeMap()) { (name, type) -> - val artifacts: FileCollection by lazy { - getFinalArtifactFiles(type) - } - name to artifacts - } - - override val BaseVariant.minSdkVersion: ApiVersion - get() = variantData.variantConfiguration.minSdkVersion.let { minSdkVersion -> - object : ApiVersion { - override fun getApiLevel(): Int = minSdkVersion.apiLevel - override fun getCodename(): String? = minSdkVersion.codename - override fun getApiString(): String = minSdkVersion.apiString - override fun equals(other: Any?): Boolean { - if (this === other) return true - if (other !is ApiVersion) return false - return apiLevel == other.apiLevel || codename.equals(other.codename, false) - } - - override fun hashCode(): Int = codename?.hashCode() ?: apiLevel - } - } - - override val BaseVariant.targetSdkVersion: ApiVersion - get() = variantData.variantConfiguration.targetSdkVersion - - private val BaseVariant.variantType: VariantType - get() = variantScope.type - - override val BaseVariant.isApplication: Boolean - get() = variantType.isApk - - override val BaseVariant.isLibrary: Boolean - get() = variantType.isAar - - override val BaseVariant.isDynamicFeature: Boolean - get() = variantType.isDynamicFeature - - override val BaseVariant.aar: FileCollection - get() = getFinalArtifactFiles(InternalArtifactType.AAR) - - override val BaseVariant.apk: FileCollection - get() = getFinalArtifactFiles(InternalArtifactType.APK) - - override val BaseVariant.mergedManifests: FileCollection - get() = getFinalArtifactFiles(when (this) { - is ApplicationVariant -> InternalArtifactType.MERGED_MANIFESTS - is LibraryVariant -> InternalArtifactType.LIBRARY_MANIFEST - else -> TODO("Unsupported variant type: $name") - }) - - override val BaseVariant.mergedRes: FileCollection - get() = getFinalArtifactFiles(InternalArtifactType.MERGED_RES) - - override val BaseVariant.mergedNativeLibs: FileCollection - get() = project.files("build${File.separatorChar}${AndroidProject.FD_INTERMEDIATES}${File.separatorChar}transforms${File.separatorChar}mergeJniLibs${File.separatorChar}$name") - - override val BaseVariant.mergedAssets: FileCollection - get() = getFinalArtifactFiles(when (this) { - is ApplicationVariant -> InternalArtifactType.MERGED_ASSETS - is LibraryVariant -> InternalArtifactType.LIBRARY_ASSETS - else -> TODO("Unsupported variant type: $variantType") - }) - - override val BaseVariant.processedRes: FileCollection - get() = getFinalArtifactFiles(InternalArtifactType.PROCESSED_RES) - - override val BaseVariant.symbolList: FileCollection - get() = getFinalArtifactFiles(InternalArtifactType.SYMBOL_LIST) - - override val BaseVariant.symbolListWithPackageName: FileCollection - get() = getFinalArtifactFiles(InternalArtifactType.SYMBOL_LIST_WITH_PACKAGE_NAME) - - override val BaseVariant.dataBindingDependencyArtifacts: FileCollection - get() = getFinalArtifactFiles(InternalArtifactType.DATA_BINDING_DEPENDENCY_ARTIFACTS) - - override val BaseVariant.allClasses: FileCollection - get() = getFinalArtifactFiles(AnchorOutputType.ALL_CLASSES) - - override val BaseVariant.buildTools: BuildToolInfo - get() = globalScope.androidBuilder.buildToolInfo - - override val BaseVariant.isPrecompileDependenciesResourcesEnabled: Boolean - get() = false - - override fun BaseVariant.getDependencies(transitive: Boolean, filter: (ComponentIdentifier) -> Boolean): Collection { - val all = listOf(AndroidArtifacts.ArtifactType.AAR, AndroidArtifacts.ArtifactType.JAR) - .asSequence() - .map { - getArtifactCollection(AndroidArtifacts.ConsumedConfigType.RUNTIME_CLASSPATH, ArtifactScope.ALL, it).filter { result -> - filter(result.id.componentIdentifier) - } - } - .flatten() - .associateBy { - it.id.componentIdentifier.displayName - } - val result = if (!transitive) { - runtimeConfiguration.incoming.resolutionResult.root.dependencies.filterIsInstance().mapNotNull { - it.selected.id.displayName.takeIf { id -> id in all.keys } - }.associateWith { - all[it]!! - } - } else { - all - } - return result.values.toSet() - } - - override val Context.task: TransformTask - get() = this as TransformTask - - override val Project.aapt2Enabled: Boolean - get() = true - -} diff --git a/booster-android-gradle-v3_3/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_3/V33Factory.kt b/booster-android-gradle-v3_3/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_3/V33Factory.kt deleted file mode 100644 index 732d3e4cd..000000000 --- a/booster-android-gradle-v3_3/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_3/V33Factory.kt +++ /dev/null @@ -1,15 +0,0 @@ -package com.didiglobal.booster.android.gradle.v3_3 - -import com.android.repository.Revision -import com.didiglobal.booster.gradle.AGPInterface -import com.didiglobal.booster.gradle.AGPInterfaceFactory -import com.google.auto.service.AutoService - -@AutoService(AGPInterfaceFactory::class) -class V33Factory : AGPInterfaceFactory { - - override val revision: Revision = Revision(3, 3, 0) - - override fun newAGPInterface(): AGPInterface = V33 - -} diff --git a/booster-android-gradle-v3_4/build.gradle b/booster-android-gradle-v3_4/build.gradle deleted file mode 100644 index 686414cbe..000000000 --- a/booster-android-gradle-v3_4/build.gradle +++ /dev/null @@ -1,19 +0,0 @@ -apply plugin: 'java-gradle-plugin' - -apply from: "$rootDir/gradle/booster.gradle" -apply from: "$rootDir/gradle/integration-test.gradle" -apply from: "$rootDir/gradle/functional-test.gradle" - -dependencies { - kapt 'com.google.auto.service:auto-service:1.0' - api 'com.google.auto.service:auto-service:1.0' - api project(':booster-android-gradle-compat') - compileOnly 'com.android.tools.build:gradle:3.4.0' - testImplementation 'com.android.tools.build:gradle:3.4.0' - testImplementation 'io.bootstage.testkit:testkit-gradle-plugin:1.4.0' - testImplementation project(':booster-build') -} - -gradlePlugin { - testSourceSets sourceSets.functionalTest, sourceSets.integrationTest -} \ No newline at end of file diff --git a/booster-android-gradle-v3_4/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_4/V34IntegrationTest.kt b/booster-android-gradle-v3_4/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_4/V34IntegrationTest.kt deleted file mode 100644 index 6c20bf1a5..000000000 --- a/booster-android-gradle-v3_4/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_4/V34IntegrationTest.kt +++ /dev/null @@ -1,475 +0,0 @@ -@file:Suppress("DEPRECATION") - -package com.didiglobal.booster.android.gradle.v3_4 - -import com.android.build.gradle.AppExtension -import com.android.build.gradle.BaseExtension -import com.android.build.gradle.LibraryExtension -import com.android.build.gradle.api.BaseVariant -import com.android.sdklib.BuildToolInfo -import com.didiglobal.booster.gradle.AGP -import com.didiglobal.booster.gradle.getAndroid -import com.didiglobal.booster.kotlinx.search -import io.bootstage.testkit.gradle.Case -import io.bootstage.testkit.gradle.TestCase -import io.bootstage.testkit.gradle.VariantTestCase -import io.bootstage.testkit.gradle.rules.GradleExecutor -import io.bootstage.testkit.gradle.rules.LocalProperties -import io.bootstage.testkit.gradle.rules.copyFromResource -import io.bootstage.testkit.gradle.rules.rule -import org.gradle.api.Project -import org.junit.Before -import org.junit.Rule -import org.junit.rules.TemporaryFolder -import org.junit.rules.TestRule -import java.io.File -import kotlin.test.Test -import kotlin.test.assertEquals -import kotlin.test.assertFalse -import kotlin.test.assertNotNull -import kotlin.test.assertTrue -import kotlin.test.fail - -private val MIN_SDK_VERSION = System.getProperty("android.minsdk.version").toInt() - -private const val TARGET_SDK_VERSION = 26 - -private val ARGS = System.getProperty("gradle.args").split("\\s+".toRegex()) + listOf( - "-Pbooster_version=${Build.VERSION}", - "-Pandroid_gradle_version=3.4.0", - "-Pcompile_sdk_version=28", - "-Pbuild_tools_version=26.0.3", - "-Pmin_sdk_version=${MIN_SDK_VERSION}", - "-Ptarget_sdk_version=${TARGET_SDK_VERSION}" -) - -@Suppress("RemoveCurlyBracesFromTemplate", "FunctionName") -abstract class V34IntegrationTest(private val isLib: Boolean) { - - private val projectDir = TemporaryFolder() - - @get:Rule - val ruleChain: TestRule = rule(projectDir) { - rule(LocalProperties(projectDir::getRoot)) { - GradleExecutor(projectDir::getRoot, "5.1.1", *ARGS.toTypedArray()) - } - } - - @Before - fun setup() { - projectDir.copyFromResource("${if (isLib) "lib" else "app"}.gradle", "build.gradle") - projectDir.copyFromResource("buildSrc") - projectDir.copyFromResource("src") - projectDir.newFile("gradle.properties").writeText("org.gradle.jvmargs=-Xmx4g -XX:MaxMetaspaceSize=2g") - assertEquals(3, AGP.revision.major) - assertEquals(4, AGP.revision.minor) - } - - @Test - @Case(ScopeFullWithFeaturesTest::class) - fun `test AGPInterface#scopeFullWithFeatures`() = Unit - - @Test - @Case(ScopeFullLibraryWithFeaturesTest::class) - fun `test AGPInterface#scopeFullLibraryWithFeatures`() = Unit - - @Test - @Case(ProjectTest::class) - fun `test AGPInterface#project`() = Unit - - @Test - @Case(JavaCompilerTaskTestUnit::class) - fun `test AGPInterface#javaCompilerTask`() = Unit - - @Test - @Case(PreBuildTaskTestUnit::class) - fun `test AGPInterface#preBuildTask`() = Unit - - @Test - @Case(AssembleTaskTestUnit::class) - fun `test AGPInterface#assembleTask`() = Unit - - @Test - @Case(MergeAssetsTaskTestUnit::class) - fun `test AGPInterface#mergeAssetsTask`() = Unit - - @Test - @Case(MergeResourcesTaskTestUnit::class) - fun `test AGPInterface#mergeResources`() = Unit - - @Test - @Case(GetTaskNameTestUnit::class) - fun `test AGPInterface#getTaskName(String)`() = Unit - - @Test - @Case(GetTaskName2TestUnit::class) - fun `test AGPInterface#getTaskName(String, String)`() = Unit - - @Test - @Case(VariantDataTestUnit::class) - fun `test AGPInterface#variantData`() = Unit - - @Test - @Case(OriginalApplicationIdTestUnit::class) - fun `test AGPInterface#originalApplicationId`() = Unit - - @Test - @Case(HasDynamicFeatureTestUnit::class) - fun `test AGPInterface#hasDynamicFeature`() = Unit - - @Test - @Case(RawAndroidResourcesTestUnit::class) - fun `test AGPInterface#rawAndroidResources`() = Unit - - @Test - @Case(AllArtifactsTestUnit::class) - fun `test AGPInterface#allArtifacts`() = Unit - - @Test - @Case(MinSdkVersionTestUnit::class) - fun `test AGPInterface#minSdkVersion`() = Unit - - @Test - @Case(TargetSdkVersionTestUnit::class) - fun `test AGPInterface#targetSdkVersion`() = Unit - - @Test - @Case(AarTestUnit::class) - fun `test AGPInterface#aar`() = Unit - - @Test - @Case(ApkTestUnit::class) - fun `test AGPInterface#apk`() = Unit - - @Test - @Case(MergedManifestsTestUnit::class) - fun `test AGPInterface#mergedManifests`() = Unit - - @Test - @Case(MergedResourcesTestUnit::class) - fun `test AGPInterface#mergedRes`() = Unit - - @Test - @Case(MergedAssetsTestUnit::class) - fun `test AGPInterface#mergedAssets`() = Unit - - @Test - @Case(ProcessedResTestUnit::class) - fun `test AGPInterface#processedRes`() = Unit - - @Test - @Case(SymbolListTestUnit::class) - fun `test AGPInterface#symbolList`() = Unit - - @Test - @Case(SymbolListWithPackageNameTestUnit::class) - fun `test AGPInterface#symbolListWithPackageName`() = Unit - - @Test - @Case(AllClassesTestUnit::class) - fun `test AGPInterface#allClasses`() = Unit - - @Test - @Case(BuildToolsTestUnit::class) - fun `test AGPInterface#buildTools`() = Unit - -} - -class V34AppIntegrationTest : V34IntegrationTest(false) - -class V34LibIntegrationTest : V34IntegrationTest(true) - -class ScopeFullWithFeaturesTest : TestCase { - override fun apply(project: Project) { - assertEquals("PROJECT,SUB_PROJECTS,EXTERNAL_LIBRARIES,FEATURES", AGP.scopeFullWithFeatures.joinToString(",")) - } -} - -class ScopeFullLibraryWithFeaturesTest : TestCase { - override fun apply(project: Project) { - assertEquals("FEATURES,PROJECT", AGP.scopeFullLibraryWithFeatures.joinToString(",")) - } -} - -class ProjectTest : TestCase { - override fun apply(project: Project) { - val assert: (BaseVariant) -> Unit = { variant -> - assertEquals(project, AGP.run { variant.project }) - } - project.afterEvaluate { - when (val android = project.getAndroid()) { - is AppExtension -> android.applicationVariants.forEach(assert) - is LibraryExtension -> android.libraryVariants.forEach(assert) - } - } - } -} - -class JavaCompilerTaskTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.javaCompilerTask }) - } -} - -class PreBuildTaskTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.preBuildTask }) - } -} - -class AssembleTaskTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.assembleTask }) - } -} - -class MergeAssetsTaskTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.mergeAssetsTask }) - } -} - -class MergeResourcesTaskTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.mergeResourcesTask }) - } -} - -class GetTaskNameTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertEquals("assemble${variant.name.capitalize()}", AGP.run { variant.getTaskName("assemble") }) - } -} - - -class GetTaskName2TestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertEquals("merge${variant.name.capitalize()}Resources", AGP.run { variant.getTaskName("merge", "Resources") }) - } -} - -class VariantDataTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.variantData }) - } -} - -class OriginalApplicationIdTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.originalApplicationId }) - } -} - -class HasDynamicFeatureTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertFalse(AGP.run { variant.hasDynamicFeature }) - } -} - -class RawAndroidResourcesTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val rawAndroidResources = AGP.run { variant.rawAndroidResources } - assertNotNull(rawAndroidResources) - if (rawAndroidResources.isEmpty()) { - fail("rawAndroidResources is empty") - } - rawAndroidResources.forEach { - println(" - ${it.path}") - } - } - } -} - -class AllArtifactsTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val allArtifacts = AGP.run { variant.allArtifacts } - assertNotNull(allArtifacts) - if (allArtifacts.isEmpty()) { - fail("allArtifacts is empty") - } - allArtifacts.forEach { (k, v) -> - println(" - $k => $v") - } - } - } -} - -class MinSdkVersionTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - val minSdkVersion = AGP.run { variant.minSdkVersion } - assertNotNull(minSdkVersion) - assertEquals(MIN_SDK_VERSION, minSdkVersion.apiLevel) - } -} - -class TargetSdkVersionTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - val targetSdkVersion = AGP.run { variant.targetSdkVersion } - assertNotNull(targetSdkVersion) - assertEquals(TARGET_SDK_VERSION, targetSdkVersion.apiLevel) - } -} - -class AarTestUnit : VariantTestCase() { - override fun apply(project: Project) { - if (project.plugins.hasPlugin("com.android.library")) { - super.apply(project) - } - } - - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val aar = AGP.run { variant.aar }.search { - it.extension == "aar" - } - if (aar.isEmpty()) { - fail("aar is empty") - } - aar.forEach { - println(" - ${it.path}") - } - } - } -} - -class ApkTestUnit : VariantTestCase() { - override fun apply(project: Project) { - if (project.plugins.hasPlugin("com.android.application")) { - super.apply(project) - } - } - - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val apk = AGP.run { variant.apk }.search { - it.extension == "apk" - } - if (apk.isEmpty()) { - fail("apk is empty") - } - apk.forEach { - println(" - ${it.path}") - } - } - } -} - -class MergedManifestsTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val mergedManifests = AGP.run { variant.mergedManifests }.search { - it.name == "AndroidManifest.xml" - } - if (mergedManifests.isEmpty()) { - fail("mergedManifests is empty") - } - mergedManifests.forEach { - println(" - ${it.path}") - } - } - } -} - -class MergedResourcesTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val mergedResources = AGP.run { variant.mergedRes } - if (mergedResources.isEmpty()) { - fail("mergedRes is empty") - } - mergedResources.forEach { - println(" - ${it.path}") - } - } - } -} - -class MergedAssetsTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val mergedAssets = AGP.run { variant.mergedAssets } - if (mergedAssets.isEmpty()) { - fail("mergedAssets is empty") - } - mergedAssets.forEach { - println(" - ${it.path}") - } - } - } -} - -class ProcessedResTestUnit : VariantTestCase() { - override fun apply(project: Project) { - if (project.plugins.hasPlugin("com.android.application")) { - super.apply(project) - } - } - - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val processedRes = AGP.run { variant.processedRes }.search { - it.extension == "ap_" - } - if (processedRes.isEmpty()) { - fail("processedRes is empty") - } - processedRes.forEach { - println(" - ${it.path}") - } - } - } -} - -class SymbolListTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val symbolList = AGP.run { variant.symbolList } - if (symbolList.isEmpty()) { - fail("symbolList is empty") - } - symbolList.forEach { - println(" - ${it.path}") - } - } - } -} - -class SymbolListWithPackageNameTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val symbolListWithPackageName = AGP.run { variant.symbolListWithPackageName } - if (symbolListWithPackageName.isEmpty()) { - fail("symbolListWithPackageName is empty") - } - symbolListWithPackageName.forEach { - println(" - ${it.path}") - } - } - } -} - -class AllClassesTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val location = AGP.run { variant.allClasses }.files - assertTrue("ALL_CLASSES: $location", location::isNotEmpty) - assertTrue("No class file found at $location") { - location.search(File::isFile).isNotEmpty() - } - } - } -} - -class BuildToolsTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - val buildTools = AGP.run { variant.buildTools } - assertNotNull(buildTools) - BuildToolInfo.PathId.values().map { - it.name to buildTools.getPath(it) - }.forEach { (k, v) -> - println(" - $k => $v") - } - } -} diff --git a/booster-android-gradle-v3_4/src/integrationTest/resources/app.gradle b/booster-android-gradle-v3_4/src/integrationTest/resources/app.gradle deleted file mode 100644 index aa3c5f2d6..000000000 --- a/booster-android-gradle-v3_4/src/integrationTest/resources/app.gradle +++ /dev/null @@ -1,60 +0,0 @@ -buildscript { - repositories { - mavenLocal() - mavenCentral() - google() - maven { url 'https://oss.sonatype.org/content/repositories/public/' } - maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } - } - dependencies { - classpath "com.android.tools.build:gradle:${project.android_gradle_version}" - classpath("com.didiglobal.booster:booster-gradle-plugin:${project.booster_version}") { - exclude group: 'com.google.guava' - } - classpath "io.bootstage.testkit:testkit-gradle-plugin:1.4.0" - } -} - -apply plugin: 'com.android.application' -apply plugin: 'com.didiglobal.booster' -apply plugin: 'io.bootstage.testkit' - -android { - compileSdkVersion project.compile_sdk_version as Integer - buildToolsVersion project.build_tools_version - defaultConfig { - applicationId 'com.didiglobal.booster.test' - minSdkVersion project.min_sdk_version as Integer - targetSdkVersion project.target_sdk_version as Integer - versionCode 1 - versionName "1.0" - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - } - buildTypes { - debug { - minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' - } - } - flavorDimensions 'lang' - productFlavors { - en { - dimension 'lang' - applicationIdSuffix '.en' - } - cn { - dimension 'lang' - applicationIdSuffix '.cn' - } - } - lintOptions { - checkReleaseBuilds false - } -} - -repositories { - mavenLocal() - mavenCentral() - google() - maven { url 'https://oss.sonatype.org/content/repositories/public/' } -} diff --git a/booster-android-gradle-v3_4/src/integrationTest/resources/buildSrc/build.gradle b/booster-android-gradle-v3_4/src/integrationTest/resources/buildSrc/build.gradle deleted file mode 100644 index 79a9b104a..000000000 --- a/booster-android-gradle-v3_4/src/integrationTest/resources/buildSrc/build.gradle +++ /dev/null @@ -1,24 +0,0 @@ -buildscript { - repositories { - mavenLocal() - mavenCentral() - google() - maven { url 'https://oss.sonatype.org/content/repositories/public/' } - maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } - } -} - -repositories { - mavenLocal() - mavenCentral() - google() - maven { url 'https://oss.sonatype.org/content/repositories/public/' } -} - -dependencies { - implementation "com.android.tools.build:gradle:${project.android_gradle_version}" - implementation("com.didiglobal.booster:booster-android-gradle-api:${project.booster_version}") { - exclude group: 'com.google.guava' - } - implementation "io.bootstage.testkit:testkit-gradle-plugin:1.4.0" -} diff --git a/booster-android-gradle-v3_4/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_4/V34.kt b/booster-android-gradle-v3_4/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_4/V34.kt deleted file mode 100644 index dc1ad351d..000000000 --- a/booster-android-gradle-v3_4/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_4/V34.kt +++ /dev/null @@ -1,255 +0,0 @@ -package com.didiglobal.booster.android.gradle.v3_4 - -import com.android.build.api.artifact.ArtifactType -import com.android.build.api.artifact.BuildArtifactType -import com.android.build.api.transform.Context -import com.android.build.api.transform.QualifiedContent -import com.android.build.gradle.AppPlugin -import com.android.build.gradle.DynamicFeaturePlugin -import com.android.build.gradle.LibraryPlugin -import com.android.build.gradle.api.ApplicationVariant -import com.android.build.gradle.api.BaseVariant -import com.android.build.gradle.api.LibraryVariant -import com.android.build.gradle.internal.api.artifact.SourceArtifactType -import com.android.build.gradle.internal.pipeline.TransformManager -import com.android.build.gradle.internal.pipeline.TransformTask -import com.android.build.gradle.internal.publishing.AndroidArtifacts -import com.android.build.gradle.internal.publishing.AndroidArtifacts.ArtifactScope -import com.android.build.gradle.internal.scope.AnchorOutputType -import com.android.build.gradle.internal.scope.GlobalScope -import com.android.build.gradle.internal.scope.InternalArtifactType -import com.android.build.gradle.internal.scope.VariantScope -import com.android.build.gradle.internal.scope.getOutputDir -import com.android.build.gradle.internal.variant.BaseVariantData -import com.android.builder.core.VariantType -import com.android.builder.model.AndroidProject -import com.android.builder.model.ApiVersion -import com.android.sdklib.BuildToolInfo -import com.didiglobal.booster.gradle.AGPInterface -import org.gradle.api.Project -import org.gradle.api.Task -import org.gradle.api.artifacts.ArtifactCollection -import org.gradle.api.artifacts.component.ComponentIdentifier -import org.gradle.api.artifacts.result.ResolvedArtifactResult -import org.gradle.api.artifacts.result.ResolvedDependencyResult -import org.gradle.api.file.FileCollection -import org.gradle.api.tasks.TaskProvider -import java.io.File -import java.util.TreeMap - -@Suppress("UnstableApiUsage") -private val ARTIFACT_TYPES = arrayOf>( - AnchorOutputType.values(), - BuildArtifactType.values(), - SourceArtifactType.values(), - InternalArtifactType.values() -).flatten().associateBy(ArtifactType::name) - -internal object V34 : AGPInterface { - - @Suppress("UnstableApiUsage") - private fun BaseVariant.getFinalArtifactFiles(type: ArtifactType): FileCollection { - return try { - variantScope.artifacts.getFinalArtifactFiles(type).get() - } catch (e: Throwable) { - project.logger.warn(e.message, e) - project.files() - } - } - - override val scopeFullWithFeatures: MutableSet - get() = TransformManager.SCOPE_FULL_WITH_FEATURES - - override val scopeFullLibraryWithFeatures: MutableSet - get() = (TransformManager.SCOPE_FEATURES + QualifiedContent.Scope.PROJECT).toMutableSet() - - override val BaseVariant.project: Project - get() = globalScope.project - - override val BaseVariant.javaCompilerTaskProvider: TaskProvider - get() = javaCompileProvider - - override val BaseVariant.preBuildTaskProvider: TaskProvider - get() = preBuildProvider - - override val BaseVariant.assembleTaskProvider: TaskProvider - get() = assembleProvider - - override val BaseVariant.mergeAssetsTaskProvider: TaskProvider - get() = mergeAssetsProvider - - override val BaseVariant.mergeResourcesTaskProvider: TaskProvider - get() = mergeResourcesProvider - - override val BaseVariant.mergeNativeLibsTaskProvider: TaskProvider - get() = @Suppress("DEPRECATION") project.tasks.named("transformNativeLibsWithMergeJniLibsFor${name.capitalize()}") - - override val BaseVariant.processJavaResourcesTaskProvider: TaskProvider - get() = processJavaResourcesProvider - - override fun BaseVariant.getTaskName(prefix: String): String { - return variantScope.getTaskName(prefix) - } - - override fun BaseVariant.getTaskName(prefix: String, suffix: String): String { - return variantScope.getTaskName(prefix, suffix) - } - - override val BaseVariant.variantData: BaseVariantData - get() = javaClass.getDeclaredMethod("getVariantData").apply { - isAccessible = true - }.invoke(this) as BaseVariantData - - val BaseVariant.variantScope: VariantScope - get() = variantData.scope - - private val BaseVariant.globalScope: GlobalScope - get() = variantScope.globalScope - - override val BaseVariant.originalApplicationId: String - get() = variantData.variantConfiguration.originalApplicationId - - override val BaseVariant.hasDynamicFeature: Boolean - get() = globalScope.hasDynamicFeatures() - - override val BaseVariant.rawAndroidResources: FileCollection - get() = variantData.allRawAndroidResources - - override val BaseVariant.localAndroidResources: FileCollection - get() = variantData.androidResources.values.map { - it.get() - }.reduce { collection, file -> - collection.plus(file) - } - - override fun BaseVariant.getArtifactCollection( - configType: AndroidArtifacts.ConsumedConfigType, - scope: ArtifactScope, - artifactType: AndroidArtifacts.ArtifactType - ): ArtifactCollection { - return variantScope.getArtifactCollection(configType, scope, artifactType) - } - - override fun BaseVariant.getArtifactFileCollection( - configType: AndroidArtifacts.ConsumedConfigType, - scope: ArtifactScope, - artifactType: AndroidArtifacts.ArtifactType - ): FileCollection { - return variantScope.getArtifactFileCollection(configType, scope, artifactType) - } - - override val BaseVariant.allArtifacts: Map - get() = ARTIFACT_TYPES.entries.associateTo(TreeMap()) { (name, type) -> - val artifacts: FileCollection by lazy { - getFinalArtifactFiles(type) - } - name to artifacts - } - - override val BaseVariant.minSdkVersion: ApiVersion - get() = variantData.variantConfiguration.minSdkVersion.let { minSdkVersion -> - object : ApiVersion { - override fun getApiLevel(): Int = minSdkVersion.apiLevel - override fun getCodename(): String? = minSdkVersion.codename - override fun getApiString(): String = minSdkVersion.apiString - override fun equals(other: Any?): Boolean { - if (this === other) return true - if (other !is ApiVersion) return false - return apiLevel == other.apiLevel || codename.equals(other.codename, false) - } - - override fun hashCode(): Int = codename?.hashCode() ?: apiLevel - } - } - - override val BaseVariant.targetSdkVersion: ApiVersion - get() = variantData.variantConfiguration.targetSdkVersion - - private val BaseVariant.variantType: VariantType - get() = variantScope.type - - override val BaseVariant.isApplication: Boolean - get() = project.plugins.hasPlugin(AppPlugin::class.java) - override val BaseVariant.isLibrary: Boolean - get() = project.plugins.hasPlugin(LibraryPlugin::class.java) - override val BaseVariant.isDynamicFeature: Boolean - get() = project.plugins.hasPlugin(DynamicFeaturePlugin::class.java) - - override val BaseVariant.aar: FileCollection - get() = getFinalArtifactFiles(InternalArtifactType.AAR) - - override val BaseVariant.apk: FileCollection - get() = getFinalArtifactFiles(InternalArtifactType.APK) - - override val BaseVariant.mergedManifests: FileCollection - get() = project.files(File(when (this) { - is ApplicationVariant -> InternalArtifactType.MERGED_MANIFESTS - is LibraryVariant -> InternalArtifactType.LIBRARY_MANIFEST - else -> TODO("Unsupported variant type: $variantType") - }.getOutputDir(project.buildDir), name)) - - override val BaseVariant.mergedRes: FileCollection - get() = getFinalArtifactFiles(InternalArtifactType.MERGED_RES) - - override val BaseVariant.mergedNativeLibs: FileCollection - get() = project.files("build${File.separatorChar}${AndroidProject.FD_INTERMEDIATES}${File.separatorChar}transforms${File.separatorChar}mergeJniLibs${File.separatorChar}$name") - - override val BaseVariant.mergedAssets: FileCollection - get() = getFinalArtifactFiles(when (this) { - is ApplicationVariant -> InternalArtifactType.MERGED_ASSETS - is LibraryVariant -> InternalArtifactType.LIBRARY_ASSETS - else -> TODO("Unsupported variant type: $variantType") - }) - - override val BaseVariant.processedRes: FileCollection - get() = getFinalArtifactFiles(InternalArtifactType.PROCESSED_RES) - - override val BaseVariant.symbolList: FileCollection - get() = getFinalArtifactFiles(InternalArtifactType.SYMBOL_LIST) - - override val BaseVariant.symbolListWithPackageName: FileCollection - get() = getFinalArtifactFiles(InternalArtifactType.SYMBOL_LIST_WITH_PACKAGE_NAME) - - override val BaseVariant.dataBindingDependencyArtifacts: FileCollection - get() = getFinalArtifactFiles(InternalArtifactType.DATA_BINDING_DEPENDENCY_ARTIFACTS) - - override val BaseVariant.allClasses: FileCollection - get() = getFinalArtifactFiles(AnchorOutputType.ALL_CLASSES) - - override val BaseVariant.buildTools: BuildToolInfo - get() = globalScope.androidBuilder.buildToolInfo - - override val BaseVariant.isPrecompileDependenciesResourcesEnabled: Boolean - get() = false - - override fun BaseVariant.getDependencies(transitive: Boolean, filter: (ComponentIdentifier) -> Boolean): Collection { - val all = listOf(AndroidArtifacts.ArtifactType.AAR, AndroidArtifacts.ArtifactType.JAR) - .asSequence() - .map { - getArtifactCollection(AndroidArtifacts.ConsumedConfigType.RUNTIME_CLASSPATH, ArtifactScope.ALL, it).filter { result -> - filter(result.id.componentIdentifier) - } - } - .flatten() - .associateBy { - it.id.componentIdentifier.displayName - } - val result = if (!transitive) { - runtimeConfiguration.incoming.resolutionResult.root.dependencies.filterIsInstance().mapNotNull { - it.selected.id.displayName.takeIf { id -> id in all.keys } - }.associateWith { - all[it]!! - } - } else { - all - } - return result.values.toSet() - } - - override val Context.task: TransformTask - get() = this as TransformTask - - override val Project.aapt2Enabled: Boolean - get() = true - -} diff --git a/booster-android-gradle-v3_5/README.md b/booster-android-gradle-v3_5/README.md deleted file mode 100644 index 77ebfe5ec..000000000 --- a/booster-android-gradle-v3_5/README.md +++ /dev/null @@ -1,6 +0,0 @@ -# booster-android-gradle-v3_5 - -This module is an implementation of [booster-android-gradle-api](../booster-android-gradle-api) for Android gradle plugin above 3.5. - -本模块是 [booster-android-gradle-api](../booster-android-gradle-api) 针对 Android gradle plugin 3.5 以上版本的实现。 - diff --git a/booster-android-gradle-v3_5/build.gradle b/booster-android-gradle-v3_5/build.gradle deleted file mode 100644 index 4084399d0..000000000 --- a/booster-android-gradle-v3_5/build.gradle +++ /dev/null @@ -1,19 +0,0 @@ -apply plugin: 'java-gradle-plugin' - -apply from: "$rootDir/gradle/booster.gradle" -apply from: "$rootDir/gradle/integration-test.gradle" -apply from: "$rootDir/gradle/functional-test.gradle" - -dependencies { - kapt 'com.google.auto.service:auto-service:1.0' - api 'com.google.auto.service:auto-service:1.0' - api project(':booster-android-gradle-compat') - compileOnly 'com.android.tools.build:gradle:3.5.0' - testImplementation 'com.android.tools.build:gradle:3.5.0' - testImplementation 'io.bootstage.testkit:testkit-gradle-plugin:1.4.0' - testImplementation project(':booster-build') -} - -gradlePlugin { - testSourceSets sourceSets.functionalTest, sourceSets.integrationTest -} \ No newline at end of file diff --git a/booster-android-gradle-v3_5/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_5/V35IntegrationTest.kt b/booster-android-gradle-v3_5/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_5/V35IntegrationTest.kt deleted file mode 100644 index dd19ade8e..000000000 --- a/booster-android-gradle-v3_5/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_5/V35IntegrationTest.kt +++ /dev/null @@ -1,476 +0,0 @@ -@file:Suppress("DEPRECATION") - -package com.didiglobal.booster.android.gradle.v3_5 - -import com.android.build.gradle.AppExtension -import com.android.build.gradle.BaseExtension -import com.android.build.gradle.LibraryExtension -import com.android.build.gradle.api.BaseVariant -import com.android.sdklib.BuildToolInfo -import com.didiglobal.booster.gradle.AGP -import com.didiglobal.booster.gradle.getAndroid -import com.didiglobal.booster.kotlinx.search -import io.bootstage.testkit.gradle.Case -import io.bootstage.testkit.gradle.TestCase -import io.bootstage.testkit.gradle.VariantTestCase -import io.bootstage.testkit.gradle.rules.GradleExecutor -import io.bootstage.testkit.gradle.rules.LocalProperties -import io.bootstage.testkit.gradle.rules.copyFromResource -import io.bootstage.testkit.gradle.rules.rule -import org.gradle.api.Project -import org.junit.Before -import org.junit.Rule -import org.junit.rules.TemporaryFolder -import org.junit.rules.TestRule -import java.io.File -import kotlin.test.Test -import kotlin.test.assertEquals -import kotlin.test.assertFalse -import kotlin.test.assertNotNull -import kotlin.test.assertTrue -import kotlin.test.fail - -private val MIN_SDK_VERSION = System.getProperty("android.minsdk.version").toInt() - -private const val TARGET_SDK_VERSION = 26 - -private val ARGS = System.getProperty("gradle.args").split("\\s+".toRegex()) + listOf( - "-Pbooster_version=${Build.VERSION}", - "-Pandroid_gradle_version=3.5.0", - "-Pcompile_sdk_version=28", - "-Pbuild_tools_version=26.0.3", - "-Pmin_sdk_version=${MIN_SDK_VERSION}", - "-Ptarget_sdk_version=${TARGET_SDK_VERSION}", -) - -@Suppress("RemoveCurlyBracesFromTemplate", "FunctionName") -abstract class V35IntegrationTest(private val isLib: Boolean) { - - private val projectDir = TemporaryFolder() - - @get:Rule - val ruleChain: TestRule = rule(projectDir) { - rule(LocalProperties(projectDir::getRoot)) { - GradleExecutor(projectDir::getRoot, "5.4.1", *ARGS.toTypedArray()) - } - } - - @Before - fun setup() { - projectDir.copyFromResource("${if (isLib) "lib" else "app"}.gradle", "build.gradle") - projectDir.copyFromResource("buildSrc") - projectDir.copyFromResource("src") - projectDir.newFile("gradle.properties").writeText("org.gradle.jvmargs=-Xmx4g -XX:MaxMetaspaceSize=2g") - assertEquals(3, AGP.revision.major) - assertEquals(5, AGP.revision.minor) - } - - @Test - @Case(ScopeFullWithFeaturesTest::class) - fun `test AGPInterface#scopeFullWithFeatures`() = Unit - - @Test - @Case(ScopeFullLibraryWithFeaturesTest::class) - fun `test AGPInterface#scopeFullLibraryWithFeatures`() = Unit - - @Test - @Case(ProjectTest::class) - fun `test AGPInterface#project`() = Unit - - @Test - @Case(JavaCompilerTaskTestUnit::class) - fun `test AGPInterface#javaCompilerTask`() = Unit - - @Test - @Case(PreBuildTaskTestUnit::class) - fun `test AGPInterface#preBuildTask`() = Unit - - @Test - @Case(AssembleTaskTestUnit::class) - fun `test AGPInterface#assembleTask`() = Unit - - @Test - @Case(MergeAssetsTaskTestUnit::class) - fun `test AGPInterface#mergeAssetsTask`() = Unit - - @Test - @Case(MergeResourcesTaskTestUnit::class) - fun `test AGPInterface#mergeResources`() = Unit - - @Test - @Case(GetTaskNameTestUnit::class) - fun `test AGPInterface#getTaskName(String)`() = Unit - - @Test - @Case(GetTaskName2TestUnit::class) - fun `test AGPInterface#getTaskName(String, String)`() = Unit - - @Test - @Case(VariantDataTestUnit::class) - fun `test AGPInterface#variantData`() = Unit - - @Test - @Case(OriginalApplicationIdTestUnit::class) - fun `test AGPInterface#originalApplicationId`() = Unit - - @Test - @Case(HasDynamicFeatureTestUnit::class) - fun `test AGPInterface#hasDynamicFeature`() = Unit - - @Test - @Case(RawAndroidResourcesTestUnit::class) - fun `test AGPInterface#rawAndroidResources`() = Unit - - @Test - @Case(AllArtifactsTestUnit::class) - fun `test AGPInterface#allArtifacts`() = Unit - - @Test - @Case(MinSdkVersionTestUnit::class) - fun `test AGPInterface#minSdkVersion`() = Unit - - @Test - @Case(TargetSdkVersionTestUnit::class) - fun `test AGPInterface#targetSdkVersion`() = Unit - - @Test - @Case(AarTestUnit::class) - fun `test AGPInterface#aar`() = Unit - - @Test - @Case(ApkTestUnit::class) - fun `test AGPInterface#apk`() = Unit - - @Test - @Case(MergedManifestsTestUnit::class) - fun `test AGPInterface#mergedManifests`() = Unit - - @Test - @Case(MergedResourcesTestUnit::class) - fun `test AGPInterface#mergedRes`() = Unit - - @Test - @Case(MergedAssetsTestUnit::class) - fun `test AGPInterface#mergedAssets`() = Unit - - @Test - @Case(ProcessedResTestUnit::class) - fun `test AGPInterface#processedRes`() = Unit - - @Test - @Case(SymbolListTestUnit::class) - fun `test AGPInterface#symbolList`() = Unit - - @Test - @Case(SymbolListWithPackageNameTestUnit::class) - fun `test AGPInterface#symbolListWithPackageName`() = Unit - - @Test - @Case(AllClassesTestUnit::class) - fun `test AGPInterface#allClasses`() = Unit - - @Test - @Case(BuildToolsTestUnit::class) - fun `test AGPInterface#buildTools`() = Unit - -} - -class V35AppIntegrationTest : V35IntegrationTest(false) - -class V35LibIntegrationTest : V35IntegrationTest(true) - -class ScopeFullWithFeaturesTest : TestCase { - override fun apply(project: Project) { - assertEquals("PROJECT,SUB_PROJECTS,EXTERNAL_LIBRARIES,FEATURES", AGP.scopeFullWithFeatures.joinToString(",")) - } -} - -class ScopeFullLibraryWithFeaturesTest : TestCase { - override fun apply(project: Project) { - assertEquals("FEATURES,PROJECT", AGP.scopeFullLibraryWithFeatures.joinToString(",")) - } -} - -class ProjectTest : TestCase { - override fun apply(project: Project) { - val assert: (BaseVariant) -> Unit = { variant -> - assertEquals(project, AGP.run { variant.project }) - } - project.afterEvaluate { - when (val android = project.getAndroid()) { - is AppExtension -> android.applicationVariants.forEach(assert) - is LibraryExtension -> android.libraryVariants.forEach(assert) - } - } - } -} - -class JavaCompilerTaskTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.javaCompilerTask }) - } -} - -class PreBuildTaskTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.preBuildTask }) - } -} - -class AssembleTaskTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.assembleTask }) - } -} - -class MergeAssetsTaskTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.mergeAssetsTask }) - } -} - -class MergeResourcesTaskTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.mergeResourcesTask }) - } -} - -class GetTaskNameTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertEquals("assemble${variant.name.capitalize()}", AGP.run { variant.getTaskName("assemble") }) - } -} - - -class GetTaskName2TestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertEquals("merge${variant.name.capitalize()}Resources", AGP.run { variant.getTaskName("merge", "Resources") }) - } -} - -class VariantDataTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.variantData }) - } -} - -class OriginalApplicationIdTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.originalApplicationId }) - } -} - -class HasDynamicFeatureTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertFalse(AGP.run { variant.hasDynamicFeature }) - } -} - -class RawAndroidResourcesTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val rawAndroidResources = AGP.run { variant.rawAndroidResources } - assertNotNull(rawAndroidResources) - if (rawAndroidResources.isEmpty) { - fail("rawAndroidResources is empty") - } - rawAndroidResources.forEach { - println(" - ${it.path}") - } - } - } -} - -class AllArtifactsTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val allArtifacts = AGP.run { variant.allArtifacts } - assertNotNull(allArtifacts) - if (allArtifacts.isEmpty()) { - fail("allArtifacts is empty") - } - allArtifacts.forEach { (k, v) -> - println(" - $k => $v") - } - } - } -} - -class MinSdkVersionTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - val minSdkVersion = AGP.run { variant.minSdkVersion } - assertNotNull(minSdkVersion) - assertEquals(MIN_SDK_VERSION, minSdkVersion.apiLevel) - } -} - -class TargetSdkVersionTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - val targetSdkVersion = AGP.run { variant.targetSdkVersion } - assertNotNull(targetSdkVersion) - assertEquals(TARGET_SDK_VERSION, targetSdkVersion.apiLevel) - } -} - -class AarTestUnit : VariantTestCase() { - override fun apply(project: Project) { - if (project.plugins.hasPlugin("com.android.library")) { - super.apply(project) - } - } - - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val aar = AGP.run { variant.aar }.search { - it.extension == "aar" - } - if (aar.isEmpty()) { - fail("aar is empty") - } - aar.forEach { - println(" - ${it.path}") - } - } - } -} - -class ApkTestUnit : VariantTestCase() { - override fun apply(project: Project) { - if (project.plugins.hasPlugin("com.android.application")) { - super.apply(project) - } - } - - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val apk = AGP.run { variant.apk }.search { - it.extension == "apk" - } - if (apk.isEmpty()) { - fail("apk is empty") - } - apk.forEach { - println(" - ${it.path}") - } - } - } -} - -class MergedManifestsTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val mergedManifests = AGP.run { variant.mergedManifests }.search { - it.name == "AndroidManifest.xml" - } - if (mergedManifests.isEmpty()) { - fail("mergedManifests is empty") - } - mergedManifests.forEach { - println(" - ${it.path}") - } - } - } -} - -class MergedResourcesTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val mergedResources = AGP.run { variant.mergedRes } - if (mergedResources.isEmpty) { - fail("mergedRes is empty") - } - mergedResources.forEach { - println(" - ${it.path}") - } - } - } -} - -class MergedAssetsTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doLast { - val mergedAssets = AGP.run { variant.mergedAssets } - println(mergedAssets) - if (mergedAssets.isEmpty) { - fail("mergedAssets is empty") - } - mergedAssets.forEach { - println(" - ${it.path}") - } - } - } -} - -class ProcessedResTestUnit : VariantTestCase() { - override fun apply(project: Project) { - if (project.plugins.hasPlugin("com.android.application")) { - super.apply(project) - } - } - - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val processedRes = AGP.run { variant.processedRes }.search { - it.extension == "ap_" - } - if (processedRes.isEmpty()) { - fail("processedRes is empty") - } - processedRes.forEach { - println(" - ${it.path}") - } - } - } -} - -class SymbolListTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val symbolList = AGP.run { variant.symbolList } - if (symbolList.isEmpty) { - fail("symbolList is empty") - } - symbolList.forEach { - println(" - ${it.path}") - } - } - } -} - -class SymbolListWithPackageNameTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val symbolListWithPackageName = AGP.run { variant.symbolListWithPackageName } - if (symbolListWithPackageName.isEmpty) { - fail("symbolListWithPackageName is empty") - } - symbolListWithPackageName.forEach { - println(" - ${it.path}") - } - } - } -} - -class AllClassesTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val location = AGP.run { variant.allClasses }.files - assertTrue("ALL_CLASSES: $location", location::isNotEmpty) - assertTrue("No class file found at $location") { - location.search(File::isFile).isNotEmpty() - } - } - } -} - -class BuildToolsTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - val buildTools = AGP.run { variant.buildTools } - assertNotNull(buildTools) - BuildToolInfo.PathId.values().map { - it.name to buildTools.getPath(it) - }.forEach { (k, v) -> - println(" - $k => $v") - } - } -} diff --git a/booster-android-gradle-v3_5/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_5/V35.kt b/booster-android-gradle-v3_5/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_5/V35.kt deleted file mode 100644 index 23515ab6c..000000000 --- a/booster-android-gradle-v3_5/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_5/V35.kt +++ /dev/null @@ -1,254 +0,0 @@ -package com.didiglobal.booster.android.gradle.v3_5 - -import com.android.build.api.artifact.ArtifactType -import com.android.build.api.artifact.BuildArtifactType -import com.android.build.api.transform.Context -import com.android.build.api.transform.QualifiedContent -import com.android.build.gradle.api.ApplicationVariant -import com.android.build.gradle.api.BaseVariant -import com.android.build.gradle.api.LibraryVariant -import com.android.build.gradle.internal.api.artifact.SourceArtifactType -import com.android.build.gradle.internal.pipeline.TransformManager -import com.android.build.gradle.internal.pipeline.TransformTask -import com.android.build.gradle.internal.publishing.AndroidArtifacts -import com.android.build.gradle.internal.scope.AnchorOutputType -import com.android.build.gradle.internal.scope.GlobalScope -import com.android.build.gradle.internal.scope.InternalArtifactType -import com.android.build.gradle.internal.scope.VariantScope -import com.android.build.gradle.internal.scope.getOutputDir -import com.android.build.gradle.internal.variant.BaseVariantData -import com.android.builder.core.DefaultApiVersion -import com.android.builder.core.VariantType -import com.android.builder.model.ApiVersion -import com.android.sdklib.BuildToolInfo -import com.didiglobal.booster.gradle.AGPInterface -import org.gradle.api.Project -import org.gradle.api.Task -import org.gradle.api.artifacts.ArtifactCollection -import org.gradle.api.artifacts.component.ComponentIdentifier -import org.gradle.api.artifacts.result.ResolvedArtifactResult -import org.gradle.api.artifacts.result.ResolvedDependencyResult -import org.gradle.api.file.FileCollection -import org.gradle.api.tasks.TaskProvider -import java.io.File -import java.util.TreeMap - -@Suppress("UnstableApiUsage") -private val ARTIFACT_TYPES = arrayOf>( - AnchorOutputType.values(), - BuildArtifactType.values(), - SourceArtifactType.values(), - InternalArtifactType.values() -).flatten().associateBy(ArtifactType::name) - -internal object V35 : AGPInterface { - - @Suppress("UnstableApiUsage") - private fun BaseVariant.getFinalArtifactFiles(type: ArtifactType): FileCollection { - return try { - project.objects.fileCollection().from(variantScope.artifacts.getFinalArtifactFiles(type)) - } catch (e: Throwable) { - project.logger.warn(e.message, e) - project.objects.fileCollection().builtBy(variantScope.artifacts.getFinalArtifactFiles(type)) - } - } - - override val scopeFullWithFeatures: MutableSet - get() = TransformManager.SCOPE_FULL_WITH_FEATURES - - override val scopeFullLibraryWithFeatures: MutableSet - get() = (TransformManager.SCOPE_FEATURES + QualifiedContent.Scope.PROJECT).toMutableSet() - - override val BaseVariant.project: Project - get() = globalScope.project - - override val BaseVariant.javaCompilerTaskProvider: TaskProvider - get() = javaCompileProvider - - override val BaseVariant.preBuildTaskProvider: TaskProvider - get() = preBuildProvider - - override val BaseVariant.assembleTaskProvider: TaskProvider - get() = assembleProvider - - override val BaseVariant.mergeAssetsTaskProvider: TaskProvider - get() = mergeAssetsProvider - - override val BaseVariant.mergeResourcesTaskProvider: TaskProvider - get() = mergeResourcesProvider - - override val BaseVariant.mergeNativeLibsTaskProvider: TaskProvider - get() = project.tasks.named(getTaskName("merge", "NativeLibs")) - - - override val BaseVariant.processJavaResourcesTaskProvider: TaskProvider - get() = processJavaResourcesProvider - - override fun BaseVariant.getTaskName(prefix: String): String { - return variantScope.getTaskName(prefix) - } - - override fun BaseVariant.getTaskName(prefix: String, suffix: String): String { - return variantScope.getTaskName(prefix, suffix) - } - - override val BaseVariant.variantData: BaseVariantData - get() = javaClass.getDeclaredMethod("getVariantData").apply { - isAccessible = true - }.invoke(this) as BaseVariantData - - val BaseVariant.variantScope: VariantScope - get() = variantData.scope - - private val BaseVariant.globalScope: GlobalScope - get() = variantScope.globalScope - - override val BaseVariant.originalApplicationId: String - get() = variantData.variantConfiguration.originalApplicationId - - override val BaseVariant.hasDynamicFeature: Boolean - get() = globalScope.hasDynamicFeatures() - - override val BaseVariant.rawAndroidResources: FileCollection - get() = variantData.allRawAndroidResources - - override val BaseVariant.localAndroidResources: FileCollection - get() = variantData.androidResources.values.map { - it.get() - }.reduce { collection, file -> - collection.plus(file) - } - - override fun BaseVariant.getArtifactCollection( - configType: AndroidArtifacts.ConsumedConfigType, - scope: AndroidArtifacts.ArtifactScope, - artifactType: AndroidArtifacts.ArtifactType - ): ArtifactCollection { - return variantScope.getArtifactCollection(configType, scope, artifactType) - } - - override fun BaseVariant.getArtifactFileCollection( - configType: AndroidArtifacts.ConsumedConfigType, - scope: AndroidArtifacts.ArtifactScope, - artifactType: AndroidArtifacts.ArtifactType - ): FileCollection { - return variantScope.getArtifactFileCollection(configType, scope, artifactType) - } - - @Suppress("UnstableApiUsage") - override val BaseVariant.allArtifacts: Map - get() = ARTIFACT_TYPES.entries.associateTo(TreeMap()) { (name, type) -> - val artifacts: FileCollection by lazy { - when (type) { - InternalArtifactType.MERGED_MANIFESTS, - InternalArtifactType.LIBRARY_MANIFEST -> { - project.files(File(type.getOutputDir(globalScope.buildDir), name)) - } - InternalArtifactType.LIBRARY_ASSETS, - InternalArtifactType.MERGED_ASSETS -> { - project.files(File(type.getOutputDir(globalScope.buildDir), "out")) - } - else -> getFinalArtifactFiles(type) - } - } - name to artifacts - } - - override val BaseVariant.minSdkVersion: ApiVersion - get() = DefaultApiVersion(variantData.variantConfiguration.minSdkVersion.apiLevel) - - override val BaseVariant.targetSdkVersion: ApiVersion - get() = variantData.variantConfiguration.targetSdkVersion - - private val BaseVariant.variantType: VariantType - get() = variantScope.type - - override val BaseVariant.isApplication: Boolean - get() = variantType.isApk - - override val BaseVariant.isLibrary: Boolean - get() = variantType.isAar - - override val BaseVariant.isDynamicFeature: Boolean - get() = variantType.isDynamicFeature - - override val BaseVariant.aar: FileCollection - get() = getFinalArtifactFiles(InternalArtifactType.AAR) - - override val BaseVariant.apk: FileCollection - get() = getFinalArtifactFiles(InternalArtifactType.APK) - - @Suppress("UnstableApiUsage") - override val BaseVariant.mergedManifests: FileCollection - get() = project.files(File(when (this) { - is ApplicationVariant -> InternalArtifactType.MERGED_MANIFESTS - is LibraryVariant -> InternalArtifactType.LIBRARY_MANIFEST - else -> TODO("Unsupported variant type: $variantType") - }.getOutputDir(globalScope.buildDir), name)) - - override val BaseVariant.mergedRes: FileCollection - get() = getFinalArtifactFiles(InternalArtifactType.MERGED_RES) - - override val BaseVariant.mergedNativeLibs: FileCollection - get() = getFinalArtifactFiles(InternalArtifactType.MERGED_NATIVE_LIBS) - - @Suppress("UnstableApiUsage") - override val BaseVariant.mergedAssets: FileCollection - get() = project.files(File(when (this) { - is ApplicationVariant -> InternalArtifactType.MERGED_ASSETS - is LibraryVariant -> InternalArtifactType.LIBRARY_ASSETS - else -> TODO("Unsupported variant type: $variantType") - }.getOutputDir(globalScope.buildDir), "out")) - - override val BaseVariant.processedRes: FileCollection - get() = getFinalArtifactFiles(InternalArtifactType.PROCESSED_RES) - - override val BaseVariant.symbolList: FileCollection - get() = getFinalArtifactFiles(InternalArtifactType.SYMBOL_LIST) - - override val BaseVariant.symbolListWithPackageName: FileCollection - get() = getFinalArtifactFiles(InternalArtifactType.SYMBOL_LIST_WITH_PACKAGE_NAME) - - override val BaseVariant.dataBindingDependencyArtifacts: FileCollection - get() = getFinalArtifactFiles(InternalArtifactType.DATA_BINDING_DEPENDENCY_ARTIFACTS) - - override val BaseVariant.allClasses: FileCollection - get() = getFinalArtifactFiles(AnchorOutputType.ALL_CLASSES) - - override val BaseVariant.buildTools: BuildToolInfo - get() = globalScope.sdkComponents.buildToolInfoProvider.get() - - override val BaseVariant.isPrecompileDependenciesResourcesEnabled: Boolean - get() = false - - override fun BaseVariant.getDependencies(transitive: Boolean, filter: (ComponentIdentifier) -> Boolean): Collection { - val all = listOf(AndroidArtifacts.ArtifactType.AAR, AndroidArtifacts.ArtifactType.JAR) - .asSequence() - .map { - getArtifactCollection(AndroidArtifacts.ConsumedConfigType.RUNTIME_CLASSPATH, AndroidArtifacts.ArtifactScope.ALL, it).filter { result -> - filter(result.id.componentIdentifier) - } - } - .flatten() - .associateBy { - it.id.componentIdentifier.displayName - } - val result = if (!transitive) { - runtimeConfiguration.incoming.resolutionResult.root.dependencies.filterIsInstance().mapNotNull { - it.selected.id.displayName.takeIf { id -> id in all.keys } - }.associateWith { - all[it]!! - } - } else { - all - } - return result.values.toSet() - } - - override val Context.task: TransformTask - get() = this as TransformTask - - override val Project.aapt2Enabled: Boolean - get() = true - -} diff --git a/booster-android-gradle-v3_6/README.md b/booster-android-gradle-v3_6/README.md deleted file mode 100644 index 0858da90e..000000000 --- a/booster-android-gradle-v3_6/README.md +++ /dev/null @@ -1,6 +0,0 @@ -# booster-android-gradle-v3_6 - -This module is an implementation of [booster-android-gradle-api](../booster-android-gradle-api) for Android gradle plugin above 3.6. - -本模块是 [booster-android-gradle-api](../booster-android-gradle-api) 针对 Android gradle plugin 3.6 以上版本的实现。 - diff --git a/booster-android-gradle-v3_6/build.gradle b/booster-android-gradle-v3_6/build.gradle deleted file mode 100644 index fea47241c..000000000 --- a/booster-android-gradle-v3_6/build.gradle +++ /dev/null @@ -1,19 +0,0 @@ -apply plugin: 'java-gradle-plugin' - -apply from: "$rootDir/gradle/booster.gradle" -apply from: "$rootDir/gradle/integration-test.gradle" -apply from: "$rootDir/gradle/functional-test.gradle" - -dependencies { - kapt 'com.google.auto.service:auto-service:1.0' - api 'com.google.auto.service:auto-service:1.0' - api project(':booster-android-gradle-compat') - compileOnly 'com.android.tools.build:gradle:3.6.0' - testImplementation 'com.android.tools.build:gradle:3.6.0' - testImplementation 'io.bootstage.testkit:testkit-gradle-plugin:1.4.0' - testImplementation project(':booster-build') -} - -gradlePlugin { - testSourceSets sourceSets.functionalTest, sourceSets.integrationTest -} diff --git a/booster-android-gradle-v3_6/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_6/V36IntegrationTest.kt b/booster-android-gradle-v3_6/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_6/V36IntegrationTest.kt deleted file mode 100644 index 135cb3b14..000000000 --- a/booster-android-gradle-v3_6/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v3_6/V36IntegrationTest.kt +++ /dev/null @@ -1,479 +0,0 @@ -@file:Suppress("DEPRECATION") - -package com.didiglobal.booster.android.gradle.v3_6 - -import com.android.build.gradle.AppExtension -import com.android.build.gradle.BaseExtension -import com.android.build.gradle.LibraryExtension -import com.android.build.gradle.api.BaseVariant -import com.android.sdklib.BuildToolInfo -import com.didiglobal.booster.gradle.AGP -import com.didiglobal.booster.gradle.getAndroid -import com.didiglobal.booster.kotlinx.search -import io.bootstage.testkit.gradle.Case -import io.bootstage.testkit.gradle.TestCase -import io.bootstage.testkit.gradle.VariantTestCase -import io.bootstage.testkit.gradle.rules.GradleExecutor -import io.bootstage.testkit.gradle.rules.LocalProperties -import io.bootstage.testkit.gradle.rules.copyFromResource -import io.bootstage.testkit.gradle.rules.rule -import org.gradle.api.Project -import org.junit.Before -import org.junit.Rule -import org.junit.rules.TemporaryFolder -import org.junit.rules.TestRule -import java.io.File -import kotlin.test.Test -import kotlin.test.assertEquals -import kotlin.test.assertFalse -import kotlin.test.assertNotNull -import kotlin.test.assertTrue -import kotlin.test.fail - -private val MIN_SDK_VERSION = System.getProperty("android.minsdk.version").toInt() - -private const val TARGET_SDK_VERSION = 26 - -private val ARGS = System.getProperty("gradle.args").split("\\s+".toRegex()) + listOf( - "-Pbooster_version=${Build.VERSION}", - "-Pandroid_gradle_version=3.6.0", - "-Pcompile_sdk_version=28", - "-Pbuild_tools_version=26.0.3", - "-Pmin_sdk_version=${MIN_SDK_VERSION}", - "-Ptarget_sdk_version=${TARGET_SDK_VERSION}" -) - -@Suppress("RemoveCurlyBracesFromTemplate", "FunctionName") -abstract class V36IntegrationTest(private val isLib: Boolean) { - - private val projectDir = TemporaryFolder() - - @get:Rule - val ruleChain: TestRule = rule(projectDir) { - rule(LocalProperties(projectDir::getRoot)) { - GradleExecutor(projectDir::getRoot, "5.6.4", *ARGS.toTypedArray()) - } - } - - @Before - fun setup() { - projectDir.copyFromResource("${if (isLib) "lib" else "app"}.gradle", "build.gradle") - projectDir.copyFromResource("buildSrc") - projectDir.copyFromResource("src") - projectDir.newFile("gradle.properties").writeText("org.gradle.jvmargs=-Xmx4g -XX:MaxMetaspaceSize=2g") - assertEquals(3, AGP.revision.major) - assertEquals(6, AGP.revision.minor) - } - - @Test - @Case(ScopeFullWithFeaturesTest::class) - fun `test AGPInterface#scopeFullWithFeatures`() = Unit - - @Test - @Case(ScopeFullLibraryWithFeaturesTest::class) - fun `test AGPInterface#scopeFullLibraryWithFeatures`() = Unit - - @Test - @Case(ProjectTest::class) - fun `test AGPInterface#project`() = Unit - - @Test - @Case(JavaCompilerTaskTestUnit::class) - fun `test AGPInterface#javaCompilerTask`() = Unit - - @Test - @Case(PreBuildTaskTestUnit::class) - fun `test AGPInterface#preBuildTask`() = Unit - - @Test - @Case(AssembleTaskTestUnit::class) - fun `test AGPInterface#assembleTask`() = Unit - - @Test - @Case(MergeAssetsTaskTestUnit::class) - fun `test AGPInterface#mergeAssetsTask`() = Unit - - @Test - @Case(MergeResourcesTaskTestUnit::class) - fun `test AGPInterface#mergeResources`() = Unit - - @Test - @Case(GetTaskNameTestUnit::class) - fun `test AGPInterface#getTaskName(String)`() = Unit - - @Test - @Case(GetTaskName2TestUnit::class) - fun `test AGPInterface#getTaskName(String, String)`() = Unit - - @Test - @Case(VariantDataTestUnit::class) - fun `test AGPInterface#variantData`() = Unit - - @Test - @Case(OriginalApplicationIdTestUnit::class) - fun `test AGPInterface#originalApplicationId`() = Unit - - @Test - @Case(HasDynamicFeatureTestUnit::class) - fun `test AGPInterface#hasDynamicFeature`() = Unit - - @Test - @Case(RawAndroidResourcesTestUnit::class) - fun `test AGPInterface#rawAndroidResources`() = Unit - - @Test - @Case(AllArtifactsTestUnit::class) - fun `test AGPInterface#allArtifacts`() = Unit - - @Test - @Case(MinSdkVersionTestUnit::class) - fun `test AGPInterface#minSdkVersion`() = Unit - - @Test - @Case(TargetSdkVersionTestUnit::class) - fun `test AGPInterface#targetSdkVersion`() = Unit - - @Test - @Case(AarTestUnit::class) - fun `test AGPInterface#aar`() = Unit - - @Test - @Case(ApkTestUnit::class) - fun `test AGPInterface#apk`() = Unit - - @Test - @Case(MergedManifestsTestUnit::class) - fun `test AGPInterface#mergedManifests`() = Unit - - @Test - @Case(MergedResourcesTestUnit::class) - fun `test AGPInterface#mergedRes`() = Unit - - @Test - @Case(MergedAssetsTestUnit::class) - fun `test AGPInterface#mergedAssets`() = Unit - - @Test - @Case(ProcessedResTestUnit::class) - fun `test AGPInterface#processedRes`() = Unit - - @Test - @Case(SymbolListTestUnit::class) - fun `test AGPInterface#symbolList`() = Unit - - @Test - @Case(SymbolListWithPackageNameTestUnit::class) - fun `test AGPInterface#symbolListWithPackageName`() = Unit - - @Test - @Case(AllClassesTestUnit::class) - fun `test AGPInterface#allClasses`() = Unit - - @Test - @Case(BuildToolsTestUnit::class) - fun `test AGPInterface#buildTools`() = Unit - -} - -class V36AppIntegrationTest : V36IntegrationTest(false) - -class V36LibIntegrationTest : V36IntegrationTest(true) - -class ScopeFullWithFeaturesTest : TestCase { - override fun apply(project: Project) { - assertEquals("PROJECT,SUB_PROJECTS,EXTERNAL_LIBRARIES,FEATURES", AGP.scopeFullWithFeatures.joinToString(",")) - } -} - -class ScopeFullLibraryWithFeaturesTest : TestCase { - override fun apply(project: Project) { - assertEquals("FEATURES,PROJECT", AGP.scopeFullLibraryWithFeatures.joinToString(",")) - } -} - -class ProjectTest : TestCase { - override fun apply(project: Project) { - val assert: (BaseVariant) -> Unit = { variant -> - assertEquals(project, AGP.run { variant.project }) - } - project.afterEvaluate { - when (val android = project.getAndroid()) { - is AppExtension -> android.applicationVariants.forEach(assert) - is LibraryExtension -> android.libraryVariants.forEach(assert) - } - } - } -} - -class JavaCompilerTaskTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.javaCompilerTask }) - } -} - -class PreBuildTaskTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.preBuildTask }) - } -} - -class AssembleTaskTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.assembleTask }) - } -} - -class MergeAssetsTaskTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.mergeAssetsTask }) - } -} - -class MergeResourcesTaskTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.mergeResourcesTask }) - } -} - -class GetTaskNameTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertEquals("assemble${variant.name.capitalize()}", AGP.run { variant.getTaskName("assemble") }) - } -} - - -class GetTaskName2TestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertEquals("merge${variant.name.capitalize()}Resources", AGP.run { variant.getTaskName("merge", "Resources") }) - } -} - -class VariantDataTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.variantData }) - } -} - -class OriginalApplicationIdTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.originalApplicationId }) - } -} - -class HasDynamicFeatureTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertFalse(AGP.run { variant.hasDynamicFeature }) - } -} - -class RawAndroidResourcesTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val rawAndroidResources = AGP.run { variant.rawAndroidResources } - assertNotNull(rawAndroidResources) - if (rawAndroidResources.isEmpty) { - fail("rawAndroidResources is empty") - } - rawAndroidResources.forEach { - println(" - ${it.path}") - } - } - } -} - -class AllArtifactsTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val allArtifacts = AGP.run { variant.allArtifacts } - assertNotNull(allArtifacts) - if (allArtifacts.isEmpty()) { - fail("allArtifacts is empty") - } - allArtifacts.forEach { (k, v) -> - println(" - $k => $v") - } - } - } -} - -class MinSdkVersionTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - val minSdkVersion = AGP.run { variant.minSdkVersion } - assertNotNull(minSdkVersion) - assertEquals(MIN_SDK_VERSION, minSdkVersion.apiLevel) - } -} - -class TargetSdkVersionTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - val targetSdkVersion = AGP.run { variant.targetSdkVersion } - assertNotNull(targetSdkVersion) - assertEquals(TARGET_SDK_VERSION, targetSdkVersion.apiLevel) - } -} - -class AarTestUnit : VariantTestCase() { - override fun apply(project: Project) { - if (project.plugins.hasPlugin("com.android.library")) { - super.apply(project) - } - } - - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val location = AGP.run { variant.aar }.files - assertTrue("AAR: $location", location::isNotEmpty) - assertTrue("No aar found at $location") { - location.search { - it.extension == "aar" - }.isNotEmpty() - } - } - } -} - -class ApkTestUnit : VariantTestCase() { - override fun apply(project: Project) { - if (project.plugins.hasPlugin("com.android.application")) { - super.apply(project) - } - } - - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val apk = AGP.run { variant.apk }.search { - it.extension == "apk" - } - if (apk.isEmpty()) { - fail("apk is empty") - } - apk.forEach { - println(" - ${it.path}") - } - } - } -} - -class MergedManifestsTestUnit : VariantTestCase() { - override fun apply(project: Project) { - if (project.plugins.hasPlugin("com.android.application")) { - super.apply(project) - } - } - - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val mergedManifests = AGP.run { variant.mergedManifests }.search { - it.name == "AndroidManifest.xml" - } - if (mergedManifests.isEmpty()) { - fail("mergedManifests is empty") - } - mergedManifests.forEach { - println(" - ${it.path}") - } - } - } -} - -class MergedResourcesTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val mergedResources = AGP.run { variant.mergedRes } - if (mergedResources.isEmpty) { - fail("mergedRes is empty") - } - mergedResources.forEach { - println(" - ${it.path}") - } - } - } -} - -class MergedAssetsTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val mergedAssets = AGP.run { variant.mergedAssets } - if (mergedAssets.isEmpty) { - fail("mergedAssets is empty") - } - mergedAssets.forEach { - println(" - ${it.path}") - } - } - } -} - -class ProcessedResTestUnit : VariantTestCase() { - override fun apply(project: Project) { - if (project.plugins.hasPlugin("com.android.application")) { - super.apply(project) - } - } - - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val processedRes = AGP.run { variant.processedRes }.search { - it.extension == "ap_" - } - if (processedRes.isEmpty()) { - fail("processedRes is empty") - } - processedRes.forEach { - println(" - ${it.path}") - } - } - } -} - -class SymbolListTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val symbolList = AGP.run { variant.symbolList } - if (symbolList.isEmpty) { - fail("symbolList is empty") - } - symbolList.forEach { - println(" - ${it.path}") - } - } - } -} - -class SymbolListWithPackageNameTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val symbolListWithPackageName = AGP.run { variant.symbolListWithPackageName } - if (symbolListWithPackageName.isEmpty) { - fail("symbolListWithPackageName is empty") - } - symbolListWithPackageName.forEach { - println(" - ${it.path}") - } - } - } -} - -class AllClassesTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val location = AGP.run { variant.allClasses }.files - assertTrue("ALL_CLASSES: $location", location::isNotEmpty) - assertTrue("No class file found at $location") { - location.search(File::isFile).isNotEmpty() - } - } - } -} - -class BuildToolsTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - val buildTools = AGP.run { variant.buildTools } - assertNotNull(buildTools) - BuildToolInfo.PathId.values().map { - it.name to buildTools.getPath(it) - }.forEach { (k, v) -> - println(" - $k => $v") - } - } -} diff --git a/booster-android-gradle-v3_6/src/integrationTest/resources/lib.gradle b/booster-android-gradle-v3_6/src/integrationTest/resources/lib.gradle deleted file mode 100644 index adc9b1ca0..000000000 --- a/booster-android-gradle-v3_6/src/integrationTest/resources/lib.gradle +++ /dev/null @@ -1,57 +0,0 @@ -buildscript { - repositories { - mavenLocal() - mavenCentral() - google() - maven { url 'https://oss.sonatype.org/content/repositories/public/' } - maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } - } - dependencies { - classpath "com.android.tools.build:gradle:${project.android_gradle_version}" - classpath("com.didiglobal.booster:booster-gradle-plugin:${project.booster_version}") { - exclude group: 'com.google.guava' - } - classpath "io.bootstage.testkit:testkit-gradle-plugin:1.4.0" - } -} - -apply plugin: 'com.android.library' -apply plugin: 'com.didiglobal.booster' -apply plugin: 'io.bootstage.testkit' - -android { - compileSdkVersion project.compile_sdk_version as Integer - buildToolsVersion project.build_tools_version - defaultConfig { - minSdkVersion project.min_sdk_version as Integer - targetSdkVersion project.target_sdk_version as Integer - versionCode 1 - versionName "1.0" - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - } - buildTypes { - debug { - minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' - } - } - flavorDimensions 'lang' - productFlavors { - en { - dimension 'lang' - } - cn { - dimension 'lang' - } - } - lintOptions { - checkReleaseBuilds false - } -} - -repositories { - mavenLocal() - mavenCentral() - google() - maven { url 'https://oss.sonatype.org/content/repositories/public/' } -} diff --git a/booster-android-gradle-v3_6/src/integrationTest/resources/src/main/AndroidManifest.xml b/booster-android-gradle-v3_6/src/integrationTest/resources/src/main/AndroidManifest.xml deleted file mode 100644 index 30800c604..000000000 --- a/booster-android-gradle-v3_6/src/integrationTest/resources/src/main/AndroidManifest.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/booster-android-gradle-v3_6/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/MainActivity.java b/booster-android-gradle-v3_6/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/MainActivity.java deleted file mode 100644 index 0eb4ec7b4..000000000 --- a/booster-android-gradle-v3_6/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/MainActivity.java +++ /dev/null @@ -1,6 +0,0 @@ -package com.didiglobal.booster.android.test; - -import android.app.Activity; - -public class MainActivity extends Activity { -} \ No newline at end of file diff --git a/booster-android-gradle-v3_6/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/TestApplication.java b/booster-android-gradle-v3_6/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/TestApplication.java deleted file mode 100644 index 3ecfb1507..000000000 --- a/booster-android-gradle-v3_6/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/TestApplication.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.didiglobal.booster.android.test; - -import android.app.Application; - -public class TestApplication extends Application { - -} \ No newline at end of file diff --git a/booster-android-gradle-v3_6/src/integrationTest/resources/src/main/res/values/strings.xml b/booster-android-gradle-v3_6/src/integrationTest/resources/src/main/res/values/strings.xml deleted file mode 100644 index 8b2247616..000000000 --- a/booster-android-gradle-v3_6/src/integrationTest/resources/src/main/res/values/strings.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - Test - \ No newline at end of file diff --git a/booster-android-gradle-v3_6/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_6/V36.kt b/booster-android-gradle-v3_6/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_6/V36.kt deleted file mode 100644 index bb9188445..000000000 --- a/booster-android-gradle-v3_6/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_6/V36.kt +++ /dev/null @@ -1,264 +0,0 @@ -package com.didiglobal.booster.android.gradle.v3_6 - -import com.android.build.api.artifact.ArtifactType -import com.android.build.api.artifact.BuildArtifactType -import com.android.build.api.transform.Context -import com.android.build.api.transform.QualifiedContent -import com.android.build.gradle.AppPlugin -import com.android.build.gradle.DynamicFeaturePlugin -import com.android.build.gradle.LibraryPlugin -import com.android.build.gradle.api.ApplicationVariant -import com.android.build.gradle.api.BaseVariant -import com.android.build.gradle.api.LibraryVariant -import com.android.build.gradle.internal.api.artifact.SourceArtifactType -import com.android.build.gradle.internal.pipeline.TransformManager -import com.android.build.gradle.internal.pipeline.TransformTask -import com.android.build.gradle.internal.publishing.AndroidArtifacts -import com.android.build.gradle.internal.publishing.AndroidArtifacts.ArtifactScope -import com.android.build.gradle.internal.scope.AnchorOutputType -import com.android.build.gradle.internal.scope.GlobalScope -import com.android.build.gradle.internal.scope.InternalArtifactType -import com.android.build.gradle.internal.scope.VariantScope -import com.android.build.gradle.internal.variant.BaseVariantData -import com.android.builder.core.DefaultApiVersion -import com.android.builder.core.VariantType -import com.android.builder.model.ApiVersion -import com.android.sdklib.BuildToolInfo -import com.didiglobal.booster.gradle.AGPInterface -import org.gradle.api.Project -import org.gradle.api.Task -import org.gradle.api.artifacts.ArtifactCollection -import org.gradle.api.artifacts.component.ComponentIdentifier -import org.gradle.api.artifacts.result.ResolvedArtifactResult -import org.gradle.api.artifacts.result.ResolvedDependencyResult -import org.gradle.api.file.FileCollection -import org.gradle.api.file.FileSystemLocation -import org.gradle.api.tasks.TaskProvider -import java.io.File -import java.util.TreeMap - -@Suppress("UnstableApiUsage") -internal val ARTIFACT_TYPES = arrayOf( - AnchorOutputType::class, - BuildArtifactType::class, - SourceArtifactType::class, - InternalArtifactType::class -).map { - it.sealedSubclasses -}.flatten().map { - it.objectInstance as ArtifactType -}.associateBy { - it.javaClass.simpleName -} - -object V36 : AGPInterface { - - @Suppress("UnstableApiUsage") - private fun BaseVariant.getFinalArtifactFiles(type: ArtifactType): FileCollection { - return try { - project.objects.fileCollection().from(variantScope.artifacts.getFinalProducts(type)) - } catch (e: Throwable) { - project.objects.fileCollection().builtBy(variantScope.artifacts.getFinalProducts(type)) - } - } - - override val scopeFullWithFeatures: MutableSet - get() = TransformManager.SCOPE_FULL_WITH_FEATURES - - override val scopeFullLibraryWithFeatures: MutableSet - get() = (TransformManager.SCOPE_FEATURES + QualifiedContent.Scope.PROJECT).toMutableSet() - - override val BaseVariant.project: Project - get() = globalScope.project - - override val BaseVariant.javaCompilerTaskProvider: TaskProvider - get() = javaCompileProvider - - override val BaseVariant.preBuildTaskProvider: TaskProvider - get() = preBuildProvider - - override val BaseVariant.assembleTaskProvider: TaskProvider - get() = assembleProvider - - override val BaseVariant.mergeAssetsTaskProvider: TaskProvider - get() = mergeAssetsProvider - - override val BaseVariant.mergeResourcesTaskProvider: TaskProvider - get() = try { - project.tasks.named(getTaskName("merge", "Resources")) - } catch (e: Throwable) { - mergeResourcesProvider - } - - override val BaseVariant.mergeNativeLibsTaskProvider: TaskProvider - get() = project.tasks.named(getTaskName("merge", "NativeLibs")) - - override val BaseVariant.processJavaResourcesTaskProvider: TaskProvider - get() = processJavaResourcesProvider - - override fun BaseVariant.getTaskName(prefix: String): String { - return variantScope.getTaskName(prefix) - } - - override fun BaseVariant.getTaskName(prefix: String, suffix: String): String { - return variantScope.getTaskName(prefix, suffix) - } - - override val BaseVariant.variantData: BaseVariantData - get() = javaClass.getDeclaredMethod("getVariantData").apply { - isAccessible = true - }.invoke(this) as BaseVariantData - - val BaseVariant.variantScope: VariantScope - get() = variantData.scope - - private val BaseVariant.globalScope: GlobalScope - get() = variantScope.globalScope - - override val BaseVariant.originalApplicationId: String - get() = variantData.variantConfiguration.originalApplicationId - - override val BaseVariant.hasDynamicFeature: Boolean - get() = globalScope.hasDynamicFeatures() - - override val BaseVariant.rawAndroidResources: FileCollection - get() = variantData.allRawAndroidResources - - override val BaseVariant.localAndroidResources: FileCollection - get() = variantData.androidResources.values.reduce { collection, file -> - collection.plus(file) - } - - override fun BaseVariant.getArtifactCollection( - configType: AndroidArtifacts.ConsumedConfigType, - scope: ArtifactScope, - artifactType: AndroidArtifacts.ArtifactType - ): ArtifactCollection { - return variantScope.getArtifactCollection(configType, scope, artifactType) - } - - override fun BaseVariant.getArtifactFileCollection( - configType: AndroidArtifacts.ConsumedConfigType, - scope: ArtifactScope, - artifactType: AndroidArtifacts.ArtifactType - ): FileCollection { - return variantScope.getArtifactFileCollection(configType, scope, artifactType) - } - - override val BaseVariant.allArtifacts: Map - get() = ARTIFACT_TYPES.entries.associateTo(TreeMap()) { (name, type) -> - val artifacts: FileCollection by lazy { - getFinalArtifactFiles(type) - } - name to artifacts - } - - override val BaseVariant.minSdkVersion: ApiVersion - get() = DefaultApiVersion(variantData.variantConfiguration.minSdkVersion.apiLevel) - - override val BaseVariant.targetSdkVersion: ApiVersion - get() = variantData.variantConfiguration.targetSdkVersion - - private val BaseVariant.variantType: VariantType - get() = variantScope.type - - override val BaseVariant.isApplication: Boolean - get() = project.plugins.hasPlugin(AppPlugin::class.java) - override val BaseVariant.isLibrary: Boolean - get() = project.plugins.hasPlugin(LibraryPlugin::class.java) - override val BaseVariant.isDynamicFeature: Boolean - get() = project.plugins.hasPlugin(DynamicFeaturePlugin::class.java) - - override val BaseVariant.aar: FileCollection - get() = project.files(variantScope.aarLocation.absolutePath) - - override val BaseVariant.apk: FileCollection - get() = getFinalArtifactFiles(InternalArtifactType.APK) - - override val BaseVariant.mergedManifests: FileCollection - get() = when (this) { - is ApplicationVariant -> getFinalArtifactFiles(InternalArtifactType.MERGED_MANIFESTS) - is LibraryVariant -> getFinalArtifactFiles(InternalArtifactType.LIBRARY_MANIFEST) - else -> TODO("Unsupported variant type: $variantType") - } - - override val BaseVariant.mergedRes: FileCollection - get() = getFinalArtifactFiles(InternalArtifactType.MERGED_RES) - - override val BaseVariant.mergedNativeLibs: FileCollection - get() = getFinalArtifactFiles(InternalArtifactType.MERGED_NATIVE_LIBS) - - @Suppress("UnstableApiUsage") - override val BaseVariant.mergedAssets: FileCollection - get() = getFinalArtifactFiles(when (this) { - is ApplicationVariant -> InternalArtifactType.MERGED_ASSETS - is LibraryVariant -> InternalArtifactType.LIBRARY_ASSETS - else -> TODO("Unsupported variant type: $variantType") - }) - - override val BaseVariant.processedRes: FileCollection - get() = getFinalArtifactFiles(InternalArtifactType.PROCESSED_RES) - - override val BaseVariant.symbolList: FileCollection - get() = getFinalArtifactFiles(when (this) { - is ApplicationVariant -> InternalArtifactType.RUNTIME_SYMBOL_LIST - is LibraryVariant -> InternalArtifactType.COMPILE_SYMBOL_LIST - else -> TODO("Unsupported variant type : $variantType") - }) - - override val BaseVariant.symbolListWithPackageName: FileCollection - get() = getFinalArtifactFiles(InternalArtifactType.SYMBOL_LIST_WITH_PACKAGE_NAME) - - override val BaseVariant.dataBindingDependencyArtifacts: FileCollection - get() = getFinalArtifactFiles(InternalArtifactType.DATA_BINDING_DEPENDENCY_ARTIFACTS) - - override val BaseVariant.allClasses: FileCollection - get() = when (this) { - is ApplicationVariant -> getFinalArtifactFiles(InternalArtifactType.JAVAC) + project.files("build${File.separator}tmp${File.separator}kotlin-classes${File.separator}${dirName}") - is LibraryVariant -> getFinalArtifactFiles(InternalArtifactType.AAR_MAIN_JAR) - else -> project.files() - } - - override val BaseVariant.buildTools: BuildToolInfo - get() = globalScope.sdkComponents.buildToolInfoProvider.get() - - override val BaseVariant.isPrecompileDependenciesResourcesEnabled: Boolean - get() = variantScope.isPrecompileDependenciesResourcesEnabled - - override fun BaseVariant.getDependencies(transitive: Boolean, filter: (ComponentIdentifier) -> Boolean): Collection { - val all = listOf(AndroidArtifacts.ArtifactType.AAR, AndroidArtifacts.ArtifactType.JAR) - .asSequence() - .map { - getArtifactCollection(AndroidArtifacts.ConsumedConfigType.RUNTIME_CLASSPATH, ArtifactScope.ALL, it).filter { result -> - filter(result.id.componentIdentifier) - } - } - .flatten() - .associateBy { - it.id.componentIdentifier.displayName - } - val result = if (!transitive) { - runtimeConfiguration.incoming.resolutionResult.root.dependencies.filterIsInstance().mapNotNull { - it.selected.id.displayName.takeIf { id -> id in all.keys } - }.associateWith { - all[it]!! - } - } else { - all - } - return result.values.toSet() - } - - override val Context.task: TransformTask - get() = javaClass.getDeclaredField("this$1").apply { - isAccessible = true - }.get(this).run { - javaClass.getDeclaredField("this$0").apply { - isAccessible = true - }.get(this) - } as TransformTask - - override val Project.aapt2Enabled: Boolean - get() = true - -} diff --git a/booster-android-gradle-v3_6/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_6/V36Factory.kt b/booster-android-gradle-v3_6/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_6/V36Factory.kt deleted file mode 100644 index 1d65da31f..000000000 --- a/booster-android-gradle-v3_6/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_6/V36Factory.kt +++ /dev/null @@ -1,15 +0,0 @@ -package com.didiglobal.booster.android.gradle.v3_6 - -import com.android.repository.Revision -import com.didiglobal.booster.gradle.AGPInterface -import com.didiglobal.booster.gradle.AGPInterfaceFactory -import com.google.auto.service.AutoService - -@AutoService(AGPInterfaceFactory::class) -class V36Factory : AGPInterfaceFactory { - - override val revision: Revision = Revision(3, 6, 0) - - override fun newAGPInterface(): AGPInterface = V36 - -} diff --git a/booster-android-gradle-v4_0/README.md b/booster-android-gradle-v4_0/README.md deleted file mode 100644 index a69564199..000000000 --- a/booster-android-gradle-v4_0/README.md +++ /dev/null @@ -1,6 +0,0 @@ -# booster-android-gradle-v4_0 - -This module is an implementation of [booster-android-gradle-api](../booster-android-gradle-api) for Android gradle plugin above 4.0. - -本模块是 [booster-android-gradle-api](../booster-android-gradle-api) 针对 Android gradle plugin 4.0 以上版本的实现。 - diff --git a/booster-android-gradle-v4_0/build.gradle b/booster-android-gradle-v4_0/build.gradle deleted file mode 100644 index 94b0d1476..000000000 --- a/booster-android-gradle-v4_0/build.gradle +++ /dev/null @@ -1,19 +0,0 @@ -apply plugin: 'java-gradle-plugin' - -apply from: "$rootDir/gradle/booster.gradle" -apply from: "$rootDir/gradle/integration-test.gradle" -apply from: "$rootDir/gradle/functional-test.gradle" - -dependencies { - kapt 'com.google.auto.service:auto-service:1.0' - api 'com.google.auto.service:auto-service:1.0' - api project(':booster-android-gradle-compat') - compileOnly 'com.android.tools.build:gradle:4.0.0' - testImplementation 'com.android.tools.build:gradle:4.0.0' - testImplementation 'io.bootstage.testkit:testkit-gradle-plugin:1.4.0' - testImplementation project(':booster-build') -} - -gradlePlugin { - testSourceSets sourceSets.functionalTest, sourceSets.integrationTest -} \ No newline at end of file diff --git a/booster-android-gradle-v4_0/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v4_0/V40IntegrationTest.kt b/booster-android-gradle-v4_0/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v4_0/V40IntegrationTest.kt deleted file mode 100644 index be401bfde..000000000 --- a/booster-android-gradle-v4_0/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v4_0/V40IntegrationTest.kt +++ /dev/null @@ -1,481 +0,0 @@ -@file:Suppress("DEPRECATION") - -package com.didiglobal.booster.android.gradle.v4_0 - -import com.android.build.gradle.AppExtension -import com.android.build.gradle.BaseExtension -import com.android.build.gradle.LibraryExtension -import com.android.build.gradle.api.BaseVariant -import com.android.sdklib.BuildToolInfo -import com.didiglobal.booster.gradle.AGP -import com.didiglobal.booster.gradle.getAndroid -import com.didiglobal.booster.kotlinx.search -import io.bootstage.testkit.gradle.Case -import io.bootstage.testkit.gradle.TestCase -import io.bootstage.testkit.gradle.VariantTestCase -import io.bootstage.testkit.gradle.rules.GradleExecutor -import io.bootstage.testkit.gradle.rules.LocalProperties -import io.bootstage.testkit.gradle.rules.copyFromResource -import io.bootstage.testkit.gradle.rules.rule -import org.gradle.api.Project -import org.junit.Before -import org.junit.Rule -import org.junit.rules.TemporaryFolder -import org.junit.rules.TestRule -import java.io.File -import kotlin.test.Test -import kotlin.test.assertEquals -import kotlin.test.assertFalse -import kotlin.test.assertNotNull -import kotlin.test.assertTrue -import kotlin.test.fail - -private val MIN_SDK_VERSION = System.getProperty("android.minsdk.version").toInt() - -private const val TARGET_SDK_VERSION = 26 - -private val ARGS = System.getProperty("gradle.args").split("\\s+".toRegex()) + listOf( - "-Pbooster_version=${Build.VERSION}", - "-Pandroid_gradle_version=4.0.0", - "-Pcompile_sdk_version=28", - "-Pbuild_tools_version=26.0.3", - "-Pmin_sdk_version=${MIN_SDK_VERSION}", - "-Ptarget_sdk_version=${TARGET_SDK_VERSION}" -) - -@Suppress("RemoveCurlyBracesFromTemplate", "FunctionName") -abstract class V40IntegrationTest(private val isLib: Boolean) { - - private val projectDir = TemporaryFolder() - - @get:Rule - val ruleChain: TestRule = rule(projectDir) { - rule(LocalProperties(projectDir::getRoot)) { - GradleExecutor(projectDir::getRoot, "6.1.1", *ARGS.toTypedArray()) - } - } - - @Before - fun setup() { - projectDir.copyFromResource("${if (isLib) "lib" else "app"}.gradle", "build.gradle") - projectDir.copyFromResource("buildSrc") - projectDir.copyFromResource("src") - projectDir.newFile("gradle.properties").writeText("org.gradle.jvmargs=-Xmx4g -XX:MaxMetaspaceSize=2g") - assertEquals(4, AGP.revision.major) - assertEquals(0, AGP.revision.minor) - } - - @Test - @Case(ScopeFullWithFeaturesTest::class) - fun `test AGPInterface#scopeFullWithFeatures`() = Unit - - @Test - @Case(ScopeFullLibraryWithFeaturesTest::class) - fun `test AGPInterface#scopeFullLibraryWithFeatures`() = Unit - - @Test - @Case(ProjectTest::class) - fun `test AGPInterface#project`() = Unit - - @Test - @Case(JavaCompilerTaskTestUnit::class) - fun `test AGPInterface#javaCompilerTask`() = Unit - - @Test - @Case(PreBuildTaskTestUnit::class) - fun `test AGPInterface#preBuildTask`() = Unit - - @Test - @Case(AssembleTaskTestUnit::class) - fun `test AGPInterface#assembleTask`() = Unit - - @Test - @Case(MergeAssetsTaskTestUnit::class) - fun `test AGPInterface#mergeAssetsTask`() = Unit - - @Test - @Case(MergeResourcesTaskTestUnit::class) - fun `test AGPInterface#mergeResources`() = Unit - - @Test - @Case(GetTaskNameTestUnit::class) - fun `test AGPInterface#getTaskName(String)`() = Unit - - @Test - @Case(GetTaskName2TestUnit::class) - fun `test AGPInterface#getTaskName(String, String)`() = Unit - - @Test - @Case(VariantDataTestUnit::class) - fun `test AGPInterface#variantData`() = Unit - - @Test - @Case(OriginalApplicationIdTestUnit::class) - fun `test AGPInterface#originalApplicationId`() = Unit - - @Test - @Case(HasDynamicFeatureTestUnit::class) - fun `test AGPInterface#hasDynamicFeature`() = Unit - - @Test - @Case(RawAndroidResourcesTestUnit::class) - fun `test AGPInterface#rawAndroidResources`() = Unit - - @Test - @Case(AllArtifactsTestUnit::class) - fun `test AGPInterface#allArtifacts`() = Unit - - @Test - @Case(MinSdkVersionTestUnit::class) - fun `test AGPInterface#minSdkVersion`() = Unit - - @Test - @Case(TargetSdkVersionTestUnit::class) - fun `test AGPInterface#targetSdkVersion`() = Unit - - @Test - @Case(AarTestUnit::class) - fun `test AGPInterface#aar`() = Unit - - @Test - @Case(ApkTestUnit::class) - fun `test AGPInterface#apk`() = Unit - - @Test - @Case(MergedManifestsTestUnit::class) - fun `test AGPInterface#mergedManifests`() = Unit - - @Test - @Case(MergedResourcesTestUnit::class) - fun `test AGPInterface#mergedRes`() = Unit - - @Test - @Case(MergedAssetsTestUnit::class) - fun `test AGPInterface#mergedAssets`() = Unit - - @Test - @Case(ProcessedResTestUnit::class) - fun `test AGPInterface#processedRes`() = Unit - - @Test - @Case(SymbolListTestUnit::class) - fun `test AGPInterface#symbolList`() = Unit - - @Test - @Case(SymbolListWithPackageNameTestUnit::class) - fun `test AGPInterface#symbolListWithPackageName`() = Unit - - @Test - @Case(AllClassesTestUnit::class) - fun `test AGPInterface#allClasses`() = Unit - - @Test - @Case(BuildToolsTestUnit::class) - fun `test AGPInterface#buildTools`() = Unit - -} - -class V40AppIntegrationTest : V40IntegrationTest(false) - -class V40LibIntegrationTest : V40IntegrationTest(true) - -class ScopeFullWithFeaturesTest : TestCase { - override fun apply(project: Project) { - assertEquals("PROJECT,SUB_PROJECTS,EXTERNAL_LIBRARIES,FEATURES", AGP.scopeFullWithFeatures.joinToString(",")) - } -} - -class ScopeFullLibraryWithFeaturesTest : TestCase { - override fun apply(project: Project) { - assertEquals("FEATURES,PROJECT", AGP.scopeFullLibraryWithFeatures.joinToString(",")) - } -} - -class ProjectTest : TestCase { - override fun apply(project: Project) { - val assert: (BaseVariant) -> Unit = { variant -> - assertEquals(project, AGP.run { variant.project }) - } - project.afterEvaluate { - when (val android = project.getAndroid()) { - is AppExtension -> android.applicationVariants.forEach(assert) - is LibraryExtension -> android.libraryVariants.forEach(assert) - } - } - } -} - -class JavaCompilerTaskTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.javaCompilerTask }) - } -} - -class PreBuildTaskTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.preBuildTask }) - } -} - -class AssembleTaskTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.assembleTask }) - } -} - -class MergeAssetsTaskTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.mergeAssetsTask }) - } -} - -class MergeResourcesTaskTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.mergeResourcesTask }) - } -} - -class GetTaskNameTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertEquals("assemble${variant.name.capitalize()}", AGP.run { variant.getTaskName("assemble") }) - } -} - - -class GetTaskName2TestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertEquals("merge${variant.name.capitalize()}Resources", AGP.run { variant.getTaskName("merge", "Resources") }) - } -} - -class VariantDataTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.variantData }) - } -} - -class OriginalApplicationIdTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.originalApplicationId }) - } -} - -class HasDynamicFeatureTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertFalse(AGP.run { variant.hasDynamicFeature }) - } -} - -class RawAndroidResourcesTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val rawAndroidResources = AGP.run { variant.rawAndroidResources } - assertNotNull(rawAndroidResources) - if (rawAndroidResources.isEmpty) { - fail("rawAndroidResources is empty") - } - rawAndroidResources.forEach { - println(" - ${it.path}") - } - } - } -} - -class AllArtifactsTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val allArtifacts = AGP.run { variant.allArtifacts } - assertNotNull(allArtifacts) - if (allArtifacts.isEmpty()) { - fail("allArtifacts is empty") - } - allArtifacts.forEach { (k, v) -> - println(" - $k => $v") - } - } - } -} - -class MinSdkVersionTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - val minSdkVersion = AGP.run { variant.minSdkVersion } - assertNotNull(minSdkVersion) - assertEquals(MIN_SDK_VERSION, minSdkVersion.apiLevel) - } -} - -class TargetSdkVersionTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - val targetSdkVersion = AGP.run { variant.targetSdkVersion } - assertNotNull(targetSdkVersion) - assertEquals(TARGET_SDK_VERSION, targetSdkVersion.apiLevel) - } -} - -class AarTestUnit : VariantTestCase() { - override fun apply(project: Project) { - if (project.plugins.hasPlugin("com.android.library")) { - super.apply(project) - } - } - - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val aar = AGP.run { variant.aar }.search { - it.extension == "aar" - } - if (aar.isEmpty()) { - fail("aar is empty") - } - aar.forEach { - println(" - ${it.path}") - } - } - } -} - -class ApkTestUnit : VariantTestCase() { - override fun apply(project: Project) { - if (project.plugins.hasPlugin("com.android.application")) { - super.apply(project) - } - } - - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val apk = AGP.run { variant.apk }.search { - it.extension == "apk" - } - if (apk.isEmpty()) { - fail("apk is empty") - } - apk.forEach { - println(" - ${it.path}") - } - } - } -} - -class MergedManifestsTestUnit : VariantTestCase() { - override fun apply(project: Project) { - if (project.plugins.hasPlugin("com.android.application")) { - super.apply(project) - } - } - - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val mergedManifests = AGP.run { variant.mergedManifests }.search { - it.name == "AndroidManifest.xml" - } - if (mergedManifests.isEmpty()) { - fail("mergedManifests is empty") - } - mergedManifests.forEach { - println(" - ${it.path}") - } - } - } -} - -class MergedResourcesTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val mergedResources = AGP.run { variant.mergedRes } - if (mergedResources.isEmpty) { - fail("mergedRes is empty") - } - mergedResources.forEach { - println(" - ${it.path}") - } - } - } -} - -class MergedAssetsTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val mergedAssets = AGP.run { variant.mergedAssets } - if (mergedAssets.isEmpty) { - fail("mergedAssets is empty") - } - mergedAssets.forEach { - println(" - ${it.path}") - } - } - } -} - -class ProcessedResTestUnit : VariantTestCase() { - override fun apply(project: Project) { - if (project.plugins.hasPlugin("com.android.application")) { - super.apply(project) - } - } - - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val processedRes = AGP.run { variant.processedRes }.search { - it.extension == "ap_" - } - if (processedRes.isEmpty()) { - fail("processedRes is empty") - } - processedRes.forEach { - println(" - ${it.path}") - } - } - } -} - -class SymbolListTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val symbolList = AGP.run { variant.symbolList } - if (symbolList.isEmpty) { - fail("symbolList is empty") - } - symbolList.forEach { - println(" - ${it.path}") - } - } - } -} - -class SymbolListWithPackageNameTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val symbolListWithPackageName = AGP.run { variant.symbolListWithPackageName } - if (symbolListWithPackageName.isEmpty) { - fail("symbolListWithPackageName is empty") - } - symbolListWithPackageName.forEach { - println(" - ${it.path}") - } - } - } -} - -class AllClassesTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val location = AGP.run { variant.allClasses }.files - assertTrue("ALL_CLASSES: $location", location::isNotEmpty) - assertTrue("No class file found at $location") { - location.search(File::isFile).isNotEmpty() - } - } - } -} - -class BuildToolsTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - val buildTools = AGP.run { variant.buildTools } - assertNotNull(buildTools) - BuildToolInfo.PathId.values().map { - it.name to buildTools.getPath(it) - }.forEach { (k, v) -> - println(" - $k => $v") - } - } -} diff --git a/booster-android-gradle-v4_0/src/integrationTest/resources/app.gradle b/booster-android-gradle-v4_0/src/integrationTest/resources/app.gradle deleted file mode 100644 index aa3c5f2d6..000000000 --- a/booster-android-gradle-v4_0/src/integrationTest/resources/app.gradle +++ /dev/null @@ -1,60 +0,0 @@ -buildscript { - repositories { - mavenLocal() - mavenCentral() - google() - maven { url 'https://oss.sonatype.org/content/repositories/public/' } - maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } - } - dependencies { - classpath "com.android.tools.build:gradle:${project.android_gradle_version}" - classpath("com.didiglobal.booster:booster-gradle-plugin:${project.booster_version}") { - exclude group: 'com.google.guava' - } - classpath "io.bootstage.testkit:testkit-gradle-plugin:1.4.0" - } -} - -apply plugin: 'com.android.application' -apply plugin: 'com.didiglobal.booster' -apply plugin: 'io.bootstage.testkit' - -android { - compileSdkVersion project.compile_sdk_version as Integer - buildToolsVersion project.build_tools_version - defaultConfig { - applicationId 'com.didiglobal.booster.test' - minSdkVersion project.min_sdk_version as Integer - targetSdkVersion project.target_sdk_version as Integer - versionCode 1 - versionName "1.0" - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - } - buildTypes { - debug { - minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' - } - } - flavorDimensions 'lang' - productFlavors { - en { - dimension 'lang' - applicationIdSuffix '.en' - } - cn { - dimension 'lang' - applicationIdSuffix '.cn' - } - } - lintOptions { - checkReleaseBuilds false - } -} - -repositories { - mavenLocal() - mavenCentral() - google() - maven { url 'https://oss.sonatype.org/content/repositories/public/' } -} diff --git a/booster-android-gradle-v4_0/src/integrationTest/resources/buildSrc/build.gradle b/booster-android-gradle-v4_0/src/integrationTest/resources/buildSrc/build.gradle deleted file mode 100644 index 79a9b104a..000000000 --- a/booster-android-gradle-v4_0/src/integrationTest/resources/buildSrc/build.gradle +++ /dev/null @@ -1,24 +0,0 @@ -buildscript { - repositories { - mavenLocal() - mavenCentral() - google() - maven { url 'https://oss.sonatype.org/content/repositories/public/' } - maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } - } -} - -repositories { - mavenLocal() - mavenCentral() - google() - maven { url 'https://oss.sonatype.org/content/repositories/public/' } -} - -dependencies { - implementation "com.android.tools.build:gradle:${project.android_gradle_version}" - implementation("com.didiglobal.booster:booster-android-gradle-api:${project.booster_version}") { - exclude group: 'com.google.guava' - } - implementation "io.bootstage.testkit:testkit-gradle-plugin:1.4.0" -} diff --git a/booster-android-gradle-v4_0/src/integrationTest/resources/lib.gradle b/booster-android-gradle-v4_0/src/integrationTest/resources/lib.gradle deleted file mode 100644 index adc9b1ca0..000000000 --- a/booster-android-gradle-v4_0/src/integrationTest/resources/lib.gradle +++ /dev/null @@ -1,57 +0,0 @@ -buildscript { - repositories { - mavenLocal() - mavenCentral() - google() - maven { url 'https://oss.sonatype.org/content/repositories/public/' } - maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } - } - dependencies { - classpath "com.android.tools.build:gradle:${project.android_gradle_version}" - classpath("com.didiglobal.booster:booster-gradle-plugin:${project.booster_version}") { - exclude group: 'com.google.guava' - } - classpath "io.bootstage.testkit:testkit-gradle-plugin:1.4.0" - } -} - -apply plugin: 'com.android.library' -apply plugin: 'com.didiglobal.booster' -apply plugin: 'io.bootstage.testkit' - -android { - compileSdkVersion project.compile_sdk_version as Integer - buildToolsVersion project.build_tools_version - defaultConfig { - minSdkVersion project.min_sdk_version as Integer - targetSdkVersion project.target_sdk_version as Integer - versionCode 1 - versionName "1.0" - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - } - buildTypes { - debug { - minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' - } - } - flavorDimensions 'lang' - productFlavors { - en { - dimension 'lang' - } - cn { - dimension 'lang' - } - } - lintOptions { - checkReleaseBuilds false - } -} - -repositories { - mavenLocal() - mavenCentral() - google() - maven { url 'https://oss.sonatype.org/content/repositories/public/' } -} diff --git a/booster-android-gradle-v4_0/src/integrationTest/resources/src/main/AndroidManifest.xml b/booster-android-gradle-v4_0/src/integrationTest/resources/src/main/AndroidManifest.xml deleted file mode 100644 index 30800c604..000000000 --- a/booster-android-gradle-v4_0/src/integrationTest/resources/src/main/AndroidManifest.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/booster-android-gradle-v4_0/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/MainActivity.java b/booster-android-gradle-v4_0/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/MainActivity.java deleted file mode 100644 index 0eb4ec7b4..000000000 --- a/booster-android-gradle-v4_0/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/MainActivity.java +++ /dev/null @@ -1,6 +0,0 @@ -package com.didiglobal.booster.android.test; - -import android.app.Activity; - -public class MainActivity extends Activity { -} \ No newline at end of file diff --git a/booster-android-gradle-v4_0/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/TestApplication.java b/booster-android-gradle-v4_0/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/TestApplication.java deleted file mode 100644 index 3ecfb1507..000000000 --- a/booster-android-gradle-v4_0/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/TestApplication.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.didiglobal.booster.android.test; - -import android.app.Application; - -public class TestApplication extends Application { - -} \ No newline at end of file diff --git a/booster-android-gradle-v4_0/src/integrationTest/resources/src/main/res/values/strings.xml b/booster-android-gradle-v4_0/src/integrationTest/resources/src/main/res/values/strings.xml deleted file mode 100644 index 8b2247616..000000000 --- a/booster-android-gradle-v4_0/src/integrationTest/resources/src/main/res/values/strings.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - Test - \ No newline at end of file diff --git a/booster-android-gradle-v4_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_0/V40.kt b/booster-android-gradle-v4_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_0/V40.kt deleted file mode 100644 index 41b87e81f..000000000 --- a/booster-android-gradle-v4_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_0/V40.kt +++ /dev/null @@ -1,286 +0,0 @@ -package com.didiglobal.booster.android.gradle.v4_0 - -import com.android.build.api.transform.Context -import com.android.build.api.transform.QualifiedContent -import com.android.build.gradle.api.ApplicationVariant -import com.android.build.gradle.api.BaseVariant -import com.android.build.gradle.api.LibraryVariant -import com.android.build.gradle.internal.pipeline.TransformManager -import com.android.build.gradle.internal.pipeline.TransformTask -import com.android.build.gradle.internal.publishing.AndroidArtifacts -import com.android.build.gradle.internal.scope.AnchorOutputType -import com.android.build.gradle.internal.scope.GlobalScope -import com.android.build.gradle.internal.scope.InternalArtifactType -import com.android.build.gradle.internal.scope.MultipleArtifactType -import com.android.build.gradle.internal.scope.SingleArtifactType -import com.android.build.gradle.internal.scope.VariantScope -import com.android.build.gradle.internal.variant.BaseVariantData -import com.android.builder.core.DefaultApiVersion -import com.android.builder.core.VariantType -import com.android.builder.model.ApiVersion -import com.android.sdklib.BuildToolInfo -import com.didiglobal.booster.gradle.AGPInterface -import org.gradle.api.Project -import org.gradle.api.Task -import org.gradle.api.artifacts.ArtifactCollection -import org.gradle.api.artifacts.component.ComponentIdentifier -import org.gradle.api.artifacts.result.ResolvedArtifactResult -import org.gradle.api.artifacts.result.ResolvedDependencyResult -import org.gradle.api.file.FileCollection -import org.gradle.api.file.FileSystemLocation -import org.gradle.api.tasks.TaskProvider -import java.io.File -import java.util.TreeMap - -@Suppress("UnstableApiUsage") -internal val SINGLE_ARTIFACT_TYPES = arrayOf( - AnchorOutputType::class, - InternalArtifactType::class -).map { - it.sealedSubclasses -}.flatten().map { - it.objectInstance as SingleArtifactType -}.associateBy { - it.javaClass.simpleName -} - -@Suppress("UnstableApiUsage") -internal val MULTIPLE_ARTIFACT_TYPES = arrayOf( - MultipleArtifactType::class -).map { - it.sealedSubclasses -}.flatten().map { - it.objectInstance as MultipleArtifactType -}.associateBy { - it.javaClass.simpleName -} - -internal object V40 : AGPInterface { - - @Suppress("UnstableApiUsage") - private fun BaseVariant.getFinalArtifactFiles(type: SingleArtifactType): FileCollection { - return try { - project.objects.fileCollection().from(variantScope.artifacts.getOperations().get(type)) - } catch (e: Throwable) { - project.logger.warn(e.message, e) - project.objects.fileCollection().builtBy(variantScope.artifacts.getOperations().get(type)) - } - } - - @Suppress("UnstableApiUsage") - private fun BaseVariant.getFinalArtifactFiles(type: MultipleArtifactType): FileCollection { - return try { - project.objects.fileCollection().from(variantScope.artifacts.getOperations().getAll(type)) - } catch (e: Throwable) { - project.logger.warn(e.message, e) - project.objects.fileCollection().builtBy(variantScope.artifacts.getOperations().getAll(type)) - } - } - - override val scopeFullWithFeatures: MutableSet - get() = TransformManager.SCOPE_FULL_WITH_FEATURES - - override val scopeFullLibraryWithFeatures: MutableSet - get() = (TransformManager.SCOPE_FEATURES + QualifiedContent.Scope.PROJECT).toMutableSet() - - override val BaseVariant.project: Project - get() = globalScope.project - - override val BaseVariant.javaCompilerTaskProvider: TaskProvider - get() = javaCompileProvider - - override val BaseVariant.preBuildTaskProvider: TaskProvider - get() = preBuildProvider - - override val BaseVariant.assembleTaskProvider: TaskProvider - get() = assembleProvider - - override val BaseVariant.mergeAssetsTaskProvider: TaskProvider - get() = mergeAssetsProvider - - override val BaseVariant.mergeResourcesTaskProvider: TaskProvider - get() = try { - project.tasks.named(getTaskName("merge", "Resources")) - } catch (e: Throwable) { - mergeResourcesProvider - } - - override val BaseVariant.mergeNativeLibsTaskProvider: TaskProvider - get() = project.tasks.named(getTaskName("merge", "NativeLibs")) - - override val BaseVariant.processJavaResourcesTaskProvider: TaskProvider - get() = processJavaResourcesProvider - - override fun BaseVariant.getTaskName(prefix: String): String { - return variantScope.getTaskName(prefix) - } - - override fun BaseVariant.getTaskName(prefix: String, suffix: String): String { - return variantScope.getTaskName(prefix, suffix) - } - - override val BaseVariant.variantData: BaseVariantData - get() = javaClass.getDeclaredMethod("getVariantData").apply { - isAccessible = true - }.invoke(this) as BaseVariantData - - val BaseVariant.variantScope: VariantScope - get() = variantData.scope - - private val BaseVariant.globalScope: GlobalScope - get() = variantScope.globalScope - - override val BaseVariant.originalApplicationId: String - get() = variantData.variantDslInfo.originalApplicationId - - override val BaseVariant.hasDynamicFeature: Boolean - get() = globalScope.hasDynamicFeatures() - - override val BaseVariant.rawAndroidResources: FileCollection - get() = variantData.allRawAndroidResources - - override val BaseVariant.localAndroidResources: FileCollection - get() = variantData.androidResources.values.reduce { collection, file -> - collection.plus(file) - } - - override fun BaseVariant.getArtifactCollection( - configType: AndroidArtifacts.ConsumedConfigType, - scope: AndroidArtifacts.ArtifactScope, - artifactType: AndroidArtifacts.ArtifactType - ): ArtifactCollection { - return variantScope.getArtifactCollection(configType, scope, artifactType) - } - - override fun BaseVariant.getArtifactFileCollection( - configType: AndroidArtifacts.ConsumedConfigType, - scope: AndroidArtifacts.ArtifactScope, - artifactType: AndroidArtifacts.ArtifactType - ): FileCollection { - return variantScope.getArtifactFileCollection(configType, scope, artifactType) - } - - override val BaseVariant.allArtifacts: Map - get() = TreeMap().also { all -> - SINGLE_ARTIFACT_TYPES.entries.associateTo(all) { (name, type) -> - val artifacts: FileCollection by lazy { - getFinalArtifactFiles(type) - } - name to artifacts - } - MULTIPLE_ARTIFACT_TYPES.entries.associateTo(all) { (name, type) -> - val artifacts: FileCollection by lazy { - getFinalArtifactFiles(type) - } - name to artifacts - } - } - - override val BaseVariant.minSdkVersion: ApiVersion - get() = DefaultApiVersion(variantData.variantDslInfo.minSdkVersion.apiLevel) - - override val BaseVariant.targetSdkVersion: ApiVersion - get() = variantData.variantDslInfo.targetSdkVersion - - private val BaseVariant.variantType: VariantType - get() = variantScope.type - - override val BaseVariant.isApplication: Boolean - get() = variantType.isApk - - override val BaseVariant.isLibrary: Boolean - get() = variantType.isAar - - override val BaseVariant.isDynamicFeature: Boolean - get() = variantType.isDynamicFeature - - override val BaseVariant.aar: FileCollection - get() = getFinalArtifactFiles(InternalArtifactType.AAR) - - override val BaseVariant.apk: FileCollection - get() = getFinalArtifactFiles(InternalArtifactType.APK) - - override val BaseVariant.mergedManifests: FileCollection - get() = when (this) { - is ApplicationVariant -> getFinalArtifactFiles(InternalArtifactType.MERGED_MANIFESTS) - is LibraryVariant -> getFinalArtifactFiles(InternalArtifactType.LIBRARY_MANIFEST) - else -> TODO("Unsupported variant type: $variantType") - } - - override val BaseVariant.mergedRes: FileCollection - get() = getFinalArtifactFiles(InternalArtifactType.MERGED_RES) - - override val BaseVariant.mergedNativeLibs: FileCollection - get() = getFinalArtifactFiles(InternalArtifactType.MERGED_NATIVE_LIBS) - - override val BaseVariant.mergedAssets: FileCollection - get() = when (this) { - is ApplicationVariant -> getFinalArtifactFiles(InternalArtifactType.MERGED_ASSETS) - is LibraryVariant -> getFinalArtifactFiles(InternalArtifactType.LIBRARY_ASSETS) - else -> TODO("Unsupported variant type: $variantType") - } - - override val BaseVariant.processedRes: FileCollection - get() = getFinalArtifactFiles(InternalArtifactType.PROCESSED_RES) - - override val BaseVariant.symbolList: FileCollection - get() = when (this) { - is ApplicationVariant -> getFinalArtifactFiles(InternalArtifactType.RUNTIME_SYMBOL_LIST) - is LibraryVariant -> getFinalArtifactFiles(InternalArtifactType.COMPILE_SYMBOL_LIST) - else -> TODO("Unsupported variant type : $variantType") - } - - override val BaseVariant.symbolListWithPackageName: FileCollection - get() = getFinalArtifactFiles(InternalArtifactType.SYMBOL_LIST_WITH_PACKAGE_NAME) - - override val BaseVariant.dataBindingDependencyArtifacts: FileCollection - get() = getFinalArtifactFiles(InternalArtifactType.DATA_BINDING_DEPENDENCY_ARTIFACTS) - - override val BaseVariant.allClasses: FileCollection - get() = when (this) { - is ApplicationVariant -> getFinalArtifactFiles(InternalArtifactType.JAVAC) + project.files("build${File.separator}tmp${File.separator}kotlin-classes${File.separator}${dirName}") - is LibraryVariant -> getFinalArtifactFiles(InternalArtifactType.AAR_MAIN_JAR) - else -> project.files() - } - - override val BaseVariant.buildTools: BuildToolInfo - get() = globalScope.sdkComponents.buildToolInfoProvider.get() - - override val BaseVariant.isPrecompileDependenciesResourcesEnabled: Boolean - get() = variantScope.isPrecompileDependenciesResourcesEnabled - - override fun BaseVariant.getDependencies(transitive: Boolean, filter: (ComponentIdentifier) -> Boolean): Collection { - val all = getArtifactCollection( - AndroidArtifacts.ConsumedConfigType.RUNTIME_CLASSPATH, - AndroidArtifacts.ArtifactScope.ALL, - AndroidArtifacts.ArtifactType.CLASSES_JAR - ).filter { result -> - filter(result.id.componentIdentifier) - }.associateBy { - it.id.componentIdentifier.displayName - } - val result = if (!transitive) { - runtimeConfiguration.incoming.resolutionResult.root.dependencies.filterIsInstance().mapNotNull { - it.selected.id.displayName.takeIf { id -> id in all.keys } - }.associateWith { - all[it]!! - } - } else { - all - } - return result.values.toSet() - } - - override val Context.task: TransformTask - get() = javaClass.getDeclaredField("this$1").apply { - isAccessible = true - }.get(this).run { - javaClass.getDeclaredField("this$0").apply { - isAccessible = true - }.get(this) - } as TransformTask - - override val Project.aapt2Enabled: Boolean - get() = true - -} diff --git a/booster-android-gradle-v4_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_0/V40Factory.kt b/booster-android-gradle-v4_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_0/V40Factory.kt deleted file mode 100644 index 5ca2c0331..000000000 --- a/booster-android-gradle-v4_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_0/V40Factory.kt +++ /dev/null @@ -1,15 +0,0 @@ -package com.didiglobal.booster.android.gradle.v4_0 - -import com.android.repository.Revision -import com.didiglobal.booster.gradle.AGPInterface -import com.didiglobal.booster.gradle.AGPInterfaceFactory -import com.google.auto.service.AutoService - -@AutoService(AGPInterfaceFactory::class) -class V40Factory : AGPInterfaceFactory { - - override val revision: Revision = Revision(4, 0, 0) - - override fun newAGPInterface(): AGPInterface = V40 - -} diff --git a/booster-android-gradle-v4_1/README.md b/booster-android-gradle-v4_1/README.md deleted file mode 100644 index d85cbf5a2..000000000 --- a/booster-android-gradle-v4_1/README.md +++ /dev/null @@ -1,6 +0,0 @@ -# booster-android-gradle-v4_1 - -This module is an implementation of [booster-android-gradle-api](../booster-android-gradle-api) for Android gradle plugin above 4.1. - -本模块是 [booster-android-gradle-api](../booster-android-gradle-api) 针对 Android gradle plugin 4.1 以上版本的实现。 - diff --git a/booster-android-gradle-v4_1/build.gradle b/booster-android-gradle-v4_1/build.gradle deleted file mode 100644 index fc24cb46e..000000000 --- a/booster-android-gradle-v4_1/build.gradle +++ /dev/null @@ -1,19 +0,0 @@ -apply plugin: 'java-gradle-plugin' - -apply from: "$rootDir/gradle/booster.gradle" -apply from: "$rootDir/gradle/integration-test.gradle" -apply from: "$rootDir/gradle/functional-test.gradle" - -dependencies { - kapt 'com.google.auto.service:auto-service:1.0' - api 'com.google.auto.service:auto-service:1.0' - api project(':booster-android-gradle-compat') - compileOnly 'com.android.tools.build:gradle:4.1.0' - testImplementation 'com.android.tools.build:gradle:4.1.0' - testImplementation 'io.bootstage.testkit:testkit-gradle-plugin:1.4.0' - testImplementation project(':booster-build') -} - -gradlePlugin { - testSourceSets sourceSets.functionalTest, sourceSets.integrationTest -} \ No newline at end of file diff --git a/booster-android-gradle-v4_1/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v4_1/V41IntegrationTest.kt b/booster-android-gradle-v4_1/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v4_1/V41IntegrationTest.kt deleted file mode 100644 index ea804d3c8..000000000 --- a/booster-android-gradle-v4_1/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v4_1/V41IntegrationTest.kt +++ /dev/null @@ -1,481 +0,0 @@ -@file:Suppress("DEPRECATION") - -package com.didiglobal.booster.android.gradle.v4_1 - -import com.android.build.gradle.AppExtension -import com.android.build.gradle.BaseExtension -import com.android.build.gradle.LibraryExtension -import com.android.build.gradle.api.BaseVariant -import com.android.sdklib.BuildToolInfo -import com.didiglobal.booster.gradle.AGP -import com.didiglobal.booster.gradle.getAndroid -import com.didiglobal.booster.kotlinx.search -import io.bootstage.testkit.gradle.Case -import io.bootstage.testkit.gradle.TestCase -import io.bootstage.testkit.gradle.VariantTestCase -import io.bootstage.testkit.gradle.rules.GradleExecutor -import io.bootstage.testkit.gradle.rules.LocalProperties -import io.bootstage.testkit.gradle.rules.copyFromResource -import io.bootstage.testkit.gradle.rules.rule -import org.gradle.api.Project -import org.junit.Before -import org.junit.Rule -import org.junit.rules.TemporaryFolder -import org.junit.rules.TestRule -import java.io.File -import kotlin.test.Test -import kotlin.test.assertEquals -import kotlin.test.assertFalse -import kotlin.test.assertNotNull -import kotlin.test.assertTrue -import kotlin.test.fail - -private val MIN_SDK_VERSION = System.getProperty("android.minsdk.version").toInt() - -private const val TARGET_SDK_VERSION = 26 - -private val ARGS = System.getProperty("gradle.args").split("\\s+".toRegex()) + listOf( - "-Pbooster_version=${Build.VERSION}", - "-Pandroid_gradle_version=4.1.0", - "-Pcompile_sdk_version=28", - "-Pbuild_tools_version=26.0.3", - "-Pmin_sdk_version=${MIN_SDK_VERSION}", - "-Ptarget_sdk_version=${TARGET_SDK_VERSION}" -) - -@Suppress("RemoveCurlyBracesFromTemplate", "FunctionName") -abstract class V41IntegrationTest(val isLib: Boolean) { - - private val projectDir = TemporaryFolder() - - @get:Rule - val ruleChain: TestRule = rule(projectDir) { - rule(LocalProperties(projectDir::getRoot)) { - GradleExecutor(projectDir::getRoot, "6.5", *ARGS.toTypedArray()) - } - } - - @Before - fun setup() { - projectDir.copyFromResource("${if (isLib) "lib" else "app"}.gradle", "build.gradle") - projectDir.copyFromResource("buildSrc") - projectDir.copyFromResource("src") - projectDir.newFile("gradle.properties").writeText("org.gradle.jvmargs=-Xmx4g -XX:MaxMetaspaceSize=2g") - assertEquals(4, AGP.revision.major) - assertEquals(1, AGP.revision.minor) - } - - @Test - @Case(ScopeFullWithFeaturesTest::class) - fun `test AGPInterface#scopeFullWithFeatures`() = Unit - - @Test - @Case(ScopeFullLibraryWithFeaturesTest::class) - fun `test AGPInterface#scopeFullLibraryWithFeatures`() = Unit - - @Test - @Case(ProjectTest::class) - fun `test AGPInterface#project`() = Unit - - @Test - @Case(JavaCompilerTaskTestUnit::class) - fun `test AGPInterface#javaCompilerTask`() = Unit - - @Test - @Case(PreBuildTaskTestUnit::class) - fun `test AGPInterface#preBuildTask`() = Unit - - @Test - @Case(AssembleTaskTestUnit::class) - fun `test AGPInterface#assembleTask`() = Unit - - @Test - @Case(MergeAssetsTaskTestUnit::class) - fun `test AGPInterface#mergeAssetsTask`() = Unit - - @Test - @Case(MergeResourcesTaskTestUnit::class) - fun `test AGPInterface#mergeResources`() = Unit - - @Test - @Case(GetTaskNameTestUnit::class) - fun `test AGPInterface#getTaskName(String)`() = Unit - - @Test - @Case(GetTaskName2TestUnit::class) - fun `test AGPInterface#getTaskName(String, String)`() = Unit - - @Test - @Case(VariantDataTestUnit::class) - fun `test AGPInterface#variantData`() = Unit - - @Test - @Case(OriginalApplicationIdTestUnit::class) - fun `test AGPInterface#originalApplicationId`() = Unit - - @Test - @Case(HasDynamicFeatureTestUnit::class) - fun `test AGPInterface#hasDynamicFeature`() = Unit - - @Test - @Case(RawAndroidResourcesTestUnit::class) - fun `test AGPInterface#rawAndroidResources`() = Unit - - @Test - @Case(AllArtifactsTestUnit::class) - fun `test AGPInterface#allArtifacts`() = Unit - - @Test - @Case(MinSdkVersionTestUnit::class) - fun `test AGPInterface#minSdkVersion`() = Unit - - @Test - @Case(TargetSdkVersionTestUnit::class) - fun `test AGPInterface#targetSdkVersion`() = Unit - - @Test - @Case(AarTestUnit::class) - fun `test AGPInterface#aar`() = Unit - - @Test - @Case(ApkTestUnit::class) - fun `test AGPInterface#apk`() = Unit - - @Test - @Case(MergedManifestsTestUnit::class) - fun `test AGPInterface#mergedManifests`() = Unit - - @Test - @Case(MergedResourcesTestUnit::class) - fun `test AGPInterface#mergedRes`() = Unit - - @Test - @Case(MergedAssetsTestUnit::class) - fun `test AGPInterface#mergedAssets`() = Unit - - @Test - @Case(ProcessedResTestUnit::class) - fun `test AGPInterface#processedRes`() = Unit - - @Test - @Case(SymbolListTestUnit::class) - fun `test AGPInterface#symbolList`() = Unit - - @Test - @Case(SymbolListWithPackageNameTestUnit::class) - fun `test AGPInterface#symbolListWithPackageName`() = Unit - - @Test - @Case(AllClassesTestUnit::class) - fun `test AGPInterface#allClasses`() = Unit - - @Test - @Case(BuildToolsTestUnit::class) - fun `test AGPInterface#buildTools`() = Unit - -} - -class V41AppIntegrationTest : V41IntegrationTest(false) - -class V41LibIntegrationTest : V41IntegrationTest(true) - -class ScopeFullWithFeaturesTest : TestCase { - override fun apply(project: Project) { - assertEquals("PROJECT,SUB_PROJECTS,EXTERNAL_LIBRARIES,FEATURES", AGP.scopeFullWithFeatures.joinToString(",")) - } -} - -class ScopeFullLibraryWithFeaturesTest : TestCase { - override fun apply(project: Project) { - assertEquals("FEATURES,PROJECT", AGP.scopeFullLibraryWithFeatures.joinToString(",")) - } -} - -class ProjectTest : TestCase { - override fun apply(project: Project) { - val assert: (BaseVariant) -> Unit = { variant -> - assertEquals(project, AGP.run { variant.project }) - } - project.afterEvaluate { - when (val android = project.getAndroid()) { - is AppExtension -> android.applicationVariants.forEach(assert) - is LibraryExtension -> android.libraryVariants.forEach(assert) - } - } - } -} - -class JavaCompilerTaskTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.javaCompilerTask }) - } -} - -class PreBuildTaskTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.preBuildTask }) - } -} - -class AssembleTaskTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.assembleTask }) - } -} - -class MergeAssetsTaskTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.mergeAssetsTask }) - } -} - -class MergeResourcesTaskTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.mergeResourcesTask }) - } -} - -class GetTaskNameTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertEquals("assemble${variant.name.capitalize()}", AGP.run { variant.getTaskName("assemble") }) - } -} - - -class GetTaskName2TestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertEquals("merge${variant.name.capitalize()}Resources", AGP.run { variant.getTaskName("merge", "Resources") }) - } -} - -class VariantDataTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.variantData }) - } -} - -class OriginalApplicationIdTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.originalApplicationId }) - } -} - -class HasDynamicFeatureTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertFalse(AGP.run { variant.hasDynamicFeature }) - } -} - -class RawAndroidResourcesTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val rawAndroidResources = AGP.run { variant.rawAndroidResources } - assertNotNull(rawAndroidResources) - if (rawAndroidResources.isEmpty) { - fail("rawAndroidResources is empty") - } - rawAndroidResources.forEach { - println(" - ${it.path}") - } - } - } -} - -class AllArtifactsTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val allArtifacts = AGP.run { variant.allArtifacts } - assertNotNull(allArtifacts) - if (allArtifacts.isEmpty()) { - fail("allArtifacts is empty") - } - allArtifacts.forEach { (k, v) -> - println(" - $k => $v") - } - } - } -} - -class MinSdkVersionTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - val minSdkVersion = AGP.run { variant.minSdkVersion } - assertNotNull(minSdkVersion) - assertEquals(MIN_SDK_VERSION, minSdkVersion.apiLevel) - } -} - -class TargetSdkVersionTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - val targetSdkVersion = AGP.run { variant.targetSdkVersion } - assertNotNull(targetSdkVersion) - assertEquals(TARGET_SDK_VERSION, targetSdkVersion.apiLevel) - } -} - -class AarTestUnit : VariantTestCase() { - override fun apply(project: Project) { - if (project.plugins.hasPlugin("com.android.library")) { - super.apply(project) - } - } - - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val aar = AGP.run { variant.aar }.search { - it.extension == "aar" - } - if (aar.isEmpty()) { - fail("aar is empty") - } - aar.forEach { - println(" - ${it.path}") - } - } - } -} - -class ApkTestUnit : VariantTestCase() { - override fun apply(project: Project) { - if (project.plugins.hasPlugin("com.android.application")) { - super.apply(project) - } - } - - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val apk = AGP.run { variant.apk }.search { - it.extension == "apk" - } - if (apk.isEmpty()) { - fail("apk is empty") - } - apk.forEach { - println(" - ${it.path}") - } - } - } -} - -class MergedManifestsTestUnit : VariantTestCase() { - override fun apply(project: Project) { - if (project.plugins.hasPlugin("com.android.application")) { - super.apply(project) - } - } - - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val mergedManifests = AGP.run { variant.mergedManifests }.search { - it.name == "AndroidManifest.xml" - } - if (mergedManifests.isEmpty()) { - fail("mergedManifests is empty") - } - mergedManifests.forEach { - println(" - ${it.path}") - } - } - } -} - -class MergedResourcesTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val mergedResources = AGP.run { variant.mergedRes } - if (mergedResources.isEmpty) { - fail("mergedRes is empty") - } - mergedResources.forEach { - println(" - ${it.path}") - } - } - } -} - -class MergedAssetsTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val mergedAssets = AGP.run { variant.mergedAssets } - if (mergedAssets.isEmpty) { - fail("mergedAssets is empty") - } - mergedAssets.forEach { - println(" - ${it.path}") - } - } - } -} - -class ProcessedResTestUnit : VariantTestCase() { - override fun apply(project: Project) { - if (project.plugins.hasPlugin("com.android.application")) { - super.apply(project) - } - } - - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val processedRes = AGP.run { variant.processedRes }.search { - it.extension == "ap_" - } - if (processedRes.isEmpty()) { - fail("processedRes is empty") - } - processedRes.forEach { - println(" - ${it.path}") - } - } - } -} - -class SymbolListTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val symbolList = AGP.run { variant.symbolList } - if (symbolList.isEmpty) { - fail("symbolList is empty") - } - symbolList.forEach { - println(" - ${it.path}") - } - } - } -} - -class SymbolListWithPackageNameTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val symbolListWithPackageName = AGP.run { variant.symbolListWithPackageName } - if (symbolListWithPackageName.isEmpty) { - fail("symbolListWithPackageName is empty") - } - symbolListWithPackageName.forEach { - println(" - ${it.path}") - } - } - } -} - -class AllClassesTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val location = AGP.run { variant.allClasses }.files - assertTrue("ALL_CLASSES: $location", location::isNotEmpty) - assertTrue("No class file found at $location") { - location.search(File::isFile).isNotEmpty() - } - } - } -} - -class BuildToolsTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - val buildTools = AGP.run { variant.buildTools } - assertNotNull(buildTools) - BuildToolInfo.PathId.values().map { - it.name to buildTools.getPath(it) - }.forEach { (k, v) -> - println(" - $k => $v") - } - } -} diff --git a/booster-android-gradle-v4_1/src/integrationTest/resources/app.gradle b/booster-android-gradle-v4_1/src/integrationTest/resources/app.gradle deleted file mode 100644 index aa3c5f2d6..000000000 --- a/booster-android-gradle-v4_1/src/integrationTest/resources/app.gradle +++ /dev/null @@ -1,60 +0,0 @@ -buildscript { - repositories { - mavenLocal() - mavenCentral() - google() - maven { url 'https://oss.sonatype.org/content/repositories/public/' } - maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } - } - dependencies { - classpath "com.android.tools.build:gradle:${project.android_gradle_version}" - classpath("com.didiglobal.booster:booster-gradle-plugin:${project.booster_version}") { - exclude group: 'com.google.guava' - } - classpath "io.bootstage.testkit:testkit-gradle-plugin:1.4.0" - } -} - -apply plugin: 'com.android.application' -apply plugin: 'com.didiglobal.booster' -apply plugin: 'io.bootstage.testkit' - -android { - compileSdkVersion project.compile_sdk_version as Integer - buildToolsVersion project.build_tools_version - defaultConfig { - applicationId 'com.didiglobal.booster.test' - minSdkVersion project.min_sdk_version as Integer - targetSdkVersion project.target_sdk_version as Integer - versionCode 1 - versionName "1.0" - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - } - buildTypes { - debug { - minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' - } - } - flavorDimensions 'lang' - productFlavors { - en { - dimension 'lang' - applicationIdSuffix '.en' - } - cn { - dimension 'lang' - applicationIdSuffix '.cn' - } - } - lintOptions { - checkReleaseBuilds false - } -} - -repositories { - mavenLocal() - mavenCentral() - google() - maven { url 'https://oss.sonatype.org/content/repositories/public/' } -} diff --git a/booster-android-gradle-v4_1/src/integrationTest/resources/buildSrc/build.gradle b/booster-android-gradle-v4_1/src/integrationTest/resources/buildSrc/build.gradle deleted file mode 100644 index 79a9b104a..000000000 --- a/booster-android-gradle-v4_1/src/integrationTest/resources/buildSrc/build.gradle +++ /dev/null @@ -1,24 +0,0 @@ -buildscript { - repositories { - mavenLocal() - mavenCentral() - google() - maven { url 'https://oss.sonatype.org/content/repositories/public/' } - maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } - } -} - -repositories { - mavenLocal() - mavenCentral() - google() - maven { url 'https://oss.sonatype.org/content/repositories/public/' } -} - -dependencies { - implementation "com.android.tools.build:gradle:${project.android_gradle_version}" - implementation("com.didiglobal.booster:booster-android-gradle-api:${project.booster_version}") { - exclude group: 'com.google.guava' - } - implementation "io.bootstage.testkit:testkit-gradle-plugin:1.4.0" -} diff --git a/booster-android-gradle-v4_1/src/integrationTest/resources/lib.gradle b/booster-android-gradle-v4_1/src/integrationTest/resources/lib.gradle deleted file mode 100644 index adc9b1ca0..000000000 --- a/booster-android-gradle-v4_1/src/integrationTest/resources/lib.gradle +++ /dev/null @@ -1,57 +0,0 @@ -buildscript { - repositories { - mavenLocal() - mavenCentral() - google() - maven { url 'https://oss.sonatype.org/content/repositories/public/' } - maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } - } - dependencies { - classpath "com.android.tools.build:gradle:${project.android_gradle_version}" - classpath("com.didiglobal.booster:booster-gradle-plugin:${project.booster_version}") { - exclude group: 'com.google.guava' - } - classpath "io.bootstage.testkit:testkit-gradle-plugin:1.4.0" - } -} - -apply plugin: 'com.android.library' -apply plugin: 'com.didiglobal.booster' -apply plugin: 'io.bootstage.testkit' - -android { - compileSdkVersion project.compile_sdk_version as Integer - buildToolsVersion project.build_tools_version - defaultConfig { - minSdkVersion project.min_sdk_version as Integer - targetSdkVersion project.target_sdk_version as Integer - versionCode 1 - versionName "1.0" - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - } - buildTypes { - debug { - minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' - } - } - flavorDimensions 'lang' - productFlavors { - en { - dimension 'lang' - } - cn { - dimension 'lang' - } - } - lintOptions { - checkReleaseBuilds false - } -} - -repositories { - mavenLocal() - mavenCentral() - google() - maven { url 'https://oss.sonatype.org/content/repositories/public/' } -} diff --git a/booster-android-gradle-v4_1/src/integrationTest/resources/src/main/AndroidManifest.xml b/booster-android-gradle-v4_1/src/integrationTest/resources/src/main/AndroidManifest.xml deleted file mode 100644 index 30800c604..000000000 --- a/booster-android-gradle-v4_1/src/integrationTest/resources/src/main/AndroidManifest.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/booster-android-gradle-v4_1/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/MainActivity.java b/booster-android-gradle-v4_1/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/MainActivity.java deleted file mode 100644 index 0eb4ec7b4..000000000 --- a/booster-android-gradle-v4_1/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/MainActivity.java +++ /dev/null @@ -1,6 +0,0 @@ -package com.didiglobal.booster.android.test; - -import android.app.Activity; - -public class MainActivity extends Activity { -} \ No newline at end of file diff --git a/booster-android-gradle-v4_1/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/TestApplication.java b/booster-android-gradle-v4_1/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/TestApplication.java deleted file mode 100644 index 3ecfb1507..000000000 --- a/booster-android-gradle-v4_1/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/TestApplication.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.didiglobal.booster.android.test; - -import android.app.Application; - -public class TestApplication extends Application { - -} \ No newline at end of file diff --git a/booster-android-gradle-v4_1/src/integrationTest/resources/src/main/res/values/strings.xml b/booster-android-gradle-v4_1/src/integrationTest/resources/src/main/res/values/strings.xml deleted file mode 100644 index 8b2247616..000000000 --- a/booster-android-gradle-v4_1/src/integrationTest/resources/src/main/res/values/strings.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - Test - \ No newline at end of file diff --git a/booster-android-gradle-v4_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_1/V41.kt b/booster-android-gradle-v4_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_1/V41.kt deleted file mode 100644 index f4b07c51b..000000000 --- a/booster-android-gradle-v4_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_1/V41.kt +++ /dev/null @@ -1,299 +0,0 @@ -package com.didiglobal.booster.android.gradle.v4_1 - -import com.android.build.api.artifact.Artifact -import com.android.build.api.artifact.ArtifactType -import com.android.build.api.artifact.MultipleArtifactType -import com.android.build.api.artifact.impl.ArtifactsImpl -import com.android.build.api.component.impl.ComponentPropertiesImpl -import com.android.build.api.transform.Context -import com.android.build.api.transform.QualifiedContent -import com.android.build.gradle.api.ApplicationVariant -import com.android.build.gradle.api.BaseVariant -import com.android.build.gradle.api.LibraryVariant -import com.android.build.gradle.internal.api.BaseVariantImpl -import com.android.build.gradle.internal.pipeline.TransformManager -import com.android.build.gradle.internal.pipeline.TransformTask -import com.android.build.gradle.internal.publishing.AndroidArtifacts -import com.android.build.gradle.internal.publishing.AndroidArtifacts.ArtifactScope -import com.android.build.gradle.internal.scope.AnchorOutputType -import com.android.build.gradle.internal.scope.GlobalScope -import com.android.build.gradle.internal.scope.InternalArtifactType -import com.android.build.gradle.internal.scope.InternalMultipleArtifactType -import com.android.build.gradle.internal.scope.VariantScope -import com.android.build.gradle.internal.variant.BaseVariantData -import com.android.builder.core.DefaultApiVersion -import com.android.builder.core.VariantType -import com.android.builder.model.ApiVersion -import com.android.sdklib.BuildToolInfo -import com.didiglobal.booster.gradle.AGPInterface -import org.gradle.api.Project -import org.gradle.api.Task -import org.gradle.api.artifacts.ArtifactCollection -import org.gradle.api.artifacts.component.ComponentIdentifier -import org.gradle.api.artifacts.result.ResolvedArtifactResult -import org.gradle.api.artifacts.result.ResolvedDependencyResult -import org.gradle.api.file.FileCollection -import org.gradle.api.file.FileSystemLocation -import org.gradle.api.tasks.TaskProvider -import java.io.File -import java.util.TreeMap - -@Suppress("UnstableApiUsage") -private val SINGLE_ARTIFACT_TYPES = arrayOf( - ArtifactType::class, - AnchorOutputType::class, - InternalArtifactType::class -).map { - it.sealedSubclasses -}.flatten().map { - it.objectInstance as Artifact.SingleArtifact -}.associateBy { - it.javaClass.simpleName -} - -@Suppress("UnstableApiUsage") -private val MULTIPLE_ARTIFACT_TYPES = arrayOf( - MultipleArtifactType::class, - InternalMultipleArtifactType::class -).map { - it.sealedSubclasses -}.flatten().map { - it.objectInstance as Artifact.MultipleArtifact -}.associateBy { - it.javaClass.simpleName -} - -internal object V41 : AGPInterface { - - private val BaseVariant.componentProperties: ComponentPropertiesImpl - get() = BaseVariantImpl::class.java.getDeclaredField("componentProperties").apply { - isAccessible = true - }.get(this) as ComponentPropertiesImpl - - @Suppress("UnstableApiUsage") - private fun BaseVariant.getFinalArtifactFiles(type: Artifact.SingleArtifact): FileCollection { - return try { - project.objects.fileCollection().from(artifacts.get(type)) - } catch (e: Throwable) { - project.logger.warn(e.message, e) - project.objects.fileCollection().builtBy(artifacts.get(type)) - } - } - - @Suppress("UnstableApiUsage") - private fun BaseVariant.getFinalArtifactFiles(type: Artifact.MultipleArtifact): FileCollection { - return try { - project.objects.fileCollection().from(artifacts.getAll(type)) - } catch (e: Throwable) { - project.logger.warn(e.message, e) - project.objects.fileCollection().builtBy(artifacts.getAll(type)) - } - } - - @Suppress("UnstableApiUsage") - private val BaseVariant.artifacts: ArtifactsImpl - get() = componentProperties.artifacts - - override val scopeFullWithFeatures: MutableSet - get() = TransformManager.SCOPE_FULL_WITH_FEATURES - - override val scopeFullLibraryWithFeatures: MutableSet - get() = (TransformManager.SCOPE_FEATURES + QualifiedContent.Scope.PROJECT).toMutableSet() - - override val BaseVariant.project: Project - get() = globalScope.project - - override val BaseVariant.javaCompilerTaskProvider: TaskProvider - get() = javaCompileProvider - - override val BaseVariant.preBuildTaskProvider: TaskProvider - get() = preBuildProvider - - override val BaseVariant.assembleTaskProvider: TaskProvider - get() = assembleProvider - - override val BaseVariant.mergeAssetsTaskProvider: TaskProvider - get() = mergeAssetsProvider - - override val BaseVariant.mergeResourcesTaskProvider: TaskProvider - get() = try { - project.tasks.named(getTaskName("merge", "Resources")) - } catch (e: Throwable) { - mergeResourcesProvider - } - - override val BaseVariant.mergeNativeLibsTaskProvider: TaskProvider - get() = project.tasks.named(getTaskName("merge", "NativeLibs")) - - override val BaseVariant.processJavaResourcesTaskProvider: TaskProvider - get() = processJavaResourcesProvider - - override fun BaseVariant.getTaskName(prefix: String): String { - return componentProperties.computeTaskName(prefix) - } - - override fun BaseVariant.getTaskName(prefix: String, suffix: String): String { - return componentProperties.computeTaskName(prefix, suffix) - } - - override val BaseVariant.variantData: BaseVariantData - get() = javaClass.getDeclaredMethod("getVariantData").apply { - isAccessible = true - }.invoke(this) as BaseVariantData - - val BaseVariant.variantScope: VariantScope - get() = componentProperties.variantScope - - private val BaseVariant.globalScope: GlobalScope - get() = componentProperties.globalScope - - override val BaseVariant.originalApplicationId: String - get() = componentProperties.variantDslInfo.packageName.get() - - override val BaseVariant.hasDynamicFeature: Boolean - get() = globalScope.hasDynamicFeatures() - - override val BaseVariant.rawAndroidResources: FileCollection - get() = componentProperties.variantData.allRawAndroidResources - - override val BaseVariant.localAndroidResources: FileCollection - get() = componentProperties.variantData.androidResources.values.reduce { collection, file -> - collection.plus(file) - } - - override fun BaseVariant.getArtifactCollection( - configType: AndroidArtifacts.ConsumedConfigType, - scope: ArtifactScope, - artifactType: AndroidArtifacts.ArtifactType - ): ArtifactCollection { - return componentProperties.variantDependencies.getArtifactCollection(configType, scope, artifactType) - } - - override fun BaseVariant.getArtifactFileCollection( - configType: AndroidArtifacts.ConsumedConfigType, - scope: ArtifactScope, - artifactType: AndroidArtifacts.ArtifactType - ): FileCollection { - return componentProperties.variantDependencies.getArtifactFileCollection(configType, scope, artifactType) - } - - override val BaseVariant.allArtifacts: Map - get() = TreeMap().also { all -> - SINGLE_ARTIFACT_TYPES.entries.associateTo(all) { (name, type) -> - val artifacts: FileCollection by lazy { - getFinalArtifactFiles(type) - } - name to artifacts - } - MULTIPLE_ARTIFACT_TYPES.entries.associateTo(all) { (name, type) -> - val artifacts: FileCollection by lazy { - getFinalArtifactFiles(type) - } - name to artifacts - } - } - - override val BaseVariant.minSdkVersion: ApiVersion - get() = DefaultApiVersion(componentProperties.minSdkVersion.apiLevel) - - override val BaseVariant.targetSdkVersion: ApiVersion - get() = componentProperties.targetSdkVersion - - private val BaseVariant.variantType: VariantType - get() = componentProperties.variantType - - override val BaseVariant.isApplication: Boolean - get() = variantType.isApk - - override val BaseVariant.isLibrary: Boolean - get() = variantType.isAar - - override val BaseVariant.isDynamicFeature: Boolean - get() = variantType.isDynamicFeature - - override val BaseVariant.aar: FileCollection - get() = getFinalArtifactFiles(InternalArtifactType.AAR) - - override val BaseVariant.apk: FileCollection - get() = getFinalArtifactFiles(ArtifactType.APK) - - override val BaseVariant.mergedManifests: FileCollection - get() = getFinalArtifactFiles(ArtifactType.MERGED_MANIFEST) - - override val BaseVariant.mergedRes: FileCollection - get() = getFinalArtifactFiles(InternalArtifactType.MERGED_RES) - - override val BaseVariant.mergedNativeLibs: FileCollection - get() = getFinalArtifactFiles(InternalArtifactType.MERGED_NATIVE_LIBS) - - override val BaseVariant.mergedAssets: FileCollection - get() = when (this) { - is ApplicationVariant -> getFinalArtifactFiles(InternalArtifactType.MERGED_ASSETS) - is LibraryVariant -> getFinalArtifactFiles(InternalArtifactType.LIBRARY_ASSETS) - else -> TODO("Unsupported variant type: $variantType") - } - - override val BaseVariant.processedRes: FileCollection - get() = getFinalArtifactFiles(InternalArtifactType.PROCESSED_RES) - - override val BaseVariant.symbolList: FileCollection - get() = when (this) { - is ApplicationVariant -> getFinalArtifactFiles(InternalArtifactType.RUNTIME_SYMBOL_LIST) - is LibraryVariant -> getFinalArtifactFiles(InternalArtifactType.COMPILE_SYMBOL_LIST) - else -> TODO("Unsupported variant type : $variantType") - } - - override val BaseVariant.symbolListWithPackageName: FileCollection - get() = getFinalArtifactFiles(InternalArtifactType.SYMBOL_LIST_WITH_PACKAGE_NAME) - - override val BaseVariant.dataBindingDependencyArtifacts: FileCollection - get() = getFinalArtifactFiles(InternalArtifactType.DATA_BINDING_DEPENDENCY_ARTIFACTS) - - override val BaseVariant.allClasses: FileCollection - get() = when (this) { - is ApplicationVariant -> getFinalArtifactFiles(InternalArtifactType.JAVAC) + project.files("build${File.separator}tmp${File.separator}kotlin-classes${File.separator}${dirName}") - is LibraryVariant -> getFinalArtifactFiles(InternalArtifactType.AAR_MAIN_JAR) - else -> project.files() - } - - override val BaseVariant.buildTools: BuildToolInfo - get() = globalScope.sdkComponents.get().buildToolInfoProvider.get() - - override val BaseVariant.isPrecompileDependenciesResourcesEnabled: Boolean - get() = variantScope.isPrecompileDependenciesResourcesEnabled - - override fun BaseVariant.getDependencies(transitive: Boolean, filter: (ComponentIdentifier) -> Boolean): Collection { - val all = getArtifactCollection( - AndroidArtifacts.ConsumedConfigType.RUNTIME_CLASSPATH, - AndroidArtifacts.ArtifactScope.ALL, - AndroidArtifacts.ArtifactType.CLASSES_JAR - ).filter { result -> - filter(result.id.componentIdentifier) - }.associateBy { - it.id.componentIdentifier.displayName - } - val result = if (!transitive) { - runtimeConfiguration.incoming.resolutionResult.root.dependencies.filterIsInstance().mapNotNull { - it.selected.id.displayName.takeIf { id -> id in all.keys } - }.associateWith { - all[it]!! - } - } else { - all - } - return result.values.toSet() - } - - override val Context.task: TransformTask - get() = javaClass.getDeclaredField("this$1").apply { - isAccessible = true - }.get(this).run { - javaClass.getDeclaredField("this$0").apply { - isAccessible = true - }.get(this) - } as TransformTask - - override val Project.aapt2Enabled: Boolean - get() = true - -} diff --git a/booster-android-gradle-v4_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_1/V41Factory.kt b/booster-android-gradle-v4_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_1/V41Factory.kt deleted file mode 100644 index 9fb0adcb3..000000000 --- a/booster-android-gradle-v4_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_1/V41Factory.kt +++ /dev/null @@ -1,15 +0,0 @@ -package com.didiglobal.booster.android.gradle.v4_1 - -import com.android.repository.Revision -import com.didiglobal.booster.gradle.AGPInterface -import com.didiglobal.booster.gradle.AGPInterfaceFactory -import com.google.auto.service.AutoService - -@AutoService(AGPInterfaceFactory::class) -class V41Factory : AGPInterfaceFactory { - - override val revision: Revision = Revision(4, 1, 0) - - override fun newAGPInterface(): AGPInterface = V41 - -} diff --git a/booster-android-gradle-v4_2/README.md b/booster-android-gradle-v4_2/README.md deleted file mode 100644 index 5e8eec8ea..000000000 --- a/booster-android-gradle-v4_2/README.md +++ /dev/null @@ -1,6 +0,0 @@ -# booster-android-gradle-v4_2 - -This module is an implementation of [booster-android-gradle-api](../booster-android-gradle-api) for Android gradle plugin above 4.2. - -本模块是 [booster-android-gradle-api](../booster-android-gradle-api) 针对 Android gradle plugin 4.2 以上版本的实现。 - diff --git a/booster-android-gradle-v4_2/build.gradle b/booster-android-gradle-v4_2/build.gradle deleted file mode 100644 index c07f4fbe9..000000000 --- a/booster-android-gradle-v4_2/build.gradle +++ /dev/null @@ -1,19 +0,0 @@ -apply plugin: 'java-gradle-plugin' - -apply from: "$rootDir/gradle/booster.gradle" -apply from: "$rootDir/gradle/integration-test.gradle" -apply from: "$rootDir/gradle/functional-test.gradle" - -dependencies { - kapt 'com.google.auto.service:auto-service:1.0' - api 'com.google.auto.service:auto-service:1.0' - api project(':booster-android-gradle-compat') - compileOnly 'com.android.tools.build:gradle:4.2.0' - testImplementation 'com.android.tools.build:gradle:4.2.0' - testImplementation 'io.bootstage.testkit:testkit-gradle-plugin:1.1.0' - testImplementation project(':booster-build') -} - -gradlePlugin { - testSourceSets sourceSets.functionalTest, sourceSets.integrationTest -} \ No newline at end of file diff --git a/booster-android-gradle-v4_2/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42IntegrationTest.kt b/booster-android-gradle-v4_2/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42IntegrationTest.kt deleted file mode 100644 index 0c04f7814..000000000 --- a/booster-android-gradle-v4_2/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42IntegrationTest.kt +++ /dev/null @@ -1,481 +0,0 @@ -@file:Suppress("DEPRECATION") - -package com.didiglobal.booster.android.gradle.v4_2 - -import com.android.build.gradle.AppExtension -import com.android.build.gradle.BaseExtension -import com.android.build.gradle.LibraryExtension -import com.android.build.gradle.api.BaseVariant -import com.android.sdklib.BuildToolInfo -import com.didiglobal.booster.gradle.AGP -import com.didiglobal.booster.gradle.getAndroid -import com.didiglobal.booster.kotlinx.search -import io.bootstage.testkit.gradle.Case -import io.bootstage.testkit.gradle.TestCase -import io.bootstage.testkit.gradle.VariantTestCase -import io.bootstage.testkit.gradle.rules.GradleExecutor -import io.bootstage.testkit.gradle.rules.LocalProperties -import io.bootstage.testkit.gradle.rules.copyFromResource -import io.bootstage.testkit.gradle.rules.rule -import org.gradle.api.Project -import org.junit.Before -import org.junit.Rule -import org.junit.rules.TemporaryFolder -import org.junit.rules.TestRule -import java.io.File -import kotlin.test.Test -import kotlin.test.assertEquals -import kotlin.test.assertFalse -import kotlin.test.assertNotNull -import kotlin.test.assertTrue -import kotlin.test.fail - -private val MIN_SDK_VERSION = System.getProperty("android.minsdk.version").toInt() - -private const val TARGET_SDK_VERSION = 26 - -private val ARGS = System.getProperty("gradle.args").split("\\s+".toRegex()) + listOf( - "-Pbooster_version=${Build.VERSION}", - "-Pandroid_gradle_version=4.2.1", - "-Pcompile_sdk_version=28", - "-Pbuild_tools_version=26.0.3", - "-Pmin_sdk_version=${MIN_SDK_VERSION}", - "-Ptarget_sdk_version=${TARGET_SDK_VERSION}" -) - -@Suppress("RemoveCurlyBracesFromTemplate", "FunctionName") -abstract class V42IntegrationTest(val isLib: Boolean) { - - private val projectDir = TemporaryFolder() - - @get:Rule - val ruleChain: TestRule = rule(projectDir) { - rule(LocalProperties(projectDir::getRoot)) { - GradleExecutor(projectDir::getRoot, "6.7.1", *ARGS.toTypedArray()) - } - } - - @Before - fun setup() { - projectDir.copyFromResource("${if (isLib) "lib" else "app"}.gradle", "build.gradle") - projectDir.copyFromResource("buildSrc") - projectDir.copyFromResource("src") - projectDir.newFile("gradle.properties").writeText("org.gradle.jvmargs=-Xmx4g -XX:MaxMetaspaceSize=2g") - assertEquals(4, AGP.revision.major) - assertEquals(2, AGP.revision.minor) - } - - @Test - @Case(ScopeFullWithFeaturesTest::class) - fun `test AGPInterface#scopeFullWithFeatures`() = Unit - - @Test - @Case(ScopeFullLibraryWithFeaturesTest::class) - fun `test AGPInterface#scopeFullLibraryWithFeatures`() = Unit - - @Test - @Case(ProjectTest::class) - fun `test AGPInterface#project`() = Unit - - @Test - @Case(JavaCompilerTaskTestUnit::class) - fun `test AGPInterface#javaCompilerTask`() = Unit - - @Test - @Case(PreBuildTaskTestUnit::class) - fun `test AGPInterface#preBuildTask`() = Unit - - @Test - @Case(AssembleTaskTestUnit::class) - fun `test AGPInterface#assembleTask`() = Unit - - @Test - @Case(MergeAssetsTaskTestUnit::class) - fun `test AGPInterface#mergeAssetsTask`() = Unit - - @Test - @Case(MergeResourcesTaskTestUnit::class) - fun `test AGPInterface#mergeResources`() = Unit - - @Test - @Case(GetTaskNameTestUnit::class) - fun `test AGPInterface#getTaskName(String)`() = Unit - - @Test - @Case(GetTaskName2TestUnit::class) - fun `test AGPInterface#getTaskName(String, String)`() = Unit - - @Test - @Case(VariantDataTestUnit::class) - fun `test AGPInterface#variantData`() = Unit - - @Test - @Case(OriginalApplicationIdTestUnit::class) - fun `test AGPInterface#originalApplicationId`() = Unit - - @Test - @Case(HasDynamicFeatureTestUnit::class) - fun `test AGPInterface#hasDynamicFeature`() = Unit - - @Test - @Case(RawAndroidResourcesTestUnit::class) - fun `test AGPInterface#rawAndroidResources`() = Unit - - @Test - @Case(AllArtifactsTestUnit::class) - fun `test AGPInterface#allArtifacts`() = Unit - - @Test - @Case(MinSdkVersionTestUnit::class) - fun `test AGPInterface#minSdkVersion`() = Unit - - @Test - @Case(TargetSdkVersionTestUnit::class) - fun `test AGPInterface#targetSdkVersion`() = Unit - - @Test - @Case(AarTestUnit::class) - fun `test AGPInterface#aar`() = Unit - - @Test - @Case(ApkTestUnit::class) - fun `test AGPInterface#apk`() = Unit - - @Test - @Case(MergedManifestsTestUnit::class) - fun `test AGPInterface#mergedManifests`() = Unit - - @Test - @Case(MergedResourcesTestUnit::class) - fun `test AGPInterface#mergedRes`() = Unit - - @Test - @Case(MergedAssetsTestUnit::class) - fun `test AGPInterface#mergedAssets`() = Unit - - @Test - @Case(ProcessedResTestUnit::class) - fun `test AGPInterface#processedRes`() = Unit - - @Test - @Case(SymbolListTestUnit::class) - fun `test AGPInterface#symbolList`() = Unit - - @Test - @Case(SymbolListWithPackageNameTestUnit::class) - fun `test AGPInterface#symbolListWithPackageName`() = Unit - - @Test - @Case(AllClassesTestUnit::class) - fun `test AGPInterface#allClasses`() = Unit - - @Test - @Case(BuildToolsTestUnit::class) - fun `test AGPInterface#buildTools`() = Unit - -} - -class V42AppIntegrationTest : V42IntegrationTest(false) - -class V42LibIntegrationTest : V42IntegrationTest(true) - -class ScopeFullWithFeaturesTest : TestCase { - override fun apply(project: Project) { - assertEquals("PROJECT,SUB_PROJECTS,EXTERNAL_LIBRARIES,FEATURES", AGP.scopeFullWithFeatures.joinToString(",")) - } -} - -class ScopeFullLibraryWithFeaturesTest : TestCase { - override fun apply(project: Project) { - assertEquals("FEATURES,PROJECT", AGP.scopeFullLibraryWithFeatures.joinToString(",")) - } -} - -class ProjectTest : TestCase { - override fun apply(project: Project) { - val assert: (BaseVariant) -> Unit = { variant -> - assertEquals(project, AGP.run { variant.project }) - } - project.afterEvaluate { - when (val android = project.getAndroid()) { - is AppExtension -> android.applicationVariants.forEach(assert) - is LibraryExtension -> android.libraryVariants.forEach(assert) - } - } - } -} - -class JavaCompilerTaskTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.javaCompilerTask }) - } -} - -class PreBuildTaskTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.preBuildTask }) - } -} - -class AssembleTaskTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.assembleTask }) - } -} - -class MergeAssetsTaskTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.mergeAssetsTask }) - } -} - -class MergeResourcesTaskTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.mergeResourcesTask }) - } -} - -class GetTaskNameTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertEquals("assemble${variant.name.capitalize()}", AGP.run { variant.getTaskName("assemble") }) - } -} - - -class GetTaskName2TestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertEquals("merge${variant.name.capitalize()}Resources", AGP.run { variant.getTaskName("merge", "Resources") }) - } -} - -class VariantDataTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.variantData }) - } -} - -class OriginalApplicationIdTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.originalApplicationId }) - } -} - -class HasDynamicFeatureTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertFalse(AGP.run { variant.hasDynamicFeature }) - } -} - -class RawAndroidResourcesTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val rawAndroidResources = AGP.run { variant.rawAndroidResources } - assertNotNull(rawAndroidResources) - if (rawAndroidResources.isEmpty()) { - fail("rawAndroidResources is empty") - } - rawAndroidResources.forEach { - println(" - ${it.path}") - } - } - } -} - -class AllArtifactsTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val allArtifacts = AGP.run { variant.allArtifacts } - assertNotNull(allArtifacts) - if (allArtifacts.isEmpty()) { - fail("allArtifacts is empty") - } - allArtifacts.forEach { (k, v) -> - println(" - $k => $v") - } - } - } -} - -class MinSdkVersionTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - val minSdkVersion = AGP.run { variant.minSdkVersion } - assertNotNull(minSdkVersion) - assertEquals(MIN_SDK_VERSION, minSdkVersion.apiLevel) - } -} - -class TargetSdkVersionTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - val targetSdkVersion = AGP.run { variant.targetSdkVersion } - assertNotNull(targetSdkVersion) - assertEquals(TARGET_SDK_VERSION, targetSdkVersion.apiLevel) - } -} - -class AarTestUnit : VariantTestCase() { - override fun apply(project: Project) { - if (project.plugins.hasPlugin("com.android.library")) { - super.apply(project) - } - } - - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val aar = AGP.run { variant.aar }.search { - it.extension == "aar" - } - if (aar.isEmpty()) { - fail("aar is empty") - } - aar.forEach { - println(" - ${it.path}") - } - } - } -} - -class ApkTestUnit : VariantTestCase() { - override fun apply(project: Project) { - if (project.plugins.hasPlugin("com.android.application")) { - super.apply(project) - } - } - - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val apk = AGP.run { variant.apk }.search { - it.extension == "apk" - } - if (apk.isEmpty()) { - fail("apk is empty") - } - apk.forEach { - println(" - ${it.path}") - } - } - } -} - -class MergedManifestsTestUnit : VariantTestCase() { - override fun apply(project: Project) { - if (project.plugins.hasPlugin("com.android.application")) { - super.apply(project) - } - } - - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val mergedManifests = AGP.run { variant.mergedManifests }.search { - it.name == "AndroidManifest.xml" - } - if (mergedManifests.isEmpty()) { - fail("mergedManifests is empty") - } - mergedManifests.forEach { - println(" - ${it.path}") - } - } - } -} - -class MergedResourcesTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val mergedResources = AGP.run { variant.mergedRes } - if (mergedResources.isEmpty()) { - fail("mergedRes is empty") - } - mergedResources.forEach { - println(" - ${it.path}") - } - } - } -} - -class MergedAssetsTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val mergedAssets = AGP.run { variant.mergedAssets } - if (mergedAssets.isEmpty()) { - fail("mergedAssets is empty") - } - mergedAssets.forEach { - println(" - ${it.path}") - } - } - } -} - -class ProcessedResTestUnit : VariantTestCase() { - override fun apply(project: Project) { - if (project.plugins.hasPlugin("com.android.application")) { - super.apply(project) - } - } - - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val processedRes = AGP.run { variant.processedRes }.search { - it.extension == "ap_" - } - if (processedRes.isEmpty()) { - fail("processedRes is empty") - } - processedRes.forEach { - println(" - ${it.path}") - } - } - } -} - -class SymbolListTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val symbolList = AGP.run { variant.symbolList } - if (symbolList.isEmpty()) { - fail("symbolList is empty") - } - symbolList.forEach { - println(" - ${it.path}") - } - } - } -} - -class SymbolListWithPackageNameTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val symbolListWithPackageName = AGP.run { variant.symbolListWithPackageName } - if (symbolListWithPackageName.isEmpty()) { - fail("symbolListWithPackageName is empty") - } - symbolListWithPackageName.forEach { - println(" - ${it.path}") - } - } - } -} - -class AllClassesTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val location = AGP.run { variant.allClasses }.files - assertTrue("ALL_CLASSES: $location", location::isNotEmpty) - assertTrue("No class file found at $location") { - location.search(File::isFile).isNotEmpty() - } - } - } -} - -class BuildToolsTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - val buildTools = AGP.run { variant.buildTools } - assertNotNull(buildTools) - BuildToolInfo.PathId.values().map { - it.name to buildTools.getPath(it) - }.forEach { (k, v) -> - println(" - $k => $v") - } - } -} diff --git a/booster-android-gradle-v4_2/src/integrationTest/resources/app.gradle b/booster-android-gradle-v4_2/src/integrationTest/resources/app.gradle deleted file mode 100644 index aa3c5f2d6..000000000 --- a/booster-android-gradle-v4_2/src/integrationTest/resources/app.gradle +++ /dev/null @@ -1,60 +0,0 @@ -buildscript { - repositories { - mavenLocal() - mavenCentral() - google() - maven { url 'https://oss.sonatype.org/content/repositories/public/' } - maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } - } - dependencies { - classpath "com.android.tools.build:gradle:${project.android_gradle_version}" - classpath("com.didiglobal.booster:booster-gradle-plugin:${project.booster_version}") { - exclude group: 'com.google.guava' - } - classpath "io.bootstage.testkit:testkit-gradle-plugin:1.4.0" - } -} - -apply plugin: 'com.android.application' -apply plugin: 'com.didiglobal.booster' -apply plugin: 'io.bootstage.testkit' - -android { - compileSdkVersion project.compile_sdk_version as Integer - buildToolsVersion project.build_tools_version - defaultConfig { - applicationId 'com.didiglobal.booster.test' - minSdkVersion project.min_sdk_version as Integer - targetSdkVersion project.target_sdk_version as Integer - versionCode 1 - versionName "1.0" - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - } - buildTypes { - debug { - minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' - } - } - flavorDimensions 'lang' - productFlavors { - en { - dimension 'lang' - applicationIdSuffix '.en' - } - cn { - dimension 'lang' - applicationIdSuffix '.cn' - } - } - lintOptions { - checkReleaseBuilds false - } -} - -repositories { - mavenLocal() - mavenCentral() - google() - maven { url 'https://oss.sonatype.org/content/repositories/public/' } -} diff --git a/booster-android-gradle-v4_2/src/integrationTest/resources/buildSrc/build.gradle b/booster-android-gradle-v4_2/src/integrationTest/resources/buildSrc/build.gradle deleted file mode 100644 index 79a9b104a..000000000 --- a/booster-android-gradle-v4_2/src/integrationTest/resources/buildSrc/build.gradle +++ /dev/null @@ -1,24 +0,0 @@ -buildscript { - repositories { - mavenLocal() - mavenCentral() - google() - maven { url 'https://oss.sonatype.org/content/repositories/public/' } - maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } - } -} - -repositories { - mavenLocal() - mavenCentral() - google() - maven { url 'https://oss.sonatype.org/content/repositories/public/' } -} - -dependencies { - implementation "com.android.tools.build:gradle:${project.android_gradle_version}" - implementation("com.didiglobal.booster:booster-android-gradle-api:${project.booster_version}") { - exclude group: 'com.google.guava' - } - implementation "io.bootstage.testkit:testkit-gradle-plugin:1.4.0" -} diff --git a/booster-android-gradle-v4_2/src/integrationTest/resources/lib.gradle b/booster-android-gradle-v4_2/src/integrationTest/resources/lib.gradle deleted file mode 100644 index adc9b1ca0..000000000 --- a/booster-android-gradle-v4_2/src/integrationTest/resources/lib.gradle +++ /dev/null @@ -1,57 +0,0 @@ -buildscript { - repositories { - mavenLocal() - mavenCentral() - google() - maven { url 'https://oss.sonatype.org/content/repositories/public/' } - maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } - } - dependencies { - classpath "com.android.tools.build:gradle:${project.android_gradle_version}" - classpath("com.didiglobal.booster:booster-gradle-plugin:${project.booster_version}") { - exclude group: 'com.google.guava' - } - classpath "io.bootstage.testkit:testkit-gradle-plugin:1.4.0" - } -} - -apply plugin: 'com.android.library' -apply plugin: 'com.didiglobal.booster' -apply plugin: 'io.bootstage.testkit' - -android { - compileSdkVersion project.compile_sdk_version as Integer - buildToolsVersion project.build_tools_version - defaultConfig { - minSdkVersion project.min_sdk_version as Integer - targetSdkVersion project.target_sdk_version as Integer - versionCode 1 - versionName "1.0" - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - } - buildTypes { - debug { - minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' - } - } - flavorDimensions 'lang' - productFlavors { - en { - dimension 'lang' - } - cn { - dimension 'lang' - } - } - lintOptions { - checkReleaseBuilds false - } -} - -repositories { - mavenLocal() - mavenCentral() - google() - maven { url 'https://oss.sonatype.org/content/repositories/public/' } -} diff --git a/booster-android-gradle-v4_2/src/integrationTest/resources/src/main/AndroidManifest.xml b/booster-android-gradle-v4_2/src/integrationTest/resources/src/main/AndroidManifest.xml deleted file mode 100644 index 30800c604..000000000 --- a/booster-android-gradle-v4_2/src/integrationTest/resources/src/main/AndroidManifest.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/booster-android-gradle-v4_2/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/MainActivity.java b/booster-android-gradle-v4_2/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/MainActivity.java deleted file mode 100644 index 0eb4ec7b4..000000000 --- a/booster-android-gradle-v4_2/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/MainActivity.java +++ /dev/null @@ -1,6 +0,0 @@ -package com.didiglobal.booster.android.test; - -import android.app.Activity; - -public class MainActivity extends Activity { -} \ No newline at end of file diff --git a/booster-android-gradle-v4_2/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/TestApplication.java b/booster-android-gradle-v4_2/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/TestApplication.java deleted file mode 100644 index 3ecfb1507..000000000 --- a/booster-android-gradle-v4_2/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/TestApplication.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.didiglobal.booster.android.test; - -import android.app.Application; - -public class TestApplication extends Application { - -} \ No newline at end of file diff --git a/booster-android-gradle-v4_2/src/integrationTest/resources/src/main/res/values/strings.xml b/booster-android-gradle-v4_2/src/integrationTest/resources/src/main/res/values/strings.xml deleted file mode 100644 index 8b2247616..000000000 --- a/booster-android-gradle-v4_2/src/integrationTest/resources/src/main/res/values/strings.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - Test - \ No newline at end of file diff --git a/booster-android-gradle-v4_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42.kt b/booster-android-gradle-v4_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42.kt deleted file mode 100644 index 1af49b16d..000000000 --- a/booster-android-gradle-v4_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42.kt +++ /dev/null @@ -1,300 +0,0 @@ -package com.didiglobal.booster.android.gradle.v4_2 - -import com.android.build.api.artifact.Artifact -import com.android.build.api.artifact.ArtifactType -import com.android.build.api.artifact.MultipleArtifactType -import com.android.build.api.artifact.impl.ArtifactsImpl -import com.android.build.api.component.impl.ComponentImpl -import com.android.build.api.transform.Context -import com.android.build.api.transform.QualifiedContent -import com.android.build.gradle.api.ApplicationVariant -import com.android.build.gradle.api.BaseVariant -import com.android.build.gradle.api.LibraryVariant -import com.android.build.gradle.internal.api.BaseVariantImpl -import com.android.build.gradle.internal.pipeline.TransformManager -import com.android.build.gradle.internal.pipeline.TransformTask -import com.android.build.gradle.internal.publishing.AndroidArtifacts -import com.android.build.gradle.internal.publishing.AndroidArtifacts.ArtifactScope -import com.android.build.gradle.internal.scope.AnchorOutputType -import com.android.build.gradle.internal.scope.GlobalScope -import com.android.build.gradle.internal.scope.InternalArtifactType -import com.android.build.gradle.internal.scope.InternalMultipleArtifactType -import com.android.build.gradle.internal.scope.VariantScope -import com.android.build.gradle.internal.variant.BaseVariantData -import com.android.builder.core.DefaultApiVersion -import com.android.builder.core.VariantType -import com.android.builder.model.ApiVersion -import com.android.sdklib.BuildToolInfo -import com.didiglobal.booster.gradle.AGPInterface -import org.gradle.api.Project -import org.gradle.api.Task -import org.gradle.api.artifacts.ArtifactCollection -import org.gradle.api.artifacts.component.ComponentIdentifier -import org.gradle.api.artifacts.result.ResolvedArtifactResult -import org.gradle.api.artifacts.result.ResolvedDependencyResult -import org.gradle.api.file.FileCollection -import org.gradle.api.file.FileSystemLocation -import org.gradle.api.tasks.TaskProvider -import java.io.File -import java.util.TreeMap - -@Suppress("UnstableApiUsage") -private val SINGLE_ARTIFACT_TYPES = arrayOf( - ArtifactType::class, - AnchorOutputType::class, - InternalArtifactType::class -).map { - it.sealedSubclasses -}.flatten().map { - it.objectInstance as Artifact.SingleArtifact -}.associateBy { - it.javaClass.simpleName -} - -@Suppress("UnstableApiUsage") -private val MULTIPLE_ARTIFACT_TYPES = arrayOf( - MultipleArtifactType::class, - InternalMultipleArtifactType::class -).map { - it.sealedSubclasses -}.flatten().map { - it.objectInstance as Artifact.MultipleArtifact -}.associateBy { - it.javaClass.simpleName -} - -internal object V42 : AGPInterface { - - private val BaseVariant.component: ComponentImpl - get() = BaseVariantImpl::class.java.getDeclaredField("component").apply { - isAccessible = true - }.get(this) as ComponentImpl - - @Suppress("UnstableApiUsage") - private fun BaseVariant.getFinalArtifactFiles(type: Artifact.SingleArtifact): FileCollection { - return try { - project.objects.fileCollection().from(artifacts.get(type).get()) - } catch (e: Throwable) { - project.logger.warn(e.message, e) - project.objects.fileCollection().builtBy(artifacts.get(type)) - } - } - - @Suppress("UnstableApiUsage") - private fun BaseVariant.getFinalArtifactFiles(type: Artifact.MultipleArtifact): FileCollection { - return try { - project.objects.fileCollection().from(artifacts.getAll(type)) - } catch (e: Throwable) { - project.logger.warn(e.message, e) - project.objects.fileCollection().builtBy(artifacts.getAll(type)) - } - } - - @Suppress("UnstableApiUsage") - private val BaseVariant.artifacts: ArtifactsImpl - get() = component.artifacts - - override val scopeFullWithFeatures: MutableSet - get() = TransformManager.SCOPE_FULL_WITH_FEATURES - - override val scopeFullLibraryWithFeatures: MutableSet - get() = (TransformManager.SCOPE_FEATURES + QualifiedContent.Scope.PROJECT).toMutableSet() - - override val BaseVariant.project: Project - get() = globalScope.project - - override val BaseVariant.javaCompilerTaskProvider: TaskProvider - get() = javaCompileProvider - - override val BaseVariant.preBuildTaskProvider: TaskProvider - get() = preBuildProvider - - override val BaseVariant.assembleTaskProvider: TaskProvider - get() = assembleProvider - - override val BaseVariant.mergeAssetsTaskProvider: TaskProvider - get() = mergeAssetsProvider - - override val BaseVariant.mergeResourcesTaskProvider: TaskProvider - get() = try { - project.tasks.named(getTaskName("merge", "Resources")) - } catch (e: Throwable) { - mergeResourcesProvider - } - - override val BaseVariant.mergeNativeLibsTaskProvider: TaskProvider - get() = project.tasks.named(getTaskName("merge", "NativeLibs")) - - override val BaseVariant.processJavaResourcesTaskProvider: TaskProvider - get() = processJavaResourcesProvider - - override fun BaseVariant.getTaskName(prefix: String): String { - return component.computeTaskName(prefix) - } - - override fun BaseVariant.getTaskName(prefix: String, suffix: String): String { - return component.computeTaskName(prefix, suffix) - } - - override val BaseVariant.variantData: BaseVariantData - get() = javaClass.getDeclaredMethod("getVariantData").apply { - isAccessible = true - }.invoke(this) as BaseVariantData - - val BaseVariant.variantScope: VariantScope - get() = component.variantScope - - @Suppress("DEPRECATION") - private val BaseVariant.globalScope: GlobalScope - get() = component.globalScope - - override val BaseVariant.originalApplicationId: String - get() = component.variantDslInfo.packageName.get() - - override val BaseVariant.hasDynamicFeature: Boolean - get() = globalScope.hasDynamicFeatures() - - override val BaseVariant.rawAndroidResources: FileCollection - get() = component.variantData.allRawAndroidResources - - override val BaseVariant.localAndroidResources: FileCollection - get() = component.variantData.androidResources.values.reduce { collection, file -> - collection.plus(file) - } - - override fun BaseVariant.getArtifactCollection( - configType: AndroidArtifacts.ConsumedConfigType, - scope: ArtifactScope, - artifactType: AndroidArtifacts.ArtifactType - ): ArtifactCollection { - return component.variantDependencies.getArtifactCollection(configType, scope, artifactType) - } - - override fun BaseVariant.getArtifactFileCollection( - configType: AndroidArtifacts.ConsumedConfigType, - scope: ArtifactScope, - artifactType: AndroidArtifacts.ArtifactType - ): FileCollection { - return component.variantDependencies.getArtifactFileCollection(configType, scope, artifactType) - } - - override val BaseVariant.allArtifacts: Map - get() = TreeMap().also { all -> - SINGLE_ARTIFACT_TYPES.entries.associateTo(all) { (name, type) -> - val artifacts: FileCollection by lazy { - getFinalArtifactFiles(type) - } - name to artifacts - } - MULTIPLE_ARTIFACT_TYPES.entries.associateTo(all) { (name, type) -> - val artifacts: FileCollection by lazy { - getFinalArtifactFiles(type) - } - name to artifacts - } - } - - override val BaseVariant.minSdkVersion: ApiVersion - get() = DefaultApiVersion(component.minSdkVersion.apiLevel) - - override val BaseVariant.targetSdkVersion: ApiVersion - get() = component.targetSdkVersion - - private val BaseVariant.variantType: VariantType - get() = component.variantType - - override val BaseVariant.isApplication: Boolean - get() = variantType.isApk - - override val BaseVariant.isLibrary: Boolean - get() = variantType.isAar - - override val BaseVariant.isDynamicFeature: Boolean - get() = variantType.isDynamicFeature - - override val BaseVariant.aar: FileCollection - get() = getFinalArtifactFiles(ArtifactType.AAR) - - override val BaseVariant.apk: FileCollection - get() = getFinalArtifactFiles(ArtifactType.APK) - - override val BaseVariant.mergedManifests: FileCollection - get() = getFinalArtifactFiles(ArtifactType.MERGED_MANIFEST) - - override val BaseVariant.mergedRes: FileCollection - get() = getFinalArtifactFiles(InternalArtifactType.MERGED_RES) - - override val BaseVariant.mergedNativeLibs: FileCollection - get() = getFinalArtifactFiles(InternalArtifactType.MERGED_NATIVE_LIBS) - - override val BaseVariant.mergedAssets: FileCollection - get() = when (this) { - is ApplicationVariant -> getFinalArtifactFiles(InternalArtifactType.MERGED_ASSETS) - is LibraryVariant -> getFinalArtifactFiles(InternalArtifactType.LIBRARY_ASSETS) - else -> TODO("Unsupported variant type: $variantType") - } - - override val BaseVariant.processedRes: FileCollection - get() = getFinalArtifactFiles(InternalArtifactType.PROCESSED_RES) - - override val BaseVariant.symbolList: FileCollection - get() = when (this) { - is ApplicationVariant -> getFinalArtifactFiles(InternalArtifactType.RUNTIME_SYMBOL_LIST) - is LibraryVariant -> getFinalArtifactFiles(InternalArtifactType.COMPILE_SYMBOL_LIST) - else -> TODO("Unsupported variant type : $variantType") - } - - override val BaseVariant.symbolListWithPackageName: FileCollection - get() = getFinalArtifactFiles(InternalArtifactType.SYMBOL_LIST_WITH_PACKAGE_NAME) - - override val BaseVariant.dataBindingDependencyArtifacts: FileCollection - get() = getFinalArtifactFiles(InternalArtifactType.DATA_BINDING_DEPENDENCY_ARTIFACTS) - - override val BaseVariant.allClasses: FileCollection - get() = when (this) { - is ApplicationVariant -> getFinalArtifactFiles(InternalArtifactType.JAVAC) + project.files("build${File.separator}tmp${File.separator}kotlin-classes${File.separator}${dirName}") - is LibraryVariant -> getFinalArtifactFiles(InternalArtifactType.AAR_MAIN_JAR) - else -> project.files() - } - - override val BaseVariant.buildTools: BuildToolInfo - get() = globalScope.versionedSdkLoader.get().buildToolInfoProvider.get() - - override val BaseVariant.isPrecompileDependenciesResourcesEnabled: Boolean - get() = component.isPrecompileDependenciesResourcesEnabled - - override fun BaseVariant.getDependencies(transitive: Boolean, filter: (ComponentIdentifier) -> Boolean): Collection { - val all = getArtifactCollection( - AndroidArtifacts.ConsumedConfigType.RUNTIME_CLASSPATH, - AndroidArtifacts.ArtifactScope.ALL, - AndroidArtifacts.ArtifactType.CLASSES_JAR - ).filter { result -> - filter(result.id.componentIdentifier) - }.associateBy { - it.id.componentIdentifier.displayName - } - val result = if (!transitive) { - runtimeConfiguration.incoming.resolutionResult.root.dependencies.filterIsInstance().mapNotNull { - it.selected.id.displayName.takeIf { id -> id in all.keys } - }.associateWith { - all[it]!! - } - } else { - all - } - return result.values.toSet() - } - - override val Context.task: TransformTask - get() = javaClass.getDeclaredField("this$1").apply { - isAccessible = true - }.get(this).run { - javaClass.getDeclaredField("this$0").apply { - isAccessible = true - }.get(this) - } as TransformTask - - override val Project.aapt2Enabled: Boolean - get() = true - -} diff --git a/booster-android-gradle-v4_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42Factory.kt b/booster-android-gradle-v4_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42Factory.kt deleted file mode 100644 index e62782bf6..000000000 --- a/booster-android-gradle-v4_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v4_2/V42Factory.kt +++ /dev/null @@ -1,15 +0,0 @@ -package com.didiglobal.booster.android.gradle.v4_2 - -import com.android.repository.Revision -import com.didiglobal.booster.gradle.AGPInterface -import com.didiglobal.booster.gradle.AGPInterfaceFactory -import com.google.auto.service.AutoService - -@AutoService(AGPInterfaceFactory::class) -class V42Factory : AGPInterfaceFactory { - - override val revision: Revision = Revision(4, 2, 0) - - override fun newAGPInterface(): AGPInterface = V42 - -} diff --git a/booster-android-gradle-v7_0/src/integrationTest/resources/app.gradle b/booster-android-gradle-v7_0/src/integrationTest/resources/app.gradle deleted file mode 100644 index aa3c5f2d6..000000000 --- a/booster-android-gradle-v7_0/src/integrationTest/resources/app.gradle +++ /dev/null @@ -1,60 +0,0 @@ -buildscript { - repositories { - mavenLocal() - mavenCentral() - google() - maven { url 'https://oss.sonatype.org/content/repositories/public/' } - maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } - } - dependencies { - classpath "com.android.tools.build:gradle:${project.android_gradle_version}" - classpath("com.didiglobal.booster:booster-gradle-plugin:${project.booster_version}") { - exclude group: 'com.google.guava' - } - classpath "io.bootstage.testkit:testkit-gradle-plugin:1.4.0" - } -} - -apply plugin: 'com.android.application' -apply plugin: 'com.didiglobal.booster' -apply plugin: 'io.bootstage.testkit' - -android { - compileSdkVersion project.compile_sdk_version as Integer - buildToolsVersion project.build_tools_version - defaultConfig { - applicationId 'com.didiglobal.booster.test' - minSdkVersion project.min_sdk_version as Integer - targetSdkVersion project.target_sdk_version as Integer - versionCode 1 - versionName "1.0" - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - } - buildTypes { - debug { - minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' - } - } - flavorDimensions 'lang' - productFlavors { - en { - dimension 'lang' - applicationIdSuffix '.en' - } - cn { - dimension 'lang' - applicationIdSuffix '.cn' - } - } - lintOptions { - checkReleaseBuilds false - } -} - -repositories { - mavenLocal() - mavenCentral() - google() - maven { url 'https://oss.sonatype.org/content/repositories/public/' } -} diff --git a/booster-android-gradle-v7_0/src/integrationTest/resources/buildSrc/build.gradle b/booster-android-gradle-v7_0/src/integrationTest/resources/buildSrc/build.gradle deleted file mode 100644 index 79a9b104a..000000000 --- a/booster-android-gradle-v7_0/src/integrationTest/resources/buildSrc/build.gradle +++ /dev/null @@ -1,24 +0,0 @@ -buildscript { - repositories { - mavenLocal() - mavenCentral() - google() - maven { url 'https://oss.sonatype.org/content/repositories/public/' } - maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } - } -} - -repositories { - mavenLocal() - mavenCentral() - google() - maven { url 'https://oss.sonatype.org/content/repositories/public/' } -} - -dependencies { - implementation "com.android.tools.build:gradle:${project.android_gradle_version}" - implementation("com.didiglobal.booster:booster-android-gradle-api:${project.booster_version}") { - exclude group: 'com.google.guava' - } - implementation "io.bootstage.testkit:testkit-gradle-plugin:1.4.0" -} diff --git a/booster-android-gradle-v7_0/src/integrationTest/resources/lib.gradle b/booster-android-gradle-v7_0/src/integrationTest/resources/lib.gradle deleted file mode 100644 index adc9b1ca0..000000000 --- a/booster-android-gradle-v7_0/src/integrationTest/resources/lib.gradle +++ /dev/null @@ -1,57 +0,0 @@ -buildscript { - repositories { - mavenLocal() - mavenCentral() - google() - maven { url 'https://oss.sonatype.org/content/repositories/public/' } - maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } - } - dependencies { - classpath "com.android.tools.build:gradle:${project.android_gradle_version}" - classpath("com.didiglobal.booster:booster-gradle-plugin:${project.booster_version}") { - exclude group: 'com.google.guava' - } - classpath "io.bootstage.testkit:testkit-gradle-plugin:1.4.0" - } -} - -apply plugin: 'com.android.library' -apply plugin: 'com.didiglobal.booster' -apply plugin: 'io.bootstage.testkit' - -android { - compileSdkVersion project.compile_sdk_version as Integer - buildToolsVersion project.build_tools_version - defaultConfig { - minSdkVersion project.min_sdk_version as Integer - targetSdkVersion project.target_sdk_version as Integer - versionCode 1 - versionName "1.0" - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - } - buildTypes { - debug { - minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' - } - } - flavorDimensions 'lang' - productFlavors { - en { - dimension 'lang' - } - cn { - dimension 'lang' - } - } - lintOptions { - checkReleaseBuilds false - } -} - -repositories { - mavenLocal() - mavenCentral() - google() - maven { url 'https://oss.sonatype.org/content/repositories/public/' } -} diff --git a/booster-android-gradle-v7_0/src/integrationTest/resources/src/main/AndroidManifest.xml b/booster-android-gradle-v7_0/src/integrationTest/resources/src/main/AndroidManifest.xml deleted file mode 100644 index 30800c604..000000000 --- a/booster-android-gradle-v7_0/src/integrationTest/resources/src/main/AndroidManifest.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/booster-android-gradle-v7_0/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/MainActivity.java b/booster-android-gradle-v7_0/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/MainActivity.java deleted file mode 100644 index 0eb4ec7b4..000000000 --- a/booster-android-gradle-v7_0/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/MainActivity.java +++ /dev/null @@ -1,6 +0,0 @@ -package com.didiglobal.booster.android.test; - -import android.app.Activity; - -public class MainActivity extends Activity { -} \ No newline at end of file diff --git a/booster-android-gradle-v7_0/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/TestApplication.java b/booster-android-gradle-v7_0/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/TestApplication.java deleted file mode 100644 index 3ecfb1507..000000000 --- a/booster-android-gradle-v7_0/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/TestApplication.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.didiglobal.booster.android.test; - -import android.app.Application; - -public class TestApplication extends Application { - -} \ No newline at end of file diff --git a/booster-android-gradle-v7_0/src/integrationTest/resources/src/main/res/values/strings.xml b/booster-android-gradle-v7_0/src/integrationTest/resources/src/main/res/values/strings.xml deleted file mode 100644 index 8b2247616..000000000 --- a/booster-android-gradle-v7_0/src/integrationTest/resources/src/main/res/values/strings.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - Test - \ No newline at end of file diff --git a/booster-android-gradle-v7_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_0/V70.kt b/booster-android-gradle-v7_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_0/V70.kt deleted file mode 100644 index 29e088279..000000000 --- a/booster-android-gradle-v7_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_0/V70.kt +++ /dev/null @@ -1,308 +0,0 @@ -package com.didiglobal.booster.android.gradle.v7_0 - -import com.android.build.api.artifact.Artifact -import com.android.build.api.artifact.MultipleArtifact -import com.android.build.api.artifact.SingleArtifact -import com.android.build.api.artifact.impl.ArtifactsImpl -import com.android.build.api.component.impl.ComponentImpl -import com.android.build.api.transform.Context -import com.android.build.api.transform.QualifiedContent -import com.android.build.gradle.api.ApplicationVariant -import com.android.build.gradle.api.BaseVariant -import com.android.build.gradle.api.LibraryVariant -import com.android.build.gradle.internal.api.BaseVariantImpl -import com.android.build.gradle.internal.api.artifact.SourceArtifactType -import com.android.build.gradle.internal.pipeline.TransformManager -import com.android.build.gradle.internal.pipeline.TransformTask -import com.android.build.gradle.internal.publishing.AndroidArtifacts -import com.android.build.gradle.internal.publishing.AndroidArtifacts.ArtifactScope -import com.android.build.gradle.internal.scope.AnchorOutputType -import com.android.build.gradle.internal.scope.BuildArtifactType -import com.android.build.gradle.internal.scope.GlobalScope -import com.android.build.gradle.internal.scope.InternalArtifactType -import com.android.build.gradle.internal.scope.InternalMultipleArtifactType -import com.android.build.gradle.internal.scope.VariantScope -import com.android.build.gradle.internal.variant.BaseVariantData -import com.android.builder.core.DefaultApiVersion -import com.android.builder.core.VariantType -import com.android.builder.model.ApiVersion -import com.android.sdklib.BuildToolInfo -import com.didiglobal.booster.gradle.AGPInterface -import org.gradle.api.Project -import org.gradle.api.Task -import org.gradle.api.artifacts.ArtifactCollection -import org.gradle.api.artifacts.component.ComponentIdentifier -import org.gradle.api.artifacts.result.ResolvedArtifactResult -import org.gradle.api.artifacts.result.ResolvedDependencyResult -import org.gradle.api.file.FileCollection -import org.gradle.api.file.FileSystemLocation -import org.gradle.api.tasks.TaskProvider -import java.io.File -import java.util.TreeMap - -@Suppress("UnstableApiUsage") -private val SINGLE_ARTIFACT_TYPES = arrayOf( - AnchorOutputType::class, - BuildArtifactType::class, - InternalArtifactType::class, - SingleArtifact::class, - SourceArtifactType::class -).map { - it.sealedSubclasses -}.flatten().map { - it.objectInstance as Artifact.Single -}.associateBy { - it.javaClass.simpleName -} - -private val MULTIPLE_ARTIFACT_TYPES = arrayOf( - MultipleArtifact::class, - InternalMultipleArtifactType::class -).map { - it.sealedSubclasses -}.flatten().map { - it.objectInstance as Artifact.Multiple -}.associateBy { - it.javaClass.simpleName -} - -@Suppress("DEPRECATION") -internal object V70 : AGPInterface { - - private val BaseVariant.component: ComponentImpl - get() = BaseVariantImpl::class.java.getDeclaredField("component").apply { - isAccessible = true - }.get(this) as ComponentImpl - - @Suppress("UnstableApiUsage") - private fun BaseVariant.getFinalArtifactFiles(type: Artifact.Single): FileCollection { - return try { - project.objects.fileCollection().from(artifacts.get(type)) - } catch (e: Throwable) { - project.logger.warn(e.message, e) - project.objects.fileCollection().builtBy(artifacts.get(type)) - } - } - - @Suppress("UnstableApiUsage") - private fun BaseVariant.getFinalArtifactFiles(type: Artifact.Multiple): FileCollection { - return try { - project.objects.fileCollection().from(artifacts.getAll(type)) - } catch (e: Throwable) { - project.logger.warn(e.message, e) - project.objects.fileCollection().builtBy(artifacts.getAll(type)) - } - } - - @Suppress("UnstableApiUsage") - private val BaseVariant.artifacts: ArtifactsImpl - get() = component.artifacts - - override val scopeFullWithFeatures: MutableSet - get() = TransformManager.SCOPE_FULL_WITH_FEATURES - - override val scopeFullLibraryWithFeatures: MutableSet - get() = (TransformManager.SCOPE_FEATURES + QualifiedContent.Scope.PROJECT).toMutableSet() - - override val BaseVariant.project: Project - get() = globalScope.run { - javaClass.getDeclaredField("project").apply { - isAccessible = true - }.get(this) as Project - } - - override val BaseVariant.javaCompilerTaskProvider: TaskProvider - get() = javaCompileProvider - - override val BaseVariant.preBuildTaskProvider: TaskProvider - get() = preBuildProvider - - override val BaseVariant.assembleTaskProvider: TaskProvider - get() = assembleProvider - - override val BaseVariant.mergeAssetsTaskProvider: TaskProvider - get() = mergeAssetsProvider - - override val BaseVariant.mergeResourcesTaskProvider: TaskProvider - get() = try { - project.tasks.named(getTaskName("merge", "Resources")) - } catch (e: Throwable) { - mergeResourcesProvider - } - - override val BaseVariant.mergeNativeLibsTaskProvider: TaskProvider - get() = project.tasks.named(getTaskName("merge", "NativeLibs")) - - override val BaseVariant.processJavaResourcesTaskProvider: TaskProvider - get() = processJavaResourcesProvider - - override fun BaseVariant.getTaskName(prefix: String): String { - return component.computeTaskName(prefix) - } - - override fun BaseVariant.getTaskName(prefix: String, suffix: String): String { - return component.computeTaskName(prefix, suffix) - } - - override val BaseVariant.variantData: BaseVariantData - get() = javaClass.getDeclaredMethod("getVariantData").apply { - isAccessible = true - }.invoke(this) as BaseVariantData - - val BaseVariant.variantScope: VariantScope - get() = component.variantScope - - @Suppress("DEPRECATION") - private val BaseVariant.globalScope: GlobalScope - get() = component.globalScope - - override val BaseVariant.originalApplicationId: String - get() = component.variantDslInfo.namespace.get() - - override val BaseVariant.hasDynamicFeature: Boolean - get() = globalScope.hasDynamicFeatures() - - override val BaseVariant.rawAndroidResources: FileCollection - get() = component.variantData.allRawAndroidResources - - override val BaseVariant.localAndroidResources: FileCollection - get() = component.variantData.androidResources.values.reduce { collection, file -> - collection.plus(file) - } - - override fun BaseVariant.getArtifactCollection( - configType: AndroidArtifacts.ConsumedConfigType, - scope: ArtifactScope, - artifactType: AndroidArtifacts.ArtifactType - ): ArtifactCollection { - return component.variantDependencies.getArtifactCollection(configType, scope, artifactType) - } - - override fun BaseVariant.getArtifactFileCollection( - configType: AndroidArtifacts.ConsumedConfigType, - scope: ArtifactScope, - artifactType: AndroidArtifacts.ArtifactType - ): FileCollection { - return component.variantDependencies.getArtifactFileCollection(configType, scope, artifactType) - } - - override val BaseVariant.allArtifacts: Map - get() = TreeMap().also { all -> - SINGLE_ARTIFACT_TYPES.entries.associateTo(all) { (name, type) -> - val artifacts: FileCollection by lazy { - getFinalArtifactFiles(type) - } - name to artifacts - } - MULTIPLE_ARTIFACT_TYPES.entries.associateTo(all) { (name, type) -> - val artifacts: FileCollection by lazy { - getFinalArtifactFiles(type) - } - name to artifacts - } - } - - override val BaseVariant.minSdkVersion: ApiVersion - get() = DefaultApiVersion(component.minSdkVersion.apiLevel) - - override val BaseVariant.targetSdkVersion: ApiVersion - get() = component.variantDslInfo.targetSdkVersion - - private val BaseVariant.variantType: VariantType - get() = component.variantType - - override val BaseVariant.isApplication: Boolean - get() = variantType.isApk - - override val BaseVariant.isLibrary: Boolean - get() = variantType.isAar - - override val BaseVariant.isDynamicFeature: Boolean - get() = variantType.isDynamicFeature - - override val BaseVariant.aar: FileCollection - get() = getFinalArtifactFiles(SingleArtifact.AAR) - - override val BaseVariant.apk: FileCollection - get() = getFinalArtifactFiles(SingleArtifact.APK) - - override val BaseVariant.mergedManifests: FileCollection - get() = getFinalArtifactFiles(SingleArtifact.MERGED_MANIFEST) - - override val BaseVariant.mergedRes: FileCollection - get() = getFinalArtifactFiles(InternalArtifactType.MERGED_RES) - - override val BaseVariant.mergedNativeLibs: FileCollection - get() = getFinalArtifactFiles(InternalArtifactType.MERGED_NATIVE_LIBS) - - override val BaseVariant.mergedAssets: FileCollection - get() = when (this) { - is ApplicationVariant -> getFinalArtifactFiles(InternalArtifactType.MERGED_ASSETS) - is LibraryVariant -> getFinalArtifactFiles(InternalArtifactType.LIBRARY_ASSETS) - else -> TODO("Unsupported variant type: $variantType") - } - - override val BaseVariant.processedRes: FileCollection - get() = getFinalArtifactFiles(InternalArtifactType.PROCESSED_RES) - - override val BaseVariant.symbolList: FileCollection - get() = when (this) { - is ApplicationVariant -> getFinalArtifactFiles(InternalArtifactType.RUNTIME_SYMBOL_LIST) - is LibraryVariant -> getFinalArtifactFiles(InternalArtifactType.COMPILE_SYMBOL_LIST) - else -> TODO("Unsupported variant type : $variantType") - } - - override val BaseVariant.symbolListWithPackageName: FileCollection - get() = getFinalArtifactFiles(InternalArtifactType.SYMBOL_LIST_WITH_PACKAGE_NAME) - - override val BaseVariant.dataBindingDependencyArtifacts: FileCollection - get() = getFinalArtifactFiles(InternalArtifactType.DATA_BINDING_DEPENDENCY_ARTIFACTS) - - override val BaseVariant.allClasses: FileCollection - get() = when (this) { - is ApplicationVariant -> getFinalArtifactFiles(InternalArtifactType.JAVAC) + project.files("build${File.separator}tmp${File.separator}kotlin-classes${File.separator}${dirName}") - is LibraryVariant -> getFinalArtifactFiles(InternalArtifactType.AAR_MAIN_JAR) - else -> project.files() - } - - override val BaseVariant.buildTools: BuildToolInfo - get() = globalScope.versionedSdkLoader.get().buildToolInfoProvider.get() - - override val BaseVariant.isPrecompileDependenciesResourcesEnabled: Boolean - get() = component.isPrecompileDependenciesResourcesEnabled - - override fun BaseVariant.getDependencies(transitive: Boolean, filter: (ComponentIdentifier) -> Boolean): Collection { - val all = getArtifactCollection( - AndroidArtifacts.ConsumedConfigType.RUNTIME_CLASSPATH, - AndroidArtifacts.ArtifactScope.ALL, - AndroidArtifacts.ArtifactType.CLASSES_JAR - ).filter { result -> - filter(result.id.componentIdentifier) - }.associateBy { - it.id.componentIdentifier.displayName - } - val result = if (!transitive) { - runtimeConfiguration.incoming.resolutionResult.root.dependencies.filterIsInstance().mapNotNull { - it.selected.id.displayName.takeIf { id -> id in all.keys } - }.associateWith { - all[it]!! - } - } else { - all - } - return result.values.toSet() - } - - override val Context.task: TransformTask - get() = javaClass.getDeclaredField("this$1").apply { - isAccessible = true - }.get(this).run { - javaClass.getDeclaredField("this$0").apply { - isAccessible = true - }.get(this) - } as TransformTask - - override val Project.aapt2Enabled: Boolean - get() = true - -} diff --git a/booster-android-gradle-v7_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_0/V70Factory.kt b/booster-android-gradle-v7_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_0/V70Factory.kt deleted file mode 100644 index 2d91acecc..000000000 --- a/booster-android-gradle-v7_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_0/V70Factory.kt +++ /dev/null @@ -1,15 +0,0 @@ -package com.didiglobal.booster.android.gradle.v7_0 - -import com.android.repository.Revision -import com.didiglobal.booster.gradle.AGPInterface -import com.didiglobal.booster.gradle.AGPInterfaceFactory -import com.google.auto.service.AutoService - -@AutoService(AGPInterfaceFactory::class) -class V70Factory : AGPInterfaceFactory { - - override val revision: Revision = Revision(7, 0, 0) - - override fun newAGPInterface(): AGPInterface = V70 - -} diff --git a/booster-android-gradle-v7_1/src/integrationTest/resources/app.gradle b/booster-android-gradle-v7_1/src/integrationTest/resources/app.gradle deleted file mode 100644 index aa3c5f2d6..000000000 --- a/booster-android-gradle-v7_1/src/integrationTest/resources/app.gradle +++ /dev/null @@ -1,60 +0,0 @@ -buildscript { - repositories { - mavenLocal() - mavenCentral() - google() - maven { url 'https://oss.sonatype.org/content/repositories/public/' } - maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } - } - dependencies { - classpath "com.android.tools.build:gradle:${project.android_gradle_version}" - classpath("com.didiglobal.booster:booster-gradle-plugin:${project.booster_version}") { - exclude group: 'com.google.guava' - } - classpath "io.bootstage.testkit:testkit-gradle-plugin:1.4.0" - } -} - -apply plugin: 'com.android.application' -apply plugin: 'com.didiglobal.booster' -apply plugin: 'io.bootstage.testkit' - -android { - compileSdkVersion project.compile_sdk_version as Integer - buildToolsVersion project.build_tools_version - defaultConfig { - applicationId 'com.didiglobal.booster.test' - minSdkVersion project.min_sdk_version as Integer - targetSdkVersion project.target_sdk_version as Integer - versionCode 1 - versionName "1.0" - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - } - buildTypes { - debug { - minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' - } - } - flavorDimensions 'lang' - productFlavors { - en { - dimension 'lang' - applicationIdSuffix '.en' - } - cn { - dimension 'lang' - applicationIdSuffix '.cn' - } - } - lintOptions { - checkReleaseBuilds false - } -} - -repositories { - mavenLocal() - mavenCentral() - google() - maven { url 'https://oss.sonatype.org/content/repositories/public/' } -} diff --git a/booster-android-gradle-v7_1/src/integrationTest/resources/buildSrc/build.gradle b/booster-android-gradle-v7_1/src/integrationTest/resources/buildSrc/build.gradle deleted file mode 100644 index 79a9b104a..000000000 --- a/booster-android-gradle-v7_1/src/integrationTest/resources/buildSrc/build.gradle +++ /dev/null @@ -1,24 +0,0 @@ -buildscript { - repositories { - mavenLocal() - mavenCentral() - google() - maven { url 'https://oss.sonatype.org/content/repositories/public/' } - maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } - } -} - -repositories { - mavenLocal() - mavenCentral() - google() - maven { url 'https://oss.sonatype.org/content/repositories/public/' } -} - -dependencies { - implementation "com.android.tools.build:gradle:${project.android_gradle_version}" - implementation("com.didiglobal.booster:booster-android-gradle-api:${project.booster_version}") { - exclude group: 'com.google.guava' - } - implementation "io.bootstage.testkit:testkit-gradle-plugin:1.4.0" -} diff --git a/booster-android-gradle-v7_1/src/integrationTest/resources/lib.gradle b/booster-android-gradle-v7_1/src/integrationTest/resources/lib.gradle deleted file mode 100644 index adc9b1ca0..000000000 --- a/booster-android-gradle-v7_1/src/integrationTest/resources/lib.gradle +++ /dev/null @@ -1,57 +0,0 @@ -buildscript { - repositories { - mavenLocal() - mavenCentral() - google() - maven { url 'https://oss.sonatype.org/content/repositories/public/' } - maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } - } - dependencies { - classpath "com.android.tools.build:gradle:${project.android_gradle_version}" - classpath("com.didiglobal.booster:booster-gradle-plugin:${project.booster_version}") { - exclude group: 'com.google.guava' - } - classpath "io.bootstage.testkit:testkit-gradle-plugin:1.4.0" - } -} - -apply plugin: 'com.android.library' -apply plugin: 'com.didiglobal.booster' -apply plugin: 'io.bootstage.testkit' - -android { - compileSdkVersion project.compile_sdk_version as Integer - buildToolsVersion project.build_tools_version - defaultConfig { - minSdkVersion project.min_sdk_version as Integer - targetSdkVersion project.target_sdk_version as Integer - versionCode 1 - versionName "1.0" - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - } - buildTypes { - debug { - minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' - } - } - flavorDimensions 'lang' - productFlavors { - en { - dimension 'lang' - } - cn { - dimension 'lang' - } - } - lintOptions { - checkReleaseBuilds false - } -} - -repositories { - mavenLocal() - mavenCentral() - google() - maven { url 'https://oss.sonatype.org/content/repositories/public/' } -} diff --git a/booster-android-gradle-v7_1/src/integrationTest/resources/src/main/AndroidManifest.xml b/booster-android-gradle-v7_1/src/integrationTest/resources/src/main/AndroidManifest.xml deleted file mode 100644 index 30800c604..000000000 --- a/booster-android-gradle-v7_1/src/integrationTest/resources/src/main/AndroidManifest.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/booster-android-gradle-v7_1/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/MainActivity.java b/booster-android-gradle-v7_1/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/MainActivity.java deleted file mode 100644 index 0eb4ec7b4..000000000 --- a/booster-android-gradle-v7_1/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/MainActivity.java +++ /dev/null @@ -1,6 +0,0 @@ -package com.didiglobal.booster.android.test; - -import android.app.Activity; - -public class MainActivity extends Activity { -} \ No newline at end of file diff --git a/booster-android-gradle-v7_1/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/TestApplication.java b/booster-android-gradle-v7_1/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/TestApplication.java deleted file mode 100644 index 3ecfb1507..000000000 --- a/booster-android-gradle-v7_1/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/TestApplication.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.didiglobal.booster.android.test; - -import android.app.Application; - -public class TestApplication extends Application { - -} \ No newline at end of file diff --git a/booster-android-gradle-v7_1/src/integrationTest/resources/src/main/res/values/strings.xml b/booster-android-gradle-v7_1/src/integrationTest/resources/src/main/res/values/strings.xml deleted file mode 100644 index 8b2247616..000000000 --- a/booster-android-gradle-v7_1/src/integrationTest/resources/src/main/res/values/strings.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - Test - \ No newline at end of file diff --git a/booster-android-gradle-v7_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_1/V71.kt b/booster-android-gradle-v7_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_1/V71.kt deleted file mode 100644 index 772453781..000000000 --- a/booster-android-gradle-v7_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_1/V71.kt +++ /dev/null @@ -1,304 +0,0 @@ -package com.didiglobal.booster.android.gradle.v7_1 - -import com.android.build.api.artifact.Artifact -import com.android.build.api.artifact.MultipleArtifact -import com.android.build.api.artifact.SingleArtifact -import com.android.build.api.artifact.impl.ArtifactsImpl -import com.android.build.api.component.impl.ComponentImpl -import com.android.build.api.transform.Context -import com.android.build.api.transform.QualifiedContent -import com.android.build.gradle.api.ApplicationVariant -import com.android.build.gradle.api.BaseVariant -import com.android.build.gradle.api.LibraryVariant -import com.android.build.gradle.internal.api.BaseVariantImpl -import com.android.build.gradle.internal.api.artifact.SourceArtifactType -import com.android.build.gradle.internal.pipeline.TransformManager -import com.android.build.gradle.internal.pipeline.TransformTask -import com.android.build.gradle.internal.publishing.AndroidArtifacts -import com.android.build.gradle.internal.publishing.AndroidArtifacts.ArtifactScope -import com.android.build.gradle.internal.scope.BuildArtifactType -import com.android.build.gradle.internal.scope.GlobalScope -import com.android.build.gradle.internal.scope.InternalArtifactType -import com.android.build.gradle.internal.scope.InternalMultipleArtifactType -import com.android.build.gradle.internal.scope.VariantScope -import com.android.build.gradle.internal.variant.BaseVariantData -import com.android.builder.core.DefaultApiVersion -import com.android.builder.core.VariantType -import com.android.builder.model.ApiVersion -import com.android.sdklib.BuildToolInfo -import com.didiglobal.booster.gradle.AGPInterface -import org.gradle.api.Project -import org.gradle.api.Task -import org.gradle.api.artifacts.ArtifactCollection -import org.gradle.api.artifacts.component.ComponentIdentifier -import org.gradle.api.artifacts.result.ResolvedArtifactResult -import org.gradle.api.artifacts.result.ResolvedDependencyResult -import org.gradle.api.file.FileCollection -import org.gradle.api.file.FileSystemLocation -import org.gradle.api.tasks.TaskProvider -import java.io.File -import java.util.TreeMap - -@Suppress("UnstableApiUsage") -private val SINGLE_ARTIFACT_TYPES = arrayOf( - BuildArtifactType::class, - InternalArtifactType::class, - SingleArtifact::class, - SourceArtifactType::class -).map { - it.sealedSubclasses -}.flatten().map { - it.objectInstance as Artifact.Single -}.associateBy { - it.javaClass.simpleName -} - -private val MULTIPLE_ARTIFACT_TYPES = arrayOf( - MultipleArtifact::class, - InternalMultipleArtifactType::class -).map { - it.sealedSubclasses -}.flatten().map { - it.objectInstance as Artifact.Multiple -}.associateBy { - it.javaClass.simpleName -} - -@Suppress("DEPRECATION") -internal object V71 : AGPInterface { - - private val BaseVariant.component: ComponentImpl - get() = BaseVariantImpl::class.java.getDeclaredField("component").apply { - isAccessible = true - }.get(this) as ComponentImpl - - @Suppress("UnstableApiUsage") - private fun BaseVariant.getFinalArtifactFiles(type: Artifact.Single): FileCollection { - return try { - project.objects.fileCollection().from(artifacts.get(type)) - } catch (e: Throwable) { - project.objects.fileCollection().builtBy(artifacts.get(type)) - } - } - - @Suppress("UnstableApiUsage") - private fun BaseVariant.getFinalArtifactFiles(type: Artifact.Multiple): FileCollection { - return try { - project.objects.fileCollection().from(artifacts.getAll(type)) - } catch (e: Throwable) { - project.objects.fileCollection().builtBy(artifacts.getAll(type)) - } - } - - @Suppress("UnstableApiUsage") - private val BaseVariant.artifacts: ArtifactsImpl - get() = component.artifacts - - override val scopeFullWithFeatures: MutableSet - get() = TransformManager.SCOPE_FULL_WITH_FEATURES - - override val scopeFullLibraryWithFeatures: MutableSet - get() = (TransformManager.SCOPE_FEATURES + QualifiedContent.Scope.PROJECT).toMutableSet() - - override val BaseVariant.project: Project - get() = globalScope.run { - javaClass.getDeclaredField("project").apply { - isAccessible = true - }.get(this) as Project - } - - override val BaseVariant.javaCompilerTaskProvider: TaskProvider - get() = javaCompileProvider - - override val BaseVariant.preBuildTaskProvider: TaskProvider - get() = preBuildProvider - - override val BaseVariant.assembleTaskProvider: TaskProvider - get() = assembleProvider - - override val BaseVariant.mergeAssetsTaskProvider: TaskProvider - get() = mergeAssetsProvider - - override val BaseVariant.mergeResourcesTaskProvider: TaskProvider - get() = try { - project.tasks.named(getTaskName("merge", "Resources")) - } catch (e: Throwable) { - mergeResourcesProvider - } - - override val BaseVariant.mergeNativeLibsTaskProvider: TaskProvider - get() = project.tasks.named(getTaskName("merge", "NativeLibs")) - - override val BaseVariant.processJavaResourcesTaskProvider: TaskProvider - get() = processJavaResourcesProvider - - override fun BaseVariant.getTaskName(prefix: String): String { - return component.computeTaskName(prefix) - } - - override fun BaseVariant.getTaskName(prefix: String, suffix: String): String { - return component.computeTaskName(prefix, suffix) - } - - override val BaseVariant.variantData: BaseVariantData - get() = javaClass.getDeclaredMethod("getVariantData").apply { - isAccessible = true - }.invoke(this) as BaseVariantData - - val BaseVariant.variantScope: VariantScope - get() = component.variantScope - - @Suppress("DEPRECATION") - private val BaseVariant.globalScope: GlobalScope - get() = component.globalScope - - override val BaseVariant.originalApplicationId: String - get() = component.variantDslInfo.namespace.get() - - override val BaseVariant.hasDynamicFeature: Boolean - get() = globalScope.hasDynamicFeatures() - - override val BaseVariant.rawAndroidResources: FileCollection - get() = component.variantData.allRawAndroidResources - - override val BaseVariant.localAndroidResources: FileCollection - get() = component.variantData.androidResources.values.reduce { collection, file -> - collection.plus(file) - } - - override fun BaseVariant.getArtifactCollection( - configType: AndroidArtifacts.ConsumedConfigType, - scope: ArtifactScope, - artifactType: AndroidArtifacts.ArtifactType - ): ArtifactCollection { - return component.variantDependencies.getArtifactCollection(configType, scope, artifactType) - } - - override fun BaseVariant.getArtifactFileCollection( - configType: AndroidArtifacts.ConsumedConfigType, - scope: ArtifactScope, - artifactType: AndroidArtifacts.ArtifactType - ): FileCollection { - return component.variantDependencies.getArtifactFileCollection(configType, scope, artifactType) - } - - override val BaseVariant.allArtifacts: Map - get() = TreeMap().also { all -> - SINGLE_ARTIFACT_TYPES.entries.associateTo(all) { (name, type) -> - val artifacts: FileCollection by lazy { - getFinalArtifactFiles(type) - } - name to artifacts - } - MULTIPLE_ARTIFACT_TYPES.entries.associateTo(all) { (name, type) -> - val artifacts: FileCollection by lazy { - getFinalArtifactFiles(type) - } - name to artifacts - } - } - - override val BaseVariant.minSdkVersion: ApiVersion - get() = DefaultApiVersion(component.minSdkVersion.apiLevel) - - override val BaseVariant.targetSdkVersion: ApiVersion - get() = DefaultApiVersion(component.targetSdkVersion.apiLevel) - - private val BaseVariant.variantType: VariantType - get() = component.variantType - - override val BaseVariant.isApplication: Boolean - get() = variantType.isApk - - override val BaseVariant.isLibrary: Boolean - get() = variantType.isAar - - override val BaseVariant.isDynamicFeature: Boolean - get() = variantType.isDynamicFeature - - override val BaseVariant.aar: FileCollection - get() = getFinalArtifactFiles(SingleArtifact.AAR) - - override val BaseVariant.apk: FileCollection - get() = getFinalArtifactFiles(SingleArtifact.APK) - - override val BaseVariant.mergedManifests: FileCollection - get() = getFinalArtifactFiles(SingleArtifact.MERGED_MANIFEST) - - override val BaseVariant.mergedRes: FileCollection - get() = getFinalArtifactFiles(InternalArtifactType.MERGED_RES) - - override val BaseVariant.mergedNativeLibs: FileCollection - get() = getFinalArtifactFiles(InternalArtifactType.MERGED_NATIVE_LIBS) - - override val BaseVariant.mergedAssets: FileCollection - get() = when (this) { - is ApplicationVariant -> getFinalArtifactFiles(InternalArtifactType.COMPRESSED_ASSETS) - is LibraryVariant -> getFinalArtifactFiles(InternalArtifactType.LIBRARY_ASSETS) - else -> TODO("Unsupported variant type: $variantType") - } - - override val BaseVariant.processedRes: FileCollection - get() = getFinalArtifactFiles(InternalArtifactType.PROCESSED_RES) - - override val BaseVariant.symbolList: FileCollection - get() = when (this) { - is ApplicationVariant -> getFinalArtifactFiles(InternalArtifactType.RUNTIME_SYMBOL_LIST) - is LibraryVariant -> getFinalArtifactFiles(InternalArtifactType.COMPILE_SYMBOL_LIST) - else -> TODO("Unsupported variant type : $variantType") - } - - override val BaseVariant.symbolListWithPackageName: FileCollection - get() = getFinalArtifactFiles(InternalArtifactType.SYMBOL_LIST_WITH_PACKAGE_NAME) - - override val BaseVariant.dataBindingDependencyArtifacts: FileCollection - get() = getFinalArtifactFiles(InternalArtifactType.DATA_BINDING_DEPENDENCY_ARTIFACTS) - - override val BaseVariant.allClasses: FileCollection - get() = when (this) { - is ApplicationVariant -> getFinalArtifactFiles(InternalArtifactType.JAVAC) + project.files("build${File.separator}tmp${File.separator}kotlin-classes${File.separator}${dirName}") - is LibraryVariant -> getFinalArtifactFiles(InternalArtifactType.AAR_MAIN_JAR) - else -> project.files() - } - - override val BaseVariant.buildTools: BuildToolInfo - get() = globalScope.versionedSdkLoader.get().buildToolInfoProvider.get() - - override val BaseVariant.isPrecompileDependenciesResourcesEnabled: Boolean - get() = component.isPrecompileDependenciesResourcesEnabled - - override fun BaseVariant.getDependencies(transitive: Boolean, filter: (ComponentIdentifier) -> Boolean): Collection { - val all = getArtifactCollection( - AndroidArtifacts.ConsumedConfigType.RUNTIME_CLASSPATH, - AndroidArtifacts.ArtifactScope.ALL, - AndroidArtifacts.ArtifactType.CLASSES_JAR - ).filter { result -> - filter(result.id.componentIdentifier) - }.associateBy { - it.id.componentIdentifier.displayName - } - val result = if (!transitive) { - runtimeConfiguration.incoming.resolutionResult.root.dependencies.filterIsInstance().mapNotNull { - it.selected.id.displayName.takeIf { id -> id in all.keys } - }.associateWith { - all[it]!! - } - } else { - all - } - return result.values.toSet() - } - - override val Context.task: TransformTask - get() = javaClass.getDeclaredField("this$1").apply { - isAccessible = true - }.get(this).run { - javaClass.getDeclaredField("this$0").apply { - isAccessible = true - }.get(this) - } as TransformTask - - override val Project.aapt2Enabled: Boolean - get() = true - -} diff --git a/booster-android-gradle-v7_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_1/V71Factory.kt b/booster-android-gradle-v7_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_1/V71Factory.kt deleted file mode 100644 index 64d4a7d90..000000000 --- a/booster-android-gradle-v7_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_1/V71Factory.kt +++ /dev/null @@ -1,15 +0,0 @@ -package com.didiglobal.booster.android.gradle.v7_1 - -import com.android.repository.Revision -import com.didiglobal.booster.gradle.AGPInterface -import com.didiglobal.booster.gradle.AGPInterfaceFactory -import com.google.auto.service.AutoService - -@AutoService(AGPInterfaceFactory::class) -class V71Factory : AGPInterfaceFactory { - - override val revision: Revision = Revision(7, 1, 0) - - override fun newAGPInterface(): AGPInterface = V71 - -} diff --git a/booster-android-gradle-v7_2/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v7_2/V72IntegrationTest.kt b/booster-android-gradle-v7_2/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v7_2/V72IntegrationTest.kt deleted file mode 100644 index 4d2c89ce2..000000000 --- a/booster-android-gradle-v7_2/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v7_2/V72IntegrationTest.kt +++ /dev/null @@ -1,478 +0,0 @@ -@file:Suppress("DEPRECATION") - -package com.didiglobal.booster.android.gradle.v7_2 - -import com.android.build.gradle.AppExtension -import com.android.build.gradle.BaseExtension -import com.android.build.gradle.LibraryExtension -import com.android.build.gradle.api.BaseVariant -import com.didiglobal.booster.gradle.AGP -import com.didiglobal.booster.gradle.getAndroid -import com.didiglobal.booster.kotlinx.search -import io.bootstage.testkit.gradle.Case -import io.bootstage.testkit.gradle.TestCase -import io.bootstage.testkit.gradle.VariantTestCase -import io.bootstage.testkit.gradle.rules.GradleExecutor -import io.bootstage.testkit.gradle.rules.LocalProperties -import io.bootstage.testkit.gradle.rules.copyFromResource -import io.bootstage.testkit.gradle.rules.rule -import org.gradle.api.Project -import org.junit.Before -import org.junit.Rule -import org.junit.rules.TemporaryFolder -import org.junit.rules.TestRule -import java.io.File -import kotlin.test.Test -import kotlin.test.assertEquals -import kotlin.test.assertFalse -import kotlin.test.assertNotNull -import kotlin.test.assertTrue -import kotlin.test.fail - -private val MIN_SDK_VERSION = System.getProperty("android.minsdk.version").toInt() - -private const val TARGET_SDK_VERSION = 30 - -private val ARGS = System.getProperty("gradle.args").split("\\s+".toRegex()) + listOf( - "-Pbooster_version=${Build.VERSION}", - "-Pandroid_gradle_version=7.2.0", - "-Pcompile_sdk_version=30", - "-Pbuild_tools_version=29.0.2", - "-Pmin_sdk_version=${MIN_SDK_VERSION}", - "-Ptarget_sdk_version=${TARGET_SDK_VERSION}" -) - -@Suppress("RemoveCurlyBracesFromTemplate", "FunctionName") -abstract class V72IntegrationTest(private val isLib: Boolean) { - - private val projectDir = TemporaryFolder() - - @get:Rule - val ruleChain: TestRule = rule(projectDir) { - rule(LocalProperties(projectDir::getRoot)) { - GradleExecutor(projectDir::getRoot, "7.3.3", *ARGS.toTypedArray()) - } - } - - @Before - fun setup() { - projectDir.copyFromResource("${if (isLib) "lib" else "app"}.gradle", "build.gradle") - projectDir.copyFromResource("buildSrc") - projectDir.copyFromResource("src") - projectDir.newFile("gradle.properties").writeText("org.gradle.jvmargs=-Xmx4g -XX:MaxMetaspaceSize=2g") - assertEquals(7, AGP.revision.major) - assertEquals(2, AGP.revision.minor) - } - - @Test - @Case(ScopeFullWithFeaturesTest::class) - fun `test AGPInterface#scopeFullWithFeatures`() = Unit - - @Test - @Case(ScopeFullLibraryWithFeaturesTest::class) - fun `test AGPInterface#scopeFullLibraryWithFeatures`() = Unit - - @Test - @Case(ProjectTest::class) - fun `test AGPInterface#project`() = Unit - - @Test - @Case(JavaCompilerTaskTestUnit::class) - fun `test AGPInterface#javaCompilerTask`() = Unit - - @Test - @Case(PreBuildTaskTestUnit::class) - fun `test AGPInterface#preBuildTask`() = Unit - - @Test - @Case(AssembleTaskTestUnit::class) - fun `test AGPInterface#assembleTask`() = Unit - - @Test - @Case(MergeAssetsTaskTestUnit::class) - fun `test AGPInterface#mergeAssetsTask`() = Unit - - @Test - @Case(MergeResourcesTaskTestUnit::class) - fun `test AGPInterface#mergeResources`() = Unit - - @Test - @Case(GetTaskNameTestUnit::class) - fun `test AGPInterface#getTaskName(String)`() = Unit - - @Test - @Case(GetTaskName2TestUnit::class) - fun `test AGPInterface#getTaskName(String, String)`() = Unit - - @Test - @Case(VariantDataTestUnit::class) - fun `test AGPInterface#variantData`() = Unit - - @Test - @Case(OriginalApplicationIdTestUnit::class) - fun `test AGPInterface#originalApplicationId`() = Unit - - @Test - @Case(HasDynamicFeatureTestUnit::class) - fun `test AGPInterface#hasDynamicFeature`() = Unit - - @Test - @Case(RawAndroidResourcesTestUnit::class) - fun `test AGPInterface#rawAndroidResources`() = Unit - - @Test - @Case(AllArtifactsTestUnit::class) - fun `test AGPInterface#allArtifacts`() = Unit - - @Test - @Case(MinSdkVersionTestUnit::class) - fun `test AGPInterface#minSdkVersion`() = Unit - - @Test - @Case(TargetSdkVersionTestUnit::class) - fun `test AGPInterface#targetSdkVersion`() = Unit - - @Test - @Case(AarTestUnit::class) - fun `test AGPInterface#aar`() { - } - - @Test - @Case(ApkTestUnit::class) - fun `test AGPInterface#apk`() { - } - - @Test - @Case(MergedManifestsTestUnit::class) - fun `test AGPInterface#mergedManifests`() { - } - - @Test - @Case(MergedResourcesTestUnit::class) - fun `test AGPInterface#mergedRes`() { - } - - @Test - @Case(MergedAssetsTestUnit::class) - fun `test AGPInterface#mergedAssets`() { - } - - @Test - @Case(ProcessedResTestUnit::class) - fun `test AGPInterface#processedRes`() { - } - - @Test - @Case(SymbolListTestUnit::class) - fun `test AGPInterface#symbolList`() { - } - - @Test - @Case(SymbolListWithPackageNameTestUnit::class) - fun `test AGPInterface#symbolListWithPackageName`() { - } - - @Test - @Case(AllClassesTestUnit::class) - fun `test AGPInterface#allClasses`() { - } - -// @Test -// @Case(BuildToolsTestUnit::class) -// fun `test AGPInterface#buildTools`() { -// } - -} - -class V72AppIntegrationTest : V72IntegrationTest(false) - -class V72LibIntegrationTest : V72IntegrationTest(true) - -class ScopeFullWithFeaturesTest : TestCase { - override fun apply(project: Project) { - assertEquals("PROJECT,SUB_PROJECTS,EXTERNAL_LIBRARIES,FEATURES", AGP.scopeFullWithFeatures.joinToString(",")) - } -} - -class ScopeFullLibraryWithFeaturesTest : TestCase { - override fun apply(project: Project) { - assertEquals("FEATURES,PROJECT", AGP.scopeFullLibraryWithFeatures.joinToString(",")) - } -} - -class ProjectTest : TestCase { - override fun apply(project: Project) { - val assert: (BaseVariant) -> Unit = { variant -> - assertEquals(project, AGP.run { variant.project }) - } - project.afterEvaluate { - when (val android = project.getAndroid()) { - is AppExtension -> android.applicationVariants.forEach(assert) - is LibraryExtension -> android.libraryVariants.forEach(assert) - } - } - } -} - -class JavaCompilerTaskTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.javaCompilerTask }) - } -} - -class PreBuildTaskTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.preBuildTask }) - } -} - -class AssembleTaskTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.assembleTask }) - } -} - -class MergeAssetsTaskTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.mergeAssetsTask }) - } -} - -class MergeResourcesTaskTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.mergeResourcesTask }) - } -} - -class GetTaskNameTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertEquals("assemble${variant.name.capitalize()}", AGP.run { variant.getTaskName("assemble") }) - } -} - - -class GetTaskName2TestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertEquals("merge${variant.name.capitalize()}Resources", AGP.run { variant.getTaskName("merge", "Resources") }) - } -} - -class VariantDataTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.variantData }) - } -} - -class OriginalApplicationIdTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.originalApplicationId }) - } -} - -class HasDynamicFeatureTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertFalse(AGP.run { variant.hasDynamicFeature }) - } -} - -class RawAndroidResourcesTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val rawAndroidResources = AGP.run { variant.rawAndroidResources } - assertNotNull(rawAndroidResources) - if (rawAndroidResources.isEmpty()) { - fail("rawAndroidResources is empty") - } - rawAndroidResources.forEach { - println(" - ${it.path}") - } - } - } -} - -class AllArtifactsTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val allArtifacts = AGP.run { variant.allArtifacts } - assertNotNull(allArtifacts) - if (allArtifacts.isEmpty()) { - fail("allArtifacts is empty") - } - allArtifacts.forEach { (k, v) -> - println(" - $k => $v") - } - } - } -} - -class MinSdkVersionTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - val minSdkVersion = AGP.run { variant.minSdkVersion } - assertNotNull(minSdkVersion) - assertEquals(MIN_SDK_VERSION, minSdkVersion.apiLevel) - } -} - -class TargetSdkVersionTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - val targetSdkVersion = AGP.run { variant.targetSdkVersion } - assertNotNull(targetSdkVersion) - assertEquals(TARGET_SDK_VERSION, targetSdkVersion.apiLevel) - } -} - -class AarTestUnit : VariantTestCase() { - override fun apply(project: Project) { - if (project.plugins.hasPlugin("com.android.library")) { - super.apply(project) - } - } - - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val aar = AGP.run { variant.aar }.search { - it.extension == "aar" - } - if (aar.isEmpty()) { - fail("aar is empty") - } - aar.forEach { - println(" - ${it.path}") - } - } - } -} - -class ApkTestUnit : VariantTestCase() { - override fun apply(project: Project) { - if (project.plugins.hasPlugin("com.android.application")) { - super.apply(project) - } - } - - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val apk = AGP.run { variant.apk }.search { - it.extension == "apk" - } - if (apk.isEmpty()) { - fail("apk is empty") - } - apk.forEach { - println(" - ${it.path}") - } - } - } -} - -class MergedManifestsTestUnit : VariantTestCase() { - override fun apply(project: Project) { - if (project.plugins.hasPlugin("com.android.application")) { - super.apply(project) - } - } - - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val mergedManifests = AGP.run { variant.mergedManifests }.search { - it.name == "AndroidManifest.xml" - } - if (mergedManifests.isEmpty()) { - fail("mergedManifests is empty") - } - mergedManifests.forEach { - println(" - ${it.path}") - } - } - } -} - -class MergedResourcesTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val mergedResources = AGP.run { variant.mergedRes } - if (mergedResources.isEmpty()) { - fail("mergedRes is empty") - } - mergedResources.forEach { - println(" - ${it.path}") - } - } - } -} - -class MergedAssetsTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val mergedAssets = AGP.run { variant.mergedAssets } - if (mergedAssets.isEmpty()) { - fail("mergedAssets is empty") - } - mergedAssets.forEach { - println(" - ${it.path}") - } - } - } -} - -class ProcessedResTestUnit : VariantTestCase() { - override fun apply(project: Project) { - if (project.plugins.hasPlugin("com.android.application")) { - super.apply(project) - } - } - - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val processedRes = AGP.run { variant.processedRes }.search { - it.extension == "ap_" - } - if (processedRes.isEmpty()) { - fail("processedRes is empty") - } - processedRes.forEach { - println(" - ${it.path}") - } - } - } -} - -class SymbolListTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val symbolList = AGP.run { variant.symbolList } - if (symbolList.isEmpty()) { - fail("symbolList is empty") - } - symbolList.forEach { - println(" - ${it.path}") - } - } - } -} - -class SymbolListWithPackageNameTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val symbolListWithPackageName = AGP.run { variant.symbolListWithPackageName } - if (symbolListWithPackageName.isEmpty()) { - fail("symbolListWithPackageName is empty") - } - symbolListWithPackageName.forEach { - println(" - ${it.path}") - } - } - } -} - -class AllClassesTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val location = AGP.run { variant.allClasses }.files - assertTrue("ALL_CLASSES: $location", location::isNotEmpty) - assertTrue("No class file found at $location") { - location.search(File::isFile).isNotEmpty() - } - } - } -} diff --git a/booster-android-gradle-v7_2/src/integrationTest/resources/app.gradle b/booster-android-gradle-v7_2/src/integrationTest/resources/app.gradle deleted file mode 100644 index aa3c5f2d6..000000000 --- a/booster-android-gradle-v7_2/src/integrationTest/resources/app.gradle +++ /dev/null @@ -1,60 +0,0 @@ -buildscript { - repositories { - mavenLocal() - mavenCentral() - google() - maven { url 'https://oss.sonatype.org/content/repositories/public/' } - maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } - } - dependencies { - classpath "com.android.tools.build:gradle:${project.android_gradle_version}" - classpath("com.didiglobal.booster:booster-gradle-plugin:${project.booster_version}") { - exclude group: 'com.google.guava' - } - classpath "io.bootstage.testkit:testkit-gradle-plugin:1.4.0" - } -} - -apply plugin: 'com.android.application' -apply plugin: 'com.didiglobal.booster' -apply plugin: 'io.bootstage.testkit' - -android { - compileSdkVersion project.compile_sdk_version as Integer - buildToolsVersion project.build_tools_version - defaultConfig { - applicationId 'com.didiglobal.booster.test' - minSdkVersion project.min_sdk_version as Integer - targetSdkVersion project.target_sdk_version as Integer - versionCode 1 - versionName "1.0" - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - } - buildTypes { - debug { - minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' - } - } - flavorDimensions 'lang' - productFlavors { - en { - dimension 'lang' - applicationIdSuffix '.en' - } - cn { - dimension 'lang' - applicationIdSuffix '.cn' - } - } - lintOptions { - checkReleaseBuilds false - } -} - -repositories { - mavenLocal() - mavenCentral() - google() - maven { url 'https://oss.sonatype.org/content/repositories/public/' } -} diff --git a/booster-android-gradle-v7_2/src/integrationTest/resources/buildSrc/build.gradle b/booster-android-gradle-v7_2/src/integrationTest/resources/buildSrc/build.gradle deleted file mode 100644 index 79a9b104a..000000000 --- a/booster-android-gradle-v7_2/src/integrationTest/resources/buildSrc/build.gradle +++ /dev/null @@ -1,24 +0,0 @@ -buildscript { - repositories { - mavenLocal() - mavenCentral() - google() - maven { url 'https://oss.sonatype.org/content/repositories/public/' } - maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } - } -} - -repositories { - mavenLocal() - mavenCentral() - google() - maven { url 'https://oss.sonatype.org/content/repositories/public/' } -} - -dependencies { - implementation "com.android.tools.build:gradle:${project.android_gradle_version}" - implementation("com.didiglobal.booster:booster-android-gradle-api:${project.booster_version}") { - exclude group: 'com.google.guava' - } - implementation "io.bootstage.testkit:testkit-gradle-plugin:1.4.0" -} diff --git a/booster-android-gradle-v7_2/src/integrationTest/resources/lib.gradle b/booster-android-gradle-v7_2/src/integrationTest/resources/lib.gradle deleted file mode 100644 index adc9b1ca0..000000000 --- a/booster-android-gradle-v7_2/src/integrationTest/resources/lib.gradle +++ /dev/null @@ -1,57 +0,0 @@ -buildscript { - repositories { - mavenLocal() - mavenCentral() - google() - maven { url 'https://oss.sonatype.org/content/repositories/public/' } - maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } - } - dependencies { - classpath "com.android.tools.build:gradle:${project.android_gradle_version}" - classpath("com.didiglobal.booster:booster-gradle-plugin:${project.booster_version}") { - exclude group: 'com.google.guava' - } - classpath "io.bootstage.testkit:testkit-gradle-plugin:1.4.0" - } -} - -apply plugin: 'com.android.library' -apply plugin: 'com.didiglobal.booster' -apply plugin: 'io.bootstage.testkit' - -android { - compileSdkVersion project.compile_sdk_version as Integer - buildToolsVersion project.build_tools_version - defaultConfig { - minSdkVersion project.min_sdk_version as Integer - targetSdkVersion project.target_sdk_version as Integer - versionCode 1 - versionName "1.0" - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - } - buildTypes { - debug { - minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' - } - } - flavorDimensions 'lang' - productFlavors { - en { - dimension 'lang' - } - cn { - dimension 'lang' - } - } - lintOptions { - checkReleaseBuilds false - } -} - -repositories { - mavenLocal() - mavenCentral() - google() - maven { url 'https://oss.sonatype.org/content/repositories/public/' } -} diff --git a/booster-android-gradle-v7_2/src/integrationTest/resources/src/main/AndroidManifest.xml b/booster-android-gradle-v7_2/src/integrationTest/resources/src/main/AndroidManifest.xml deleted file mode 100644 index 30800c604..000000000 --- a/booster-android-gradle-v7_2/src/integrationTest/resources/src/main/AndroidManifest.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/booster-android-gradle-v7_2/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/MainActivity.java b/booster-android-gradle-v7_2/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/MainActivity.java deleted file mode 100644 index 0eb4ec7b4..000000000 --- a/booster-android-gradle-v7_2/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/MainActivity.java +++ /dev/null @@ -1,6 +0,0 @@ -package com.didiglobal.booster.android.test; - -import android.app.Activity; - -public class MainActivity extends Activity { -} \ No newline at end of file diff --git a/booster-android-gradle-v7_2/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/TestApplication.java b/booster-android-gradle-v7_2/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/TestApplication.java deleted file mode 100644 index 3ecfb1507..000000000 --- a/booster-android-gradle-v7_2/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/TestApplication.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.didiglobal.booster.android.test; - -import android.app.Application; - -public class TestApplication extends Application { - -} \ No newline at end of file diff --git a/booster-android-gradle-v7_2/src/integrationTest/resources/src/main/res/values/strings.xml b/booster-android-gradle-v7_2/src/integrationTest/resources/src/main/res/values/strings.xml deleted file mode 100644 index 8b2247616..000000000 --- a/booster-android-gradle-v7_2/src/integrationTest/resources/src/main/res/values/strings.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - Test - \ No newline at end of file diff --git a/booster-android-gradle-v7_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_2/V72.kt b/booster-android-gradle-v7_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_2/V72.kt deleted file mode 100644 index f561fc468..000000000 --- a/booster-android-gradle-v7_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_2/V72.kt +++ /dev/null @@ -1,314 +0,0 @@ -package com.didiglobal.booster.android.gradle.v7_2 - -import com.android.build.api.artifact.Artifact -import com.android.build.api.artifact.MultipleArtifact -import com.android.build.api.artifact.SingleArtifact -import com.android.build.api.artifact.impl.ArtifactsImpl -import com.android.build.api.component.impl.ComponentImpl -import com.android.build.api.transform.Context -import com.android.build.api.transform.QualifiedContent -import com.android.build.gradle.api.ApplicationVariant -import com.android.build.gradle.api.BaseVariant -import com.android.build.gradle.api.LibraryVariant -import com.android.build.gradle.internal.api.BaseVariantImpl -import com.android.build.gradle.internal.api.artifact.SourceArtifactType -import com.android.build.gradle.internal.pipeline.TransformManager -import com.android.build.gradle.internal.pipeline.TransformTask -import com.android.build.gradle.internal.publishing.AndroidArtifacts -import com.android.build.gradle.internal.publishing.AndroidArtifacts.ArtifactScope -import com.android.build.gradle.internal.scope.BuildArtifactType -import com.android.build.gradle.internal.scope.InternalArtifactType -import com.android.build.gradle.internal.scope.InternalMultipleArtifactType -import com.android.build.gradle.internal.scope.VariantScope -import com.android.build.gradle.internal.tasks.factory.GlobalTaskCreationConfigImpl -import com.android.build.gradle.internal.variant.BaseVariantData -import com.android.builder.core.DefaultApiVersion -import com.android.builder.core.VariantType -import com.android.builder.model.ApiVersion -import com.android.sdklib.BuildToolInfo -import com.didiglobal.booster.gradle.AGPInterface -import org.gradle.api.Project -import org.gradle.api.Task -import org.gradle.api.artifacts.ArtifactCollection -import org.gradle.api.artifacts.component.ComponentIdentifier -import org.gradle.api.artifacts.result.ResolvedArtifactResult -import org.gradle.api.artifacts.result.ResolvedDependencyResult -import org.gradle.api.file.FileCollection -import org.gradle.api.file.FileSystemLocation -import org.gradle.api.tasks.TaskProvider -import java.io.File -import java.util.TreeMap - -@Suppress("UnstableApiUsage") -private val SINGLE_ARTIFACT_TYPES = arrayOf( - BuildArtifactType::class, - InternalArtifactType::class, - SingleArtifact::class, - SourceArtifactType::class -).map { - it.sealedSubclasses -}.flatten().map { - it.objectInstance as Artifact.Single -}.associateBy { - it.javaClass.simpleName -} - -private val MULTIPLE_ARTIFACT_TYPES = arrayOf( - MultipleArtifact::class, - InternalMultipleArtifactType::class -).map { - it.sealedSubclasses -}.flatten().map { - it.objectInstance as Artifact.Multiple -}.associateBy { - it.javaClass.simpleName -} - -@Suppress("DEPRECATION") -internal object V72 : AGPInterface { - - private val BaseVariant.component: ComponentImpl - get() = BaseVariantImpl::class.java.getDeclaredField("component").apply { - isAccessible = true - }.get(this) as ComponentImpl - - @Suppress("UnstableApiUsage") - private fun BaseVariant.getFinalArtifactFiles(type: Artifact.Single): FileCollection { - return try { - project.objects.fileCollection().from(artifacts.get(type)) - } catch (e: Throwable) { - project.objects.fileCollection().builtBy(artifacts.get(type)) - } - } - - @Suppress("UnstableApiUsage") - private fun BaseVariant.getFinalArtifactFiles(type: Artifact.Multiple): FileCollection { - return try { - project.objects.fileCollection().from(artifacts.getAll(type)) - } catch (e: Throwable) { - project.objects.fileCollection().builtBy(artifacts.getAll(type)) - } - } - - private inline fun Sequence.firstOfOrNull(transform: (T) -> R?): R? { - for (element in this) { - val result = transform(element) - if (result != null) { - return result - } - } - return null - } - - @Suppress("UnstableApiUsage") - private val BaseVariant.artifacts: ArtifactsImpl - get() = component.artifacts - - override val scopeFullWithFeatures: MutableSet - get() = TransformManager.SCOPE_FULL_WITH_FEATURES - - override val scopeFullLibraryWithFeatures: MutableSet - get() = (TransformManager.SCOPE_FEATURES + QualifiedContent.Scope.PROJECT).toMutableSet() - - override val BaseVariant.project: Project - get() = component.variantDependencies.run { - javaClass.getDeclaredField("project").apply { - isAccessible = true - }.get(this) as Project - } - - override val BaseVariant.javaCompilerTaskProvider: TaskProvider - get() = javaCompileProvider - - override val BaseVariant.preBuildTaskProvider: TaskProvider - get() = preBuildProvider - - override val BaseVariant.assembleTaskProvider: TaskProvider - get() = assembleProvider - - override val BaseVariant.mergeAssetsTaskProvider: TaskProvider - get() = mergeAssetsProvider - - override val BaseVariant.mergeResourcesTaskProvider: TaskProvider - get() = try { - project.tasks.named(getTaskName("merge", "Resources")) - } catch (e: Throwable) { - mergeResourcesProvider - } - - override val BaseVariant.mergeNativeLibsTaskProvider: TaskProvider - get() = project.tasks.named(getTaskName("merge", "NativeLibs")) - - override val BaseVariant.processJavaResourcesTaskProvider: TaskProvider - get() = processJavaResourcesProvider - - override fun BaseVariant.getTaskName(prefix: String): String { - return component.computeTaskName(prefix) - } - - override fun BaseVariant.getTaskName(prefix: String, suffix: String): String { - return component.computeTaskName(prefix, suffix) - } - - override val BaseVariant.variantData: BaseVariantData - get() = javaClass.getDeclaredMethod("getVariantData").apply { - isAccessible = true - }.invoke(this) as BaseVariantData - - val BaseVariant.variantScope: VariantScope - get() = component.variantScope - - @Suppress("DEPRECATION") - private val BaseVariant.globalScope: GlobalTaskCreationConfigImpl - get() = component.global as GlobalTaskCreationConfigImpl - - override val BaseVariant.originalApplicationId: String - get() = component.variantDslInfo.namespace.get() - - override val BaseVariant.hasDynamicFeature: Boolean - get() = globalScope.hasDynamicFeatures - - override val BaseVariant.rawAndroidResources: FileCollection - get() = component.variantData.allRawAndroidResources - - override val BaseVariant.localAndroidResources: FileCollection - get() = component.variantData.androidResources.values.reduce { collection, file -> - collection.plus(file) - } - - override fun BaseVariant.getArtifactCollection( - configType: AndroidArtifacts.ConsumedConfigType, - scope: ArtifactScope, - artifactType: AndroidArtifacts.ArtifactType - ): ArtifactCollection { - return component.variantDependencies.getArtifactCollection(configType, scope, artifactType) - } - - override fun BaseVariant.getArtifactFileCollection( - configType: AndroidArtifacts.ConsumedConfigType, - scope: ArtifactScope, - artifactType: AndroidArtifacts.ArtifactType - ): FileCollection { - return component.variantDependencies.getArtifactFileCollection(configType, scope, artifactType) - } - - override val BaseVariant.allArtifacts: Map - get() = TreeMap().also { all -> - SINGLE_ARTIFACT_TYPES.entries.associateTo(all) { (name, type) -> - val artifacts: FileCollection by lazy { - getFinalArtifactFiles(type) - } - name to artifacts - } - MULTIPLE_ARTIFACT_TYPES.entries.associateTo(all) { (name, type) -> - val artifacts: FileCollection by lazy { - getFinalArtifactFiles(type) - } - name to artifacts - } - } - - override val BaseVariant.minSdkVersion: ApiVersion - get() = DefaultApiVersion(component.minSdkVersion.apiLevel) - - override val BaseVariant.targetSdkVersion: ApiVersion - get() = DefaultApiVersion(component.targetSdkVersion.apiLevel) - - private val BaseVariant.variantType: VariantType - get() = component.variantType - - override val BaseVariant.isApplication: Boolean - get() = variantType.isApk - - override val BaseVariant.isLibrary: Boolean - get() = variantType.isAar - - override val BaseVariant.isDynamicFeature: Boolean - get() = variantType.isDynamicFeature - - override val BaseVariant.aar: FileCollection - get() = getFinalArtifactFiles(SingleArtifact.AAR) - - override val BaseVariant.apk: FileCollection - get() = getFinalArtifactFiles(SingleArtifact.APK) - - override val BaseVariant.mergedManifests: FileCollection - get() = getFinalArtifactFiles(SingleArtifact.MERGED_MANIFEST) - - override val BaseVariant.mergedRes: FileCollection - get() = getFinalArtifactFiles(InternalArtifactType.MERGED_RES) - - override val BaseVariant.mergedNativeLibs: FileCollection - get() = getFinalArtifactFiles(InternalArtifactType.MERGED_NATIVE_LIBS) - - override val BaseVariant.mergedAssets: FileCollection - get() = when (this) { - is ApplicationVariant -> getFinalArtifactFiles(InternalArtifactType.COMPRESSED_ASSETS) - is LibraryVariant -> getFinalArtifactFiles(InternalArtifactType.LIBRARY_ASSETS) - else -> TODO("Unsupported variant type: $variantType") - } - - override val BaseVariant.processedRes: FileCollection - get() = getFinalArtifactFiles(InternalArtifactType.PROCESSED_RES) - - override val BaseVariant.symbolList: FileCollection - get() = when (this) { - is ApplicationVariant -> getFinalArtifactFiles(InternalArtifactType.RUNTIME_SYMBOL_LIST) - is LibraryVariant -> getFinalArtifactFiles(InternalArtifactType.COMPILE_SYMBOL_LIST) - else -> TODO("Unsupported variant type : $variantType") - } - - override val BaseVariant.symbolListWithPackageName: FileCollection - get() = getFinalArtifactFiles(InternalArtifactType.SYMBOL_LIST_WITH_PACKAGE_NAME) - - override val BaseVariant.dataBindingDependencyArtifacts: FileCollection - get() = getFinalArtifactFiles(InternalArtifactType.DATA_BINDING_DEPENDENCY_ARTIFACTS) - - override val BaseVariant.allClasses: FileCollection - get() = when (this) { - is ApplicationVariant -> getFinalArtifactFiles(InternalArtifactType.JAVAC) + project.files("build${File.separator}tmp${File.separator}kotlin-classes${File.separator}${dirName}") - is LibraryVariant -> getFinalArtifactFiles(InternalArtifactType.AAR_MAIN_JAR) - else -> project.files() - } - - override val BaseVariant.buildTools: BuildToolInfo - get() = globalScope.versionedSdkLoader.get().buildToolInfoProvider.get() - - override val BaseVariant.isPrecompileDependenciesResourcesEnabled: Boolean - get() = component.isPrecompileDependenciesResourcesEnabled - - override fun BaseVariant.getDependencies(transitive: Boolean, filter: (ComponentIdentifier) -> Boolean): Collection { - val all = getArtifactCollection( - AndroidArtifacts.ConsumedConfigType.RUNTIME_CLASSPATH, - AndroidArtifacts.ArtifactScope.ALL, - AndroidArtifacts.ArtifactType.CLASSES_JAR - ).filter { result -> - filter(result.id.componentIdentifier) - }.associateBy { - it.id.componentIdentifier.displayName - } - val result = if (!transitive) { - runtimeConfiguration.incoming.resolutionResult.root.dependencies.filterIsInstance().mapNotNull { - it.selected.id.displayName.takeIf { id -> id in all.keys } - }.associateWith { - all[it]!! - } - } else { - all - } - return result.values.toSet() - } - - override val Context.task: TransformTask - get() = javaClass.getDeclaredField("this$1").apply { - isAccessible = true - }.get(this).run { - javaClass.getDeclaredField("this$0").apply { - isAccessible = true - }.get(this) - } as TransformTask - - override val Project.aapt2Enabled: Boolean - get() = true - -} diff --git a/booster-android-gradle-v7_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_2/V72Factory.kt b/booster-android-gradle-v7_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_2/V72Factory.kt deleted file mode 100644 index ed10da597..000000000 --- a/booster-android-gradle-v7_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_2/V72Factory.kt +++ /dev/null @@ -1,15 +0,0 @@ -package com.didiglobal.booster.android.gradle.v7_2 - -import com.android.repository.Revision -import com.didiglobal.booster.gradle.AGPInterface -import com.didiglobal.booster.gradle.AGPInterfaceFactory -import com.google.auto.service.AutoService - -@AutoService(AGPInterfaceFactory::class) -class V72Factory : AGPInterfaceFactory { - - override val revision: Revision = Revision(7, 2, 0) - - override fun newAGPInterface(): AGPInterface = V72 - -} diff --git a/booster-android-gradle-v7_3/README.md b/booster-android-gradle-v7_3/README.md deleted file mode 100644 index a5e9fa76e..000000000 --- a/booster-android-gradle-v7_3/README.md +++ /dev/null @@ -1,6 +0,0 @@ -# booster-android-gradle-v7_3 - -This module is an implementation of [booster-android-gradle-api](../booster-android-gradle-api) for Android gradle plugin above 7.3 - -本模块是 [booster-android-gradle-api](../booster-android-gradle-api) 针对 Android gradle plugin 7.3 以上版本的实现。 - diff --git a/booster-android-gradle-v7_3/build.gradle b/booster-android-gradle-v7_3/build.gradle deleted file mode 100644 index 93e585e70..000000000 --- a/booster-android-gradle-v7_3/build.gradle +++ /dev/null @@ -1,27 +0,0 @@ -apply plugin: 'java-gradle-plugin' - -apply from: "$rootDir/gradle/booster.gradle" -apply from: "$rootDir/gradle/integration-test.gradle" -apply from: "$rootDir/gradle/functional-test.gradle" - -dependencies { - kapt 'com.google.auto.service:auto-service:1.0' - api 'com.google.auto.service:auto-service:1.0' - api project(':booster-android-gradle-compat') - compileOnly 'com.android.tools:repository:30.0.0' - compileOnly 'com.android.tools:common:30.0.0' - compileOnly 'com.android.tools:sdklib:30.0.0' - compileOnly 'com.android.tools.build:gradle:7.3.0' - testImplementation 'com.android.tools.build:gradle:7.3.0' - testImplementation 'com.android.tools:common:30.0.0' - testImplementation 'io.bootstage.testkit:testkit-gradle-plugin:1.1.0' - testImplementation project(':booster-build') -} - -jar { - exclude('com/android/sdklib/BuildToolInfo.class') -} - -gradlePlugin { - testSourceSets sourceSets.functionalTest, sourceSets.integrationTest -} \ No newline at end of file diff --git a/booster-android-gradle-v7_3/src/integrationTest/resources/app.gradle b/booster-android-gradle-v7_3/src/integrationTest/resources/app.gradle deleted file mode 100644 index aa3c5f2d6..000000000 --- a/booster-android-gradle-v7_3/src/integrationTest/resources/app.gradle +++ /dev/null @@ -1,60 +0,0 @@ -buildscript { - repositories { - mavenLocal() - mavenCentral() - google() - maven { url 'https://oss.sonatype.org/content/repositories/public/' } - maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } - } - dependencies { - classpath "com.android.tools.build:gradle:${project.android_gradle_version}" - classpath("com.didiglobal.booster:booster-gradle-plugin:${project.booster_version}") { - exclude group: 'com.google.guava' - } - classpath "io.bootstage.testkit:testkit-gradle-plugin:1.4.0" - } -} - -apply plugin: 'com.android.application' -apply plugin: 'com.didiglobal.booster' -apply plugin: 'io.bootstage.testkit' - -android { - compileSdkVersion project.compile_sdk_version as Integer - buildToolsVersion project.build_tools_version - defaultConfig { - applicationId 'com.didiglobal.booster.test' - minSdkVersion project.min_sdk_version as Integer - targetSdkVersion project.target_sdk_version as Integer - versionCode 1 - versionName "1.0" - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - } - buildTypes { - debug { - minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' - } - } - flavorDimensions 'lang' - productFlavors { - en { - dimension 'lang' - applicationIdSuffix '.en' - } - cn { - dimension 'lang' - applicationIdSuffix '.cn' - } - } - lintOptions { - checkReleaseBuilds false - } -} - -repositories { - mavenLocal() - mavenCentral() - google() - maven { url 'https://oss.sonatype.org/content/repositories/public/' } -} diff --git a/booster-android-gradle-v7_3/src/integrationTest/resources/buildSrc/build.gradle b/booster-android-gradle-v7_3/src/integrationTest/resources/buildSrc/build.gradle deleted file mode 100644 index 79a9b104a..000000000 --- a/booster-android-gradle-v7_3/src/integrationTest/resources/buildSrc/build.gradle +++ /dev/null @@ -1,24 +0,0 @@ -buildscript { - repositories { - mavenLocal() - mavenCentral() - google() - maven { url 'https://oss.sonatype.org/content/repositories/public/' } - maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } - } -} - -repositories { - mavenLocal() - mavenCentral() - google() - maven { url 'https://oss.sonatype.org/content/repositories/public/' } -} - -dependencies { - implementation "com.android.tools.build:gradle:${project.android_gradle_version}" - implementation("com.didiglobal.booster:booster-android-gradle-api:${project.booster_version}") { - exclude group: 'com.google.guava' - } - implementation "io.bootstage.testkit:testkit-gradle-plugin:1.4.0" -} diff --git a/booster-android-gradle-v7_3/src/integrationTest/resources/lib.gradle b/booster-android-gradle-v7_3/src/integrationTest/resources/lib.gradle deleted file mode 100644 index adc9b1ca0..000000000 --- a/booster-android-gradle-v7_3/src/integrationTest/resources/lib.gradle +++ /dev/null @@ -1,57 +0,0 @@ -buildscript { - repositories { - mavenLocal() - mavenCentral() - google() - maven { url 'https://oss.sonatype.org/content/repositories/public/' } - maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } - } - dependencies { - classpath "com.android.tools.build:gradle:${project.android_gradle_version}" - classpath("com.didiglobal.booster:booster-gradle-plugin:${project.booster_version}") { - exclude group: 'com.google.guava' - } - classpath "io.bootstage.testkit:testkit-gradle-plugin:1.4.0" - } -} - -apply plugin: 'com.android.library' -apply plugin: 'com.didiglobal.booster' -apply plugin: 'io.bootstage.testkit' - -android { - compileSdkVersion project.compile_sdk_version as Integer - buildToolsVersion project.build_tools_version - defaultConfig { - minSdkVersion project.min_sdk_version as Integer - targetSdkVersion project.target_sdk_version as Integer - versionCode 1 - versionName "1.0" - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - } - buildTypes { - debug { - minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' - } - } - flavorDimensions 'lang' - productFlavors { - en { - dimension 'lang' - } - cn { - dimension 'lang' - } - } - lintOptions { - checkReleaseBuilds false - } -} - -repositories { - mavenLocal() - mavenCentral() - google() - maven { url 'https://oss.sonatype.org/content/repositories/public/' } -} diff --git a/booster-android-gradle-v7_3/src/integrationTest/resources/src/main/AndroidManifest.xml b/booster-android-gradle-v7_3/src/integrationTest/resources/src/main/AndroidManifest.xml deleted file mode 100644 index 30800c604..000000000 --- a/booster-android-gradle-v7_3/src/integrationTest/resources/src/main/AndroidManifest.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/booster-android-gradle-v7_3/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/MainActivity.java b/booster-android-gradle-v7_3/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/MainActivity.java deleted file mode 100644 index 0eb4ec7b4..000000000 --- a/booster-android-gradle-v7_3/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/MainActivity.java +++ /dev/null @@ -1,6 +0,0 @@ -package com.didiglobal.booster.android.test; - -import android.app.Activity; - -public class MainActivity extends Activity { -} \ No newline at end of file diff --git a/booster-android-gradle-v7_3/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/TestApplication.java b/booster-android-gradle-v7_3/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/TestApplication.java deleted file mode 100644 index 3ecfb1507..000000000 --- a/booster-android-gradle-v7_3/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/TestApplication.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.didiglobal.booster.android.test; - -import android.app.Application; - -public class TestApplication extends Application { - -} \ No newline at end of file diff --git a/booster-android-gradle-v7_3/src/integrationTest/resources/src/main/res/values/strings.xml b/booster-android-gradle-v7_3/src/integrationTest/resources/src/main/res/values/strings.xml deleted file mode 100644 index 8b2247616..000000000 --- a/booster-android-gradle-v7_3/src/integrationTest/resources/src/main/res/values/strings.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - Test - \ No newline at end of file diff --git a/booster-android-gradle-v7_3/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_3/V73.kt b/booster-android-gradle-v7_3/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_3/V73.kt deleted file mode 100644 index cef70d2f9..000000000 --- a/booster-android-gradle-v7_3/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_3/V73.kt +++ /dev/null @@ -1,328 +0,0 @@ -package com.didiglobal.booster.android.gradle.v7_3 - -import com.android.build.api.artifact.Artifact -import com.android.build.api.artifact.MultipleArtifact -import com.android.build.api.artifact.SingleArtifact -import com.android.build.api.artifact.impl.ArtifactsImpl -import com.android.build.api.component.impl.ComponentImpl -import com.android.build.api.transform.Context -import com.android.build.api.transform.QualifiedContent -import com.android.build.gradle.api.ApplicationVariant -import com.android.build.gradle.api.BaseVariant -import com.android.build.gradle.api.LibraryVariant -import com.android.build.gradle.internal.api.BaseVariantImpl -import com.android.build.gradle.internal.api.artifact.SourceArtifactType -import com.android.build.gradle.internal.pipeline.TransformManager -import com.android.build.gradle.internal.pipeline.TransformTask -import com.android.build.gradle.internal.publishing.AndroidArtifacts -import com.android.build.gradle.internal.publishing.AndroidArtifacts.ArtifactScope -import com.android.build.gradle.internal.scope.BuildArtifactType -import com.android.build.gradle.internal.scope.InternalArtifactType -import com.android.build.gradle.internal.scope.InternalMultipleArtifactType -import com.android.build.gradle.internal.scope.VariantScope -import com.android.build.gradle.internal.tasks.factory.GlobalTaskCreationConfigImpl -import com.android.build.gradle.internal.variant.BaseVariantData -import com.android.builder.core.DefaultApiVersion -import com.android.builder.model.ApiVersion -import com.android.sdklib.BuildToolInfo -import com.didiglobal.booster.gradle.AGPInterface -import org.gradle.api.Project -import org.gradle.api.Task -import org.gradle.api.artifacts.ArtifactCollection -import org.gradle.api.artifacts.component.ComponentIdentifier -import org.gradle.api.artifacts.result.ResolvedArtifactResult -import org.gradle.api.artifacts.result.ResolvedDependencyResult -import org.gradle.api.file.ConfigurableFileCollection -import org.gradle.api.file.FileCollection -import org.gradle.api.file.FileSystemLocation -import org.gradle.api.tasks.TaskProvider -import java.io.File -import java.util.TreeMap - -@Suppress("UnstableApiUsage") -private val SINGLE_ARTIFACT_TYPES = arrayOf( - BuildArtifactType::class, - InternalArtifactType::class, - SingleArtifact::class, - SourceArtifactType::class -).map { - it.sealedSubclasses -}.flatten().map { - it.objectInstance as Artifact.Single -}.associateBy { - it.javaClass.simpleName -} - -private val MULTIPLE_ARTIFACT_TYPES = arrayOf( - MultipleArtifact::class, - InternalMultipleArtifactType::class -).map { - it.sealedSubclasses -}.flatten().map { - it.objectInstance as Artifact.Multiple -}.associateBy { - it.javaClass.simpleName -} - -@Suppress("DEPRECATION") -internal object V73 : AGPInterface { - - private val BaseVariant.component: ComponentImpl - get() = BaseVariantImpl::class.java.getDeclaredField("component").apply { - isAccessible = true - }.get(this) as ComponentImpl - - @Suppress("UnstableApiUsage") - private fun BaseVariant.getFinalArtifactFiles(type: Artifact.Single): FileCollection { - return try { - project.objects.fileCollection().from(artifacts.get(type)) - } catch (e: Throwable) { - project.objects.fileCollection().builtBy(artifacts.get(type)) - } - } - - @Suppress("UnstableApiUsage") - private fun BaseVariant.getFinalArtifactFiles(type: Artifact.Multiple): FileCollection { - return try { - project.objects.fileCollection().from(artifacts.getAll(type)) - } catch (e: Throwable) { - project.objects.fileCollection().builtBy(artifacts.getAll(type)) - } - } - - @Suppress("UnstableApiUsage") - private val BaseVariant.artifacts: ArtifactsImpl - get() = component.artifacts - - override val scopeFullWithFeatures: MutableSet - get() = TransformManager.SCOPE_FULL_WITH_FEATURES - - override val scopeFullLibraryWithFeatures: MutableSet - get() = (TransformManager.SCOPE_FEATURES + QualifiedContent.Scope.PROJECT).toMutableSet() - - override val BaseVariant.project: Project - get() = component.variantDependencies.run { - javaClass.getDeclaredField("project").apply { - isAccessible = true - }.get(this) as Project - } - - override val BaseVariant.javaCompilerTaskProvider: TaskProvider - get() = javaCompileProvider - - override val BaseVariant.preBuildTaskProvider: TaskProvider - get() = preBuildProvider - - override val BaseVariant.assembleTaskProvider: TaskProvider - get() = assembleProvider - - override val BaseVariant.mergeAssetsTaskProvider: TaskProvider - get() = mergeAssetsProvider - - override val BaseVariant.mergeResourcesTaskProvider: TaskProvider - get() = try { - project.tasks.named(getTaskName("merge", "Resources")) - } catch (e: Throwable) { - mergeResourcesProvider - } - - override val BaseVariant.mergeNativeLibsTaskProvider: TaskProvider - get() = project.tasks.named(getTaskName("merge", "NativeLibs")) - - override val BaseVariant.processJavaResourcesTaskProvider: TaskProvider - get() = processJavaResourcesProvider - - override fun BaseVariant.getTaskName(prefix: String): String { - return component.computeTaskName(prefix) - } - - override fun BaseVariant.getTaskName(prefix: String, suffix: String): String { - return component.computeTaskName(prefix, suffix) - } - - override val BaseVariant.variantData: BaseVariantData - get() = javaClass.getDeclaredMethod("getVariantData").apply { - isAccessible = true - }.invoke(this) as BaseVariantData - - val BaseVariant.variantScope: VariantScope - get() = component.variantScope - - @Suppress("DEPRECATION") - private val BaseVariant.globalScope: GlobalTaskCreationConfigImpl - get() = component.global as GlobalTaskCreationConfigImpl - - override val BaseVariant.originalApplicationId: String - get() = component.namespace.get() - - override val BaseVariant.hasDynamicFeature: Boolean - get() = component.global.hasDynamicFeatures - - override val BaseVariant.rawAndroidResources: FileCollection - get() { - val allRes: ConfigurableFileCollection = component.services.fileCollection() - - allRes.from(component.variantDependencies.getArtifactCollection( - AndroidArtifacts.ConsumedConfigType.RUNTIME_CLASSPATH, - ArtifactScope.ALL, - AndroidArtifacts.ArtifactType.ANDROID_RES - ).artifactFiles) - - allRes.from(component.services.fileCollection(variantData.extraGeneratedResFolders) - .builtBy(listOfNotNull(variantData.extraGeneratedResFolders.builtBy))) - - component.taskContainer.generateApkDataTask?.let { - allRes.from(artifacts.get(InternalArtifactType.MICRO_APK_RES)) - } - - allRes.from(component.sources.res.getVariantSources().map { allSources -> - allSources.map { directoryEntries -> - directoryEntries.directoryEntries.map { - it.asFiles(component.services::directoryProperty) - } - } - }) - - return allRes - } - - override val BaseVariant.localAndroidResources: FileCollection - get() = component.services.fileCollection().from(component.sources.res.getLocalSourcesAsFileCollection().map { - it.values.reduce { acc, files -> - acc.plus(files) - } - }) - - override fun BaseVariant.getArtifactCollection( - configType: AndroidArtifacts.ConsumedConfigType, - scope: ArtifactScope, - artifactType: AndroidArtifacts.ArtifactType - ): ArtifactCollection { - return component.variantDependencies.getArtifactCollection(configType, scope, artifactType) - } - - override fun BaseVariant.getArtifactFileCollection( - configType: AndroidArtifacts.ConsumedConfigType, - scope: ArtifactScope, - artifactType: AndroidArtifacts.ArtifactType - ): FileCollection { - return component.variantDependencies.getArtifactFileCollection(configType, scope, artifactType) - } - - override val BaseVariant.allArtifacts: Map - get() = TreeMap().also { all -> - SINGLE_ARTIFACT_TYPES.entries.associateTo(all) { (name, type) -> - val artifacts: FileCollection by lazy { - getFinalArtifactFiles(type) - } - name to artifacts - } - MULTIPLE_ARTIFACT_TYPES.entries.associateTo(all) { (name, type) -> - val artifacts: FileCollection by lazy { - getFinalArtifactFiles(type) - } - name to artifacts - } - } - - override val BaseVariant.minSdkVersion: ApiVersion - get() = DefaultApiVersion(component.minSdkVersion.apiLevel) - - override val BaseVariant.targetSdkVersion: ApiVersion - get() = DefaultApiVersion(component.targetSdkVersion.apiLevel) - - override val BaseVariant.isApplication: Boolean - get() = component.componentType.isApk - - override val BaseVariant.isLibrary: Boolean - get() = component.componentType.isAar - - override val BaseVariant.isDynamicFeature: Boolean - get() = component.componentType.isDynamicFeature - - override val BaseVariant.aar: FileCollection - get() = getFinalArtifactFiles(SingleArtifact.AAR) - - override val BaseVariant.apk: FileCollection - get() = getFinalArtifactFiles(SingleArtifact.APK) - - override val BaseVariant.mergedManifests: FileCollection - get() = getFinalArtifactFiles(SingleArtifact.MERGED_MANIFEST) - - override val BaseVariant.mergedRes: FileCollection - get() = getFinalArtifactFiles(InternalArtifactType.MERGED_RES) - - override val BaseVariant.mergedNativeLibs: FileCollection - get() = getFinalArtifactFiles(InternalArtifactType.MERGED_NATIVE_LIBS) - - override val BaseVariant.mergedAssets: FileCollection - get() = when (this) { - is ApplicationVariant -> getFinalArtifactFiles(InternalArtifactType.COMPRESSED_ASSETS) - is LibraryVariant -> getFinalArtifactFiles(InternalArtifactType.LIBRARY_ASSETS) - else -> TODO("Unsupported variant type: $name") - } - - override val BaseVariant.processedRes: FileCollection - get() = getFinalArtifactFiles(InternalArtifactType.PROCESSED_RES) - - override val BaseVariant.symbolList: FileCollection - get() = when (this) { - is ApplicationVariant -> getFinalArtifactFiles(InternalArtifactType.RUNTIME_SYMBOL_LIST) - is LibraryVariant -> getFinalArtifactFiles(InternalArtifactType.COMPILE_SYMBOL_LIST) - else -> TODO("Unsupported variant type : $name") - } - - override val BaseVariant.symbolListWithPackageName: FileCollection - get() = getFinalArtifactFiles(InternalArtifactType.SYMBOL_LIST_WITH_PACKAGE_NAME) - - override val BaseVariant.dataBindingDependencyArtifacts: FileCollection - get() = getFinalArtifactFiles(InternalArtifactType.DATA_BINDING_DEPENDENCY_ARTIFACTS) - - override val BaseVariant.allClasses: FileCollection - get() = when (this) { - is ApplicationVariant -> getFinalArtifactFiles(InternalArtifactType.JAVAC) + project.files("build${File.separator}tmp${File.separator}kotlin-classes${File.separator}${dirName}") - is LibraryVariant -> getFinalArtifactFiles(InternalArtifactType.AAR_MAIN_JAR) - else -> project.files() - } - - override val BaseVariant.buildTools: BuildToolInfo - get() = globalScope.versionedSdkLoader.get().buildToolInfoProvider.get() - - override val BaseVariant.isPrecompileDependenciesResourcesEnabled: Boolean - get() = component.isPrecompileDependenciesResourcesEnabled - - override fun BaseVariant.getDependencies(transitive: Boolean, filter: (ComponentIdentifier) -> Boolean): Collection { - val all = getArtifactCollection( - AndroidArtifacts.ConsumedConfigType.RUNTIME_CLASSPATH, - AndroidArtifacts.ArtifactScope.ALL, - AndroidArtifacts.ArtifactType.CLASSES_JAR - ).filter { result -> - filter(result.id.componentIdentifier) - }.associateBy { - it.id.componentIdentifier.displayName - } - val result = if (!transitive) { - runtimeConfiguration.incoming.resolutionResult.root.dependencies.filterIsInstance().mapNotNull { - it.selected.id.displayName.takeIf { id -> id in all.keys } - }.associateWith { - all[it]!! - } - } else { - all - } - return result.values.toSet() - } - - override val Context.task: TransformTask - get() = javaClass.getDeclaredField("this$1").apply { - isAccessible = true - }.get(this).run { - javaClass.getDeclaredField("this$0").apply { - isAccessible = true - }.get(this) - } as TransformTask - - override val Project.aapt2Enabled: Boolean - get() = true - -} diff --git a/booster-android-gradle-v7_3/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_3/V73Factory.kt b/booster-android-gradle-v7_3/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_3/V73Factory.kt deleted file mode 100644 index 4af833baa..000000000 --- a/booster-android-gradle-v7_3/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_3/V73Factory.kt +++ /dev/null @@ -1,15 +0,0 @@ -package com.didiglobal.booster.android.gradle.v7_3 - -import com.android.repository.Revision -import com.didiglobal.booster.gradle.AGPInterface -import com.didiglobal.booster.gradle.AGPInterfaceFactory -import com.google.auto.service.AutoService - -@AutoService(AGPInterfaceFactory::class) -class V73Factory : AGPInterfaceFactory { - - override val revision: Revision = Revision(7, 3, 0) - - override fun newAGPInterface(): AGPInterface = V73 - -} diff --git a/booster-android-gradle-v7_4/README.md b/booster-android-gradle-v7_4/README.md deleted file mode 100644 index 1e94458f5..000000000 --- a/booster-android-gradle-v7_4/README.md +++ /dev/null @@ -1,6 +0,0 @@ -# booster-android-gradle-v7_4 - -This module is an implementation of [booster-android-gradle-api](../booster-android-gradle-api) for Android gradle plugin above 7.4 - -本模块是 [booster-android-gradle-api](../booster-android-gradle-api) 针对 Android gradle plugin 7.4 以上版本的实现。 - diff --git a/booster-android-gradle-v7_4/build.gradle b/booster-android-gradle-v7_4/build.gradle deleted file mode 100644 index 25f86ff60..000000000 --- a/booster-android-gradle-v7_4/build.gradle +++ /dev/null @@ -1,27 +0,0 @@ -apply plugin: 'java-gradle-plugin' - -apply from: "$rootDir/gradle/booster.gradle" -apply from: "$rootDir/gradle/integration-test.gradle" -apply from: "$rootDir/gradle/functional-test.gradle" - -dependencies { - kapt 'com.google.auto.service:auto-service:1.0' - api 'com.google.auto.service:auto-service:1.0' - api project(':booster-android-gradle-compat') - compileOnly 'com.android.tools:repository:30.0.0' - compileOnly 'com.android.tools:common:30.0.0' - compileOnly 'com.android.tools:sdklib:30.0.0' - compileOnly 'com.android.tools.build:gradle:7.4.2' - testImplementation 'com.android.tools.build:gradle:7.4.2' - testImplementation 'com.android.tools:common:30.0.0' - testImplementation 'io.bootstage.testkit:testkit-gradle-plugin:1.1.0' - testImplementation project(':booster-build') -} - -jar { - exclude('com/android/sdklib/BuildToolInfo.class') -} - -gradlePlugin { - testSourceSets sourceSets.functionalTest, sourceSets.integrationTest -} \ No newline at end of file diff --git a/booster-android-gradle-v7_4/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v7_4/V74IntegrationTest.kt b/booster-android-gradle-v7_4/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v7_4/V74IntegrationTest.kt deleted file mode 100644 index 0e38cbe98..000000000 --- a/booster-android-gradle-v7_4/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v7_4/V74IntegrationTest.kt +++ /dev/null @@ -1,480 +0,0 @@ -@file:Suppress("DEPRECATION") - -package com.didiglobal.booster.android.gradle.v7_4 - -import com.android.build.gradle.AppExtension -import com.android.build.gradle.BaseExtension -import com.android.build.gradle.LibraryExtension -import com.android.build.gradle.api.BaseVariant -import com.didiglobal.booster.gradle.AGP -import com.didiglobal.booster.gradle.getAndroid -import com.didiglobal.booster.kotlinx.search -import io.bootstage.testkit.gradle.Case -import io.bootstage.testkit.gradle.TestCase -import io.bootstage.testkit.gradle.VariantTestCase -import io.bootstage.testkit.gradle.rules.GradleExecutor -import io.bootstage.testkit.gradle.rules.LocalProperties -import io.bootstage.testkit.gradle.rules.copyFromResource -import io.bootstage.testkit.gradle.rules.rule -import org.gradle.api.Project -import org.junit.Before -import org.junit.Rule -import org.junit.rules.TemporaryFolder -import org.junit.rules.TestRule -import java.io.File -import kotlin.test.Test -import kotlin.test.assertEquals -import kotlin.test.assertFalse -import kotlin.test.assertNotNull -import kotlin.test.assertTrue -import kotlin.test.fail - -private val MIN_SDK_VERSION = System.getProperty("android.minsdk.version").toInt() - -private const val TARGET_SDK_VERSION = 30 - -private val ARGS = System.getProperty("gradle.args").split("\\s+".toRegex()) + listOf( - "-Pbooster_version=${Build.VERSION}", - "-Pandroid_gradle_version=7.4.2", - "-Pcompile_sdk_version=30", - "-Pbuild_tools_version=29.0.2", - "-Pmin_sdk_version=${MIN_SDK_VERSION}", - "-Ptarget_sdk_version=${TARGET_SDK_VERSION}" -) - -@Suppress("RemoveCurlyBracesFromTemplate", "FunctionName") -abstract class V74IntegrationTest(private val isLib: Boolean) { - - private val projectDir = TemporaryFolder() - - @get:Rule - val ruleChain: TestRule = rule(projectDir) { - rule(LocalProperties(projectDir::getRoot)) { - GradleExecutor(projectDir::getRoot, "7.5", *ARGS.toTypedArray()) - } - } - - @Before - fun setup() { - projectDir.copyFromResource("${if (isLib) "lib" else "app"}.gradle", "build.gradle") - projectDir.copyFromResource("buildSrc") - projectDir.copyFromResource("src") - projectDir.newFile("gradle.properties").writeText("org.gradle.jvmargs=-Xmx4g -XX:MaxMetaspaceSize=2g") - assertEquals(7, AGP.revision.major) - assertEquals(4, AGP.revision.minor) - } - - @Test - @Case(ScopeFullWithFeaturesTest::class) - fun `test AGPInterface#scopeFullWithFeatures`() = Unit - - @Test - @Case(ScopeFullLibraryWithFeaturesTest::class) - fun `test AGPInterface#scopeFullLibraryWithFeatures`() = Unit - - @Test - @Case(ProjectTest::class) - fun `test AGPInterface#project`() = Unit - - @Test - @Case(JavaCompilerTaskTestUnit::class) - fun `test AGPInterface#javaCompilerTask`() = Unit - - @Test - @Case(PreBuildTaskTestUnit::class) - fun `test AGPInterface#preBuildTask`() = Unit - - @Test - @Case(AssembleTaskTestUnit::class) - fun `test AGPInterface#assembleTask`() = Unit - - @Test - @Case(MergeAssetsTaskTestUnit::class) - fun `test AGPInterface#mergeAssetsTask`() = Unit - - @Test - @Case(MergeResourcesTaskTestUnit::class) - fun `test AGPInterface#mergeResources`() = Unit - - @Test - @Case(GetTaskNameTestUnit::class) - fun `test AGPInterface#getTaskName(String)`() = Unit - - @Test - @Case(GetTaskName2TestUnit::class) - fun `test AGPInterface#getTaskName(String, String)`() = Unit - - @Test - @Case(VariantDataTestUnit::class) - fun `test AGPInterface#variantData`() = Unit - - @Test - @Case(OriginalApplicationIdTestUnit::class) - fun `test AGPInterface#originalApplicationId`() = Unit - - @Test - @Case(HasDynamicFeatureTestUnit::class) - fun `test AGPInterface#hasDynamicFeature`() = Unit - - @Test - @Case(RawAndroidResourcesTestUnit::class) - fun `test AGPInterface#rawAndroidResources`() = Unit - - @Test - @Case(AllArtifactsTestUnit::class) - fun `test AGPInterface#allArtifacts`() = Unit - - @Test - @Case(MinSdkVersionTestUnit::class) - fun `test AGPInterface#minSdkVersion`() = Unit - - @Test - @Case(TargetSdkVersionTestUnit::class) - fun `test AGPInterface#targetSdkVersion`() = Unit - - @Test - @Case(AarTestUnit::class) - fun `test AGPInterface#aar`() { - } - - @Test - @Case(ApkTestUnit::class) - fun `test AGPInterface#apk`() { - } - - @Test - @Case(MergedManifestsTestUnit::class) - fun `test AGPInterface#mergedManifests`() { - } - - @Test - @Case(MergedResourcesTestUnit::class) - fun `test AGPInterface#mergedRes`() { - } - - @Test - @Case(MergedAssetsTestUnit::class) - fun `test AGPInterface#mergedAssets`() { - } - - @Test - @Case(ProcessedResTestUnit::class) - fun `test AGPInterface#processedRes`() { - } - - @Test - @Case(SymbolListTestUnit::class) - fun `test AGPInterface#symbolList`() { - } - - @Test - @Case(SymbolListWithPackageNameTestUnit::class) - fun `test AGPInterface#symbolListWithPackageName`() { - } - - @Test - @Case(AllClassesTestUnit::class) - fun `test AGPInterface#allClasses`() { - } - -// @Test -// @Case(BuildToolsTestUnit::class) -// fun `test AGPInterface#buildTools`() { -// } - -} - -class V74AppIntegrationTest : V74IntegrationTest(false) - -class V74LibIntegrationTest : V74IntegrationTest(true) - -class ScopeFullWithFeaturesTest : TestCase { - override fun apply(project: Project) { - assertEquals("PROJECT,SUB_PROJECTS,EXTERNAL_LIBRARIES,FEATURES", AGP.scopeFullWithFeatures.joinToString(",")) - } -} - -class ScopeFullLibraryWithFeaturesTest : TestCase { - override fun apply(project: Project) { - assertEquals("FEATURES,PROJECT", AGP.scopeFullLibraryWithFeatures.joinToString(",")) - } -} - -class ProjectTest : TestCase { - override fun apply(project: Project) { - val assert: (BaseVariant) -> Unit = { variant -> - assertEquals(project, AGP.run { variant.project }) - } - project.afterEvaluate { - when (val android = project.getAndroid()) { - is AppExtension -> android.applicationVariants.forEach(assert) - is LibraryExtension -> android.libraryVariants.forEach(assert) - } - } - } -} - -class JavaCompilerTaskTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.javaCompilerTask }) - } -} - -class PreBuildTaskTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.preBuildTask }) - } -} - -class AssembleTaskTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.assembleTask }) - } -} - -class MergeAssetsTaskTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.mergeAssetsTask }) - } -} - -class MergeResourcesTaskTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.mergeResourcesTask }) - } -} - -class GetTaskNameTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertEquals("assemble${variant.name.capitalize()}", AGP.run { variant.getTaskName("assemble") }) - } -} - - -class GetTaskName2TestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertEquals("merge${variant.name.capitalize()}Resources", AGP.run { variant.getTaskName("merge", "Resources") }) - } -} - -class VariantDataTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.variantData }) - } -} - -class OriginalApplicationIdTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - assertNotNull(AGP.run { variant.originalApplicationId }) - } - } -} - -class HasDynamicFeatureTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertFalse(AGP.run { variant.hasDynamicFeature }) - } -} - -class RawAndroidResourcesTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val rawAndroidResources = AGP.run { variant.rawAndroidResources } - assertNotNull(rawAndroidResources) - if (rawAndroidResources.isEmpty()) { - fail("rawAndroidResources is empty") - } - rawAndroidResources.forEach { - println(" - ${it.path}") - } - } - } -} - -class AllArtifactsTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val allArtifacts = AGP.run { variant.allArtifacts } - assertNotNull(allArtifacts) - if (allArtifacts.isEmpty()) { - fail("allArtifacts is empty") - } - allArtifacts.forEach { (k, v) -> - println(" - $k => $v") - } - } - } -} - -class MinSdkVersionTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - val minSdkVersion = AGP.run { variant.minSdkVersion } - assertNotNull(minSdkVersion) - assertEquals(MIN_SDK_VERSION, minSdkVersion.apiLevel) - } -} - -class TargetSdkVersionTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - val targetSdkVersion = AGP.run { variant.targetSdkVersion } - assertNotNull(targetSdkVersion) - assertEquals(TARGET_SDK_VERSION, targetSdkVersion.apiLevel) - } -} - -class AarTestUnit : VariantTestCase() { - override fun apply(project: Project) { - if (project.plugins.hasPlugin("com.android.library")) { - super.apply(project) - } - } - - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val aar = AGP.run { variant.aar }.search { - it.extension == "aar" - } - if (aar.isEmpty()) { - fail("aar is empty") - } - aar.forEach { - println(" - ${it.path}") - } - } - } -} - -class ApkTestUnit : VariantTestCase() { - override fun apply(project: Project) { - if (project.plugins.hasPlugin("com.android.application")) { - super.apply(project) - } - } - - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val apk = AGP.run { variant.apk }.search { - it.extension == "apk" - } - if (apk.isEmpty()) { - fail("apk is empty") - } - apk.forEach { - println(" - ${it.path}") - } - } - } -} - -class MergedManifestsTestUnit : VariantTestCase() { - override fun apply(project: Project) { - if (project.plugins.hasPlugin("com.android.application")) { - super.apply(project) - } - } - - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val mergedManifests = AGP.run { variant.mergedManifests }.search { - it.name == "AndroidManifest.xml" - } - if (mergedManifests.isEmpty()) { - fail("mergedManifests is empty") - } - mergedManifests.forEach { - println(" - ${it.path}") - } - } - } -} - -class MergedResourcesTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val mergedResources = AGP.run { variant.mergedRes } - if (mergedResources.isEmpty()) { - fail("mergedRes is empty") - } - mergedResources.forEach { - println(" - ${it.path}") - } - } - } -} - -class MergedAssetsTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val mergedAssets = AGP.run { variant.mergedAssets } - if (mergedAssets.isEmpty()) { - fail("mergedAssets is empty") - } - mergedAssets.forEach { - println(" - ${it.path}") - } - } - } -} - -class ProcessedResTestUnit : VariantTestCase() { - override fun apply(project: Project) { - if (project.plugins.hasPlugin("com.android.application")) { - super.apply(project) - } - } - - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val processedRes = AGP.run { variant.processedRes }.search { - it.extension == "ap_" - } - if (processedRes.isEmpty()) { - fail("processedRes is empty") - } - processedRes.forEach { - println(" - ${it.path}") - } - } - } -} - -class SymbolListTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val symbolList = AGP.run { variant.symbolList } - if (symbolList.isEmpty()) { - fail("symbolList is empty") - } - symbolList.forEach { - println(" - ${it.path}") - } - } - } -} - -class SymbolListWithPackageNameTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val symbolListWithPackageName = AGP.run { variant.symbolListWithPackageName } - if (symbolListWithPackageName.isEmpty()) { - fail("symbolListWithPackageName is empty") - } - symbolListWithPackageName.forEach { - println(" - ${it.path}") - } - } - } -} - -class AllClassesTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val location = AGP.run { variant.allClasses }.files - assertTrue("ALL_CLASSES: $location", location::isNotEmpty) - assertTrue("No class file found at $location") { - location.search(File::isFile).isNotEmpty() - } - } - } -} diff --git a/booster-android-gradle-v7_4/src/integrationTest/resources/app.gradle b/booster-android-gradle-v7_4/src/integrationTest/resources/app.gradle deleted file mode 100644 index aa3c5f2d6..000000000 --- a/booster-android-gradle-v7_4/src/integrationTest/resources/app.gradle +++ /dev/null @@ -1,60 +0,0 @@ -buildscript { - repositories { - mavenLocal() - mavenCentral() - google() - maven { url 'https://oss.sonatype.org/content/repositories/public/' } - maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } - } - dependencies { - classpath "com.android.tools.build:gradle:${project.android_gradle_version}" - classpath("com.didiglobal.booster:booster-gradle-plugin:${project.booster_version}") { - exclude group: 'com.google.guava' - } - classpath "io.bootstage.testkit:testkit-gradle-plugin:1.4.0" - } -} - -apply plugin: 'com.android.application' -apply plugin: 'com.didiglobal.booster' -apply plugin: 'io.bootstage.testkit' - -android { - compileSdkVersion project.compile_sdk_version as Integer - buildToolsVersion project.build_tools_version - defaultConfig { - applicationId 'com.didiglobal.booster.test' - minSdkVersion project.min_sdk_version as Integer - targetSdkVersion project.target_sdk_version as Integer - versionCode 1 - versionName "1.0" - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - } - buildTypes { - debug { - minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' - } - } - flavorDimensions 'lang' - productFlavors { - en { - dimension 'lang' - applicationIdSuffix '.en' - } - cn { - dimension 'lang' - applicationIdSuffix '.cn' - } - } - lintOptions { - checkReleaseBuilds false - } -} - -repositories { - mavenLocal() - mavenCentral() - google() - maven { url 'https://oss.sonatype.org/content/repositories/public/' } -} diff --git a/booster-android-gradle-v7_4/src/integrationTest/resources/buildSrc/build.gradle b/booster-android-gradle-v7_4/src/integrationTest/resources/buildSrc/build.gradle deleted file mode 100644 index 79a9b104a..000000000 --- a/booster-android-gradle-v7_4/src/integrationTest/resources/buildSrc/build.gradle +++ /dev/null @@ -1,24 +0,0 @@ -buildscript { - repositories { - mavenLocal() - mavenCentral() - google() - maven { url 'https://oss.sonatype.org/content/repositories/public/' } - maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } - } -} - -repositories { - mavenLocal() - mavenCentral() - google() - maven { url 'https://oss.sonatype.org/content/repositories/public/' } -} - -dependencies { - implementation "com.android.tools.build:gradle:${project.android_gradle_version}" - implementation("com.didiglobal.booster:booster-android-gradle-api:${project.booster_version}") { - exclude group: 'com.google.guava' - } - implementation "io.bootstage.testkit:testkit-gradle-plugin:1.4.0" -} diff --git a/booster-android-gradle-v7_4/src/integrationTest/resources/lib.gradle b/booster-android-gradle-v7_4/src/integrationTest/resources/lib.gradle deleted file mode 100644 index adc9b1ca0..000000000 --- a/booster-android-gradle-v7_4/src/integrationTest/resources/lib.gradle +++ /dev/null @@ -1,57 +0,0 @@ -buildscript { - repositories { - mavenLocal() - mavenCentral() - google() - maven { url 'https://oss.sonatype.org/content/repositories/public/' } - maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } - } - dependencies { - classpath "com.android.tools.build:gradle:${project.android_gradle_version}" - classpath("com.didiglobal.booster:booster-gradle-plugin:${project.booster_version}") { - exclude group: 'com.google.guava' - } - classpath "io.bootstage.testkit:testkit-gradle-plugin:1.4.0" - } -} - -apply plugin: 'com.android.library' -apply plugin: 'com.didiglobal.booster' -apply plugin: 'io.bootstage.testkit' - -android { - compileSdkVersion project.compile_sdk_version as Integer - buildToolsVersion project.build_tools_version - defaultConfig { - minSdkVersion project.min_sdk_version as Integer - targetSdkVersion project.target_sdk_version as Integer - versionCode 1 - versionName "1.0" - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - } - buildTypes { - debug { - minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' - } - } - flavorDimensions 'lang' - productFlavors { - en { - dimension 'lang' - } - cn { - dimension 'lang' - } - } - lintOptions { - checkReleaseBuilds false - } -} - -repositories { - mavenLocal() - mavenCentral() - google() - maven { url 'https://oss.sonatype.org/content/repositories/public/' } -} diff --git a/booster-android-gradle-v7_4/src/integrationTest/resources/src/main/AndroidManifest.xml b/booster-android-gradle-v7_4/src/integrationTest/resources/src/main/AndroidManifest.xml deleted file mode 100644 index 30800c604..000000000 --- a/booster-android-gradle-v7_4/src/integrationTest/resources/src/main/AndroidManifest.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/booster-android-gradle-v7_4/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/MainActivity.java b/booster-android-gradle-v7_4/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/MainActivity.java deleted file mode 100644 index 0eb4ec7b4..000000000 --- a/booster-android-gradle-v7_4/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/MainActivity.java +++ /dev/null @@ -1,6 +0,0 @@ -package com.didiglobal.booster.android.test; - -import android.app.Activity; - -public class MainActivity extends Activity { -} \ No newline at end of file diff --git a/booster-android-gradle-v7_4/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/TestApplication.java b/booster-android-gradle-v7_4/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/TestApplication.java deleted file mode 100644 index 3ecfb1507..000000000 --- a/booster-android-gradle-v7_4/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/TestApplication.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.didiglobal.booster.android.test; - -import android.app.Application; - -public class TestApplication extends Application { - -} \ No newline at end of file diff --git a/booster-android-gradle-v7_4/src/integrationTest/resources/src/main/res/values/strings.xml b/booster-android-gradle-v7_4/src/integrationTest/resources/src/main/res/values/strings.xml deleted file mode 100644 index 8b2247616..000000000 --- a/booster-android-gradle-v7_4/src/integrationTest/resources/src/main/res/values/strings.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - Test - \ No newline at end of file diff --git a/booster-android-gradle-v7_4/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_4/V74.kt b/booster-android-gradle-v7_4/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_4/V74.kt deleted file mode 100644 index bf3899b3a..000000000 --- a/booster-android-gradle-v7_4/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_4/V74.kt +++ /dev/null @@ -1,333 +0,0 @@ -package com.didiglobal.booster.android.gradle.v7_4 - -import com.android.build.api.artifact.Artifact -import com.android.build.api.artifact.MultipleArtifact -import com.android.build.api.artifact.SingleArtifact -import com.android.build.api.artifact.impl.ArtifactsImpl -import com.android.build.api.component.impl.ComponentImpl -import com.android.build.api.transform.Context -import com.android.build.api.transform.QualifiedContent -import com.android.build.api.variant.impl.TaskProviderBasedDirectoryEntryImpl -import com.android.build.gradle.api.ApplicationVariant -import com.android.build.gradle.api.BaseVariant -import com.android.build.gradle.api.LibraryVariant -import com.android.build.gradle.internal.api.BaseVariantImpl -import com.android.build.gradle.internal.api.artifact.SourceArtifactType -import com.android.build.gradle.internal.pipeline.TransformManager -import com.android.build.gradle.internal.pipeline.TransformTask -import com.android.build.gradle.internal.publishing.AndroidArtifacts -import com.android.build.gradle.internal.publishing.AndroidArtifacts.ArtifactScope -import com.android.build.gradle.internal.scope.BuildArtifactType -import com.android.build.gradle.internal.scope.InternalArtifactType -import com.android.build.gradle.internal.scope.InternalMultipleArtifactType -import com.android.build.gradle.internal.tasks.factory.GlobalTaskCreationConfigImpl -import com.android.build.gradle.internal.variant.BaseVariantData -import com.android.builder.core.DefaultApiVersion -import com.android.builder.model.ApiVersion -import com.android.sdklib.BuildToolInfo -import com.didiglobal.booster.gradle.AGPInterface -import org.gradle.api.Project -import org.gradle.api.Task -import org.gradle.api.artifacts.ArtifactCollection -import org.gradle.api.artifacts.component.ComponentIdentifier -import org.gradle.api.artifacts.result.ResolvedArtifactResult -import org.gradle.api.artifacts.result.ResolvedDependencyResult -import org.gradle.api.file.ConfigurableFileCollection -import org.gradle.api.file.FileCollection -import org.gradle.api.file.FileSystemLocation -import org.gradle.api.tasks.TaskProvider -import java.io.File -import java.util.TreeMap - -@Suppress("UnstableApiUsage") -private val SINGLE_ARTIFACT_TYPES = arrayOf( - BuildArtifactType::class, - InternalArtifactType::class, - SingleArtifact::class, - SourceArtifactType::class -).map { - it.sealedSubclasses -}.flatten().map { - it.objectInstance as Artifact.Single -}.associateBy { - it.javaClass.simpleName -} - -private val MULTIPLE_ARTIFACT_TYPES = arrayOf( - MultipleArtifact::class, - InternalMultipleArtifactType::class -).map { - it.sealedSubclasses -}.flatten().map { - it.objectInstance as Artifact.Multiple -}.associateBy { - it.javaClass.simpleName -} - -@Suppress("DEPRECATION") -internal object V74 : AGPInterface { - - private val BaseVariant.component: ComponentImpl<*> - get() = BaseVariantImpl::class.java.getDeclaredField("component").apply { - isAccessible = true - }.get(this) as ComponentImpl<*> - - @Suppress("UnstableApiUsage") - private fun BaseVariant.getFinalArtifactFiles(type: Artifact.Single): FileCollection { - return try { - project.objects.fileCollection().from(artifacts.get(type)) - } catch (e: Throwable) { - project.objects.fileCollection().builtBy(artifacts.get(type)) - } - } - - @Suppress("UnstableApiUsage") - private fun BaseVariant.getFinalArtifactFiles(type: Artifact.Multiple): FileCollection { - return try { - project.objects.fileCollection().from(artifacts.getAll(type)) - } catch (e: Throwable) { - project.objects.fileCollection().builtBy(artifacts.getAll(type)) - } - } - - @Suppress("UnstableApiUsage") - private val BaseVariant.artifacts: ArtifactsImpl - get() = component.artifacts - - override val scopeFullWithFeatures: MutableSet - get() = TransformManager.SCOPE_FULL_WITH_FEATURES - - override val scopeFullLibraryWithFeatures: MutableSet - get() = (TransformManager.SCOPE_FEATURES + QualifiedContent.Scope.PROJECT).toMutableSet() - - override val BaseVariant.project: Project - get() = component.variantDependencies.run { - javaClass.getDeclaredField("project").apply { - isAccessible = true - }.get(this) as Project - } - - override val BaseVariant.javaCompilerTaskProvider: TaskProvider - get() = javaCompileProvider - - override val BaseVariant.preBuildTaskProvider: TaskProvider - get() = preBuildProvider - - override val BaseVariant.assembleTaskProvider: TaskProvider - get() = assembleProvider - - override val BaseVariant.mergeAssetsTaskProvider: TaskProvider - get() = mergeAssetsProvider - - override val BaseVariant.mergeResourcesTaskProvider: TaskProvider - get() = try { - project.tasks.named(getTaskName("merge", "Resources")) - } catch (e: Throwable) { - mergeResourcesProvider - } - - override val BaseVariant.mergeNativeLibsTaskProvider: TaskProvider - get() = project.tasks.named(getTaskName("merge", "NativeLibs")) - - override val BaseVariant.processJavaResourcesTaskProvider: TaskProvider - get() = processJavaResourcesProvider - - override fun BaseVariant.getTaskName(prefix: String): String { - return component.computeTaskName(prefix) - } - - override fun BaseVariant.getTaskName(prefix: String, suffix: String): String { - return component.computeTaskName(prefix, suffix) - } - - override val BaseVariant.variantData: BaseVariantData - get() = javaClass.getDeclaredMethod("getVariantData").apply { - isAccessible = true - }.invoke(this) as BaseVariantData - - @Suppress("DEPRECATION") - private val BaseVariant.globalScope: GlobalTaskCreationConfigImpl - get() = component.global as GlobalTaskCreationConfigImpl - - override val BaseVariant.originalApplicationId: String - get() = component.namespace.get() - - override val BaseVariant.hasDynamicFeature: Boolean - get() = component.global.hasDynamicFeatures - - override val BaseVariant.rawAndroidResources: FileCollection - get() { - val allRes: ConfigurableFileCollection = component.services.fileCollection() - - allRes.from(component.variantDependencies.getArtifactCollection( - AndroidArtifacts.ConsumedConfigType.RUNTIME_CLASSPATH, - ArtifactScope.ALL, - AndroidArtifacts.ArtifactType.ANDROID_RES - ).artifactFiles) - - allRes.from(component.services.fileCollection(variantData.extraGeneratedResFolders) - .builtBy(listOfNotNull(variantData.extraGeneratedResFolders.builtBy))) - - component.taskContainer.generateApkDataTask?.let { - allRes.from(artifacts.get(InternalArtifactType.MICRO_APK_RES)) - } - - allRes.from(component.sources.res.getVariantSources().map { allSources -> - allSources.getEntries().map { - if (it is TaskProviderBasedDirectoryEntryImpl) { - it.directoryProvider - } else { - it.asFiles(component.services.provider { - component.services.projectInfo.projectDirectory - }) - } - } - }) - - return allRes - } - - override val BaseVariant.localAndroidResources: FileCollection - get() = component.services.fileCollection().from(component.sources.res.getLocalSources().values.map { - it.map { dirs -> - dirs.map { dir -> - dir.asFileTree - }.reduce { acc, dir -> - acc.plus(dir) - } - } - }) - - override fun BaseVariant.getArtifactCollection( - configType: AndroidArtifacts.ConsumedConfigType, - scope: ArtifactScope, - artifactType: AndroidArtifacts.ArtifactType - ): ArtifactCollection { - return component.variantDependencies.getArtifactCollection(configType, scope, artifactType) - } - - override fun BaseVariant.getArtifactFileCollection( - configType: AndroidArtifacts.ConsumedConfigType, - scope: ArtifactScope, - artifactType: AndroidArtifacts.ArtifactType - ): FileCollection { - return component.variantDependencies.getArtifactFileCollection(configType, scope, artifactType) - } - - override val BaseVariant.allArtifacts: Map - get() = TreeMap().also { all -> - SINGLE_ARTIFACT_TYPES.entries.associateTo(all) { (name, type) -> - val artifacts: FileCollection by lazy { - getFinalArtifactFiles(type) - } - name to artifacts - } - MULTIPLE_ARTIFACT_TYPES.entries.associateTo(all) { (name, type) -> - val artifacts: FileCollection by lazy { - getFinalArtifactFiles(type) - } - name to artifacts - } - } - - override val BaseVariant.minSdkVersion: ApiVersion - get() = DefaultApiVersion(component.minSdkVersion.apiLevel) - - override val BaseVariant.targetSdkVersion: ApiVersion - get() = DefaultApiVersion(component.targetSdkVersion.apiLevel) - - override val BaseVariant.isApplication: Boolean - get() = component.componentType.isApk - - override val BaseVariant.isLibrary: Boolean - get() = component.componentType.isAar - - override val BaseVariant.isDynamicFeature: Boolean - get() = component.componentType.isDynamicFeature - - override val BaseVariant.aar: FileCollection - get() = getFinalArtifactFiles(SingleArtifact.AAR) - - override val BaseVariant.apk: FileCollection - get() = getFinalArtifactFiles(SingleArtifact.APK) - - override val BaseVariant.mergedManifests: FileCollection - get() = getFinalArtifactFiles(SingleArtifact.MERGED_MANIFEST) - - override val BaseVariant.mergedRes: FileCollection - get() = getFinalArtifactFiles(InternalArtifactType.MERGED_RES) - - override val BaseVariant.mergedNativeLibs: FileCollection - get() = getFinalArtifactFiles(InternalArtifactType.MERGED_NATIVE_LIBS) - - override val BaseVariant.mergedAssets: FileCollection - get() = when (this) { - is ApplicationVariant -> getFinalArtifactFiles(InternalArtifactType.COMPRESSED_ASSETS) - is LibraryVariant -> getFinalArtifactFiles(InternalArtifactType.LIBRARY_ASSETS) - else -> TODO("Unsupported variant type: $name") - } - - override val BaseVariant.processedRes: FileCollection - get() = getFinalArtifactFiles(InternalArtifactType.PROCESSED_RES) - - override val BaseVariant.symbolList: FileCollection - get() = when (this) { - is ApplicationVariant -> getFinalArtifactFiles(InternalArtifactType.RUNTIME_SYMBOL_LIST) - is LibraryVariant -> getFinalArtifactFiles(InternalArtifactType.COMPILE_SYMBOL_LIST) - else -> TODO("Unsupported variant type : $name") - } - - override val BaseVariant.symbolListWithPackageName: FileCollection - get() = getFinalArtifactFiles(InternalArtifactType.SYMBOL_LIST_WITH_PACKAGE_NAME) - - override val BaseVariant.dataBindingDependencyArtifacts: FileCollection - get() = getFinalArtifactFiles(InternalArtifactType.DATA_BINDING_DEPENDENCY_ARTIFACTS) - - override val BaseVariant.allClasses: FileCollection - get() = when (this) { - is ApplicationVariant -> getFinalArtifactFiles(InternalArtifactType.JAVAC) + project.files("build${File.separator}tmp${File.separator}kotlin-classes${File.separator}${dirName}") - is LibraryVariant -> getFinalArtifactFiles(InternalArtifactType.AAR_MAIN_JAR) - else -> project.files() - } - - override val BaseVariant.buildTools: BuildToolInfo - get() = globalScope.versionedSdkLoader.get().buildToolInfoProvider.get() - - override val BaseVariant.isPrecompileDependenciesResourcesEnabled: Boolean - get() = component.androidResourcesCreationConfig?.isPrecompileDependenciesResourcesEnabled == true - - override fun BaseVariant.getDependencies(transitive: Boolean, filter: (ComponentIdentifier) -> Boolean): Collection { - val all = getArtifactCollection( - AndroidArtifacts.ConsumedConfigType.RUNTIME_CLASSPATH, - AndroidArtifacts.ArtifactScope.ALL, - AndroidArtifacts.ArtifactType.CLASSES_JAR - ).filter { result -> - filter(result.id.componentIdentifier) - }.associateBy { - it.id.componentIdentifier.displayName - } - val result = if (!transitive) { - runtimeConfiguration.incoming.resolutionResult.root.dependencies.filterIsInstance().mapNotNull { - it.selected.id.displayName.takeIf { id -> id in all.keys } - }.associateWith { - all[it]!! - } - } else { - all - } - return result.values.toSet() - } - - override val Context.task: TransformTask - get() = javaClass.getDeclaredField("this$1").apply { - isAccessible = true - }.get(this).run { - javaClass.getDeclaredField("this$0").apply { - isAccessible = true - }.get(this) - } as TransformTask - - override val Project.aapt2Enabled: Boolean - get() = true - -} diff --git a/booster-android-gradle-v7_4/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_4/V74Factory.kt b/booster-android-gradle-v7_4/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_4/V74Factory.kt deleted file mode 100644 index 0ab0810ef..000000000 --- a/booster-android-gradle-v7_4/src/main/kotlin/com/didiglobal/booster/android/gradle/v7_4/V74Factory.kt +++ /dev/null @@ -1,15 +0,0 @@ -package com.didiglobal.booster.android.gradle.v7_4 - -import com.android.repository.Revision -import com.didiglobal.booster.gradle.AGPInterface -import com.didiglobal.booster.gradle.AGPInterfaceFactory -import com.google.auto.service.AutoService - -@AutoService(AGPInterfaceFactory::class) -class V74Factory : AGPInterfaceFactory { - - override val revision: Revision = Revision(7, 4, 2) - - override fun newAGPInterface(): AGPInterface = V74 - -} diff --git a/booster-android-gradle-v7_0/README.md b/booster-android-gradle-v8_0/README.md similarity index 66% rename from booster-android-gradle-v7_0/README.md rename to booster-android-gradle-v8_0/README.md index bb2f24ac0..1543df551 100644 --- a/booster-android-gradle-v7_0/README.md +++ b/booster-android-gradle-v8_0/README.md @@ -1,6 +1,6 @@ -# booster-android-gradle-v7_0 +# booster-android-gradle-v8_0 -This module is an implementation of [booster-android-gradle-api](../booster-android-gradle-api) for Android gradle plugin above 7.0 +This module is an implementation of [booster-android-gradle-api](../booster-android-gradle-api) for Android gradle plugin above 8.0 -本模块是 [booster-android-gradle-api](../booster-android-gradle-api) 针对 Android gradle plugin 7.0 以上版本的实现。 +本模块是 [booster-android-gradle-api](../booster-android-gradle-api) 针对 Android gradle plugin 8.0 以上版本的实现。 diff --git a/booster-android-gradle-v7_0/build.gradle b/booster-android-gradle-v8_0/build.gradle similarity index 81% rename from booster-android-gradle-v7_0/build.gradle rename to booster-android-gradle-v8_0/build.gradle index 06c24957e..2c4460414 100644 --- a/booster-android-gradle-v7_0/build.gradle +++ b/booster-android-gradle-v8_0/build.gradle @@ -11,11 +11,12 @@ dependencies { compileOnly 'com.android.tools:repository:30.0.0' compileOnly 'com.android.tools:common:30.0.0' compileOnly 'com.android.tools:sdklib:30.0.0' - compileOnly 'com.android.tools.build:gradle:7.0.0' - testImplementation 'com.android.tools.build:gradle:7.0.0' + compileOnly 'com.android.tools.build:gradle:8.0.0' + testImplementation 'com.android.tools.build:gradle:8.0.0' testImplementation 'com.android.tools:common:30.0.0' - testImplementation 'io.bootstage.testkit:testkit-gradle-plugin:1.1.0' + testImplementation 'io.bootstage.testkit:testkit-gradle-plugin:2.1.0' testImplementation project(':booster-build') + testImplementation project(':booster-android-gradle-api') } jar { diff --git a/booster-android-gradle-v7_0/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v7_0/V70IntegrationTest.kt b/booster-android-gradle-v8_0/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v8_0/V80IntegrationTest.kt similarity index 57% rename from booster-android-gradle-v7_0/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v7_0/V70IntegrationTest.kt rename to booster-android-gradle-v8_0/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v8_0/V80IntegrationTest.kt index f6447e12e..8017a07df 100644 --- a/booster-android-gradle-v7_0/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v7_0/V70IntegrationTest.kt +++ b/booster-android-gradle-v8_0/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v8_0/V80IntegrationTest.kt @@ -1,13 +1,17 @@ @file:Suppress("DEPRECATION") -package com.didiglobal.booster.android.gradle.v7_0 +package com.didiglobal.booster.android.gradle.v8_0 -import com.android.build.gradle.AppExtension -import com.android.build.gradle.BaseExtension -import com.android.build.gradle.LibraryExtension -import com.android.build.gradle.api.BaseVariant +import com.android.build.api.dsl.CommonExtension +import com.android.build.api.variant.AndroidComponentsExtension +import com.android.build.api.variant.TestAndroidComponentsExtension +import com.android.build.api.variant.Variant +import com.android.build.api.variant.VariantBuilder import com.didiglobal.booster.gradle.AGP -import com.didiglobal.booster.gradle.getAndroid +import com.didiglobal.booster.gradle.assembleTaskProvider +import com.didiglobal.booster.gradle.getAndroidComponents +import com.didiglobal.booster.gradle.project +import com.didiglobal.booster.kotlinx.capitalized import com.didiglobal.booster.kotlinx.search import io.bootstage.testkit.gradle.Case import io.bootstage.testkit.gradle.TestCase @@ -35,22 +39,22 @@ private const val TARGET_SDK_VERSION = 30 private val ARGS = System.getProperty("gradle.args").split("\\s+".toRegex()) + listOf( "-Pbooster_version=${Build.VERSION}", - "-Pandroid_gradle_version=7.0.0", + "-Pandroid_gradle_version=8.0.0", "-Pcompile_sdk_version=30", "-Pbuild_tools_version=29.0.2", - "-Pmin_sdk_version=${MIN_SDK_VERSION}", - "-Ptarget_sdk_version=${TARGET_SDK_VERSION}" + "-Pmin_sdk_version=$MIN_SDK_VERSION", + "-Ptarget_sdk_version=$TARGET_SDK_VERSION" ) @Suppress("RemoveCurlyBracesFromTemplate", "FunctionName") -abstract class V70IntegrationTest(private val isLib: Boolean) { +abstract class V80IntegrationTest(private val isLib: Boolean) { private val projectDir = TemporaryFolder() @get:Rule val ruleChain: TestRule = rule(projectDir) { rule(LocalProperties(projectDir::getRoot)) { - GradleExecutor(projectDir::getRoot, "7.0.2", *ARGS.toTypedArray()) + GradleExecutor(projectDir::getRoot, "8.0", *ARGS.toTypedArray()) } } @@ -60,18 +64,10 @@ abstract class V70IntegrationTest(private val isLib: Boolean) { projectDir.copyFromResource("buildSrc") projectDir.copyFromResource("src") projectDir.newFile("gradle.properties").writeText("org.gradle.jvmargs=-Xmx4g -XX:MaxMetaspaceSize=2g") - assertEquals(7, AGP.revision.major) + assertEquals(8, AGP.revision.major) assertEquals(0, AGP.revision.minor) } - @Test - @Case(ScopeFullWithFeaturesTest::class) - fun `test AGPInterface#scopeFullWithFeatures`() = Unit - - @Test - @Case(ScopeFullLibraryWithFeaturesTest::class) - fun `test AGPInterface#scopeFullLibraryWithFeatures`() = Unit - @Test @Case(ProjectTest::class) fun `test AGPInterface#project`() = Unit @@ -96,82 +92,6 @@ abstract class V70IntegrationTest(private val isLib: Boolean) { @Case(MergeResourcesTaskTestUnit::class) fun `test AGPInterface#mergeResources`() = Unit - @Test - @Case(GetTaskNameTestUnit::class) - fun `test AGPInterface#getTaskName(String)`() = Unit - - @Test - @Case(GetTaskName2TestUnit::class) - fun `test AGPInterface#getTaskName(String, String)`() = Unit - - @Test - @Case(VariantDataTestUnit::class) - fun `test AGPInterface#variantData`() = Unit - - @Test - @Case(OriginalApplicationIdTestUnit::class) - fun `test AGPInterface#originalApplicationId`() = Unit - - @Test - @Case(HasDynamicFeatureTestUnit::class) - fun `test AGPInterface#hasDynamicFeature`() = Unit - - @Test - @Case(RawAndroidResourcesTestUnit::class) - fun `test AGPInterface#rawAndroidResources`() = Unit - - @Test - @Case(AllArtifactsTestUnit::class) - fun `test AGPInterface#allArtifacts`() = Unit - - @Test - @Case(MinSdkVersionTestUnit::class) - fun `test AGPInterface#minSdkVersion`() = Unit - - @Test - @Case(TargetSdkVersionTestUnit::class) - fun `test AGPInterface#targetSdkVersion`() = Unit - - @Test - @Case(AarTestUnit::class) - fun `test AGPInterface#aar`() { - } - - @Test - @Case(ApkTestUnit::class) - fun `test AGPInterface#apk`() { - } - - @Test - @Case(MergedManifestsTestUnit::class) - fun `test AGPInterface#mergedManifests`() { - } - - @Test - @Case(MergedResourcesTestUnit::class) - fun `test AGPInterface#mergedRes`() { - } - - @Test - @Case(MergedAssetsTestUnit::class) - fun `test AGPInterface#mergedAssets`() { - } - - @Test - @Case(ProcessedResTestUnit::class) - fun `test AGPInterface#processedRes`() { - } - - @Test - @Case(SymbolListTestUnit::class) - fun `test AGPInterface#symbolList`() { - } - - @Test - @Case(SymbolListWithPackageNameTestUnit::class) - fun `test AGPInterface#symbolListWithPackageName`() { - } - @Test @Case(AllClassesTestUnit::class) fun `test AGPInterface#allClasses`() { @@ -179,100 +99,102 @@ abstract class V70IntegrationTest(private val isLib: Boolean) { } -class V70AppIntegrationTest : V70IntegrationTest(false) +class V80AppIntegrationTest : V80IntegrationTest(false) -class V70LibIntegrationTest : V70IntegrationTest(true) +class V80LibIntegrationTest : V80IntegrationTest(true) -class ScopeFullWithFeaturesTest : TestCase { - override fun apply(project: Project) { - assertEquals("PROJECT,SUB_PROJECTS,EXTERNAL_LIBRARIES,FEATURES", AGP.scopeFullWithFeatures.joinToString(",")) - } -} - -class ScopeFullLibraryWithFeaturesTest : TestCase { - override fun apply(project: Project) { - assertEquals("FEATURES,PROJECT", AGP.scopeFullLibraryWithFeatures.joinToString(",")) - } -} class ProjectTest : TestCase { override fun apply(project: Project) { - val assert: (BaseVariant) -> Unit = { variant -> + val assert: (Variant) -> Unit = { variant -> assertEquals(project, AGP.run { variant.project }) } - project.afterEvaluate { - when (val android = project.getAndroid()) { - is AppExtension -> android.applicationVariants.forEach(assert) - is LibraryExtension -> android.libraryVariants.forEach(assert) - } - } + project.getAndroidComponents>().onVariants(callback = assert) } } class JavaCompilerTaskTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.javaCompilerTask }) + override fun apply(variant: Variant) { + variant.project.gradle.taskGraph.whenReady { + assertNotNull(AGP.run { + variant.javaCompilerTask + }) + } } } class PreBuildTaskTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.preBuildTask }) + override fun apply(variant: Variant) { + variant.project.gradle.taskGraph.whenReady { + assertNotNull(AGP.run { variant.preBuildTask }) + } } } class AssembleTaskTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.assembleTask }) + override fun apply(variant: Variant) { + variant.project.gradle.taskGraph.whenReady { + assertNotNull(AGP.run { variant.assembleTask }) + } } } class MergeAssetsTaskTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.mergeAssetsTask }) + override fun apply(variant: Variant) { + variant.project.gradle.taskGraph.whenReady { + assertNotNull(AGP.run { variant.mergeAssetsTask }) + } } } class MergeResourcesTaskTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.mergeResourcesTask }) + override fun apply(variant: Variant) { + variant.project.gradle.taskGraph.whenReady { + assertNotNull(AGP.run { variant.mergeResourcesTask }) + } } } class GetTaskNameTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertEquals("assemble${variant.name.capitalize()}", AGP.run { variant.getTaskName("assemble") }) + override fun apply(variant: Variant) { + variant.project.gradle.taskGraph.whenReady { + assertEquals("assemble${variant.name.capitalized()}", AGP.run { variant.getTaskName("assemble") }) + } } } class GetTaskName2TestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertEquals("merge${variant.name.capitalize()}Resources", AGP.run { variant.getTaskName("merge", "Resources") }) + override fun apply(variant: Variant) { + variant.project.gradle.taskGraph.whenReady { + assertEquals("merge${variant.name.capitalized()}Resources", AGP.run { variant.getTaskName("merge", "Resources") }) + } } } class VariantDataTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { + override fun apply(variant: Variant) { assertNotNull(AGP.run { variant.variantData }) } } class OriginalApplicationIdTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.originalApplicationId }) + override fun apply(variant: Variant) { + variant.project.gradle.taskGraph.whenReady { + assertNotNull(AGP.run { variant.originalApplicationId }) + } } } class HasDynamicFeatureTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { + override fun apply(variant: Variant) { assertFalse(AGP.run { variant.hasDynamicFeature }) } } class RawAndroidResourcesTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { + override fun apply(variant: Variant) { + variant.project.gradle.taskGraph.whenReady { val rawAndroidResources = AGP.run { variant.rawAndroidResources } assertNotNull(rawAndroidResources) if (rawAndroidResources.isEmpty) { @@ -286,8 +208,8 @@ class RawAndroidResourcesTestUnit : VariantTestCase() { } class AllArtifactsTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { + override fun apply(variant: Variant) { + variant.project.gradle.taskGraph.whenReady { val allArtifacts = AGP.run { variant.allArtifacts } assertNotNull(allArtifacts) if (allArtifacts.isEmpty()) { @@ -301,7 +223,7 @@ class AllArtifactsTestUnit : VariantTestCase() { } class MinSdkVersionTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { + override fun apply(variant: Variant) { val minSdkVersion = AGP.run { variant.minSdkVersion } assertNotNull(minSdkVersion) assertEquals(MIN_SDK_VERSION, minSdkVersion.apiLevel) @@ -309,7 +231,7 @@ class MinSdkVersionTestUnit : VariantTestCase() { } class TargetSdkVersionTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { + override fun apply(variant: Variant) { val targetSdkVersion = AGP.run { variant.targetSdkVersion } assertNotNull(targetSdkVersion) assertEquals(TARGET_SDK_VERSION, targetSdkVersion.apiLevel) @@ -323,8 +245,8 @@ class AarTestUnit : VariantTestCase() { } } - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { + override fun apply(variant: Variant) { + variant.project.gradle.taskGraph.whenReady { val aar = AGP.run { variant.aar }.search { it.extension == "aar" } @@ -345,8 +267,8 @@ class ApkTestUnit : VariantTestCase() { } } - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { + override fun apply(variant: Variant) { + variant.project.gradle.taskGraph.whenReady { val apk = AGP.run { variant.apk }.search { it.extension == "apk" } @@ -367,8 +289,8 @@ class MergedManifestsTestUnit : VariantTestCase() { } } - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { + override fun apply(variant: Variant) { + variant.project.gradle.taskGraph.whenReady { val mergedManifests = AGP.run { variant.mergedManifests }.search { it.name == "AndroidManifest.xml" } @@ -383,8 +305,8 @@ class MergedManifestsTestUnit : VariantTestCase() { } class MergedResourcesTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { + override fun apply(variant: Variant) { + variant.project.gradle.taskGraph.whenReady { val mergedResources = AGP.run { variant.mergedRes } if (mergedResources.isEmpty) { fail("mergedRes is empty") @@ -397,10 +319,10 @@ class MergedResourcesTestUnit : VariantTestCase() { } class MergedAssetsTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { + override fun apply(variant: Variant) { + variant.project.gradle.taskGraph.whenReady { val mergedAssets = AGP.run { variant.mergedAssets } - if (mergedAssets.isEmpty) { + if (mergedAssets.isEmpty()) { fail("mergedAssets is empty") } mergedAssets.forEach { @@ -417,8 +339,8 @@ class ProcessedResTestUnit : VariantTestCase() { } } - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { + override fun apply(variant: Variant) { + variant.project.gradle.taskGraph.whenReady { val processedRes = AGP.run { variant.processedRes }.search { it.extension == "ap_" } @@ -433,8 +355,8 @@ class ProcessedResTestUnit : VariantTestCase() { } class SymbolListTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { + override fun apply(variant: Variant) { + variant.project.gradle.taskGraph.whenReady { val symbolList = AGP.run { variant.symbolList } if (symbolList.isEmpty) { fail("symbolList is empty") @@ -447,8 +369,8 @@ class SymbolListTestUnit : VariantTestCase() { } class SymbolListWithPackageNameTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { + override fun apply(variant: Variant) { + variant.project.gradle.taskGraph.whenReady { val symbolListWithPackageName = AGP.run { variant.symbolListWithPackageName } if (symbolListWithPackageName.isEmpty) { fail("symbolListWithPackageName is empty") @@ -461,12 +383,16 @@ class SymbolListWithPackageNameTestUnit : VariantTestCase() { } class AllClassesTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val location = AGP.run { variant.allClasses }.files - assertTrue("ALL_CLASSES: $location", location::isNotEmpty) - assertTrue("No class file found at $location") { - location.search(File::isFile).isNotEmpty() + override fun apply(variant: Variant) { + variant.project.gradle.taskGraph.whenReady { + variant.assembleTaskProvider.configure { + it.doFirst { + val location = AGP.run { variant.allClasses }.files + assertTrue("ALL_CLASSES: $location", location::isNotEmpty) + assertTrue("No class file found at $location") { + location.search(File::isFile).isNotEmpty() + } + } } } } diff --git a/booster-android-gradle-v3_3/src/integrationTest/resources/app.gradle b/booster-android-gradle-v8_0/src/integrationTest/resources/app.gradle similarity index 93% rename from booster-android-gradle-v3_3/src/integrationTest/resources/app.gradle rename to booster-android-gradle-v8_0/src/integrationTest/resources/app.gradle index aa3c5f2d6..2d3799f8e 100644 --- a/booster-android-gradle-v3_3/src/integrationTest/resources/app.gradle +++ b/booster-android-gradle-v8_0/src/integrationTest/resources/app.gradle @@ -11,7 +11,7 @@ buildscript { classpath("com.didiglobal.booster:booster-gradle-plugin:${project.booster_version}") { exclude group: 'com.google.guava' } - classpath "io.bootstage.testkit:testkit-gradle-plugin:1.4.0" + classpath "io.bootstage.testkit:testkit-gradle-plugin:2.1.0" } } @@ -20,6 +20,7 @@ apply plugin: 'com.didiglobal.booster' apply plugin: 'io.bootstage.testkit' android { + namespace 'com.didiglobal.booster.android.test' compileSdkVersion project.compile_sdk_version as Integer buildToolsVersion project.build_tools_version defaultConfig { diff --git a/booster-android-gradle-v3_5/src/integrationTest/resources/buildSrc/build.gradle b/booster-android-gradle-v8_0/src/integrationTest/resources/buildSrc/build.gradle similarity index 90% rename from booster-android-gradle-v3_5/src/integrationTest/resources/buildSrc/build.gradle rename to booster-android-gradle-v8_0/src/integrationTest/resources/buildSrc/build.gradle index 79a9b104a..d52ed4cb7 100644 --- a/booster-android-gradle-v3_5/src/integrationTest/resources/buildSrc/build.gradle +++ b/booster-android-gradle-v8_0/src/integrationTest/resources/buildSrc/build.gradle @@ -20,5 +20,5 @@ dependencies { implementation("com.didiglobal.booster:booster-android-gradle-api:${project.booster_version}") { exclude group: 'com.google.guava' } - implementation "io.bootstage.testkit:testkit-gradle-plugin:1.4.0" + implementation "io.bootstage.testkit:testkit-gradle-plugin:2.1.0" } diff --git a/booster-android-gradle-v3_5/src/integrationTest/resources/lib.gradle b/booster-android-gradle-v8_0/src/integrationTest/resources/lib.gradle similarity index 92% rename from booster-android-gradle-v3_5/src/integrationTest/resources/lib.gradle rename to booster-android-gradle-v8_0/src/integrationTest/resources/lib.gradle index adc9b1ca0..b9ee3b136 100644 --- a/booster-android-gradle-v3_5/src/integrationTest/resources/lib.gradle +++ b/booster-android-gradle-v8_0/src/integrationTest/resources/lib.gradle @@ -11,7 +11,7 @@ buildscript { classpath("com.didiglobal.booster:booster-gradle-plugin:${project.booster_version}") { exclude group: 'com.google.guava' } - classpath "io.bootstage.testkit:testkit-gradle-plugin:1.4.0" + classpath "io.bootstage.testkit:testkit-gradle-plugin:2.1.0" } } @@ -20,6 +20,7 @@ apply plugin: 'com.didiglobal.booster' apply plugin: 'io.bootstage.testkit' android { + namespace 'com.didiglobal.booster.android.test' compileSdkVersion project.compile_sdk_version as Integer buildToolsVersion project.build_tools_version defaultConfig { diff --git a/booster-android-gradle-v3_3/src/integrationTest/resources/src/main/AndroidManifest.xml b/booster-android-gradle-v8_0/src/integrationTest/resources/src/main/AndroidManifest.xml similarity index 53% rename from booster-android-gradle-v3_3/src/integrationTest/resources/src/main/AndroidManifest.xml rename to booster-android-gradle-v8_0/src/integrationTest/resources/src/main/AndroidManifest.xml index 30800c604..2969fc910 100644 --- a/booster-android-gradle-v3_3/src/integrationTest/resources/src/main/AndroidManifest.xml +++ b/booster-android-gradle-v8_0/src/integrationTest/resources/src/main/AndroidManifest.xml @@ -1,9 +1,8 @@ - + - + \ No newline at end of file diff --git a/booster-android-gradle-v3_3/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/MainActivity.java b/booster-android-gradle-v8_0/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/MainActivity.java similarity index 100% rename from booster-android-gradle-v3_3/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/MainActivity.java rename to booster-android-gradle-v8_0/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/MainActivity.java diff --git a/booster-android-gradle-v3_3/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/TestApplication.java b/booster-android-gradle-v8_0/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/TestApplication.java similarity index 100% rename from booster-android-gradle-v3_3/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/TestApplication.java rename to booster-android-gradle-v8_0/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/TestApplication.java diff --git a/booster-android-gradle-v3_3/src/integrationTest/resources/src/main/res/values/strings.xml b/booster-android-gradle-v8_0/src/integrationTest/resources/src/main/res/values/strings.xml similarity index 100% rename from booster-android-gradle-v3_3/src/integrationTest/resources/src/main/res/values/strings.xml rename to booster-android-gradle-v8_0/src/integrationTest/resources/src/main/res/values/strings.xml diff --git a/booster-android-gradle-v8_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v8_0/V80.kt b/booster-android-gradle-v8_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v8_0/V80.kt new file mode 100644 index 000000000..d557dd11f --- /dev/null +++ b/booster-android-gradle-v8_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v8_0/V80.kt @@ -0,0 +1,333 @@ +package com.didiglobal.booster.android.gradle.v8_0 + +import com.android.build.api.artifact.Artifact +import com.android.build.api.artifact.MultipleArtifact +import com.android.build.api.artifact.SingleArtifact +import com.android.build.api.artifact.impl.ArtifactsImpl +import com.android.build.api.component.analytics.AnalyticsEnabledVariant +import com.android.build.api.variant.AndroidVersion +import com.android.build.api.variant.ApplicationVariant +import com.android.build.api.variant.LibraryVariant +import com.android.build.api.variant.Variant +import com.android.build.api.variant.impl.TaskProviderBasedDirectoryEntryImpl +import com.android.build.api.variant.impl.VariantImpl +import com.android.build.gradle.internal.api.artifact.SourceArtifactType +import com.android.build.gradle.internal.publishing.AndroidArtifacts +import com.android.build.gradle.internal.scope.BuildArtifactType +import com.android.build.gradle.internal.scope.InternalArtifactType +import com.android.build.gradle.internal.scope.InternalMultipleArtifactType +import com.android.build.gradle.internal.tasks.factory.GlobalTaskCreationConfigImpl +import com.android.build.gradle.internal.variant.BaseVariantData +import com.android.sdklib.BuildToolInfo +import com.didiglobal.booster.gradle.AGPInterface +import org.gradle.api.Project +import org.gradle.api.Task +import org.gradle.api.artifacts.ArtifactCollection +import org.gradle.api.artifacts.component.ComponentIdentifier +import org.gradle.api.artifacts.result.ResolvedArtifactResult +import org.gradle.api.artifacts.result.ResolvedDependencyResult +import org.gradle.api.file.ConfigurableFileCollection +import org.gradle.api.file.FileCollection +import org.gradle.api.file.FileSystemLocation +import org.gradle.api.provider.Provider +import org.gradle.api.tasks.TaskProvider +import java.io.File +import java.util.TreeMap +import kotlin.reflect.full.declaredMemberProperties +import kotlin.reflect.jvm.isAccessible + +@Suppress("UnstableApiUsage") +private val SINGLE_ARTIFACT_TYPES = arrayOf( + BuildArtifactType::class, + InternalArtifactType::class, + SingleArtifact::class, + SourceArtifactType::class +).map { + it.sealedSubclasses +}.flatten().map { + it.objectInstance as Artifact.Single +}.associateBy { + it.javaClass.simpleName +} + +private val MULTIPLE_ARTIFACT_TYPES = arrayOf( + MultipleArtifact::class, + InternalMultipleArtifactType::class +).map { + it.sealedSubclasses +}.flatten().map { + it.objectInstance as Artifact.Multiple +}.associateBy { + it.javaClass.simpleName +} + +@Suppress("DEPRECATION") +internal object V80 : AGPInterface { + + private val Variant.component: VariantImpl<*> + get() = when (this) { + is VariantImpl<*> -> this + is AnalyticsEnabledVariant -> this.delegate as VariantImpl<*> + else -> TODO("No implementationed!") + } + + @Suppress("UnstableApiUsage") + private fun Variant.getFinalArtifactFiles(type: Artifact.Single): FileCollection { + return try { + project.objects.fileCollection().from(artifactsImpl.get(type)) + } catch (e: Throwable) { + project.objects.fileCollection().builtBy(artifactsImpl.get(type)) + } + } + + @Suppress("UnstableApiUsage") + private fun Variant.getFinalArtifactFiles(type: Artifact.Multiple): FileCollection { + return try { + project.objects.fileCollection().from(artifactsImpl.getAll(type)) + } catch (e: Throwable) { + project.objects.fileCollection().builtBy(artifactsImpl.getAll(type)) + } + } + + @Suppress("UnstableApiUsage") + private val Variant.artifactsImpl: ArtifactsImpl + get() = component.artifacts + + override val Variant.project: Project + get() { + return this.component.variantDependencies.javaClass.kotlin.declaredMemberProperties.first { + it.name == "project" + }.apply { + isAccessible = true + }.get(this.component.variantDependencies) as Project + } + + override val Variant.javaCompilerTaskProvider: TaskProvider + get() = component.taskContainer.javacTask + + override val Variant.preBuildTaskProvider: TaskProvider + get() = component.taskContainer.preBuildTask + + override val Variant.assembleTaskProvider: TaskProvider + get() = component.taskContainer.assembleTask + + override val Variant.mergeAssetsTaskProvider: TaskProvider + get() = component.taskContainer.mergeAssetsTask + + override val Variant.mergeResourcesTaskProvider: TaskProvider + get() = try { + project.tasks.named(getTaskName("merge", "Resources")) + } catch (e: Throwable) { + component.taskContainer.mergeResourcesTask + } + + override val Variant.mergeNativeLibsTaskProvider: TaskProvider + get() = project.tasks.named(getTaskName("merge", "NativeLibs")) + + override val Variant.processJavaResourcesTaskProvider: TaskProvider + get() = component.taskContainer.processJavaResourcesTask + + override fun Variant.getTaskName(prefix: String): String { + return component.computeTaskName(prefix) + } + + override fun Variant.getTaskName(prefix: String, suffix: String): String { + return component.computeTaskName(prefix, suffix) + } + + override val Variant.variantData: BaseVariantData + get() = component.javaClass.getDeclaredMethod("getVariantData").apply { + isAccessible = true + }.invoke(this) as BaseVariantData + + @Suppress("DEPRECATION") + private val Variant.globalScope: GlobalTaskCreationConfigImpl + get() = component.global as GlobalTaskCreationConfigImpl + + override val Variant.originalApplicationId: String + get() = component.namespace.get() + + override val Variant.hasDynamicFeature: Boolean + get() = component.global.hasDynamicFeatures + + override val Variant.rawAndroidResources: FileCollection + get() { + val allRes: ConfigurableFileCollection = component.services.fileCollection() + + allRes.from( + component.variantDependencies.getArtifactCollection( + AndroidArtifacts.ConsumedConfigType.RUNTIME_CLASSPATH, + AndroidArtifacts.ArtifactScope.ALL, + AndroidArtifacts.ArtifactType.ANDROID_RES + ).artifactFiles + ) + + allRes.from( + component.services.fileCollection(variantData.extraGeneratedResFolders) + .builtBy(listOfNotNull(variantData.extraGeneratedResFolders.builtBy)) + ) + + component.taskContainer.generateApkDataTask?.let { + allRes.from(artifactsImpl.get(InternalArtifactType.MICRO_APK_RES)) + } + + component.sources.res { resSources -> + allRes.from( + resSources.getVariantSources().map { directoryEntries -> + directoryEntries.directoryEntries + .map { + if (it is TaskProviderBasedDirectoryEntryImpl) { + it.directoryProvider + } else { + it.asFiles( + component.services.provider { + component.services.projectInfo.projectDirectory + }) + } + } + } + ) + } + + return allRes + } + override val Variant.sourceSetMap: FileCollection + get() = getFinalArtifactFiles(InternalArtifactType.SOURCE_SET_PATH_MAP) + + override val Variant.localAndroidResources: FileCollection + get() = component.services.fileCollection().from(component.sources.res?.getLocalSources()?.values?.map { + it.map { dirs -> + dirs.map { dir -> + dir.asFileTree + }.reduce { acc, dir -> + acc.plus(dir) + } + } + }) + + override fun Variant.getSingleArtifact(type: Artifact.Single): Provider { + return artifactsImpl.get(type) + } + + override fun Variant.getArtifactCollection( + configType: AndroidArtifacts.ConsumedConfigType, + scope: AndroidArtifacts.ArtifactScope, + artifactType: AndroidArtifacts.ArtifactType + ): ArtifactCollection { + return component.variantDependencies.getArtifactCollection(configType, scope, artifactType) + } + + override fun Variant.getArtifactFileCollection( + configType: AndroidArtifacts.ConsumedConfigType, + scope: AndroidArtifacts.ArtifactScope, + artifactType: AndroidArtifacts.ArtifactType + ): FileCollection { + return component.variantDependencies.getArtifactFileCollection(configType, scope, artifactType) + } + + override val Variant.allArtifacts: Map + get() = TreeMap().also { all -> + SINGLE_ARTIFACT_TYPES.entries.associateTo(all) { (name, type) -> + val artifacts: FileCollection by lazy { + getFinalArtifactFiles(type) + } + name to artifacts + } + MULTIPLE_ARTIFACT_TYPES.entries.associateTo(all) { (name, type) -> + val artifacts: FileCollection by lazy { + getFinalArtifactFiles(type) + } + name to artifacts + } + } + + override val Variant.targetVersion: AndroidVersion + get() = targetSdkVersion + + override val Variant.isApplication: Boolean + get() = component.componentType.isApk + + override val Variant.isLibrary: Boolean + get() = component.componentType.isAar + + override val Variant.isDynamicFeature: Boolean + get() = component.componentType.isDynamicFeature + + override val Variant.aar: FileCollection + get() = getFinalArtifactFiles(SingleArtifact.AAR) + + override val Variant.apk: FileCollection + get() = getFinalArtifactFiles(SingleArtifact.APK) + + override val Variant.mergedManifests: FileCollection + get() = getFinalArtifactFiles(SingleArtifact.MERGED_MANIFEST) + + override val Variant.mergedRes: FileCollection + get() = getFinalArtifactFiles(InternalArtifactType.MERGED_RES) + + override val Variant.mergedNativeLibs: FileCollection + get() = getFinalArtifactFiles(InternalArtifactType.MERGED_NATIVE_LIBS) + + override val Variant.mergedAssets: FileCollection + get() = when (this) { + is ApplicationVariant -> getFinalArtifactFiles(InternalArtifactType.COMPRESSED_ASSETS) + is LibraryVariant -> getFinalArtifactFiles(InternalArtifactType.LIBRARY_ASSETS) + else -> TODO("Unsupported variant type: $name@${javaClass.name}") + } + + override val Variant.processedRes: FileCollection + get() = getFinalArtifactFiles(InternalArtifactType.PROCESSED_RES) + + override val Variant.symbolList: FileCollection + get() = when (this) { + is ApplicationVariant -> getFinalArtifactFiles(InternalArtifactType.RUNTIME_SYMBOL_LIST) + is LibraryVariant -> getFinalArtifactFiles(InternalArtifactType.COMPILE_SYMBOL_LIST) + else -> TODO("Unsupported variant type : $name@${javaClass.name}") + } + + override val Variant.symbolListWithPackageName: FileCollection + get() = getFinalArtifactFiles(InternalArtifactType.SYMBOL_LIST_WITH_PACKAGE_NAME) + + override val Variant.dataBindingDependencyArtifacts: FileCollection + get() = getFinalArtifactFiles(InternalArtifactType.DATA_BINDING_DEPENDENCY_ARTIFACTS) + + override val Variant.allClasses: FileCollection + get() = when { + isApplication -> getFinalArtifactFiles(InternalArtifactType.JAVAC) + project.files("build${File.separator}tmp${File.separator}kotlin-classes${File.separator}${name}") + isLibrary -> getFinalArtifactFiles(InternalArtifactType.AAR_MAIN_JAR) + else -> project.files() + } + + override val Variant.buildTools: BuildToolInfo + get() = globalScope.versionedSdkLoader.get().buildToolInfoProvider.get() + + override val Variant.isPrecompileDependenciesResourcesEnabled: Boolean + get() = component.androidResourcesCreationConfig?.isPrecompileDependenciesResourcesEnabled == true + + override fun Variant.getDependencies( + transitive: Boolean, + filter: (ComponentIdentifier) -> Boolean + ): Collection { + val all = getArtifactCollection( + AndroidArtifacts.ConsumedConfigType.RUNTIME_CLASSPATH, + AndroidArtifacts.ArtifactScope.ALL, + AndroidArtifacts.ArtifactType.CLASSES_JAR + ).filter { result -> + filter(result.id.componentIdentifier) + }.associateBy { + it.id.componentIdentifier.displayName + } + val result = if (!transitive) { + runtimeConfiguration.incoming.resolutionResult.root.dependencies.filterIsInstance() + .mapNotNull { + it.selected.id.displayName.takeIf { id -> id in all.keys } + }.associateWith { + all[it]!! + } + } else { + all + } + return result.values.toSet() + } + +} diff --git a/booster-android-gradle-v8_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v8_0/V80Factory.kt b/booster-android-gradle-v8_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v8_0/V80Factory.kt new file mode 100644 index 000000000..f0ea51117 --- /dev/null +++ b/booster-android-gradle-v8_0/src/main/kotlin/com/didiglobal/booster/android/gradle/v8_0/V80Factory.kt @@ -0,0 +1,16 @@ +package com.didiglobal.booster.android.gradle.v8_0 + +import com.android.repository.Revision +import com.didiglobal.booster.android.gradle.v8_0.V80 +import com.didiglobal.booster.gradle.AGPInterface +import com.didiglobal.booster.gradle.AGPInterfaceFactory +import com.google.auto.service.AutoService + +@AutoService(AGPInterfaceFactory::class) +class V80Factory : AGPInterfaceFactory { + + override val revision: Revision = Revision(8, 0, 0) + + override fun newAGPInterface(): AGPInterface = V80 + +} diff --git a/booster-android-gradle-v7_1/README.md b/booster-android-gradle-v8_1/README.md similarity index 66% rename from booster-android-gradle-v7_1/README.md rename to booster-android-gradle-v8_1/README.md index de13f9a1a..b1ec6588e 100644 --- a/booster-android-gradle-v7_1/README.md +++ b/booster-android-gradle-v8_1/README.md @@ -1,6 +1,6 @@ -# booster-android-gradle-v7_1 +# booster-android-gradle-v8_1 -This module is an implementation of [booster-android-gradle-api](../booster-android-gradle-api) for Android gradle plugin above 7.1 +This module is an implementation of [booster-android-gradle-api](../booster-android-gradle-api) for Android gradle plugin above 8.1 -本模块是 [booster-android-gradle-api](../booster-android-gradle-api) 针对 Android gradle plugin 7.1 以上版本的实现。 +本模块是 [booster-android-gradle-api](../booster-android-gradle-api) 针对 Android gradle plugin 8.1 以上版本的实现。 diff --git a/booster-android-gradle-v7_1/build.gradle b/booster-android-gradle-v8_1/build.gradle similarity index 77% rename from booster-android-gradle-v7_1/build.gradle rename to booster-android-gradle-v8_1/build.gradle index 226e0c330..32422ec9d 100644 --- a/booster-android-gradle-v7_1/build.gradle +++ b/booster-android-gradle-v8_1/build.gradle @@ -11,11 +11,13 @@ dependencies { compileOnly 'com.android.tools:repository:30.0.0' compileOnly 'com.android.tools:common:30.0.0' compileOnly 'com.android.tools:sdklib:30.0.0' - compileOnly 'com.android.tools.build:gradle:7.1.0' - testImplementation 'com.android.tools.build:gradle:7.1.0' + compileOnly 'com.android.tools.build:gradle-api:8.1.0' + compileOnly 'com.android.tools.build:gradle:8.1.0' + testImplementation 'com.android.tools.build:gradle:8.1.0' testImplementation 'com.android.tools:common:30.0.0' - testImplementation 'io.bootstage.testkit:testkit-gradle-plugin:1.1.0' + testImplementation 'io.bootstage.testkit:testkit-gradle-plugin:2.1.0' testImplementation project(':booster-build') + testImplementation project(':booster-android-gradle-api') } jar { diff --git a/booster-android-gradle-v7_1/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v7_1/V71IntegrationTest.kt b/booster-android-gradle-v8_1/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v8_1/V81IntegrationTest.kt similarity index 56% rename from booster-android-gradle-v7_1/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v7_1/V71IntegrationTest.kt rename to booster-android-gradle-v8_1/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v8_1/V81IntegrationTest.kt index 79a5d51d8..6ed77fe08 100644 --- a/booster-android-gradle-v7_1/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v7_1/V71IntegrationTest.kt +++ b/booster-android-gradle-v8_1/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v8_1/V81IntegrationTest.kt @@ -1,13 +1,14 @@ @file:Suppress("DEPRECATION") -package com.didiglobal.booster.android.gradle.v7_1 +package com.didiglobal.booster.android.gradle.v8_1 -import com.android.build.gradle.AppExtension -import com.android.build.gradle.BaseExtension -import com.android.build.gradle.LibraryExtension -import com.android.build.gradle.api.BaseVariant +import com.android.build.api.variant.AndroidComponentsExtension +import com.android.build.api.variant.Variant import com.didiglobal.booster.gradle.AGP -import com.didiglobal.booster.gradle.getAndroid +import com.didiglobal.booster.gradle.assembleTaskProvider +import com.didiglobal.booster.gradle.getAndroidComponents +import com.didiglobal.booster.gradle.project +import com.didiglobal.booster.kotlinx.capitalized import com.didiglobal.booster.kotlinx.search import io.bootstage.testkit.gradle.Case import io.bootstage.testkit.gradle.TestCase @@ -34,23 +35,23 @@ private val MIN_SDK_VERSION = System.getProperty("android.minsdk.version").toInt private const val TARGET_SDK_VERSION = 30 private val ARGS = System.getProperty("gradle.args").split("\\s+".toRegex()) + listOf( - "-Pbooster_version=${Build.VERSION}", - "-Pandroid_gradle_version=7.1.0", - "-Pcompile_sdk_version=30", - "-Pbuild_tools_version=29.0.2", - "-Pmin_sdk_version=${MIN_SDK_VERSION}", - "-Ptarget_sdk_version=${TARGET_SDK_VERSION}" + "-Pbooster_version=${Build.VERSION}", + "-Pandroid_gradle_version=8.1.0", + "-Pcompile_sdk_version=30", + "-Pbuild_tools_version=29.0.2", + "-Pmin_sdk_version=$MIN_SDK_VERSION", + "-Ptarget_sdk_version=$TARGET_SDK_VERSION" ) @Suppress("RemoveCurlyBracesFromTemplate", "FunctionName") -abstract class V71IntegrationTest(private val isLib: Boolean) { +abstract class V81IntegrationTest(private val isLib: Boolean) { private val projectDir = TemporaryFolder() @get:Rule val ruleChain: TestRule = rule(projectDir) { rule(LocalProperties(projectDir::getRoot)) { - GradleExecutor(projectDir::getRoot, "7.2", *ARGS.toTypedArray()) + GradleExecutor(projectDir::getRoot, "8.0", *ARGS.toTypedArray()) } } @@ -60,17 +61,10 @@ abstract class V71IntegrationTest(private val isLib: Boolean) { projectDir.copyFromResource("buildSrc") projectDir.copyFromResource("src") projectDir.newFile("gradle.properties").writeText("org.gradle.jvmargs=-Xmx4g -XX:MaxMetaspaceSize=2g") - assertEquals(7, AGP.revision.major) + assertEquals(8, AGP.revision.major) assertEquals(1, AGP.revision.minor) } - @Test - @Case(ScopeFullWithFeaturesTest::class) - fun `test AGPInterface#scopeFullWithFeatures`() = Unit - - @Test - @Case(ScopeFullLibraryWithFeaturesTest::class) - fun `test AGPInterface#scopeFullLibraryWithFeatures`() = Unit @Test @Case(ProjectTest::class) @@ -96,82 +90,6 @@ abstract class V71IntegrationTest(private val isLib: Boolean) { @Case(MergeResourcesTaskTestUnit::class) fun `test AGPInterface#mergeResources`() = Unit - @Test - @Case(GetTaskNameTestUnit::class) - fun `test AGPInterface#getTaskName(String)`() = Unit - - @Test - @Case(GetTaskName2TestUnit::class) - fun `test AGPInterface#getTaskName(String, String)`() = Unit - - @Test - @Case(VariantDataTestUnit::class) - fun `test AGPInterface#variantData`() = Unit - - @Test - @Case(OriginalApplicationIdTestUnit::class) - fun `test AGPInterface#originalApplicationId`() = Unit - - @Test - @Case(HasDynamicFeatureTestUnit::class) - fun `test AGPInterface#hasDynamicFeature`() = Unit - - @Test - @Case(RawAndroidResourcesTestUnit::class) - fun `test AGPInterface#rawAndroidResources`() = Unit - - @Test - @Case(AllArtifactsTestUnit::class) - fun `test AGPInterface#allArtifacts`() = Unit - - @Test - @Case(MinSdkVersionTestUnit::class) - fun `test AGPInterface#minSdkVersion`() = Unit - - @Test - @Case(TargetSdkVersionTestUnit::class) - fun `test AGPInterface#targetSdkVersion`() = Unit - - @Test - @Case(AarTestUnit::class) - fun `test AGPInterface#aar`() { - } - - @Test - @Case(ApkTestUnit::class) - fun `test AGPInterface#apk`() { - } - - @Test - @Case(MergedManifestsTestUnit::class) - fun `test AGPInterface#mergedManifests`() { - } - - @Test - @Case(MergedResourcesTestUnit::class) - fun `test AGPInterface#mergedRes`() { - } - - @Test - @Case(MergedAssetsTestUnit::class) - fun `test AGPInterface#mergedAssets`() { - } - - @Test - @Case(ProcessedResTestUnit::class) - fun `test AGPInterface#processedRes`() { - } - - @Test - @Case(SymbolListTestUnit::class) - fun `test AGPInterface#symbolList`() { - } - - @Test - @Case(SymbolListWithPackageNameTestUnit::class) - fun `test AGPInterface#symbolListWithPackageName`() { - } - @Test @Case(AllClassesTestUnit::class) fun `test AGPInterface#allClasses`() { @@ -179,100 +97,102 @@ abstract class V71IntegrationTest(private val isLib: Boolean) { } -class V71AppIntegrationTest : V71IntegrationTest(false) +class V81AppIntegrationTest : V81IntegrationTest(false) -class V71LibIntegrationTest : V71IntegrationTest(true) +class V81LibIntegrationTest : V81IntegrationTest(true) -class ScopeFullWithFeaturesTest : TestCase { - override fun apply(project: Project) { - assertEquals("PROJECT,SUB_PROJECTS,EXTERNAL_LIBRARIES,FEATURES", AGP.scopeFullWithFeatures.joinToString(",")) - } -} - -class ScopeFullLibraryWithFeaturesTest : TestCase { - override fun apply(project: Project) { - assertEquals("FEATURES,PROJECT", AGP.scopeFullLibraryWithFeatures.joinToString(",")) - } -} class ProjectTest : TestCase { override fun apply(project: Project) { - val assert: (BaseVariant) -> Unit = { variant -> + val assert: (Variant) -> Unit = { variant -> assertEquals(project, AGP.run { variant.project }) } - project.afterEvaluate { - when (val android = project.getAndroid()) { - is AppExtension -> android.applicationVariants.forEach(assert) - is LibraryExtension -> android.libraryVariants.forEach(assert) - } - } + project.getAndroidComponents>().onVariants(callback = assert) } } class JavaCompilerTaskTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.javaCompilerTask }) + override fun apply(variant: Variant) { + variant.project.gradle.taskGraph.whenReady { + assertNotNull(AGP.run { + variant.javaCompilerTask + }) + } } } class PreBuildTaskTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.preBuildTask }) + override fun apply(variant: Variant) { + variant.project.gradle.taskGraph.whenReady { + assertNotNull(AGP.run { variant.preBuildTask }) + } } } class AssembleTaskTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.assembleTask }) + override fun apply(variant: Variant) { + variant.project.gradle.taskGraph.whenReady { + assertNotNull(AGP.run { variant.assembleTask }) + } } } class MergeAssetsTaskTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.mergeAssetsTask }) + override fun apply(variant: Variant) { + variant.project.gradle.taskGraph.whenReady { + assertNotNull(AGP.run { variant.mergeAssetsTask }) + } } } class MergeResourcesTaskTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.mergeResourcesTask }) + override fun apply(variant: Variant) { + variant.project.gradle.taskGraph.whenReady { + assertNotNull(AGP.run { variant.mergeResourcesTask }) + } } } class GetTaskNameTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertEquals("assemble${variant.name.capitalize()}", AGP.run { variant.getTaskName("assemble") }) + override fun apply(variant: Variant) { + variant.project.gradle.taskGraph.whenReady { + assertEquals("assemble${variant.name.capitalized()}", AGP.run { variant.getTaskName("assemble") }) + } } } class GetTaskName2TestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertEquals("merge${variant.name.capitalize()}Resources", AGP.run { variant.getTaskName("merge", "Resources") }) + override fun apply(variant: Variant) { + variant.project.gradle.taskGraph.whenReady { + assertEquals("merge${variant.name.capitalized()}Resources", AGP.run { variant.getTaskName("merge", "Resources") }) + } } } class VariantDataTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { + override fun apply(variant: Variant) { assertNotNull(AGP.run { variant.variantData }) } } class OriginalApplicationIdTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.originalApplicationId }) + override fun apply(variant: Variant) { + variant.project.gradle.taskGraph.whenReady { + assertNotNull(AGP.run { variant.originalApplicationId }) + } } } class HasDynamicFeatureTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { + override fun apply(variant: Variant) { assertFalse(AGP.run { variant.hasDynamicFeature }) } } class RawAndroidResourcesTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { + override fun apply(variant: Variant) { + variant.project.gradle.taskGraph.whenReady { val rawAndroidResources = AGP.run { variant.rawAndroidResources } assertNotNull(rawAndroidResources) if (rawAndroidResources.isEmpty) { @@ -286,8 +206,8 @@ class RawAndroidResourcesTestUnit : VariantTestCase() { } class AllArtifactsTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { + override fun apply(variant: Variant) { + variant.project.gradle.taskGraph.whenReady { val allArtifacts = AGP.run { variant.allArtifacts } assertNotNull(allArtifacts) if (allArtifacts.isEmpty()) { @@ -301,7 +221,7 @@ class AllArtifactsTestUnit : VariantTestCase() { } class MinSdkVersionTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { + override fun apply(variant: Variant) { val minSdkVersion = AGP.run { variant.minSdkVersion } assertNotNull(minSdkVersion) assertEquals(MIN_SDK_VERSION, minSdkVersion.apiLevel) @@ -309,7 +229,7 @@ class MinSdkVersionTestUnit : VariantTestCase() { } class TargetSdkVersionTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { + override fun apply(variant: Variant) { val targetSdkVersion = AGP.run { variant.targetSdkVersion } assertNotNull(targetSdkVersion) assertEquals(TARGET_SDK_VERSION, targetSdkVersion.apiLevel) @@ -323,8 +243,8 @@ class AarTestUnit : VariantTestCase() { } } - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { + override fun apply(variant: Variant) { + variant.project.gradle.taskGraph.whenReady { val aar = AGP.run { variant.aar }.search { it.extension == "aar" } @@ -345,8 +265,8 @@ class ApkTestUnit : VariantTestCase() { } } - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { + override fun apply(variant: Variant) { + variant.project.gradle.taskGraph.whenReady { val apk = AGP.run { variant.apk }.search { it.extension == "apk" } @@ -367,8 +287,8 @@ class MergedManifestsTestUnit : VariantTestCase() { } } - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { + override fun apply(variant: Variant) { + variant.project.gradle.taskGraph.whenReady { val mergedManifests = AGP.run { variant.mergedManifests }.search { it.name == "AndroidManifest.xml" } @@ -383,8 +303,8 @@ class MergedManifestsTestUnit : VariantTestCase() { } class MergedResourcesTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { + override fun apply(variant: Variant) { + variant.project.gradle.taskGraph.whenReady { val mergedResources = AGP.run { variant.mergedRes } if (mergedResources.isEmpty) { fail("mergedRes is empty") @@ -397,10 +317,10 @@ class MergedResourcesTestUnit : VariantTestCase() { } class MergedAssetsTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { + override fun apply(variant: Variant) { + variant.project.gradle.taskGraph.whenReady { val mergedAssets = AGP.run { variant.mergedAssets } - if (mergedAssets.isEmpty) { + if (mergedAssets.isEmpty()) { fail("mergedAssets is empty") } mergedAssets.forEach { @@ -417,8 +337,8 @@ class ProcessedResTestUnit : VariantTestCase() { } } - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { + override fun apply(variant: Variant) { + variant.project.gradle.taskGraph.whenReady { val processedRes = AGP.run { variant.processedRes }.search { it.extension == "ap_" } @@ -433,8 +353,8 @@ class ProcessedResTestUnit : VariantTestCase() { } class SymbolListTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { + override fun apply(variant: Variant) { + variant.project.gradle.taskGraph.whenReady { val symbolList = AGP.run { variant.symbolList } if (symbolList.isEmpty) { fail("symbolList is empty") @@ -447,8 +367,8 @@ class SymbolListTestUnit : VariantTestCase() { } class SymbolListWithPackageNameTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { + override fun apply(variant: Variant) { + variant.project.gradle.taskGraph.whenReady { val symbolListWithPackageName = AGP.run { variant.symbolListWithPackageName } if (symbolListWithPackageName.isEmpty) { fail("symbolListWithPackageName is empty") @@ -461,12 +381,16 @@ class SymbolListWithPackageNameTestUnit : VariantTestCase() { } class AllClassesTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val location = AGP.run { variant.allClasses }.files - assertTrue("ALL_CLASSES: $location", location::isNotEmpty) - assertTrue("No class file found at $location") { - location.search(File::isFile).isNotEmpty() + override fun apply(variant: Variant) { + variant.project.gradle.taskGraph.whenReady { + variant.assembleTaskProvider.configure { + it.doFirst { + val location = AGP.run { variant.allClasses }.files + assertTrue("ALL_CLASSES: $location", location::isNotEmpty) + assertTrue("No class file found at $location") { + location.search(File::isFile).isNotEmpty() + } + } } } } diff --git a/booster-android-gradle-v3_5/src/integrationTest/resources/app.gradle b/booster-android-gradle-v8_1/src/integrationTest/resources/app.gradle similarity index 93% rename from booster-android-gradle-v3_5/src/integrationTest/resources/app.gradle rename to booster-android-gradle-v8_1/src/integrationTest/resources/app.gradle index aa3c5f2d6..2d3799f8e 100644 --- a/booster-android-gradle-v3_5/src/integrationTest/resources/app.gradle +++ b/booster-android-gradle-v8_1/src/integrationTest/resources/app.gradle @@ -11,7 +11,7 @@ buildscript { classpath("com.didiglobal.booster:booster-gradle-plugin:${project.booster_version}") { exclude group: 'com.google.guava' } - classpath "io.bootstage.testkit:testkit-gradle-plugin:1.4.0" + classpath "io.bootstage.testkit:testkit-gradle-plugin:2.1.0" } } @@ -20,6 +20,7 @@ apply plugin: 'com.didiglobal.booster' apply plugin: 'io.bootstage.testkit' android { + namespace 'com.didiglobal.booster.android.test' compileSdkVersion project.compile_sdk_version as Integer buildToolsVersion project.build_tools_version defaultConfig { diff --git a/booster-android-gradle-v3_3/src/integrationTest/resources/buildSrc/build.gradle b/booster-android-gradle-v8_1/src/integrationTest/resources/buildSrc/build.gradle similarity index 90% rename from booster-android-gradle-v3_3/src/integrationTest/resources/buildSrc/build.gradle rename to booster-android-gradle-v8_1/src/integrationTest/resources/buildSrc/build.gradle index 79a9b104a..d52ed4cb7 100644 --- a/booster-android-gradle-v3_3/src/integrationTest/resources/buildSrc/build.gradle +++ b/booster-android-gradle-v8_1/src/integrationTest/resources/buildSrc/build.gradle @@ -20,5 +20,5 @@ dependencies { implementation("com.didiglobal.booster:booster-android-gradle-api:${project.booster_version}") { exclude group: 'com.google.guava' } - implementation "io.bootstage.testkit:testkit-gradle-plugin:1.4.0" + implementation "io.bootstage.testkit:testkit-gradle-plugin:2.1.0" } diff --git a/booster-android-gradle-v3_3/src/integrationTest/resources/lib.gradle b/booster-android-gradle-v8_1/src/integrationTest/resources/lib.gradle similarity index 92% rename from booster-android-gradle-v3_3/src/integrationTest/resources/lib.gradle rename to booster-android-gradle-v8_1/src/integrationTest/resources/lib.gradle index adc9b1ca0..b9ee3b136 100644 --- a/booster-android-gradle-v3_3/src/integrationTest/resources/lib.gradle +++ b/booster-android-gradle-v8_1/src/integrationTest/resources/lib.gradle @@ -11,7 +11,7 @@ buildscript { classpath("com.didiglobal.booster:booster-gradle-plugin:${project.booster_version}") { exclude group: 'com.google.guava' } - classpath "io.bootstage.testkit:testkit-gradle-plugin:1.4.0" + classpath "io.bootstage.testkit:testkit-gradle-plugin:2.1.0" } } @@ -20,6 +20,7 @@ apply plugin: 'com.didiglobal.booster' apply plugin: 'io.bootstage.testkit' android { + namespace 'com.didiglobal.booster.android.test' compileSdkVersion project.compile_sdk_version as Integer buildToolsVersion project.build_tools_version defaultConfig { diff --git a/booster-android-gradle-v3_4/src/integrationTest/resources/src/main/AndroidManifest.xml b/booster-android-gradle-v8_1/src/integrationTest/resources/src/main/AndroidManifest.xml similarity index 53% rename from booster-android-gradle-v3_4/src/integrationTest/resources/src/main/AndroidManifest.xml rename to booster-android-gradle-v8_1/src/integrationTest/resources/src/main/AndroidManifest.xml index 30800c604..2969fc910 100644 --- a/booster-android-gradle-v3_4/src/integrationTest/resources/src/main/AndroidManifest.xml +++ b/booster-android-gradle-v8_1/src/integrationTest/resources/src/main/AndroidManifest.xml @@ -1,9 +1,8 @@ - + - + \ No newline at end of file diff --git a/booster-android-gradle-v3_4/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/MainActivity.java b/booster-android-gradle-v8_1/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/MainActivity.java similarity index 100% rename from booster-android-gradle-v3_4/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/MainActivity.java rename to booster-android-gradle-v8_1/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/MainActivity.java diff --git a/booster-android-gradle-v3_4/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/TestApplication.java b/booster-android-gradle-v8_1/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/TestApplication.java similarity index 100% rename from booster-android-gradle-v3_4/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/TestApplication.java rename to booster-android-gradle-v8_1/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/TestApplication.java diff --git a/booster-android-gradle-v3_4/src/integrationTest/resources/src/main/res/values/strings.xml b/booster-android-gradle-v8_1/src/integrationTest/resources/src/main/res/values/strings.xml similarity index 100% rename from booster-android-gradle-v3_4/src/integrationTest/resources/src/main/res/values/strings.xml rename to booster-android-gradle-v8_1/src/integrationTest/resources/src/main/res/values/strings.xml diff --git a/booster-android-gradle-v8_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v8_1/V81.kt b/booster-android-gradle-v8_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v8_1/V81.kt new file mode 100644 index 000000000..ea249f13f --- /dev/null +++ b/booster-android-gradle-v8_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v8_1/V81.kt @@ -0,0 +1,336 @@ +package com.didiglobal.booster.android.gradle.v8_1 + +import com.android.build.api.artifact.Artifact +import com.android.build.api.artifact.MultipleArtifact +import com.android.build.api.artifact.SingleArtifact +import com.android.build.api.artifact.impl.ArtifactsImpl +import com.android.build.api.component.analytics.AnalyticsEnabledVariant +import com.android.build.api.variant.AndroidVersion +import com.android.build.api.variant.ApplicationVariant +import com.android.build.api.variant.LibraryVariant +import com.android.build.api.variant.Variant +import com.android.build.api.variant.impl.TaskProviderBasedDirectoryEntryImpl +import com.android.build.api.variant.impl.VariantImpl +import com.android.build.gradle.internal.api.artifact.SourceArtifactType +import com.android.build.gradle.internal.publishing.AndroidArtifacts +import com.android.build.gradle.internal.scope.BuildArtifactType +import com.android.build.gradle.internal.scope.InternalArtifactType +import com.android.build.gradle.internal.scope.InternalMultipleArtifactType +import com.android.build.gradle.internal.tasks.factory.GlobalTaskCreationConfigImpl +import com.android.build.gradle.internal.variant.BaseVariantData +import com.android.sdklib.BuildToolInfo +import com.didiglobal.booster.gradle.AGPInterface +import org.gradle.api.Project +import org.gradle.api.Task +import org.gradle.api.artifacts.ArtifactCollection +import org.gradle.api.artifacts.component.ComponentIdentifier +import org.gradle.api.artifacts.result.ResolvedArtifactResult +import org.gradle.api.artifacts.result.ResolvedDependencyResult +import org.gradle.api.file.ConfigurableFileCollection +import org.gradle.api.file.FileCollection +import org.gradle.api.file.FileSystemLocation +import org.gradle.api.provider.Provider +import org.gradle.api.tasks.TaskProvider +import java.io.File +import java.util.TreeMap +import kotlin.reflect.full.declaredMemberProperties +import kotlin.reflect.jvm.isAccessible + +@Suppress("UnstableApiUsage") +private val SINGLE_ARTIFACT_TYPES = arrayOf( + BuildArtifactType::class, + InternalArtifactType::class, + SingleArtifact::class, + SourceArtifactType::class +).map { + it.sealedSubclasses +}.flatten().map { + it.objectInstance as Artifact.Single +}.associateBy { + it.javaClass.simpleName +} + +private val MULTIPLE_ARTIFACT_TYPES = arrayOf( + MultipleArtifact::class, + InternalMultipleArtifactType::class +).map { + it.sealedSubclasses +}.flatten().map { + it.objectInstance as Artifact.Multiple +}.associateBy { + it.javaClass.simpleName +} + +@Suppress("DEPRECATION") +internal object V81 : AGPInterface { + + private val Variant.component: VariantImpl<*> + get() = when (this) { + is VariantImpl<*> -> this + is AnalyticsEnabledVariant -> this.delegate as VariantImpl<*> + else -> TODO("No implementationed!") + } + + @Suppress("UnstableApiUsage") + private fun Variant.getFinalArtifactFiles(type: Artifact.Single): FileCollection { + return try { + project.objects.fileCollection().from(artifactsImpl.get(type)) + } catch (e: Throwable) { + project.objects.fileCollection().builtBy(artifactsImpl.get(type)) + } + } + + @Suppress("UnstableApiUsage") + private fun Variant.getFinalArtifactFiles(type: Artifact.Multiple): FileCollection { + return try { + project.objects.fileCollection().from(artifactsImpl.getAll(type)) + } catch (e: Throwable) { + project.objects.fileCollection().builtBy(artifactsImpl.getAll(type)) + } + } + + @Suppress("UnstableApiUsage") + private val Variant.artifactsImpl: ArtifactsImpl + get() = component.artifacts + + override val Variant.project: Project + get() { + return this.component.variantDependencies.javaClass.kotlin.declaredMemberProperties.first { + it.name == "project" + }.apply { + isAccessible = true + }.get(this.component.variantDependencies) as Project + } + + override val Variant.javaCompilerTaskProvider: TaskProvider + get() = component.taskContainer.javacTask + + override val Variant.preBuildTaskProvider: TaskProvider + get() = component.taskContainer.preBuildTask + + override val Variant.assembleTaskProvider: TaskProvider + get() = component.taskContainer.assembleTask + + override val Variant.mergeAssetsTaskProvider: TaskProvider + get() = component.taskContainer.mergeAssetsTask + + override val Variant.mergeResourcesTaskProvider: TaskProvider + get() = try { + project.tasks.named(getTaskName("merge", "Resources")) + } catch (e: Throwable) { + component.taskContainer.mergeResourcesTask + } + + override val Variant.mergeNativeLibsTaskProvider: TaskProvider + get() = project.tasks.named(getTaskName("merge", "NativeLibs")) + + override val Variant.processJavaResourcesTaskProvider: TaskProvider + get() = component.taskContainer.processJavaResourcesTask + + override fun Variant.getTaskName(prefix: String): String { + return component.computeTaskName(prefix) + } + + override fun Variant.getTaskName(prefix: String, suffix: String): String { + return component.computeTaskName(prefix, suffix) + } + + override val Variant.variantData: BaseVariantData + get() = component.javaClass.getDeclaredMethod("getVariantData").apply { + isAccessible = true + }.invoke(this) as BaseVariantData + + @Suppress("DEPRECATION") + private val Variant.globalScope: GlobalTaskCreationConfigImpl + get() = component.global as GlobalTaskCreationConfigImpl + + override val Variant.originalApplicationId: String + get() = component.namespace.get() + + override val Variant.hasDynamicFeature: Boolean + get() = component.global.hasDynamicFeatures + + override val Variant.rawAndroidResources: FileCollection + get() { + val allRes: ConfigurableFileCollection = component.services.fileCollection() + + allRes.from( + component.variantDependencies.getArtifactCollection( + AndroidArtifacts.ConsumedConfigType.RUNTIME_CLASSPATH, + AndroidArtifacts.ArtifactScope.ALL, + AndroidArtifacts.ArtifactType.ANDROID_RES + ).artifactFiles + ) + + allRes.from( + component.services.fileCollection(variantData.extraGeneratedResFolders) + .builtBy(listOfNotNull(variantData.extraGeneratedResFolders.builtBy)) + ) + + component.taskContainer.generateApkDataTask?.let { + allRes.from(artifactsImpl.get(InternalArtifactType.MICRO_APK_RES)) + } + + component.sources.res { resSources -> + allRes.from( + resSources.getVariantSources().map { directoryEntries -> + directoryEntries.directoryEntries + .map { + if (it is TaskProviderBasedDirectoryEntryImpl) { + it.directoryProvider + } else { + it.asFiles( + component.services.provider { + component.services.projectInfo.projectDirectory + }) + } + } + } + ) + } + + return allRes + } + override val Variant.sourceSetMap: FileCollection + get() = getFinalArtifactFiles(InternalArtifactType.SOURCE_SET_PATH_MAP) + + override val Variant.localAndroidResources: FileCollection + get() = component.services.fileCollection() + .from(component.sources.res?.getVariantSourcesWithFilter { + !it.isUserAdded && !it.isGenerated + }?.values?.map { + it.map { dirs -> + dirs.map { dir -> + dir.asFileTree + }.reduce { acc, dir -> + acc.plus(dir) + } + } + }) + + override fun Variant.getSingleArtifact(type: Artifact.Single): Provider { + return artifactsImpl.get(type) + } + + override fun Variant.getArtifactCollection( + configType: AndroidArtifacts.ConsumedConfigType, + scope: AndroidArtifacts.ArtifactScope, + artifactType: AndroidArtifacts.ArtifactType + ): ArtifactCollection { + return component.variantDependencies.getArtifactCollection(configType, scope, artifactType) + } + + override fun Variant.getArtifactFileCollection( + configType: AndroidArtifacts.ConsumedConfigType, + scope: AndroidArtifacts.ArtifactScope, + artifactType: AndroidArtifacts.ArtifactType + ): FileCollection { + return component.variantDependencies.getArtifactFileCollection(configType, scope, artifactType) + } + + override val Variant.allArtifacts: Map + get() = TreeMap().also { all -> + SINGLE_ARTIFACT_TYPES.entries.associateTo(all) { (name, type) -> + val artifacts: FileCollection by lazy { + getFinalArtifactFiles(type) + } + name to artifacts + } + MULTIPLE_ARTIFACT_TYPES.entries.associateTo(all) { (name, type) -> + val artifacts: FileCollection by lazy { + getFinalArtifactFiles(type) + } + name to artifacts + } + } + + override val Variant.targetVersion: AndroidVersion + get() = targetSdkVersion + + override val Variant.isApplication: Boolean + get() = component.componentType.isApk + + override val Variant.isLibrary: Boolean + get() = component.componentType.isAar + + override val Variant.isDynamicFeature: Boolean + get() = component.componentType.isDynamicFeature + + override val Variant.aar: FileCollection + get() = getFinalArtifactFiles(SingleArtifact.AAR) + + override val Variant.apk: FileCollection + get() = getFinalArtifactFiles(SingleArtifact.APK) + + override val Variant.mergedManifests: FileCollection + get() = getFinalArtifactFiles(SingleArtifact.MERGED_MANIFEST) + + override val Variant.mergedRes: FileCollection + get() = getFinalArtifactFiles(InternalArtifactType.MERGED_RES) + + override val Variant.mergedNativeLibs: FileCollection + get() = getFinalArtifactFiles(SingleArtifact.MERGED_NATIVE_LIBS) + + override val Variant.mergedAssets: FileCollection + get() = when (this) { + is ApplicationVariant -> getFinalArtifactFiles(InternalArtifactType.COMPRESSED_ASSETS) + is LibraryVariant -> getFinalArtifactFiles(InternalArtifactType.LIBRARY_ASSETS) + else -> TODO("Unsupported variant type: $name@${javaClass.name}") + } + + override val Variant.processedRes: FileCollection + get() = getFinalArtifactFiles(InternalArtifactType.PROCESSED_RES) + + override val Variant.symbolList: FileCollection + get() = when (this) { + is ApplicationVariant -> getFinalArtifactFiles(InternalArtifactType.RUNTIME_SYMBOL_LIST) + is LibraryVariant -> getFinalArtifactFiles(InternalArtifactType.COMPILE_SYMBOL_LIST) + else -> TODO("Unsupported variant type: $name@${javaClass.name}") + } + + override val Variant.symbolListWithPackageName: FileCollection + get() = getFinalArtifactFiles(InternalArtifactType.SYMBOL_LIST_WITH_PACKAGE_NAME) + + override val Variant.dataBindingDependencyArtifacts: FileCollection + get() = getFinalArtifactFiles(InternalArtifactType.DATA_BINDING_DEPENDENCY_ARTIFACTS) + + override val Variant.allClasses: FileCollection + get() = when { + isApplication -> getFinalArtifactFiles(InternalArtifactType.JAVAC) + project.files("build${File.separator}tmp${File.separator}kotlin-classes${File.separator}${name}") + isLibrary -> getFinalArtifactFiles(InternalArtifactType.AAR_MAIN_JAR) + else -> project.files() + } + + override val Variant.buildTools: BuildToolInfo + get() = globalScope.versionedSdkLoader.get().buildToolInfoProvider.get() + + override val Variant.isPrecompileDependenciesResourcesEnabled: Boolean + get() = component.androidResourcesCreationConfig?.isPrecompileDependenciesResourcesEnabled == true + + override fun Variant.getDependencies( + transitive: Boolean, + filter: (ComponentIdentifier) -> Boolean + ): Collection { + val all = getArtifactCollection( + AndroidArtifacts.ConsumedConfigType.RUNTIME_CLASSPATH, + AndroidArtifacts.ArtifactScope.ALL, + AndroidArtifacts.ArtifactType.CLASSES_JAR + ).filter { result -> + filter(result.id.componentIdentifier) + }.associateBy { + it.id.componentIdentifier.displayName + } + val result = if (!transitive) { + runtimeConfiguration.incoming.resolutionResult.root.dependencies.filterIsInstance() + .mapNotNull { + it.selected.id.displayName.takeIf { id -> id in all.keys } + }.associateWith { + all[it]!! + } + } else { + all + } + return result.values.toSet() + } + +} diff --git a/booster-android-gradle-v3_4/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_4/V34Factory.kt b/booster-android-gradle-v8_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v8_1/V81Factory.kt similarity index 53% rename from booster-android-gradle-v3_4/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_4/V34Factory.kt rename to booster-android-gradle-v8_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v8_1/V81Factory.kt index bbf13d377..9417d7928 100644 --- a/booster-android-gradle-v3_4/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_4/V34Factory.kt +++ b/booster-android-gradle-v8_1/src/main/kotlin/com/didiglobal/booster/android/gradle/v8_1/V81Factory.kt @@ -1,4 +1,4 @@ -package com.didiglobal.booster.android.gradle.v3_4 +package com.didiglobal.booster.android.gradle.v8_1 import com.android.repository.Revision import com.didiglobal.booster.gradle.AGPInterface @@ -6,10 +6,10 @@ import com.didiglobal.booster.gradle.AGPInterfaceFactory import com.google.auto.service.AutoService @AutoService(AGPInterfaceFactory::class) -class V34Factory : AGPInterfaceFactory { +class V81Factory : AGPInterfaceFactory { - override val revision: Revision = Revision(3, 4, 0) + override val revision: Revision = Revision(8, 1, 0) - override fun newAGPInterface(): AGPInterface = V34 + override fun newAGPInterface(): AGPInterface = V81 } diff --git a/booster-android-gradle-v7_2/README.md b/booster-android-gradle-v8_2/README.md similarity index 66% rename from booster-android-gradle-v7_2/README.md rename to booster-android-gradle-v8_2/README.md index 0ffc8d2f1..f9491fc6a 100644 --- a/booster-android-gradle-v7_2/README.md +++ b/booster-android-gradle-v8_2/README.md @@ -1,6 +1,6 @@ -# booster-android-gradle-v7_2 +# booster-android-gradle-v8_1 -This module is an implementation of [booster-android-gradle-api](../booster-android-gradle-api) for Android gradle plugin above 7.2 +This module is an implementation of [booster-android-gradle-api](../booster-android-gradle-api) for Android gradle plugin above 8.2 -本模块是 [booster-android-gradle-api](../booster-android-gradle-api) 针对 Android gradle plugin 7.2 以上版本的实现。 +本模块是 [booster-android-gradle-api](../booster-android-gradle-api) 针对 Android gradle plugin 8.2 以上版本的实现。 diff --git a/booster-android-gradle-v7_2/build.gradle b/booster-android-gradle-v8_2/build.gradle similarity index 77% rename from booster-android-gradle-v7_2/build.gradle rename to booster-android-gradle-v8_2/build.gradle index cbadd52a3..27b38b630 100644 --- a/booster-android-gradle-v7_2/build.gradle +++ b/booster-android-gradle-v8_2/build.gradle @@ -11,11 +11,13 @@ dependencies { compileOnly 'com.android.tools:repository:30.0.0' compileOnly 'com.android.tools:common:30.0.0' compileOnly 'com.android.tools:sdklib:30.0.0' - compileOnly 'com.android.tools.build:gradle:7.2.0' - testImplementation 'com.android.tools.build:gradle:7.2.0' + compileOnly 'com.android.tools.build:gradle-api:8.2.0' + compileOnly 'com.android.tools.build:gradle:8.2.0' + testImplementation 'com.android.tools.build:gradle:8.2.0' testImplementation 'com.android.tools:common:30.0.0' - testImplementation 'io.bootstage.testkit:testkit-gradle-plugin:1.1.0' + testImplementation 'io.bootstage.testkit:testkit-gradle-plugin:2.1.0' testImplementation project(':booster-build') + testImplementation project(':booster-android-gradle-api') } jar { diff --git a/booster-android-gradle-v7_3/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v7_3/V73IntegrationTest.kt b/booster-android-gradle-v8_2/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v8_2/V82IntegrationTest.kt similarity index 54% rename from booster-android-gradle-v7_3/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v7_3/V73IntegrationTest.kt rename to booster-android-gradle-v8_2/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v8_2/V82IntegrationTest.kt index 5d8e93aed..89a49911f 100644 --- a/booster-android-gradle-v7_3/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v7_3/V73IntegrationTest.kt +++ b/booster-android-gradle-v8_2/src/integrationTest/kotlin/com/didiglobal/booster/android/gradle/v8_2/V82IntegrationTest.kt @@ -1,13 +1,14 @@ @file:Suppress("DEPRECATION") -package com.didiglobal.booster.android.gradle.v7_3 +package com.didiglobal.booster.android.gradle.v8_2 -import com.android.build.gradle.AppExtension -import com.android.build.gradle.BaseExtension -import com.android.build.gradle.LibraryExtension -import com.android.build.gradle.api.BaseVariant +import com.android.build.api.variant.AndroidComponentsExtension +import com.android.build.api.variant.Variant import com.didiglobal.booster.gradle.AGP -import com.didiglobal.booster.gradle.getAndroid +import com.didiglobal.booster.gradle.assembleTaskProvider +import com.didiglobal.booster.gradle.getAndroidComponents +import com.didiglobal.booster.gradle.project +import com.didiglobal.booster.kotlinx.capitalized import com.didiglobal.booster.kotlinx.search import io.bootstage.testkit.gradle.Case import io.bootstage.testkit.gradle.TestCase @@ -22,35 +23,30 @@ import org.junit.Rule import org.junit.rules.TemporaryFolder import org.junit.rules.TestRule import java.io.File -import kotlin.test.Test -import kotlin.test.assertEquals -import kotlin.test.assertFalse -import kotlin.test.assertNotNull -import kotlin.test.assertTrue -import kotlin.test.fail +import kotlin.test.* private val MIN_SDK_VERSION = System.getProperty("android.minsdk.version").toInt() private const val TARGET_SDK_VERSION = 30 private val ARGS = System.getProperty("gradle.args").split("\\s+".toRegex()) + listOf( - "-Pbooster_version=${Build.VERSION}", - "-Pandroid_gradle_version=7.3.0", - "-Pcompile_sdk_version=30", - "-Pbuild_tools_version=29.0.2", - "-Pmin_sdk_version=${MIN_SDK_VERSION}", - "-Ptarget_sdk_version=${TARGET_SDK_VERSION}" + "-Pbooster_version=${Build.VERSION}", + "-Pandroid_gradle_version=8.2.0", + "-Pcompile_sdk_version=30", + "-Pbuild_tools_version=29.0.2", + "-Pmin_sdk_version=$MIN_SDK_VERSION", + "-Ptarget_sdk_version=$TARGET_SDK_VERSION" ) @Suppress("RemoveCurlyBracesFromTemplate", "FunctionName") -abstract class V73IntegrationTest(private val isLib: Boolean) { +abstract class V82IntegrationTest(private val isLib: Boolean) { private val projectDir = TemporaryFolder() @get:Rule val ruleChain: TestRule = rule(projectDir) { rule(LocalProperties(projectDir::getRoot)) { - GradleExecutor(projectDir::getRoot, "7.4", *ARGS.toTypedArray()) + GradleExecutor(projectDir::getRoot, "8.2", *ARGS.toTypedArray()) } } @@ -60,17 +56,10 @@ abstract class V73IntegrationTest(private val isLib: Boolean) { projectDir.copyFromResource("buildSrc") projectDir.copyFromResource("src") projectDir.newFile("gradle.properties").writeText("org.gradle.jvmargs=-Xmx4g -XX:MaxMetaspaceSize=2g") - assertEquals(7, AGP.revision.major) - assertEquals(3, AGP.revision.minor) + assertEquals(8, AGP.revision.major) + assertEquals(2, AGP.revision.minor) } - @Test - @Case(ScopeFullWithFeaturesTest::class) - fun `test AGPInterface#scopeFullWithFeatures`() = Unit - - @Test - @Case(ScopeFullLibraryWithFeaturesTest::class) - fun `test AGPInterface#scopeFullLibraryWithFeatures`() = Unit @Test @Case(ProjectTest::class) @@ -96,193 +85,112 @@ abstract class V73IntegrationTest(private val isLib: Boolean) { @Case(MergeResourcesTaskTestUnit::class) fun `test AGPInterface#mergeResources`() = Unit - @Test - @Case(GetTaskNameTestUnit::class) - fun `test AGPInterface#getTaskName(String)`() = Unit - - @Test - @Case(GetTaskName2TestUnit::class) - fun `test AGPInterface#getTaskName(String, String)`() = Unit - - @Test - @Case(VariantDataTestUnit::class) - fun `test AGPInterface#variantData`() = Unit - - @Test - @Case(OriginalApplicationIdTestUnit::class) - fun `test AGPInterface#originalApplicationId`() = Unit - - @Test - @Case(HasDynamicFeatureTestUnit::class) - fun `test AGPInterface#hasDynamicFeature`() = Unit - - @Test - @Case(RawAndroidResourcesTestUnit::class) - fun `test AGPInterface#rawAndroidResources`() = Unit - - @Test - @Case(AllArtifactsTestUnit::class) - fun `test AGPInterface#allArtifacts`() = Unit - - @Test - @Case(MinSdkVersionTestUnit::class) - fun `test AGPInterface#minSdkVersion`() = Unit - - @Test - @Case(TargetSdkVersionTestUnit::class) - fun `test AGPInterface#targetSdkVersion`() = Unit - - @Test - @Case(AarTestUnit::class) - fun `test AGPInterface#aar`() { - } - - @Test - @Case(ApkTestUnit::class) - fun `test AGPInterface#apk`() { - } - - @Test - @Case(MergedManifestsTestUnit::class) - fun `test AGPInterface#mergedManifests`() { - } - - @Test - @Case(MergedResourcesTestUnit::class) - fun `test AGPInterface#mergedRes`() { - } - - @Test - @Case(MergedAssetsTestUnit::class) - fun `test AGPInterface#mergedAssets`() { - } - - @Test - @Case(ProcessedResTestUnit::class) - fun `test AGPInterface#processedRes`() { - } - - @Test - @Case(SymbolListTestUnit::class) - fun `test AGPInterface#symbolList`() { - } - - @Test - @Case(SymbolListWithPackageNameTestUnit::class) - fun `test AGPInterface#symbolListWithPackageName`() { - } - @Test @Case(AllClassesTestUnit::class) fun `test AGPInterface#allClasses`() { } -// @Test -// @Case(BuildToolsTestUnit::class) -// fun `test AGPInterface#buildTools`() { -// } - } -class V73AppIntegrationTest : V73IntegrationTest(false) +class V82AppIntegrationTest : V82IntegrationTest(false) -class V73LibIntegrationTest : V73IntegrationTest(true) +class V82LibIntegrationTest : V82IntegrationTest(true) -class ScopeFullWithFeaturesTest : TestCase { - override fun apply(project: Project) { - assertEquals("PROJECT,SUB_PROJECTS,EXTERNAL_LIBRARIES,FEATURES", AGP.scopeFullWithFeatures.joinToString(",")) - } -} - -class ScopeFullLibraryWithFeaturesTest : TestCase { - override fun apply(project: Project) { - assertEquals("FEATURES,PROJECT", AGP.scopeFullLibraryWithFeatures.joinToString(",")) - } -} class ProjectTest : TestCase { override fun apply(project: Project) { - val assert: (BaseVariant) -> Unit = { variant -> + val assert: (Variant) -> Unit = { variant -> assertEquals(project, AGP.run { variant.project }) } - project.afterEvaluate { - when (val android = project.getAndroid()) { - is AppExtension -> android.applicationVariants.forEach(assert) - is LibraryExtension -> android.libraryVariants.forEach(assert) - } - } + project.getAndroidComponents>().onVariants(callback = assert) } } class JavaCompilerTaskTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.javaCompilerTask }) + override fun apply(variant: Variant) { + variant.project.gradle.taskGraph.whenReady { + assertNotNull(AGP.run { + variant.javaCompilerTask + }) + } } } class PreBuildTaskTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.preBuildTask }) + override fun apply(variant: Variant) { + variant.project.gradle.taskGraph.whenReady { + assertNotNull(AGP.run { variant.preBuildTask }) + } } } class AssembleTaskTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.assembleTask }) + override fun apply(variant: Variant) { + variant.project.gradle.taskGraph.whenReady { + assertNotNull(AGP.run { variant.assembleTask }) + } } } class MergeAssetsTaskTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.mergeAssetsTask }) + override fun apply(variant: Variant) { + variant.project.gradle.taskGraph.whenReady { + assertNotNull(AGP.run { variant.mergeAssetsTask }) + } } } class MergeResourcesTaskTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertNotNull(AGP.run { variant.mergeResourcesTask }) + override fun apply(variant: Variant) { + variant.project.gradle.taskGraph.whenReady { + assertNotNull(AGP.run { variant.mergeResourcesTask }) + } } } class GetTaskNameTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertEquals("assemble${variant.name.capitalize()}", AGP.run { variant.getTaskName("assemble") }) + override fun apply(variant: Variant) { + variant.project.gradle.taskGraph.whenReady { + assertEquals("assemble${variant.name.capitalized()}", AGP.run { variant.getTaskName("assemble") }) + } } } class GetTaskName2TestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - assertEquals("merge${variant.name.capitalize()}Resources", AGP.run { variant.getTaskName("merge", "Resources") }) + override fun apply(variant: Variant) { + variant.project.gradle.taskGraph.whenReady { + assertEquals("merge${variant.name.capitalized()}Resources", AGP.run { variant.getTaskName("merge", "Resources") }) + } } } class VariantDataTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { + override fun apply(variant: Variant) { assertNotNull(AGP.run { variant.variantData }) } } class OriginalApplicationIdTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { + override fun apply(variant: Variant) { + variant.project.gradle.taskGraph.whenReady { assertNotNull(AGP.run { variant.originalApplicationId }) } } } class HasDynamicFeatureTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { + override fun apply(variant: Variant) { assertFalse(AGP.run { variant.hasDynamicFeature }) } } class RawAndroidResourcesTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { + override fun apply(variant: Variant) { + variant.project.gradle.taskGraph.whenReady { val rawAndroidResources = AGP.run { variant.rawAndroidResources } assertNotNull(rawAndroidResources) - if (rawAndroidResources.isEmpty()) { + if (rawAndroidResources.isEmpty) { fail("rawAndroidResources is empty") } rawAndroidResources.forEach { @@ -293,8 +201,8 @@ class RawAndroidResourcesTestUnit : VariantTestCase() { } class AllArtifactsTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { + override fun apply(variant: Variant) { + variant.project.gradle.taskGraph.whenReady { val allArtifacts = AGP.run { variant.allArtifacts } assertNotNull(allArtifacts) if (allArtifacts.isEmpty()) { @@ -308,7 +216,7 @@ class AllArtifactsTestUnit : VariantTestCase() { } class MinSdkVersionTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { + override fun apply(variant: Variant) { val minSdkVersion = AGP.run { variant.minSdkVersion } assertNotNull(minSdkVersion) assertEquals(MIN_SDK_VERSION, minSdkVersion.apiLevel) @@ -316,7 +224,7 @@ class MinSdkVersionTestUnit : VariantTestCase() { } class TargetSdkVersionTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { + override fun apply(variant: Variant) { val targetSdkVersion = AGP.run { variant.targetSdkVersion } assertNotNull(targetSdkVersion) assertEquals(TARGET_SDK_VERSION, targetSdkVersion.apiLevel) @@ -330,8 +238,8 @@ class AarTestUnit : VariantTestCase() { } } - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { + override fun apply(variant: Variant) { + variant.project.gradle.taskGraph.whenReady { val aar = AGP.run { variant.aar }.search { it.extension == "aar" } @@ -352,8 +260,8 @@ class ApkTestUnit : VariantTestCase() { } } - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { + override fun apply(variant: Variant) { + variant.project.gradle.taskGraph.whenReady { val apk = AGP.run { variant.apk }.search { it.extension == "apk" } @@ -374,8 +282,8 @@ class MergedManifestsTestUnit : VariantTestCase() { } } - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { + override fun apply(variant: Variant) { + variant.project.gradle.taskGraph.whenReady { val mergedManifests = AGP.run { variant.mergedManifests }.search { it.name == "AndroidManifest.xml" } @@ -390,10 +298,10 @@ class MergedManifestsTestUnit : VariantTestCase() { } class MergedResourcesTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { + override fun apply(variant: Variant) { + variant.project.gradle.taskGraph.whenReady { val mergedResources = AGP.run { variant.mergedRes } - if (mergedResources.isEmpty()) { + if (mergedResources.isEmpty) { fail("mergedRes is empty") } mergedResources.forEach { @@ -404,8 +312,8 @@ class MergedResourcesTestUnit : VariantTestCase() { } class MergedAssetsTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { + override fun apply(variant: Variant) { + variant.project.gradle.taskGraph.whenReady { val mergedAssets = AGP.run { variant.mergedAssets } if (mergedAssets.isEmpty()) { fail("mergedAssets is empty") @@ -424,8 +332,8 @@ class ProcessedResTestUnit : VariantTestCase() { } } - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { + override fun apply(variant: Variant) { + variant.project.gradle.taskGraph.whenReady { val processedRes = AGP.run { variant.processedRes }.search { it.extension == "ap_" } @@ -440,10 +348,10 @@ class ProcessedResTestUnit : VariantTestCase() { } class SymbolListTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { + override fun apply(variant: Variant) { + variant.project.gradle.taskGraph.whenReady { val symbolList = AGP.run { variant.symbolList } - if (symbolList.isEmpty()) { + if (symbolList.isEmpty) { fail("symbolList is empty") } symbolList.forEach { @@ -454,10 +362,10 @@ class SymbolListTestUnit : VariantTestCase() { } class SymbolListWithPackageNameTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { + override fun apply(variant: Variant) { + variant.project.gradle.taskGraph.whenReady { val symbolListWithPackageName = AGP.run { variant.symbolListWithPackageName } - if (symbolListWithPackageName.isEmpty()) { + if (symbolListWithPackageName.isEmpty) { fail("symbolListWithPackageName is empty") } symbolListWithPackageName.forEach { @@ -468,12 +376,16 @@ class SymbolListWithPackageNameTestUnit : VariantTestCase() { } class AllClassesTestUnit : VariantTestCase() { - override fun apply(variant: BaseVariant) { - AGP.run { variant.assembleTask }.doFirst { - val location = AGP.run { variant.allClasses }.files - assertTrue("ALL_CLASSES: $location", location::isNotEmpty) - assertTrue("No class file found at $location") { - location.search(File::isFile).isNotEmpty() + override fun apply(variant: Variant) { + variant.project.gradle.taskGraph.whenReady { + variant.assembleTaskProvider.configure { + it.doFirst { + val location = AGP.run { variant.allClasses }.files + assertTrue("ALL_CLASSES: $location", location::isNotEmpty) + assertTrue("No class file found at $location") { + location.search(File::isFile).isNotEmpty() + } + } } } } diff --git a/booster-android-gradle-v3_6/src/integrationTest/resources/app.gradle b/booster-android-gradle-v8_2/src/integrationTest/resources/app.gradle similarity index 93% rename from booster-android-gradle-v3_6/src/integrationTest/resources/app.gradle rename to booster-android-gradle-v8_2/src/integrationTest/resources/app.gradle index aa3c5f2d6..2d3799f8e 100644 --- a/booster-android-gradle-v3_6/src/integrationTest/resources/app.gradle +++ b/booster-android-gradle-v8_2/src/integrationTest/resources/app.gradle @@ -11,7 +11,7 @@ buildscript { classpath("com.didiglobal.booster:booster-gradle-plugin:${project.booster_version}") { exclude group: 'com.google.guava' } - classpath "io.bootstage.testkit:testkit-gradle-plugin:1.4.0" + classpath "io.bootstage.testkit:testkit-gradle-plugin:2.1.0" } } @@ -20,6 +20,7 @@ apply plugin: 'com.didiglobal.booster' apply plugin: 'io.bootstage.testkit' android { + namespace 'com.didiglobal.booster.android.test' compileSdkVersion project.compile_sdk_version as Integer buildToolsVersion project.build_tools_version defaultConfig { diff --git a/booster-android-gradle-v3_6/src/integrationTest/resources/buildSrc/build.gradle b/booster-android-gradle-v8_2/src/integrationTest/resources/buildSrc/build.gradle similarity index 90% rename from booster-android-gradle-v3_6/src/integrationTest/resources/buildSrc/build.gradle rename to booster-android-gradle-v8_2/src/integrationTest/resources/buildSrc/build.gradle index 79a9b104a..d52ed4cb7 100644 --- a/booster-android-gradle-v3_6/src/integrationTest/resources/buildSrc/build.gradle +++ b/booster-android-gradle-v8_2/src/integrationTest/resources/buildSrc/build.gradle @@ -20,5 +20,5 @@ dependencies { implementation("com.didiglobal.booster:booster-android-gradle-api:${project.booster_version}") { exclude group: 'com.google.guava' } - implementation "io.bootstage.testkit:testkit-gradle-plugin:1.4.0" + implementation "io.bootstage.testkit:testkit-gradle-plugin:2.1.0" } diff --git a/booster-android-gradle-v3_4/src/integrationTest/resources/lib.gradle b/booster-android-gradle-v8_2/src/integrationTest/resources/lib.gradle similarity index 92% rename from booster-android-gradle-v3_4/src/integrationTest/resources/lib.gradle rename to booster-android-gradle-v8_2/src/integrationTest/resources/lib.gradle index adc9b1ca0..b9ee3b136 100644 --- a/booster-android-gradle-v3_4/src/integrationTest/resources/lib.gradle +++ b/booster-android-gradle-v8_2/src/integrationTest/resources/lib.gradle @@ -11,7 +11,7 @@ buildscript { classpath("com.didiglobal.booster:booster-gradle-plugin:${project.booster_version}") { exclude group: 'com.google.guava' } - classpath "io.bootstage.testkit:testkit-gradle-plugin:1.4.0" + classpath "io.bootstage.testkit:testkit-gradle-plugin:2.1.0" } } @@ -20,6 +20,7 @@ apply plugin: 'com.didiglobal.booster' apply plugin: 'io.bootstage.testkit' android { + namespace 'com.didiglobal.booster.android.test' compileSdkVersion project.compile_sdk_version as Integer buildToolsVersion project.build_tools_version defaultConfig { diff --git a/booster-android-gradle-v3_5/src/integrationTest/resources/src/main/AndroidManifest.xml b/booster-android-gradle-v8_2/src/integrationTest/resources/src/main/AndroidManifest.xml similarity index 53% rename from booster-android-gradle-v3_5/src/integrationTest/resources/src/main/AndroidManifest.xml rename to booster-android-gradle-v8_2/src/integrationTest/resources/src/main/AndroidManifest.xml index 30800c604..2969fc910 100644 --- a/booster-android-gradle-v3_5/src/integrationTest/resources/src/main/AndroidManifest.xml +++ b/booster-android-gradle-v8_2/src/integrationTest/resources/src/main/AndroidManifest.xml @@ -1,9 +1,8 @@ - + - + \ No newline at end of file diff --git a/booster-android-gradle-v3_5/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/MainActivity.java b/booster-android-gradle-v8_2/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/MainActivity.java similarity index 100% rename from booster-android-gradle-v3_5/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/MainActivity.java rename to booster-android-gradle-v8_2/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/MainActivity.java diff --git a/booster-android-gradle-v3_5/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/TestApplication.java b/booster-android-gradle-v8_2/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/TestApplication.java similarity index 100% rename from booster-android-gradle-v3_5/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/TestApplication.java rename to booster-android-gradle-v8_2/src/integrationTest/resources/src/main/java/com/didiglobal/booster/android/test/TestApplication.java diff --git a/booster-android-gradle-v3_5/src/integrationTest/resources/src/main/res/values/strings.xml b/booster-android-gradle-v8_2/src/integrationTest/resources/src/main/res/values/strings.xml similarity index 100% rename from booster-android-gradle-v3_5/src/integrationTest/resources/src/main/res/values/strings.xml rename to booster-android-gradle-v8_2/src/integrationTest/resources/src/main/res/values/strings.xml diff --git a/booster-android-gradle-v8_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v8_2/V82.kt b/booster-android-gradle-v8_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v8_2/V82.kt new file mode 100644 index 000000000..3cf05945c --- /dev/null +++ b/booster-android-gradle-v8_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v8_2/V82.kt @@ -0,0 +1,336 @@ +package com.didiglobal.booster.android.gradle.v8_2 + +import com.android.build.api.artifact.Artifact +import com.android.build.api.artifact.MultipleArtifact +import com.android.build.api.artifact.SingleArtifact +import com.android.build.api.artifact.impl.ArtifactsImpl +import com.android.build.api.component.analytics.AnalyticsEnabledVariant +import com.android.build.api.variant.AndroidVersion +import com.android.build.api.variant.ApplicationVariant +import com.android.build.api.variant.LibraryVariant +import com.android.build.api.variant.Variant +import com.android.build.api.variant.impl.TaskProviderBasedDirectoryEntryImpl +import com.android.build.api.variant.impl.VariantImpl +import com.android.build.gradle.internal.api.artifact.SourceArtifactType +import com.android.build.gradle.internal.publishing.AndroidArtifacts +import com.android.build.gradle.internal.scope.BuildArtifactType +import com.android.build.gradle.internal.scope.InternalArtifactType +import com.android.build.gradle.internal.scope.InternalMultipleArtifactType +import com.android.build.gradle.internal.tasks.factory.GlobalTaskCreationConfigImpl +import com.android.build.gradle.internal.variant.BaseVariantData +import com.android.sdklib.BuildToolInfo +import com.didiglobal.booster.gradle.AGPInterface +import org.gradle.api.Project +import org.gradle.api.Task +import org.gradle.api.artifacts.ArtifactCollection +import org.gradle.api.artifacts.component.ComponentIdentifier +import org.gradle.api.artifacts.result.ResolvedArtifactResult +import org.gradle.api.artifacts.result.ResolvedDependencyResult +import org.gradle.api.file.ConfigurableFileCollection +import org.gradle.api.file.FileCollection +import org.gradle.api.file.FileSystemLocation +import org.gradle.api.provider.Provider +import org.gradle.api.tasks.TaskProvider +import java.io.File +import java.util.TreeMap +import kotlin.reflect.full.declaredMemberProperties +import kotlin.reflect.jvm.isAccessible + +@Suppress("UnstableApiUsage") +private val SINGLE_ARTIFACT_TYPES = arrayOf( + BuildArtifactType::class, + InternalArtifactType::class, + SingleArtifact::class, + SourceArtifactType::class +).map { + it.sealedSubclasses +}.flatten().map { + it.objectInstance as Artifact.Single +}.associateBy { + it.javaClass.simpleName +} + +private val MULTIPLE_ARTIFACT_TYPES = arrayOf( + MultipleArtifact::class, + InternalMultipleArtifactType::class +).map { + it.sealedSubclasses +}.flatten().map { + it.objectInstance as Artifact.Multiple +}.associateBy { + it.javaClass.simpleName +} + +@Suppress("DEPRECATION") +internal object V82 : AGPInterface { + + private val Variant.component: VariantImpl<*> + get() = when (this) { + is VariantImpl<*> -> this + is AnalyticsEnabledVariant -> this.delegate as VariantImpl<*> + else -> TODO("No implementationed!") + } + + @Suppress("UnstableApiUsage") + private fun Variant.getFinalArtifactFiles(type: Artifact.Single): FileCollection { + return try { + project.objects.fileCollection().from(artifactsImpl.get(type)) + } catch (e: Throwable) { + project.objects.fileCollection().builtBy(artifactsImpl.get(type)) + } + } + + @Suppress("UnstableApiUsage") + private fun Variant.getFinalArtifactFiles(type: Artifact.Multiple): FileCollection { + return try { + project.objects.fileCollection().from(artifactsImpl.getAll(type)) + } catch (e: Throwable) { + project.objects.fileCollection().builtBy(artifactsImpl.getAll(type)) + } + } + + @Suppress("UnstableApiUsage") + private val Variant.artifactsImpl: ArtifactsImpl + get() = component.artifacts + + override val Variant.project: Project + get() { + return this.component.variantDependencies.javaClass.kotlin.declaredMemberProperties.first { + it.name == "project" + }.apply { + isAccessible = true + }.get(this.component.variantDependencies) as Project + } + + override val Variant.javaCompilerTaskProvider: TaskProvider + get() = component.taskContainer.javacTask + + override val Variant.preBuildTaskProvider: TaskProvider + get() = component.taskContainer.preBuildTask + + override val Variant.assembleTaskProvider: TaskProvider + get() = component.taskContainer.assembleTask + + override val Variant.mergeAssetsTaskProvider: TaskProvider + get() = component.taskContainer.mergeAssetsTask + + override val Variant.mergeResourcesTaskProvider: TaskProvider + get() = try { + project.tasks.named(getTaskName("merge", "Resources")) + } catch (e: Throwable) { + component.taskContainer.mergeResourcesTask + } + + override val Variant.mergeNativeLibsTaskProvider: TaskProvider + get() = project.tasks.named(getTaskName("merge", "NativeLibs")) + + override val Variant.processJavaResourcesTaskProvider: TaskProvider + get() = component.taskContainer.processJavaResourcesTask + + override fun Variant.getTaskName(prefix: String): String { + return component.computeTaskName(prefix) + } + + override fun Variant.getTaskName(prefix: String, suffix: String): String { + return component.computeTaskName(prefix, suffix) + } + + override val Variant.variantData: BaseVariantData + get() = component.javaClass.getDeclaredMethod("getVariantData").apply { + isAccessible = true + }.invoke(this) as BaseVariantData + + @Suppress("DEPRECATION") + private val Variant.globalScope: GlobalTaskCreationConfigImpl + get() = component.global as GlobalTaskCreationConfigImpl + + override val Variant.originalApplicationId: String + get() = component.namespace.get() + + override val Variant.hasDynamicFeature: Boolean + get() = component.global.hasDynamicFeatures + + override val Variant.rawAndroidResources: FileCollection + get() { + val allRes: ConfigurableFileCollection = component.services.fileCollection() + + allRes.from( + component.variantDependencies.getArtifactCollection( + AndroidArtifacts.ConsumedConfigType.RUNTIME_CLASSPATH, + AndroidArtifacts.ArtifactScope.ALL, + AndroidArtifacts.ArtifactType.ANDROID_RES + ).artifactFiles + ) + + allRes.from( + component.services.fileCollection(variantData.extraGeneratedResFolders) + .builtBy(listOfNotNull(variantData.extraGeneratedResFolders.builtBy)) + ) + + component.taskContainer.generateApkDataTask?.let { + allRes.from(artifactsImpl.get(InternalArtifactType.MICRO_APK_RES)) + } + + component.sources.res { resSources -> + allRes.from( + resSources.getVariantSources().map { directoryEntries -> + directoryEntries.directoryEntries + .map { + if (it is TaskProviderBasedDirectoryEntryImpl) { + it.directoryProvider + } else { + it.asFiles( + component.services.provider { + component.services.projectInfo.projectDirectory + }) + } + } + } + ) + } + + return allRes + } + override val Variant.sourceSetMap: FileCollection + get() = getFinalArtifactFiles(InternalArtifactType.SOURCE_SET_PATH_MAP) + + override val Variant.localAndroidResources: FileCollection + get() = component.services.fileCollection() + .from(component.sources.res?.getVariantSourcesWithFilter { + !it.isUserAdded && !it.isGenerated + }?.values?.map { + it.map { dirs -> + dirs.map { dir -> + dir.asFileTree + }.reduce { acc, dir -> + acc.plus(dir) + } + } + }) + + override fun Variant.getSingleArtifact(type: Artifact.Single): Provider { + return artifactsImpl.get(type) + } + + override fun Variant.getArtifactCollection( + configType: AndroidArtifacts.ConsumedConfigType, + scope: AndroidArtifacts.ArtifactScope, + artifactType: AndroidArtifacts.ArtifactType + ): ArtifactCollection { + return component.variantDependencies.getArtifactCollection(configType, scope, artifactType) + } + + override fun Variant.getArtifactFileCollection( + configType: AndroidArtifacts.ConsumedConfigType, + scope: AndroidArtifacts.ArtifactScope, + artifactType: AndroidArtifacts.ArtifactType + ): FileCollection { + return component.variantDependencies.getArtifactFileCollection(configType, scope, artifactType) + } + + override val Variant.allArtifacts: Map + get() = TreeMap().also { all -> + SINGLE_ARTIFACT_TYPES.entries.associateTo(all) { (name, type) -> + val artifacts: FileCollection by lazy { + getFinalArtifactFiles(type) + } + name to artifacts + } + MULTIPLE_ARTIFACT_TYPES.entries.associateTo(all) { (name, type) -> + val artifacts: FileCollection by lazy { + getFinalArtifactFiles(type) + } + name to artifacts + } + } + + override val Variant.targetVersion: AndroidVersion + get() = targetSdkVersion + + override val Variant.isApplication: Boolean + get() = component.componentType.isApk + + override val Variant.isLibrary: Boolean + get() = component.componentType.isAar + + override val Variant.isDynamicFeature: Boolean + get() = component.componentType.isDynamicFeature + + override val Variant.aar: FileCollection + get() = getFinalArtifactFiles(SingleArtifact.AAR) + + override val Variant.apk: FileCollection + get() = getFinalArtifactFiles(SingleArtifact.APK) + + override val Variant.mergedManifests: FileCollection + get() = getFinalArtifactFiles(SingleArtifact.MERGED_MANIFEST) + + override val Variant.mergedRes: FileCollection + get() = getFinalArtifactFiles(InternalArtifactType.MERGED_RES) + + override val Variant.mergedNativeLibs: FileCollection + get() = getFinalArtifactFiles(SingleArtifact.MERGED_NATIVE_LIBS) + + override val Variant.mergedAssets: FileCollection + get() = when (this) { + is ApplicationVariant -> getFinalArtifactFiles(InternalArtifactType.COMPRESSED_ASSETS) + is LibraryVariant -> getFinalArtifactFiles(InternalArtifactType.LIBRARY_ASSETS) + else -> TODO("Unsupported variant type: $name@${javaClass.name}") + } + + override val Variant.processedRes: FileCollection + get() = getFinalArtifactFiles(InternalArtifactType.PROCESSED_RES) + + override val Variant.symbolList: FileCollection + get() = when (this) { + is ApplicationVariant -> getFinalArtifactFiles(InternalArtifactType.RUNTIME_SYMBOL_LIST) + is LibraryVariant -> getFinalArtifactFiles(InternalArtifactType.COMPILE_SYMBOL_LIST) + else -> TODO("Unsupported variant type: $name@${javaClass.name}") + } + + override val Variant.symbolListWithPackageName: FileCollection + get() = getFinalArtifactFiles(InternalArtifactType.SYMBOL_LIST_WITH_PACKAGE_NAME) + + override val Variant.dataBindingDependencyArtifacts: FileCollection + get() = getFinalArtifactFiles(InternalArtifactType.DATA_BINDING_DEPENDENCY_ARTIFACTS) + + override val Variant.allClasses: FileCollection + get() = when { + isApplication -> getFinalArtifactFiles(InternalArtifactType.JAVAC) + project.files("build${File.separator}tmp${File.separator}kotlin-classes${File.separator}${name}") + isLibrary -> getFinalArtifactFiles(InternalArtifactType.AAR_MAIN_JAR) + else -> project.files() + } + + override val Variant.buildTools: BuildToolInfo + get() = globalScope.versionedSdkLoader.get().buildToolInfoProvider.get() + + override val Variant.isPrecompileDependenciesResourcesEnabled: Boolean + get() = component.androidResourcesCreationConfig?.isPrecompileDependenciesResourcesEnabled == true + + override fun Variant.getDependencies( + transitive: Boolean, + filter: (ComponentIdentifier) -> Boolean + ): Collection { + val all = getArtifactCollection( + AndroidArtifacts.ConsumedConfigType.RUNTIME_CLASSPATH, + AndroidArtifacts.ArtifactScope.ALL, + AndroidArtifacts.ArtifactType.CLASSES_JAR + ).filter { result -> + filter(result.id.componentIdentifier) + }.associateBy { + it.id.componentIdentifier.displayName + } + val result = if (!transitive) { + runtimeConfiguration.incoming.resolutionResult.root.dependencies.filterIsInstance() + .mapNotNull { + it.selected.id.displayName.takeIf { id -> id in all.keys } + }.associateWith { + all[it]!! + } + } else { + all + } + return result.values.toSet() + } + +} diff --git a/booster-android-gradle-v3_5/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_5/V35Factory.kt b/booster-android-gradle-v8_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v8_2/V82Factory.kt similarity index 53% rename from booster-android-gradle-v3_5/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_5/V35Factory.kt rename to booster-android-gradle-v8_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v8_2/V82Factory.kt index dc6b86a1f..846819410 100644 --- a/booster-android-gradle-v3_5/src/main/kotlin/com/didiglobal/booster/android/gradle/v3_5/V35Factory.kt +++ b/booster-android-gradle-v8_2/src/main/kotlin/com/didiglobal/booster/android/gradle/v8_2/V82Factory.kt @@ -1,4 +1,4 @@ -package com.didiglobal.booster.android.gradle.v3_5 +package com.didiglobal.booster.android.gradle.v8_2 import com.android.repository.Revision import com.didiglobal.booster.gradle.AGPInterface @@ -6,10 +6,10 @@ import com.didiglobal.booster.gradle.AGPInterfaceFactory import com.google.auto.service.AutoService @AutoService(AGPInterfaceFactory::class) -class V35Factory : AGPInterfaceFactory { +class V82Factory : AGPInterfaceFactory { - override val revision: Revision = Revision(3, 5, 0) + override val revision: Revision = Revision(8, 2, 0) - override fun newAGPInterface(): AGPInterface = V35 + override fun newAGPInterface(): AGPInterface = V82 } diff --git a/booster-android-instrument-shared-preferences/build.gradle b/booster-android-instrument-shared-preferences/build.gradle deleted file mode 100644 index 4ad956046..000000000 --- a/booster-android-instrument-shared-preferences/build.gradle +++ /dev/null @@ -1,7 +0,0 @@ -sourceCompatibility = JavaVersion.VERSION_1_8 -targetCompatibility = JavaVersion.VERSION_1_8 - -dependencies { - compileOnly project(':booster-android-api') - implementation project(':booster-android-instrument-thread') -} diff --git a/booster-android-instrument-shared-preferences/src/main/java/com/didiglobal/booster/instrument/ShadowSharedPreferences.java b/booster-android-instrument-shared-preferences/src/main/java/com/didiglobal/booster/instrument/ShadowSharedPreferences.java deleted file mode 100644 index ea264f93b..000000000 --- a/booster-android-instrument-shared-preferences/src/main/java/com/didiglobal/booster/instrument/ShadowSharedPreferences.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.didiglobal.booster.instrument; - -import android.app.Activity; -import android.content.Context; -import android.content.SharedPreferences; -import android.text.TextUtils; -import com.didiglobal.booster.instrument.sharedpreferences.BoosterSharedPreferences; - -public class ShadowSharedPreferences { - - public static SharedPreferences getSharedPreferences(final Context context, String name, final int mode) { - if (TextUtils.isEmpty(name)) { - name = "null"; - } - return BoosterSharedPreferences.getSharedPreferences(context, name); - } - - public static SharedPreferences getDefaultSharedPreferences(Context context) { - return BoosterSharedPreferences.getSharedPreferences(context, getDefaultSharedPreferencesName(context)); - } - - private static String getDefaultSharedPreferencesName(Context context) { - return context.getPackageName() + "_preferences"; - } - - public static SharedPreferences getPreferences(final Activity activity, final int mode) { - return getSharedPreferences(activity.getApplicationContext(), activity.getLocalClassName(), mode); - } - -} diff --git a/booster-android-instrument-shared-preferences/src/main/java/com/didiglobal/booster/instrument/sharedpreferences/BoosterSharedPreferences.java b/booster-android-instrument-shared-preferences/src/main/java/com/didiglobal/booster/instrument/sharedpreferences/BoosterSharedPreferences.java deleted file mode 100755 index 67594addd..000000000 --- a/booster-android-instrument-shared-preferences/src/main/java/com/didiglobal/booster/instrument/sharedpreferences/BoosterSharedPreferences.java +++ /dev/null @@ -1,317 +0,0 @@ -package com.didiglobal.booster.instrument.sharedpreferences; - -import android.app.Application; -import android.content.Context; -import android.content.SharedPreferences; -import android.os.Handler; -import android.os.Looper; -import com.didiglobal.booster.instrument.ShadowExecutors; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.WeakHashMap; -import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; - -/** - * @author neighbWang - */ -public final class BoosterSharedPreferences implements SharedPreferences { - private static final ExecutorService SYNC_EXECUTOR = Executors.newCachedThreadPool(); - private static final Map sSharedPreferencesMap = new ConcurrentHashMap<>(); - private static final Object SENTINEL = new Object(); - - private final Map mListeners = Collections.synchronizedMap(new WeakHashMap<>()); - private final Object mLock = new Object(); - private final Object mLoadLock = new Object(); - private final ExecutorService mWriteExecutor; - private final SharedPreferencesManager mManager; - - private volatile boolean mLoaded = false; - private Map mKeyValueMap = new ConcurrentHashMap<>(); - - private BoosterSharedPreferences(final Context context, final String name) { - mWriteExecutor = ShadowExecutors.newOptimizedSingleThreadExecutor(name); - mManager = new SharedPreferencesManager(context, name); - startLoadFromDisk(); - } - - private void startLoadFromDisk() { - synchronized (mLoadLock) { - mLoaded = false; - } - SYNC_EXECUTOR.submit(new LoadThread()); - } - - public static SharedPreferences getSharedPreferences(final Context context, final String name) { - if (context == null) { - throw new IllegalArgumentException("Context can not be null!"); - } - if (!sSharedPreferencesMap.containsKey(name)) { - sSharedPreferencesMap.put(name, new BoosterSharedPreferences(context, name)); - } - return sSharedPreferencesMap.get(name); - } - - @Override - public Map getAll() { - awaitLoadedFromDisk(); - return new HashMap<>(mKeyValueMap); - } - - @Override - public String getString(final String key, final String defaultValue) { - awaitLoadedFromDisk(); - final Object v = mKeyValueMap.get(key); - return v != null ? (String) v : defaultValue; - } - - private void awaitLoadedFromDisk() { - synchronized (mLoadLock) { - while (!mLoaded) { - try { - mLoadLock.wait(); - } catch (InterruptedException ignored) { - } - } - } - } - - @Override - @SuppressWarnings("unchecked") - public Set getStringSet(final String key, final Set defValues) { - awaitLoadedFromDisk(); - final Object v = mKeyValueMap.get(key); - return v != null ? (Set) v : defValues; - } - - @Override - public int getInt(final String key, final int defValue) { - awaitLoadedFromDisk(); - final Object v = mKeyValueMap.get(key); - return v != null ? (Integer) v : defValue; - } - - @Override - public long getLong(final String key, final long defValue) { - awaitLoadedFromDisk(); - final Object v = mKeyValueMap.get(key); - return v != null ? (Long) v : defValue; - } - - @Override - public float getFloat(final String key, final float defValue) { - awaitLoadedFromDisk(); - final Object v = mKeyValueMap.get(key); - return v != null ? (Float) v : defValue; - } - - @Override - public boolean getBoolean(final String key, final boolean defValue) { - awaitLoadedFromDisk(); - final Object v = mKeyValueMap.get(key); - return v != null ? (Boolean) v : defValue; - } - - @Override - public boolean contains(final String key) { - awaitLoadedFromDisk(); - return mKeyValueMap.containsKey(key); - } - - @Override - public Editor edit() { - return new BoosterEditor(); - } - - @Override - public void registerOnSharedPreferenceChangeListener(final OnSharedPreferenceChangeListener onSharedPreferenceChangeListener) { - if (onSharedPreferenceChangeListener != null) { - this.mListeners.put(onSharedPreferenceChangeListener, null); - } - } - - @Override - public void unregisterOnSharedPreferenceChangeListener(final OnSharedPreferenceChangeListener onSharedPreferenceChangeListener) { - if (onSharedPreferenceChangeListener != null) { - this.mListeners.remove(onSharedPreferenceChangeListener); - } - } - - private void loadFromXml() { - synchronized (mLock) { - final Map loadedData = mManager.read(); - this.mKeyValueMap.clear(); - if (loadedData != null) { - for (final Map.Entry entry : loadedData.entrySet()) { - final String key = entry.getKey(); - final Object value = entry.getValue(); - if (key != null && value != null) { - mKeyValueMap.put(key, value); - } - } - } - } - synchronized (mLoadLock) { - mLoaded = true; - mLoadLock.notifyAll(); - } - } - - private class BoosterEditor implements Editor { - - private final Map mModifies = new HashMap<>(); - private volatile boolean mClear = false; - - private BoosterEditor() { - } - - @Override - public Editor putString(final String key, final String value) { - return put(key, value); - } - - @Override - public Editor putStringSet(final String key, final Set values) { - return put(key, new HashSet<>(values)); - } - - @Override - public Editor putInt(final String key, final int value) { - return put(key, value); - } - - @Override - public Editor putLong(final String key, final long value) { - return put(key, value); - } - - @Override - public Editor putFloat(final String key, final float value) { - return put(key, value); - } - - @Override - public Editor putBoolean(final String key, final boolean value) { - return put(key, value); - } - - @Override - public Editor remove(final String key) { - return put(key, SENTINEL); - } - - private synchronized Editor put(final String key, final Object value) { - mModifies.put(key, value); - return this; - } - - @Override - public synchronized Editor clear() { - mClear = true; - return this; - } - - @Override - public boolean commit() { - sync(); - return true; - } - - @Override - public void apply() { - sync(); - } - - private synchronized void sync() { - final Map modifies = new HashMap<>(mModifies); - mModifies.clear(); - awaitLoadedFromDisk(); - final Map mapToWriteToDisk = new HashMap<>(mKeyValueMap); - if (mClear) { - mapToWriteToDisk.clear(); - mClear = false; - } - final boolean hasListeners = mListeners.size() > 0; - final List modifiedKeys = new ArrayList<>(); - for (final Map.Entry e : modifies.entrySet()) { - final String k = e.getKey(); - final Object v = e.getValue(); - if (v == SENTINEL || v == null) { - if (!mapToWriteToDisk.containsKey(k)) { - continue; - } - mapToWriteToDisk.remove(k); - } else { - if (mapToWriteToDisk.containsKey(k)) { - final Object existingValue = mapToWriteToDisk.get(k); - if (existingValue != null && existingValue.equals(v)) { - continue; - } - } - mapToWriteToDisk.put(k, v); - } - if (hasListeners) { - modifiedKeys.add(k); - } - } - mKeyValueMap.clear(); - mKeyValueMap.putAll(mapToWriteToDisk); - mWriteExecutor.execute(new SyncTask(hasListeners, modifiedKeys, mapToWriteToDisk)); - } - - private class SyncTask implements Runnable { - private final boolean mNeedNotifyListener; - private final List mModifiedKeyList; - private final Map mMap; - - SyncTask(boolean needNotifyListener, List modifiedKeys, Map map) { - this.mNeedNotifyListener = needNotifyListener; - this.mModifiedKeyList = modifiedKeys; - this.mMap = map; - } - - @Override - public void run() { - synchronized (mLock) { - if (mManager.write(mMap) && mNeedNotifyListener) { - notifyListeners(mModifiedKeyList); - } - } - } - - private void notifyListeners(final Collection keys) { - if (Looper.myLooper() == Looper.getMainLooper()) { - final OnSharedPreferenceChangeListener[] listeners = mListeners.keySet().toArray(new OnSharedPreferenceChangeListener[0]); - for (final OnSharedPreferenceChangeListener listener : listeners) { - for (String key : keys) { - listener.onSharedPreferenceChanged(BoosterSharedPreferences.this, key); - } - } - } else { - new Handler(Looper.getMainLooper()).post(new Runnable() { - @Override - public void run() { - notifyListeners(keys); - } - }); - } - - } - } - } - - private class LoadThread implements Runnable { - @Override - public void run() { - loadFromXml(); - } - } -} diff --git a/booster-android-instrument-shared-preferences/src/main/java/com/didiglobal/booster/instrument/sharedpreferences/SharedPreferencesManager.java b/booster-android-instrument-shared-preferences/src/main/java/com/didiglobal/booster/instrument/sharedpreferences/SharedPreferencesManager.java deleted file mode 100755 index ab70dfa89..000000000 --- a/booster-android-instrument-shared-preferences/src/main/java/com/didiglobal/booster/instrument/sharedpreferences/SharedPreferencesManager.java +++ /dev/null @@ -1,143 +0,0 @@ -package com.didiglobal.booster.instrument.sharedpreferences; - -import android.content.Context; -import android.util.Log; - -import com.didiglobal.booster.instrument.sharedpreferences.io.XmlUtils; - -import java.io.BufferedInputStream; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.FileOutputStream; -import java.io.IOException; -import java.util.Map; -import java.util.concurrent.locks.Lock; -import java.util.concurrent.locks.ReadWriteLock; -import java.util.concurrent.locks.ReentrantReadWriteLock; - -import static com.didiglobal.booster.instrument.sharedpreferences.io.IoUtils.close; - -/** - * @author neighbWang - */ -class SharedPreferencesManager { - - private static final String TAG = "SharedPreferenceManager"; - private static final int S_IRWXU = 00700; - private static final int S_IRWXG = 00070; - private static final int S_IRWXO = 00007; - - private final ReadWriteLock readWriteLock = new ReentrantReadWriteLock(); - private final File mSpFile; - private final File mTempFile; - - SharedPreferencesManager(Context context, String name) { - this.mSpFile = new File(getPreferencesDir(context), name + ".xml"); - this.mTempFile = new File(mSpFile.getPath() + ".tmp"); - } - - @SuppressWarnings("ResultOfMethodCallIgnored") - boolean write(final Map map) { - if (!mTempFile.exists()) { - try { - mTempFile.createNewFile(); - } catch (final IOException e) { - prepare(); - try { - mTempFile.createNewFile(); - } catch (IOException ex) { - Log.e(TAG, "Couldn't create tempfile" + mTempFile, ex); - } - return false; - } - } - FileOutputStream fos = null; - try { - fos = new FileOutputStream(mTempFile); - } catch (final FileNotFoundException e) { - Log.e(TAG, "Couldn't write SharedPreferences file " + mTempFile, e); - } - if (fos != null) { - final Lock lock = readWriteLock.writeLock(); - try { - lock.lock(); - XmlUtils.writeMapXml(map, fos); - sync(fos); - if (mSpFile.exists()) { - mSpFile.delete(); - } - return mTempFile.renameTo(mSpFile); - } catch (final Exception e) { - Log.e(TAG, "write message failed : " + e.getMessage()); - return false; - } finally { - lock.unlock(); - close(fos); - } - - } - return false; - } - - Map read() { - if (!mSpFile.exists()) { - return null; - } - prepare(); - if (mSpFile.canRead()) { - BufferedInputStream str = null; - final Lock lock = readWriteLock.readLock(); - try { - lock.lock(); - str = new BufferedInputStream(new FileInputStream(this.mSpFile), 16 * 1024); - return XmlUtils.readMapXml(str); - } catch (Exception e) { - return null; - } finally { - lock.unlock(); - close(str); - } - } - return null; - } - - private void prepare() { - File parent = mSpFile.getParentFile(); - if (!parent.exists()) { - parent.mkdirs(); - } - if (parent.exists() && (!parent.canRead() || !parent.canWrite())) { - setPermissions(parent.getPath()); - } - } - - private static void setPermissions(String path) { - try { - Runtime.getRuntime().exec("chmod " + Integer.toOctalString(S_IRWXU | S_IRWXG | S_IRWXO) + " " + path); - } catch (Exception e) { - Log.w(TAG, e.getMessage()); - } - } - - private static void sync(FileOutputStream stream) { - try { - if (stream != null) { - stream.getFD().sync(); - } - } catch (IOException ignored) { - } - } - - private static File getPreferencesDir(Context context) { - final File files = context.getFilesDir(); - final File data = null != files ? files.getParentFile() : getDataDirFile(context); - return new File(data, "shared_prefs"); - } - - private static File getDataDirFile(Context context) { - final String dataDir = context.getApplicationInfo().dataDir; - return new File(null != dataDir ? dataDir : "/data/data/" + context.getPackageName()); - } - -} diff --git a/booster-android-instrument-shared-preferences/src/main/java/com/didiglobal/booster/instrument/sharedpreferences/io/BoosterXmlSerializer.java b/booster-android-instrument-shared-preferences/src/main/java/com/didiglobal/booster/instrument/sharedpreferences/io/BoosterXmlSerializer.java deleted file mode 100755 index 21e2f2e3b..000000000 --- a/booster-android-instrument-shared-preferences/src/main/java/com/didiglobal/booster/instrument/sharedpreferences/io/BoosterXmlSerializer.java +++ /dev/null @@ -1,335 +0,0 @@ -package com.didiglobal.booster.instrument.sharedpreferences.io; - - -import org.xmlpull.v1.XmlSerializer; - -import java.io.IOException; -import java.io.OutputStream; -import java.io.UnsupportedEncodingException; -import java.io.Writer; -import java.nio.ByteBuffer; -import java.nio.CharBuffer; -import java.nio.charset.Charset; -import java.nio.charset.CharsetEncoder; -import java.nio.charset.CoderResult; -import java.nio.charset.IllegalCharsetNameException; -import java.nio.charset.UnsupportedCharsetException; - -/** - * @author neighbWang - */ -class BoosterXmlSerializer implements XmlSerializer { - - private static final String[] ESCAPE_TABLE = new String[]{ - null, null, null, null, null, null, null, null, // 0-7 - null, null, null, null, null, null, null, null, // 8-15 - null, null, null, null, null, null, null, null, // 16-23 - null, null, null, null, null, null, null, null, // 24-31 - null, null, """, null, null, null, "&", null, // 32-39 - null, null, null, null, null, null, null, null, // 40-47 - null, null, null, null, null, null, null, null, // 48-55 - null, null, null, null, "<", null, ">", null, // 56-63 - }; - - private static final int BUFFER_LEN = 8192; - private final char[] mText = new char[BUFFER_LEN]; - private int mPos; - private Writer mWriter; - private OutputStream mOutputStream; - private CharsetEncoder mCharset; - private ByteBuffer mBytes = ByteBuffer.allocate(BUFFER_LEN); - private boolean mInTag; - - @Override - public XmlSerializer attribute(final String namespace, final String name, final String value) throws IOException, IllegalArgumentException, IllegalStateException { - append(' '); - if (namespace != null) { - append(namespace); - append(':'); - } - append(name); - append("=\""); - escapeAndAppendString(value); - append('"'); - return this; - } - - @Override - public void cdsect(final String text) throws IllegalArgumentException, IllegalStateException { - throw new UnsupportedOperationException(); - } - - @Override - public void comment(final String text) throws IllegalArgumentException, IllegalStateException { - throw new UnsupportedOperationException(); - } - - @Override - public void docdecl(final String text) throws IllegalArgumentException, IllegalStateException { - throw new UnsupportedOperationException(); - } - - @Override - public void endDocument() throws IOException, IllegalArgumentException, IllegalStateException { - flush(); - } - - @Override - public XmlSerializer endTag(final String namespace, final String name) throws IOException, IllegalArgumentException, IllegalStateException { - if (mInTag) { - append(" />\n"); - } else { - append("\n"); - } - mInTag = false; - return this; - } - - @Override - public void entityRef(final String text) throws IllegalArgumentException, IllegalStateException { - throw new UnsupportedOperationException(); - } - - private void flushBytes() throws IOException { - int position; - if ((position = mBytes.position()) > 0) { - mBytes.flip(); - mOutputStream.write(mBytes.array(), 0, position); - mBytes.clear(); - } - } - - @Override - public void flush() throws IOException { - if (mPos > 0) { - if (mOutputStream != null) { - final CharBuffer charBuffer = CharBuffer.wrap(mText, 0, mPos); - CoderResult result = mCharset.encode(charBuffer, mBytes, true); - while (true) { - if (result.isError()) { - throw new IOException(result.toString()); - } else if (result.isOverflow()) { - flushBytes(); - result = mCharset.encode(charBuffer, mBytes, true); - continue; - } - break; - } - flushBytes(); - mOutputStream.flush(); - } else { - mWriter.write(mText, 0, mPos); - mWriter.flush(); - } - mPos = 0; - } - } - - @Override - public int getDepth() { - throw new UnsupportedOperationException(); - } - - @Override - public boolean getFeature(String name) { - throw new UnsupportedOperationException(); - } - - @Override - public String getName() { - throw new UnsupportedOperationException(); - } - - @Override - public String getNamespace() { - throw new UnsupportedOperationException(); - } - - @Override - public String getPrefix(final String namespace, boolean generatePrefix) throws IllegalArgumentException { - throw new UnsupportedOperationException(); - } - - @Override - public Object getProperty(final String name) { - throw new UnsupportedOperationException(); - } - - @Override - public void ignorableWhitespace(final String text) throws IllegalArgumentException, IllegalStateException { - throw new UnsupportedOperationException(); - } - - @Override - public void processingInstruction(final String text) throws IllegalArgumentException, IllegalStateException { - throw new UnsupportedOperationException(); - } - - @Override - public void setFeature(final String name, final boolean state) throws IllegalArgumentException, IllegalStateException { - if (name.equals("http://xmlpull.org/v1/doc/features.html#indent-output")) { - return; - } - throw new UnsupportedOperationException(); - } - - @Override - public void setOutput(final OutputStream os, final String encoding) throws IOException, IllegalArgumentException, IllegalStateException { - if (os == null) - throw new IllegalArgumentException(); - try { - mCharset = Charset.forName(encoding).newEncoder(); - } catch (IllegalCharsetNameException | UnsupportedCharsetException e) { - throw (UnsupportedEncodingException) (new UnsupportedEncodingException(encoding).initCause(e)); - } - mOutputStream = os; - } - - @Override - public void setOutput(final Writer writer) throws IllegalArgumentException, IllegalStateException { - mWriter = writer; - } - - @Override - public void setPrefix(final String prefix, final String namespace) throws IllegalArgumentException, IllegalStateException { - throw new UnsupportedOperationException(); - } - - @Override - public void setProperty(final String name, final Object value) throws IllegalArgumentException, IllegalStateException { - throw new UnsupportedOperationException(); - } - - @Override - public void startDocument(final String encoding, final Boolean standalone) throws IOException, IllegalArgumentException, IllegalStateException { - append("\n"); - } - - @Override - public XmlSerializer startTag(final String namespace, final String name) throws IOException, IllegalArgumentException, IllegalStateException { - if (mInTag) { - append(">\n"); - } - append('<'); - if (namespace != null) { - append(namespace); - append(':'); - } - append(name); - mInTag = true; - return this; - } - - @Override - public XmlSerializer text(final char[] buf, final int start, final int len) throws IOException, IllegalArgumentException, IllegalStateException { - if (mInTag) { - append(">"); - mInTag = false; - } - escapeAndAppendString(buf, start, len); - return this; - } - - @Override - public XmlSerializer text(final String text) throws IOException, IllegalArgumentException, IllegalStateException { - if (mInTag) { - append(">"); - mInTag = false; - } - escapeAndAppendString(text); - return this; - } - - private void append(final char c) throws IOException { - int pos = mPos; - if (pos >= (BUFFER_LEN - 1)) { - flush(); - pos = mPos; - } - mText[pos] = c; - mPos = pos + 1; - } - - private void append(final String str, int i, final int length) throws IOException { - if (length > BUFFER_LEN) { - final int end = i + length; - while (i < end) { - int next = i + BUFFER_LEN; - append(str, i, next < end ? BUFFER_LEN : (end - i)); - i = next; - } - return; - } - int pos = mPos; - if ((pos + length) > BUFFER_LEN) { - flush(); - pos = mPos; - } - str.getChars(i, i + length, mText, pos); - mPos = pos + length; - } - - private void append(final char[] buf, int i, final int length) throws IOException { - if (length > BUFFER_LEN) { - final int end = i + length; - while (i < end) { - int next = i + BUFFER_LEN; - append(buf, i, next < end ? BUFFER_LEN : (end - i)); - i = next; - } - return; - } - int pos = mPos; - if ((pos + length) > BUFFER_LEN) { - flush(); - pos = mPos; - } - System.arraycopy(buf, i, mText, pos, length); - mPos = pos + length; - } - - private void append(final String str) throws IOException { - append(str, 0, str.length()); - } - - private void escapeAndAppendString(final String string) throws IOException { - final int N = string.length(); - final char NE = (char) ESCAPE_TABLE.length; - int lastPos = 0; - int pos; - for (pos = 0; pos < N; pos++) { - char c = string.charAt(pos); - if (c >= NE) continue; - final String escape = ESCAPE_TABLE[c]; - if (escape == null) continue; - if (lastPos < pos) append(string, lastPos, pos - lastPos); - lastPos = pos + 1; - append(escape); - } - if (lastPos < pos) append(string, lastPos, pos - lastPos); - } - - private void escapeAndAppendString(final char[] buf, final int start, final int len) throws IOException { - final char NE = (char) ESCAPE_TABLE.length; - int end = start + len; - int lastPos = start; - int pos; - for (pos = start; pos < end; pos++) { - char c = buf[pos]; - if (c >= NE) continue; - String escape = ESCAPE_TABLE[c]; - if (escape == null) continue; - if (lastPos < pos) append(buf, lastPos, pos - lastPos); - lastPos = pos + 1; - append(escape); - } - if (lastPos < pos) append(buf, lastPos, pos - lastPos); - } - -} \ No newline at end of file diff --git a/booster-android-instrument-shared-preferences/src/main/java/com/didiglobal/booster/instrument/sharedpreferences/io/IoUtils.java b/booster-android-instrument-shared-preferences/src/main/java/com/didiglobal/booster/instrument/sharedpreferences/io/IoUtils.java deleted file mode 100644 index 3566336c2..000000000 --- a/booster-android-instrument-shared-preferences/src/main/java/com/didiglobal/booster/instrument/sharedpreferences/io/IoUtils.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.didiglobal.booster.instrument.sharedpreferences.io; - -import java.io.Closeable; -import java.io.IOException; - -/** - * @author neighbWang - */ -public final class IoUtils { - - private IoUtils() { - } - - public static void close(Closeable closeable) { - if (closeable != null) { - try { - closeable.close(); - } catch (IOException ignored) { - } - } - } -} diff --git a/booster-android-instrument-shared-preferences/src/main/java/com/didiglobal/booster/instrument/sharedpreferences/io/XmlUtils.java b/booster-android-instrument-shared-preferences/src/main/java/com/didiglobal/booster/instrument/sharedpreferences/io/XmlUtils.java deleted file mode 100755 index 79a10a357..000000000 --- a/booster-android-instrument-shared-preferences/src/main/java/com/didiglobal/booster/instrument/sharedpreferences/io/XmlUtils.java +++ /dev/null @@ -1,389 +0,0 @@ -package com.didiglobal.booster.instrument.sharedpreferences.io; - -import android.util.Xml; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; -import org.xmlpull.v1.XmlSerializer; - -import java.io.InputStream; -import java.io.OutputStream; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Set; - -/** - * @author neighbWang - */ -public final class XmlUtils { - - public static void writeMapXml(final Map val, final OutputStream out) throws XmlPullParserException, java.io.IOException { - final XmlSerializer serializer = new BoosterXmlSerializer(); - serializer.setOutput(out, "utf-8"); - serializer.startDocument(null, true); - serializer.setFeature("http://xmlpull.org/v1/doc/features.html#indent-output", true); - writeMapXml(val, null, serializer); - serializer.endDocument(); - } - - private static void writeMapXml(final Map val, final String name, final XmlSerializer out) throws XmlPullParserException, java.io.IOException { - if (val == null) { - out.startTag(null, "null"); - out.endTag(null, "null"); - return; - } - final Set s = val.entrySet(); - final Iterator i = s.iterator(); - out.startTag(null, "map"); - if (name != null) { - out.attribute(null, "name", name); - } - while (i.hasNext()) { - final Map.Entry e = (Map.Entry) i.next(); - writeValueXml(e.getValue(), (String) e.getKey(), out); - } - out.endTag(null, "map"); - } - - private static void writeListXml(final List val, final String name, final XmlSerializer out) throws XmlPullParserException, java.io.IOException { - if (val == null) { - out.startTag(null, "null"); - out.endTag(null, "null"); - return; - } - out.startTag(null, "list"); - if (name != null) { - out.attribute(null, "name", name); - } - final int N = val.size(); - int i = 0; - while (i < N) { - writeValueXml(val.get(i), null, out); - i++; - } - out.endTag(null, "list"); - } - - private static void writeSetXml(Set val, String name, XmlSerializer out) throws XmlPullParserException, java.io.IOException { - if (val == null) { - out.startTag(null, "null"); - out.endTag(null, "null"); - return; - } - out.startTag(null, "set"); - if (name != null) { - out.attribute(null, "name", name); - } - for (Object v : val) { - writeValueXml(v, null, out); - } - out.endTag(null, "set"); - } - - private static void writeByteArrayXml(final byte[] val, final String name, final XmlSerializer out) throws java.io.IOException { - if (val == null) { - out.startTag(null, "null"); - out.endTag(null, "null"); - return; - } - out.startTag(null, "byte-array"); - if (name != null) { - out.attribute(null, "name", name); - } - out.attribute(null, "num", Integer.toString(val.length)); - final StringBuilder sb = new StringBuilder(val.length * 2); - for (int b : val) { - int h = b >> 4; - sb.append(h >= 10 ? ('a' + h - 10) : ('0' + h)); - h = b & 0xff; - sb.append(h >= 10 ? ('a' + h - 10) : ('0' + h)); - } - out.text(sb.toString()); - out.endTag(null, "byte-array"); - } - - private static void writeIntArrayXml(final int[] val, final String name, final XmlSerializer out) throws java.io.IOException { - if (val == null) { - out.startTag(null, "null"); - out.endTag(null, "null"); - return; - } - out.startTag(null, "int-array"); - if (name != null) { - out.attribute(null, "name", name); - } - out.attribute(null, "num", Integer.toString(val.length)); - for (int value : val) { - out.startTag(null, "item"); - out.attribute(null, "value", Integer.toString(value)); - out.endTag(null, "item"); - } - out.endTag(null, "int-array"); - } - - private static void writeValueXml(final Object v, final String name, final XmlSerializer out) throws XmlPullParserException, java.io.IOException { - String typeStr; - if (v == null) { - out.startTag(null, "null"); - if (name != null) { - out.attribute(null, "name", name); - } - out.endTag(null, "null"); - return; - } else if (v instanceof String) { - out.startTag(null, "string"); - if (name != null) { - out.attribute(null, "name", name); - } - out.text(v.toString()); - out.endTag(null, "string"); - return; - } else if (v instanceof Integer) { - typeStr = "int"; - } else if (v instanceof Long) { - typeStr = "long"; - } else if (v instanceof Float) { - typeStr = "float"; - } else if (v instanceof Double) { - typeStr = "double"; - } else if (v instanceof Boolean) { - typeStr = "boolean"; - } else if (v instanceof byte[]) { - writeByteArrayXml((byte[]) v, name, out); - return; - } else if (v instanceof int[]) { - writeIntArrayXml((int[]) v, name, out); - return; - } else if (v instanceof Map) { - writeMapXml((Map) v, name, out); - return; - } else if (v instanceof List) { - writeListXml((List) v, name, out); - return; - } else if (v instanceof Set) { - writeSetXml((Set) v, name, out); - return; - } else if (v instanceof CharSequence) { - out.startTag(null, "string"); - if (name != null) { - out.attribute(null, "name", name); - } - out.text(v.toString()); - out.endTag(null, "string"); - return; - } else { - throw new RuntimeException("writeValueXml: unable to write value " + v); - } - out.startTag(null, typeStr); - if (name != null) { - out.attribute(null, "name", name); - } - out.attribute(null, "value", v.toString()); - out.endTag(null, typeStr); - } - - @SuppressWarnings("unchecked") - public static HashMap readMapXml(final InputStream in) throws XmlPullParserException, java.io.IOException { - final XmlPullParser parser = Xml.newPullParser(); - parser.setInput(in, null); - return (HashMap) readValueXml(parser, new String[1]); - } - - private static Map readThisMapXml(XmlPullParser parser, String[] name) throws XmlPullParserException, java.io.IOException { - final Map map = new HashMap<>(); - int eventType = parser.getEventType(); - do { - if (eventType == parser.START_TAG) { - Object val = readThisValueXml(parser, name); - if (name[0] != null) { - map.put(name[0], val); - } else { - throw new XmlPullParserException("Map value without name attribute: " + parser.getName()); - } - } else if (eventType == parser.END_TAG) { - if ("map".equals(parser.getName())) { - return map; - } - throw new XmlPullParserException("Expected map end tag at: " + parser.getName()); - } - eventType = parser.next(); - } while (eventType != parser.END_DOCUMENT); - throw new XmlPullParserException("Document ended before map end tag"); - } - - private static List readThisListXml(final XmlPullParser parser, final String[] name) - throws XmlPullParserException, java.io.IOException { - final List list = new ArrayList<>(); - int eventType = parser.getEventType(); - do { - if (eventType == parser.START_TAG) { - Object val = readThisValueXml(parser, name); - list.add(val); - } else if (eventType == parser.END_TAG) { - if (parser.getName().equals("list")) { - return list; - } - throw new XmlPullParserException("Expected list end tag at: " + parser.getName()); - } - eventType = parser.next(); - } while (eventType != parser.END_DOCUMENT); - throw new XmlPullParserException("Document ended before list end tag"); - } - - private static Set readThisSetXml(XmlPullParser parser, String[] name) throws XmlPullParserException, java.io.IOException { - final Set set = new HashSet<>(); - int eventType = parser.getEventType(); - do { - if (eventType == parser.START_TAG) { - Object val = readThisValueXml(parser, name); - set.add(val); - } else if (eventType == parser.END_TAG) { - if (parser.getName().equals("set")) { - return set; - } - throw new XmlPullParserException("Expected set end tag at: " + parser.getName()); - } - eventType = parser.next(); - } while (eventType != parser.END_DOCUMENT); - - throw new XmlPullParserException("Document ended before set end tag"); - } - - private static int[] readThisIntArrayXml(final XmlPullParser parser) throws XmlPullParserException, java.io.IOException { - int num; - try { - num = Integer.parseInt(parser.getAttributeValue(null, "num")); - } catch (NullPointerException e) { - throw new XmlPullParserException("Need num attribute in byte-array"); - } catch (NumberFormatException e) { - throw new XmlPullParserException("Not a number in num attribute in byte-array"); - } - final int[] array = new int[num]; - int i = 0; - int eventType = parser.getEventType(); - do { - if (eventType == parser.START_TAG) { - if (parser.getName().equals("item")) { - try { - array[i] = Integer.parseInt(parser.getAttributeValue(null, "value")); - } catch (NullPointerException e) { - throw new XmlPullParserException("Need value attribute in item"); - } catch (NumberFormatException e) { - throw new XmlPullParserException("Not a number in value attribute in item"); - } - } else { - throw new XmlPullParserException("Expected item tag at: " + parser.getName()); - } - } else if (eventType == parser.END_TAG) { - if ("int-array".equals(parser.getName())) { - return array; - } else if (parser.getName().equals("item")) { - i++; - } else { - throw new XmlPullParserException("Expected `int-array` end tag at: " + parser.getName()); - } - } - eventType = parser.next(); - } while (eventType != parser.END_DOCUMENT); - throw new XmlPullParserException("Document ended before `int-array` end tag"); - } - - private static Object readValueXml(XmlPullParser parser, String[] name) - throws XmlPullParserException, java.io.IOException { - int eventType = parser.getEventType(); - do { - if (eventType == parser.START_TAG) { - return readThisValueXml(parser, name); - } else if (eventType == parser.END_TAG) { - throw new XmlPullParserException("Unexpected end tag at: " + parser.getName()); - } else if (eventType == parser.TEXT) { - throw new XmlPullParserException("Unexpected text: " + parser.getText()); - } - eventType = parser.next(); - } while (eventType != parser.END_DOCUMENT); - throw new XmlPullParserException("Unexpected end of document"); - } - - private static Object readThisValueXml(final XmlPullParser parser, final String[] name) throws XmlPullParserException, java.io.IOException { - final String valueName = parser.getAttributeValue(null, "name"); - final String tagName = parser.getName(); - Object res; - switch (tagName) { - case "null": - res = null; - break; - case "string": - final StringBuilder value = new StringBuilder(); - int eventType; - while ((eventType = parser.next()) != parser.END_DOCUMENT) { - if (eventType == parser.END_TAG) { - if (parser.getName().equals("string")) { - name[0] = valueName; - return value.toString(); - } - throw new XmlPullParserException("Unexpected end tag in : " + parser.getName()); - } else if (eventType == parser.TEXT) { - value.append(parser.getText()); - } else if (eventType == parser.START_TAG) { - throw new XmlPullParserException("Unexpected start tag in : " + parser.getName()); - } - } - throw new XmlPullParserException("Unexpected end of document in "); - case "int": - res = Integer.parseInt(parser.getAttributeValue(null, "value")); - break; - case "long": - res = Long.valueOf(parser.getAttributeValue(null, "value")); - break; - case "float": - res = new Float(parser.getAttributeValue(null, "value")); - break; - case "double": - res = new Double(parser.getAttributeValue(null, "value")); - break; - case "boolean": - res = Boolean.valueOf(parser.getAttributeValue(null, "value")); - break; - case "int-array": - parser.next(); - res = readThisIntArrayXml(parser); - name[0] = valueName; - return res; - case "map": - parser.next(); - res = readThisMapXml(parser, name); - name[0] = valueName; - return res; - case "list": - parser.next(); - res = readThisListXml(parser, name); - name[0] = valueName; - return res; - case "set": - parser.next(); - res = readThisSetXml(parser, name); - name[0] = valueName; - return res; - default: - throw new XmlPullParserException("Unknown tag: " + tagName); - } - int eventType; - while ((eventType = parser.next()) != parser.END_DOCUMENT) { - if (eventType == parser.END_TAG) { - if (parser.getName().equals(tagName)) { - name[0] = valueName; - return res; - } - throw new XmlPullParserException("Unexpected end tag in <" + tagName + ">: " + parser.getName()); - } else if (eventType == parser.TEXT) { - throw new XmlPullParserException("Unexpected text in <" + tagName + ">: " + parser.getName()); - } else if (eventType == parser.START_TAG) { - throw new XmlPullParserException("Unexpected start tag in <" + tagName + ">: " + parser.getName()); - } - } - throw new XmlPullParserException("Unexpected end of document in <" + tagName + ">"); - } -} \ No newline at end of file diff --git a/booster-android-instrument-webview/build.gradle b/booster-android-instrument-webview/build.gradle deleted file mode 100644 index 30c2ad740..000000000 --- a/booster-android-instrument-webview/build.gradle +++ /dev/null @@ -1,7 +0,0 @@ -sourceCompatibility = JavaVersion.VERSION_1_8 -targetCompatibility = JavaVersion.VERSION_1_8 - -dependencies { - compileOnly project(':booster-android-api') - implementation project(':booster-android-instrument') -} \ No newline at end of file diff --git a/booster-android-instrument-webview/src/main/java/com/didiglobal/booster/instrument/ShadowWebView.java b/booster-android-instrument-webview/src/main/java/com/didiglobal/booster/instrument/ShadowWebView.java deleted file mode 100644 index 29bbd4fa7..000000000 --- a/booster-android-instrument-webview/src/main/java/com/didiglobal/booster/instrument/ShadowWebView.java +++ /dev/null @@ -1,58 +0,0 @@ -package com.didiglobal.booster.instrument; - -import android.app.Application; -import android.content.Context; -import android.os.Build; -import android.os.Handler; -import android.os.Looper; -import android.os.MessageQueue; -import android.os.SystemClock; -import android.util.Log; -import android.webkit.WebView; - -import static com.didiglobal.booster.instrument.Constants.TAG; -import static com.didiglobal.booster.instrument.Reflection.invokeMethod; -import static com.didiglobal.booster.instrument.Reflection.invokeStaticMethod; - -/** - * @author neighbWang - */ -public class ShadowWebView { - - public static void preloadWebView(final Application app) { - new Handler(Looper.getMainLooper()).post(new Runnable() { - @Override - public void run() { - try { - Looper.myQueue().addIdleHandler(new MessageQueue.IdleHandler() { - @Override - public boolean queueIdle() { - startChromiumEngine(app); - return false; - } - }); - } catch (final Throwable t) { - Log.e(TAG, "Oops!", t); - } - } - }); - } - - private static void startChromiumEngine(final Context context) { - try { - final long t0 = SystemClock.uptimeMillis(); - final Object provider = invokeStaticMethod(Class.forName("android.webkit.WebViewFactory"), "getProvider"); - invokeMethod(provider, "startYourEngines", new Class[]{boolean.class}, new Object[]{true}); - Log.i(TAG, "Start chromium engine complete: " + (SystemClock.uptimeMillis() - t0) + " ms"); - if (Build.VERSION.SDK_INT >= 28) { - String processName = Application.getProcessName(); - String packageName = context.getPackageName(); - if (!packageName.equals(processName)) { - WebView.setDataDirectorySuffix(processName); - } - } - } catch (final Throwable t) { - Log.e(TAG, "Start chromium engine error", t); - } - } -} \ No newline at end of file diff --git a/booster-api/build.gradle b/booster-api/build.gradle index cc1d3db16..fb5b7f264 100644 --- a/booster-api/build.gradle +++ b/booster-api/build.gradle @@ -7,6 +7,6 @@ dependencies { api project(':booster-transform-util') api gradleApi() api 'com.google.auto.service:auto-service:1.0' - compileOnly 'com.android.tools.build:gradle:4.0.0' - testCompileOnly 'com.android.tools.build:gradle:4.0.0' + compileOnly 'com.android.tools.build:gradle:8.0.0' + testCompileOnly 'com.android.tools.build:gradle:8.0.0' } diff --git a/booster-api/src/main/kotlin/com/didiglobal/booster/RelativeResourceUtils.kt b/booster-api/src/main/kotlin/com/didiglobal/booster/RelativeResourceUtils.kt new file mode 100644 index 000000000..b16aae0f3 --- /dev/null +++ b/booster-api/src/main/kotlin/com/didiglobal/booster/RelativeResourceUtils.kt @@ -0,0 +1,155 @@ +@file:JvmName("RelativeResourceUtils") + +package com.didiglobal.booster + +import java.io.File +import java.io.IOException +import java.nio.file.FileSystem +import java.nio.file.FileSystems +import kotlin.IllegalStateException + +private const val separator: String = ":/" + +/** + * Determines a resource file path relative to the source set containing the resource. + * + * The absolute path to the module source set is identified by the source set ordering of a module. + * Format of the returned String is `:`. + */ +fun getRelativeSourceSetPath(resourceFile: File, moduleSourceSets: Map) + : String { + val absoluteResFilePath = resourceFile.absolutePath + for ((identifier, absoluteSourceSetPath) in moduleSourceSets.entries) { + if (absoluteResFilePath.startsWith(absoluteSourceSetPath)) { + val invariantFilePath = resourceFile.absoluteFile.invariantSeparatorsPath + val resIndex = File(absoluteSourceSetPath).absoluteFile.invariantSeparatorsPath.length + val relativePathToSourceSet = invariantFilePath.substring(resIndex + 1) + return "$identifier$separator$relativePathToSourceSet" + } + } + + throw IllegalArgumentException( + "Unable to locate resourceFile ($absoluteResFilePath) in source-sets.") +} + +/** + * Converts a source set identified relative resource path to an absolute path. + * + * The source set identifier before the separator is replaced with the absolute source set + * path and then concatenated with the path after the separator. + */ +fun relativeResourcePathToAbsolutePath( + relativePath: String, + sourceSetPathMap: Map, + fileSystem: FileSystem = FileSystems.getDefault()): String { + return relativeResourcePathToAbsolutePath(sourceSetPathMap, fileSystem)(relativePath) +} + +fun relativeResourcePathToAbsolutePath( + sourceSetPathMap: Map, + fileSystem: FileSystem = FileSystems.getDefault() +): (String) -> String { + return { relativePath: String -> + if (sourceSetPathMap.none()) { + throw IllegalStateException( + """Unable to get absolute path from $relativePath + because no relative root paths are present.""" + ) + } + val separatorIndex = relativePath.indexOf(separator) + if (separatorIndex == -1) { + throw IllegalArgumentException( + """Source set identifier and relative path must be separated by a "$separator". + Relative path: $relativePath""" + ) + } + val sourceSetPrefix = relativePath.substring(0, separatorIndex) + val resourcePathFromSourceSet = + relativePath.substring(separatorIndex + separator.lastIndex, relativePath.length) + val systemRelativePath = if ("/" != fileSystem.separator) { + resourcePathFromSourceSet.replace("/", fileSystem.separator) + } else { + resourcePathFromSourceSet + } + val absolutePath = sourceSetPathMap[sourceSetPrefix] + ?: throw NoSuchElementException( + """Unable to get absolute path from $relativePath + because $sourceSetPrefix is not key in sourceSetPathMap.""" + ) + "$absolutePath$systemRelativePath" + } +} + +/** + * Parses identifier and file path into a map from a file + * in the format 'packageName.projectName-sortedOrderPosition absolutePath'. + */ +fun readFromSourceSetPathsFile(artifactFile: File): Map { + if (!artifactFile.exists() || !artifactFile.isFile) { + throw IOException("$artifactFile does not exist or is not a file.") + } + return artifactFile.bufferedReader().use { bufferedReader -> + bufferedReader.lineSequence().associate { + it.substringBefore(" ") to it.substringAfter(" ") + } + } +} + +/** + * Writes a file containing a mapping of resource source-set absolute paths to a unique identifier + * in the format of 'packageName.projectName-sortedOrderPosition absolutePath'. + */ +fun writeIdentifiedSourceSetsFile( + resourceSourceSets: List, + namespace: String, + projectPath: String, + output: File +) { + output.bufferedWriter().use { bw -> + getIdentifiedSourceSetMap(resourceSourceSets, namespace, projectPath).forEach { + bw.write("${it.key} ${it.value}\n") + } + } +} + +/** + * Using a list of files following the format produced by writeIdentifiedSourceSetsFile, + * contents of each file are added to a single table which maps the source set identifier + * to the absolute path of the source set. + */ +fun mergeIdentifiedSourceSetFiles(sourceSetFiles: Collection) : Map { + return mutableMapOf() + .also { identifiedSourceMap -> + sourceSetFiles + .map { readFromSourceSetPathsFile(it) } + .forEach { identifiedSourceMap.putAll(it) } + } +} + +fun getIdentifiedSourceSetMap( + resourceSourceSets: List, + namespace: String, + projectPath: String) : Map { + val projectName = projectPath.substringAfterLast(":") + var i = 0 + return resourceSourceSets + .asSequence() + .filterNotNull() + .distinctBy(File::invariantSeparatorsPath) + .sortedBy(File::invariantSeparatorsPath) + .associate { sourceSet -> + val sourceSetFolderName = sourceSet.parentFile.name + val appendProjectName = + if (namespace.endsWith(projectName)) "" else ".$projectName" + val appId = "$namespace$appendProjectName-$sourceSetFolderName-${i++}" + appId to sourceSet.absolutePath + } +} + +/** + * Verifies if a string is relative resource sourceset filepath. This is for cases where it is + * not possible to determine if relative resource filepaths are enabled by default. + */ +fun isRelativeSourceSetResource(filepath: String) : Boolean { + return filepath.contains(separator) +} diff --git a/booster-api/src/main/kotlin/com/didiglobal/booster/transform/VariantTransformHelper.kt b/booster-api/src/main/kotlin/com/didiglobal/booster/transform/VariantTransformHelper.kt index e20e4084b..c8cc553c2 100644 --- a/booster-api/src/main/kotlin/com/didiglobal/booster/transform/VariantTransformHelper.kt +++ b/booster-api/src/main/kotlin/com/didiglobal/booster/transform/VariantTransformHelper.kt @@ -1,31 +1,12 @@ package com.didiglobal.booster.transform import com.android.SdkConstants -import com.android.build.gradle.api.BaseVariant -import com.didiglobal.booster.gradle.aar -import com.didiglobal.booster.gradle.allArtifacts -import com.didiglobal.booster.gradle.allClasses -import com.didiglobal.booster.gradle.apk -import com.didiglobal.booster.gradle.mergedAssets -import com.didiglobal.booster.gradle.mergedManifests -import com.didiglobal.booster.gradle.mergedRes -import com.didiglobal.booster.gradle.platform -import com.didiglobal.booster.gradle.processedRes -import com.didiglobal.booster.gradle.project -import com.didiglobal.booster.gradle.symbolList -import com.didiglobal.booster.gradle.symbolListWithPackageName +import com.android.build.api.variant.Variant +import com.didiglobal.booster.gradle.* import com.didiglobal.booster.kotlinx.search -import com.didiglobal.booster.transform.util.TransformHelper import java.io.File -/** - * Represents transform helper associates with variant - * - * @author johnsonlee - */ -class VariantTransformHelper(variant: BaseVariant, input: File) : TransformHelper(input, variant.platform, variant.artifacts, variant.applicationId, variant.name) - -val BaseVariant.artifacts: ArtifactManager +val Variant.artifactManager: ArtifactManager get() = object : ArtifactManager { override fun get(type: String): Collection = when (type) { diff --git a/booster-gradle-plugin/build.gradle b/booster-gradle-plugin/build.gradle index 7ac985ecc..815794b2c 100644 --- a/booster-gradle-plugin/build.gradle +++ b/booster-gradle-plugin/build.gradle @@ -5,9 +5,8 @@ dependencies { api gradleApi() api project(':booster-annotations') api project(':booster-api') - api project(':booster-transform-util') - compileOnly 'com.android.tools.build:gradle:4.0.0' - testCompileOnly 'com.android.tools.build:gradle:4.0.0' + compileOnly 'com.android.tools.build:gradle:8.0.0' + testCompileOnly 'com.android.tools.build:gradle:8.0.0' } apply plugin: 'java-gradle-plugin' diff --git a/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/BoosterPlugin.kt b/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/BoosterPlugin.kt index d42b1c286..583073a77 100644 --- a/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/BoosterPlugin.kt +++ b/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/BoosterPlugin.kt @@ -1,9 +1,13 @@ package com.didiglobal.booster.gradle +import com.android.build.api.artifact.ScopedArtifact +import com.android.build.api.variant.AndroidComponentsExtension +import com.android.build.api.variant.ScopedArtifacts import com.android.build.gradle.AppExtension import com.android.build.gradle.BaseExtension import com.android.build.gradle.LibraryExtension import com.android.build.gradle.api.BaseVariant +import com.didiglobal.booster.kotlinx.capitalized import com.didiglobal.booster.task.spi.VariantProcessor import org.gradle.api.GradleException import org.gradle.api.Plugin @@ -18,23 +22,38 @@ class BoosterPlugin : Plugin { override fun apply(project: Project) { project.extensions.findByName("android") ?: throw GradleException("$project is not an Android project") + registerTransform(project) + setupTasks(project) + } - if (!GTE_V3_6) { - project.gradle.addListener(BoosterTransformTaskExecutionListener(project)) - } - + private fun setupTasks(project: Project) { val processors = loadVariantProcessors(project) + project.setup(processors) + if (project.state.executed) { - project.setup(processors) + project.legacySetup(processors) } else { project.afterEvaluate { - project.setup(processors) + project.legacySetup(processors) } } - project.getAndroid().registerTransform(BoosterTransform.newInstance(project)) } private fun Project.setup(processors: List) { + val androidComponents = project.extensions.getByType(AndroidComponentsExtension::class.java) + androidComponents.beforeVariants { variantBuilder -> + processors.forEach { processor -> + processor.beforeProcess(variantBuilder) + } + } + androidComponents.onVariants { variant -> + processors.forEach { processor -> + processor.process(variant) + } + } + } + + private fun Project.legacySetup(processors: List) { val android = project.getAndroid() when (android) { is AppExtension -> android.applicationVariants @@ -49,5 +68,26 @@ class BoosterPlugin : Plugin { } } + private fun registerTransform(project: Project) { + val androidComponents = project.extensions.getByType(AndroidComponentsExtension::class.java) + androidComponents.onVariants { variant -> + val transform = project.tasks.register( + "transform${variant.name.capitalized()}ClassesWithBooster", + BoosterTransformTask::class.java + ) { + it.transformers = loadTransformers(project.buildscript.classLoader) + it.variant = variant + it.applicationId = variant.namespace.get() + it.bootClasspath = androidComponents.sdkComponents.bootClasspath + } + variant.artifacts.forScope(ScopedArtifacts.Scope.ALL) + .use(transform).toTransform( + ScopedArtifact.CLASSES, + BoosterTransformTask::allJars, + BoosterTransformTask::allDirectories, + BoosterTransformTask::output + ) + } + } } diff --git a/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/BoosterTransform.kt b/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/BoosterTransform.kt deleted file mode 100644 index 172e61962..000000000 --- a/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/BoosterTransform.kt +++ /dev/null @@ -1,77 +0,0 @@ -package com.didiglobal.booster.gradle - -import com.android.build.api.transform.QualifiedContent -import com.android.build.api.transform.Transform -import com.android.build.api.transform.TransformInvocation -import com.android.build.gradle.internal.pipeline.TransformManager -import com.didiglobal.booster.gradle.internal.BoosterTransformV34 -import org.gradle.api.Project - -/** - * Represents the transform base - * - * @author johnsonlee - */ -open class BoosterTransform protected constructor( - internal val parameter: TransformParameter -) : Transform() { - - internal val verifyEnabled by lazy { - parameter.properties[OPT_TRANSFORM_VERIFY]?.toString()?.toBoolean() ?: false - } - - override fun getName() = parameter.name - - override fun isIncremental() = !verifyEnabled - - override fun isCacheable() = !verifyEnabled - - override fun getInputTypes(): MutableSet = TransformManager.CONTENT_CLASS - - override fun getScopes(): MutableSet = when { - parameter.transformers.isEmpty() -> mutableSetOf() - parameter.plugins.hasPlugin("com.android.library") -> SCOPE_PROJECT - parameter.plugins.hasPlugin("com.android.application") -> SCOPE_FULL_PROJECT - parameter.plugins.hasPlugin("com.android.dynamic-feature") -> SCOPE_FULL_WITH_FEATURES - else -> TODO("Not an Android project") - } - - override fun getReferencedScopes(): MutableSet = when { - parameter.transformers.isEmpty() -> when { - parameter.plugins.hasPlugin("com.android.library") -> SCOPE_PROJECT - parameter.plugins.hasPlugin("com.android.application") -> SCOPE_FULL_PROJECT - parameter.plugins.hasPlugin("com.android.dynamic-feature") -> SCOPE_FULL_WITH_FEATURES - else -> TODO("Not an Android project") - } - else -> super.getReferencedScopes() - } - - final override fun transform(invocation: TransformInvocation) { - BoosterTransformInvocation(invocation, this).apply { - if (isIncremental) { - doIncrementalTransform() - } else { - outputProvider?.deleteAll() - doFullTransform() - } - } - } - - companion object { - - fun newInstance(project: Project, name: String = "booster"): BoosterTransform { - val parameter = project.newTransformParameter(name) - return when { - GTE_V3_4 -> BoosterTransformV34(parameter) - else -> BoosterTransform(parameter) - } - } - - } - -} - -/** - * The option for transform outputs verifying, default is false - */ -private const val OPT_TRANSFORM_VERIFY = "booster.transform.verify" diff --git a/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/BoosterTransformInvocation.kt b/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/BoosterTransformInvocation.kt deleted file mode 100644 index 93e32c594..000000000 --- a/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/BoosterTransformInvocation.kt +++ /dev/null @@ -1,275 +0,0 @@ -package com.didiglobal.booster.gradle - -import com.android.build.api.transform.DirectoryInput -import com.android.build.api.transform.Format -import com.android.build.api.transform.JarInput -import com.android.build.api.transform.QualifiedContent -import com.android.build.api.transform.Status.NOTCHANGED -import com.android.build.api.transform.Status.REMOVED -import com.android.build.api.transform.TransformInvocation -import com.android.build.gradle.BaseExtension -import com.android.dex.DexFormat -import com.didiglobal.booster.gradle.util.dex -import com.didiglobal.booster.kotlinx.NCPU -import com.didiglobal.booster.kotlinx.file -import com.didiglobal.booster.kotlinx.green -import com.didiglobal.booster.kotlinx.red -import com.didiglobal.booster.transform.AbstractKlassPool -import com.didiglobal.booster.transform.ArtifactManager -import com.didiglobal.booster.transform.Collector -import com.didiglobal.booster.transform.TransformContext -import com.didiglobal.booster.transform.Transformer -import com.didiglobal.booster.transform.artifacts -import com.didiglobal.booster.transform.util.CompositeCollector -import com.didiglobal.booster.transform.util.collect -import com.didiglobal.booster.transform.util.transform -import org.apache.commons.codec.digest.DigestUtils.md5Hex -import java.io.File -import java.net.URI -import java.util.concurrent.Callable -import java.util.concurrent.CopyOnWriteArrayList -import java.util.concurrent.ExecutorService -import java.util.concurrent.Executors -import java.util.concurrent.Future -import java.util.concurrent.TimeUnit - -/** - * Represents a delegate of TransformInvocation - * - * @author johnsonlee - */ -internal class BoosterTransformInvocation( - private val delegate: TransformInvocation, - private val transform: BoosterTransform -) : TransformInvocation by delegate, TransformContext, ArtifactManager { - - private val outputs = CopyOnWriteArrayList() - - private val collectors = CopyOnWriteArrayList>() - - /* - * Preload transformers as List to fix NoSuchElementException caused by ServiceLoader in parallel mode - */ - private val transformers: List = transform.parameter.transformers.map { - try { - it.getConstructor(ClassLoader::class.java).newInstance(transform.parameter.buildscript.classLoader) - } catch (e1: Throwable) { - try { - it.getConstructor().newInstance() - } catch (e2: Throwable) { - throw e2.apply { - addSuppressed(e1) - } - } - } - } - - override val name: String = delegate.context.variantName - - override val projectDir: File = project.projectDir - - override val buildDir: File = project.buildDir - - override val temporaryDir: File = delegate.context.temporaryDir - - override val reportsDir: File = File(buildDir, "reports").also { it.mkdirs() } - - override val bootClasspath = delegate.bootClasspath - - override val compileClasspath = delegate.compileClasspath - - override val runtimeClasspath = delegate.runtimeClasspath - - override val artifacts = this - - override val dependencies: Collection by lazy { - ResolvedArtifactResults(variant).map { - it.id.displayName - } - } - - private val bootKlassPool by lazy { - object : AbstractKlassPool(project.getAndroid().bootClasspath) {} - } - - override val klassPool by lazy { - object : AbstractKlassPool(compileClasspath, bootKlassPool) {} - } - - override val applicationId = delegate.applicationId - - override val originalApplicationId = delegate.originalApplicationId - - override val isDebuggable = variant.buildType.isDebuggable - - override val isDataBindingEnabled = delegate.isDataBindingEnabled - - override fun hasProperty(name: String) = project.hasProperty(name) - - override fun getProperty(name: String, default: T): T = project.getProperty(name, default) - - override fun get(type: String) = variant.artifacts.get(type) - - override fun registerCollector(collector: Collector) { - this.collectors += collector - } - - override fun unregisterCollector(collector: Collector) { - this.collectors -= collector - } - - internal fun doFullTransform() = doTransform(this::transformFully) - - internal fun doIncrementalTransform() = doTransform(this::transformIncrementally) - - private fun lookAhead(executor: ExecutorService): Set { - return this.inputs.asSequence().map { - it.jarInputs + it.directoryInputs - }.flatten().map { input -> - executor.submit(Callable { - input.file.takeIf { file -> - file.collect(CompositeCollector(collectors)).isNotEmpty() - } - }) - }.mapNotNull { - it.get() - }.toSet() - } - - private fun onPreTransform() { - transformers.forEach { - it.onPreTransform(this) - } - } - - private fun onPostTransform() { - transformers.forEach { - it.onPostTransform(this) - } - } - - private fun doTransform(block: (ExecutorService, Set) -> Iterable>) { - this.outputs.clear() - this.collectors.clear() - - val executor = Executors.newFixedThreadPool(NCPU) - - this.onPreTransform() - - // Look ahead to determine which input need to be transformed even incremental build - val outOfDate = this.lookAhead(executor).onEach { - project.logger.info("✨ ${it.canonicalPath} OUT-OF-DATE ") - } - - try { - block(executor, outOfDate).forEach { - it.get() - } - } finally { - executor.shutdown() - executor.awaitTermination(1, TimeUnit.HOURS) - } - - this.onPostTransform() - - if (transform.verifyEnabled) { - this.doVerify() - } - } - - private fun transformFully(executor: ExecutorService, @Suppress("UNUSED_PARAMETER") outOfDate: Set) = this.inputs.map { - it.jarInputs + it.directoryInputs - }.flatten().map { input -> - executor.submit { - val format = if (input is DirectoryInput) Format.DIRECTORY else Format.JAR - outputProvider?.let { provider -> - input.transform(provider.getContentLocation(input.id, input.contentTypes, input.scopes, format)) - } - } - } - - private fun transformIncrementally(executor: ExecutorService, outOfDate: Set) = this.inputs.map { input -> - input.jarInputs.filter { - it.status != NOTCHANGED || outOfDate.contains(it.file) - }.map { jarInput -> - executor.submit { - doIncrementalTransform(jarInput) - } - } + input.directoryInputs.filter { - it.changedFiles.isNotEmpty() || outOfDate.contains(it.file) - }.map { dirInput -> - executor.submit { - doIncrementalTransform(dirInput, dirInput.file.toURI()) - } - } - }.flatten() - - @Suppress("NON_EXHAUSTIVE_WHEN") - private fun doIncrementalTransform(jarInput: JarInput) { - when (jarInput.status) { - REMOVED -> { - outputProvider?.getContentLocation(jarInput.id, jarInput.contentTypes, jarInput.scopes, Format.JAR)?.takeIf { - it.exists() - }?.delete() - } - else -> { - outputProvider?.let { provider -> - jarInput.transform(provider.getContentLocation(jarInput.id, jarInput.contentTypes, jarInput.scopes, Format.JAR)) - } - } - } - } - - @Suppress("NON_EXHAUSTIVE_WHEN") - private fun doIncrementalTransform(dirInput: DirectoryInput, base: URI) { - dirInput.changedFiles.forEach { (file, status) -> - when (status) { - REMOVED -> { - outputProvider?.let { provider -> - provider.getContentLocation(dirInput.id, dirInput.contentTypes, dirInput.scopes, Format.DIRECTORY).parentFile.listFiles()?.asSequence() - ?.filter { it.isDirectory } - ?.map { File(it, dirInput.file.toURI().relativize(file.toURI()).path) } - ?.filter { it.exists() } - ?.forEach { it.delete() } - } - file.delete() - } - else -> { - outputProvider?.let { provider -> - val root = provider.getContentLocation(dirInput.id, dirInput.contentTypes, dirInput.scopes, Format.DIRECTORY) - val output = File(root, base.relativize(file.toURI()).path) - file.transform(output) - } - } - } - } - } - - private fun doVerify() { - outputs.sortedBy(File::nameWithoutExtension).forEach { input -> - val output = temporaryDir.file(input.name) - val rc = input.dex(output, targetSdkVersion.apiLevel) - println("${if (rc != 0) red("✗") else green("✓")} $input") - output.deleteRecursively() - } - } - - private val QualifiedContent.id: String - get() = md5Hex(file.absolutePath) - - private fun QualifiedContent.transform(output: File) = this.file.transform(output) - - private fun File.transform(output: File) { - outputs += output - project.logger.info("Booster transforming $this => $output") - this.transform(output) { bytecode -> - bytecode.transform() - } - } - - private fun ByteArray.transform(): ByteArray { - return transformers.fold(this) { bytes, transformer -> - transformer.transform(this@BoosterTransformInvocation, bytes) - } - } -} diff --git a/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/BoosterTransformTask.kt b/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/BoosterTransformTask.kt new file mode 100644 index 000000000..9a432c4f9 --- /dev/null +++ b/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/BoosterTransformTask.kt @@ -0,0 +1,221 @@ +package com.didiglobal.booster.gradle + +import com.android.build.api.variant.Variant +import com.didiglobal.booster.kotlinx.NCPU +import com.didiglobal.booster.kotlinx.search +import com.didiglobal.booster.kotlinx.touch +import com.didiglobal.booster.transform.AbstractTransformContext +import com.didiglobal.booster.transform.Transformer +import com.didiglobal.booster.transform.artifactManager +import com.didiglobal.booster.transform.util.CompositeCollector +import com.didiglobal.booster.transform.util.collect +import com.google.common.collect.Sets +import org.apache.commons.compress.archivers.jar.JarArchiveEntry +import org.apache.commons.compress.archivers.jar.JarArchiveOutputStream +import org.apache.commons.compress.archivers.zip.ParallelScatterZipCreator +import org.apache.commons.compress.archivers.zip.ZipArchiveEntry +import org.apache.commons.compress.parallel.InputStreamSupplier +import org.gradle.api.DefaultTask +import org.gradle.api.file.Directory +import org.gradle.api.file.RegularFile +import org.gradle.api.file.RegularFileProperty +import org.gradle.api.provider.ListProperty +import org.gradle.api.provider.Provider +import org.gradle.api.tasks.Input +import org.gradle.api.tasks.InputFiles +import org.gradle.api.tasks.Internal +import org.gradle.api.tasks.OutputFile +import org.gradle.api.tasks.TaskAction +import java.io.File +import java.io.IOException +import java.util.concurrent.Executors +import java.util.concurrent.LinkedBlockingQueue +import java.util.concurrent.ThreadPoolExecutor +import java.util.concurrent.TimeUnit +import java.util.zip.ZipEntry +import java.util.zip.ZipInputStream + +abstract class BoosterTransformTask : DefaultTask() { + + @get:Input + abstract var applicationId: String + + @get:Internal + abstract var transformers: Collection + + @get:Internal + abstract var variant: Variant + + @get:Internal + abstract var bootClasspath: Provider> + + @get:InputFiles + abstract val allJars: ListProperty + + @get:InputFiles + abstract val allDirectories: ListProperty + + @get:OutputFile + abstract val output: RegularFileProperty + + private val entries = Sets.newConcurrentHashSet() + + @TaskAction + fun taskAction() { + val context = object : AbstractTransformContext( + applicationId, + variant.name, + bootClasspath.get().map(RegularFile::getAsFile), + compileClasspath, + compileClasspath + ) { + override val projectDir = project.projectDir + override val artifacts = variant.artifactManager + } + val executor = Executors.newFixedThreadPool(NCPU) + try { + transformers.map { + executor.submit { + it.onPreTransform(context) + } + }.forEach { + it.get() + } + + compileClasspath.map { input -> + executor.submit { + input.takeIf { + it.collect(CompositeCollector(context.collectors)).isNotEmpty() + } + } + }.forEach { + it.get() + } + JarArchiveOutputStream(output.get().asFile.touch().outputStream().buffered()).use { jos -> + val creator = ParallelScatterZipCreator( + ThreadPoolExecutor( + NCPU, + NCPU, + 0L, + TimeUnit.MILLISECONDS, + LinkedBlockingQueue(), + Executors.defaultThreadFactory() + ) { runnable, _ -> + runnable.run() + } + ) + + compileClasspath.map { + executor.submit { + it.transform("", creator) { bytecode -> + transformers.fold(bytecode) { bytes, transformer -> + transformer.transform(context, bytes) + } + } + } + }.forEach { + it.get() + } + creator.writeTo(jos) + } + + transformers.map { + executor.submit { + it.onPostTransform(context) + } + }.forEach { + it.get() + } + } finally { + executor.shutdown() + executor.awaitTermination(1L, TimeUnit.HOURS) + } + } + + private val compileClasspath: Collection + get() = (allJars.get() + allDirectories.get()).map { + it.asFile + } + + + /** + * Transform this file or directory to the output by the specified transformer + * + * @param transformer The byte data transformer + */ + fun File.transform( + prefix: String, + creator: ParallelScatterZipCreator, + transformer: (ByteArray) -> ByteArray = { it -> it } + ) { + when { + isDirectory -> { + this.toURI().let { base -> + this.search { + it.extension.lowercase() == "class" + }.parallelStream().forEach { + it.transform(creator, base.relativize(it.toURI()).path, transformer) + } + } + } + + isFile -> when (extension.lowercase()) { + "jar" -> ZipInputStream(this.inputStream()).use { + it.transform(creator, ::JarArchiveEntry, transformer) + } + + "class" -> transform(creator, "$prefix/$name".substring(1), transformer) + else -> println("Not transform file $path") + } + + else -> throw IOException("Unexpected file: ${this.canonicalPath}") + } + } + + fun File.transform(creator: ParallelScatterZipCreator, name: String, transformer: (ByteArray) -> ByteArray) { + if (entries.contains(name)) { + return + } + this.inputStream().use { + val inputStreamSupplier = { + transformer(readBytes()).inputStream() + } + val jarArchiveEntry = JarArchiveEntry(name).apply { + method = JarArchiveEntry.DEFLATED + } + creator.addArchiveEntry(jarArchiveEntry, inputStreamSupplier) + } + entries.add(name) + } + + fun ZipInputStream.transform( + creator: ParallelScatterZipCreator, + entryFactory: (ZipEntry) -> ZipArchiveEntry = ::ZipArchiveEntry, + transformer: (ByteArray) -> ByteArray + ) { + while (true) { + val next = nextEntry ?: break + val entry = next.takeIf(::isValidate) ?: continue + if (!entries.contains(entry.name)) { + entries.add(entry.name) + val zae = entryFactory(entry) + val data = readBytes() + val stream = InputStreamSupplier { + if (entry.isDirectory) { + data.inputStream() + } else { + transformer(data).inputStream() + } + } + creator.addArchiveEntry(zae, stream) + } + } + } + + + private fun isValidate(entry: ZipEntry): Boolean { + return (entry.isDirectory || entry.name.endsWith(".class")) && !entry.name.startsWith("META-INF/") + } +} + + diff --git a/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/BoosterTransformTaskExecutionListener.kt b/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/BoosterTransformTaskExecutionListener.kt deleted file mode 100644 index a8de0efda..000000000 --- a/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/BoosterTransformTaskExecutionListener.kt +++ /dev/null @@ -1,25 +0,0 @@ -package com.didiglobal.booster.gradle - -import com.android.build.gradle.internal.pipeline.TransformTask -import com.didiglobal.booster.kotlinx.call -import com.didiglobal.booster.kotlinx.get -import org.gradle.api.Project -import org.gradle.api.Task -import org.gradle.api.execution.TaskExecutionAdapter - -/** - * Only for AGP version lower than 3.6.0 - * - * @author neighbWang - */ -class BoosterTransformTaskExecutionListener(private val project: Project) : TaskExecutionAdapter() { - - override fun beforeExecute(task: Task) { - task.takeIf { - it.project == project && it is TransformTask && it.transform.scopes.isNotEmpty() - }?.run { - task["outputStream"]?.call("init") - } - } - -} \ No newline at end of file diff --git a/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/ServiceLoader.kt b/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/ServiceLoader.kt index 6f7a0e3e5..d108fefd1 100644 --- a/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/ServiceLoader.kt +++ b/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/ServiceLoader.kt @@ -73,6 +73,14 @@ internal fun loadVariantProcessors(project: Project): List { return newServiceLoader(project.buildscript.classLoader, Project::class.java).load(project) } +/** + * Load [VariantProcessor]s with the specified [variant] + */ +@Throws(ServiceConfigurationError::class) +internal fun loadTransformers(classLoader: ClassLoader): List { + return newServiceLoader(classLoader, ClassLoader::class.java).load(classLoader) +} + @Throws(ServiceConfigurationError::class) private fun parse(u: URL) = try { u.openStream().bufferedReader(StandardCharsets.UTF_8).readLines().filter { diff --git a/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/TransformParameter.kt b/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/TransformParameter.kt deleted file mode 100644 index 86a87f172..000000000 --- a/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/TransformParameter.kt +++ /dev/null @@ -1,19 +0,0 @@ -package com.didiglobal.booster.gradle - -import com.didiglobal.booster.transform.Transformer -import org.gradle.api.Project -import org.gradle.api.initialization.dsl.ScriptHandler -import org.gradle.api.plugins.PluginContainer -import java.io.Serializable - -data class TransformParameter( - val name: String, - val buildscript: ScriptHandler, - val plugins: PluginContainer, - val properties: Map, - val transformers: Set> -) : Serializable - -fun Project.newTransformParameter(name: String): TransformParameter { - return TransformParameter(name, buildscript, plugins, properties, lookupTransformers(buildscript.classLoader)) -} \ No newline at end of file diff --git a/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/internal/BoosterTransformV34.kt b/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/internal/BoosterTransformV34.kt deleted file mode 100644 index 68db710df..000000000 --- a/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/internal/BoosterTransformV34.kt +++ /dev/null @@ -1,23 +0,0 @@ -package com.didiglobal.booster.gradle.internal - -import com.android.build.api.variant.VariantInfo -import com.didiglobal.booster.gradle.BoosterTransform -import com.didiglobal.booster.gradle.TransformParameter - -internal class BoosterTransformV34(parameter: TransformParameter) : BoosterTransform(parameter) { - - @Suppress("UnstableApiUsage") - override fun applyToVariant(variant: VariantInfo): Boolean { - return variant.buildTypeEnabled || (variant.flavorNames.isNotEmpty() && variant.fullVariantEnabled) - } - - @Suppress("UnstableApiUsage") - private val VariantInfo.fullVariantEnabled: Boolean - get() = parameter.properties["booster.transform.${fullVariantName}.enabled"]?.toString()?.toBoolean() ?: true - - @Suppress("UnstableApiUsage") - private val VariantInfo.buildTypeEnabled: Boolean - get() = parameter.properties["booster.transform.${buildTypeName}.enabled"]?.toString()?.toBoolean() ?: true - -} - diff --git a/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/util/Dexer.kt b/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/util/Dexer.kt deleted file mode 100644 index bad4dcaa0..000000000 --- a/booster-gradle-plugin/src/main/kotlin/com/didiglobal/booster/gradle/util/Dexer.kt +++ /dev/null @@ -1,63 +0,0 @@ -package com.didiglobal.booster.gradle.util - -import com.android.dex.DexFormat -import com.android.dx.command.dexer.Main -import com.android.tools.r8.D8 -import com.didiglobal.booster.gradle.GTE_V7_X -import com.didiglobal.booster.kotlinx.NCPU -import com.didiglobal.booster.kotlinx.search -import com.didiglobal.booster.kotlinx.touch -import java.io.File - -internal fun File.dex(output: File, api: Int = DexFormat.API_NO_EXTENDED_OPCODES): Int { - return if (GTE_V7_X) { - runD8(this, output, api) - } else { - runDx(this, output, api) - } -} - -private fun runD8(input: File, output: File, api: Int): Int { - val inputs = when { - input.isDirectory -> { - output.mkdirs() - input.search { - it.extension.equals("class", true) - } - } - else -> { - output.touch() - listOf(input) - } - } - - val args = inputs.map { it.canonicalPath } + "--min-api" + api.toString() - return try { - D8.main(args.toTypedArray()) - 0 - } catch (t: Throwable) { - t.printStackTrace() - -1 - } -} - -private fun runDx(input: File, output: File, api: Int): Int { - val args = Main.Arguments().apply { - numThreads = NCPU - debug = true - warnings = true - emptyOk = true - multiDex = true - jarOutput = true - optimize = false - minSdkVersion = api - fileNames = arrayOf(input.canonicalPath) - outName = output.canonicalPath - } - return try { - Main.run(args) - } catch (t: Throwable) { - t.printStackTrace() - -1 - } -} diff --git a/booster-kotlinx/src/main/kotlin/com/didiglobal/booster/kotlinx/text.kt b/booster-kotlinx/src/main/kotlin/com/didiglobal/booster/kotlinx/text.kt index 4d004cd39..59064ca95 100644 --- a/booster-kotlinx/src/main/kotlin/com/didiglobal/booster/kotlinx/text.kt +++ b/booster-kotlinx/src/main/kotlin/com/didiglobal/booster/kotlinx/text.kt @@ -3,6 +3,7 @@ package com.didiglobal.booster.kotlinx import java.io.File import java.math.BigInteger import java.security.MessageDigest +import java.util.Locale import java.util.regex.Pattern private val PATTERN_JAVA_IDENTIFIER = Pattern.compile("[a-zA-Z_\$][a-zA-Z\\d_\$]*") @@ -24,3 +25,7 @@ fun String.matches(wildcard: Wildcard): Boolean { } fun String.isValidJavaIdentifier(): Boolean = PATTERN_JAVA_IDENTIFIER.matcher(this).matches() + +fun String.capitalized(): String = replaceFirstChar { + if (it.isLowerCase()) it.titlecase(Locale.getDefault()) else it.toString() +} diff --git a/booster-task-analyser/README.md b/booster-task-analyser/README.md deleted file mode 100644 index 2710540e5..000000000 --- a/booster-task-analyser/README.md +++ /dev/null @@ -1,78 +0,0 @@ -# booster-task-analyser - -This module is used for static analysing. - -## Performance Analysis - -Start performance analysis by executing the following command - -```bash -./gradlew analysePerformanceDebug -``` - -or - -```bash -./gradlew analysePerformanceRelease -``` - -or - -```bash -./gradlew analysePerformance -``` - -### Analyser Reports - -The [dot](https://www.graphviz.org/doc/info/lang.html) format reports is located at `build/reports/${variant}/booster-task-analyser/`, you can convert the dot files to PNGs by using the following command: - -```bash -find build/reports -name '*.dot' | xargs -t -I{} dot -O -Tpng {} -``` - -Here is an example generated by dot: - -![com.didiglobal.booster.demo.MainActivity](../assets/com.didiglobal.booster.demo.MainActivity.dot.png) - -## Properties - -The following table shows the properties that analyser supports: - -| Property | Description | Example | -| -------------------------------- | --------------------------------------------------------------------------------------------- | ----------------------------------- | -| `booster.task.analyser.blacklist` | URI of API black list(Using [built-in API list](src/main/resources/blacklist.txt) by default)| file:///Users/booster/blacklist.txt | -| `booster.task.analyser.whitelist` | URI of API white list(Using [built-in API list](src/main/resources/whitelist.txt) by default)| file:///Users/booster/whitelist.txt | - -The properties can be passthrough the command line as following: - -```bash -./gradlew assembleDebug -Pbooster.task.analyser.whitelist=file:///Users/booster/whitelist.txt -``` - -or configured in the `gradle.properties`: - -```properties -booster.task.analyser.whitelist=file:///Users/booster/whitelist.txt -``` - -## Reference Analysis - -Start reference analysis by executing the following command - -```bash -./gradlew analyseReferenceDebug -``` - -or - -```bash -./gradlew analyseReferenceRelease -``` - -or - -```bash -./gradlew analyseReference -``` - -The reports are located at `build/reports/booster-task-analyser/reference/` diff --git a/booster-task-analyser/build.gradle b/booster-task-analyser/build.gradle deleted file mode 100644 index 04ca913fc..000000000 --- a/booster-task-analyser/build.gradle +++ /dev/null @@ -1,13 +0,0 @@ -apply from: "$rootDir/gradle/booster.gradle" - -dependencies { - kapt "com.google.auto.service:auto-service:1.0" - implementation project(':booster-aapt2') - implementation project(':booster-api') - implementation project(':booster-cha-asm') - implementation project(':booster-graph-dot') - implementation project(':booster-graph-json') - implementation project(':booster-transform-asm') - compileOnly 'com.android.tools.build:gradle:4.0.0' - testCompileOnly 'com.android.tools.build:gradle:4.0.0' -} diff --git a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/AnalysisTask.kt b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/AnalysisTask.kt deleted file mode 100644 index 513ed3942..000000000 --- a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/AnalysisTask.kt +++ /dev/null @@ -1,38 +0,0 @@ -package com.didiglobal.booster.task.analyser - -import com.android.build.gradle.api.BaseVariant -import com.didiglobal.booster.BOOSTER -import com.didiglobal.booster.cha.asm.AsmClassSetCache -import com.didiglobal.booster.kotlinx.touch -import org.gradle.api.DefaultTask -import org.gradle.api.tasks.Internal -import java.io.File - -abstract class AnalysisTask : DefaultTask() { - - @get:Internal - var variant: BaseVariant? = null - - @get:Internal - lateinit var classSetCache: AsmClassSetCache - - @Internal - final override fun getGroup(): String = BOOSTER - - @Internal - abstract override fun getDescription(): String - - abstract fun analyse() - -} - -internal val AnalysisTask.reportDir: File - get() = project.buildDir - .resolve("reports") - .resolve(Build.ARTIFACT) - .resolve(javaClass.kotlin.category) - .resolve(variant?.dirName ?: ".") - -internal fun AnalysisTask.report(name: String): File { - return reportDir.resolve(name).resolve("index.${name}").touch() -} diff --git a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/AnalysisVariantProcessor.kt b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/AnalysisVariantProcessor.kt deleted file mode 100644 index f34022275..000000000 --- a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/AnalysisVariantProcessor.kt +++ /dev/null @@ -1,83 +0,0 @@ -package com.didiglobal.booster.task.analyser - -import com.android.build.gradle.AppExtension -import com.android.build.gradle.BaseExtension -import com.android.build.gradle.LibraryExtension -import com.android.build.gradle.api.BaseVariant -import com.android.build.gradle.internal.tasks.factory.dependsOn -import com.didiglobal.booster.cha.asm.AsmClassSetCache -import com.didiglobal.booster.gradle.getAndroidOrNull -import com.didiglobal.booster.gradle.getJarTaskProviders -import com.didiglobal.booster.gradle.getTaskName -import com.didiglobal.booster.gradle.getUpstreamProjects -import com.didiglobal.booster.gradle.isAndroid -import com.didiglobal.booster.gradle.isJava -import com.didiglobal.booster.gradle.isJavaLibrary -import com.didiglobal.booster.gradle.project -import com.didiglobal.booster.task.analyser.performance.PerformanceAnalysisTask -import com.didiglobal.booster.task.analyser.reference.ReferenceAnalysisTask -import com.didiglobal.booster.task.spi.VariantProcessor -import com.google.auto.service.AutoService -import org.gradle.api.Project -import org.gradle.api.Task -import org.gradle.api.UnknownTaskException -import org.gradle.api.tasks.TaskProvider -import java.util.Locale -import kotlin.reflect.KClass - -@AutoService(VariantProcessor::class) -class AnalysisVariantProcessor : VariantProcessor { - - private val classSetCache = AsmClassSetCache() - - override fun process(variant: BaseVariant) { - variant.project.gradle.projectsEvaluated { gradle -> - gradle.rootProject.allprojects { - it.setup() - } - } - } - - private fun Project.setup() { - when { - isAndroid -> { - setupAndroid() - setupAndroid() - } - isJavaLibrary || isJava -> { - setupTasks() - } - } - } - - private inline fun Project.setupTasks(variant: BaseVariant? = null): TaskProvider { - val taskName = variant?.getTaskName(T::class.taskName) ?: T::class.taskName - return try { - tasks.named(taskName) - } catch (e: UnknownTaskException) { - tasks.register(taskName, T::class.java) { - it.variant = variant - it.classSetCache = classSetCache - }.dependsOn(getUpstreamProjects(false, variant).plus(this).map { - it.getJarTaskProviders(variant) - }.flatten()) - } - } - - private inline fun Project.setupAndroid() { - when (val android = getAndroidOrNull()) { - is LibraryExtension -> android.libraryVariants - is AppExtension -> android.applicationVariants - else -> emptyList() - }.map { - setupTasks(it) - } - } - -} - -internal inline val KClass.category: String - get() = T::class.java.simpleName.substringBefore(AnalysisTask::class.java.simpleName).lowercase() - -internal inline val KClass.taskName: String - get() = @Suppress("DEPRECATION") "analyse${category.capitalize()}" diff --git a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/performance/LayoutHandler.kt b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/performance/LayoutHandler.kt deleted file mode 100644 index 92ed8ec00..000000000 --- a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/performance/LayoutHandler.kt +++ /dev/null @@ -1,17 +0,0 @@ -package com.didiglobal.booster.task.analyser.performance - -import org.xml.sax.Attributes -import org.xml.sax.helpers.DefaultHandler - -/** - * @author johnsonlee - */ -class LayoutHandler : DefaultHandler() { - - val views = mutableSetOf() - - override fun startElement(uri: String, localName: String, qName: String, attributes: Attributes) { - views += qName - } - -} \ No newline at end of file diff --git a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/performance/PerformanceAnalyser.kt b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/performance/PerformanceAnalyser.kt deleted file mode 100644 index eee88b6a8..000000000 --- a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/performance/PerformanceAnalyser.kt +++ /dev/null @@ -1,454 +0,0 @@ -package com.didiglobal.booster.task.analyser.performance - -import com.didiglobal.booster.aapt2.metadata -import com.didiglobal.booster.cha.ClassHierarchy -import com.didiglobal.booster.cha.ClassSet -import com.didiglobal.booster.cha.JAVA_LANG_OBJECT -import com.didiglobal.booster.cha.asm.from -import com.didiglobal.booster.cha.fold -import com.didiglobal.booster.cha.graph.CallNode -import com.didiglobal.booster.cha.graph.ROOT -import com.didiglobal.booster.graph.Graph -import com.didiglobal.booster.graph.dot.DotGraph -import com.didiglobal.booster.kotlinx.NCPU -import com.didiglobal.booster.kotlinx.asIterable -import com.didiglobal.booster.kotlinx.file -import com.didiglobal.booster.kotlinx.green -import com.didiglobal.booster.kotlinx.red -import com.didiglobal.booster.kotlinx.search -import com.didiglobal.booster.kotlinx.separatorsToSystem -import com.didiglobal.booster.kotlinx.yellow -import com.didiglobal.booster.task.analyser.Build -import com.didiglobal.booster.transform.ArtifactManager -import com.didiglobal.booster.transform.asm.args -import com.didiglobal.booster.transform.asm.className -import com.didiglobal.booster.transform.asm.getValue -import com.didiglobal.booster.transform.asm.isAbstract -import com.didiglobal.booster.transform.asm.isAnnotation -import com.didiglobal.booster.transform.asm.isInterface -import com.didiglobal.booster.transform.asm.isInvisibleAnnotationPresent -import com.didiglobal.booster.transform.asm.isNative -import com.didiglobal.booster.transform.asm.isProtected -import com.didiglobal.booster.transform.asm.isPublic -import com.didiglobal.booster.transform.asm.isStatic -import com.didiglobal.booster.transform.util.ComponentHandler -import org.objectweb.asm.tree.ClassNode -import org.objectweb.asm.tree.MethodInsnNode -import org.objectweb.asm.tree.MethodNode -import java.io.File -import java.net.URL -import java.util.concurrent.Callable -import java.util.concurrent.ConcurrentHashMap -import java.util.concurrent.CopyOnWriteArraySet -import java.util.concurrent.ExecutorService -import java.util.concurrent.Executors -import java.util.concurrent.Future -import java.util.concurrent.TimeUnit -import java.util.concurrent.atomic.AtomicInteger -import javax.xml.parsers.SAXParserFactory -import kotlin.collections.component1 -import kotlin.collections.component2 -import kotlin.collections.set -import kotlin.streams.toList - -/** - * @author johnsonlee - */ -class PerformanceAnalyser( - private val providedClasspath: Collection, - private val compileClasspath: Collection, - private val artifacts: ArtifactManager, - private val properties: Map = emptyMap() -) { - - private val providedClasses = providedClasspath.map { - ClassSet.from(it) - }.fold() - - private val compileClasses = compileClasspath.map { - ClassSet.from(it) - }.fold() - - private val classes = providedClasses + compileClasses - - private val unresolvedClasses = mutableSetOf() - - private val hierarchy = ClassHierarchy(classes) { - unresolvedClasses += it - } - - /** - * The global call graph of whole project - */ - private val globalBuilder = Graph.Builder() - - /** - * The call graph of each class - */ - private val graphBuilders = ConcurrentHashMap>() - - private val classesRunOnUiThread = ConcurrentHashMap() - private val classesRunOnMainThread = ConcurrentHashMap() - - private val nodesRunOnUiThread = CopyOnWriteArraySet(PLATFORM_METHODS_RUN_ON_UI_THREAD) - private val nodesRunOnMainThread = CopyOnWriteArraySet(PLATFORM_METHODS_RUN_ON_MAIN_THREAD) - - private val blacklist = URL(properties[PROPERTY_BLACKLIST]?.toString() ?: VALUE_BLACKLIST).openStream().bufferedReader().use { - it.readLines().filter(String::isNotBlank).map(CallNode.Companion::valueOf).toSet() - } - - private val whitelist = URL(properties[PROPERTY_WHITELIST]?.toString() ?: VALUE_WHITELIST).openStream().bufferedReader().use { - it.readLines().filter(String::isNotBlank).map(CallNode.Companion::valueOf).toSet() - } - - private val mainThreadAnnotations: Set by lazy { - MAIN_THREAD_ANNOTATIONS.filter(classes::contains).map(::descriptor).toSet() - } - - private val uiThreadAnnotations: Set by lazy { - UI_THREAD_ANNOTATIONS.filter(classes::contains).map(::descriptor).toSet() - } - - constructor(platform: File, compileClasspath: Collection, artifacts: ArtifactManager, properties: Map = emptyMap()) - : this(platform.bootClasspath, compileClasspath, artifacts, properties) - - fun analyse(output: File) { - this.classes.load().use { - this.loadEntryPoints() - this.analyse() - this.dump(output) - this.unresolvedClasses.forEach { - println("Unresolved class ${red(it.replace('/', '.'))}") - } - } - } - - private fun analyse() { - val classes = this.compileClasses.parallelStream().filter(ClassNode::isInclude).toList() - val index = AtomicInteger(0) - val count = classes.size - val executor = Executors.newFixedThreadPool(NCPU) - - try { - classes.map { - executor.submit { - val t0 = System.currentTimeMillis() - this.analyse(it) - println("${green(String.format("%3d%%", index.incrementAndGet() * 100 / count))} Analyse class ${it.className} in ${yellow(System.currentTimeMillis() - t0)} ms") - } - }.forEach { - it.get() - } - } finally { - executor.shutdown() - executor.awaitTermination(1L, TimeUnit.HOURS) - } - } - - private fun loadEntryPoints() { - val executor = Executors.newFixedThreadPool(NCPU) - - try { - (loadMainThreadEntryPoints(executor) + loadUiThreadEntryPoints(executor)).forEach { - it.get() - } - } finally { - executor.shutdown() - executor.awaitTermination(1L, TimeUnit.HOURS) - } - } - - /** - * Find main thread entry point by parsing AndroidManifest.xml - */ - private fun loadMainThreadEntryPoints(executor: ExecutorService): List> { - val handler = this.artifacts.get(ArtifactManager.MERGED_MANIFESTS).map { manifest -> - ComponentHandler().also { handler -> - SAXParserFactory.newInstance().newSAXParser().parse(manifest, handler) - } - }.fold(ComponentHandler()) { acc, i -> - acc.applications += i.applications - acc.activities += i.activities - acc.services += i.services - acc.receivers += i.receivers - acc.providers += i.providers - acc - } - - return arrayOf( - "android/app/Application" to handler.applications, - "android/app/Activity" to handler.activities, - "android/app/Service" to handler.services, - "android/content/BroadcastReceiver" to handler.receivers, - "android/content/ContentProvider" to handler.providers - ).map { - executor.submit(Callable, Collection>> { - val clazz = this.hierarchy[it.first] ?: throw ClassNotFoundException(it.first.replace('/', '.')) - Triple(clazz, it.second.map { it.replace('.', '/') }, clazz.methods.filter(MethodNode::isEntryPoint)) - }) - }.map { future -> - val (clazz, components, entryPoints) = future.get() - - classesRunOnMainThread[clazz.name] = clazz - - components.map { component -> - executor.submit { - println("Loading main thread entry points from $component ...") - - val nodes = entryPoints.map { - CallNode(clazz.name, it.name, it.desc) - } - - this.hierarchy[component]?.run { - classesRunOnMainThread[component] = this - } - this.globalBuilder.addEdges(ROOT, nodes) - this.nodesRunOnMainThread += nodes - } - } - }.flatten() - } - - /** - * Find custom View as UI thread entry point by parsing layout xml - */ - private fun loadUiThreadEntryPoints(executor: ExecutorService): List> { - // Load platform widgets - val widgets = this.providedClasspath.find { - it.name == "android.jar" - }?.parentFile?.file("data", "widgets.txt")?.readLines()?.filter { - it.startsWith("W") - }?.map { - it.substring(1, it.indexOf(' ')) - }?.toSet() ?: emptySet() - - val visit: (File) -> Set = { xml -> - val handler = LayoutHandler() - SAXParserFactory.newInstance().newSAXParser().parse(xml, handler) - handler.views - } - - return this.artifacts.get(ArtifactManager.MERGED_RES).search { - it.name.startsWith("layout_") && it.name.endsWith(".xml.flat") - }.map { flat -> - executor.submit { - val header = flat.metadata - val xml = header.sourceFile - - println("Parsing ${header.resourcePath} ...") - - this.nodesRunOnUiThread += visit(xml).filter { - '.' in it || it in widgets // ignore system widgets - }.map { tag -> - val desc = tag.replace('.', '/') - val clazz = this.hierarchy[desc] - - if (null == clazz) { - println(red("Unresolved class ${tag}: ${header.resourceName} -> ${header.sourcePath}")) - emptyList() - } else { - classesRunOnUiThread[desc] = clazz - - hierarchy.getSuperTypes(clazz).filter { - it.name != JAVA_LANG_OBJECT - }.forEach { - classesRunOnUiThread[it.name] = it - } - - val nodes = clazz.methods.filter(MethodNode::isEntryPoint).map { m -> - CallNode(clazz.name, m.name, m.desc) - } - - globalBuilder.addEdges(ROOT, nodes) - nodes - } - }.flatten() - } - } - } - - private fun analyse(clazz: ClassNode) { - val isClassRunOnUiThread = clazz.isRunOnUiThread() - val isClassRunOnMainThread = clazz.isRunOnMainThread() - val isClassRunOnUiOrMainThread = isClassRunOnMainThread || isClassRunOnUiThread - - clazz.methods.forEach { method -> - val isMethodRunUiOrMainThread = isClassRunOnUiOrMainThread - || method.isRunOnUiThread(clazz) - || method.isRunOnMainThread(clazz) - || method.isSubscribeOnMainThread() - - if (isMethodRunUiOrMainThread) { - val node = CallNode(clazz.name, method.name, method.desc) - - if (isClassRunOnMainThread) { - nodesRunOnMainThread += node - } - - if (isClassRunOnUiThread) { - nodesRunOnUiThread += node - } - - globalBuilder.addEdge(ROOT, node) - } - - // construct call graph by scanning INVOKE* instructions - method.instructions.iterator().asIterable().filterIsInstance(MethodInsnNode::class.java).forEach { invoke -> - val to = CallNode(invoke.owner, invoke.name, invoke.desc) - val from = CallNode(clazz.name, method.name, method.desc) - - // break circular invocation - if (!globalBuilder.hasEdge(to, from)) { - globalBuilder.addEdge(from, to) - } - } - } - } - - /** - * Rendering call graph as individual dot format - */ - private fun dump(output: File) { - val global = globalBuilder.build() - val executor = Executors.newFixedThreadPool(NCPU) - - println("Generating call graphs ...") - - // Analyse global call graph and separate each chain to individual graph - global[ROOT].map { node -> - executor.submit { - analyse(global, node, listOf(ROOT, node)) { chain -> - val builder = graphBuilders.getOrPut(node.type) { - Graph.Builder().setTitle(node.type.replace('/', '.')) - } - builder.addEdges(chain) - } - } - }.forEach { - it.get() - } - - try { - graphBuilders.map { (name, builder) -> - File(output, name.separatorsToSystem() + ".dot") to builder.build() - }.map { (dot, graph) -> - executor.submit { - DotGraph.DIGRAPH.visualize(graph, dot) { - if (it == ROOT) graph.title else it.toPrettyString() - } - } - }.forEach { - it.get() - } - } finally { - executor.shutdown() - executor.awaitTermination(1L, TimeUnit.HOURS) - } - } - - /** - * Analyse from *node* recursively - * - * @param node The entry point - * @param chain The call chain - */ - private fun analyse(graph: Graph, node: CallNode, chain: List, action: (List) -> Unit) { - if (node in whitelist) { - return - } - - graph[node].forEach loop@{ target -> - // break circular invocation - if (chain.contains(target)) { - return@loop - } - - val newChain = chain.plus(target) - if (target matches blacklist) { - action(newChain) - return@loop - } - - analyse(graph, target, newChain, action) - } - } - - /** - * Check if this class is run on main thread - */ - private fun ClassNode.isRunOnMainThread() = isRunOnThread(mainThreadAnnotations, classesRunOnMainThread) - - /** - * Check if this class is run on UI thread - */ - private fun ClassNode.isRunOnUiThread() = isRunOnThread(uiThreadAnnotations, classesRunOnUiThread) - - private fun ClassNode.isRunOnThread(annotations: Set, classesRunOnThread: MutableMap): Boolean { - return isInvisibleAnnotationPresent(annotations) || classesRunOnThread.containsKey(name) - } - - /** - * Check if this method is run on main thread - */ - private fun MethodNode.isRunOnMainThread(clazz: ClassNode) = isRunOnThread(clazz, mainThreadAnnotations, nodesRunOnMainThread) - - /** - * Check if this method is run on UI thread - */ - private fun MethodNode.isRunOnUiThread(clazz: ClassNode) = isRunOnThread(clazz, uiThreadAnnotations, nodesRunOnUiThread) - - private fun MethodNode.isRunOnThread(clazz: ClassNode, annotations: Set, nodesRunOnThread: Set): Boolean { - if (this.isInvisibleAnnotationPresent(annotations)) { - return true - } - - return nodesRunOnThread.any { - it.name == this.name && it.args == this.args && hierarchy.isInheritFrom(clazz, it.type) - } - } - - private infix fun CallNode.matches(apis: Collection) = apis.contains(this) || apis.any { - // only match type, name and args because of covariant return type is partially allowed since JDK 1.5 - // (overridden method can have different return type in sub-type) - this.name == it.name && this.args == it.args && hierarchy.isInheritFrom(this.type, it.type) - } -} - -private val File.bootClasspath: Collection - get() = listOf(resolve("android.jar"), resolve("optional").resolve("org.apache.http.legacy.jar")) - -internal fun MethodNode.isSubscribeOnMainThread(): Boolean { - return visibleAnnotations - ?.find { it.desc == EVENTBUS_SUBSCRIBE } - ?.getValue>("threadMode") - ?.contentEquals(arrayOf(EVENTBUS_THREAD_MODE, "MAIN")) ?: false -} - -/** - * Excludes classes with conditions: - * - * - class in the ignore list - * - annotation classes - * - class has no methods containing any *invoke* instruction - */ -private val ClassNode.isInclude: Boolean - get() = !(EXCLUDES matches name || isAnnotation || ((isInterface || isAbstract) && methods.none { !it.isAbstract })) - -private val MethodNode.isEntryPoint: Boolean - get() = (isPublic || isProtected) && !isNative && !isStatic - -private fun descriptor(name: String) = "L${name};" - -private const val EVENTBUS_SUBSCRIBE = "Lorg/greenrobot/eventbus/Subscribe;" -private const val EVENTBUS_THREAD_MODE = "Lorg/greenrobot/eventbus/ThreadMode;" - -private val PROPERTY_PREFIX = Build.ARTIFACT.replace('-', '.') - -private val PROPERTY_BLACKLIST = "$PROPERTY_PREFIX.blacklist" - -private val PROPERTY_WHITELIST = "$PROPERTY_PREFIX.whitelist" - -internal val VALUE_BLACKLIST = PerformanceAnalyser::class.java.classLoader.getResource("blacklist.txt")!!.toString() - -internal val VALUE_WHITELIST = PerformanceAnalyser::class.java.classLoader.getResource("whitelist.txt")!!.toString() - diff --git a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/performance/PerformanceAnalysisTask.kt b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/performance/PerformanceAnalysisTask.kt deleted file mode 100644 index ef94d5b62..000000000 --- a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/performance/PerformanceAnalysisTask.kt +++ /dev/null @@ -1,35 +0,0 @@ -package com.didiglobal.booster.task.analyser.performance - -import com.didiglobal.booster.gradle.extension -import com.didiglobal.booster.gradle.getJars -import com.didiglobal.booster.gradle.getUpstreamProjects -import com.didiglobal.booster.task.analyser.AnalysisTask -import com.didiglobal.booster.task.analyser.reportDir -import com.didiglobal.booster.transform.artifacts -import org.gradle.api.tasks.TaskAction - -/** - * Represents a task for performance analysing - * - * @author johnsonlee - */ -open class PerformanceAnalysisTask : AnalysisTask() { - - override fun getDescription(): String = "Analyses performance issues for Android projects" - - @TaskAction - override fun analyse() { - val variant = requireNotNull(this.variant) - val classpath = project.getJars(variant) + project.getUpstreamProjects(true, variant).map { - it.getJars(variant) - }.flatten() - - PerformanceAnalyser( - variant.extension.bootClasspath, - classpath, - variant.artifacts, - project.properties - ).analyse(reportDir) - } - -} \ No newline at end of file diff --git a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/performance/constants.kt b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/performance/constants.kt deleted file mode 100644 index ce250b9d3..000000000 --- a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/performance/constants.kt +++ /dev/null @@ -1,86 +0,0 @@ -package com.didiglobal.booster.task.analyser.performance - -import com.didiglobal.booster.cha.graph.CallNode - -private const val DOLLAR = '$' - -/** - * The following classes exclude from lint - * - * - `android.**` - * - `androidx.**` - * - `com.android.**` - * - `com.google.android.**` - * - `com.google.gson.**` - * - `com.didiglobal.booster.instrument.**` - * - `**.R` - * - `**.R$*` - * - `BuildConfig` - */ -internal val EXCLUDES = Regex("^(((android[x]?)|(com/(((google/)?android)|(google/gson)|(didiglobal/booster/instrument))))/.+)|(.+/((R[2]?(${DOLLAR}[a-z]+)?)|(BuildConfig)))$") - - -internal val PLATFORM_METHODS_RUN_ON_UI_THREAD = arrayOf( - "androidx/asynclayoutinflater/view/AsyncLayoutInflater.inflate(ILandroid/view/ViewGroup;Landroidx/asynclayoutinflater/view/AsyncLayoutInflater${DOLLAR}OnInflateFinishedListener;)V" -).map(CallNode.Companion::valueOf).toSet() - -internal val PLATFORM_METHODS_RUN_ON_MAIN_THREAD = arrayOf( - "android/content/ContextWrapper.attachBaseContext(Landroid/content/Context;)V", - - "android/os/AsyncTask.onPreExecute()V", - "android/os/AsyncTask.onPostExecute(Ljava/lang/Object;)V", - "android/os/AsyncTask.onProgressUpdate([Ljava/lang/Object;)V", - "android/os/AsyncTask.onCancelled([Ljava/lang/Object;)V", - "android/os/AsyncTask.onCancelled()V", - "android/os/AsyncTask.execute([Ljava/lang/Object;)Landroid/os/AsyncTask;", - - "android/view/inputmethod/InputMethod.attachToken(Landroid/os/IBinder;)V", - "android/view/inputmethod/InputMethod.bindInput(Landroid/view/inputmethod/InputBinding;)V", - "android/view/inputmethod/InputMethod.unbindInput()V", - "android/view/inputmethod/InputMethod.startInput(Landroid/view/inputmethod/InputConnection;Landroid/view/inputmethod/EditorInfo;)V", - "android/view/inputmethod/InputMethod.restartInput(Landroid/view/inputmethod/InputConnection;Landroid/view/inputmethod/EditorInfo;)V", - "android/view/inputmethod/InputMethod.dispatchStartInputWithToken(Landroid/view/inputmethod/InputConnection;Landroid/view/inputmethod/EditorInfo;ZLandroid/os/IBinder;)V", - "android/view/inputmethod/InputMethod.createSession(Landroid/view/inputmethod/SessionCallback;)V", - "android/view/inputmethod/InputMethod.setSessionEnabled(Landroid/view/inputmethod/InputMethodSession;Z)V", - "android/view/inputmethod/InputMethod.revokeSession(Landroid/view/inputmethod/InputMethodSession;)V", - "android/view/inputmethod/InputMethod.showSoftInput(ILandroid/os/ResultReceiver;)V", - "android/view/inputmethod/InputMethod.hideSoftInput(ILandroid/os/ResultReceiver;)V", - "android/view/inputmethod/InputMethod.changeInputMethodSubtype(Landroid/view/inputmethod/InputMethodSubtype;)V", - - "androidx/fragment/app/Fragment.getViewLifecycleOwner()Landroidx/lifecycle/LifecycleOwner;", - - "androidx/lifecycle/Lifecycle.addObserver(Landroidx/lifecycle/Lifecycle/LifecycleObserver;)V", - "androidx/lifecycle/Lifecycle.removeObserver(Landroidx/lifecycle/Lifecycle/LifecycleObserver;)V", - "androidx/lifecycle/Lifecycle.getCurrentState()Landroidx/lifecycle/Lifecycle${DOLLAR}State;", - "androidx/lifecycle/LifecycleRegistry.markState(Landroidx/lifecycle/Lifecycle${DOLLAR}State;)V" -).map(CallNode.Companion::valueOf).toSet() - -internal val MAIN_THREAD_ANNOTATIONS = arrayOf( - "androidx/annotation/MainThread", - "android/support/annotation/MainThread", - "android/annotation/MainThread" -) - -internal val UI_THREAD_ANNOTATIONS = arrayOf( - "androidx/annotation/UiThread", - "android/support/annotation/UiThread", - "android/annotation/UiThread" -) - -internal val WORKER_THREAD_ANNOTATIONS = arrayOf( - "androidx/annotation/WorkerThread", - "android/support/annotation/WorkerThread", - "android/annotation/WorkerThread" -) - -internal val BINDER_THREAD_ANNOTATIONS = arrayOf( - "androidx/annotation/BinderThread", - "android/support/annotation/BinderThread", - "android/annotation/BinderThread" -) - -internal val ANY_THREAD_ANNOTATIONS = arrayOf( - "androidx/annotation/AnyThread", - "android/support/annotation/AnyThread", - "android/annotation/AnyThread" -) diff --git a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/ReferenceAnalysisTask.kt b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/ReferenceAnalysisTask.kt deleted file mode 100644 index 18f6da4ac..000000000 --- a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/ReferenceAnalysisTask.kt +++ /dev/null @@ -1,83 +0,0 @@ -package com.didiglobal.booster.task.analyser.reference - -import com.didiglobal.booster.cha.asm.Reference -import com.didiglobal.booster.cha.asm.ReferenceAnalyser -import com.didiglobal.booster.cha.fold -import com.didiglobal.booster.gradle.getJars -import com.didiglobal.booster.gradle.getResolvedArtifactResults -import com.didiglobal.booster.graph.Graph -import com.didiglobal.booster.graph.dot.DotGraph -import com.didiglobal.booster.graph.json.JsonGraphRender -import com.didiglobal.booster.kotlinx.green -import com.didiglobal.booster.kotlinx.yellow -import com.didiglobal.booster.task.analyser.AnalysisTask -import com.didiglobal.booster.task.analyser.report -import org.gradle.api.artifacts.component.ProjectComponentIdentifier -import org.gradle.api.tasks.TaskAction -import org.gradle.reporting.HtmlReportRenderer -import java.util.concurrent.Executors -import java.util.concurrent.TimeUnit - -/** - * Analysing the class reference for current variant to determine each class in this module is referenced by which class in which module - * - * @author johnsonlee - */ -open class ReferenceAnalysisTask : AnalysisTask() { - - override fun getDescription(): String = "Analysing class reference for Android/Java projects" - - @TaskAction - override fun analyse() { - val upstream = project.getResolvedArtifactResults(true, variant).associate { - it.id.componentIdentifier.displayName to when (val id = it.id.componentIdentifier) { - is ProjectComponentIdentifier -> project.rootProject.project(id.projectPath).getJars(variant).map { file -> - classSetCache[file.toURI().toURL()] - }.fold() - else -> classSetCache[it.file.toURI().toURL()] - } - } - - val origin = project.name to project.getJars(variant).map { - classSetCache[it.toURI().toURL()] - }.fold() - val graph = ReferenceAnalyser().analyse(origin, upstream) { klass, progress, duration -> - project.logger.info("${green(String.format("%3f%%", progress * 100))} Analyse class ${klass.name} in ${yellow(duration.toMillis())} ms") - } - val executor = Executors.newFixedThreadPool(3) - - try { - arrayOf(::generateHtmlReport, ::generateDotReport, ::generateJsonReport).map { render -> - executor.submit { - render(graph) - } - }.forEach { - it.get() - } - } finally { - executor.shutdown() - executor.awaitTermination(1, TimeUnit.MINUTES) - } - } - - private fun generateDotReport(graph: Graph) { - try { - val options = DotGraph.DotOptions(rankdir = "LR", format = "svg") - DotGraph.DIGRAPH.visualize(graph, report("dot"), options) - } catch (e: Exception) { - logger.error(e.message) - } - } - - private fun generateHtmlReport(graph: Graph) { - HtmlReportRenderer().renderSinglePage(graph, ReferencePageRenderer(project, variant), report("html")) - } - - private fun generateJsonReport(graph: Graph) { - val json = JsonGraphRender.render(graph) { node -> - """{"component": "${node.component}", "class": "${node.klass}"}""" - }.toString() - report("json").writeText(json) - } - -} diff --git a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/ReferencePageRenderer.kt b/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/ReferencePageRenderer.kt deleted file mode 100644 index 43b36c336..000000000 --- a/booster-task-analyser/src/main/kotlin/com/didiglobal/booster/task/analyser/reference/ReferencePageRenderer.kt +++ /dev/null @@ -1,58 +0,0 @@ -package com.didiglobal.booster.task.analyser.reference - -import com.android.build.gradle.api.BaseVariant -import com.didiglobal.booster.cha.asm.Reference -import com.didiglobal.booster.graph.Graph -import org.gradle.api.Project -import org.gradle.internal.html.SimpleHtmlWriter -import org.gradle.reporting.ReportRenderer -import org.gradle.reporting.TabbedPageRenderer -import java.net.URL - -class ReferencePageRenderer( - private val project: Project, - private val variant: BaseVariant? -) : TabbedPageRenderer>() { - - private val _title: String by lazy { - if (variant == null) project.name else "${project.name}:${variant.name}" - } - - override fun getTitle(): String = _title - - override fun getHeaderRenderer(): ReportRenderer, SimpleHtmlWriter> = object : ReportRenderer, SimpleHtmlWriter>() { - override fun render(model: Graph, output: SimpleHtmlWriter) { - output.startElement("p").attribute("class", "subtitle").characters(project.description ?: "").endElement() - } - } - - override fun getContentRenderer(): ReportRenderer, SimpleHtmlWriter> = object : ReportRenderer, SimpleHtmlWriter>() { - override fun render(model: Graph, output: SimpleHtmlWriter) { - output.run { - model.groupBy { - it.to.groupBy() - }.toSortedMap(Reference.COMPONENT_COMPARATOR).map { (group, edges) -> - group to edges.groupBy({ it.to.klass }) { it.from.klass } - }.forEach { (title, references) -> - startElement("h2").characters(title).endElement() - startElement("ul").attribute("class", "refs") - references.forEach { (ref, sources) -> - startElement("li") - startElement("div").characters(ref).endElement() - startElement("ul") - sources.forEach { - startElement("li").characters(it).endElement() - } - endElement() - endElement() - } - endElement() - } - } - } - - } - - override fun getStyleUrl(): URL = ReferencePageRenderer::class.java.getResource("/style.css") - -} diff --git a/booster-task-analyser/src/main/resources/blacklist.txt b/booster-task-analyser/src/main/resources/blacklist.txt deleted file mode 100644 index fbf3bca3f..000000000 --- a/booster-task-analyser/src/main/resources/blacklist.txt +++ /dev/null @@ -1,166 +0,0 @@ -java/lang/Object.wait()V -java/lang/Object.wait(J)V -java/lang/Object.wait(JI)V -java/lang/Thread.start()V -java/lang/Thread.sleep(J)V -java/lang/Thread.sleep(JI)V -java/lang/ClassLoader.getResource(Ljava/lang/String;)Ljava/net/URL; -java/lang/ClassLoader.getResources(Ljava/lang/String;)Ljava/util/Enumeration; -java/lang/ClassLoader.getResourceAsStream(Ljava/lang/String;)Ljava/io/InputStream; -java/lang/ClassLoader.getSystemResource(Ljava/lang/String;)Ljava/net/URL; -java/lang/ClassLoader.getSystemResources(Ljava/lang/String;)Ljava/util/Enumeration; -java/lang/ClassLoader.getSystemResourceAsStream(Ljava/lang/String;)Ljava/io/InputStream; -java/io/FileDescriptor.sync()V -java/io/FileInputStream.(Ljava/io/File;)V -java/io/FileInputStream.(Ljava/io/FileDescriptor;)V -java/io/FileInputStream.(Ljava/lang/String;)V -java/io/FileInputStream.available()I -java/io/FileInputStream.close()I -java/io/FileInputStream.getChannel()Ljava/nio/channels/FileChannel; -java/io/FileInputStream.getFD()Ljava/io/FileDescriptor; -java/io/FileInputStream.read()I -java/io/FileInputStream.read([B)I -java/io/FileInputStream.read([BII)I -java/io/FileInputStream.reset()V -java/io/FileInputStream.skip(J)J -java/io/FileOutputStream.(Ljava/io/File;)V -java/io/FileOutputStream.(Ljava/io/File;Z)V -java/io/FileOutputStream.(Ljava/io/FileDescriptor;)V -java/io/FileOutputStream.(Ljava/lang/String;)V -java/io/FileOutputStream.(Ljava/lang/String;Z)V -java/io/FileOutputStream.flush()V -java/io/FileOutputStream.getChannel()Ljava/nio/channels/FileChannel; -java/io/FileOutputStream.getFD()Ljava/io/FileDescriptor; -java/io/FileOutputStream.write(I)V -java/io/FileOutputStream.write([B)V -java/io/FileOutputStream.write([BII)V -java/io/FileReader.(Ljava/io/File;)V -java/io/FileReader.(Ljava/io/FileDescriptor;)V -java/io/FileReader.(Ljava/lang/String;)V -java/io/FileReader.read()I -java/io/FileReader.read([C)I -java/io/FileReader.read([CII)I -java/io/FileReader.read(Ljava/nio/CharBuffer;)I -java/io/FileReader.ready()Z -java/io/FileReader.reset()V -java/io/FileReader.skip(J)J -java/io/FileWriter.(Ljava/io/File;)V -java/io/FileWriter.(Ljava/io/File;Z)V -java/io/FileWriter.(Ljava/io/FileDescriptor;)V -java/io/FileWriter.(Ljava/lang/String;)V -java/io/FileWriter.(Ljava/lang/String;Z)V -java/io/FileWriter.append(C)Ljava/io/Writer; -java/io/FileWriter.append(Ljava/lang/CharSequence;)Ljava/io/Writer; -java/io/FileWriter.append(Ljava/lang/CharSequence;II)Ljava/io/Writer; -java/io/FileWriter.flush()V -java/io/FileWriter.write(I)V -java/io/FileWriter.write(Ljava/lang/String;)V -java/io/FileWriter.write(Ljava/lang/String;II)V -java/io/FileWriter.write([C)V -java/io/FileWriter.write([CII)V -java/io/RandomAccessFile.(Ljava/io/File;Ljava/lang/String;)V -java/io/RandomAccessFile.(Ljava/lang/String;Ljava/lang/String;)V -java/io/RandomAccessFile.close()V -java/io/RandomAccessFile.getChannel()Ljava/nio/channels/FileChannel; -java/io/RandomAccessFile.getFilePointer()J -java/io/RandomAccessFile.read()I -java/io/RandomAccessFile.read([B)I -java/io/RandomAccessFile.read([BII)I -java/io/RandomAccessFile.readBoolean()Z -java/io/RandomAccessFile.readByte()B -java/io/RandomAccessFile.readChar()C -java/io/RandomAccessFile.readDouble()D -java/io/RandomAccessFile.readFloat()F -java/io/RandomAccessFile.readFully([B)V -java/io/RandomAccessFile.readFully([BII)V -java/io/RandomAccessFile.readInt()I -java/io/RandomAccessFile.readLine()Ljava/lang/String; -java/io/RandomAccessFile.readLong()J -java/io/RandomAccessFile.readShort()S -java/io/RandomAccessFile.readUnsignedByte()I -java/io/RandomAccessFile.readUnsignedShort()I -java/io/RandomAccessFile.readUTF()Ljava/lang/String; -java/io/RandomAccessFile.seek(J)V -java/io/RandomAccessFile.skipBytes(I)I -java/io/RandomAccessFile.write([B)V -java/io/RandomAccessFile.write([BII)V -java/io/RandomAccessFile.write(I)V -java/io/RandomAccessFile.writeBoolean(Z)V -java/io/RandomAccessFile.writeByte(I)V -java/io/RandomAccessFile.writeBytes(Ljava/lang/String;)V -java/io/RandomAccessFile.writeChar(I)V -java/io/RandomAccessFile.writeChars(Ljava/lang/String;)V -java/io/RandomAccessFile.writeDouble(D)V -java/io/RandomAccessFile.writeFloat(F)V -java/io/RandomAccessFile.writeInt(I)V -java/io/RandomAccessFile.writeLong(J)V -java/io/RandomAccessFile.writeShort(I)V -java/io/RandomAccessFile.writeUTF(Ljava/lang/String;)V -java/net/URL.openConnection()Ljava/net/URLConnection; -java/net/URL.openConnection(Ljava/net/Proxy;)Ljava/net/URLConnection; -java/net/URL.openStream()Ljava/io/InputStream; -java/nio/channels/FileChannel.lock()Ljava/nio/channels/FileLock; -java/nio/channels/FileChannel.lock(JJZ)Ljava/nio/channels/FileLock; -java/util/concurrent/locks/Lock.lock()V -java/util/concurrent/locks/Condition.await()V -java/util/concurrent/locks/Condition.awaitUninterruptibly()V -java/util/concurrent/locks/Condition.awaitNanos(J)J -java/util/concurrent/locks/Condition.await(JLjava/util/concurrent/TimeUnit;)Z -java/util/concurrent/locks/Condition.awaitUntil(Ljava/util/Date;)Z -java/util/ServiceLoader.load(Ljava/lang/Class;)Ljava/util/ServiceLoader; -java/util/ServiceLoader.load(Ljava/lang/Class;Ljava/lang/ClassLoader;)Ljava/util/ServiceLoader; -java/util/zip/ZipFile.(Ljava/lang/String;) -java/util/zip/ZipFile.getInputStream(Ljava/util/zip/ZipEntry;) -java/util/jar/JarFile.(Ljava/lang/String;) -java/util/jar/JarFile.getInputStream(Ljava/util/jar/JarEntry;) -android/content/Context.getSharedPreferences(Ljava/lang/String;I)Landroid/content/SharedPreferences; -android/content/ContentResolver.openInputStream(Landroid/net/Uri;)Ljava/io/InputStream; -android/content/ContentResolver.openOutputStream(Landroid/net/Uri;Ljava/lang/String;)Ljava/io/OutputStream; -android/content/res/AssetFileDescriptor.createInputStream()Ljava/io/FileInputStream; -android/content/res/AssetFileDescriptor.createOutputStream()Ljava/io/FileOutputStream; -android/content/SharedPreferences$Editor.apply()V -android/content/SharedPreferences$Editor.commit()B -android/content/res/AssetManager.list(Ljava/lang/String;)[Ljava/lang/String; -android/content/res/AssetManager.open(Ljava/lang/String;)Ljava/io/InputStream; -android/content/res/AssetManager.open(Ljava/lang/String;I)Ljava/io/InputStream; -android/content/res/AssetManager.openFd(Ljava/lang/String;)Landroid/content/res/AssetFileDescriptor; -android/content/res/AssetManager.openNonAssetFd(Ljava/lang/String;)Landroid/content/res/AssetFileDescriptor; -android/content/res/AssetManager.openNonAssetFd(ILjava/lang/String;)Landroid/content/res/AssetFileDescriptor; -android/content/res/AssetManager.openXmlResourceParser(Ljava/lang/String;)Landroid/content/res/XmlResourceParser; -android/content/res/AssetManager.openXmlResourceParser(ILjava/lang/String;)Landroid/content/res/XmlResourceParser; -android/database/sqlite/SQLiteDatabase.beginTransaction()V -android/database/sqlite/SQLiteDatabase.beginTransactionNonExclusive()V -android/database/sqlite/SQLiteDatabase.beginTransactionWithListener(Landroid/database/sqlite/SQLiteTransactionListener;)V -android/database/sqlite/SQLiteDatabase.delete(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)V -android/database/sqlite/SQLiteDatabase.deleteDatabase(Ljava/io/File;)Z -android/database/sqlite/SQLiteDatabase.endTransaction()V -android/database/sqlite/SQLiteDatabase.execSQL(Ljava/lang/String;)V -android/database/sqlite/SQLiteDatabase.execSQL(Ljava/lang/String;[Ljava/lang/Object;)V -android/database/sqlite/SQLiteDatabase.insert(Ljava/lang/String;Ljava/lang/String;Landroid/content/ContentValues;)J -android/database/sqlite/SQLiteDatabase.insertOrThrow(Ljava/lang/String;Ljava/lang/String;Landroid/content/ContentValues;)J -android/database/sqlite/SQLiteDatabase.insertWithOnConflict(Ljava/lang/String;Ljava/lang/String;Landroid/content/ContentValues;I)J -android/database/sqlite/SQLiteDatabase.query(ZLjava/lang/String;[java/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor; -android/database/sqlite/SQLiteDatabase.query(Ljava/lang/String;[java/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor; -android/database/sqlite/SQLiteDatabase.query(ZLjava/lang/String;[java/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/os/CancellationSignal;)Landroid/database/Cursor; -android/database/sqlite/SQLiteDatabase.query(Ljava/lang/String;[java/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor; -android/database/sqlite/SQLiteDatabase.queryWithFactory(Landroid/database/sqlite/SQLiteDatabase$CursorFactory;ZLjava/lang/String;[java/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/os/CancellationSignal;)Landroid/database/Cursor; -android/database/sqlite/SQLiteDatabase.queryWithFactory(Landroid/database/sqlite/SQLiteDatabase$CursorFactory;ZLjava/lang/String;[java/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor; -android/database/sqlite/SQLiteDatabase.rawQuery(Ljava/lang/String;[Ljava/lang/String;Landroid/os/CancellationSignal;)Landroid/database/Cursor; -android/database/sqlite/SQLiteDatabase.rawQuery(Ljava/lang/String;[Ljava/lang/String;)Landroid/database/Cursor; -android/database/sqlite/SQLiteDatabase.rawQueryWithFactory(Landroid/database/sqlite/SQLiteDatabase$CursorFactory;Ljava/lang/String;[java/lang/String;Ljava/lang/String;Landroid/os/CancellationSignal;)Landroid/database/Cursor; -android/database/sqlite/SQLiteDatabase.rawQueryWithFactory(Landroid/database/sqlite/SQLiteDatabase$CursorFactory;Ljava/lang/String;[java/lang/String;Ljava/lang/String;)Landroid/database/Cursor; -android/database/sqlite/SQLiteDatabase.replace(Ljava/lang/String;Ljava/lang/String;Landroid/content/ContentValues;)J -android/database/sqlite/SQLiteDatabase.replaceOrThrow(Ljava/lang/String;Ljava/lang/String;Landroid/content/ContentValues;)J -android/database/sqlite/SQLiteDatabase.update(Ljava/lang/String;Ljava/lang/String;Landroid/content/ContentValues;)J -android/database/sqlite/SQLiteDatabase.updateWithOnConflict(Ljava/lang/String;Landroid/content/ContentValues;Ljava/lang/String;[Ljava/lang/String;I)J -android/graphics/BitmapFactory.decodeByteArray([BIILandroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap; -android/graphics/BitmapFactory.decodeByteArray([BII)Landroid/graphics/Bitmap; -android/graphics/BitmapFactory.decodeFile(Ljava/lang/String;Landroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap; -android/graphics/BitmapFactory.decodeFile(Ljava/lang/String;)Landroid/graphics/Bitmap; -android/graphics/BitmapFactory.decodeFileDescriptor(Ljava/io/FileDescriptor;)Landroid/graphics/Bitmap; -android/graphics/BitmapFactory.decodeFileDescriptor(Ljava/io/FileDescriptor;Landroid/graphics/Rect;Landroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap; -android/graphics/BitmapFactory.decodeResource(Landroid/content/res/Resources;I)Landroid/graphics/Bitmap; -android/graphics/BitmapFactory.decodeResource(Landroid/content/res/Resources;ILandroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap; -android/graphics/BitmapFactory.decodeResourceStream(Landroid/content/res/Resources;Landroid/util/TypedValue;Ljava/io/InputStream;Landroid/graphics/Rect;Landroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap; -android/graphics/BitmapFactory.decodeStream(Ljava/io/InputStream;)Landroid/graphics/Bitmap; -android/graphics/BitmapFactory.decodeStream(Ljava/io/InputStream;Landroid/graphics/Rect;Landroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap; diff --git a/booster-task-analyser/src/main/resources/style.css b/booster-task-analyser/src/main/resources/style.css deleted file mode 100644 index 0623a9e0a..000000000 --- a/booster-task-analyser/src/main/resources/style.css +++ /dev/null @@ -1,7 +0,0 @@ -html { - font-family: arial, sans-serif; -} - -ul.refs ul { - color: rgba(0, 0, 0, 0.3); -} diff --git a/booster-task-analyser/src/main/resources/whitelist.txt b/booster-task-analyser/src/main/resources/whitelist.txt deleted file mode 100644 index 0b1912436..000000000 --- a/booster-task-analyser/src/main/resources/whitelist.txt +++ /dev/null @@ -1,2 +0,0 @@ -timber/log/Timber$Tree.getStackTraceString(Ljava/lang/Throwable;)Ljava/lang/String; -com/umeng/commonsdk/statistics/common/ULog.getStackTraceString(Ljava/lang/Throwable;)Ljava/lang/String; diff --git a/booster-task-analyser/src/test/java/androidx/annotation/MainThread.java b/booster-task-analyser/src/test/java/androidx/annotation/MainThread.java deleted file mode 100644 index ca5c5fad9..000000000 --- a/booster-task-analyser/src/test/java/androidx/annotation/MainThread.java +++ /dev/null @@ -1,11 +0,0 @@ -package androidx.annotation; - -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -@Retention(RetentionPolicy.CLASS) -@Target({ElementType.METHOD, ElementType.CONSTRUCTOR, ElementType.TYPE, ElementType.PARAMETER}) -public @interface MainThread { -} diff --git a/booster-task-analyser/src/test/java/org/greenrobot/eventbus/Subscribe.java b/booster-task-analyser/src/test/java/org/greenrobot/eventbus/Subscribe.java deleted file mode 100644 index b805163a4..000000000 --- a/booster-task-analyser/src/test/java/org/greenrobot/eventbus/Subscribe.java +++ /dev/null @@ -1,14 +0,0 @@ -package org.greenrobot.eventbus; - -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -@Retention(RetentionPolicy.RUNTIME) -@Target(ElementType.METHOD) -public @interface Subscribe { - - ThreadMode threadMode() default ThreadMode.POSTING; - -} diff --git a/booster-task-analyser/src/test/java/org/greenrobot/eventbus/ThreadMode.java b/booster-task-analyser/src/test/java/org/greenrobot/eventbus/ThreadMode.java deleted file mode 100644 index 75cd02481..000000000 --- a/booster-task-analyser/src/test/java/org/greenrobot/eventbus/ThreadMode.java +++ /dev/null @@ -1,9 +0,0 @@ -package org.greenrobot.eventbus; - -public enum ThreadMode { - - POSTING, - MAIN, - BACKGROUND, - ASYNC -} diff --git a/booster-task-analyser/src/test/kotlin/com/didiglobal/booster/task/analyser/AnalyserTaskTest.kt b/booster-task-analyser/src/test/kotlin/com/didiglobal/booster/task/analyser/AnalyserTaskTest.kt deleted file mode 100644 index b77b92d59..000000000 --- a/booster-task-analyser/src/test/kotlin/com/didiglobal/booster/task/analyser/AnalyserTaskTest.kt +++ /dev/null @@ -1,20 +0,0 @@ -package com.didiglobal.booster.task.analyser - -import com.didiglobal.booster.kotlinx.Wildcard -import com.didiglobal.booster.task.analyser.performance.VALUE_BLACKLIST -import java.net.URL -import kotlin.test.Test -import kotlin.test.assertNotNull -import kotlin.test.assertTrue - -class AnalyserTaskTest { - - @Test - fun `check if blacklist exists`() { - assertNotNull(VALUE_BLACKLIST) - assertTrue(URL(VALUE_BLACKLIST).openStream().bufferedReader().use { - it.readLines().map(Wildcard.Companion::valueOf).toSet() - }.isNotEmpty()) - } - -} \ No newline at end of file diff --git a/booster-task-analyser/src/test/kotlin/com/didiglobal/booster/task/analyser/AnnotationExample1.kt b/booster-task-analyser/src/test/kotlin/com/didiglobal/booster/task/analyser/AnnotationExample1.kt deleted file mode 100644 index be9951f89..000000000 --- a/booster-task-analyser/src/test/kotlin/com/didiglobal/booster/task/analyser/AnnotationExample1.kt +++ /dev/null @@ -1,20 +0,0 @@ -package com.didiglobal.booster.task.analyser - -import androidx.annotation.MainThread - -@MainThread -class AnnotationExample1 { - - fun fun1() { - } - - fun fun2() { - } - - fun fun3() { - } - - fun fun4() { - } - -} \ No newline at end of file diff --git a/booster-task-analyser/src/test/kotlin/com/didiglobal/booster/task/analyser/AnnotationExample2.kt b/booster-task-analyser/src/test/kotlin/com/didiglobal/booster/task/analyser/AnnotationExample2.kt deleted file mode 100644 index 5e0e05c58..000000000 --- a/booster-task-analyser/src/test/kotlin/com/didiglobal/booster/task/analyser/AnnotationExample2.kt +++ /dev/null @@ -1,24 +0,0 @@ -package com.didiglobal.booster.task.analyser - -import org.greenrobot.eventbus.Subscribe -import org.greenrobot.eventbus.ThreadMode - -class AnnotationExample2 { - - @Subscribe(threadMode = ThreadMode.MAIN) - fun fun1() { - } - - @Subscribe(threadMode = ThreadMode.MAIN) - fun fun2() { - } - - @Subscribe(threadMode = ThreadMode.MAIN) - fun fun3() { - } - - @Subscribe(threadMode = ThreadMode.MAIN) - fun fun4() { - } - -} \ No newline at end of file diff --git a/booster-task-analyser/src/test/kotlin/com/didiglobal/booster/task/analyser/URITest.kt b/booster-task-analyser/src/test/kotlin/com/didiglobal/booster/task/analyser/URITest.kt deleted file mode 100644 index c8828b887..000000000 --- a/booster-task-analyser/src/test/kotlin/com/didiglobal/booster/task/analyser/URITest.kt +++ /dev/null @@ -1,18 +0,0 @@ -package com.didiglobal.booster.task.analyser - -import java.net.URI -import kotlin.test.Test -import kotlin.test.assertFalse -import kotlin.test.assertTrue - -class URITest { - - @Test - fun `parse string as uri`() { - val home = URI(System.getProperty("user.home")) - assertFalse(home.isAbsolute) - val github = URI("http://github.com") - assertTrue(github.isAbsolute) - } - -} diff --git a/booster-task-analyser/src/test/resources/AnnotationExample1.class b/booster-task-analyser/src/test/resources/AnnotationExample1.class deleted file mode 100644 index b196815430d09a71c18ee8cbda9fd17553b0936a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 971 zcmbVK%Wl&^6g^|dcH#!|pe;)naM^WPQ$n%pV zQ(@|OcYllk#A0U{4olf4j4oAgparvae3tJ`zK*vIWQSE+gt`| zB7#$opXQ~qO$PJc{VoA@EHZ|t?f+oF6yLIFc?;I&$rG!-_o8l ztXy>c(SZ2E>m&#nDs3Udyhj6V(RUr&!a9+g~mDQen^ICKYT0njkWhfsYD!h zMJDLVpBIq-8~IsFjxL;{34;vOkA)g+(C5buLJw(D7hqp#F>sSsdrFkBN&E8b5Ji*- z)!;4`mgfqW77HtLh2_P<`WzwC|4iPaN0Cwa)`PF8{M)Dfm)OetG;xcr8@P_!6!%G7 z)wcCuwosprD_H)GR$5raRbtWTfn`|3dJm;ckBtmY279`3Gc08&XSjwtlvJB+0lxrp C^{>tV diff --git a/booster-task-analyser/src/test/resources/AnnotationExample2.class b/booster-task-analyser/src/test/resources/AnnotationExample2.class deleted file mode 100644 index e301e5d8e8e4e9d59e07bba8b76de5b3642332f3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1073 zcmbVLO>fgc6r6P&CpArzhBl<-n-;`}irdly0)$i$h*n7}kt&y**6}vo#_=NWCgRxN z!ig&C=e=6E0hYW*#+>f>x zGI#Ga8P;kl?s%P8h$vRRGM*TS$oPHjHTu48$I=&18C-J`3m()}AQ;yFS#mU4MKyMP zckh5Eb0RgvliL5DB$1*WZ;z%&qiKi1c_t%ip3kEM$AyhWhQ(S}88XDH3&R6$IMrIc zL5AF9$xx!yPg5i*dBM6w1>{C!c(&wPRm-(X!!y^)Cx9YvSBGcY)+T$AJ^$bkwVy9# zR;^9@O^#4@f}9D;jnMf=C!a{uw!u&t_iba+w~eH449kCa?qQdB`(-Ws;A{mAC!K$ew6QEs6c5NyfVk)sNfawG0KeV3ASDlf@#1L-|e0 z9#GIe!9LMo;TDZfO1M}fJU{w~3xt4miUKio!;lx4gG*Y4=~@f3YAsCHD$lA_oUT=w zO^g1f)Re?8kB*-BmA(HNvm7BYKSPTvYH{miO+ iSivf>xZDEMxPq%K%xTPPT+?tgvMDHNENB!puKxhhzP-T! diff --git a/booster-task-check-snapshot/README.md b/booster-task-check-snapshot/README.md deleted file mode 100644 index ee4d2e841..000000000 --- a/booster-task-check-snapshot/README.md +++ /dev/null @@ -1,12 +0,0 @@ -# booster-task-check-snapshot - -This module is used for snapshot dependencies checking - -本模块用于检查依赖中是否包含有 snapshot 的依赖项 - -## Getting Started - -```bash -./gradlew checkSnapshot -``` - diff --git a/booster-task-check-snapshot/build.gradle b/booster-task-check-snapshot/build.gradle deleted file mode 100644 index 0afb3ba9b..000000000 --- a/booster-task-check-snapshot/build.gradle +++ /dev/null @@ -1,9 +0,0 @@ -apply from: "$rootDir/gradle/booster.gradle" - -dependencies { - kapt "com.google.auto.service:auto-service:1.0" - implementation 'com.google.auto.service:auto-service:1.0' - implementation project(':booster-api') - compileOnly 'com.android.tools.build:gradle:4.0.0' - testCompileOnly 'com.android.tools.build:gradle:4.0.0' -} diff --git a/booster-task-check-snapshot/src/main/kotlin/com/didiglobal/booster/task/dependency/CheckSnapshot.kt b/booster-task-check-snapshot/src/main/kotlin/com/didiglobal/booster/task/dependency/CheckSnapshot.kt deleted file mode 100644 index c76cdbd2a..000000000 --- a/booster-task-check-snapshot/src/main/kotlin/com/didiglobal/booster/task/dependency/CheckSnapshot.kt +++ /dev/null @@ -1,31 +0,0 @@ -package com.didiglobal.booster.task.dependency - -import com.android.build.gradle.api.BaseVariant -import com.didiglobal.booster.gradle.dependencies -import com.didiglobal.booster.kotlinx.CSI_RESET -import com.didiglobal.booster.kotlinx.CSI_YELLOW -import com.didiglobal.booster.kotlinx.ifNotEmpty -import org.gradle.api.DefaultTask -import org.gradle.api.internal.artifacts.repositories.resolver.MavenUniqueSnapshotComponentIdentifier -import org.gradle.api.tasks.Internal -import org.gradle.api.tasks.TaskAction - -internal open class CheckSnapshot : DefaultTask() { - - @get:Internal - lateinit var variant: BaseVariant - - @TaskAction - fun run() { - if (!variant.buildType.isDebuggable) { - variant.dependencies.filter { - it.id.componentIdentifier is MavenUniqueSnapshotComponentIdentifier - }.map { - it.id.componentIdentifier as MavenUniqueSnapshotComponentIdentifier - }.ifNotEmpty { snapshots -> - println("$CSI_YELLOW ⚠️ ${snapshots.size} SNAPSHOT artifacts found in ${variant.name} variant:$CSI_RESET\n${snapshots.joinToString("\n") { snapshot -> "$CSI_YELLOW→ ${snapshot.displayName}$CSI_RESET" }}") - } - } - } - -} diff --git a/booster-task-check-snapshot/src/main/kotlin/com/didiglobal/booster/task/dependency/CheckSnapshotVariantProcessor.kt b/booster-task-check-snapshot/src/main/kotlin/com/didiglobal/booster/task/dependency/CheckSnapshotVariantProcessor.kt deleted file mode 100644 index 6e4e33e1d..000000000 --- a/booster-task-check-snapshot/src/main/kotlin/com/didiglobal/booster/task/dependency/CheckSnapshotVariantProcessor.kt +++ /dev/null @@ -1,40 +0,0 @@ -package com.didiglobal.booster.task.dependency - -import com.android.build.gradle.api.BaseVariant -import com.android.build.gradle.internal.tasks.factory.dependsOn -import com.didiglobal.booster.BOOSTER -import com.didiglobal.booster.gradle.javaCompilerTaskProvider -import com.didiglobal.booster.gradle.project -import com.didiglobal.booster.task.spi.VariantProcessor -import com.google.auto.service.AutoService -import org.gradle.api.UnknownTaskException - -private const val TASK_NAME = "checkSnapshot" - -@AutoService(VariantProcessor::class) -class CheckSnapshotVariantProcessor : VariantProcessor { - - override fun process(variant: BaseVariant) { - variant.project.tasks.let { tasks -> - val checkSnapshot = try { - tasks.named(TASK_NAME) - } catch (e: UnknownTaskException) { - tasks.register(TASK_NAME) { - it.group = BOOSTER - it.description = "Check snapshot dependencies" - } - } - @Suppress("DEPRECATION") - tasks.register("check${variant.name.capitalize()}Snapshot", CheckSnapshot::class.java) { - it.group = BOOSTER - it.description = "Check snapshot dependencies for ${variant.name}" - it.variant = variant - it.outputs.upToDateWhen { false } - }.also { - variant.javaCompilerTaskProvider.dependsOn(it) - checkSnapshot.dependsOn(it) - } - } - } - -} diff --git a/booster-task-compression-cwebp/README.md b/booster-task-compression-cwebp/README.md deleted file mode 100644 index 1dc3f5051..000000000 --- a/booster-task-compression-cwebp/README.md +++ /dev/null @@ -1,24 +0,0 @@ -# booster-task-compression-cwebp - -This module is used for assets and resource compression using `cwebp` - -## Properties - -The following table shows the properties that transformer supports: - -| Property | Description | Example | -| ---------------------------------------- | ---------------------------------------- | ------------------------------------------- | -| `booster.task.compression.cwebp.quality` | compression quality (the default is 80) | | -| `booster.task.compression.cwebp.ignores` | ignore wildcards (separated by comma) | `mipmap/ic_launcher*,drawable/ic_launcher*` | - -## Using `cwebp` - -```bash -./gradlew assembleDebug -Pbooster.task.compression.cwebp.quality=75 -``` - -or configured in the `gradle.properties`: - -```properties -booster.task.compression.cwebp.quality=75 -``` diff --git a/booster-task-compression-cwebp/build.gradle b/booster-task-compression-cwebp/build.gradle deleted file mode 100644 index 42eaccc1b..000000000 --- a/booster-task-compression-cwebp/build.gradle +++ /dev/null @@ -1,10 +0,0 @@ -apply from: "$rootDir/gradle/booster.gradle" - -dependencies { - kapt "com.google.auto.service:auto-service:1.0" - implementation project(':booster-task-compression') - compileOnly 'com.android.tools.build:gradle:4.0.0' - compileOnly 'com.android.tools.build:builder:4.0.0' - testCompileOnly 'com.android.tools.build:gradle:4.0.0' - testCompileOnly 'com.android.tools.build:builder:4.0.0' -} diff --git a/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/AbstractCwebpCompressImages.kt b/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/AbstractCwebpCompressImages.kt deleted file mode 100644 index 69ea00885..000000000 --- a/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/AbstractCwebpCompressImages.kt +++ /dev/null @@ -1,24 +0,0 @@ -package com.didiglobal.booster.task.compression.cwebp - -import com.didiglobal.booster.compression.CompressionOptions -import com.didiglobal.booster.compression.task.CompressImages -import com.didiglobal.booster.gradle.getProperty -import org.gradle.api.tasks.TaskAction -import java.io.File - -/** - * Represents an abstraction of cwebp compression task - * - * @author johnsonlee - */ -abstract class AbstractCwebpCompressImages : CompressImages() { - - @TaskAction - fun run() { - this.options = CompressionOptions(project.getProperty(PROPERTY_OPTION_QUALITY, 80)) - compress(File::hasNotAlpha) - } - - protected abstract fun compress(filter: (File) -> Boolean) - -} \ No newline at end of file diff --git a/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/CWebpProvider.kt b/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/CWebpProvider.kt deleted file mode 100644 index cd7651ab0..000000000 --- a/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/CWebpProvider.kt +++ /dev/null @@ -1,17 +0,0 @@ -package com.didiglobal.booster.task.compression.cwebp - -import com.didiglobal.booster.command.Command -import com.didiglobal.booster.command.CommandProvider -import com.google.auto.service.AutoService - -/** - * Represents cwebp command provider - * - * @author johnsonlee - */ -@AutoService(CommandProvider::class) -class CWebpProvider : CommandProvider { - - override fun get(): Collection = listOf(Command(CWEBP, javaClass.classLoader.getResource(PREBUILT_CWEBP_EXECUTABLE)!!)) - -} \ No newline at end of file diff --git a/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/Cwebp.kt b/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/Cwebp.kt deleted file mode 100644 index f14eee40a..000000000 --- a/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/Cwebp.kt +++ /dev/null @@ -1,82 +0,0 @@ -package com.didiglobal.booster.task.compression.cwebp - -import com.android.build.gradle.api.BaseVariant -import com.didiglobal.booster.command.CommandService -import com.didiglobal.booster.compression.CompressionTool -import com.didiglobal.booster.compression.SimpleCompressionTaskCreator -import com.didiglobal.booster.gradle.minSdkVersion -import com.didiglobal.booster.kotlinx.OS -import com.didiglobal.booster.task.compression.cwebp.Cwebp.Companion.PROGRAM - -/** - * Represents utility class for webp compression - * - * @author johnsonlee - * - * @property opaque The value indicates if compression supports transparent images - */ -class Cwebp internal constructor(val supportAlpha: Boolean) : CompressionTool(CommandService.get(CWEBP)) { - - override fun newCompressionTaskCreator() = SimpleCompressionTaskCreator(this) { aapt2 -> - when (aapt2) { - true -> when (supportAlpha) { - true -> CwebpCompressOpaqueFlatImages::class - else -> CwebpCompressFlatImages::class - } - - else -> when (supportAlpha) { - true -> CwebpCompressOpaqueImages::class - else -> CwebpCompressImages::class - } - } - } - - companion object { - - const val PROGRAM = "cwebp" - - /** - * @see convert-webp - */ - fun get(variant: BaseVariant): Cwebp? { - val minSdkVersion = variant.minSdkVersion.apiLevel - return when { - minSdkVersion >= 18 -> Cwebp(true) - minSdkVersion in 14..17 -> Cwebp(false) - else -> null - } - } - - } - -} - -private val X64 = setOf("x64", "x86_64", "amd64") - -internal val CWEBP = "$PROGRAM${OS.executableSuffix}" - -internal val PREBUILT_CWEBP_EXECUTABLE = "bin/" + when { - OS.isLinux() -> { - "linux/" + if (OS.arch in X64) "x64" else TODO("Unsupported architecture ${OS.arch}") - } - OS.isMac() -> { - "macosx/" + when { - "arm64" == OS.arch || "arm64" in OS.uname -> "arm64" - OS.arch in X64 -> "x64/" + when { - OS.version >= "10.15" -> "10.15" - OS.version >= "10.14" -> "10.14" - OS.version >= "10.13" -> "10.13" - OS.version >= "10.12" -> "10.12" - else -> TODO("Unsupported system version ${OS.version}") - } - else -> TODO("Unsupported architecture ${OS.arch}") - } - } - OS.isWindows() -> { - "windows/" + if (OS.arch in X64) "x64" else TODO("Unsupported architecture ${OS.arch}") - } - else -> TODO("Unsupported OS ${OS.name}") -} + "/$CWEBP" - -private val PROPERTY_PREFIX = Build.ARTIFACT.replace('-', '.') -internal val PROPERTY_OPTION_QUALITY = "${PROPERTY_PREFIX}.option.quality" diff --git a/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/CwebpCompressFlatImages.kt b/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/CwebpCompressFlatImages.kt deleted file mode 100644 index cd57b33ad..000000000 --- a/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/CwebpCompressFlatImages.kt +++ /dev/null @@ -1,106 +0,0 @@ -package com.didiglobal.booster.task.compression.cwebp - -import com.android.SdkConstants -import com.android.SdkConstants.FD_RES -import com.android.builder.model.AndroidProject.FD_INTERMEDIATES -import com.android.sdklib.BuildToolInfo -import com.didiglobal.booster.aapt2.Aapt2Container -import com.didiglobal.booster.aapt2.metadata -import com.didiglobal.booster.compression.CompressionResult -import com.didiglobal.booster.compression.task.Aapt2ActionData -import com.didiglobal.booster.gradle.buildTools -import com.didiglobal.booster.gradle.mergedManifests -import com.didiglobal.booster.gradle.project -import com.didiglobal.booster.kotlinx.CSI_RED -import com.didiglobal.booster.kotlinx.CSI_RESET -import com.didiglobal.booster.kotlinx.file -import com.didiglobal.booster.kotlinx.search -import org.gradle.api.tasks.CacheableTask -import org.gradle.api.tasks.OutputDirectory -import java.io.File -import java.util.stream.Collectors -import javax.xml.parsers.SAXParserFactory - -/** - * Represents a task for compiled image compression using cwebp - * - * @author johnsonlee - */ -@CacheableTask -internal abstract class CwebpCompressFlatImages : AbstractCwebpCompressImages() { - - @get:OutputDirectory - val compressedRes: File - get() = variant.project.buildDir.file(FD_INTERMEDIATES).file("compressed_${FD_RES}_cwebp", variant.dirName, this.name) - - override fun compress(filter: (File) -> Boolean) { - val cwebp = this.compressor.canonicalPath - val aapt2 = variant.buildTools.getPath(BuildToolInfo.PathId.AAPT2) - val parser = SAXParserFactory.newInstance().newSAXParser() - val icons = variant.mergedManifests.search { - it.name == SdkConstants.ANDROID_MANIFEST_XML - }.parallelStream().map { manifest -> - LauncherIconHandler().let { - parser.parse(manifest, it) - it.icons - } - }.flatMap { - it.parallelStream() - }.collect(Collectors.toSet()) - - // Google Play only accept APK with PNG format launcher icon - // https://developer.android.com/topic/performance/reduce-apk-size#use-webp - val isNotLauncherIcon: (Pair) -> Boolean = { (input, metadata) -> - if (!icons.contains(metadata.resourceName)) true else false.also { - ignore(metadata.resourceName, input, File(metadata.sourcePath)) - } - } - - images().parallelStream().map { - it to it.metadata - }.filter(this::includes).filter(isNotLauncherIcon).filter { - filter(File(it.second.sourcePath)) - }.map { - val output = compressedRes.file("${it.second.resourcePath.substringBeforeLast('.')}.webp") - Aapt2ActionData(it.first, it.second, output, - listOf(cwebp, "-mt", "-quiet", "-q", options.quality.toString(), it.second.sourcePath, "-o", output.canonicalPath), - listOf(aapt2, "compile", "-o", it.first.parent, output.canonicalPath)) - }.forEach { - it.output.parentFile.mkdirs() - val s0 = File(it.metadata.sourcePath).length() - val rc = project.exec { spec -> - spec.isIgnoreExitValue = true - spec.commandLine = it.cmdline - } - when (rc.exitValue) { - 0 -> { - val s1 = it.output.length() - if (s1 > s0) { - results.add(CompressionResult(it.input, s0, s0, File(it.metadata.sourcePath))) - it.output.delete() - } else { - val rcAapt2 = project.exec { spec -> - spec.isIgnoreExitValue = true - spec.commandLine = it.aapt2 - } - if (0 == rcAapt2.exitValue) { - results.add(CompressionResult(it.input, s0, s1, File(it.metadata.sourcePath))) - it.input.delete() - } else { - logger.error("${CSI_RED}Command `${it.aapt2.joinToString(" ")}` exited with non-zero value ${rc.exitValue}$CSI_RESET") - results.add(CompressionResult(it.input, s0, s0, File(it.metadata.sourcePath))) - rcAapt2.assertNormalExitValue() - } - } - } - else -> { - logger.error("${CSI_RED}Command `${it.cmdline.joinToString(" ")}` exited with non-zero value ${rc.exitValue}$CSI_RESET") - results.add(CompressionResult(it.input, s0, s0, File(it.metadata.sourcePath))) - it.output.delete() - } - } - } - } - -} - diff --git a/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/CwebpCompressImages.kt b/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/CwebpCompressImages.kt deleted file mode 100644 index 209f690ff..000000000 --- a/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/CwebpCompressImages.kt +++ /dev/null @@ -1,55 +0,0 @@ -package com.didiglobal.booster.task.compression.cwebp - -import com.didiglobal.booster.compression.CompressionResult -import com.didiglobal.booster.compression.task.ActionData -import com.didiglobal.booster.kotlinx.CSI_RED -import com.didiglobal.booster.kotlinx.CSI_RESET -import org.gradle.api.tasks.CacheableTask -import org.gradle.api.tasks.OutputFiles -import java.io.File - -/** - * Represents a task for image compression using cwebp - * - * @author johnsonlee - */ -@CacheableTask -internal abstract class CwebpCompressImages : AbstractCwebpCompressImages() { - - @get:OutputFiles - val compressedImages: Collection - get() = images() - - override fun compress(filter: (File) -> Boolean) { - val cwebp = compressor.canonicalPath - images().parallelStream().filter(this::includes).filter(filter).map { input -> - val output = File(input.canonicalPath.substringBeforeLast('.') + ".webp") - ActionData(input, output, listOf(cwebp, "-mt", "-quiet", "-q", options.quality.toString(), "-o", output.canonicalPath, input.canonicalPath)) - }.forEach { - val s0 = it.input.length() - val rc = project.exec { spec -> - spec.isIgnoreExitValue = true - spec.commandLine = it.cmdline - } - when (rc.exitValue) { - 0 -> { - val s1 = it.output.length() - if (s1 > s0) { - results.add(CompressionResult(it.input, s0, s0, it.input)) - it.output.delete() - } else { - results.add(CompressionResult(it.input, s0, s1, it.input)) - it.input.delete() - } - } - else -> { - logger.error("${CSI_RED}Command `${it.cmdline.joinToString(" ")}` exited with non-zero value ${rc.exitValue}$CSI_RESET") - results.add(CompressionResult(it.input, s0, s0, it.input)) - it.output.delete() - } - } - } - } - -} - diff --git a/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/CwebpCompressOpaqueFlatImages.kt b/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/CwebpCompressOpaqueFlatImages.kt deleted file mode 100644 index 1b513b1c1..000000000 --- a/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/CwebpCompressOpaqueFlatImages.kt +++ /dev/null @@ -1,17 +0,0 @@ -package com.didiglobal.booster.task.compression.cwebp - -import org.gradle.api.tasks.CacheableTask -import java.io.File - -/** - * Represents a task for compiled image compression using cwebp - * - * @author johnsonlee - */ -@CacheableTask -internal abstract class CwebpCompressOpaqueFlatImages : CwebpCompressFlatImages() { - - override fun compress(filter: (File) -> Boolean) = super.compress { true } - -} - diff --git a/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/CwebpCompressOpaqueImages.kt b/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/CwebpCompressOpaqueImages.kt deleted file mode 100644 index 355db517c..000000000 --- a/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/CwebpCompressOpaqueImages.kt +++ /dev/null @@ -1,41 +0,0 @@ -package com.didiglobal.booster.task.compression.cwebp - -import org.gradle.api.tasks.CacheableTask -import java.awt.image.BufferedImage -import java.io.File -import javax.imageio.IIOException -import javax.imageio.ImageIO - -/** - * Represents a task for image compression using cwebp - * - * @author johnsonlee - */ -@CacheableTask -internal abstract class CwebpCompressOpaqueImages : CwebpCompressImages() { - - override fun compress(filter: (File) -> Boolean) = super.compress { true } - -} - -internal fun File.hasNotAlpha() = !hasAlpha() - -internal fun File.hasAlpha() = try { - ImageIO.read(this).let { - it.colorModel.hasAlpha() && it.hasAlpha() - } -} catch (e: IIOException) { - throw IIOException("${e.message}: ${this.canonicalPath}", e.cause) -} - -internal fun BufferedImage.hasAlpha(): Boolean { - for (x in 0 until width step 3) { - for (y in 0 until height step 3) { - if (0xff != ((getRGB(x, y) shr 24) and 0xff)) { - return true - } - } - } - return false -} - diff --git a/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/CwebpCompressionVariantProcessor.kt b/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/CwebpCompressionVariantProcessor.kt deleted file mode 100644 index 058a7ec9d..000000000 --- a/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/CwebpCompressionVariantProcessor.kt +++ /dev/null @@ -1,43 +0,0 @@ -package com.didiglobal.booster.task.compression.cwebp - -import com.android.build.gradle.api.BaseVariant -import com.didiglobal.booster.compression.CompressionResults -import com.didiglobal.booster.compression.generateReport -import com.didiglobal.booster.compression.isFlatPngExceptRaw -import com.didiglobal.booster.compression.isPngExceptRaw -import com.didiglobal.booster.gradle.isAapt2Enabled -import com.didiglobal.booster.gradle.mergeResourcesTaskProvider -import com.didiglobal.booster.gradle.mergedRes -import com.didiglobal.booster.gradle.project -import com.didiglobal.booster.kotlinx.Wildcard -import com.didiglobal.booster.kotlinx.search -import com.didiglobal.booster.task.spi.VariantProcessor -import com.google.auto.service.AutoService - -/** - * @author johnsonlee - */ -@AutoService(VariantProcessor::class) -class CwebpCompressionVariantProcessor : VariantProcessor { - - override fun process(variant: BaseVariant) { - val project = variant.project - val results = CompressionResults() - val ignores = project.findProperty(PROPERTY_IGNORES)?.toString()?.trim()?.split(',')?.map { - Wildcard(it) - }?.toSet() ?: emptySet() - - Cwebp.get(variant)?.newCompressionTaskCreator()?.createCompressionTask(variant, results, "resources", { - variant.mergedRes.search(if (project.isAapt2Enabled) ::isFlatPngExceptRaw else ::isPngExceptRaw) - }, ignores, variant.mergeResourcesTaskProvider)?.configure { - it.doLast { - results.generateReport(variant, Build.ARTIFACT) - } - } - } - -} - -private val PROPERTY_PREFIX = Build.ARTIFACT.replace('-', '.') - -private val PROPERTY_IGNORES = "$PROPERTY_PREFIX.ignores" \ No newline at end of file diff --git a/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/LauncherIconHandler.kt b/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/LauncherIconHandler.kt deleted file mode 100644 index 6fc5817b4..000000000 --- a/booster-task-compression-cwebp/src/main/kotlin/com/didiglobal/booster/task/compression/cwebp/LauncherIconHandler.kt +++ /dev/null @@ -1,31 +0,0 @@ -package com.didiglobal.booster.task.compression.cwebp - -import org.xml.sax.Attributes -import org.xml.sax.helpers.DefaultHandler - -/** - * Represents a handler for launcher icon parsing - * - * @author johnsonlee - */ -internal class LauncherIconHandler : DefaultHandler() { - - private val _icons = mutableSetOf() - - val icons: Set - get() = _icons - - override fun startElement(uri: String, localName: String, qName: String, attributes: Attributes) { - when (qName) { - "application" -> { - attributes.getValue("android:icon")?.let { - _icons.add(it.substringAfter('@')) - } - attributes.getValue("android:roundIcon")?.let { - _icons.add(it.substringAfter('@')) - } - } - } - } - -} diff --git a/booster-task-compression-cwebp/src/main/resources/bin/linux/x64/cwebp b/booster-task-compression-cwebp/src/main/resources/bin/linux/x64/cwebp deleted file mode 100644 index 36052a4b0dc9a1cf9dcb20eda9a21362010896ba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2419040 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 z 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

+$=+c8<4hh_sLWvsOSa+noigc_CX~L80ybair>a zFGndqb{6;%Z#j7pZUibMgR$pFplo@q)oZ&;p(=->up>JRfPT+|w;JEttsjAs^r-hf zhRQY-R;>2g45hVY9M1m}(dujlB?uNi!LU#&EO(AE z>(&381Q>Oe44mW$Xuyp1BoW~U1s3~t1#DqJ0ybK*LH`nnH?c22J}8I&NDGd;;Bsus z@M8`{C3Jh^T17Rvaoc}gNgFq|o;#3TnyoH-O7y@<>g1Z6@EbMX+x)_|Eu6I_c*@Jn zO4rLoD%y!AdRr$`x2bJbBW<_WxZI%20iCS_+O{9Xxf1A0@Tvk{;HcmDZIlHMGupNm zg?0mO*IVtq8U#0@0;n-PuAnygX4I)&8fhtnDhk~lYc&Elv6*|w+uhKziPvqLc-`9Z zE#V`^w%mM7XlzS~;`H~XQsyD`^bhJ`3KRx2VETs+Tb-j*LUql9F z2rEjq7hiv=cSfNk5hq7c_(X+Dcu z2>83r^>*5-N1x|5ZORn}8_S`vB9|b+rh^=uCP zV58mYSQ6UIf=Ba;D7{>q+G-DA8&>_je_2+2CqZ#~^i}uL$}ZWA+-Glx>MnV%-*5hI z%z0UOM7&Khe?`)_gm!G<v zhuKU35@RP}+q8&_o3rC#aF~31zE}I{t3$Qk&YK7Yw%N9?;KSRI&u99l(gnAvTZ8o8 zp%<$)Jcen<9sg^BrpnyJ^Jg;6ipHQ0=Ec)=bjU(IW|t?u?_0~-$BlA8<2XQ^*K6+} zQg#Cy2dM#()T|OYup(>9A?Ri;_q}!&?rzs|_KU;|AtD2tf}@EwJLxcS z!ch~@GMxDhJRB>=1yy7faX(6!@saLFOGXFA*J(MO`dc@nC*b*Y_ij(|1>cbfI)S3Mzdu6aa zcZueZejD#FO7vFOc{@ksADM6Jr{%4eM zFL$q~Lrvgj@`6b9=hM!QaPLGZMV&b(KoEMdGmdz&Ku{IZvu}j>^Oc*VFigm&x@-;p zFR7AhU~1Fn*Q4Sg&gVCakVg-2=BxwQ3Kem7F_DXc^o(q6hF%P+(Inny3Yeq1qx+{O zgZKZY*&bSIPV?Hd`*lMHM-eoX*4-sS<8#nQo_`Ob%46A5llRQER~Fz1pa!cU$83Y6 z3!OPvU|(|d zpuQ{a=}>bT$c1R4#-v8*9aX-61XOh_EeM%TKM5+-4QK|O^XYUcC{;QwL4%Bb)2dGAGI17eO;&8m>R6{3uThWgu z@m9)AtGfJZ&1sIK-oI(EjGd{?`~dI~5jbL%IHUylch|pse3w+E|3KGmnP!RXKeuuTKvS}v_mpZfPIyg<6&TOR_&cP{7L z<26q61@IN5a(RFLlt?U>M+)vLi$)4=E*lPEl!g!l#=`A1A4XBp+=vLZR(VV7Q^3f~ zi_Eb`g=Jy~^s|uT%_7+`1iR^(97~By$5hhffWHvLjF}$$Y0SyB?<95il7WqlMCv3*QJWy7>*uaUiLP8}0{GG)12fAF_Jf>W8~k&} z^ycQtN|=4-c>eV0dmN2Nh-U6LP!!{C>ef8xoIZ*>BfmKq`9Imi7oR8ge*Dc~%A^s)jTQV|6NbRVf2$!|)k=|1GQZ;8_~)aBizzUfCP`ve zi7Ziw%KatV_~J^gv|0foE!@$Iu(_D+#oeE)t=T@%;d8VGzdI1ZuD86GYVUOz9%eLr zf&NC-nw~JsOn)BiQBAd>E;q4iR-$zv^Pq$~o4_ya7MuN| zU_O=DLHOG^C}nVuR85WsQ>x%#Gvh#7uo$mD2OJs+ow*U9&9%>!+cH<0xsVf97Sr0x(Aa+WC zcojVuL5Wh8h@@xi;0w^Z7G6d05(*600LmrFybT7u!94rWe{id{g%wL`?Vs!7jS~wB z452{uzyizs$rMQc2ya((L}EY_ytLi>m<|rbXe*NP*HU0Yy5u|!&sx)KO!o@|5p}@B+anVx4f5jaqjmHmz zps!kw7$RP%xI0d5n?Rd+kMAsxbY^F0h%p2BU{%o%$>lB0b;n8mNe3K*K5)A%Z))M= zT4?q@UI3vWxmfImiWu}zcZpv1;~+oEba#LAIfxG{cIU5PEJNt})b)c+Y{GJ5_pMmr zwOe_-mBAvR+Yklx)vK8 z_QpuXS|oX3rD^jWWctYdSZl^Q3r1pHE+V4${I1OBh*diD=zA8H-*3;!tID-mLd`5h z$;#Cr{}SnR8J3tgJ9R&Hy~Z8Sue6St(IU6+al8d}uWUYxlW?cZ5|Y(J108I~3C z_LyZtkAS)sL=}rs8S&nrkIRkV@_+IlV0HnlC0){(uAh`|Hf?enHbnA$#jpIU-SU18 zPFDG5AlEf8&)7=}dh8{1S@x1fyu*6zC0S{UAYxVsXdwY8J_y&P@o%9q?F8Rr-PAu! z$f7bD!@M0#SM8F12x2SRz196>QDw6Oc!=y+yiL;T-CCOl(WHCLR0AK^L;%Z-rMs%e z0^g{^H{}~nDZ<+)|Bd}I(8~XU{pJ1$YPQ%1Zke0t7AC|^gkT%gpB5^1no)XLs=6s( zMnFSxJ=FE~YyWHg9sX+k%(B4CWcorvx6cGtn!;&pU~Knq8-+Ru5DJ@S43(lbjZ@gX zRc>2eGt|hocg>n&)ZM}4I(!Ks7k;$o3r)Di@7f8sZ?TzwuLrN&d1cxe+Y!Iznl1bm z2fst~n^}sur-~zjZx-1q{$!RR+xd;j+6~rT9-Z(yiv!D=v?XY%-Bqxv4d8d87Oc@*r5;`j$7! zl{l}IMITqSS+~c%zX5X>6#cDnWH8%*31XbW%W1NJG1d7{A(~QP(SWIa#7&+_6sjIrXJ)+Z~w^?de=8j z_5CzgU*;IN7zYziNZoW$Z`rY?2i7{@idyA6!Irx*b1@`F6@-F#!hh?cZLayWIjri>ZA0f zvU(HKB1$AJ|Bf}eZ_EscrWV;!)Hi51^lr{Xw!Mk0v# z)9Q17e5){!Y1#)p`iIIrPlgh!hg31Z$s*(Qs2^Z3P>TZ>_2Q?Ei_}`bR7%Y`b57OY z`3a>V7JkUBGu*a)H=D2cx*NSF=w9P)u2tA1+?#RnK-I?2=E~;{1f1m8X;oJX8W7Zy zni-^i*!OQk=$QxUrC?kvf3@Tt=B>VLFwhWbq=+g*U=tarlDe;1{%g%sDAc%{(z*nt zad&?k#LsEgMOUKmk^C}ud*-XN0RMwYghXo%ISX#hZ)j^PY-nree@9{H)6i$cc6R1} z;mluE(=wtZ8g7}?ub!JNtCz=@XEHd&5Fc>`*HvLMWm(F*MmtEG^rLd}2!OUgw3$oQ zefHVkEr=hHSR_Zid}q!;)nVYKFV`7$I*b3MD2r{T{sC;xJIS}D3sLINiFd=X$2+-k z!03_h4u~(c^)U&arcCGG%{ug5F4+8|UVj^u3&kI?=Dv=Ig&$B=0nr z&>_L8h~LV!^p^{VLy7hf=L4hp1UagHJ-#ht-F=dL09GwBOh~F*L;jCeFw{abRGXi8 zm*xNQG?&q>dPd@R{=zkG(3$U&;vf2jkvMBmt3-T1UTA3XIqpu->yPZ~%R%lfysFnd z`0Lpp*?Y-kyPp%SPo33gi=?WuwJz1)P2Ez0`y{bE;HPjfEP3opZ3^>T`GTjDwA#*l12zBg{X@Ox6(XgH5 zM*g~q_gVUQJVh{th4F=hKWc>N-bD&?-uxDCb*b7?wZW-JDqlbf+Ao_F^Nqn~xG~rS z%@1v$52tY*cSsK-bp5s-Mw*EsMfeOqb&4Ie`ZiR3DatLcM0 z;@vlONG$>UrMma*(4pA@QgR=Ql?b7%0rl+R47O`|acrKPy)7T(W+JXacVVE`YgvJG4)AeD4TEzz+K zrNdzeBgUt+jhTZ58^Gio$VPah{}NgxcDP8{uxEt9$8jpD-7Q)?ln>BfhiJBbgXf61 zldI+EM-3%*N+uLH&Om*KwY?Iy;tQK#;)P;Ep}U8{f28EocJf+27iwa(KMkxv5KwAw?aciB_;JRXajMs`I{AB?|ioRR*;; zP;265JZ5H$s7=i*o|yXf2*45h$nvk81h|fY)`dROWlr&}ru-eN%}#|3j#asUI8O6w z>O;Imd+nCOr!Xs+>ovcCry$Gvu{;&5$NXIkBO>s8kXVHyvSNsSkU0m26!2XNJ3I{>wf6h1nNhtHE$*Rewe^t%!>GyWP?}|)bQlI7ddn!auOc^tIGD~Sm z982`)G;gN_NM{eGQHAkYLFJGx7&Wn4OadxL^PQ?bJ?c9F+nfGWu3xDKwER-Yl;IKY zwcr*9wWi7IKl!k@K+m-0goPQvE{O9`dIGBu;}Ruh_Q;Kb^JyFXA@U!+9F7kh&9Px6 z9wE*vC91rM!bf5ovf6y(X_i9d~%e;)m)-q9&h5*#O%mzD-UaaIi zAfbWh5HM7{Df1T<1b(tJ(7QjdbmsMM!Rya?_4|GNg{9N1JTqE4p%cCyO%+5_BciDr z3RB}4T+Hyh($u&js-BvfEzR-|d3o2uk z$;^VO6P_26N1(Piua`LaG>T=h3cI7Cnw}R8eah>k=$c(oKwiWAnCi@X(K?%TK$R0i z++Bwk;e&0sGo*(OydXV%V0uP~o~W7;b>22ifl+(uteMZ=Zg1(+u&BH>yA$t)D%Pxf z&wD5F0h&_CnY|5^nc&Sv4pi(~vuoXESXISm1>6d|ZmZk~ssNj2X>_qTE|8k!eVTX= zmzY+Z?slw>RIFUH+eJ37*@cC7-G`>7iZ!mcn~21u(+*Pod1v--Xv$63?W2i(;HE56 zeLYsk**E|*N5jWlkREz?y|+#JM!8Ybqp4fV1Aeqg2&zIFX`8Hu(i4<0!ssUT>ETrd ze||m2t=yM}t4G;IE9XwkY1aef&I<#6)sR4_I1AciCpZgU$K19$lD=CzY6`~5#q;%Y z?%M2_pRK3Ef91S2A{K7&MwdrJxahWpRV9Z#?%-_n;0A6)|1%MDUz-~#xIR0oIZoCR)Ij8sfS>JraUttIhw3wi+R@Vr50^s#i_>zR(Sdm|@Sb8p0ahV}l)egfow807w1hd1EZP)EFYM zLAGG_-^G3_*YU2J{)wHwuhs>#ZHptEF^V(eeO5Yn$ z!KHkw*X+`qTDRF$j=-w&KEv63O?FQ0%Xemvr~dReG@o_?ePgbd%5E^({2z4AV9`mO z#)!1HGSyqp2K4XR#9C2#BJ9dC4{H$aNiYj;O?>(s+F}-MGYs0;x*iE<1=HH&%(aDj zS4zi791z8vcMM?>5jxjdgnr$2&+Y#B2Q#EoH?nXwEzJD!@Bip){GL+n#T z?3rs3Ox_y?qT28sARd?b3KB=tLd-4mF_JR(awR$5dRu%oj7(_DM5xdbc6!vEFAdJ~ z`#-T?!WVz+Nw`lX-tU!AyoQ8zy%MfaiS}LzaV7kfgt>j>+tg_4EAmLzG*6Gatyf3Y9fG7>E?*wS| zqIDynB%#~~FQdgIA4~}2XMk1`H zNTfUhae}^FS8(Bo`ZS?m;Xb8x)h{@+ALVn``zVs07}D~r2G@{VTLfX;ZkSD&c)uJKD83|gJ`M1wIW=Zqxe=G zd&u%CJhFy=g{+cGnG4Hu#2&8HeV$PIpL5Ml_ZZXA5MyT$MaCgw4t8Z}Y2sng*x4Fg zG13IPpP>-2DuhBH$+MteZD>LyMGOTlh_enrZ}>l%vd2)Kjk@s7g-4-T!~>YRE1Wc5Z+_BwC; zh>2bUd!lbp-sPI(8HDzw(-TuON2I0}bI^3F+SPh(pSu4P{hS#3Fwq%`cdGauYXI|* z{lPr9LH!KJzt+=7j_;^m`j^M3S$%?KVA%)H z_6jM*>o#Q>+X!zpysj-P!gr$02QR51o*_&xV z@luRx48KDYPThcWfo~MzQdTbY>Cv2V8(sE|blF+{ICc&VqU%FD6ML{)+%M|6=Ob!K z?78Xl=3kPR{>lA!Q><-wVY=vI5<OjehOzC(Rs{` zYt@;=)<(9=u~A1uJIQor$7xzaXAJqQ-nyH1ZK2roHHlqcT?`<*r>#r>*b`8)!_E}8 zZ3R4B3~>JD&iOsl^ z?7aJ`=sh zOj#i)6Ggl7{5}$+Dl^ZjT=H7V%jD6d$QUMfDT@sM4_F#{>X-fQA&S{RAe;bX&yAQc z+ACHpp7Rt;=WLF?oy`5z_34{C3az{bCdiXBqp3@Fvez9=EG_hpdmnCvUo2-Da=}Z8 zFZE_@9G`cZ>#c8I$|;IQT0=&hDOPU3{O~<`$d_AteHoO??i*_7;rG<@n5pNgWj*y= zV%(akXj!5E3sX^NJd>FLIL$gw<6{dl7wAU=RHTz3xs66l8nK$jCDQux*bV_V{*P`a~hSiJfQ;mr*^{Rq#pQ_%}~Dnb#<@>Ck@0~-T40Y#t%xpgi0tp z`cuX`l@DLUHkUHV)Tl)Li>4RVFy_Yhi94e&{ND~Z6cT-EgzD#`pUR+@da5edcV+0G zf0xZ!VGB~F%9xyQDQ9^?Ir>L6n!=eM8jEl)K1GhcQ%~u9h8p`ro%v9&`e#R(sW1d> z?}s|b72MIpd3mvunc|P275noaRDTiP*sVtz&wHnN4|PFBrS{$uGru`M3@<>v``xd) zyKka#g1C?QSJ_~k3bJGvQ zH2!sGj(jEE9na@A!nT{`U%+-5iqyC46FRX}d2OLN&8OKX!W&7dk_LV5X6QU&jo)OS zYMkaL?Ng)E{9~1)a(XY-c2CJ@Q+%7P42DIl^Ghv@+vZ-gg-pXx^vlvyDCP<$9O( zTl)cge**`mGK%vZyjSV{zMl6&y-)9XH}&uAd2dmB*6?TB12pEU+MvFN73t^KJ>`ce zKiTtsgYvD+&P&}Mrc0b+E%5LA8=Pb^uN_#shj1J{@i zz#jgn4m3u~3F$1VeFIme2magAOM29QY8<~oO!XNDaQoG()Za7eMq$c-^PgXI6QE!U zKen=sAej2DGZoO^?%0(%_|8|=b>!savBpFELavT8As_x3K-!Nmvw(8>m6f_SO_M0V zS9(;nDhco3KgO6I^b7W8a^U^}OepHzz|oj%OO3VaVFPxrMa;s;mS3U*7%cU`KUfCd z+Q%V5XEqtf(ZD)2tB@!Ou@OLX1N{(~@3@zCV8J@JRT2n~PiX>h+^S}b1`$b3E~)d@ zAccv4=)IcQQWzgZ1cS=8IH}{BzGFvfa#3}=Gv|F^>df2CMs(yA+(mbO-R1O6<%@2` z(rDrw)Ly0*4oMshT*rf3y~nv*;pm&UMN-#swvs3+7{xcaJKl2|Gd!op4VBeP`^^f` zn3T2F$c;41JJAHoQ_cmlsTTFN@>A*zj$p)HUJIqMsHv^j4?$(i_&-w1SdIIu%cR_} z4D_%0xsXJB!}O@X%M$CcZ@1B}GpRN##9R_6TI849!{p~7vo_!p=}|W>vGA)VE3?QX z*JvJ91nI{q{jne&ALIPWwE`d3mdzY-zY~~o9&^X%E{m(L^4SZ41lyYCvzyIljKYo< z`PgT)y@op04s~oW)Ugb8Y;LF*zMUOv44#oW-SFf_0Y&``8oWad?m>+D+t(m6bE=}9 z|Ip2uR)^L)VTTD0W|WCkO62H&mv5rg%i=^z)+zvEG4&fg_1FLsC!wC?)&X-wzD#qj z(%M8X!YZTLpHCqxuXU$ZlCCnXm`)2U)$fTq5wzkZJ5BGshg1tu!qcNRYZ%Mtm~`^| zE0|g6VRI3p`X}`V5M|{Ur#A;T?&9p;BJwcpO(=G|T9M&@;uY_{NXm)F*m}GmT`~|m zpL&{}aunMA%Jb9V|B7A1-dlHc#~NT+kXFk`NZG{i{{ad2_o%!d7TB7~<$;W%k zzTpq2H=LkR2Vy-{v7TS_$$&fp_n^3TP7Ti`5xEC2}evj z%6iseL2HY86AF9A(`u3ecgN26g8Iz%=@JHYe!3*h595d&)lJL=g*AD&XBaI(d1pT6 zB|pqq3R})+k1blzaz0UWqxmi8GpcB)<$Ok^H%6s5Mx{4K71jNQE$4^g&t``8(AW9t z$YDWqPEzS^`UgPnHG)PMeAxClezBE?R2g*!m3^YhHfGi{1sdiG5xu(ZBsY-U)BUKe z2l#Id_vzby)veEXW=63w2gW%VGr(HRF!y~MG9z`clUxm$oCW6>jvl~~LGNW}_PyYr z6SK)D^b32E=_AzIF`+ozG2!rhgBR38eKlWLfW=v-Qz6J|QSQ}&{v;9c(dhiRucm6f zHdT8AB&uq)WNO=#Prd!AHyqTf5RA6owrstfzni--zZ6>#J*efzW^cmb3wf2lZH_vY zW@ZBIoV?M=;~$VP8bcXJn6$Mq8gCw*(k-Cb(R}^cI0<=jAfS39|0K|bkwxm210KQ)mOLk z7>bSJrMvpm_^Xtu{y4s>BR`KX@;YA%_{`eg{cw`c=I}K*(_)?*8EGDl1<8lic?O|n zpa#)Gdhd^ePM@Ei^0n^s)Ad(($DVf6HC9qacdW*Hv=@_`e@6AkHO^1CqXtbbk;&%* z*qW9f(DU1%YkK|z&esWNnF2b|Ft-<;n3WB4b8v6V^rygF&g*9b=PXmBZaO+(BDZsT zOLwffFkNz3TW3My-2u_i=X8=dM1rOFeBF+JP7M9C(*ciMWLZZ~CRT5bY3HH9UANP1 z+cdy!-8p~@K5JX@bsuDBsB&fJ`h&wQ2_t9DA7%z_TwF~#>be+TuK8EsHP^~de<7GM z_n=t9;GE1ng)O;U+si zUDB+!6pyRzgK+J@&uRy@1I_-m16L<@^^dd^#9QkU9|@R?vih0r4^dUr9b6i{rETx# z3vp{Yvq-zhbR~6%TK@aGFpV$=^4%xdfI9xRseiLSs z{^ER%a>2#$+HDbUo$I~G-kCH1V`u(G7hjZDg{^41{wPp8Wfj4KWo($Af|ju$(9Lfd3j$q(z_CmuIW<*Xz9;@nr0SwC z+_r)KNRNdGe|DT$wiuj}1iTjB3>%6I%+tyX}(9 zNjw|6vzlie5`IYPA(@!F+H2xto4eviHLj{LYkbcnqdl1O4qfIx!chEOB>UV2oC1>a zbru?ml&{VWx%DX7mD%heL3U7ww5FUA)8L%euV&KVylIDj<`fV5-7|yHs7_nq%t?Z- z&z!0K$_8_LlT&=`lqbyZurL3p66KtlD__yzOu_57imj#Sun^TXIG3y^ z@nn_T`kB-2_vhhdK6vRf=c+Y4ztG@Z`XV0>dWs6CpU8LpDsAI!)47*ucv~PBbeT#k zMKa%K{xPWHrvr89x*rRIT7TH}6q=CCn8oJIpY-IJ!xIW+COwAhn&W3F1fDzdJBi&S z{#1#(`^E17BsR{r!d;b6|IPD(=@ejk<{V(kL(^lzN;jvIsDJ~q#yzm{{Vy9|3VGI5 zFsMQh>(Qgw;E5m8t1z)jjbCB5y`Wm`(%CN9@0(I)p8?Ko)0^%!??tS*&jA8+Q|72j z#?MrEXU+MgmNdeh<`s*LRRCOQ7vzfYp{_E))O`8%|>RW z_tXqzUZmwQd7paioCxfm)$OfmTG^Nv#!9=*OUWJ_O-*ENl)8&D&Vq@B4PGkAWBj;b z-TP*B4^mOj93{y~`Rx2_dZ95y<^!svSEd$PK>ut17@SMZ{I!|!TIiEbu2V( zhh%i(#kUyval$NvySH_DbUhaBx`{g@erG}8KM0^1_aRND_uwfU=)FO{LSFUC59jpa zAperS`HV04p7o^b{mYi}UiD8k<(#Cf9ErW%v7)BE*K$z8X?~uB0Jp`2ve4!*EAFpB z)h;$__M3o*bI)P?Rk%4+v2y1OJYMaGWpW@V=(ajbvM-;cQ5oMU6cu>{*{D_U^Oy&o=G- z%V=g`@(DgmHxFUlV;;W$Vf-Sb%!10)Q^FMIWm?QUwY_b6On4VX1+XZUmB>k+%Qv>q z-fE*_<>(ngjmJ_c4XW42c1}XBDC=YFhnXqV(J=R5g`P9V_g{h<8sJ4$R<;P7oB7+H0j^Q=hFD zXMkFjq%#9^Iu6kKz+2neTkB75ZA)9dK|v)GAOTb)1W|nOQsE4vywng7lK*$@edZDD zy|;fpA2R3cv!83Nz4lsbuf2Aj)q4tgu?^lapPu$8jz0nB;WoOE0Hg5P2Zz+Qf?eU5-;UpG5$; z&@Dv`<2<1s7TsU&ji2I;|G*_-2e@V2vo8D&-imHd=fg|o6hgIPHTTkk*!vG(lpL$< z@W|3>gs3{|#dW&0B#;cdjAobT-G_caXAq&JqIbfd5(}77+2=8sK)V_Sol#*=0+Hov zLm;fYY|0pX5nk$i|vnjKo{o%L0l|kH6RS zylXsi5#0=0t1}-9cxjp2E$pSgbs#xcWy$0VGX%TB)D{7QF zdhLHuF8f0FW>MJwF=?e|$byfyoLHQU%*BVUWpv+C;Pzx5;LVm*@Cj(*%ipQl@7d&^)@#(SCc359lQQa4Ue~*>)&69~<#emu^rRj>KJE%6)Y$9d7mNZ> zk;7HtWhUlbm|Io2DZg~Mf)HC@>Ki$Y=I>w*Ia;&dT9@iMvzCxU zZ}8q@)_h?!-|xyL*X-w&P>}Mmw;+`i@8!2w51swoYeF~x&P!i{(#<;i7mN+_lAL%6 zhQ_M%1@+TDX2%-8cE00(vD2TZt&87LPOs>ZH+}~uq|j^Zn_$dm zeTkcA0JA?ExNKI15z4wkgM*1nWE$K}bM-O2(7VE)Wj9IHW;yT}748sJPc=Os8uMEO z(*PZNWv@MwQXorEC$HbsuUX`tEU)bfu?(+>NBJWEuyvDZHh>&b&BB0>crK+o0( z`vtAFnNP`m34uYb_u~~z(dIMxf0K*ym+~+}G|}s@a?LCbB$i7@yzy^%<2Smz@$sa( zPbOAr|MXSBp4P9&?S->jl$b&nD?(IjXAZu+}=cyw+xsDdkw0NHE)QYQtHT=-rDWnn(eN&p4Nx@5t0**1lI)a5c})lKV*t)d+Xv?rWXnF zV=XySGNOx_*N~_mMkq*?`A5kPiR~D20b`AeMkV;W_PjIV?VT+r@C@>IC3fNCP&Fa zrNlp3$K^lM+Qhd`Vp)^{_P{iZHKT%fEY-U-*j~ z*u)fP#N=!*oVg0MW!}|1JNT6vhxw;Xj2ASdO|^No5V z{0Ws-58%5uexB4B-t3JNn5(%gvtINeW+yXisF7R;NYi&Bmyw#+_mEc$^aA^#{Yvhg zB(iFmmQ}-{W8_pgb#JKLY&s&6Z1}?bSM!zmaIn~C58sxRpS;#HdGS-2^$H62gf647 zNQ44-4&r?ELX0E`&d?oC{O!8~Wq?|H`9_k~1 zX}u4fk*y6j&4;DzVGIg|k|hfP)LKPat38A?){&uV3*&pYSZ$6!R961qr{Iv)4=Rg_ z9r-@9rLX+vg#w5Mx7F{7?_QT(&f*&~* z%%%eWOCs>gkxzdtvL03z9?%}y!0)Kjej!o89Yb(-+}ZZ(iZb&AlG*pEMd_bW%YxJ= z#>=a2esF-9`q)T))(<;azqUvR)nQgVxE*PRK)NV7(!jy(`gtSIeHtpnkDd?oIj#Dv zOb7*}bj#EnDJ4gKtcQgWPLY(!H|ph#!*+evu2m>LEoTMu^Q}nX5i6t_F5(`Cv>$6EYw6=w1^=eU4sS2$1 z=Zb!R1v+$5_-wQ3IWbW5ZiQ5Kp!^@LZE^C606vu(?V7u!drm#!p?ypA&cOI(6 zR5Z27h`rZO9G4`7=v;ODJ30~kEh-KlXEx1O(LosHXo8_HSt7M_%#Qqv+~MII_$cVh zc2P39=f<=Y0*qJ*gKgR|8}meV934&Di|~|aIwXIw+f$E>jn=McR5eckGW5z_;EJdMi*64(N&#CRiWVn0GyMye4HFM`~tiS9;Kc%Rio{uBLa6C~v-$(*I=gL5sS)Oq7~Vn0ry zkzw`ryk$hcIF6w;mlEgW!_mE=k6CwGyw=*Tvxwo2S2FP-SD48tqmx`4CBD?!_*rBs z6&0bTwd)5iauKBa>$zyFAX~A{*4n4C_z#Me8Bk^rr(L(-!bHoGJ0~73MZoE6S>yBb z5BLg!+kgC#f^RekmZd!8wM6!pM7rz-_JuGX1rC~aXlncvd}ZM;Bq*{EHdjs_PoV)LM7(T`(4r;7 zw7s!Ts9*kakn;$=HJ`1A4Lf z-py}vCi2rlp>~Y?_||bXK=9%cRlnM3YbojMsf*utG~h{v_t3(8xjRW6hqG4Hyq>(j z*V-KEq0U{v*`FMPez1meBA_C3I%U0{w`Oy}NAukGvc1dqMSQL(S6thbvj-t9%T$r# zhvO5DdJfM1EPWT*3g9DT2Uz}qevpN@6WC2&1@PIBUBXKQAqAfW6NR58d%@S24l%Opb$y3$Ms;DOZ>gdh*%vufoRn+aUsx3ffC7y zy0RT{KF@Tq{LL0u0D3J;j}eta^jN`K_{ol6=9?dcJ4Bowgw0Im<0584+Gjhse|c7Z6Ku;6dhPY5j!KnOx!Ma2Rx8L<2cT(aOJ-YGTnHor@!&i}&s zJ-~0ezkJO0uV6TRSBv%M$}(|2~C7Yi+tj7m5NhSxJrPODuV#U7<-xL1+A4PWkrQk56~< zqpJ+De{@?x%_3<$eULLf&nP~sEmd~Oe_|TxJ*Qe^cQ?|X*{aa{T!6na+KBn>X;|1w@9>y*PG(u&$iRM}@uUT{*lUzt&YGUc!GNFXra`Vl# zT3*#W>i}4J`f}EzA$Xh$yg~{_N=CDboV2Nu*0@}j8nE*!Jl%n)5KJTUY6mr@Tcz3s zqp=V?EfA#7iv^%Y^iFuJZ2SK^1qHn|pts#!t%SMPB z`CTl-$D(+gmxcBYCvTj*d|T+`Q6S2eZID36e}JG!IFPIth%TQ>9St~@Rgkt{+uY1$ zB6>*T2_iaVJdQ}hHahPon8Isne8Oy2P*~!u9OsRn) zdJfdy4U~(VbcV1nzj~xc;0}W5+Q|xYA6*s=bE`>ys3zPljyYeoTD=4_)RO zr#^vH`W=F{s(CM}mZd+<+SxuXmhvZ?MwLkq6u$-IkQ1#&Y#F7>|$F*HSYee)^A7r%2nm?ppUy-Cf~hga(Zy~o%WVXyL8_!`!_{}%Y_PgriVpfHoI+fp5O9J@zY3IbGKtuf=C;rTuI{bpTo9_+ODE14?f$ zlplOr1913l`j=`s)FgEl1%%}{;Y*M{pAYua&pAWnIYKIR4yX6>)~ghI5Zfyn`FhMYUz%i|UN%Sm94%b=~$A zK9opV7n6XWsO(3vSV$a@#)sJtiVfo_wx(^|xh3k#5F;jWCKqt^h?J(jA~$WboDh6Y zoj@#ZJmflMO=Noy>LEg3e0+_Lb1p3rqdGqB+y?8$v%6L{hEBtU^l13R#&I<+I$Fd& zLKk&t`XQmRD0BuZkhG6lSrQ*t&0CFn)8|Ck->ONR(AB`9-1xZjjk$yQ#^S-b)D*IT z3S;TF#^C`xw~j%h-9Rt?#C#FXfR^8yCoa^`r&^?~d1Cn0uoOVXmN5IJTkep%ZCrJk zoKuO4SF*gQBg&eetO*TJaEhKv>k{y52YE=re^5LzRqldwmx2VEoT~Z&)c!~d4eVAQ zFHIGPN{Le!CkNL7uXgG5~(jI~jt5&an@O_2bLR9uUO$RU?>=9CR=mPB?O!IVAj z>_{t~QhL9YPKW%98dYD7*b@{^EEKY|ZXBU5rG`YHmypm6)l@odre8-XS8&98*DbW6 z+yz-||M(cTMsaUG=MKs7wPT5#*IqabAoekZ5kOF!QlmRA0+Y%K=G?kE5zhHTU`9z@ zE*c0fFbCVAucFYX#)m3lol7Eu5Pxzy1OI~oM(`@bM`IVGXJ!nS8(6HpwHxfNjf`uV zRAF_Wo3nOdjVVXhXxEm3>-DoV85;-u>blyQsQ2(hnWCzxbf-$Xb1M3Gwic<%h%N%r zQcEKxN7Em9F5+}lqkaaOXe_i%jdjEx^8*I#Zm_)s?4du4_EgvUo*p9l(FPMT?N)j@>)+Gx{{B%{QVRio{OaDBoALuW2G|au(@xM;4G(?)GI0D0az_?&95AB?_SCnsT~>1~D%L61 z@`oxpm@5x?C$f|G%xabT)Ovmr ziQn@V`#Q)r<{X0P$p>Vv=A9=lO1YbRWE7sGD_|?^LlPow6;V9+Y4t_1w7znNBy(o? z1s+)KqnT5c=~W_v@+BEem1ic&j+{sW?WfVsl8BP0+v8(g4O}Ks7r%_8M*3lqRHBm} zAP87QL>Woz=cI8Mp|vbXESczA^b|*9{8%68Pk?h*Hy6YAhJPcz$83jocKe?UB-}0B zzcY(QxDu*4TkmCZOIzRXCF*;&4Ftyr+=UtXbUJNaUy<$KRMCOmhwLmwXv>;PxtgZG&JDpFjep_zts^MnjlzD ztD9r@ACuk=-3$Ni2-`kRQ2fAb{0e$q2<;hjw&SqEJ0pANc=c2nHvNf*fKof=k{Kgw zxk(XwXQddaxGTW5)<10>w#!8Dk*dzare~jNjNeZL3*nlc_V|R}nVrzB2AHfX(M6)o zHrK1;LUW(u#Q|62q2k0tu$l=hvPVzUD2h%xNghafl$0#zH5PXZt8^GJ{J`o~tT%R( zR-wGe?ui%v4S0#;Tild3)K;54auIZ*oET*#i(Zn;e+u2Y>iq1AzgSfr?&l{JT)7 z&D>)dlhXtfnZ}ht&zkta@YbaJRYAGAthkEi;wHH#_8_I*f@RQGreTu4oEG)Gbk^Uv zT7IKVqCPEdjZYqwTYcyLT+(z%at5cQ>GZ6E^1jN*wxb*;i3QNr^WYUi1$GZUlbx{X z8nF+^dgSEqL`ih=li7iFFqdB>mZ?DDCDA2w{^+b>m2&ZMiA2c!ZN3H&@{DZczFgGE z;H}TSTrh4%K5{EETcS3UaS`FV=WR79+$V=CC`iL;< z7(etwqB=(LTR3un%WmcJS9ahx1+2}PQ-p7@*p&t%t=u-$MgWR^#J5p&49mR{E%H(8KU(N; zz&`Rnvm~A#aSXiwDQlff#}sQl`Xxv#@s(-5x)YWne03M8$s6IT5W(mLS{@MNte*{W z+YQ|oW2^-x!~LFa5o;=WEe^l$Q0IS9I?MkN7iDi#?3DWZ`DyxnYyzr%m?uFLz7P}(XQi{JipU|c z^rw?*T1T!;R#XREZ*bmnY9TYZhhYjc`LQ?o6CxL`a&gG%FATV--r5_edB<<99iOb8 z1%H_i$GBPeODW9C-%pOfcsac&FKA|R+J?i8Jcy+UcP@?{$^$#W*T@bn0>?IQd_Z_f z;NXY23Z|3pqteK0?z#eQWD!#=&y4=c*kDFc$yb!8rC%YB3N1aw=Nv6DeR6b!WoSYv zgu^k*``r98*X}Ffw;#VkUv7Rmi}rOoTb6zl`Bn2jy|jOEKmhvCKv}-Ee+_(b8{{PG zw=AJ*g|13}H^=vUQJnT4;)@8xGiQou&E4=<&K*b)?h!8pU0Zs0>UoxYbRYFd*nt#* z%^h^MDYq(Iv6<$^k{7zkA=~fCpsP67esKd7P|i9dW{J3?nXC=()cw{K_0c3_&D7eo ztC3C_(Ur))4UuJ2DT|`k%y^xdgfb9&j@R^mNe=k&WM+`MyCaxT5o5e^bR#*QSiWqi zoq-a}Z3Dy_XYpdDiT8t=PnBRr%ssLGJYXzfSp7z<;EGRReI~(!zq86T zWMEt*p0-m!Nb{x0PY=I9(IMXzn4I-$Xb6C(6Te)+(huH1i<+{VTi-!pSKQ zP5m+#Y5Gw5!#j$+6ak4`p4A^jK2&e?sJZ@%;)N9@OkzavHMsIeU@x2^<>k%m%ku;zg$eBzHQ-KZ^1X&A2wp6 zWD#}LGP(j-r7IVc)X4WfeI`w*WraOX2h<|0`JKppeT2TJU^l|2M|zXD61Z_~z4cz; z;D&&!RpS-PgQrbr9o?-wMuVR9!fx%r!A{uica!d`%vXy+yGVXWefJL1YpSr@v~Q2h zSyqbYka1B;jp*-qP^)5WH=IqK9!ZcSOP)|I%iiSvy50P`SK4RIick2zRyEc%weIz1 zS2otYo<4QRx|jXhqt?B2KYF3&y`rvX=(yrBFEKJR`BRC`BZdX$BU^y;;4YKq6{osO zQin@8jF8$kK*X#`^W?pJz5hw3nVZeZ6BH-HODT-V%fCWR-I!_b7IBFd2p4Nnb^+^e?B-8FQw>cWaSd z*D!xY_L{bqT~VdZ^_U*Ky~lH`R=fz>sjfHtVR|_E>+wV)lm{OA#CkWQtBE(Nm=N9S zaF|dH0*I_$*53N0x2d1@9?Oi}FY#h$mWZgT=LWv;njy7vOQI5*uPI@h zH@pfzb-`RQWiV9eM=@B8agxUrXWABgy?<+ItzN)J+#JOuEzAJIBvpLwK=MJeBr}Z8 z>G_Avo%sNc=uK{+MWH>+l|)Pl4o)Zi6G%n2ZcV|TMGXNOK@5LGdC5k0it46WAT*FAG7dLQsk>BbLv%z<$;qqm|o5HWu z!LWD{W)xmbTVfyj=YY*TM+kfb!t3*rAZr_;8r}wX!evI}RLcb#UxIq0nPUkNqLZ=8 zsby>;s~O!H81$@;SB5|E#_M{sYUa!CDn;M*g^cEdbZ)+=W%Wm_3MflxO|=98$M0H> zrwz%R3>^yl7DFM^+2kVSXb~%)a?KwjJX{Hx5A;iIFDp+8;#s7;<+5XWjoT#ASAM90 zb49VmNF_iDOg_t#v1E<0q=ijOwlo*7O%frj4z6J=N%7j|TAi{D)TQ`0*O*487}oJXSAUlo2rn5VgH|X_ zr6BfrJxrL1BC0fBtgHff_;s0`+*HG%hg2uWZuUpE8)qH#deTPJ1(ejjX8C>---H3y z{+6^G&j<>3?kvYq?P7o#`ke_@GJohpf7dZ>q<>Fiq!&e4_pfC+uNVT<-{+lY%ue(?j z-QM#3<@-}ROAGpo48Gqw)Vb4JzK8z8Eayk|7H1yK)4z1H8ywTkM{{5VtbkGdT{e3* z{jAE(PYqA?DGN`R?l54n4ibX<5K#ua$d%s^pjulUxTenPF_tWo8Qr<79R7Hj!0sQw z&XsAFbwe@U;~lvDhzQ<`XfCkT@@W(lpmDwh0Yix9O4R1#g&};al>tR4|D}K)!C4N#vPG&)7HHX&ak)H{m zUml5|X|rzpLKPmWy&O8O~2%%DO~4@9qkIbQe;Hy;g394A;nH55BoiL&(!-pD{#7mPC!5l z@=uBrSjaziN#=PyK3r*$N)B$4pp~w*N@`7B*B=>Z_(7r#_vb|KiD}<%yf;}Svq?nJ6!}{A>46z8*;0V!TVYMrRr6LmaQ~PY=VK$Sx9u8oZ*=h6`iPfB~JZs z%QB+eWs`>ePH5lN)-CkiS*HQOH*ha@+G`|~XrgdUL=wq!@3;iC9R36Xr2 zd^!|fYl;qRy@do<=T_006uqMdv#g2)%Cg$-I#yVn*xN@|y&6qo_C8iNIX10CEmVW_eD$GDsoU?; z>zum%bKM^LHUm|gAYY`rc1kU39HO3=6Z0W!ks0C04VZuwD^W6oA3lRs&(D-VUEde4 z#Kwm_c?QC7AB#owW{w=Cd$*}UMvLShaK-MIr{cVx$8KEVY! zw|Oa_o$&^VB$Ieqxhp%fGJUrgPO|kggK9#02AwrFYu}MUGUw92Qru0!%~48G5;?^9 zwwR*LnpG&mq63fqiUac_X0rUm;Rc+MU~6UZQD5@KD~l+Lhh=JSrPn2YP3%$P^oGJo z2$*jm2okVoNmsU>Bh)i`rqAk8IcO3)-Nnr4>6qyraAkAlS`!~RS_>%_`cK=F^D#Z) zp;U1Y-MJGCAE}?#bzNe_7c@KKVY=pxD;;~fTeLfNb`uUFniPu`a7UJlJT)Y`QXA@(2a5wz{bhW#1+ak2`(7My*%qSt=Wl35|(QB8}N-{j_c-U+LGkNjVX+N_q_>Pt|LVv)HdhIJsb!*V?N! z*2}!{yIkpZmIwHwEZ3u$JMcKPom9EL5IR$zr3XhG*X9hY8Sw$6D6;?t4t8rvAx@iP z6(EVBNsEVDZ4U$ z8_|;brOy^wI=6qL&l@L31+?kjfHM!qWf_EM-1Oz(up?`9uuFvn(un?2{A)#Yc>vL6qEfk#UAn_n-chT=rzsgFMD&0@ zYexo)tdK{WUWs@*0!_W;>NeTCOr;HPygbvMoevWJGG{NDAodFlAH8qMI>FY@zq{fS zk)>M*6cXN=HJ!Z57>dlL#Z^kZoUF|!k@vIX$LA*YtM?eMwNdQ5=_^FmKn_JFORrV7 z;iyy~9y{!j456H3-%sBr%T10R>!MvoY$5BLGI#%(m9S9)KwT-W1F{wLOZ9-w?0)hn z1KC|X=slqaC(HQ*(Tsawtxd|NC5FNKuxWLNH>GPSNW3ydm3bX0{SH=^ ze1Dwpd7Urazt4AO{QyPeZ!!0T#f|N{{dmE~TRFGjH(aZs=H``QHb`1T5Gaior@yI4 ztPYOY46{Rke5O=`@_&{h-hs;^ z9N1#D0;ool(NVgcf707A#p&Ij2|B%6tz8X~!Y`J?EnpWRl(RE)>#xHvl!nACMMK&F zn4wq~zM?xgg2=@ct64M68UdIvgs!tSv|PFN<7a15IeLY^PtolaTC*8t3F&)5?vEoCr1``!c-Lp7Rax|9ej1y*~a3Y91xDUy5na%jF)e>xsLsKn}**D z!fm^5E6#ai1HJfd#hE!dcnE)e68Z;T)R(ov3)K2&D)s#5qBOv?>=OZ#FjJS9{#Q3Z zqdN-ND=C*pl)Xvjzngp*Rwdu%5oLI4b|6u}sY&@4R=V_0wQ)tyPc_MIb&FyJ2R?!I z-I-gD_jBad?EG?nZGN#=s^%Aar82)dV1EnXH$mYym^n~R9*1Izf;FuY_d(0A5HaGp zW8A`!B^v}Lo0oNBO_yKnpB*CSZ|cj4UUF9{MufYan9>h#>g^rl)Zgx_EG=_aX>Cn? z-SxJd?FfDU>m8v_6SCuybpqoP%l|~SFel)~f%RlUNqiz3m=mxj1M>-R#;^0p71^#G zmEpbYuA^sGz3$i#=$O#JW9ZTNk;f}tQ+&df0c!ByfWn!P>5|3v7NLPGk~{ua za?kuDXdQKSG^bPDSY>EjD~?9vO`=1oaJ4g6IC{fb5O`QkCC@g49(78 z^wXT3;-~_FvQvnD+Sg8@D;Ldi-I!#BA|xENRPC#TN(*a0HP650V$Q4`^ANDw31}O%xFJQu8vvhd zTAbSE5>(vtceFq$ksT#wWczULAw~tk4Zp%n9d)OAiZRxi*4y6lO=jwFsRY_I%MS#m z9biHXxzyT(fsYL3n^HT9%MTEHyG8EUp0n(e7fioG>ZaWTYzYzFq$dc z;!LwN{WkGH`ZNuP{J$;DyP$-=O&k9|ns)1^Z>DLM4zYy7K-7Ax;M#Yo7zAgK)wF>9 z0}EM!!yD7LW=Zo(BxKGBsPbjFGh%*d;e`JhYaLE*`xsJWr@tTwJ3#GILLeaO%mC z&q%_)OV!8Cw`=`;JFm!VH{q3jU0I~HKNc5h%d-|RqIl11JW0)S)o7RfdOW!8m1`+P;geGc$9)gBfhENYm2g40@p zHSHLq&v4*UQM^7~R6+3;V)?X$_i*QL(A6gQ4V*`$v?~J#2~@1x8N)@7ED>XRUELks z`365GmU*s!Oxi(mP;wFxF%v&2^IGezx4fZbT*qf zlKr}`rju|G*1IYwQ_Xsl10lq7@>#3R+7{xr`D#}CtnI#9LOZQ6Q(v9wtJ&_Yeb-y_ zE+)%|*~x8C!vH}3BZ@AB8|XH^Fa{=}`= zbw2ldUZ3%>zvlG-XiT1-v*!V`5rYIt5Uy)~=Zotj?9@JoRHoFnB<4ye3Fdq3ZHgo!ajdhEeHDu;*a;<}Epi_- z%vIafrDDSt6Q{F|{PNGafT=y=&n9pSl=Ijgnd&@+YVFg*185-Zx1N`#I2VJ0IfauG z70$_tze;71l~c3$;c}yGw+$?M`99L^>t?9J$3>KPYjI|2!veXyWh>^Z3j6Gy9vxKp z&qANNuSH62O$UWvYk5m<9=)BYZ^`2ypxV^#p|90ZbNu$|L2+Ub^3~dv+ARnF2J=2} zsjxYF=!Lo4v+li^%RVF0b@`W;;Ptk3AGa)I*K-}u=xvGrdNe?oOSy(E@$?kxk(<=6 z@_Uv{<$3y0#z?fMcl800g89PD2a;L-@hExKBe%3}U=+m56wj@N*v6GJ=!(!qL2HM2 zezx1U-3zC&ek-Me*0WObm^KvsN+6}s&oRuyl>Vj|(caKt`-xgA?9(HA@JNA~%nycf zgViZlDOvB?6~7~=9G#VpNbl3X{=BD9Uu;Hpyb14}p>nYAYGiqgFRoS|WwX?^o?`{n z>u-gRHOk0{p(1(7Fiz!V<-M^)0>t5!ijVjDS;gw+iEm3+<=EAqK|n(ve)hk&cPzg& z{;&Q?r>@|Cqv37kekq+_sU+*Et4QJ%3(qi`pT3vL(D+sV85J6dTn)f?W^~3>m%?+H ztG;H>HObJ07X+*$?Q`z|BX|ISoC5?syTES!4YRQ=S}oP!@pXXMp@Q3|_V=*Zhc0UT zs$}NLivIM6V9joOw)z(S4!HA9lSALT?B9Snp?5JW&%IwJc+(@*D(nzG1Zu`>xq>3U zyHyvtlOj2K6~2C)x)ECEJNACLY?$gktb%)ny5^onzpM0Vw$M+{ErL~CA%8;CUn!a2HnJIr;k{4eSkFX%B?Wyd<2(pLj%dCO_=c{Y@*S zzYbUQa=(OK9@*!jlFZ9?8KbkODMBbJi0|u9EE%PG-WB3Ld9M0`UrU1g6F+wzxDY`-Wq@AVt(V1@9-CH8Gm%RN=`(C#^98(&*G2PsvLg) zh9?xXp+mwYfPfwq{3U;%4ARW~N%kPKJ-iO^t+Uj9J=RwQ>%gYhs5%N7IhLi_9lTzR zAiPPRs27064C%ViDY1aD%lELGqJacHhA zV~wMVW({tet3Lai+9fIdyZZ;QwDo)F-=u-L_mL#$)_M!*uOL1$JiqBvfodPB8cITK zi)V?f8FI4`c0#%QjeWX+wT@`Yfy5~Z0yr*|_S#jSWZ1BN-sNAYe?5VLdGQnSPJ*aa z`cC<*wuP&Pnm!>iIsF=4?Mwc!x8C|Ba|!Dqhu^gV`X%U#BoGSK^U?I?pta3w?asX5@Q;MMn#f_&k<2#uoRIr8 zYLF((gevEEb%yH@MN7<@6D(i=x)kdsLQX?xz6%1)X03a0Jhsz~$_y6uSxI?e~?_c)xzAR6f7xVm# z_zzR)6fs<@tDW{u>%*E4(OTG&ueY|-o1kkqigmT!DEmI$E_!uVtmP#<6nhQtYO`Gl zaRRXPcO^;Bqd;=GP?-J3T_QqpPa)s&V5p`#0SEUL+wzNCf@~{76}THdM$J18Ws({1 zgla8l9J>8W2~#26bb2^G=_YWn(>tk#V57V3?Tk%zPlX>1{eZbv8&qMDrScLlyOR~w zj%-$>!aoY6zxM@Dk+Gy%>3bLG0`}Wud!5wNNmcNZ%oj>#0b#lyf8-QyW#Dpmb$E?D z4voEEpLkAnv&~&n6gnknZ4F8cj-4_M?d$I#j5QAdYlR;`)LTkQ<0}{1L$q(E z>B|AP;gTI2w!x^cYqiB{sxJapwEXdmvuwr1`I%xZxFH2 z>SXrI;sEJ=I@AluDm1;DiKNWIL`iH-_#D&I?lrFN_SSTB-K>RkyGY0N*0X|1pY^I_ zG!u`@6pU>MR|gU&EvLfX*W{1iv)gZsJ8X7 zs)rryAj{NF4iCbR5+{X!BnQ=FGpNB#s6v=QV?UA#T?fqem{cSG#M*QcC8gu`q61p; zhW3XR(7x7}tiuYVdu{RSN|dCppe})nu069z<;v54R=)Bp4W+8joF$@ULR}}ah{NDf zdJ;K&yrC}HdM1zvRKVpmss3W(zVZPnqDvB?p2>2ajkPfb$>jqm(+ zaFM-t7<7SgV=~5#k9f|~yS}_046+^qmI5S336w7DVGfTfsN^DCBCZ7%i`*uz*|8@9 zHo@-%us9`abaIx}h#GuoIxJGAF<0V*u#39%`9J;XPX~8&>?W`@)5VB=i*ydeGRdsB zWe0!0py?$Ni#oTlpM9N;WH3*-jf6hu7;9xP`C_$Pp9KxoaWAFJeAk;n>jIX$HyakH z*dhc27jbeQJ6}fgV=6Z%mP*X{WUQf&Ri8v@p7BO_tXjoOk59&T?SkrXYtnl!oy2W^ zYfYQo1evJ-?N(aJkX!AGCSl6S9g0cON4(%eV@#M=*&_D%UL}Q?D6zfrTNSDS)(=fm zvQFmCtUkNRu913^BQMoo>_43+&1gX9=);KZqz+kf>1&ouSaKKW-r1jEo^Ma*?R$gT#cHsV>*N51M*wEvs%ah4p&sE$>6GwHg7z7w{QPVpUHua=th zLd}xTC%b(MdF}40ibQ{Q5eY#_xSBss|B(pZ*1V-m)1cKF+0jq#*10UQdZ@KWQ=9#^ zctUccp^L3e_6_uadSCw!g$jEkRm+qw%b_$plfG06E=BJYtAI|nuUA%=R{Iqqu{dXx|GuZEH^U`Rjr5|39&|wN^kCIQjpys> zf!ZsxpS)GU_hmlVpH}zP$NyFS9sQgsC}WoS>W_5=tS>_Yy2h2k34Th7LyJaq5-+gg zXM}AU&CknZHa#14oE^CuY3^}k5NT>qQ5qpcO`mppoUOWr{ynLH$tH7bX^c?0NChaICr1FtZE>t8#O#KS`w|vCGy+V+^ z$?gUFna34{zKZh)27I_d_G)Hbo?M$1jf@<9fv*2%swg<8n;bbx*KeEh0Vz(+*LdQ6 z8LJ*~LO>8t$hh^8(`B-BOua?XP1AMI&5LL2a((G#LZ3O}FPtOqf)k;ayZPl(j?k6# z^djBU=bq4WELn=r~ z|1J9aw@LLUA7WixN7l!x_!KUufPaxA=LKZEJb$w;#&Faw)g1wA=qwt zFSEDk_o3YR#CwIkPQRb7YOl1H^J*eT@@-letl#z4hUqA5yJQ#xMEh8ne&{`h249bMi4w z8Bb7gU+!td{y}yq1Bq4mCtOpkNc~mZ3cD27E=>$?fMAHBH4o2O&5PV2zra%S%`7aZ zrxh#*I$%17CNqfz^ux)j{}hMOq@M$@=cIcKVVHa;wgD#@u%#pXZ1XS;vEDppCP7i^3oH zlHV`(ah*iuCX&ZAK6v`nBIHD#Uz;#??47W*pmln+ef}=Z&;P`SVDho*7J5_L@-pVn zB46_A9zS>BOcCA|Oq`Ck`_AY7=gs7}67CN2T57jKX})SBLtDT+%Dmq$M?4VXf2e9b z_sMHS-+M+ZKniU6Jpf05`Xdz6(4_7(%Myk?bytrZYYd&6PEnWE@0{#mvI|;&plPD( z4580xwIHj2d2Ipe$ZUesEdNqw66l6{?BTkSYWgM%!QZJQ^RmO=z>e2CY+qr66>#CL z>B(Ycu7r0^&vf{<8ci^H?mblE^ldY)YsU`d@tr+-^I@xf4b7ylQ^n~AMbD&YCd*f) zUr$m&`r9f8MAI|gm~$~rW?MQ%vOh*3qZ}~PFDV`nt)2jQMJAs@?5XNt(0X(V30OYb zb2~`NGy&e_J`-z5wTSCga!nAf7}#{|d9om&-A)19L#mbC0aJ${&1n9kq70)sS}oYX z5TFQ1-8Vj|nn+cZT+uMpbgh&eE6CwIw(^Konm2z^-Bri2o~(i7Cm=Z1qA%UySVv{} zB7rsa=E=iOFfWdU=GC7tvnvE9gx3+F+n*SL0b)H>AKNecsbks*5hf{GUB{S~Qcw^t z(5MRngi%!YO7$2%v44fLU9{TN&z15l3KQwqa_5BVzqfk0J^mBmC6>rG8N?_7SY7Br zc9TS0sU)fF<+Bv9HhunVYR6Eq)U#7VC9YNkqjqJj_uk!IQ8;sg7Vzizvve-m@7Ak@ zI3t2q)g@}QIkh6oZGJ6Nhg6ekq zBSror$El8J;4~dyV!( zSj{;;XkjvK95bW%G;efhb`hqhYc8 zIAtBIv1>QftV&iS#jl8KYxawY@N)7qpN3ix_EzGbH~L*&_7=FlA}_dy5&bS%WG;|> zp2UX)Xk0A@Jtl|z3Sn!)fXt5X%KD zw;M|(slQ4JB*$}~>jWH8#GS$v&x`>adz0;BFHs6C@uF%YL@Ir+YwVTNIVXiJr!m}# z#=Eo46!V}eFOljpi?i}=4fE38XmD1D4O;ZAk05Igl&QY!wEssMNdA1JM)G+~UcIL( z_Kgu^b?PsvB3+~k)`^~0>!klw(rp-=$VFN{&q~W;hO*aO3;LKcm^-%GZ(Km;Wx@@U zBVS@RNZKf=Kw_xaJ=ZC2dgd7Y;kpx@UgqWbLRoPrI4Pj=XmuG0Sy@pixkynm7qZ0u zTS!Q>^e>c_j%`YoNTc~tS-qkg!fZ}qpSz0k8X%8Dne^~@OUvIU(Gihvq=5p$|1+=1 zH_{JH`zsbGw|B9Fs9-Kv@?}wRNFoeQp&^ew{r8ydt`I$Z<`V(y6K4_MV^7`+Pq3b! zN~ZK@d_~w2ew^)2sqW6^}TQm5`^z0|%BlG=|{714uK3BbkO z^_FsA&Uh3(Niz&0+ss2WBQ2<^l>*gZC1jM@qTM`eP33Hc!4}JfwJp@B0PzcGO{1e! z4{>vL{DWoue8swIYTmTjuVmeVvY zwhTg~<$|9&s33g1&T^T~av`0P63fUU47JdBGK=P5s9YhlBC@lXrc~hPBau`ok@$z} zYCeZz7~9=*G=+wwr6t6tphxdXkBrz|U>!%v^`aLJverstdp^iA+!rY>R-`5}InzK8 zJqWT5T`M-F!Cws!gdP>B(N!2GRGLom0RgdJuNe*dII+I#Zy8-=)fEv>INu(?WW`DU-gT8JcWYnl> zw>kq53V)ZYvB)1$K2)rU^dV4U`F*7^6*bKh(Wa;ojstM%W?wSgyG#lM(Pz3j*CR0MAAp5PfdH^XlHRO8HXoN$ z#)k|gz9nV22!d0{pNH4UY~5>zKGgJcCD;z&?;+K)-LBaGUc2F98cDpUQYH5$jLd;{ z-8dP!14hVB+GjL1R0URC%3QwJ{*$Z*C=L3%1Gj!U&-IwZrM@|mX9aoiZ(>{)N2b4O zJQOgZH&X9qEZyVzb&9Tq=BfUEHQ)By*HW~wYhwTI(>38MVHKMX*2HD zGkl=#xb<^A!+%9z)EcB(%!O(e)XN$~YF7S&V)E+;_OJKVfL=up5gu?2^+?Qys31Zd zNG1lXU3ez@lYg!*rIz~SPl|~#3;IWpr0ofUf8D=FPSXAR)A8UIX5DM=yIM&D z1L?T!B~|$7|G}?i)jtIo!mK9)ZTPiB6~xQnevBP_T(>5#|=RPR?JZb`Eu=B>Ny@KD$tx_K1@qE}kMo zw%XxQK=pEfM*lW%Rzn+oqVC_#^e>IguGjwkI0es?Xc}J}_bFB1kVdMW#Rb+beM%FK`6xcbv2N|D^F|q zg9^bDUGvic2jAnqL@vxa_@2=m(tG4XEROc7A_}r6IY5`wt|`tjQf6}#f(K&dYEPVz@grA2P5 zllT_ER`Ci&z2!t0^pTRhKdVyhwI^?+&6pTIjHuv8R4V1TSMj!n&|Z53v?tR~YykDi z>Td+C&&@V>HLBH>MWKN?dWEewUXEUcyA*>s{bBG|^Dh2F6~?^ZfiR(X1%mY*JP9^7g+q2l+>=E-QjLC#c|TA zv;4?mY@VVUq}aP=6H<{BdzT{DmQ!{Bw-SZ>Ax?(}n?!&h#NZPtk*ObViKaq7rK?|F z0=yBDSP$}yFMUtBhBFSw9S{roR-x2nHf6_4`pY`~^g*P*W^Ix6Tb-ff76gF5DG1<%DYJU7m=K2gQ#%P@0!>R*9OyuRqGGpw)tL(Gertsh z{V#=_2dmvusoZEyPBDUUVKX)075iOI%Mk&y8pa-4UlvH-z;TF;eyei&sb=HPTwDvA z`4;rscv(^C9P#IuP?B^&f#W=BCpoeW$ff^7t;9gO1&^XmRMGH@;@zR_vxjalug8XS zlYnr=w-vYa>naK`@*XpV$`+nSWkJ2RUNwRlF&!Cz`*Zu)|Nn`XTYi32>iK~-w?sHe zPMa%dEnP(l7wgWf(}L(GnI6fJcZ+^EoKA@OcNa-p-E%+Er*#lH0vlSzi% zLb!X*Zt+})OfoDLGGvY&i9 z%nAo5**>UZs73q|sZ#{PL!iv|ZdGpDbpn7aq zYIw@2VX@R8*Ek&0^tt4*oIDB1BaX9n$5o2G9;k(w&LtJ-PiC8@-c|3i9S4;j5R@(^ zb8i0r3-W`=WqH}59NkAYvymvqMh^E61-1MT+Mp=x(^;CrzI1B}E7an|Hu*LAA+oxR zTC9jj^UNd=HE^kH)d-zTcq_ZQokZ;r)L)c*APi)XUV2caPEf)F568>Hi9Db!p$_qI zoIDKX0Y%D-WFXqPQqM#;Dzmp=3NUU`gj6T%*59FG06XM(O->gxg!Cvr+q14zfc=l* z0QQX%p{l(6qrCvX$h)DiSzVwwb5l%Wu2>(DD^J6D(ugYg*LLx2sSkR+%3B*{KMdI3 zBomKE1&En%<|m%WZMlhe;kqn@zF=9n`a=a?7^?2GNL#;aHdF?4&5a-9@_=w-1{M?hr~4Wr^B3FXf->p#ytRH+9x3@Yt& z@YKtjy*OR6Rm}B6?F6b2%dp&UCeW^M$k=-XTkciTMs`1cWcX~2i2o`E5z@Z!Bltl% zLro9KzaN53sOb^VBUJN%WXBb^*KUz6Bu8$)P=6T6hXrCE#y5py1E#gn@#Og@UJ89s zHVQnz#R^b%2`PD$4O5Jm`)nA!*V>u2_t-73J7_~FSt$_0&CuE*eVp+|7H^~JJd}N( zc&wY)XJoGz5`}?+ME60ec%07Nmqu<&V~<{E0_pk3)jo-|w~d zu}mwgn;%Y4LRE~VO&ax{U#zzsvEEeDMkPQ~6s<{HmH~lSnGiXuh5lBj9{4uQ{%pe6%`36W*`Sj26lZ}sqWI$hs%kT$*T@iC`;p*x?amC!%Bv!pH9pW=6e^=(T(-h{ zyf|3}U>Z{vd}N>7V1)Z{LDS{$jeOZ2! zKLqQMqsScoLvl=smYJSRpGfbdU4b&2`xRbUmqRJwJmVFa*Z9gG(0x|KAXD2egF!H_ zgO5YN0uwa}9O?5umi~PI!4~;t466tB8H3}4sK*;wCVh4p^Y4<($&p1sN6Ng&IV4`s zaESA9T#3_SShHWJf5N<;1ncQ_{2|wN2dBniRcMj(TEwe5TUci_w3TxtZb#*R-nnCw}U^9X&7s*M+HK5IoC`2li{ql^HzH( z35gfvn_&88HGP%TF<;Or=XPL_73!FlJ|t?=e7FKOS&1`@qI!Gf#d>EeyS}35$iW-{ z{uAmACY~0d&6}7nSWq#|ZUxBx#M5;o2do1Uuf%EzU}6fgQ^dK@Gt5YLe`C&3vJ*Rt zD5XGY4KV?X*ceKvTlof311mVO%C?!2kNX?Z1$0Xn+oOuDNM)qhW`88(3c5PG=872U zGGFT@pV9m+9AUWUk0i5mr=|eB>b?lytmseI^L_bB)Kp@eP*Df&Z}#`T1KXm5=s_j5 ztIV@LHEUOLWi`MkJiC+A_Xv^wzEgSVdBCy!hYAi$gg=>GZLF7vyvXky!o@wX-^@5C z%duGVQTF|s*9Z$21Q3{@BW+r5z0Bk+^41&@=bj3)a~H*l)=K=JIX{EWRHx_GQW|Rn;kHQWs)Ne7D*|E$^on;b1L+-ce*h|$CkRf?|nt7NQ z@=L3wwl{N*kKNSEytS#b)_QAO&G?YZBq9WH#Epn-nFMN5)&Xl1A!<_V%EYEdZ$lrN zTtg+O!A5ksEBvY%uedC;+F8el-YkxEh3ApwpKGL?rR_(Dc}nYeOY#~zXeV}Nasgh>;0hTb)Rwd=9fi{ z&Za|=UxC|J?gf;QN50~|Bk}0s37xc3kRSQVm^mnDb@xg_+ zcE8W;T7gjc8&Z8x9A0Q;q!gRPpp5;RLq57KYt^V4Z5QjmZ8r|HFf z7g%5RFOq38IIx^R7j+;sG2|EN>*=T>Z-eN8Jm3WL_$retk`#p#fco0xq zhWBx>Vi*(fe1ah`0pASoP0u1Hblq|mbiHz)T6&+7=a+b{Yus59euBWvPE*88rmcYW zZh-Lf&xQ}Fro{V9(Nealt-7f(v{f}WKIH5`WF;ZN-ykS&g>EZ$4)sr={_OhPhyQ=g zHlxg1qpOXm>?aU9Az<}5`v=K>tyGn`3jUKgUA&sc4Ym$@lh^eci#tabBj#6mi4JB& zg>TBWKaVh1<=P)vu&q^fEuYCryw8}kZ}NW?cVV4C(4817A^N4?3K23q`WMJLIhHoL zXZ^Fl!4Fv2tB3n)@wY>>iG1RQf26KK3R>+i3p@2&yY0Kr|B|=` z1m}ME8q?zDRs`GHuJOqcLnBAajK~!ZlZ|cU0SX?(NQ&acC>hlvB(0;@?0pAaJ3L#$ z>*TEVFu&_T@pj}SvFmp3PllU%J)>sE@jw_%-Btd?Xs*GwPB!L<#+i!_-s)FQhhx8X zbM7HpU@da&PtNW=@|4sCZ!0FCXK}!_AK-YCSC65Zj!j-ra!pyi)#{II=XOkPNgCIEjpaR+=k@*? z)}mGyG@c%5mKy{~%{rBAjCH~ZL=&CC+6Gc|BnHYCu41GG1z9?Hx z(N~9UcBFIE<-+9PvewEy(n4UxAd$FouQK?eamfo}@@u{V|CCEm&E;-+WfpR7Nv=SHQ<-9nEaX>fy$caXk$JjGpw_WHS$LJh(yKW#CYqspJ9)WBUtWwLq;% z+g#2iBgSK^Or;SKrH`v7ce%nN)N2}zN8`ghxc(qB5-QHlPUS_XX6I+j%k(rFg@)7Z zl(4Tn?^ypb69tjQg4glfkxSzA9}PoiNXBo&#JR#3!yGjB| z*q}OtH5o)@Bl;Py!o!t?NN#)iHT?V@&j9a^LOUUGoS zn_kN*sI)0rjhOgnqW*92CI0&VG4?L-QB_ypeiFAP5g*T9W zF&hK9haLqeY=iYxe^(8RuHOE;deC6ctK$d5PJvCVQ`3X|P^g?70-}2fH`vb@Xw~M} z+%-j-NCw+-0=1AyHAhlL^$T}@3#xeyHFTJI1RcC4H2A}Yr~VaPi^}Oz@_ML{IjERv z=--lZJ$he*sk*>tOI|HgYQFShvr%TaU*>$ubpFGP+I9Y6jDQ*(0%Zy3_9Y&4mtonJ zr#G|1bA!E>HgW@TM^>UN)k|J9p=-YBHH@Uh33FGDpbo<#h(y+k>2jM`nU3+v zCKY|M=-&gOW+R+jhlSqB;6jZv9d%=CsM`%$M&I zD2_|#7x7@5SL?R7Nz97|L;ih{h*x}#IrBqg>@XQs1w3QtNpaj13fFzGf)&3srCVh@ z+i&Kna1XMVeV-qe?A7My*am*!*>aoYe8Harz5$!AgDx2sa+qt8`sG$O+P}LB_QgJY z(}~0?#y&G825)k_at?Gn-wk9PASZb}*>UQU(m)b_f!g^)G;^OF%c{h|N0^A&HODGb`(0mrF%r5G_B7VG%yED~|&IO-2$TL^MEOVr`)s8Y@>c{HfU znr4w2@j8Ju%FoD!TSckDmxr^_uXv-{=MAQ-El7UtYYD4)o5qRw2?NCr3Yr4B!zv}d8h#z0YkupnH!R!CwcXaapg3+2xWuJf=TrSO0_$*)gSd zdur!?e;wN!A>@!9;D%oGcy0kXwSOxt^!i@IM83uwzH1{Z27%6II=s`T@48@?Oya=Z^N`0<6))Fw)mZ1RD8>I#ouS%! z-3!;+Uq2rIk2q>H_)al+>VN*{}16LaP@{1!xeh*KQ)s$Ny8RTR7gROv9iY9X3)MyqO6wdu!&t^TDe7WEA z&iQp;xyLLYi=mWeMhL;ojNmoDo)qi+m_&`edf&@ut*+g`IzO|SmJpqFpS8jNN<3U~ ztZwCCub1}>xZ}L8{*_m% zD}B00w~UOtH}16t!LXQW4ej75UOAM%T zags%6en*BT-{96c(kWv|$zf!<24G9WKn(S|C`_LyST#}N;X3ASyuqs|!r@rdz7E^Z zXyvu;6aUH2N~5sHY>ziRpw$b0_28@pPTbgwR&}?WqA81hdcJZ-i(H-rGR!7Zf%F-$ zrz=~%*LdX!K2EHx=I^y;4zDwFINi))!ptFT_&(EjBh$CG&4A2U{|!IeG$OaXabVWr z{?$vQG$0#PNW^tKllyeG*QXw%+;yU-oULt)U@l9_}q1wSDu64(IiFA|1&0eB6 z^=sT=UK#@-?O3l?#b46&4))R*Drpbo%W3M{+)rBb(_2U4-TA~0Z+2fNRkMp1wf7U> zga0#_8D>ysddD*-G7i`DPSo^X!>nE>CK1y-P18JHvwN*(S9`<^lBb(VcV}@s_BM&0 zY5v7uylK9%XPS@aR-$R^J=2{h_wg4&r|mEbCczi|eOJti`zWK0GkrG?o`xEJ>e&3? z@Zv5>&d8jld%R5e5{=jg}fP-R$oU1k_w@1;X~Fu7~)I9Qbdp9Yr#F-J)qJGHm}i;$37W_CCT z=npjaBl^W*<~1bSYz_naSosp0+1 zQK)?@dMrI2BPXTL?zHK>)%MQ%5(+@4_OM4!%1 zJf3I+TF(S2!?0{5F5?NVhfeaYRAZ>l$T&?pfP3RO&Hol}{tIw5KCQY)Qr_I#&nubw zO#lCC089U+(e9}(eu$JNg1`&-*k7>6aWCPJjAq7EGNJ3EnQ`Yv?M?8y)?~(`pLMM+PL6CJT@_f)pa~QaO!S9@ z&5W+%kC7I2orkmmREJ*Rx=zN7hqKPq$*{LB(60$)A z2KXmEqo@Dz+RDnrH<6Qs8sYBmSN4(7-_){0a-PRL6 zCZ512iD_}?AvHM88F^k~;B7aQA5<)R4b0Hj-KJef5Chc%CeyLYoskt_T5<`)`{Wo% zBLScNbRTB}ETwG-9&7<4*O98mA)~J!W?VPg)W; zHSBW7$jhBMmB#ZW@jc^Z1!Aegjf2;H(DAfF)@zjYyI`SFN9u6TBC8Iky25!z2Eg1~ zZ=%3|_U0fv{H}q_N1r@7`#GFcVEsUqx#?Hd}#*I z_TAg{cfniy<$Q7Z>3zPK_4pzm&3b&62ajGO;zY#$k5(aZ8aR}jXP;Y=ID75^9a*!! zOh1`BQB6Bo`yP3i3(%#7xY4LIXYA(fQog-i+J(~L&FH4g!|VZ^QJ(CXx8$_0maUws zh!gH59e*=&6yx7o|AFGmDmiD>V!qD!F+($?WxOF|#toi|KbdQI=66bkPY_Z#H7=yR z3S!C7dinFaZ`G4}S3RIl)eTc{%v4@SJR9cDy%qSz#1Let$7w61D>rR0E5p@FZ$vdwd+|c5hXJU|k0qq8f+5=Mo=H>+5qHW2&yj)OWyoWI{s z3aZF-8M5HVh4XyHaYE|R-{sD zF_5B4BFwED0ieRQa{I906m`~Fd_T#~B4uhIzN_$PbG?&9{eMgVW~(({3iYumds$o` zlLxETz1YTWDRO@v`dEQS8|<|W&X2>^0`;F7hQ=`ZF&U|8fIE>~qAf|OmZr9-9kX}_ zy0s>WPmB$}JQVkA1%AzwFzFOEV1F5t1A?cV8;q5}^Wmf$94q0dbnkuBAXbAtHbi_z z`qki37n5Xi{K> zCnLRlYd>^k)kbv^eVZlsQ(I*D2>xm81G|=_sXhMW_M%fD!cGKi^M`*8C+d>zQUB6LMcLgEi&7 z8N?YM!Q{hXIs!JAc_TNy0|fk3v?=0aLpNW#}NVtMk_s6 zNY=bnR7*&g<@&K(T-xG7X{GProo&9d`G7U+iUy}YC%DnCk6O_;bPS&jo2HdKFb&4Q z5>Kt?ne#a8<4HviCkZr2lW1rW|2{q8T%T?L3OGk@`30#|G$~ZOdiEkf@|z;>y#38u zD4&A91YIyKCx4a4F>f8L5}~5ie+U5pUO^#O%y4GTigc|-iBuq>td$y z#W-O}&-Kk>*^J03pLdtaA7sTQowD6?!*F+#ID&@VSHLA^*#M=AYzS@1IG z>N_B3Q@Dz=;zo9sUFJe(qbk0m!HJ)U9#cHbpVf-1kS!~ZRlQ(8jbP2*i27-6HdSZ` zGT9?!|AgG1cx$GIpCW&z`BTDUIElrk8Iz2ph3I$BSPRY;Kw37TO=6`_;@Q(?fDu=x z(#tCV2#36T2$NuQt?Dq#0l;6y60_2$skrl~GHVyO3$Vtg{5fV`pU_v2iB!?h_Ex{f zz$dxesgHBrI2gd@CglF2xX*!pPQD$SQKcnAjX4+jH}p_HZs;=yKQ@rBYHLJ3D@RUZ zmNS9vY9`F-4lcPBxWTE2z{uEdoWKP(x&IDwtKuG7L62J0J#-o04-jk6flMMcRV;Ng zqTrV6m?*}!fW>O|yLONYrvy5sebUkB3Ks5P4Q%+z_*?9>8}cVpcK8n|@4<<3r00>4 z)BP9gz4g!eu1jfteo*CMit_WLJE!L7S!=;w!N8xNojf~tkDwUyQ?1he{2X?_^;&*@ z@DoTj`OZ-e*clOY1?5Vpp>1bB_d|fzFy+BYRnllbZt^q)UN406(*Du*HYOQ|JF7JA zj(YD%?Wi{-LnM_pMNvRpXMl{ap~RIAoQ&Pp(wT$X>w`rw4BX4!(j{hQI8$%9P%B7w z8(#I#j`~nya@@HY_RLI{9~9t0_wywp&~6QP-q(k(S@7#nfVbv>%9x^4Sob|(HNehY z++nV~?DJ#@lfise<3mX4EhmM$xM3d>T0^U{BfyEe zm<@jMvWxg<&F|!+HbUdKSp<~GCW!RJK#J7*if@v)Dxv zZ@IM}F^G`%Q_rQ<$=%V+j^J$EFPY2l|IKL5!NElGTjo^T zU$U0Y2-an82*SPZ2g}8)y)F3?@dceF8jh9TPD2f~AKQyH5R~h(u@OGZ z`Mi|P8911I*qkLnHWgyjsMzfL~nXD2s&x_sg6 z#D_qk4)=lXkGgZG@Vz4?80w$u{U=|D%kre^TL-U|+B*NKJ@Ys;7sdOI*~=c`=V*E( zF-~(ZMhB07DTDzvZ?aI3+v6b3?O+IvI+}4`o2R|uedtG}CrWjzYR*p>CpVS%m7l2n znODWKV?=3v>@NV%(yi%6Uk4yL$_q5g+}?U1i~=EH<5GwF%^K~@7fBJTbrVQgmOa9= z``gR8FfBHp%}!5qw9mICQaJPw$Loj3$EVI8QfC2Qa;H7c2(rUJ+8-`*e~Ng{%zkhB zwL39T@aVU1(^->38V!v*M@-rrs(`%IIf@s|R4DF- ztB)-zno%SVN_TW~&PP|a3;PP`LHlP@S_LWd6aJlN4Zm5F>~oi&{}Z zZsZNoms(_Eo3J9p)${y^w!D)3A^JbJo4&&YEHf5)zHiaFYc)ij8y*DeGMCT~2?f!v z&Rxu^^X6AoZ_AxmcrWxQcf7tWlx;3COjz^RA!o4nuA;Csgh)nI$ecQw8O7>muCjUK(;3+bWHPWR`xLi5u+CtQ>~JLZgqes9IcPhgMN z|E`m~_}hDu9~*dE%f^PMUKR``j^l4QF*Faam~%BHHzjr}`Zhi3GSOy`+^%l=NcHFA zd&6NM0CinaSGa4uj#)H$xPk0N!rSy7`3myK<~f7HiGga;!!H8w9&bGihbYmh6`GBY z@#Msqui!?Rn%avqla6G@5HRl9=(xwwe1`^Sc#fk99AQqGzERIB(83%7G zm>1J+-00Q5Fw;9vsZRsOx-wuY+pD#u;$4}L_FI7=eV^rUbWunIA)`D zCGl)BA!9h6__%&0^B6lX?#!cR$N6rsB!!OSS4c18L%)NY8|Pi01R zCp+55o=}~8lU{lASm=*F(I2Ztj%Zpo#j}%&*>SylR=jq@EG|QB7(>HW9Y~`PL~X^< zOv4f0FF(v|^4xvHj)r}k;^-e@$J9t~i)kwi0tMU09v?{ZH(bc|ON-l^KaF13 za@q^ViCcl?_ROf)lz~^T_DX2uuxT&fFrKfyhF|Jw7z2a4l7>JlZ4ajH{WGS@)!34er8xi((sVe8tkDhEmY5nmYa3H@b|fC_v4j+_^wW`07;> zG?B9P?$>ViPrWm%81n7Sod+>PnDyMP{Pte&;A0pM(AbV%J;qzaCWF{T%wT|-hhXhpTh$#c) zW7)DXecS7wnRJl;Q40zXV-95|9Wu4}?IEARt@*O~lAMSNB8nYh?QiWrRSMUfCo(j2 zPKp!ClnfY&VT&Jg#)S60+`v>|1XpTS*-{G58m4vj0~S|ueM4=ll{%K{=zsXqUy1OT z-QPC9*lyzJt~I$+3zGf$0M-=mP@Hcw7b+fhwY_ok5eTM%9fn|0pHv3d0hHRFpBK}D z@v-O8YkoQB4z*?PP3^R5Ke#nyFEg(nv>goAKHa+qUTsf*xJJ!R0WUvQzNB|~`-Qe6 z#i^a2`W8IuTie0@pViJEK3wDdC;K6dx@SMtd2w$3JRIN|W7H*2fx;8LlKIt8{k=nK z30_I)g~(pct%+PVRFldd6LaP(H&uIl-@f%5&kTwFo@K>nwGXdxzKjG^-l*;O+V79f z@AE30`$9Arb4HIx8YV^P+Ko4SN$1RQvFwH6SnZEuGf#}!KZ5QyYBRmYTQa&%caC8n ze$?Ih8l(C5M-a{zBMz)o5wdJgHyRkvU zbYY;3^Rg#i@gHut%gQfrbISr7+T75Zh4w)lu2vl^*w4qN6vv(Z4Ro??JIsw%gEvot zQ@T$#V$_9Ul@X-Chq3<+nalNTGF=i!rt`$93mc}ip-56uDBUr$5!!U@;Fhh4w|uwE z4eTlCB_t{%U1LislKqfwBu6yBs7E~^@zn+nU_WEUS75z37$-T6MV)`~#_Itnf9qVc zkX83;>Iq#rOOl&AS1dHb;oa_|4|D&b%Fajpb1uIQG>is&pErynS4~(knXyf^X0<}p zuMa|6HI?_F>zDJbrgiR|A<%e5%k>9Nz?iW^BKC)=x6g{C-YkjOAEXYS70W(e`3O~^ zFgV@1YmG4@wK1Jv51D!)wyec9t=wHDW*T8tr7O)n5FHdA)pz}F@PD`azkB@OB6^_o zu>V`(|5p3Ib^foE?Uiq`|2xC~ZT5c``oH(Ao#DkaQR1r65<_9x=EN<`pYM2<9m|Dcs1#pXne9jlhV{HzbVj-cGcbl4*a5a@PcL~2 zo&;+th;NGRp{fnz5PI8fX1%o?uwql5LXpzK+{0QnY+T#^vcMjrLzSsKNsRHzV!ZoO zYW@Fji7+M9@{JTL3;w^9vX-umWP&I8c(2=KePCl8QDZ1^6K)^ysD$o?XOR~VU}lXE z+VntnGoFH0`YnIV$unv;5x8mkStf)I4n1W5)O@geRHi&oZ`He!>%^#7QMbd&Gnfn` z#^D2BEt=*sw2166LuB};6e|Cklle(J^9&S2*>PFXE*4nSRdCr_)?>hu`Oq+W|3VW)fB4S0~PaT>Q zvF^t8!@=TFnPElNyyJkD`b0gdd}NU5X!9h}sZZl}MGO=839zR6tCNg;@VIPQT_%Xj zjI>z}g);KDX3E@NC?oSDK{=cWTFS3gQplgo=b!H9Pn<^e(`2r2d*uVMAWh0cUE>lMMUOhA8JZsXg z;eHVkw&m_JRo5A4XuTGCdM__#WRgb-8i`}Pp1Kj!LxVnuP}LND%mhzReX24-m3VGg zR*pXYWp}O7svDkN2d~&$aQ13%u^nWwZK7i*lXH>*m|1CzPSjv2Om$UXUDE~+g` z4kwOt9u-#{E|v)nj{FD(-*J^NOq>b9@w}cd72k2^@n`h8&PDENUuN@LHhT6qzhPoi z{)t(7AmmI4(co%G&HwOjZ#cIoL<{ZV#ANoxmOXsKQqAn=&XQ)m!KNvWkY#kJIN6}; zsO-k$2y!`)PlyZuOeV(!^5eiB=P5WAv1C6*@2LLuWF|&OVzd;H@y(`lRV`FUQN{R! zH!o@_@sKDYBYYs2Bn?KIs;tBJ;r5Ie8)j&^gt`1QQ%#XG6J_z;Zp&9W^;0*`F1m3k zW6hmfnEzOI<_Kk2OIx|id&+@(|J?}+l9XGFhy+_XkDer2=PK`e3oVYO_c76^Y_CKy4q;#U_@UDsM> zcL8ZeoGU*gU291yr=isKlE>N3NkvXq8M)#$qb@tE1w0{fSxu1S^p2_?qW~U&`(_46t;0%URBchl7 zQCcv!Mv16$fm5A2QZ)Oem=hZsbH+=g6?bCz1h1=h?}QcYR|V%aTXsRJRvvCsZiyY} z{AYe$8uZYu{WsLvLp?&fH}ioC#&dkl2-Q3#uN};dvTFGCk{y%k;+> zn|P;MZpud{pS5g41@b^Np?15iEPEz7w}XoE`wIrCF2iyby~STLIZL+l;BFajvT8=t z(gI<Yd3rFpJVO`OhjuF}a=+&B|8myadn`u z9;QW~flzC1?A9F}bP&QFclE5CxyTIiKA zYe-7m@=9gaQ0-!^q1kmkYiLW)8hWR&h8lYi@-x>Ey&1?paW{1pw(sjAsoN_rq%or> z3eVoh&_S2LzW{bG?c|0U{2w;Sp$4~`DconBz2nZS@4XJdwt}8V{+`x%Ef{Y}k`8?P z1G3&?s!gj}03&;*!Zg3*-aM+Ot5({$zg(jAl}Gq@+?%doD`pR8V(X6T*WW=SAGWN2 zu*CBU&!C>lF{mdoP%^8$2OrSXDWBSJI(EdRuzteOzL~Mb&X}^y*b>-2nXy3!-v8Ks zPXEl<{^A#iRSr6YWB9d4f|@|&ebe@jz{VH>pk{=#cTO+mc(6}^>6e*M?2IqVOekUB z%S;G5N4HzxH#_WZ<3B^{0cu~IClggmC*kj6Ip6pDkGTD!;H$Tfa@B^J>qYhg073;VsUBdb096Y&mOwC0Y zwxJTC%>c7EF1u!`bn8Nr5r8+Fm}P_vtH@zOA&Q`BK8RC`2l)~)3kuwp60-D3MDK;H zWrVGyw6$zT@zl1q(A2io{NEm``k-oWMt)O>x%X^craBV~X2#2>YqYi_NrYc!%Q*Kl z<28+KWTs4GU!}2Cn%A05YU)|dZk~@D!;?f{XlQ7x7-3iKi^=yp{{{YfaA50}I-Um$ z+$x;MmS%iG74AQdffv5k z4*%D7_TR7a!9b_id~zON3POEZMo<&;nwdzOB}UNx=v*Z9ORWjHcgh=K?W@W6e5rOb z{qVWOJ@xhC55gw83RBQebb7l{R0UdEBX;}j(Wc%AH*&d?sln0WVU`ZQ{Y-r^RJJ*& z#28Dh3%RG$X5`Y}nyfdxsnfZ>c2{yWE2xi_Tu=LkKb@N;oHp$o%}>s&HJN=g7IR8t zPSa5FysBf)9PZ{}sAKJj6&@eVIn^0oj&juqr>+d=oUp-$!qk&i)hnqtkEGU==#ppr z;iYy|#HMuOn*j-=Y=L7P>*xe4Enk=Tgb%M~{f?05eS*lwY^fe z!3#hPVFwaX^bKPU=JaS&54KWmfIG?-JyKzP1}m&j1p#fPa2KDlzacvoxfADx567{v zyUt+-47=)ScxBP5_5J1m;x;$T-TMM093u_O=3Q&qYL8_T*>?bo@kr``m^2-%%Fc7A zF04;?CvhMlstwOqQTtia&(#3`d;+>DOY9%$NZZ|#+kd?#Kqu`(1d zfkP3mEw8lZPh)hlmju)}T5NEdM!1*3!&ojRQNuZ?r3W}5Qq$4sk$Dz{^&{48e1uH5Oh-aE!GqS`QNjCWu=W4G;t5!_3s~WSi+Z6}oA| zpup1C^geb@q`D!{Ax+O@wvYerKKRBJ?Buxf1Adx7wPNS;a_5`Oa1m&Q1qDc9uZPnO zZ~v6m)b=B(R(vXfT^9j@)EgLi9kkM?@*K;42jH(QZpdTUwUr_KN!kCl9{y$-wwGcs zVJ|vz0%%gs%`L5Mkoj&5y#Is{ES9~tsF;vIZ0^u?qBR=rH{-RqplzLbvnKO%HLb*o znmXDZIdp0Y#@-3`erwrtK6kIExf|}@0RnSeU?fY(98Q>;>h4Y)i*MfS?E{L0W4SQS zR?9d85Ukd|oH!LORM`nrYoBY{VCQFQPr{Yo%$*}Up=-+-u#2f;g&94 z`irdC9($RbIT@lktxrb2b(~{-fz=upUpILCq6y|M2_a=1lUWReH(u0bF-otdf&?n}E9>~;9)4zkNbN^7 z&FtVmspQvL;*mew-21Rp=2gyqNX4vD3Hs-@cq!FhiaX1D9pS(Jz1b!KZk}g%ix>eNZcTy-5uXHG`ZOb6B9L|p;gs%$Q^^O zpa`xS<53ffP|9I2&RT*zvIf;vG{=Sp_+={}A2L|diK7q_d_1*Ioq#+pb6>j${VX2ZQ&X87 zE(I&ilv`;r1XC+@f(DW$%{$KYT*uiPo8R~%`-c_X*tL2)jL(#De}%kCdPMe%_7)_| z?*~)wRNzr+XWiU4npMr)fmC-O^;&o8i1~X!e<9pOs=~ey{f?Ir>)~fp2TEg8+GdZG zc8Z+y$|ju_3}2a&88vWy%XsN(`^OYc-YhBR#dFMBMi|=sn^{@Pi1XLm83d=hp3j z#aZCf$$rRK$A$6ff8flT^;PT9rM@l4!pGPH3Ezf&Z&=M8dhP0<+GoL{G1;;w)U1gC zvl~7$V$L9cs!0v zSF^p`WC@^Qv_QFz;_P>$=^13!I4H)^)%bG*9MKkpFUfK$_u_Oq6DoA(YQ34xtLrcR zn(YKC8fO#laqlrM7)Hy2kyHO=-Q5INFzq>=dvIxfz^adRj2tovpOOvnOJ)Ad`dnK42^-0-GRHg zNOcC1?;Eoy1Bb`%;7%?;%fG9KBQ39LaAIia`wQ>T{L_3P{ufD1VPmJjYzu6Q$+@L-|9(@G7wI3dR zA3OS8_c!#ZO&zhc-Of2ab)c)BcbF8 z_F}{MgKUzmP97fus_$Cr>yzx?*9v@FZ~S5v7RJl?Up?wwOv6I@r^dUr&v;MSM7wV} zh4JQ7j~;K8@;$D6-gxu*{$IxXJS~EAea1UT^-ZTfdvUMi&ls=l3&cVL21dVpP+l!u zc)M({KU8mjF!a`o%m*@EkCD?gWWB3FKW^aMx@DX$GzWHW%cU{-I3adr@I-cs- z{5e@d92H-rO1>ah{g||U>xy`{T4ZO;Gkas=0^2nrTVBH?rC%qBov}sw3Z6}ZaiMYF zM$<;K)spqfa+D;K)Er8FckbIoLEgs7K5jC_SOxC3UD^>uaEKPlg|%~lXB*M4`)Gkj zFBI^A?2|XK4~+8mKNYX$z4KuopLlUp26z>u?h^4ICzm%pj}2D)oRwPv4z zKcw^{X2a9y(&7Yq`{Ooutb2n(7wz)M7A&1pp zAAMJeam-Z+w{E>0ncxADnT$IRR^CtLFfV~nYEB4ks6&Yhsq>fA={C2B3P&viD!kk` zuBZ?w3(o)Kj|}2q3wk$HgR=P92&Q;Lo0adz#s84q+X6mAmKDZ@IP?%Avc0Igz4U_Ff02xK+K>#$1hVJ*lt zxGyEncMpCb_?p{O%o$e67)_k(GWqilC(nef^cxRva?g6>_%+hE&UyLzof7Xlw@oJq zRSp%v<&LyYO#<#{WmJDA>d$ouS0p3Vg$`yId^+fhgy|=9#f0JRVfanlEZuS}%rzCk zN>`c%POvf;7N~yPfyqlR`^P@~8f;3r&9_mXfJIzvqPnZosovg0axYOIi!i@Gu`T`8 z01Cmj{L4vxnH|3I0}JzJ51*c?mk%xw5RXLez3Zf;(u(^DFaD_jM`Z0BEUS9k#odso zMrpu6tgnMOw9+<}y8mK|WoRaHaXnS=4Env}UdwodVvaK1*ZxtrGqm#(;El>2y|!IX z)@W>t^XJl2&#?b^qQ*M>{ZfXCoT2U@ssd#0Df~h{Y@!v1jKuePSd{Uc+2b%)qT*^^IB`AGc@A-%8=6{Gd|w8 zTE4UsXl~5c$sjHO3Vu%-7D@JMHV}j^&LZXSYG-5q56ePDq`q+v&t0q8_0KmC*gou1 zHrelVD?7N_Ixe$scJflexngw~+7bo}AE%nU38W?(JTk%=A2 zjPK^d;pEF+(>@T=n(o{hAOs!}(L5~g>(2=VmR>dJfnvWm_C_mh(WJF>rDSY`9E&_A ziaJuYAMSdX&#&`YK7^HIJ|eMQxy^ixRt5`S*=yM^9|$H+CRs*bD5XXa(NrC@Z%K#k z@^tfoQY=T1#_T5%iQ9I5*s?>-m~XWV<3%O{EuZ5dvhpf=kds%N!usqB=id>c*vA&o zAbkL$J9mn(G@sw851)$=t?05M_8F_CT~ztf)HKti;l-d^9m_Ta@Qa?F3ZxYa>5Gh8 zv5-Q%XX*!aegAl*oAoDH^WGuB2>e>PP_oz8hjK|n=GQR*U&!gre|@ihQKQs0azCSA z3mwlQypS7>b;$-(djqK*0rw|`Vm{8N%P5J?SAoBz`OD)^W6?-ZXEh+A*DWWK)5Dw( z869lhv$J0ZYsMh9v(gRTD7Z_d-I@^+*k6ci>bq-N4%PT&wz!4STXuI_`(1$ zy$265YZ`w5wA;_8L;N1#_Y;0Ga+)Fh#L8*L5q^C<-QNpOAInXkL9>3m_I{-H*mti3 zR9^3a&cqk2p7H1VAHtLpsI@>``l$T^$O^ON_0GZmc}94p{edGyG>i_|8?9YG`}CI9 zdVAL#*Z#o!zDr@4&U$IU((qB)3Z=y-(Cy|>H?9rH$ss>o4lAVd&;@xuCNolD+1$b-)qrY z*IF==D(rUC^%HeZ>)UU4_F(n<+1~xuc-%QIp+h6^@gf;Q6SWrC*S;EI7fCkfE;EqT zcA)iXwgZ|d^0x!+1G&MV492jf4A=nLZb{{Wo!f+USLd-VF{vbvzt{({_pt@W*z@+#RnRH< zZtfT$t3G@VeDV+nCHjezf(yG$b|K5hx#LL8?}_gqxXK--#|3ypseRaUE_(i1+hort zc4^KsS?e@SR{AXR)n}(L)K|m<)%Y}DTgO;Sr=JmE#<06{qGpPS&jr4L9M*#W1NiI? zrf6H|ki!0Cw?(U3qllgg78I@SaBt4eQJINn;Gts;a=TZNQ~ieV2u`{V znG+&$cRz&}^k5Xs#8`413Nh@)dPD2g+-nRT0nj6Y*a0BtK@7{viFfDaj|Of*4{k5` zz}*86fUFqft!QQ}W`e24#L?bJ#Jgv$^n8u+#R1PL2z>pEnrvjPb9S&UOc5;(N<6QI z|KQaobm^b3P3UsESZZ!FUbKfe5mF9lveOC}3#JUt)O$BuY{=4VKL=Gavh37`u>oRKM%Z~uc z5Y8=*CS>j>iv8i8wN|>0Pf=%ycrsCErFa=pXYp3^lM-Vl>Nwl^iOoG+REI6u=OWog zpCvnYU4IfbZ^t2Q?Z>nFcZL@du8gQ`_A~mjYvu>A&tuueY9JAb)-I9tNb=Zd?Mjyi z?h*WjVl?+xLlwEN{bK;VWOLA^3O6rkIFTpyNAbfB$Flv>4~C1bpMmvoZ|>etZ-{ z_We-+<+4W<0nH=P6u&#E;&RdL?-n-#dmsA)nRK5?gS5LJQmE~k#RY#SX>naEH`6PQa z`emn(mzR@`XD4@1lN`3l$BEm1q_R&c&;Cz#snn9DxDbbx9&0qJ?<=UN?2Wx35$_^ORS!iU367tDl zzAK!}p5}uyns&9hLBrz8#!5HuKA8#L$uP)GYkaYYkcR*~r~GCwOp(Wn=VZsg^|GWBG)%7igg% zGywlY__nFD?rLw_S?q4Udq6(g91X|Fqkj#7XV7wT7N~sk#)jJ0R?&R7+2k6mF&{^) zG3y$tK9 z=%^TZ^YqPfK-69JOdb{#h}b_3m#~259tIS1nkE^?pt@qYt)PZ>5;AMC>L0S>;+dpn|}4#uR}Gh_6B?(vlSG#xmw;O+7?PPaQHTur~@cD zvD^dp9wl?R)PuhCv-iM%&0JU6-#w>>PP4}?9?U80w$vgUfr-=;gnbcTjB*TnUeIvE zyjbg_=uMKKYrZ_&{nn#>^a1EU(GM7a1Ol$K6^t)W?J@#cZY0(A;Wrt3VA-#v+RK*< zV@*ITGsW3P@_cdeDo>aNzv03J3aYwFW)5#}$O3`Lw4gF4QSi)z=* z++@Ej+vp+mQWhWHT;=2_P&)YnedoGsysvAxHhjdUGM&j&;t)2K-uLezVfv}8@dhiL4G1=i) zKMs3y6x;pOh4!AhOjC)_qSQl*v0zE&2gP~*rb!QE&du9u$Ew{&CG4|Mjrw)vhk}9|@)UtY`LfUj|?( zuMvGf29qz6+TUMVjW=5J#UPT?@9eQhTG>kMEm3u5^wPNO7a+LxD5bR+hmi$L!B zmZ#e1|A+^8B&&fIbG?SS1{FjumASiS=!lemqd$>q=)pqy-%!jeT%5a=R1aQq)!B5s z))Ke*H)5N&|BrlCCa1Y2XHucQ60>MMcvD~4ntuXmed|;NUdh?p zQ|f+zfe?KZ%&rm8>Kxp zI7mD8;{8+`wHNDFLrg~0eqd&K%JlQzAwz+m1;v=sorj1K2vJVc5;H19_F`Z6|1{Xy znLkRMh|PG#v6NkPWi-~nmNA4f_BQs9)1$Uq2bp&UrK9|w9p&RWzy$g`s4Da|Wofl!jT)(6-1ZQJ( z5O0QGZ?y9Z9uoX@;oaxkd+zhhmGH?|%<5d6Uq9L5!R5U$aQaX382De>qq4&ft?;mD z$qlTa?C?te^-tdGqrAHJc+WTK`F8L5Ts=4Q>~{XW?|H-d5n-3~PaJL6*3w^T;C&Vv zN2X)6(oidk4%n`kG?xiywlHjZ@w(rORX;xZ(6d@R5l~*@k>3~D3WYp|Qrx^l#EC>$ z(b^r>ZMtT1%e!tWmw;=?v#Ne#9D&$2w_?9+)!$0QwP?_Io?h7xo|?S(yjNIH@F$B5 z-`JzfQ35YvmSIcOAK@3@H1*y5mb!OQSG@M^Bz~l}xmR;scy7{*^L!_+a7E0iHUA7I zs(A+tVOS_K^H%~`;W<)^0e#mIZzwAw$d+N_v-UWWCM~|9#$oQ}nn73$)f-0T+ z<--ZM6TcA4BN+;grG4SnX@LhJ1`McgG+)tub3x zF)c;0s&x_Dgb_xRgGv5J?lGwBMqn~Ih9K=l%EkgvZ1Y6O3Q@#rh;+@nkk_E!v3lqC z>PemByMv{)73TPzJuI5c3Dv!2;#|Im4brL5NnsLUZb};QjHPXL3U6$$u&xb?W{2OnOf<|s_Zl|3 z{P`KRU&4!(0kP>AAq~~LuzDAA7r?numxib}SjF-!*F?3w<{$o()dKIItyN7O5gfdM zM?Pozb`(@%*=eEVSp{$qY-peR&incCTk{^G0`5@^ce+2^vR=e`uVBu-NNG;kz65t2 z<0O7kyTI!Y<($153NY1p{GnicnLpRxq_( zo2{<-nsip=J!Bv(@+ej$am|OBpMK|QeP)Lb=7$K$3;p=Wli*uC)7p^B0w??DWop>0+ad9+rpL*4KZpQTPTi-UUWvM>o z%Am3|4%+n+o8G_~RRy^fisHZUT%-exVHw8r!|S~+8O_*@bIumqNpZeAzV&SwQ9Vqn zyZ>TH+$fO7pv~k^R+B4`yOGp9z8br*UiYC1G8jbZd{y*{`UdxPMA?2kh`c@%8@}oN z(c3+A9LF%uY`GYH`WCb*(ir&xM`nN5p~|D^P@gWJ`v516Ap(sB?%<h9?$Nbpdop0!=%PNkq;idZTKao*lyG1U3V=2Y?83Y^@vqn+M2W(-}ljZ{frLifrYd#g@0yQ}_ro z`c*=+tb#t6$)1v(IJnq71oR>j!*75y*2W)l?^r% z_^r-3+WI$Ds~7z{n|ylAKByHi0DDusj=fL^)mSRh@mOxC{q4Qj5=LzVj>s1il>@D% z&nN?YtcjJ!QKAe=!=lrPlf2Ms>c9{>5Oo?&2k_N}Vcfuc4`STBWBBd}HQyS-i1AWf zR}|x8B8a)s%@8inM{GuM~(5AY+g&%G7s<(@X%ep<+gX7m3BtlOj`-}xtIeAz?Zxmhs{EO7qR zhrSd+*=q%Y=QXX^d?v2O?~&0DPGGm~?}^8aXlpt-jXe;;i!p)7h}Nb7_375+E!t0M zW-86N*G~B~g{huuLx8qqMUN>-wA9HUdb_J|N*1>pp)WytL$ySoY?iyWTuAtlR&ohO@(8 z`8%_A@l=RqP18b(a&j-_(OPzSvFGiU({~*ZEa6MgT6U$FKnPer<`Z-~mb!3(uo$Cz$+*U=`QBmikyxV*6HRg4oS$Y23;{(v( zS;{w3`Lb^EzkSU3On4d}V1gIo93Pm8D-@qY()p$B3?A4_3VLvPo!5Q}(Luk0*3vG4 zMlkB196exbU1(1N>(AlC)pqq{+8*Wg$6EHC-jgGJMY3I?Yy*_-w8H(f0MzK%ao=+v z#5|zy@$S*`9?)cOZCr8UZU__HrN>RJU2i`<>m2$d`8SYc11?%+YWf~Eb^gnn<{3|J)o5{-a`)Msbsq@$F8TSjUefUM3{|aX}@hWb$J_G7g z_$wyitW{GRuKB+EpPac<&i;zF{nEJoVWIvK&R-y2n(%^%`UmE3r>pSv(Z$S%f^~{ANUZ^vo@WI8g)ol^rQP3CEMD80 zgqYv${+EWrPSA^^dZxBfpRrrO;~ydubl<|*t#hOM(C?4hAH1G}yCRWl-Vjb7~?j!CG?UFjpsoEN^-DBOhgd8&E zCf-!G{G!AcS0%2gPpI!Fy0HJnq)z@sC*9S2BR~~%@<8`!duOgnO<~>=kJx8`M=3Rk(tSS4tdketQu~IIue~S3LL;<)Nl8;gaI&%!AIyY!N z7`o#fx1T;dNP5jv?*DLU>|ElG`mG@+Px~9#*Uly(MR<{=YHca+K=s}~i|}~I{VT8j zy7l-i&k3x=jKZ+u!x(Wz?8A+OWS#ro14o1R9zFoAY`U_JC;1Q;Dem5Vp9j+AteVsz z0(@8tCeU>15Q=Kv1BaLxHRzK-w-44X7qi#2r-P~{kR2Uh^${!B{{Xp~Ha+ilvB4)FmzXN7pQlS}8TKT-LUshgKr^=TD^AXwXw_;oYOLFI!(~m8uR3u>BwJo2 zY|z!jeF6k9xNo&6UW%bxvB%x*UiY@<7bP|${&%n9l?LHbQGYc#l_v~#2nPhzUaRg- zCC^oXhZP+wwh)()l5Z03CJ*7}pSD z(+{y)MyN4yceHiLxGBuF=0!%8`yLROx)9h$q(#6Ax@^WHillTiEeP-gMe@E6zs7vO zh3_@3@$Batc+Jhq_k$|UZa;xKd%#oATQBfj%q#st=?&Lvl*Au{H!tB%;?GKs?jI+| zs%NdH?zDz3|18yoF$Pw<7h;CuZAL9Ut-Z*{UahS+uMAa_(8)^HP8OR?}sz@18Sr?t9Bs6*#wtUtt3bt#aW;wH$2jH|>}cuAr`yHtson8ukte zT{Jo4QDyR1{|NVqc8D!JD%VS9Qws7pY$Rq@E^8Nz~( zw}SwPd$7%Hc>^fWtI9E24cacJRdClp$E5+|^`QGr-c0CuKVF%LhbZ*q*B~9PaHqfF zRa8Mmk5CbVntiiI)M&rgm`$w9>+8`Ae3v*EHLypBb$u*5gGUx!Kn-XqqB6cF)L6SS zxy48Q;{g$+l6bQ4=Ao1b#`k`<$?ZeX55>N>;Gsdh28{j9P}F+;2>P1l-{Mjc)Y1-{$oX z?2qluzGS1%NP2A!g9VR!sl^lVS!N%Ax43HNH)1oO06{p*liwXLb&FdnPvnYo5?{j- z-d$IDGXD?4d9cyRI6)86$tZV2{xEv&9E8csv%J^1`+-D$zF|Ur7NNa#OmTKR9;S|I zDkJbfN%r#Y<^yNUx`5F;Y?|)QE16IL)r(Y~ObcQ`7VZmI1e*_>-1Lli7yTp6`$smd zww9ei|4R7K4-#DJt(5^?YFE`aHY8S*GFM_D!2b}Rvsk-efcO6Hh;1PCLN`LU7s~n# zft;AeF&kBO6F)|NfPN)bHVz@;Q?^?RUeLVb5g~3pyu)Y&FI^<%&rIqk{57QMw#=fR z^6Wmy(O@lIYIL+&ir8|xjtXxzJ@8Ld#0M^{3+-;pOIko5dD*lw$fQVC`bjH4nuieas` z8FC$VAE~X~bZW8iprV@iiEpfNMSADT|!+ zB{Z$56UHB3gn(16@0LVsw~}v@W%RD1_U3x~#d`at)SKwL@2y9|n0hB@Ut77qvwES4 z%%+)FP%8Y(osu~fAz6PRYo6ju(tj9bHLpY-6Mwh!41fOVU*_B9 z@FS_V%}bqG6SbeFt8MQV@7svz=A^(=sWJ{ZL-iIlSkY}RPkQZ|x$x0qr#JjY0| zRrxzrQ=R6*DUGn=qg5{lFt~{9Bl=FMU23;l^ByEmYmQa>6e5;3A!UpRG?8z6@igi0 zteboKszuy+D&zT7Kb11`i}`+*c>PShQR??Hknd%?*UNxg@BVvRmnE=_?gEUN><%>f7%)r`V^Ca^h8= zjI!ewe3JVmce+tH-mf|`RUeM{A(rb3`qdH+NJnY}yCts8ui&`GF9w_Gugq5EEE@{8 zGQzg~B_LNQW^_|&o1i;w);!taVL8*#(V^3M-`2=ks{tj!a4(}&q-!;%dWZCsI#^+) z|Hu1Qk(e2Gj3*b2PvefG2I9`W+Os0<^80!|x~a(Yx}PYb_Rcdrx?Or4fsO{ELk^c3 zJgWpdEiy`mG$;_cAbLU|-5SY6!-1QgCvU{w6{%{+&6-ze=D&4_(2Y8~12@pvcVSB< zXEO9e?aS_Uv3k(nzoapHO(34Vg8#2#@yiY{nw{q9g*RruPt>YrFbq_l*iXWdVMQC> zja0o5%?v{etd)p0Ym;xOEkd2+xT~`<@NQ!u2drjYT+^j}ivCWl4)8blrN9P$$}ifu zziM@MEQUDcH8Of2Z_Ms!deLvk@23tyf+51emN#fYz&&-FhzPUS%b4;+{I_Z-?7H61 zBJUKCM@wy+-d=6I9$Kld@X;}Tu$)Erco}Lp*yh6xAzdw>K$D1rc0?~K(3=OW6;eB} zxRcT}@Z_mjjbcU&?PI0;0j_xV+T*}(+#G5G{c(U%rCO9#s7r{CJtt<3g%0n4w(f}6 zZcA=6c+;}psKG_4aSA|;qsdS0vKoxE7Y7>gh@+d`WOk~WO?kYyhV^a`J#hpKD9I@8l?EO?fJ ziJq^mh{5(A`fd~z14X+tQnfi|Z%7@S(_oEVGdeS|3`3wcphkq61Mm|AhZ_RKlsaI| zle%Wi-tR#@wr?wXAjCHA-w-)? z*qFFb%l(DM?x!)^Z3ytVf$Ft+%sW;X4jYHv10Q>9?cV>(+?#+$Rb&nSNeB=y zc*7>RM<;4AZ~yg?z`SgDRXyI(6z))v5X8 zh?qV`)Ip)%FF~}&XzRlKeXRI3C|QVjM*7g86(Lr#4LMD+3??%XW>-YDbUtD09OF&- zs!D6pJC*UbB?3I{C7qWxO7~yqoyRlw$Lv^MVJ^25ZH4wT+R)X;_lu}=ab|T6H`!f* zyq;rZ){1Ti5O3pDfv~Go+YO=5(}i9+-)GpljQcB|%J0XYVZGPdgH~0rnnJy*`sZBL zQ*T%w#NL!G(o_f~%~7{j6dY^NS}j2=x-@qM!W%}6MHgs)z8hwgeO>vijtm2&f1x>L zhHkW`wP3EOCE8_>s@TCs#U3LnmN0HQKpdBIRRJ@0JaUX%+9PH@Q`z`KgUDEH6jB?S zF0;IZhDU=hBCPaZ?fc!i`mR1#yokb+Ik+RD;?m=qQ~KAGuA&F>(F5IGJ+P(D33C`B z_q%ZJ4vu433x4{8sH4>)ZUo*B4cfx=(v>&F;9>}`>XpOkKe=SXNZgB7^iNQRkR4=+ zq!s3(NUM5rR0{c7T@`O*FVUb^5xC0u4l+gmm0%}REk^RcRIZPlQ) zw?rVB`5xqxTs3X*Qh4ev`#r3`+qvEoxb@?q*(Cg)w9CK}Xz-=Q}n z`}rCFoNw5z< z3{OJ&N_Ef4&TTXAVXnONW+pc%`9CEQ}8;RA@qEuK_Yx($7{fMT%P0O&VR)?CFN}q&^8wG8om=f>% z9VNCk>vurT{v2EJ`NKTK->a#1QG81k(`%*=qblR;*gGwggKx^WLZ3}I0dj80q2cBGo%5!Wye=8GHbDDnmsns0r3F5WkF4aX%%QD})aF?mvZa}hX zlJyC5vy`klksuWBX*Kujm?lq1DHc-VMQIsVT4~|TP%deBZ}?$Wh%R1(4W z`7vF(?YeN63106CC3?G@%X5~K)x|42nYkQA>C96){{qlQGoTYXr<6p3L`v+E#$7d9 z--i^>M8$JK5YN19JYdihVM>#9^uZ+e^*J_BWz(}N6}feElc=_QEoX5#_J$qn)7M|{ zc2>>Wc%CD{NKAVOhRI^0%jkVRb{9Bj`g920v~*R;ELDMWOG!5M7{hMqdCmc3 z)Z~$HTU50Gt;OUhs#-&yYnyhCvKG7`Uo(e(ww=0U|C-mAUAtDQG3t2}m-$r=l zeECx-fBNacvn)z>CS?5tI((jW7mjD~tgO8@KHM1uIc${N`3$0*V-75_Gc)wsr{ULF z(E8AhvJ=UrU(_>KEnqv~9IX{vt!OKMC2m;dQh+&I!`9KOwp!c`>-xY73&f?X`F}&LHDyh$ zHQ1ST($Urh$G%VCq#Kk@C&Nu-emdPdVlG|<+$Z2`j9Y1D zGe)*Y2G~a{_*oT9vG%&!1Klq=cM3N|X|{$DxG&ruC|(q{);twIKCa zn2=Kb+snZ>XAP}j$U0pUJAcG}_li0xqbSI_rKFJR1t}Y;g-r$hXj83ksaCLr)au}y zGc!<=+K%Y2r5-`_?=vIG$p1&^^~f96G5^A>{C8#LPyI27E%jpX&G|fldrSsy#4fqF{kPdq#6J%7&<&%K-{$!ODk zvawOuxzu%%k&;?X9}tQ~bSHm4-T0N5mQkjHvK4JC#ufJFh|Kq^80!2vFP_@avYo};7TQaO zI2oGTm~m3loD%!P%S-GHU0;qC<-C1<$@XnlQB}!yfE7QUU&gTP{7Le^e}2gp#=5GK zE!p{FJ7yn)yMe{TZNzC$=xn%skzB?dVrfuqw(|mW^s?5#i_Axv4|{7z1&K+8vO)58 zQJ3)#+ixB&SQw$c9Kmnmno@?Bx`RzTFpbfgm|KK1rSx<{i%$L=Kdz>ZFLo6SwQnGcvPozxi=}xp|BHFz@flQu$7v zbLwWuqB)pzB4>ytr)}F`@rR1P2VAmmsDWQYfaXt_8bZL+L3w)1o<=&SH!6U7*{AUW_w;@PdA|dt z>HN%}@92IEoJ;p?P^LY$m>>Hnz@|DJaN2O*1vrMh{w8hh-n+|opHrn#dK(MP{+Mw3 zDr0nyk?+H0*L1TN0>JhoUSdw<5Q#dFJQJG@VJwJPRE`ml*6(Z%cvQGDZqyLh>6Vv9@XU zz{;>}R{ID#8h7a&D*7G}*Lf0MurC^Cfy}7gd3AI?K?<$r+1SdByGHZfidO5FN2!bF zifJUexwT*l6OG1Q6_O@)CbqmknC%8>*0{o@0?EbD;5j8$cb=p*kmQz*N!Z?W>uQqV zw!rE`SQ7m4+dmN#TDZ!V3Hl=;9z$4jBMz`)`_XmeWZr>%xqy}5o;}GW^OO8N3{^rl z(-gkx@QTIVfq2{p3VVZkXH|@C6=IXJ3M^Zz>1VEU40*=C1i*@}R#(;yJiD{@Xk5RP zC`XOEYq|3H9sP2E8qB;j!KxK}c)_~i zQaV~F5i`6fYCKumKf=zX$pe#>>=zR~GK_7%Z*t;MQpSMbt|C zRl2vPr6=Ns8&{i$pJKoXxpf zCKfPEx#x4OO1NbF5(AV=avrF0*JlmF$?uU$t2v^wY5WxH>gJbWx5OTddYH9HAjEUV>KG1>5V zm~Igfw+H^TYAtPmaBaaMDqG?#wPJ5lGr!D5*+Na3yJ1hD%>C)z*{ug-g;_ph<>Fo= zf1aOkIfywHtK|xL=DuscwZ6)3Evsd!cm(}gJj%?)@XZ__75b$iM5~=GI-~--AB;C6CnhS)P{9^;ia9p$JmqLkv2)^^4z!H8W4uxOP;JL z0WG~n^fvn25O_;oV%IAx#ceM%l%a+ zm5aCJ0=L}M0)PBy+%-nq=gwgJoGv7FXx~dbUi5?}ywfU;SCWsFr{!0n3XNi% zK)i%vw(%X_AfG0Pexc8xF2A{2)#W`Tt+B?m;!``dRTgP=L9cO__|xm2^n2)KD4&c* zp@%*R2Le5GV0IFt6-0UZ4gNFcr>>ViHU)j}%ixCWI=T%R?2LzLW_9ew1_U#A-T|)k z800V^YTPBEDv=R%uV1L0EuD1#tAiyzra9$?Z7cQ{&FOka*JjHo>{y%0jytoH7n%1%tZ+-u(+n$I}-+tHkUq4&v{5v(%pD=vOt9A9N>jn>Moi}-oI z?S#;!=yfs;Hyr*GnHqOhX&o1-qTXyj|4cxEJt*XMRA4qp{JKsBi9vT7PnC@$OD2Ob zGEP?P3Yvb%i}b|{!qk~tGF9O=OEdXI3WGB$Mx{I>(D_0A6WkAqF|@W0W9Y$O>IDi9 z_?>wVxH1T|TJ{Na%Gow^3%HYG72S6m^xE_Mor^q zNd$wzKI#`7{Rko?5|i=0ot`1o3<1|6V8O;dMCmt)v&G`phOETj;A{#uZ0gaBw@k6v z9Kbv?n~aCDFy97dkLF)yCwAT8es8%{$q0zkXK4K(CC(=*!fE$r>iQsioSU-Jr~YKX zt}tFgRFsVL!?Hi*=!Z0Zryug0f#c`?2iHYz}{XxQ?VAc=xkx-f5H-TnT1Czna3mq+ARU z*a!rP&mp?dIm9HLluhS(*<;szK{`{n|cH&;8l!h3nPwCzP5c$FNIUCG4MX`U=ykyVOQlEv!OtHENO6SCyR=`H4wJ3M69 zX{s!U`i-8KT~u}l$ZGT=zmK_!RBW=W^#^kv@=bB$m#t6VgE%~61w;bmtQZV;#pihd zwqn}n`4UWT+#_=-0@C#5Z}ZW>8~2!fN)-gzwVH2d&epic_<=r_Gz;!#lx*B%b~@d) zpM1F-OSW;3@nC#}d0Cm*Pd8fJOM2n{ShE{uzeEn+v5zW~Q%c%J$u6i8{|9~`69@i~ zG9{8|bnjfoB~$q|iBK_~e)XR*ax*97Gb8q+Y)Pz+e~%ZNx(%~kSBYUOAfT67w{#zzS3GM zu`;9g2;61F!TqusQOU6=+4HxJ*|}^PE@3^yR5jUu)NiPu#A=)%YYNo(*(<4dVjt=| z*us0nmI`sx!^nzEMy>(~+FycJyQcjq_B;Mq z3XmJnO8w<8;=5Y0I$8-gWbhb?=O5f-{C5v9J+_)RsWhpFAo>|RvlbMp?C5+e+R9a` z)&jW?t8tHb)2&!Hq^2@)A|jEvmaOXExP(;U#Mq*$kr{;|0{SB$T? z4z^lC19gj3e09^uht@8$yRs+BYH1Din6hGc(`iKo&M7pgtSjt+&6Gb(+vP0PSH?@d z5iQ_x{v4p4l^-8-ekx}6>FqK5U;nJq{HWql&wK2Q0G^A0c7~@m-XzAhb0YII*YCSW z^b^4inZ;WR9z_Zo_Zauh?*q!>?hbUJOhL9*+ihN!yac!=&KqYnhMXrK_}b2@71g1d z#q+g2b-8L2m;{$ls|$Xm+Td(H8&{j?)ph>`uFdM3t;pesN8G5^>G&y!ogqOR?4>u8 zTgH?xXw%Si1CKZ9QcAMl88yi{YwZc~qkR3@HjZ>4eFBG|DVyv?Qc8WxJ29e8n!{BRJ$5g(=3zKwg#YDGWVe8-sH#a8V2 z0C)Oi%MqTNpT<|$#uKu5VKsj&a{H#1EIYyXlaiBqRLN>tYwjO1D(?hh#5h+%MdP01 zM1ErrNH=R~x>nG%+$_4XCV9WirVQDG)`}DUF4-}f%li4VD^wdWJ`<1;S5~*G_(pf9 z&Yz_LS1Ady3A7s|(15CLCF+I!3=t|Olz&;b${==9Dv{FMBT9HLpKNxrKEdhKIm$5TC;$yCK zj#V-$pkLQ(V&@0)9fzvV%!kSwykpGp{CJbh60O)yS~))ElEj#4hLHG}i=B56!Ss4N zhsT}A)l8HeqFr<~Ew-IkS0&%XRccuB+xJTFbV^2y)cTKtJJu};>Dp6dy<9RD`WMXC^w_?YJK$mCAC5}g{ zoix3O$SII&|6lD7tv|1*$$hiI700!Y3(kldArxnyz{2lPRP4!DI39tFB1 zz5~idf|9~qNwtp?e3wW+mU&M%M$LPfE0?F}o$jj2;ERj(!9eEQy z)WWMNDY2UG&4%@s8-55q=-LFeY?VCH-0E||byx=*M5yCq<{4%mjizKT=Q4C%X3m9Vlq;zW=J_4qf;jaT4=y%GFhBl1*)KXU)l`|7 znBVxlk(KcQEXc}4na?oo8{G9lYGZaA^QG5)ycumUf(-QVR{C~T$w23Ltn?th;UYn9 zeSLg7%^s+iri#A-Benbj8CIS!!-}4;O?HiO)WtN1H>@0wGDAn6-vMxd0o>dHkPE<` zGhX6X5!4>;+7~X&l?l3YE{-9YjkO_v&Z)ZgbC$dMGO@rRVlIBOz=v1(VC1g8EK}ba z649{>=@`x;72L64l0Eom6*yy%5jwN~LHtwcH)mpY`VkCT87cl8(Do}RB3L@3CRgM# zwPjd{R*N(m(?qtHL`lnDPwD76k>OsSOZMOQJne9g(LEVVe|`mwZ<=1QhXj(;KD3z+ zZB3fZV2}=L+;iE8fH?=MgcnvI-tg^HL3a4MdSdYtj{KRFA+58 zk_0a}u`K@*d`4B>~=_9NB4@T5e@r)ib z2P-t=!#}e>oXiL5f+5Z+InVNf(k$Q^ebDV}`5D!NpCxs9h~PQhY!xp^@T(nxXwcL z(yLS-mx;xsi;tP+T&xQNfjYHiDTCCy408XRo&Kck3e8eI7HFe!`a!saNg<8)naWRq zZCzDA1wO1)X%2k2mJhCw4eqQe44ZSD+tn{0sLOWxK#=;>+HfL(^c=r)y3%w(nqeno zmLkrPU&ERBn9B|CoMZgL+{|BP^}y5%S~TM++rLCQ5`9v*TzdWeT$Qeerl@pn7wIY! z>AISMHb|_~Gn=#9;ag?GvytnkcqFQQ%!sHyziU9xsMt$>jYWJFPa@*KG>}exemG`w zoN3wYqF?)^U6fH;rZrwgXlNOqyPJ}FeRqym_8y+ZK6m&fMW@#I15);TSsf*HR|YTs zL5yzGc4xs$hO`6xZsW4wQNbi$mL74VFTSDd3pDp86}v!+t2BjtkW)?|Jx`lZKKzak zvkIKSX|X%UtH1bHn7(*LsKEN{{ zIm+_`mM^a_Or5?6p_k}Sk#P;fbLzIrTP;^M*L_5g74f+-i$&C? zXX=BDRCBXAJ4I#eEW|+;CsAC_BQS0~-RQev|Bh0ESgO zUpXpsB?DsY5~^I2{7qiCX;1FFKH>6j=k%&6e@sr$Sjl5i1zr`C{ZBFVJM}EJlM1L@ zsI8iIk?oVRypulNWW~NEKWjVbIKj#{LX=Oj?|D%I`9?}4wm)7;WuOMa=X^{1&8?bI z_S#wy<`u5Xblpt(OQ&l23;)2vfNUYHLS3C^aIO`c1PU@ZWri8VSy1=5I3=uDS1AL( zs+W>G+{IpOewpefhc$!}2|4Mc1^|}=6LLK?eFuIZpzZ7AZr)%492N12E?}QEWtu`H zWRmtN=OfGlLnnML5Dxc++1=-*`HcU@uWGXYn`fv_ev9g2kKTJLLUacxSbs2>CH{l# zl7o3^LS34Y!zuzKOZyp;C8DlZU7h6NxAy7IuRFwGmMhnkFC5A-w3i6&#DfWl`GbbM z;fB0iA#XRXFrBw_X^~}J34Ob-+oa#w)|_0I@V`(^C7ey)%Rb5r-9A3quT*w^-zdvX z;qo`E8^!;}0or_th<;;Nd69kAH?VtGoNOwU*UNgK#KF%G#|dj}j(KVQaPbnt&CFr{ zc#T_X^cY5bx1Wd;|H`wNMh?(#IiWPYMS3Ny9Q3)+%NhHLl&}171>_q_PUbiGv_taz z=~Q6;&*acAG|!(3z1`PUgIbGUtn;ZVsLdATzO=a)F(^owWPL-M{aMAuU8f7Oj%>(!aW~G z5S(oqW$3+=iB*Ijp8Ks}h`BJ$n`bKL3Y=I31oEGIwfeftXrKXBow^O^gu z7maL}gJJezELLzzOMKq4%*S#`Wn>89bJ~_eY`eeQM_Az2&|&U!pZ5Io;%g=Jt?HM= z6SBTWknN8-To_WR$g3Jr9GOqE4=nq75i!Qfzl}T}QuB&qJUy$*53Ac4N?cuJe>|I$ zcDja@oY7vsY2HZLAwT_Pm@0S%ZR7w%n0=rG<2yr+7P6@P76>LwjI)8;tlzRoGQ`$yh*ne6%vZOp#;`tgX3-|HI@3Q#8dABKk+Y5Eh;8fz@; z;}V`|FH__5%32M#8fXVXqE!@oxs(0xo+!9vO=Bq+Slh-{umC4P^U&=De;6 zQ5GE0>eA;C04*7!Un>iYj%{3%2LGe`UYe-0hq8Gp)loT-W#2_?MbaNDWFCt^G-a_q9m zUMwF1ZWiM^F|a!g%yXcKXdx~J)?i@rLH+@2l^?}LFTuaIzi2&<^3*!p?L zvF=y)HFn4N#GGQ?x>RWQmaHa)+~Jl9HdFZ_=;WX1 z8a-(qN_2hUo#E)VQOo&Rq4!ZroZ$j{v~&UD*v41cXX7XhC9fG?wquD@-fj_Oi*s|# zf8L>O9VkLfxI-!dQj%^q(rk%hg4U5$e@zXYj>VVd)(vd#z zZ5Yrt=I4^8O+6cVIeDahLbo^L>!2HxY}X1&)+DQK@{h-X-eX+5dgO8#?w=*!&(*Ky zoc4b_PyUY?-f?bC7CcY>2SAi0-`zr`0DVk!z3OfFiO%UNjx!F3f2f1lb6uzi8ut!- zsEyN$z7v-c<1Sp3)}Sq-nqNoCdTIN%F#{E0+n8ec#jtN{T8I@X|Js`7h&`!%jJi*9 zVX52?E2poeXVZi~6+C8#%`FAOoBt(BAy7_x2gV1%Z;%h|3PzESm3AA0l3UKP{|Du` z<0t31E2HFtftKuo4{{Uwm@5Tb+QW+8B+PKhCRj%?5(NKQu&Ih~6Lwh9hvf_F zk=)i2eV7g-Q;dN!!7NT4?Dl7qQ2FX6yjBwG)gDsSi*fS6zYPdY#`eef1}oN1O8BT( zJW3pUYQhD_68=9V^hnQEdYsGXaGrf;B5`1dEvZ(~xOprGo#r*e(7Tm9H=W;rpW-wS zZ{aoIkU$>h(6~f(ZNF9KxLmmUH}M8=z?Hl(m+_fqr%4Jx)k#_-x3BTRKj9NAS-!g><73bnWIC z=zEetW}AmI_Bm=!N(fM52isfVu-+Au`m?=#F!P{fuScqs$e)}lKchDBv*amuQ`p}g z>snHTpv0S#$W825zBbZx&|2@FhQ#T_1SJ&7X4U})txegUK4OH5*DiX%l>YJ zC`Y)0DhZ1!VGmeYs~I}c;*==2|8;?aaMRMA(om5(HOV8EE2+n|@>7#M;c_MmW$%`? zh7-4KAqf}RC<1b#O<20!*f9G*wq`F4<%g~6mt_9Yer56L@wa(<{S2#R^1w5QSAT}J zbaJ;dsuJ{@t*~#=F>JCMgC>1`NO(lElpKn$m~j{HZh!~9@ zqjA2)+Y|YVw*~b@)8<@B(!0JVNtQyiCP?Q;5y((3%CDe&h!vefb!!s$NS!9c-i^$! z;bIq_2`D?EeEF=IXP%ZUEDEh-LwEj*Rf&SC@>e3q#kW-rdXWg*_$Fr$iR@F8tRx29 z^7=PKl_~OIyd0X$sY-+jDhI72{Z(sg%9n-XYw8~&?94i;8SozElj&~t^xJJK2(RO# zp-q|Zss4XmhQ)0mBClwJwP+I%QdfkPe{$gyE+3^_0!irou1MP?rtd7MY44U!_SoO( zWa2lC2?D~-lNT3p=M$r6f;yA26!v0{kC@+N&KuE09nrUsn&mnKg3I#9>*Hscq01qqPmW+B%dWO!mu z`Ul!p=lLP7V2eMLL3M0AoN{|BlD&^iIg=+;sVmmL;99r=LO*`4i68T=1}XAHcb5j+ zxK|kG3cMBlJ#Qvf&k4U6L9CukJI=`Fe~Q;5>+4>;o(-3ncs*k4H%_|2P+di@c5~NgvvB))}eY*Dy*)kt!0qGxucwpHwO%%K7nl#nEUBMiN{Ru z`Wm!}xy5!b&UQld$Z+D$5*1qd*y$3}Q)*a~9JZpSeA~=njEAAbF{(@IitV?#a2^5c zACCW5iC{aAnEh&jP-p!6EAXp+Q2(lg9rWbii(3iJRfguN(5w-a%f7b54VgG7Elq!- zyNt%^ckGYipgu{AE6A`499o zdMBTm@dy;*v6lmC+S8{h{*$&b`Fq;;w8t+iXdA{x^tIW_teLSsW2h z4(;DIrs$`nXdBZ{ergwCf>-9`<}NMf&9=PK#uQu8GeAMtnjk|DhgI6fl#+x~Fdv87 zmeHfy%`8Il(b!#S1Fx~YawI+F$WQ8aZ@i)Wqs({tNj30(w0V~w=L!&e`HwZ<<;R&C z_$~|pulzWp0^bLj@ABiY&BMoYjQK7XhA!*&CA%tNOjn9RBlTiL!$emL&dJ-z8-oG z&0Q${0iFD`SXTBa_d^mF!vKRaD=L?i;pddRI*p@8;+q_wt3nypdleIkIN56jqBk*F zGNh8QcjRKT-Q^|u@~6O_23GD!lvM{sJw6c`f)4@HdoU?wKC+bz$?A5jim$?AP8?h< zZbkfs`qS$>`N5PB!s1#K1DN7x)64{=-f)s_`|km9PN+^cdo4;4}O=u71IiiURXgScg-!amVN5GP?F zStDd)RMYpptpx|rPty8;5(}&1mlWZoW%2Qn&m>|E1>4qB<9AdnoSj-2!udOXXQ-`0 z{0%f~XiH6bs}+-o0P&5Yw@+qohVYu8^7JfeR!=>1L)0Rn4vM5wxpjwEbIseqJ}vdv zRws^)J6D0qZ-3@@JFFXy=M!nI=+Qj*>8<98@;!0vbxt)8%0EH8r|ujAOv#-6+mlfw#B-PjhWJ)++s`NLIRJW6D;59uC-Ep#x8Z*IW zzj8GzW0cVD8i6 ztj4`Pkhc0m8uxbRcjl4F1v#W-D4lhnIzi0MaE*Jnt|aaYuCAz%k6(7&?AlRX8m#DI z-eyg%9W`#D6@5h@3mW)aJL-ysk-`~g)OLM*Bs)!W>qBL&jeAE?rc6nR|D?~6#j{RK zE)dE%wlM2qEiZM0j=W7fyGCA`HI2O8BcrWrrBt2^B8xHg7Drc;c zrsd{?OH!p9gY;FN{rs+8narlV9o6NpS5RtBSj|D&ws{BD2OM3-f9c zH;Q!-U%kveGkxUs5GL^g@+6KaED zqE_n%R?3PZ%kNh7UwqN&ciq^Uj7Cx;%j8Sc9cbvDl}8!abqM312rrsh-gMMR!PUdOj4; zP0A;k*=~5)Xs}{XSMI1P>4QxgEs^DWuOQCz(C5TsGT2|=XF9;ze(X#)ldQ&Dxb);S z)8HkdvMZmHzqO5fbJ*hD4-h)&b7m}3WY@b;1u}NRKr0#+p(8x>;2Lh-E%FLw!N1aa z?9IydTa*?}z_F;UZ0nZG>tkh<%pKs7(|?TS*_0^@*hAc9@*Q|niSQLEz$+uxh*nnU zK8YzhO*uqq568Ph=tu}vWhvC2eWy*gS&(wn(dX6W3467=ZN0ObrPk4y{1hlYC@^uR}a;`0> zJ+$nT;h|+86@_}Nkk8#ihwb8Zp!-@7I&2%S#qMj5n!{G`TI#;`tU2s8UWf1+GNpkr zM3Nq_h2s|#R9^SnLMfX$hqLevdD>TQP-*v?wv7S_+ zZ{%W@DPwem8pZxGMxSmGY`zuDnHGh+JXvx(k{^`y&Gvq%WRWrvmOenSTIdRuPpg1e za!e8l7rV@OXRo9{r&FR4YuR&yu&*1>Mf0-x zpl`T*)%<Dc!+tLpc)q+zb-W zGlfT`hxw)CXO|*AS*vA>ma;?&seDe0dW+nu-@SWuw4A?~a&Dj;qb#RLN&Pf!1DS)& zsT{4$xk%I6$4J5yW_PFbuQYg1G-=y^N5jWAOHH;^LX;gRh`sB-WSXJXNpVTH^}>D0}tSJjPLR9x+zO&xKdCL@$$9XSCUWlgy@Hd z8dN!0(U;&X=UDUX(*xkM^Z1k>U)K1saL3mrd3C39`aSw9_+}3kDlSkCR(Zm+_iXWK zR>|>N1ky-3!8x3Vnd%t+N%nfl-dD0;!ISwe^;|oYPalg+ADZKK!M&ynM!JXF7=Y5^ zAjX(#TW1mVGm_g#;m#?PB=;LgAJosYkeng(JeO>1Tv9iR9t9wnkK*TnIu%k;%59VxM`O@81F;*lGcgQ!00C@06)9=5Q^mnJ8%xZVYk6JcWRR_phzGtS1qsXHT7ew&zoGs5l; zHE#9@#b33bpF&S#?M)n+Vu$Okl=j3wizTLObP=|im{keM@JjowVvmK&S43WrY>Ro3 zWnW!yC(PdrR73OA7 z_ID0deoA-qP06|n3NMu{H5ngj~bZU0>f{#W&vKGaG5 zKeWHz<<@^p=k*sll-N${-=X@|)H0*@{rB~+hRfoHO0D$ur`G?NjQaOU*I!(j#o4-} zwrO4-F)oKNY*;O0iO&8SYWL4F)9f(5&MYZuR)a-E`x1g(tCeu$w zV?}O5m8td#9j#n0OvTvmtoZ++_^p_@V9Y+tTI;#7MbXyT7b=GIK1}x2TP zMRk)oX{L3t;zP*m$RBsy6k~f6fw6>SrVRvG5m{C z_t;B{7)u6w^62@0)f1s33irvu2l^aWLUKofee|6oVrE5)psiwf2l8_t0`s!@r%V{M zH{3|6^G^v|6IXH7#~gNT=HC%!n{M);oYRu|xLQVXWSIMTG575L6LsApGEFwck53L8 z?hZaI${nf)D=%C-!uOX8G*bNI90wpRx9JLOo%^^s1LVV=H+FGdnwbuW@3oclwVU&6W<%M#?IurPkh^b5Yt#|d>Qx8 z^R$!}ogd%%$M3!m-OlBr*0n1jv1~o}aDTTW-l|{z!54|QT^WBF!*r8w)Ont)=tA`o ztpi>);t{b1ltWgtsG!jFbyV*mnX`!gO!)IdJPq|Gcf75Uo>h>8@f+W0#k8EJJ^9uG z*}{>SiLj!MimjMzI@FTh61>vu1m(Hxzz~~)?JriW7fHhLktOt_o+`(Saea_>ibnM6 zrx)5-u^yzNAv42y8GRXMd4L?EVqOsYz@x41EW%Mi(sA%fcD;z7ImeNuTqE~D3uc`g zQfl?`XlB2X6!l!Jjx~Gvk@O{Yo0yA=akXh@lYI4$I&bQ1sS2_fZnRpjG13I)rCPsG za%Pcz>1i^Dp|(!n%mOM+0crfQ$z7$tJ6TZ61)E@7srbIm z(nj^bXkPL&k-!7?>Ae5yO?gJ-CUy`xHm~=tzs&c^UVUhnoXGifaF$5m2RiGZuvxX! zRq}9rH@oueVl@-uE9&5*unpfA{@}TJg>~nc$$VsADtC}Qjf!fDaC|O?dV@5DuoWBe z_+i?_vTNzp{7xE~SaxOzNxfp)je-seE&H;IeScUr1aa`Js5q>o;NCUDOsn}QNG6OTr#11N>~Sv%H?7jR_3Stuae2u>GWg4FfMa(u+*j)iZqTPwNxW*qBEoPb$d_oYjxpt(K7OqQl`eua3ssJ@iy ztWWh1wN>tv_F_qI1X5r%U4!9dD6wKM%5!3{RH8C5cDGalDqf<@7qtG?(J#C7|7>+v536+&{PoQe|G z1&-BvgO?zOOULeI0Zn7S`RyR=>^+*c_y});cLr}^L6G0F77uxo`yZ#D?FYygE`GpZ7+PYKhD>)N$<(4^l)dal17si zme>a<`oa?DaWt@&$&fB>`Ejx5R17EQ<-=dvRYoBku(FfSUItv>`R+6*6TidADp0Hs z_?e|)$REN_3v0;Si^A7*nFM*L6aC|S(rbxN3)qD!y z(5(L)NstnbHhId`=x362uX{oiy=!06UNT=#>v_3_iou*&d%z$I=y|wWDB|}PHL8j4 zNnwgI&W01+I7=xNXx?8Dtjt|l%?83%1#!D-(9RJ|?yaVK{5}bbEfRFAq~jH8$2-AAcntFayky;K z!DuyKoq;befG;Nt-w?$IgCq)9R3+=(K%eXjNY^(_->i#WT%u>~TLjk{sVW+MlF)T@c01gZfhgS$GY@nTy(WmR5kw3J zo_|iH(LQptJK~trgtV_I$%@K_(+#KQ%sxzqvMJpOnzU2(rz%-Ot=uOGhUZ+h$^N)9 zH|H4{>YUs7=Gzs5e-$9yqN#W7XC;yJN@s?2+xNRjhy0KI5tBTtKVp)b{`e|*{Qh{Z z_Qz-W6lMXigPkOVx&3h`kuI>@>5pnBur^mbL3XJ;L=v|@=10z==k#D*lW(em%f3bl z*B$A!N)IH?Etexmqb?M+!Gc}BJDyohf8vA7@OQ-Pz41U8zSiTnflP=Gj`SB}MH0jh z%9YL;r6eSQubFn(W7@s4jBWa-80I;tS6x1fDo>7#$v1mog{L(LC`@kG6r-9}GbePl zjwp{}K4rv|mp0N6NYE$IAIT8+L-_xHct6R!uq5QP3~e z((0UAhUbO2Smg=8)rJG2z59_abte8x^_|p_C|G16f_&bk3ohp(ZG{n zWNXoLRs9txI~OYB`L`uU=c2j}s{hz;Uup2gr$}!*#VKNp6Cq&tu5IkE1F#oXVkfms z#ZGD!nTk)|Eq3tC-@2rIsH9=^HtjFf#^`<7vpgdAm$hOKJvF5(W%p|)e5qJMV(V5XqG);5qqAa{WzKi2&o&OMxrT^KyyYnDS^`gSDR_Su0v%FZpAAdiVSTW_K zNXLd|qSQOTyRb&4NH3{eGK9?@;f_`(Ne5EJ6>;ZB{n{#bOLz3AM{;b$bR8@9l00Xa z_4y2@FMHFYZCLegb$_-Reua1Y)1$a)tt0Uynf8)7lBe>alKGL_UY*U4?EYSR{mZFqiMU&=0|fC_5WmkMD3O{HOWRK;d&XABXwc(HtE5PkfZ=Q5GWu z)1#BsvX|)*idiPyOa)}Fx;&%WM(niSoz0JK?I$didjBuxM;QgEScAXg{AiGe`+qb) z>Wr`daenkeUm=}YN<-HCXc+(_svYJ>H^DReKF!GRD)S>bzKc2M&yS*h<_`0tLea<< z17`>}^P?X!=SQW((c7{G!k+lUw*Pj1^ke$FPyKY?7AxXPgb0U?{mK=D{_?B$`*=R95Jc5KYq)2Z4ZE%&J0G>+C{GV!C@ipD;d9y|AYuuo{c1N z9cCVy9>19;i%WfdZ;=C@QZLdEwEWa{fzkB$P^tUd?Zp_Zo_#3eX*m9Z*=FudS%0ia zn6ipJ>^F-sky-A|G?9Zo#P^8mWNhQVlgwBPVjIh01;1^^!=m0+Oy;jL9+rL0z21jA ze?`4g|G6Yw_!pkVQuNKlsIP}3?}-hx9cOfEJ^mZrHI-oxKMiAies^r|d%)CLdv|6J zoAxeXV(7K^1aiwz-9xKJXxa2oJ!)`psCMn)uY?Qg$8zUe)2s3NTMNG+pSZFDrhh0d zUaS?qqKp`Om`-PZL4>1_bU*x99qd!4s}(t6-#)!QjXBR{pTYd=G-kvN16453@iG6~ zSlE$KVb4SzM+WXI!Ad>3W0OQfT>>OR-`q_oXIl)c!e;)8LKy7uWI zVxOviure_>E#I@L_lq#fmGO6#I+5{B`+73o<{G;9n2v&5*35Ur-eo{4P@C7UE*)l` zi|hj**-bt&nFr%vWveB9(05#Uek<%>!Ug$mz^|QBwS7%_zWsZDNBj49I^6a8xxz@k zvq`k9Sj-UN+Q00TQTtam_*_WhK#%=MzMUr8w%fPcymbxwYb9}p_3Y)#Q_rm7WEBV8 zIYZByx-LFutTy3lviCI&*dgc9eo?KOUZ+mjKY^p*=N#$G+?5J3k{ z+CONuu!t7_a6){$%@u^KQ;ho4!A0<=%^tdan{2VIe7a(^l@sZ+q$dq%!o;rLwynJ~ zzKk=F)#V?vvT;VK9I3szRW{S+hZB=nfG|O#lKt=cX^}ZDAltAC?RoDKLQVWTWVEgo ze+b!sLUu@Sw=?aq2eHaZ!FmQNNfNmz59wf=NE_QYyVx(3iO^IRl;ZpoA3Mw*}hi}{Sz{J-%}pqFSC^%qWK8}5JOpXj3g3670E zAPn?$@KMe?pwWK7xeryuuk%6rn6HSR;6tFF+9UQs5wG*>--$kslfs90)W@qq_&?Rh zIrf~NrgibvIW+TWl#^9THTV%%bWO}`Qnsf-&#Y261)Ne3KwiH;+gzpfYOnf_k z;Hiy|-fK0xqCwTg(0?r;;R#RGT~df;gbKj}q|Vfb9v~k_q;X{ap{vd*|)2Qn}}3N=ZqE z?jDZr-t&^qNK2Y_;@`KSj?;B=vZW?bvYY^MR&+!$yg{Ignsy#@Vf&tK?b=dtmqnk8$_!`&*LdM8(*}e$4ydwefexC&q>b6jr5EY`*T@t`44rQ2s+q& z0_m-5uj8-bL0nGe!GYgA;c_6pLU_>CKKK~oPQPo#K8&&o55WrawVpX8upmMt$= zz6b@S;_wzR@RpyXXNW8mzVGo><|{JG7&1XtH=@WHsCDs)C>K)?6jdw^@4xMD!dgZO zNn0wjAg3$yQV|`!yi#s5`Uch=|4%kYtWY?HiiTaewbgl9yCKc(^Xu)BbbTJ>Imj=| zOg0eIH(-P_jm&<&7w8clpYN9EG#`fV(}531@TpTip!t;#`R{prxRj#Oe3;WW&4(^l z^bte^J}|IKN7PW6QIQ3Y7jyH`6lQCF6wF>dxe4KlKs`tE9B!OjAj8sgbV0_Z?bIz; z^?t;PHS+$B)H=Pt3*T>na|R}$>9>X-;6E*Zzqlj*Te9#^F>8*n_G%!hhrIE|$Jh6; zG=J^l4)j)K;d`A6oD98314*CX_VLBQ;kDPf9r0}!mxHIOkjto#?;U}NQZoJhg-8{~ zTjbP+Il1ke>kI=aPV1GI)uVXAsuI;J_w?d&MY-mb5pc+=s=Rii-Q*MZPpQm0y;=7a zjqd5s5eKE|EaEvx)S-l3HkGV~C}%Y;5kKFBf%*-T=d?UNR1lEIcXS!*Rz7tqk0K4y zFC%YzMZE)oX?gsLBQ~J+7KNiC2rS`R(cyhmGKp3+m?uoWQhSK(;}Ji`DjCZNW^%$n zH!~4l{N>^HeT9_%cNAwX54(1OU%y`;kmk!NJO}ym)<+(($3d*~I0p_g<%w}=R)DV` zqC#WHt6jeRL3c+YBQA#0=GjmgWsM_S6Cy zS42TMB~TXZH_-KdK#%;B=OA4d`kinpbU7P#2HLyqkTgHK$#c5BWlvm|9{vlTI&E*{ zK-)X|mdC=4(3o!T-L#I^-kkXQ8g*oxEBDaKM*lQGo2P&7V$It5Egv%Z&pFF4rS0|F zI4kxn&lBKMSWaL@|3wj5oZVEUoSlD|cB5%nstk6$ss17(57-u`(}o_tBYDQLQ;=(v zS?nmP;1P}SQfQ&!7D!DXy(rR?zkRHj+(#H>_6)*no6coZkhY}PZfxeEOMLvW8-#+f zzIwTHEgB4eyY^e?X%E!zb)JLt+-4e%4QE#KffTE>A@iRy)%9l)LAe0mIgEH-{RZ||EW!o8xI)YC;IsvAWm0p(yG9CGChEAct?B> zWaE3wZ{Bgoc1{xi1SM%!kbrP zhlB6a0qOQ$%ySmL{2)HFRa0bql;7;1N|pB&K?~r8w(ed#;qZP>@CN$bW8|SjsGJ{< zW#h?t;=mu5^IrX3I>Gk|Hcb%Ug#mn@GBSDinmXbOw2S496kzHS19+a0m{5Q}v^8AL=IU|yrLwfwC55WJmK~(p z>ra@cXsRSg|X|wQy8G1=B7)#r0 zzJBU0lM7e>egV&eeEtsFOuN<3_jvrP0|ITvth$K#*ANq%eLrjfv1mBwKo6`x)uqLH zit|$++DrZ_{4^07oC_dEFcwKpIV(HFimeuPEOp?D;`W?b%br7nbjZQ8}GXwXb(ch&45ds;zXWu7&=u&4GS%e0!CRXfg zY7v@FDz?$S>(paJXA^oWgrY=*Qqr_IXKI?KrWSEYYrH!zP9=YWvb4#i6TcS~H#8V7 zSqo$fxKrezaN2myEHFYyI62T6-s$qkP=2)zW|V4PFXI&lxgnxhhqcUr1#io(a=j_|g_nJg2b=8YbiZ_FIsvORt!T05hFsIZW`JI+f zs(UCiv3m9HK@ycOEnW86{=$yb^Feo7_^>DD!J+9yXEe+!p@2-wZf!An(EddSS<@g0TWHim9*a>Tn zr?N?O%0xN?R95<|JP9hb89+6->mRpTOlbegOn`5_W)Adj!@Gqq)a5hk@)0$;7~($2 z>^exA1j#azwthQW>EHUA=1kJ(%nF7Lu)Pbm^OZB_gYSk+d_%mdE&!LyaO!JX#`#4S z?tiTG6xgo}?pE2PkWOEgm44atUiyUUk0jo_)oT{|hL`v#5~DDT_yy`?DIvY~>92$PA9~5p zr~}zPwd7TXQ~R~IwzcB|EzOCP5vyECi?Gjdvz?#}w$J8=rdRJiEuQ~{gtC-i<+Aav zwEiu%G3~MJm~w`5bC$udxhB3vFyOW6p;pfTZt$LOHOt{V@jfq{%ueREy!i5}L0j2B zS6aV5)nan~%g@=>&6&Kef#J2b@q5{8T>oPTUUX*CyA%ihOdfqauQNleObpQShi7EZ zPnZ9?Gc28ba4>sMHID{_3>hII12Jmegf*A0Nr7VGyh!Pc7o3fVxl71rJo<#ZMTNqN z0R%;W6OaB_{?{~?ikts|V1Buzm5LZbJUVJK@R%AY9WOc;ky*}fq#cW8FW^^v_b%jb zh4XMKQyE45*~H&5p>;Ubtc(j>_K|0`a5CM#hrHV0@fG%&?2Hmm?um|iT8HryRBrie zz0Q3u_zWr;ESyhCxCE++_rg<_<++37l(@CW;h3Pf;$1MA)!`w|UrEZWH=p~gvHOYI zsrHzRkCAZmUy7D#?)?nPb1qPL~W9(|V@Y#+1d!WHtX;JF{7{d*7l4-kO~& zA=d)eV85ojT|gDWL^w|VBZpoSk^`tBtrbYLS-5K}ptc+yD6Nf;-#cTCGm88!s*^HN zO?FWsY4ZigZg6#mW1aIoTP$}DEHGl=i9 zE+md2@#mk12yoChwI7W`15aijQeI_KTW-||bmmMI$H-?Q8K-^CuJL!&0p)cd@#~kh z;?}o+_NVrCmIq{O{NW&Uj^K}(pBg>7x3?!&C0}|%vXZ`%V?O{SLs0(4s+S5%502Pc z%~vr$pgdjN-7UI3OHj@Mo}t(8XXg!iJ&y@O_1=z({Y~d^a(JzAAkR$Jq&33v!c}f# zY}TkKZqx6?KF=uN3{yaUqO);hgR_G4Zq|QiXYKCNMtwRV?JcL73__X&y|AM5c#{SU zP`1VSwS1KJbGzmptba-S9UP|ltc9|EB-?`hCbXKue9~d>eQCxgQ#9jirklpJ1rBFN zRYnUO#b^@fs^8&jparI~yx!~2GK2Q6XLf7(7VuDfS=suy;DOz7sXf}%f8ks7sw*+O&cMGVVSM`XYXa9_|fE4lq2^s!Rh)9PM>tn zLdn_6$-wR;TaexeUs|7Xw&3A%3;3MJU;#t?0$MsN;2-In4@*vhA9hy2jlk0W0hTXH z<*?H;j9=2ehj7oL%-;SBZKiu)y*_F+UBV}=EgR&%v!8HiVD9ad8S8C4JA-6Cqp!Ei z>$}+G_F&l(C0l7$ay$^$O1x;BHeF9Vkn(M4YW$SX}_HZ*=?OEGNwaz0}a^gnO( zKlg_-{^u3`=Q-)roZKc_2t#Cn{hA9W%nhIDO$B;li2O{Ob*^4uKSmk~R>j0gpG}Hw<{HyA8O- zfJYnfa(;H3h-#DE(OxX^%)`4+H*V6?*q ze31cvy+`YPg_Qk-kan~Ik1^m^47gUn{}k{(23%smj~Vb!1zar1ziQKZcQxQe20Tr` zhYI**1O6gk+44IBK3%{y0)Eth+YI;&1ODB1z^4iLMgxAxfR8uezLNV_0>09K;|AQ% zfRC5lwE{lffG;)RZ+C0G-yqeJ8${NI8t`cb{H6h4A-TDJCCBb-z{eVJiviyzxl0AS zeU;X`mjT~yz(1ATM+x{11K!j{>wT30f6vd7EyC2N4ER+8KG%Q`7v!4-e47D3Zonf9 z_!-H4y?|#M@J$AMkO4m_;DmtBG2j^nyl0ozd#-?c3R_M#;4=;Q0|Wl6fO`n|Km#6T zz)KDI9s#EWynChAyT1Y7YrsqKFfQ3B;P(x92MV5fccTISLUP|DYbpijvfUh>-t_J)$KTFON&7;1!dtT= zlpHoARY?3T_UqP;7{9k}aH#yvx^J-C3hmpu$_|sQP`16xM)!j>CQV(j+2n5GcQ3}K z&C%4Cx~WrZ?HggLSxrsvr;`2m-kl7gP~yVOU}o&uBp6YNPH$rGhT<0zRY_v$S}l`? z;^1K49s4-<@S&FY-idKIun!YsTAV3m1w4!(z1&Nf{2hb$WOf}%#kQsf`23@O1)&k= z?j*(q$)t{7Cr{7CWpMV;+RE~?hs->cOB$AA{a7vQpJv4j%bZX$?e;A!eQ7c0k&S8F z*+ZWeBE#`3KPZi==t1W-iYJMHW zOsfa7xiVC~v(8S|?dAG5ueGew`-74-%b0wu_3Ll746iM}+OF$L5VAN| z;k6Ew>usH;O>Ev=C%FYn-LlHYUllEF-z=7@{WLMI!J2;ahf4BdS zy|;mnvN-qtv&jNMgLhQW=;3JEu9dX34T?2U@MOtGc69?(P*G87L8L8KsvAH+4Q4~U z-LBGBt8MMk_Ow=8PqD29Yb_>#fcOSj6~&i`FWgIfK~V?_wTsnY2S`>xZN{3-2=TNAmuL$upRzUzxNcc)E=z&PP`5-T!G? z-#QTj$=pJ^cg_op79DC$5f>TDT_tx1b`#>{ZZw{EA`9(|8(tH*OcB18%Lp)L>2RM2 zU;k1dB5EFa+d$Zh5yWV`TVdjQ|DIk{MAi7v>CbeY%%yZ{*)k&=oa9~_g}01o^HAnb z_%U!xTswy|PtNRbkTrTP&eJ|l+mXD=jT(LkBo|#-&NJ~#|E5e2$t4S3Z@td`-t-TC ztJX$pH#;}|Lu-57d(c!B-ZA>rVAJOXKGDxvIFGYfd45=B2=1J0URRHvYvNhC_raXI zaa3Dj`e7Xm z$1LIKO{S(-sDiyLUcb9pxBP{Xd^yzDuNP4y+6=c0+X3!}hYZtXGWZ#C{F!V0piys` zq5ZOLc7zTZ!H_vj*>mzVpMPtY$$x>#A9bJiUL^v8KHbYS+@9A51sXQv>Xy+bIIU&) zd@_gdXWGcK=;w3fvxnDA8`%Kie2sT^jVX}3t9vtIDb|0&>YB`aT9NhNi?XIN;kJvm zZ-PU!9L=3}r~(u3|C3hB&kOlB>{0sONNgYwz-t-&=%aDaO|}cSp&5s@hut;anAZ&M zCxmnc!|;$QI`t>M6!Hc0cYkC-7Zlwo&4zO_B<0y6J4PD#O zuiu2Xy#9YL(65DkT68ZUx&sQ_|AJ&a&YX;H{mOF75~_@)M%Ua8Q@qUc-9Z}Yw5I8_ z_d2Hsx*cKH5GEH1Oq4|Jp&?;+^we<593{x(bUsbycLqYJ^*MEcLy3c2m3O$Ae+@W> zR_5_@vBl3ESqM(U8YpcK212HqHtmDSrmd#0W5_8y_T3CAYyj`5w=d3?X8#$imKTu|N^|X-@ zo~HuY@MDsrr+BI(?QZfKz9f7>Ea9=qrR%O~BhQ9w$B-YeMl9-F$7=Ex#cBz_ZaoT1 ziM!|hLM4mEH(@O;^yNc1HMX2`O=4HGwC=9K^*0y^T?Yk?)@t7R1$fa(Gp#7% z?#w_a?Nm($Jo}5O<>4XIBjR@)r667sa|RL=}wCa>6QmU zcv1LoJQY2?Ia>QZVY5721sieMe(5b=WGpfmd(^uQX9AJt?=3{MmqMT4K)YJ#5%*>9 z%3p~T8FDVw+$N;3$pMQomcB`E;nb}NSUPVI`kaYOApV5xnGHy`e1E2mJTj1Y$hmGl zpQepG3XESNn7DPhs)Vt5Nx*!y$i)y&+kerKJl01N&j!vLS~nSFJFPeH*_W0Y%FCLq zG`moh%2X;282m(>$hJ&7d~U+noYuean1{OMx29C<9i-X_6QiiR`av=1VY4R(hT`io zX?`kVIE$$&bD2t*{YWhjdwc>b^C<;Z^p<(U^z!v)LR86^8N~SJYyCd8(q}_LUp4}w zp)@1IBjPUCh_%*G8g-Z}5fRaNXAl=*2v6ta5Mup=rHO{3%rWHmO{h0+%nt4)Xm2~N zc{wg0DsZ0pHGJ-uy~mbq;3}yE)Db!WfYU61uUP=zivXAcfN0CyQp}Da zqTmHJvh<#2Mba9{9f(1P57{{VmhOX`wi_gx*q(BwVyydOtKm@(>xh`5OeYRqDTf^^ z0rOobO(JYAn&L#B@2*4Aa-+lu>>=enloWC`0Yd9ilC|cUA55{zr0T2HEaAN4)GrPkXPiy5Hd^ooKo6!6r^c5 z)NvLrLNrVZuWq}6uXN3F31-o(+E}VhB+|0An9oGs$sj^2OjuXi)gO$NLi~w=(bPm9 zDrUXo=OK$)&BRE@b``XW5H>69clNx}L+0%5!aVAv0*FeAldFx}^$3WV+jch}__>cC z?~NCW@hwllW^?DOtHx7OwNodOn*)C7k3DWHG#zxj{^6L`_x#O2U+SlYfvU z!cLTnBuuGKiCM#M(AyXjX7}>T-eLdA2>b@`z7e1G>7e9*k*8;*%SOf1!BNm^dcMAE z4XOSEh~ypEJe*prk&>!w*#q^Nv!`W`^ZYg(;V$Pu_oNQ$E@~EkK2MsaFq9$QlU;a3 zf5uZ^;>5J3gDF-<7TpYH$gM9KHA?Z+=bhwF7$Ga)E`64=Ba15e>#mr6w3*jRG(Mmt zu9e-%%ERJ~&SEcIyO^4p`%LC5Eu7?T-T4CMZ_7B|(~&;REOveS;~BJZaMri;JlforHYnEP!8X8><-muigo=`=9nS{94T4)Fdq*Yrrk z;ayJb6TK70xqn`0m!+V_7Vt=;+osHot`)I;>F$n|bxy0oyTD)uBF)Xo~0af8Pc?ojY#T0z7HLmD__d*$FL1EzbY=u{G8OB z03A@2F&5k_okos!zhmU+9}lA9*9-Fvdet)-`fW2A7LkDo#RV)f=0FYl+Z!g!>*!$b za+~24GWha`YwB*&48y1A7M>9thIUgd6V~ZaU+0z%Y06ucC)Yd4Z<50d)!y}#s0A)M8B5u0eAjjFJ>HPNY)7Lw?r{{!e1Q%a&Uab|84!j6qA93+lanmANu~iU zrxYb3(}=urT4ks9CQEMam<<7&re-^vs>qVE<*MkHi^(?Y@a*^Wpk=Q)jGcs)WyGX3 ziQo4*rVay8R%Rm_@IcPP=w^4r4N$X#llGXmK+j zEytoaqB*10QllC&M`Ow68}t_o;&cn*sZu}`10vcoM~d!05FPovSG{biJDR)_`M-lm z70u*5`V6H8_R4zWt0wEas8%xEO$I2}PQ{(2cgU7CaqW?+PPI_)&eCqL8ZV0x(kl~F zW2vPZP4d$^W+Je`d+kpga)IHb%uKBHG48(U&1e##Z}A3Fmd~T-W`4z5Zobj?TN0L) zKueCHCB|~hJP#VkZ`>03+|z8kPqw++(X5&6fXgY%wugHGzlrRbRv0u7;RB1%51E`( z-ydi#zAL0#QBEWOZkE-^KNDcn;^Do9!yB{1#@H_9Z0`1sx=Wxjy%r*~)cw z&4U%x#`z&FZw0*Xye;O%lZ=7(`q=c0srWcgjCH)hO|u)h(Duvj`vgtp<`2f-xz@Sv zb#%52F)qWEN72)LZ{=|!A1dSNlftl_W@8c2*@u}>sX#ey zrT6&0+!C&?#{2kM)^&GcT)WWU_12>G@g0`;H2v9GdN44ok7v;PFBqCnAv&#d;*T3t z-FUp`C#u}9@NpOxG?z5I>uq4V1Ug!;qwBo@J#PVxk_@H^nx9Vt6n+u+OivAJy&MVR z+i@}$DlEt2%0JlUq{;q7JEejl;|;=3Sms{>aGub<-?>}v@`hoXxESo&uCM#}IkUKS zO=1`)VMb4F?KVS&B`R|=nhLJAW>BQI+-Vgx#@zNWLYn#O>V_o2n{w)g6*EMal5aC4 z5O^I?q%E8GFyY^mI1b}=Z^U_cO;ag#rmq9l4er|bspCtXwqjXb*WC_O28bvuG#qzL z_We;)T=r)rS!w<}iKTWPr*V*aA0tGZq=+Y)_Qzqs&_^^5gI1vX!v-}=rAMwE=)0MkEs!l9_}ZNJ;zL(|ID zU7rpbQ+1V8evIYeYbgjX+`W#`+rZ5ynR@_e{fEX=Xl`eYA)hpD7FT1VUN?w`7TAA zzw7SuEva|CU7*Wu9QrL)W^ew<$U35amtbt7cOouFhhGc{Be3JCdMvB=BB`=aT#-H5 zX|@ip$a2SgdZnozhqV3_TRff`7&0gyUz!=9j%C-cfNwwt_XC}UY9ZRYM&5kMbbd4t zGf_+);b*)FHmZas<+iF+@H>Xm@tp9%_J=;9?=oFHT8aF7)Wpb;E2IaG*uSX5GOMMV zqVGc=JFo~0oyn58aV0@s_b6~^ptpPlcm#!+WwhU02`xBF&n!0k z(BD3v8*AQ==EvS2X5cS)ODZziZUUGUrd1<*v`)riG;y+16$y=Vs^X!^PSu3aOsDGh zP&3(`s$Yi|ncsUucbeb(L-(2AheGZA_7d})eHCpP`6ZfBlsGAxPKLITgX=`f^}}Yt zYJQ{cX4^UA6pNZuo@qvT&!FvnX?4rUDPvUp8k~At>d$h@_!5;N7Jv~_^9|y_;{_4 z!N>SU6|X74NAKeM;REBxOniC<9YxW75K;z0)MK3$zrw4$dwUPF$h+$jRXbLegOiUF z<;}0Z%e=Yg)@?{%*rZZ)n3>%PDID8OK|2F3pg&#mR9A4`&H?Y6N{!~!^QMrYU8x}r zQC1CIDPi4WZ;L`7(+E#XP}KcQic7Xiiz_q@`R zc@>#qBty0;t~@YR-OFYZ8A+4CNgi6Mg_iBekp`NRJh@jUzsfA6_c;|%kPahLSDW{R zy9_^Y26}-BhnW?Pr!Jn1GCud1#AV@hT~Bn%45S2qYU1h1fp~hjISqJBdc<$&a8b15 zjp9aU@#dVoWz#k`ND`n%EHX8k!H*c%VL77e_E zV?4~o_D!n_?k^~iciGi{Bx|*ZxlYY7Ul;&ojS}tXLmgCW;EcL_TQClzm0Fer>P5+ zigNA8wJy>(?N3iHVI*Q+$DU%-gLd14-MxEI($U4yiYo%#>7~}kI^GPj-v<9I?LP|i zIty>5T-NU6v?OQAH|R$@7i`nKQ`|Y*QgeguoDWiSOWir$sk6#rwQD(!yy+jNPaXqx zsldqXEmFP92&!QcJO;qv_L2-6Iqxo+6@PFS9Q9h}1V&YMLE%kBqzP zP1iH(y3=|oB$eyFwO=A`yH+%z;qIvJf>|YOz~6adV?c8mB?c)RpIX$A9>-nslR|Y7cXi7a?(P1{<5*ISQ#OS=wwAc_L%U-HuQ$5?Al?D| zyxzy)r{9_B5l1q<4eqL07Z7mHx$aBGYJe-Fsj@YZR8_?NPG=Q=T_tuJlDYxj#%L=85M{JUf}BV0nm5R z7y7y3-LO#8i_wx9p>89<-i!y3HAt@q3UCf~^Y-07?M1#a#Xm;qbdp!opm2H|Q;MNQ z`DW9fby23R3s_8HGgx}~EkW`%1~%aK$3derEoRzxe<2Cj#>S7=Io}pG^G!vOe*n0}Jhg ziT`i14|4I1RxV6MAF|Z9ID#o7$Gvfm-4>l9%OO4RESdHmVy+vxfbS9mEIsr`9bQQz zlNl@-?*6pmq3UUl2#$7imKa|#t5cn4rUxGu>)6sq5VoP6TRQvkv>SV(-yzs7W{DHZNhYFR~K0e*y{o{m>b`|nbdDvINQZ6;&9_8oW3Zl_ge zmc&b@hPGkZ?bdLO0ezSQ^FuN^f+1=mA_Cm4<~0&3js^bF(OKTVyJZ))%r!x$?LzX$ z(_i`ebA+Z$iKmO=flSYt}8B*r4k}6~t8q{oBTK!uIdY^8T#oeLv_1q9ut?r*Le{ zY|c@{WmcfKa>h+&97c9lw`c7cqt^F!EzQ2??N3c{WRb&f>zu_HqlVuuVL+l& z<{NISgSnb<7eDZfJcxt;&Peh*;t}&Jo{CO+0sW1EJ1OMF+>ga#*rlo^METdoOeuaj)s*8C&(5*ZGa` z>y1v0z&5?+E#8y-ZsT_-zaQ{BnBQ)`4~_*;`tS3$yXpRDNt~()i{0JO`g-E>)Uarv zBiypPUpze*64biQ*eRjA8Ur7MdtQ&Hzg6m@}`07d)@al7x2Z{HI44> znEM=|AYHc>ym$RF=5n3dM_qU2@Q3`wVw!!74H8%URg}Zhxu7@UkLaH?YEzgwHcr`r zMC7(>D?%~5WFL+&^I3-1+K0~Ke`q)vQ-%vmPWII$(bVO0V(Gyr$K36W+|X<0G0u{+ zN}$(+Vl69zP!L018Vzj4SVVvv)L*Q6MnI2}9_FpMF|e5(rw4UxF7LlC?AGs&*KTTh zK;+#W$DrJ%C$BN^p|K~gFCg(=_N1j>dVKjYxU$A8*f|<^yXY@7bVI@N%bJOMU{icb zLfwA5u&0dyUdw!A_)WHF%NUOP9iFyG{hb_7-O&t`Sb8X3COY!fyglnI4Rb#C@*w>S zmWY9uJ4=nME3qL|MUOw%KNSCN)XKpO*ZnU3DntD|+k{rS)O zcmMx(|Gxb{>|Z$BTLupM+H_4%-{_m~XobeqcJ!eGc64DuM+^KL()xLsq;37kqet@k ze>1(+DO`12OU=jy+6&0nl5FANigY`(w9L@rCP3TS-k8Npa!t4%DR^Tyg2o9^~;lCX4+K!@0^ zF!;{C!T>Kpp5F4f$=OE{7#RLsokvoC9Dd+OXlmdjXufY`GsCsvme)|TL-(lPe`QUk zNMSmh(2oHm6Do_R2NyIqH)BH?1Bx8$2y*dFCrqf$(lkM z*jc>V*lZo%@vs+>GUO=^S9L_(H7Zl^*)UwB|F#Ba$rZ&7Rqr(b!+o^DS-dmuEPg-M z@y_w#jyKE6Ky_Bm?9( zNn}p8-Z`JC-Z`q*8W{W1Rle>ypI-L|)LrjaUGiCKuK$z{U-{{EcB{XqX8U`pUn`;~ z7VtiSO?+&h`YDwsPQ^s;vb=NvMv~coI%dB)%0?!s1i)@xnDV%};o02IN83Vh_$Jor z!|qezsugN&NF=x^T-6TL6|m>>82rsF4Blmy&{^70wYtIWCV%1g@Pai6ot|+2b_0T@ z?G9J1j*w44(ia8uf}&iRT0ZLMw0)V?;dpvv=rO10%qhWJksF)K8(b6`S@l&Xas_tx%3(s@dm8#LS2wHLi8 zFO%hw7^lkn9So~y{nzEHm)Kilq+T$@Ry)dB;8-uKvSk`vAEa$!*jA(*G$EVG2W%V2 zH`c3PmLb-w1OHblj-{{Mx7G$%hGCuv3M`G**7*P5?QSex zA2hfwq>}#YY>uhaW+@hCJQgi+6A4mx&Ln7{JDe-Gt3Y>zrcpTCh;vc88CREjdix|Z!$kL-SEsj zNK15g$kxE1=r-0j3*72unzLcqr@3TwNyL4hiy|<>tCsT`aF(uhw^l7@7Q5s~XK_c> zv-<2TUXOHG!M~@Yh#H0@SP~U$8@s%-)Up*;?2>cwYP_pLwg}m?x$Hz`)b7UGe>Ame z8V9Q9GmQi3+w{b&E|JB2q_-7^k!10?kNEZ=>Y zouh3Gr%&(BnPtd3JMmViFGd;eE9@PaX4}B#?p%H0mOcF37IQ!1!aeN3 zzL>F#5V%JP&2oMqo97~^amjgD zzY~l1%T%1pRH{sv&l5}b%T$ufRHjV0$|eT)%M{FIDp#gHWa_hDrark$1C^;SnfmUR zsV|l-XUTW)kIl?-cKMyXs9S|N+-hRaeua8$rfBUu5%(f=-U`@<$u$dKAH@T^;(;FR zK)x3wJ4*r)=E3pwS8MZ7WDrvks<;r<=^5>1~^bIpY8JeAY42Nr~aY+aK=(Arr6 z@kD1V{cSnfv>>Z@udunotf`u6#XDp^lLtH*(R35-J(t?%0je%wO92PfY&3VS#cl)c z#pUrpM?A3F=iGN#yj@FBQZJd=3|lbOc}Y=8itZxF{V{IpiM!9lTu!hig!+k?7R%nr zbVC!qzbfW(>J|M{Fj!~i-;oA(o@6pJ=aTzJpD3BBF~Zl%2NV7D3gg5eFo2nJRkC1y ztofg0h&=)TbIZyPI|q~yk;i8;JCQX9lb0us^R6c1u3+v*dv<4~$vVyWd}+dk8!V>x zi6d6G;YTR+8ZRiMhLCY_GS%#K>z26J(0`$8wAk z`uj3PPgbTNPhd48RI=GfGWjG}Y(^tk5Gv#}k|me3*w2Y{@pDSLAX&(1#7iz`iJub@ ztf%PR%*S!} zxtP0FoV-Sq&mRKUUdoE6Rm3E4%q@{IWJCB+12VGz8cCA=a{4zA*YJ`RTooKOzNY^= z?GpmZdO4SK5IH|DD@$e~2gVxdp!V(uE&W|8F`y8s0SU3WpzLe}nbDIF_4yLybt2SJ z!d)qywYY15Qe~>w3j#MwGI0^^kYzFV`DhxU537NOi>uXpjQVbImRy3ru+ksn)A+fE_23b9l0P6-GWRWT z8$2!Iu8+7Im?2h)QiCIm@wvDIlNQIB@mt{*UJ@CJQ>7hRAtQEa_N(tFrr-o+V0OrI zC%da;sBS&pxQyN4G7(6$_LZiaG%(%T`uSEY@NzWplJ;E%UWy0yGzNAz>hE6V*kZ(az-IejDH;e@$5On{CFn1F`x*(8JPEy zz7NTsPRd~srl97#d1F?MELw*U8dx?;pZ&hxsGIKMwa+*G+4Qwhz1tKIywn(YF&_9h z*VBS-vP+^+Wf$tpUj0?{HS{n^_Vy&%+dpL(O^}&c8E8mPXMgY`fiu%HzCvUSk$i#I zQH&-|PU`@ZqN$sjDM74yZhr-?;o#wnIc!ABTd%d->A?U{(qa5jmE(Cxc>i;H8rAc zO!q#)|KH2L(NIC3^w02`C>16)o$REOdHcq8%tSuRmEEhua#DBa=0jo}F>tGpWV@ZE zUZH@+>ZL&}gr&iQ)$QWZj3u}-%UOs=OUOa#P6jr3u=&jB1~E^3#kw>ypvWYPq>Fu$ z9s@~(nl(-kexpo|35KOG60ELBV4}at?8N&mvd0lS*ag{ z?xYjF!q6uYhCbz?(A}itm15Gnxj0=Gi>Dqkk?YzAG)^cQqUiB>l-CK-DUZr+A5wBD z$q%xir*O@5qd7cW~25KP*h{WcFshof>pu3=IfT2yHfU`;`qVjInttI zWXXL!hCZ9#=w{AVoNxta#+GO;)m!m*f{r7h$*|~DaCvYfGzsMS!ZB8hr)>1@iRU*h z7CBT)l2@=88x3%3f!0oHT4scpI<)F2dNpZcKIq*cntFNxD!tmd1?QCrpGe$1I+<`U zc%ts} z0nS>{X_G>eg}6#*;a-4*)8W18GOJj$2Ky$~((Pv8;^})szXpJt3@He^r8B@-P;gv& zl<|5n(rltu?%Vk+^*ECSc?_6=4eqH)(~*P2Fc zv>41NvnZ;uH2O`*tI>E?3eiK%xw?e(s$jXs6Zt*9gg^6$5_zlCS#n}5b@g=JR}el& z8+94al|cCuZHMX>gUc(479@x9s598{`BOF4@n9SWHO0)$35_~y{Pe8gPy z=X+~`;-0Z8IW^c!VY3!X9Rnf$lP+{J&o7|9l4$Cta+>!QgJ`b_9N zp{yp8$sl5%5Sr18(%<7Cy>6gF>R7g+kaw?&M<_lal(1rPMqVsRCSG)LoFnle@NY33 zad%G)Bb*M@iMT7MG}QWN(Hhr~-fG%23?bw~r)vGv$+dU!PO(fW^w z4or_Y4A~wHthb^#c)g(+g8G=^MyKo`R%x#e#^aQe;9n>VlfNNo)$6wsZi9xiGfQ#( zl+`K&;kzY4`fhRoXSgV_dBdpE|- zd}>Q1wY8u*YmaHlz5Bt4wt%QoOIQVcFw#DJUikd@sn`bAKP%#umtZ&tD_UU>^$$Vs zwQLS>2utESFhX^)a@8p0$nZ?1G7e!ds!;?J(HkfNMExY(4_g4kI8Ndem=6tRBcVAt z)^S?T7ga4-De^7gAb(y;k1o?VUYH$6T|bQ>#C)T#Ka%-TT#9<6+4E79%|H{KaGNl> z3&!x(towE?xirv{8{09Q0r3^NY3E>oFYSr%shzJH)uDDidn(vZQK@~@?fE>~UX6>V{jpTC_bhYlf<_3k2Ew;?d$ptlarq6Ddj=a6<%gdXsMn!H)49coc^ird9m<3oN8V^O%qe^t(>T>jQNk^u*qq`U}iQubC z2N7}pq8!>*qE}LPsKTt6Fk7WtoeraP{ai-r!aru*J36s7b0U!FPrYddp<&l7l~*g? zP*bQ={5|x%PQFVMX9`Np%)Bxy6pbkS&>E+ram~+`d{4_w)A|(3LzGdu@0kia8K302tuJCvvwO0Z{GK>wW2@}{?~pW z_HTFn?(q5H3w!~%!C0`0=MA6%xEKi&mStOTJX8~4Zl5k4|gL z>*loH2BLlRHWedIjHanTm{7RVJ8Hj{NXHRo+caQnB*cuA)d!K+DB^~Cd4t5E{g23;tI2o};sVr)8{7xPVr z?JwfJE#KAN(Pl%R*fW+ncWW#APT!sp??t0i?l&y8FJs~ogyq{QE@rFK{{DFCe#6Mj zDX?dl0HJKyIcOUGDoi zEN=Vkj{~pvGr{$d>l0Q+2fAhbT@Y;F1GM*5b{2ekdo3yW?ftby9efu_4GlFAV$gal zt1%fJP?rjZj3M?ro?E?8%fW}uw;uR>8TXO;L+ z`uwX<6eBw;=tFt}zRRRjBE0q{#IrrxbxC_*!uuaU>fd`SW$R zqS2llXIYmXai3M*k^YaNzgu22>U(&RlU&G&Vl3=9$q70xb;@&c^Zfv@^6=d(@V*uo zsBw6YQQJhmc0|)ja~h3&7QWh^vdVC9*Tn34fo+!971t#0%@z8s5qfotSfvy`hejqh z^+Dr$LAlZ=QVDY%nc`$E*Pm=*Uz`}FUY&SYn1^I8D(BDl4%HOQ=yM$pDl;-U(U_R% z^LJ&GWYxX)SMfPgT@D=yrPd{l-wvon*m2`n7Vx2T?QEGyYyV z!3(??;WDG=t=yS)Fd(wv&LWD?n%8eNgZSi`<4m)5q|Aab&h3M?R4?0)=${;`#4Xuk5B=~E3IR(T4);%$rvq`R< zUNEzo)n}j9B`iDvD&U=eg3$cbYL;ecg$NyTKv@3-p}_+nbfRJRj5_8cv}~VhI)1r7 z3bO28=o`tSAyA0X(gKW%->*0zILq&!1g?NW(aF7#@C6I*Gb1#RBhat+=0lY3Vcs*q z*_YnYcn9PjYin0aq%Qmlr=Q6IT8_Sy{?y+g=5LK`?`mxCX=Eu7?XAbD2z5z|6?iMR zA@MQ1rTGfHl~ziZ%z9GF04-#+&y?p-36q&_N*_rt@j8{9zFiql2iuV%*p(g8DXSU- z?Zh-4#?>4}xPK;vrbpAa8!aWpG?Q)hxYm`9TWHb`%e5#}wx4k4qk z%)*RR7+~s@R-q>rHKe0>;vhR|`n*0mu>DzK?9X$EDEHY6ho}h3*q^}5*`F1#-oZDU zrL+Q%BBiD6U=izC9q_*aXq>UPihW2c{_|gN(m3B1wQaiUe+QCpk6K7yvyhBXvXKR# zsQ^R0e9(q1<$sovu5-05R8q!PgK-1uek0#}i@z=p&kxmov$X&F*i{A|``+Jo zzhMxC%J5;`W?|jQu;K5_jUKfc$6mp}ZOJYoe`IQLzhMxCF83jgDS%{a+`m-?;NHxF zqfG`;r8!876U$PRZ4)-VCNuynfRJyH#QQk+NMWhJ`+`M+%=f>6qAVcWBs&Md_T3L! zL3_?MI69~h()T|*q%7uz?Q;!|4laar{AY*64oiOx0Z0Z%WrdJl`uYC7%M(CvT;(B| zwQr7l0#^h4k-Iq$C<3}f1i}+?!+-+#A+Xy&6R_8E zz+Q0AF&J}vU>|Y1oF;4}(nxc7+qa-?*n4ZQV*eGbHLBu3f zGQW|$o1#0OlYy_M6)q-g1cI%4-4lcrEsMCC=$py0{S~aZQ%whgLpa_>bZW!3B75g>H%rb5} zzrIUy4(s$7o;oIUroxfzoQXG930TS|{W`)JBBf*l34XZBM3(JX2vGl{@zhks0AX({ zm;+~~79au}m7M@(R!{e^SZ4x|SQT4MSn(r-9}vQ54Ue%3wLY6&9#?WGG_&S>^vV$H zSgIi`kP&RA#r|@c#;*6$5)mmljcd_kO}DE}X5E62nm2OefNGkrQDVl$4BmGrkMtLl z@-DCgI+TBMwh2*+fXV#$6a-M9A1iwypC}2CuZigp%?5`mysMq|vk2}a>lqOZ!2={{ z2()mW=9w{;YMrv2g>Vx)S8W!&)4{X!f$_1vW4+)ViVzsa6M9>{<%xlU%JftL(qjre zShWaL4AJt!Uj$xbWheX8I+?BYY(F=_7r~GT5_^}>VK$fN{ASC}EOwT0gO8$$uARw{ zmE@v|Y*0m|cl(b77uU0R9sby=oZFr938CryjfbZ47jpOR|1pE-hh5mwD-5)V)xH>J z1kXRu?&D(N7lcAKCU`=TlOG^i*B5tv%d3>w6-Zpm-(mwJk!aZ(B=gSYANSbYir+lqf#QPv#fh=xFEKC@kzV-? z-uKNPNE~bOLo!8)f#mladQ?01-->CAhP7|!@4o(&y%Hf|_i+=Bhf(X>(kI6n zDoTH_{EX-8SkH+@#KhfqmmNlnbx!GIDm6r@6Vl&*aW8kd%nzN<;>Ej8as@5&#(YN> z-qLF-IqdKAqP%J^h5M6-xQ)rEb6V$;5m@jJnB;7a386{;H5Bgx^>&~F&r1NwkTWzo z*nOdDdF=|ZN0BpnIfudkFzO`xsaX*0WG=c_-kQt}jmktVH+appaUk@Gi#(K&GUMuARyFG zaac7U6+BVnuJV?gO?x>ZS|V+-)7k^hbu(&NI5nnJeyev#7`CY^F-`nGI1IP<1lo6Q z1ZR=VT)yS$#XGg0P=(yF*Kgm%Q9|yjVVf8l-G`(K#A72&bfvq|X}wXX>dk3JUZ^GJ z&Y2wyesNPj?*wvo$tN{fVZ)UT!!|VNY<b!Tp&r@r=UWPcyN*F(yA`>(`ec34J zT8sFvcy}KGqDY&u%t&_k6_9r`X>i81aK`MjSNr-PnSs;p3z zRcpvHFq~Q{YJ?v6MhMo<_xK%HwLY+ps5qKBQELEXoZuuoe14e8O>Sypb=Ry#0xCAB zA-n=Mh?Wr38OE1ifgG`J2!|`}WHZe0pSW8^-J!smao^Ax0VDWVBfgmIQ~IRP zVCan<$>G4uKEccR7{Lh~brw#dcE7O=sWwCS@z9K68z2Pfm{PD?))3eR1MYm!?T%D! zt6C5B53BviIlZHG6U`l*_=USs$3BgVU^Pq>-B%zW_)c^m9M!+qNO{P)Pl z%}~e0raVL0Quu!(|JFjEM}^aaht_`VwEaPhwGTE8DjVERP$~3P`j`x#y)O7JV4S|idA2&Uv?#nu|@zqojZ<>671;Q-1AWP|Qrc&L#q?cPyb5u9y)*PUkEygu|oY4B80*AKie#?4Iy=GA1#3`Al` z&J?T{nBc^_DG*N`A4$zFFW~X)8iCjx)o0EehiYJ-5wOpY=xXbz7Xn3Z(TGHW*NnLJ zxqUkKDa#>)D8!K4!C~HpnZc9}Oj{+UR>6th?K=%;&$pb-q##AF>B$_yW^6@aA*1c5 zk^igG<+BIdgT}e>rt@IkvL{_$OyG{m5l!2Wc3($sL6*#UMmlnfH%{$ygCPcC1d|(V z;YCzZs4A&q0$+{A7f}0onJ(!-i>lQkJs4r5hw^Mnsd->YM13N-!D2@*ld%gM%+`X; zyJW)N*q|%7wrC}?(!2OVRl$=Ovs4#LZ}A>$Bn_T)lDfb{2E$je*REk;#YdpBRrgu@ z%6QlY@H6HZ>E!#3Co48(p>b$QF%Lw_EM{GFIcq)YvSEBwy3xj!sOSg|uE09`%8?^a zm=^?|Sn|e*n>j1x(}B_A^G(J%Mz&Sc-f`06StMq)c{uP$q?UP%v+&<&eK_?8BiC*> zZ8M^6NF=bw^>%KTL_?#GN|&8ly9;%mE<2jmmW6biRjVTOd_wS=uwZ`dS@tx{oY zvcZ=2>Vm(C-WxvFqBL29s>!l(qm>eU0ls`ZCL6({7y=m&vnyhsiB`8piiIJ5m+P^@ zSWcKR9QwlDp(d?5hjBB0d5qI=d&h`cZ-@2z3krs{+z#spXJ&`>XEfoT0i(6DrLw?I zEd*9!f&DfMtkpxHg;Up*>f+)TdCrc4b0Xe!Pnp50=#1&RS-GpQs6{+f z`~FO8Mf#)L3ytj03VpSp=i&1O(C3b7+w=cEgEY7!ad{4fpM?X|F6KY$GTTkdv85ZZ z^vv}BXNo^~L^hrAw>G3sC!Go3c_d~2JC|-P!-Sjp8A;lQ!2Y>I!(>+8|1_9~Mu%<6 zB>nHAue{h0RT)%dMwu2!<;*WO1{i1mQ$+X`Vb)>iNv99dMVaZrM*Cp&<;EkTeXhYa z^bc3@ezN`vBMyzVx3cMp%x;>O)h~#cVVk^#H8NTsGJ+KqGx`RjVxnhT9ke{k+b)k3K)?(guJm5s&oiRg!1uFDEwC> zThX)#eUWf88tK?i)JS&YQy5%JE^BP9OpT{(gq+*Ga|bm=s-Cq5>dj^o4ZE=JBsr^vqC#4IcJUP(~g3nka2iEgWfS0{Rc5{funB-(ZS{1$Mb> zcJ8Qpc2qie+NrjYu&u^HEqB@u12xW%lA#oDFnt}PRVKdQ3Od}4DSLrT1mxYV?2Ex1 z>RUCAqs!_BkCmAOQbKkJl9%8!q9HV?f$qzpckiaN=!wyN&ls8gkZB_7??pkT&nmT^bpbZIfN4*l zTUJ)%uB*!ulC$uebX262MG$sN*qFwZAfyou-P(qr(dh{$Zjht8?5x0yfOQW>>80?b zR#tkQ;E+&P<_EHhQJI#CoaD6($FvrIbTq^jPV&d3Nxd|i;w0&Q)R6DRMD}jyVj8INFTwBouWaSX`=3!0mo6Q}#* z9!)=>{kDI-mNLRKCx@sD?{O{yo3XbZ&!sunkLzjjT2=)X>{ZUDC#+6sSy{^UR?$=m zbHLiqtC1(Io6k?`0nLgKng`L$VeMVdqQ_V3L;9p!uhY-SJNS99{9xv|Cy!9uo2j~> z{Y_0#caPup?Ot*oeUaKN`K$6R3-lEAB)&9lk-HYZk(!EBe3pg|p_L1EHPgbT*AYRb zrje$B4b(a4*3X$1?3h>B!s%Qvr@X`3l`%b_TVK;BZChZPd61gC!K9Th8)(z6Gih)Y9`wG>SKH@? zc;G-7o^&7FqwEi5D8Aa^{Jb3-KiTdin@O;UzQ!Wb>D7&2{#b~XMOp!cW$(8-im{?| zL+F~u_2KFYdh+$TJ~kU5ld-U(1-sLB{DHZJ*g3<1?fR|dC$+JZHaa(4VTy4v6-mX; zSNq%ux}1ec+DO8Hq~5-|X4Y(8M$xH0myXgjp!s=^Lk^&{aa z^E6q#UofO_P2OLs={zP=U#D#Yh%?lq1v`|3_W$pRKE3(u@jI4Jbz0fhRJ3C`(>Kko zIKZF@@73%fjj0CY{I#gb_qg$vQcyl;SJV|vTQK7E9;}qz2brmx%R={-It!l_ zbkl#I?!%M97ltn?xG#y4!@9OrIZu&Rd)Ki#?K`XHVU7_;`N zrZ+HNE~Cypt8dgEcqICGq0rpqRZvekL#`s1h$dr2tJ8A9NoD${k4#k;}7ngy90 z9!})IJMgfx>5a^G0O@QCRIqdX8G_m|^z>5xj4quP?ikAD(tME((e$Pn)XW#jlWn)K z1SX$sOkFbMr?J#!M9y4TvvXH(OkFe!Ol`23njB5vCrmY6n7N)QN)|s5O3+C@g28TR zrs=DgmS+Qb$%qNGlpT$w_SOk!>7(4Zv2?_Ej!{{#g=1igxOZa=E9M;j#MSO#$4TCb zEg&ex91r9UU*{xm3>Fp5zFkRyrf0(Lx^TPKkIiH4qo|}o$8?lMPUjqtdYy7&&*E1L$r_mUn$zh9TQYp>Z02ET(ukn=wBuRejioU2dFpb zjw$_@3zxWK%2aqg3T0JgLH#XT)S6)ZXKF&RJB9;={#oDs=I3w*0y{u-aK1a{13G;* z3^ih2*q+}@r^#+k!|8~*>+E0(ylxd)I=`XF9n)=a#BCw0o@Q@b;oFG%-h-dns{uFi z1$u$Qmj_*r4*!T;9d9zCYoXDeNdIU1?{%+$QsDmuy9}kYUV?RoG#lsbz7lD+x&hnQ zm#&#}vB2{3*L|wxO;&oBmv;075k~A@VnNM)uEBj;Q5>`|Y>&;1^nWGN|2gi;qai1L zaw9TaO$`fS&j6P_^vlaTdiw4U*9QvtEZlAGQ?#IEi_YFCY{C9HKTyu%{c~D2(ou9- zn4i|xwXnN@_4^DBJVhD%LRFvIzMyjUIY3SwLHd*(F^kJm<)qL1!Q3xrnR1rwo3j9( z2CL=G07C@ME8V#UogisH&~`Kn5Dz-n_w1kXe?Ic_MXQVI+TZ2)(N*Pj&JsjCjA6J$ z++k$U8udTN9XUDo9C&~S8Pxw#8Tj^t|4Ess`yAO}zt3LFnBAGHh%AB$tv;fEtnI8S zRsYb5k*g)j%jO&QM>kkzM%uMo{?GQ%)a?9EYwqDDZDW(X89Ja%GWrT^lA~Q?UNy6D zlGpqTkKknF%%!B6@^>A${JARs!u6(nT{iFB1Lr+hdH-PZ4kWLy-~8ArZ1k45DpGeS zHlvrBj*%~?&`XRv=o+2iGG5eGcloT-G5mYJkDa)BIU=LS+=tEaqr=*nX&ryUb}VG< zdF<+exs~#lFfXvIE9~TLMST}!`-!`!wOl(38$cIm6@X`3{v8uASl_@ z$4Pz->^Tchq;e%->)xnNESzZ)7VL^QJIUAm=f-BI^@}_+#V#0|eyv zgV6722VJOC+tUMH0@H$t?`$t0)Ju~~XlXiFU+DFHyhPJ|0u&)MJl$t?!jxT4*>MLN zrsnGHJ?!2;OO{oZKh(h*)%n28%fJ1-MCFy=jJl^+uRguzvY9h38Mets#}~=#+dC+E5)%3yo- zdmiab{r5~~W_$w4-TyU4^LoJK?Y3Qg4R9y#X420`bOA<>Q@y5wvMk;D-`1a@&J!KFTs24aNMeIA|R z6rCju%(nG}8HsTj9Y96tQm6G%o-)Jv<6Zle?L7_d6PZJK0j0&xP5;i5g%Y)eCr~(Z zDyjZB;U4&y3E((|>kRM?`7Z5TU2m)%4kMaqQ@g)oQYVU@NS$m`H`~<7e(H3a`nXM< z?x!jO0=P?T>P$a%j!nJOrZRmK+`l#JhwSBEoB7b91pP;yL-gTm-uLt&HLu#c#6Hw` zlPruHlW%o>wf{RrzZVdRW};W!XSn+bKM0*=s-;t!xju|h8rMtIMiFV3p{uxhyGmY( zXn|K^5dIV>Y+Tmyg>S<0*8@Q+il)a825qL&X>R@Jc{UAU{=2$9+cbmJWyR1Li58cu z>nBs1new|NS(L4=w@6xDZ_%AO*DE*wMcpq)-0zlp@BYOQYyDv8v771YO#n9& z#sY!vB(GAH>G8)b8>9!Rh}HGw0^=>Fyu$6ujq?XCILqene!>SW@s<`Pxbuz0TxV&~ zG_A~Crg<2<_-6NW>&&3pJgRplgiG6*Pw zGehD_^uSZJ(pmU^X;IN4rJx9OhJdrMhIu7|!6<_M{<9Rp+saQv%kp}lgu+I*93%*c z%&SO%8Ovc|IQfb1@>8IBwG7zqE&kGWd1@XuV$jkDdC&XKf%3MHS8mgJ$Pmh;Oqn{1 zh^me}D!A#$>vzA#sW&#Z|9M|*{BfJXMypmzG^2Hr$D;9h;>3<;^kiK5EVP|T#Mt zowidDRvH6p-E`n5B+JWPrYXrL-hn(Ae+{4M<;VRSF zZd^JC+kOF4;VA(6WwQm8QFSfz%8L>Qt39Bg*4DHr>1P;ZTHmJfhGql!i*T*C;!R7MF9<{FK8d^R*!T?NBqbL!Pw>aubJ=l{orZ++ zJ|Gm*$meQbKL4B#AmimagN$E5*!#<8=Qxnj2KvZ&=nrZTAb_%dPU|0dHe|7^7@2D2XK?G@p3Dt=Xc)E$YPld} z!aqPyU#E2&!{JK}r}f9YWF^N~A1AAnW|v8J%_U(56M#3T>vv3dk`(b^sYWM%^g2DbDTgKRoVIskC{RI@#P%sXqZr| z?uH37&=ceKgIj%)`4*#5sDBjYXY|j}JXrnX0gfV9WySD~6!8xJoV8=Fe8ckdK_vRR zqDT2H8H<8XqiS!&?;$rVO2XIPZFjy}7o6MINq#}rM9aLH4Bv04jb*a|4^2NrLp)QY zIbyqWD4RD~;=Jf$M_on*zWOcG}8*XaR4!!3VOlNo4gO`ET|S}XiQ zU$ceWtQx(McUwTAlG%=a$!|}<=1#Tw?U|g*{Rfk~&o8s;`E=zxkhpX1Ie@tPyp#L| zM1Sr0mhQuxq=>4e`*Tk6IP-ukba$vNeYPWzj3m0syxT#z5%nh7aEZ<1++p*WL0Aak zws4=hfAU?#Nxn}tEgZ4e`gNQA&Oi7dzsUQ;kDm@X|Kb88ZK!Bwf{=gcI&+%sUHv_N z=3O81V92d`vh>MGnF|WZ?dJ*X{|%X2D5aGt=cdUYXv+Q`;^vlb8U6E1$TRabT4$jg zW}*C7FDPeQC}VBiJF_G7mg-LT**VW|%Zv7Xwy$h67uxqDePYZs`uQL5^N+OeqyOl? ze}#8hdHMB^@r1P3X-79KlmmN(O(d- zLl}dck@@^J2h9IFc;CB>{9RA(x4-O3xl#Xm4fQGB;bX~`usx_fh(34!(crEwnCf$| zHpxuR)Ao$}Xxb09lbg(`vL~%28GAnQImM5$@06e@Zg=9!5^Y8;jks&Q z+ujvbHL?Bi6>t6_>Z`xkU{L)zW|IN=(ExuW0zoU{gd|dZ&NbV_nZ_&SM#%aWxZyjG zU+N^*h>aQqvY{{LhfWArJx)d3@At-;>EU;I^JLqyX($p3dS83T1il8le&!|qO@RV+ z+!NjrHa?1s&U>`ygXTBmSyUOsu{TNiw2Ahae}b!C=y}B(KzCuNR&DB)s4nA<3$s&z zj)ILbY%U=**<*`KnF8iCLh-Z>#^ih4-Qj)gS(a3Mf;Q7}n(OAcuFC?ytJ$OLokFL? zvp*sO*eHX^(9v7mdrh8%|Bf?yE&lJ2cOeWxW?JPP_BNzb zsa9>o_RWvc@(bZI#VUB^-v^ZnxU|DF+<4BpKD6o5{YNNAufV&$7re0(%$U;$K>mFu zmHuAw%?#PF9`C|lS&z(BeT(w7c*~Bmqn024VUK2F8n|qI+Hb<;e>Pgp=18@IOsJbN+<&T(U*50f$0kQK$&M8v>olx{SELHc`y=>9Q}n%Oh2rYdgpkNtb;&;*5S@ zbQk3WzS<6F^a~iB?hBfubfQrCRr_y2hOnt@2xZuUMb))0ImrsD(`Ft++70P3J)(K- zTIR+FE)IQ6FBJ{$<6Vd3=|Mo`-GjO-Odocx53JD*Q=Q?e7uj<{G+na5#a?>F?rq!Z|v>Bcb6^20E;Ko`bC zZ8uS4d3(S|>g6{7rFYz34QzQl4K$&*Bb|Pr z76$VAji<6!!jD#4H;cAou70papW=Lqr61O_nH0rb^z)$YjIkG6-F7_~(tqLAZSt}S z5y#1!8Et)=r1^dl*9w#wBuxvuZOtSa3X8dI3iWc5&oj?&Y<=BHt}_oioST8ePsQdo62h5MIxdu7$KqEV{TG^ZY@OQ{9#0#X;dOJ}5_9Z)HGf2^Ye7!@tys<+8_BS&{Y;frS`oOYcVVQ6rH3$krIA^(trv@A<>3xUsQ`$d<9?%~Z#@d4pcE z{(-+!D7JbuUM2H8M89CYTE8-5YLNPNrxY9coYoPB7FI?JM7}RCG^@Xl@l_?lLk6t_ z(`yu+)?2e5nwh5Gz)K$gxpCp1zR~5G%S`{XGG-O`}G@Nz?kNR&~gL~^Np2L3y33|IpLzVfuX;ZUuXoLi4+JcW78=d6a zkP45nn3LRWABl);6%Pn8$Ek?SwM~4Zq^UAJ?pfSYEPW3m7t^^fImv2`VtVmR;1&`s z_HZHHwzjEdJ4Tl`JFSEC2tbh_FmUP~sX9sdo>Elj9Mwr99yVPGyAP`?12ne8sIP9D zPJaC-DdaykKUvJ%%>0Kr{v(&5l=G$8e|44|+`Q|X&w1-az2_y)+WvS-J+rck?-To7^=hlcT2<)(5j<4;rSHy*l9M zxH0Ps^sU(xLiyy`NXhg`XP@h!B9-&$OQ8Lu$Z7Q>NtuIr%XV$$@n993=q-LT8^Dmy z=fdX3jdq=86K;?UQ&o0g-XVO%+>0wSXBb+~j+5yD)wfSjz1~HtG)9TS4)WQxpZ`Oj zzr^R`n(0!em};df2*TDRj_7)_(TPRi0$_(Kx1#$r@Xc@T6qRL)4~V^YC}^?wA}cAG z)nw8b+})fI?#)=f_C-tXzPqo%Z8NM}P8$jvYe(bB9K0V0p5g&|XW|rqLE&7cOO;7s zBVKyI_MQg<^e%H74M#pkQ~i3KzruUeJvl$WPK_?@^__QjHc44}ji!ti&#iC!?@@QD zbk~YSsnKQolrM8v8FlGvKk6|W5pucFGZWHk9R4y!uNIiyl>p+y>p*;35vq<_w{>s(N^rPk-7fHQbrOowI7WV63a9libhWYe9p^?Jz!-P8V~$;WS}b*|gk`*{E4lz`xc0QDGvh(vLZ8Wj|gC8e~fD7IxB8ZxxDEZ%W>fY`Si~sk1|MT-ar0>18ojO~cI(4dQWvIlx zr(jq-=S;@%nVmxM;M2%q6E`wv42|cUQ<=F{zT2qrqgZIW1r;(Z{_Gj8R1@O*(AnEF zkl|3Qxx!u|Ra-TiXb-?9^WyFfkxNwOr}7btgpY~Ah#P#U3!NCzUbI=@TD%%!PkAs7 zi&vhJQIY+C6e(`5?D0{^ezUU24)>(ouUeUa`KnFSVR?+$q>QO<1kJX{|hrL_Y6voyPCJQ5c()L zZ9R5{>Vbs^e!l6Q~S#Lx)42@0E*mF@jmK7BVrwWiceZ&Ld3i@)NMX7OxjODJ8z0*~glp zPM@vr5er4VMj~agR>u*ndNcFL1wkk3p(vtg-G)O3wC2(mng4_u>gaQuYbNK@=TkNB zR&m~ZIPq{feSH9}%50a@?!}X??lf8O!xL}n#zbc6qQw@p2%PTA z?PZRW*WD!V9jVDbVNquJlal->$tK>XnRp)rj@j7jpkuhb+Wq<(Gh$2J32Px9@-E^n z6fmg7#CtL-$&nT{R92xg3OWv3@Jfw3S5HTy%!wr?JnZ>@SoL&_r_4jtI=<#J! zM{i!b7R$OM5t$jvUMz+MM~~rnaz8JVN7wJ)N;Zc!Z4^DteE5z9#%R7zNoeN9Qfhna z0?}EalGWjcHWU;7r_&XjnIaxVJQVJPYoUO_Wz%n{*UK+cTH}8iL!kx`SzI^V-Yq50 zro=d}$kmBS^h@N@`;ZvL`+;rtrnpylCuj^s8(R|^2N2KO$^w2_I7NLAA(aj{Tn;hs97;S2h zo2?CjMpE!v@aNUpv|9Per^o0dJ^VJ~1&xAjQpqN(O@O+ zv}+xwhDT@WgpxO=7BW%l$)@=&?vN9yoU9iL^4S1Vd zT`^g7#<_E}I_!wPVC~i{wDezM^otGz(9 zu>H#Hk6K%Iwa(rqirgNRA084S#1A%?e>~3j9<3$2;s13MQKf8e8Gns9Aq;%-N%w*J zeC#ZcF*Rf_keU#tYWaz+pLHb90&&Rc%0*`jr1GXevmT%a^L;(WC&{~_GNrR0W2n-T zn?1^um292%)8-*vI0D7dTB1@J$4(7(I@RHovF_(kOaT0$HQX~)l9+jxfferD5wy31 z8`iTPMUfl1ON_xaYWT%|z3Cm%hu(OQ91GZ@>l13XvT@(*DK6J6Y;$jh5I&_|KPX>` z=5q(9Wm=TVbo6B^8k~D6ta(yerl{~q5+5(2i$EhsK7x{06(#F*4-KhU~>sS@=o~mT)IfYWA>vaik&rAzNXI z+;iX%^>l@H`D8@etr#m_rm4<@%ZGsP2 zap22;hOf#Uw11DW-V(>7xkR6P=dWUW>0*pBO6?ey&zd9tAA+-HR=<&HEm09ChI4FI>}twDZpiD}1Ks4s=v_qnF;l5Qh|Ls@qdYyUzI$X9(-1YLG!|mdMv3lmdg8U7z3t)inPX zEX8=U#YHDFo)9laYT^u&1$hKvKNEFjCp3c2!y1OX!I~Vkq^C*w{S|w%!rp)x!Boey z??t7FPp^I2qGyo9qgcO`$P!&C`CfQ{(Me8yURXzf(u~aT-4!LD&%6!K|4)KuYI2?` zc;d&&Ec=Sus}WBR7};}SdEmca)~PGFE>;Y6lj4#hZY9}m)k)Wku`jLIue3$fpf@!& z_EDw%Y14z~4Vs=+Er%q`fG=8z$Is1z?LW0*tU*h7;yXw~B{xypdpy`q2PK%akqd>1 zk}MNGRxQ*NAPG6I5XgZm&~J*sdXKHdO(SL;GUmYJoj*d)IxLF|nQ z20q57l}*1F$K%JJ3()=$`ORSAIa%~S;c~^7XHF!FDC73~E`=XYzgO7bcs3H7Np$l_ zH@EI6sL*=)#I*M-?F$y5N@vumOL&>FnqMf z?GjWeZj?Hbov7G`C99`mKs~P-*NV;KyO;H+s1wO5>$iT^@UhChJ=U}?=&ei|zRP|} zYLR2jodx6g#*#EsKjq`SB*f}~!sH2G=4J8I1$mrsJo7?SZ#Ny%eUgfAMb_ipMVBe5 zy81S-6?+bF%)D!)t=<78tcQfUR>sW<&&Fw=;EtQxEfNA-o&&z<9 zF?`bZKkwQ+azW$7w$5g7IL^MQuh*BX!Ax2#-7 zm%Z-O!+kPr)P{Xy?9(ASAfHS&nK^&!)+94NLq=JDsm_S>1R-w6E)0qn3zy+PBR}Kb z7aFKNXdRU--$&ovUwyqtl6PII$#0tEe@e30Q|@$=Z=B!wuTV zsINnbdq6hWVz0xQO(--hx(70nnS;S~Vw2vqSO=BL(E~C%0?^;B$0XexWn$MrX)4 z`zi6*+pn~2Vv#udC!XWMTq1;+lh@g62yWqvOoW}gCv!C4kO|f^?|Bp8?@W=OX^{?6 zq{S4O=oOLt`7)PZAnrd|5|;_HPF*lHxIm7th@!By{Nqu0UH*xJ0cLO7-DU!vQX7OR z&aWJxDD&*o)ri0J2JUJ-&_2zQAtT;58!j^T={9h7Nc%LDW}g;;tBUw9i+oHo=R+@LBvCLU_^`Jz9$d@XUqZ~0Jd&-#qig1e_dGMK|xVHzH^!&sdcrRk#~`H@G|yxir^WUaXA7b#qB#}|)` z+)OPxUcXch?mf$MI$UJpPb=&eakD6P#*89ZF(gYCuM^fNv*)1wx?81#UHA%X$xcic zLSH!s(i?r6n2us6_A}qjM^fFzfFjaZX@5t*Q$ikUs26Fr*Cei2ej!tFf#oJao z9XT>NoR6JbX}^*Re?kv39K*$tD6wCmP&GNKry{7+&(taBKJ%LVGcD(}=$#jrieG2xrV- z)U{CFU?jQxfC-l(R*7N!pD;Qqv5vY_h_za<)kIw67Vp{p3$CG5sVgpk#A-QjDc6-ol(`}F z*8apa_9|jeJYv{;)`i05gEq(ylwaPS5Hk1l&&8$yHS47GOIMCD|0F=N1sY$jwOt71>6 zet%Y?kE!ZKL(~8CRR~A=RUIQ$&8DjP%_}o;#0DHhzLM zUQI@9kE7J~@RK5+5+Ef2(YYH2!Rc!f_GI=k`}QhJr=rXQ_HGRHI`n(Eoz$g-O~LtL zKZWxFDkxs-x~y?~JSFngCLTii=WwZ!Gs3sH-`*@i+mkzl z>UY8-JLRB1e++Flri;b&77^gF@9H;GiqGPim4sr!H!CGMv!>k zTI#TtumZlt{h}&~pv6)%>3rR&U&Xx>t?PiDSnpv7r6Ma$|5B`b+e2v~B&gpw)k8hP7zEiK z0gey?fV@aIxzCHV#-P1cNpm)v2KVNKPfs;gU>bXg9~x`9L?a+z7mg`;h9#I+ikn+D z#Y0(`{~Vg$X>eRE{s0%NtYNmjx2*UR&f(t3V&0MQ;2<^ZaX45@-U1&}q-Ibt>ZT-V z#_1;^4K#2sB4JSnkF5u3l6Wq{MQ$M}O04)DTvnfVDrugj+MX1R5Ou%5(aU46Y1-`G z=894-O_M*3=Ss(IT3jkRZ4;_(nNnMfl!jPn5M}dKgA@ zkE4q|$5~4j2%~Twu^?|vbZdw43|pLSoA)>+@V9Y3u}uzA{ywe){EewLItOjrcZM zo~IGt@%F>K5kJfu%hQN`ynR1!#P{>YqGhQ2dEH!K_zC!b6u*A^|6BN}|NoUf|6lu$ z_s>?lsNEdK;281#FlU;4gybCA`~QFpRK_pGDrz^LY!ztqq4COwT*fb@eJ+P0=Fb}o zA;yA!c@%npdwCRMKmvJGN|;B8J{F?OSEapq+|O5ThLo=?P`nv=w4!C>(0F*w-caU# zkKcvYU{NniOJt|9C*VtorFenPG_6kwl*|`p?nhwA82jB(&cy42&e$7+&cw+kaRJ=s@-%S*yS!21!B^$z^MzbVx0zLqnib)8+`$n!x{ce`@TpTi zj;qa3%;IyInuo^DM=u9j_Mn)Z@(DqE6VZvuv~HUA75hqpb|dHBqsv#`$)l9`l1WIt z?FL%D;$b!RV9Org*s|Az&$AmDB36&jbop7uq%(83p6KiAM;bm-EB`WphJJcJ!vzl7 zXV%1Xa;2Op#?4a~GuG%l9eWDcE9`Gec264$q$TU7o#2#Thjn?Q->h~we6MOz&t|J| zitV?8+%gLP1kTez?EI3Xb&1|$hoK2&A*Yw`R7k^M*Rf5$gL0jqx$L#>NBz_5^K7-M zV95%rR@PvG>|T_r2V(`jS>Y^ODzmY8!8^UAk>Qi-+{d(hf=O4pzW43JTxZ0M&h*L7 ztXm;8M#ivl#@LuTA=)bMcVEXc+J75%3>z< z*TL9cjUUe5L)?ro1D|`#=VrS>+<7{-%cvd?iyKdFd{eXP7Ul#xw{}Cs~r z#-!@YC%^GX)EkwAAPh9)uOag}l6g%ck9=T1#s8`PmQVJ*7YG1LP1jg5-o^9IrlfmD zs(#K`c@lZSR1gCfOF`F1#L%rs*)PBE!x$Iu+l#W0v|m5QV+Dqpu&1}ZK&E)X5|cGs zvtn{~Y?C=P2e{kh+sqFR`kn4a7q+d`=xZ*EW#Ev0OH*P$>i}Ivhq&1??;5GZpzI2+ zsnMfu%s7&?(TAFLruyyNMLUTpDh`Y{iB~aE()1r{Lqj@(PWj{mrxe_~6E263FdA@a z406Wa3KSRm6Ak+tF;|&p5O;(rn{J2SajF_ZYj`p{QF-U6=VhB1M@E~YaUo}W?1}kWdI{Q1qDltg! zz#zR5*2U^Hj2>Y3Gj^`nqs$jrRU;)&cpdGtir(%&U(705WC^lFS$B2PB>j{GLnkpw zpCln^lD?uzYLcGi#z|3=6q?Gp+3~!mNM;MOp!5zB6Dz^1Tb0U&Rl4y%VwDLkYm-lXI@2yXU+RP`N_OZH|XFDBZYiIUeWQB91byjriZo9pc#hX>UHoAA$ z^!D+P72USm#!Q{x(4LJf8O}wq)>$7k$Z<6pPJ424ILNMPE16IbeON8Sk-xt&%j$^rUdh;3*%nNOFR!y`!M}q-Ierv(2B|se=GyteG!u<|ge4B;3C6R=U|AsQ(9fr2$3F(D{iH`d()m)KRyZ< zxHwHK{Xi!P|CA#byHz?b%lhi@%$5qLAJ(i{FAq5n&C7zESU0f>VbX^_A(Jdse95op zvfJP4EHb0)NyDB(uhWL>WkF3FAj zv@(0Ka46wYQei;j*@kDIIlN@maQn<~2Z?F}Fq9}8x%Z}=m!7>=s~x6ur=#T1D~pR& z0p5oFfbVfCKg-{tTKB2VNuxDKR$|;0OgklTpdp+qK}ejxbx@%A?sFAJx3?oljkg~X_~k;!@~*CjAss8Uh*5bQ1gyU_H#cZH_aRGKl0;WS4ONXN%KT1yts;m0?? zYz;QH7YkI8qpc;5Bubz(mRxiz&oq4xZ7Ps5P}Pp!-|A>~Qequ}Mii*VJ(!MEkpVn< z$bbrh0q(7mx(Fn^%V2=6*MF4lCc36jqU7?vzs2{^>|y;Wlx=1x*hk1%76<)d*o*ad zf$%y2wPz6pYw;ZA!D$y?w36N7 zE0}=Yt;jC;o%|RZFvfDr_K;OZI6G$Dk>}EgE|?hlC+)=B&JlOhcG$%2nancZ{VhOp zeo+5KMEX1epl8UsKa>!hW2*j5V21;5W>sB~2G-Cmt*;8C<)kr{j$y36_(=YW|+p5{BU*+%g zlf0b*qb3l)|As6HSaa?p!DsTmmk5!CzjgUEJjrpSoQcTCBAzPCX{@B;`ehY$Tbt;7 z7Sh~OU8p0TJu1tJ-j)&1Plw*z1_Fzl-TzW-STW+r&~)BvXVa^m{Q92hgxIR0Pm{PA z(L)f{_qS3@omb3_pN*D&AeAYuSnWHlO{U3Y^6Qg@wnO4C+&8tnJgp*qP4||)y6kp# z+iv-Ge!O5UZK{9Lm6I*etk3zKdY$!~B>ZO^(0Ex+onok6P703&J4+ZP`hkH zOiWa&wUMi*&r-TYAs?Ll0dmEzzM08m;8*9DHG(Z z2v4)@_Nj@hWAW|rtzeez*o4;+cqrmz&Ap9EyeLGg=0!eP~b~F{Br)7~K_$`}JZeaVI@lfL0K}w}{6J*~ z1OsU-u*_FfobnL@5z}|bs2_Hx$(IInIgSK4dGTMVV6K|e1TEb9c2k-{_O_iR2TQJU z^Tw4n^7NTu?MV{!C5OD|JVT>qt@|GrKvHs_;D~ogS8(0GYeZU@<2!ZZNmGr?UzWkm z$V-+dRxKhc$@4S3b^64u%BZCWBBM=MQ}|Ae-@KTt>EmUI34@CvCaq1+_~Yd46&X2T zUn1{A1ky25y7}5ID>g_n&h_M3ZX9^e9rKwmcseE%b##pQLy6Ph<@P1LX?98k&OcQ} z;KS2ZLZ_dGjK~I(REF?rn&Cy0;Yu?2J)I-4A?OFOYEmCr(Mh!HD+!E9w(!VFvnn%R;(q2< zOlRtiUV!KxQDIiJ_d!KYPAfuy=!QiI*&@D4XbWS6KlY3OEcz5}EUf-y7qqQ(7K>Sc ztj;8&YWr|&#MdffR!v`W9wfJoA$Hi**=oJ8*JPDSnomEp{_12o}2qAVYtB144SubwVPZyz8>IM7paRHbJs zauSXwN5ZT%6abERL835e|Lrj&)jNok$M+QtYv9Ay{Hc4T<;C@zqi2_QJv#K`n?`R?#|HeaI4A_FiU5D($3vd;z7 zG=2=9>5oIkT+;@|ubl7uiJip~H{C>dq1h5>_8*VuUSy;HK01(|&eZ&-TG>ysL`*z} z36K9Y^e%BmgLpvTcU-88U?O|Jy3cU$rn!X85qa1U_KN}y3+kO4QT%p=d2{^E=AwOk)))( zV={y%1+J7WaX6m8VV3a%Ts&)x{llo@%}qzl=W6PTk`Jeyft+$Q&UrT=Zt>^nlcl^_;T?)ksm2Hp9)m_;se!`H}i;?1eH;HL39@t%O!{5B~ zC1t;{y=J-G23A}rdf{n6)7@h~pXPo^PaN(%Uma_mS?W%be$mE-atH90@)9qYVyyjY zekyFrzhBH;nfvLUJWe21Ui0lkatBTBD-@3RB_qd*-P0y(DG;(YvjcDL$AScz$ghk% z8|0vs?7BUzO@Eya({rjps(<31JTkF?M8n4io)@a=;&Eu7_#;5iKQKM9kD_VyB~Ca% z9;dwAHvR4c(g#p$3Y__JG_~E#Vf6)f9S^?6LCwpEu3v?$v)6E%eY=%M$Qkz6wi`>b z)oYzK_czeM9CLqdyP!+PqB7FoCo6^G9^EdTpFOk;WRm|8nBK z9?^wX{k83G)MuK} z)b#TCH=hVp6AP(jEC1i;<@TODBzTxUfrkSQ>A}b`^mAGQoTN)f|b)E>4o01v%ErMJ5gvws?dG4fLVpo**JOjh>#rU5~92 z?GbG_5xtn-Q2xmWa$dqtbdi${$ZG{`LB`RS3V)y77y}1a54mxVb*&4+hLnPlAz=L4 z`aRZBw~A04H6+KH_q1r9o!E0y+!F|8y!E<90o=09d6rO6H5>E2rK}hq(gpo$_;- z3!R*K#cRnkzkY9icKaE5nsJ%rwk~VruEYF*eMB+UWam6|P$HoMHbZ0zUdEF@rjIAa zpW7;CV<_>_lS3R1SP_4ucMetkma4Q4D1XvzT^SU*?_<-g5SSxcd*`Bp zAxi%6_>;ZaGh=mMF`TbBMTf_i^k%`0GcdwO?)2$9=s z^?K9l-Z0&=dhH9Kp*T@)uFTMpoOM#~bvXoB02UvveaGtc%Ji;QuLAdIR(0ev;WBf@ zk03cqbGhlr>W=0V?KxqS)$3KO``goxwtAhkl>C9`P33FoHkGfyUr3d!tX_?hrQJfw z^0KLMj%LX(u;trQ**Hnp1Nr>9g&|LFcA0?I&c7Z7IN>86eg;40pEQx&Xv8``y1WNq zOv#!*sIw;I7Yvr)pw+XHgsmiG7NY`sB2W`{%S8?^SEJX0J>CrT(DS=Q00Z%y5~~;E z%GuO<)yliF!nAblYDVRty=HnBz~0k^sj|4Br<2lix7BN#l%qgHS^+vqfjTWvPl2V$ z0(FFB;=Qn*>BE(DyXu(QR%c|?f0u7}bqL60s{_GJ4d!b*KWTKF%_@EF3)sPUhTV7$ z_Jh^yOAo{b55zTTEskj0V!+P1Uv4@lMm2fac|JWyg4-UWNC(5lwF2S|w@%SNouiE9_vaQn_!*V38 zV2~GE$$-t2d>>dJcC#($V7CyAjq7-d{uI>kv7vS;FK}l@L+w`YDP-5yX^wXPl4AA) zd*#hulFI~}N(O0KU$KG6*{Er?;-2D7JgqeM6DkbZ53SRW4|J1q_CvDDK^9q}Ad7Ah zv6uAbZT8Lit^0qF%EWU^+Au9%E8ZvGc8XPO*LIgTySBgiIPOjTSZdy0d0*c`ys`cs zatewk^vhsQ!$h(uMW(>E%a?20Mkv9H7(ckA2f?ezTQ{sIe zIFkEy!ZfPufbqU}$-4=EDPzPzaYJS%@ zPvChd1y5_ow(#xXJqcfh;csinem5X+#0xHx>0dnWZ7eNjuFTvxGyOWlB+S$rs(qfV zu;&S>qTR+rr%a8##5b-(s1b&gkKOh-)8G zhAS%LcjWV>y9N)gthDbSVrWLbd)c!xhi_+H)h~m~cc!r8bW&l+&JNipeLt?BY^zRl z&ejMR2t&d9c}(o$eJ|-O^XY_4d5NHR7k9+N|GLOqJw-*@P6`dUD>q^_^-;bnnUNdr zBYSa(L}Sf;SIDub>qS#nJL-~(5H^@0XTjV{>XN09!F==&Wyr{II{*!Fkn-v}OlYG$?1ahByJx@(td_Iq^ zMnl|7(pA=ydvo0|=&P9YZYbX83JLp?!+*XG*?Ypejjz_UTfw6JL3w_?-xj4;fsaMp>B{O$avI%;I+&55*TvZL|Xw^K*gEeQ1P=X@| zZ_&QW|WEhwQhDo0X4)@rj7y zz*(G7J$|^oDOCR%o7ZwyaLDWL0VboO$J-V4A7?jpO5!)VgSp)8oTN+Nemk**0fn9A_Ar(LUz2aN<@TZF#7p{?*PTMtU!zqFx{sgbx8r1W3!fIXns>(!Id0Uw&NYi(oExww)K)BxC%j4PW_`2?{u8}TG7zzoomcv~# znrcLUQ?8(Y-_BBQ-SoSdX*UW)z?<0T7`EdG{a|b;A`9?eRWFe7+^U`?K~CaB z20PnN`6iJ)*)yk_kN&cf<gmT5%p4=4vAd6MHD>W z2gh?_;3Fe&IYS#4_kkzC8yQ$CD;Vx$I08JJAY@@<7-Xo99#qTE^1=85+~57Bt$d~V zE6U?V9B0fT(a`w7KTA6-8dd7iw%r6Ofv=PMnoBFPj4g3ydM6kTel`-BOUmH#lU87^ z2H06Af-7^l`_C7y@6NSX_e5nTel9UHNSjQ;vqgS&R7vV%mE-@=IAUzgxnCb#YmW3A zUtZ5f6}DH@t!MRGan~J@+d|QmId*PCX^sdR17B{aWM71%2aJCA?w^tS5aet?!QpD2 zGsb{F*1U}Dk3=8KMI#fTlCbGY_YAr@?rPB4EoHvw`F2*XtpWlQ(sk2^(XEvY8lH<;Imh#2!q+^Qo47j-{czO=-bqujTyN)_bEzdJ*4|}s zf5%EZ5O6~$9h!{1`Zp593+{_^BW}F!K9svIqTB#r-qCAm^BZ+Yb%$UxZusx<;%`@^ z32BNKhs1LZ=0g}P!#!T2kBz#74|_6M0;(C=@-rwu2R=MT_^|7fvW8VE_i_Hu<>M?6 zk<@=Fm<}r+Tn?Dw&LJ2g1=naDefnY@&jNH5 zbaYjB86%C|c39=MqwbKzYx~+sq|aR z&+==8uU`05Tl^f*zxV4S`y>_kY>a8}1$C%{({4Ad+$zMLsNRkf!e|!8WfBBFoKCFD`uy%u-shgDBUmE$SYZaw3 zs9bcOI(edy^BKs%oT$a#jYdQ6*MKvlRkD!n~He#CBDM;Ybz(!z{3qQFBC1s z3c(<{TzReUcaRH)%-*+Os&@Cu=~q-~_5{gZ_BQjIwDL{0s-Tyf@+-gNn$)_)ZS*l6 zpZ_a*kA3lfMsMQuGTb|50-vOJj+xA@`$6eFc7NxLuu2jj>17Y+&A zA;%B3_BQD>UCnKT<8KD8{st}qZ+UA6;Ckm#Gk&DmFEAO`}=PcyOFH()>TlpXHLUv}omOs;sRObfb6NihX<+mASxd#KoqvY>!oOVoh!s$9J#R^ShvdrDvMj^I;MM8J z@OK+|+6BlnT~^%dSf`Y=#hfVCL?*YGL|z{*KATmvRbjtRz??>?wYrP3T{xkr5`L0# zRXP@?Be_=XgLF*58X1U()GDLRf=|veAk}BSBx05hPjEG%jsVg)y$gR=*n6gTe0q;U)F#H8ExqE73vlG{Ef-8;K9Hl z@s9$>W$C1u-7bj&nibLnB{D$p;L+u1k1j_lUD_GLGX=%liUk?U4}#)pCJ8`sCQz7q z$;vtBa!ZWQNFA}?$davqDs-WA=!VQrVo0EC1J@z=rONI)#Ag_VE4Bi-Quapx!^G@i z`vnS^{ZYyB{{={a<#-OJk8ZsC#W(DhkEoUgAA+?}KJ!e(tOSq(`Sqy>_XwU1e9K#5 zpu^EG1!8?H1v9$47(|IwUrjctXw! z$HdaJ4|V60wM0)x2xYdqQ#Pxb5?>~Csh7i^>%8rP8R3)XbH`^1zCJxP0y(UR)@M}( zN>)t&j3Cn$0u&c&nek6F*JS{OBi4+6RDAgHFU>xz2HLdv*gg;(I(&=?z_8beJs=zd zusk`xN}Z4VcE}cYX4_*X#y2Df(>UCd$a zx^fVGalVWLB+krb`%~<3Oia0%Vi?Y;$)dH1*t*26*+g&3*z6UPZ}N{vEodI^NPV4= zdaU*yqg$V`%kuGqbeEFFn}bfLBHjkd8zw^=rj5_c_YpAMb7+RHpVnVIdecd;E>GT*aIPLNK)_OO?^FqxSx&L3cCOXiu& z)IaBA)ScpG{>r0Z^D27q1Uy9MShb+BOPk6Ec==a)`I+}*W`xg@+;b$i+(4EBCC|&f zFqK;_*}ETLD44_JGV{pYvawIiBgcH#i~#`UnU~pQE_KVcS%bwBO#_B++`oC`>XT}q zl=3Tx0Fq*h1SA<>QXt*smB>n!sLlxYtc=H>C38TQ_cE6CXj7!0*$PwhW;-f^%K<$j zGd!rd>?myN_-@`5H18gxWpZ(BxZN_n(Ey*jeO0k001I;@yh}Z+HLofS zmnnnJ0gpi^uAxby*INJG-_Xm0dN^+eHG#|BUY`mOfr(e+5A>>pXd)3$3d2WV+$### zs+lHL#P2BzancR}UDP|WlGlN9<9%-8&yvUU*G2cXw`#`X5Q*;XZpHTFxd}vP=5mPB z%_pM`dCvKPYr%OARL?vCHt52m9{3w@E|i-Ah}tGTnfMd!%w?1hGNBAHGIkCuMSo

+uy+pAR^fc9k794_EeswTcB^WJUSO*l>sBe?l&9;CEXm!W-(n6a2Na%=Rs_6d z?fNSWp++XU(cF9_uN35CE?G7AqhCYLze7U7_@MK@>CAdBv6I#Gj6gZJj9Y8sIi;a^ z*EK9M2MO$m&dBW&bb4F0Ghqs+G`C_>PHko8Ue3i&uHPw|$D&7MX|d87nhz9ju<;+} zV?M@^uP*I;nf(VbLvmeby>H)GHD`(r$0ng*Wl=u=yNOvhq{2CBDX?>Z9%rSE2Bm@c z9sd0PBoAI}%AA)aQ-#wt5Gwi3sy#<=U$Q1(cWocpCJSQ&)fAEe*?odJrLlu@-Jt*= zZ6^K*)SPF)K>iRiWL)&8ShYubwOk?^1jj zNMuv3;8ozb{m}WKT}EOv)%p3#57YiLZ2Xt@J4pLiq}o6BF!{Hz3L*L5V=k6BEtUT> zS{xGZ1FsBa@mdy-;{#=d1M17#uSlJHx&(EJXKjU5!^(ilnOQ5;m1b245=p=W>7-dx zJNrvEtZd|;vALU=`~zdKFBWL`eG=W9e{Nn2ev2SW9Uw3nMw9l7{dNRGX8DjVqCs>sT2jPVtp#fAi{m zUu2?tqt$D*H8wBUTLPW0UTe+06Xs#HaImbGP<79@S~el~gS~nqi&FZjxh%ih ziv7-KOkaEhD!1y$W*}e{6*fnOg1}wwRUb-3?dYOzoIqJgyxDPYw6@}xoER8q#fCHg zOgyZU&>FH+AhtO?{!qM`t>cOnJ3&fR@h8du;d2g|-{WPOUnVY0=8rNf$y6m#Vw6Pf zM`S>M4TM0Y;_Y%vURO%v%`#So)2E04gxFl^vsv@^54~ErPQHozCc2fuudJIh9F}0M zTIN(8LUspif^M_7iRPpK1FhJlP%+;1ig+incX`T%wYrDwg%Xe;+Ih~GVzqIH-W*qq zh!vUPBgM<*ZYGuDKq-GA-x^Ope>6RrcHeF+y z{4j~XH0i{5(^ul~aF6~J_rqUgJ}p)ehT^zo5?x?G#UOI;+^)h}69dO2Pgo}RdXene zk)yoiDkTduOUwe|_`kM*m=^vysT5;ssME6dmk zMl-vZCHuP)DrLd3%CfQ5XI7ljS|m7JH$+(6;aG}=RM&; zt5;SfhEV^aLe3o#>WCVSs8v^XhoUYafoSkBwq$*DTj8So_}DCJfqAVXgbiT8-sFHQ z7nSPwnjV57W{zPkzbvZ_+AF7|f6(QYCBVu{b^PWYI%dtBRyECO=&&?YCxcs|HieYv{Fuw}JBm z#2AT9WI7OAi^9ix#)J-Y>d-FtH-93!V?AbrM2EGh)_c)7Ah^&(9I>~O+0q}ViFw7t z6hQ}Ym~|C6$HXJ zh8tNgS8j~SG_H9SFg(VW=2h^Q1jzaGAI#3o46Ei(!ZvF9V1LRCa1OXP%=QzKQsW!> zOUd6KhSdBuhBMVsVDi7-Cco&%nY5>wOMpP8ye4BdTs&W9gf(9XKTGQqVLn>FH|#-R z0vfB%iM<0jLHpal+n+KA%ChF(0GMUCw48qzs^Gks&(CnVacqx!T!W$OU&up-ZmA5C zx^In1ZI2sEx5ftaZjoc?dMOxO1U4-+=%c^W*)Y;GZN@2cmOSmY$nmhTTMVS26K&WNMwCVlYEsF7) z4^(ff_Xo#SO*y56)8_e{woECNMB4erc&+(!s+dfWPVkETSF+e~ZCcxB2JxEPykdzR z7&@ZPH%K<=oBC0_E3(hwapFy< z`t~8~>09xCkU#J|T8B$r-?wW2D$R=399@xXhrSP$?2fz(u|88|pjnyfmf2gE4K=72 zb7V0yH8iI1_&C5!h%ZVoo77Ao25vSuo(1AWC)Lbt!*IW2UYX=gj~tRUA@_}Wl_4PM zH4TAC;xiuFhFIA!NwOkOAxh4~>u?4AD4V7oSvJbRPlu!nb=wW2UVzmlqA5ox9tHOZ zm(BstS_bi&&-1d;ZHj)X^Hi&5uUa}3rEeeN$vd#fE@ zix2E2pFZIeWz<_sQX@%kZzVzd$VsA?x+};5R+Q3vmz5@Ac5m65r1Wj%QEm2(@G<5~ zVyQ<$V;x0TuzA3v`3@Nt3y@Akp&CJMLB5SVK1<`;t`&Qcj~?NKQxfat-56UkPpB3j zZD~e)tkRUzb+}#Noy5~#A;W59N-;>}xx@p~PIBztP^DvcyHC_y{QLWuizUFG-sa`1 zIsC!?&!#}vkF~(PQXrQC0`EvUR6N9GH&-Zf;Gu;3c_(iK7q36W3l@buwy7){xy)qr z)@>j_GMz^;gX!4yAU!dUKa%ZPzRO^;RjXw%=>)|R|AzSl2Z__*eSIhr8!Wbo${A-F zSrh-{5l#^$4HI$o=??dim%R}Xi)=s1jGsP3$*`;p1uq5NX=F@%Kn?@jB47bGW%p=r z6ZZnNa(Lh+;qxkW(%wOC1>|20lpYG>qUI=A=PMphaBDYVElF4?;l8b(y}eq9G5a$!`W=%a1JgkK3sv^9R_t{dmE?83Fa(p5o6*oWLzBw*)O`Ka zbSqZ#rF*IZG?rE2T)DRbzdGX`i=PUB4AdjdMum@nM7%X}=0(0ak@@9^@b9utz&xi} zGqIPaQ-H0h711@_+<#IaH~?j2MP&}pJVx5uZRSq2$mQU3Bna#lYN1yoUb$ycH3_4O z0P}W+R;fG7tsp&d9j__6mfoOr-J(n+{?vkZA+229=ugE&73fqf6z-@i8*Ue>2|7>T z3MjI+QCf*ZaioZVo;oS>D4C@xo4y1ZGwhgTH4{MbdW5`0?P%Iut!5xi`Jg!wc)#GI zmC8=l?*P=10OgmYK4wY#TNlbS0 zNPNU_iAOsPeO$1N-r8H-@$&0LxLb3VdkT(cWZe*&n_!i(CdjU&KJ16shS+Li@IMmxdOng#jqYBnJ@AphhI4!{{V z^+Kt0x0Ewt|2q-;J1K0$er!_g!*L_>SCYnYit$LH*YaoXB(G&IJBDYZg6qkYSjLO^ z4N{C#bgd#|C5+?lUk5Qb1yJ!3cmaH7xI31pc=QzU__-v3_~yX=*4a1Zx3q4N*Vcvo zMLzjHvur;)FsZ8>1;`s8IC)LWOoqF_#;4lqEHO) zc%Ew*@L5yh8tPqs4?ORVlnRqfa+4VgpQ3u$^piIM{&wcs#JGz84}I_EOXXtJY?WC? zJg?3SjuTA17fHR3;v;bPPSbt_44{Kd^3{_3qyYN9Nj}XapKOw+Nb(bsyxb&bo8;E@ z+Ra}}@?uH;tx5jG4Dwq|@};1C`M)Ij9+SM$hfw9!5Ia z$;j7MJsV|{((zRM3a$GUx4M6wFDjJbSVP&w@u9=*F89=Iqn)opJ14GD(iZGAM0)}r zf@tTx0nwI!ti)M~x`D}FeoOIp8dzTbXTiYuh!W>dCizj5{33W-{yRw?Xp&VWteroI{n$YI zmGEJbUw>z6e+tsm^*&Pj%Y=w0N5>TAsq-)cOynPlKTv7felMrI6T7pISSqT3vj?~i zR?q%ZpH||{jiO9~@Je$1Tmu1#n&a{Zz2_t&Jlq-5NoS5Mg&$qKws^gk6;(c;;@oOw zPOkLVbo3$^hFuE$&+%2Uoxto8Fs{0$vSp!5^Ne93evbnFVxH-{BK`YJh z_J?~rE(_c2xFp71kI@m$CJsOi`HzYJ+*u;FOojc47=3KOA_V^%LN@qTyuP7U(&S&L zp`36q+1>}%0+bcGLVyX^B&Gw1&o^oE zDV6km7xc>dyq7L3Ed7DEDemKYmmA_e!NL}Ke2T%B$In%TIRIrQ<6on0?|6}s&fC}I zUo5lS#5Esn^1Wd4E%fuX!HdtwZSj-N&TS>dswt)(pA9(q+BCJuNX+G?sk6zF(mw#6 zcvAtNV{)Bia^;ZA9q}{ol+jfF^!*mrk}u@WrhwfXge{_<&tPWN6{5hw_BBuSJ5n{m%Kpx!Na0;?x^C;MG0L)k6OlRSYW7D^jD07%=zZVkg z0^4HJ$=W4%xN~#23a3`M&I=y5VrL5H#wQe=uUe8bAzRnUbcpqPQ%bn|eE36#lJhYt zv!0hNc%e8xA>6;rtBd-&ExXuG^br zLv~@H^&ypml8xT_j;wX*W>oEac!_Rjc3+E(*MML z5W`f|5dqd0bka@G8q>2|mQ|vwX80P3?MLuss-D57o(0KzDyXOFIgh^uOCi;YK9+JL z=XjfD#b+c7#vw42`#dXr8TLA%A2C>Tg`n)hfLw0bS3YOxp?CQQ#x}VrP<|6wju3uL0#XBn@@2FP+WYRie zvELGlpgw)BuQ`EAzoDim)kOCE1FNr&_o9VxW9DWIaPUUEqG;Rz8cb ziD)QTK)_)XL*H0SZY}B>;kpz6uHwUmR!ug&)~5a;wM^pN9K1KnbcnW|As&H2$bI)G zo+gy>Aos6^x>feAMHkASD+Df40t%Oi43pph@9^SiX}c64#_1tBt?qBQfWXsXyTr4N zIv?p#kvTYeqfsV@B^%9jlIvf{)P~9x!mRPWEBG-ap0NTFOIVPOM?spTx&G4b1nqs| zJE};HXQE5W{*tVe5um~F%^g~!+e4~bpw*Q!UmDZ~wYjqj1g#teO|KGvg7iK;lNhdf zjGlASA%A@}M6bjWlVfeVRyfaS52XT@cHN7lfl2GUF3Ma*vEKTwtoyQhb$mJiC95NO zLHnCTgoaiB2t8&jO7G07yA?f;(q&GMQ8brch|rJSPQ&Gu#T26HoH0Omp`@!!&e_P}f}scz5BHJ*|m>NS)>xOCA}1 zYTAPn{Zgi1Sd{AMf4M-vprAVQMb*Kv6c^awpwUI82F?jq&A;U{fJ|`f<^aeO`pR@K z6u&piy_Zi?Sb0#nG4eCjI-{+cshX4HLnccm-Tm*gCM*3WG1na?m0r%<%ZLT?KY;G3 zwH426TAh;r?P>DQR8r($@+bCz7XvCS4pBWvi^q6i>A?jrA0ZVFNvrr5sftfbt5{AU zKTx5-DMq8Lvtqr05{+`Q@y`(SDEcHc>6Mg1=`6j{?TT<`WV1jijVB%h$}|-ayG-)Y z%TgHuzWpjGpk++%Fo5CNM}%kLwfio@g|GNXXW0r)X>5HP>T`6&PskB^7*^opnh?&k z*m!Dp-~Ka5R}WF5-(J%inq`+eV78%HqPsAd)GS|P{?{()U!UQtI#1kx-|Xq5kW+gH zhz~jQCyUx}s_&2=`=NaKXxDb*hf`}(_FFQ)mt+1sEjC|^o%4|7583nQ^ARf|C^gpR zikF}B1W9sg^UaIaYw)gZ^w0!7FYo|(q$=R)uNBvp@^b(@9Y(zbo51P&8cMs*fI6)s zS+{7nReX*OQ7IsbglmPQ3Z0XspTBz0d4WlIC3_NHZP$Z$BoN8`wsrnqvXl&&Fs+a~ z5M>vU{YuLwZYV5SF|Awuw(R2dES$8qaD!F79Ex586f%O*dRu%-eR9c~9_YodVgPD zj;g?b>_?j(mDJheK6ewl?v4B@yaS6oaP2UMCd|8D4%v@%MOkzbN4(pCwFU*Y%G?*$ zwCC{s9Y$ff3nM~N(BR%pS$l=oS>oXj#Lo$Seh)vJulrH_nEkDuDB#xOyk+L(J;ZNh zJ(m%fhnFHcq+6!Sadb+d-i2;vF224g?~VB#9#uVy<3Udr{&A*v7f*pQN$dP|!phE& z-fM>R&vZuR6NQY#S>|=Ro5wT3_l4!;C+ze$-0Rt z*FH@M7;|9i9hfSh`($yR>BQKZyhTccWSnMV=uBBeWs3{Xl0E#E^<1#1ef`#4;`e## za0D~2GNb;QmblMBlq7$!n498f*#RJnswcWPOjIs88RLP2!qf#O^qx|xydqKjqTiQ_ z?$t{?On+p4FEpfI(a*mNdsKu5SDf04aMsN&fE`j(0SI9m+msZ_us=W23?RH zPrc*84y`RM){?h4o%mAhq4$V7v7T8Gt?N+lX4~BOvODzakj=C+)UuD{dP1bcn(S@G zE*8DS45Bx7?puV#rZdX|6M_lT&(Pyyt59N)0(dyG{;K?y;Jc`1?2Tv2xOcB9=w(Xbr}H z+FF^-QE(NLn11UrC3A~4tUa&JOzB^6v5^MZg;Z2&zi&OWGML#IV7|g^gv+n2ny;yn zs}aK&A#C|*E-ZE~WIq*znscJ8=LTk$&KqbB{VrJ(*+ssbQ0AWKuFT5Jx3DxLug7-I zJZ@;b)7eTd>$$;LG%GUa@l*0jWOsm*5(LWJV9Bdi>^6ugHeIwSGniS&<&J<;M>k6e zUg(Offraa2GEbhafs#urtp`4W-Ml_vCq?&m2-w=8S+~hCc>SUAuY|Ut9(r$17@}pu z2AO)JqTX&p2*b=sl3aRD*NkK6^n1@|RQ9JChM9JF`CwNQRd zW`MgMW_Ao10Gnpheyzd#5`*{F6yE=c=~=QdTp()7SDSjejj^N9Zk5hbRS#sqa88jS z@dR9u)K84JZO5<1t34EVNseG=T-z4Q$?@xu_KlohZS0$$iYa|K`{ue95s^50CUK^2Wm{oCB`r(T~{+G7uWm*?C#a>G(ff8A;y!H2{jg zadqSv#;(w^3!(ds{AVBt*`e;O`A*ar+)t?y-Vp5usimkK1k8!HE6j6LY;zR{dx7Rh z#C2dPMV%gC?+m-DEq~wL|NjcVoaz8`J)+hdMx3?}fYJHViNCT;j%hbpzs3X-G4#xv zfGeY}G27+*%!A;0ew+?d#~N$oB#cqvHwMKT5dv>~`aH=Glt0XPcc-c7!0~Pv>yFg; z-y84fq%btMjh|C{j|@iW=~5Z^FbwbnIm7ytaOxuGSWL^)d)KWpUPZq#XcgiJK2yp# z(cU^7J^z0=dl&d9i>vWJOA=Th@B{^miZyDiL~I2G%c`ka*~N`)07VolT3aa9`f9yw z02PwJW`XBjH&Cy=s=Z2UTie=#qC&zgAc{aLf;UjS>_g z73qO2w&wSgpX2c5JTGmEqKx3HXqdqd(d%YG$;Aqx#J!w35CsiO4UgYd6o`-X5gxETJEW(oNiE@g5#_3$NWwG-1>tu6M}_U~&Wyf8(XQrrp4bU~bedJalqwvB zi(HPD8W6TOPFaxAXZ>CMba@x_8M;Q21Q~tSKc&wOsXh~x74)nyqYU_7=lm_rW&tS> z7NbW~Kn4o)0-i0Q%LG9U_qjTy0x5rClUitNm!^e1lK#ifxmJI+UP#lA43uK!N4r8vu)|ujt zWzmtIS%zemi?S?nr&i_z^@n*ADg%Dm&6wYZ7UJ=T7_=|GkiW_u*6d1w3JY*6-YT@j zV~vpQgqy5IjqU}HIQHYwUooH3W{8?8GiGP<6JGHpt9{K14^3icI4jkuf$|4auP;+f zJ@ra9rYioXdsG_%hw872%w8}ql$g6$nO96&mX-LD5{0t=q8hAuZYknxvi>yn66J?z zJNd=+?A&9w_FE#yDCOGI=HvpN*-?2x)G~|u7Y5RDa_x1w66jQ-Q*suVIqU1#ftnFG zA!Gs1zVdxnup&6V!{E7Q#`YD50jqVT%hde>p|ZUp&*I_Inr*xhqRle)oLR4&6rcYW zh7pMCa09-knO#0#F%B?P1Y+$chW+4W!DzoyL2P;fyZbL@K{sU_LdU2jv!MI<2G?Jc zwyhDU&xx#&{OLbDa8;;)MFc(s5|>pE3dLi41w!z7g@{jy1D8CY+l-3MK7SuisK8J3 zYkR4;IX}Y=D_js5$8~3mMc$^au9mEcw}_)HG3-|AvZQ&Dk0k*dV#ztwHh5x;1}b)U z{{{+Xb$AH!<+KLhr(QX$ql^A()slSq9-Gbg_(jo<3$3|N^Of{N`BxW5S9|S?;&lUb z?)%tXl*AG0v?mVx>ap${`*Yt2#k!(PX1kSRcy2w>aA5wR_;;QcV~? zC6sE^z}@-ucEMPp*G*#iC5FvhqC?y)A84;7WirgCu9fhTtD(euydnEuuk&44P9d3g zMGoA3bKy2s&d;gRKetMDv#m>Wezk<+_tNEPy1d$}8CkQ79WO9s=ug*O*|aeoV$h*U z)?jtQ@gQmF*DD_`tr%ZlJSL7CmYd%u&_yxD+M_Uey#^b-Br}`5TD~_&<-7b70#V9x z&cb3`AW>-tiKlN}1}?8KxE%7L;_@GSEP2UG6E|EV)LbX8j}vDzpv9k%2J1drHYK|3 z&ph`aI3m|_OYq-;C$FaOff0QQ+$$rYZ#ycFDV-ot)L0_+&b~v$UsRqb)7Dc$9ZLFF z1J61$&r_nc4|J`5Cb~rM@2P&W?zIYfYJEIqFSsjL9N?`;m!uR!V5D}w zC=f3l9*lit#YEVvE6QAhm6`9Q(hRo<>xAyXCMZh&Nz{W$RB399gldkK$bfT!x(TS3 z%D5CV7X-Ns#$FT3ztV6FdvH-DX9nS#VR#XhUFXnRw5d4c*(;1S7=a}egT_l<(vP@A z`*+5ctO^w@6{Z!^c>Nm)IEnnY5URBnhx!}ScTMyIGN2?2LoFY28X(mDx>duquV_`V z*BL5$EzxUJqcY}4i62r=~-BTRWE91=1da*r^jaR0Pxa>habc2uT4Iaf4W z&Uj4y3v=q*Q58Qq^|Cu^{Y%cT_4=x&O`8(B@IsTHb zq&`z>jUdn2p2nfsR~?#)87nqVPF8nW>0r@pfp6Iy2WU^j_c2g*6vdl)XgX@ z>WqvqX{(dFTh;f4FD@1R@~+B~VL{X;T59*bg47wLtN0f&Ob+qvo#O2(y1cV`u-k;m zzf_%UeJRt(6=cUm#^;IQ@hnX^zvRVeW5wm)nf92Z^*#`4`6TorAz&8}Q&|y;k#}XU z6_dPEf9lp1?bGj1jEti;*E6*m`JepZXowIOTyG)rfuE@XRzFe*7fxiiI9%G>T3jdd zKr9Xf;%g#{kI-qjba3=gS8L8XolP*zjPT_A-&NVVYMI5yZFtX)qDT=s%=Yek=?Twas9*0FVE+Z4!a+>Rci zBW9vkA0v6pYmv!f$qr04FXt#)f9bwBOee~!A15=w-Z)9Ou=nQ#1h2_1dN`biR(&ZC zWX#s$y}tF+ZY<&BZ2xPC)jPQyKEim7O|byO+WOrqa^R2&TJ zhhYjmyniry9-PTh?j*ez6wN7Uh^le@2qS0Ozq*X>mXjO9~9!}Oj_#M5uSN? zW-VTzTSL~O-F|D)yYPISY(Gu$y;r#3`cGxYT36lb_6}N$KJs5@Eq;|NSui@! zG)UWy{Whf0AN{~e{(<8xg4vQO_CjfTiv2Tbk;JRNmX;Vv1yFNsRnD&o;7zULj6R~% zY=4ccDZRlb^5*qS>EH64nEc+ju@MVk`Kk>b*lAr zV~>Xm)#!Zq-jO?T2ipF8wCO43g6_X5m3?vYrG_=b1MU^$?6LJDXzF%p7 z(t5h+$;#+wo@h)KVxDmRv(f?OHGYu^_O`HnL22?dCII4&yg8&%)_plXc`GKzm_@au zoLShcbvzOwDT{{q^SW$%Ugf48GviQ@LtN9s093f&`zJA5`d~&ukB>F7gv;FDhL7MypS`N{TI4s`wdIWvT>uSyol z{lFm;P$?787W#Q*+ftn_@j;WQCXv055rdZh!aUX~Jmcj~M16<8&P_M&Po%_0>Ic>>5XR9e& zl;6Y0lEZRx<2yl)N1O^ZVyqkZj67lEDYf6aF5s^I`{+Dy$JULd$9f=7Oz(&z_CHfi zWcu!%lP?0}?}52`MHez8cM2z3!$VDWB1b zA-it!+kX{Lq|UKRlbQYS9QzgEGpnWxcqcxh1Oe=~zl7bYyLUdZ1)0Dzq*_dhCD|wE zpm|8Dgo%Mce=rWPJptbzWcCB`>IngBq<&A1xEbIGJ>WHKaYB}eQ#c&yw;pSr50sFqe0ejNW>Id9} z0OU!YPWxT$5yam~WEG)q(U)|k7&%uigaSb{7&<2^)k0)=7w3jnBeOcNtkeU~BD@2f zX%k~&BITr8mVHjPiYM4(x#Zvx@%Gtci&}@_{}jEFJjJd3Eo!HLkm@95-W9M1x}$3} z5XGOD^%x5}>6(8u&>WQmck(aU6P+v_@8Cz=tYG5fZYASseIH&&2S$1{&#t3TUI@j< z-FD0)Ns=&^G8C575=*Q{b6sDam=~f?ANT3J<33e2m)insqUNZW81j#GpmdceT=fAl zU{UEpdy(ynSf1+hSh4vi;Ul@5EhQnI$Eju3^CmtcM^@HJ%UH9J&t&N8w&cJ`Y0_~T z)nut)c&P*5lmDc0YSQy6(*B223h-WfpWofE%8TDe=8J8~J2{ai07(2`YZT3DEq-3+ z*52E;MIyWBd`92o{=9@3iM9jfLM?uKwNRk7_$8h8gHmz3HRpL#@p7ry=2lz@(Q52m zMqj7VC3vx7;%fz6Q`xpM=;Emm!12+wi~u;H1uViAZzxuDMJt}HNcah z6M5_qRY&cB=qm|m{wplz;{O15K00T@7v?v2s1rXi0rZMLCt0NvRz2IfPP+r|DrIFb z%@zI4T#qf*eDbJ;J^#?D@H`_Q<=^FF$vvVL&bvZZSG_iv;t&6*#n=9Y;^|WCr8uQ8 zPArc`z%+sQO|C!+#@?wunOIqPA`l-}5|nF5G&c*A-2YucTlD}&Dx^S^{8#Bq<+V`6 zFR6@l<4i&I8?KQjVvPy;s&Qw<{>_k~OJv=@)3Wa0^QW1#XF*rVAXlT-?;bH5!B>x?2aaAPR)UD}IJ~!ISgLr&6 zbH}2na7^NV?#!#4bri+e)tcJ`u2XXl`N}R~cx(EjkxYF+`mVqrRYWHc_aoniVKe7A)I3sMXn+Y_|{fK#~UKG zS#*3Ylj4C`oGl2R6b&W%UBV+KX_~Pq8#&zU+(5$!i-}0_N)i@%Dl-1^Snfb9s;J|M01r4>j&+U}_t9@1MKK?EB{q1&owMR#@y6*kJxJ2u@K z@+@z~^5p*BXydIRAE}COk-oTBWoJrpbJ9&JpV(YD2A#eQ_|ceZ@Osx&ZmAh|#X(YdoQX~1jz~p?BpRPe;#bomWP?#v0S!OTK zT+x~6bsnM>G~fRl`6%x$a(Eo`mVC;ma@cE%ziW!0=VM7&it8xOlD~SJL;sMwB_7v} z1#*$d$xkG%2wXjn7Yr4I6Tg$iu{n1YP7M1t=d>Y!lK*htFH!Deq~XLjujLoA=m9)S zU8mS;fm!tu>C&u>Czco(e7Qx=2u>OpvL6{slVSU%3HtH;t$biVhU6nr_`|SNd-gW@ zW%m4NNWKaj`qhplg_1GDRbS?4fB*&XU$M+qRK{iA*p~boFsiwuPh}ciYxfi(l0>h+ zA!k5r$R_pTlakH| z8F-?+Xon)}Tz-jZ=^{b!f%hUC7yrlT4WeXCnSAk0(Qrft@q?5ELaAxis?(7STfhe* z^TGvcJbg9VC!-JaqU@s*9Eg8X7YjMggMkDwrzz!95NIeRb_QR~AmhB;KdkSqlD0fmek|~*wSEb2fZf(NHu76AT8!qjue+TH_(qtEot2$$(4~?^D z)OAo_E$A)c~)q}PKEe%`eGK}m~h(4b9(SSW&a_sP6n>z z?=NvxL9uY241d;itg5HLK!;FpbH#+byr=V=efn-imJpFCqYsXdE}(I-7Me$dM0%RV z3OY=9F&?~)Gz%Z(x9x){Vh5BcjB*Q3&J@&_1A2yA#u!s(3w9IS;z_7W z#%N;~d&K3=OX$Lk|0B)nZ~spFJKeMsFzuX~Y6rMU8g@Ug0yo&mb0X5r0+T@!uz-mE>!(@Ts8%`F)A|`!0U_A!OOuTSy>kB{J>SW0pW{o4s5r5`(nlaxKTg zE|KpD@z*h^tkp2TaLUz}KK<3l*)0s9h06HLrJ23-9&9+J*hW;$GWnDI7rU0UUTN2B zRg&v~zRCpL1tbii61Uty6xUx~<1v*=c+AiDP(ku@p!xYXw{$Q+lm0CR2{I|Nks6A! z6Whw2Un(!6KMWCuqLF_DtxMDU)&YVYbz2_6+x&7HE~H_8NxLe}oNv&m@e8Kb(N`lb z&~1ky6Q;2Ae{~8wF*pRt;$>jx9BRp0RQ{Hqg2H2b2Pw?D&I9fglGoG)Aw|w#`I-FU zB3bk4{jYZWi+_+wnDyCkrZr^m$kHfahGz&Nd)w!sXZahlA5}4y%zvE`CCuJ|z0EA= z5M~vOQ2vGZp0NcC?r&8D)t9<9#4PvcScChA-w_nmmrgK0?|TyM%ulsD5`~YtmBr#n z{%F0f83D(tA4F$Eb|qKxC}^SC)=C*xD$YN7hg7t;aj@~Hd~02o+&Ki> zA?)FRvs#IIWmrT7$VZ~^dnVv_i>Y~5tJX}KU*p8gvNcm2 zHNX5se;F55wAi#FE-K3ISA0Z=%ddE}Ld#+Y&0t?ytMBQMZ%UL{#`AJy$2z zo-6aD(kKfb8T+!tT3kClOB7&Bi5%FGynUK3MT65Z$S=ORn4Bvsm&j=kOgLr$v~Np} zyl{Uf8$%&`Yowr(y`Pk#GP@uBjkW8KiHH-kShjEas(Dl09n(gWyR1lF^DXY*l{Kxk z7qq&Md@LEpfRcBd4;5r4l!-4x zf2C+SQ8>!{GV*AySH?mpo_r(Q-=v#hY_aM!eH3saidLzsVY7(37x0?d?R)6&4ZvG}GKTzgWdJYi< zYeoM`pPJTH@?Tz+2n;;vw|DznJ_(i#;VMdYWSXdtm+HRgAFesA%D8dAFurBCV#rhpF;V=rSq%(`SPcW z{PFO|LnfBB{^<5@GJu%e+MC~%==XvvvxnIuHO!F(REtdHzFO|qwBL(dw6C zB^di`O{tgc;!zw`O{VY6w03h`I9eyy2u|7e>|O8(_POJtkb_V4+3}b<{jdQha8&m)8tj@Cd;y3u@+ab+uvu(@m^`2 zpWQ&~f3kn6!!G+l>ued$fswL5bTD#pAl~p71Y$T*IORb`8ejT?$bD*%jPDxJt^LYb z7o$`+&oGX)72L$>swo2j#IZd8sxJ~}LcA3n#53NgANQmx-M z_Fz=Bs7X_k7|Y?GN91>4UWuHQHU@zl=sXH6`fKXBWv_F?pK!uw{_g(?`Sgrd?P4*P zKE0Wh$X``|Vj3n2zXsiwIe~L7SmobPG0GxQ7IV@g;kv>rl8ul$U zeapr4T{06aCfA>BR*@NgPQ{;v&FKo_lL|c550YF_fX$2C!-En}_5J>(B0W zB{P1wfW1GUM=g>+fQO^IJk^{h&l&m6?#TV|@gZWC!F*iWo>we829lR5gMmsr7)r@} z*Z$(X=X8u}|I%L6V=ZSry3!wgt&5wIu0pNX2@{!)pBp@+{PC6cegQe#%f z6+P$;*FteT6pl|1Sq-uX!P!0@KGgXn0^#M-AB)zu7XPbMk}UdtZ%n)m6Een{gUlgdvCiIu*sV zA|$h*5k=W?c}5s*Gcw4V z+>V1;BJ5h9mFb*zk=^b{EUIi~mvlOk`jDXx)Xv8j^v7T z7|HBL&>o(7sf(2VTS9ROU?^)zv|>T>og0{gWoh|5e%um~l*k>kxEAGRL~GJdawIKG zFS{?~iNaKV%q;o-p8;ZSk|6=<6(c`RpnpHP@A&$67jh8&I|uiL7~t9Z_XS>QU6*RF z(r%B83&fu^`n=cU(q5vx+fU`AaQ^~WkCVUFh~_LM&()~*hHFsrFVKk}<;}^1&2)CE z>1-gO!xhAZJZbcOuaNZjtjKd&(PgFBSTML@PWIN;0Ro>ab;PHsf}o;)SM~W($J?~a8$Hymc5jvM$bIhZzRIfvK%O=?CqR~%U7vDZ~w($21(s*%mxY6x~|j{ zT~W;Zb#dpf`<^hVmMla0O!3^l;YyE0KF zgiw$MR4y70bYC8}f`p1RI(M`5ORZ~#s*j7mp4R+k#;-V(3&D?%L+1)@D-UK9@hF-c zVm>e*L1FI;z>^h1Xv19sgs_CLDhLuv^(hAY$YT79SGy)Wr@Kq<}JgU{>~fVM?@f4@cNst3QM6p*N~pzu%Mh-CQFWBd$8g?`R+bJx!Z~~FS9&QW_hrnez;5r z0bhaAuoIwlfBcDT`dP$+nfV;DR;5(H?pvC?37r~rE+W0%iN{VkZDZ?vV-%fKS~##&I<^od4M-%Fu9!WuCm_@+U+5` zpfo53!Zaq`-YPpK#jRgAd?b&bMvzAvr052Ig^O=^b-p6#7!BV>ap9Ba`j zVu#eVV}v}-4wp5j2S})E#|Zf;KkGQp6szEi7$4n&c7A1a1-h}_ip6;t78w>0`S02u z9A;(zgIr>v_)zkMb^1H6pCEV^kuZ>1yG;c|Ks12Anb{E7M&3pZ%m`Q{WM5udY1iB> zBlG&Bb6ksrTTjJYB-7UX@er3Np%PL*g$6xt%#k@VvGPtysEn+sw_u0d6$;v;u|skM zD0t0tE@F7fC!blfZ{WL5{1R^UZras_8IS{C|6nEHkG7MHtsb!fbhpWLgcH5G&Fd|x z)&>gT%n1Qe1@XM-;jUu%eQeE50)_~jAMw^p7&LjR`nfsoc{C9Ut%IHXmC5XM+c*<6=0#cP3NwROAd7o7huC`DnG zsyv84o>CYk7#!p0iflcU(L%|a*!9k+8xq$6@<1U{e~L)ovg#!xtv|P=p0uO_HPsjg zdPT1dOm5w8T11QSOto0h_f`$L84F5VPj>Bx%4jR5!)36*%)(0FifMbOVkMR`+hl@s zMeN&%*n^=#tR@m8RL1tHOpHUPxCBpTKrER}fwFeLeR8F}!uhv|Lowr9&q>>-GRIz8 z&9aXp$LcfmcEQDGZn`|`DG%XXQhRbmhi?a?#(o!)@~2|g0*`iUyQXo3Tt-+)~?&%4hY3qyIaND{Qxb# zAZWkE1cc)kloAgIxFVHUE)FeKs^MTh5=5kt3J;lJ&X#TWH;;5pue(B_L32c!sMsh| zi4wN|m~D5ZJ)Gnxnz8`Y%62=GCQC*Z0=@06(G^}Hey5Q6q+BF4|pdTX+HC<`TJSiD)S#@VDdr;=|1Eg z^otd_@EG#Gpx$K^PL8X&mb@q_)`I*Lw+CZ|WzE7UA0}6j{{|cdjgvb% zzk8!vscd3tpQ)7HNT$P#|-{LI%d8VBoP&ZlfyW$MxWZZ>G(}ZU3!h2EnS@PYxu8Gi#Rp^r-ydm$6! zZ;-X+Wr_bLeOn-PmAW5sxGZ8;u(EO(?$jPg%L`p6za{JB zodl0%{2Rx#e=hAGU(0>&>dhQ2*FLjEwOqfn{yDy$i!p2qJf)6$9w^Z6KM#r&; zkV78Fz!$4!39&Y4A5=M=yak|WS71=tY&HB$NIr2Jd25F|gCR|k??cu){rRe{9Oq&h zwHhAaZ_qy3-#h|o0JR~4ohe`K?i9My^`@d3(=GWK8AQaY6QMAWmPL^zE;vqW{dtDG zOYMK&!dV|#{`uC_cC{Xw!8e(rfx^i8~M7-YZDk{b&^A5l_0cZ129x5uuR974M3i6SG^; zb~P>QvY+2p{b1=Qmma^InW0C)(ct7^j`F15SIuEa@e3R~%n4KDZLUz9J3keUaU};} zi{KKmD6%jm%vf6>?}a@F2zz#G?RTs^^!u7;wx+5(_fi`}%Q=-XshlyIR-A4|)n@zL zej^j_J8I2+TfW#w9Q>W;trJTp%-G-RYnZXJFF_~AkxtG(Avf*+#4Q!oR;Y~o$%$LJ z5qtv|PJ}ODWRV?DAk&P--=t;uCY_7OB4I~1`a?JL#EhuDT0b`tHJSW znmuMhOJ^7cduzx$$-kon#WIqGev<;Fqwh6XVH{O->K&^(yD@+=I9lR_NisXkl(Yayc2#p4P#5b?|s?^y2fHtC1O4@mW zc4Yk8jyM*#iDS{&%^AD|2i=Tgaodbt(rkkSn{b9V%lWd!tPIrqLVPpjY0N}d;oxZp zqCnZ($j#w^WQ5&c7^?ZU4rb$+}QW`&O`S?g~j#?p~a*{th0!hVj(vPHme_}keRIxXQcdq63V~= z+<1%x^rj`?eIg;V%Y=k+teA=NU>< zcEnfrvt0jFYCj9dXpVboin^yN{8+iTs90~aGC3U+ja=?y$qpmiTS44Z__4wu;c}Te zHe_BfE)Ct9 z=Of(hBBsD|9Sf>xeX06rh!?gRzK`INROwz8WkYuPqa8hK&yg!C9x0GaKeIra2}lX(mRx_X4a6I!+b@0DlFR9s z4VX3bq)Sq{@=7;gmh&W#eTEnr1~aZC@a#{Tt2TWQpvyJ(v9E}VJkjt#ia!z z8J-m*C#|w8RI)t!Aqm9V`M(9XC~V;TltMF~s`zATDtO&m)HRg29u+7m-%qAZzpVDr zWxJVw8SOx8j;s}|MI(vSSY7N^?7k|L7}>?N%yAb$tH_IAS>Rda_cXc*51`6NbtxhA?m)TmL%hi|TNa56c-~VPx(En%W;qo8fKkvw(}f z?&}#srw3KAr+67D z)M~;(9HE4!jWutX`;J1k${5{|J!U&eBU`ciN3E0 z@aBxqF6^LCJa{Wazt2kpb+gEWq3#TGSk6$T?bN z&W}m%wbzDIM^2l?>S&29OFBKNvqOIq!zwZCjk{AwdG8v|4$00}%HNaOG&{}I{aw25 zKcp@k(0gk8wg%vE_MsInNNmWm|xq+L_bpnL^b7oUF=-FiobZbB5In>JgQ zsGR1i5z70dx;5orbNg(4cmZSi)BkXO#QtCj-dEE|^1Swaq;9C{J4FsR*LMf{d#~bq zm+CX9{yVq&$?56`51Hz8^a~2{VP?Vd>;W@A=S(Pv^FxX9pxXd8pxfVKw}IAIr2LZoH z_1nKp_xug1f8jCp%OB#Y;HzI6{x-Ny@a42iU85hFHTTF79XEh~_~e!!%SZVHoF_|; z!qmwQ`VuQ71CJz~*Z44*{t7V9=`$|KV)s>2dYRJ#P^ncfSH@2rk~%OTwqfePz#o8X zR)^4>RWErMkQ_I$t!Dgy=Da}UR&!p!s((@|%UOczw}jsFBVkv+Z%b}??WlVO?i>Fl z_4A71nj$JXs@Q98i>sqaWDdMj{bKymXeU|Sze)R8*peu|*=t|Q5rVNLt-o^5A$&;n ztl)i(^&dMy8ZA%-K=*5MRR^T63U0Ocag$Bg^I-i(|56&C)&7zUYhzg5UpmLzFhPRcuL5jSP#c@o#1)Wwd@qo)0c znD4E<#cpoaC;TKuhpdU^pJ2z0e3V-$HYg(w8~a0L*K=-!A0=H&a_`=KovHDpbaUi3 zl;J?3>(pfkK^zQomC!^>nrje3@tLHBked%C4rYepuhdDe`e2kkFjpa5A>WU86~ZZ( zQjq9XYXDn3SpoaU1OSUdzsVZ_%$1+W=M<_VqrhiK#)q)0>C!x6tbDH^!)1lFs55zO zFQJtY6)1PIDTudiT(Rpawu>{kF?bQQ{M<~q&-7j-y+2Na$*p_#iBd82a%_Ci1oz;J ztiv=uNCFdOZBp4bllY)&;)8z3(weJoH9qKxB5}L~i7K8!P+~A%O?c3q;&&M+OA8ii zuHQvtgent5xuTFD6RTkW?^VUe-(5)_l`6ZniX@@YBar9a1@U65p$*x?mT2h|QH&ed zRv7Y5^k~=G{^83AjI(Ah0EgU7RR6zh*S^AT5w;Mi+sc2l&oTiam%m{x8sp&*Ma%BG zD~Jf00AE>)EFwbYg*{E8x+-|(!*GJr3U5b`=G%niek5I*=GV$b6wQAF81c6pSZ$FM zfntCB5g|b1IY^Yh3c1-^WvuKpNq8PU(SgYUuZmAtp0P&NV26RuW4xTgx7-KBD8&z{ z7!rI8_Q&JWve^`#O>Kj`MB#NoJf)dUVU0&7-kzh~^jHBm2bJdgt;ec&9g^b^4bQNW zx$zch1PIs_7Pn!@vFTz#d`yAF6?wLXeH-{P*sA|0{rTRmW!v^c+^!_SuA?3v=>ODM zIF9ps%W+iCtGN-I-nC*o;8<}kRgv~oBF~~C1$hVRBcN@wU>EMx{dAU-+x(pyq{ZPn$Vx<@lO;d2ZCA78r+UbCBN>)zB!g%g=VAcHKS3h9GePCd(|m8&bZh07 z#INEpkY8KC>AvXdg0ihTeh&wtrXR`wUIC<@fBg~9x`1zo^-y=zC1|qhB}0%u(N~(a z5^MM&7jqR5tO0FePs@2#4x0Hl?slH#tFadaj`IYLvw_2sZCjV$j{}c^MIb5LYPYbL zCeXx3?!vlAy)UN}$~J27E{A6GqDPC;Z0Un4gl|5_5PwBBS`1tEfHqUR z&{>=bLyGIK{+FQ5nk|=-r?#R0Bxb^x0?#@L(4zepTA$3=CyHOl^>iWE6W}-h6rovr zW7*q&&s*{9*&y<~>d37q=o6R6C3II{y-Hw(&s|t=xiho5e=MxsBi+Rb9BXH`GvM{C zUDf(5?c%zrf?n|_vH{}ZR!+-y*mh|7)Ze|snTP`?#aFrf68pY!$9#olevfseysO+| zn8&waY6-kDqgXdb%zT26srdhr1%q%2zAOHkcafhADE5wS8Zlp1=xwGc0SA$4J|Ww<@9}vN=IWyLfBqME~6B=PlUQk^w_s#>#u2dLD-gDYy*{r zf0UW0%+~a}D_FGEP+QkA>MHLh?Zd>Jd1O7Wfo{VM_h$2hAIcUQdj`J9;)iyY6aR%D z@`1#fy+?S<4a?ZU_Y}dkKIziYWyoUPDF-lQa$wMm(&56#yK`mAAeAZpLDwKu)Q=d( zCt707?L{v`-T}JUH{pwy*cI$_&f(hvBRmyl+u_3nCmLqYG~53fdXix_!ctkRbn=h? z3o9|j0HAv+t@@=~gqvXy?#^G>nO6NQ=w;$W6p2*)UICO&R%?a}_Y+?9;f(IBr{I4% zjy$8jvqUGXLijQWUt+J=j&NplmF(;j(&z8KT6d{Zd}%G>3dxCDEinxSmZM6tyV`xT z_>&v@17_l8yg6;oVPTMzJXF5dpnOidaF!PbCyy@gZaai_%Ih7vkBtt*9(9awO9dj_r4#hOm!VerxW#G-_H&Fj`fPVVs_#pxjdjiSp8$ zjg{Js~Z-hczb(Sk7-jBTzca z_#vMgKqg@bbwn=I^g(SQ1Ja`0-e3gSoJx7~Hr`Z)e(yw)KQT7^j^>4m2GkeNH1C*19&0ZwLch+K^DUntwnXf^3KW`t~+mk?S?fUbNRs3j>_V zx@N%M%6{K!sFKG@U@~8Qi%b(wW%wo9enrhIlH0R-OX7jX#OMmUJ^Eo|VrY-nK86mZ z=oisF715>&pz`|G+wIjm<*bvz2k%=A-=-JZAiOEew-dF~S$*2E?KnqMcwnb?AK%$O z=x5_llHIUv$>&~1===aFBR}@zbah%3@+^P5_)|EwEWGZwUlTrW5mx8cX-))*V)xc> zvh4Moi?J5<9MV|7*0O#4Ai#pG8{2N^P0*GT|9nS462$t-}_V9uMx7>4M^Q_@k_o5 zHr6Kol z{nGDSZO!Qd*9Gj)%T^HXZ*Q^YN-Rm+7P+e_amFR%#a|)}_%rREJ%56NaHtfFuoiP& z-`!o3zk5Mcp~M6DKDDBfM@B^*LGYh6C7FOgSqDH|?g6(L4!*WsnYesNv=gKj$lSLH z4+hHGqMgjfzi7$De`mMaGo8m-#=5`vaKOuDSb28_B`(u`go}A59V05de$VQlrvraT zBG8W*kEb}dXP{(fNS(DqHp#R%yh%q0;nSU?s2G`ll?2PZOuOid_vL9?Uj%yPc{UK& z?TC%)>KD6B&hP_s!?mE0rp|I+g*emmCG82o(LLJWA1LF7!(xA3duL>a_~*y<&btzb zi(QD<8i?yB(i-)+FLco+<^fh%qDt^pXkyG}f{w?$<=F@!*NiUPtS}1^UnDOX{}y>t zq2pUJc!Q3Y8#&hj+JXjcD8f&ivw15G@0E#yOYP-C1nv1{s}0l1JYR=Ya5-%w3n9a4 z7Qh=$V@!Q7Tc!}c!QuKb9Rc54errs-GF#2nS&a6iynSY#fv-2z5~QxgcmSt+q(s<-!)pZ*8rs)Swx-nI|9dRBb-u9 z)-Fa=Ci;aSI)2*kC-34xfSSeHwDTK~=FW%U@NPIX#Ve95MhPLsC4N>Bz5`rjxJlUL zD&>EU=LRu(Mke|W;as81DSlfmo?zL2o-yg-2Fds{q+V@_^B#j$ed0$!r5MJvv0RFj zrgtz-X!;mlxepPS;g#Rgy2~qD`3ixb>6|6R`7A)KRYdC-4f~!htI(0#E&e_3uP>i~!yNJu{S{$1Hv+r@$T9$I39N@t=raO0m6_Um_R7 zD~3s!-0RBoPQ)cvLkTpT;gklsH|)T2LAaHT9~4%z$R~=}uU5Ev2p=<<*CC*UL!M#r z)m_A{gLWeK>KfpGfcd}r+nTZzIPIpdLVqo5K;QFQ#LJF>lz_kr6=6r`% z41NQ0Z4ZecK6I7Mevs4GD4V^aY@pX zO#Ix@s2iPcf7z=opZI;7Dp)$eN1F(Bzu52FZ-4H$M!)UZs+wQgD0^E7*I7st1|CjI zi$3@vvc-(+QRSdx$5pM&W8{)EiOR9gnp3b(0ip{)AUE=fY9D>j?-8luJeVG@;C+J_ zQ(AX(m0NeOHDbY&!v}n;=4G;CIJ*b zpkS|94Qm)>8Wb-5VMzZ;)7vJ=49T9?eKcZbF5+Xobo}Xph9kq+o5`K9*C28;VJbF$ z&QHX~*PIQ^p30vUsr8-YI?L79D`3!zS#%aV`(-W`q~!Rc%vM^CFaC$h@sexsgkCIz zML%_7XV-Ed#Ms$C=UX6gLn9%W6+!k8qB|P>o^`D!k^flC@ari?Vx^3Bzi%C(kO2~q zZFerCNc`t&xXU?BG5)RC1AGf6zN-xe?00C7=1#_b)Y3~R^+#J%?P+sC`|auvoB;}+ z*eRFNiY$WyiR&8^W3r**VnnyRH|1%#mV1HAX7gh+?R=pV%=!iTXn4bnlLnJ~ON?$z zJWxR*T|X-mzo%W!Fw>qu{YQ$UPDQl20=#?C@piktzIun#z;jn_N_)?lVS<=7e51WU z;#wM9Cuj?LT3S!f=qrOiaX-_pKe}8S4*KK}7%hL`Om@esa5gKPm(uQbzI}Dzia#lS zlH#m!2Yg#o^*rZ@#NV1PERT;HRBQcz1xmV>-?*b zC@KCzP0tt8Jf-(Hi9IjtSJ;#V>X_x83`t5p_SAdAr_BmO9e-VYv>V5@i`QKH=uHX? zuZrAH%h&hQ^@T52Y9)~)Q!3SdGIAs_;5(ib&ht_zb{O;3jqeZ?h%4cn&eshmoG+=i znG+T1`C9JP`Fcy|>t#xe9WC^EBkJ|5&1LBG6v~g^j>Hp5J8YZR;>EM(-vnzDW-GSC zK`fzvf@0MCNkNvIv9bK{C#D}HvfVxy-G0!sru8%zujx9nU?Il_cDSf2Uz5!>We2Ob z6Hjb4+`?fP6}Y|14Wjx4e9JKyHV{93rIdlEL$z|&czzgBN(L*=Ln#=g28?0_<6S^h zFs||19nnt?dN#M7O#h}(QYB%5YyXWNB;3YS|21DzrO>Y_q)MR+r);=xJTAKCIRa<*%tkT)X6x`0Kz5zz`1|9*fvF6bxvswWl(f6+1=x zUv2tdPXBvFXzVZm+`(9lIF@hzM5r+_vci5t0BDxOZ_3Z6LIo8>el{ZJmU}r-#~iN# zj)6Qka2R--fGcrtV`7v$kTES$)d25e5$-sr4Cf*O2=?cL(c8t-7L5g~e~NQ(HJd6W~LKb=`6Ps{aQvf)qT z@k8!oKJubTvg&BX%Ci4ddfue%8nWY#EFiA-DXDj0WQm9L!^M#ZiHN6@)BRC29IQUcz!Uz0#O+7qTBFfPlAEPd-sa?W zHTh4oa~N|TWJ$GmlN8=LJloWE-YYrS!)-C;zLVY|3JP_ zYi^m!unN+blCK14095Yqy;Hu{Odqm|xR6JeM_=tCo0D_r^Hg`3-Huz!)AGahHVaUh z1igWI!wujkg455*M-n~n33h)Y1@a<5W{=1~d?23?4f!De|4Q+hC_gJ8*;dc#`&`S1 zB$s`&IuN={J?mED4e*+BduMP}F)ugYvq`b)tbh+P^lh)PH@1G9`Asu-3u=wGUK7@4 z5cxg8N+Z(k@B}mDy6zRNku&2X1*MG!rOrQKx0L>1_jcOF8lkIu+s-evtU@*y(({+> z0yf;~bNcFvnFUX;YbtOuay`c7@=?Bqk0l>7tH~SJWX0bJ0n1exX%}Zo9-13A@SdD~ zwKj7yt+9LcT8YU7p7Rc!eMFQ3orO(j|0<_5QMbv@n&~VnzEd32KILnE@ORf=Tc_(S<{!Y_S7y=pRnLwMl!$e}7X7F5d8G_xtECrQgV{ zi29#z7CCM@)^1M}MSQCY{OEBbh5xls8qw>A=+!Ayu#s~axUV&Ezj+y_9sc-rxtiuC z^64nN=N%8;!dWW~T)15GP7Igy_C!LER7X8`{2Pxm{=y+{dwT9e(0kl*N_$sjwMY6d ziMrOrIb7kjoj&3>Oq8%l+=&wjwPTtmhvEf#y^dU{B{jGua@quLHrWJg4tzo$Jz^f|9Xv>5 zsy(C^Ug4Rf5`FP7kP`66?yxG+{^?uTZ^x(iCtM7DM~)I zts})(h|&lq#$$#^Vt0eQ%0yA$5F2}CEnE{-X^nn26nm#;Z2Dp(>^3eudattV-Q=ep zsKCA5$n$GKe8{sUbeXmiGS?u@cv5ETJ1iR!mk(!&W^~7GW*GOckh-K zys>G&b-@Oy&T}q&y`E(99mf>&cw|TQpFc;;*8^Q%o_wpwvcJukG62u&=r5AbL~}&) zxnRYd`Z+cG)K5i0)(s^&=X^d&-9HhsKL;np@iE?T{71!dUh8a;F|rIr*fH{gYauH^ z#6LF)A}$!&8WhMFQe)G0XsnR{H*49r0(X2eUjARu2pTxUEqT)l0^Rq9e64=Ge@CqP zlW5f+uk!Lv7kS58mM`dP+D_+OJT9+Ce!Ji5LvRp(IdMFDxtK9~)&fI8DSx!!{54eU zbsivrNbozc@V@RcUs*tLT!8h2RsTIPl$MQf0W|HN&r}GQ(*D_|eV({YOIhJ-8?|Za zabn@u+_o8$bDlJZ9}d6o)q7k3DAvNaP8-Kw-Z{H+;o08p{c3S7k?LTZQ zb>Bd}_NEVuyKe}ILlLZ0H^C^GyGI1SvfdJ&Ml;O%Y&t}pqZV%C0lKO1lPQ-lXs+)a z%wNLo8E>pBWnt27SIFhQ!x>efm$6hP=Jcl^E$^rgGbB0Wzr6Z$Dh)flL8kYcf9Hdr z{}= zqrKLnjr;x9`76DkenMeWH<_^;3-8f3Cg`UXTS0A!MsJY)w19mW{1Y}ya|b@RzFS>D z^Fx^vhD`X9XjDTP{FIj8pxs`#n|6DhYT7N5DU_}M+h5+-Nq;DE^U?&;S_{QMerrNM zlQ%EaHzz_*#o?6|Q>^O>$N#1mU3_cJ)RU}b<9kTID=PvX5->$AATlq!s=xTwQ#A66K4xSD=7ZN?UPzbf?r3&dC?V~=;4bZ18j$wY#P|!w6pM- zH{bQWZzV)P2R!fFdoxuwhbA5H#{>V)gLYrZ034Ikg3X0vpcrVLnJp&JP%tUPDRbyf z!-q>!(-7jmTA^g@h0E1&Vh-Fn3H^*7Vt80)&=l5#a6s1Lg?QYuw@G-I2FhQyscO=u z5%Iud1}f)YCHSjll zi0YUUW6iBcysX&Q8D&Vq0f)+$NmZ;^H{ca%I~1KMzKLH7;J#pg>!IJsxA=HgFHecq z4G!59j?Y)+89m&kCJ>4>)>^IQ?!1KLnS}OsXCv-LqSjjpZ*9u=H|_8?eNY_ezEvJ~ z@_D6Q^l&8}RDvgKU*%8OHf`G4Ni{|*arb*V$Cs$)Fp46^^@=wOow zf?*G?vcyhF5AGu(Z5_@xSAKR+<0dJ?+j^djiZ5sJfyKlw9WFz z`B)+$;mKEC)Dy1XFvSs5yzwk7g5Fa6B*nS<&*0xhzM}nHtobRkY99#KVLMx~Hs0e3 zn7OmT_7og~p6YO%98Cv1BN2XB^%CYM5eoIcr-JB(I1e%=T7emaz{?2M_sJQx@MUV9 z-0Q{8UJR+7YXtx2bS-y_*2ET&`k+5m@>-up#egpcA<#1j#+Bz>0<8MHyoixU zJ}B=g5k0XPa49wAMQX~YQ=~O9EIX6lHXxF-zrkXwKFD(=W#@5T!d~l)#O)?W0;Zs| zU$0O)8?;P5%D3^cq#G-d4b)}rdXiuwcAJQJL@N@Rd1vMqKXQPUaOlIB-E{Zq}n zF88#2GR5CLa$QHrx1qv%YPHsXE=JfkSFNK>>i1S}r1=@Y5xV4y6_cc9q(P4!I#^vF zwmWd9_z@J9wt>!8=%D5PHz~rieMX4;!=A`gc2mZC!igYxI9t0!ch?d$la^o0JyU|+ zuTyCJ)>BO}Le3s*j_wAIL)Dz*S>^PRDNC_aKl>G(xiGW{Ov9WGpw)DaKBe*#R#91Y2i2{8Pb?(4|>_vsJ$M3S?Q&Nk0mQXO7h%) zE4{2Y#qXM8-x<)$Dk<(t@d@a~iv5R)cc}*YP?Fi6O)_oDsX{NPha1xLQj(#U7=2{Z z%#XNK>lm65CXM$TV`Adeinkq6Xp=>>9mlvPNETwcf_mrX)0 ze@?Y;#r{c)F1^hAf1#J^|4uKEi$e1ia`{lm<+L1f`R+?PaYwlU0CM?8(Fw@qxf77f zD&9kQH_(b9myde>{~?zr^|fKIEm3lLgO4SZOk486Kb2f+P4Qn%agWm>mr+vu7R4@K z7!MC7MDD`v-dP=|VlGvWHLJJr*{iqiWHGTr<^cNCEN_BiP_P7H1`5t$0BOyWSs!xy z|EA}&|U+s-O30WQ2+)dUL(p<{CAIeuZsD|}aPg&Z9f#CzAXXk#> zY&6MGRS$eeXX#0{Fv-^>)*(Z9pE^7Es0`f~#EPry?FgUVbGTl&m-di>Iw#RGc8K~|mdbG_1x7(k-T(mFf-_!g1=y|-^|Pdy zKaQVg*{E>5TB)8gjPcBREBe`RmH#H638B;jt(c^psuHW=DZW%r3W>3Y`_AR)=>;AR zJ4H^f^i}k)j87=G9vUar?DzFdakIa3Y)J^m{lHLsmN;BOgJy~R55->;ZJ=s^H1hss za?n)*w56)QmBbfY4f7cfvBL!;tL&9iB%a1zJ>?vHn3XsvJ!H*tbd!d)XaU!x{V(fCg~5xulBwLTpZJt~c_q(*Ep)TH38DJ5oug zK-e0yT|nv*_HCJYN7#2XoEYN?%sY>4<(*ZmOF3;U>$|HHLm$MwDfSZJwzSW?t{Y;j z(NpPLS-opaV#cMOQHjgXs%-mDm1hTy)c(9may{;o(9Qv%7r;15R|0U3j)`_E<8uVX zmA0Ok#&yZ=NpZN0e8zf`I{AA%e=?81VJubgC$(-|>sAd?y$AA(ol#JR8J8e^zU(tf zn#TW+wl{%~s=5OIGg%-g@dXPOEh^TaM391&N(5>KCh$fl78Ml~mx{)@2 ze3e|^ykH1b8Ifv5bNStgJ{%k)ym`dW|{WRO?+xj4o*D&DjxWB2q-o9Lm?_VO1(K+N=A(0{76G`^Qx05^=*jXO* zwW3b|qRN9hA-0q}_$n zA`Eb{+4M=J7(*niTTqrSssUBRu6!PX+>P62;J953is5{}v$2B!QMHuB#3mLBXG6tt zJ1fdISkb{$&_w{qR!FF9uLyt*MgVj`Lfqb-5dd-npI!D<$Z6uZs5M{KX7GM7*WAnb zNseZ7*)(Dhd7R<@FT3!6lkopnY5p%y@xLe)1c7_b@PF*oIh(#HZ>a9X|JA4Xl;TAQ zgi70~rjh_I2WH%>EJ?`WA?16S{~+|l{qRPb?>n`u9REJq;CLcL8jdd~h}HZ4 zhF*-p-*Ps6>Tfs)f%dhvfCGVPp2vo-JkNnVGbf~YK3~Aiu>3(sQ_^riOq~X+p7??p zekWq6uj05b)BLae4o!Rq!AN|E=l}u0@H;mxGd#JaI|2^AEb=%4AfIIwS!8h62!Y6z6vBJUlj3~)_v>q~)pEx1K@dLYX zyhMt-;#p|Vni z3sX?prMpsfDXRq?;>ZeUC}(CE2o1GL*IV&E?>()9a5-`ldHY0;V*lS@|5BBt!=KXh z(LIX6{&9ldHy=~%pJ9^YCV3%`72-SRHj?bo^TGBVanuw0PGzmyckYtc@T$LpUZNE~ z&m*Sh9V;RmjH0eY3dv&4Kb@f>dX^RWv;N4#yNV2$7wDB*Q>=&x!z_!6#KZbNi;A^C zE@%E9Ru$BP#gZ$%*|*Ce=||5gk|Igsf`Lm}(2D&mgUmV4C^C2dL-S1`Us{bPpV*F! z4Qas~;BIcu!+<1HxfPL3U~7H{zej5jhsfpnL7a+4i_yjS7ZLX`uckZ371$R^liJ-3 zm{w<+RzJb=eoBW4_N2WX*q#>}qH5>_Lf- z^h3^QpFlRR3ScxkWAs{n0Ubk@HvL?tS&hCTO{{d9J09}rBfK|IedVmlC)bf*2D`qW zsfpn|*3?A(S^H(ck5_t5g4L0Mr+Hhh+lVwu8)@-)^6re~j$(HuSV@6h(I#I&^KPfGeFCi!lYyuBx!af2kk zKytRfOnQB2HU8pu&&*j>_f4qQipYANpOv-Mr+d^x%&M7MVV}Rz9#)Vcv;s%|kOSeZ z6|5%>|9aY@+9TbE*dIkCv{%*rW=2gtykkWkkbDH$#QPbP5}i&wLQ?#cTm3w=a2orp zy?#hGr=owypP);38W(R+&jTd1;bY9wPD)W9A8%JSyj@17?l)qXWy|(S08CL|(M$3c z?{kKMdWO)V6=(zUOTOzwh~?6$YsDE|;CfD4s6JVl`e-T#u0K%qgNGZq5CXg2-U)F**Gm_8!RdMo>4(RYJK@Iq*{I-)g zD9>@fRd1(iaVehAp?H^;4BpSBshUSf`I(%=po=>49W1N_kN#~bJW7e`N`*`8xxf{@ z#^CN`R>+xx^%C#2!0{?e1WcYDL{3fTNnFlHQ@?~|w;c}9>!It^d9--JWN&;F7+oot z{CBkr_~e(dOs!97uav`~nfhfDEz3V56}JHN4~PMI_0hwcjP<{De06b7ZVtvy3GP?r z=nlYc+5W%Dkl7JW2!cod7JAU_|AF+&9rZ|O{?px7e9)k z(eA$$$F&M3?h31MPtB2?ETkgegT8m|()X&jNlYraOYsvmuHGvY41H9$Uz|2X3WWFl zO+Xu7{kTHd%45Y+#>oBsVwo7rv*g+L!goJWh>>U2=XQaw^8Yb>LK(2t)|BS8rZb#h zDBlkM=VJ=zu>$AaP`JD24=HKG{QUnmetQgFmi$HW(jE9#ydvZG{_p>9jo;Tz z2EPB_$M0;FF~fTrI4|R|Las!1e+Hb!&T$?mDONm+Pzc43UQDk#O3ZhTZS`_CZP*){ z+BV)=6?nB+&jE(i;qu<@uQ#M}v z%tO}84t*O*O&9MTYh9H8D%-vMKlv4&`k9S*w%&VLynC)QlM1FtIjdJUc&irZXn1vv zgI@5kYV8^OhmOB^ON2k`ABx>roaHXTf&OXAYLZL171UC z3&l?z*KuM>9xZ!h6n4X1M==jL=V1;LPnLDWhT2`_j6G0&jz4yOjFL+j-(GA+9Zx3awP4!y1@2gl7+f3xrhbFxEyV=-IP&cE4v8MXy$go!%g*Z-H+>5$3@ix0LuB^80}?pI!D|&Fgd|x~q$4{RC&E!#QR!Y>P-r;2PD>l?d+C zjIYo|Z5%c26}kkGzb01zd0%EdvH@xPA$PgZewuV4y{bO-}=k zAq8I?S7h#ezvZ%qZb}00XhNTVrxU6g#`!emZA~d!nNI21z@;zPKUIIHwzuJz4b#u2 z)jo5P(2U9IR1Q`Wv`KoqRUd(>$TQ#ylV@#5R5b}}$UCHeIQ=J*HZGMmr^*`0ArVY7 zFdd$C?nGpSnri4M?;UrMK^*1O%x>JfFp%@%N;02FX7WiI)*Yw>W+kndw2lX~&_JoX zKR+=T@h>)LujpsL^@_47qB$rk6=)8rATdHjOgi3uG+EPAXe2cc$ZsgP6`U8$*lL8G z%Pc3tPM(Rg?%SEIKgwuq=KHcFn%K0PX{l%fuZAtB{Zg16mE@Q15`|0IriTGBiya#; z$gs^r+SufRADL&-Lui=*qinOSJ&SFO97xFn_dKn2a>4al*QA2;ym~f?mYQO2lLER5CrU8-9@eI(g;L_epRUHp1e3UYs_lFeX_Tdtb;Za%lR_R(Lsx0;E_w_fQm z^_sZ&E#>g^(6SX}hL(SOm$?6YKr{=H@x{Gyz%!$J(q?{XMj2t+J^CtCNw5aXP3iOO z2P(u?Cq^;yTCday`b~|uA5eBfkdw)+(pM+wwISntn`bHzz zk4Y~SFBvCSz9Q$$jNdB0tD&-w{LXk>S7p7-?%E&%XT)X}R&nvktP`sIb^CYr^S_kS zl+2k830cuOFK&=UE8drGBj5Eox#$Y* z#^i#Fc)DL9Epc^(z^z-JxnNV`m;9C*!0JT_{{L>b)oWTl{|w^)-xMY$f&p0%Bc*IEu|CcNTYi4n9}ZT=uGW2Yp`| zIfNfber)D19Jb{<|F~ZCB|E!yC3O7KgG$n%?iu8N8X6C!u5OfU7h6z{PG=PnUiEO z2ECsIJry7Q-XE3zh1U0iE7YM$s4m3=3jU;$068plTYU6>`Um;XM2VXGA^)R$OztzV zS_!$xB@x2>NHX>W@epeV6%A<6@0X%i2@y~J7vCv61-;|atvspYQmLn%|5@K%#HjbG z5x9Zwq8;+Wxpt9abeQ`XDnv+N8#cniBxK}G8o&SV>Hmo?^p9Zs-}Jxmf6#x1zfwHl z`n_T8MF0MYbi7HekkG%(<|!Vyf}z!ugg3}Q^1sZXeePi3$Z?h)W8lZdGUbV8di0$~ z6iG@RBhZQbt?)pW_~a-UL0O(f*W8k!e+Xx@HRng<7`CNjsOXQ{PC-A-TU_+nVhcC? zk83VOp;%wHk5y65O8Lhc_YSVe!!}a>?Ph?P?_lbp??CC>_zaXl6@lm||B z^jPC;?y+9EDYf2YPFLZ{{4TS+toI%Sw}7#c?iw9IGn_=H&>p0_eNF=?x(NeMDG0wM z)IE58;xd)bULEI~I+{{tWb&9?ko<#|Q{C(=Q?5y;%?v$JprAk9;90bT?1?0!CS`xX z$HXpPbXNNR#NUM;A$%Wy$LG$Qfrld^6?2MJ&%r`W9baM_-1OG)oE6xVFpYle{^ghE zl&KXF-{4gv`0Rct9#!HcyAE6Y1SVQ5@a2$DI0a1#HitjRjb(%;wXkw z!O6#hMX$;%AeVs^JfJ^Qx6-_W!I>JpqgQtrn{y%clXD2>ZqoXiw{i^3yln~nAMa15bIH8r<%=E4KE!1vYprJGvYNL(N@vFE zcpIOo=&ifuF?!9t7|s47R!3iql|?wo1*31tu*Cb^1kX50dusj)+qXX1Zsx~$!Pehf zIe-=+lOpDFC@K3r(Iwpn*=466+2#H8F6EEwl0NKzq!0cd>HWH-ACvvAM*OVv19b-RNk-@u6ZhL=1-3g=U2Z$uZhLQBbl?3-VXW6j43oT1k?qcCN^>+ zXg|i5F82Nt_)hW%j2tA@{xBpZBG~oE1k&@&b~zms$8S`k%(& z;OO3C!uY{foC2h?{8h%EDyik!@e8B($$tN0-eI(xq`zgWtB2ZnP&*&c<%N84?_4d| z2n#mEBfy|RGs~-#4e$3=kAI1D@vCuP`9XnfX*la{eH3JTCdV(+JlI2fF#LzeYupt; z!%Tww%jBN&>s})-N>jqX{!7-F{eu)$=@FZ1i@}jSeWMj5+hd1>zu{80xd7m_*?D7% ziA2MF5<`)UcKpR!Fy%ZiNcXXs%%A()cy>c^v9e-YeUPx&wbz6@X zqN)BD{pr`KKV@cE8|9(>`P&EklO2DyV`C7ZHh!*W7AC4?9?HxQo!6V`%a^RkA{q?D zl(hZfB)$xC<8LVTbOVTGAZ0A%c!Berj)1dhF_78uCk4Qe<2@dgVeU8{xhH#g67Mw> zGf6Q`N>P3Fuk=W_d(7cFR@H&<-flJj6ua~&_+uD%qP57&>;c;Esr0*qEzXpKeZ0?K z9#VQuLa3(S&%eK)Xtl}}_{G!&J2zWtP7qW&f014Y;)y0>23S|6z}vYCdSkazb{F6N zc%QIoIzrQO5EZLB&c;u}X>=2F#;aBFNale&eMd@!^;MP9CG5 z_$}-w{v_^CxRIXZfhO5+lE;1y`#mAa#Uy9npXHB1_r$*Q)f~z6=;(`~<%~Vuj<2kh zvH`ec88n>JDI1Nws;vxvL*X6$=4UkKN`Xfs!t2C8NRte4ZA^Q)(w?tVMKE`2elhL6 z!AL7CowCv1p{BhnO?y?+-c8cpPfdG<|LpYLqSaTyRqoPOhA|cu*^Zbn^RZz`Gylev z$zYiyQY{77n{x*y{nC7Px ze3==dj{3bBg1Lby=zdi|j69DmGVJ}FVQP}ug5UM(!WpGBG4}VZ8 zW{6--8Gp$Zy;~B}<^Vs}<^jKA;<>Ezqr~Pql(e@8G?;y3T#|xXy52j~7PEw54$TKI3(X16?&Av40Bi& zt6QU!yw7%PR7h1OS0_4!Uv^y6XsDPs_l466_*76stWUD`<R1 zv_^;WQ~u1{-lT(4@Dy@g4@m&4r_x_5b{QwU-efq-^kc8Q(H)WBX$3!tq~*<1@Nbr> z(MerGInCf^hpA<_z-L^7codsjJmvpEK;WaO`|jw~)K9n&na9%MLL3);t!}Lhs;AbM zlPTr7wh;v!>dG^E{ou{a1}|phLnhxlCf^n~U|17MeXitOe$+r|L8`3#=71#?zsI}Z zYJ8z&4nN9Xx8kyX^vBQk=_U53@d6|ve1Y4Yl)%|_E=_7E=dzQg;2>4bJ?Cv55~B-d4nU;mKOg781)b7D{Gz=?5Mljm zZ*m*D*<26S+}=ZwHhZWvy&Oj|w38N}MrkwpF@?4JjEA!!ahmi^^%8o)_dKe^ExrY) zw`=M0hFM8-kTG6VXV!`JN_V60ly&0S`HFV8kZ_mHt%;Z7a~^a|eyqA3 zhZ^{~g1P!+JNzk^CH1h&-mKZqhnnskM}hR}KGxEk55ecYn27`QkcYHSQfRib6gRPd zk1E!y4?7M~yrj!h)KrlwFRKs%TK+(NFg9ORT4eb%d{MftRq3DDQKm)dZ~0?t&BZYvR=zSrBRnSX1h!9)Gps}UY165)6ts$IF6Q~vRAA* z6_8_yjYw`}{DOm8V3q^+tS$%uU}Md)p9Y;MmF`UvvzZ);ARY0JIhHxF#2K79SMwFf&OWrE@=&;S7FS+yzJFbnGqdp40upQz z4#C1$Y?rOO^E3VpmIk@S=Aj1*DMYnk?x5otz*#V5n9IIY1 zVTW%hDfIapYH}($(W3`NiK&lE@j#lFZU_nmZ((t9t#rN$$>y${M(U5c9iexb1;SN} zR45OD=sCE?*?@s^!Bb!N#XlT?f%ocBw&0+-A|gFPkZYg%RyeQPrOmR@K!pAPr`H@M zl1g)GE9lHq0;sBRepgZpFtPv@T9E?%S$72aF2qvFa4goRM-z^r3CZ8icWeGnnBxvw zBQzPHZ@Wi;c0b%8u9k^I$cfwo%fEnEJj#%p#h{L2s3Y+y88Y$?I-Vq3fZU@c!RkXJ zg&P;#&d;;rcN`715q;sCj>FRYA1X`SN}TXp4zXj0+r;;Pf65z%)wn#Z=mSziDK*G| zIQtXVtGTh39#GK@CH>{FO|i$%@xS&j7VF-M^*@1@kjrC`%fbLMYAGV*oB#{cIqk=S zgSpE|5PA>BXBH~C_juI~Ckw6lwNe5Si~r*5ptFUu2R%aZ8~N$gwW%ZIyj{f=f<9bf zb9~hi9zKW)SOlQ{R%95%s%f}mLsibUyu0p{JpffG!4f4e7R5w?nN=m2}NSp>_n69*oT$!Qewx@o`0o? zd;>ya4lNUZTxdGpr{`T-->;}otI9fH?zX+IMhiP-wD8ujf;LDmi!C5$h`n=@i63>M zmsEQ<0Dsqpg0Y{uQ@*dQRG|f?(`~@owXAzQ1tH(FR7C?JS|;SUmGD3tfC?qj*TN1W z`34||My_)&+iA_en>3+C+*ujtF2K{FN@rbS5}IBLhVu*z0l}9+ymvz;@m=J=-@wjn z=EhzVOMxWHKJP&-=v9DTGdocX>B6U?A5sEoFi&TY4lBcNGT+P;{$a8y#FPXF#SX7Y z@L4X#Bp~psR%8iX>I?+~{Llg&;CYI7xe(7lYsAzi{}Leo8+?7`=E9+Zh+nAcN;`=S zV#ALYRT^w8ic96AALp^+HptukPqk{9LrikDN&ebnlxrJmXM-ixqO`HRj9E2Qc z@?8cr%m2Bnee~BYK$$E!CxJ30oXlC57Sz z*PyzuI6y^J&Z0S5Pq>N4GT{{?UNYBxSEUxAVQCVpQs%yNem>4O`Qzte9>VGT6p18% zc6^!0EWXIJE`PSOax)Ki?sH;uTqIT6@i9AC9juq1#=wNqCUaM=d~WBnDkk2-fIF;Z z_7y#i4mXjSQ{8*Hv|HuGq%U5?5$aOYEPgQ8@fCXbR>x%cl=&+B`#dPp;?J_`;ZX>x z5UKo+k2X=VIDD&txhALPieU4W2xl@m@O998(^xXb~ZFs0De9nanq6U^t@%oaP|FqtungI9`Lkq&y` zulrUE3xr2>0mX`(NL}b*%}R-)$!)Uc=zZZSP3~=L?lj5;%iah%#~b}ERJPTcd#O}r zEe(|%+HjU=a>!qn8+O^|DrZ{Zw0za%&SIR_6x%2ceQzDk^3La1Wlm#!p~`WO2=3K@ z$^|~NSU01Os!}5Q+^L6%hT9i#S>h2=2u%Qj7+m73Xs|e^E_1pa2KUzdJ^(^@1f{{L zFw)m{*)A)*3LzE{{OSp8zq$B5XpU9FA`2ZQ^CKa1QR3P75w-LY4bro6dz6nF*6s=?f4EoU2(Olj7i}t)U)m ziBCvUdWSr0(cfUZal+*zdzM%WuICqLjk!WmwKpQnp$C8Sy?R@yv}cK++DRtv0-Fm% zGCF#xNlH)qZ6`hL1NXOtu(4y$D|H(J6D=(ipR+@?v{&h_615@dAa^JPd$ihN?k=Cd zfHb9Pb{Wyqg3ZYuRdw5vMBuskYunK(tLl1+^mzDxWS)Me&l0TmaYb*zX9^l)}D zuqG~1wM~o`hE-`8ih-ccs8@n&YcK=_T%Bo7pe%NsMTW*8i%&gq<5AfvU9hJ>N)VIS z5F=HGOx3^AsykDNTiBxd+lcSe-vXRy_UPGZ?c7>oNLKwX%oUhBR~(EDb)Q=IJ$0x0 z`vHZRCpH6H*Rt+33Zm>>&-AV=Xva=P2(LCp9Tom6-(!b+s@iPi`=}Cvw4Px*FFp=x zJ$cPi0xbyoWE~;8(B}uC%`mF7)^5!&kugb}k3PqZw`Yq1FJ2ThsCzx4v)RNqn9Z(+ zMBL+U*lEz4kc%8VJsi75=NR6y@)5dB=^HxD5b`Cg9y|+I$x_!H_arngz6q)|*ztus zutqIcp%vLe;S4=BoOwvYnTHzTm*5oFErqt+?ke?vS{(i+$^I?Eq!`7dKOcwfanF*f zY0T3K*qE&)A!n5sLfzN?>a`o4fB@utRBNqJw*2w4Nq_K@)zgx{@r*qz*@&XVHRYmF z#EbSvbp)RaD{e+?0yiI1$}PA)<^Pl3@?E2OhHs&SdmlmN8C>F)!Ro0!;Z-KX3dvAo zGRVTZvpV1&evh}7f@U#}8lG4tAU@)oNX!*VdTpszffFPWxRNtMCaAB=#m zrfh71Sfyo(97=(`(jw}1xj(jGhyG^bu8cjsP=5zXZ0b<|b56@9X}g~tTPm{z!nPS_ zQc0adR%)AsWvC{E_C9O8^Uay@Q9rRaeS~Ji`g3pXzp&iB8vg}`LTbmf84U05-f#>z zX3H4KH0lEyKCM2h zlExag(wKim>G3E)1fwi#T?MA-YTzwwZxWx*Y7jj;P`W<8OfoTz*{wKYdsW$-_%GXD z^A@-ni!qtCMQG%e5^CsN#$P0Me?KYS;@0Qwf1I#EVc z=WS${*lFz^t!KsaPg2zc19d2V4MytiGGOHmKc78SMk{{1FXZFiaR#h~qg3pb52{Ow zQCi2qipY&FBkw4gH0%5@(D|soUwAL~&&x)NXi)tWFlV2lh$h3XPv|FM4w_R7bDKY2 ziG8^xm-ctiz8Gga>b-dwa}(+(*byyqo}9}K#_M{WNc&=RpRKfQTk|C(fIu{K8R(yF zH-CeVI5*Ioted_*9wZh}k1#2xP50l-aYNF6<g59;n9~;K~NJdiW4QRPV=wWt+Oh=kpb&yxHOqK!Awel zIu*R9&r-oVn#YQLg132B>B4$|N&b;Zu9M{ZCHYq*(|Tq;Ie5SLDR3uqSZt+oItNOM znE;aa>aLdgxJ-ka#qO0cYYo>@pa*N&Dkm(Q#?t2|zO#xIaVLNL6dsd5ehTXq3thE_ zQ$r=I*Kc_j87hDL6q&0(*<9nNn-3AThJ~?ZyC!==V;1^hts>*(nTm{m{F7N|ob-0~ zl?SaiyY{zQ=Id1pnNr;5N0|&oqYX>Pm7Tjrp3WvK_PwE~s=ISU`)UrZ+d(HH_L7s+jAx6|8C zoh(-~VZlIcA?Kl==$lv;_*f{Elip92Yp{4z%8M6>35Yk>lv`w4@b*&&h&RH2+fOyM z=zi+we@fX$(&L%hH$DD0I%0>yD~#utD?~%NScbBPGSTqYZ`Yx`gKR7A6!aZ;1^$hM zp{QmS&#fLJo1K}cB_A8=5XPjozi4ejNGbhG$&2%kDSag9yrHDoS1omD{?`0kw4=R` z;Or(lF)4Y%)?Z6Got1dxY6T2A?Z}qcgOdbxdhVWk7NuzH36Z3B>{*?Kfmm$ zNx!ePaw_`4_&fq5S@Cnpe`Y-Y43_QI0<&?_QoxlMAs;hbYrgyT;seRE;-~&RRJxzb z5x61&)6T3OvYod;qtY@HFh`gP)_GiDR^%j(r(WW{b}+{QB%!Qq2^6s1b*PWn0m1mG z$8`K%1bpG1@?QCYm_5mgzDUktSgI0oU`_0}L1%sV!!v@-d%O8oS2+CFIxgNXO0FD# z^M`b(y<6G(>QgfO7$|F-cD!Bo!OUagH~GTtc?8p_zL-c5)#GqOsU8++@Hsom*4Jz% zpQQqhyjENl{OIS^X9k%@P>e1><^J5)F{f%_ps<&-qXQRz&;KY;SjI*PW`|}f>Uf^? zBYFNUlOD6LOq|Z#svTqDw$hMgK3r?o^#})9*F#kkmI;kQReiIzAi06XyrWaLhUi|dG=&U2B~{zMK9Hc!!*7*J({Qvkes4X7?hF+sj?ihYTsZz^ znZcZTkN>|lZ-)QPl@(5X-xLw7@%SX|-_-TKht6F0h4Sd|ZCEr|e|gtipc0uzD_;`kGAtx~)^Dzoar@ zKDkPWH$M9FIgp5xSV3@^9IecK_A-vuuRM_oa;is$;-f!)t_a2IW5cH~&01uJX*M=* z%}{B_*^XI&1&KS3`U4{#m9o?S4g9MPp%SbvSlgA-S?#u^dRuNq>Sc0?k3Qz0cGp}gy)D&thtuw!e`s&J zws(1__AWK;NvW*%CZ*b|wIas~A1#fk8W8W(h?x9Y#!4t4LddG5)fn3>4aECA zOwQDp!Wv&)v@@A_S0+?wB1?KO-OYhmVex&cQ;kmYFy@X^sJv=nd@j+aEX=y!5s zhx;4uDj|d4%W$}4Xb$F`nabefDiD7|oh+=lR)ifGQ4&!#WkW&r=nve&Q{cmmqB)&_ zwX(17@;hzet;gbAR$voyyRpgcF>%cZO$eV=EG~(udH7 zLsS(5jGTi37-6pzFi%N|{|1aQX9}3xGtK2tT&C>=kl#znW}S)q|cE;XrMa8SPAn0((oqxtXx z?V2yw)OViA_lC*$k5s-i83onXeFDaka|;u{rnz8@o#eQm4`T`weHpnkOYbCK&y8-9rBu)bJ(2p)X5hhloov-Y=>Xheb zbtX402p&>RMs_MuMfi#?y;2dP9aTN8=0rqO>^T7@xo|zwjUPIZ-Cr)Ou4+qKl^#8gPt!+lhGMq)1=vTo@0lWuuo>pgZM0pK%g*)>F$s&I5hcH(lO6J5@}b^a|bI z&&$p&@pUjI3mI6Aui3Htg#@a~cHDB5?R$mr#g6&lXbum)(iW?+jpJ&{>%LbA-quoY zDB9%aM5}YZ5>^>G*W1?kUAC`Ls9OReJ6f*meSN@OOh{5GmBTt2TZTZiGzXW{u>STb zK~{yIlq{@`h=i1ypA}E;t(f+h-v3h-Ua7UHr%uiD5Y@ZJ^b?vPh#&naj}?1_EF$NM z>8Csge-Lc;N)$jLfvmb`kp*iN9<&n>=sF+`C zS8WkC6@AM2viipoSfQIM+b%S9vb8iUL8c{Ic{jrOb>o=Y=pfr)(DR))Dh+;QXmBvw zk2)KxMuWSdq<~IwPqS;o@ifxrHFA2Oq@d=Hk*1n+JFZ>GH@TR| zS~{_$0OP=a%)QP5U%UN4!##OBNpgFb;!bu}aWwGqh=YIm=}!vy(~k76g_ignp#P70 z*jVRhJw7J~BSw;BL4*qL;HrNf?O->i!6NySsL zBC>aEH9oE6D`@>UM~ACewpV84Ta~};GsLw}=&jS(b0DTSelEKzeP6k~7IHgeqe|6~ zPji&IRsPb?JV{%9g|m*zYF-qm*I|zWg%hntrD^&8XQ=fxV-@j4@F=P91gS7eg^I_l z^`-7hPV(*{??iTZ?ghgy$+VhN)7!IQCGTx#7T`Jn`OIwrx;mswCva!DPTFPbtvSDE z5QD9nCWZOgmoM@ci+;?%!;=2ixuPe?A3tS^mp?L!fRR7BRCXYI^pf;16dy310S&$w zBqg~eXDru_59B-69GQ@}@fA>v_$aR3mu#3QJ3;06zJRy;q=qWdvagefrp!yS?d528 z8qnm9V$Y5yygG1HlEAGJ+2d<>qDq(=*YJv+#VglqWosv;&`#7C_$5A}ymsHu@#oAJ zX4n{<+WVf6@5AJW!loxlg#_{t3V2#JlTNA<1!-=$C-6yh*61@@N+5X0ibz~gz@KZt zZ?d9C!sJp#EoM{cw!|LgsxHM48qPlWi=jV7&AG$Rou+)SgU5;j8Tvabp{2CFBp6#N zLxPIM$d;}SI`_$I;u7jGda$oWU0p(a=y*RAdr{VP(upA<2Owk$T8`;mz>xKX^kxWa z*!x9vXJyYt&3Wz&|CMk$v z*AK-gEZhVJ;J{jL)yw)Uu^MeJZEs8W7^wA>CsP7Fch_>vN8tGk@l%C^{g8Ys@)QL# z+tp*PQ#m^ly@3Vw+CPb$O{^ljSEb(*;8ye<%JC*B%c<$^Z>WD)dH{|GOG_7dEs49W zz&@DnH+twj#G2bgVeX$~u9e;lzINl29K~$@v{!u8xmBV*RF&<;97HDW!m9ZJW$We0 zN>v#MAv`lvA)6~Dr8Jc4oqMgyCM(j525avqDJ_&j(jb?PVpoYkfqNK@Oi%loo^D`r zb>Dqd`}r0bbbQnJGZf>_^D18=84f0vAJB|Y$`Jq@pV3X}D|n|82j}l(>a`*_!p1Kp zxxCt8NRw60P5D}p`mZ{x8~oj&wyNe&LCKDWbGq5_a|+!fltguwvm)~-Z!Pr~I;-nG z6iJ1E;ENDbJGxLMI%RK=Uj zepLD6LzNZ`w>&QfS@$^8_2}^wO)P=^&Hi9&zbMyWaV1!^mbO7Mcl}XOIggxzk~usx zI4`+IscRo2{m5??u!_3f)Q>)j^nNR#zvngtzGNbGA*kQ~cL#U%?YcoK(!}X_|c~grT=M$DvfTYKKilOe>l|t^Rb*L4& zf;Wtc6~jK)EIINT`M7$FKR%Pl6RmdH5;ZMak0-l}65uYxvWkFUTSW z(!lAD3L2(ejrYK3!Kv%)nCYf^*mzyHmPYa<|Cok|mg{IyDJ+ddKyQ%KjcJdZ zUcXk#npCX=y7dn_pzlKFbn!lEkmp>r-nGmXnMN?QeE%VH#a1VKOSv*W`+WYExh`Kg zVX+hbtKFB&hXfxm8GK6)-ah3m*WWO=gD0<_@#w|#bMGnS$YMDz%;t~Hl`&;kODsgF z2kr8R%`KFV=z7jvxqgs~OPGpkmmAus(*=wb$)mgk`Wo5-nu+J56jD!iq+nrAwLktF zk3^cKZgUl;ArWniORbPv9*KBa#LAZ;5eXE4Gp&a}GuWwtE(QZc{7Q{A!uc-T%0=dI z-4M$?w(&Te6~41O3r?Nl6(TRI zoC*2<_;`-bto1ikbd#SvyUWNH@`I%gMtBx$9vp8(f*x0l_*<&WKzzD^coC)pS&PbSG@WL3HlnC| z9mRnCs!oL}Orf7^A$Pn1b4;f!E2b(YF1|^TRbsLnt65T#RE^4VU~)Ob-Bps#;G5_U zLm^8fs(OGa$B5~=B9g2Q_(_Fh@b_M_Nvg6U*YYn)?@4yqbLPW~!ZAq|s$P~Sg=1QM z<<`=-xRH087{_#Y4Y$aFDR$BIi{3`Z0x^qaE+wR3Fn&JF;&K6;wREUqmL0Mi4ztWS zG61Fxv+U*|p9*SamH>!{S-zxkr+Aq%i{Gh$Tgo%sQm))WB#v-fv0)b-16YPbfY~hL z2AtK>5RBV}Wu%#6e;FE-Tx12ewW6~^^3l*UUuXi^hCrVZU^OfmCf)7;8mDSQ#r+-$OjAS<)_Xpxz(uRFqP<#K67 zbV`{9`}#-Le+Nv{iufVY-r_LrQ?3> z=qEc=bh_`(Qfc%SubE1>mT09zO^M~E#1hF8FM5(5(%_R<%476GFtj4b-0Xhz^E7Hw zQ+}ct8W9hV=`@nKrBf5LOcU|z75f*MCe9%Xa-iet%z9UEp%VABQN5}Q{Vnw;2+~sY zYRKtY!l?;S^rAF~)}@b96eg}BYiV^!>DY!P-9=RjGD%hibSX7g&;EOKZ|XVDtLNqI z!c%5>r}aoJ@WR-JNOzZ7I=9|IXg6tnQC2Ci zda;7$C4>CyE>Q&k)L>@ReL7sHQM=QEWGHX?f(gG~R5Fgo_!}BUT`R9m`ffd>y!Jr8 z72PZo?@dWwptViBjN;=Op6ZzhezXM7RZ>UuC;2@Nz%UUB3YnPR36QcW3dmns=OA#N zyH^4EJG={CWhhjQOADXKccdg97R@u;AJMaqs;!ENK*QL$C*HH4y>!`K1QntzR)t@j z!%JTEgxZy|y_{2x%{(Pojxz|k#USM3D-I-A`N-1}R$Nv&D+L8DVX01R&EEF6XaBYu zD{c?F-Kw4-4(p>{rk1cQ0r9rpj>Yp)Db4dqL5KS=Vf(OiO3kuvo-YtCjhO~?-540L zm1##mhXqm(OezSgnoOYtsn~5-81$_KeZ()s)R?Na<`S>URH48K_P&HpGJU?ph?7|c z_g7O~?*pz{_>y$pU;CZUbOQ6ta{^sWkHG2LgX%xfP8MLu`cnaBw2=WrsE?ulC)3b6 z#?+$T+Lazja;Hi%aRpEqJ5s!lhxdKg(t-b6ejwTLhS!D_k?6J$)NhjO2Dt|{Ge=!o|BP6~1$m#6-oNpWwh@!058?l8yaIZAAkq-NVVO3;4HXVjSt4r?xUaxpDXuWd7<9~s7^7qv%I?eaP%Px^@vl;$OhqRLs$O>tPvjdxuYMFLe zH)T5QMZoLcIlI-kXtOjJg9{GMK7IH>HTPBUI%TzEoVel4nTE3Kr#zU6ZP&rhSyu9& zA^1)oMs@wL8v?Xr=TjraoSMQ!Tt66x0b3jf?$9DxAAX=8qzE6KN^*29@`&chK$ZA+ z*AKGu>)FA(o|hKoK81U6JgfJDi?+*PIQ0^~iDcKj_0_kPGo%a)fGHPW3k*WQlRD8Q( z8)M-q0Eb56=#Q@(+bK#^g5y(A_al~`f>;QMEnx+`B`nu>a)Ax9u-7kDjvj{qMH4#@ z>AOO1<#i_y*Ty2`W2!LmGUF$oCNl~`l^bsQRvL7OT=T~wC6m|@QP;26rSDS%QLI&F zN$GQw?TE5~%!1)}z->!-3YqcTmoj1kiBDKh7e*B}EV_g*a<_Gk6c*DH4+K0uBwHdsm7izW4`hA!@Ez7+@g>-3Ov!^(|6Ahu<)gpWuAd0Dtfh;@z=t8% z8&R+4kQtR1mNz^n(3nAuPrQ}k6^z6deJqeZCmnBCB>jyoYS%B)!G=ZJuXCtd@D={T zS8grcg9FK}c6{CsTt35$GHv>!-3g_P9tW)6sH&qckL{X$u;IvW}m37n3mR5d3GTMg~Lm%~YNL!L3| z>@uh*Co#pV4`C=WB(_or9D4)Tw^xslb#8n@ek{j{DX+NsqVYG&z5oj@g@bY;jIzts zylS#19?-o9L*L{RDb^|9qh7w7$Va+xMW^(zmp;Lyi=50(x1yIZZ+UqJYg^?a)J4E{ z&L=zWUcUTHK9S6w^I4gE@3JExc&0uP>7Da!gU-DAGW#Rpg$L!6bN608*&XrfYd9#M z+&AszyE2on_Mm(>X7Y{7Ea9(g66XGg>6%}fUm&;o0_Q?q1Q^i;AVvqxW~GW%EOtIR(10%Z12 zdmyv_{1b0~KbTtf4F5#)^m&FnsOqOS?8hficXN%~FFr@^PkxG*(aW)w10mtEm9iOc zEou%o_wsP~ooutji%LzK-%QjtgVN>|V$2vunR^2Nv@9fExlJ}j7KE*LAHY!2IaNEAcyDiL2Ru>LY52 zE>kzb+_og)swiK(L_pg}l9dCRI*G?5XI* zI$V}owJUWBk3}V-n3G?EHH)v9C7zUvyD?*cT~7t@_DHOycgf^$MSq6m_A~&on-vBc zo)k$Nu%3RtotB_utwUP3eVaYk#enmiC>r=?7V@Y*!fI5Xt5EErp%6^4^xI(B?&=FP zRzi@&zd_#z{@AMTsMc926D%(|QruCON6$ZW*dA8hB-*jsViH+|%A736)p*DsXSZb1 zmR%#UMQ8X){4sD4!5^caI%HYV<7MYHyf!;b3v`vnl5ElomZI;#%$*UUyJ4Q*o2B8I zF^PT-5ewF1=TC}NO!1?4h>6focqlP5TG22S%hw#b8oO7dv!oUBMtGJv`g%`EKCkNR z5t%Rjlq+PTr!zo)*&)v1Fmj|s?0VQQ*u@uXo<*yoPKwgu6Xi;3@Q*Z&P8-8gd0vUE zdWLOm-kSII&ge#`*@`wwjn>j7B_)!XLIM*xKFNy*x+TBfV?Eu>4sWDnGoR%Q$Jbko z&FN`SBH3k}Bm|las5CBg$2J|B9YFiE%U;DYX!0&Y3c*H7blmVG$%~Z8fQfo0WFqRC zjI3TxFY?;`shD>TWwtZ=pxgrG`3hK(qv^{KPm9nzHpl6sToT80S)44=1XTUnd381vpZ+3{v=gH^VS0PZ#X38 z`vzyPb+KoKcKuGHASL#!cGPJ!#QLms4a=489|j%c<`{F7g#C^>GzMGiQ#6e0fS|;h zTQ2i%JSsyj+l?pM&|^oD!2?^3Cnl>;U?))Q)9=4215@*9Lfo%Cy*W^F;wY}ilCkk} zEi<`3PHd;*Smiab^RJ8t3X>^f9JbL zwNCUN`D>|@Wq?+IE5dg7cY917tX~Tzydmb^Crkr%BKs+>Z}Eb)c%sBQX2`LNt52iCxy@So?DvjcZy8_yTIz%>d?``Q;1rYM z>x}8yi&Ts->N+jxcts*fwEoG z$9mOu^x`~qtX_KLFKr2w?U-K5EV)29Cm6e5NX^vBOzKvz*NWFC9@2`r!-;M1V_3&@ zDG`h}3Z%dyrGBoZtVk7w2rMEPNhFw5Gx`eZkBpvMJr!PxHW6M#`fEkMQEeo(Me$4z z-7q`jY)s{MV!%uEQ78hi_*l^>yc5tqzN!WwIzz_TUudfa?)!ym`e#xe|A2pkDZELe ze?&t0Yjv_@-wP$zECSrHM=?*5k2<~CR6@2DgnWBjYK;yM(`gVF51D?PXLM?e>1^mc zPw+ZOonKF_SNhBuue}%v z4p^^5IK)IREP>9OoAMH$@n$`(GO)ES#4yNTYuyCzml3DFY<@AElGq?KaJr>2g^KN) zE5UX@)6Qe!2N5rNpHFNp9Hs~zy)ejP#A^4%tRi6lQJ$*-8?Jd-@lB=?lcCra{@ zB)eCgs8xIrQt*Fa@^q6t7fPOb$#cc=nDrK>oZnfe;4yUYIt8boKx|r}lKZfPemV{NUh{ut+Q{>|iZ@PWVkEN}OjP7SmbC zS&ePyO%@)DWFlfMA+i;HfG=(Q{|Z)o3WxGyGQ(8*HihyQiD<2KHj91cP-^n%XV}Z) zOlUT2Le4AI72bF58jUnDCsZG8^sGO5dHl{Ef9acn5j&=T&ZN2{wn)IicoZn*+{&)g zV*>0gt7W4%=xYw*$^~zfLmC(6Hi#qNm}J9v!s9gsN;j8<1;ktL@Oo%FZzXO-UMN1q zP^S3!8P(a&sa(&XIN_{O$KkQCqSTjP5-eRyu30zY-LJy@1NT?#yhode`Bd|^it)7H zITwUmQQ5y>sgt=E+~62sM}|epIg0X{Lt6DI%wgK1ouF@>0JMPVHtE-OamVkmh>8$o zBwoV`jXaZ+FW0~7L10C0r#qcSF)>=D)+*6t*|57jpyW2}Ecob+>8a~tVyWccLBcT8 zJ7?;49-+sckvszgN9jB>OrH1CdFDwTZ=&Wrjh$=_r0 zOfh-JNuH6C=N|IN{LnQ%0QU3CIOR1QDw8f8MFCk->LF3rqH%tUJjobI4uN|!@;p_( z!IXceBD?(SsLBVG7yiwZ|9^ZQZTK;!rM+TD$v%&Eg*G;}uYokSOrVyNVD4mTFl8U1 zJ=qC8(9MdzFVqtse$lmDGlD8lZQr`_UEe`(&N?eHjnq}wFgLj`bBDNUe0+^6{kE=< z1V->M&Iv5jPy)^+IW5utq!Q*QD(Vdsv>fI)ckaC;q5~;@;N$P$or3W%G3J~&6bPME z5SWc^@-cO(#uAo?yscOHQE-I08PAmh@d8_vYwqQdw5}mxey3HZLc&~X-ds~lfAhA( zynXnh){`=E0_dhBk~$NBfH<2Hc%7SbXi!372@DszTi+J>XK z9Q-S0S-}Aw$>ILsd=n5%{GK=iB-zDYSBx0}Gs@9?wdQ=lNT^vM^04`pS92LLZG3)l zL(HiO*UrGLB6^$A@_Lul?we`VU(XwwHy!pj$fw!X(g`R?_pWQ0a3FEE$vUcp*+w+;wdtPT#kPrw3VefYF%4C=tFjjPoCUILcj!ixMG7l$Sq4F&JrOSOwfpj@`{JNAgeNJ#VM&+WkXGMmJFg9&z zX@$r_j6oG0TVk=f8M2)0{&er5D!Z-8d` zS&JT9OMPOl>e;)YCwu9uiMhO?W_!rjRvG(?ASzL&ZABy-wD+2FPhyi=L_p@+#F3;6 z8av0SiEe3u7(o$(6=<8n3Cs2$#WKYsupJD5*o?Q z<&#_k6t?o5biV8yAE0I?^2kACfo_^HZ67vr7~Yy7geupl51d7K47vUp_TpgSPPve= z9AfVX`aT1+S;M(h*LL0`tZmRbn;@lPAd+K%r_)HZ>9#jTIxJ)Sbc@)3i4qd=6Xh#| zuQvguzh=>k7vYi>Z*Q3y+#g+-eJJ^$`+L-=y-H0ClKXELFgI{{j-#8^%$(6J)klbx z6tiN@kKCURljJ-FKp@GSt9QpTsw8E>r+zU;9=$2@2<1{+11uuoE-)PZ2Vr(W$1f_Q zduE*(v|j2_8UH2Ws_@Mx&|t$0bTwG^nl)d@pP;TY&$i=}iQLB_%}MX&KPIpB==&}><)6}PP?Hq56)2OPP7{Kjs?_Off%vNbaK^55D-5* znRwfyU(itLY)$-8Ujv{xy*gTL3Xi2QwVB&V3f&Sa2yxesn1j54#kF8uCP86WTtUqA zoE@==v=`wS(!2?Iwt4d=)o$$nC&?6U6uZx^us z!`2`kHzPi7DeTyEP`m+HB?XuUu(u*Yryg(t&l~9hK4rNW#fHYl_CyzZUf`^@_C&?r z;X4bbowkH}SpaR8RaFGf)dJ=}Ea%Jd~T! z4Iq+3p=XJyVFlWtlcF1B+1+tpryDxOsn3IXUl*A1`zUbq2Da&=A-wrg=hXZ;%m?CL z2VJSt{!8M3i-Jf4pS|;4QuTzF&P#vW%(p#bks+<9Q^_R3kl6&yJ5A(8_!*?IynZ}b zUnfBqi5*I`roSshG=EhQxWsQPJftYK8VU~a$I3PV1xHQoMS!=O@Aoo!=A7qqtmEe_ODFY z6C^8GJw~2cjz>_FIv*vzx(Llk#xGXU)4P%rv)du=zs~5E)3F4(<>np2ufL*kt}t{o z%xIi9+(u-}Le`@0;l0$};N79FR>3zF$(OLtr$Y0m{cKvKaE#`YFYH0et-R&St z#I$=96E&&V@LP77gp0h)veO}D!{7RcK4l~=DyuEw>~O&fO)(Sxkz{+Wq-S> zTzTQ?FS(`##6#Ko5S8-d`7OG@bu@p&)R6ui+*K0y-WPDI*}W2g;l?mq##iW z0Qn)bll#4>*<9;+xE!bCDyz@ zK_7Z2L1k>Yj9dX}geFTH?;jpB3SBtUf$j?xFqqNGIFgzK~U*O z1Qh{-Irk1YA6g4O>SCsyTjYn&~V5fp(c35pcQqk)FdW#@)pag8h z2dHxDmY`M9Qt8{n3n!(QiAV@pfgN&RpYR1?0#L?i+|y^RrMcrc8FZ9fup{@~$ss_% zs2VdU|H7&P$?jFoxC2138301Qbs^twz?i*4P-x<8hw>!kKU>@VZQm5^r6d%F^6p^B zu+>}h--Dylw1p$UG%$BC%C;-Y8o5~Hu5wUDxU*b?wkC!te++&Gbi<%7g3!yL?#Q(K z#NS=Z5hG2@r140X6p!zB!sAS7G0w3s@F*yZSLft{J4IKeZwts1q=}x>6<>|HW30we zS@_BoaI2cP=hC#*$dU_)tNerVZ_h&C%Zk3QJoIs?G3!>2{v_mlf|2JSuBHAML8Wq zz46^`Orby3qU ztJe)B1KqQ&oylF+WQay6=Ni$*E*DQ1$`w-=|7z)CO7F5J72JP*&zxNVoe0TXW#svk zlJY@h;_f64k*OHAebo{yeY?EZGM@52kn8@K%ohBaeua>lkMljm&4VI6LwF1A4qIBlegfZvQ(5%9uPwd3!_grn`_hkzZmaY8Pn-kVeVx$$ZHt;UUf8hkEk zH;PQ0kS_^rz%*`TI7`lDPx|V7Ykn^VIpj1G6;kLa+}zD-L|b3oE&N5EAseBYQMWta zmacI&8=`@h{7P5Q6jk*b6L2<{x@7Ax>0=}Vt+_&UeC{{K*&HZsXF2wfWQgvma>fvC zpmp}b#3IvAhD!$4s^_Y7p``&^t}M#2hO}FA>)GMXrjk>~J3E9V%JZeqTIOQSQas?X zR2eSR>r|%ac&AOvNF<^0xmxIGuh1>2LQA_e)O)fgd!m+(iSM)D`g7PWya#;AxaQmhcBKgsM}%9y}E0A6Q%I_ zKv$opG-dfYATma3?>%07(hf>Klzvn>{(R1*Ta9aGKbq)9i-s?W7pT)a zV`wwq1f6GV84}sB3&tOmpCRX8mCjmchp$OawbwQ9>9)R!dl6rTul05y*=G3&e<-=V z{sXt2%@e*vAK**u-o=!_J^ale?0XZ+Q^?sS`jhHZEq=KRF;XH*6?&HFRHwHvc2)7KVj{ywi?o`;5rZFaJ`u*Cuc!?w)0gbPf(Wxm8i7 zS0g^`cu&d59VU0{Q>e+ULvz zp}qaSe?Dc-Is3Kt+H0@Z-g|9CJVfrIbxCs-tYRRt_P%Plp(mj zI`6}YR%vjY@avP6^ub#FA{quSm#`KSXRdt{hhIsxf(1Bu~m8W zPO0M|h;Yu`@cdWKvGSf&p8q@H`9FO?*f{KdF8qUOIq=%Dnab)#2wYM&4HiHCO3kCJ z9)|8t=Mbi{dc)i2f>|vDho=x6ewuLje_W&--c5~x@KygAS$H*V&$j9o?CkBE3h8I? zBT#(w*DNTyj|xS_i<(EFs0WHSivBN9e91tOEMJvc58DwqGV$4c z;IiI2x|?bGDp-{KGHExa`r!mH^FiL%rk;er%sV)3uJq(+=rO^pb<6Kbm3|F1{kpzv zZWv}ZO(ZIvyHzP9x0hF*{n7o3gG)qYdSbQ8-PhOaWtC!fiX7W!OgvN@v{O4@Or?VP zb1ww*VQU2U#;!>X&W7_1I;`@Zy}}CTGeRlASx?(&*^NqKS;TO?62rBs5ll72P;(@h zH^n71a6Phcd>XzL2EHX8d@tUoxG}ej zhtWx9c+`5o5A(Giioxns0s6}E_nI;pdT*p zK)fEdnL2=r$c(?}J7Y!PLGuwwrn<*JIsWhQr8J)>Hq#(P_K3@m#^Xg26u^{8t#*FY z$6C}(4RW9QQd*C&MZYFdU&Ow&{WRLdC#bCT%dq_*?4S5TW9B#?<}&_6K8IJWVu#1z zh4&vOWhlH~^a*&s>J!5IWewR#i*UJ19#0bq^@(r`-}2QBi&7u3FD>1ETHh!tQlWXq zbyGck<0<{%Yo&f`M`#?oAVBbZMulH$yMFLXiFk6>AE|Nt%`24W7y2Xn-yq<$0-RP; zN-%Ea%GyQoqQZ}URLd- zCNT(3za_Po@t`wj&(J1NI$ltHUg28LX%^62a!J@(R}P@16N7aNwt0%mr7#N#-Xn$2 z@(Y{V{7z9e7-o_fg=Jz!VW~!8`Lii|#_lVYVC6uobJRk2p-Z?T}i;mMu~pXFn`< z^hRNiCn$Gs1UmR9foLA7Bc3fgA5u4vVCIcchQ5$~m-#>D2>w(=s_>^5|16ftk}|1~ z86GX0DXbJez*J?v&k&X{jYl)t&;AS9vzX}L^N*bLnp>DC(^h6X6-IIINcA$)_uE;# ziRdf7{QB>&uxKfq$>;O9{uI73N5UukN#TR-8+n=qUcX%MPB;QQ_z6XTZdw{T?5PZN zS9#FE-`ANt{5<`*@X(ii{5@s(XV8Oh$)61Vgq11&RNAB7NRJhTGetlhfyeRRrkICE zVV>U)90iXekuuB^bi%WwR)JWW6MX(CrO6;-9H{N z+ybshPB^r}X@=Sx^()VQjQm;S-JbVCdz?Wv7)~kOR**~=4(1`hJnjjv7)-RU9==B_?R2A`MKDF zzOhK+xCu^=DD=AxQ_nFKX;f{=9NsRLVhGrBjmb2Rk5=x*n#5>bZ8iUp8J7wH?c$7g zes6UNTGJC{-sYMCBUEh~Gm@XQd;W))sP^=~L>W-8Rca|uqc@^QeZt0}(QA2lk_QHT z$|&Od3we4v2siEOpzpaS+xswu5y#{)(;B5&d=R5_*vE=+?;vxUGKahC5AX5358`tm zA6h8+m_t?SiO?xdKv76l=<#GaWQN;XzBly&(KUc8`6X|1dvHzk;F{vWC9K9%JOnOp zR`WDP!KxC4--GhX@n6h^Z&WUPqWvq3Rm^aT%Ul;YW!lq(z^OXYkHZ-_H>Un>;2Z*+ zs%Cm{*6~>;&ENiD@F#$QHXnb?O{UEhfzH60hA~EgEF9i?C|Yg2DPHPxeEW26VN*H?AuKgolP{S0{!YB-YzkbN=4qm$n2#0h+sPIUdx zk)6PP)8?fUa@qG0y{LGS5?(KG4!Nrj=JZ00LJ!r)?nXb;4Q4+RI@KZ@Tt^l@bT$Dc z9?zoFaeNmLZ4X32ETadW6~t+Z=OgH};`ChThUY@3G$7y|gHC@u!5@E=s8>@fWRvO0 z!jph3djf?#z#d#GxHIOb!lpt}&^K3Mo59mG4w6mb?UJ%851Ch<{WHq>M3MB|dGkLx z78(iYHU)y9yFe{up|X=U#QE0fG5kkE3OIZFVP~nO2JUacH?j%$5r~?n@y>)$7LO*(7NSZ zbf$PrULwxREHPg7MY*+@L(S<`MnOkj1jli_dddZfLFX}w_lXM_Q5$4sNS5eXNR(W> ziMzwm>*rXT6ORi?A}%KCg;ndF*iv4+`wP!CHwz^0X_RlbNsL0>Y=`H>4F>wK%EK0# zvruzmJ%_BOFOw|ZmY?$>uGO$&_5!U)>F(;%MjR^wOWd?>R_C(T<{4ILWHg_oz~a;2U3%1#WKBr5e`3?IX5Uc=j9jv1PWK z&W3n^|4Rn8VN`UKf{nlfYW%gqUzjqV&}Uh{jvloPYfegY=Q3ta%DU}ch{0OkHyV!* z=SegOxk_#MdeQm6VKq&|po$%0(cv*1z>Ztv?2R~|bRCbsk_;z^-GcTjS-G_n4e9uZ zI-lC}o0Icdf4R0SNSJZ;^4>)49EgMD+iC&?#a>I?_Pl(5waTqq9F=1+TL8(oXP1|H zOH_3e0)ud)CsBK94`(%5=UgT$Rhwy|CeT$A*g-?{A5EPgJvu$7pF6DE4uLAu&tcj9 zR3~=Ov4*>_o|M&eKK;@DvLKP?q;mUP0Cv!i#g(>z>}|mJXfG~HYvlUbL0NMF1GwJA z{RRfs&i`i?2IkE-y>HjvZ_Mqz_?5K(uV(i@UzW5c6a@3@COE$tUpaH3u3g+e=`*OgpohVYWjPjEWUlhsQ*@% znqH}4YnOANi|f*>WVDZ0gB9qcpY(YkSM*A|@8H!8hRfgJmb}|TiHl{hliJ;+8Rx{c z$LBLO%zlfg^L!MW(s{*SmpuA-Yg67xzfRpXfo(N`tt?4Ct=FDp{NLGh&3Mb^1~cBW z%^*$JYjCWT6kAPUf1F?H|7p5DZoyVV*JOpRLoNNhK@C9GZ)FWCR}RulIPnANYP;?# zroY0u#>)0578Nf@gwN(SlyIAF!=v*l7^U$8AB)}@^P|vv>!5+$&I*!WW^f~cPdsve zOgQ7%C}Ufc`Wyo282Fg~2D6$uF1WCo4zez7EywXnH-*@_yP3C8dLEX;-f7#$vc{{O*8stYD7bb16m{G0jTbO_Ao#J>;Zq;YU^ z2A^p>nE4MPco^uTA_ywp$U()eP=+_WggtDUDVlPq}p)UEA1b zy*x1(MjnNYYQWh=?h`_#JaX6IGX*N45~r)QnKw!8y(dMTH~VH~iDNiwP~bGp_Z`h= zEw4eyslakCFhzc@MXHcvagncfqVN}A%a*LOPSx^fP(EW`TBhuUTGqhp%R!V;j_3~l z>o6_0i`HwLp3%vg^7q_gLQtiCB>KGa+rvynx4MXLqvhN3%kwGAY)G>5rff$hH70-{ zcg*di8%JGpH{UmU-$&doRPe(h`L~b!Gn-Yv+eKYqi=Mas+unx)r(GYn6MAA9d*%89M*cJVvj#wv82E$`<(m4 zQU&1vYp#3iLLzSow{Sd3wE(%Et4PxyzbQ4=0^){hXPx=lyq3)049T;V;rJYdJphwmzYlTM*detX{C)m*-<1vXt*nfU_TvYdSc z+^s`T4!0Z?Y)!d>;~qzY+9c-B|3hj6XbP?FgLq(qpi>b=UUyWqmH;J_hfh?IG~WjC zt*`e9XFyU#V5sFnWZ-3leVP}gkS4RI7~U&y5{=8SE9%N&VtsVZ z;gk#pN%E(p$Hz+2d~9A&xfus*Rx&9bwABg5_3K{2qB|9{L>9QeJWh6Sk+fMsURWO1@-5uVtm;lERJX_)jaS(GMZC9GuJ0s#;{vp++X@_mea?<1T^ zzmI&E@|F1eDvXvPQl~pZn-n{nBBL+%8zi&wN_V?g9A}%zR3w@dt8VlwcFk zwIGM#7UX#IGReYXkqmn%@GN?}QIZvQhrN};J@%z{4Ov)HZkzRcec;5LS^L>PT zmtMhDS+{62DS)rtavsa!sxL?03)%WFE}a^{NR#>%%wR<~TE3_!Wt zq8ojJQr#{?RZ-`yv_9q0*AxMPi}c!qOpb6MCG*31&f^Io*}svO=d*?>Y$9zPQJynf zeEu*6VVtEI*p)pVhxlAo%l8A}mhTsYTdvG+a8j?yB5g*(7>TQlA|!S@Ntb~TPqzU! z(@QTUNXn-fM!F#6@<-g_M{tL<{PFn%^C?T|@nwi%emN|{Pf81)EH;r&lNom9r&vWg zxlcoLsuZ9yk}0RlM@po0k9~P`^bVU;?wG$FLi%_8WoUEynnXh53FDw55-C!m8wfu)G)8`TN*on>7)TZmiP>((RzW_tX>QCagNW<|t zQ>>;fJm^`BI_D1YS?FyJ68FP?OnSlJd~rXn5zpgcyRyT&?N^d$J;(*Cz2-U~FBLah zPhj59>_D#@AIA24i5Jr>-qrf=#-0@4E!lt0Yg`Yv*yfB1sBC_*B=51AB)A{Fse9F$ z?w1zQCsy7(Q*0Lh#LCA*)%b9Z&$d~vsyxI%;hHl?VSKz>%YQ9S1pK95=jz`8@V$EB zu8b=LFtOfRK5KRuYvm;L{8&$~qX${6=F8}Lrq%pG+Ug0kDi@|KU*o!C#VYGsr1X){ z^A*O@`-v1x^e++s6BVbI%Fp<(*qn%1goDV<>)g|uK6qQ?9fpuo`D!MI;&*G%rr6sY zr`;v66HN|(H!*?ZPs^D3LBfbe7O$CNJ9oHLig$q|bD{=3%X+E_NhYV`n*Pj}%ASZ4 zhYY7RxkI+YC1phS!`!S}#X$^WULbq@jp-B_%^%94fk1bCU8HK@;kh7B$z|GbM+g5d7U?y(g+i>VYapWrh4}RwvaKF>8MxD z^>jSSAb%OKvkYZWJHw3AUo2J>IFcegkw1BsF32Aq-veJIBEdCOB8#(<$8}GY-ID2} zB$dOn4eQ!dbnq|v7nNoV?%zq>`G#sHPy$?~`YY8Os)lOr#lzvQdt*=bd0+noX|n$K z?nb4(`o0~L>x-DcA4*i;6O`&I{$Q$kgKFgD&5EudRn4a=*UEMEU&wgVYfV#?01louR(PKNBH>4N;?YJ*xFv8!?8YTJ zJ>h)<;&9W`-V*KU3DVPl$o%MheGiP}Snx=7z@rN|z|$hHx$q=Sy(bS)cqSYbp6J$3 z!&5{7F#jV1Pb>^P?+E5=fhTKyiesq@4krM^YMukDmlEZKQXr>HRd>Qe8cJa$-hFWW zbS*^f&ijnV4E+~$(voveN!lP& zl3j+ptub#KVOqR-5fdJHN8frR4L$}s`57WVi9%OQ4dNM?a&mt&Z{Cs2sq6I3JCb=C z!9PgTBbiQfsi{TIVp7Y^vKPr|9&X-(gjnOvL`*Qp+8lFJcA{{`YE3g|-SmVTi)=%r z!->MzO`05g>xjuoN9kopObA*2+^MI6JNqS43#(%leEI3bj>50;wCa06R+IKs z+z-)zqX9h_0VWpT%Q$0}q_;Kz^_wo#g+Wd#y8B&1G*bG_=>c(nZrA zIAWprA?@*USh8Vr=xO=&<-L^K8?w&qkU||4a$nt|YpR9qyvQ;)wd}z{8#v~v2)F-4 z7WC!;dqan)@Cy%~&Jv_xOqyAkM|Vdjoqc=RV|MG4vKCx=>b;-W-@)&EyM#6koX%dd zUm09jXANINv;SmM!LxPN$bZfWvOQx1U)t?>Nm-pUDC8U<4drBHyQZxdm8_^`5J#G% zKZ3-D2V|#NhJQ$Z?CH`#X|z?0+bc?1N7IKhlPnvrl}^42C*l`ujclv3e!V(?`^y;= zHdWsHeX4w10DqQjquI~k=}pwT)}FrEZrhe0Nd!-n`okvz@0l-P-gryW*E~zTYpHk5 z>@WEECF}wxxTqZSsC0tZNE2}BT`8@vnX`=$tT(|AJGdL6H?NAO?=(#+p8kD%>;B{R zLfH*M;|;&IMqZ+$e@z4 z>vZ9->GjD|lxn}935rOnfszt!vbV7pK3CHRWozK@l>*Ry&yVBv+8zSek>vls=#%G%T}? zK;jcz#KrETbow?@tsVQ>ki7aU;n*B2h{zF`fA+4YFQ=i}{Zp=h$IiS;qcQE)$nv3U z-XRzF0IDy)*f)>&BR(!qoU3ZdO-LC(*uQHzWWR0 z(t}G>Kd89cz;N4mdhi^Gcc&TnD)(E7MSLfw zSG4?v2v@M|V?RUqse{o(;iHPzp?ARG^CJ6RRgETsAvNdt3#Jchi3Zwxx25f?dBg0) zprUAEN~y7*C&b4bUyi$aM=(;kso?{{9LGz`2jPElga6_I5HNY>|3=k(xr?6p=Y_fI z-=x$yc#2Vm9Nw6Qt44@2bk)kmN9+FuiIQT!?_%$uo!V`?&x-~+>iN9G^n9Zt zeCqKz=k>S9>o2<;kFV1ngVaq8yXi6RxH{8kTonK2(d+r0UeDRD z==b|CMMC_8rx~T|0p95Mb7z@;r}6Li-*z@c<5gz-Bl~)E+>XG zCqi=59B7FrR?44~EQwlTRkYiQXrJC1f_u_;LZ;aJHVLJXjTKf2v&IwAbB6LH7h`=> z%5&@6yw4HGlW-wd1buw8jyt|;_&HDjac2}CuUM@ECk)3a-TIAQez^)W#RmR?!w0cj zG{sl{3GkSM^AjE_Onn)A{G+epqt;CB-|+@Mo;>pid_ZUtJBgrPt(VEeg}6{#C$YJ^ z^Pru$jGG0f_R;+SR_i%d>kSC9_Mp{z{$Zzwh;uCy4mx|np zxbI*BCeO<1@|Ao@;-li`1ER{bzSYp`AO36tl@jNGe^RHyRSo>Qp(%Az`kgW-^1lXn znv`F+*lL|uz$-p?7a&&`I0wSz8_Do;%ZbjqaQQkO*UC~v>t*?bvC-z+apDQ0o>4@l zL{H7=3qF62#??ci3Kzb7cD`2I%Hc!@CP0;mi{rDliz4wKl!`ZFktEyB7BOHCK|~Fc zDOjro-;fj{yA0~OPUdGij?UGZLn7=EL1&+E%7$%O+}zVQBJrop#@qgyD!dH+GBl8SeOn!K1?E8dah zcV5usH%#(sliVW7t|YHA$xoT&Kbz#e{H)k5$$ui*jOV2U6-gq-XnM>UbA7k z>+QA!@P`dI-6X6w@x49gCx$-9mRABe7ycL&M9bGHr)8GGXW=(N_-wMbbFuK(-~inH zr+M=$KCUz{R`f3kj|+d@74H)W4uEum|Kfq_8O-^A5GiG*S0+B1&u>oEP7mIrEU@DD zyfH3U6S~P4ZLsC4ykqu1o9RAC-#O)Jx9x!Gw%Z#H&~q!{2u8H`J@h`&V|srJW8n8b zOok)-55LXnKO4tO>l6dvbEWXxUDonGbp{9U+kf-uVdBngOh~^neCEr#LtwCLl%S=& zfrm@KkcEf3tavm&{}rn6<*zS$l7fcHHY*{ge{Hz{r|COTlVBzhEVdaFI%_qpRlKmX zECe5&0-L(xU}T@azlbdG-_t0@6Z}^UIq@Z3CS~WHA;`HfF-VBR@Sh1*>$sw-JfRTy zZ@b{v!CCUCB47FMdNcoS z=MB7!KjR4gt74_~MB#9-HetRO7TAeN!Fhj;um>{2CddmD;e{eR4ZN1#DH{yzwOVH$ zYN9p|9NwUREW}>y|^Im!SELr4xU_X!^Zn^MK-~bQ3Etee*^t4Qp>mTR8VygWR7VGgb z-(SHlQ4LKq1V`tO*c@Wwj>Tt)1g;CU?JThGVmanxS=zQ9e9otc?LrZ9E|_q8o7^O> zf{4?`E)Ve~N^l7-rH;yx@x%6AQKzIVvhQ%zVY?~Hzguve*abXAu_a;1^DdzNH)>e# zGae`6UDS^VB`zQg)u7Xf+wH+i#Ad6tFLD+z_K0N`+us{*34Xa@JLjGPHG#c$<(7ta z8g*{~8rrwZ-Du^z5ebBCCGHZK5|@4waa=sDIM>k!w?y`3*{8(03tG24Pd>u0JZJ|F zNca`zab`aKC{O9;PG$QQvw4GV3O_G&!z3J%vu%~QZ+HMW6j(Z3bwnT$HzV{gj zZ)}#*9y1F~^+K^N*4=DfYtr z9Yo$Sug2t84HwPUkEgf3YdP_LHQuAfSNlKE1E=uzXXv5fN(816#O@<(=!rNqXVlw1929pq=4L`uW;G&fg%hG!AC98GN zi7np{cXPvghFlNYm2Whx6nFE=zSMja3h?SzI!K)daAtle9i-09ybB#<_bt^|(iYP_ zLkEA=IiEN0Og6g>CkVcVV=O{n3s$nu1Avjrwa8!T7_<@%tnYe=UoX0PMt_lg_aBQo zjo;P1h(#}kmy6?O6`)Fq^U;cYXty2CcVFCg$ZTg5!K7jR3_iFoP%22=K!J_u9tWi^ zEw@+8-Ay^-@DW)Uz9MrebtU^-j?w-Lru|biSj=v_ZP$572YbU|w|i@D>zVRi`_5)< zTS}Pr1DmDXQAyJ*(A?D)7cIstQZuUm^^7rz?qRRSh3sKUe0UWr18=___H-j^tG z9%`KT<_%dKDSs=<=?3Rj950c;o4uEgVw?Z`lpP;hMof*e5~?JHx_d7jPK*aybg!Uw zamXCWtQx5sz1rW$ex}Z|if0cE0EDgX=TB3OAvYi)@df?-{TF|t^Rf}9%FO;HZ_LY` zr&5Z}x$ki3QCjqU3dYZr=zlBKlfCeO{EV-l)QWZD+X${w{q_eYdHa4%UPi7JuS@c~ z&uH?6Cb`2TKhMvKwUWHrB!9^yFEh!njzG5-XSn-klD&C_zN4Yo;st6B-T?|QDeH%0 zCe{y2GyTDX4KfxU96(?$`Zbt-slCotmf3ZB7vLW#%3FOR)LHkJw|eUbJ8NQ{`?x-( z)M^&iXXdTHvZ{=}p|7?4mYYfIo-7eDCl)o-x@Wy9Bsh`rPg-{*G0wz&Q03L!Q}>sB zz4edN;IR6CWT1Nxut1_~aQ>5_1~%oJ?kDe>`nn#-<)ee!O`(TPp|DpdQ|UI7?hRy_ zmoD@F6Jsx^LDqZeTnwb*^l~aR<}QQPz!tjVL^tZmuOF&5x}2vLUf@YMI@QP*`Zcj$ zair&Acp7FkiGPQuqK4yG0O*o4nojj7JN`>`y(bDIoMGgmjQX$I&ZTg%n0_X3o;cm( zztq(Sr+OGg_5M0m86?3G^4IXq-4jb2t)?Ht9ql;PCI&kaO1g5r)s&=N-hU!D)brk4 zBY6^q#k!0lSql%pB*;Y1V&R@iotNrE7K7JBVMxjWY3dvL(eOJ8-NlJ2AA0FXqVSe3 zX`!9VEx^>j>&4Ht`6GLg`kUeB)V9`d_Z6uvQTPhs85CoQ!V8at_cBu|!w)|_o-;o+ zo?A46?0-6*=Yyc5jOTAnc5`;fjHj+iIn`BkY>$$H zNpLQ;$tsCC!{gUgW$I-Y9#CkCG^dt@!X0%E07*Jp0Akk zG)re%%^dDz_bKvU_F&|{=z(0W1xUXoaIr^Xsk?Qw8X+|3vhW+y4}qu6{`v)k#V7d)i=P4;$zL(aQ%&+Iz_8+= zBwt0c2?zW6tZ=Z_@_}+i^hI`1$0K%8Daz+FMJsdSz~YGp<2mcsVc?r0@LlP_XBqeq z9)_R9i}e2PIahG=pIir?ERwss`_wsxv6@B_{l6nPN>n_sS3A>r2A#2(EAC&P)Xq#Y z$+wy0Yd@kh!X@2BlB`!yPeKcvP}Fs=x!*anJIEC(L0%unO15x7q=7s47qXHaa-Ol8 z{wSYJMEuYbCcSzJv^!W>DXciC$r}IOsh&o{RH0>p^qT||5x;r{2@`esIHq6XChEUa zJ(Gm<4L{UX?RZQVsh#S%Bz#-vgMR6#&XdN&PN&^bJ&Gq5m8xsySBM(f1CahMq5m=i zJDY)p62}cbM0l!B&BmzrH;AhHK=Jr=8F(Bci2BYG-p&Z$Qbyj5x8t=_Z0FaeleN=$ zG~KG5!K3L&?MypfHJ4Wf-?>G=R|*kV;9{k%iv4@Ev2W6tP{)d^rNNILH!CHgVKCK# z^&<`C_?Kt=(*XJdIzumJ5Aw_**;~;l{Wgsl`wo-dTQ)LE>0MgYz9*;9kZPH4=>w-l z<;uut{J&dxkH+sJ4iao+T3<+Jmy;jorm zhH`Ol1QV0kaWop+o(we}uHyb9M#oyX6u5Xt8jBx+r(^?r*DOL<2STx}VyPvqrVjz3 zNDUOKCV=()Kj^%siKt@$a}+S{$E8xppi(i>e>^|oc=L@E&n#zlL+McOwo(HiOZ z=;X!jc6)y4;afr40P-`F;`x3}(z9l%|-PQWG@O+ok$ zwm5ZKrlB(64x4^UOXJ8W_p(ne2>(NK(U`SJPO?UwHIiW&z%8XFuS}|*B!M5qg^X4KllI243phw;9hNQs*1-IEJ~k7Sy@JyVU;96OL-f0hCmTq2pY#CPsq~3-ew0uwYTqAwQSX#tw4IG2}DX~UZhc@gE zb0j(u4g`!IE)9oUevH^|Yxpp<@2v@mOMZGdHHi`?onBi_Ptz-}=U!)}LoqtsY(WxX zr@d`kuw`JXm=|xJ$w2j>FX=#eVf?0jph$NkwP2s>!DK+ zJNfQ2`J@kR+k@ej(W&nmAdNgo!?0P)!t&Zds{u>ycb58Rc=Zb$so9iP{^#3y=dk3! zoS2R*5dK$+`T@3c?6fTVmkIV0Wx%&62TK&*XWoo9q|w|BtMTx$;P5b5vBxDP-uh>G z_2aF>HZt+nt2lh09cfha8Mt9ATe>n&TaxTAG99qah_a4?e0AvgIL|?Do%p>IUuqs$o7rq#k|U2 z*!jVbu=AavwsSQCqI#yHQHH|MylepuYs1$9%?z*A*+0(+vR71^SA2P&4&xdZ8y z&t!i?#Y{y3+1*KGW{2wS2qAfg93C-3=uf92@dRLZ);~l5<@xq9JJQ(>J7>1IDVmai zZ!N#=W_~#LRp%Us-XEAVqAqrzsJ@TvNp3(V5bQ3?Z@7kg%N>0&6FLo-FUig~-FO%t z4L#o9-#2CrJ!I_D8%(~q$=BrNvlBlnb?0pO7&Yc`^~Mk#z0|Gy2xN4`+LO^0;#!k*=Hev*{-j!~H_~7JFRj$7+@Xz}E8P z?CBQ|i6*Wq6(3jpVQE?%G1h|{M0{IKF{ydL+1+SPa-Gs6yb?IQRI}}J-~FyhX!ue* zekVzOpr6?Oe(WnJ6L5wQW-LEV5B@4Uu0qGex#Xv<_uOH-4tcdNl-eOBz2@X9$JMPV z>Q`{@^Fe672`u>Spr!9sou{I};J2*Akds_RBm&acE3yiFQ}I@@5wIAz54pQnnoJik z^qZA`t7+g5CjUzEcRi1O-+!%=-r&!g>S8AO-Xp8?_zU^(+BG1r>-o(4Qh9$W^M0JX zW73CUO9u4yP}{m(`L#~-~&Y4d`^qut;KbHSmp!Y-S`KLOW;1u z8n{nB$tan*c=bxw$9%o``=%Su$}}q%pVw#UiR2a0!0;bqKIAY4*#qP;1~yP-c!PDz z62?OLLqFjUR`VcodOU(R*`I;VFPjDBCOqD_0bH5JiUG_nCenx2nG=iLAFlk^w><8l z!uUkCaO^hwO5I;P^R4PI7-f=%$ zZ2Iq+2Ra9`bjzO`dc98byB`%Dnc34je1GZSGfn<;P5x(&ncwG&Hye14OT%;fr-~T6 zM%aV<&c$-w-Q%JXx?4g#cf{no{B^{JfC~A0RDM&x%GM_`y7D$C6)y8z$bi8wqp{Rs zazdDQ8p^nRhth5ABna~yX{YwVto?MyzAsWm#%mM^$L|rANq~8V{60R|)8j&j*e7gL z!|9EAqFcTiWShBAtOW9jFIS?CKd${Ox$*-jz-qdep6G1@ztsn9V%2ZV{juWAt%Icv z=+Z7N1@mS|FC?y9*XMO!`}>pzpZO)#hklmMR8A({*qU{@VyD$SRv^v3T+#R&5`*tj zyi}Z%uE6a>D^L34uW&~b99bm>7k340cc*-d@xg#Rh08O+M|@BjVZMUp>#PSiqkTpz zcia@o49hj9_SYF5(}$l^dupn(pD++{)ZgS-kk+#%v3bJd4nUHRGpl@)eFhC~POp zainmi8@497-O3dL4aGQ;dhak!0T09X2=UAPB}3fJwI5(8z2`pv^_-dTR1tOZJu@TR zspKHkMn~*^3d&N3mP&#Dr3LT7~x_$>ZoG?5x20b&`-!yt;2k zX^Nc@gp1-;GK+0pf4XnMr1iNu=yN}sk@|`mpUgo2+z{)g_jUf=8_d~I#4KD#0`v2@ z_Z0nyP5{4hZH~L{zU=cKzI@2&DzZz`(^VSk;;ISR%(g^HY5bR>soIqr=9Jq7sw{D3 zh0WUJ%Ma}7MPx`~maH)Jo}M>b6_AQg47?u|WC;tP{m4Lj^>&5!!X(5p13=uNKuhvV zCi&|od6abKyOMn9e^u+u@MnMhp; zjCUBSEqi(p)QYqh<^L))gSk!{J!%g`YV z&RJ}RJ}zl6>c?bAF5v$?#Yo>}+A2#F zj`3ruM%7CUsIgIX5J(t~51o{7Ryx*!m9C1;}WzjR?G=AFz5 zV)K(z*T(!MF#q;a@lTL8R_M;t(9`3c(f|H#=JQo%^nNb zU(tM{ce)39xx>}37HpqsC}8?FCD1KzGxM*PG5Xw};ZvWwKXAd}!Fd^fL7(2GJ>b}o z-_UIGYuqEaKZXZjYldGK|8<7@eTHF+J^m4e^Q~stqQpKoneGoaN_~~>&M#$7L`@98 z`V+c-6>`2W(r1RwcXr2wX_qQnVY9T zx0rEW9uqatud?B<=}n=cfBX90=U!2~-ed58@8N^qhEj$qEH(LYdd`0;`#53W&06XQ zg7kD4*zaZvGa%nK1M+(#I9Bqrq6nv{!D@PvuSA2aABzs#EF_(d1i1;>)5r&iN%Y;ED3Dz?!k~#npvaAfIQZ7b z=(2BPRCFUx*??7Jg;&FUryV?q7PQ;7UlQ7_UxHC{6~>I(^Py{ey7KAo4~CK+rV7vg zq4=lrXUC^HABl8ie5x{mCsFZ(bS-|R~SyB2<0fB6LfK$Y$dawoMPqtw4RP`knT zPDEHdCNSfHi!KW^uo>blw^nvL9ql&1FLucp`9`vX-^bvOKvaCxsW6``FvkSu?Y}$Lc>I}UL+K0$#D2Ogj6K9h zbvp~%Ggue9-y1PO+qZw6jW!s|Nx$&I5J>9uKkFPmFEcedFf(}N-Ak)9fKJ@QeGP!-|p9fiL7Flz~$LzmaaQN?3SYI4FT$I*} zt@qK3nPTvRx7=+vaSv$RCeu%#%E>_aB|NIvTflFTNJt zBiWDCqW?$L+Qo(isTTbhT|x6~F>|9Z&uFvWY4tCw((UWS^+sRzPOD$`FLdJX8*O%r z(Sq;SpF8W>bSd%>eJ`72A^Wa?`=W9?&XYpD1ufzd_&S6zJ?1RfMIE04a2q44A(R> zT!{x6F5xEbRliYX<6e^-GRZ&6XC}*zM|T{_?nw-(M@OPRN1TH>Y&M$st6)t6`@%b3 ztG@yT&LC=+JHp4(N_WFh#ZnF0iF8~%h8sj<7Q_gL8qM;t+`^{rQFdc@Xf|@vPnDbv ze-^4v^FJKe><@=iv`}$oiDGce8%nr;7d$C~hVRXAZC(4xS`R)_9`2wyk4|8~840c< zZ@e5Q{}%&~2Sgy_&;84{c~_<+pXx7-KdiKi-|4o5l86Lvc=0pZ`Dt|C=mOdHR4yqj zrIvIj5sZzzGh_Vq?g^%Q4>MBkg&!Qrp9PU~X)BZe9FspLBdh2*Ia3I__?eD)g{|^= z{OmjiejV+(6Yo_2OU{0AZfbbCmeIvyCax_jwG&)sCsVdGZHq8{y$$_bhSl|1^>afQOvx(z;X?3s zB^UnAx>6?1*x46H;!ih9b)r?68J0&3P!Fk89{&Z3t&oL$_x@jL z@*O7m7bZD*7(p+``P>A_%)%Ubt2^{E9)u3^b!!lM(fBetk?P5Y!e4#>%yp>wM&>;C zyYj9S-pFhHbg=5a{a_lqJwpV$D!3bTzn`-nb=1Qj^V20gLyxDtrqlBt`B8K`yS(YS zF}qxv-rJ30GK>7~HMv>A)Agn{N1YAhmmdNV(*@+FI|LC`>Ggi$OP;NX`EW8~n!DD? zXeOEf>)8WwV=uh;*J880l!b?!60|+cwB6sdeXg|qh_qd#ZJYZ1{RY|X=S%x+A~;6- z!bRLiuI}SG-7}mfrv&ZS8q6fN2tvm{evtOXzvs3rk-nSueMaq%fBj7iy4z<98bUlK zvKOJ&C_jY13Cde6DQ}s(+DqNF_vcW9Cj||q^aso=UMSpnh3w@$npJkYC~t}W=NqVB zep#U&Ay5mGa5w%Ey`{^+}X@+w!&`@CDn z18{mCzBP)Vih+!i5}f@QfMg^|t{<06mb3TUn5GvTu3ahqThSL$tpB_Amf!@`-1bmty|!XcWqk zKlIv0eb7f=BJow^vHbD4R3G$lng5t5yf#O7z07E*x6Mk0A75e+;?LvPd@0<-r%jsqCr?X%?d6d1WGmckf zev!SwjW~#raG9%|qkIENcA{1ku;!OJ@M3S`gl|tIKA!_Hytm7{(`L19v^S)~`aL8N0#DV^8_O1t?p@YbPeXlJW!*uT435MGdPcK*b9LW{LsYGB z+21(bmz73Swf6LJ%Oei0-q>5kX(i4uqTAkBwk#TWOMaK4fJV#p@zJO0YF=1&CvLE( zGa}KlPA$fXtbJCKT-cWwv`WZ?-Krv=lk#lc!HwtT#3LE1N%p=i2>c!a2IuqCvNa+d zlX97RC#P4f*vZt=cw<>F3m3AK!>&b6=uwvvrIgx|kxx=;i(M&rppvDwH7Q)S%qEiT z8t9%6R?}=CW~KQxyl10#auXEyrpkDe<<2|_!Q61XJSX#NoX+||q3+37=Qs41y4JIq zHQ1-7xHC!!dG_T@EQ&Z>n-DH*iIl$~EiSee9;R~=T|w@GITzHQKT4)7W-TV)Vf)YZUFS8UaK|AP}9*n*~H8+ zYp$d`Zpq)&N%U$237E43GJ5>8O#XRPzTGKWnLB%cJVO{Ot(z@jYBZ7*FgmSUo?+r2 zp)ave)sa*)Thx|)`|Qd+H=Mw(v%_xwA~YYAxI$swE8P z19}o%j|cgK0m?V;@o)a4)A*?7yfewqRay4w(`)$P{))<}vSGP<|EJ(GFhGh5LQ_>1MncNG-e=vQqWP=$RVDA*566Xh; z7Wo`*LH~7{rGBl%oM-mKBrSMO-pys#a??4?y793!af?vqlQq8|A#D z8lRJjAd#U27^K5(rq4(dD$<-ikqz&2Gq?5N%JP)GX`3F^Hau)D6%apbJ$!7ny~$<& zpF)kQOah#9y>d=h*k%A0bATJdrP`!`%naMGBi0F#e@G&%Q#PT{PZPvaCfx=qq}M$* z+t#Gx%lb-n%1YNuX6nL%Am&1L0*Ae&j`dy>+@vA7N`VLV8hkVok9JU`JqovA`-EK( z+%M^4jTBgK-x-Nt(orQFrmY8`;r}E#06SbZg}5Qa6Og)v|FO-#FEgASA!p>l8?7Zx zW&N4vR_i1B8?x?LWq;3%*Qip)sX*7b6+0Y#{rWXBW{;FLQj<4?HHqJgUf^Hq8zof+ zn3&N~=k79fUNOkgf-!5{^&+jk(&_w({^cTmxmQzZgtM*@r;k^6)VXaKK-h*#VDrKC zq4?#~*iJB9J`?b?N|-ZqlkD*`BhnER z3IPq5PaB9f1!cG588gVxU5=|&jb#Tm%E%r&iweS_BhyYb9 zd$^twejCzA579*JkVrh=o=&vfcH5f3+TUv1n!Lw8x9Omab;z2$HpI~bu52m_RlYKN zlhB(a$bIxSlP^-)UE^$xSd&(BzjM@@us2e^A=37KK~3e>S(isKnM-R5F6BJYrpWYj zxC4x_(0c9iPa>7C%&L&{{umAQ)dPXcU?>Sv~FOHRSeYJ5Tqp{PKjR|sEKs-V%aLJ#HGAp*=3xIP^liGDt%jQ;(M%)uYZth6g~F|rGG0n4sdBsun6!Y75KZ$B)hg2DSpuh#%eMq>)kq$G}W5~ z#hYs+*x_opn#@;w!@Z_`eg!6b!?k78*vxj4M8$|Fmg%P*jpGIetVK%;1g^VHKF9`) zKVb@^tF@(sIMCGw#I_b7QToNUm7I~3;%!~UcJT&8)q=Op`wqq{S~h&aHrc{btU|19 zM_=$g1ntaxjXEFKIERZjHNFrG3A^s9ao$CMs@_l&=&lLuv;(h&y2E8tIb6TnYTiOu zV($fzG#q&ab*1q^`7qC>A_R%EnNw_)AK!2mK`+>JshCBLv@uYeb^A6D?y7)S0(g{e zI>6}~s9dy9Vpi-ZmK(En@X()QRrIHr-PUh1zmAJ-A6C4#cpcMiNb%-y@c}G;t9tKo z-2bF#BjQ8bjv|a1cgq#H@R@%oOfy0NH;q6f1dF(Vpo~&)pXg|5hXbU017iCGmMF)F z_2$q1iojW`oX1Yg9D-htaf3nthl!5f1A-~ECm_@rkjO|yl`qVCQ&dkIU368z=JvrN z>lf`+-KzriMNNd4SdD^NBQacvzVU92^M1s6Lo6qgxEnbq)l+_KpvKv?%!1Y1^idL?3UT)Y$XmU#1u}9UI z!JilZRZ>30`>`@UP*=<^=qL~Xz%dx-mW`6|J_ zU~s*qRaR@SdzOCM!zZitpnEEBn7z19-gF1@j1qdiJQwl|8Sx|+k9#96kTgpDh#52D zakUG@pdx9hBoz$e8B=0`8JQLxmbhnq#x%QgN-9S6f<3{BAV8WG=o_Vq`2AXyGY%W$ z7Wtx`KHn(iuHvsQ1C(|@Coz&q9Nn9f@}*;@3_fNGS2+9qKccp+nUw5Sv_IqSbcwY< zADfOeF#pQJbsC>$B7x|vx#K?zZltrHvPM%gs2SPR%rzCgsqgcT=;YJLo;P}D>RB9* zS$dq+{AKY(f?($O6Gn|@!jHwdHv1GAf+WSF1yeCVxO&t+_Y$t4wkD|+G7|-`ee~LX zOVms@F1s!n~Wpiao&Y7G~lP_|I}$ix+Y!?Agyr=$G<9m6i z@1JQQzw2&VKSP9vJzoB87=)3Y^=>si4=fzS*DXKY?IO3?RyZ8%BoccD_PjE{wRh&D z#ERjpugLzPWN0Xgl&`L-{Akw5?$v>Y zGnDU#oPKC+*XLLiR4rU2^*>Z5iN2|kTFi&h8$Fwl#u>?RWlx=lMdGfirNA4cXSyFq z{RWtQ@0M4on0cwci=N<-o_NOQ&Uz(nkk&sha8*^ue>Alk3@fPsz%W`<({qSE;F!&} zEX7XnylA**)xMD)NMlkP1c<+rw^5>Q3=sn+)V-?6YU+h``gTm1E47=J@(E@MN-N-L?zfkt!Cy4Nmmk0vG! z$A1sVU2eUP3x2D-i$+?+_N`|7?4jb!=>q|;_~rmd^M zu6)aiT?It4g#fR~e}U`^$#*23Xh=V8;gb);o`&Cmv|r;sa?K?2<&)JdaQ*#q9Ql1Z5R+e>snx_eA|k>%cs!3 zRYEyda}WQ@To@8^N?G=~UXbVaK|CkQ8y}Vu@YK|e1S6AWSC(v8L1J`S?_$j$aO;Z# zFeAJ>XN0Y$Gh}FWlw;gt0>2b5;ZbJSVj%y|W*1RII8MuHhm@IJtg)n6$Qf4_+d6l_ z_C|m-vy15`W+_t-qrUigW?EmC(J^~xa4Aaj#n3_aOp|*6y_q(a$Ny}m;dwixq%1zT zm*k0NyqR{$%rr*Nn`t--{Fx>QH8brLe?O3ha7oXzMN-#)GS5;C+B)*;UFvoRpRY@H zM0;$W#azednYxKz8E=2AQ!l8P65gAbT8N^e8+?SPzgtBJO%Z*<&)szqf%T1$9u`Pl zO@A~^n|Xk=u5F(Z2znIEuRsLCLh@-;1F1ah>}_Cf`=EYb>W3Z;7+p&;&mux({qfs^ zLa0s+?wy}%?PWn`R%>+D9V`usy`Clh^bYWJMt85B-EQh+8d2(U)70e}>gv2Pi@H`5 z{!*#SEhdN!v~?fVq<)W*s_gTavn2H)=vUd$nU)Q%$_63Y1>5(Ce9%}f)OoqoxmAb9 z$5L26RWQbuoVLkYztZ@)AEvkQMFX$e3*PSmB`oRGOy^XutRuDXF0w080+tKsu8q)%VN6< z#~m!R<0n~C)(FH{;zS)_+-fks9_2#~(q@aeB4h0(HKMBX9Eq2_7LM^sI@O?4Q^Xyq#is z{4SQ?8j2NBEOgfOWx+^%Tu(>vLFOv)ujJk*NfAHQOl#pn83uULT)PtfXT@ggyBJIO zps|`a?2K)Po9|*xWW(+%Tx(eLtI%9P9wGNuMOc$#@Yhha)G~_vtd{MwW4l?j@GRm0 z`p!;}Mx0&T{1hY7gLA9;TcZKCMBM86;>Ba{Jdc)OZ`frgZX5uAGmA9mC&s-Y+HPdu zYqG?(UK%4Qsf~ITd7{Lu#ZcQazB~KdwicAX!rS|rd%wN!6+1DeSX%p=etD#Zah!H8>!R{M0R;*3YipAHt*;=?seMIWJe?q%PrlDkdyQs!_OCVcJ zL0No|!Sh!Vq<%k*Z5RHs0}fcfFInHJq`O%Q3nO?RPOQ;rWf%3-S_{7m0Y@FUS|>hQ z_0Dqb#i~&EGgiYOK6;o+O8Yl+#~=!BH8GXYcyUtNpmh|k8yw~l2Y1jjeJOM9y*j$q z&EEjqX1}2~IFa~2gsRKiWDFR!V4rwN3rfy7SqY*`(u20t0CeKxVx42rNQ*UR6(5Rp z-vtJClPHA?_KO*7HGL!=P>NAjR;YkV@>=k8Wl>Op+dtM>f?+OFsBLEvA0V%2S?Pjz zrAH3mx#`EnnJTYp^-5m()`x6E%oi43Sb_O?!E<@SN}Scs_2O+mM66`uE_eO7Zn5AA z!$Agi6a>NUYN)3J*VsKgi66F8oW;eyvv`etoG`!mg;my5!2st;DlSM2DwB)W>^pUR zVW(ZZK2rIXEIa%HE0CI+)>0F8cT=0zJ!wp^;pcQ5?R1ye{1U9)8!k4c zGJZi&DyAQcD!HszEJ7!cZZ8}kx(GLk=v}d-fGO4z`>7FtLU{G3N=PXA?p62oaC{I2 zfM=0p;wxT<{dR%T2{4YVg|%reg=)6Csuz*7rU7xGEJ+(l{hqR(ehWT2VrjE6zAR@~xeqWk8sL+6k zpj}E&pyZRV{@F;y1xpLR=dtf8K1;tsPbYu|>WbC$2lzyk zQ5A-+^YwKBsi^%0HFo*FyFnyU$>1l)IU*Qz+Q7X26;$%_6o z3Q4!lkB=Cr>sno>W%NyaRxIX)DveTLEqWTs9jR>kr_|K2%{d%8i%>CWHMjl~`!4Jd z9WsLAfI`z#eHO}Sb^O*_{|U_J$H$yF$thXb^$~guP z1JMQ*r6~#Lo$*gNTbQG;yOhMjs9P+i+!5o_MuLosay&CG*pb})f!z%cV`TcmVp&Y{ ztjOZ$88Y8=eEmEfrOSo6-YFhS97?*D+l#_!HC59WHL=I>zz{WR#e1?U7J=j$5W-Ml zpkg&NYqdZ5OU{6?x_RV4y^htO^d?JbG7FE6pJ3ljJ&7^RbTm(J6if|;{d(nK>q9@q z(NmRLag_?2hVLIs(8%I*TdI%0V7SHzo~D3!dsFi;P>^4Us8L2lC7A$rakhveC*M++ zkTX5bN6(*W38jKc(k;QLQ-iY0@56plnR1W=C=u4}Sp2V&e{A_@tZ)jesfHONGOwCn zQ9DwPuzOk7Q_(-W`m!#KC;UV^urVTjXci_bUsrMYOrT+Vq-{G3k?-Yq{VD#iGUe|2 zhIrh}6l>9GsyAGaX6cn?hG51w3HBub9`mE}my+LFR05Xm%BE*^cDxh6I2eBh1)dfV&I1^Z}2tX&u`jY3!~%M%d}?$kKXSqqn;00_b9o|I*jV+$_UIr-2V-z!R8 zC(!zuqo>NIMsY|{rQpFdGr>bQh3h$9XC-2l5@opMN4?g~Q?xj&Th+Qdn2~MG0 z8r#&_GMUSA1*-rHEHQyTHCHB)>|uSKwUVx-B9dn0arTJ%;*;tBZ7rHv&;W;Ky9uap zlJRj1#B+MCw(9A@OUdYQ_SISq>dz@;NagWQB%Vl0MY5M_3WMOcbC(>$6eN>DTEaAR zB_FMnua1vJG92EjlGH2%*E|`Hr(@Nd>VV%09s9sb+%mBs(hYbDv$1CIWFz^1 zj^wwRXKF(t$dQm@Rj`guTZ2yW4GU?EolLK@%Hd~`WiWxsj4}oWncr3`L^8iM`*Vsn z>Jx;8SXE%Of;3sOSo+q~AXVXS8cS+kD#qJlv0Me#kn=&PJSFz+WHforO;otvRF}7^ zC{oL6tzvSDXUHQ;|AQTgJ((m!K&Ccyt(5$ta>p0eE` zjl=VFVOa-JRw+@*yvZ&R717FK63WKV2jQVxL-@^B2Z*4>w(f@aMfYi>Q9Ga&=;RZ> zn)Gc3xn!S&W4_YE8M4z`94dIEZ$4Y;AN`$uEy{e^*n~cmqsynhBx`ZPQuudg>Qn_^ zdXRD$Syllp(!E)^@FQK2*7;^=D0|X{f{&3+jM zWhuT1%}KBZnV{>nlb+)tV0;mojsl$aH3ExEN>0DC;-O$G>do6^l>t6kBsq`h;{}Y9 z;#c@6^w^s^NnGWgRWDqv>khwp{$G_DH=htK=7;&>6iH3pBIq$#?;TSL-gS)z;0|Fu$<5)mraJJz!L+ zFi7y)WqZ6Z$_zWn9+&u-hXhzzpHEfLte(^HI79$?Og$ir_3>F5v4s_mNW(6Pk67f{ zJI$wo!qiw5>C7vTKTW(asRp_B1j~6!YKGLJ@XY=!r})#b7~VPP9LVElA&;gnQHf7* z-KqPjcQN-t$ROaCG#k|I<^$3k(!BKKd z0nFafZuYBlDmkP7n*IBFA6bpF>e7py=j60P?EN9Ob9pKMGuHS<>=o9Ir32(Y@$$o6 z<`g*>4P*PYu(b|U2oUbvvXmb-uysr>(+~T$bxa)6+ zOQLYglVkFt)8Bmx-G=h-bxfRA#8bz_Yx$QF*qe#MN4AXN%M>IlKU0TFLWdqu^zzJg z|Lb`X?AKLMp!O-LK#m&M@KL;F6YY855|5wEcNTf^+3jF5gcINCjRZF1C**7Zx4?_5 zkc)_A=T_jQ(L1~Pp?}9G+N|tB;}_RP6XRy6%X?o(@Jwmf-SwPU3vA=-+dwGEpACCT zUB`q!mQ?=S=g6Q5(l?lqjJ^9PAEVF-c$_%Hi&;d_c$`QZ+(>|X(R$rG$ijhTIfOxp z`eCCtc3DRMjq4XSP1>BvU|&Rjv~qt#D(e&|$4{~^$+Kez0@f`OgH$jMH_b~qy!iTE zG=32`1b(Y@^xBKfIO;Xu8Tw$A6{k4Y28y#A`ieHM5&DX3+EEi&AFW({!%5NREj4UN zmTw%0NOGKjt=Y4NqBX|$_i?O-Cr5XOx>ufuBX%`wfPL`2oR%Rck5-(EhTHpCVTMlF zAOej@YvUUMb~cV@E(7Rj!vFvs>m!@ClGZiAho3FoazCc#jV30@^>BeXP$^Z=@i~M} zFr9YRn0uaLhfjAtux?3EwH?2_)cM-zq%&u@4uVg&o4D$57cTnE_ESF9>y+DJb2lmA z?c07-K)+@H^>)hxXr}<$-`AgrZp3z0h0{*l(950Mc^Noo7k%iTNA}?L&($|~$NSC= zR<53RVth_n<=z|nR<_SCa4sM2=Xd6mb-7vdId<5ZQ{c>*(!6ml*`}f#*0W-A(J1)K z+`a~(!fyx)=J0aSwbYf4Ps3u%8o^EC*GaVNYf*o^P!+~SJUZDCEE9%= z1Q(Kqrh9lS(s>y!D-rtQy;N8Nzk{eleuosA-=R{5_hDWYWxUG!aIgFbuly*PzkDC# z)ic(sXPj40l~<3PXq9}Ic=Z_mz=mY6o@uxMB>md|$KKn=M_HZu{}~b>YV?kh*0g2Y zxJ}!n(r!}I$_VNVnZOJTiULBv&^FtkrIoEzW`Gtc0j<0J{`U8J{r>pP3v!?5hwEJDI@h_* zb*_WpM&J2c@)M&Brvfqxxo?rVhIzv8hvn zHGE8sR%~u6?Wq0%p{8CdgEv)oRNqOcsoh?tF%9Ub{yCv)LqQ&}4G@c^;c3>_!yA~m zED$@)TOhV!Q(Jl?JpAnL;=#$15qgT^k0Vg*&>aYN=6ep5mYmC2t22p)h`Ze^CT5FA z8GWbmzDU^`DORC)vF89w$!V0feNR7{($9xeFAVFufI~;ld1UDlPk{G3-}B5;{HqZ0`9+D z@3jAmdKutCy}18Uz2(#!d`EvFRz=>;YuXvtcdz=O=`tt9c9IpYw0Q-GuIrk!ITe&&)s7YbW1()yupy^^)>`X#S~QJNe$L zUgn*tmz4i6&A(qvxARZ@GMDs+{}WHF8B;?ixP;G|303#LH2dV)NEqD3-qf=r(S&d( z&5pKU1Fs}xw@BS{p#EWR;@rDR(9y+^-G4Tq0(I5G#7Jy^gx!gAiEB>vw>dYx&Dsz? zGI4GwoSE3%1~pi(KX~TxDRMgc74Lm+#R;wGPS>5r+ggK|r~5YC!4uBSJ$#$I%c>)6 z2X9W{0T(xAKO*hbq=}kX6<*PA^UosyF3DLn2S?|T1Q#PG*8QrAvQcW_F0A&kA);d5 zRpm6e(n+mi*kkThT+Exu7V|l7t#)*hoP$U1opB=`X=*Y2NB9BK5gLaJPk%Ka)#9SW zmt?e?m%ZSIF*M^{6+#9e%?`Ht@xaTIi_6Y|)s47s)^2jMdk!4kTQ$toOHEv_Tk>d= zN6RI}PHir23hr(D5B5CQ%u`pxUTY0diEtHeHx(hCF&d$@Z%%bLN4o8vI=1KFRPVCN zQ1`E^cacU9Y1I#KaYkoWMX^rO-C6xdoaS19t^sHC-tsQP>v9P4CLODc2evD}ly)ff zF+N04sWc#oFDLME8yNFiC0H&cJJ?j%dUK^2&kIKJ zQn!$g9z{;mx!ZI-kcp)>wv&NjZskD#X;3$sw)X&I-Ys_!v9W?bI%z_PlL-&pqK%=j zo3Tvwk8nDcDND;frp`mRoJHo6IWg~xWBINydhDp}xN9D{M`dI>9_it$U##V-YT-+0 zP@QLui6o+igb(HuD$z969xW8(Zld}sb?vsO+hL3L#ctAfFjbLZA=iYUmWIc|J3p^C zkk^So&cKBij`t%{_u#snv+5&CPf>T!LM7|f*QDvFZkL;6RnDqi;5YU7E-!Ngdp$%wT$v342xA0ZSi?+~ahSlKOrWY!^*BG=Xkj+XtKH;?WmEseg#=Kka;1eFWRfFaGV%~kK z21`|HM?NmoWm-i@yoEb$Bx=XaR_+iVGwfrd=w=}>fY;~zzgP;*xa+uR@%&}Q4cVA? ziLU2$tO6)8Z|xoAig~xI-u(Wkz<-`rDA}$pBl?<9sY#WKKOFOBfp3%9uRr2+{3k0E`?X=Q;A2RL z{UNF1kWLym?KDfL9-MU8!8HS#uGb!#1BqsnOu{ukjR0nGBmEqr9>h^fHs4RSFrQ2y zRI>R_`W7Qsg4<(>C~$jD=S*0CaeRahIr@ik7HEA1a(}ZHn3q43!#B{6BFrD(^cJEc ztq*vMaxdY@Ofs9H`;{QKh5)O7V#GN@E}>kmn|8!nMncm;jiuvb-sOmo&0#gC=*UYR z?T>n8oIH&GJ(nSJNdqV253=rDBd;cyd2hXbA0npPH%U)mO>f7hL@BzyH_tOUz=>2J z3akf=Qh$w+V{nb2^oAJ1)L5zwZFX#@+5HSh!fsBlZF8k!TOj+x-vG~XOU7RRXEnSg zRy=81sxFY?uJbCrFGH~^X!(5zc1wYIxl!MFK6?$>3Rr>JwyEBIcK`<;dI#caEWldXj9Zuj%r)Ul0k%xWrN(bBayoSxacH0EeyNWBJ3grr64m7r z#<&CS=4|dh3EPfVhAJVPO3D7cy&Vh|xw6#*#Om^yFGdl%5^P z{fG{#Bf0T_Gn{Ix0tM=E<|dFp@SxM#XVwwm2^2S7#{p?Lb=lmi+|{^Z-r|Mv^quDN zkmQ2zs*p2sf)Mje5gac^TaKBG@HSN<2c_A&Os1=< zH2fe&)D5(L!cPyqf|^zFzb2ZFZ%3R(J2dU2S-m}ZIEEVUKh=aL(KU~W+bzdqKv z=}XdLur=l`14!97qGDeoj6VEpLAln*d96)CL!FOObPPfDSi1VWs?o+#^@Y8PY9XUe z5D0@z!5Z$4ryI7)<#d0Czm~p)>4TbkVdoC!K~3w7`a@Q3nI6r28y8JaLKNPAe95OZ z@oLc*^BxdU&sI-5EP-d-9mhB(Q8Tq`DJ5w>p-%&u*@~V9vZJ z60V%vlOUQ{5)PJBJ87wGPxi)Nn0=TuIuI%?Br+X|QPNna>!SkBT_jNnJ@i7&LRtKF z)2LO-+qq9#SticipL|XUyGfY6-p_THJXaeJM;+NYzALJdJ{_h-Rh_-9RrQD9gT3*8 z2d_#;O0x|l3q!lAux?cyZF?^JQ9mEjiJ|h_+!=%qk?(C9C_x(jgm+d^YM^ws-q+Zqf!*8e>bp|P(zH|kl}_WQq&w`l#B z`Qvncoe+-H@BW#BTKK~?yu(iCEP`p@-2`;>b~Ck{?z&O@7%`9CU>7Z;CXivWRN-T&Vklt zqVBSCXGhrmUEEz(<#gOBp@7#|x&CU>nZvV9kbU&f*Iz?`({V38X5jj-7~fCub?#U{ z-*|4r6HXob$olK$UFG8C;4$%$Usd7f256)fqj_0&uj>~PVALzFCXKVs(^OyoRsJAH zcc+YXR!ueGsh=ui`fm=q7;tPH&nRwn8|%>Z(?-^C#Mkzgg}stuPUB&co$ke8byILx z!U?zksce0c+)n2(Qxw2-ce#xX_V!|aZ`NV zBkz%1>ZGS6KiuTEnhmbEi0w+i<1z#qToC2nGPEbKano3eg+nh`Fv-Q4j~3})=Cg7V zSZXrX?|_lI+z?ih7I!! zaR|P81E!@QOu@sbNOB6V3(x6goFDG)`#_#QHdCAkLuF=>NIOs0&mVQC`ZT2DTuuAs zyM~aFg9OA{BArF?Kz86jzC6Qlnb$Zi-7|-zmMW1x{|eOp?7T-r3TgGT>_8;9G*uc# zCUtD2vr^a2ywrBGr1~#)R{aE=@K$S%M_aZ#54lfpVd3GOc%6-_f27cKgXi8N3!Y4? z+X--2?qsLpEgI_{J-R=5%(?k;O2B~9s!4puO&Ra3x&((5j9w=lbhKNRcQ_g0l_#>( z_zpfSVTPc}Wm@}L)7l7#T>Gja*XGPP?k2(P!?|-!Y`ao(ZdlTO$w2ZGoT^F~;Cdp= zyc0|VM|5|L5;$%DVFBqs8wKgD)^5&Dei+CU8@g|j-?WJo;r8(*Yo{l=00k& zg^Jcslka^B56N`~E(7xob`jX0J@ycgY^*~hct4nn!XI%E*Nro zE1Ec?{eIE$Vx6oaNC}0Ubw{KHREg)tXve#Cf*LhRDz%xk6@=Q@<^SDY?($sra)ZckJUw6 z&Vcok6PtI_Ncku$0F#i^kJ;47dLoZaTW?_L&DcV(*%a!~B{r^t+YE#_H@T`)>J~f2 z=y)?8tTPeXmh?U3nT5&OE^B)RS8_jtFb@eG*I4d!?I-7v#s=1*hjDpl*bS50SYFW5 zIBC-)aoVCPScrlShG=$f8YN4b8r2s)!aQ@v`>cdSy=4Gyp~0@0mPe}9%FWgZ2G+7^BYSdTw=cY z93oH;ZKq5`9(L}T6{2{2O*VTrT2>gG>$ls^@7+yxEz2s6k9w6U+i`MWF)5jg;vL?V0Wfn@dPHhsfR%5v z;Q(IXuFbIQuYbyn(dvI2t3R9AKyEX0J+-U^^Z<>V4heA0&SgZZzr^X-hIhyY<0SN6 zPn>@5N@54;t3UU0&!TI&{%fSq-GYmCSIhJI8~GEQQt5QAAkb&XInfj!6sg@|S##u^ zaOY4Tcys4>vEUY$we9oLeuU)_QG!=asUc`=b_OXYH=f9B`RABW-%y1gBaE%;%eO*J znBTcif?Af&cn)%sE4kZi7M%)c&hVeMo`t!#o)VN0>e12B`wg(?brQB>mGwQPQ(Ms2 znpCPCYklu)d_qO%q!uhPRZddJzTF9Tb-RzPlO_nqQn8>nY$k#~7z`iiqsn?^dZU6?YFjX`Ja<}L5uKAE)TwpBaL zG;5D`J+hqaq3`Ivl^Mz09O&HLx?G~W=dAq78($OVaz%DogSHU50|({)y7eqIp1(I9 zLv@Y+3hTGG+DII>iJMJigZ0dp#|VTzNw!QWVPw=K-^io06|bXvaM9Fj%%CDA(0;c$ zRm#Rl6>oqdoa9<*hrJu3f|>@J+-D`HtWxXc7|Yleh0UrKuI)1wsPvE#rkiPqFDhB1 zM3u@>sjN;%hQG)o7gSerERo0Wslnq;>bt~n=XqtBL7N%X-%?}N3aM%@#OweM4GQ9H@I2E zk!7tPrrg?X?qTQ`i^jo`h>2pUokdz@`q6g}vzyhDfnf{YB>S?s5(Jx-R3_4hD-Nr1 z<3+;VL#^B-mT}r*jK}<{l=dq@xw;&R)V?xAp2uNTG1RHI)LHlbJqKgKP2KNLBB@R2 zRDzr0(ygzO(P}B7F%or)&K5Ms=I&>Xz*j{~D^7ViGmT71!-h%^r;r?D%*JMFE z$7Sd3W}C-3^hxw`=F&Xx3C=#>>M}{O`RCNc(*r;Y==f56k&uT=Z=U5 zU)VtXMVM#W+_#Pc5?1OHrGC(a&3!*6Xaqqc27`JC8rJu1c!VAzMj6TZlHrhW=+TUs z(e$i}>CU>#N5#`!kFitYxavaNb;wlvn-B+)#6cw&so zk)ku#er1YjZ?tw>_7?z^Ne5sOaSqKBf7gD|K=P@+?cSnNZ}Kp+S#lnAb_5^2{-^c5 zTqYYftUF#zPoNs`vB^VdoA#*O^&z_2*IAI)tZ&9|o+G#Xpa?-f+Q%C8=g&vAHuOi``|T`Ri_c4`2DGX_!Bz7boSXm-tggbb;(o=P zAdS-zGPK5Iqm2H6k%@)T)cvNt7S6IIX|mhA(bV0F3?!K^Lvvk(Ijm8BO5{8PerlV> zT4@+1;qb*mWvAnR^H=qaEJ}XS>b-lWQJn)zu^V?%eSTvYoOUuX(@d-};b|-ROD%jn z_j%ESO)sDEF6~MQP^crFG1#ciMM`dqhshD7>Idcw9I)elYAv>BxeEvLaM)|WoBKJa zSim1ogvddfS~Y-H>$FHC(XiAi}iaor$xG zoCivx^{=itsD5+GBNT8tZq|U+A~ga1ZO~0xZzzh{eEA}d-43*WrsVYQk;uUe(s;J3 zGCyep0==obg;+Y2G3e6yV^x5CqD_ZJVYG}MSvp)8l8C zPjDx<`2wpAmboc2bY_G;b-fv((=|f5&x>ZAlqlDrAPedOKHaIX^qF7&2BbRu*%9V* z@o9WE+yfM|Pkn+#A$?|}jsEjOrMkFO(Jv|bej8nFqqp1W1AI2ztLPsPJ#>Hc*U>jd zPKUCLlYW^ly#i{(L~-)ony zQ^!h|Oo1i}=-f;;6cG!IDJh7xj~z%{r}KrVyGrrc(uug6YIniMx+b%>{-+soN->Ln zCHjsj*66N()3~4?;F`89Jq@nJW}qqR09Wo9UE3Y%DawhLwfGaKx_EHM;#p?pt*5@J zSPDq>4l~tqPOXM;3CNZgKW&w&%6+bo-@8?iu`nZ$U0m{<4RY8z?D_bXjCmkLRj+68 z2ew38FhzLGS%*o!JiWM&NYG)f2GlMY&I1jX@d`@}rOR0Dt5btJ{r)XFKWtGn`Q#s%cj=C2_ zT@q1LV-?Xw*@wpjie7cfhcEm0Gg#Ui0TG!pjWzyvw*PJRzw`Bd)j1n!b*6ElAGp+h zQ|W8r1LfXoaV|`rioQ9f1{=WUGx&n6)gbmms&zK1dQXre>T*itE-YvCJzkEKjGNGb zX{BsLwpmOeC&*Gs9r?n8FD$vwZ-Ggyyo1f@u-rn*oYAN(c2FF1%T*O zT&yA3RY#?Z{=?#Iqp76t$96v@Z726pvBmCjV6z8AFZWD(Z&o$!`(k>+_jx>U$yHIW zQ z=OGmJLI{#*0vy#4{DXF>R|Cy;mcC90FTjvg|GalW2Tf_gHxFru)c))zIh`1+W-xjV zHC9ns;p(7)3pa@Kn=ER2w`#B|bEU@E(}2luu!WV_m|N5WKj9(2(35O zd$rqGU6^(4iZB?L)q9V9|1z}y41Cyq3@H1pDjyX9gda1Xlp@8!D5X^Rz>9UYZ;pcn#WV~QX3<81@H8Gl&Jqh=vNbrw5Q}hVa zgS~7?z|c8flJv7bqrZ)t4SqWFZpJ%&|BLBC&WM-9d%uYRNfW!rFIB!LMdTzr`+=?}2z8kDmy!l1yfhdtg0G zBa-9I%wm;>gY<3}UL`MJBQu@``>SN8QRD@msBDpY?dYgWvjEhbFKC(QP$*5+vMziC z*bmtEM1A2LW&0(2T{N;N$VqqVc2atc6_8L2{KYhjj;H!ZE}4`2J`vy>2k?w`SvbYD zV83P-2fr!o{)3$=ij(ohvmvOxxW#Ei+*iKFRs5IY=_wUc-F{h+70oUE{1>S!)nA%C zpTq{G(#xud!U~mLO?u!c7%u7?W9p+kfB6+Ug}=zF)^=XR$=H{se+V8oh%Yb;qx*(E zA2D5>RH~&&;Ke!_n>E1{h<+Q6uyeQ0=#p1Lt7uU?>RmeBQP zES+xWgXq3~pP)EoKXT2Ai+CERaWBGe%y~bQd^zlODy_H&RqXD~ubB*;5yT-YL^boy z8+lH9fT7s9&y-BqXM0kF^$~{tKdC-&B=vmnift+4v+QUG+-C^Hs#@Tstln9Y&Qyr2 zTkGB+n6ucD>^+1|4W3Ah=E?(4EI9WqXevrP<7SC>*1ewnM`ik5IAhwUUgRVbwG*ZR zuREWGH&?D%c`|&$?oq)9FbO^eu&`>Mje9>goE$pZ>O zr0e^w#baMK`Eo4%g+Nv>L~VSKSjGx_HQD|6W9gY^4>_-p3Muw89}I*8ym0pz@J=rt zMe?lPC5j;I$9Wgo^7KG_3<6$Qne0CjjP1ANi?BS2kBZ@$nw~fO9NUf|>Aspz2dLB+ zf$EgL7%er!@qC8Jh`Usf3kY&PBj&zlI+pz#%ED|fjT(i^Yl`DcCqkv!8F*LR&@jLT z*6He^kQF!7$+M)@OGZhA=sbHsn*T|b;g_=?Q|@G)oF6n!6_kBI2`JP1f~N0S;RBlz zST^88mzxd0;4Qj~An>Mm(a*DK0r-lX%rhDHHyw%L+4b! z5CNSKt-o(;qIi?2{!6O{o?7oQ4`fp9NR(~dOsc-UW(J2jDT|gS&fU04VGkD8n~e|2 z|BKFEz0x+@S-BD~#~-Yk>3FEvOkNBI59j%185{}0d@*yInYjrk^{t9P+smnMRSt8e zZtKhHgo^i04kgBS>`si0c_r04y!$h&%M{9lT!*ovWje#=Li*5QME|C#2q0umH5cbk zXYa;dk~^IrR*3E@7+osUkiLIDX?-&L8jNw>ZWeHF?M?u75;s><-)k&`9Uvm&-5TLz zDK_f8t(Qi;)DH-`%=`JXA-?DgC(rWkzZ0h}rmf-Y-Ft_8SOmI;Z=PzWR8HF_uW4*B zRf#hZEu0s8iF2uqPt$y@-dEzWTxe9mhMp5Fdv4yn%BVy#TJM=++@`Vla?DNG>^aJ% zt(wveH|bO}zI38!M7GhC5no#%NC3ot?=Sh;@z)q*yeNE zNYmGBi4u~0Uj$Wi9B4`>Pm8xqsF*+z0SMq}(UvPKw?!(-b+8l&Zfbi7?820dv$3Lt zKk?zFp1?z4G<;J1<;mxvnoh?P5TE?8h94*g^4W{}33|jI*H7VTOea3awXyw_mi-6( zeSZTy8rzqDmgY>+tv7qA=R`RdKPj%UeSAYvVt+)3D0e!b-4^~Jrx#E~)#o-xY_jR*FcK0mi+)X^9 zj#1dqyDwWxy@*^KPm40n$C+M47ho8|b8{-MKwolG@C{iXXHNIQVT2MC+vIvQ=WOg=O^-9=X-9G=gYpwljmyR(~8HIn^15*_g4zRUnsby7hJJ|>rz}E z)~M(O0+`~&S*iZvM&a7&d{H&P|Im8m81E;c#bf*y-o*sTbAW`|BWN1hcD#s7!3MSV z`<}^4v)lJflxM5&iOI8mXw2PsY*GJ=%UO4CHLat>?02m9W40kx5oGW z(t1DXd;b-$Ei_(mO~924=I5*5*ZL#$wnmx#{YU{lvgZ)0p8cLC&&idTG_0pHW*T_F zSiQwN7>Cd+DEL@6UeJL}{I-s7-1Z^Q0)dKy~I@DeRv^zz}@re31iO z_pJ>fQk#L7Nc7A%U?w;~dInTSEc*!&PuEIr(ieXKI+zI=%!k7lPfv#D0G#9tWcs|x z``Lfd$BiN@U0Ow=8e;3_Y_a+kgYT~|(^|`1-F%S9$GpgJnp*q@=-BwB)0{jRikKV#BGMl?A(`l#H1WI z=C-!Y?~gXf%u5(}8jkczR72fV@4#(BVMAU z*?mZhQ1>5cTk!FC%d0nhuJ22}JcZ}3%9A57CS8>PY&xngGkysb{^mmw097tK>yHdgaKrw=_1S8WsCkvBe^hWKN+YlPmeu02n}Yu) zTy)YE;B(k}!0>;tTmOqDhP}(G$GlOr;RQQ}gK-Sn zr_4|(Q5%;kEp`v#L&Q8vsRW!KWIVP+V0f$H1e0enM9ETt`n0_QhL1xQ7{Z|lV6K26 z;8K)2gAakl;b{8v+(bAZ#$!b(uXO!fCe@OE3x1Yl@K7Z;|DNVi24!hEKc6D;Ore57 zB<;gQ`8#T*LBfp=nGgVFD!A%>2*Y1{oyk`^2U>5&GBlPrlFVEG3+M_()EkG|zt=fde{ZPs?^L73kiCNy$L*YNV#k}< zh9R*xn%D&fvI7xGs>QIikgW{=DbzscUse~RL(#|-zg-Zx6UZXxn6(*F;;ZI z{RY}WYMqJiQd9J!$)j@M?SL1qaJzm$fETXBD&FI|Wnk{4NhdG#?jhYtwd+gAvhK&_nO9tQ2srEgCu|%o@p`!!kby+ zO|8ZjX#OQhw}~75_QY}o43s-l8q2D_J+b7Ed?E0 zNJ4E{RjNkdRvW#0)o>G1ePtNtwzL%VD397tB$Z8h7{v+VhWTBLow--^5_+SGM2uzaB8o~K`i-%9Px zH<-)^hPZnN+n76tRm_YZX?FT)ICn}@NMWCnt@4{%DM}u-FGbzy?{xKm$e&o_Q0m~}!?CmX_JWg{b z4zT%Ka)#GbmW~dj-Yi}WJLlJVj;#}Rq^XSZgZHXXXR7%GO}Wlg^O5ei4jRJ2CtMTj zn&9QPa|&Q;ooQ?BEA#6$i6U;YB-3PUcx-x}I}uH#-ZE}c9?6#m82YopH|b#0ukEp( zw`_2YY5KWz>6GOCCP^;^++_+dg`1eS*+{re+ll!(S)(oY3Kk~jATgOHArA>2iHutm zcW#!H)IUD7rbDQJY}s|BMK6-SBu<3{gN_?G%X6VNjL4av0V_j%ossCx{mf^oBvAn!d05`0bB`FU}Rx2np(PkAsfa^kh$w_t=o7xC^m)hW}R@xd(eIRgu{4DSqRq8xf3jNFMHzZF~hqXl}2BvW;H@&{M7Wb>-SyL!($p+ssj(pBJiu} z#sQ=8yJVW=@9~yC)C+X!GQITd?2W@@)uyC+gBn_Yr1mMUL`_aFuQ@v#J@K-M$+Qmz zjYUe@*e)Q%;B&Zs%i5^nU~T-7r7OmIkkO~%fWs)0v>Gby_o3RufnKudGR4XL`>*wRQpbn8*G}Umxj)S^MrteYI$cMK znU?AIT^I!}EhRrQw;+7}!E2mtQz~1gFr&%V{Jk}RR@n0^B8_voih zr+!+O`e|M2rx^g#Pg7;P`e|MNjeaty9hAlzJ7p}F``jtF=??kaX5madp{*WAQG zKc|A|hZp?3-cxHm7GDhulY4(5-tGraBhx^YD50b`@1Zi8S~eTLQ!_Br7}ZK?ju19V z>p{HhGi+bHDOF-zKSUZfQ(0o-=^yJ8P2Vj7 zY@`)2_hD8+J8r0oe7OU}N7Ia7xIWhahEx_VAi;JK*xn|^${ zl6_ia+)qSnTR#&{y?y$6GiA_Hai%_4f5h!n3`UI86}>2*@Vw)}VQll=PLtWqV7lTh zrrK{b+7b6BhxwTI9h}ZuReHm;VlzdYj!W=nk8@fjVqD}-D-j{~38xuO)>cgx=x}u= zWRQo09O^C#?rGx+z8$Ai@{J&xe3$;U`Dn{2`BV}0DMIxb+^gRq-Jnc%lHY3R;3@UL zvm6`pHpQ57gl6Kq1&Hvk1zC2Mj39&XLsgke;t@Qa$^MazCJ)Q4`U4^EGxa-66Aa_# zW^xY_nSFpi(e!$)QF+Lf;HKR}0a(8y6EZT4OsGm#*l85fj38x=g3OR`=4XS(3w)VS zh`)RyHZW>Gc6|%YwZ3MXa-K~&-v%zQpM@r{y`7I4mG%x?CVhLiqWERnZ|1KWkZJGX zugTcH2A6)B_B;7&!|uXm^Zp!{&2f((n_Z7Jk3#=VT%rHAeTEFsdos|We8+7wPwBG_ zjM$X&J zzT~e}J!U^+B=nL}mUr%scwdo)b21s#R;P0#PIzop9}Yamm8V~+#Atf{K&1AM=e;Cz z6=y7}W8z}#?+s^V7m-cwpZfmBwlB=pL_!jmhEsZT`%k4|-qvmXd#F}bl#Lp;xiOmf zs=Z`2rK-C;n!2_okmNGq{;cfp_}MvtRt96*ae5Ur-zMYw%>I12*;j#y3UB+dS+`Qp z(VlDTB5n%?cZb|e@Yl_#*A~*<0?sqpPYX^pG!rp_f3YBU!p;kwFW2{K*D4JWwAxMp zCd@IcJq$o1-UC126Lt|$-ghUiCS((9P|CR>gqWj*y~UXBz`-Bq>=2#Y%F@iJ70fh6pO_P~(vU zOhgpH3Froa!z80_%_qX5t^ug8i`cI8-Xu)O9YL7G1+tE#2HaR;NtNsj&|5}~d`Fi? zTQ)lz*95fX;4zHcQp4`q`ViZ9?lwne=>;PKiCU>qx~~ncx6Z~33_WFMu7k|%c=ASr zeMzGhDS6tYxm5lIkp*)MxT_y)A+!tGiK(AFyZV!FrrtWMZJw8$?LNg}&ZdJUS=q7h zl5>qe`)AleucWbp()B%|^N|}uL+4lDx4k87 zhq98f^?m=E9z(xSt4FMr4XF)NDtWT&3Z{F=>(S%_r_c9#gmnn5cDI&iBB`hVEh!Lh zfgSb0`w)!bYtk~-~y@h&s=8%fZrgRF8Fi{eb z3y`q}yTItWdm&J3CIqsnCUJ&0bD_?K#6qGxy-=SA_`@k@>(Xm_rg$?>^iOH&_>Cg4 zJ5XKXJaA6T`^8qRC3}vc)!JF)?mRynb+6F8?|zV+VfVqr^7?%zLPAz!WOXz7NZa+h>JN(FXL?Nw!I}Be->_5O zEFR({{3{AnB%Q{WvyXzkeg7hQEqR-uH zhu~hRA6Ky$3xskT7#2WywzO0QL_Odk@%h3z28KQehseW}(C@y|2>_3n^$#MNkofNV zf|?N2;$wj@sOwShc6GXda{J*BXvp-c>@S%hX3Bu$X4Yi)NOjAbZrgmyv@sG}(*u9P z4S~0BZ{5sukiW)XI_E_TFYBQ?Q{T(5XG0=8_iCy~e6`z5Nj0!Wdd>-$92it-G1|iD z`9NQd(r+?hHCRz#4aQrVD<*gqcS1Bi72|-toF^-}LRPXx=g(h@c^6Lc*8Is3Wu|F( zAW$?RQ*tNu6TDj)g4OX${3Ny z?UyS{WgEs@B|P;W(4338NpNLd2!EGHLA#=Hx@6j=k;>dG*7BW*KA4m7qzl_!92 z{+dc{*&OEj5f}3yaSH=sUB*U_9l0;+Qmi|%z+t+e{<3tQJ&lcGOUXT93`c~&SHH7% zC$@L`LC=!^bRw`tyjX;?+Y?RR)y>#`q`jl37GFJ|w~OizVF)PZK4Z$EMG&}>>WDX{ z3n94EF`0Ix-gKOmqH5?+jZT05u=B&s9nidgCnSP($;!S@4$iNRj0Q05J{?W9w?owf zslM|1LvVi1RPQVETW6x$l|90IL%pgp)-q`}c<~UkGP9Hjayc7&4wnGAd$eaZ`$05) zbf;>)3~xQJ+)K%QQlV{kGovH2j8(sniUQ8cU#bbIKXGo7s4h!i8))htGdk`zV0b@G zOy>>^2sx`tXuh=Ev>7wNk9kuW1*tBcj+4*iQm=XK7_)#)~BU-4pkA(!F zqQ#2!c(^NY1|Jl>ggYmpCHTeBjA@f;%*~6K_tI+1bs9QIJpBWGDzlGC=@Q8F zct%Y`v&_3s(2k>tB?x+_Gc7>ID@*N)+=+dw%c}^hjPb&#=F;U0CAvCJ;#kWM#f@;T zt(_DanM@Cel5?|UIpSl}!(Y+qM@z+R0#~W?K*cmI+uFZsS*~;+-*dckH^^M!bW7SL z)c-raVBcI4c21X@*GpUHG`X+${p}#WuX)noJDam;>PCa`?6sWMIzd0yGK;G<$){po z;z@(wq;fXiVi0_tLGaP+Rh7PNC(r&mZZ2%baMzoON}oSL3bO0XB+u{aX#W`?*yJAe zks{1Bi3pTnG`((2S5Q9;=Z8=+mMYM~x6FXBm-eTC11wlz6Uz+x&(dz8#$fyqB)2E`Mkki)ZlXF} z*$WjNeQM7!cc=UK(VYxSMeavL7@ z_c10F@NSmyZXuz-1H2o^%HVD8RWMGT@2FI+Kb_29Xh$)9!+PLYI3MQx^2}cXAv8S< z+GRpZg{jd@y9QQ2obAS;Tx`kO@5uWy1=$6mcMXP0dZ8bo5=-b8&4lLbi&j$MO1kB* z?TtJT_x4_pEaBg8fCy^8+tlDcG@WTQ+1Y&sXd;;cUSYP26<%6UcOpz}^j5;|?9s<`UaPIH3wPU?Mx z#lbD`;&wFyPz&3n@C(XcHV@lG>4t4+aPK9u_Tk_jXVO!~JX+Y@%cUz*K0CBPr8lX$ z$y+?n-5d@)!=hFTKf7ceGjLY3(a<>>nxtJ%r&`xv?sSw@y^o6*F~1>=})SXmy=Jc z2=6Y{8TA^f(Wn(=4o-}>HkcA4-qLw}w>6EsPbm^(h63uwCqZ6@B06Lu#J%y=CZ9VW zUJAWtKyrYbFxEhHtWl5#b`cM)0-ypwGZW|0HJ+&e8ZgXmv3FTB-ME zkEO^f%6(JwuA_v%`H+hW?wd`+m`5iA%%^vQ{1?dUbr}@%?z1RN--O5DDhxSDI~FxW zp>mxu@QGu5EIrW>el(cCV;;xjRXfc43A_p-LcNv#@sH)z}p9@@E4a0IT+BK6Oj zm|63}-gOItFF5H#298V?UQY8uakgnIUm?gx!Uhy7o`|^_+kVxHvF$f3B9>HxhyA6k z7c`~6p2x#i-VG0VO6B;iRtsDJC|cR^9A$+^Mbx#u)4@r_b}kwbwNVUI@Fk z$G|E0xYM}@M5Dib@3;MmGbId6!|vDTkwhphM4PX%XUds700nhDf1VRM{#Vpilqw2% ztIcfoCeFtq>o(`IO}rsGpGM6?v*q;s19J7fft`de$X#sEd~rN%b`zTRQVU@G5Xq?= zyRqBRT06yC{&FerY1X;FKl*#FznMW{9gMoivUPg|(H|-O4Npegtg%fBDBCvV-lqKj z3jd5=s1!mv@1qMy8cNMYeIsLncnlzol6Ig$&GhgKjP@T&fmUhJiUxW+Z_E~^ympwGxXBl z+n1FB()VWe}X!TVXUlXPX{(=T(p8n)ifs$!ADR*BUqmQiE~A`fSU)t4JY+yl6tY ztjysQBG>o@!^#ByKLz*FSFPqvKDul9$zd6r)fO0E~VE) zt-9|R^(tt{jIDBPiMka$GKj_8;MTV1m3nNn7~{Yqf|K2NKLcUKFRYqz=jJN}QgF%Qh$si6Q$C#GA-!{41%sjAk`xV3# zPxp&RIBTb3lLtjBM37sXQR99{ASjI$&)DBTFk^2y5*ubnm@7B&whS$;9I|X#d6;Ps z7Fsx4o;W&U7y2j!_kedG-@=p(gz18?j)4%&ygtD=t%W;+F++j3$GnSs`p~* zAZCa_q&mxRJ%*G<1uE{a#_xd0*LIBB?Cn=Ho1}kG@L{2JfBil!8d>fwjYPA$wKZ(6 z!s=8qB6g>LN^!}n==HW%Oinjcs#vvIPw4~?Ck@Zg6nv%aNk;CIG&~RqY>9p^cJ%Fd z@a67F1Id3^*^Cm^$BSoF@6F5YF|QnT33OJ?1$~ALNd4}nI@+og(nI*ivt#M2L>v>6n$-#A|xw(GKG{4ZFF#Lk-IeZh-!!y1~ zPj^O8UWJL?)!$t*PMr@2-&*ptFT0so*0y2J7p#

#EYLo?sKM?CWC_vljfXuf)c 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ÚgF-zID2a)fV3F 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

    T(A2ifOnwp2-``1fe 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 SnyV=bVz&aOTU-_zoa{y?}zWBHVzSpId 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�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 z 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%0A#16_<&ByXNuC2NhN;2X0Ip%5boJivax0c$! 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%0D|ltj~a%3V0Q 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 o<*4D#k=N?HeZs} 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

    HqgFB{I-*Y`Hn5B9_} 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%0DJedjm}Nq8R^ZT=s- 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�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

    Wn`X4X+w74%6cZ0}Qk)ITq5ni9jQIX|a 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 z zK|5Sexq@F(uU`J&yLbG8^6%>o`<6Uo8kFVrA)krtVk!>EF73!JaZM(V=>oC~HUp8T zMRsYTZ$?Q&@9IgD@$9W<3I6rGe{`{LY^35SuY{8!sixtqJ67_ob=5NVY+VH^}hZ+wszWGNe_wIOA(~X?A(c)a}T^ZNt zT{*DvO=Emxi($xMEqd5sWl9-rx^qju#((w*`{0dx;&#gat<-(Qs666Fe&A76qsIf1 zmPC6V1;2blu`h6!{`@Qbk^2VjG9RweX(cio^Vt{f^tNqv)=ksQ&8#1ZF)cI3Id-Sw z!-{WjLk^Vx*76@TGGFxNy^jnYYt{x`EwZjjtG4-GQj;DYsyvnGFEZ|xFR2=7n>-I8 z|A)LgbsJLxV-csvM!rv)*cncT*V<_71gYca)bR%GEglQK#%3pW6~P~AZ!z<{7}_O! z4E~VaT$-KJD5_JjDU>s3trvXHn>gYELuu1PO_yIt2DjrN?QUH)&itABley zu6Wwjzuv?*`<_6%Qfb#OX_udN?F!cO)k<)OOZxp|%Kz%G#=6t!VSzsPukWV301u0= z-^{bm5T9E@zf-U~OZq9&oRnV+evUN~TR{J#sOR+DIPVr{U{BdX)13x&&6cQd(k=^| zU|WQ~^@UZHL0Jf1h~3iP=|A18-PeNe%$I{DD~N9eZaJGGJvqCTCtWkSiym9vaQE8s zhFqTSNpLp&>_?dm705W7kayli?m3G5QxvKi?vB(NSSzLL)#6)kNzc02`iI<$$U{*r zf3RNE>!j?3eQ;%VPM~gc`GBP38*caJ;7gbn9_2k=d%JfU&n4Cum|n*J9O7yDyk zwoAa1boBLH)|`lLmrQ(2CAwCj=-)PUK|4A>@etTMV#Su5>^GL4fDe?UROGkQ1{eLC zzo?|~#2__(#CZH8_(5uk$u6dhHewswjOH{c>jUNn@>{%=)sxnoqzckBQ?r%!d`P^@ zVdSm-@73Bq!cNk#sQj4@c0x)=Fr<-96=2{xd|G@@{>2 z@GQ|yQ&t_x+mGDi(xR;mX4Sb7K5v}ddjH(iO;JV2kVV8n%+##bF;O4diY7-ywep-2 z@u3ZR^pMgjZF9&ohdg5pChLLS$&IDtDTSuQDBeX@gN}Sfobh>LNsc3j+=k6c{3h6S z3WWY_pK3U;kxOh>4_*wbd2=Q2T=G7jccG)eG2hI!)o3_yf-

    {aCXGFEwNxQKo3 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

    7GxI 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

    W8x!3A#FC*(L%U~w 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�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 t(XF0|nQyMO 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

    DzSJ%ra>x^e^O68Uy?5997|jeV}M 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 m4#mwYcUWt!w@4qbscz`3rx*xL<72 zE&5dl{*u*<^P*X03`EdO|0;NwI7Wo~Poe)Ux%*q@@ga5aI_?<};V(o_6ryc8W$RD; zbYF_O9#j1fVg8Tj5zS5Ls8c*kmx)KQ*moX$LakX(Z&I#Y%9wCyb1v(m67nxl|H@`8 z*v}m-O3xr&cbm8mdYm?)v@6*w4Y$3XHQi`)D3EJX*grGxpr)T_j!nRwHQ;Gi*2j$W z`?_yfgdUo<*RYc@%pHFO_#?$dHwP~a9hc;JFc}plm9A`wtXVIGyZEPF@ z{pFs75|u|~?FWt)ooZeVw}d+qx%Bamg2 zvwwW4iJQBJJJSaj7v)|M8y^gK(tls&YNtb4_o$t!{oYQT;!Z8wzS_Ln`7YY4)Any7 z+!Wg3RN9=%FC2~b$XnC5Uq@K<@{8vXwlv8KZ_%y3-ph=44dbUtQXT?dR%}%CW?}AsNzaL>#p4lo7 z@sx)XM|rHKpQ%2;MdqDuhV_?l9?1+#AIno*^%13|Fxnq0Hq!|Aq5Bx$4G zW?b5!@)f-y+NtK*5Ll>U>PCAkmE;x2{4|(3uY6us$y?;5@jS~D$h&~{F06{F(;P?K9>k5uJtx9Xx|h|IQE`-y!e+3>5}r)+o1cHpkIFy5 zno9Mha_fI4bdQJbDU?U)M3cYLC^qw`B`<3pkUqyrKO46=+dUEYSi*`X>a(kJR>VN( zqWUsot#@lUY-gS%-3_Ce7spX2+t62uuAF(7o~*SAeYVSl;^N$r*o0sq{dD0cn{(Bc z)h^X1)Q%Q?lAfzLKcGy-ovglk58*U+UugH$MCQbqgq=Vbr)@j^!RpV1wZmLU7^g4K zXAW0?zJu{Zc_7ave~-R zPqpoqh?~=Ioia|Kex3fA$o!;!qVhUrP(55oy*d3!G){y@_3xo}c&CrPML5-g`k~Xe z=HYe*;hp}v$ga25v|oi=XxD8XVU+er-cDZXyF(cp+G6iN(zGKl=sBd}`+eujLE9!u$r zi;Q=0^QO=Vp-+0Z5^t9)-ulhq{3>WSk$G$-EcIdLQT6}AVKWIEDk=Fz=*-Y326|R7 z4yK;Ojb)Ea>mAZ6 zZdgrS90$B{EcqQP-Z<+u`V%;J2X8!w`Zn>u*f#$%c;oAc-x}Vy>gAUCiPy?+zL{V5 znq{gJzK`4&k00JRx1c57crX8dFT8QpTC08{@y5USjQglvc;hGeuk9bk8)rRpMKj)b z;hOLm+1hw|zuL4to`!xA4!bUsbvf%c8tm7`$Xu`QQ z@OEPz&9uOuw2gE0wZJ*bK8n`R!n$N&SKEzql#W~bRgpNy7jSP2=eUS+9}UjYPk7-R z&-P49=-yd8|=BevW7v1k1UAGj3 zyVN-7;BbWnnt7YIPdvE8DTIj!cQ}>zDTHb8Mdff-Zjx|o*Svg^i7zald2;SkA}RPubV_jPnfAJ?b3V?+O15m<;+mXPCg- zdi^H8u+EE(Cl|I*woNnmzthGR%Ff9OueT%vUFHhmhRn zi`U*{7WqprAGRlA*|N|$d^i?y+F@A4os1{6~}KJQ(;Fje@O3;7;LIWk|Il6LP?_oc4pzl#5i7YogQ>2fQ; z9jZMvu>S@oaFVc~;*aE+%-5_jYO4KS#rq;K)AIY(wlg2@0`4#xyx+;#?RRj8Z+m?4 z=!s=_J^m%?C4>F)Q{bQ4p77T?`>6AXVdV3hr!)Ho`C7^b;O% z=~;;pew~w^vvG%J`rrqj19zx2Pcy?uC+!1wxD?#sNSB|JkL5@DEh>{+-SF=S2GLKr zj$#n^RfRE#pY!cb-;F`c|5-u17{u+w{W>s+Ms-0m1~J3@J~9UJSJ0;Q~2xQMrdLA;A^2ZK1D?~E^jLA*ohyD*5i>z^^EAMd{(1~CA(khz-u|JW87!~l2( z%l&+0a^W7beZl|+z$aPm)i#bvxCcLO#di2bhhY!{U=RZ)2C;}Z76uXQ4Q@52yT9ZO z##~_#s?nba*HFddU=XX3?RWBD&7=IA^C6D#3(7x?K@8``JP8iZjX|7jV$&AUzK@JS zwCK$`41+isEJ}PyR+|_^SN`aCT4E5DroV)8L|_oZaVU=qgBW(NVjTdc&c+~y-9ywt z7=svgKmV98i160LAO_5OT2DP$7{tjY2JsF4p}!RjVz^B#f*y1^CQpo3Fo-9#fk8|; zZWzP>7(|PH(Q9E4#rK2~m8WeCVz}iaRi9Gdt*2jU40xjj2GMfMJ`96sm2GC6d)%8!X!Bu#8}1U-@!Mjk2v_ImKa2<4=rj3gIG-)bmN#L8@O>lVGJT?0XZZ026?r_ zEeV5Y`Egdc4Gbb{Xd8o=MZ5Yk7{sZ}wQ)uuFQ51Myfb*aafiYY#u{PVVPDE4+@UaG z*|?AA$s%4Xk9e4kyB|0CIq6AvGSkjO`jYL`w=iAtgvoJ*lb0^OI#&Nt8*YhLwEFcupJsT9$XyFxG_8qJ56V?vX z8eVZu2l0xtO}rvB+I^h<<-#ilz$;p`SGT|`+I_eMUeR(JNBuf|IhHmR#w&*V^7*tC zr!R}24qj1h(A}TkQ2(aB)aM;s;XK@0;uWoWtET@d+>!8#*~g4ml&qUol1=_C`@Qgr zmf!jGxz_QDfo8m-)$hN4yyB5@K*xs3J7auHOx`~JGhCRwqW`(PRZQN6?brYv*Uf0Q z0os60(8MzEc5Hx-=UeMG#*yP@1GMfq*Z>{$n285yVFNTP!UpKgYr$REHbDQ(H)Z&{ zVeaqp89~`}K$--Ss zx}YU4FA3gOWE&%@ux%I`X*9lw9lj@Y-k-7i+p+^X(y;^D13RF7O*^1*SrK+XITKvP zx>WWr9UGv2Y=B;IJ*yJj;Ya5rBb#plElzuiYZ@IDdCG5rQyd=>0R)1`P zj>i@#XBziozfNuo1pbi2iA_pcBE{AUcedGo#z>iqkS&Bpm&Gu zf`&#@f9xZKW<*uXwxIe^GWI|lOgo|RIU(vUow%lL&_Ne)pLMV0nd(2_ZnmBmXzT_3 zp}P;a4{EwQc)jt|eKTIK*K&ux*6f2uDLr>Q>fK*lYS{;c*Rf@#ZQBQ3ew6k>v9IXZ z2mKB_?J!=?74JmqD>uSE=tGP_E$o9j{CLl0A9RIn9~9p8;!bzKVL#vBW?cUlV@q4BsEx-ff5 z{I`bLD}Ths>@oIbxow0pW@T|^zS%}7|3_mZ^hc!I8fFiz}#cz>bdN_3j+8Dmkb{T$c$J;`@$N6qs4{DvmHYx+vtot^Mj#|`EjEsI0c4K5i^!YFHAB^?& zd}07=9@z?I9gKa3g{D2n$HXT(j&oYj#`@H)cVxE(iUHFG_pM!nSQtU%g zp=*>*Yv&J}R(g_KbJsaLoly%>AJJ6wS)b1TP_5j$ZnP z=2VS!ndp0E+o{~=HElWezh!D^d4^@nar!8u`vRkVTaNG8wj95Y-HY;!VI?1NmQS`E zWe-fY9Je6jZ}oMp89N|Q+MHf17{>*+EywbV0VVH~#z!7s9JDptavW{ja^!s94Ry#I zevi?HEyqqRY&kZtMw&@m9NlcsvGcLna~zF5$I-3WbId$SdyeW8U?$x59RG`YY7^^7 z_*U&XLQ8A*9OLL`3ws$OKImht-LcfDJ~-JZ+www7TaNpY3oC_loE#`i&$Mkh(x;!H zJ+y^$1V@#!kUX1hITAjLJtH?JQnnl)B@N*mH-K4E8)S60eQ2`{$B+92*6xOvCwse?wj3*E z8;!I+W~`BZVgvXr+m6{Lh4tO;?=uB_(o~-(IQG^4!2$G@kBNUybeEv^2~QEOh<0xn z3Bl3ylUi_G*A!3BJ(oV>*m6Aa_JrlH8=l~K(J{euvDJ8Pbf@4;o=y!P$d;ogrXiNP z{s6fphBAK4{PL5iF2NbT7!z0X8n&u-$bKE^{>Gr5`&srJKc>!qgUzY^)MpeprA~x< zRqrm~*YxgXEPkE$2iOTa8QkLz!pkm7m%HjFzJ{H&LdNv2*mgV>4APBJ-Gj`fWe<1< zrQOttcUr>4OYUEF(oNiNTR^{@;Wf%`j|-HQB?Zb#y9LVT^bC~Ulo}|zF)dIwDXm}9 zB*I?IeYe*W_GIu!GfGb`eQLqS6F2z=rF|nkVPbO_(lf)5r@}f7NQArvvGk-MdVP~B5Fpdt;*g-#WY&{x=#it7J0S4os#z{Rv6Jya*#+l3M z{|$_f2mOJv0||k$#x8-f{mFr{eZ2x@JNjzu>X&pQVQ*(Vz&6Z??=Wtal%7?(X~FJ^ z4>AVb$hhT%xs~*8CCs`!Cs z@dM_UpG0*Eo)X&WeFG>?Yt_cORi5g7=r~2=Y^81E>x6l) z>S>f!eZxw#Eliv29;SOz8n%LAS(|Ea@zh($lD|VAP=#Dp>`ON9An;?iaCFR~hCcI_ zE#uzyHGO*Qf3A=@sy}o|2k>d99zo^9*cP#-?^&ZZbD&e7;65;T(k9v{0BpnC6@M) z&RxT)^A;`pQ|JB91)zV=|5)ulB`PJD8kHJsB#oAK425CsRdX}6ezqB#)MmTsQL~wN zD#KrShw+0cHS>?gh9T`H9V~t=dV6dbmaPDL&;c8UWvurPvtjrGbnK0`Y#0j5)yzxk zr8Qp4j;3@KrcFxf{B=Sk8MPo>jxc+rUNM)lhoe}}0J*!W6^w@XD2yp=9y zNpl_PPL3WmU{+e-`0mAD^Q?nK%wBt0GZxWEC>>_3z%70L{5#Q*GO}|f#-9raxU&q)T_t?T^?6*8H2iy0f&rIJP zq#ws(w@ZFmPc2-A&BO=&?8mfcH?ffQW|g;W+f5{# zQ5M22)(&smO(Yy+DsIJgc-w9w;TYE~yNP8x@e}^UWjC>`2)7#3{V=0R( zZ72VtOZhkFgWLmN!puL6S*&f&>oB{C+c%fWp5A@PTVNK;Vuu=~2C^0U#g=vx`M2l_ z+fA&?Brog?$8XtOD$Js3H<3Q;*iDQH+f5ATkN&NWdB51CTlA|An(ZcAD@-){E zZQNxyvDy8nj0<7RVmSPV)Ik`t7e)AtS8fM zB4te2wYhYKZHEy0Tfr=b+r)j)17^|WiPEl&u$$PGHrGi1Nr`W1HxXJayNRLp?IxZC zE=O^7zB6u1dMS1jX`?+F>bSqcwwqWMH_)P=`YK>P-Z%vMTi8w9ZrV*O%c1-(yNS(p z-E23Jd>p%pUC3AV5>v?6w41m!X2d;=1=&3=X#=wuZl{SBX3=cFbBR;jskTMikFc9) zwu>7HHwE5JrOh45ZsN6sy@{}M2wR%ky4}R9ExUuH1P>#Hry zqS<#B*=~szX0Z%Agk{>dEP{TuS?t7_aS~~>lWEtxEL>7qKf+AbxWRk_ZpqBUiK9I3 zvoMQg;F8Mn%&^UN6U)FXmMQLP(gfpVhOse=W!Qjg?nAQ~?-XC-M3!i>!(~;dobKI@A-4bzApHV+>%GiqCL^Ca?45|lVR-OK&dJz5U-?rVv z=05tC-QU#@oxUX;qHxHX^OW}@yWUpQClzj?UAMV}QQGYPwdlKv77nqw?>gzOBmMxw z3VZChF~87WDkg2_e-pOW#uE82 z4Tn7zn~8UjRv|VMMQ_$O!)b}4-L z!uZaMrGIeYJF9Xo3*$Sp!ee7=WAe#r*ABjOP&n*A3%;|GHqsit({y*^G&_jzyjSVD zX1Fg2z=+q5%w6rN_=O&#+MG@JBJglu7mi_om)DF?@TAnj^aD7 zTOG!C{+4gaTax=s*{j)J@7Ig(yo9l(t`(b%_u`&m+GK2r?|cyVLKnXChl<~dO~$x~ zz8ZYz0MbP-Ib1TUbepO}VJN=}d}k88Jyv{YALu-Rry1WFWzQ=%zH3rc154)~4|+o5qYb z@STNrdUHe@_|A9qE)O)Sj|tzoLI0GY(#Chbu790Zu;Uf;KaB5xL_A~Gr+3(c^oV%I3V5loi*{f7PlackWYhgdLzwO_gJ(R8^#0lKjIz~O$DXQ#XDn+6 z&sf2_y#=1}2(}vEVGm#TN}E_lqqB)++{M~XSVpY}TVNTLR(m)`BdP_C(XrJij7kQ! z8r?X?)@?O*ig(*;Yz@b_h_WBGy+&}1U)o+{D;UN?>gO0RjIG*hj6;7?bOa3J7sx)9 ztza0}FrFIl%Z*EPY&DLAMlg(FTa92C{jFdaSCNLWI7f?NoOjz9|G_YV|M?Gw@ylZv zO?!?J_{BOKzlbfuqq?tpF#1{Nd;#Fp=KHEk_};^r#Y)+716#KZou3cQoOEPtBV$&9iET7uO>AQY z^GKnMYxHp^uk1|<=O}xV!a2&`q&a8UxJKEV6s}SBCb4CKjySHNf_g~?Cs^X~oAxHB zb3bqe_i{$-j?SX1(>n1z&@(MnP5#&OFI$rOFGshZ z!TEBHp}`K~8COm^qeFN`qx12_GYZ%AW$=szVE%54N)9gZ1Y*^fF0${y+-C|jBmC|lAeQ1;{WFrM)?aDulH_S+^-aFmH>yb)~TsV;0{ z8R?Y~=1LQ1m{(dx9P{6dlV{=?yAwxvN(Tcuhd6VHbGaF3Wa%8@nEz&+ktUu|bieD$ zNBHsI5=Uh#DIH#V6LAV`Jfpt%f@dr+;}19SjC;X*I(WvrycVAEaxh%Ntq2Ei+Lr{+ z_*?evR(NAu;2AY`ICr8qF|JLaoo>Otq}s6jD%7qvTiC{Z8uyOjj_YyD7>8{8k{!V| z1~Ml#V;c+2@58Z;cPwci+jtB99la^8z&Ri!8T5fNZ*ZZT-SF}yV%AHiQ7?Z zFV;f(D2DSSmVH-zN1~;~`ig?1h{e<`N!8S71Fb{RWHe##T#s#X& z7AXt2dava!TTvmf3fag4A>3l^@U}fh6HnpCt=JB4+hhFy?7e$@RMolvzxGT>CRY*y z1Og_Lppprqq6kFM>;zOU5*28*$I~VuDuIZWQjruP0a1a7Z4k8;za@B0V(F<>D(Qh^ zK&v1^t9a?{dkhz4LPSASh!XRAKl?JXGfW^L+V=PDAN#fUUVB}hwbrwqb^Gkka$p;E zaAUfGZFKN4g74D7Hj4W(e2g8ijl$m+#5Ow8VeBXvjApJNwlSF2F?@{g7aEwoC0)Wc zn(}5@e2hVCV<8w9i;q!o4%V5_L2RQVedZ{#zb-frDZe@^uXW5jMCMv98S6{A1K3l`G;ngt7J>BTpLZA2#irhyF za16H5%o}`+rrkhi3u(j6%q2zsOzf!SXKV*-W3W7yguymOOIWZ^HnvgPh{Pp$sE*i1 z(_TzF4z{rl9qbymQ7^B^$TIj*Z9G&E+h~5ng;kI}+Gc5FLl+Yj(DhQ&e7Za2@5J`oP` z7W^$H?LZsvfP>V*L7KAHb-+PdZMXvt(sX0rGn9|f!a)Yx@>ujm`e13NS?Gg}gA_e< zw&yLDZ4iGpw(nRRq*-otv|sUeA{=D&DdQj+U(@cz=Gg5%h=Vl0`LI9Xagc>`Y#gM` z$7r|vZvzK;Vrz5Fu+2XI`hUhPpH>$SiQxB35(T>K9-B|$)8dlrvae#y)hq74q)|4TZo5!6`4a-($|DymM<5*wy=7en}dE&8&>bL z`KOdP9j*b@BYoL-tX?U$ zr6~+nZ#C}TFj&1>+>0Doy=NqR7_46J`@b2i-uc8^^etia22i)Biq#W2FW|DVdYfOd z`jx5RnK@JWPU_!@)$4^{Csr>>-W^!IczFls_VXQG$Lh_%FLR{;R&R+BHo3lLS$M2o z?Z%EWPO@aAjjT0fle=K=v!N~jDeRi23|(|@LyKdF8r`p z9Kzwyt9}^u)D>RFUo1O5FXKYuSCq}Sj$@2IF)yQk&Ex=%ar3Xt{#mdSbv$><%h=uI zWh|h4#P8T=CYv}$*3H2J{PXfMT5@|WxtBZ{l>20Gj9;x%b?+0G&C3`^db>Zc01TH!V%@g&F;COf%#N zbKbNE{NksaH@g=u(pE55N6%9YJD=;w!+5~PFrLTwN$X!$j6Hte-M9WX^fR)57Y@TH zd<2!`U1b!p2HCg177UNmpKvhN5MHo1v@GgoSSupJ4N0Z=9f_bsv zFg9EMzxHXpVm;uD5?v_Ru+CyRC$Oaccp%adI7Log}H_tzNwil3sh@GCa__!WJ| z4-@pZS>R%Ja8B&6I5YMPbbfcHE#D)DotAu0G;93mu!zR^V)BiDp zV=?ib-2r=*4Bz5Zu^FDIs)OKQhu**1;8kR7F1(5jpKaD>9E{W3?xk(NioJRc9@gja zb1(KL3VS7C;V@ihf8W9PiG05@-zYM<78~Fv zvayK`!nG*;A`9SD6n&QdxCks_lf|>xjqj&|Mf87%F}{UGtn32MV$xD4zZzjO4m3RGr_CCvDlE36y#WhYqV32#m4QyI%+bWO&p^7qqv(m zM6dCDEDrI&l9R^dg<9w2SXAs)cE+*z_E-4^w_-H&dtYz0RyY>3jrqN& z#l!qQH`e4?yab-bQs(ugz0}$w`lijuC-eHxV&GaNJ;r?@^Yq^JS5ekq#vIGF_#9!K zc*G1R*PMsJix)ZRwoY+BZq-W z^uV|1fp3v`!tpJpk`E^)@h-y2+QkCyPE6w6a9lM#o>wR5*(mlu$7*xZyvzwyP7!B9 z&Pfvv&lbu|#*$^|P>^qt{+0fx3w(nb3@zNEE&mqpBK}kZ z*u;iumVb+P5r5cvgLhGH0DITak#|vVD8;Sba6g83u>ss(LkRDpA(x~dNCyl9xCkSC z2R1Q~)-k+`e<)n%;9YEpo}kt#;a!CDO7*4HvZwGXnsPaK7rmqfuW#(e!gT@O zMcS^7O>8He#3i!Xd5vT4VPO*~H--FC1_9nhBab?|?hJDab9@IjF%VZr-o;=V9eEdn z?g8FKD{o=2i49<=8bszG?;>@Z4DaFu-6$u6cac2CZ7W=NeBQ;NPAsENz$O}XB5^Zs zxJY=$cEVXG+%`SYIRl%REc}4>89Tk}6L4q#(lu-%VGZ8Jjp^&)T|`IWU1Tl832&ruVTX#<_O^F8uGZ0xYNG4q>hC9&V!qe%Z_gh;ig+@gkTRFvK{^$*h3>d3Fp8b8ZsK; zDH8|wFyP(^_Au~04E8Ya&B7iwOta+4MqcR;EDlCP9v^N}R^o1PFdFiIJ?vq=!NHh? zp6+2CNXq!NTdoO@J=|2dZkj9DMx@Oy*_6Ic!rWu%pYB_VAF<)_A?@~ZLwAGiV}kJ= zJvZ^j4Oj5pZqs+s&r7?WV_^<&bJbaH6L6FEYv=16>egGL>(MRW@tTZE3fQt+E@=cZpBhzTJi`e#Jl=w&Ux-uV|$~KVtAJ zR?()fqD`-o@+V!pP0JX19~`Lmx54DW!WFLD7HHG(E7GQIT%pO8+JRrO!RO>xB+gag z_!V)_#l4v`s5loeTWP9C+uTugpI)6`_xW{sbw>(cu9frN41P#U{^Rj0`nON&$gjw| z$HMC@kiJy?{Y`(o{}Zu)=^@;Q-@TWyvdyo!EhOA=_!Y-E!ewm@hO0z3Lesbuzp^hT z>s+4Kf__hhUoo4wifn$xSAua#op*&_F;!%-!u$Ua5bYj_~0ypZ>az={;zrx4}p+x&Ez1+KNYbK5=_IeVET54eE&bJeRutM_@iZtIe_r zhxzOg!q4d6))DjRe{@m+^SOCt&^Cs%>6_6P+ooqd67>78g83YQ{NXU4hPxBH*+tCf znG&Bf+_!}J{5t%ME#D$P<6mf#MP0yrzK*}9E@D0xqQCxGoRNN>YW0I#^AA$3ha%O` zR>8EfUu>WM_5yLLZt!K&4+y3}&cbcyUdH`Bi^EK3G?|Bb$hCq&*zYHEtie? z%(}zsS1inD`_DUKK7Wp1C+2g7yrXyI_4%fss@9*$J9x={Te^<CB~U{GnhG<(%w&)Q8Bu<4cA!Wz%|bN2jUu$ z;}mg?ag1GRgq!iCag9>{rytk2@#7Ky#x-KM{*7xqJMGkPjU}fI*Eoo^-OjieYb+kd z2-ZV8Lrt-L)jwirQc8Svw994MiWXWmgbbJEcIQ^WCAk;bmAsmFON7b zZc;xUm!pN7eCr>Gn|uIFBWqm$#!YfY^*u4+ag!$Az9Vi@?2vFe)`IujZ*e+qbgMSe zVfj`mILg1bPp(m_?fp~abgYfVzMKS(vS#_!0UTwc@q8?fGQRToILdB(58^1x)8Hfu zi=+Iq!il5AUne-q7W~;b%8z(<#_hyWZoL2MU zcf?V?6(ZY-aFm-Q?f{OmT+XWQ0*#df^}45JexSmM&sGUQ8pRR$Koh| ziJYkUgEHElzVtS9**+wd>32lA7zf|e7h%}GLG{1#3kdh;V+vw$`5%L z9Od)eWev z31Ld{C%BPtILc!<9xWWD#qroB9A$vx(Mww3Tx=X=Rvdf(g0-+X9>d`%JKHM;%?4{Mgt_@)H(ESu<(4owN;nV0;wYQZN5NRJ7HG6r8=ECwJwTPTilY$rI%I&|!0aFlh#Z)2`PagjxrjV>^2>Wqx6x76X7Vs@H2knILZ@ZgIaR@ zD-!Dbx2e`uZZ$K0q={K*etK1^U>N+|_f6GX3*p4t$MX&7NXylF>oX(O^9Hs7|Ke{D z_e1HbwFSQw_W%OQ~vGKJlQ@iCcAkc|2|L-&GWRC&FoKhpZ~j+9^Cy=f~k+q zZhG8Rw>U~&+wAV2?ct0Y|BI^b;)*^i$9#O}a~)kpsNCo&hgPPNKBqWRTvbweUqcYq5Fd8(RmZ@$uc#=n1{ z-kQsJuzBFBRQ*E6c<159`J|qCNh_O)Hw*r^g9Bpg{F6+#eHD6xl%?Oj_>pGjJ6Xh8 zsPPV_q~FF>kMxT$@FQ-1JR<44wo_j88(M{ZAjBr?faIorATce`qp*0-gI z_I+E~ts|}mU;8msC=(y$ z0w%X*=i&Cr{u}hxQgA)~;pjI1UN!YslfUe#p5MuPUWR&J_$GHzzrUXgo-#uX{c@1r z`XzebKzaEGPOL+3w))!gAJ~UpfN6YD%$_pQy?h+KHEGR^>_|MWF==;Bu4z5rX_vVc5_E{GnY ze{W_JkLcolcWiwb`twnAOx4Hew&)`m|LXg+K2_V%#}~EOmKw%`2aqvo`iv1n(8=}~ zHB<5kPU=lKRwkZB7`e-we&nrlFu5qsY9!|OC4oXM}jeu z|7rxUE8&`>%=*|zy!~+R7vhfIPWF?YzfiT#g#$syPZMbvm^9+-L7ZZP8~H~zC*)hK zncl%KqgJIl(^?9r&CaT8>Y841SHJWU*tfYNH+IcR=S#R1z9cV~NSlb#8?vw|O(lYD z>s`NVs@{6dPc3X4Zfki)j|^P2=n8EtsTtd`4}ac_M6);04+J#b*!j1dX0b7MZ5Hh6^C zHz^+!q~{*K%i4}{UcJ#bnz*~&q&ptL%Ne(>HAu``z5ntRtDnOMJU_(|(Dw+fP{6+TMOq z5^~r!;@9H#Ui(_39-U_?yWnEZ#Q)h`m+%e-p_RG+a3ky` zc@53Tz<(X%o6|*B)gb-)n9&nWj5PhZ)JZAj-$eZx*s%)Lsu7pyq48d&THDC4*capd zVfdZoojfdhQSe;w=)M$P-Ps;$^MF@xk^e_TURke}aI=kY$@R;KXA;kv^-W|e&Fv^# zo+TUhd95Ln+>xb5?!;AM#q|@B3EAJ2JF+(kZy>U7mv`|m@5ug|yc6y_R=8Vuzkufx zj=}B%pS_ClRBTM$^VryiSnML}8LJp$<@QlCr_lEPlk&e>Lw^~o9bq5(GsbD3!{c+9 zaoQmnqk(0M^>)N&zskEhld%}}BlTR1p2(Q&ImSy>w13g5G1vvM3Fz5czq?nq)M+;Q zJ}y&TBsPWiV)Whrjje9Ktw-Ho=MP`$zYhP5bN;i!v$DM+iLqVxy7qfzY?n~iK3AFh z;zP}{w(;4I3U+W5ddYdt^)1xxZfUQn^$Rx9R_S9t{n%CaB0OOG)8HpcR;_)p)$Id` zbE;}+VLh`K`LAUh*Sv~<-Wb2g_;4v>r+u?Lbw?QUq`TF@ef(!+jMo^)`rV#vKV!90 z#(92pTFP$(S3ky9E!UajHb3J$%K6|S!tEL`rp`03@5<&$dTWNoncGbL`57-!M#Gva za3}mOWH#KL7--54lChp+DhO}MXN<3CFB!B?2`k~=miV0EC=<`L@)5OQNTm*<%gc|R zO&Vf1BDpsgs>b41QVvyQ@;0|CXPV%h<0O`-?qn7{@%-dt_88q_id8CAf-cJ&`w`a6Q(b?Rr-Rm@O^>UeyPhne3$mQle*bO-R!1rev=*^ z>)edH*TyOXi7^dGcs8FR_FP;})^t{AC9(%tnqaufHDh!-0j_AL6GC{?|daf!@3q&|-@7s+G2 zQ~D2ScZ?}|{#;YT`}6D{M884WM!%6__8U?U=Ws0{jVi8@5(aziPqOUwRP=s;yZUYF z(aBAFD}F^kjlP4qx$jU>b74BWa z{U4s&N4ef;9^jgB^fq_h7gHnnm$DoGR7Ub|WmH|;Tu)t_+f{vpHm_5bg%Qk$9ayRH zJPZFD3O?C+X6+)@Z3HXT%{a5Rn{j6C;ybM~YlVN6^^Z`j)JDb}g4eBw!{wP+<|mrU zVLq9Y&UH5WSqa~h$k05#(n?K-oANto#pOPl?UN2$V=8hph zSCX$Q$lvAUb9CL&+eXzj56GWE{;Q?$k7g`Y_i5d-OW0rdn0|2)yonX6S6LH#GVjCt`*i7TBL*_pfERI?^j%TJ@djh10fdK7 zF)4?2{dCp0rG_=Wg{9@|b#G?cJ(Qj9Ju6Ky{~Ohq30||r!0VRwf84_BmKb>5BHnj# zhGxNx++CWp{(Ro|Sntv{3*CKNnphiLIOm&7 zSJHf+G$r4y*!-^;n@HJ(llgxs3*A{bHBkF8a_yeGcY-w z@2XVRG-8CWpoMSBTaxyn<+fCdiCF>$>M`otjo#&Fm89iUpZU~h4f@bRea00vOk9XQ z%ln6fk1wj5_?Y#+pLnW>`x&n3#5E3^impw}?7zC8FZmb)7HBLyc6pSg!u@>Yk3lCh zNh62%XwuZZ)6#xLKPLWf2Gf`c2kQX%mKX=k%-IbTFW4uwr`NvJ^`i9TJ%_#4%v>L*` zDC=|FrCnNc`iU{rM+@yn*5&pSm++@HMn)uDZS$wzH#~qdmU&x{JGEad{H`sPoQa%B zSYz#v_G5FWmQ;B972l~pknh&2Mtw`%si7QrjjRv7#2mhe{L9+TZpz~&r8abxJM{qm zjeimx+^L7)PVK-&_<=X!VK8;VMRRr_bZZ$wm0XIRn=VFQCa)xVK;; z-<@29@?CfV<@=k$t;%;N7omI?UclpV5sDvY+QKC$Y1&+a^8GpDw$qmHlBV;!Gi~`U zY1&+b5r;5Id4lC9I#io1V?k$3E@HQ}UO`?nFwR|_$4Edhdzu3UX`<4|O z|9^!JO zt4f6DH5v?GKh-9F8?P$}VC$NU=VP&T!)6~JTX!zsZTy?Uw!qz1t*&Kz2Ki0HVgxau$eH?6egY92<3X}0`T{M-0CiMyt^+E6>?_&kNN z_)FJPS_EJBOsd+@Ri47ivB7$(F`g}ao$+kp>x}1P@pZ2tC!ELiGEQJ#`zGV!H+yq6 z-J7>&ckHM&?#0@gT`7&1YKzqx$zv+#1@yCc3SYZIt^b_)an1nN`$lO8g{QD`diha< zFOR&u=jz`g__}vpy|#W1PvK_v4uq$$u8&%~#NDd{PhlZEh5Z+-d}Ji+e~aPxLpRn| zGCukx^2yk-cWmz}Nv}P?Q`iS?D&bm5sn4Vy`^WaLI`TKI?kGBSyUg$Tw#2BjKJ~VI zHcz2o37zpBkEbxk%7=@6Ogq0f(FcU`6mIDeYS+FatSkd|h8p->Me! z5ss(ufcOJn*Ge8l{_pWF^UUkGJMnc7)3@0?h1iwJdft?@4Ejxt|9Ucz*M&`CU9NtB zCU)POR`ha4+Kt$gMf9VK=zkaCr)cz<;7Qqg2Hzs{Em^xAik&g$FVyM9r1=)(N9ugy z<>WWC4x3|-t;0}GLU`2;PC|c-Sq_7UQ|eOsP{Hw)xYUN4qwQ-yU~FL5N#EGMoz`=$ zgr|(f_ZsF2S2Is2 zV4g66dBRo96UH-77&oJ3&{*aQ5yo6W@?T8;^|to4E#zNtdE1F!<{RUGZ{qb7`4RWc zxXb+Sa@=KpDsC^~Ci8h6H*W}DPv(iT4k`V1=>M!zP7>CM(|b|gnXi{{|GGH6CB4~C zfbVcwzs~s%TPUaKc+op`FzeaHkFXE9yx8Tb+RY_$NSoe+{=ZKho(I2NkxSpOlS{Gx zv0wK7`DSzfJ9fYCz5c~{}jVPrU4JNK-j$KI3>_1>)C9F&F=w*#wHvu#LoYJvi!?6zX7l}ttitz~F+pE1d9?Zd zT-zj0@=Tn$Va_6!a2j(QDaU2RuiR!HCGMIKzQ56(@cmteyNZJE??BXWk2`tm5?7zC zVn6Ds7pXg&FHpFzQkYx8m6amAj8b-zuJ9xZ?_UvmQVO2XwNduEGShCMOr3bbXDCAz zQik!Lw@+R`eA>qJ^^Z|z5|5X25`;g{s5|yEr9346^qp^HQXbN-rF^999^2P$)VG)N zH24FN&*lltN8V4dBV&nQ?ydf)VM~#rF1jErzO9D**!mLB*$JXAqDS)xQxvHWw)IbV zyo`FLZ?yIA$M_-a;3+X?ne4~rNWBU7nD`kg-zhWU5iEg=O3Kx44{dWtV_!yLU-Gdp zdDxdf)G|lx5Z?sKSmIk|#fK3$^nDxi{V9>AoXEIgpyBRKn?d?h7OKG_=U{n`RD)Bj zZ^Gqge~XuAzMXBPrv^)%N_ofAHx?7Gw1-RiR)imkYYjRk=@rMQ4T7^W>=olpJDlWK zzDc;^h5BI85B5(d7u}-<+hsdg-ic3SJyE=+l$GpLSCWS%j43s2yU4eO@(}x}c$fZ8 zIKJ#}+t9mx?&$iW>DlYYTbyIlT`^Vq0?{3Bns5#Z=h$>tY?a8rkGjZ1e`1KIkhF@~ z9}HI~vL2MFXm4D)T;y%Pv^n%q6 zs^xCGZ6mzITf`;uWN=BE`^`9vG@bHqqYc>d3zn@C{}Pvk`H=W!T}sxzo$lMnm&Cuo zNJl45)Bj-7)^RHiN!yuUXWH@j52Ve;x7c&m>XVGUy6BE+-p5?I30#SMQ+zY-$Se1@ zxi7Mgsj9P-+8PahA-9)0SW14S{$BG>2#cpv2FKh+gI7*d`e2vG%!9Nkow^f_L8-SZ zkjcxQKYoldnE|fckhw8^y~OW~M@8s^Gw~~RAFwUbpAb(j@w_i*W-!NcF@JKOud2^X zRB!AgPv6JBg~sKSX}^>!an7JkN?aEamm#CXU1_%G3Gy7F21gTbuBNqQ@P3`)FC%Rm zdE(oK3}lvgrEafcJ(BV=;+cT$vEzxCXX44Q^6?>kcN+fahfEtpIEhPRE+=|xr?(oN zxCDQi3Wk;X)$r>LTUM6bW_p46>~zl|uc2ikx^Jh4JjNcxQfx_vWlQ3bL2QYacNr%( zV;}5qgOQ~L+oDPbt-r;xC9x{Ds>re>EnslOmc)Xspp1LAFitDRmWb}BXQ-J)#65^O zD=1qHyCSj$xe84^68UWT2Q#KH%1Fw*(k%03t^7l~NDa1iDPGg>?-$jhI2H`eb_T0hr5pPyJ zn7+qj>I63^Zu{@qB~%ChK)Ag~!A5HG$`Aa^U$^gXe1k&)4L@^Q{KY z*94xg$${rv4W6$FJYSOo&$s$mJYPoVc)nP5cG`!?b_|X$9vq)l9-%nCSk_LlE!8bn zSqP3#%0tdA(2g)4xehFr;Fc~#r`apj)3L89;IMdKJwQEg;B=_hS7(9)8UQW=UH5}= z+T2$SW6#Wi=Nt9FK6Ju~=Tn?*D|6L_^zY50FYyjMA90?|ytOEk_4x4w&mH?g)f6w5C4jQUK;`!nix8#wh zP(0sia2+yt_jp+g?Pkv7o70)c%d_D9klD{3p`SfM880xG+EjTnbpKPdy zy*kDIgXnf=*ueV}Vyb?c5FQ(-(|;Zh8z|$VP;6jcW#LgTdzOL?%;&#r-8&`i1D@qB z*g*N#0UM|Xv4PTW>6Ph6?Qm0B^IF zr|p0V^e$3I>2nTlB>s;G>q7@WG}>XDfeHMSI=3-_Yx!>IA!|ia_o9n}3G~vJ)(9q0 zbWt#Y)bm-Cd%A@Qlyw;i*BoWmSrvV!fyui;wX$hG%u8Nnjm7Dwj5rUIUK4Q|*bU;0 zC(d?sstHWs#e{Kwi!{?a_-PcFKu21yVM}aG;QusOm_TV8X5a#e^C)q#uW^z5`()dj z+8<(X{%+y|#pX0oXPsdJ)A5_ZWncmaQT|R$AnAu<0&Cs0dErgHjd&^h63X6*2{h!P z?uuj$xk|Mj5&5WB?C2ChTw(dMtN=^)!k zOE%Uk!eRn{V8wO2$OI;Eo7|DTN$?uTzD3@Vy++=V{SWev?AKV~rt&_R=M#?MP7@|D zvUf*J;3nSHKL`_8ddMv6aG1brS>v)Xfp@O^8kj)FUf&2NkTI8Fi}p}|;V^-QyA#{j zMNHtIBtB=jZx|COYl)TLASUn^wzhG*nt7IB0{=ukIx&IM@ax0` z-X!m|Tca-l6Id+o;Q2m$?&L9nFA_$^b2cXMZ$=!+^`Fe>hzZPky`zjzTQVAbir^Kc zZ$YLSxg*OKE1o9e5lr9+D-TAW0w!>%l?S6wArI$UdH8QD+?#~^InSN%BbjGrsT#eG ze_Xfb#)Y0&Kgv3an*ykVp7f1n>1b z?AOLm<{9VJ=Zc){eX)kj_Mz&TB758koL8T~dG+{Vjl60YeqIdhFWYAv^{QWrdsoh@ z-#_E{=heSM*-WNvPL|iTg>@>MTaKTMCVyd_nLCK*8ph%t=E5(t{w8?I{svyM|JE8)U?N)Ek#}-mQ z?^Cy};1c(`(djSShl*TsCcLC2?L^$0q_45uWbPIzbGOnX;3KgYmRxo|jBggcECxB{ zzb~;Vg6))b3z_fzkA>&_=-pMR+qJ$ix1oQ6155(XndO@LOTpD8kxmBBLva7potmw< z-v^#^!5^~?JZA;-nO%hUXs&Fs%ZLHYH-8bOh6#>a zFrnKS=Vl2a!Tvo7E}({R2UAw1e#m%R=ADA)l=#msJ@e>b-esTONH2mlN_RvHZE5nE zb54JHlGa|*l6>xAjQs%^CYgta%J~ZU1}A(_=87*<-;!@|gyg&P{2m0iDS4AQujED2 zvgfE3;5HXwSTWz?u)R{n4RuT3YN+ahE=QAN9srY&|}t?eGsv z&NwX|9Hb|J-7L4Tn^)qWHgr(dSszDEpEe|WENe4@*=&9RTqfM8`@mB&SBmj6j~5)L zmo_B$O>vtB9@NkO4-x3o%UPUFPhCmf%0DKJ_!n%av^l|c3Kmnaonr|zjrNjC{sglt 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

    jTWmV9kvg`QEg|jYpJ6YrEyzh# zv6t5r`JU8QD7%j+r^oW{sC+44ACIUs^8Fj^KCxSWquG5u0`_rykbNwebR+Y^ z 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 u@2j9-g&tfMt9 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

    *z=)Y`&pQH$`^^nZ_KpB^^Hw}-{rck=L}ghn!G% z(5;jS{hKPgSS7~JoThFzXs+lDsbhc6bO~Kx(fPIg!}__s3luhFsES6B`^)Zn-?;C} zzHzemgn1lEJ^eO~_B26>MFV15`;fm9(bOi!qiqUaY4INN|$dppaI zl+(D2M7;^DyQuZYBH4)j2QGRKbON%EX6n8_^Jd1S7%a(fc+y&)oE0Ff(D8xmUIgVd z-vaD~R#B%f)w#J?VTT}f2cpojDcn{^3bV7pbIN$LO_|uiFmdgl!&Y;0?koyfSn(Q1 zn|_(1bhQK_sLnqZ^#}LYZfMX31$=(yJflrPl>Q(uDL{Onp{1~sBAun!V0?f+vJ@`l z$NI;6I5#PslNm8Ko4Yk$3ZSwz^K)vyoeb8xT}|VMq3m5rfJ4hMeA%Wtg?O=g}3@9j(6ZyYQa%0{ILU5;N zN%?e2Y;kX{J(NTxL9Y;lrdo&?v8~npVnOdPJ0bgp>5=DCT#IOB5yOP8qbFiH=|R=` zA>NEvKG?&-YclW*GxS>w&b2fmbsv#mEwgBT!5d=yWH6-n_@Gq|Y4FTfPdCxRM2^tm zgZMH2Y0W~mRL&xAIg3d2?Z9USimwn0qvjv@PzZc(O>R@j4vVnf(WG=}evkcVkNuKr zMKZB{_V^CpPiu1R5qQBA1k|e<-<7luIs;#MhZg@~<%TaFns&3Bwx2EY^t@isJ@l9* zfv?5Ks^m63r5WA}7$5B(79-Zt-$_Ja~!e zM9}K%6*akgNSj^x_US?0{WsBVO|DezL&~$3B(l;z@|7bFx=J;9j}_5xB4lGeub~JnrM}!97&)a*7p2$wvR$4Uz% zZN(k3b%{QU>8*HL%)>O|RR2ark`jSr{6P_iI!9I%^#JBYUM1UtQAiBYVjyWYOgh9AJP572%lbkZvM^W zUG<8h;n6DM)L9yi99(qqrkJ$8D4#8@2`7x>f(ljZ?}A~ZZKm{HSa)nbB7{EJ;ep%5 zpx&^|R9*KF6&3AlaBe%BW#TOLj%3leBYZ<)K+I zT>sY{wepaQhphW#bV#A;ZZleap=?Ei8#i}@(amc2yXRdyF` zM9E>V8w+Ea{J5*GtM?oMOQG8hbHS9_eiO|pvey2!*MXaa_>op=h%UBHyaQ5B)xrZB zvawZ@OrAKoBn1)A@$=5c(xt|2lWqgCeY}0+l5pwd8FR|2%%>>xa3&A%+aviHdx9}< z`IxnPUDmIJmLo6c`0VF&bvfp2L@Bp_>wnUPGg^qr=+3##^)$jqZMm|}bTQ`CPgh4O z)3u+kVvq%)ZXm?C;{ao|Upc9KM#p*>*`AG!FcSSGizpoh_fJ<&4FW7tJ$-L<+t=t$ ze%wRdVUe6($%R`TMK|rpD?A?F>@L=E86ewAo@7MMnvE2~KJ+MX!X@r1AwzW$p;q@- zVQFlw6MTV5DW>*xUQ=s0*W|#R+hI5Sv5&iTX#iosU<4}sK>XQNd*T-t?UEnGr|sVZ zJo};Nqu;;b0R8X}J|Qp>0n9>>kt3p#@`9gO!2RP13h(z1JD?GhK_6Ct-**VPPJw>k z<=@!8#&7!(|5N^NyA}Ua{%?C3|E~UTJ0btB{%^Y|fBFBO68L*tIDduz{Uq?)?$KZV zUlRCB0{?yz_-*IxFaIwI{3U^ZKMDLRn}&b!{*u6768K93e@Wmk3H&92|GOpduWT0o z#rsPFe@Wmk3H&92za;RN1pe=q0Q3!j0I&$|3rhz!(C2~8dU7}}RDIMS)FRX&)IC%Z zG$}NDG$}YMxFEO#IBEC{ggS&D2r`Io5hxMo5YG{5keY$fZ$@Mt#r031nBbxhz)(~0NKcZj3Gg`F@A?Z@DGOwSbu-v3JS}E z6sX*_%?xT5K?x-+-B5cIeN9zGIcZ68QDH#=K3;AvP7Zc9Ru*O^Mh1F%I$9bUYAPy9 zN(ypvGBQ$95)yDUOhiOT2>zcKA0PZ@J@{S#2L}fm8ygD?3z)%yOy5BEZXhE!kYyXl zoDF2d=GtxzWUc1fM$I3VX|C z(eL!%{C|#TXF(252BfcEU42vjsb}(a0YgpW)$FOMP zEU6+zV(FQHZAoIJdMSytmr`8Mv1IF}EEOntPGv?Uv7|EJ=}ARNVzq|?8H51}2lN2Y z@6S}A{`?U(hEIiM!wO&xFk^UQ_+i+@wLg1}5a*9;^*a6;#sX&y&krXGCk3YhX9&WU za1H?f@p6X?{Kbm^O~k^b!j;0Q!2j)PzK-?%$=imbffs}qhKI31O>61pWf^$g;NLQ+y4kt^ z$2`C05t>VgARUKv46;-6uXw-HApf_6^8TiOE(7KJSG@mDJ-_?(yA0IUKZl_>>` z|EF^QU+0I~hx!Bc4Z61>!)egE0r8>r5xT!29z>9FwLfk2fG{*h$R-fPgFX?1jIjZ| zzP6!A3Vg^&8^njq0YV1rARa`J-J@&6Zor2eF(Amm8^i?%Th z$Os-CAczMMWTcH5&~HZ%0t|p49xEUgKA(K zMh~Y5P!EtLAa_9b;o{-4!CEp3HwQ-oPY7Pj$K3~L@Y#NL<+=RL@GpPL|#NOL>UlJ-8!=%8Zg@N@8I8Hto9x(+i6FZEVgI7pg8dilv$);GPY2uJq z1zbcD%*2GzM8L#E3PxgSX~`@E05}Cbm=U9q5wFn=SQAvB2^46`Yieo&1@!Q!^w{)- z6rlxA*VfYJZ|m7_j=Zn8kGt!C^ zyZgHNc*8Uty}cdX>~(EDeZk6WbG-yA+4@*J{8`E0Seou$u9hzPmiB*RU00{?0BZO< zp0AY?Si=<@y?vl{_>U#~x=tv!i>-mBi|;S4wxySkqooTpyz81|ua{xy4kv`sf_p_D zW)5?K`NP6tHLzw_4-9(p7>6yv_O4q~u(h-G`lHV4f`(p>KEHdSYwHhUf42$zAvCaG z{IPLBQ7Hf4a_HGwU)TDNTrgS%OCQUBopLQ-TN_c> z*Ll?4-RvO}{X+o%v2&ms^6oB>{5}444S&=Qb~G@_|5YWBM*OYE|3yxHFH1LXAYVIQ zH*08k|4FmHR*rUmXw83++doN1!QI!&#rD5w@mGF5uV3Q)Zx{G4>Q=S00ssC^yz2k( zQ~|A^;BoNkn=BOSym~JK`LNDAz=w8?J;^_I0GO15ud9cKyN#`atu;U>6D7tyB#9f z%@6=$073*i8WKQkup=UZT@3}q2tYa#xI@qYqJVn^3B)l#Ix5JE3`$}F6ud4W1WF)- zeFqmH2MiD7W&yh*3dlzQ5Eayc0(LthfCymcLjf(20AvL_BMQh*1`zx~H9$tN5264r zB`5&odX~j@KHe@xBwynE5xW^Y&-xlz>bLu(*-*fDohXTYN$Y{0swD;QKEu2 zga9%DE5)cVBVeN#73_DS0B-}E$f#fv!~v=STgRxdo4}$mDkv`rPykpmMg`@iK}!@c z8G!h(P#`4|SSJ`MFog<-3Tl)AC;|%wXanm62qqjJ73Khw0cZ~kg$EX@V4VQRz@~!+ zn}W#zd2$KQ01PcY23F`!y1s;6R zz&Ev0ZA1rs!v#nR zv=JSo;DfyOU>q1gs)PVtz&J2KABX|6g1i`jNCA=pZN!8P1C7Ikjer@$1d^u&I0nXt z3CdCfbOhtWggF6i#DqBmZNvmKLJ#mQ&_+x!Ba8rNfTm!A8DR!E2ec6rw8#q36=)+S zm=Sh>OF$bjfsSzkyaluo6J`Lk5ff$zv=I|%0xv*YppBS7C;0*D0d2wrwF?3i0osTO z^iLQd3y5KY+C>2x0d2$tnkf#D185^As9gf!ZJ>>qFgu`)m_QEFKqfdq8!=&nKpQb( zLqHobfeypqFhLtK00n_IVuCh0;jlo@VenX>=Q04*fHqjya%14(Le(a({1&7YhG_G2VX>`3K{? z{~Hm|g@0@Jzag@JDDp3+Yw_pdlS z)EscX(-HqE9S*#U{C)a=w>%PfFNAvjyZ--f`Tyhg!T6ye{!g`!_&+>;(BNJc zIzNN@2d!x+0HCKus6R5l_|Vzhf7(9C51n=W**+-u590^vLci*{9zTe8g0=C__CcHh zr2jd75Ep>*gZ@H$In*C$FaJ;52l=pmr9 zU|sW}rTX{yq50{A^8Gi)51k)E^+E0bx91;>kM37{p-_1cht3QCoPQ7pFRK6f_(3{! zmiTA;AP(6!|NHT?{i^SJ{vr8*j{Z4*ke>!h2jd07>-NQf|NnaYK;NMA)j!(@_58#9 zgLLTJ6{`Pw{-O5&UjIO&OuyO-h4O*?(E07}`M=iJU-|+>eBI9fV(&@-qN>*aId>T@ zFyM#?$R+|RDk&=N2;+`QMoFb+=7yrVrKDI|lVXvPVUb~Cp;1wxQc+QoVo~u7i;9Yj zii(Pgii(N~pa0)CGZ#j(-pfn>k;feU`0m-y`POsJUFHn=2fu9jPxa}HxMlu`)7fwf z{}Cq#-7sdH`ERu4Kl*R0|07ZUzve&qN9Wmp%75e! zr+k(Fh_g2Q54HAZqH@TOBn-Z&`j4o&{r`slq~Au=ZQ(!K3%9nX>c0_VX)pfMc@&AAOe_ANn_TL-w*<%0B zqW{M8SpUiY8!_hdS^vXq^&kGxWJ~|E=zmA||0Qkozpei_wX^Nk*iJ=@m*m)OdGC-nc0{lCRugY{;;(6at>#pce4 zHPrd6|84!hWB=cN{CDjC9s7S;0G!YI-`V`XWB+fFM|J(v&+6yY^FPP_zy0jL+5clt zeLm}dTmSFa|F<9iJEH%0?El-3|K$5AoX`5-+5Ep_|8J4UKlA^N{eS!EKl%R>oS~o3 z`rp?7JNEzW$N!G#|BbfipE$b;BL4+rflJ5ze;f*yfDZrd^A9L$4(GG}cQ*g;*#BGX z+n@P=$Ns_6TAH+3-o@7VvhAOAa||99;F+mHVa|L=JIzoR|>=h*+ZpZ=To|JXR4 z&+C83{vZ6ozRvOdKlZiseuQKHZ`RlLc>c%X|Ia`F@7Vua{E=h-4?19P{*S)@N9X^J z`~QEw{=wSl|NH&F5*T(`kE!zSc>dqA{!yR*aqRys^3fjt-|_zc`RD%~_y5nde{G-t zbL{`yPyZe7|2y9Q?`ZG;IrjhUr~i)q|M}k_W!KS`Jdzcf6&YN{L|lk|JU*U z|M}iiug?FCSnIVH|2yLIe~$fs`|;ng|99;FJKFPqj{Sf8=|4UH zXL8*CKd=11WB-5V`p2>V2R;6w^}oaapMU<}vHw3){~i1Pe@_3&|I>@pw4Zc*{~vU~ z-Wsn&p0WS_|9<|@vHw4l{%!rgWB+fV50(U)zyIm*|L33oryCo#=YMU#|I6C>{Liuf zx6u2n{txHvZGZoV9A(S-D|}~fC{aiL{=eh>|G(hBlQ8~mNzyAk1fNu2rZ|D8*{}FRL*!jQFcKvmh=YKl-@BcXV{}y`$lVY|f zj{U#Ip8ONf|A55ia6X^^^~DIuo|@nPgnuzQe*dp^{|UNidH#$1wPXKpu{UR3|NO7- z|H=PjfqXvef0(WQW36KPANT(y&}rg_>i@#6^H;zBV?qYyqnPIN-;VhFpJV^ue*9P8 z|5xBs$^I$$L;i%~v`<#7a%P*4q}F^0A?*uo^V`-ZIkwF|qdx2_?ayuV+tw#Jx6MDJ zKIuZ6{I>P~vVZtL`u%m=_S@F~%l?sxCjPSiU-l2;(LV8<``0>u5TAZ;{+#=72maIj z)^qN^9p+DV^_=_H%6|wix!`l|U*r7M_y5ni|90TNUG*Qr=dFeQTKSLuJ+<_&k^c(% zr{Al$C;#oL|1jR}8t1Rc{@YpqF?DmWC;#oL|91BOE-?NkaNwNjuT}riKb@DJbN}sN z|Lv;(m_L30M9cg;vi_^@|7)3lhhG1K|D){5e+WN)-|?L3-wygu&o`cP{~cZb9sVEO zw=e%Yv;SA@z5j>(i?lQU?d|^~G|s<6`+xA?hzZ!!{@YdmG5>IT@*n+&YUy92|2OYH zaNucA{@Ydm9sVEEXJ7u?RsX?%yPp3;|NXVlU!(pj=s!wJ{~dk(kNJmboIgb9FYPB- zbVmLe_pj`H{zvcs8Li_M%|A+oN?*D6(e@*uPJn;V|7=sr7*P-z^SS{hucOqyJzn{cH9A zFn%WZaC`FKvH#aVe~tWy=$V5(`APg z{y|#kPqyG{fBs*e|3&}(we+vi{*nGO2&6sv z@9_T`=&zCg;J!K7lmB+re|!6XJMaI^`j2-$?8$$->ObsnG&DfV{5!P&$NWn$0WI_I z===YH_T)e4-$zUT8tuPX|M8-iJ^61}{fF#3&j0Pp|4!}yA^i0FMdz%48ug#v|MAh% ze@EZ{WBy(m=ilM|KOFcu%U?V2->&+P&K>vv?aP0M|JOi&jrQO1{=eh?zvKSD2L1aV zIRB>)Xmnct59i}}|KGm+cldt|^w;SBvGp;BPOJaeyxH^lKYIVB1ROYL`fKFB`TP%U zoOA!}u>Z5G{)7HKwb1{6!2cUNv;PPGN86MC5Po~U|4;f)-&5?g`tLaZhxFT*|8_n9 zv$OxV_xt~5{qM~8|6u>=_X@Pwzm9(XZ^8t$%)g`G|G&VV{D=JY*3!S$^*{PAalHSp zN&Y*s{zLT4q0{QWz5PG*kG{Wu&h*!+|8)34dswUi?DhR;d+-1IX`z2d-~U7YOpg2i zn&e-T{in^37Wvbv|LEVSrT>n8{s-ncp8vD2{desDHPBz9{wpB9Oa;$LpAz8P5vMKhiK_vqyE$VN26o^uSxzj@gMizz=Ct{UnBp~wK;TJ{Ri{x zdHz~&3ANn7l zMgBDEzxn>3RArwVwal`TUR0{~hoD zYw$l>`49SgYLP#!{tx~4(9*wS|KFj%{|(lgL#JK;+j;+Q{{2mG;GF5NRsV7RH&RRg z9bNx1|3HoNhY0;8|G=U%^3S*L|9AHH|3|gq4;}|F^9!%UFa^wli2phN+QI+Z^ZkE1 z{~z9Fet&oVTF-wR`~NfL>u=Ftqx}c#&EcH=PdnIuyFUMGXa8^S_y0-%BOw9y0hJ$H}5|*KL6qGt}B zR{!no|Dpf>;J`W4U!(q$|Buqre><%I?Ct-e@LHw`QNGiKlI;M3;o+e|ItRL)ql`GNDKYRcK(O@AnzIUJ>TyC zcjov1>HKSK8~*&Q`>$I0kN*2>>AxNH-w1*1wEFMx|BycW^1oC2e>?C0Y5i~P%)kEu z`x~uM{yVh)$NWn$0ejkiyXrsYKhU21NB@1a^xq!-AA5g$^53rKe-8f->9a5Y?W+Ia zzg@ro2jO?T|F1#*G}=D}^zZEN|Cc!K|7-Gpn$~}0{Iu9#jq>k;{*7At$N2}u=P&7p zA)b-n_WaA?|Ieh)-#UNN$bZNC|91BOcHaLxzW?9J@BfqW?acT8F@Nti{^@VoU#;i= z=-=`Fzy185;@JN~`ZdtM9oB!HdH+xE-;`*fzsB{S`TQSkblUSj(7&e^`fIiS=fU@X zI{W+oqwUFm_Ddjqn; z{>S`#X`FvY)_?l_pU(XLKlwkV(f?`UKl&e_MgBDEzxn>3Z{GiR=JS8Z{~&wvAN}{$(!W;whyI6Y z>A$1vKa|(;{a+3Kw;lN3sr^6pUyk?xHOQY<`v>}W_V@p30e;TsPaR$VF?YxJ|Lx0v zsNlKFpH}_vg36jSFc@^I5TN2IQrH9p*n>0K0^B&dif1|Ncmupl3U!up5!cXxMU@ky(b zSFcROC>Kp#m7KVC&DzA|1jC)w1N-6BbTbJ7M*z^@(fOQAJ9dFm+Pgf`vATn89r;E;8QyuhOHY*waUD2uL~l zQcy$8i;Me@eXDrU*!iEuA9-c^E!Z-ajaT6`>ZpLzRODIU-rYTnD&X-thSzN9sL>p3 z<8)1d@~BMP_@C9II#l-0>Z$Eex#{!=f!d0SiYo6`jsR>MSb4W@l+mqCuq}gJr_=9E zi=Q-Q^0Jg`*CZ@hx^CvR3)d}Jxn>24%%5e%rA#fj$F%*5nt*GyVv zj+;kk{zGk`Tx+^Y6Z)Ov#Ql~afxdeOWNDn9zPXZC@W?_Xm? zx>3nr5p!RUqRe;WKRoKYqWkkV|8V^1i0X}x9|ChOwS~uG+IXn&OfBHb(1^BW~Id z?SzF%^xf;Co$(6|vvyt+?Se05r#`zfT904M^Lu+)v^##eaZSO}=q|8Gqn=t6-IZO) z`aQWI+Jntw4b@jfcV}zZlW)w9_F~&u%qy2id$T=k%x4!z`?4ok#`_mV`>}HNi7qZW zfPKN98W9`alSw=)a&mMK3*ie^kB<&!6L`|0=;% z0-{H-hphMm@soU?=+Vqmvfvq#5bhBj&C;y+Wh<8Chj+O}k7MJlc&inc$~Rx;6g`Q_ zIt!kryMGLip33g9;wmfdI z8?E>QD<0==Nq^8i?Wc#vE@RGJEO@OIzi-784bR5!9=nPiuwuWimiVn!{7ct;@833d z9ZU4E;3_Mg-pvv}(k)}ima!YyU{4Fqv*MoJE%9C5Q|2unyNS7ZS@5k^EPGqxH+etw zcKq0z*eNT%!N(FmZN;V@mN@tII5J}F&1{PmD}I*v4lDNbf8~NcW4E(=tvEEm5!Ho2b#e__RG{Vnl+ z177cTQPhL%xD~Gsx5Pa!nErT3R33ZQiWdyD#GMCKJ<~1fQTDhMUlC!6%Y%P==G8F= z*dZ&PJET~8c+4T@Jk)}Vtaxdphqr0W=G#W+ zvbRQD_ej;~y==os_n*d$-o-peolJjg^d0QcQUBU;`=~TFYV?9*r$*hxj*Z@aXU6F3 z+4wPgj_)76jy*r-(Wm!}UdbY&(zd3KUdr}H4XQ?2CXK!I^}VBJv&6B-E)5)W2|F_O zu=}NB;+P@2>bZn5li1wo(U0FUCYtSwo|O3Fm=Wxw=;SvHQG=LQjPb((QDJOS3>$G< zR8O`tW?RLvsO~I1M)hVhr%a7oy_5msu3c~To2siar;x*&iS-b?m^p6A91?j(bm$Os zbnx&qOAj7?MpL#<+0vNB*|jugiMBMRdPQ@;t-e+rc-))|$1(cTnnkfzH%u{g0G153 zMT*(DT|})pt!-b9rY}E(9CI$WZTfOc%M(_wT(cmV%C_`msby`D39|Ey#90ZgRVijI zi$#{CQxwImdjS5LLw}~zd-(YH1P&O9zveK-7v3p?`?B%)```TYLAeq968v3guAygt z{qL{ZB#*k1NrAzN-r(soY+RrIlhXDlZ&B%V5iO~h`LE4lZNlocYZDhGThcE{T(CG6 zkhpg0swJywxn?f@hh%IM5*MtTxOUlJ=U?+@&06ax{dNA#)l2@e{h6!R{Yiepf`uy* z*IjHze_3SWqW@fGoNbv_`Lz&|)~;3wISZ*QebY`Vv6ZZr#1EgNa|THhI~C6)lbbVIFW!Ym-~L zAbWgmviZ!xGR@1(Q<}N#y2Rm;=0;i*ENxmzU{j){hPi;M7q$hgszpiGM%Llr;4CFC zSc>M8TQ{B`vlrEHA0fCu>&K$fA@cDRp9LXzt=#&&-6%$in1C zeR^DZc>aod|LnQdQN^2@g)QS>2;RT&6OTJDd2`4UYkzRrKJ9q_N0)!)d+(f+qo2F( zH{H#XU+(kJlFz+%UG~oKr`P}NzGKE~0}rnHHt@cAA4VU!;otnGamRY?Tkvt$ofp3` z`0;DLcfNJ%zxqA0?8_dzXTLY<*^R%-+a|r#`@zJ|y5D{2+ryr^_9wU7FFbLhF5qf7M4ZM{hjMxFAZh&Pj20an-xIcQJJJ=;qno z%iE`iub+QFV9%gl!6Bi&`}7U#*MC6x1p@~~3?4Exa@g<@BS(!M6E!wE#yD>Lgo%?T zPl=s6ZF<~=GcJn1_>!3kmtJ=Htl4v}n0w{CtL86QxM*?WlBG$@mS4SM<*L-O8yZ{Kl8#?CwM%Dj8mJz2Z&-IKldzWa0b z?SCNm!G|8sd*so_@(&z5RPgu{PZmD)^fN`zK6kkI`6EY5j=k_==}RxaQueRoua=*9 z?e&T`-h8X_?RVa-dhg`>)gOHLQO(Dnd|Lb2=U>!)`PJ9;-+cRB!}mY@*!a`Wzcl^& z+waY%{(YK>ZXO9q*RFy?v^7xHB&%s&y@8#P06Rf}Yy}1L83i!K$!^eIm%=Gz{F^cn zNV!NYE?K?7Ms#gbEZRT`Hu;ySadYk&5wputW!#)?PWgjEnp4lPEVkvS$=1p!c4k6b z^Du4=9LM5>)vbn!mY8#<#xp>xjYY(kn21`l@WKrZ0u@eJAye?K{2i z3>GmoVtB-;h=_=&h?t1+tb0uN@spV41oMx7iQmM3;yoVqU|j$`0pvVy1e_*7fzv2( z8U;?Hz-bgXjRL1p0H<644iEuOfG&WZfEd7yfYSsVAOf5KT>w1+F#xo{SPwu?0DWhW z?sd~RXiT(f^sru2ni{9FR7WlU&Qm1^zU}+f{ENP>>^t`06EB2K3<=$E{OfJDv$Y)a zp4(q`LARckwpf7YfRcmEdldFat%1f$KsrRAhPLT_kg)~O3-<)30WXC^r?e6jGyzYw zrXN9iKg7e)Sle`Z7UZ}!eY>@MDh?d!8Hsh^5tZL-P0v9({dUw%*7UEDPUoyRsA3a= z@3W>~h{G;Qe-!D2pR}eQL;8h?_rwEegl9^Y_CqkfixGbavXB70+nPQd{audu<6zn> z;FH$$)kwb*@enYK%1^>LOuz}~Z#i%}(g`23rmsi&O^DCHB8Tvs*7+`i5bQ)e1Ncs0 zmF5^OLsw?Gp*0f8Fs+YBPJ#e203+Z=fC*sB7pg~fsC*E>2rvO!8rN7r?aLP1Hc#o) zg)Pu{R3N#hYmmhJ9HJ{Qm8Cgbq?x%pxw39UW7y1qKL27DbvNGxLGGFJ1PNP$Iu=SJ zaLDEPA(twHh(8omo)P~k;M5suXZyz?uKX-HRNj(De_?OUp*2OVW1I5FYqcKP`L<*D zW9f5EY3+rsEHgg$zp9L@Se13s8`WOGytUX2Tm2$G1CwX=MXD`9)UH9DhlND zp?_;m)E>2^(uC^&9lDTzhWR!>qv8YX4+sK;0U`iKfC&Kcvvfp*B!NDw!EG&euH&KK z%BC^VGfOnC?f`mzhQ6UprepMM4Cf5faXE>_Kbjd zzRoXx-3wt=D`=7mEL4>U-?c?s-<%)7p>9FSR{YZ)mPT0Gh86Kyx+$)Ifa^2v+#Bbcc^>e;-9M zL2{r5mG8t03Y2df+NP^@+xmo74`uNMt#S3r;g{OVJ?W3CLx0Eq+VaO9*Xle}tm?7t zd`ONuvR_j9@^^isR$tT$bPEQA0D1%Z0{Q_400sf*y8!fV>;%9}z#_m_fCy%YV1x+5 zi%?P#zE%tZ7y%}L+2UI4F7b`#Me7~%g|uJX3^+xA%u^x&M*S2F`Y9OmQ!wPGV8lLzyTt_2|zBP#nw~5Bp0@z`Xs`tAF*ARA(>r0(uuh};l#3k zaAIo~D{THj7glhMD~ouPR&AE{G30;T*J6o!ma~jQtb#Q#15J*?(13ubag$=1`;_Sy zv9ZC%iRRQ`@O0v|_{-)lNMskzoP8xr*nE`c`U4d_`nF<%N#j6Dw++r zV9?;9!$yo6Gd5J=Ou5)z8g8=;Rin9rr~C#+5A*CzD;51}*r7mgqZqA1xM zb(@*{7k^snNOJ4>IF%2wR#LIi8aMryILKPgifN6l?v+U7$!`%RpgeUCMRC$+3Up2D za&>)3ajHjwu4%naTLZG46t_scMY1W6*7gK{mPh@P{!=~D2D(=3+2*Nshw><$#zbjU zkMxSJ&z47HqcXIoQ1=&VJ=;90OJ%4m!P)X?-fi>Ly^5L_WGzGKDyaQY9+gwmX^*4! zXPZaq1h#G3)}#7ry$DnMu<WlPuo1oKbs6vx|&CQ*}~cKh|bi$Z63v`-r4eK z-hY;-)*~8HIdvQ~PT~XAv&~cU)iDx{sGRLsD39n71ZbP5%8SV+kNP68&7*m!eNi68 zsZC-?+dSKPs!XVD+SY5EhvR2Un_yDgJesq)zq90#Oi`XHgT!+xPoT;YVFERe>QJ1< zNa<+NY7v%>5+UBY9LWKUa zJQM2CSZ&*+IJHUj+UD8HQrkS5pIVRP%(hMH-<$^~waugWpXJeg0LoKkkn9-IL6tM= zljMj%wR2~av$lCeHwta*wUslq9${4`R5`QFqcN)agl+TGbfOoH*EX-Myx8VZd8%t$ zkLE^Y+R758sd+?CwH~!^o2QObl_lFeszdpzZ?er(c^ia$8jqSseX4S1JWE~+->tG_ zTTg8>0`+Ljws~rsrnBVPw%N8Gjg96&jQ!I*s|?!qM`g|R&XT9fyefm#JOykM&1b4~ zu1Y}VXxs!OS2RwuRdV&3V7{cmA#u62&;bx&Ibbjm0#FGC8~|(wEC<8^1_QhS#LzD> zz)C;~-~eC`U^`$VU^(ClKpY?%Fc=UD@CLX7XmX91+n0b30hIu{zghx#8gKxR3)lm= z6R;hy1+WpY7O)(!5O4)xCLj(l2@nk!0T>ME4+sSW0=xlT0j>ZUK*squ5Tz0D9pFnq zE#O1Idw@#7>wx2cmjESz!+@s&PXG=8@&LJj`vH3Z_W;P;B+zi+PxB;*ca4ldh zU=?6FU@KKz~z9MfOtS0U@Bk|U_2liFa|IJ5D6Fz7zpSO=nDu1^a2C|d;#77 zPe50IJHQp70AzpwAc3H>26}ey7eFK6d%$;qdcc=}&jGc7j{zS7ssZl--UUz#+f^z+-?sz(assz<$8}fW3e{fZc$50CxlK z1Y`hq0MY^50cn7n0jYp302AN_!1aKQfDM3a0qX#30c!xO04o5?0ZD)*fW?4?fcb!V zfGYu40A>R&2V4r63Ah9h510Xn155)<1xx`<0!#pm2N(g-fU$rvfKh-EfZ>2hz!1P- zz#zatKsca3pdX+wpf?~C5De%AQ1zPbo6uUl2f!OZYkf}ut+~jz83678@Uqr{?|z<*D(!VD z0>b=dXzBZm(}e%WJHd*pJ9BmK&fE=tX6%G-f=T!;po?2q*0sB@8B-d8sB<>Q%`=+2 zVZ&A7zZCuCQF`6geXhDIwOqgM_#+3VJpJM07j>O}II*DO{?X|-%$OA^U;WAQO&{Mg zLwaa;@q~B9(HBXj!J*QL*Y4{by6vU)AFe8&*QGu&`LcrGG6Z#FP5dC_a(TlwPwY67d19j5-M79n;Bhvh`m2lX+VcJL-*mkycHVXC z7oVEke_-II-v(A)b9`C9fzKVDch{Gb_YT&8UfeUaL^vPMM#)a(LKdUn8< z`p1edy!VaIceu}7du7Z|`t+X%>MqSQdL@l6S?WAE`~DfLrsjC=d1|dRD`msBkz-y6 z9ocv0Q*$dv-+6S&&ClH#I>-0ml-aw2@4HO;bl7UwTPFASNu1)5>HKByr=MGKEO^`O zf%oQr@I&a5C99OR*NjLR6MtNc|HyglWhw6;D@ofM)|{W{^Y*OoLoa#x;5F;L-(C9U zxcyZdf4?{Pz2p4jj|W`s({I(Fq~1&7SCw2hY3ALdk`Ir5q44yT;)jnW^ql>~-to?c z&0?Mq_R^2NU3-q~`|9#BTQ2(c;@t?=QYs_w0zYcRp))Yuqo3k3F|$`Wlxx-HK24U-(N>RkrT2l4omf zeQreY&zB4v!lxaZayaYT{OKFnMQ<;=ZqeosovxYJ`-i8;Y&?{f_0;ZLuAcnzkF&?z z_^8**X)m05pn3f3i;mwked+$;ug$4S`{LG+jc;8oyIt_s-We-K&He15lFzT16#x5? z^17Y#x(<14*Bc}6_|WIo?MHQemh!aEPA>V~JLDGc`D3;&4*S;|KX`2_%3gBYXUWUg zzkkHr^W|;#C*G?6s_Xo12Tqn9yy4$ZCq9+C-eXR&%dtUg`cHPiu7E*VY;i!j!4%}uBi-Cswa;v ziW-^hn|mG|U+w4mS;Uh=YSz4VX^-~;-X7KOj-nHu55D!R+j}t~JNxdr zuFFetE=#X}@S~UI{+mlS{Ps}A30Tk^N-YckdsFt&F~_(RK4QJ22;7C8Ub{r+A{7JT`5#Ma+SpI=h>#hNekei*iD-I6)qJ$LMxH)p?pV%M!J z-<bz~}q2Di?J>!9Ee~b?3zGKk9 zV+Ui3zT7$7d*dR0^s?LM6n(ngxYT3hmaQwDOP=@3=<;l0eeuwKZ!O<+_uJdU2hBUY zK5S*<3g2yAMy);h!oCZ2pTBtP%-{SC`u;CPy!876sfTvFd&BPA!ajNSrV*v`*t`#a zeqr6a^R9>+z9U%bIx5%gqv-4QUbZwT^yI&*ckFxek!K!Wx_(~3#tHlGA9+z+^@)ea z3de3MD1W@)XQPi4Uia%oU%WqL!HjDseKaa>e8Qq@KD^{e%;Lva5880kb+3a{?uB0a7H^;b`juB-rN8{wt9lRpvHIJ}*L*_n9J6TJlTty= z2g8re88rRMg01DV-Wr>8^WK-9 z`(H|zn?vs$x8dJ$1?;)!4qftk7mxezjqq5wFtPr}Sq~06a`L*{>Zgw%ntSk}ZoLwxr%9`y%Up;kSugi3s_BV7D$9%Et{gRzWz2AT0!EH0HK2@2%*Z9zM z`I>^?-uvj0o?HL@jxliK<^x~fKJ3t}=y?zIcE9~=)3zGVkKTIq@PNlo-0;K2zvvsQ zy7jqe--QEcB_LrXpsqD(Eog7hwHXhMjn=0$P8BHrPmLK(pAlMCced;8w(nN_-TQ@S z^zg?>OP^=1DF4F?9slr6Mw?-_l@aFZGZgni$Jstl{&%mLn{R}#uP<%K%t7s=ZG0CJ zssNi&fcA}#0!{z~2n6jL9|zF>)(>&oL#q4SRK%}F`~yG<;3I3C1pax%uYpi42VRPJ zG4LG_ww1t>QSLBsFa(qKrUlk`0piyoJ__}o13rKa6zy{>5PueUCN^|5)@-yx`Cf?A zetLmy$$t^`k0YLHjo)vLBZ>WN-RP+Am=v{%8>x^@2pSrT4e|0N<|Geqf9CA!#@xP* z7-}t}(h^;n_nZO1wCCLnI7NU0?fD!7o@M9>hymRApYDy5E|Xr<*gyjFJ`|)fpTW_- znD)nd0PU4&&)fw-`)ArmdjM!pO?zwgej@F+=^T>w-n0kz1JHh)<{Sv1J$ewJ7a$lA z0_Y8({XFgK2LNclPqd>mfeC<_fJK0w^c0V&eqP~k*)uK8gfqKLokyH ztT5vs%P}CO%S02xR$9u|@-m&q%#OQ(iu=zCiW60*&s~v0cy)6AE3A# zWX6(AG7`jeve6uOl1*l;=q%#kLZ5a)z^9PWURC-bN=Wb-(K zY{p4+rMNmyqASJKaS~lAPU9r3(v|EGjZYmX(KQJ4w2ae2R~j#kGl*H}ijksuj+8Ds zW&&dFIv~%;`ESUIZjc#^I`ZF;2_5-wa7nk-jPW@; zI2p19W}`qtgY+Pb%Q_FUt)h4vo2s+beN@qr?h~f92Vv5E!nEcfOzRE8z08Q~Laey2 z84EgEYd}YIwAP?;PB3Fxx5$hY9j!Hjtm7mbM&qS%tK%iPLw<{`BH5$3N>_{RXF6Id zA?Pf&pXq3gL~&Xl5w_?a(*>EM2JjIb!$yfFN^sYSM#647F^I5UN6*V*Wu~KNXCd)A zdXAO?)e-?TF49`!Qw-onz-a;$Xpi?eunIWKv!#~)!CLb;Xh^m|LsfysN7uIcifC)V zBZc%(Apt#Fn3u<#x(A^>*WLq|t7kx;K_ka8H=mG!qb6R&Ts(Y(`wtn-BD@0oOrDXN z%AC6T-*XRBe0$kmZ{14iyLM5!?e+E7Gbe-J?YA?E^TmBCjOnQQm30BT3Qo-v$0 zc{gL`s0pj^diKf%OA{wCHEno;IbrIInO8+p_M}OzdBdz_)j8IjKKraOJ#xy_j{hJpqjE}kA^Wc<^uS<=&cQ=J+iRB0lRvcRkEFn z0cC(X2yg|Ah@mg+8I0Q*V0mvp1~$qJRG)xko`7sO!Jnm5p4IQ*$`Zn?*l5LV>(V&Y zu~HuCl?tR2c$-MVmo}YG@9EB6v$#~uc{Y!-)Il~oy{8A)=kcg=QLN>3P=YL4uNjt8 zUI6#V=lXieQ|d&qo@c8i8kQmdH1}uu=q+E8a&)Xfs>4XKbab6f4jcJ;+KBo{k<35b z93N1~^;NETYDB4YWtp;4;mYz9eYq>ES4w%AD=TveEk(p7jpl^<{Y_k|R#+-8LC2+{ zzDfZHBI^~@^~_gTj-ntpPccz(jCT|dXN4$PC`d&vVv#VHu}m?c(OIl>R*=x(yar~^ zMXGaQwJv7MVxDWLWiD;UI*ggXHIo>c>duPfP?I~WmNU?Jy_09H8#5`j$gOo%>fBhh zKC~GrZe`|S(6|k(2-ihik7rj(`9vDq#e6a=2aC()ph|a^tJ7DwvjQi5wmVBzVl&-Y zxl)S8GhFpK?ySbunB~rL^i^o2$xX>{=Y{S{xjQd*$BZnUnCCl{8`URHlFsp`fXyD90Oyt!NJC@k`D?sX^e(JTY~X2?P5UaUZ_A?_&p>h7#YNvQ133Y}}v zd!}b-Rd-g@U8(5K8@elLUc9OMnPaeNC!;&ssYg56ioV7ZGM`X|897%$>9e|pR(rBy zPo>h6H+m}R-FdU;8SS*yr9EA_E}u&!IG7>Xr*L|Y8<&ElNHyh;@xi<=o6p#MeT9xS z3q`z2$7-ax)!32hlyV(!&?#w7yonZzYNMz3T*{}jWX6*9sctMy@XvOG_R>>fS#olY z8~C9#>sh*z%bWD9*f}!GjWszZH6lr`nA~`#J_juox+&QZUbn@z?FR7fE0ipOCugBV zx2x=0E7J{p z0j@S5_yN zfd6?;Bn$b(|9U6lYpJt@bx9fVKg-2XOq@5=xxxX0|Cz1^6wY%sphQu};r~B8|4aEa zdQvkp{hc4#`x$r=x(n#WkPJzxg>T)?WHCKrQ zV``M7To*79jpe&YC|~LVrRU`?WFqQZl?pv?aBc0$Y9nA)$VTMr$wp-9AsteIp4FRW zB;QHO(_^^?8EJ4bWa`OA(wrcsrLQqqmr z*po&@M57X3re}Guqk1eBrE)!%pkznWU`H`wqER{QsGgZ%NA)a~XjJQL0A1^$HbfY* zqk01hXXylRmvGt8psFnv3F@lD<*LawJ;OoZi!q z_p0WGDuLDWP^|WZAY2yEE+So2vPGUL>TTNcF5*hIAD%j|z#(OZA6;kp1zGy(%ZMVy zTq*C0^*`FG<4Q?a*1$_~I9Aw|l8d`yU^Iq@_$H-x1NJ!i7(;=mRBT{HBHF1EmEsMo zhAvH#lD7e0kk7^Z^PMK9rLY2LLuv}kafxl-z_Rt8O&eIb-hlK{Hv_IK-3n1Mt*erQ zwmc2FXvRxHZk<;(`Y7$8pjLU0bX-^Y(RGbqErwefFcBrw`%p?=7}Y8sUm}}QSo4(X z!8BIvuLecwYbD4)6>pRID#D8mbYMf;jA>ahWD5IdLpQq9s?hld&NVKMP=}kHZ>1p%z74J!|4v zf!=`hDmMdCstgLQn?34eL>he!$gcD=WXG{uKicqS2NVi*ajYTOGYfx1B5|D?nu7G+ z3SIW51BSf5Ij+bp8`4N;&+L@T6&R!FHZD7bF)sF4w=^)(>7)X$JU9TX#4r3VxU zRVWqgnTEe1k+@DJS~Z6%bZMqlT3?eZa?^(7wiB(=iB_ecmC0Yhb(%`6+4GewZ* z9@K$ERvv&FDi6wRc#vi0L8h4p>C>_uFl5gfg6?lMr)6m-X;z4Bq^Z<-tWdRDVD*_->B&X1W z^M(iakRIet1`p`Lvtm)nnv5e*4765M(k8Qdx=fdprb#T*Y`DbSX3F9o_$8H?2hE;A%0H5RK4S~Ym_-c2ZtWtFa;C9znZ z8IWG;7DOoq1=md;jWQxlz6NAh`58>HtjbKS#mUGBbyAwajfuTikfNJ+zV zOd?&T5d|r4PcQD36jbPf{gl4Ig%`PCwQsv{r!xP!ex3`4BMg)Y3Zte0*)mnf9m!F8Xq61?yE1 z#u6}o^j{^R|8mGmxkT5MQV``@=l@^yueE*=^`DRa^Cbn>g=h3%;)0V8eKAp9U*p0n z&NBWos$Y!y#gc;S(!W*TpJ6uzP)c#?EMVr4f^r?Cpbia!KK_hOV9T&(#crB6;&8oG zPuJyol(o$_Q9d^KtkG4$b+fCQUyl0axKpLWtHEh9WLrnqwYtBV-yoxY2Bf4`R&ZTU zQey7k+Wvpahh$aq229FE%53Y`Q+_(yuaOm8*IC>5#?&F36}%2)D#8Xv!eJGl0VUzW!8b-paaO<(Ve-GM&CkDL5jr3`)On|K7snI}|(6o~&*ZI`i4#wFaE4XeVQmf-E^&@%~`(gd5FY)7Le)?KJUiqKt+3syZ zWX~p2>NqRR<1F*T3Rz!HBh)we@tXfIPHYjYVBok3b1#?a8u!my=YB42o_T+i&Pu}d zXnrJlj&dFg7g#9hQ$?OG>T5-wCBj=Ehx$Ctl^}gG3tvpMAI!rd^<@eSiBzh<5C-Ka ztX?9o(5Ta=Dm+)wmnb+Ji&U$d>-5DD3_P^xnc>XxM17hw-HS_i=Go+wGT}Cyd5&|d zDo~$ij`uVVXcnX<-0Bj^p_a;elM_sXp;?E1!_;wxm5Nfj0yjS&8&%v~%fJY6-lyPB z1RQUp`7%{OKWKjxGdCo7);iH0@G2+V0jDF65*epVuo|&=PM}bijE0;HHBPM9$x!Wt z)-W%Gw&Np8VL4=e4!s1J;-vssF$(lK0I4ScM3C_K0l3N}tbZsip(i(kglFd@F^CCH z5h!n90`>?}7rcy&x(RroM(8Or3Cp(xfP{O5QqL{`5p|uAAHsw#MurEUkQUDbJU1pe z;aWr;^poIp2cyqrOI;Ah1Nef|Q6_j_g_mKFhdvUT#)X<+vM-_D%>ZpX9@8fD5Piux8-msXomA-4K>N z!-quyD;N8)IN;C)K5P^4re!`XA9&e=mgPmiRCeaMN)gRty~XHtGXs*Z45w$q-ikvkyxHj{n7nWdSEQp+DfD zUr`=-7H~OmZ8PNK{SYQeJ=iSZaJdId0WRs*gJl7i_3puZszX>pzaA_Ocw$r!mJ2-h z!X7O2gAi69k9xpmi9J{eaMT8*e+YV9hjifF9Y_bRyASCfg|L+UNC%F12I;`nWk|0H zVJpg!4xCbhbl|iGq<m%QgW=tng*!z}3mVtQy#Oy)UZ=uH5R&d}>2j`c7XK37mYdFPje>_pUF~e-^@; zKSKM!+28oG#lYb|!*2oWhx)O|&qMG-wtj34@T_TmEFC!SVn0>{T$|#@=6`{5Tl`oy za6$&sfphQiW3|BXM^L^F{DwU&1D^j5(t*=H@naLe#5lf0yTEI@_%p*-AuO|pKZ^q{ z?(5HzfUAdMnE_lj+MhK7=g;?NnO~#7tNmF8aPvlgRuAldGwRht-fs72DZqxu{h8-C zD1X?W#RJzL_h&1BrFZ>VIdJTU{;Uajt{A{FzYW21AG=E6DDMCk`yJ-x6TlV&XZ8+Y zX~0o^16VF_A9#M7t`oKY0OQh}ph4q*Af>;!hw!1G@ZU{%2S4+0qbF@!aI8o&&| zabE0$Cw&!Ms3LLGcxV=o|F7CXgvVg)pBL zJ(&-1*s7jvB5)mWJaF8)o-7qOHl-&k0uH^dCo2PHH}+)p!0C6P-p|1I^klPuMc6Gp zzWfp-o1d`t$QsDxxFL+^4rO9 z)-7PVrX?`aOPS8JobjsVXmb_g5_Vhj*D#?7A63DP1fg~#_NyD2;CVgMWo=?&%4R0j zZpM0OGZPozz&z43F_B$NSe%9WyIGgQJ#gj^Gwzeegq+7j% zXy*fbW91{JORm8lvWAKNA2T80bH?jFXM*%4lPbPsa>G|JrS(i#RL=y{w@eECjtN0O zFkQxvOekn%y2@WMmS34*bmLeLbG{fK(8+P8m_Be%jMX0TnJ6!%$UM;`b}KW zZ{}jd4cxPID;K0~oM&v~a>F*xB5&qW$}ODL-NMD3Te-eq2l~GQ&*j{~b;bN&0TBmRM7edltfJjX|c9pNnPRX%e5Yn)}h%ej9QXA`UWh?0-_ z@bEAAu=wvd%lwH8N;Asq1YYDUu*NXKH4-0CN*FBgf*}IS9xd=qV}#y@2|_RZB|>D% zY@xS)fiQG#k}xE6jUbn=5m?wYf>%*DQAqX_W&iHt;7U0Euwao_2aA1H^cQ5sxK|X{ z+$Rdg1EOoAbMZ4u94?Q6Y^WPGkv%e7qsX-L$8$?#{qc||LNo18x zDEF%uvRCrAZN)d%TLnH50IpaK*?)J$_qsvm_LmQ0^v)rQalp^S4O4{H+pCN|ji0sw72jllbCol4oNER){+# z=6{zYr0kM(>Gw!N0)8AQdAFo1+$%ZfJ|g)~%$LGLAD3Kf$DJb%3`EZ!`884F~c=}DPoJ&8Nt zg|ZM@iZ)ASo?R+Cr#a)|6fD$6E46Ciox^=0MB?%msJ?EH?HR zu@0|HA&5B=<5@Z;<1^R6SZ%Wug*g{GGa(%J2xC2%RD~s2ydRUXxfvMVletN~@T_w% zv$L5TItOjcfp55i@!BhJJr~zkGPz_ClX4d`F(HXb%~xaA zE18^tpNGv|!*rR~Fv&le$yKoJ#`R3V{YqB0k@2wWn1^&D*3>sLvC_oktefB`wy@x$ ztxTM?jd^U^&U!AsjX7uT!1{X!6Ep6Bzqo@j)18bP?!xvdlkv#Af$wHq*##QyVzPf0 z=WfR8cQaYJ7w^*D%jArEnOMJv$%bsuHk-*|d$B9qi+=87%rggb&%x4eAMk$A zCXdNAU})?kz>i>^|0oj+;8T(gVkZD!LOvxQxZ)6#BMX=m{y5`h@Gbf$7@z+H6C$2r zJmVSEdxnV-#Z1SZX99bHiLo!jZ@$RHO)oL7e;K@dh4I2N;D3R~uQEY7$#n76DEl$S z0^bt;Ig@<8V7kIDm^8nR@!T(&ko*(q^b_Nrzo7kJn8=#2XK6y4zhO+jVgA1}VWi0A zSrYG_gB?_X%(>Bt`{iL%RP4kB9}g~1^n~pn%~`UM%Q;5QnvC!_S;&#sSZ|7pl4vgat&KBRnh3cJLmv9&NOU~q?>2CPY zySZ4r3qETX=caqOt~QHvpWT>mHhfSvm&*2XT|o}#;rqB)1YcIMk4u#ga8~;O=e6)> z2@i6y@gexHJkC?_j9$(`E|(tU+;9l~_z>qM1zb|_fxf7x;RAv5fqkCAyq-b)IWGAe z<}BPNJQYT=ajR^SSSHUHFHf%|~2U`6*{9 zpK)IJ8JFvTCw|Uda=+k0=$9O867cJ5E@#wpG3gsFXMG2r{lJB~MlR*THz)rBnm2JV z>Q^pT{mRAg-?^OB%!RPioEO3TCK&{sXE*riZUXo8#H${jf*cQA>?!CbdJ8aaH1eC zo+N}fO%-_BG=Wu2Lm$(T4+ESVhq@OELg7+Ds!S4i_%cCESuXIB<$@HpLSX4D1YWa3 zkRn%M{jgdPiq;8ivmp3v5nRi+2`nFvV8!2#I=2gA-VPk1+#!f_ zcVcck1)g=MAm(NYQqA3hSg{N9y9a${3(}_h1YWvNVE+3BUb|ml8BYjq*-r{$&QpSr z{;a?z7UQ*<7X+U4f*|A^7sRMn@#y|Wk!M^dib>atyy$vSSG-B&#v4U(lS!1ywqnh& zRTLw)iEQLHk>_p`rJ|d$F1SUMB&0Qc=u) zNo2V%Vcai^oV_ZFhH_CC`i8U^g#IQukHTfE8Ky0$)yLi3C3)f35>ITWR z@9qYLr5+8YoB;t-6ugj3cO*OABwBfHB| zl&{RwePvyiKTfCpWu6uw>#%;~$-QJDzK<+PePyBG0$D7Kka_c9S(rOomXtBFkZF{8 z#yDAQ953^P39`rh88S0mB8&c)WBoQq?%^{}W(o7<9+iva|6}iKz^bV7xc@Wv-kG_4 zUKJAy?Uq=mWPYGwQGxgYg-SwYDZg@VL#ZU@*ixlzs(x9(`KpJ zX_FjSEl=vVNu9fJf49x%*kiMl?Lqj@He1xsHo0-HO$qr0&;A8t-d}A}z;B5En@yUA zm3zlNj9W2IO#-svHY##UkRtWsGk*5D>~e=Y5_Q`n31+1Hb@JL0jIaRTCPE+LUS&CFYOQF75iY4SUMQT1x z8KKQl$TLTgb^}vm6l+(EGO6=iMe-ymwvHsl623&ShMcF!p(%<~k)l}oQWOeJRV@9f zid21pLIKMZOXnqu)UaIf@A{J>RsC5BtV>g*XqRG1bwgej(vhu5UD;Sm&sOBHOBD)R zrO26=;X|-uMX4@3PoJ5SZeJ&NV z1BH@5P^30s)Q5_#;X}o;_9MJ0{7A7>bSk!{PNe5!Mc&+nG-0cG?Pt*AbH$eXxgrgI zuGl-iP$cV@ie>OiMT+=Jp~A25oF0YhdyrqifgZ(D^|d1PeXYoi-ziehchK)U#Zv!0 zbo(B8v|XXx?TXX_+`L^0$lRe&`437!L_hL+mtsrbtyp$r*QmBfnGpG#VoUu^q0ZkF zDRfY=R_#L>*#~+16q|FuVrkotxRN@d!m8pI22@Ljs@is|swGoXZJRaK5@lCyb#|31 z{ZvbzpGpb-s-@RowRr+mYg?d-tz@btJ4lu4f>de`Qf&i4s-@eZ+O!d>C3KXEa;8d| zqf|>{h$>Z&R)e=pR4vw1RH^0^)fzHgwQQOW8NlY5>gbRtm7=3mC2E#xiI}ZQn`f&u zFdMtyPg5x-TD82&Qj&(6jiZaq*BsFs@&yKrO4H)Wy@;S zwyYHKOI3N(T2%?Z3Y|^4N{(_>j>bnsH5Do~SEzEwjd;s)Bhr17Ds|ngTFRQ8C6-$@!`(N8yD^db?^} z_MWPAcR=>Xs%sYKg`#E?1H!_iLIo&#u`b{WR=J(=0uKcqDb}IMoyTg@ z?&H84uUT7;*Q9W#CNE3YtcB-kQf-Q68N2}RtS;2#z6?!D&(xGcw?^e|&AK~Fqrogq zPAJsKa~Wh6X;kacq=XW@Wm>H%rGLe{rRy}Q{sv9na-XJn?$;=yUQ-6^HCcO1^KW=u z3ru}NqwuG+!1kv!vOc59JhUkBYZpgktRiSYL<|XH7WOF&Eoh(lgd6pII#T_%{KT6 z^!-eenm^N&Q$f-S$(Y~kN)a$&zFIe*k_%YFp+N2GbLCY4&SE>Mhl8n6dz z1^CexxdzDR|8H5MgJ-b$zfHsYC+yRfQY|!kEruXio*12prG_$muYXhSYZ!}rg9z(Xx$B+~{hDKzL!CdcHTpvf4kT41!3?obB zI8vIACyVAJ@;J$YH3YVPp!9~*@f8#4;-r(v(t0voimjZ4Qm!NBF%U3xiW{S|8lf5ZI!Z%F^&kp916 zt@%o_^p4#&PcV01){Oc6vt)5T2OV0-7W)E8wJ(xw6Xx=f zuVUW689Hr-{;!j*XpD1iUWCQzwg$Kwocz~=e zGUldM$&!n1XHb)*RJ&yD_meCk0hp5qOO^l!=KuJS_pT9=6f;U1Q8!AG20|qKR1W6q z$4E-$7)fdj#d`2q%50mIxtD1!AVlkvdNM)G7@w1sZwAK z*2C+fu|^#y1%=O*C@fyGMa4^07B5-nVa=jpp=4`aC{bhr=J)uKdutNb){_t?Nx~Rk z!uwdPnV%<7_{CV8xCHb0OJIZLl6Co?u^y3zwGfx&*RcZY@cCHBD3IhxtW&J@NEEV0 z^6OtC$sy&ya;#}!onqNFlC7QLwU}eyCRwAg?ywo(swZIGq2Vs9+usGbSbvDP8*}!* zOH%jWu`XXH$(2}dXs?&#(g!7~c@XJ)2;7Gxx%N@XT8p)YPOLSwJt0|Ap9FsseyZka z$*=2aNv>mS3@wtM^#$mGb%ffNv7YcM^u;uQS&y*())!ZHGL_O<10xH`&Oc9-%6IGUWwNBV*Ow{ z)+m0!Gk=hRda;&2uOIf-|UzrpL`# zE{(zRcdJGAE49kl?kUU5{V><|ll^M&&k_dwF?SD?sV7jD8iQm?4wj_|hit2J;Qhcz z*;X+UbMKL|95YTP&p2#?7$+;cow6J`0dxHcvNdv|Om!2n1~3Wp`bn6xPnInmlQH+7 zBHOB_$kLWbnUmViw6kVT)x7Uo6W#$#PK4d9o!E|0E(h zMOI=j#u`J8taM*0+Z?N~{!k#>wiL)g6_?4DB&<*57R$EkVp*E!!8$^TY^}yx#o%g$ zt--oOsVtS1%G7@q(s;E@0qbN-)jH_3PPV3(%ThSjF{0MveF(7g8pOR;wt2Amq^&}h zGOv^6n(JjLsZzFv-UyrCBwGft&f&QkYcyEr@N5L$B9Csp1$tM@a_sG}_w6{ZK|1U3 z?0e;qKR912ygI-NY$Kx_( zJ}%ojAD3mvQ?hl_(|GnXvY+)?tmix@)28PTuSKTP7TLNRNH55?WiP-+z~wK>mXMcZ zTkcCTKJbvG)>c{We@zZ)+#*W>|B~hGHkrELmTduBVVA8k)d1VK%JRHU*;@I9Ebm5# z+w?7L)hklwv2Q4X`EtbHwFItv1 z?y;O#af+4dPO&CWJHr}Qb(S?CA=Vn`iNhL0xy`@zdfSrRn{A83s%?wfYHUfn@3x&A zdcW!>r2L%|Xgp zsbiHhdyZFPN>5VG2slLv(Pk*t{xg)2{#eD@eU1{+jd@S|MVNaeVtjaxDi5BkQpF+m z>6+E*!hM&f>~?8E4J$Oi+zc(qnW_2pWNJaNZp}~2(t^^nG{5kbnx$(cYFsG0d4_y-vr*x8nxf7N!=SXYx^yD=4}{X-iC4WZJI6Mc1@1C7vtyq zkna06OZWX4=hnj}|Io1ZtXbr_c1?Ed zz_@dVc5?C$niRTIqv)NQEpsQv$2&Fux*s*A^=C~^AJmkJ{hC@xcC}Qtt4;V-uw|;< zQK#B%ZK_?_Y`3e;!FFrg2)kwNNV~Lqq}{58*yWBfcByi#-PS$Uu2zhW{F?JyYzK)T!W3wL4-?wcD~!wJXb~+vUD!JFPw4E(M%rr}VS!w%CPs>PoQN!p^g+ znak{>axbz=Z5P=o;1au9zrwCYUusv|F0-rYmqYeCyQ#@a_T9Jm$x(Osjfwrc zpAz*CKdO1a&pPiRd>#6PpBDD4pS`NpZ%ps&xQ8!FX{(k~h1+82IG(wBbr z{_p(8WcK^XoA>xp)m}ea!>@h;4g3A9VUmA9n9bi>rTS0q@%Ohb3-X`TIMUy$9qX@z zh2ewoFnlZ?=5M2M{!}{7-x50BpCZTmN7PR6xA%qnN7S6+uSQPCuL(@|mpXyg8UE6| z8Q{$HmzK}OXXi8h)!JE*I~(^-^H&mL{HZF&UrRX0U!9iXAF5UPkD7LiztUXeuPuAP zU+sO=KXl7>|55!v_$w{g8y#W^P&54kLhGgnjM@?vplmrkKyxGpsOiZ8p#f_GMnzo_ zpmbdsAnh&-(86vG(B|D0pia9lAT)AIz^K%>0+c~~C!PFWfL7Wapw;vRsO7r?LbJyP zj;aa^RH9D|l(tL=)S71mYMo~Vs+;ErhPLGdj@q3YsMHn(O4*)3tzliD)_QZGYP~%$ zG_)mfRP0NEa@p&FTFll!DdZh|{q;_uv+mtM)$viFocwv9b6{Jby8P=vxv4Kut=)<6 zJ%MuOV4#|OAW&_#2FU>dL26l0kh*(RkeqN_klHdXNS!tzNG_ioq;^IIsi`x9KzbHuc{0XwsgVf55Ahk3L=Q%-g zY<>{+BL}l?a9Hx?GeEiZE`RLOb&LWP7bz}O%C>Niww5ZP7Ssv%nT0h zjtaKMo)&BgI6YWi8xu^OX9mkLbAzqr@xjuj_+bBm`N8&X{I3`ME(V)E({f-qTxS60 zf^gYz)8GdDF^`3-fJ=r8g~RXJSnv^rr4TL(uGfzDwQ!|yv2Yq(yGE88ICMQ0bYqr& zl`PG0n1fpq;2dyRp0m`!Wy4K_8?fP7aM+S>iGj1iwOJ7dE&5@K}77ZHXC&pKm?^``p7xZi>L?K~u=yHx+a1=_Du3 zqJZktC^&Ks*|jrCE$NyL2lTncW*d*AA0Qnd3aAn8I1?p{Xr z0qhNrN~7R%7g1RzDZ8`DUikjd!eDuunSddAu)v9&_*K@s9N+?9+aQtbLow z*7+Ltg5$la=XH{uTM+&)qRux-so#qC=UYkcZzr<8OY)ZY@V@swIzH?J=+Q}(jrXk4 zpU}w(UF7J*H#^#AG&%PRQls&mPWCtCX!?e1T{utumTVQ@k_GQtwQjs$?Z^97=MK`6 zf5iLzJwyY0$ZFk7%9gz(S7RG)qa>+~*s8VLCfTs<3Hw{5F#N#Xq#pb;?AYV+9&nLF z39u`+_op(W;~Q4}kgixtQt5cf5rFTu5E2TP`_5AxKk942Cn ztL--BcC|*k!+xjVUH-KJwuC@iVvy~eVB5KdO!g&iI$V7>m&1OZKtGlTRUJ_d2uA!v zbz-uZP9Z;XS!=Q7O+S_er5{NpcAv#dhFkVCkC$u2TOL&CEnWrURsP1~g=@HA$MT@M zqt!hc(U|U=)o$IM?7M#bSU!wB1!Xu}RL638<@!n#A}kLoJ6hcgySBWNZ<$q|r-$A5PXZsKM-Ck=CQjsy5O%jI6`SF>IB5 z!#BE|4x>B|BZpaFI9a(D^y;z(@r{js{1HI;Lg-?_IYgrL9xUA@@2W1_(?t@~~ zvxsyaPs4XO`hmJG50m#S9;;`LXL&s9XdVq^x&1#a%en7xS<_BCC~Md{Yv`V-?9}bo zH59MxkLd0^i^r=9JovoU|5W$gclPT#G#X{pOL;JK&;C1)*K`!|nBBYYKl*sBh_|eP z$2+8~4clHYJqO?t9^vuAhsvnec-TrqQBNFwylljCKEvb9`-AN_)3XloB46V15{@Ds zK82x}H;z6YwvkZMJ3L;M{wW@m@KXMno(YIo{{fFzeH8J^Si9AA^zoVzZ~2!zUUUFt zumk;}w>pCD4z&CS9xvu7;zgj%PyhAkBk?iXAR=DJ9xa>p?KZH z)n%3s?T8n3+|kF=P*-av@_0v+@3Dy2KZVCTntaD6wUjjD=;9r&?=r?SG1))qHfDAc zHXe3d$2iPhsc@wmdE5p&3&pWKXxKKB#jAwty^F_V->2%wABeXZ#EScQyzZljH;8!C z{(1EAqRKEdOKhj2BKKCk^?F5+!|oyWueT7LY2c-W>#%Rc1sI*uY<7vk;y`sm}~ zvpTBU!{a3x1q5SRZ|wlKrBS_YmtJN(L*pH<@yZdedlZj{f8Ju)rQO@}*jBED6OS&Q zk(|TLJqAzXvO@o0KhMf+GMr}#kC!g~>7KW?eK;NJgZY0jPDNeT4=-a+Lx-qijxHV> zFSA3sA~{K)8LD?Jf;k;*emIL8BeC8j1Lza zWxShnl<{ipDC6C;ql`BrjxyeCJIefpJl@?n%6OJJ@K1*Lb9gmzl<~AU%CMCkhXX&L z&k?`%gu_wBtFNPs4@(_oJPX;+`11SQPL8s%;u=5wi^EaIevXMD`^_na_|+C2#|z}Y z%;YF@it7^uo+xmFz;J;R1)e1EWPuR^CkdP^u;vyP(?QV!w+Pe(wr}M3v&Ho?aXm%E zj}&-{Kt2s{l$|QBrwN=cQ2&Ae>BQE29F8(p?ikJzI9nheT06>EAHwcqtG3p_($ zjKDJmo+S{=Iyf9#`+&J`FhaGt>V0v8BeC@?`_qQG+mo+~g(;39#G1uhYoEbu&m zO9iF~Oci*(zzYOkC~%oTK236z;pYl)ILh!-1v)Ml_$PsX7MLb5U7$c$L7b1+EiVE^xiTYXn{^utMN<0JUabFSvbH%kRt`~@FtGHgWgT;5yQh`?sd{y8cffIk=yuS*(c_+Vq zRp2gx;r%>(Mjyx11jYyq*AwobT-}fkDy(CQIHPv-o%7>mQ@B%v ze`pF9!T6tCjDdeba2*RtK133`{`bSM#~p!A+;q@`0-qB2n!t|*ekJe+9i4PRax{xb zJx?*;f$zH*>fuT3>@eYa)lAoU_&0Mcj1^1MaIiD;G4O#CK@N)ekmE9e6#|=eWcT>d z)Z@g7gEk3#R^Uql*MGQB6$IK=gF0wV+(cAhD&V+9)V5^nd?equ0+$F}Bk&o49}3(d&@zw58zV4PV7b6Lfv*buRp9jbJYIsp zY=IjEZWH*cz=;buKTcqlz)FFS3*0R5V}X4F4+soj$mPrtxJY2Wz;c043j9>ypulkn zJbseEKMA~C;4=b07idf5{7C{Y6nLe;y9Blh{8C`RIXvEJ0?!w?PT)TUz9;a2z*EoV z@h%d0jld@aejsp{z!6EDzfj<10;>c*Dex14I|W)6@p$tEo-gngfgcDwAaKfJ&R;4p zU*H`AHwoM#aGStBfgwwH{6vB41wJXTL*Q=$Ly|c^Mqrx2H3IJv*edXKfd>T6IgiI* zCUB*|a)I{=d`V!Zz#j$9T*~9;3A|t6M*_DClv6k_Lf{gC8w9>BaKFG4Q#n6b;3|Rl z3*0L37abXwAN@Q0ae{X2CyuduIrjd>u?nv<*?og|r27H4a(>-y9HVMDZn=Zw^1C=1 zyd&Lrp2(lKIhzjTZhp+jKgL)1*h8_M^N2|Qj8Hs!PU(G&T7 zBY&Nd;=aH^9f$HU>2%IFp5!s*mqWL^)3}Y_{os5fUj~kF->`p&ZvTIeZ`iq3xAVW> zH|$xf+wy7X-T;gbd zn}^>d!Y7sK!PI(&11Ao;Q-trol7}y^=KQ~la3lR?8V|1*;fCFEZ|C7pig1~Wp)HHK zo-c@SOBugWb|DY{mk}=bou~8gk3_gpKl@^M_}3!beJzi$EQ#Ca2NC{+kng;Rr|V}C zZsd;F;U%Wk~J^i2x^^C&CT=PZIovLQX^!lamfN{Bei4-I@}PGmNjr^?3pd3wgMaA5IZocO?r? zrv30G{26vO^3x_HeV4{!q{H#!0D$o=Mu0$rzsJO9Vh$(Y(9@dkgoJb<1>7U@d5mBa zA9D?23zmjH=5!oq;^WuFz#r1z;HyG|tyNB(rHd;fY{B_mdJVo&o+g>(t4HA5nIUk* zoA{cEfAGPAf1ZhN_rkx##P>7t4gLMZgR)HgK=7G8jq-v^{fHC#6q@)!Uig1C@q@ka zZ!+;6Uii0|`1lzKU4K^F4n4+-i#tsGk>DR%o(=o3+Q*IuO#IPD;2Y0-!o)vD@C~^} z{Tji=(<>%Ews{>^|4_ky$HWf>fB#|1|45Nv+f4kiN8sb2UnOPkszrJ}0@HAg06dgRM0jPJjGV zu1=WYast!g_;I`!evHcrVmcf@oI)QX|BY}17r2}_O^4&h310Y1T}}|w;rMZ)(8po~ z97No};c_|Qr^E3BKYOCv=Sch_mlMQvIDSN!NO#R+{3 zzLCEZ1%HHzKNoyfzl?HYv~Pxek2mr06FS54Cz<&3bp5fQcu+%rVzlQ`CO&?e2j%DA z`G#F%P5g6o{(%D{h5VBQPS-~wL`!tOgG%-BRWcDS$Je({P+hO950-vSVBJLac6(O$ooA_++$l=^sk4b@oA_UYf4KH)g5aNR;(v1lez@SD zW8#NgeR%nC!ak`c{%9}!3={tt@LB&Ti|2Ezqumzri%tA7Uiep;_@Ur4`xy1m81EVK zH=6ik!DsJ}48GCM8vF-M{A0cFpEvPu1pmBVQ+seT>-zs|)-v z_}7~FqrC7pn)o5$o9)S-VA%5?CjMx_XEtZYQ2Ceipl3|{V~)t@^`*_k9|OLGKMNOs zaNK94_Y)I8RLD2@#`pnzU7sEke=PXJ)%U$7{;@*7P3U8^%Z7Y^w-a~L#a*J~1m9@a z%=}|a{4g*4lTG|_f^QX1bP6=|i8k@agU`}y=s(nc@`&*!{&Mh{{SCg64#?M!WE1~* zFY;X`zS9f8*u*~pd{#aUJ;H?^Mtawo_$PYdSDE+|yzuWf@x#6Fn@s$PUihz?_$PVc zcbNDm3%-$G;U@chZQ@6G;qNl>CxJg)`H`}mcw)MED$!){S@|*Y%Rr<21e^F%1mDo# z%y*jjkzV*yP5e^?-zqdz1RDCpn)p+_$WJ!$PX&Lt_A}GOp9Vf_&yDn&>*E>|f4Uca z%1rzjUiceK{Fz?(_nY`p;Is5f!j41jKQbN1VU}9jeIcd|DuV1u^0YU6aNw~ z{I5;?KY`E2lZO80{&dj9zXANir{Szgqu>Md!Z06yop>=(ZWY5ti{;4n^)5qXDg`_x9Ae<(CsPZoSb{*e87dsS@WM+pAE zw-21Z&cvVQMgKYzf4bls=~NEp7cw44lZijW3;#_Mf2J4yS0;Xx7k;0KKg$cBa-2v- zI-EGFczrbNIn=-K^oE%D7Vw9AU*I(HtzP)kO?(IVD*lXihifrZe&S915nlLHsXpFl;!9#aZq!=?jrvk=;>&`6B>7L9_!cknH=FoYFZ>P@ z-{wW1Z%ll}3xBVPuL{1=J{a}Vu#bAF69qY46lNmL3qQofw|n6`O?*Eu`k!Rthk(!8 ze?xzB`!>VGUn}@VeH>xxec(@hx8XgC@Qe{6PF2sk{ZOa?+vo*Z;oZ+s|<(egOEaejTa4 zOfvCf0h^i2PQuKWBB&@8xubr@`vk>`b>Nm_`|h_znSC9|Qhy@+X`4W4y?ZHu2f} zli~7fp^4AhkKy!BG4a{&bqpsz!^CI%?}qDt3r&31z7EH~%ETWBzCZqsRNpt4_-ua6 z^k?lNJ6L4zSy{vUeWah(&F=?8;`c1rLdV?U}vxYxvAa0GqkiswFJ;x82ZL+#1Z9xwRMn)nGv zkUvlGUpMhD0pGmeCIa&33PXHwn-f>*aQt9-b?7lHhk-YJLdX4LEl!r(WF;3`zW1SNr=^~Wv^ZdO&M*nE!d##B-&ctVB?a<>96MwuH z{<9{2n2A4>Uasf+CjMwIe6u}61>Yz?X8F(k!-?diA579%FZ?YgzOnDx5MY*{@Q@R? znBzyWe(j)YfsYD&PvBmG;~sV*f`g(2rU=Xzc%#6(1%9YwGO?d-W@VK1lkCtqpgePX z20rFQNV*6`+k6DRQNJdb_$v6Uz8LbS3Q6-s0Xo~n*N(uSFZk!0`1T|47YP0`6Q4EA zEWJkl8uehI(93P&TaLg_5d3@-KTz1sFxXK3@(^=*GrqI_GEoS{$8s-WC&8<$H zrHd>43*95?!}HgykFk&15HO_w;rZU`qr2S+QOxn9@hMgk9JK5$hE5&`Ki9%WUif}~ z1VbkrKYH;Gs#$pWQjS%B<5;7kQ?Q6yZER%a7{ZloWQN}rxu1u}-o=uI3oIkz?#zJbr=+`(wB~0|##9@0bQiqd^T&vA^N!?Ak`$C~3frn@+5sT^D5Ip)5_vG#3_?eB23zQ?iYLyqa6a&&ZajQ*PA z^6xp8?c}(5FUJ6saHeO(P2pT$fzbkE1tthg7Pw4cy1;CKg#t?jmI+MN_;Y%KIF^p) z7!byBUIfRoD2^?$9MjL`ICwtCnskm4D>=60aqJb(=@&R4kZ$Jb(gZpLh6;2Fj1V|Y zV6?zkfyo~JoTSS+M*odt)H;C`9K&xExKZHk97Ada-pg@W1IOyeICekHG2%sz*{^YI zZsSND9AiJ_SoI~x!S6XH@8Y=WH;&;}UXRuWaO?@;m^zMQ<3x@jQw7f9sLkUTu!N)I zViE2Z*M%HI{=zZf8jcOZPE7)v1-1&@BCuUxr@(H3y#o6M4hWep2&@y>Ah1bbv%pq?gn(Ek065nC% z;n*&4Kw$mPJiLmL$WiwEdlN92anJ^F{daL)CFB|5H;C{$J=`gtO2n@n)U=JwxQ1|} z&Ty3d{<%Z(B5vXOdW2q$1Had6#Rp8UA^tMK4-vdp6TjTVuQ22bp7WRA%P%tVn+3nC zl+BbKlyEsm!%kK2|6ZS7!Eay3c}bVC87jUv5O%yvmyaOd;j@6x0zM1)Ea0<%&jLOR z_$=VFfX@Ox3-~PHvw+V6J`4CP;In|w0zM1)Ea0<%&jLOR_$=VFfX@Ox3-~PHvw+V6 zJ`4CP;In|w0zM1)Ea0<%&jLOR_$=VFfX@Q||5>0_>~GhxiXQyu!!!PyL?r)@+#>0v+nM%c=XX+Zp4V{>VIh zE`oNVMMs?a4xa^l7VufXX91rDd=~Ioz-IxU1$-9pS-@ujp9Opt@L9lT0iOkY7VufX zX91rDd=~Ioz-IxU1$-9pS-@ujp9Opt@L9lT0iOkY7VufXX91rDd=~Ioz-IxU1$-9p zS-@ujp9Opt@L9lT0iOkY7VufXX91rDd=~Ioz-IxU1^z#`fD`%`!nNRkrQQN$U)~#s z%{T$F|5O$&uGxPVqgecR;8^xuFh3Ce;D3H&T>ZZO-95k0^X3)aI+=a z*9do_O#5o!f-JPJ9PU@RBrEN^2d*D(u8sCp!+ir6tdH!_9+R4EJZaOX047yB@9v?qRrQxYyy{gX@O-0d5e^FBo#*Cc`a& zy8td7E+6g+xJtM?;U0#24(?63PvH9C2H~6zk|N=v;S%6d;rRju9kH zgG++D0`5MzH{pJU(?*gM0(TO)U)_)!~`#+DG^Pfk(^goYU{GUhl3=?(sJaZXBp=p>f~4Ef z8%ejHH1?rY<&q#{A@SGj!3oGvm-F&YRAknc|t_aTn#~U5V605hXRz9ES;F zp>y1&8SX+)PC-5oadF7xki|i-SgDCQ{OVE;c^ry4cyzenaF5A!CF|N`=5ow;=~467 zFi3M17rTo*X+<8UKw3ujs$$Qov`kkK+I2mk)RpGS%|(0fai<-sYgz{GtZ=W)$xp+* z45p$UWr?JpHSMjPM^f>yt zJ1?W~a;77@DlSBRda@2)dR!T+*hN~FD<@Yc91K}m;woYmMH$G%^9sdjPQGzgP~yR< zYehj3?CA2i@@Ft8fcfFW>??}ht|FGk6<4^63J3{gCIRLa6hk$4X%6DKOCcjm1ZBBd z>@1PGtgPIUVnoj>D0IWDSzL8?QsRLan8*eFn5A@I7gX$aBb`~r9v5V1dEB{3RMr~S zZ&KPyx5u52Oa*#!^6;ok*X6j%V;7W$QmcE@r|E#S z7_!?83n2-ZSFjqQa8m5X^Esv!x;!Z1`O{}3B+tbn6l5Zqc_sP!6;EAZ!5T_4Qdo$L zM&eNIP%bjvsDuTO|GUtfd}h7h1r_J4L@6)@u5ta22eHf)M!ZW4Sb;UJ@-XHo{rBhb z;NL%xhao#*?cYZ)$rqu>q-+<=gxo@PyR29*CPl7%2XfQKMOI<5+R!^UP8qRZ3`_nv^7rN7O^0Nx&qh6S4tc@+sIUG~3?S&;p z?zGi8MV=C57fESkqj72Uihpd_ljiNW?9OL_}$7Px5t%<8b&WE$*lge zyYpGIO?RqE1yrZvZD+S7xreXyy#6zY^6VEu$zS&Er~uQR*jG;vC`KS7y4ia#^8yw@gBM_0x~9 zmad@M_0px(yI#tr2OgJF6BjI?ovqTci!SyQEL}KvMikxfiBz&WjUM|%T97iIZvR$F zpwD}yi|M8v(kgmvKqgBbI-gQ^21;F8HWKPCqFPxO^wSIAefz4+=4)0ey9x6$x%7Mw zTBz6LrAt`_)>EINcTRNAc8RPDQQ_{i%yZ|Wl4JOshjNyblkbizT8S}sK1$%*mPAyU z!`^ydxATIWTsOwpFzq~M>W?jCIX^MqLyse(hn}%4$Spvl@`lAq^?UF@YX4c1is@xs z5AJ2xt-mn8_gCg``i=Q@`=PjFAw6%MN582HXjf1i-5#7s+k@lj#SzI=KW?d;z8trR zzB>LQ`Zgkk)=i#I|2pLYH08)`H{CvSE{bwyTy9~ui@MHAa24~@p8fLq^x9QW5Q+ZG zTH-D)PRw(ybW@M5$h87xVQxtl8d17?B&qZB=_y+x4cg|p=_7Rksy_-}F;avU38n9? z{jJPzYhw&o zrvAjo)s;!q@v#IUZ?l`t@5oYOeg+yZlrLsVCZb&z@h*#&S5j)&VUPMdvviDsSw3YP zH*L^ziqS!2Wb>@OZ$AVeCcU8<0|@=bA~cajms3R`6GYdIzwGzbdD~P{4(91^nlQpu zc2+B{wJ&y;dgvj0auEhtFWZ-*j$lwoAKPK$E~anUSJ1_hNO#*86uHnB-fxf3F3Dd- zgJ5*x9@5&wwB>i77k97rvr^SJL*eg>@Ct-?e9OWUQJOFmD59VFt%KJ$fl~J!6I`$R z)!W(mCf)Cb596&&EYK_blYYovqcvMRf5~FHI*_a>ZqHnd7>h1n#LV%TA1gu&=qo>c zhRg~iUF{!F75-N0K{X+{s30%JlZn>#XFqmx5YO+$4J%b+CC5rN*D?}HN^-6Xqo&9G zv)vi1QqWo+Y(AEtZe-=6kA4O+2P#;kp6d_^R!8ak*+0I3ssa|$ivg@Uxr$N?7P`;| z(O|&&g?d%~be{~hV2`Dcv3H-05_X+Mo>yE*-v{W_R92yisUHh8dOf5k0`xTiUM*Q| zTI51=S4zzRc=YwU0xvSH-DuNTj6*0r0qo(a1zZ>U88KR4W-+>Tzeo2sy~aWsUuS;B z8_aL}4Dv$e(Tzcg^w`K`Y8f@3z8%Gi&|4vBsO}uI*u93j$E46VW8&%g&?MSAb^)zF zVJ-~NJ|&J`jao#z&q}4vv-Mm^E-Jtjf_h@lzkp@ZlB_Ir@5NO8tGtS~4aygAbI{FY zmIQIyP{vv``ezWV@~Jb&lkG;Ml(zx~jV_I*XOLf(40=6?wea**sJ^Ts9`ax;a*sNK za?l95>GiWwehSgb@#Yd1FQy$qC?`*hMOJ@~L|Srl3Pl^aA(*uj5020?rV8v?zO79YV zwo^=>9Zw1#L%%rU>78SAO<;ozq!rUN+TuLFu-KJXh%UXDK8d*K{0pL@q7F9f#k6-) zig9<#WRkfF4z?Tjj$my!=vg@{4+g%5_PBRDbeD%x*F1u{PKBBJn3)Rb#}TZ$#1|D5 z&cjGLpB2Pn`sjGHGWjKisTlF0fh$5A8CT?X(T8V|j23xtL_TeW3PVC~LW%nlQak%B zQgTiy8>HMn5)awIie|6wckRLhZOn!{M;cAby3?l5KD2z@_^TXs==EK{%DM_!=%MKC zbrw?R=_QMq>*-Mo=$a>TV#wO^!ZZS2E#n7U}P3t35Fja78@~ayn<7wMW zEJo&JVmzwLZC;03(0U&v%6f9FV*J#cp-H$^6PTMkp!v6yzlq(2isHh$ap(QVW=ZFHEu0 z?ycZh^wBU?k3r5Cxma;w8MbAN-ki`@bk9wD84WEK4|-(`rfNfF;Fl>G1x1^9SM6$ava*EX(ZMj$_T-PsgD@2}`EWPl%(2 z2?uMUKAfao6B6^OY9dB$3(%S8>TBI}V9H#&Jre!RkC6%V^C=7HiCOdM``DC{709X# z&q6fU`K(2pi;^6dpScv3Y~x%usiDeWNwqg1IHE69pPx4(09B)AHCsDW;4C+^c^=B3nXi>5VF*b5w$xXm7Bhsq1%qCX3aH3lR{Xg2IL&O);*VD<0mM5&ZP#;yi zaZ&-wLN1Ekg?L?n0=hjCdFFx+sRjB#C7xBSZPU^HurBevFnw&;83y^gkOB)IQSJ)k z)t_p{@kzox<46`kl{^UZC^we3HjYCxf|#gOk1Oyuf5QCMF1$mtxM=gZoD98qy+4Ny zlIF4EQ=~7!^`D7mqS$S;GF{^`R%sA?zS2A6=Pq1IUyNtf_PXQg-QzJn&G!`0Gvnjvh4FM3dZktt zN7h6CHJ0fG%x}Ae`I~QLet8Y^tL|WazwU3klbsLLGQan3rU3>EROaN% z9Uq>mkLC425;dNIh7Sp5?axLh^B;7QB`u!rbrw^LllHTrV%@z=1_GZ(;44mA&n(;Y zPbR*zk@>BU=>DUsq>qq4a6;!6o+5OXeNNV^(YLI#*!;fW8~~^GD;BK|KFK*$bHc&u zNge1YWj0);M@}epqopfGW7PNyMmm@}LgZT~urkAzk6Bg3bORIS$I({Ryr6LvI#0l} zUeX}A$eoFTgGs>d6G|{>hn$A_)r9HrZ=1lR)lOj2?wbJXfP~Vl z`@Oo~ulobK-?)R_ZPWce-LLq8h1BbQzwX!d>zp51N-{I)l?h^1_h9QuZ_maYk~K=H z1&1_AUryl75B02vC85ra3AB%mEvt7y6iOr;vAd}v9JlVDO9uq&mT>xzrEbd}#>%Ca z!ue$2nTh&1I1>}0{QQD^(YDY>Xwzhv_Py|2GA}0ydloFUm!(rzZRp116LVO;iQ&(NNTlHxMneUSOD&+cC+e*+F6iZx zc=!D2L{@p5P9iH(*FQ0iex5jM_AL7QNmR}fS8R3S61`+W5Nwkp#bl+x2hE?3j{Fb}zyzF(LL1}AY%p&^XB>wW0 zO@)f-hEuUzKzE-!zqF98M*es*CSZDbemMeN7HSFBG!7ZVuE#n@p3Z#aWLD}AOhx)o zMVn8i4X2U?QrK$dJ13`PV^MAub)QU6Md%6mR|!9KVkt)#^A|x z`;d%VB7}_k2zs8&xF>>sVo@4D7BU`-pkH(u+gNHh^)tUi_Zxo_Dc>5w+J1JUcAX#m znsPsGl6{jfE?Ny^Bg3wlWS$mWi`s5kx^e~GJ!$UBB6@uiroAhW4_{AW4S&-loPInB zISBj_f&i_PSkB>O`y}-H<$g$%3s>(m>NW&bRkO!e-Ov2WCzwCbs-L$rzw2}6*Z;u$ zww-!px_h$QV_tT;Tem+ZGt@Xa%S{jAQcQOEJpGl)#dH%Jr!+r>H38cFbRhIV>BXYh zWXxe`=L~d$Xk3x#UnjF(<@PBkm@{C6i(nvB9ds_&Ou2|2X6Mj+!xVa)iK}g9g5qY* zNG$-PaSD%dt6)7dh3;ppjv-5u4@7&JLckf_+BeqJA1qJT0$P#*b>d**;p2rBmEdJ}rVxv9ydbT*z z3-vW~#dANxb1Qc;$=&dgr{Tswo>A&ygExAf^;|W( z85#YDdtp&QNg-xGQ(eW`@!4$k`=uGiu#~!Hk<5mW4^P#X@|rN`YX6NrtP4ImtlZ25 z*cS`E`Xr4$o|=!PY`qP{D3E@b3$1i|{SCpOqox+*(JxcQG>1N(iGo`f3~`nBF~9$Q z=J(b!zv3UvuYHjDl?{40e6lR!9r)%`~?KexvR;>HZe@uo+ub z+I1?Q)&2r{n|`zT2}a-aBq;vO(!7QKej3L9MdG4=+5-A{+B~{zdK^Z`mt$V|)byl+ zfJ&J7m)9itDTbNEc`8ma6 z(ec*l$O|^iWbetaa?o}*()}++(wEb@T8~Y~vdrsP(A|wYtf=ev`H&c$MTXlL$`;ed z(~D{Qbd>TR8MEPj2mJDS{2K%rUHWvrOl_PYN>b$vy#&UgbA5IO8U@hMSml zdO25rr}QKUb^l<54&ASO05Z|pp{9H^BVI3@ zMn2=;Ff*y3xEL#M#jqHrd-Md#Mc+5p#I&AkegA$-iGLJ zRQL$#{h1#6^cOZb+rwzp2N;b_)PJ0rjCTo`j5qJY7%Hg*OM?eyqHVb?isUG|J__#! ztJpje5%7$%5$qY|BM`Zm{)y&FUn96R7A5vNcB}hF=9k~Z{6_d>$-ES^USs0O2WGTC ziY-s*mfjwuT%Nb0 z0LwA^W}~p~W(*XUp#jjFvs_4FHJjbE?;atc-J=g@AuWt)OQCCLv%IaJ9gjH%W+^Yv z*7NI)+4GIof(;4xVi1KfB3=bx>Uqy>tZC}GxeZV3)SsAw^_pBa)`gZ}feKB}^Rwvy zYWS8tOznmN=J)-={Qh6L3LhhC`)@3yZ6EVH4~&q8=4q9P+jP}PgjZFK#JWieJ$2er z+HqPURYs$WS;-a;sVQ2F6I!Ad(<{;X^fa|#@fGxGG_f}?@1N#c?Vejul8+bvm(v%~ ztkxz*(aUpq5C83H@wn%iSFk3Zu8D@}y744gFJxuW1(@EuL4IQn6#s%LvinQiwiM4R zKvPj4&C2w{(R}dnG$NOMr7NrZ1G?Yd!$LZCGoe>t?8!EY(Ff6NssCH{w7u+h>j3lX ze_?*pKK1~} zy|D^U$0U>Yyv6j*>G~A&J`no#Tlx#o1$)(0OAN zQW3+3$2Bnrt7StBwW49|sTn23(Z(1Q+`E{pmV4OseYkG8m&s#spVs5PjGC1&4?H&t3wLjxxs2Lz)zPXyS@$bmWp{dT=X>0#eU06z zdxQDSyO`f~4faQ}cP@1OSy)7&TI5mLjUl+xax?RLbbt3ocHVS58@k`Kriz<_cFir&e8BI-yRKFu2pWj_H3+BPoG^HMU|L-Sy-z) zeKzYji)qu@@z^4j=R#w^E}uJFUpb57SFPwC2R~=BTDCENQ1@%P*?C#(G4Q+KlSK^w z2F_+n;QIP=#Q|gp)=j7nubp@ix-OO%p_^l&;Cn1`x9&H;&(5p%Fu!N7F7#IjwPOFE zv1WbvdPdwRLqpuTiv_i97|U+J*T>>_&!qvTet9(uuDy)~FU2NU z!n+RMD_9WsS$Z)VRKx*B>QT-VXTki7or!qiFKl#?~aw&`+`E$wD%#P<2@#` z`+X(`11s7c&sW^_ad$O_<1Jr|mCw)5;iY08rZEVs{+dOq{6<&jTSVorwqKfu)lrPq z=(Ty`ZP8ovF3c%(FTo3kcM+}mdlsQ{JM(wGY}p@COxG;Df~pdW=*`3o zy7inAY_!8(M*a0BHmc!86TNy)Cf##x7TundLq8?0qz4wQpbh6?Wd!5@G#XQ-7oai!W`^%#J-~I6J6A} zgmvipUZu1geS5`5H=4aPdf+#iMi*0SLIG{MPzX-T%BQ}I+_e89Z2Dps0~tm1oI8Vh zvQ|*lN*C=~X}q$h2eMaEV|F3+Wqat^ob1GuRJyq^F=5_Py0tJlDRn-5SeQcx3QK6q zWvkro!Zf^!&&MDFsmEC{l^12vvz|3=E?JWi0R4d9rh|JoJbMrS7R?kp(UA$;u};FD7QOT-uyi ztgjA>Er)NV45(=28ie003@bz%;-?YXh%4QtX+FyD=BAp8D?feo|o zzQl~2LcFfT+pjk+a8X+ZUKJH((9P#u!5=~!Q_%S_QBZ;!&MBgQol`*XEy<=AmV&Ae zT-hEadf^;Q2O$CowhkH?q_X+9?-jsB5KR<^?la!WAp+;}cjE-q=1+pJPIsUVu=%kbdf1><7~K85U99qJlJPz7zvox+nuy`Y4r^>oj`vLVO}pfNVv@m`Qgo0#N^ARO~Ix4(XksCHOSGV8Mc7`XXJg3$@sD)!-_jt=O27hpmQ1v_FHa z$b`2SbKM`f1VhvBFNu#&rsj0AFvj6>#^PdiDUF_8g2kwNma!=`%r%4BmXxqFI&cMs z-TD*sMcXv`VF@-(;pKORI}Jl&v`J6qvuRFRQC7zE=`&{1`s6HhD{1u28ssO>I;u{l zJCo6vLJn%xRy@;MK+nOjccvvQ#ZIxbk|KdpG(+uWRk=OgHInr+c~$db;N`ok)=G1f7J|J>4^fB87+| zg$h9-l0py!g`kiS1VNz?QAj8x6oQ~|e!u&9>m%rW?Y(v9SMU2g_kBP2^L0Pp&x^=@ zou4xTR-|FE-(Ajfy33MJh6#aVTW(#Nm-aQ z>YJgT7OEwqEK{gfk3y8186~)&EDT1wkgkq?ta`AvH^w}JVA7v6vZzS+d4@q zjb*y(97@wG@)v)MH3eC8MExIji%kF$U97*%wV_gMRQSKMnUw?&Fb9KJ} z=`@vctR$WBTNqPjQ0Z^cYb#+mK_~sksLJ1p{i}wDZx%he7ZBSPAvm3xmyz~0i|Od~ z{G-uFIX_XU+z6e6#KVqPHSLprnJ{Nqug^yhSR(~Ut zD605V>DuWH(JO`{nIQ*7yN>AG&5&>`K&|{VU2Xn7-1pEW-AcCupB83kNvbpPmLegd z;%^oAOP}g4Lf2TRw-*V9aW{-87xnIaiki9)PRfQ_Jr-MbxE(~z{hjqt4p|kA)WN-< z=sQ3RHxa835$g|AlUU6Cq2^D_CJo6y>w__{)F`@$iy@Z3TPr&nil(7n9uX{aH;!?)c$`5-RAs zB>q|Gce~Qn+zhBLE?8{kKD27KX6Wl7JG||n?1k#0x7wUar`=x9u8P|68I!H^GxoKY zLWCcr=t2qFFSD|BrYjR0V%NcT0q-d!MOkDCs(1?AW5|q_Vd~${nJ=i)gz` z3<+s8V&?AeB2)>K9HfjaS<2%AJ89DUYk)QD5)rls6yy=C2GUfb90^xj zrar7AFV~Q7J|U|YY!(a(h6K9>osTH6Mlk${8MX*rO&*|A{$UyUuoPfhz4`&naU@33z2i*bbNE9J&MgDkZs8$E7yKN~xXGt}DQi3H*RM6LfETa>=g zNozIo6LN>=sMDhc4tNX4hRM{8jworTWXr(Tn~h>4dibYP8&5IOU;I-Xa99dIk4xU? z5S{Y`mq5uB4rA2G?1U**ksR)}b>?HhCq|W){Z=-hb-0Y=)wIu1aFg~QRw=RWskXbOwHr0S|B)~}K08lv6t@4+VxtHdR!&v)sFogSwTjkS+MEdn6~ zkUSOVTCo0zPO+Lcf<4dWqpcYV=_k+4AE}n1Thcg{v{-K)frUvVv~L7$`Qp(@-9@Zy z6=040aY5Y1>>Z(+M!>pFXK4OnqH_l1m>7p&8Id7}H#$M!ha-|%yy(bdVA-m8WL6f= z3i5=<*}}NY`6HEQB+|WvEXA{l)uoI!yW6U9BwH;GB(P?GEr(;LyQAa0Cr7Fl@HQ?Z zS9m$Grt;sTG|$iBa{iN%G*e5)(9$=LL5Y=dx+Tn&gZY)&m=6e7G6vE*_D=7U{whQ3 zr#9puPHj0*tcuFe2pr0xS(x=D&BCTHp#%tZbXs#%-IuUTAcbA?68*rqo=#O1!~$@jJCcg;N(Wt z*i7WphOxRE9Gj28MmiihDo|U-S`#RzzrhJaOdZ8%ESRQ~{+6VRH8$LYaL{*R1Fnu^ z_z`HJ#(mYkFOVjezCd=XqhIt;_`II6^)8LQg88E|;N;<5*0} zMh|^)!ZcfzVIr5?s?=gkt$3EwHw4t>UF}3Y)>DDl6v5+P2SHU`L8>l6UnQUGt0<41 z@b=ua4+p4Qpt5=C)3%c6UQ2Y;fGU-()x12mV$1T_ifzwh@tDa7t|L`fEzz}=5;?}+ zoX3$^75r^=^a(dnJC=k~c`O5SMy0`j0sKQp>EC>U7&%R}pA)@M@E%JjQyI#6`m|jT z|8`=u~DIQ{YHObP|n$aqVTBh60 z9i!Qh*Mq^eM!dE2vC*m(ZuYfgj0(1_=X1+OgxXu(glBkT62qi1YAS{g{>>z^`-pXd zj;(wSY$J97sX@&cRgW5rQwn2ra0kHJ;U`Jk9-@6O(b-6>5o|iZ=k5atorCXmmUJ0< zKLBgpLCR&WPXBV0I)+N-Y$AErVJ6W6)aE{_=F4HpmU8Xau&YN%TA%*n+>I*o_fGK;l$TGo&Usw}$3vokJs?Jb7=s}%tkG#0rWh5|dbH2dW=S z%YA$tcAb6&bNUr)-~92z)ixaBc70Qz=KW=u+W(h8oyT3*6>sy&H zvVA8rMaAFA^pN{InJlV6)vl4C0)n1L47LWSQqY#n{wmQkaeO14l0>${zXY>*eiEm$ zgS6o*=^(8g&suW$TiU)w-=QvMW}_Trr;B#`V1~Y;ePTE++s}{==sSeI;&62elqsG< zCloHsM5h<#smEXO#Cdw5nuL6EPyHFVngpw-{fwPJ7o6*+36EMfUai2ZcRHyeg4MJ6 z>@6jMWd8o~*f`aQfP8R64!MZ+b0BME_Sk$(1?LPyj}TJY+;G#0*p1h)n}i)ej0$lZ z1Z&v5ujS~-3RI-eZ!V$<#+6;Y(nhH#lz|#?!$@!JC29Gk&feWh;3U$A)aMK z*G7gN&sVDnfACGB32%qQ=uT2$6h8egXv1gy1qSpmxt&1u5?bp$e__Me$U>+B-?FJZ z^DUIZY;MhW@pgPSBzeeT%Av{Dzo36Nu4ZE3s04qESbdx#*@&T|KTC9kiS>frf`O}a2}OvFT}014 zNRlS{;kRs@XMe|rx(;f0->1LpA<-KpmOm!?pAdbvp98}aiQQ9(wGN`am>8WwY??_7 zJAV#c*~GFUpZ_ik@t57>*AYlvDM`BL5Pb`Xjb4zajvb>X*XRAUU@W$t{xxIV2(|sM zV={1fNuB#E6k0){eKpa#zrLy;Hp3?XAIMsnhXsF1$eUUi+JxU^B@4D9&7DGoYi8Rn(IVoTVTtqkA=6U~wCMj&`_$oFj0h z!3LXweG&)x3fi6cZ6K|;fwc94A)xxfK<*wYo?xV*h%KLB==I)J6J%@FmI=nYID~;M zZD@?SZ|U>|W01N&!BF!jLU6h&n_%=wSBob=a?M^!ZW0U}84`90*0k`s z{`}8Vhw>hieG?7YXr&HKG-UtR@refJbYtruryiLI^C?-n1-&!=86`|d{J}&V(?)_U znq=Ve1cbVIlA*Ta&y<)H;c3Ps1n*e)&)^TO|7Xl1yXjD|0YXe9#;QrkhIMpmtR+pw zCSt8%{pNpundv;;&U96??8Xqa&JHEjbvrhkVZ8-c+o01j*}!Q#eXM`lWaHNv`ClmK zu%D&NB$kK8(e8PN$>gy6?5DsHsAhdV-S}YR6D)O z?~xOmLY~+S+$i!fmgd#m$?%B41Dp?twui)^VACTo;Gk@#+A`TllhMXSD2#DOUcm^p zjQbdWtC!`~$;pUs-Wc8kkee~00DHh7H?;Zxgscw1E};6sm~7lQv2hA+k>L8`iRlJb z5nwPd&`uvaMy)P0;?En(3}!Bt+R6;x9fR9x^3|m>tW)J-!eQD1L;Zubop4PNVxyXi zj0`o~f!T^qhcO((c*7dqRZTPURPzjDM7Ek0dZMn-F|0`pO5Vp|*3fg*#aAoX&a^3G-=`w&mP zG_2Z-3~Ools8cFdqzHA4k8z%22b7P$t)T?pR!B&dD|P%1L;8`*<1{cwAlnD5g_?s- z)F0f_p*pY?0d@AE!%(gsqObH2T}#n*6#dfJF?zrRZk{*aJ=G{wGo~9{vbyaw zq0u`a*0ayMg3| z{tHny)78GY$r|o~TOzY2x?&o7sG)5aC3tretLq`>-wjg-iw*P9@*6Y<;YBdZ?Bl$Vw zuvk@?nX4w3AaRo&=CcR|=8$z%`e+<<#{kMI=#?b~vg2kMlXw9MuyGW#X3zmbkQ;og zCcAUVzaZ%wo&OOuyj&|0?K>p~BN1~_B~FlgW|J^OO`d6B`y2AvWNF5>gqfN+DW|8> zSIkMi+A*BR^nj1!)cYAWXBeY zbFKZ4EIxvcgM1DGm6=@gcRF<`l6s&T7#C*~NqvGLAQ-G#(&2;|jcq|tr)Gh;<1h$% z@q~LuK1~Wuq1rhsW);;zltw+njU5ZKlG)GALh+GQ;tn3nxnTOKnQGS^VfgN5Vv}I- zD4)XtV&e&72q&TvnKxl}Jo7frg@oWm(o{_N1!%C*DOLlP&PD~UX6fph`3n%(Dv8xz zVhs=(h+2Abwo!lvP^Lq1@C5Z&?VxFiRd;yDZC8maVJYTQaIJ_L#d|n0n5V&6i9F0s z*VZRFhfXr8^(z=E=}??_b{lr&V5zow3+I8ru}0J?z~x?YJp?v>An*cpuhd}O*F{!U zQdSV8Fc~=2#jXd@gVSSh-$JaxDKNC*dx`ap#Jc?u4TIUUQeSb&tx>Vk&3f*eV~oLG z%w(r+Oy#Zv6cdh8LvE1?jSwKG(4YzBb3?da})Tszm`l0bSMW^=F75Y&exkj4KA9F5zE9ee&01Cc(;C6J?Va$A$GBP)4=)_sx` zxWEOA=?~_jsej58X*naVJiah%o>9Q-UFIp4; zKK^wz!)?4a{xwzVHu{e5tIFKQo8#Y9i`_1 zOmuV-eS$4h{vSNs))AdRbabSt;+PNjeUurQJftHdz;g_-LMXchJ?qI;3j`PE$JC_x zMs5bOS}mIoTJOn(&%&6`3i{N*2O0?aNtKc@4p$Yj_o5EZm%gMrGv9!P&r=~XGzw{0 zFe+$2Md7iQ`-7vo9PP!*vn0i?*LDPfUg)M0d#3%OJRRsb)$b5kQ>#}MD-L~vML$UFN z%3W?qyOy3eY;5{l{jrs75iA&2B373hT*fG0XpC3W;fNM~Yq>EV8$ZjR2~f*!FHa6t zyG`{XtnNyNm8_xmoV)OOhM8n2UP*>@wE{t>t1}B<7+l~5+;hn7S^eVRCNFwExCLaW ztsw*Air&{ELo(tpV+w7s})pdJg{dyOrmO9VsOpv-VzKjdW2Ae z5Ul>Ay16{A^;L+Ru?7lOAB2L*!Z$B@PWS~aeDBg{g*PM#w^zo6?_FZ3A_}i-N+iiy zI9{M*$DxE{1deCv=sm`CV(Ff~R7&^KWhmVh6_oi*Ty+Zjm!b&1&}Z&4$~zsCcUH?g zM|o}EFV6}87t1TBytZ@y85W_fjp)B75qM$Xr@mK=y8>cDcfOx>cE$H;u!yYX-3+@N z=gm=Z?f=E97%x1v(?s5XP>@frvci*TUIl0Avx+Z#lfIt!Y1YAiH2 zVl>xD)1hg^XA-LZLbe2+{Y>7*W5mc=qPv~wzd;P&Cpss*0;QyvvJ)|4S_Ei1baouZ z<3Z}~n?^G2cnOY2>1bP!aO{TTB|26wrz7iO$qKP3{uLA#Yq3_XFnH!a_S(5J9@bXS zt)SYrZIB=}`NRsT$x~LM=4}>Ai%%=^a0SYH4;R}?@Hg*#1rhVqi*h}@S3yuuhIM49 z-%keDVKT6-=)rSgr4;2JZdb_VJ5H{apadfcABBo*B?het$63hW?aZRcML6otK<6rH zub4>Fs?jCbSdB4}RW7cqvAPFS*CsjyN7h(wu6W;U;RaWiv{p`(F$0Iqc07-Qfp zS)!TQx;oKxlp7p_DWq_1t-?Ebu1Z9p{@~Z77Plu2!;gP?#9D8FGk@W!zmVY0=0pfStAB&P7MrH zRgD#D1FNM=C~E}+f?;xLZMJ}v+Uz7{RD8?tQ+}Oby86C9J)M$u&-QfY zvlmkVQdBg-M!~Q!e}ls;%D2wI7b-9re$iAv8mFq(qdRt5sVuErlsp+$fb@kghInHF6ms zr=c*betA1`!#V?|wyigEbJEq!EpW3|myfQeK+fi#T8}7nh}zv$JB53!?yfg@a4cPU zwi`G+w0Apb>`xg@r@c4QB{tuw+#3wpE~FN107)30Aeju3lPK3uC^%*Bmh(|#b!e> z{+0c|t+mG3QDZW)@bM4r&{k^{;^cU)e!Es{Sr}|{+JYEzVhU5{TjJxJDRl_IQzWr) z5Is|=0@C+!Ev8m3F$Fo#u4ZjSwZ*z*wpzXwEcGP&QI49j2?3~un^5`lu(@i(CL>cF z-h^59u1(2$Y~9Q(##9IQEbrY6ou7?J(`J;DW1Ec(ecR>T%?9>1stG=0Brg8Ij^;XM zC6;LBK`!G^6BPq3K1lQ) zHgD^8tA0?PdnT!TK-oqS*v{qeGZO1r^a+&`qxHn%5if$Q~@5-rHk*I9kozE9UXSL0M6~euT@mqj0-Pc5c={?#bEIYz$Dln~ir=_fafv zE9XhJJiNtI9X^Z3$A8(t+8!#6I(6BQL#*d6qgH9BOP7tealWlEXH@@>2Bh`JV(sJD zF_!n_1aZFF`B={-#@-KctuuDruYV_6z!A8l6WSE0mCcx^!3L63I~ntHJB=YjXgn_M zMB+Fny@m+42v*o%LmfrK9gDA~TjQ68N!9u>8J0I@!054<)*3qc9qFV*_E70UTyi;j zlmw@I#~`+5GDPvhdWqpBKh~1v>8jt*NmL*U&F_rHMJbqXR`q0xfC+705mUslmWO5^tdFy@y*SQ_Qa<;M`MB3jw zWPB*6;XWFU1qI^+#A`qfk5_T)_W2{Ytu&TGl3zQH8K0nJSN#sc7l#w)jJJ6M-ngMM?|AM~kFfUdG1MG}Rac6za7>=F%x!xNot^619(c9E z3pT?=tOmlADSN%~71nT{o`_qZ884w5$* zG#=F_G2#0! zAT%oCxE=O%gMktxn=RTK;L|c+BE694@-R^OHiVkA*O0O%lvDSD(p@PDQw5sT!I*|$ zxfhwV7i25}clKh3O4UB3Qku+?D*s+tc}IPp$;4`_7SSk4>eOC?AAnhsMBEuCo`6OhpcF6Ow3sO|p zUNqF-;hwtvsOsu0N`J?=)I@w21hvdeiUPXB*fCSPA3a%=BH6mOsRc@xuZPkv<*11VP%5(%0WCRX$ezTT zr;O40!?Gzg7q{qRw9D$nPLv~PWJ!gty=-KRS9h?3Aq8#M+ye$Is%mdGa#hD!C?O?M ztvsNunyO(^MHwniz_Y=K)ATc$O4v|Aff4OTr;dJJ(k@o4pcM=Yv!^XRVh9urEA4V{B z6l7)(SJMuogPie+9IUKEOKQr=s_MgNVP8;i{3l@B5~2c!4JoryKdxO!v;?hf2%`&O zAf&xS`#xd-nBeCLY$qxSYZ$JH3JH6Gdc+dpx=;Fwr^I^O>pIeE&k=)`sl7!rsaq}D zI^A!9;`-|b>huxAY6Y(|xtqa^0wx%ypcKmv%x*T)#^(&T-rTSXV+yR7MJ(qPlgU^k zSSQ#hSYJeU-&CSwIgh;j#d7RapubZr`f#t_T$Do-o= zha5Bx$u7hgb^m#t%SX-|@8I}8w$0^hZ*_;J-!`9t+h)FjycJWY!pGSHNv~o1ISwx6 zasN5QjAlTm--Li+l^A~jQk=`*Fg`&dW0##eMF-Dv2sC@tq}qU9BFs{it)OUJ{RRT= z7WA%3upcG6Zw)=$d=$b=Q?~-xB_wwsENVCS1%y~1i9OefSNBepum!T2uQ9nNJzeT!lGl1@+~FBGsePxQukgqQ<7&{ zKS-(pTAOWj)>odS84ohX#jD`=!vSOS#z@O$KV|gqKX51x{pkLr+IrgfK>1G_L*5sQ^w#A(o`$UZC`cll<}$xk}i0cbR7?fjSJsI z8+(<`wzY4#Z)F#^=A((K86}b=7&=cty?Pb0O~DeR>+hve9|JQST=zji9$K5byv${H}w(e z{mV(;Ri(qD^SrYXA|DqrBDE_>(YT7}Ttm8Fzoj;vMP}B~+i{Z~#ZQSXxY{21y@psb z!^Xf{LicQZ_z69novlzz%&?=yz;T=kQUuCKA+C$WbtPR};0oD- zU4r)cbSVa+2ZB!M@fHmC<71U0?01w4NrhmopkJ_2uvst&#Ck+wHZDk!i_6MjuSQ@m za}H|8DoP0nU58+|pnU;@b_;q0y@EA@K0&`=BM=SKurH*ibqAuy^CHp_>H#G;3yrOc zG%^Zswc`FXJ#d-N+U|eMfa)B-0(z={1u|Wbx3uble1g{3xgp_k%j z+UqTTNe#0Cmi@lKVV4Mf#$%;6`Ommsq1@UXi2(OlEkh?gn*3DMznd7^M|A8bdJhv@ zjuG7fV)!J{b(ZKj4{@ozUq=$LDOMXpMxR$>FWW*W!LgTJASku(aFg9F_dBRbhV2(()+)6jdKbrCMLS4r8_LHDmDZKPYV^#Z2X zwaMhpL2;Xhp$Ly5>;-QVrA5JojP0~!w!*zlLV*jSE$F>L--O`l7bQ1EU>mz_H6TE( z6fy{3hCo(Ov5K2?ua1Dd*AVuARp_F0qSfV#hV+Ip6>ElP9UO33kEGKRuJvTL#Ck``He$&zz0F6R{G1i^-czfJVtrnH@Ow%?&co1mkM z&rO2PyL^ra7T*)5`$W%EakssN=az|YAwkfulq8tjX2|be&SfC_OY!SvvV`pgOMNcSLIP!I)O)A?KuM0J!-Kx_~=yldD7||JR)h$f`rFS%VPq=sI4Ghu#y<5B6?R7 zo7WH>>xl04WF9z3c`qA7h7M3`q>Y9n*z1YD(Z-FdfH1h zg^ip7eJ0{qn3Iq4ES5VM<}^*#hq|M8_!>g1xUOd*PhK}Nd9{|heO;O^>*T0%)&*fvM*XDplC)*XPKk8p)wa;OdZzxS=i`U+rkLc2{r<8$Nf9% zM%ch@U+HQoK7NQDU5~?gBw@g^ESbUAKP|L50^6Kg}9DnE;-t1DXQGY!J<}NiQ zF4pVLQe13I2Ko3VSM6}VM9OlY)ReQb^wF$mN)sm_LZxQXR%>r9vWOR%>e-cioFPG! z0uqfx3O8OeKFowIEMSM+lDVZ6gdrhJ&&ADuv_q1j?jn*Rg%dIbYU*{v z;@VJZ4iKF_RoxpPz<=>A++y`b!5Ey!1#9^wre)+ZQxSQJe)QJsoM>b0)UjDeOUcJDhSYg`?Mn%IfjFIp_?F!I%k4ya-mHVor8 zcd(1Moo+2Rsa_Y5nR*zU4swp=m*A|xuXGq9sFU=*2`6L($PNaZHfY- zDxr9O7=g3NSuA|WRdZ88|o*Ye)^u;b3)uzDnR#m8eC*Wb4dwj@>EmAO7osE7wh&!2xl{B*jH{0>#@))N z7VA=_E-cZdO}Unux$6E>GfSOWVUALJSDJdEawu;{e6-#ipeAp@1XAplHmiPKy20Mx z)f=3YpC3Uq!?PK|$n3YV?Adk0z*4K)dQ)npo}`Q1M8T(dh~A8?gieg$e9{P%YUPN? zI;9l13{1x3VzFH1ilCP*r9w-%b`w?RYyEuhCN>OdIx^wj>yfI2Y6M+WBP7@@SUiU= z^@5HvQF1;pD(F~1g_k2JD11GVr0|kkmcpxV#T4FfE2i+4TQ5+!;Z{$D7u-rHTy^Vt zg?HX!@xV2_s6&GGMSS)OMg-kU=@M8@3<1%3)tBU5xFzEb%=TTOln$Zj5{d%#;1&*8 zU7w3w(-w5`Z49kBBeA5;9D=h(V>rjIU8?F>WhyBdTOMv>L6isohhV(`g8;PHN0ylC zWi7>Z2ge(~93tnm%F4`GN%JiUr^+JSXE#H)P8U6J_&eATV2THfM3t@RBlt#hwDuk8tTDscZWxS4! zxsQ!Ea4dDQseZr87EY+-jy;?)6mp;yqDW$L&)UzL%`?LrMnhY@=C zKHO~$46FC2s`$R~>ZfY!eM7B>bpwqX4(bNpd+NFdF16(J9Hhj$V_M=~Qaj1nBW5k2 zzDR0!fYjC3iH=V4^q{kYb6Pj(B3+~iMxUdo1VuF|YM%(j-2R}eb@$gLp{biG)n+r1 zQrD)TB*ao`$pdN7s~*T|?dahH`WKE@2OlJ-&(Q}k*RF>!*R>C2tHF@`VXPfPN3;30 znz`+d5OmXg1ZO5%;D!gf##+_q%0tiuL4%AWW$N4N#sfpgQ{8!JNZ5Ym|T8A`w>1j zpCYyZDMw7>!p8Nw{~vgKIt#OPs_FQ&!7M;^vFt+q#N=N1frx@a}aJ708HZYGb ze34z)WJfUFRa7Bi7tT%4jjd%DLX$va_k!l7m|5~oWbg@&9SAE?L3Z0sZr6}X*=SGJ z>98FcmQ)L-O@?SEL?hb;y$lA1=gLGYD^$lMQv|u~rdotQZFn9`lnr9)GIgu<4oEgU zvq_cErfL$uP9ZYRkUGR5;)W+M3Fk~-Xn1OvG~N}|%`X@f^sFL#55qIXF7;FulcRYj zIqdaBM*}gqpV+p4K%#Efk+S$8-MbDEqk`4P_*`?GA&5O_vzu{aWk(Mo*&cKwnolUF z3-n0E05JfJ+khpL&6o|SVnT;nNYVjJ6r|EAJ#(^bic~3Uzo>Y;2XLWs`u46z)D9Zpu`f9aVJuj&xh-5z1xDtcxN*)$FEydtkw&`+tD zvEW#6dQp4?c%I>g+Zb+BI9@Kail^zx8a=>A#V`#QhaOn>m)V!$}YfXX!eip;89)CRs zbUueJ)H@sy*7%4)wM9j(#}wR0ou!yV6th%|xeO80r#>U*sU>DIb@DtFF^)9GZYt3; zJq>z81o-wn%e!r=R$&);L#3p*%^}+7YOWwS9zV-<%i_9EuDW>=$}(a_1-X)Yh2_(9 z0By{;mgVqHN%r1rc?YNAzMbJ8jlw6`TS?ggO4J9zx=KEGR}uXyh~AZu^KyWmpZt70jXO_;Ip z%!E;$;7pEGk+Y{!-Q$F4M>UhnCFl{X2GX?dnGtK{)YO?eiz*ShYDQ2xbth(M+xnO) z`l{2CZL5b=S}A2Ki5u4IC2(ecXcnT%KG;dprDtS~!vO@WP*uQxCB?Z`Q>~6QP(@6z z3Y2`G{oO$kl-X{{Y++JYtfhb^!8Sqn25}Lz?WbTWFdtFl??p2C;EdvWfEWo7qk*)9 zHEt%2=Oo=5PZOI3+XOo<(8Yg==x!sHwD23H5qEe+dZ8`wqg>&ryJatRpmx62m zXJauI^EB5HLUAcV!8I}bu6nx_fQ^%bjU+bp?A}8VPN8G>QVG>dw5^cv1Vbwm#8r^E zn#5r^BCl$Mc%2Z}CddwhZ2laOMd66V+(YyMvHgcv+^7jI6L!DI1-p+AZn%&tm2;4^ zWU<$a95vfzDi0jBy|a>Oqe~~#L`*DXkHI)!ImqLzf5)1~t9RkmMG-ytIxW7EIG>Ar zjTd5kQSvoipq>?N#Fh?Xc_*<+u=oa_n+2P0^0_fWRjt8c{Txo8cX}|)d0Vy5L6lA` z!JJ>yQY^jUPLm2WA*B_jx`@9NNrR_zw1wzcsx3y zMtvT~^;t@N9QP4qDrSS+a!;Qnp=Jfb!t}L7@7_x6f|^%%ju-1m& zxmsN(fvt2SuywJ(8t}%zuEzuOGO)G>@5DaIx4aB&(!0mJvKuq46ERJOM7&Ko)!Qtk zXOzVfue3}{tX|G^dcHRs)=Jn+yvDjpT{=pA+wyMfpN!}S-n4}olzS{jdC>q1?iCRH+) z<)pP1ht$1=n8n|;LdxUBMdkqY)GF6f;8!fN%A~xt!yid6&oh>TMGvyEg?o{y&f|~8 z(Mr(ci(-Z3^dbc6^ia)~WkhF{B&TkA)IIPmSlokm=HeLdoWgPMT_Lr4bE})q&SvO|A$KHCkO?jO%Q00RT3EpmwiDW-wPOJf@X_ z+`F5PMm8~_y>}@x`f1RWdsY~RH66A_kG*W<2|rKZ)qIaZnP3`x_&tWB)aVX{2C5U_Qr z$x{Ytd1DH{7HP`A6twp33?w4x+Cje93|$BTAfhc5plX2+I!(<)Z!?NFZW~7dK+RS~ z%gijCLR`I$1;Wx$Em>v`h&^B3K>=W8g7i$13FhWx7kF!thG!HMQXNA{#f? zDTdk>q5!FgkCvIbMjmA4Xud#iTN}|S=mI9y_>~n_0DBmd+RM;B-Zk4!Cr3Cg`ecPA z`Wi)7T&2+PHDdR*cTd1Pg$G)|jNAg9jMrA0F$Y|m$vDJ~jR#e(l1)NQCuKx$ z5*@d6Qf!CkE!N36`I+TCY}0*mdT+gp%M{!BSbkd+c|`O-Cfc788*T3an8*+vC=(q0$_n4sElRc9!jg{5Fx0(7v_ORBcR$2t1G)MGPR}{TSYp z*lyOs17+4htarSZWc$kL-60<3Q|avi#^*>Hs^VSkgCwjFl4?Pp5aJXo+Q&0q)ZTcO zIlWeP&h;izuF-22SS?1t3sKF&u1m=ZuP!!+Atp)vI=t>CZPPSr78UeN=X0=_STlpz zR056prFC?X>?_Rpy4lJVSVqN8R+)o$u>#l6d=EJ_a|IslPNahFLcf)d+Z-$C7+Fkt z%^qUKN~S}WWo!Z~&?nDIT9hlHyk?=vR$VK!ZB1GLbL~bx>a!BMy{=tpW?@YgI}*j* z<7Tp9Bhzy;zWExLhWBWFZ&xEIwQxK2T_y1oYyqM=$81!*Jh!bhF?*@ju?knr9|+BT z3y7X_qJ1gRyNnnWtn>0YxQb}oG!QazPmy;Ob|kA-_Qdpg9qnRwY$jZj*e zz=aD|c#KPiB(`dOX+>SNnF-6k8pkic`C1)VjcaYPv$MWd*H?qfe`FwR(scAanGS`& z&L|uyh}DJh%Dq~fdz{(?M_~Ggpe>#W+7#;DN9|nAeJD8M&Es(S8TdLd z$b7RtgbMf2ym0`4pAaJzT}IahYw+mb#K-G=EZ)nYO$4sLojj%J5MJn}yRj zyi{CmtciOU(OCCPr*mL_t_Z2=HIQSAAVf;oSA$}gg{%2R-nN9i2k>}C-s-h4l2=A~ z?vjtRyhB=EK+D^ekazugd5>QxuS(=qTJnzb&F8b;PV=q#r1f@Q-fmcL?R<;a1|f4? zbBVQHqI)wjbc*P^P4pN22I%k-L%WILQ@_#LFJKzCT(jPm@Xc!}ipw{kwcp40a@QXq` zT6g|Ws0^4s*jmeJ<5F;R`cRyEtAmtKvhdcN*1g?X+( zm=&NMk~T9ydq*t5#aeL1MhM8tZ1 ze~E6Qug8fWXyQmb)H)LT;{+0; z%579l9umOP2n_?JwN;aL=(L(C-LuK`49+HYl@jf)bSZMO-{R7aSSH_q3g(Lz zq)+X@1Uk+@%b4^WWjf|ij#IEsuz4|E{1xf3l?i2I;bWnnwNq;|k69L6PP#^~P_HC* z2-d6uXFS_>3+XC)w+I$jGj7&CiuRrH@xgTxI^l`tge0lYbZeLTIjPj*mpPlZT|KAA zDj8uIVZW(P;xAD>4)}Xik7hptsgOXTs~MDI4Ye7ru4%b@IdN%C`aJcU16bcxkdBEM z&Bm*H7v#9Wivl1Ltep*NEj*h@Pe%VPom|I+dM&9t1a0etQ?Oz^pIw`v2X?uQ{{($a zYomL~ZWH$tV7IWEzgv$FWCG2@YUBew3W1=1GoPb^En7tLR>lf*57r?)SfX@Xu&)m9 z#(c|6mNWM@()qU`tA=BOO0TwsDLEuQ&2{ie8s1DIQ^iR#H3ca=Hh$2fqnbVJS?DRB z0vugs2&YNhc8M6eLYBms`~)@+ULcX<`)_i(;34`+O?G@&|Ui*AGY z#*l28#7fJ_QTrRrj3H@*-yiY{?&xnYU*oZy{Iqdu+CE6>V|napFne2%M;Z{@K$!8Y zyGnFjCq{v)*Bi>a7s}7w7gP7td9Ciu?^U<=>%*+crtGW_mch3s@rl=ZM&}Rw{KFxyroSosI5Xru z4gXYKz*N0@t2_J6ela279y$2^=ehen$DMB(Pjnw?GW)y+%|FJK21te6HUnPwp+~O@IB;l zN^&0eQOge|XR_KIFkc%!CO2K}YKO*sV>$PH?Ekwna!(Trq1@DgjnXnO`4H0pDCfx6 z=SsteLwfhf)ZWQigJQb^kDo2C5vHWMpXNdycvY`H6z5g-X55gCz?$qrUOL4V96_3NH4g z4Mr(yMw&U6GHradNE>XNS$+g|Y7scz%`P0AF=|9M=%5S!S0|yk**mVdUi{R(rstFC zg)tbMGdK$q(9h+5B0^AVHkE4HM5Ww2h|Rm8n)#|63rbMJaO9}w=0t&v#d;*7+(H=@ zyUE>jkQi+iJVxw3N30DI-PegBpz77})87`;`+ zaTHBm7qH`5rtBDGPtH7WbstCeBW5&rT785A(}{#hIAtL{^3>(yn5-!HqF_J{ZxEnD zL;ApZQvl(HYBG`H-kn6}Zerx*FlYjzoE(Tte**=X+-YiMz?7tmy9^qsYAC~YWf=GZ zVWQ_6v1xY>Wb|W$#H*!r#ekK)A3%3t)Y!bCxGP;7n$d;Y)}+Dru_&}R2Lh`1K|o6X zQH8(PN5-p9u$RbzAl7r)8=;C(T52nU$HT9-K7aq`KKkIVFw5IP9uH2V zH&RjCe#R6X<%W~I_E925*5PU=nF`Po#2M(^SJ;Q?Jc)iX;>7ENBuQ8%)P_?KRtGU0 zp%WuOWs;~MEi)@8XE^dgRh=?_--9m;8)3;AIzgVApzvQ6{s^)BHl)1VUo8omuW}C$ z)ZQDE9ti6TMP3b}%Xc@3Lf3g3)n!ZTGc^UJ3CtWRt}$PyNFb3K`OyO zM46cga$o^EwyfBh>R5{@O@URltPbQe>7|aIhmdMv*Y$nqXyF>DW}UNEt}PcyooCsn zw&FxpMq1kEgWkud!to{KR&!+HZDy-kka(NZY8EEm7POj(M~rVttBJIYy;ZfE!xL|- zTTP@w%x^=hnVQ-Ng)vo9^tnn+?W+9(Slf{cEbh(&c267)bT1zR4D9<7=nLl~eRTO9 zsE)Q;O~62P0`-OZXHtJ8kve#u5s1H*h8TnRYgvd*f&RVV_Zmc+@W_gm!OAx?7cbq$&#GgWv;3>nifms8}O6l0A$W;8nI& zQv-EG&uMw?CPwFtWxO{Ly8=Y_9U%7JjRV%qCVI+<<(_e{N0J7pe1r1_At6Spn-_FC zBso30pwlABX~IRF9!X9`7j>E>InB7J(4{SR`3_T{cto|DG{&PfE=xf+6tKFf|(OV*9mhQ^M*wrA8OPoVd zD=x`y*Q{)H^b*oHxa>R5I#`BIO}u2LzdAroYJ-kro%)fV@oAL=_{OD8jczM7*Lp+jKK4gI;L^)kcnE zzKY-ClvV(CSUy$Op0q1i%T>wYm66lw>|-fpoZlQ8Z<0Z?YayataM^iRqXq4;z?h% z?J{#SwtWQ6yr`)5U4|~+{nVmGFnSQWyo`_Fgw5B~(W{sxnbv_@c}i}WeZc=VPV&lf zGgC50ZN0(HhkVwre?DeSq&xAf?MA0ekE(M94dbvnd1L~+O-r7am-nGHUDLa7yyL_U z6X^S;_ltF(kOL#t{fPOx6)3~|h~Gc@p9=H8Kgh=svtI$e7s>ChVO!%ke4!DyQx5u^ zG6zaMh|z$v*Trc-71sJ&qd~3;JM8HLCD)b?`QFB6>*5 z!%>z8BzKIBHIqUIX9?_$0WkLJgY)sovU7LMSE00IOhR+r zM<4Wc9(7-F-+V2Wl$>LZiInK&AbxpjdUqnVlS#Ck912pix{(AdzUaojhYJ8l!$4Ri zms&rYIcTnXbRYEa)ZW3FTU_E%kWe<3%+&SN-B`pEMJ-9sh24z*NyI;{iJqX7ft{$q z@j;JyCiYl#(bR+SK0S)&Yr5Mqs}tWX&l;WnY+(G8z8_333 z&9+9ntgvcJC$eZ~C+NH_q|+^#m1u*wZ9EU+y&fv__ciJD2nWcz za3&QAkPOMq8AdxuI&~{z_SW-ymY@Uy(ho^4R8tvl+pNDreQzl-u!LAqLF}p|7FRJ^ zmP~1HhY5(9o6rrnSR@RgER6%fxRb^HEA#a z4YVJ&8fxGHVnjysIZSQ2jg}>ghBW=T0C$qdCp^u9VL|6QN~s3oUM02a4jLZkU9;a< z6pEOrL>W*!@0xvHd65-K%NaBdhCR8!sCh6Isjp}0%bADfjc^ zV)R|cR0?jh0_!QJXEd0pU|4wnd39ct<11*GyXqJt-%g^po`F20$_s;ddS7p(N*LJ} zl1*j^<@+hS{y5PcAO=nlou`Q9XT-gQ=xRmyslOf6PhILZae+i1y$|iiLvu*t?e0Ts znNQng6@7@rrML7})st@X!|bp0^W+C+FBJ^q1K9YviXTLdQ>1G71M{7n@wnD@bO8=Y zo_+|j*%9&o__u1y19PDAlXcN;af9(Z^Z+$2K(|V|^-^oZE48n>MW5~m=#o8sfVqz; zlr?#Zoiq;pQ>=ex=^xJu@$>4R8vRqxA1+^x&dhiPYux6?vZq?!)j^63tQEHI9rEL8 z)IUx7r$c@s`p0%d-fZ{qqvNaGk4$XE&d*?{Mn?B)@gvBz;ZxaA(>7%?C{qgM>hIl; z%*+g2tG)jb`pmF~XdFQ4odFX3%+fz)^5dzMpN_rq6YiEDcN9M=<&%-TmeUnQDM8Om zt&L*dFlUs`&I3_on9c`pRPTgRN23U3{netF$^~jq%qvJQ{|$KcQsocy&jg3OO_;{8 z3WnukAJ(I&$=}{;&SNtpv)~m~{usgZRz;7|?3Fx*3}?wKa=G=7NB?;Bk8PIth4fE& zsiwsDZo%N6T58CpVH=B5dg0sK*4vt*6lMNSU43lwR{01+@HYxWqyA~uKSBKy(m!GR z7_Z`=TJQuM5$)Pd*P)}|#XSBfT!aA++kS|`7RKB$BQw;IC#Lo~NiPSz5FP#F)`a~q z6Zr&IG*dk!jYoTW^-qna`Q*K!YR*$r9e)Z6pLY9TY+i<1_tfk^5-nFoKh*?(_7-+L zMX_!mp8!T9Xpn^$wxXbuWKIhlg{sdM!9X>Y&& zX~d6__NBT-uV(EQ)ITBp6V^Ww{^$m42tUZXc1nsgZt}8;`P;1tZ6`!;2YzrOH!l+% z{w&o@0;l$I>mQH)@#>!%{o~U=e*CZ$7146}Pl`bQDGG$C90PeCF==pNHPSyp{S)F3 z|Jh0m_n+!t`qe8zv)ZUO>J6{)L5KP2j{?TOyc{;%e?REQzxY||kAL#Z0iV_V{jXjg zR2VfK|GV>tpACBX<(E?(Mw^jaZ#aMWqv%VYeij6Clacz%dgEumO!b(54F1ra>Pk(m zHti`PBlkyz-d}c^ZK*Bh&r+LH#{cnGH7~W9ksp2F_(6qH(W_s-_udPdkv1b>boBD4{7b(^b7XmHcdD&dO)szcqoDDg+b9eh{IA>yrlwY;+EVL`_Yjqo z=u34kdtUaY)~9s!>PRhz+BGS`ULR!rBJ1BmMoY?jOu|3D_ie55i>#6V_6s|5s~l zCow#Im@)=&iN^wp@g?{&d?s2!pe7+20okaDhf_0BfjH>U%S6fKVl+jfRh9`=DVmmn zhPaR^Y&0Yjv1UOEHE5VT78sX}3+$2(42bK%2IUh->^U8feJ(U7Ekl!H#7w7xTw&OY z^+GB}QOhopWj->BOTl;HG_*!BHn9R5)!;y_V9E_*38Ec%Du#u0ptX=V4=4|`73q*{ zHEx!Q$9gg8GN@i;=>SHCdQsa1Ne;PJE&+qgvmQp6SThQh8{*C*SX-AM9s@`jPMQVP zW(*0BM-p(kq)}Whl8e|fD$sna8RJ7)S`Q*!koy1K=r|1`aVbbV!Y8!iSSSw$fF|2Y>;@O!&sTP zhJzCyoE+(N`T&j|k}aK!+M1ZqO-x)$&;SabQiPQ_lo4xjI%G3xHqwe%auE;^DTrAY zT7rduC{MzKL$E|!7gL3MyT1SZynw4%A#7>EH8B!>ee8eoU1IGgyM<-J#8V=IZ4z@CUi95f$oMyyAXF)0qpzy?6#h9^mqr9&V_9%f`FV#&iNpk>$q zHU?GG%+N&;+ajbF*9sYu4ecu&QVwO#1PRN-jY6JhLxZS5*?6XehmMa)65==j6lzI4 zT0|gXwFpKo!p9@TXpBmAq$c471;W9_v7tAEX5dkQWZ?KJj9fGu8739sc%ms{8CWp_ z%?+`&&PVu&G!uz8%0(GTP-SgD0&`}FUBU7h_aCk$j5vV znJ7;rX2ZXZ9Jvr`I5`Otl7J>btOgO=6g-o_!Ep$f69*X(?Lt|E63G-4+Am(vEI~@; zBh~{*5%>zo$CY9EXc++-S{wA0f(&p>K%o_56)2aW!-htQ1wvm4ty_LjY7A$V0_D%c zIhtr`rJ#;3hA9XW=aGr8zy~xVjA5Lh5(Rc4z4#O)6AfrZ%u>)Igi(Y!jbg1>HU^zj zE{+LZSU#Q!4Yvs5&qQi5N5>8%32Imw){68JApyfkbTNWq6*yuhNc%1vk&Cy@RO%&Q zR0vlr0SclE412#RO>&LY;5aB0RuV*kNTgASke3NqFRmEMxdd8n2@whs3u#4? zh(#C}&_`IJ5N*^$(2xJq6hn1nB9HmIexqRNzJAOlk%w%LfSr98s}bQhu}-GiuO z;u0{7YsJN7V^sNO90%8h_^=Ra2|9+;kq;P#uGi487m=2Z&OibzLpY$2urMrukA(2h z1bj3PaY+CPS^~XrEk+OM!nqh4N{35Z!#)~IE@~^{V4H$iW+0S& zvX&Oj%yJYp(J(9mNtc96AY>qAcv=V)5I~2>LqHk#aLI+tZbd<4nh3fntzM9LAe&Qg z6wps?9UV((6_U^v2)PKEDBXc`0Y78VTW2GNd<06|gAJhw4xd^OfgC6W&RnjTEz=l! zau6Ju2(d!63xqizFU=y->C)2KV$y>kpag|6ipxZat@sXnuc)AH6@eocpO2FsUgQ%X z%@-}3rjw2GktBSVC=)s=)}#pu>B1%8@=?%rG7@b|%!F32BTtDJ)Ekh}86fKU zDgsr|sY}|a7vjOfh`qSLOxb)SdJGTSNpbbch=XcuP~D@QI?xV62~r^+&P2(?K@=oW zhUfsk2<0Mi9S~3)6A3St;E5L_j`8rCB-F*@&jkn9F@2EKi!lj2GzEN?K%D^Xf|Lur z0~?xZ5dzwB2V_==CEcV8ByTbFqAX$sT1*;628bmDCfbY(bb*qEF47?c%RmMYMm`ck zG1K8DbE4yXbT% zL;JxcARQQ)1+{@V3?o5nsx?;-Du4xpAU00kx|b9WI><0oSbG!7@<>u^3AbgquPngL)(I$bw;4Jo;DYttbUrHArMi zF-c&tiBy5OC_|_mae*Z*ZCL?5bN~kuEI3?R5fd%>5}ct+E5#%M8N-)hWPt!@5Gfg= z;h?i5ASTU-4>cST0-8sXAkvsXvtr>j82OkM77)NBR3KCe3@f>qj{`I-#{tYCB!tMu zGX`fY#J!m*hs~F)!J#xW_9wye7FhH(AYH>s&2k9aZ zOK?sa36Q=7ghmwPCrEHX?dd=mnb10uAeXq1Z%H7;=tR0S55$9|JP(QU$tDD9*pl;Q zsD@=Abc>0B#i%qWK+Pa>A&@dO9-3kbLJKb=GX)&)9Y3hKcF4I%*@g%1)Hs7o`x znZOl=4zvrOk2tZR5wpa2loS;Fx+L8IJ$`OJt~i*#U7o4fK>)FV)=sOP#+BlWXDVkZ z$IItVn>y#q=1%L9195U3#A%p0z*nGXYb{zxF_cvWgy904Epo-i za7-){H@cl30KF~9%OZik9^gUK(P6?@A1G5aSDXdvWD-_JVBu_aMsdU9f>BF!2FevJ z!#S}?(3zrRV$j+_*Ry5V>I~zUQcPSk!K@h_1Bv=~lZ{IPJ@xN~BbkJHu+dDZj7if> zX{PXIG|Muj;Zq3WgfT$d(IMNyhd&P!iib&xXs#p+RQqCdRI-*dATcUl20DE?I0Zy1<1g%9R9lK#ETq6VD(E{P0nMTZYu=q|0A^ve9@c9w~)93{Mr|vvC4H@ltHD zzg!ZgHA^w6R>#aN7oiM_@z5ff z4ADSK9ZMMg(LrCwRUnv|A(dJyW{s68_R6%zun0-wxr$7g4!Giqw^DhM6{}c;crpjB zidM1+Eb&Z~MP^ZSRFaZam6^&tOc1-bLh+=z?N5gkD<| zgm@;%WWFfKV6+w~lH{R0R6d?)t3!jYL|Rn&LFg6X%O92MLh$fpKmHHzm7KZ{Yr{>xze{t9H~!($Z>IeJ`oqV*PjL<0 zl>Y?66u0}sGh?QB@E;z&b&99|;ZDj^yzCDjv!CLx|8NuMDGtBTn2b-Z&J>^hhdY@~ zafeAR4Y?>XnO+azkR|Xpb%YD?geeZGm^x~OI37wB9{$ID6(MdS#O;Lm+DR_R)u|&u z=zgpa-z&tEg!nNbenNJ*-KMU~@Aua;?&ENY^ zk`R{>;xmP~st}(m#0`bGB6O1iVJr~%(DhI1Q_uy8fY=p*rYZu}K?I^Gh?a;rfDDiT zNCKn)f}URnFbyyrKmo`CW&q>>@&GD837`z10q6jIzj4`88vzW!CIGCR zCIZWsiMRk<0d4?T(?rAr;0f>ocmsR@z5qXfKOg|G1+W#c4G;(j0t5rL1400y0GOyJ z5(WqdL;zrNnn)BN8UT~ILRv$UYHw_sxGz&6-;F zV7~Bd>3^M*`?ra<|LvoHn?d{EKKi$*xc}{=f13;Z-#+@c$-)2aqko%8{NFzMx9Q6N z?V~U;_^&z2|Krg=>*&}C&$9iu9w%oCPtC@eoR0f%Jx4k zf&&iQy**)v6LVW(HtFIyW%*25ep6P!l(l8b+B#(gO<7@6R`{f~VU<4QiFb6gr`MK9eSKrN4us{| z+y#@KU~xBCv*v&CCdkIHE&s;n{}yi_PshpR`2Fy=ifyo^f(e@UkdD00sjQm#z!QOiR z^U08i9lq|7TXuv;z-~W(9-XWl0y0^Gf(!rXXm?mKJPfwM2!!1?++jCpa1DaxY6R`uKV1AHJa-6+4JsPc^Bp07F1G~# zb+tVr94#&CwR^$MF@G8`^qeRpgZfkaPk2oD9bJq)7e8x6aV zz!}2u`{U#XJ0Al3lR7`YzzEo(+1+n@2uv?=_nV5k;36U%DlTN3C&W*Xdz0tMfWmxz zA)S6{KIYnuB{p7iOH7NjL` zd$9jj*n!?Xa4J;T)E(w4i?|0tjs`%(7ubT^0vq<*5!iw$y^|M$>2(4Ju-!vE!=V`k z!w>u2gMvH-4{V3EYutk(f+yKj>O$Z*_3nSAFa!!35(jM?>IzK!3g59E!v7c7$vs^D z)hTR?zhGyme|3!V6y)+h9))0Gg3~|v*6o5y{MX$e5Npx@^LL1{so4h@^ECNMt}%519S;5?O~JA9||4Kiyozr%w6%7{PJRm43k%-b^< zG7Yj~GVcYpAnygXAn(EcQ)}P~WZ9%k@Lyhn|MC;Q9o`N;!nZ@bCvC{DNjm~ABL7jv zrfSR%PoEu&=FKx&pl@hoC>Rs|{rK5VX2a-CFpNR|xKqFl1-IQIf{)WMAqm_C!#2T? z4i3~)L=zFAp_4<^DX0IZvxengcMU#}36k;tdfbGqaD@y!Ph!J<|B#gV-}esf>M zEI86%KRC`=b7fD_4aW8deSU1LrJ-RPx|)HXh%1SUJ@B&fux+x=rT?$@SLeU@a!K5A zS*quRwm1HzPsugUSMBUqol>XVNwUip4RO0>?v^KR8a}h}z=F4S29;y`l)=7BHw+gaH&4_(@oFF|e6L7S`m8~< z>HC#KlTZ3=crZe`q<@s^xyzrha9O;>W)*v>md9Bu@Y0EC4wvkS4`?gqPQNA7bIvBZ zH22dN()+IuTQxrz-I&|kJKW>zwXHc1i}gnmj6N55+!$B?c)Z)`K!Htp;n`TTMekUT zuRZBcot2@v@aC;KwKh}Xux9366hhCh{k6|ZANZaC@6__%{SZ>J|)WXq;cw(r%B z-e|N8eM#EcMlK&pj0ls&8TNY<;=C=0Y^94vI+B55sw&2kJDgM5{EB@NX*n`Wq8)8^ zp41Om-0bl@W5Gz;Kn3-xas@@x-sXWPYku(kdS+aOcDlLjfBw|8TjT{dQBmsKtZ%awO7>o5zyEsVi0-5D;MtobE{@r5 zww?Lr&{Oj-JN921UzloaasMUtd*72&;>sgS@fwM-ZUbKW^7qR={w|wQmJ|Km>Akfs z;mIM}TejzFAI&}XY~P~%;D$l5rjwz=Yx~!Jw5m%gymhEP@3+e8dF$#j%fh+gq&E#O zO;dZ_&vp7Zn9X>Eoq0eUe0k(3t!v34&4a1gzOB|jpKKOCw9{{OwYKp|``KMxgs+~7 z1${S;N!-&OIa(l>m+*R}&x}o^y)ox^ih92ay?apWYDloBYx`OCeRoeD@a{19mAStq zuzh7=lwRK5PrUUnuh$>9B#*OuYVzEJFGhaKbJ{d_j@T?z?c4X$)}(3uA5DDK=4HH| z`~HMf0P{T@Ii+JQD&rj++;Wx-$h$nl z*Cn4;HPgJ7Hl}NLKIr?+OPxbuyW;!OM(R&kUZDoaC9oF{UyYp|>^f)PT#lIBm5b|0 z*EH7@sCPM?SmRYyf0!0IALf43<;~*ygjK5YiFF~+1T60GL4I*P6ll-rsjER1}m5u_nG_WeUP+& zzcR{Q_15)0hZ{I|C$fgy(?7NprY7aLAIc-={nRm?5vPb3ts8uMl(xTK<+#<@qe#7` z?c0pDJspi89~-z(cbT)X>h2%vD#`=P?`z}qo8{{Eq}V*J^lMvo0rtNz z%T9cWfCS;|S=_h{hGwENcM_K+0>Xk-h^?9+ip{sP< zdrX`p)yNNIrL9%8o_egP(5TR=DN7DDX)u0tta#n#lKLA|H1Ph_2a9(YD0Y^vBU?XG zj=T5a$d@nYZ!T>K=#kTx*dU_1E$zO^suKS@i^kt9Qz7yLmTTO&qUcp^s~WCzXLrZh z&<|h32WsxrGsJPDky%blH(5!w3|&0ch3jdGrW_dBeaY!cqqViEd$PsXbPKx5f#mm| zH4YovUY?wDzJH8k2RzO)6Fom-y`osxoHs&K?S$*0N81!o&Xa#WUSi^lH@L zJE@jEl6d&u)t5ahc4=g5N_~2*LiY*@kG`^hab&`#$ICfRrQRD#Y2R*q-zdKJ=#s#d z%BrC|S4Ku{cszQ!WnZEHk|;EjeWgZg^|71xUNpq(sOH^1>Z!o*IDToia!dl@=_`#k z7klUS@#gz7+sc4Q8JF%^9^P|VE^JLi_rv+uv;w;?`+r|NAHUOGvNzCK zSw-SL)zvJ~c|qMAt=(o#Kh|9QP%`TF-F^NhDMsHsbwocVf8o2~E6U z1|_gf^O&Zbk)g`U3wF(c3ZwdIvZ8Mm&9IQrTIUmb_WHcJ+ordFGq6faZc|vO_I6Ji z<=)bDuJUg8SI=(!agg!jY&++GZta;G-2^NahqXLT?2y^1t+A@-f#h}l2U54JqjWwg zYX82cpXH|3u=)LVS#k5rJyN3eQ4d#$op4Hic}GSuM*rLLl*(xzJ-?o@D0{Oy@=#FN z-8|DlOhIp{*S@t>@oq=_bv3&+zP=O1DOacOTmEFu7mKZ=`TA)F)2z6-N4^^>Pkjn% zsJygQy?Rw<=JL{Ujg&0)0@Fv$SG5(?Gjrl!bZnMRpT3aFcRQ_)VcT9vRXBn^D^4t|w;j z>Z%u39KC=$0<)--`WEb?WCAD;`H9T4LlO(EILNK@G8{}D;FIBs3UzcFD zShv&QsP{C7%8d)W`aW{{RPJ`RRXEKauliiuGcdg9b(mH8Y29mQJbtdcIluen_m`~U zX+NcT+}A6YJBqcD^Xco*a+X7p<(0BMyS>-np!4jdws+Z{%uvpGa%$b~kNFYPi&qZy zM(m&PuFCS=O`Vl1aZqfJZ-?`o0c+9k$NkB<3FwilHjDk9u-gJ1JN8kBXYFa%Ia)YG zh!~eoAJ^pvj6EJuoi=0aL5G1$O{DT7CvMOcjk^q+MEeju?n0vrHBWvHY@Kl_W>M)& zj_9Y0GK25dQ=Tb!**5GyUB5!c*qvyFSg6>vpU*h=C}g*H?Y(8s&sCtebx&(1yp4T) z=<(+bYZROVTTGtJkm&3Fkw2DD#22~a@7g%?g~B|8n`erPBlB&LjUi;;SI<)tDKlnw z>dwkZa!QrJvnyJBpK#*34{NkGs@nu!uB;Hbz#aRa?I(d88H{dJLgE5_|N7J7B>sySY>(vXmIq{P@t zdr4#okHE0|agI_U{@l`lR_K=HxxFky#b5JcQ&Z~OYfsj_zq@9}V0v<4TieRuyN|7= zlh;y{tIq7&dMZkn>9Bcs;Pks=8#5PPeWJ*~#0x){KVf)051g-{NxOC8F;DIAZI6p@ zpJv~;Gvb~2a`tjWCp*GEPc!OPnv*^)%d48Fba3a@6GYWhn-?=@>wQ+M8dcwYX`iL# zqS0a{)L3%RX_-ZKaADXTf;sd1$bm1X>T^d+s(T@?L|15hd-9p6N7K%nbu`Px zUD2OTQcgslZ@J%ivhc!!xEJ@lOfP(mlnSu6(8yBk_q(z5K)Gb&eCiLmK?z^hJt=*AO5Zc8>(Ke1<+FHC*I&5tWgYiUICa;KbK4#VCq;@oMicUz z@?XhBImGBhdyTzYt@6?O$uYmZ>pV(Cxjh%6er0T2{K)wFijM45`SL7V()!W}E3SJJ zk(4GAgCb+8sodU?> zW8YorQt?^TD<3$qBUiTl@)=V}DZR;_Tex#`kYdua)Zbc(Vn5VvCcLFZmP(&Z*>zyY z#p`>9YhHIfXR9>?e0OcG>^SCX`YwjMlulta6xSc@i~Q=jWbUApGz z_(cVeCFgXmtW)F{zZ$&zDnSQ{?`iB_Ku)uW*==<0@wH-2gU-wN`Be9PDmKQN1#Hb( zolbb8@mt1+?n!@3@V)+<|7|t1h19ww`MKrm^mLDvwgE3Bmlyp;mD;v?O$&PznX$&z z#-iZ7oWrrfyAo9YNUH^JpT%$1?hv27YVOk&R1QQkkeEMS_<=ejh9Oklj6HV`h zSY_f32ZMnRmMfO-?u^-_@yY&()aJspnk1Q+(y&y^pH;uwXEVZeJKis{Nncn|xOugC z^}C!WzKOmX20x6h^p%L87w0bZV!eBuW4Cc8^KM_yD@=1spXuy5s%tbS-dLpvH?pdR z2?n_l8*pb%M-+;m<|nzR;>Pqp9u2>D(kaaIEK=gWRX4Cn3DFgtDed+rv+Z7#aAEs#94X@cdCMKM>@G>?Ml~ta8xa58*d3M8`=^IAO zUX5Jvu}gGjsRpF2e6PGKJZTk&pyi~-!d=v!@%43ucFCTaj*iWXGUt8WYqa!+=YngQ zdri|K*sT`mqBmM^Dhf(s98W#!kvr^iHpx%*yOrrE4!N?=)Ku}&qPOyTsl}YaD@won z=d4iExvFJ{i!!U?dL+loPusNI*j-zS_kNA;gzPWxJKscdZu<0@*qXU)(_lTsy)ZhV zcjVjrweq{<^slYCMIqnX+LSPt!QGtGf5TwJR1%4N^ZN15b7I?%%$REw@o2}(@9zeU z?7nkI{HT%V*=Lb_g|8`APcnA(%P!gd^)AI|w14&!wn66WpKWuVgzQ}B8 z-D@GqxBqoJZ{e3qv%`P*{4P&lR3-UzRK{erdiv1y8?#u;^OugjHQ3`d12MXA-b}2U z`a(^ViYe;)4U9bbI_>_==g;2vH5Co)S>-S3_2G-sx|ZFJ9={nnWqydHB*(DW5k^ z)(h@0tH0#dS0fv&h~Qr@CRp!rHrYq6|Dm55aisdN=>20W4XD$Q@{rd(O68ZpT zf`VwMZP6VOylqw73CR`5F4mnAVNv`aA6?Z&KUeFs7H{(CYu1tL!Mjr~Mp>*0+1T|| z{&>Wy>OHGd-!Twt%k&Xt%fUD5zPH2-s{>9ywlk5LJCtKRdVk)F)R`?m6I1qTJH55} zHAf}KNpamW1H!DMwI@z^sYEYh*68{ABwDSv*)^S2q<`{Y@oSB`PO{%;W{69H=7gA> zPN|ZqofZDYB^CW1P-J!XX+AlIf78OBjrqy1o33T-_@O_M+^L!^UhqyyUr({xoqy%k zTLtC2!&VP(B#%ByJ;AnZV1MS@tajNjzJAqP<1agot?+Gf9BLo>WPYM|jpR(Vp*=Of zV$ROn)x3Ab*3-jY=jQ!tP?JAwxVPoZNX=K3U(!bd*onVie0A>03$QKnRURt*nXzi~ z>ZhV2AyV@rzK_b+MT^IP&w9KtFuhDKQG z#cVx3Q?u@J>OIk=mNOGOe_n_`Ow>8^k|D~bVaFEUlNp?d{k4I-;C(5jZfQn$RMv`b zC)@bD$VbNBo4d8HtLyd4-$&|}JL$aYPJZaIM~dH*^dBwO|9Eu=-FA3EG4b9GWZ5hN zH)PhjKDiTXT^?8k{NAEuIQ)K%(dyJhUDe1}i5z|?D?oWhWAUM?>FzBzNNa178eVw6 zJ?nhj`5YlnEKqd0nw($a{NMW$U9>mXh$c2Wj;7BbW6Uli#CdF|u3{ngbT+&OZuGZm#Q9*CrLrrtf*!@4ZUy zJ|&VN{x$vlsqvJyRd3E-Ts<)U@{)Cdl9y)Bl8do#=)?XK8%18!Ee^cP;eIF<^M64c z7I{Ot9ca61@LK!*8GN1naaxC}V<{t1^@v=sOz3fjY0>AA{bSeU-5ew=6wU|aUI;js z`%5ABW4_WZt=Az@te=*l*4dw}16~t9O6C)+P7ofY%FoYy zvFP&ZnMKn$MVCu2y*>SP>y<+RM4E{t9sYGB(Si<<)`QU^6Ih9P-aK*WldGL z=-O|fHHe+zo^hXl|3F%!d*zA+WrT_o$FIJqKB4`F6`gM88ZCKpOZNR2-n}=>?Vh;0 z@l|ig&0P>rzIS=_#({vGF_XYmEgVC;3wl>{QY;5ck!J4_M}yl(mT))Py?u5ne}!S5 z^p8Uy<`J#UzfIHfifVp>R)faWdIk2>(*8B^xBb?we-hl=kxOj^E30(a@-xHlB+hD?oLeX*SL51 z=p$Q#uT*&X*z@DKsM!wZeb>N}J}fi&eM zvzUg@F6~>)TYl?#&;>WO?*6f!>z^6xgGW@~AHB#{Pbj54s%ieT)q2o?(eD*@sCJc! z<oWKHdg5D+4k#UT+7}!*jn91)wuVba!Fs-G=7M=eaqQJZ~8#Li)(~f zhzKjjl6f+avfpcOyEeP>#0i7&*cWZ-=c+b}?Kz9{vvO$JQs-W-7hS9;!`_oG^PsM7 zMaI2ICyT+D@Fr5k-RsQ4^6~gnQhK{S4!Hh0a3#J{UcPkb4Q;7mEw!t*&LgR+c|MYkK8(eB|2}58Wkh9WkF7BBuH~KInATtq807M;Y9q zEk0!`@qPv$qo>(FHNw(YiJroAAIB`Ytk_y`(!l(=>A`22yYH@h)to;!&4KX7C`CqP z&f-ls@Sks;7?&Ltan<_radk`8 z{F2v&UcV}b{Hk6@hs(V)c-YPz+}1mIY!kg)rzfH0G$H9=33lCnp!sDm&8kg6b1tygn(?C}|llRG#=iCGObHqwnPB zW1nulv^ckQNa@^Wr)4@Lx(760%9YO2y|#WpGkD{+YeiDu4Mf_>U*5U~X6WlJ6nU%s ztg>Cxw#(1Ne1ufD!d2-5{en2(XX8zET4#|;-sPwL`%daU`0B5h>F$Zm^{Ab7J#OyO zaa_I$^M!bbS<(idbESiK&$P>5|9CtD`_?9rJ^&J>H#>>6Jm) zA`#@Z>{?Beg?H>pPXh6BGO;vzT2yqca?pXtsJKT#lK$u>Tniz}=F_G5RcX)t#I77L zJCnc1h@_CXaN1Fh%+a#7`3@5PR zc`HelVdl%&&7Y`0RF~uGzgeSVB=#rcOzR2uKIhQO`~%2^EZKL8wpy=Bm*-(~saVVE z&@3$6q4FbQlM{S8@i$9OiFu4Xcafn_6{>Txv<}{-5s$N>;l(!@rbct#?Ef*( z!fer}*H2Ul9v9{udxlv^7uj zaOR7`Kihq$jVUe-YGQ444;%WF_g3Mvo$r^*o8Lz80R{I7F;AsyIXwY02Ro(Y;Q%*c}pU3qlV?jOAY+zt&l zhgorz6xqOz;Xt`A{JEl>?)jzTL!QldHpI8@*rXS$vCq~nwRFa1C5!&6Tl?RzQ$8=y z%876LzPDlL;Hhckg{rr7yD#K?>OJ{k|1?Qwzc&xeo18ELSbllI@sUkmTWW%r^)7IS_zGP6GMU9uiiTs5xS3^ zdS{e>y0}g~ZcqF1OXo8O4f-9)Jq_5^*5wz7(0})qZv5y9C-k+hx|?fNGaM3bBmu3_5IWN$CT22j=kR?SI|X<3af{>#tMQNzT$x#lGQ4TVj+D>pIS zPk*ZS8+S{ew?nn-`rY4*;`qL}hubb`{vfy=U!Cy**I`g__gXwM`^k_&h}+{^Dx!N- zSGkYdi|n9W>_qqd%)P#q8fX+I{VZZBcg|`N&w=Y1r`k)-NDUXZ<%BDJJyGaw{eZac ztKO{hUiZ$gT;RBsW!yBeUh$EkEJwmt<<2(qTM{0tWWOA{IqXIFy67Oo+R0Dr_U5q@ z!`u5}b&#KAja=SpiKFy`oBVUfnm&KcDZVPZ?0d|nsGsV;_C4=E-4hy_T&6Jd{${t8 z!Nlq&LuHXJ-!H%4&sm!0lv6;Mr+q5_On@i$o%iZykER?YwcK+fWs_@rU~jjgM@U#_ z%4NstC;2}oo<}ok?oNB_^gI2$Qcc9t%7+&Z8FwAr<@hs?Ks{#?#y*^AIOiwP?8*Kg zkKWB>wSACC*4?mHw|wRjw_l5uT1zZVW)(4&2o1Xe(cQb8HYE5D95}6%BQ|G#qwd~m zqjlGabGldJRTo6o86Rv2yC}iaapf@e%2&T3EEKJ*H-0APbI*hqShj-ck=$l zw&aE7jDeM<>#-`C3!g%;a@NpJ>)U&7UZt6*KCOJr{CSgdHb(rTvA<*RJ#})}qw{8m ziifSQg{(aE{EVAn_5Ie7IF*~<-Sm4F{eF|%V^sfcy<@<1|JOVHYsX6}*XAehz>dA^ zZ+f4*B5eHq6J4}L@6)BG%ymn55+ zzILSFWUX_j9U8v2MGl`>np7UzGhk6&_*+9kdxg5q_Rr_hRVCdPAFDgY0}?M-&y8%o z?|(t!ck9aWdda&OU8e0p^71Yeul_twWJfu+HNa(k=eMD@2KSeDS|dBeoV3K}Q9_M} zdM?aPtz+>1J&T4q+K-&XU#x2ASIPHm=x&u8a*n^oBHJ{qHA)+Jk3G>BZeYPa23kmn0nfA@)um6rb-~Rcw#lx_}ep_06 z<4GrbuD}1La`yqQeghmI@QoWElo^~L?8>y?7m?Hj^RH*~FHxs`vBnmaC6 z^L#bzQn@C9sX-)dey&8jNip;zh3s@ho@z&>si)fiYnr0dLjke~BocdeUk zN-*t)S!qUrL7;l_fmPw(XexQ>uWt3XN^W)AQ8svg@Yr3E^iqje&xhVb_(#wBq`M;L z!-PsE&MEDM&dzp?x0=hd5*Y=`S@mr0@U&;Yp7niMVchV!MCw7Xb3ob5vn8=ZdF7(# za%QX!aB#`TBU_59q7I&HM6<@&ilR!98+R_`=-W1heBD(4S+w#=ftUH(wIcWjrji?D z3V*I_S<|$jJ=J0Q`P*3yM<47vI-%HSK6AgR@u@&w!p9F2zb_?UvX~D8(nCJGRUTex zkzV+0x|!56#{rQq8KKo1mi9h5m+x3?TKrMuz+RJum(&(LH4feSX;xC->f6k!SE5+a z`iIHCFJF(>E8jV9!u0fujNCM%UmqVX9XLIAw0iEzESqJSZl)%R1E)uuEO#BeX}iDD z)=@4+pTarPzjS}*ruOqy3B(Ye#F_&A*u3wTB^3(ZnU&Zps-&JIT8HPg;5Lrtof!&Fk}ohU(!4tGc(u|`gSiY%&*HQ3-|wI54!NnWU$JS|^}Ew)$sE|DBlXPow3D07>XV>v4OQNu8~Vy4bzhX%=+dZ%XSxNqJn zbvGubJAHh;wb?JxHfLtSTBFP%i|HOecE_Gpv;UUfrrBHkaVlOvhupt^ppksM(NeW zAbgi3&$QuY&x2`AT#ebX&;7Xl+JU3*nR5@Er5n_)Rmi>AyDDkbK01?llkppiC0-U< z2bYAJbn#bC+q}-V!A~hP^&)fc_5PlX>2|K2>EbhP9r}2EyPtXS5Lr&IkQUvqdi&8! z*OrTkGvx`(%=HUJH*q#9z0}(L;y}Bdw@=K>V_dK4n}bj>spqyN*29&H+;)DK8EG@f zKi=hch0(oLpAarfUe)-fEg|@>GX369rH|r^M15RT-h0ZJmGDfCOXrpPfU6XUrmbcb1z$}Ajo<3+hxyV zUgh1YjQ_H{G(Toz;V)lRr&t&Jtg7V>T5&~6s@>m$wV$&W)U9N}FD7Ch^5`co2hofD zJsB|ugk3uW{OEfh*OkiLeJeL&qcTHOcK`X{CD+_~;x%8~oMS-`F?T;McDqtFK?-S?9mFalPV)po<+gi#wgJ71eJ$ zxa+irgkP>SN&cYP`KI;N=l7=-NAll?tZO5KfdbzjT^!drzH|dv%+Uz?<4!;%V z_ZJ`ar!P2IH_@YpG+nT+zFU0i!VdCe4^?NFxyG`thVV|pWiW2_C$3% zM}w5YcV$R1te3m}$hkCky6L>0qdW&wu`O%e->lX1mmCsr%5i+WHc@Ysyt}+(R~$a` zfm*Bk>ut*|5-Vtu3HA){Z7IKPWvyPHo0tFek#yvFSGmJ)%Lbme-;}wPnscjvbH1e0 z!|5BT;^UvZ4-MQ^xa)m#f9qMw*KY}O6l^R)i4`n`>9r@8 z9-O{js;Y&xuA;J@S$XlL_{IL#8-Y>>g7#gS2#NNp{DQdUiIf#NTx`C&)#y;f#h39{ zG_=h-t91K3zH^uzTD59-?k>nu-)UO5@riS*m_h4A>e>}&FNO~(s2@4}b;IukWJ6=g zj2Fwi@o{SlQpW8RKk2vS6fySJ&hW_fZB*^pyW^QPLv1{-_4M#ZO1;>#jF*oS{g$M; z8*^Gy4!ac?2U)eO)1E)vvo>y~rrmn++*v*~GDEI<$IIL^7tWzLd5j-0d@uitR=9Xv zUn>%+{T7CuwAG}9J+Fx|&!-M;vXzslvxp?WP;xs`x@V1&y)M6L?%Qj`JsWOTG3&>kl-SR1E{JTLRqZ_xv9%>U zx-4h@bW!@4uM6E|-|d{nN|o7#_B)As*Ik$KXG|QS-d*bNMIp?BmbMs_WV>UPw+_Y;OHgUo?G~#$34rN zakE6xqm4|f0iEp6iSEmnZb~hEv+~D%hc9Bu=RVDiI23yKRK>i-5^J6r(JFRDexTwS zb&K-C2wICT*LM_Hb*5K&mV5eqI%<6Nu>GB`@FAH89ijRGyok<2m9X0M+gFWOPHudq zVyvy*x!x5uEa1#EQr#!_tbw}0c})rVm}H;qwQJiIZkYc5Kc$`1b|nngtYh2im@76` z>}18ZZFFqgPCB-2+h)gBCmkET-!b+Dd4K@$+NQ?|{@&B#FwUK@&t+Q%Bz?0|FPeWz zR%4E7cl?KmdmPWaLwgRjd`4&(E~^*m_kNObCu1281w=pvYJC%N6Z|V*w)z|odIEKe zgxRIgUAz%+E(LpJwpHUyo6Htk08+RbN# zM3YxAZRr|mti)jcM@Jjs*c9RLv)+%TDqo4~C4Gj`$!^X~*!A`g%Pe%r*-J_^Td za9EwMK^PE@GJyg9?cIME3I@do(@e7o_$wY@k&qc$xJUf6suW8f39D0oz!=qW7pX|A zW?#C(G3!0%mHbDXBw+>xFQ9luv6v=+vMHasZBj&Ru)9$gXxqXSlahx&0=EHwzrOY_ zcIe`)BVQ+BI0sCc1}i`rgR%{zKK8YREwCZme*qy>WlnRX&4T&D;=0+EQ9cy=~_S@2EBKqa9siGIni`qlItT$Pazu zohparIM;#(24>|B-hBL`mz z&GWoU6E`NJF;dBK<_vOFMA>S!C&Zy>E9V+-+SVT{>)XpXI!RCR1Kebx<4qUm7)NggVvV!{lvj-~-4nguRp7I`va|2N-KYheNTR-TwNFil*~z1t zC-oL#Kmp-4AhzLcShadB`C5aAhS+8;&3Hh zBfytdqN$6WysH&Svid4Na)Cv^I6QU{cw&(~Gq;)#()FLON0#R)Db(takf>~(i`T=3 zrZ;C2U5*$4gtQw?#z<+5dpHCn=Z)zIVraZCx_c;svBV-DgkI#Nn>%5UePDYvnOle%88;7e;s5{0vWpjpO;Av3gtgi&J zV?z9-0DXj~?#2%b)}I(G6qf-5?n0#$LCu=3KR{`lY62$b=OMH+vi$|wR3m1roEH|&uA9}7-xR*Ayue8)xSqHZfV z4J>d+x6JnDJR(-zSnFj+21-&dkEmtcA z<)L~^rqhAn244278Vs04V70)EP2WKgf?Ck-@I2mI zxzBT~HP>4BapK>$SiHW6D;mBvqkeNWy_r*H;dA~R@;%ox|CL4+;`~f=Z*cTnYUfjl zIYIXzsnjARc?^MC z8_r-N^_MJki2OVvyX06S;6*H>(3y!9-m+}e-h#Fg5RK!uxazVsq(k=GaskEtquf0bC^yL76vfDmeE5QBzlL>8UuXf7hoYLGG|AVQ8l>)oe z6SY0C!C`+aZyK8STK{&*XE2D#iAIxVG+uL)gA<%4LaOH6N=MFC7P7up_}PA-uC9<6 zSzEIzN%rn+*DFb`m(ox7GFmg{GtUV^wfEZYF5MV-oFAWU^u1l{!!nqF$`D_WiZkdS zt|?QSf6eG<=V=GbUN^V>`!QyOnDRJ z8xTlp|Aob*Mm_pUt_}O<-Mkp|{3VQK&Jd`+(<+ zkhjiys@r$xXNBb}F24CNqigPN2EeA*&ewQId%z1)LT(2^Mgm70)cGu82w8uSvxfv< z2BdxJM%Q>$Go8*E%kH4Lkf|o91aIIeRI=k;QuQ*cc9+!dSp1CWn5)+w6GI4DTR8*N zOt(}OYAycr8X|qE#eW1!hgq7gk9mTMt=|xe79d6=goO2W3PAZ+Q97jtaddUQD$giE@&B-4yc&R2hW*Op| zxrV;|vfSL}H#uZmU@4l2nezIU#TbWu$OqDCq$@NNs;k({mR1xuveQNiO{+}8Yc~Y& zuB+&9Kgii{k2^9LYr&JxZ$M3vrA|-Gl;w#okMNheH*!ehh;29;e3 z(ce&9*^pS3#utdaG2gGeI#aj5%_IwBf0iZH-z6E}f%D;cLY5<Qmx>H5+Ej=unahI`TW(~eQ+CSC*;)! zntr6pcH8gH%h86Yg(LjEsSTf;t2Q4Cm}nMwcBERKIFg`)Xo{!$k%gsr@Ws?cex?ZD z47SSb)y*7=CL{~KcLc3BB%2~0`}haY0rL`y^snHQu*R+YYs|@ROFe+nsT)pD*7Fu?bKTUOrBjJo z&i4=;l9Pk7VC{ouww z9Ie)`fP!S{IzN<$z1PORf`Hs(0ntK6*w{V-RS84s`SW>C4m$}N8MHdu$m&`OOArB` zGXqDGf*Kk9Qi*^7h6dZpF&gelliTnGS3!^JEK^i#Ne}mZU>YyVA<}E)Tqa|wr(G`G z;c1<92?ZI~uvl^>jR_VAG~fny5T%oro%=|6lK+EOK_dCJ7)}xt%b^S&iM;*&vnf}j zXeXs2FQWHk5>OCbZBs^$9Tkpx7-NHnu#e?={hymUc^gCUr8nrA+l^y$;SEo!_euhN zk%{Ez&&_&ybchn4fE|i!3y@jA*$QDlHf0OXD3~}*&LWa^H z;t%mwkQS|p%>-(-=1Hk4HCpp6UeTn60{=aH+Gzb?v%_MSX!AJzmgLoXnsu?pDnbW* z984C-7eyP{U;$9tvLFcJM!#sPXkqXs`>&X@J$-;hYQodAR!|3(_Lday8wXC&akS-W zemBQyU%=aGcMim@V%eX-7{B0dCIeET9D4o;hyj{JWvu=93#*$4tu*dBLAQVO09wZ`@Sn=gu4viH3w)foI8rP-g4 za|M}UCC*7YuEP_Btcu3D&w1(ntONghX@wPBRH826?Uhf%=(Vz%UOH3jRxorUtD zGt?1Y%V}JnOJCz}+b?En6k-98nCW>kJtv4aXZ~Q_wp=Y%E}|x~iAb1b96h*QlXO$J zO*12)X$r^Sj&wO{KcOQWQ*W0!e#`Bdg6bfEEXZ?^^t3WMG@^z;MbE=%p}*7eW%BI1 zEsiuF3;Q}t@IpMq2ndrw7f7?h2=g-@W@jc(fKI$Kp!pk=MC}|Iu*&p{EJ$?PT|Jnh zbd;{@6?UA5g&Xmd9LjUR`E?0}U<}#G*AeO0n*-Wy6*Os9JKpu%;y7mEPNTfuS>^lf z^|ls!>|Pc4w0vRbr?$%(0!5X~)0mD6sh{RXjz{qk2lO-!j??PkF+@k|S$VUPtEXdbT$G$=*gbd#}D zPfQgq=TJUs{3Ty6VexJ^a@M~dSw={%%sMsoP+RSRwFOaj=nk6+9N2M>PXsD$H%z^+ zQ=r*BJNXzq;q(3yszrVcfj#NNIx$RsU!IL&`HgXk&4?mo`D+dRw|+chtZm$NHA{&j zYr?1gtz_HbR4^3ME7Gz)B0nZ@VBWWZ;K!&3ug&X`1<$v8NnjZ=%_dTjr;$a`4bB}u831zN zCYkCDmDFn$!!shi+3S6_h$l#ic}7NshDH3sbGrOOoTO;XCX@~j=wbwONbn9SwrnuO^UqrWNkmj0 zP1*lr!k6l_^9bhG1aCM(-HOb+ee7LoPs^ykE;2(eu`2vKFvT&!do=sP*~-B3791?+ z=n*I*@Xs1fVbO65RsK_R1KL!v8rC5?&)-mSuBAaNZ+MU6G?1+ikX87Gh*&CNd~H?E zqGvm~cRNhP+6c6ta8NTZ<7uhj;1y)^j z4gtalf+Mvt!fhWm-(W=5&SitrwX^7$-%Bl>ii&8}< z%;-mo&M$-s4uTl^>YrqAC8Zh0$iwbO(`)#EEcPlGuy-`MzYwnU<-olD$~6f&Jtj6h zs^~IZaEKc_!=6jstG?;qq9?`5y11H!kTwj^8b#ae%ZPL+v+_~3a)8PA$thBH?!1&| z^26z|4A6guA8daz{8v@iKTHt|BMEodz*pRT^t32E_%09MHx7H29I!ZxfvSRx^=+Q+ zCBWU<_|w0Y%e_SJ{WMpHPWb8F9%LB}NfRDXF5=fSKDqkk>Jgdi(im|9Ztzb%(V2<_ ziU-Lm1jmhoEm9H~9bpcdK4BA=PP8Laq8~@41ltM3_?l7LlX+Kt zUs7u{UutyPg-ovTXFrlu66>aYQOd+|+fOFnWkx>~`Dv?v^@Uc=bj2JFmQjWG*G!C8 zU?48S|2o0T#mzGpIpMH&DhLY#%0Ei%>LKwdo3=5wcOSB*jhOEnAK>I!+JHejSu$w5 z*g5XYRJwCXQq7Hg5@k2~NH<7pWQ+U<-0eSHN(G}Gk3w_9TnV3HL^4+bRiSA(JqOmR zhSzqX`qP4G_{pD|FN_^;@IjTAzx@qZHK)hGrLC*O`8$u%=F7ndR{I)196hXkhBiR+ z5jmcD;Oe-?cJIfhi&_KR(Z2zZzRiZ^HL39fm@XBfHo3b*vn&Xra|pbg#e>8TJ7H@S zk|pw{XTNTz_G>?P&PN5^(z-|M%q4!OO5?T8F~~RzSkv!e%|Rb4cE94#mFLY6cKAqw z2;VU;wunve(Hhx;(!{ox?Y_^QLOgLB3@s&KZ4Sms38X@@PY4|XVY$0TF#;evtl|$t z-0yiBQrx>);D>&@6)r-hmAJ;8nZNlmKVGvcB$Pi`3qJ}{-*jeIqC8=*(X>@#eLUoL z9&KP?L9?V|>~4o8+KQXfMB#i_DuIiH%KyR)wb;UCXmMh{Xr=I? z26~_u&OaL!C~m93TzN&J#zhxk+gY+=#he$n&gu>Z<%>`FAit|9tf#%Miv|C@$(D@A z;f5N=PnwAEbHo6Yh&LQ+p=4%`7!aRxfG2mf` z2$rqh8?zEUiBtd>kN8?sRU5u*j}_GXQ={ zCi!|^|M{EgCDK}GA_J>O2GVaglv;N!zos{BqUfQ)D>(_8jmOg!z1vGZPrG&&vHOc@ zR?aoJ8%zl9Tms4@ix{I4=Gj+0D85@dxtrm9%^v-`)~bwjQiABvrujJX(+|G~?07I$ z3tKQ<7;e6MsUX)CYJ9F<7^0ie;;o2}1+d#xSOi{M1TmogNa$u$#f_OlH7u=Y&>w$`aBc972m?He(@BvC7Bh zw*_b#<#^1y=nr7Prz+x>*6{bj408R9aPJ+w7H>yuefpfcs@s+jQ3o{3hi~&tPC#b5 z*50HIEp)Rl5rk#>P^9le{|LMMZVJFVfHQL_2s60T+{w*~#HvR6+W1)lz@6_btQB<{ zGOj$Tz{PeOuiy*QD)MmcN+I+{HFX*q%4dW>C`35*YWAC{8H6jLo#(*RdCBym^I@?KRC^J&7SouxU&6J z{d3FExA>g6qjb`3$b~%v+7V-Cuc}3ZQNSNJ7e<1b%$CL%zUBhYb+y2dNo#VRQk9fl z`hRa6Zd?4vN*bMu0=IT169C{SB}q5T(hsih&_0Z5$siK8h&^T6P%=XV?yT=+py=r z&0xaa88J}PyHzHHM&_!e({#x;M33-^I#3w!mP1lb&YFMXcRkOvf)!VAn?haa#tztQ zxUjT~YZR%%sgt{k@e5uUk&OuiVP%yV77DvyzqDyx?N!?Likf79`KK9nh%V-obJN`} zPPkH!Bqufr2#aKZ67)ZHLJTBARIrd?m`?KHIKzz4BTNqg$ zVFCh91bPP?><8H??@{|NHrqowby z+uN!hT>mDg*Av(LN!#}^ME1Y*OW6VciQ3}T%q=Qc&qlR|Q1BTnu{X2*hFJn!Wk zzRD5>Yq>kAt+oqW(I3?)-q(Ks@mTzT`Jg){=f9!!=QytNQ{4lFWn&FtRt`aRa4$b=XF?6#<%_aZu2 zc}~KFj0B`0qbf}tk{)~6ujVC{r+DniO?>+ScFf#vy5M-+gUpWvpoBQxIn+d^J-(BJ zwysJp3yeO~PyPN(5YPX$^hsAo>_OG)SPlAB!T({`uGk#>?23usE_L%_0(maA5OtNe zC5P`_Vg%Wg9{|A`Qrg^?GLy!t1R?(?KRG114ziv}T5ihrTGLYzIKH!Nch78o zwsXA-?0LEss#BDJ)@P(TcbH#sQAnbYJci<8c2aGG9sDU>3^%@+$IH+5)yqe_iE-k= zHdTzECV#Dlf3@Q7mju+qRut9|M>SdMLP(81qo2hje=kUWfa!RqQl)YHn$Y!2Lg;;3 zYXPCa4Tmi#$Yj$IiS~96!KtLE!b(n^`bOFg;>1h7;$ah7zAAWyY#!2$LBU-?IwTmvxo$ zGdEUSC=VS+LW!Ib(@}YNH0RV)Cl3dyLB)gb2?qm)6>p}B$|v`C<7X1d1_`f+?^FkD z^&~(3nr9^fnPI+}48Q6IB{xSzJ5c(StbWynq*!dLnQi2(IAjvL97588v+LHNx>>w7bad7mk0vGky5cs6?5$qB!cvs7OWyqL|ptBOM-MKt&!tz~^a$3aAhe>F@WeI^9XYxpTj@zO}x8 z%v#B*+O=!fu3c5TcI|rP?c-mcZ0mBl(_OBzG?&Yz;CE3Qmn-bbN66(m8^0QU$Bipi z2YYYz-ZYHR)<5pn(VvZxP7f3?ZrpJ1=;5tVME-`{)<7o?-dvgZ1xw;*+_>QFGlEV8 zpHt}-{|c1>{Om7t1QO#J&FGAjwTzA%H!T?Y@Xxj@fp5&>a*-k40ocigyp?jASo{>gv5_wI31f>Tf9uh`*F_Byod&(QmQ zD|&bT;eVnx-l13F2#fKS{IQ;6ThTkUpR|_W!5xnLu9le?Z`rObNQvOMaTER!{6jPJ z)b=>ouCr*5B!7(m&-DH{t$CE4-X3Myl3q?;bD1saIm0iNh<<$U&*>}z$vE4gC9U7MTxA8s0A3Y7Rrt<*(G_|JXn z|JvF0($6Gx0xTcD+4#LYG;QkTcTf7`4RUUk>|84cA`1m&1Iwfo9~|%ynXUz z11|#~ll}-K{QMTbEN{s?$O)5CPbYrxq0TOigns$?MFPJ_;1>z}B7t8d@QVa~k-#q! z_(cN0NZ=O<{33y0B=Cy_{=Z9Lgl2rMj#5XeBh=wHYjY1&VAbz4j;h89&CFZ_=bvV} zG{f7VSv6HB6AAl`>)>CuYI1%;_}~?p4EI5}wiDL+_H~zKy26oQDS*X4CV>}A;3Q&# z!goqeW~?#CRe0oek>~e+&tRS*s(!+)ge?d}v-&@<_bitkhf5gYzcBov4A(NeU4{=c zyitbRe1Pz42p8^cybz4H5sYUc_oZ9Ua@EpV^g2B<_TDdYTx%2f0n+YjS-Za81|@tA z94^K#ZSDpN;P>hnb*y@uI&SQGu$87PSa^oZrCOfu3By~#?@1$E3?dAkFv2gQTCwm! z{Kbze7S6$k{>Z|JW`s3FV&Nc@@T1m{jcWWts^J-cB*Oy`j)f=UFB4bk~JADh} z`ygZ&jwt10kV}FOZw7dV1AZI$68sUte{jInDe!iJhXCy9JGo+ZUN{oURTCSBnx3Os zjx6Gr!ILIwJV)fNN#x%E`Meg$Qdlz__Txv<`DC_f%=X3SlF`>uH3^H*snMzj1 zeyl*$1mcb_NYR)?8Z&>EhGwl2`JO~&zf;Z#_e0KRx^XQE+sqx%y7JaTP=+X`ie<>Wmviw90 z4h69fb9w0&$5IDTqnI(7+!GCqYbW%%jJ;C!NINTOR#lm-kInmoD zgMEqh7O}<%tl%9Iw4NZJ1pQfpUMJ`(fP_wHC7R|AkarmyZ86G-h5I-niKn9^Suhww z{}-wJE25u^DA}T%;yXn&l{bc{EZ@iSSMUG#qPdI+l|Z0q{smexUsr-l9q^|qa3_NA zl;ChSwlZR256a?3Q2eG;p=T0HO&0oZdg=wgW2H4@isz+repH8?ZId~Bp(P8FJt;Zn zE`hK(=KRe05%h~>LA1`>h)Vwdn}lljIrVNus9EmIE+q@YNvJYKNXYYn6roWh6iO2M zH+2~$2#qEoe=27_bM{3}N_Is`gdGX)?tq_7f!zdmbihkf;BPhpeB@(EL|MASi@!zlc^Oqjw>i z2rnSwIFYg_nZl6@HJFU5sVF#c#jikAHqJoubG~3Rc#Q;ILr|wAi~pv*4q~&%2nSj6 z=P_+CIm?-|M=Iwe=Irtxavp=`Gs4T!vEttxPu8;+bAI?C>$&1Z5S=|0&3e!2lk^)R za}zLHOw!K@;0XtqhfaW*`(Xj3k%cKbgV^~p;eL@oJ1iEal_fgGgcK)L>%qy*k`tN@ zv#$jw*PPDD6@m;6JDLD3xH(%S(DsXWN>TkIss8kV?D!X=NZGtM5&VS%ej;T}-9Yf$ z4!C^^TP3*K0jH(Fg#9FCKM@7+4ghPZ zZ~&hm;a?Me1L2eo;C>0;xeoBF2&aw&yqAR65q=)wFvkf$SHfQ*yba+zWJ0b!MnPCp z2pdDJD4cbMo%Sdf7E1YcAYeGhcQm1ISedVU0jocT%ouWS0wgVMauu%S(4Y3^R8daK_Hr0l8V( zG7xP}Jp`#U_3J%M4c^t9ve!v@N2Dm>7^+fDQ8x~0Mtbi}nf)ao6>b87LCt9oIRqYd z2s}UnZ1cu;g^|Y0YBr}9-IrlnT+(P(=PO^zb#?IPWI-6Lm6nKTeWh3oAr?a*D)T;r z-#&U{15pY2}?DU8Q*^-k*LcY@+A&Z z#NR_$>E_{tEbJw47by8*sCn*DNv&HgsJ$eqg|ogx?)wg*HLnG^!oBgg5ypbC>Ul00 z`+%QofL<7}$L`8;#kZlV_ObWT>}KY|6vlFaLE-ly(my#A&CGjJ>0cqe@gw`K`E6Xv z>UWjZ^-()VS$z;I)+La7;a*UGiW!H?qI;(@u10d>v!L}G0pc2WJwUZrqDt{~vY56h z?4u+WG4^PtCA#Me;4?m|n@di0*~!Hh<>fbP_z8s3T1%_Y3O?f_rF=2kR2tpx&^gY~ zGFQ<+dJTt-%Uqg;Pv~x4EcM-?61|2NjBCyr9HKNy?odW;QZ9?$mya5Z z|0m_i8th;VZbuE|D!n(j)N42wxJrq5bqZ050Fg&MBx1He{5M6MrPpvSbcfnw0fhjU zc?LVs4 z4UBlL37y>P_7fgu@7fLV>INT!54$M$xk zCr2qih=HYtGiR>WU6*gqJ|_eq+Tld>Z>B>l>-8!;w|g zgt<$QTMU!<`_xZX=7e+6?#b*m%$}MOXt{>Y)hsdd0;d{@umUuI5oy9O7vR6 zo>0QUf>e*8oo-grFgGn);vO?hyW3|Rv#%_Z8Y>6-&Di5<_i1=$N0j2T9@gg zkdBV~B>JqNu2e>|qGiY6d)6W2Bbn!rli+DRj{Wf8_qat3r}wziayUJ12gbG2jf z%BWV-Wd9D?AyO(T%n&oqa;ndnhI(n)Y!0=ek4_QwJ8vVGbj|~l%EJD~oHj!Je*}?~ z^=~V3{9lS>HmIID2>+c(-o$8fMB;xcDU!}oB*(UaJH2KAv{J?Ft_H2HEM~kYMzkdwhyF|GHBO~| z^VwqYSuvUgnBj^17-4D~r|Il5m$TbKGtyzKD&9J|YXBCaYoLluAsBnxTWomfK+f4q z#q=l&f_b1B>$K=s`PM*p)b57)K{JH)W_i-w+nb=8IS7o+`X|XP4R@UVRAFBNEHg|pT8S_xH1`%YQKuHw&3YbU$U*7hNa?*WTFD)38UQIb%L6;7$zO7? zaIYxUZ+z)Dj);QOQUyPeY(Ky8Z8G(P#a&nlpLa$-9 zAybPDPv4znYnP;>l+$wuS{bcqi6(BG37y1RXhvvJ%)3O;x4g?V%OXFT5m*-UF2@*$ z3bRNZkgAwhtYu+oN08u(c{%rD30s&ji<`oglus~6)30>}+iQAhmP_$$Z}+}t7HE1T zM++Yb?T$BMEnK*Rt*z>OjI`dS zZienDMlLZVp8?!k_!)*PJHy;L*&~blj8>J(4Z^+Q^yOoAe`J!Q=W+78!yEpr`b>mg z!!M;u#$i#d^ScjLco$XN{*V!k#&aqH4@d313hyJDHG5HOf(JH9f}zpq0W4axW@NQS z+2o)oizAJf2u>U>Ia2+YSeFB#aFbwbaTJw^Z%C)fhu$XGk#zmmlx%RTlpg}8>fCEl zKYu9KDO6cKAWz?y<7sEB#zw%HuN;bs)q>XDgrQr@{+E(N?<7y*M*;R5@ruBripdWd zTqIX`ACAWJDgr-K+mrQ9ZA;|LnW&dilDUL*ziRdX}2!%H( z<*y(=)%r4g>%8;fGg=|WpVj{WR7dN^JP~swa344z*8i@XY)odm4s9=nmAQ(!Qw{P= z65%{m{~XF=_I$tbjo#l_VhGZBJ6IMBsn+6j0W#EFzob1G`wOykR!RqZ7Xm%$jT{V9N z;7|!XwgIhX^}Y$Q_+OzVpmckn7-`GhRR!r@gtCMb?4N)u%`x>L7a%R!3l<{hH;;;G z7X^H$DmmBZe5c$R0r8h#Jv|INs>t} zGsq?Ry&(&sO$?39Mra2^x3La;k@;3+uF9}CuZNe~h(mW9hgJ6v9zz~gSQuz4ME7+i z*flnYMj93QPPsVxopMWNU#KM0SyXQVupS$T7Q6O$%56XpGU`kEZu>6KXKu4nXgon< z9cdiJpai{xQhqL`5>S0yQuSeC!&04uQ~KV%2ZVj* zY;ZdAQdSx@Y{RWtP7QwR!XJQL81Z9m+Sx%w@4D1)Os+tN0-5q-loh?cz_Is`(Cd1u zdk??)y9-b-iKE9^y`Kju`)!HaORh11+DC5t*yp9^(`HE>Q590Sw9h_n^PGsBM`@5w-1iYHd*&>vx$Tf@#CP2#8+u zj(*^9fM$9tJnnrO*Dhw}ut!8Avg+U1F3IZvpn1TlGsn84u!GnX5J5iBQ}ufe+}K+q zLR=o?(U2!y^hPO<6k;h6p9UhNt$E!CJn1VqU{QR-!=m_RdEAnDK2%amSyW+K=sgG& zD2v-b1S;UK$mTP%yHg~uv=Yf=AjpwC(to;0G^^ub;A_Spg}IpRj0CKAz-h(uD|8=*TK z!K{&pEd`SWC3Tu$E(Q?_#tS-VpE6`~`pU$YTM1@35ZEB;jeJ8(F#zHo-m?d z=!yEt4OW$xk`SDDWXsAQ@jE zfTDMA`d2HC|DL2~j=URVw@75+*uAAWVTv5HgPS2i3F+MonIRz;2#6@?9FP*brE(4{ zYEHSOH4ELEsmzj8KCE#BWIkF3)g^)T&A{>$@Rep@MGE+Y00vr=jxKDXQ2SM+qA@N!sqAAyt*JI#=tvFDNLnIYEEfnO0#+#CQ|x!Pw7Q28lfjX z1RAUI4YoZh>|<}pG2}qRv}1qP66i5kaIW$gU)ftza5QTr=%8z{53_BnkmhxN4x@|e z1O1x=O?)!nU)XZsZ{&2=1KNlEn>;y6&<}c4f?wIUgA``-<*1~qR6$YQk;F~hg_va> zvqPyAQwj`5)1pJq5ECj)+=YW-9&`C~9X(T6q9YL|WFcd6-J)R_$R#wrCb0b%<|47# z59om(uqguyk<4kvW@|{wL)e}kLQ^bM_04Xhk`|D^WWTlq69~r`*1%Y~VO5**ACLw& znmX>Va$U;8Iij&c71H5CPfodoTIx;d!9jXcniA%s4Gtl&O2)NxD(*s6S)I`a`fT{h zvs_ATzbxCgmUC{$Qqc4z>H z;I$yh>jY-FNoKG_hK-`mpU>Lfc;)|4(ACU$j?6crMM0?0o3K7zc7{lk>vn9H!x`as z@5in=8&X-&8@8!gN!vWUL#fz^435tb4imb2H7l^l{;7oSL%-Skdy}KLQ}D7fvCHcU zUWKaAY&T&*=6IJmef-&H*~j7Nvgf`ASJhOE^!@CwTL%N+!LH%tz8mLq8GccQEryrL@V^*dEW@8OT!FCcX)`2r7}S_ORfZp7 z_zoF&3+Vz`eC#~HpQ z!ERz?nL{Q@4Uo19axJcwil)-MwB z#C@Tgi+#pU;~<0zFZ({^<4$=H8?K>!*b6e&*$;tBY)He%+Siy_7{ShQ0Ik+XE82xK z{&2mAeuoTdtPPtM%|ATsDAdk<(Ft*a;2m&~gCG>|k(cSyXwvizSzv;6ZNIts$pipDksFBxQHtP$q~dE}ry!PaOuHWYZG2qp$8_6QVxGwb!n^C7}B zk}UV$1r5Xbc#pmIUziwcG4;U&J}3p4y4uugeCP*qeAr5B-JEd4iRQGcQRBn(1Buqe zI@QmL>Q=4!fS#1zWU%5$Z<62&4iN7F`vUL<1HgL#JmtuqwMhK1e^q1K z1l5iAi$6X%|EUF`D(N6tNYu`3V=-Z1y%_1F7u3SA0vSs)8a z?V|g0+C>p>AKjPLt{#vM?V{o=ehCkicq+LP&s`2{mu) zG1f&tp$vvW2Ajz6c2qqr`bAc|ZOZCV>Fo~BJx&RPG7670-itaz0HL7{vCy1* zT*%?(xyOYZhR!`M!2OY1o8E3J|J@psy6iOv7(+KhL3Z zD_DJ9kP3}z4`^7Fjk`sXO0J|rzCiQ0GFBmDePoQRBW>YZ$c~dUGS*L~u?Dh&B+IdO z364bx_V=@3ii%3%#{=zMwV$+v!~sd73f&5C5pb>UK@Q9$KzJi5mgZ$RB6oB7a z!89>liUR=O*uNgz9xGHgGP5uxd?6{hPa`pP3k0c@SJHE9)$IEceZlU6zL57KxG|UR z`vSG%nYK3|8*kwzoD3&pLSiSJ5SD;tGqXNX!g~Prm?b$r{e+^-+lm-YO*H_^kJE1a zn19N9or?jSLcmP+eHGRQi%|}?#m@3$2VJ0u4Dknng%xNZ+ox|h9NvVWwV6TaT?reJ$-Q8btpuVj?2vkaf6zp=3a6>}-!5HeV z8xw86G5(;THDL>ptOneln_~XtxrMBA}Ig2YqKX%l7p=pxYOt&Jcn9@C!5tuE+K|2&I9wfN@VAj%eMC)1~AP zTO~F>M$DcDRK13UxP!g09AwCs*osa~477kh{Su#9n&WqWtC`bsH1p;>&H8s4CHxsUa~iMh)DqED7iz4ZBTK%fMad5V5hYJ1{=R>rH!Asd3VaT#$aCYEVH$5j%Bob#8YC`BCF+veW_u9R&O_R)R9cafakIyW+7}?baFbzC>FYH@^#^Zq)D{)Qvm>b# zKeoHyEVL7_RAX?K8K#OsC>yqJfb-qW@Zon$+?=D$T~7l>OuekkJWyo1W)AM58N%dauNagt`T3u&roCz#1>SFy_YIs2s^r3Z|d zu?5SYll%=;=oz*)|(W7^QH6{bxk0%CSrK!{NzavQ69 zkcicP9o$4Xgtwz`lYJ-JL*s)C`s@Z*5Qju(<2+*LXEEaeVUykF6(kd8_C9+?uIqKK zNA0oyVxE}2_8(#bx|V0qOXvaX*VkLK>h~1tw5v-zU{Q!n& zxSy!*h$Zk{ZuMK<1%4|~b(iZdSF!D?1+u;&pBlA4vB<;~iX>+-vAuT~Q= z6si_|JoO{oV8cDX$3w3>+%L0dybYw(Z6KwbZ&qmLSX2$|ojmsCU4|f?sy=IQ4uafN z;hJ;lcmxdZBJL@yVmcP9t0wY`Q+ebLXUVYEH9}?RZq@eOH`_vTiz$htOx)`?L)9(( zLjm)iEICOIe*u$T2Z#qvG(dtz5!Cdw02NBmEd+foK^IEU7=m^PP-u==%r%~kJ8GT9 z0ED$T=k2zvRXW?oG*MNJHkWU+pK2l>Q$)(Fdzm3ik- zHl`381!Gb$m3ahO;?9=e5}QyM3Ke$zwYIMQE_Buq=2mg^7Y98s15)_*AzTh+IkYED z@1jJ6OVb5^X8-ao0XlmRCsFTKF@c7b!(L{`!dwoKdhLfgWV#x0#jk7qG}g2)nj1Z< z7~`_{oByOaU{8LEhB8k|_W_``8w!$hX*m+&|KJ((b3w%LzN*iD6(%Sz562(mUWD0o z8i+Qo6Z)F-0j4ZWA)A7{o-kUJ$J;G#Q4Y4W>@-nS?-586I*c0p(HGk$C)1eS8why+ zAho`v{(m1X44-kro_8me(|XMulqD?0o(KI!O;dlZrC*5&pLbbuklF8^3D1M0>QVM% z%h{%1+I7#gb+w+4o8QOL5A@KCcQCrdy0jz51y>Xq2q?8(^yBT7@Q3U~iCD5fVZmM= z3AP2KU;EHuXxZx5#oo@{a)Y8?+27B($ zN%Qec2u)lHv2T1b>7?t?dakIqH6#gQF<~7v?h>9J`6tzW&ig|%vRKW^@wocwGk);F z>t|*bh~fbDHu#}vkOY-jhEIUqJqPxQPyZ=hnb!s(zg4q<2-d0!d@zz8$0ru%U;f0x z%Me06#3X%2m`Hd}!+}w@MF*z!9cuN$K%UjzO@$W4-e#wY@{UzNf{-uMEY+>`=bH}G zFVw7a6@O9V)ZLBeIQkZfCAX!$rWy4CYeKf0bUV@Xc%rO^lr9KX)|F>6B$swWxbC-l zPkN39zQEvycX$dA?DmkKI8%Qikn|eXrL9uF4$a}mW;SA2Wm6pVkNb+YlK+0--vj=4 z;KV=nDzC0s+?!>U9d94}oo0=6Yjcl_8eD)H6lg_TroP{pC+xez9jEet82tBglP>t* z(Te}h&HVpGxJG)f_(v=L#nH*3Pmq0V9p3?*)*Rolh;*;|ANj@2p=N$@c`V6qTd)cf z?iBV`CdK=Yy7Ct6@jN%go7<8-bPhJW{lZd5ymdh0T{a3hQ>lzt9+w;Mjv!XJX>JX1 z*>jX9qlu`pvfi*30TMq0nOe+OdOfnRkD1{Y@z)SNtnuvB{9=kk>=5jXUxl^WA~bdc z3bL_FnZ;a~Nk4Ao9|V)6fm0sO1ztvLJa(FReluQ{5~hW(*JriHW2cHY@gRke&HGQI8W%Y{o5&!U zq~dk@M|=yB&CKq1Cspuys5({vUSw_bBc**RB}1n4Wy%#uIryh!p05BxoXy8U~RuXH4+`_2CSQ7~-Q4Cw7u>`OzG+BYs_02AztcB<)lv)}o< z8r#K42JW&GnVN|H{6`6#27YgTCp%>;`q z(yZjng592wW;DoCJf(M;avG}Fo7zqvYg(dwm2TJR!*J9X_(k=zycp^16sn~q=HgD7 z%Qfu^E@6M?!%-jre+0WzLtx)<#pH1vY)p%zVa_$!V;SIb z&AtLR5Vev+TFGW^wkj*Pnzh>nQ@Ehyl znXn&wlujq8b5Sg=V>^6c1{VZnKQJ~cD;ue zs9)n{kl;BJlcV~hCzFGALnS0QU1$nP*U4{+7Bq%s8KbiG8g{^pP)D4!^FSXzoXBuB zc5osi5GmY?@m;w-{x0a)d7yZ@KSVz;1I`fD*y=Oh!=nO=u&i5>^n%3CbgXVlw&wH5S>I^kcLNwWz`NF3sO)G(MT>r!MhRCmLZbF34`Gy(Ts@IOTg?#-s#yK1j$;6?py0@% zx61xuMJL(r<(r5a*y^z|EQ}zRY6P-OZ-Z)hvz0X?HtWZ++Y+i$!aksB=7{Am4VChK zh$w5$M4}QdK$u1Lz&B7*@1-gFUE}=_^`zUA%5%w5XeRhU9OZfKBhXy~fH63QagrFl zfYJCXz%Nh1fBgjDcaok7=j9$o}vo_Hye*0g;i~0l+Im;so53%Dz5_3 z)x%A9D;VPdrkw&z(-Kj&XiI1wC7M{L7Ohj}jl_6{UV;wC(YN4WJN*QPqZgIFWIW-(i`H|!R`j-}T)ziyVjOu%Z=)F) z22izo>_d>0&wU%vc8RkIE$m^^!z!o)`go|lW)90~%qrZ}h{L$U;DA4*#Uf~#gw}Uh z*7UZTF$@&yPxs%Sw%>0K&H`4-zkX`E^xU^tFOR$#ugVz5aGa^@AH{JdD6RefO{GQG zN$f#zFHZ1$E?}t8s{rXgww;b+N!My6IE&D+yU=&JJa4~QVA+dAHhE@KI5&Vqy40PEmquE{&So^i*|u>M~hea6z_ZRANkB)-CxV1{<-KoDv*uRgWwH+ z9h}LHfI`sMq)WgT%jk~$&?H@l{(&8%FZfcxm+&ocKke{B8Y%?m2zGf4`y;?q{U=n5 zrIp|YPRD@I5TaV&{Y_}`*F?rEq0xUEY$9H6-0>9j=bl=Cc@?hMK@_MrH_vNv3(ou`8S~8sUXC>v6JkQaDY}^caS9oijtrw+yFy<{W)n6+D*t_m60udp@J5xo6 zSTvY&27f;kjfKKKjQm>Bb7n({v3EVlV&H+cDw!sFm5}u}_7-69MH?J201lQE?LpjU zUWcBtZHZXrOh6eh`Y@xfSiq6Nq%BC|{-*smfSi$Wog5kMg}xD8s7hej_lay*%Pw>; zBJqjn)#wXP-j)>M=fG@XV+V;e2uR#ufhWOv`vz}~6$Ex5p6g9;jxpd!O>X;&}@Xpkyc;J{GNn`FVrGdFaZI2Oy3qD>uso zdbE*FCpI3t(n`?B#oeY@I2Rz)8s0MT43X${hsGpZYu#h5MsD3-*y}{kayr!)->_3r zoO@Meah+1mT{(($GDM0#_79Mf9qFz|MIUp4B088Kl$zn9gB1bPx`X{w3}(^6h9Nhy zbr#v24%SIrM^N zgyAH>j?$j=38l{4)_JPZ@%Ubyz|~5QYegq#HNr_qbYID=?#0*usZKM zylX}iH*?FtLbJc!nGfhm6@+p&y z09?zVh@Gh5f)tYoZ7WysY-lhd+Ft|C?))^Mc#E!as#xR#v!%WkX8qTGqp{jG05o|p z()}S!LEa#Y7-&~mEkzplOR?GOMn}!=?(E0!v7bi)K6flo^zGCMqQsCW5kBvR;B)a1 zYEPT;F92e!zjAA`_vE3`T8#Ayq{HibmUNZFo8pc5jXuJ>h62rN(P$(bKM!PEv`1@w zsvpS1zB1n5mmB6vc?0SWb@k4l(aWH}vr!|8L|($dMgU}a1_UiuHdzSxBa<5-y3?=X;T3}L7N4b6x1 zy&*W|d7Ep^AF)&1aH01Xv=#0j5aFIRk<1`IFn>6*~Fg_i`C4)EtE2y z1PzOw#Vif7?;qek8(QIasr0u}=~&HZ#%{X-IN-J3-i?6A*msKXf3E-Hd@hBJEu$(o zoh-R1cj6Se4fGUhfeJ5<6k^Sq2;PT17VP_GzA+kaxtTp0;fU^ior7A80;Oz&R|wh2 z8d5BOLK2p3Tpuom6`nbp+57egUPM8;kl4tr#ZiFDT7P>l6ap@r_;J1_5zdi|8Jv1f z9olWxUy8lPHlC!!`Qq@A(kpx=5siB!CEwu67rX}C4*)9~j^sf`_ODT#-`yB+f2k(6 zsrpIxoKNHopCaz;r-{Dn7@eX#o}d3wGuKw(D7*dDN9h>WdNq%=;|D>4`QtZVS%e_H z#5k5-nrDxLb>xd(pC=MAlvc{DMBn2{vH63^QnBWF+0PU zzl0(3H=kD$G*d6b$C$s25dmh4=yUKqPx&J(nALbTvcrxxn*BXLJZQL10zkkNtv|#Xex@5fy_^8sm=1o?jm}4__;Ka}Td&KoEx*KT zO^4<`1efAgzk568sS3^N`p)whqXt;u6IvAXI*+j*%~3rtk&6@1IIF1PU`0J7Up>Ui z$VW;U=Bq_A-meF~^+T*){FV)|a`~+?2V|3m)pa^(Cvw;0JSIkFXe-i|i;I<*vdqvD zY!fd-&trWX?+3%BLBBDgx+TM^H7r4H!Da-!*Z6swUnFeSm&irKJbZXeifBt$s?eeyCNSAw-KofkQ2ey+vQnR+57(loNmS z1dO)W0~~Yg;sLXkBY}z&Z89g%9svX17aQzof`t9-9t;6FqR`)o%O9`#Ks|z946=nD zP{ii_45wc>&zSXGC!f0WrPp$-(ByN+XuI^Rv(Mj@4v&=>p>2^FeSyQvz6M3145IS~ zL4rlle1au&xpcN>&djq{E<`LgNN~x1o!Bk1CfS3Xqi-19LK)+r9vx@sc+yq{LQ$Yz zdBjl^<@aN*ca)7@n&S?2@b*05HNK25#C8Ov#k%q*UW&N0CrDRTNo@WluGa!NObh5jLrd6seQ?DEE7$N5Ra`Al7T%8$N!|Qse1&}?)=FHTLAWk`W|k{B*kcaOqncgl=kPTL z<%$;PeQ5LMY;#bK5yhQ@ipvqlyL2A+x}xLCgXc5053%~9gQXqfXCkT^hg73UpLwn; zc)2+!-+&KwP*>w&LxoIV{g{@vrl_2j?8!ts2Af;@1Js&s!s%-^UR3 zDyuKe4Ja#dX8S8PhZ63FbgiU5V8pQ%vI+l~sDq-5z0*xx+(O|*V%~Q}e_DaRK64nl z1hiKjyM#}436*_f-S*?`vBoyh0gfOgPcYC6InXK4x3KRp3eUP7-2?nSK66wL;oMyY zqREV6t>s?lGe-3gdHcoZA=Mh?j(*k68s5dd{kSpWT@bRSxTD{6vpfZSYp~>?-~>a3 z*Je&+<62O?;)#)QC@yH<05xYjp=7OoQ-qmrpSv^NIhjdIz8h=pGX_t=Z_cy}yvDtG zP+HZ9<;U;BqFP>Z>eFI~0;K@@4Jg9~K(_%i&m8eCDuyu-s`44rHO8;M|(ko#c=V6bY6ngj96ckEZ-`M$`_N=D=7Y2Y58^EW3L1KU) z(b9j3^&;~j^O00$x>iNz8UHRbZ6s%XNq;TxqM3s*Jg?6%2W8=t#l_g~P^J+T3KIGw zoXa6$rlUeRJ|n^{QoX7D^d8VJS?07npE)uI4-VxS5zMjr9Gn+hoskE_0L>VQ??7P^ zufV}8urGg?v(n5wa~cN2$UNl5{ewXnL{qH+d_dF7Ga>5sCKZQ(MAYv_^qBp_J0fSk zISm75WIl5C`CsN-i=2Klo%_A|u@2MEeI3VAUGIE_@{VCwa%vYmu2>kk18s3hV+SB% zv5g(z>F2SoV6}%itse^Pfdc!HP5W+;D~t%sI@SKE^J{+dBCqjM!?c@(b~?I8@o(3J(8@Jn2}7m#wWSndHr{(!xus~cvViaIV=ht?^*+o# zP#(VMiG1!__PsM-d4LXqcnADZt(&PCyw>ouAg$x7RV<^kauCHVKMF&1TpwfS(T^1W zVKMh?Ke}7-Z#MRjjdwJ#ry9G}qq{wde+!m3z67SEMp!(%SRTw6xP#Qh+rAPk<=%#J zJQ*n25pciH84pU%@7}5P9XCLEbiKdt98Faojj8z`Ykj8|161cN`cPGtZdCJs@aF&I zDcY_qje3f9C`;GnZDc=#qqk%0{Q>uORIoWBm&Y>1L66|a$dh{5ZxPy3^ zvQj)XsI0~$FDwKx|8hO{9kw*YvVRx_Y~FAw#zVz92v>72OFuSY&TsKv;=Zh&IBqaO zSwOQ4KD|kiZsEoo<#cwP7HzuFU2mHGFpufSvS;TP?f?1xV;fU^O>;~t!x3gUgbckzhU`wLeDqklVUCv>#JAmc^O0H1a-3xx!A_wMCm}n# zWf{LpmQm)E!Ed|GxTwr5f~{03+h&UXmnvnM%wqD}ZabXb*4lnpN#SN`=1RPiZ7-}( zcg6HR0HOMj()GOzomQ9Lbo;FAmO62L`un&IPtDvGXLhh#5L#_IsP1 zD&@(-6OqDAef0+5W0E&a@{{z4we)7RxWD0?|I{#X;&wf5Y{DVrG4H_6+GF`Bp>E(s zbL$2U#_yeT>*mb|J$$e%=O-pVU&>EgGys4X${>eMPgTWQr3V*ct$_ zMZn6ESTkVckOHcJgfeEA!3ye}3>*ND?oT%YFQPy=h`q~zFj3~*ML(Z4Z-$KRld%dJ zvt?|Fj2)D*4uo3meF`OvZ-GScQy@k+DTGHbKUg$k^R7 zwoJx?GPYdCcnuUZt7NQP#;Rp(fs93DY_W{h%h=;G)*xfg$k;9!dr`*r$=IthX3N+c zGImhLHpp0$jBS-M8oQ|byE4Wt3&cKUH7FBzLCW1J}<&nY4{P(!c} zDhF?^QNxFk;8udON4))xQ)2ai;M92oKCS$fxI;lr+>gi?Cyh`NLe0 z)(iDA7Nm7&_4G)7=m7GJM@cwuXIi5XFmRSe{7*^&nV5u>C2?jXA?z{&ry>bimV_)x zLfAb7&hjKAl7v(zA?ykQr#=bUmxSy}LfGsA$4)}n*aFg&gs_PPge@;>!G;wOwzq(= zIR%8REFf$|0b$z;NO2Ov78MXSn80B>3J9A?K-hYQ+iyOYC8nW|wCER^0qfjC|D^Bo z(V~ORHwxH4s9CQJm}mK56+^rOz%y@2`i&gykQL@Y^qK&<8O18nDwfefWp5O?kRM%R zES+qyG`YiJEkTQ7T3W`&HkR^5x8RjjlM88XX(jWie6hmUiqm=1xJIjjy_2*x z>y0cr0&osPJyQ34@GRu^lg%?)wV`b`!npy+D6w(m4KDU=Bc-v|o0s+rlI6qMw7 z3;^6BKQ4GtYnk&OM+?ByRJ39CK=f)^SG1E4qo9)ARx^gc2uMQ_Wjyk0%ARdjvS;IP z47jmP+;*suagNXQy6`I{h_Ol11$KJt z1Q&IP$bns-Bo|o{2yDF>n3KYsn*>@JWuTpx!frvE3HhlUDcX{o9;qBD-ep2TDn~Q_ zxg5bRt>-$Y{f9t)DF#|5$}W(BGj3z6A#dOa4OawTvzQZ=1#bS!lerr-^v@Qn+EesP zYk%?F16-^?jdJF|d1wvqe)Z+vCt%nkHXq}Xg(v3aquaic`CMs1H|(D*7JfM0FrVE+ zh5HsKJ`9WVO+y?TgoxUF*gAS3Us=5y{)rDTcXJLy!Y9bZ9tx_QU=S1CR{q~X#6*Y1 z+X28<&G}rw8Q}>)RP{Hxa!U&-K5Gp*qtkaN{yCr;{X7G&<8~)b^fTO!dzO==58iZn zHiid@@PdgXu@4#H1r9*D1WMK{19flTHFPQ~RuNz*kxM@OpIx92w9fs3=w9OomVy0P z$b{=GJUE&0GH7xZgj2fwa|j(d$yC66jv_IlsPxw8ehkb_zVrvhh%EU*bK}33gep)I z3epXkaQalj^0eNO((`F~0Adwmp*6b#|0qebGHpDEiknELz#UjN3;Ta~*~>{bD~S)R z9Rf?QA>Xc2oS{CQ&|?mvFbf5tsx%1VVz7Q1vDpGM-U(@<1EuzZug7HbvfJ2=!#7&= zTd1E{bRPu%g}-E9$;eWVuuMea@$M(cOcY(}2FQ>yt;*qzLxlnO#)EhMg z;HY$5Gt)*TEe-M|b*6{v(aNmB+oR%A7K(&Gm8SK>mk3d9B}EN=X`fS`}C>D6zKYD#?*3)Y#p+z{x*fpwk-W(mYTuy{l#Q z&IP1J>8%Ql;q}o(&S{037BjUj_*H>=T1}l^a$}1UAOqIVZ`@wtH8#M12(K$dRU!yD zcr9v(iHPW4W1l0_n*<`BIfEA9aM9PpKe;i-S5&7g_(E(B%72v9Qw(anOUmJ>$)-ld zIr_Ao@;|Pc7RRSNGsdn6I0w5HT`>SL9Jzaw%UATxPf<>w+t$0WZ;)Jxu2BltZz z7mq8E-&aMFlQpqUKTgKpQ;n9S5_S4Xf`3pAK|1tE9G;MjxNs*r5Zcc=ocBP zbz2Vn_GhX+Poh8#2|i<;-`L-n7m)fnU_Qov;d5_>!e-Yv`Z1iql7^=Us5j*Kjgk49 zf&ZBhXmbB(E-VKRMO&0%yS3N@OW14hjg9uo4>+Lg z*1Q`cCpTzr_LvLHkkeyq_VheldbzY2-d&)c!0AHY(T{xT zZ^~Iym>3#uTyqth4Wq#RXgtn%nQyYa{O+SrNz%lW2U@LOI4QfwejPZ0bTP;s1fSK5 zHx!w;6p1i*CR`!S9o)1Fb@mwc=|?;5731(mYSO+>+E0An5^o#8c)4DqP;hJOXrh6p zz+{>NdMUQm&QN2*UP3*w2ZU=0y?rGQa^A;4NrUQrd;*QA40oujFE*b#jz9RP0JBtc zHG9@;pyX-{U_WVw@lMb6(I2t<_9XFehM^2e#?hX!Xac}D>G0;M3$6&ld++anf|K;Z z2@xd*f2?4E5XE+m5$9PG;c3_sOX7&O1N8 zhJS$L>UjtQ@P;knO~y7=x#8d|?$R`4i(2t`Vlo76Wsg)V79{RQP(R)Y8TI2Ay__~D z4fHD(C+-Efu}f?FMy)Fs=q?8C0Rq?ucfl<1J|4eQ^rq{Kb%Hx+Y{A_ahr5Q>+*J$i z4#NL%!}@T9=HLzWg1hzP?$6{d<3_cjJTWE7T?E|yi`+%Y^fYqUj%*M?@G}(wH)aNC zCA?{=gn4bc5pTS9F8vdRI8XL+h`;6mHcrBD6WMv5wOQV+`Y*P0B8w41K(qeLPe2@zyWDk{;N>!J@PDIX&?2iSXd(@dWw_{-dWGn`FuI zq0xgB#hSU^1z#aSq`STp{+3dx$KH}PZW)gqR8 zCG390mLrBP>1+Y1Xku00l;$x^YL~{MnAr0GJ1%*(uJIyBtL!dFi!jvCHV1L~7X7>Y zQw%tdDYE)Yp5~AU7+?6{&(cbCF>d*vA9b=@+6CvHaY_aS#_)Cz&V`)t!L`wt4)72w zo94W0s1@v%b5NAt7!3te-GmD8-kD{1Q>=m1&34PctQsic?){dFU}ca(;ubr?3)A#>D;@S%6$2!@q0F4LI6p+JI>KzI`B;&&-*$ZV(yI zh#_{&DB{o=zDZjtSp1hqXX^}NftiaXnBRIuOr$3NCJj7~p^G`AI@g98#;oHZ*)%;8h&m)%4g&yW1_8lh7xp--LYTT1wGxy}+^|;(FV~ zWH|U@Y8J&rH;ZPdI97puC^g?_;_|Jb_VAf)47ETUGgEtMvAIdR#CGp%-t=pEBnKm6 z!JREe#Qg)3BO>^oQ%9#RNoMA*rywy)$0uVtc23GQ--jzaGB%z825FzS8vmFxaU$U4 zn;d(!{8#4oPyb>k;|(dLd<~#DE7=f3BcjGJeIN1g6Vq*kP*NhM_i$iH9^D))ZVqbA z!2wPXl^BnpI37y{xoaQW`V(G7orTI)6ZmTgDG`W=G&f*p|Dkt>iQO zW}L1rz|lR(0&j>_`4#VX;^8_kp4IhM;l?&K8r;;0;5p)8f^+HWuzkx~aVIPMtw_cb z)S5N32lt-KXf!+5ta-c!dVLu_KI66m;W%#54xuU@mzFoOxr>X3!10%dGn0*g^O4C` zKrq=1Ku9(Ng2`q;FxdkbOH!< z7cDb(z1}xH1h4QbiSO*?FiK z*pxKmLy&U%{F|H)^Kf4PSM^lm1g_`dKakcH?!|$(_R9P`Pz5NMEABfeA z_csbRVV*Gp4J}&mm6w`F68Ags{6xh;!~5?4^U>tg64OjX-U-D2u!sL?EoBB^y#&5n zBoqXk{1`4r?GR=}`k*yqQ0w8r(N%BXaVA$iPqTZN-ggcCZUivbOcC)0L!TkyYs>J# zw1*u*4yBe?c}}y>lk%PDHQo|WBJeFr9t*5ohX?e)D!PuiC3P3(d~hZo!X1l~`88t_OzPQ_INnwcxuk6Vyt2}KuNfW;ZmSrA!w@`*8-x2a54M; zKJUzKHo@Bd{=f6f2X=1nyz^e3_j#ZDLuj#)ZVAye)r-X%%+V(Q^OZdSKe zdWfWAZwBzpd7*dtOC$xt1`0!7v3E%z*0}cn1u_89#}Gx;fdDd)!u#=2I|V7ck%1JF z@kZq(`{3�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�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 z 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�NsQ1@Vy3bI_;IieWN}5QF>RN8L1_okNt3V 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%0A0y*2SN~P8yr-SS~R( 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≶!y|c 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

    }(UJyl^&l!{z)h-lQCD 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%0D>v(^2*QfoNwcH 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

    ;fu&$L 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�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 diff --git a/booster-task-compression-cwebp/src/main/resources/bin/macosx/x64/10.14/cwebp b/booster-task-compression-cwebp/src/main/resources/bin/macosx/x64/10.14/cwebp deleted file mode 100644 index 98bc04517448a6b75d19952ccdd930b346bf1a60..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1479480 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

    bj>|FKKnS-MH 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

    aF)nb z`uj>=1qU(3=le<>*+}GS{kodh2K5~)oqJ`cNNuZ#Y~nS8TFuDVWS_Pl6#NB~(Na@CKDSYjucsQ`@DtF!2QkZ*i^qX}Uug|1{aEL8E#?tXuA&D|2Z=#hj z!q_3pS}t;u6TO9<(!~Ba$&lPxw(g%Jrs6SGpCVYQ^ATG$CLH)!x$ITWuh&vWB=Dp( z(sFd(oF^5ehH)~^>Q#G|v{_b*46C6e%w5L*`gD3Vm(7#q;Pfmq$jn z3$;8D4s7np;GN*)Pf|6=P_wbq?85pL~kSZXFlnC%9&5>M0UhhrzS?-FG-jD zv&y5a!NSgR)e#&WJtdyia=yF1h zbX6GN76J{Be1+*c78!) z?T=3JGir3la7bL2d<6r=3sj@NAj7=Ts72NF(c?d9DQ^FUM%+L3X_Cr`-z`s^UCMjA zeurzT>(i#+IkBqq(k|^2S8-a?N(>PWCdOAXvW_&D#rT1ZGM-x*u%jCT+)pbjUiDY5 za&zg22wv-Qq)-OKl83Fv#OuF1F<{@X0CB$p#8Np9ktrVyOY;!w{#Lln}JLjmpxy;L{}&8NP8)XBbU})-i%h4DwC5s~I;O+>&J&B&`mNNJnS_J-!H0RMXJ1o>`EWj zsh3OYvZIOLaG;F=e4EOPM}8HIEtzL z{_VoHY*y}J?t zNSQ0|8A!?Z?nnv5n_kU;xL7PCm+<3Zr`N}*a|=%OG;lDypcqcwg{~z=|5Br^S`


    b~!U%iN>g-uv(p7@L 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%0D3kShXUOJ_4Q zjF+zdZ|_h zk2;q(=aup*ksC4}$qO|4^MMy!m-P|7514)&LNxjYHV7(lRwf*-{X*=3+-*(8SoBPS z(quKGvt{UVy~l-_VJ)hb8o7Vale{t=tXN4z{Mau!SMvdDV9ETteetS$yd06|_fQnX;!MfX80 z_vV{*eFz-Yt{cr6SKVmBM%hCZFkjPN+P5ZWE4eqBc%&V^MmEUJ=e)qR?!yUE$?(az z&>}bb-`(=#Ua;gikuOv*W@NugwX4;)XpbM2`kW`PoyQ&~kt8+eOQIXjBRt*>=Mo;P z!kGo)z#18DkLH_bLw@XrJbrlVzIde9xq&YH+qbV;SfCErL26Y2^Oa;&WR!&T@cJ%#>`X?WY`x))U;_D@HJQ3w1#-YI^D}5UiJ;aj$A%3X}D>MMzCK?Y<9#^KXlDyh; zHh;rUkMmSq-Z+$PC7f9H#CW-zm>oXJtGCY*)BK+*&sdbGZl31pBD~FAR=uJ=9to0$ zuD^nLDTbw1B;zt!zcM>ebzY~6>)dv&N#oQ@ng}0y5x;VlIIUG3Qv^jJ^rJrWi9G3$ zR&&0{rnKHv^%CN$g1FpLs+*1w+`c!^y?;T#>|cPFEL~Ot;gfxojrr&J zK=@>~79K9+H=CM&Oj6tWUOjGKv$Y3l)?-|(uH?Td@ck~<**>l}{uRD-urTFP1%Izr z^9ORnHdA$8HRRAqY$2lb)v(6q@~l&*cKRV|;;AESvf`7U#R8$sKN@XFja*?y2aaoB zg)iuU&Vk)A^rAr+L8}=>BZ5EciBh?=8a|Oaq*LFOTADYBRA}) zeY*ioNAnK)#ejvqN7$K*nA+Zyv6sZ2=#8)B`Yn6}O4dBV^BYag!sH!Dp~g z*lrES6uVhu+9DN3*!}x5RQGY*Ie~BIcA+n&)b7Xl-MSY_FzD2^DB#e3P5R3B@6#mFSj~*Gt1c$c2;*N4{ zD&ti9;b3^YbGVZ5i0)5xfQ7Bo)hR_%7g%@-YeC|j1CFjo%sCMOqk*p6uuE~)IBmIZ zb>i746}cbK?qhmTUsjz6V7&gaWiBG*HxDQ3MbQ7a*N?sNgUA5RYx5lfUMYGm2cL#D zG&@)}UhP(c)}w}1DssA7>My%%JUgiHsh$`DBC@&M&mls%3DcIk1(F^g=!aHvd(lgMEWEhV&!kP{@GGV+i-+kP09DO%yMjOs5vlA-bt-!nW)jxw5$L^PQ3 zay5a05gC~ld62l~iy231e~r@A>GCRJo)t<{iN|H^L*qlAk-N2Ky&POz9zRMWp-52!(F`S zXgV1sjaW#y?N-*Fi@! z)nr%hd)w$w@OQ<@2^;r~`R~)Q=H6%H(LNiGJF0l*qm2hXfcDjK(LvGNv@wBY3y?d& zUy?hNl0adlLwubC?VBry0DTu;TFu|Uw}QTKOCNI+(u&bc*rs~^DLsEtVb0|eW!(z@ zp*m_u5C47*3Z4H(TjScW`}bdVzu4Y2PXfj+6P=6i zmwq8G6BVDlB7lKLgh3Vkj+Z(d`nAT)c=(E)=GNFpeG9jCfbfIu5gsgwR=w7Sa4_s} z?7vuVyBzzhEWJ~hS11pdT-8@yL3u}-h#c%D(^*!uL_yP*(Y3>m%dZ{ae^EOAFH7Rz zd?&WAZ{a(!gF*mPgmseyP)+`F`1dRD|IIa|2;iHtx)dOa#rbU%AX>e1DPZQ}|92F? zyx~y5$3g)=VyeyO+Yua#1azn%ly5n#oZvwEScm2Fk=jcKg(uraivo&?)}+YN0i?FBapVdGo1q zY871-X`^p#_VIutm5Bcx96J5#VR@S9P(@&fRbxxM&wPW=TZ-Q!z(Pz4rRJZKLyzZ} zCtJED?GMb;_MnTmvMgw{YE-2qhbrIWE4fBVtO=Ivto+Y564hn}SYSH>9~JappyxK~ zBqXhEJ>ig!(s9GqXTet4@Yr z@@hp1?nzbHog`I#C9g7`chbhQ#qQN*E3U0~S})EMV3fQnB_$j$9H_uS>tQRPjO>}Y`>E`C0UGx z8$=c4spw-39X~ih%(U~hhG_WE?r`)9D0(c3rZ;^%6#i|A ztISXH~6yf<_e2!{Ht;pcD&~x>;j2UEwTX%bnT*c*KF?C zT&pYx21=IU*=qkhijDBPR@pwQv~4PFRJLf^RAF2MIa@ac8N+&_pAnYL0kBfL0y@=? zPQjW*{G@gUiTcsf)w|v3sY}2i~e2r>d5Bxj|$>!GWyNB2n zMY1{K`EsBmhso@uL}HN`=V@*U9d&1GZQ+j9*n@gj(F;%f@G!_8Vvcz~zkW~Nl>gQqgkd^vgA&*!qfarrHk?~3MQEQyuBvU3u(nw@Hg z(NHRFTZ$HW9olD#r*DA}vzV|_d@Xl&MUV9tvKOO}Xb@o?KXapVm{g}Kadn)wr~nO) z?a|xRO`@>n%gzyBT=~Kb?3AVC6Ubnx?|!GG$|e!Bu5=;U>!dYc+oobed|FC8r?!FK-1^$K!AE+eXyz@Br#Y3!=^XlzP#w!487Rs_xQ8 zImAL@njq?afni>Na?Koxu1o>XXWb-PHlE{;I}a zP7X2GOn9-VR0=o_D9J;Nm`5$6b#3Oa5gy7^K{|hMh)967oZ@IT8$eBQ^jTXFQ_FRg z%xX?|Iby1~PY<8*0#88|BV5E!6nRr0Km)4__1x!1=uDw+FR_6RT8b#2rey7|T^`>!!M zhky_TUAlF9ayC64U)x{ii`#*@VpugLc2?q_I5iI*mlbomf=o^)@J?S%RgRL(nF^0p7Wl5bK(l!v|2>$?pYkI9{Hzq6=6U-y zf`6J%P5dsI&9B6ME{f1{UXq+RbrOou_fARVPORN0y;UQ@?HV@fgGIyoj!Jq{l0H;P zJ5|!FNynSvH76>GA22v+K0aV@(tcdUOL;Cw)&}4rObEZ z*Rm=ZS(dY(`?*tpIMVj*&mL)w*`Lh@fh}~Yr+U!!o{G+q#I#{JN#t#+lFe27ar`jS z3hvJ>Z-jZm13Oh+Gt%Z$aj#(&ZOFV3aa3I1n0XHvPOLG?Zs2K+s(-2dK_Jl>Dmkvr zlnWfL?p?PY;t=4eJm0nTx%AC{?NhmGQRT?{1zehZl&#h*t$nGuN;-*_Qw zBKMY+mdK;k?Bh;<(EQXWT%#67?uqwdo+pMr zP8CKOeph)tM$P_g8q{QlL4#zn)MSPfqD5|`5@o6tO-natWdk0O%c(i_x3qp1eTXU$ z)8=E`jwxn-xm7x#mJjh?5Eh~K{fixmJcM64pYADV5Alap>c03mr-VQ?K3c-=#J~7^ z$SGTPOxQ$Q>afsVh$YuC?1$lRE%FvbAm^^?=>>dSZmW3AC~QKRz#*1`JXeo#aTw(3 zXYzyd9sE50Ly^MT%zO&dq#-FxDzj+SZHDw*m^-PA0s61BllV3=RN`_zJ*QU zHC=cfAy{@qnsVBZJ-l(3-E}M5PldJ? zVyiL%gaB592nOhC6x6|3h$2EbzQ6mv|1*=s6W#awuJ?PdYv;P=e;=OvIiFAWBV#HZ z)9Zxgp>R-5WN=>AgO&IwIYG(fD9NTHrm05Oj`jtYuEMR_(ShL7M-<5qF0E6fD7f@- z5RUd;pH6RLTUQwX~ZrmF_m?|)*GYi1&*{60kO2` zl|#Q}?L-TPYLm)Gq24}DMF?y*NKmZISaCblpob=Oqg=A#yWi%@>^AbH9{~yOh&=Hv z$rj!04o+EwF3|m`TME?nsU9t-2rdd-H?gTatEQ0y339xk!+``WNjJGQr=QFswHa?+ z9qD(sTn}9a=hOE?IqZ~@td^-CggX6_Rm0o{OOx`lC$m5;ot#R01P z$DrQYiCpUNr*WM-EeW+#!R2MNG7M4qa+;KV&)FQVRGqSs!B^0o=?p1;QZS4gfzZS! zo$Zn%k#n>$(y;zo{Hgs_C1H>nH1GvE-XopXH}4`QLsGh z{@UBp&h0=~g={2B3nB;CA{8VgJk}I~`)vRAf`{xxn}SfFSFivZ7cJ@=wUIA23My$; zL@qYOB{!y>}a_jh<#U zs^q*NYIeVy9{AIEPd?5kT*bxV=N;9?+$YMYnYd2x71c~!UsDjSxvPOklZDH~Y`L5= zY&g`freIS*lsEU$;JweYo<*ipNwQuF9xbXKNUT-==vYKV3|C-CK`gr%^}5#*DyQH$ z=4I&YCdF=5XOBdFkLEM)a}0VYQe{)}SkMBc-!8i#^!-#FR)^c_7DS~K*(F&W-^xw$Rb<#+pe!rs#LgDlY^ ze6Xw+GAv9*`V$K35w&dl4R!?RIzO-V$g$(9%?mqJ-N*vmpQHL6YP%2Jc3n63KR1MY zJ{qIJu^?kApmb5#jR zXm)lWxHax#p3WlaCCNl@FyPUFi4|3%Z$o9;ikaS4O9QaPW`LCRNKkXc*a&sV#c!4wDS-e<{;!@H5c{+mtn-=YoW zw46BT)ztUu5p~q~^F$%ywFUjo{ZXQDlXuei$ez_Cp3YnC_VDkp?c)d$=CywmH*_0U z51K}P*<0qSGGC-0mY}$o?MGb3N4NCFh@)IgBFKUxkykPplGrODV%&t7RI5LTcApN%aW9JYS#Uwb^b=H$yimr&pDdZqV3;x9 z@QsXzwRe;Zo3oY7sd`>qOk8xG7ML#M700nH$zmsDc9Ok#$u9S74N72m<0AGkLK2~9 zu=eSD)dWl1A%e9;gH@`*5+7pc=RZGu3*+GvS3W;{;;Iuqvl9=WdT-$?sEh~hJ<45R zw!f14RWVIMR!}qalQ}xxkA=tACB0BvrHQq;GI7xmO(~TZyXJWT0x_TI0rB?jK&W6< z+}l#~c9nR0n|fP^xBB~ZdVI?N)sFwGy82(|_>Vx`|5Z`{*T(&Cqnr}$wQ>LJ{|^7d zj{j@B`d{z(k3ii2wd#L9FOM;A&JSrxk+reoOx4LRPNYPZvUAk?UzdyO2U{;u z;MBs_G*}Kk^i{2|f#BjSl6p^ZC=N4+1u#%bV?H=O++sltG>h$sf2MH<`($N~GSU zhjQlY!JUE7$h<&pYHe_JnsZ@w*Ma5Rmh}B|KZXyjeY)iL(oMql2B)1NYj$|I`p)!| zTQ7oSN0C4jDH?*O1)*np4UwFz+L*$zh138Wg~8S&g5dP6$0OZ`YTrRvSG$+}3g_~J zi|ceb=wJm0)(e_g9tzS$m7)Y7gU&U$mBPOax21ecZ3_hDPR5CVYp-|so4oRPiYVP8 zlj*9B{ql!zS+u`k_Bm}kWrlfYwlq+icm{BZElW>T##ULBLIJ;=9&N~MK)Kt8x=i&| zLL*E)ZdkRri7h}?MG?G<@zL~p*>t{*OH86k9!(W%^J~k|(R>$c57F=i3sy-Upfx2w zG%{ygDEV}t)?dd7B^v4ejXdIMPay|Ck|OpfEikX_rH%{vPWS6*uv`uPoJx%pv+Ry$ z#f};MvX})rniYuI(oLykt(X<586#^B@QHul7GreZ5+sz<$<3dX!0>{wd%2(TX~XyY z+QngBAdpzCr7v%6MHTgX?6%7uXKNC8hu^}*g@1ngjkY4ry zt_a(`;%m5J@1ZW$0fBpkTrp;c{2((wFOMf6>0WV0%F`SLgmVodq>)>GiaExiB{;{8 z_~`oMk;rK52}8RIU48T?u;we)NdGg#Vr`Ur*~>T(`NJ(7{|tWYjIp-(HzwG-F42(| zgQ`bK9|l!zq?x?Z6$r_kV)+S3&`Qt*DP@*`vL|>X^1?s~gkMJ>e%bnCm?AliVw2#$ zNCMfS{&gI@F^0=QBDe`88)U1_y2NM7hIF-pZdpD^Fhnwdyug^L22xx^rIVa%_>9+o zCbX8ZQNpQ%4&{?8gTp3qqglKHFPoIukx1@HbaM!rp=5a(XtNBD2jzv*CUHk9+CI3~ zU3hNUL*kmOB{NDX=aPkuW$n$({E#M~zKxR4y4+6&lSD5_dR8vpz=U)im{%Xhsa*U5 z^ly}A(Gm0Kp?{&YY`|46eh&I)O1qW*b3*x#y)X1q{7(txcY9w*SNz$8@>yPe;-_+P zeM0#puWGrjT)aM^e605cnPOEgUYAh*J+D48RJk~uP=2*nmxe1B|1qKb>s}3Q<>F@& z$}jQi(>9fh|Bz7Lt8(%0(Uu@nT+x;g{8dD1Q)tHNP6hE#1FRtGBs%W`Kcy^I68*uC z(H9xIzVDyu1$8`wDyrVs(OQ@FSt~Pf2IIU(<+#B8#RT>*@_V3eQk-BbmBP#gs^Nbv z-^yT53MP3%r!8fS0}K+LiZUJgNhxKpLHqG}<54NR&UjQD`uy>pIOUA@%ua07p>K2Q zc$D_1Vs_r_zYdkP_--A~bE9hOmb08vz34~0DF5#}?-_-zMvbnkt@7kWWdkcuURa*Q zQbHhf6Q=@Cx|aNM-6oX++mT}jEiU?Mp|n`G@x&NA*m$^4w#qvd_2_0bA^hW=7>vmvFmv})5?pZob! z-m2r5dUqZHxJ6F0XtyJmS38mZ;4E!qpa=6fnn*9X&wenO@FPWxyJ zJ9038B5&Al<-(AZy`Vz-T7<nG3h z+$j5VWNCq3Xp@ZM@aC0Mq)=tj5YgpG>4@|vC@dBUjtk;;Z6Gyo*E_z;?zZyPniYnz657@oskBY=02~-M2cr(>rHc3b`)Cs z8A9D#zbzxO*!a7neC21zYnkWO#l*aGFS(bW)nKPwbyd7IUw$=5Y#DP(N86!Gmaay- zrz>#O>Chyz;+QT5#gy41rdX+e2x2WkwbVZizhpbGf!15)!Q? zGVpOP>&@t^;La@z^OO9m7+Wwvacm9OM+@51~$8y4odnu8Oc z01I85hmEf>z$y_8owUV<>JC*F$(W!J#L`~G9i>qY${g9#n)$k15&>m@ZXK*vvV zVAp{_kAYs-%f8@`QuUEF_quIZ&Wt*zP7Ueg)Lu?3eVJ44b&a^<>EudICs+RYJX}Ew zOkQnZytv}hls&BJ9hibk(IY**BYB^8sZ+Gj)9Ow1x;FcVf8Y*@9<)On)Kv11|E5`%&WTjdu(yCCQ~xZ7o7N7 zWNBX)L)3|{bxB(pZp&(PcO3BrC#NnwC4pUXSs;{hg9f(2{X+8164;vwZ2A=hmau-M z^)mXI=QsJ72?zH{Sl`#GPe|W(oqPGRH$usy2+-WXs%Yw#je{sUBU9# z80*PUEb>MlX+0IMEq~1$+}9yoD9J@r* zsUICOZ&5GKZ~L=8;65^0x%ikicScCRdnh zzFPLp;a8V^J$Q9q?aySNTn3H(WQFmQb4_SBNcV32nb?*=7?0#MtD@iz{lTZ&M_ms% zJ#;@iJ7wqrTrQU7$NFKJM^*)Ys|S>=mX|4V78XZb=UC%24^BSno{@g(6uAU>GYU&GQZD+P;tkOJr=)a)W9cO>%kJrWGAqkcz9 z1B}IG!r)L4bjPsu`O8_QGZWm8`NMvEzEU*3Ef3cZOr??LVl;f-CtFM_S&&w>)s1SS zv&pu<;0yKsqvUlcS#Cq1XnV~@IXLWZta=ZX6K}9g@T;#$n#udwYhKQuy;nkg>spe{ z{cYdi{EdOob4lx` zQFwx{XloD|Fi=-++{@&Jp!*8KJqw!H29o6)*35}hQy^3+7Hr{v`f65QURVXq2q9AN z15shjk(R|gFq!;4U55zuPGzIOHPCxs{@{Sq;PA}rciAj>t0hpiEm<7mHtgcHtU>)~ zBz;^ZFkAXM;IP{AX8`EHeXK}4o&Cw!P}#L8Utd2LGB3EIRJd;ciM-&38bM_xhCLA7 zipUFAFH}p~6mVT1`AT6V`D+NkYiAb1`l!325^G% z%7S1CS{|zVktXufJ@oop1-pXhZN0&Vb8tcT1Gs&*#Qm(um8Ht_QHc!9y}=be%-w6k z4J{dey7}VuI|J@DO@W5@zlF^JChRAKZ(x>k{CUZ9Z?HNarj-5(;NwL=%M~HY;2^P7 z1K;4@sNvyA`nMaec3;$gXfpkZW zJdw*Jm?vcZz**hFhz>#0Jd``gc(!B=Cl#tC!PzIyPFQ$(-t5U9?qYFbD6n-S0cJ9E zp`2UEn@z@Xzf=yde1Pn*go=Sfx2ZJR6WnWdZee#yRxWBM4{LZkarn+f2XI)j5XCj( zYh(#+js$QrrO={DZNE8XQUARVB{pB4iN_t+%#1 zjm9@PdJ$NvV)MX~2~u$Mm0-OU8woa8v3xLj^gCE3?m)<^;=$3SV5usQ4c1Sw9IzpZ z(TG;dqu{}+WoD^ah|y)R(^Oy>SbxQQU{@-}W3|=tXn3$nIu{6el{`3_n{d?`D&PUj zR4f3Nt=N=;+9#TSNJXk$a{@pcmtOP#$gF-ygLYMh94wnWC(nKNi(E-fpRdNVIN>#< zPr2gLI2yJn{1I8MG=iwxnuRK@Y5OqP|B-vfrpO-(q!47JUx5vgyh-6y+Nj&=eJIL4 zDhCS)OACR>58f4)tyA&4tmxArIPzNwpoQS5;_(nD{h1*c>V)7wu^}PYsc>pod`>N> zT_3?`^NSwZkWV^9`^OzTt?1&Z(s+tK*e=n2F5jX(%<*(u2T#*j%MEiB?XHBt&WOhK z*8HT~>eXx4$9Nr3Z2~3f=l(Mu-=r>HEB%@A^*UZZi*1STTM8|{8IrfRQjOb)G(#I6 z!)+{^63gNTI(Ya`ipLXJX+qZgskk!GE9qJ zKQNDC%mS)MDwfIoK!zRXB9|<&M&L%&z;ITTrXq5@##k%*@t*2sM-TNm&P`SO$#{$R z8A8|pd0MZ8h=hcOqdNl@d2k_6oBjywKxn{#sWRhE;(TG*w;5#TQcnWG^e05mdnjF+ zYp7ofh3)jA=VYi?mJ(S(#~`+XDHGM1>n90Nw-4QkSBz()FM5sFh>mA>Ww9ywIXIGV((M+>{CL3!||e+wVY6 zg=u2Ve}nGV?_NLho~pAxue;zANCxA>7WiBzT_5Go-sRrVFZhNyf3&c6!t0!Ick_Yu>s`OnHshNCT}VuMuJp63$X^=aKOz3B;Y8D|<>zZu;A3Ho(83v>PT z%I!Tlni|267zh!L%axzZro{~JEsWbctw(IlO_px0UKUm7R4uubK~xx&+qX*hhn8i6 zdRbh>{1WIoq1luXn(^0i8R^$c1fcsuR|+j-eCXZ@~62-H=e0#5|CsU^WZIZA!5F)Z(fR#o&i8ibKQ3dA zdp51NXzMOxhwSx+Yh-o4ERCy9F~901C1aE`KZ>3IV1JX%h|>P}%8`7Am%iG*R_eEF zsb{+>lsqP$-&*Q>qkN-~QlHHE-{gk;+L0$1@lfhTab5oGdnxswxN9Dl@YhaCC7g-; z#}Zc6ERG(;c3PZvPCFk49tJL%zLtp4!<3|ad%ZM}`%nzNZ@|@xFY(uj#7aIB!~WqP zxkDV3Pwdklkv>VUz?SHdt6Cinss~P=oA4dEb_mLNc z`lE7j{m2{T^N+5rNX&4Z!1s2xNT~b`ysf^c{HeTioBXT{1ouibh(Vde;QD|64~@Z( zP*{z<$*wkU)yZByF1JF#jDgn9>w%@6QBjk!gi zAEK__>OJZA^-E&uSI&dioi-&SJAFM9?0nY6wd0a0Gp~Bxk8&7hQ_uE~*}$o?xKs55Vm5GUVa%yNp?QnCTG*r|bP+DS z;x0HLD;w}B&hEnY;P+^uyq5d9-;$^ym!gT zb5++j6_fGqkn9V5W#w<&o=n(Cu0^YDy9qcBjsd$vgsG~%3X7K8^8&bA>Y4?i5y zXB6nD=E$_;@ErGo-2*X3`>v-ql&a=A(k8Yilc z91XBMfYC7tEOjJ)V1KjJ;MogNP~a0=KMuqjj zSIUJ(y-I0CatC;C=}#NAb-si% zz0Ig?Mh*IgN^UZ0*wsosZ`76?rQQ=Nm~ujyDc(`SO!>&Dn~eHED5en1Ck8n4iawF| zzRwX?83~^I2c2hhUy4ngXIwL0LUR4J0&Jd>omV0TZB9G%8 zd#`1K0#%!m*>B9`nIDFaZ*t^{vqrM9CH-=^_a+G4VIk zt#)^>>*dXA1RF=^p6l{vNoPAb(Y>xP(VMj$b`tEQtcFqO!ygms-_xJ96Zui0w0;e5 zC9#C+FW&i|bbH?7#t1FCH*|l`-eht^dyinjgT5@@qvR0&DsOSvgtqnL!cu6N>pw}I zh7&!4{zvd_OeVf%I-$4>?=EvfF$n%33&q!9f9-QaQTGL*csv@4)t?`VCne4~_?Clj z;I}ZE$@O}(Hc9B1(G-p%bfg6@P34Z(P+T}B#J+acCggKN$=SJ~v=_(njp{NO%dJ{(L`N6W@Z*`m*?ujnRDEy8VJj5 z_quy$XSMl4{Zr8yM!Pqn@0P^S$V;=1W;OUjBd^O14Lf7uC=VAO6)%b#Bow~T(iB4=RZcx!r1?Ht%|H|5eI%3%1%i1<7H0?z9QK6AZ4M&pa z1V<2=;&!#yrV)MSdoAB4R}W{fep&U#xjDfFslF^8DL{5=h82KfC;wADTak=p%n6R_ zSL=U}9bHzIeWB!DSs#juu>mpAd{$31;nJc@uX z3oiOxUoNTjuVRgv(}U&va$rT6Fh(!aLgrP}gGYW+{vE`AP= zx@VmTEgCBRbhoH<%X+!EQ6uw)m5mEDGKVslUsvrVGGlxBvbJjS{PTE)XfXQOZhKrDS?$Z($8I^c*GPYYV>tj?lp#2hsho$4 z0EFX`tX+QE9A9wyTCT%WxUXPI@fohg`+|4X`?7Wh3!am(sGSvIvqL-{u2as27C@-~ z#aSmQwEqxX9G0jg1`9T4HL)Ay&0^bi;!C4Ly_3iww>PWZpVf@q&LeYz-^<#!^Zhx& zN&RT?T(uJ)^oBB-SdjvuBI_`#m6 zt-h>7{?L{EL%rQu?K=<62^M1Kz|Ph=!5RJiS&g;RpQ|l+q;~O>q2vqvp)@Mg>sfmV z3cdB+oWLD1XroKMn-XD+7!*#DOcFDBE^5S}zo_AMGu)BH7-1)z1xc~_mU)G6W!|}cD{Kkg%6b?yCS7$3bUCZM_b%slFr^W82*tL62dXDFf zNV+oQ?htEYgOhoSjZW{4$R{}>HxIVs={v&kSBg+7LMSk7sa_iOPNk{HKl?scT98y9~4+SH)LQU2>a!ZwBFY&p-X(lH? z+`C;(o^#}GR_Zm8t28+QB6owD)H`xRm1+{XWhN&;-FF@pu zd{0v1C03P%dJBqT$YX|_>mV9W36Olm>_s)hMNWqie<*g-{7eHz4DvT>Me>K)mVkPO znsj%;gMt^-s7XPkn&=HSF_eM*h(WJQRU9#BkD5(v5`*ch#n$vXwKe?_HJQFrOm2Hl zOm17NCbvDQCbvBSgovA=kg zm@K|uO%^Z1sje3Ff23D5P6SXvJ7mpNVBQ58_@@8L~7aBP%-^DQa{d0YG z-`0x`B_yW7Mot0eH=qt)uCS))^g6JL*PzCW)eWJm&qGFDVf!+7u00PK&w0p%s_ncVY`37m%vYNEb0FXSrUm*rRCm&wS?inCeEe{Gk_rMRGW zLW*akP;@WUri@F8cbW2juoQY3e>s;bBge0j1>8!wvHc?*e^HBuj$z>L87kT}hE7Hi zv1jNl$?~0}>~F`bFD#5t(nNtFa#Geca-;(1P!Y98=13*Zp%R~Ex#KJg45gc-vTlN# zD1t-B4UzBUO!?k&rF?H6EZ@78e=q!KLjezS(Q6Eb%*l7a#3PS*a+dWB^~jTR5b6N` zxAE;I@$DsyXd1lk3iWbK0D9=;9QodoFW=jJ^1VACA~<;RMIj3jI4Q0UEkx)fVFyF- zM`@)<*17T>S0vxb^W=NWt@53t{JY^t+eLVoI|+-- zerD0}+GRXL*O~mu!w{W{m8QHWhs7mbbVB)c>267WR9bry zMIm;Dyy{x9Lma7YbUa-Vc96$ja*!uBJIK>2gN@e-hZcojnD9wPsh**~FbgLs&=6+n zBxS8@$?sGqC^My9%7m1Tq16$`(-kca^6&=^^4LKK`At;jX_JYUlHZuD6_nqY{C}&g z$Y@G}^RNul1bIxxO@cfj12RFLj>@bvnGR*eWSz2N^8c-}G9>DGX4La59c0a52U!=D zdBJ2llogY8%8JSV-DO2u2r{0b30V_x{9KXaAdlrc$P+#XdD>(uXb7B=VzN$2F?pw? zn4Q17q_`^><`9~>(a;n*$iwp-Www}v6Y3;xzQreo*(w>#p z^uMGv{V$Q0hpbP^y8~n(pBMeE?S9uDzw4;q^`_r-+UIKVx?c3T-goVEz2Z9Mb+KLU zNz{f=`)OtoXWPYf9Tkw!GJHSFIzpEr{9YeHXC&`x>@Z~Mv|fZG|1(VapJB@X<--)G zVp$!LL86R4r9p9e{_3!UJRBXQtmr&QaaT~owAmW^sL9F;^|U3<7=`(=G%V`MNf`ji z;8+JLIyfErSafLdM2pIJhOUVYKh`_L538$$>nx)m8Pk_GNOPc_(gRWJzcA}ENY)N+ z=mXBkp()=RgGn=+acH?cWbzBUP&0d9#nBNI$gu+w0_ zbfegn0liINCi}$hEjjX?18!a09BAv;w5f9@K&89Ht~klKRBYWU-`k7idpEc zsN)c_^si!98fY3+#we10Lsu+wvh9gV2Z@f=bqMpcaXSpg4&ugJBx=WbkxWl;P^UW8 zk2~%>T<0LaF^+WM^ee{IIDSE@R8S6_0B(-D7j_V*G*ZeBI-E5vid4`KXc-;)v#>Hw zY6mPCq}?&$i>H08Oc5ChSc_RWKVC;B7l zXgJW%8Z+` zSvcvkxGDRElLp02*)yEb$>ulODq3J`3tl@_()i?6LEXV>ra+ z%5`t(eGAvIj_>!n^Y@K%ufKn)msO#?kWhL0XQ(#V;n(1D%V^mW9FLN3WUC2Em z_V*T~JS!l$Kp{;j0&dR!l!>BD&W|RX%wCHRqYw&_qSdi58s?o zTaybJ1_5s2q?(Dim*2+fM?+*_Rhx@rx1Y5ifcB`^X7#x~>u&7DQtW2-s@bRBni<=t zKG)|FOk81KkCxbe)o0&7y=i<0=g$2=)>~3e2(ayMw!pW@H{9f2 z*NtpBC1otvB}J?7wBm`1pHVzX@v~fzNp6Tx^1{Vo7r$UNSH=^9)tUOu(Qgr7+>rBv z|Cmd#WP7;qY#?-h>N)bqy{_+ly?fR?oUBrlTuP)Ek*GvBBa-e*>shm+yE%5ItM$Ph ztzX{J`qw*J|AtvV-PO9Uqji5r>$x4Rk1^|Lby?;FzSn(eu9_9M8sDYFZAK(2F~^9c z`;uKX)we5=dyazy)CyN9nIp`Ji4Bp&8vjAkI+3%1q5RauhC_)p1@DkZNudd&5?yGq zORSmrE;f=wzCfa@NiDor>pvK*PQ^tTGtUnEA#g`dp2lGRwzo6dL0aIr$Lyl<7PR$PBsQUO`A^L_>1# zDM}j5NiGRzqJ%9e)cgC~lkS@+aelZIn^3nnY4GrT=$ePe^F_(rPZC{wC8bs@5blZ} z=r`NUu+gAq_bB&9{SMV{hDrPbiS1R9o0NUEelO(fbA^e^c+HmT?+Cm4BEEjt&e0*C z*Vv*xoN!BwCZSk>DDk=XwB~EB#HLVUlbaNpcA;x$Yt3U5#hJ%?^9@aNDQA*$`tW5B z)L4_1)tB$+DC=S)t|npo|FEGovF5QdI2-Q4ABPR97!l z?#=ogp#qm zME|MCTxt=lfzSUdwyOnRWw>t>#Y}f1lo+=ys zi*{?2v9T`cD`~>%@x~@8o~(F^;@uSQu6U~AJrwV$_yvlmDW2|~`*b*vR1jMX$(63%=XcKnIf1n&Jvqg)P`col2ie#Hc)4v(LmUM%oh=9F_6k46;y(OAqFxH1PtUDm}{WOK#hS) z1FH?x8E7;RHV_dIsupz#;;m4km2zzoyY96;1GQs`S%52FT(#uA0-;t6QQ7KD0WoI4 zm^q!8bB$Tli78LQ2ZGg=otUeQS=W(S9aiRw#!k!@V@5hL69_ILOBE0clIqiAz}Jyk zonw-sJtQVsEmudeKDQII(wH@!n03Zn-H91CW@9I2i!mbtLMt*PxKc63LQ_^LHsL_f zOL9stCZ!0n+M{u+7Ih|Y6CLgp^7&qIvJss{8M=tZ;imQG?9u+Q^_1cap2fw2M3O&Ay7VWEYlLj zfnzz1t2l6Ms)GZ^_Hc0ESo~8N@%I7;2aZj1aNyW<2M3O2RIc*Cv2OReWWqVhomaIn zlgXWX`IW?pinYtoiAjiO514RaE3{)CeZJ^FTqk*u2h=CRZ zsha*P5)2G6kZB-bAjiO514RaE3{)CeZJ^FTqk*u2h=CRX@tU-J-D$S*>z6t|r!sY} zL{L*Sl-1)6EHqGRV3mQD2I>v0HPCFJ$-oH%Z3g;jfV47*e@0~+m||eOfrSQ24XiS- z(m=g|wFa6EG#NNypiMxCcb%kA*NW%TxGf-K=S#~GYrw{#I$#X?9h??=+!RPoiAPC} z=Zz_ikt5NDdS8%@)N9H+mTr4SlQEk+G24uJ0>DbBHMx1gQK@-BDs{BU9iu51 zZ*0eC(m^}T>=;cu=vV`*vDd_d8*5;VE2#%J*1#H9QW0*ffiv0HPCFJ$-oH%Z2(y$r{h?WK$k%^D=T)dqfH*Ai%ZN=Wss~3N@J51 zPjSgDi&5RY(szvQ&Mq9idRZyOON^a0DYces>riSf*R185wL-Dh`aK;E+{GyU?;5%? zK~7~Tx($6yqJI{ShFz(ZPJ}X*;l1ApIf-vs0 z@g9RGF{eTYt8-#lQ4Fh$VRbPq9K%`!qrny+L!UC-jtzb2WTSPkIvWYd=y+$mkUSX{g7g(v%ZOkbDL8K_r$B1r9^fjWp5*I5$j6?UkI(nIHLgwXA zBh1UIjW932V}yA*%n0-H8Y9fhYmG23zpDhP+QrN9CS+dzzzFm5MkCD2n~X3oCm3N~ zPBg;2oMeP~IavwX&Msb-nvi)p-w5+^ff45AJw}+9R$82dEjJVM@?Im%%O5F0^W4SD zl_q3f{@e)j@}G<_FaOyH^YTF>ES3)$VP5{i2=nq`C20G*c)8Yu%*)>yVP5{;2=np} zMwpk+7-3%i(FpT$oe}2cdL`&sx_H@SLgwX8Bh1TJjW92F8DU<&W`udU+X(Y=j}hkO z>q^jTanZ|4Y)@S_Zd3kPTTuSc2wPD8$Ou-$S$95aM6wbe8KF(bMu@re<5$s+V| zh(rG(ZF7f_tc+qar5e+o87MMPX`s$P*g%Vbc$>5Q{!^U?iKw~I<_0icZB&;USZQFb zfhGfO0&tCRX)Cf#x^8I=b?AjlVxX<#_!w3i!&b(ywK1&8utQIZOChJlk^Z-lCbwgg zh+M}e(a2bnXk@HOG&0sC8X0R6jnpQw^}Ek%2fkSz7b6x<6i5t&ph^v_G_ck{lYusX zY{c9Y2u)4R4^3iJ`bj>I+|hZ8#&r@1&0qVRvb6#iFWv-S@RG9Ibuf_q8t^ zO9;;D!u3q;nIyZx8`cs zvVv|DR-#CKi3?(rH7Ai|(TSBE=}uYMN#%hXS=k{gtP>rg(OwZSFxNnhfz<{Y1%y=5 z6vZ!c$7#0yMRNYU2bfQ(bP1t29 zC`CqM6I(q%M(AiiI>n)*rDmZ+M~lrWhmMw;dWVh{oMwlPcBUtwHGYp+7)G&g*2jB= z?3-=G-$b^a60N1UKuDDZXNawG@{aVJ*d1jj)!YzY*3_3^2l4ic5{KmSP}; zM!l<_9+NUZhZ|vjjxfUfyv_*obEFaG=k-RIpWidW{Ja4|leep%Q%uVIyx9ozbE*;M z=MRlAKc^XCeoi;S{G4Hg`FRV3_=)1`&S|^Qq|DEMG{XG+u@UCyPmC}>7a3uGE;hpa ztT4j-MAeP@$rfN|KUbNQ`S~wKn4iBi!uc%_!dBUX3&vqls&yz-&pQns4KTjKBex5PH{5)%f z`FRdP)NFO>Q-?@x4z36om}{WMz-j}H1|kCDP0;ei(x<)O(a!L$a7{gY@u=*I*9K%k4NmR`j68bZnNrWU1 zV$GyO$C^opjy01G9cv~XI@U}&bgY?#CJ;7L{;hVjnnJLN_Y?yQ4XiRyZ=l)034k8Z zh@B^qZdcFSjMEK{F}jyBPWMvAWJ-5B?lPHvjv1u**A&lD+^hH~#YZb%r1(t5XDL40 z)evM|aSYwxINg&OqkA&rbWdi?V3oOC<-e}@Hx&0N?pHil@iB_us`zb+&r$q#+%LrO zF${3V>E_ND-P{?cn>%BMs8E(#_@?4lC>~HePw}yee_!#riWe(>hvIjN2RJ^4Rnu|o z5`pQ~%{aDhz^_!HZz=w5#jjEv#jVH}C|;=eIK}5FewX5RD_$ZVq;)<|SKB?2zCn~3ONLle=hi#9OwWv|6K4fMbLAh z`R9UH%Rntq>ueo8P$N|EXU43qGqcsoe89lZj9DEvvqm-hnNqX>7-3GI#OY>1@y}b_pfV>iT+O1@0mtgN zWzMODuLP$*?#3?twalm;J>}V%6JlGNZWBaTt3fqeJ*CLA??e*EZAze8tOM zOWGP1xV%eGBrq9Ua1pG5-lZ)rQp;=mD83rjP{+AAu5&fwuEy(CFdezeMJh#xfi>s5viP-1voV($(OaG;Z%}q)6!Fp*r|a_52)BC zb!=)>WQycvp<%8s6THm5?ni^N8YKnVK05^l5w)+0{){h-+SgDypwTKDPP9&Vi}yPP z!dv_oC!ex*ppeAD{lzcFqoqn;a=f9m?1pxtwQXs;lYZ?3m%gRx*P!V)Hb-KGT+)}w zc@Z0h%9qd2)=@-iv?$W};%psV>whE^NEYqWAzyZK)`vU~tQD?!SF}u`n7$^SUEZvZ zijT&!E*y`eW?d0km+)mdQY4X_iDb_&lblK3&7xT#HC!KlZlcY?x!Jy~@E4@UY}&@; z9o9C=E2g3$Z*GT68Id)|dZ_k=&(Ocn@x4x*d47AWiKPY-l`)B&*kKMOT74!bp-Q7? z)=qRxTtYKLyBS84L~!DRS&gdFV^?tcBiP79dJuXmuyM;}*!mh8Oi;jq3Je;j>2;1C z5L4md&!XwLEvhzW%&6SZ$PBD|v5G>C3$pgoj*XxlLv05KnUXII`qA3K^9U1Z(OyS= zISmdPQt-40TO`%wneKHSo<;3i^U`Q?|`+`sDec*@W*0eWkw=ekq@qHNY z4nCy!jTaLIe{4ekE|H8Z#r_;Q_ zH@(N-ggWKRdJ9!i-s69Tcq?mb@PvdL<&WQUuP;mu7Ayl~@X9ivUoa%<2EY>SK?bm% zK~-!3c2O`?YNnS2L!yHKUUD!r*RZr;=vKpe2ld@gO#25z(~Q?GsBetI<3Z;d_xc%q z-Rti~yGZ)rMk$!4L324ue|VH#vLh)ZS>s;wiu1(kn#IdpuheR`xz`j_y4q`>mppQ> zd0ql6MtW<1jp~jUQ^^EOMKg%&6`y;}A0_Bs7w@z@BtiGNK7#p>gx%|U6?C}--tS@n zvPMJC=o9o;5`4dF2k28%6eWGvEUxjpjsOpE>x#E~eXf>IzZn_%hmU$Bps-cO*PH>q zMwTAYJA64y8mg~#m`+*JZ;LU$!$~6~ro|ZSB?#lX7-J`Tnqd4m#>hb7A&mJk#$)}I zF*n9|89jzbygoSU?R2ye!gx8xcxiw#UW_q*lBta6VvK#4DPu>BQGB^Fw#OKrZz$t; zF~&EBC}VAm@e5--5o28bO_g{w#z?+W84nqw^LV)9`@_1sSDW&;7h~-iiekektK)JX zpSAL-lg~=|RPxc+P6QT_fsP)DK=5c@@T@SU*bLw94i(9MIBF!&d>`t)oN~y!1AT50 zU(m4SLn-3dW^oW7slz2HfBvm*)zCr9y+(Oacaizskh3F6Yk!!G|*7 z27;kf0kad)qhFEMO}>k|WeS+kEl0q#Zbft4Gf|~DbJtOKMgJr|i;^-S-&8Dz@2yE9 za+>QE*>Z6sTduie%Qcql_t2or4W#zhj=D>?{f^J8zaw~D6q(0G>btm$BdQP2a5ttM zUJ3NE^aDi_g=2kM72YW_m`CZeeUf-d5_*7|d*zBEYC?MOIl$-6U6NGW_{_v&@pi7b zl3>cRLqqO4>m@31_)Bd8R=uG#y6jjA%$K;iA=-bI7!d;NcU9yqCo1Ek5tR%wI~0>I(ttbI-W+BAS%=?oE_$dy;(L5+7bXlrqQt z;wvsbJG=4On#gBw_c?iTw+!R0ECg)$kY@>{)S>0Q;w<#Z0{4a;{9ot)*L?SecLVMX zyk{EfhYZGlffd0h4EvAL<^f+lw@lw)9(8V+wtI+#MEwQud1*HhSuScUfcueoNW267 zN}ywf$C;(TIflHbCZ*63LG(XFly`C^5OL3*avaiH!2Qo}nAa<+fKAg9xM1&cdnBPa-@?vZV>$Ul3I`x7pl zl{U%sBFaJq|4(|sh~Ac~U^PB9<5}9=gw}Do*u4|fN0B2{67(fluEaHttUP;E*vWonB%}A2Ua?;&VgYE zwm2|>wpi^uFvo$?Mhm~vfprcHJFo?)nLD0D;Wz;KLZcwPgC_xGi5``doiH%b-lwmC2ZAJo1B$2+jpfh!%j)`3k9YyYF=Nz++e6;k_L6%9s66y3TI$pawZMkH09D|0I5!QERX&^lu#_dgzy}BC2Lby9j9* zD%ir4`(C7n7NrJhxf@!4;yrk3O-L47iCD!(*T!A%BTjD>YZdlXC15(oy{9VE zfjJH=a$uzc>l_$%U<;7wwB`q%t#p2Y`uKUw+62r4!P-m%IR=UhR2rx=5H`@FpejLz zpuwt4133nY3{)DZGY~e=0?DaWXXIC7>vbJZbXH{`MdY&$j5knfV5Nbz z2AT}C2?+f;gS1mM?mP&WA3PaJ8${-W?&V#TPx9QpPx3;OQz?I-ua{jd`}dT=n;Dv& zUlFt&=ZB>Tik1J361dg1b=MI}AVZ!GB`}r1O9>p}z<>kiIPMPs$>X+c{6g!Y+JWS0=kbwu(*GB?St(7#){`A3eYulVcrJ_P^zO!wm{GJa)Y?YL zIs@l+{uKou@L7?pClGVx=Hr(O4>n=06P|~#&xE;3c^<;IB1|<1(_W7llzR@mgfQO2 z=v}8hEesZq2%}jB^(86$c(shFzAP@TI} z{tvodK?V; zlcQo{vSo1ehNKv|wsZY(lwG+KgIFlLNiZk{_v~cpGM7rdxsjxlnR3S>^O=b!w?Yx^ zl6Z18G|F`n&#wcL3cViMIR)iX=$w2?Y+osjGAF-huZy{{K5cN%{zRCbY&`H}w^RFe zGV}3de}wtHI-mX!<8}6g3vA5kr>=T2ae%1`VJkr-;4G zft$#eBOih60-67+){M)GF0q=i8N2%r$_MR(XG9s%epF+eX$E2afDcI&vq+8dTp`0o zPXamTNgx|#(P2LNQQhFL3A9_X*o>zcXIDJa?GmcoBCUDie{PQcAH6xsmT*UXAH4VU4gMt= zM`?c(+j?5`_K|j4Wootw1e&5ET6v+ z$0gn6BX4q*5C~5~%1_m1iD*YjNM8W9l#*%kH4oZ5GA?^H+P_^1W!0vrcdZHG*U!Y+7As1Kz(9`Hk6Z=@Y~zg0d*Ejf>nbtI>|{bNbZ7v=ME$0WsG%6G(`o8**5 z#YS-|J=<7&l(mzj?ZtmmhNLN~0!U>VSyGwg)n?i2E`#xUEP)C0I4P2ov!#d*lFuDd zPNxcUR5qS{NOHbQa+aI~c~8=nbZX~+1Z|e>uOs$vPP)DY{#z$qX_QM|A}#6qb{_yo zb>_h)a4Am|jhWqdA+B|;*1N}kS+$PU>Q0sVDYfTR>a`Fg+238MJL=OR z5o{nU1@_2(9n;Q86?~iGg&Be$RD4dqgyq}HG8NCwbeZfBgN4}!=XhMC73p<`s@+ae zD@p%~g_(4IN2_2;KVzIGQ{N$V+a;wLD73T2eum|7eTwLvHV8%m?@&_DkZ*#^hQS#! zvjhugFmI=&kZM~(YdDi^lV$yxl+)ItEUb z&ZA`Ag&SuEJdmfA95>G(FAoJuw!b6MkYUL?Sk^5AJZPsAInzYhen%u;!c=A}X9&g_ zf?R^rXYgLeS!bw-?NqdOO4s~%llaJH!2AR9d54ddEb)Tq%_MroRQqCrCu7A~*q0JH z>i|I~n0H8Y7`n_OIqss8OXE0?(A-5J$R+oYzmY>(nlo2P#(kpbk1_?99fA>qmgFQT zyuB!)^=s6wL5>_)RLqeAAVl|({Wl^(ns~A$BkT9-XH7HMUb5fvF-fnmjTK}4dWKrj)jm?+qdoKB-l_t|1i z72^<`$rJAt<8t^+E`r()(wDzzchh~W8Dca?jQ%R23(JQf>7Z0{&XY|dw_~j|EZbJw ze&;0NPLfcvK(bJhe88|=DGA4j?6Gu@;_W2$ozRRw%?#&`^%<%7*%Y6_KKTk4wDgcB zlFyw;X~tr^nDSJ*oz`F$fhgVdB&px4;X9a1;gGUML7}hyiaJqp`DF@^QJRjWUvAD{ z{w;&)*C;$fs+W^73l3)Rd5h1TE&L@Cl(jQ>Et_8MGbw#l+}ZZhB5WI1lrq`Na?c}K zmt4YsRE8d}>pcILWV=c}KgyKvxE%RP`g^jw5%P#2xoR{6qxLrb5|eCsQ%F)xn%9|I znAnG#N%NKka7f3Q`{3*s&VJ!YJtWWXqM(;h1kRkmt_*HUF8@#7ZG`zIRqWVbg_H7x zaG;R6Q)U_0|HedGNGjPCEJ^h&=PssDlr~ApAPA+cS~A|3l0oXV@0L)fBv}+i&#O*uN(Q)$L+fzt zfQax2j3tYvPR7OEE|5}pCrzA(lwPT7vujM~Uc+yCh6c(A=&0Cm^6UNpyX)*{H z;}Q2BcVo9`t9(xrZo(P){ zPdjjZi_wl=Olcg|NAk~nB+BZe1f672A2BS!Cs}Z8#^+Xi_GCk793{QTSn>OyerW9Y>qVh-O06N=S5cFqgDG zCO%5}*C67{njCZe7YmVlsY%?_K@8=g2u)cEaWlbc zCB;425E?Y%XW1aBT4_G05_9PFbw)oR5J$c+RVhQURK*urJJM9eBTqJjrmB;VnyQkb zPlO#G9jJ8@{-Z7D;UmQ{nwMV~KT&=fEoxGNM)YM-kMF)j`8FppmU=@TR(G|@5vbUB z>VN8IG|@i4eo`~Eeo8GNmF3})FRY)BNaAv?5L zqHOY_Bw1FgJlU!mOpvHn;p|5%HRgx3Iy_ougj9E_fY|qBKNeP|C;N#O2hr9IC#k@P zX#G6dPV;t%k{@kPc*-}{Adl$VLSY`!_bn~hZ*#fGMNBGM9F4b~;!j5yoiEJlG+&t2 zalSB1&b`Iv3(~!InJ-wPNjh{%vk`q|;eJHlZ5o#C(Xcd1SZqDQ@gEN+)7MqpQpD%$ z^t&vqRLsc)c}Wlwdlo0?biVQ#{_9ygncJRep;)y7577;i$T|fj(R5Bs0x}KNsdhW< zuE@=NA4uNLq{tRifOJ(7vst7qlWX@Zde=K}>kiUa$FlSkchU38q;($VceP5N-BUiJ zGGL#@3tD3tg@~8pO*>XJNc4F!!Z`C0JevOYQ!)~j5v$Bfbw;ZD2c)13uH?uZiwrv3 zxr@OF^HX;_zTQP6&-yC|<`6tgunxmKEDXvJA2`$kkPjJ{ydellA}YC^CH%djft)(R z6>fq1l3d%JdRn?Cpd_hK=(W)3AczZbx1gHRe&aG$(1C z?xH-&sI7eqIN_IUm(}#c$R5W0Fnr5QITI;!>a#kT!^%mW2T(4_OitExYUxDtH$IWA zNv@s2?Q-IMXT!-9R};#_(8qi-!~N44JR_Y~6{!qV@n#~=C+2Yvh%-U%pUV5v(&Op< zHacC#|0R<%`P@Q%WH?GB@O1ubsUW2AeA(%dB$~fRkP{%Ur|PupxpO^aswvw>^Z+2# zHEEn_xFDolN^#szRAfG>tt4e!-llp{8i^O1Quv(cPL3y}jOTGn_j-)v@X&}s+g$S9 zo+#f}ko9~=Tw#K;q*v$j%6bOv`-~d&7V0#Rs`ga(a*3&wq(lxbeDTKh9`vxO%GNK~ zHs3QY6CvFCq8;!(<8lz<($yCW6(N-TB|_SbAcso2FLZ209X$qeUlzp`VUt6Z-50yp zf*cobEll>peKGXOYOL_%Rr{$fC#n z;Oc?RJ!5jLA$yQzp4`YSoiXfs&JG zb2oM@3rz(3)fQ%JuO=WzM#`=yc?#=f zjF803%om5mo(S$(cD_VDn$qVR9?1m4!-Za_%zcUb3DjNWQLA`<@|h-&ny>Sd&oOz_ zGoGJ(k;!uz`TXQ7O&&Fm=OQ>6@gQE-S%W z6)MJ-{|aPlce(Gsbxfv#90NrHXjX?L9$JDB)kW*3xTK9Ebqm~1)>=#0iK9ij6GzK! zM^3Ck>%^?H5+W5k=6coterB2KQOOPI&n3=}x*@>BB%nLd(i;S7piCJmP^iIq= zWA^IA3>(wkiP-{^_OpXJ%kF5>%jBQKzX;VamBblPXCQ2#1t964@+Wz$GON2gi*_@M zmNJVwd0EyPW?B1}RV{X4wirl|U}Wi0c0i6%MFuJj)ENjHXaTTyEkEbJ)NQ!LJ*B>F z+zrtCQp@N(VJwa@{yWb&OG$s*EgSNS|%@={w#psuz!I zQ$j!g-@0EEeW#YvYB!8{sCE&N%%A;HUcOBLTODLWJ%jG&FBOck6D(Q3TTe9x^{&qHrczu_9BF@bVhA|DUE_7lSI;jht+=Wi* zM9-HQ-HQ#~Ix*j;e!tkzy%W#5FGGOj(n^N_g}VeO+$BKa&H-AYF~y1Ha_=R2qXbg! zx^y7r%1Z}QZoW8V^r_b0FuV+e^kPc%sn&ll*V`wLujqXHMDoAm?UVdJF`n#@KRRDz zKH}D8QrZ4b08Mn(3frF>nwwC$B zyWsDD9|LD}JCnIVF*7Wg$jNoC_!hPt?U*{AQ74Pp@slYxmcn6PVO!X`$A17yPo~JW z|DCv5(&wTpwV=FBVR>Id*FzRmJv}1$%enz)QshXAvw8g@hpF1KvBj)`9j^EE0N03K zjj8ZogYQZB)@XHZM6VA>13gG_cLv7*Sa^|!x{PTZd;c9zrgV7kR+287exMf-mm4J| zN6CQyQwjJ>CjsBU@ZX#Slt~Vw|ATD=oH4zuc^@RqyGcZuB6^M=6FrI|si%kOddMq(yP0I{-b2)uTug#Y z&d}M&(_$lj2u0U;@A-%X9MNm%agj(rZEkuJm?_`0TTKoV$R+HOF3}X-9XpJ|c=7e^ z(KMAbERpjWCAVi2gFzBONyD*{hBsOvlve{i1LSbX@0~O}3jRwc4JF-}=p7`hcH_D1 zD;%W5-pyE3mZE1ik#23^j9K*v3VRrK?1V)bJ4bOAM30>`f#^93WbN3Ao}+jLN{^lB z@hEu~{e9=yi6ot#%;`b#=fsH|IMMSapK;v8ea}%%mgeIUorImF(@teTpV!A^dCXZIqg~)Gscn$bxW-n;XmsV!M0AlySI1tvUeuju(b>r^_ecG>xg&sgs&vGuMJTkk6AxZYI~U+)49lVh^p1=<4o zf8Tl+*`aHw^pm=PNt3JVU1Zz5Xl7^@k^YuNWVUC(ep}|UETX?V)=m~l*3bl=Bsbaf zmn>pE3xg4T+sUU9eNXb1i?g1E9*@si&#L&m^{k1yo)sO>%Ag`aMkNfmGXh)3Fb-vu zx%GeXb}sNyRoBALBojz5@k9+8ThL&!GCnG?*k%OU49vh8orqN^+T!CDOJCkXLk8L! z2w@V!@o<1zUu}KeYrXZhwLV%AZPl3od4OUmWS3R#VG4$M2+3`Zv_=M37%YF&XKSZ-??3!+l zNlgKc{;kbPFV0A0ByziBAK;&;W*2CdksC9H$hqraqB)F) zV_^S;f8~4-(zNAw0y4k$D&AmToz6u`uil>NGqyx}+;eldda&zVAQ&(X_#(TcHzLTI z6BWtokKqyIun!@~o`|Y|Y4(%H9pHYn$qo!XL?C3W*Np?xfRsER(4G&30A$5hU?NDB7)2Ds(k1C>9x)*7?C++z=afBVdHjjgeL1x8z} zD@S{^1z#-OpAzfLF4JCp&(p-q`dC-C(dv7~7e-vgAml z$5lBc#lM)tUNpE-tRNPrd0hYa%#LIud3`A9IhuGutdq}CJ~z^K4|f!-k-5b6f1g0`1jJ zGN0y;(}J*BHepTTN37_1g8z_^`md=*3<$BeWM=vAgj`& zAKftk|GBAOKAR9^0}oN#?2R5lf$UD z?^MJ1ac*mH<{Li4y)QB`w9i>)@=#h(~gc18r8ND zk30~IlDzZecj|d=h=!aOt2oF{oPA=vmDR91Z>9WBT?u(AEeV~+H%W|4?sSPmE5%6* zsYgRzATet)!w<`$-!YQQtttwsiuOxIQrqmIIt`(+2L9GdX1A&^w6Z`4v1%`1s&zew zyNr@e6cm0j-jz;2llXqq4Z3mMG@r`L$dKzOGTL|A=ijr7c&lr9Ngmpi=6fQoq$v0H zRZj8U^MHhFqgw6bWT-`-@|1wc92+#h5;V_C487sq{ES6^Z6i^J@17;{)aw4gOVFy$ zk!)8ZgX64oPS-BUAFUkbTlA_FnW5E=7xA1b$ylEls`VG7)lTCR301Ln8M<|Mj+FCq z28~P%-Sv)CyGa#PH=5L4H%dk3*QJT)xh43O_#obO^UM0oHa)gGv-9r%%ssiOwbK9` zt@?VhcsYyxl3m5T{wnC1R29A^XuXz0;nJ~DQlGU-UgOo$Tiu#V>v-)vTUDeQ=j5zx zq>}4&>#vgB$rZF7lsBig993Jpbcj6i3{RBWVB4g&cj>j{Vodh7PCBF0U$CRU`%S_2tL;+PUR-xfxx<`1q;<<-7kO zeM$$VR`(oya#w|L(dO6EhWBA|I+&={y~bRKpB=OorVY#8DuF7i@)EF1g|u41`hg?k z;Mjt<1vUzvT5Sob$m6`7;pFKDtCJ_F@+f#{b%RLN^)-I%zMQ4{l0H6K-3;kVAwPDK zPo9)Mq=Qqdds>owUy>*QZ6FC4B6Dbnny9{|_3}cTOqU@M`6W(0Y`h&3k**S_9yWFj ziAY0;Q;&O=NS#9>@=KgNx*8ddp!KTY*8nsd)87rPu8VfXizFGK7=Ri1Dw*m^<#-@x zhdw_LFOlH z&Ldj4hM)K|kFi-=Z8@Z%^SmiNa&hzHhh)c=9o!~KvKtPow~6-KVRcVY_IUg4i}u@B z?KdGORkdujK-$RumHo!8bn+Ir-`=rX_P+i0sD>;WXDF@oX9DRYtj@-X-95)@kX~l5 zx04<^%l^ELqz@K2+1O{p^j8mEWv7{qM>;8DCuz<($4O6`cStk*-|aNtKCeH`dqeGT zCuu$+%@xb-G)Hk$mn_FDvcvmH!@jHf>Yv+b&KcgH=916bVYXLyvDL30KZ`W7E%DQk z-+!S$;g^c-FuRw#*t1njK ze;-frB@Q+XFG(a?c@FKo5Jz}oqmYp}hxhEx+u5NjhvV5#{zXP={C~(pcCoj1UG_w7 z2KFxOh1rMC|5vq$m$Vo?irwqyZ;dU9SlfrLXiZ-N;xm80u}QbC9z0a`$CqL&ceDEe z*(28^G8m$YvPAQUZY!@WwkylSRnYE(+NCW<_d#8|6g~HCoQYs3O=@NIX2(Z6^Zz|J zSb!B;`PqLIGrs)dopK4bvC$WEC0tT6oB^yo{>zKlR!G#rZGjzGXTsC(GJ zI`P2Y*x2@o>0gnx+4v=sa3V9=j1ls8UHzLV#~s%QK?2L1W4_dP5<&7bL#TE zEGiQ>p=}?sOKOm6X=&Ef6?xKHqBcomwM!e4Z4G)`!fT|hMN)#~ZtLP+4?827Z&uAc zS^pXNs7N=$&APE5%0`GLwFH}*GJ5fWS%UOa?2&ad5S?WHrBqgQ!p#%RhgDeE_=$ek zAs>i9ujfx^uvhsOGqQoOi47o(yVhV(8FzgiFYlTI190^6NS(Z?jX) z{|-eAmm(^PeyvS^0lgQv?xGz;)Q~;)u8{vcgAdFw%tO z!5HRU{E}2VtYl$6*SpEIcEU4A=&R|KcB_i#U*R{Pcli;!g2EbK%?Z`1%lrlkiL<6P zCx(8V(rERx=J>^aV{c;UmAuc=MzuOg=i_R&lOoEJZB!6o8niNq)GmW4lLJf#@75Nj z?RS)XI3*us!i)+U-2roy-sFP-FeFVr77BUFe9h<=9_q#fB##rEk1{DTB7K?KGI5n= zgg5()1A!7`+S6NnuS!ncnD(r0l&=oq2RvkyH>dXV6U|}I`n~b+d43}vOf(`%34hep zP7X(Y7%+PAG+XXE9H{%aatxpXH`lo)WspLpqv`o9d(KYV5k|+)1$g*y^V`k;*9KWZ}?>b@-3K&NP zJ5-)6N}k2w4+y z=-IXO49~nlV~cKVK>kS=bz^(TIOsQyC;O&d+AgX8>+VI4pVGS{G*x1>&qskZx2O(w%PqY5SLsd{i1V zj`_{61+u)srZR36zB&U zhC#z}&~RGwtd$eYVSk#KHS9nA-s9nO09r7yuH5@!xYNNwM3#pY{(Tg{3!H<0O)g)K z=>z}v`(2#|0plm&pDq6e{}2%mec>z{FpJ|CGfF|fkw^^v*+#*?Y2aTu_(vm58e^6} z1+;QM8wYd!-k&KP{24gdorZ&(>Z02H4L;Ynm4br_a4=}Oqvlk>!GnI+hX$d5@rhuE z>XTL{E;)HsICx0?qpn@mY29P`4pj*D2l0@83?}En0 za${{`=>2cxXOtT|L&kw*ufRS@cPjP`=orEYuuprefvJ@cg!8!ypDh9V)JxDBv)?u2 zft-QJ_YJ3Y3i&|(^Qjx;mx|Mn&js?84n)3_@lQ!l{}UYX87*Q@7P%KZE9uZ7{71Ky zTYeXAew+2k&aBFdh&X9I&3iN}?=d6q*QhJ>L^QlF7~xWa#owm1pl3TigMN+NZR(>U ze0waf*~Op6-x! zQ+LQ{)$u*(x5`|?Lm;@-YM-OK2JwKuP0)7jZpy_HQ;9mka z)Ca>@UAUMZ|6=*-uP;_9NAo*%NpULaXea5^#e63%qOE8FM% z9_HE2vzuox&t7xPFI;0*Dm99?Exf&JJ+&i-R0<^@(#8gnHu|jzYE;+-Xtlp5MbIik z-q@N}zQF21f%1cDJRV2_`2lA( zkI(~*hlm=Z>ErQ_>PVFv^5Tj2WyXWy*d)WTF8-(TW?}u!Uy4%=Zzrn3*Fl@uZY?#?sPM@_>MFnZI_|! z`kjL4rpWGYq58A4Gh0O}Iy-+z4)zbJ@&Q2Mivpk*0hk=FiSOizW-iVqvJcCV(gGs; zP_~yAz~xns#7#i;UC#lY#vI*yF#KA`%Zzz~y3$%u`6a)Z_n_a{ShEqmO-7A~M_e@@ zh!V$FvrD3Uxd;44-Y;me9@*#$dRr@J20aHsp6A?}tZq@W;6z+Hz113|ROLW7$X4esG32IHZK@SlLA zzqnbedr|?k5&cj%Bo;W{`Gy0~GgdhOy>TCbm4L5s2|sr(ky(4WLwd=9n)tK9`OW}v ziV;}~oTxg{Ujju6=n?Zf8=R=Zt1D|{*5?Ghjp3!`-p0zw%+Euqo=b@F0Nr5YXU!e~ zdv5y#W7sc(iH34-Yxu7$cggid$shjp(5z|Z7Q+>DiZW!4R9}X87i_vtCRIjQISW~CkA`f9aCtu1x63ol9g;?ovZDMuvukY9G|KLR?UanNA15?Guw? zMnc#MNzj2sNe@F7$3R8saSyWS(gJata=9}A4dEw*X8dpP;{`K=A=f%T>6%k?KgyPsYs zXG5X03Z6U}>;=#!*H0$_{o9iP{lqgipugQ{13JroAAVgY@BQNsq(`dx@V^i4-}ZyM zzdqK!2marH`$@SdQ_0(uwN&Uc;d{MMnBmo!F}G!x*wc{HS)oxG7BjfHAmS@SHD-lS`uWQQqO46*{ASDJ}REbRLsJX9eHy zpR^xpc$}m56bOSH7)6s!{=#JOq@+P1i5!XF>GeopW6%*ms}%% zr`AYE{%qT$4TNwy{|2}5Pcm>P!B-eKhfwVKqYdBRtg+!c(S9FpzJD@&ZTww=b%;Q4 zA29BRFJS9~2+STS@a2nwFSJCF3xV$ddVM$zzKvnv+vt#sbo_O%0)JN_v|L}((Dq@? zZlTk@5iy^u4H&=J&n9nhCTbT*{ht1A1tTnBloe^_OG*G_<-d!wRLG1Hk%#eXRN21x*$resgKep zXMZ=ztXvK$FI+y!yfd|^j$7e34*5$u+Tt~PWViw&cKBR7{Kjs7$)@BG21ac5xidhk*B(?~&0c%O-8#t_=d8F|-475DiGb`j z-|e>lij+PeXe5Ny^kgAWW$WnhMLQT{EJA2*wnz2i4>22&m@EFR%??~$8npvM zuaq}zH4UHB^u%;5dDYjuA?iUSj<)sBQdD~}fwl5gmt*t_m51$j&R=wjnWNbgWT?=jS9CX}!;17PE-)Jzl zYO6N+Js%qFazo?W0c}-7z|+YGbpd0mryaG4-__w+!_|A9J*X8!=7QFVNDb;b7H0X3 z9wTP2JAPx6!?N1zPMYwbf8oh(Mrto>kIW#^UxvKIgjZ{I?}=!VnRKf?my-JAwE46? zXdDe1CuCMll3CSnAN^%?XxM)~AG89@s;Ms^Uz#G*>qP`kGOa|uaBoA%+pf6T7RAi6 z<7mg$lo2aN#&AH*DP>{Jjzeb9K1axK^{RvR3>shV$Z>|c-?L+e-;D{2B))jl-|Rs4 z&zzY2=nm*B2v!L_5fSw>(p0rAt{Cp!%gOT~h7w!CMb5KD=k1?I|8 z#EQ3MChmg~E-jSJON_VD3@{$Aei9P$%rqs76OV%s@t;YaxA;*-NoppiR7*5_qS8WM zouZ^3nf9d_O!B^N-t3}??~ylgJTkCV90C!lKs2G!LP>ywcz*U$fSSat!(t!K=|2*w zxh*{c1acm*qD|#x_LUaO>!(Gm+FdrJn0^%p3;2<{0^;;d49M+C3fwpeM=jCh6ctA| z;`hEsO#kIXfXq>>ISUs%8#JwMwwj~|wAvvIHCsmX=aVru=tYUTf@!C%dQ)4~KGF1B zy*{H+Th+_#*ct0AVs6T&EK1PBZjFb1b@9RS z2y<>n?31FJBdjMGc0O&wA=fd#ffabdbIf=%wy&t>sQP+LtRuAv$Fx-&{I1I?|KzV@0gT zTx@qDhTqfSOgNX5_KKTdvSacS*rZ7Ap_3$y8ec)A%Ek8lTP!brHUGf0eJmywTpS42 z5E3R_#Mgp2_RQQUpFu`h_IfzHAO|ul+AbuS1a`RykWa09`^1Nhtek3^It!-S)0P(U z#w3>sC6i3nkkSka5N}RBG6g8TqFqXrz#b_TJXgn8_DNz@s-#o3(;OxcGet^}YadE8 zXfMY@B_vZq+A8_g{FYKBuv#C9PW0nbMTXo9tLRV6&YgHOhl(#U?3<0_>8c z9&s(T?}KFfqz$|Iyjj{Ol957rlj9(91^KCUj7G(Q)Jz7N@%PB1Zk3=v_DrUiEbuJ0 zoA~LVK|MmZ#FNp*e4gdwzT!R`iz4t?KKD0L{^uhYZJEkjXuBU z1LJ6H--WKDZ3(obMqeyNC=&K`KRVH@Vx}|a_s4b>vv+fzW}92J zMHZf|_FPw-YHrg+W889EPOsJNJZY|{`FFSo2C)Nt`MM+t>U{xb-(#&yO72 z$y941}HR%tq1wMY;#u7f^Aq0DHLOdaNtc^0`n; z>zrq*T|!zNwKNuXC9uo0vsXT%_Ir6N*zQeT!E6*a(&`$RZc%6Etx!{v80cEJ@V6wQ z+#J-Knc+q;t^7PW-I9zH_#yZ@1(H-oSfiR z&}euK4rSH)LVtSP+Oh{^SNH1V%-GIzaF7xe@bW&GSMAj)E*7f`GcqhUHHqgJj<|6h zu(}?Q>WAKcOlqDz{8o{zr_X;Hc<1u{eELXQ2#fSSTMLm4{NzXuFMO%kLeG04aUF+f zJHnZ2GSE%7*s+CC_G$E@HJo|t8tKEB<(`IHyQVjDdG&>hXs^=8r1()eHRfmLpcT}X zjU^B={}m?S)ormoS=x&ow470-S43@(?U7zWx9Le}=BCih9q{YH*q%%=Op>MVUO5Iy zAioQVNYH>w6#nF|V!M+@-((59^WmNHsCroXnd};znf4RmliokT9|Nma9nlDi*L}|J zK~p<<;jbI&+>MY#L82SZtfC!|bRU-_ieY2T`q5qxbm30it@#puA>ZrPx>BLcR46MI za;HMssnDQQXs`;gTgnj*eEC;Ekzk^!-1Sbm_o!BPo?r}sA6z*?pNT>3xCcd_zdKX+ zY&9DCHw0Z;%V+Nokf$&jImyuwQVZClv7L+rxaHtiXl74n<`y6RU?^UhH*vp0yTYZR zKWVVxJ^-K8U6d!ozgEHju3CXV9H#=G$fguP0ipK(PT`Zk6n?PFQ~R2osc!` zG1Py*4kp%MQS`A7i=v8<-?JUH-mmkn6>FkvtxBwkn9~{NjF%5*&3N^&F=O>%!rg?s z33n6jCEQE6*Bth8*05KNVXN_U>GmEAZ%9dduD6EW3(L#m;{P=Y*f9@=tg6QdjC?@1 zW<2UH_Z~-j(-ibJ+7g`(rIlSP0-ajW9y|4f2y;9GV=)G2<7X!$oS4!p~ic8YP^@H#(Q~cyoKu8|!r{GJweCIL@#WEbW~N4KZVSJVBN3qXJgvG5_m z1Z}Yx26;FZ8WO8AzgU%}r^l|$g?*WcO&L$@%AW1ziA~wFSgVRb8AdE`$A6F-uLj0{ z2x_zCj8|wy0W0kQ`XM8OK2IKbhWt)7`$x=7jhJbVm?_IGlD}}X8nNLFmS{cF+LxLs z(~uxzZ>%eUNS~N#Vj<4SnY%^*gR$}~%@cS$8CcnmKNGdt!~S%L-@<30UaU{^vP+eO zcx!aLm|%vlz$?bqx&&OvG_0sZ!RMG}hK+9Ms5{bCLtGLcWy~c5YsWR`Zgx5O$b9Rw zTCG^|IhlV#qW6UGwHjbYfjg44>c;Z2_RFbsT74#A14m6H={kq7GV+GeyZg7c3;aQ`)aZ8GD8WX4;crNd6{iRQRJB}>2*bFn&io6J#= z%yF8ka-^y&ovH@gRTU*OZhhkPZKPfq3-NAR9e7+?oJTQQ?MG?-UPoBK``50GX}zvX zmYCl7WW&WRMtf$U?(bS{JwxJH#m_&>Hi)l4Q6=rGi5Fw^o^0Zne^ekX`;&s@Sf_(x zqkO4T&g%H^WFhwj11o`H<#&?s8v^_kqQ}oo z1Kja{lRlq}dVi9Eth~f-kG5niBsK}8^`~awkhMElb3$$H7FTeL!)e7e=SH(+Fk_Av zny5>>(kw)vpqk7F^|>L_)nt40B|$3**0|Q#HLE)3U!k0J{2Z+g%`dF6p+E0(uBWxK z$I%*cOpA*1x*t!A#=k)1C8~+k(&~)VW_4Dh)GonYwMnf>zDs$^I@!&h#yRs(K_oO>Ho$uBQlQ=}I0 zxqzSR0gBz4k`}u?_r)x?#SS;a+ggp3a4Ykv^W7>e~`Sh7FCVu)w{5%rY)0F9kG zct2tmSb{r5(z6F&SD@<;;P~Y_qwkAU_$}hVj~{di_f-SEt)5XMtMSyDo&4Talj6Rf zV=*;+UL>Ng)10npG)1-P1>SHTVNKc}>va1qcbz~2F#>GZg{zAttWAl*!tKKrn(w-c zmb2+(y{IE+x%Cal7Md;`SJpYR^Rw)(4DDD>m-_Xs^k>*$+sz)(CTwPOr zM}Z`{^E~O`fHcnc?-xs=(e$s3{?SJ~8vI`M?+)74wVWT-KUp^wbMVcZ(z@x-$o!}J z_=5p`MDClM&(b(?n=p4jqqH?@$fdw+U6TGXE)Zc;Mn0hAWW*%5r1nc!J|p>UIRnz? z;SW*_+3jB4N3SZc99ZEt#O*t&FzQq>NGaVjlGWel=Ae|!8t}MA^y`Alb<1fEX3;@o zy_7f`{BaA4WzWF|iBZV@sd|bGqoPevjX*qq;xd*exaJ}8uQAGuqU8N@vNdmI-{fTe zjj6_*JpYnEMaBIfdpb`>i9;IIWd&(1QZuUpCeDwQysOFY+1T~Y%W`;clbrVu96ghd zU8Vda;VnZ5=~M!ejr1clvmuy>VmCin?L?V($bF*6gGNIz_F-ngHh9lM6qGkN&o=4* zVb==sv1v+_d)jPc*~xE<@zo-tY3A&_dgLDv+3GxuSmj`X^BSrVQW&Z)PQ8PAypK-3 z3l=h7F?V=1*6Nj)>UhKn%Fb(c_TRUs?7Q*+wq3qUrDqS;1$)l+rq^dnR#OFyI+r>Wr^Rzftb9STYZULY4o8V9t+MOw^sKMow#+)XMhEAl#j3Gdgy<@h(uMX>|+8*7dm4QG3h>&{uUfByR~lQ-V4f zbiX={5|TqGD$=ip-Z_6FCr_MMK>&aKXnsRWKm#YX9}U#`lTi*D*!mWkY^2W{l&mj> z1b^=bmx$K@*6d#?U~w?(bXbs*f7w}SIMeF)|S<~M+TLMb=Rz9S0Vw`RW{}H}d{TN(VteDV`!$?0J`_Rym{Zu}63D#Oj znm*$9&iehNfwS2ehs$BVDPqlThtt`KT2^iZjmrO-QQ{l?YbXO zZ60;{Hp_7I&!7JBsG6GIUVnOfrHxZnOOcGxQr7vM$XK~GUFjBkk@|MOPOCzS^HQy9 zI;BpeTRys^Zb1ZKKeh~9&K4IJtP#BQKjOw#W# zIgilvIk6rhkbwUX4aE`Q{-aNbJS3?aNVSGY*2Ou8NcBT7;t1yUa{KEnr2v*GbW(R} zPwCEuc6V<6tnRRXN}JE&{;}8>P3uo;JkTK7x6=s;Qk}d@gxaN}8G{pt*lW=#xl^ii zG=M)wr{u0axuy7fB zf|QO9EkSIyaB4kLI=M=jctN0_VB(+@eR4zYcVje==TF4YKyEYno}drF-ZHhO8-^!S z2<9K{miF~CYfU)EhpGAg>02slUwXdpk;@=L(pk z7;9;RJA5Avs=NZ8c7>dJW{oSO6;zi?7|K_g(Mn~gN~&{J7TDz7jt(`ceY7>G|M`0n z6s7Tt1N4t_&OqrO0|XrXBg)1sq&#c5za|Pw+8RhvN)ow2ZsL{5&rn1D;T=FFYRKm$ zAa_xTLCup3)vo92kMFm2WU2F@r_)bX+4{-5lzvj|!IX{}sf2{+c^rfjrQ|hd_WoXe zKjOFaG8B@^x=i$BqQC5h4xp3NI{HLxj1$F_CXxg9j!v>ErHO1xX(F3an#iV&T#e2#P}0#yG6;yUlOuCFjby!? zX$0!k_a!xwDR`ewA34L;N8YLQk#I<&brij@oIohO3?eHkNTsB#*jyk{XePU{uL06Z z6S?YtRTKF`1<{ly^12j6|B)s#434L?YAIquKNesfBmiDPFZ2PG{bPpes7sB1wiNNTY^8JEE(F$Wi> zI;L|ksdrDC?m3{ljzLm#uCwmL%A^oV^Gs{7CMrRI^kdc`?uS;xA{QKw8tPWz8N^pb zsWUb!sQs8p{v8l^1_)f$frF*@*Zxt>o*Pb~JEaH=OQ(i3_yuqUc1Nqb!7zwOUI zz<=BR=_mPb%fF9k#P;K7@xUDyhm6NT<-aKe*~lNfOg`q15;2wVKC}kB?<_nUUZ>;;4nazAe$vquLm(RP zZe2KZKs2Ry{f;l_32;+|Oc>FQvB$4Hvnx1rt?p`A&9@A{2e(bib+oKuMqrUXGsa^n zW?$tqcL!&#;bmpedssL22etCGAyIOJg&u^!O<4g?(*!H86x;EK{P?qdn1Spp#zRR? z^U}apoUg17a zj1+#V@Wz5c_d}%XkZ&rn3VkfEM?j3bwt#tQ`zvaB;RZ;A{*W9&5Vhd!J0lRO*-zg= zENf3`necxll^Xlk(z5p@rX)|JL9-!hrDagJ(lXesKH3k>V}-#lwdC4Jjof)jp>In5 zsv+c;duU6`_7N#p5SEr)K7=@NNlyvHQPynL7>enWJ48y$nk3ko3UU~NQg@Oo)ta=> zVI)SPz(q@p*YJy^{iHt3&z#2VCD_PMX=YS{a^=gM_pg`Y#b7d1mRU?diHxgA$arby z#}X-y@aHtC$R>%5;vk3;7D9&PX4^R%t|uUTNv4eE!uRE8A5rLp=WLa4V&R=BL%Xm+ ze#AU_;TDGJafYi|_m;0V!>!@TU813wwNf_~&RXsw@Y>3Mg>9}WN75Fo&N0HRy79;y z87#a}RSa3QU~7g}`-c;}W5kcUo0TNi6C(cZUk`m&CIr9Ud#mn^`i0*bsVN1x^ z$|Iq(2zcMKSC7M(vc;=@w0<0RL4GUmUWhI3k@21P%%PG^A^8gP={ggDc^t0j4^pA_L$r4#V(<^(kA;fH`I~(4W%7 z&y78P;|N1=z;z&C><{3=&hLsc92*0!E}{>*c1T>nwR5sH?kl99eOxjf$H5a{-*s)r ztr!V*`&~Q96c4!GAo^_=r-q){9dNCkYz>qq zJ1+27%{~D=m5Q9giMsZLYdbO9RUNyimm+pi6`!W}*)<#_^_GC^L!u`1x$x!l%zo94 zZGM+jxGmsP8Qg3|Xg>`9_Nasn<%(R8ut_)izyK(r z`zn3BVqVm8AN~!ld6kKa_RO0oY~f8H+Pde>fYAvoLR#?6DHa+E*q0z&O31ZFM-lUy z&AuGPPEL1`X&?47lBf{<+%qjY%dE}4D1@BwbpM(^Nrh7g*(3;g3ipz(-c9kJ!jIu* z{%qSf(A+awV@jf3=fdWSADRFj5pgIHw64V^k4%k}qaoG@@G*J^})%?P6K_iY@1m{&*bkypEBx_iXuIu7qIc%w@GP- ztO+~yhy2#HC}noBn(h00GM%V5S$ejygV;ttT?W+XBSEx!!#!g zlAdjB?BcSrj^;((437qScIZseE6vcbk_#3iBw;Y+R`b5M#2##gFA^I~346%B%c)d$ z)VAQ|u8X z8GQ34#8&}kcJ1Ys`;34K-1#x|(SIgxghCqlwXa1{&=kJYl#;3E%W7XT?0osXvq-&M zUSy-CTq2Uf1{)v2EHS(52s6Th7IR{PA0Ub>{oKJ9;IfC3kgJi~9B=~z^-fH z1!)F(HgKZ_{Cpzn_cnz0rk&5m>gJNxQ4WOA#cQEv&mf_;2IBcx=} zpUP>CPvx-1rwuTpl55yt)@1lr36B|~V^u<){KV_3lsGBh0t2}3j=(V_MRFne3HXRl z!HvF;c(QuQy!#X;Lk@|Rj?OD33FV$ep;DYS`{I~g8kw;ec9CEYWi7iqXO_R&W z`(WKZ1x8FNS|`vmB!Ug{Qk=-h3P zFuARDo!ADgYnE~TG$!}6ud~gA)-`8vP^DZQq;=B!24;ZGJWYoEln+a-%I_mErx^xR z@N{80-IsGe_9p^qpSo$@?5O<>o|RDA$6no9(AoKo{cwVjwZ+cOq4q9b=-Ev-7>CTk zY^Y;BIhcjzCK_DR-JVvCot_uzSy(*^<5Ni6jo;480Pk7ChQ7#IFRq;^Fb21O&+VF$ zw=lbt^Bfr%C#l`v$@kIs@Bc8H_nH2YZl5`IWS(_xj?viOXB=wZBc{ScM;f|)249SW zi+U2_AxM!%=5+0)ATVDsL2$Im z%MC*1M&-z2uIxC{=&C%ED>5o`r3D3j{vsTuR*lTbSXg3g;bd@U4ktQffJA;7G(#f` zmb%Z!qSZ$*2U8pAQVtigRPTvr8e3EuWlP5tks@f&t$41l$v<+GwDlAgvrO@qYJ4<& zD0i#TiMl4cJsg2D21mLVR*zKsfQwtyh~yZ9+rH;EC+D$SHKyd%MSq&z`Ey}#k|U$! zHIDqtXB^=Gymf6t`Mzx5!#!9#njtU)_*0*$D)!eMsvLp|v{SXuuKQyBAxNPc%dWvb z>h;+b`|O$#nhhIv`js)NO@qyFRT*JiyMxR-pAsrO2ovNOI>Y~pGWJo73 zSDh@QbySC6=Rk(9?Yq<$kdFF{a_K4c?d!Ctk218{9e{JPHS+7c{PcUOgMPV#C1hRQ zBc5+k>qoL;f8CzbRs2P}hok>Nm7lY_xGMf*PIUVsue%1+woGbE-)}h`{h!zOd+ZVc z>8ewZWf5KO-;ZE@Y#ir0;^U0~?X0Y(iKFDR-ZZh;d2%vJy(=fQju&H`Qh!^o=~L6_ zHTh*4^*Ph1uXE>FGL6=jV~ly3Zr-G3kfvJ`3v_dI$k^L?Zh-xzd3QnQd1v<~LdHxc z*4@SNAyh5Mjm!f>>l7lS=@SGWZsP8?K6P5kciHuMDU2K+qWJ^icc$Qp&lps5>;$D& zJ2+TMjIV7LI5Ek_iR&GlINJF$t~CH)>wHap1%X} zQ~4b}&h9O8cOD{x2gpqai*$2hF&0f<6%sTP(N60rG$;wY?iBEzC=lSSE5|kRbxGjm z>E>L3w6F7>i4Nr6B~{4yk%F9EQ@Azm4w=Nb_Tl!p^LbK+Tyu+je-oI-2RpzOlVa7C zw8Qy}NZ`;9P(cV-sT!T1Q3rVN5AlKTqR#;mmractf889c8-r*W4b#oZMfzn3^Rt*t#-t+JNizrTe@HV5!Dlzm zVxId|9wX4nlRSZ)Ql2>l{XzLQUR!l@kZxYjE3uQvNM=TfXEDzrp3Fa~Ofr+plpK0LSx*zd5%GkuPZ{t1vJiyOw8GtqNX&QZxf3gauEL@xxY>I z&pD4$B(6DRpC2;6>NmfagUk0~9EBU<*R^HusLl#_Z>NH{xz(U`WeAgRJl<$a9#J2e zIL5l5=Tp6=!G^@akn2O7Qlp>|V62}vPq&5z^|rX~ZHFa$Td!Fo(^|(YG&!wxV@Kx$ zX9zHChHM!HLlqgI*2;5qa}Kix7<|~-{51iJ4DL@0I@ggwHy1ELss%V#3KoQ1=$UUX zo?`j0M6QlBaCC^+VC<7(gqkCFhA=me^nTrEysoW~^NjH0IC#L70U#4~`T(b|sL7|M7YAccfv3V3b7GFA4~`wnl6$tyxnSAdVBU2_;+R2@ zgxfRv;2pgO=jYZ%tLJvDrLSPiJcTV=!IqxSz?SfkB(`X^Vo`ZA#{6NtgE4<3pw}OnH;FK`3m4^e(S_f)R$_B%c4mJn8 z8!HQZOW_wA(Z9dhE2bIi{T{TRpA0B(>7d3*u8gIVG8^%SvviWXaZ)x9 zA_w!xX`GbHV@TtqGkD}RPRi$TX5%D{1-G#v(vTC5V&p6b=2Gpm%j0t<2j&h=vF-|F z28@lsMO)S;=LZkbt@Qq=z6upneZ9lC`ctODYFJionG}7Y&&s29HcA>ge|F8W zdkAXF@3$jd)vEiE=sf;g%jc2PXWe&|JZl;xC0?O>#HwS#Ur+`Fte*pxExPN7ur;5* zCO3m7F34o+I{PEl(o1M*Jmjls5DqS|bQ(gSb*XL)k&jnOQ_k|a8j@dCzJ0ViUKltj zb~~}5%l@@B*!HnpEirI552SxJABmsnaxR-RtQ>k^yl|M>bmJ8<@z%}k#xs%UnHjPQ z1!rEM8}}DWJlY6o*7aVdTwO=Vcwsb=+R|CjHTG48a@&C7WfZYN}-rw`L_uI=GwI zc%+Qi{_#g{Rr&dVcigYTL-8gNpzbT_oJVg$rYhWNv0^Etcz3`Yr`-KJMKAm7UTW}}nLexhgovdKtB43Lmn76J z@UyNPO0a;)kahRDA#3J&A!{N^-WE}Femr14lzX>Vo-uLJxHC~rO=T*X7X`= zDBh*MOo!joBYU&Bjqm7t>GQ#74P!IsrhgmtL{oUbq&GgbFB6RlZg}Fl`GV?-=M!Q6 zJn@jx6!Hio7xH|#(l|!$d$?{>esSr=?*aK`M)o3C9))H)!YYyrfC_uTLmXi^A6BkvTnV`VmFhCR0?iuSnxDh-0o)+qfB;1-6 zA>Nl*haM(!!mTa7iiR?K+B#j$_>evNX_wrr8bnMBn}ZTh#wb-=Iz0W>+#(KPRQsPh zY(M^P%|)E7-sP89Id&nR)vK{1{S9ap1GSyX9_uf1%kCFLSdn;og6fI_KQm0s^isJ= z*NuQa+*R&dagpvQ^_Dh?GELWUQ_8<>EMKgoe z`;Cxyf8}sE7ZgxfPAsOqky7yeUF4SN?Gi2F{X#Np&xK^7KE^Zy8zQ&v0vvThCWF@X z%!oRHaU?pJqpa6l+JenU z$k^k^Pl86Q++Yiganvq%5Qhx(MW-qS7_%@-H~m>`ie3@$=!Rc|`zzFfNU5M_(nhlM z$>qzj50EmrzpR^;UnWWAdGL?!^Ze!*&7U>qJgl?~OGp6c3$v<*!)%v;ON(fHhTnVD zyga!+M3BMTT+MAwZv&w zFLz#+Gs&pBEU(X-J^&Ck#&b*5a?&M+(@uY!F9BC{Y@P51+6v)Ex_+xt z_#x&=qD=b~CYhF?4ubh+wf>??DEWrcK#4YLJcwR89)*(_okY9CyW|xWfl^79j)y0j z6BF|iiCY+jmUdbZ!=U~cLVPM^Gvz@`wQ?qK_u1c!WLOuvgUqWZd2v}+|THE*RS{y z#Ao&hZrR3H%7#fUx)ZAgVOCh}#h@vwZchyv8+Fgdl1<#CU681KMJnT(?E+U?I5RDr z<%DG+U{8&y5+vnf-PNj#w}=7#r?~s2IPtIq5Bv#(JC#@S{+s3Zg&Fc|-66k^h|?AG zmGAQlUfiV~PYM|P<|~!z@xo8legUvmh;)%s*IMoyth}?aBXdQK!0SzF%%m|4TF88IG)cAPn|Uus zF@Zq>MwjD%gM;@txaZg-GcKFh1B4fL$v%75%E{<2M^7;QkE}#;KEVh*vQlm^XMfpI z`D34TT>`6ZKO07P3>PC1^H~)MhLJ*?`5_mGYY6?vd9Ca6+V|#e6+fqLJFbwpoc7(h zJ)#m>(=AIw>(LHTr=AnpDVf}*FNp-!!xiPZwm%cRzO;X+R3fvuVPlTEVFRy+-=t@- z<6q6P+3~S~*6^iz&01mJWt-{v9~JbL1#Tav<)G@_$C#*3@YC6J1v2k`dv){7)s&a; zYV*%k6uv^kVzs1Y>?F7LNX+u*a=lLqUa9@U)SGZZgu2E!jKomHaHtqY&swR^?8f-R z9dhku&uOsdK4@(3#Dx~@@Z>xpy5-h5gwTFB>3_C~NVjk4utEKM<5c-d9#iwt(qa)v zV{B+e-(v;BEv)E6`sn;MnW?>qZoSfqz}mhix$$zyC=o}K5id9q`y_&Wbmwo0kds|U zwAv=XE&7nzlUsJ8->L?w-M^v1%PQd;j|a)+W}QCtn(XB{)JYEB@HUn_|k3M)5=9|w{er;&4kZ-cwH-_XU%Z|Ez8qfCkHz6EElYpSgi%mKz6bvi!D_^m=Dc43dx zNiM2{{5?fT!&nb{l~-iovb2ZmUYD=f&>B0B;vYzOC;6hwiTfiAK=bWHep!@7e|(6cd#b3nE3`$Wl_XVlFhR3ct>vK#*Z5)W7(C8a>sP(zji zx{QJ~>ZDPqA_DeF##=YKg{3QlpWC(I8mllvU8i~}<|qnSZwPui{LQE~fx#OBF|d~z z{-uU_NZ^?7+pBh&_tgnyzyj?Wrv#%Bb436OT5m*3N|t4B+2eCoGH`S4TLNI3ZU>BI z3PY@fJjD%tQ@w`AvT*B6^4Y@nfKLghAxo) zzPF@0ir(NhD=H5K+HAgZI*M7qKI z?<(H(ei=Kz_e0YXQp~!bNX@ceFmO0ZfUG{{s=NdUydWgX2BzJV?29iGf^m6tY3m-46_rtbH{0wz;iwJcv+u{1AJCZunNMav!7yCyAJ3u;0C@i@1}b8$y9$O)+#Z* zDVpFP-2KrbC^_fmV(ogM>&ovsHCtEbNlX6yS`P7-*cYGQ+Ep+!O^*z#51ZdPvC)-b zM267?M>m*aY^L56G&b8_&wS<*@ug(MaD)pLd|7_bs@)$uvNlJ%FX}t8B+lpJ%1rU* z@%PHn4FBciky2R$T<3TAbNA>--;6$#qHXIC;Je-ndfo}|_8BTsimghkT(9{^_;vQu zHXC)QI}akqdtjTWz7Kl-Yw|`{=J*yZmvdm5C5c7HzEq~&*W~KK z6;O3PUONU=4rYjJTf*&5U*hMiCS`{24AnE*AszH7ef59JhswJcg7{bRFn2&0`lM`B zUR^|cFjB`t;+K;%GSsWcV-a-0J1!!MEL+Kv_NDU&cJy6W42-^!XzUl@JUjbzGMd@v zIQ<(N*d`bJcEb`$|5KppeEFi>eyzR3b$%a#L%H#$&3OK_hqcCd3*9)p&KzDS^_8PZ zsI}6IA_%~%;tD|eFp2V3mrc;{3s^hyBU#*d?w4m%?a0GCJNXL|?&g_s_Rl2~@^kj< zXx0ikN6l2lV3viF4{|QGcjiqIAUuNA7c0?wowL87jxAlr9kpimRZdgb1ZZ`NdqwJA zvsSv0#`nQlNGo;YvB#-ZZ>oQahy0_20x7|$7d;v@M|#+~0eS=*`lyplb*|I%9TLEc zgC=#lRrjovXXU?!;!-!3GVC%=AKGtGc{3hr<{{f+9c`hG+yu+C7o-_43$UaoSpci+ zs~|z=mq*ycfHI!BIO5gsgEyVi?nu>mmWq))?-#R!%e3$36`Ky{(vokAL65X8prbx6 z3z=ULrC_Pv1Ru=Y5}xiQnc5T~Hg6+{R7Hxp%e@q7$IC&nuCL!Nu)FP~+fYP1CwEi` zDzFFX75!Z8DmtR<=AI@HG+%t2Vx|76KC@nYd;3Rp2Cc^=bYyLrR{I#A;dI~?!<#F; z!I_OgV~75uZKcSSE_;;O>;xn+kX!b>3yHCC@ z{1QB-I>xG-V=j;~7D*Y2#^B6)Nsw$*WKAinan;+B;x6YyakYaM2e9zm(6gjU?B#V*n6eIDZF6JR{pX6Kgnul;k z<;5~P#xSq;cFraba%lEu_3|y5+`FdgUHN>2)X-EfMaVw^f;8+n4I9zPHfnSO-!_7N>dmuPP3D*Htx2uAro7QVpO?$dyW|g7oM;Zm&Ju2Q}GVybrzV#mL&x~K9b5j%dHbc9}%s$QIe$S+DBg~*a1S!-ksZFUg(eo4_( zFQv*q+N_Eqm~3kjyVfnL3{XNhp9D|NkseRCb4#53a z$`Pc`pkgU0-%cv8PSTtdUau>tya)rPB1!lDx1_z3i;{`BfT(G5asL#Gl~vwAv3F38 zG~?^ONVPko^1_l1Xu3H@4b#6<1UeNvk#Fqn?utE9vZ+e0mz?s?p2>oW)lBD_UGKf3 z)F%m_=6~a8+lZKP#%UD6wjq=`Rw(dSuygz#h0XthW8>C&;`4}25;kG}8@0iCNWy&G z7;8s{NZ@cg^5FvM!TER(tjvR52p8lo7c#hp+U^N95zG>#~gXed`zXT%grg5V7cP_jy|V_f;r+tX6-U3Jn^k)r%rFWG&dKTMIf~ zCd`ocb&jIRuMX!$SQjk)Vx4b&4WLB2KR-VQwZx!e7$fS)6nk(E=V6n5Pp?X^Qa5z| zj?`F-1|z*>nAqt4Vlk>QT0EeVH6%)A5{(44%sy?tRo8I>gw|y`t-I&cj9)o9<26#@ zs_U``WcfDr&+#Wndm3=l}9gMNEzww2%7k~Q8s{UkP z=!C?Zk;LHnV^`b9*PiH}J6fOlCZ*Lp$=Ol&QpRt(gz`j(omsMJ={Nh9elxN3T;8%W z8bs;#v0bN#wi1K6oFEXKRA$V8ufOt-^abzhQoD?9Y!^GWBo);$1&~f85Pk zKg6pF$s->X82d$BjDb=3_|h{aSg`bZ*V6BvSUM@IagsZu^M2u90GgA7>hkrPrUGDj zYuA4qa%HRrQciKJ@9`ujiynEcOu!wUA88yM>C2rzh2H&0;6F3(S=|*&?Bd-7C~^7l z0|`tb@J$JfC*YO97y=ha;4%VzmlL>%z+MTQPhh14I3bn&gaif?SVaJ?QflTz#iKOr zcl$_W^(GMiUAPl)W>y??L0J41nKKZ_bCY_Z`2wHGH{`)AivI7F2L6Abi? z=9!2cLkJ9F$N{pa{z^9Fm##<5#{13Lwa`Y+eVq}_Wka6-HNGMVXs#H>Z+0nf6=$;v zZ?1`TF6&Fw96Jk|RpDhJ&D8E&Q+Z)zXEEIhpGU_xm&nenb6uHQXI*@bpGEW|M60>q z`3JsetJb8Z#Vqssg|q5femdHml*8qZyAy2g^F`KJ+oA;0lM(d~4UohY>V2yGZ6BARA}4Ex_vn-TEmQ^8EMVf?qlZ zh#Y!SnFVoy#(YNAPVStmfRDz+gxz<$tvrB=tQG^JTgVpac2$0!u8!5M^3}@F@dLD} z9P#ZOMU&&_`4)vnUbl!2pLTB6C(Y(kdvQsftDps=)MC+V zo>SBFI4jA#!X!Z&m9}Xz?{;%M;{DZi&=_$Z63@jsgjB#`g~1w;i60!kDS6f6gx@|E#nh zHr$l`f6vUbn*?m_|HtRE<(XD2VM{Wa0XoWq0|N$g9u zd+!&kxqIynD2t8|Q1lAkq7TG4upcDN}V+jRYA{ZV)RFOq_9cQ94lykOM1* zKJteqDs?k7K7nJdahL(!)^;DWw)Z;mwAJUII_oQe)S-d)Y0`hm)*OY1iZhBd|8-Hb9!lzsxv!VqdPQp;=h6XTO0DOOD;n8 zAuVC0D28Rf^C_YZhoAmK@A@|+a$|C6MUczWu0xYu=EOVIY8UD0EZd~yT8W~3 z=sM9y&#Vu<-CyLPNJ>nc>D)}5xv*QND=CaUbJQA|r7ji?1xET00xr`7pOPpY-P*NSIW)A7;|a}F|iu(P{ej( zlq^v8jv`UgwNw^|*{21}(DN~v&)G2d6JyMILc^>#3*WQ~-!u!C@)~!=Cz@T2w3op3 zg7fbr`vp~e(5^Y!74a%M+f_WLs%WFDIL^b-47)c575Qd-O8)mi^|gR{Qyl7Ac8k&( zJr&fYgy;+qUk&Su>K-oCeNrc&k6ITad_@b;JISH@S(I4 z>ca1Vx;~?MH_VDdZEr*MDyT_ugx5CKo?ox4FMO!&^G{NwHX zJ(#<3UUd(`v?{VbMlqA9~t}p?)!Tz$j}v-YaDTDP#B(ZcWZ4V?|J-Zt|;z+GBu0qf&L)A!cM0d^W-{}E|Do` z<_9EyEc2x}SXKGk#PXL+(0Nn;o4hx3cc7;R7^L>oR~U2F0iGkHT7hbmtCQ6jCUgHR zRR{hd7Vs=DayLO%ERZ`9%2W+*>KGa1Ah9(q_9(e;cs!!uxy9v*f0yI7DaTQ7szY@#i>ZfIrsjR|xw`YoRE4HO?- z@c=n0hH}YPUb3Au<52~2_QOP{iXu$cHsfv` zJ%Z?T93#Y{2kGekL}wz{#iD!Y=&m>{wMKR@w`A{fY~#V$*VcmfZ-YDtzKrvV*qKGy z89&&Rv^6&{6-%x{U3qnZHBZj`m1rhLo*m5%`8oAd+mWHmGb2u|?t+8xsV$El%X}gSN^yu-NdS9o;nj~+R(&tj)jjHl9 zovHjDvxaIKSO1Y|%5l;2^Ge{3r4?vSJEUjUPO!(rq3fgo* zY>EH0;4Fxi5f=46@K1(D0-Pc}G_0O6Sl7m2T?ecwQzt&;o9YQX#|y^;R^cdjrSQDa zYYt^8!JWI5A_Y>eYAB#**bo9VQv+=u1A0je=%oN1@4S1sxA%~&p~LU?J>qP9Khf6{ zKz#tTLgK>m_`E{**kvp`M+vD+BY>N(;bz3(wu`|vfcx0QC!U;j>yW3PoH%v%$RUpt z@;*GI*jqfs>*Y3`w7)xbgkJ+7-(LZIg`g5fHyj<}o%--YM!69GkjI{U^l^RvnbJ=_ z;k`A|Zb&gey*Cb-_|TN8-fI=CCse~DLT0zA&lOUm-3=$%B7$xQjc!L9-C>>ZJ)Bn0 z;m~DiHHu!#&SX9OP=Qf?IVkY`lkww>@(jKegn4Fa=w|F)ZpbB7Q3of@yd& z5iM69wr0>aS7PwU*`SEKi83ukneu2j^r|RRP~y_^J3^Yyv|5FiQC>?3A0zc#r56Il zt|&G|MmS=yfh~%0>%%G_$HJ@dsZGkFVN%Bb&TBphOqvSpkQ)@mW&vR)t zpJ%3>BHTtM#(84erk&z$Rrao&Qzf^^RJ)A5r%);`J+TE!`3cPpy~-xk8Li{$Ub>rG zjB~`Nv_dy>r5cisWKu=M=j@n<(BtG+)92rA*G8#@`M9#RpEnLJ;y>7TC2|$-yBXy- z!tr6o?t2(T{*D==CNy8Zv1&R?+P!JV`-wd2Kr|TeIwA#2!Tx|6))Xfc0h zj#o{Vn4hRNOWb{Fr<{XkWf~R2lO^eXJ9AMy^MrWj2UO+`Mum)rWPZ@j{7^je!|}`$ zRp!n`3tNIb?WtNsJo4lWt?#q$FqBPKn92^EhL9W)8*WB%nwemUh-X zXmYAAjpLzdSLK}aauT~vEFC=lbFGazvIbqisKg|_hc?{9-)KYVpTBlMQrOkuf%R}` zD%>~N$B_|wA52)X zNRNpnCo9^`EfTCr4Ta{xP#Vh`X`O`iYA}aGS+D}_>IS*%g3%BhOW*rFG@f8otb?>0 z=e?bb?I6Zh1gv=r2*?)TFA{p;RYKOwi}^p$-{IJW0%E?L^;2O!J7=|_IX+YLWukc3 zJMq)eR5nAgv$(fOm93H96Uv5WF)_xR5kOHI=}3|~u`nugh;ibwy;KYe#Fl{_y4u^> zJM>B^rxd&Kssb&l8Xm9eD2iLkE;u*4gEITW3rzJ<8?6-ZW>aw!)4q|3c=oc(Iuj+i24~bgC zOoT=XN&Et_o$H}3AWS;dLA|QNS z*&WUMUxsk9`NALhBUZTset8M3ad=lqI540{z6bFwqb<5S&bS)A1+>(oH7NS%Nw*sP zyy)b|W!!!~l^zbt;ORrIe?4dKYr9G-j}a=qRP97tM_SdjPT-$nyUorYWyiyNF@+7H z|A<+ff$<1?IQ4(I`ba*jP9+Fp2dH1vO0G5X4@lsjj+*mX{oxp_I+ zBy~YkD*BJM3WPHT;z~QyV@;WI-V&2g1>#3`YGFJTQ!DPcW?Dr%jd?dfXVsk?4%~J8 zA!PWw2o2(p*uN#&f38(YE6#{he1ga=Hk8&)Q2gJe%}DW|V~O&gOBQ=#xnl8R4WL`k zzC5+wE5$Cei#0G5x^-4jrhjHb;tWZ>-cEfxo{D{?B;0H#yb@2qYrV5^-goqPruTA8 zx)#&C1ibhJ24vfLpCB*AacG+B>yCM( zr)wk|*Jt|r$ci!W0_H&>!yd5jy2P3k-iV|^%27Mz2q^@=vx7^ou=NdNM_XKpb>t(| z`@aE~fz)2{lZ=YJd^=ZVNz5SUs&e^zi*pqyV;kXAhM1A=dB&P9 zt$F1AL;txeO6r}fl1a^<*yYy+jvdh>WCE(W&VMAymA0?+2tIiBJ49^-ky+q_n?2G2&S~*f)y9`^X*Uy0Rms z68k~>#hHd{H(>oAb)s>ebN$YlWtVL5Vi`Znp7f7%z7YjhM4gHA<1makxPZ*ou1Q&%7VZXLA=Ds zL+A@abH7PVa6dLFf#v?&RJS<^bbEU zCCwj#?!aV+6#J81EHuq#o;_XWq@V!WV#kzlbO|T{6a!PTf+#olhbFieOAGw?epC-21Ok8pFgjS0g5x6r}o#mgY-s%oAYh+Xjtaiut0KeE(711Q(rtioWuZA$Z`ic zLGreZqJ0c1bZ#qsF4_lg`lw5MOMKb*oB)!LfJd27BqSWa19eulS{TIr3JXej9_c{x ztdJUYj>2k5Ap_vKaZ85qWd0L<>j4gfh6P+bah@T_OubZ0SVCjIPL(DWR)=cm5%2ej%fvx_%F@W5WfpTZKV1 zd7i-3sIg{r)PDxc$S7`fc@TRAsnOE2eSDXbavlltd{fhviBlwr>EYt;w}0(6EvIlw z4O0HIZDyn*qXO6WIsqf_XQqmvx&QjK1mC64w#N~Q#%Py_pGzV$ycF)R%~O0c_@Wh*b4e`SyQPfHmA*?GN^?Oro4Ky560Q zcls|WAz~`j*3(P>&HEB55};hw!tcVgZs4DvU00jrw#Ec2womV>afnJy3hWC9>&C%{W9}pP)p1CdiOzDQc zW?eK`Sums)KUe0-lD%dPJ`bneiKuyXU^?r|Jws~onS-EQ)uyr?SFmtE5Uux}^f=C8 zDG2+hd_S(N^BJ(4am{okp<9lpl1EOj29&f#HoCe)TsDe6bE(ilS#&eQGNbU+0Y$nM z(OI|2jJkWInpr6)2c;$CHr6@3$&jenpl#R|t%%P467;T+eA`JEIf`jq6Gs$qvNvTifk7h&oMx&;+q1V^Zwu&Y;Jk1AV38uj;h*K zw(;OFJ-U^9aO6rU`6?f2^*uQ__Mb~B`3-gT$q&q8rbUxWdOKIkD(%kx76(Z^9BX8A z9eV0mYQl)XjB67k8GspDw#pdOP)btsl;wISO=oTC!SmwnPi~#2dEi>Z-vc|;g11Fn7#g7Y+URBAxgP5X7 z?h3maf|_#5>cnD^twS{PI+nwi(SXWwjDgTdnsH~WmVjLgIO|qvdH%`f6-sqClCQXf z)O4j?Q*kTlB5eyE7#eeYxkZ(&+({5-J2X*)gANRiqNerM%0dPR&3W%j;Bg19{QX_Xe^crTSbN z!ynnrOc|lE6GOU;7X)Ok4f19iyZ>np@;JyfMs6SSouC$nao~D|mVz-tV0`Qa;6Ed4%m-_=PD%_|IJJy-v+# zd_hh`Z=^5ML_^n7Ubw0*SCI4dj8A3rV`#7f%LZG?r=e?*muD9Wnl|CO&uH$D~%GF5Zm;LpJN5^kOn_ZJD&5WuVY`TD^| zaWW<*$xAYO)xVQ6a5qk!)~&#cX|l8X{A8;15nhrya9wfYI~*JBaGJjon!@B$H_;rk z$taiSG%JFYMIRaS-xMq{l$a|G7IYs4UA=@|FD6g?#&vYVSY_UAM~v!?$zhP`#ZT6` z%#72INrAN+6DJ$@pe9(`aX%3f;PQR;m_^}xsiEKYNQ$yklFna>Q0hE2SCB1Dco0(_ z9}x_MkfXqEj?G^caNW=EF?HkpEFLuaq|8vsy&H_7I|P+U1XWiL-60i?&~SzLn+0KYzADJn0Z;_;I_aenLIJr|7d{L@6cYN-ASGK~= z><{s7CCplpdq)(P;u_t2UC`~fZ%qP!q=&9m3CSNbp$l@(6>~H*GgyEXiQ+!UlsgWJ z09miymQ)pfd)Tz=Ote-ZOO9r$7b?D^Pira@$+ps=FyL%HhoUXll08u|FEb;VrM;xw;+AxB7qM zGNU_qfz9kc3kAO`=d_P!;XjHbkte#Y?3@Thm<)+rVEKX|=*&4)VEL-27IO7i?t)s$ z>s{vA9bZhYOJ-ZEK%Dm-iS%(=zY_YVOW-gAn*_tKOyYhUA}PwiQhH2{b93UAT@7@w z$fm01#C!A+%`ZfEmPpIvqfHOWfUi;Mz3ZLEP;5~%GhQbwLoQ+JvWhlwvHX9)0QkaK z<3v2mwk~E4W@c12tL4=%n$;pz+;>40!r#_}YDVtZ6=?roVA{)AS>Ij+9% zrEiF=;Yfouzq?If*Es`oMI;#_^2oHuWG*XvtVZ%%^ATHb;`VBUCu$Pp8iXE5oez-Z=L=r1^J1djBK(wB+b5g(WuaO*a0rXT#+cT2$ zsf>4&^PVRg@Lnbl<^Bx2SNVOr4L^XhJ0xSIkjZ--QWSp?7hZ#kuPQh|qTL*j;rU1$ z=_~b;EBlDnovTS=;w?%&f8@$Or01bb!su3Mxsveq+!P~%_JyS@L~9{AcW|-7z0ecr z|2`4u9A+*EO}R!s+>4ZlXA}1qiW9!?EPG!%)MY-gNxEd?WC7RSU5Ot?Hl;5H@dA(6 zH(W$L3GTbgxz) zZP+uak95<`J1!J&2NPhoPj3z&CHAu8Y~|@}vhgSw6ra4BgqNl;_Y`+wGqoU8*G-zV zu59Kexl)6@-=aIsE(eRpu#?1_CzE!^LEd7MmU{Gp;w}{es0{u3h$euab`x$gE@eG@ z1Vq&Ro!&v5aV0+{w`t41Q$zSp_&1CsPs}_Cwo~evu(ZG9@uh7k^HkT}`tM=B?H4Ie z9>l@pp+@(c4)0}nwmZx#DF-vN8+eXQoQs~KD?^R$C0vD}%1(zJ7bV|zO~}#cUK-1g z_hf^E~HIG`d%-OtVgYPnOdOk%UHcC>o!W--pj>@L3s=)1}hz2xp;rl+n{V&q@ws)M3X7}kr6tJV3+ z_;nbYd+}aB43lLsejS#{U(C{Qf;j?nWrNV^g21FDh32*S*5DpuI5t2|6B_0D9kGm? zxkSz@&xd|~6T)I9G9Xva#5ntWXcR}#iW|Ypnr>oAOQai)i)V(wb3NANf|wYJ)r8)l zvr0!~CDIF_Eew!tJYw%#P{d!w394gH(#TW=)+kSY4J|M=JBd4$;2%DE#W90^fZB(j`*Itnv>KJc>$PqI8YvBg5 z*`JwF8V5Sn20Bdvog_fj9TpSgqY3FQp144Oa3xLaV3d1EbXo0O7$xB!GS&>cUe%Ir zcD?ZJ`1xUBi;7#vD?TgihSq%dptR;oLaH_Qrdng=;(&cBshYDKfqhB9(jKIrd(*86on6-0E>6c@SJGJQ;ii-5N*bB&;$aK!IelM)Mm5#U z)>Zf9j21QD8n0RWGDw4ZtD3Krnq_$I&7{r?8g%A?c!T0#d$s_3fE>C(+aWjs`=ON4 z`gR($o5xvQ<^y<2-({4)MHU*;*&5l!>#^5727P?W&ztIrcig*&ns;1@T~G0oQpeMT zihn9-qpjF(-rL#fsP~SrAqEBF9p3}-u@(?}#vrPTp;rsUOMnx8AD#<^3uMI^*sRWc4bP+cnP1SOj@RwV7sbOj#aj(}?{DbqhN7pJIoneC; zt*K1r|Fx1Kt;#`|2W-BqO}-2^*U+SlP!}?sWWv@jf7@bi9I%#eQzz_fNM)F4sBDdhx$mmE74*!DFX*jz3@W zE2Vo!{2m?$mRQj3BoFESf(TD`gAcEwU&(d2%%0>e-? zo=)-I%89J6A5~22Ev0$WfFq0OmTJisxg6K z#TlKPoyqaQ5PsrMM{YcL%oDIxz~5Aw)7__UxRwrfWZ_`}w_N_y#*7ml>t)$Kh!d?g zydmbm0rZyWVViHOu+??X|A{V`8@U5MZWLnim>WX}_Q>LLi=r1;K2CVT+li8b40v=4 z{CY__bX{~E>qnzT^JENO84*{wC ziJQI`sg2mYP{Xh68pQb&?y{OGu0z9Y#75(gt6qk{N_ixX&vD)c!1U(eH*FJKRadyn zx%u}eHB61(+0IhV&!2Hs{lr1M_lbhQ-8e)P9bI6AgIxtu#EDj|{w+(U(repG@HXR1QJcP3>C62e3NginUFC;Qln3zie#Yqd@VV zd|s~huT9K1w`2D4PA-4(FrQcXs)CXqtpT!REHJklbM68#cD^c!vsdNUJ>=5^RP|=; z^y9d%4I-E{8sAN!+dk4G)HqL^jAa_jl^KBd3e5bcw<-$%h|>P|LL?=4PZWha^Ouxo z((E{2O6Xr$a)zEFUI|W|1DAbykdQ5QSQ+hA#c3Y1FeL7wx)ub~`vpiI_<_RkI`l`C zTSAc(=9pO;A-{$F#KkiECXr*^S(oKXGqu@>Tb_%mX#YlKr0x%WGZfx(b$b#28kUoKz4P zokTdX)^$}<5v2-HgK+5czrr4VG_*Fk(`}x>j8-_n4kpzOk7o7T;HpY)<7NTKbX6uB zifGQP1FspM^RD z`78>5sQzCGaY?z@_*PGT{Hc8Dv! zo+2VkXdZ6Z==iBL3}`Ze+=8a?*z*&a_-}dAwsj;Q|Fi5 z@-M$EDmhEiJ?3u~@qzpL2=A&ui|0ctIRW&T@k+QWu}X>+nC~oNgt-7 zUi95S?UKJ4?f~7j7@($K;iKKEC36fWON54HV{hlMQszp2E5S3!ebCpA2_@(;p_~uE z2X5YBuOBQ}SKtCj0R@?M9_u|-Gx3ShhEQg+d>wHL6cnt?mzB_CzEDj_uP(Cii7O#V z*T+Zkj^RjzL(bnxiuA>Uyvh>Wo6uyr#L*!<3%D@ z+a6V}_KI2h&t&+H)eh^Iptd+GGk|PE3N}JV_iwi)s?b@!1P{F}(m42^%SsUE9&sdO zgH%a5Fo2~uxwsR*DE4xp?*lLdxBR(jT+MgYJh1e1pr5T=EMoLr2&lJggbe%9f!G-a zF$FUNgVnUisgS?Y?eU`KINXMvaz;NgRT?S1WU^QRT?OpandyI5it%WV$5J(il233T zZ|Bc=<#oYKyix1HuBTICgYDj?yFtq*ZDd-ebRU}UJrF)Lq;6rAuYVJN?FI2y z2r?Z@XQd`QW0bB5(H#z7D{JmSKANNVZ?cI3RA&>)zD8hmRj@9L!D^>r4Vo)iz0JL6 zu?c}mQ6gKF=&my|xh}WnOJ>r)Mgdl1sz3E#vstsN5}PWjYb%9YN#W_Kbe3{KWX(TF zQ8oidr+;ZJ6EGExvkoJ+eX9;yLf7n4cE1gl``gIore4;~Ys^b?cC+#Erm{6b`}cji<{(uLT4VPqs}aEj^EA@Q_4Yn(RDHjyhTIbUan zAwXRFp|ss_vsS9vvW0=?ZZ#m1JRP1WXG9+Cy>{h&hqdu7sJG#y5{uWP5QBmU~?G`1pJ4x zu$?Wd-3YoK^XBR-{>t4l3L53#NF;{t8}5($P*BC&C%2;9N=l zyD~&-56^dJHLukri7)CzDT%5wSQIbnk<@8+(duN?jwX!pr!_uhoLx57ez|k4+An8g zy8Y*yw;#h9+OG?>X#f3^(8h+=y!{VK!imEF(0=qfwBOEgQTrc})W1tA-FIR8AD6@z zbz-dj@#asF#FBW)F@5Q|rq1z7>Ug`T-8tLiWv5H(Af1{R>l{<{1jJFwhjfnjSs|(v zD{q{sI)ktKO*Q(hth@)A2#VF%!`;dn$(!+rJ9>Omtg(;qsH#1ngdR8B+an0Xu~Q_? zMj5bP=9(Trsc+ilcQhU(+meCz)IQ zrO)d|=(%-K!Kyv72;#9`^Z#pTU^D>pb`l;pYRhU?*y4+?BIU?1dgv@`ZY5v&CeGb5x%^}-o8nM+pNwUr^z|rXSuVHRoTfvYJ68*k z=Jn|%M=D^@=H|*AG83)29zJZo92n5<)3ynr_p#TGS&8Y+(>z`f?8a8#p>Vs*n)@XP zDa?*5939n?*1XCKd0MW#>Z?40Q+0JNrQ$s8MFAl^%~BuRy~*6`jnQkeCXv?0vb-Km zG}2l6j<}IMHIXpHL2oN#+1P6pl_0llP{HdUlZqf02S@hu;@ddYYK6|9P!FQ=dh*}c zYx!@&b!M$|wDa!J_RWa72sjrF?hqNUfihON2x#P~?cVJ7XtL^$tF_P}T`H>=$EVBY z%GxU{jpWh>LV0Rk7xl$%i!)+@s#<1=biEwcYzv0hci3$)U;8#D}EH`=!czrOLZk zB{0dlPe}E8=uBaOY8=H0r0KBccHl2{QhP7;C3uK(-Dz^nGq*Ee`D)Cv_`>H&wE&B` z(3WH8dq(s8XTG^rsg%DJXR4og$H*>eRO7I;T<@J+#w?(yz*sekkI?h)qY4ZRNIcS( zEzjqn?~wYO@-+3TagzF^PCa&5ryfwLt*R4pWiN2Q-uejx(mU*U)tc^bM7z&>tE#u} zMfG+7vMg8es*>yo4P6OdP4G3q8)XQ4A*|#wvzN_{HDs|=dw+1i71p8|AUSrLbiN!<5EZ3sqwU#X+j6@;i)ZTPNGNfaeCz@$A z$F92oz=!X4@8v7RT1R-9h$M?OfNF_rp8rY7|7c@gYNmH$>8zefzD`p1I{Fm8AT+8j zN<<*=pcj`%bA!Z6Ps64XA{~X$L@W;cO2=nL+6iXc+3DFgIlxj_={59=6lq>{OV-v` z4JPw&ARkQ~l3F!y5od@Z9yW<&bd=}_O6`QE+?T|aQt8&bN&rRLpt@;g%^S#kF@sGR zQ>}SlUR0V$x!%>Jc90Pv@|%kyrS{V;Vy$_DsX|v^%?mYeLp2g+Y%hj;`S<{6wLp+! z9;NHK`sJ8TKxsVhMh)4QJM_xyzCIHQRjoxMAjYNQMik8RI1m?(MJHMgbEtnL8t<*KQ9J6r6_t3vE4jX z6n@jr2l^;vLRT`X*lNg}Z%duxr2lM?YR%mWtU!#PsYA|**eQ?972aE-HDCCYq}eW^Em2Uyr?AQe*0c(g1UrJpdN*8?zn+AO#UZr z_{|aBQ}J$B3`q6w?E(_Lpg5l$M_%dJ$H~s5ZBkgp%k`Jx%4#-Tc=MLwg0@bDz6OyP zs7E|{jGUid07}NGoj^hH1nE3YnWj0|5jEfvAq4YfHIC*BLTydyGRY)e&qwvLsb3qa2b#?x4rAR4`zx=`q60!(ba&pmE z-hGj7sBsG>+?!~jxKl@;qIk?Vzf+H1zX3vO*cb7khO05u>6d&4h7A9>Z9=$=>0Ng2 z9;YkcD4#}_vUA1bJyT}iRd#Ol==?`C*_54|I_{oFjrqqxr0kqmzRMSY3-Nh*PZ{Me ztM3Bmuqj4GH{j`N$+;e)rT_&z7BY73O=5`3(w`TfWO5Q^iM*yqj&%s8HB{Eg(uVRKDyy^5`7@*9bH1CJ`#--X>nAFi zjs>bLZwyqyC~&1Knq?jQ23c3MhOIt)u`YZH1r3sA} z{zmx0rtk?oGekx;g@LR%to5JV*k8oB~cr^rpO%HeUVH}M@B4srSrBJ`0 zi}s_G>Q*!fTb-o5SOa$PkI z=UnL-saXP6!6X~>GSZ#z?Ob;5ZkH$D2Vx3`7ZG2S2WdO}{6fM%gX3YFRQJD1zt}U5 zF;Xo~3Ahh)*z;yN@=tG8cs#VijuPT@KXazJk;XHR4*) z*;wAg1|TweG9a8*d5?o2CC1fN&-ajlt1R3tp99tB9{H5V<|_;La<2G%kK5GuK0I@! z7Pk?j2C!Z*`WQPB!Lspfsm;`PTD2jsrl>9Ro%6 z;!lOgbU4rb0_#s+hB_j0)L7tdx}@9Fa!T%1?+< zT{wV#q5o1!x^jf{qy#4Ns(@o#^w8qgMulI>e8f>FbE;x1f5UT$S=`$9gwwyeM?FAj z`*PwV_sc7@t^H>}U2ba18QuhL();ow_byKI-5$%HXw0jW>^DmGB>x$(oNi~o30J4S zDjhPzs0431CK@v2p<@&1TuAi}y0d&k zm3yD}(t$PDCj|!l^FzJo{BSRGy0Tp5aNbtl<92cy^Y#O!iB>b55R*X0u+n!O4?1}> z<+vGEK^L44wS#L*FOO}CY>c=V(-(WlnEKDAlwf#e6EPP*19)P+f4wf#qA%ZHBauAY zAcm9*^gF~zJ8rh=y+OzVTJPipo=rKr7IH;#gxAc7ghu{pr*7o&J&Fx2w}XdtaIGEO zPH^&q-(X7d4}Kf@eZubyze^eM*#4WnzthA~E|%uvZc!RMMc7v_(E)T9JEe!P`Qg$m zGpa+6eB>K35Sz_T0dsTTCy`;2xvS*MA)mDHROlhuM^Hj?d=cp;kh(~Y%LIh@O*$32 zoh$-OvV<>E3dDW*Dj!dZpBm+|TE=)P!ry^V@i9hI=JtV5J*VuEfu*Z76YA0Emtjrx zT}fx1-Ju25BT$6J8}D#Ge*^zZvA!At?muP?wA0)>G42vyzuv1{)});U_}9foP78S^ zwQzM9q&NA#;Ci$>=U+UZA z{h2PQMbjtZFp*8S6KFy$35N>dS|Ce1L8EhYQ9T10JKM3lHiXe#*J^F)nq5w%t1;M^8bJzgM6{FXHp>?5+? z6)mC)5IvPUS9$$RBqm5a{J*-*p;uTQo#y*4Yn2G3(%H-?Z|_n|Zk=Tj7D>`Oiw_Yk zeV4`|g!1MCb_u!E{_9l@k1Jjw??QN)xt?vgcdQMNZ3`l!xHw4D94A#iR2Aqou;C93 z$Y@}%oFg1Jh9hpVLPJHM9vP1cZ7>Pn9)~*hhoElW3e+RJ6;vF~g=*&s&y$&q{Gn_> zWrNuylg7BXT=>ONq_A(jgOl3>!gU_dUF$J-g+7>XBYQp+z!1)K{*OZ9kkwAXlL)PW9^{c7l;8#ubpx6+}o>jdd*`E*ALyOdzI$kc)9E=kGKft;`ea*;L~ho_=W z&JQe?c_GX4w`_aM?MmnJEv_XL28RS%on7fHm10-AN2S=HvrvOH*5&FlA5*CS-AH!3 zjk`{wk<6ts*>kE^&wpOl)b}2wxd~pJ5H1-t$ z61!1@a#Qx%2TfbY@=Z-bow!BfNC78=gA%-Q_b6$L%BW=(MY&_h4htwSx$_eka``gS z10A;t=LuwtqBgA`lj}f7zLY-2IS1y^=5r778^;f=!*d>fx%>w5L(A}7FMe74I`gCB zo`Z4*)eTFfDN2xjLV6{GNuDom7H1w5nYci?+>nGIoh&kNA7T5RUi`B7(TeyxvIQoU zOiwL+uopVcBsG+gUTg^tO7X8uL4D?K^$_!?2x_$Y82u!j{OAV+m6#Tvr7`19u35G6 zSe*;3>8a}WgJe%VqWWIuHyqW~Q(h0C=IE0vUIM zC~pim$e+M~;c;A>Iwri2lSNzktWW*OcnGZ3bdbD{aOtoZJQ%JXP~7(V}(tkT=;F3C|{GL+}TxH2}ngUf92A54k{osDZ#)xCPdb-EgU zGP~dQQ>UCc>!#fV#I@42POMwnf95C|8S$~WE8bES6@I23u4KG*4o>FU%6lL9)p8jH zC!9Iwi-*bK^6f$lwDwkcyiC<5)%x1H%#Ui0CHg;iMC+t(9z;KNO75mM3IbfF8E~>5 z1YY7JQ!sg6N_jhQhG&!`|0P(%y2xi4pOS)^5#9n0@@wEH-%I!{;=SKR1!m!5Q(o3^ zSF^(ldg|Qu6iN`!sRQo2RK|M@`3{86@lqf=JT{qu0r_Nz#UCLa{I4ZCl-U%$Nktnk z1tXkh4d?{2;ZGqOo;x#^aUJnMXnZYur}v18(P?a>IUNOkzBL9B0bhUvUDm@4$U(F# z+?IA$&68QYIN8_H*|^@}8-a(}7y1%|Er~BRGFV04+HaqK=0e^D*(vQ{cTZym=39kX ztUyNj{RaEEWluZEn#kL?M#bOY73SBGPEuxtc*I`C55IDI%%Yw6IG_UICh`>4Ej(>3 z3?tKbY2(n&$-WF;yA_`S@&-|)tsM}j>HZB49xhbn@T7n{x%$DajCrrOV^|6o3Jug8 zO>_oEI(P}hSXK|OpAAyBDyqPIVv$+2I(kSDG%6Osixe|lDMSE%BF#lZzZk-}>dpXk z#lMh^r0qsUEAR=AO(AG3dqI#zTWHL?j##Bp+HsgemHI)Wy71yE=rHR7#Vjvht&lcX z%YV>Wqv>8S+39~zIyQmDq0%UyodzU2$ZaftPcCvolF~=@{g@#8v;rh{6TJNMMQ ze4Z3V8My$;Hp)k$ed1wd5e&mFzBQ(0;3RFt$)@*`K}D-M5oiP7Evhyu()hq>L%p+X zRu?rGb8iA!QTCoxe15&4;vHk|sX3IIy~nJt3E}3lO7~G1tj;p;!yw8mCtBICoN^ct#KclH-)4P04X=AP% z+jOV@lO&v~Sw%}-##`|1W1;a~pu#Ra}t^zx0HQdJB zW9~J|D*)y)PtXId>=Sku47e*>x?pf#tP48cexvGwM7s-48_U*Pg*(ly_-fAHYM!YH z8^-c3Bg;OQ9y6Auw=v$@S`$up>@k*Ywu)ABO@(|1%yTsn^7Wq(%h%xwxoEv!FRDm!7j!_B!qA3h3pv*TO?&xyf z@$?_$rh`$wsF0Tu@R!7j>gslJ>kL=kR;bd6>GjAi2!!=l+!Q>k3`|IIj|Q7#^g zT27!}%9Mi6&UIE3bFqfW<0&c_Tt$I|aBpU>P%N}6(+;X$YRrAaE?HuiRMHd31momx zjj1-uPr-BOB|!)ZGb)xc19J8l6|czOjYh@K`KzYwk1v?Ezq$5;X%9TcPgf@*$(@Q<+6fvbk6W{QgLrsF_GpKkz6ey%G z^xlm8QT|pISWhep`&mJdGp#Z8f~71lFX=_-#dXqnnFpe=b*`2v<;pqaGKL;<4SJXr zZwh<`%@UC4>ItMWn!x?VF}xtFTm-GDjaA{x%LU?vDB35yghWm%NRp69=jQGDsQ z(gQp-Ww=1H2i-2KPN>N^?Yw^0hJlc7hON1*nM>W~nNWQvVO-^sNAL~~1xPRZ4IIe` zcRLgMgJe?7hJ0L@yEq$M?o4O~+2{)eBim_iz@vStGi`%fZw%K47yDA_G%%2k1SkFh$hB3DY_93ab571;u57_jYzm996kMVv zaD0+fw15+o;wAra&~E%t(0*bOgj8QBm$+-gcYs;HeK8IkzLH=Q8-`pbn|X;4BY%*i z@>0QyKdo8{Qj@wPbW^aY!2nkyvB~CWQXyPTFOp8iwqN6_sT8o?p6&KL8cg})(ktPp zS?1pCwcEaMtgZQ?wJRX*mIwD}Vx(%x;Or)$Y@NWuN{0mydo15-8E-8TDu&2wkM+7& z*T@pd$k5&N>tS0Wo5{R69WsFg8T!QWE%djotI$NUlbw{g8@bAf%P}2ZT^$l^l@nmh zix!iyAaLXFua-Xpe%(C{-)E%DhNE!lV;gQ!?Aa__kiF5|X1pcOBNi@{uMb2jFy0!o z+Eh{q?wH^JX6-Pf-s^~7KsPN6B;zFzxeh)!qcEYT2zJc<^mfKu^&;7wAx}{9)YTj_ zkmg-8<9WK=ZoIV{g94XhU6O(?J5YlM%Qc8(l6mduLu1)ifjtxXF5PiDFu{RL=`z#p zUKZ*SrtlqsieLd5ds8`EYMw5t(9Sx4^K#YbG zuHiHyS(0qVm{zQc7J#y|>{}tvl1F$(rAx`fZgX-M+*Op6urLQQo+8DAqYV#Nyy4l= zgIcomc8^RhJ0ryEy*zS%*%`sycMt1dahphC*%?`Zd~T;%?LW9em0TPSwFdqI#2>ChG7jcHw(;aI&4-t%JWO zRplN)ctOMQXfz!n{5gN`3J#PI#IAq69uStU%Rv^njXq@N}>-5j^B>2RRHq-+}8>;}HqWHXVA9KUX z^WZTA1C-y(_y;oHY$5~vt(4C0nQT-baAHz1yGN=~@f@FJtHh(J5S*cpOL;>l#zmFl zGORqERt@htILVt@9yBW4F#uj~I7ff?LkG^?xCX(}sXpJa zxzK#FZ=pGBpd1noot1+wygt$zGk^l?k-k#GWlhP1D|_?(sBKlpvc??M{#;0188$HH10 zp3#fTNM z{1y#^<08G$vCvO$fa|msP>Fm=DgS5RnMLdUN0QB=P0q%;WUrwv57R}}jk%qZy(vr% zWH}5)j)e-kQY|V;Ys{vK?XtMJ)~baoXXEAj%03V^7)a!*cRE==%|ad>{=_@XX}u)k z7zYA>R6aCuSIADI;uWPfOt)tKG1UK0>ie30c>1j8Y)BUteNh4n@xe&Ct;>tF0b`y@ z*om1MH6{C6f&P1uF8-OD61;5$LveQ;fsY;wC8JOwbrty>zD)bEQ-tUG@OHpr0pq(( ziYe~DMud3Y*+Go-AN-v)X1)J#7Hh%rnlDoPCozUQ78&W};%+8M#_M z7+X=bNtbdZ6# zL%C`AOvdPy4das1XM1ECZXOZip(HvEEf`K%GSlkJ)BgG_1z;_Y+`5j_6m+#8(?TW{}D~oi3v9QMQ)TVAT%6k#SA+1p%r`-A01jWd#!c8^d z#QYtf$2eN`1su)e_<-i+n-dgM^IoSqg9o&IYedzHF0eK^m6Wye#cbu?R zHlK0UYL`yro_&GiT%5Je+^l8t$eUnVu~d)MPShI&!*=j}9sGwKTt-khp|MPfP+}{Y zh=#v?zwKNBQaWg!xJcU;NkXk|ZuD;aBQ&|EI~kdLo*7ZXx(j zC;0}@0ZXjhTujAypZyLn|er1>{57Nh1ipsnBiuWwU_-w2SC-!HiEUF z9^u{o3@ZB>ms#|tRBrm@wRaj+ClkrS!_Y^lZXF*nqkg$a?Sd)2kQUS<_>)ja!n5%N z1W9+WDd8cNu-l#bxwAA1LhnM(oD{*Fce4FGnCjrUlby_`g_e(A7_-P_6}=g`S=^SU zI@XGY%+4i!Dk5rAuq6n0`6u3-N7oL7VLggv?|n?N8o}hzAYMch9IPH+8Rh5+5>gU! zMV)M5TdWp^a2GIAUy2h23B|VO8*9EWaLJT+Nt$Rx2ak$r!c+QplKpvyOyjL>qPae6 zEZZVFBy)!-2X>fyDW?k@(YkQSxx>!6OO9}uMM3i{wzAo0DHKt;$LZY>+RDysj_}K- z_C#!mWb?qbmz@|&gPO9M*`+iftgp1vdEpFD_J>MQk>hHHe#@@+2XkfL*19It3HCWx z4}JVBV~DS#QZKY_I?LGkAK=T$CVg*?35Neb|Iw)n&DxsJQnPF21!C!-o>ZXQ`wj^(T8--UUOH?QPnw9;+@m?;?7az-i&@YjCJMk zz{r<$jMI9ygVQ{RQ><<)yMaDh<(wVjEa$X(7AsMBd{T5Rh$;&CowU%g-NTDGo}{sz zb4x$x0>p75bA@`#Kh|G~$b%@`&vnCxY@H`Ccs2{lWV6e&Wixl4XZbhgwUZ%XT{p_* z%bE#=7qQtsP_|BOfLA(76H2+awbxSI=E7`Tub(_OgncgP+8j$=a z9H_x2oBi*!n^NLbCbK?DfT3?^S*_p`^RA9Z!0=7xmdH3=4v=l=U;2d(7XDC~+$NGQ zMI*QJ=4Mcu8NtV5P@KMRxCkr!uqO|lY~KHDB46ouMhr|oV$cL7#Ny_wO1=gD16c|- z{*Ckaci%+Rj>UW^F@GfnSvhhx8vXoSGL+CzxEQ`s0cn@IbgivnaZd1*bWS zmNvG)Wh?sv|Jqj2PPA6tILN8>{SDQre{B!2mpy$vC5o8^~>1N>N0@;Y?3e8 zX^qXT*zQXgOP>kQxrCz|Nh%o%2mdkU5G)ob!9wYZ?nskHcX39#sH0rR0jD+1rEoWv z?~b%KcT110v+wsR>nj>5^K;T)n2lZEKrg}uDas9}XdOSS-Q#mHMoZ21tjc1@9jq!9 z%l~pVMw_H1USlvagj^XS0uhOg(?jW2ex?=<7Q3vcJs#`FeOauKPx1${aB-?z(1VA< zR>N+hTOwSVj{#*HCm;tqP=@nQZISHFkVtw)#R6ihrIPH^+fM7f=~i>??8LW|)MnV+ zw&OFW$ujV{BQV>s?br$#iR?4-q{Qd`&s!(?R+}?-W}he9Q8C^fOgmH^X3dVnPX8&6 z^JgwGPj3t9ay8=TpJHH@D)kDmoVpoC;I8Plu<{+SBP6qH(9C+ne;mYFu@MY7A^wmi zE%sRBdZD5~tdNb*3hbeHe-ANHmPXMi@G!E9i+%D84GN^u0Nx5FO}0 zE%2f~i2ouru(bFv(Ycj<3mhSNlC2;oSp3&;U%^AwajmYSS&0sJ^CGt+uyk1rUWc&( z6_?l|PVNl}#3X_EZg@YnXo#W=ts0$FdUkzr4%q*{K#q(pJ$pw z31is?#|g)_%2d!z25T_pL1G9#a)Y2ewPz_RHE(*=rKM-j``U14F4DR-;d~@9)yg^?1*@0{xDVOSEp#%uUAg12M2uGS3AoB6H32XQhV>hW>^cWWn{6`z6)R=kGy& zEqEg<);J+_ts~O&t@?ZCTY6%AzFAMFTR+ZJ5-jgpT6Z(W#w>7Ik9KhSKTUM{H#=Nr z*mw(f%!Lc1TTI`Z?!Xv_ID#JFXf5XxJp4y)>L6YnYBYi?`YhLIb>Qt8>Kvnu@#FC>0KOm#A|A+!Di z5u^K0rBx^7DQA6DgAI<7!{w+ZoxxB>I5pwa%JhLec9);?o$sAO$4AssDl_RNt7v^v zQG+yU&Om5II>e?k@$DL;vvJM#^U&GBKPoz_4!QquAzA5HP8dL#($(5JRW=ZoDS8r7 ze>{j-{Ac#9%%IA*}3j`D@)!6GqHJ?JIl}5!c`T7AW{ZH$}Kc>^`=FIA*rJ^m^Ubs|L zHY3vbQnB+tEEQ}y;+jIETtpq#j`fEB|7e7(YKjBusI}xcFffJsiSL zO+)pJtdtq~N8|a)aQ^T;kO%4pX!s}a3}L~$c--_3k7Ji-8wT|M7^TK@GaQ*GZO1tL zhq^hdyU{APQ&H4a^6p8l@nW4h=0zDNbQtjP>L@m8u%STub5O)MsnvW<2$Ptp#5~9+ z64V+88`qYT!)Dypm>28Z3uS_E^2$Gt`L38g8Wpb+_`%tsju=`>QJ>pvd`Sy7o<|K< z;frhpz*{yM8?`v~4UAk>*kYP+BJl~_eBpnXCJSAICNV3Hf~71EJPvJDsOATfkwz8y z7CK;x>a8ETsFbG%NN`tbnwp}SeSIh|C`ZvS_iDp03_(uujknYTIP@~5(!o%@XH*bK zAIk9YB6Ko;)!}$Spu?TOCCG#f^!I4kEF}Ak<=iB=D-qKmCW!YcF-?}|`Z}5$d5E=a zt!&287cl-`++?EJ{t8p!%I0Lj}NI0F zvw~n3D~RU|1^in9-aHS$VtHb~lT_zTUhoi|@+`j>`AG+{#z)`fC;PTT{KEXyK#2p> z*FnQl9xWE<`n(wlx$H+(kV`B^c_pbh{(988Vs`YosH^)6A_ceuKQEkO!|5ARs7W(4a=K5(Q->Vh+r}jLZO4Kx##8sj;o~ zYGFpS{mP>0ePEB#U>D@U=8}R&Zd3to_ky$n; z`PLu*_dGeBdG1$verx41FF)yqbv;L``W^{m%3KM3bGcDhxmk5jOb(m$^)F7hW9{I~ zlFKXG?|i5u9k`;hePtOo$$Y76Xu?2>1{tOtLtQPqifY2`9f6VI_H=MSpRDQhv?^R* zFNy)F!uZ338DZD|_Sfh?8SiP~Y^p)0F7dr(bVWGLesm|pful5}(kBQpA54oGp=YH@ zOG3}e5Z{lB7U$V9`g(OQVpt|NCh3Y&eM2$H7qar1QlxbvRmlqWF~SlE#pK2X+me?9 z=IHTOG=^n-QF~)phL`+{skBB|##uvH#+f}9ld)+ujYvZp4P|$rYV(65`h-YszII_o zdOYzvlirMeT8+WO*6RrK^)J@zAYLmT@5flWh(9NPUjAf^a1Tru4;H5q=;aFH5mFiT zG9i=0fk3<(zSXMS*oo6`{HWFs>a?;-)5rqLu1d!| zij1t~Qlsl5r4?|hT!Mkxtn}* z-KfpZe3PxtV!sDxFKUn=Dw(^(O;^+Rx-+CUQm|8Q6D(5hZ!aB(934mtqZqa$(z3KKvExer%HrL7b^%H>Qi zyxKeW1C9#5@3Xb}Y{Cz-E~7>AmM6W{BexC0V&o01;AMlv?Ywha z@U`St*|x;TJj^H(4V@;i_V} zsV%1+k1l3lSxD5Xe$GoLA|**TL?&nOQL^qP-s&DFlz%?UrpgNqn1 z?$vtSpZ3pv*E1KkRWYYlxB85~3){&t=Hr|K`NpYl8q60x6aTKw=iFiVt31Y&!s2Oh z6cVz0bB|4n7eC<3eqQ!LQ{ufju$Wovix2IIdz79wwEK)X%Vnd-hN%~SGm1OV+}+Z) zSMy+L;yTCjk15O{t&a z5H%^>5k*p7k6+8_MZ?fJSS2(q+2vz8(q%NaLlA& z?;kC^itpmnRirC1Ctgv4Yoood^~Qdq#-%jmvPf?%*O)`LGd?=>GUO(u;ylUvse*c9#+L@$#IM5V1$ zVxy1Bz1|_7*f6G0;xC*}aT66v7yO({U@`_89Y?_f3h)iy$_^XV1-E#@?q}|#Mwz?X zV?EBu*v8aQL*mEk!0QzSl@vGIdbeh1!o#~HMV_R&oE;123UQg zsR!N%{Z?OdDZ(*CbYLEl9VNFWw-R<_sK9$Y;+ zGIEH_LFqKXxR=>FPHm^P>S4@S!Gj=N`t2EPjd~l+MT3^nL;g3tSjH+6)+7i)ctr(S zaw^=$YsGRMMXQ=cSFX^2g5T}uyFFLZx6mMcZ; zug;afeR6zgq1#FCP2KNu?scK7X@GC)&Z zz7eY~>2sZ2t9lir#U2v|r?sv;SZp+P)0*`e6z;gubVjs8xmlr?+X6T;QE zA%+ikbOg=~ccg>o!iEd)tjbcXv(c35q1f>?K{#9C$@^P8d7;IV7o(X7>wUhk-u?TC zIe2r&v_|d-r*f)y7~2<*z}(e9<1xkdstdz5W0i2dYDe#iH*`)nj8v-48Gwpk zkNB9zUke(J{`&uAw#QYrHQloPtG$=(qpq!59D;SPJ?oNxyxs4|pSXJy@)mFmr-2+wXj z%CmZ@ZH~FSu`HJbdzpjH{L+-){Gcm7x?g37?8lZk>kew@wR(P1zvP&DWgw%UGiHjJMaFYWqJ(I3 zJhN(WIkr=wBWYNJI`o+ADhsgn(*hLTqy}R7*;Mp6gCep_Ej{+COgEPG5lA`4pqKon z(o0Sp|Cu_|9~oQpX5zo75rzx%1s9O0$k>(eDA1}UYw994$YXg=4Oq$I)sz~zT5yXo zRr$(8szDDX6jvKrJyxyurS(WQ_DdHRiA)6LX;R9EzaoLi3S3xK``|Eku1n5X(R%24 zwY9Fm9;#A<1oGFV3XQ{CU2cqMaUIN;bR%<4gd1@2TP@PCz{!_3TQ=eNmVezJF z^Fv;C$&8+?Ksii6^;Ak_^Hhy+AuISD3Ed>2Vp<@hI1i?vdIm9QDzsM1Jr{cr`IGrg zk3K0eA@mc*Q`VCLDsnols*#-DSheWsaeK5iI&^I46owb^rCBW}ai%1Y71+6J;YUdk zIk(p1l9eJ}l_F#puUe&0lxbB(xFaj5RUTM^gve^J(Ij?4t7m{nge3>E*ot!_hF`6^ zoVW^lT|npgY7L!3y&b=zYB$LZ{8CAkIx%}RitRV{Jm~RD#yI)@i zCIiEI0l|4ptCq9Tis~KSSX|fx7V1|;f&s7g0E|#6n0;NauhlFp6{8WaOBb+!m)d!W zOD_Z#sUoxTkSNm?S;2cPq_!5wo;kfG*lG>1)Xf6A!?xW3bce02!q`$_bfj|b*)j8; z)|r&|q?9L5sYISqGoz309L(#hVy91@8?9$OPgOZHo632^HY>@wDq=j!6MMsgOAhNo z@}{kdOMz%Xq6fI8vR)}YepZmFNWM$O-}YVN<+}j*ZQmtczDrMj+joiQ=6Uc=1+F8@ z5tvm~`_N4p0E3K7HU#$@F_EiZ?NKmDo%}Z@EVz*Ue#QcDICfQ zoR`Vb$I3CWD+%YZ#*YwTbXtC{p2ZvY`u;EqaMDyy}9GeF>J&fM;X3&Com%xImS&5#K^AyP`VpvP5WjbxAU=o=wMjX*sCTXEJi!@L zQHHNj$d`hhr64i9uM3^I6xO<_AkatXW!9ZcfUktaLo13uiF;jOS}IKp`8f?R8m(7|Z-Cg;`I(MsM{=V+tN2Xp1eFQPC+S2HL1TkRq6ewS zjcC}NC(z0)RQiDJ2|K;XM68yHC|8Zn{(d}hkeu?}nz&~#bKcHn4#C|xl_ofb3e>cg z>3tie%JWw1Ioo`yrBO;1w5fagK<3j{9kqbE*Q!*KXRvF1y2<(^CCVp3we{&*>yuO} zP5G{T7iy}$A5WZPeV3@SNK&pY?#|&PQFTP63K2js zj3k+Sjw)P6+`C}0N2!t--Db&GQXBH*7_oXpD2ytbn1_f#+joORNwX3^mV*20(LYG3 zR*@B;P^%gXorJ_SB30PRU$Yo;C>8w$#ZKYCW6?p!V=Yw#FK}*EZIBBW&3a@~ zM-&ioNFR0YN(zI(vMcikvN5$I+B;8=Ozn_x+6-gltEO+%k(XSd=IS3JB(~B?pCZ2fxi{C@v_13s=9eEI6ye9K_aQz`^VMr&hfeo_fs^h?9Pi z$x@n}B@{4^J#6>{IyoYR?IKU><&E(wbV*x9x7WPBoS;&H3?FE#&ai5M%P{*c3YXQJ z7hg~T1AZ<q=E$>Cv16AqM$VWI*TWHKOSS9wq+ z=$7jXa#jCLa@7V#nswDt*Ko-?l>Sq7VTMJk8MX5Zlv2c6x^PfO*im%9zDd)BxMpkB zKR*E)ERq&i`va|d11I~**?fRrw>@mq>tl;D+rOCFM9Z3S8=h>T$g7?jMOnd-0I|{@ zu&>OCOd8QJsTesUH~ud4gx?UTV7n=;krYKnvvh0DL0(g(!4swJR7w0Z;NWO~3 zNf(MH)XfhyAx$dNKu=Cy9> z7Ay}qLQ_ZBt#!x|su*zwc}d{>=&TVT?ptALzCUn^3@0m)SC$t9juF}1rwa7vrSHl- zaW|z3E?8N>rM*DUvfKq$JyJw_cAy7LdN99XQi)ApX+w2#Qc1SHGFvKS>(e`Q@Kj{h z2(w}A0s^^uN3AO|sRZ4L2k($X1t?NPA3H()I1cX-nTjMQ`j|+>%-50>I-PZ`2O^U$ zE6a=ZWr~T11pFbO9DnS6SB_DvbAU64LJkLI0dUa*JlydsxBc~k1dluAoh2)s%wBs4=pZW+(l`dKlVo%8h+Ds8l+JTBt14rk51}` z40TyGi9GSeHd+3kB#h!+l_*n{aTi?9wPhD3(?8x@zGj6FIN}r1+Y|U8;z-P6K#DHd znF@WR;hWwQzk^F^j=0x>U({1NR$pLJ;GEu1%H)PRsBJ>vBBr@A?pDDJ8{~~YRSSSA ztt?NgdX99-0JWNS=M%6?%1sO-cyW9}ZW}fgbK^Irr4MXK5~&~O1Df`1o%ZXxNN>a< z)6(G+x$$xv0GtGXIu0nR_XYQ*(0C7&#eMyA+O~%eC7x5azkM6K6TI0KY} zLhc|Th#zN<;7hXW)fSmem6`XU<07*=lq|pY42u7aot1EfW2!3ME~RJdCe^X#Q;D2< zGe`=0+skr-=VeA>y20$4RWSA4GTaG|5nPV#B&>K17lw{St-vLko7tF8)vEgt#~75s z?8PW113+XxJRcK@kN$dAh&`G6IlW{P+Gu*oTY4;qLEMk?3$$jd-(XlUkYzbk+YwQe z1fa)xsHt&E#wjOT*_4HR+1P-WF68ge=}{JQ50o0lqUJ$c`Pla0kg-j{flA*hX2?n` z7KKMg9sN>QYBhCwc#DlSZxCzi+nf_&tYqd&dMbzaO|~uZs)DR?xeubLbrKq-M{=;* z5iQU5hHH75WE1WnmCIW;XF2JuTD54?B=4ghf9x;M$U}Gv(ecFm@Y7N~a(87?^3PTi z%867>;H(Frv$$Nr!(+>@<1yW?E=Yph+1alA-NZcTK)}HJ{XO*j4pcZ#>dwaCmN`{3xm!IkM^i^uaUd67x@;BIiF@_5N1WEb3i0E>|n+Y!?BVw70$RtMg=OG?*M#&k}nYRYY6Hv}DH zcLvVaYEEf2dsR&sQw7SEwi7`3fo+3a#gxj21^Q*Wlirky%-)1{;ko36d{u3PP%e)@>4bJ^?XSj{ax_Nan+}N3F zE9R`^`IYTd{E=Y_PusZqSeHCU;L#&co%=yY^u`=L;;~0>#1mdUaUM0|@Vv%VDNth9 z^Xqj%2|LiVTt(i&smF3XI<dFKcykKaICNu<$89r=aBI+zx#zSFX_aL1;XTfElrV`W`UKa zK<$uKn$}I_ECj8~lxQ%>fv&mGr7=t0mRNrg!_h2Dl*PBuw;Zdj7CjRs1Qiio(VZer zDv~dYmTT3!8M7k#c!j4Ptx~R#WG7q8yPWX~<>Mne(FiAyY!!#mHE9$F9|*3;KyA z-JJ4JNB+D4$}Dp=pLi|ca7hw#qF8|S6pXO`j8|X$RvQYyJuhHp&2=pE*iNKdNDQgN z909v8RN&ksJH_w3qq9V%1`IFO^Ar@k82Ol zX7~s?1sj5J4)RyhD5RWUoTqTX5`E>+3|8)vDJKoRjese#unXCMurTcBVK&Wif8>Yh zh+V$P<^KIixp62;u8=ZtiKC@u#Y|#isOo9O>BQ%Aj=oZQ$rpQC2)-{Cd0ah~OP6_K zk*DP$#)e~$KSMAUQ6%k+tRl9J7pa?znAOtj5`E~NE6*qGT*p&%4eLFz&#X~ zb8GOTHM#U`N!_|7OQ4>q;roS_YO8)L%r(hA%0I=%BtF$vU5k1UtVt~l#xZd`QWuY!Gg^AT@K>q&QE6Cn=<|@5K5Nl(P;(no1v3A!Sm%*S>euHo70K&VEnq} z3Be`KmsM7)xupQkSgX2=Hx=*`5G?@7uE%mIwO{BYOyp+(62jd2;j}K4>@I3vaV|Y#mBwH9k7jNjq)tA)PvwJR`Y4cj&=>l=VXpq%>rY4U~by zLU;*UgBE&2A}5wxUfc=ma5)>W-;oa9ARo0=t2gq^c``Uks~Km;gha~BN;ga`Sd}8s zh)nE=R!&!ebhJ`-^{IhOglmZB(Kj*?jwqW@PK2do1D12&4E`qh=Tiy*3&0H-0Ix&r zt{9C{6~N;2r34hn0dlad#__mZJ4pwJhz&+5H77MqV2g&N!+C?ZY0_$7C29)$p|h^` z>;i3twxUvGO>h$-dYe?3Hb`*ilpkz(1W{|KrNHcnTIU4J$CK&y?qHtEfcX_WX$9tC z6#&eS2q-Y$A_tm5s{u6|NG}CaEJRw63j7M@Nj8EkvVcFyp8N=Ky5Td&Lgyr#iB3sU zD-hT8l}6>Gh)x^V&ZaGFo8W>sYa&>6k5FCUwEU#Rv*`-Iz29!s} zW5QA?OMw|xhzPU(&$$-^^(g;l9R^Px{nGUp8f-fi8OnK0z0cV&Pbpo>VyHJvX3K!~ zOMhca?Lp)|x1i6sLh~Ba@>(}K0yE4y{odHLJSOnsl5TaPK#nzx=wJlOA`Hi}EEj8z zW?=pw3P#b>^o>M&nArcMb)qO`uCb;<3VJ>ntsi#`hWQSxae>(orf*#6v}jdvGPw+H z48mzMiM~sx>h`*iaw|W|TF6P!LD{Fr3!h*Eo{zZCkrl~Rnl^RWEF^EGe3YhDwa{sy zQy2-`ML?7@$BEvh<0Z89UZT8(FTsc9j_6jN$2P4Lu1<$heoM$+%Kj2t zp~(f={Pef!k!b^j{?%+Yy(DtiVsomu{AOeTf?scV3F@^~YX)_ZTWpaBek3T*3(nzD zkR6zn!TdFyn2%3~UT#tUo1%G<8`F^+I~ZOaD5iQ?92TS`OQstSYxm_?VFZ#ykA>ppijLp2Pz>*Afy7bm91)+9F z;35&)RH)W?W4Gi5OTq9hI0WR-FkE{YhPXB5>H1p2S7+vHhx&RMQ5UPI*6BFxs69dK zm#IQx3%bQhNnd7~yBro{Z4aPheig`7=BgKY%K*ntXIj5Pj;=s)!X`5l#AP)-K4{Rx3p<1v=PrNXC~k=@13!=~`n(oYT=- z@7$weyEx{1y_PA|Q{B;XIX5rt+30$`ma@c)j2uF@89Nv56@kf7w!3;5-g`TSEKb5? z>?Z;aqpeWgy*AX{YinR=kJigaTV1rE`Loc$nGtm)%S=3y{3{>SWcju5A;M}I1VX2f z?Su$$*d?SJrBGnq96Xx5he+j?I7_qEfldGX#tNGw>^-9F`KK^drnV;YPv;*cVhRP0 zb2)2+ck*)c8GgQxR-9PmQG3l*PpM_NIp}3yPh>uOr&Uj>g}7M^8?o4|dRVQ*b5BJk zvP*net;TcDumbZUD{^EmRn(?#bVVsX`u&cbUwGy=cw??jvTuZ0R2k`q4d(8XcwSIC zbWD$^Vs;+!%x&yU@1Z!gnCB>RULsrVcezHRFz}C_!cHt&$^3klpkI3BKM1JRaRsSl zD+WndUW<$|u}s&8!@b(Sb5IzgZZTS=y@RN;m`B_=_&sL9+#X zM4H8i>~4*pg+?d%uduTR=TndFpBxG?#ohZ}m0)$fnaAq-3IxzSk|UU`viN6Y2RmS+ z5gGi#T*%i5Gr^`>ucU)yDz7+YG877NpMkh@yCJSNi11*iDoHjfo><{d6LY^%n4_BP zZq+QN9i8=&@FM`fAzmg7Nv7A${x=Xd(CcRbFPHHP zchx1N+b2X8J0iFDpx?zUrB;2da48)}MS1j=JPcvI!PL%TA~2vIH3)ia*qf_6@*S)z1(LC>q)IE5-V%cw9{6mkeK}Z;GS>a!zzCYCN{4Bk}<=mk8_ge(# z=)8leahdd2b*9h5`V`wWTmF`BW*ik^B~yIE(RuH7QgAjH=LusHovZ}R;*B!11NX$| z+1#<*GDqN6ku!@JMUH^wb`U7hs7(&{#s_ZqQ^nsLB1Y z=~RoIIXyCYfZv#m+7p~XaFA^IMlw{g9>kC#%H5oKE~fn!&$!(7jb+>3?K8_Zwj{p3 z?r-~LR{_lU2k#XYA%`9S+jXiVOn=Q?t33P*5U|o~)z3(;3GX69O{*^9RX8Dy46I+FYo zAG*Q2mUalddw6!iizplzg&+AM`37Gy)vdFt+sFKx5+7YIRsPtlGH@xQL{+yY>MBh~ zTx-%iJ9u_PW~@P0|2DJp41{~1FpG}l?Gy!1^CK!PkB*AY?f_Mh!O_`gs5^@9VAFq8*$PC|ANYPh9gtQih`$A$u2+A8m=(?P{aYI zA5xeG!yV<3fI>4UJ}4;Wd}8u|q6u+_n$F49j;yRHaR-hKJ@KLCTI6c0Ft;jfNW^h6 z>KZ~}C+W5!blb@eo@aQT;dz?pX`ZKeo{G#k*-m9APpUrM&`yQxRi8?Qx4P?P;4-(ARKeHHzXY&Q|$X;F`MmQQoTOko` zi4g*r!nEl9LGWRUTnJbObZ2@@?yaDU15iAh$%6s+o544dGbvRS?;{{A2J#KdzeO2Z z5q-}Rk#OM#O|7#D#FA-3`)A18>jH--@_H&al{ROyUd+ z9Y8@|RCS7|`_Xz1<6QCHJ>!q`6yO1ULi~|@)ea1G7StsNNBTyjdl0d&;>bs3h!^&X zKhn!eAAh9ZS;?o`BiL_ZNhX8Zm%y~^@!oJARjh<2i~coCO>#u0cJX8%2~YOZPr(vL zT%2!m&n-7SZ;-V}xqhBzmEy#88#?#F&pQcN!9-}5m*qcsx9EM?+Pbn{=CN%P;+3P; znn^+kJED_h#W@2#JZ-Hw;j}IIz9LVlu~yz?=?Rg*vW|HdS#(tLnS@kj6heB6+>*1U z6ObaV ziMV&>>ZlqVktrQf)!C6L>1b4KE_-FYGpJZ*kTK ze?Y_;Gok|~*PKEMge^hj4O7zU+knnb3YIOw%S_NrVD32;nZl0O1n8bK0LP00>Yj8& z;F2wBusV5-f{W#&geiu|2Vf?g7J6!(nVe!n#hJ;e$b{2;>FD<5jQQnEWCDEtzdUB4 znr$3YZe?hylbLz~a{BT=WKm1S{^Zk{ERUI4{{M!I&5S@+O6lqhAfI`vhQvi5n?2NZ z#KMA?rA$9U6Nb5r{hXd034faHa=snBSUEc=se9vw8)Ort4?ku0*BT*tr2Dj7t4XKE zxZ;JcQ%IJc-;RH}1JIY8{I^~CyI4NU#&gnUm9kEilG2ColdP`%{Ya)WM>HtUbso`Z z)#!+(lMj7l!Ty?Xv$BTXO^l4LF4!FcyZiwAAPgv*uyeaoV3&Ac*Vw@c?CswMd$9sI zALSLaO6ra{tW4`vCP3Y5g1W04sHeMu8eEp#anJ&@Dg$OMG1erIm7Ya|3D;X{kE*po zxV+wdBYj04$}ruZe2ffg{5;Hf#XTbv(b!UX@F?&b+ro!9o_6GKCr^Ipz)_6)9(3d% z*Q15~YCm)2ZP6nGxc11V(1q=pP08}ih`*Kq1<4VNFifP85%GEQ0+j${o@+tbh0M-@ z(Cw^^VIXI1@`aZxozE52V1Y%hluXJZHHuH#mE77w`{HBv z-fAAtKRHvq?z3K(@|vhF#qV!?OxE|!1B-dYRXl!xZg`5k)0vm@JZ3$grk@V;Z4zg8 zza-v{tWlnszrXUH=KU7t#QR7c<$2*(=5s2~{ z?L2W0vY}ncIk>0uc&>6() zSi0KGaZEbmTbhpc;Vlm}N|@VNxO8*Cq*b58J1u)i^;Az@XkC;hsjjCnlRDKa2-WYe~q;Ev^61}XbZ%{gtr+z&ki5E{dHOK==rNkvtM^qWjikDJx14)-s zQ9}pMGd!ty>1m#)t@l&bd%N|1(t1B(;(txbE%+}7l1TzdNI^17K{Bf&B9QRnp>%np zaCxI_d4pBQ;zDgZTAFWi)EBC=N2c{(Y0sNn04~u?77@(<(g$-kAl|HNK^=6e4P&AC zb+RMn5P1+RTgX@iCib_R2~uo@P>BttMAxnwH6QOD5A~GMQIl(X_2QK*5u3 zbu9(?&`L86Cm)igdhy#9+Bvi!9r=1)~CWV7}9 zBVIFWlDhmW_QGO4j5IfwV<;fGTN=Xx@A_#D6h2>DibR?GY9(y_Sb*%XT`xJ>E5Hz9C zB{J3{)nP(6&fQ`|Lz;%cISct;kxJXp7%g6RztC^ z-ecjx%J+JxH5Hw3B~y31>7o8x|EoN$;c zmNgMyy4m!ylBYdYm##yNzO**<#%R80trh-Fb2Yo-zJ4}W>?twwErsHt-rIJ}XKaSR zZ1Fnl^|exySDU;=uRM9p5-9mP`SoiP_K0JyCU4u9s6vN4ahI)^&)Ez}&3n$&{Afj{|9DgS{R)A}EC=zOm&O&E zy1W2X9?qk~l#zA1;YVjOgQS__uRy(-kG}Zp%_tAKoGC12@{Uj0kJO;%ko92VM>Nz` z@=>rwhT?r-2O2V1Z(W)KGevrAsYuX+z0l|g_DZ?X-y4FaL2w+ych*hj@ZC5)W63er z=i}2-e?Eq3nvoh+ZWP$M5$D7smng>XJS*!7vMRjHl7Y_EhEuI!Rj+AzAb6QM#wulu z#e;`4Lz9u6xb`2iLBNN2>!!RwY3h3;vKT7=I(eQ-zD5%1&TRn%fbPSJ?)X2qh?V;b zH7B$h|B?K<(%Nycp)#JHWSucBP$;~I-YAz*6c`$QV=#Eh3LvIjCJvKAW3wJCY*?ng zdMX3%|f5JCvA3j8O-d;wpCV z>nrYoqJW*yjN%-Ae^#8!?`_2_-s@y488Mk6u1I(+4R=L;C$q>EiOHpTSLB5k!KW+o zM1n`)LY-^rs4x6)s1nCE zT|)k5b@`D!(fFHJ-2;>YPcm;9Y zFGewFo2E%$>`yENn{dLOTeBgJ`HnOSN&2&g?4s7H+bO0Xq5IsZD7Q-o&|w@m@j~wL|<9P;0868TB1AY7|jKBnnv;sqFVB zJ6oYu*GsD_Hwq}-=2B(53}$WFm(*lzf8&L}{q1k)QlIqH9T^@Uy2RL3vfnZY@MM!z zVZ4gsOnRM_Y!7~5hOd>WU6vh0?dFkU>0YH?vhyGplc(*i-naNhY)A?1AfGS(_qTXt zJT!}2!jX`aXtl)Zk=$tYHWip`i&npFhS&{qDX%eGcYe6A@t!ZwWWOqKNE^qA?qmE( zRjxQ?R*=!3#-2pTC%0BJ3aJ6^wqmGg6rhPB1=1_g-SWn7&r5OQA_zSy!#nhvQo2TC z=MQ`azeoMOvXcK`!BBbrPC)YDgfee=L109;G6~9UG_s_~BC!3&Pl1xKJRnQ-r&jbL zqFb|zFkwbv#2=Izd}es1gv-tFVk`XxC{2*;`LSlH1-vF6zfjS>o2?|Lr*zUjF&J%} zGUvNE5bGg&NLlPlO2bWq&B@M~m323Z_97pF?8L|Pq#&Y|b({~VKmuZo<`bVe#DCXS zfe=@7)#)TERnJnz@*GM+&h=j6FK8o@_pjtl{W9F{2;SA5;3jV1vq@VP6N1^l<9{Kb z;gcO}A$4hO+ICO;WicZlvu;jLYEg4HajF*=28NiGUuIVBv;Y@uby8h`DzW0X+}O2> zns!kNltEP?on7tnFsNzQB@`_;cejbeJ3gj)iiwn0K#Ezm#iB7p0=@LsNqNlSS3ya} z3QbS_l{}@cmEyjWB4)1WvocAr3FcUEA6CMGKZSqV_>)>2|3KFJ2Iga_vOUqCDotd4 zmk`K$lpR)JNGThP9`AQ-c8xutg~bpB$`TYaFX@Rtv7CZi!^$>E)ct;NQY8EWG3C+V z2S%e&m(pp$c~%RKg9WQ?$B}L)zXO)7_k+BX^2%!%kQ&kD(M2Cb{U1`y{zzD=D37d@ zTd9$l+%heXy!;{$@(RaTa3jZ!2dxo(BLyfUbMY}R5++H)@9i9}jHV0^6YFvOpL~yz z#GUBsgGVWsJ{Uws#?}-QEWea`8DFrUg_l98Iv%WDTO^pEg7;f9SUZpO?2f8)NK&C) zSLALoA8%r1l(%NPdc2cep^fDhsy6TFV2SW=R;m1NsZ{>$DwY3Tm1;AojuljBDeRM8 zS2S~rN;z|zN;z|fN;&gAm2w9ukLO9MIa^h#Id7{}b9Sm!b9Sjz`zUHJe|svl2Pk{& z^?R`Og_}wy#U>btI(GLn8~Cdy;FcTQ{tXq{k~z<)+IO3^zpu)DPZevHs_Is4nX|{N z`va9`k4m#UQ}etpr6p8|L`p@2>#TX`r)PmtTM?LPkiPx%5bLi_$7I2q{=X#-_pJ{ zWCf~+1gf_Q*sXley1S7{Wk9O(@K_cUJT6!}k64egVpB?Y-vTY}I~% zPrx_JnK<#Gu;1Q|?|co9|kUDFm8O>}Ar0h>=;+$VLzy(|~x{78dMNm+G4P zj&wuzTQG&+XxRomyvgn^IilTC>xsu(pz>OYem{SA@;9Boa{fl~SHxd|R$^x6J#qyAGJs`<4?+HQa7ac`;C^w6Tt5cmlbDW z%q#YSG*w?^OMb;OrtU$gO<4Q@AX)pcYFUKTRt&oNcRBFZ^EXkfH3EFG=LL`KWH5!A z*glBQtGL>vRsB(5(Q4Gr#7gdqt11+>RPqBPuV&Mj(5mhyIYt`pRO2e%Op#=M{s+8D zwLj#^*SY4`TD}_9yXCiGEsK(@S03Zl8&!sH z!LiRckhoI%JYKDGhR0%&z`}G=B$QpK^I#&0Qe$yx33iL6(S9S5_{(6yO5g|hoRB7Y zdMuP?$Kncvk|wYyC3}r5ukB5%o7oRYH=DMt6@EVxK>iF4+_Aglj1p(wVLLc32wu*V zIy8YPg`E5I#&8~y^3Pp`h0CGrR9!JefRbWr))RhR>caMq6Bwiz;lh`bn@SS5mJ3c4 zRciY}K#WN*N@tiY!|brMDPbF8vHq3RvzD7l2!s@nt%;wsc1RIqkV%=idX_Y7X^13r zVqk73r9qeaNtNQ6bMhFef-!s-JTB>C)lvz$BJ$Q4zLXIl|5g_0c}qtEke)Xw->Pn) z4Ic)bO-@c@2Xyw7{%4j<7NI(Obl4-gSxkekB}@s4-8TT^>_OeOrOF)Obj$2utVbYa zPJP3@JEp3k5jTqN(qNkG%B(L3U?onGI~(7>PT^IA z2yNrL0~`y_W@v?5dY5iq+nXHD=JlcktUVbPL5Jo(=8LZr8sITv@-SkG5*V>d)ypV; zTa^h(dk~ii1J}BGWv#iN{8Fd=xU5JU>EhryA>|&xjw567?w(G}Jf^;_mJMz!CLj#2 z@LKX_FJKl7w#LVsw~mtxbWxYFt2zK1&=<$s~MM@a8gJ5X4bG&LsgpJPz9xivfA606f#4WK@!L+gJ3{nLK!W@uJ!It!F%FAi8@=B z6Fz*Y$pPV*6O)7gWK=O(uEM=n;C!s~8!Cpk-~|-FXuK4EBynP_K#2R!Ly2ni3YB>z zGG~N8SfdZ@7scCW}UXrE70SvVtl!slzVc{tq)8AqTUun6+o1_+=A&CW%BLIGN>yi zsShPu%!v5)Cio3tfquKRi`m)`?S+Z*h<`N_ajuy$en(e}NZi=%DmkH-Y!n;GEp4qF z?B-MOiNXth$_jXha_~0TtSwtX2n(XCWh_T$ z?n+^Q2j^Ka9AVB}%{{iBT>Zv5TJR#R=4$-xa!@nhR$&C#g4fKqOTa-uF3UPn$Re+< zJ4A|K+VU|8DW_2L?Pf%_L@ZR99A-=pGlty1%u%|e^K%BBRX1l2>NP_ay2{SYCM&;dqFuvTkJX^9s3ja$$Am%(e`mCm1Vt_k}5Y! zgF9y-K%(6L4&`Kkl%Zx#@56`w4?v3Q9FVK?DxPv$1?Zw9C$VDRLSlQUSW%BlVN^u5 zW*4Q?ni6^@iR1#mJZX@Swcti=RrpfLj=>&h-F(h5UKQ-AT0R!CjH z6k%$OdvCXuG= zvV=~0&FmzH^y+dm{3ml)nV5J@w^=Ui1MC=XokR+0naS3wCevSxe%pd`C{$+G#PgH{LyulTzL1;q1_9+zq7_LfjHakQD+>Et0x;1T$pgK% zEAbraP8j*~#vYYq6C#chFD`0=gNZZhLYp0-lm0+2>+4t>_IJ~p{LWA2tuwoM1-YT! z)yv3hB{I<1tT?Y3x6#7j zm8AB@YE-irbQ%&(Z=-4@PzYDjt!R;GUy4AJk`kLoe+~0c*uji8kZ+#R+|@$D7-`Qw zqmh{(Zpl&hpu|;P=bR|ls{hJ+WxI`1v}IAkM)URrBl{8M_rTc{e28gZt{dz?|Io|^ z1wyushqczLt5X-Dn}*>&iB*yXFSM8o=n)yf;r4v3 zdMN=$R40;4&?{DfqL$?C@B+i#w_wq#CS4}ddK>6m#izn;$@nV&z-eE!7x z>_3z*QdKv8n$#p6b(LU^7f_UHQTX^=1bxM3)NV8CQ;F(lMr|^q`dH{;k(H&Xh`bUuUA`Q-rw0x#`J?{!xe-<2d zN7jM;8Dtd!q##QeC_xt6H&J|<*;03~Kon{G2ha)6$K(a*+JZTjo^5+E%Z{c3$}b?# zN*?^U?odJgHmzpSC$K^JZR9(Ye^MpiQ%QG_d{1{|HeJ?*%>M)yn*YpIUC4}?QU4)P z7BU|+qc)vyBI$OJ1Tqi3Z=yqFv}YmnZn6q8^GZQxB=?)!uS>;?p-kfLN2}js1jAiV z6(kBzlYeay;91x+{%}B(Iy@@A3G}-J=6YmgW@=m2!yEDKttv*bw z;v>ymQwlvsB~2z0vHxYpele6-7KJRL9yO!J(Sqc=615w}pdJ{%a3RF>8%H?e%;zd# zTb4h*#1{O@8=uTVaLiLu=Lw(ey`(pF{7~u;l`mmg+Ef=2y5)rGQej_E6sJ!KEoskx zTlLcZN*FGBX}@H_){h93$a1S0gtAxgqWgj}6QfL~hemz3%_TW%@ zy54BQnkx|&dow>_c^d`ICm4?5Wvwff8 zuEj!Ce9YBmmc-p8LK(D{M%z5%BP+DTX5rz+_~=bESrMpFlfboX5MJp({IO^kBwCCp z&EyguS~oaLG0K`#=w;(6`t1eN_0SDj!Q;x<$c}{v0xnlG_8nz25K6_VLCh>s*z zAC*De$WGBbzE)e04hHg@`$XjQ{=^2yB`~3~{m7;m){lGiXfC~J*TRa8iu;>9jW$3N z9_F1!=8RyS)#Xs4f`&2!2D9^O@;O`PBTJi2N6l%{LuI*Hftldo52IvKo4`LyjYJ(C zB4|01FhC3V>@FeT>s1PAM-un&)y(!Yva!;~$GD`dO{*ioa*_L;>qU$boZbbL2S_cz z-s-IYyTRwYt10L_JI6JQ-gA^E*=aT^pyzS!m3WtKR@O_Yr(N)PtJ#M(>P${G!?_Zk zV1~cC!feF9kF@&s+s}FA#J96M+4F>XU+xIxhnw=ubN6t2Zt!-9b#g7Xj}#3Xy*ERw z=M$3th`Nsm`xu#!6Lo(Pnb0HZ{yZ|l5p^GqOvsM9Q;`X9+3uvtbbcm`K~HF*Ed3*8 z5gW-1i`c~!M%%^!cZSFgFr)4qY!c6tG==_9?r?-F>Q7Q3sxM#OZTKqrApD9jq!u}~ zBpu^Kw!t>`Q(;F}?_npKPX~$QqpDbv$mesc&%fm}HEj6~2o-JD?o_$OL{TqL)T!ta zUtm)_DcKXBB8f63Ia<}zq%|j|u#@e(Go;x``5CSguTTw+Y*E=`M=jpWf~{gjfO~Yv zzA%8)OT6W_BhFl|H|Em0%$7T_KFoEtQT$!XAKRrR1&P<~A}*RdSZ#2qRFRDK#2r^C zIZqMI89;Lc!iz3pz=~YCVx$@IM=%Ix%R4u&e0$|`^V>}JA73X9o{S&~Rgq;DdM670 zhA_V6Wa+GH$H^(QTkx!sT47j+^qpy{RAjswXXx>rL z2|qDaTb81?;uE>&((-`#k$Q3HBozdzXH*?-_6`Lc1~&`0xp)4jQWF`1d%s zFX)44!RBeKl_sZ#s~2a}{K5L`r-@iEKQd{bJ=Bpl5rj~8oTGTY!)rK-W1YITy||{w zu0wen{W;R(;5>Ip2gt-*X{nh?ys5>WP^e>F#u$ei=X(ZcZU+);&tb|Mo5+TxOW6!w zc~o#j>K`yP9}8-Fo0mZkE+73tAWkpe0E&hfi1^lU7-P+qwXMKmq=M z2?-0>O2JZ)izPZK)-_)w!A;cIdWG634=0Z%&a+7QM z@^w-%Tlk2tyhb-lq06uz%=l95%It3Q=)!mChwg-8kV=*4Njz1KV^}6--gKiAy%mq# zolXdIA1RR zY&28?d%~#j%{!)JvP6-IhxyD)59jU&Mv?2^`T^Cy5eK950}3RnF9lI2gQt7zoEL+s zxEKKJ?ZEK)1tk0!B!*6c-tU-YVp|l=cCA|7y=p}7M;ePweE`5@)ck(@s1yNAvei0w z&pR#yO+t+J`Th9;=8+2KO}g^~U`}tU+8pdlctO6aBqgj*>W-?-)V#W&SC&?_O3HVB zpoRZIfPr0$s9V?+i()D43$bcD#d!+7R)8^O8B)1$zfjtzW?T3}P%|@RT;(%tz+H@A zIFEb4z0BQ^)Ea*|i}vv${e&bUJ|Z$HU2dMzF|tI6Tx-ev@VdwOZd>vYHBO?xWiG6} zP<6lGdYuCRsqe|{qFh%@B`0gPkfb!$^es*AV4(@c#oI}IK1X0l5k;AC+X+?Is#64) z<~pHr4hz^%3Pe zX|dTrwTzHPmXR-5MxZQtf(}_OB5}R zz2@<%C`88fcDD*d5i{X9y8@)CYJD+R6A%7`v0ZDQhblBftQ8+14>&m0n-x=sm24BS zND!0ONU$Ih!)1L|pd#!&l}l1|R-*k!qlGG`;N|efXPt{ziA?5=g<=uGM6N9@lN#6ULS`GTBS&b{;guiGg#& z1G}Wq1$QV1Czuj%Yvo4_NIzN6uDdk-l1(4GO?Yms6mI`aZ>yK%BduDLIRG35g1>}C zk-2P%C*FIFCqCm>#l&T+xZWpkjQb2v@)R}dtqr;O45M=VSvPU(HQQ^v@7Gowg3NLw z!Ho%Wf5~Y|bQ{M5L)5)$SIOq>Nof4e7Iv#{T5Ds_h2u~2xq#6`0sSQVaVi%e$0nP`uQQ{Gyyb0Z8yleTm_OSRY5 zI3@18-hN|z#&y}Ht=^K2(c7-#9%5++Pwpj_;`{2V$k0-3cad+w{^ak;WMbg?hr45- z@K+$fuA&41y$z7JC6;g0rt<6RFmt_$>+PYF>A+A{yfY6qX0Val5DIU>B`JD$IXa=P( zai4Kz>5k~og2>Q*N;Y&bcs$vQlrAZ3=5n80$HOPNF|#@G`Io{6;vPFTvl$x+!mz52 zcQ@g{SzG!pJUA=rO0TWWZ#%g>&wEzYN!`j z*r~9vS6g+RSjwnSc)&NvhT!K44_64BCLXR5JZz)#pM#5ef`@(?gS>)=Y?X4%T^tA` zE*_+a^uJ5^Tr*rD;l5`0DGA#Ne}e*h@c+`tsuhDky5W8otyVsWS2KZG|Fo(V62O3G z>;li+dbD|tVS+a1c-U}n#NHsJ`R)OXM28?d@C!Y3+8!9suQhaB@rk)Q#78`Q2ra3V z85%yC8=s!rhNa_N)CKi*B4E)KtCW0IMpWE&UJjXZGMPmBN~WCn4D8~OD@R`=c+|y8 zoA9g2E%JuF`*4dblSkNNqh2m%D@zJowARR%0>kfwdCZ7@xo*qoSxK+t({g z6<-WT2PJK6-}!02GSe7;kn4bZxpdzXT6MzM!cFk^L>iDm z{l5hIDh2R%0sWgmkCI#M3h=K1Emry%KQ?X(GkR>g+Ka1^CnLgw{7FgF1^M>F+mD!V zi{+xagXpMz3(mDp@TDZcS2k0=75pvW{Hjiz?>rm)CU8E=!ui&(;au=9a&sfk*ookW~r*6t|?cZPldc0zVxli%4rZ2T6k4YBdKOvs0j_Jfn`cAQqO>P`IuVlNnvJ5h4k<`(!;Tz3N-#x&(#D zed56GqD68T6j5o@S7C3G7>QLd6_rF@_9f~dbxvCDXN zFd>mF4_Ynr!s~1_pV|Z#;>HxGDAjT&7gk$x_M1qOmvm^*_Ig&bpUOv3ehtwcGady(WvxASVY*s{y791}b?veE**5k|CuJI+O z&ayS?#)DFj$EqQ&arXB}ilv#{=|Xb_QvSwG9Z{@&m%@q4*AC$Tx|(6RA&6nyQ|q-hp-zt#v^Eq3eqd_W z!HyT9SQofP&O`lNB|~MF)N<(?`nkR^j1#G$nTSAtmWDOf z#o8wJp~G?N-Cz$4rK(^rj^~BPHVRU`O<)S}7`L+p*N6{|DUYs`D}TmGoFxIsd@X!p z_?jXrTwTsjs=v4{E(o8cJt#uDT<=%ZuJd zL(I||L<6A$q=irP>nf7$vYo>~D@p~i6H;K!6JmB1W0=l*c3VbsBs?CF8p5&-&k8r> zh7X;+4-mVDqk=qQS?y&!E4TnbW~L|Hkq#{O#Ma3tnV;_-lHG!mAd8%5uqUph z$DO*$0`t8i5Zw!zk(c|MMQR%Knp*1|8gcEG#dtxXsMO|YzsU@qylfoT1K7MxeYT6+C&7`aj8JI(%Z_l-!#-6;=Jcb zV&i%i*$pUm|DJ+^y}XUpl3D)gF%z(u%IC8k3-t8Fo|JZYN_ryQ$@j!mTT0|081eGI zy@i@TOJ|P-oa}gw>T=3i2R>yX`sv!Pg{aWjEecR)FGY!hPfTt{>=U6N0S9F{)kF`p zAUY_kP~38O(oJmaf=5jjM3Rb_NsIPm)0x%ROb|R~euY1p%%-O{*DF&1&l&!bIzOq4 zrp60tIR+PwMY+9L-<&{r1mBNi*dsn$1F8_HdV16KJPJqIkhs|D zBZH{Oi*@D$W<@vqfP>olV;|0C6AOG^#G4CmWpkn+l53{>`RnO2-gcGjGETPb(R^>a zM5nvi*wD65^X;~sFdEzTYrYfCt!~Y?N1L|Cxt{=9LzJk@4@%p`!He72GH=EA=g5|> zt94W3y>p~#nrcv14%Pac+vXk1ECImhE5Vga9kKIoqFroCh8FNMdX&J8IVe}j9;6;X zaMERb=_=W0?56R)4YsYu9)WhN^90}=*QPZ(>lS9aBVPiHD{GkG0Y@n>bqWpHlZsHX zH84z!j}6gQO+dNZav;mupmH7?nwnQ+v5@N2pYvfQ_hty*DlFMdS8V2`xaup41qa6# zvEs-jNJMlV$Nxjwo4`j^osIu9$t0Pu-GC^;qC^{&w6>B0ngF&LG6OR*1F3*gD{pP7 zl(t$a%otRb!AZ>ATt{rHg|=F;cHwQU(yAn)Vgi^1+=3vos06Tj!>BCUgw4$F`<#0x z3)=VpZ$6*Qz4z?rIp;j*InQ|(eX(0#fb+81D2-GM)hqIK|A;{1_Oa@q$@;`;jrnsX zA&|)OM5is|CQ{+AH(o)jC@pcDUcX|}gxkV&)jyD`=TP-%s;2s-1;)~R14DWVUxS`U z;XTg4dd<u)-V=Pkxt(Ac6eF_Qn6Dp=q$v?qAA`K$^Sm|xTroM-+) z3b%}>0J8gySi0`pF8YR1ERP%ELjVBkRTC}=`s~vP_q3GPaGl+xNkCjm` z*@aU=06q0WS8AgJicG+C02m?^E*S(&S0OeoT8D1zrYtLPgpvM3F25M(HDhO>TvGue z^_Om2!o}${cbP@lrvb8tswlB1u-)zIChL_^l1~&5@G*g?T%U*(BN$8}&RO8dG5S=O zH(p-ojZeL#EWYScZ+ymO@foAo${N7^BCxxS|95#ut*Ara29rw6^*r&O%)~8uwdHsi zkGPx4i=6*(CWj)fejp>d)ft~!gy>6FS0gXA<%O7^E5|Xm&=|dp1D(zC(912sD1oOeMEC=x%B5?U%?!=`H!zuMO#HyCqacw!OKpZ%&5ri2`A-T_QX@vK z6m*U5I^Z|%RnnG!DsPxk%{{+GfQGc#08W(^>+vT=};d-^d zJzP?J`&27%FM;jiE{6o4@UG;H1`d$Lb@rJ4#i3FSB~nUAwx#hydZR`#WHTa0YTae2 zjx)j{6^42xO!-zkh>IRWOjxYkJv1;E@rlWYNVYvI9nfD=ey9c!hOk88*YHklMT?}4 zhM(w%A?Fo>nHHmM19NS4V2GVZk^1qJP5%}T~*6*Q+s;Nywc1Swi>xQsci z;7h4t()nu8Du@vDbgLTV_k&1L%-Sp9ZBpqv%=4{uv+ZA7W| z=t|iFxb^NMhKkgMDjo#AV;HqH*T|>*F#y9E0IKMlrTvN&C?_%Q&3+2*?6hap_wMxf z5$pT0^!I+g&mNlDphPtaVvh0D-=!pK!q>?4SZ?`x>!LgO-L5IAT+t@nFoXs@%O$on zhb17yMBID_iw42Ot@oc5`>_yLaq~rDRchGv2)7&%^?YT`4f~IFg~G|5Mek0$Mja?K>Dr@MoyFYrkZm^%sX?in&RC|jD0f~?J~Cmy$8neJL2aXceyWv^)I z+Pqx5Yq$4`kgm-q!s=SD657Y29B!Utcdhr<(8kc{_r1q2TZ74i9WvT$Yp`WzEaFD? z1+D6zq*6QK|MJ52l{TT)uXbvo!s0s)BJZNbMa#%rdP=)js3F-dawT}>D!xP>W)Suj z*TNp*0=tT!4RB--fVHt+(=)Q!6U(>xB}~PTgZ*CA>Xr@nq7O8THtUUr0u==N8HC zTbQQ4t|S{ML>;yAd*z?oCx5TWn(xzJSFDmZ6+vo^*{8HpjaiZxg&Gg47w{(1km5f{ z7~!|&D7cs}vJm``1b+inY%vZ{|QtE#0Z==ra40%0k^Dr-#@(DD#wg zF^Oyg7IvL$pXy4n_3E+vrCU(%Y^qUSxqOK8SeNIHDQd7hw=V{ivHx2(3kN#9QxL7W zno9!$8wix3J}9>Re{KAy81&}(lnl!YAMnCKm!j5_ixDyFI=>K4zOIN}cI6HQ`C?|X z+R;YwqK053F9N#z&f^8%(*x81J7_hJqE>9^$X17NUxSvAetKSjl3p&{r{yYEyLTPa z94|@ZCnbX8-LV5FuI?nxs|DL-U-BF4){qMWF-6-w^(DNr*S4CEONT{1RQ9pkC_vFZ zxG$B&DuMwrR}7X^Xof@QNQ5VPZ=q~LWj_7!LTO(}|CegH_}UB2g^=Bh&>0FEOV{{~ zyLPK?enxt)F}KyjU8*y7!nN>xg&b5JiE;nP;;=9YtknJ{=>kTzR3nokFt=LZ5d5iG zVt%|s2%Pr_u3v_c(YsCv=F-f!2xfLA-6C^@EF4XpATj;S7l`p=D-PS-(tLykMv<+J zNXm%QytTkH8XkdqO?a40Q2kX?Cr?ms_vx1jAw_v$b9b|xERaZPhEx#=FKKlU3U6v+ z=GD{?S}p!#h15-i^IYb!JOLM)9mdVkYjp2L!Y|XRE}@8P5@EjN@N6vF9nhH)O#Q>= z^f!dx8Y0v=smV3U5xc9^vFrxEu1PEz<(#T7xr}x%Izf#z_^??(@~MXRvQfobC&dSh zQm@@9NBfO2BwQ^CJGV<;j!1&hm?s}lGBtC_WuucriW{ct1j!Etmj<0j@R%yqNat-6#hXqu6-})@DL8^RuqhFi0T?);gs?WTv zfL1hkQr7SpOVRLIfl^Ta$}iPU%H-w3$|2D^UBfB|MDNU+P?;UQ zGyCd=_@y5=hOQ5uD(acPB^lGk5LABxT>DpN$?)N=0NMGi+l z*x)FzHZIY1HfAEG7RF9$l@;pDzoV^o>Lqe-GYr|@t2ymXcPGEhmbd6)#0DeR zCci5|8KsR&hscYImt1+thOsD!eo=;=FK_zAwsC zTql?D^cW8m`sJzac!bxz$4sHS#ao)1m!m*Bx!^`~FDg_aFp|m-iV~z>5SV+fD#+h> zAS>u>XHtShZ)O&M6EwgQM7CRc8e5j<(5jS7SM6kX+~YQ*uOnKBohkh#hROZ34bP4J}xhTi{7mS&fc076f8V1<4`wn}Hha1Wk@+e<5}1Wv%*3uu(Ed z#36@$21|a`Zy-($kan5d`pZE;1ZSipSg)1Cb$dD`Ej(+3+eE>AgU-4QMqXNNVvJ>% zn)Tu`Kn<##tki;#K~YJW6XrI7|HrHo|16VgwNNH>W!UyE^5?YD{ew9|0uj5RjZ;#(s_!G^rA)-`EGHs z(1c^a!m}C2@C=ss;%VN}r=)+&e4dWx{@Bq-jLV|MGLbia3SQ`Fc7Xwarn>+2B79Di zD9)8jZ!NJ5L12vsv*O;t`Dsd8O(EHi`^VnT((8o8XFu-H?dzm&tL<2fcr~CyNp_ML ztHv^2Fe|GVMGtlLb0lZO+gLV84i1=X8uye0`MmmzB63fRR`p%U@q!#MgNaN2G8<`B zqh_^43c=Oj)qHgi@P&ZD*H@ezJ7&z7h38YuDvIelQtjK}!!y;wqZ4CUoTtrQZaHp< zJh$s<3uxZJ0kNK}za4>~ys!BlMu zpC?zTO~!>2&JPdc7A)431jNJ^EQZtOvvAL7Dt5ZW zOni;N!*A3{r;wXR^O6@GjQ&1fe}8@p9I2MW^OQyKlEVy*bfW1lUXcS2N+3 zFZyBk5*ZRxGB1wsxs2$L&zKmT37-;CB~?lw)|FK$I@(tfMfVjS`Wqj!lwz{;NNdn= zc`7Q+W0C#lN+FY4&bbwy>At2CK9qk5$ z1ZV4YqKMIxjy<*RM0bc$+mVK7p_9Ydn7w;yAw#A+@fo@&d1;*0n;hhg_w$ytXudsG zSrox_Z7emdGP^d1bbphnJe2%-AVnOhRPR%$9|t>_B$Bw{LUZHudEAcEf@3<(M-iV% zW=pIP@L5m%&g#Pi-|onDqStqp9VO<}o?zlnVn|4}09=G`7xPt0*$8~nhWtK&Y?%I$ z9AD2}VpSwOf?b3pe`^kD%5mI(f0}~KiLMmk9Gej?BbOI_QAB0(B6d_>&lnD~qH-z+ zS-D(IHKio&H5=^AIhABqx)ME^^Q}DY+R3hX%|FOyWa~A5=V>KTSXSykH?24^z{-$O zFQTA5<^0dQ*o)RCF|4*mq-O9OeBQ*2h`*_3B44iL@OgUOB;JyCW84eJTTvO&m9kMs z(HF4hUnFN>l(Lgqmn>(RrRN^Q;{a-N+FxL`@bTO!`B=wC_hu!F`$AbZKO&!@gq$#S zd`EvKvID0K0#SQU>IG+khfQ8fKWzy00-g=<0;{ihAHzxcaHiGFwDiH$4v`1&r&=N% z$#02oqrC71_%0foj{j=$){dcrK#CcNE-d^s3G%kY7KW&Zj+ujCpdw*Uq`eX0YCA7- z0T=v3v?p`GQbTG7)n4a}pJ#bx&7h`_?bb{m96gy+>6H>uWDB1oE*^$Kd`Hj_9(dmj zH{j-_`dVICHUpQ;WGmu|48prJ{hTX~)gA*vs#{vs z^FUHuE8Q=kOia!QCa!ZnXdjJ!5(z z7~nEO6<_Oj#;Z!d;&zzbV5WwYIZg!s< ztd`gMGvn7}*7{xXYh1PdtoSwfmThp;mu%_FcB|&m)SOAp*%91u;Q=d$S{22~ve-b}3}GPN>fY5}z-mrSkXd`YGJg!~UF zZjcl%N#UxU=B&Lg3!l2S&s$O-OpYhbm3>OdRHa-@_=W#5Z?@#Mnyl5W60WGXcG_Tt zZqU5i(N_J2R`ngG0%C8d)v;%EZKXvyT8)RLYZsP!S8_g@_0a`De~-HkGG3U#F>?H$p{q1GLT8xOnes9YUT9 zXc*<`Rn*i%KN^nyVqU z0Ev_$#QZtD+D_lt55#QU=Y_8<>wsOsxlfdk6K2q|JN(A)<**-U{1-?1cR0a4(9w@J zl;?Y^PlT_v%QheD5}ot#Bs4R^=haTlj2IduZ%pN&zcr$fM`*nO zb4`UAGu(DDDMn7t>%r3G!iT=#T%*pUX|H&4BKf+o+=^6zU8dNn^RV}?bw@^G-RY7{ zaH&!tGNKHD=J@J_)TD493GmY$9&xf$W%Htx)bXuaV7YZ<+6(EWkb0prCrJQV1X z7spPdB1`DvNCCr08w?LJ!|i0rZy2tTtP@E7;79@QNCEFi0q;lwFA_fs6wp+mv56xA zaIb8H{uWMnnUjak({qf;c_|#dX4Fm|fQ@?L zNl$UffpJP!ZFYQ0wzVfJej#d;?7~->`|ENX&#D6a6wu%B=cN!A%c%7ah);#Qb;qYd z-n!ybvuYjj^6cKHGVwF0jQ9$-4Cc^QQ<%oG4|P|An3o@GJZ9kopi_j2IQC7~MrA$X zM@40@;-fUj*2&W0uQ~QOZvu|y*jnB+-bfp>(yk^XYKZE5fhac#3uwRjr4z!LLd9QQ zrlu#Nn2{AWk}V)OT=-x^<$eo+s-YChtX8hi z5IYVw)tJmuX7zh~OEVUO!MYVOI@IZv!!-BhOL+#O%c^HbI7BP@sEuNh*qiBbm z;$Y(=M7d6A-$|mh22<<=3SFC7OPqp#DP_)et?)ZrQf(bE83{}w+)e8CM@eCaM8YxU zVbP`47=$KoHdIQ~q`5KHswySy+g94l2u534C?-Rz`JRNArqiN_L)%0SEqRHR))^UL zrFCjGVF8NU2f& zu2F6dIcTOujwXYidRZ-!z(WFTs{2o4ic(u&aYoFO`o%7#wthjE7$04nQa0G#xhIQ` z7afZ)I32Gz6Q7Se;-IrZO54m3L{DW#&W$}MnANcuGRqp&DaQqj)_XZy8soE@6hb-= zF`g1|+LMRQr0@@Eo4N+aJbKt7x(nV?Je)c9=U_hX7l7*g%Mc)9lR}O^C4Ohbvut`1 zDk(e^0TI*X0`H^n6mFNynIDM)S2LWvWmh4i@Cx;_;bEADM&k-pw$8CwA2?#(%D!SJ zVDBv5yzqTbY70J$B0H=#+vna;k^aK$)B;U<&3yXTjeo3D##PoBPf*%!i_lyxej}}i zV1866_~sS?8-IYoLMH9M!X&Eos*Vxr;9^O^JWslSfz|{xzL2~!4>EtzmA*5x{d5Sa zt2}y`znM*%9!Bwk0zU19#*F;S=V! zB<3NZJXBiix0+``*J+=4AnvWiE zHMD0Gv{*~u6HRfnpG>`wONiYMG^D-hCCbD}nAYahu$NOz(>+(xG%mt63R(d5sQulz zM^+%Wc`FW#6v9HHJf**u>A+3#>)aQ5R(x;;F{Q0sz?|d`sV#gNWk_!w5s^>x+m(2w zk`*6FDd=t5r8c&^um^*k#Kyx}sHZ!(VFny^e@q~}=kz#tQg35>4k_rsuLT+N{Jr2} z5bxgDX}7NYrY6M(&TfT=*F7U6eUh4Mvy{A zq$kBzD}@C5;u{4d>Aiik{oTHYwPS-TuN@7P^hZHEB3kK>vi5)Wd_>#-#0S6#e_%m8 zvV*mmAnbX-v6cT_{2$_f8DZ&v8F*`XSiiD(xNEo<(Dn&f-6vpRbfu8?PQC7-?r@8W zU`HPx>&jaq@)vFzA`@@Go3PVm`%Vszb>%28BNy6H$1wV~Q4pm5)B}{%cZJ!e04Wmp zBwg0|^E^9aJsG)Qk=>_z0^4n0)7>OH;PJBq)^!JbzR@$@w;FxDw5)HVe{4rh>}j+R zCjZ}!{=S_t(`xh|$<(LOa+f1`xCi1~2*}Y6YN^fyI#z_mTj&u5yi`t=7m0R)+p!p1 zLE|p7>QN0+2j=!`1YP%>pBW9v1y;Cu!!fb&a$;?P@_A-%HLcGwp|f$>86FZytWRUJ z+7GNqmzDOL)~6ifM6=ZVv6Z)DOMduD;UD1A+8w@Juxj#4X|};X|7AgS0}58f9cqP3 z*2Pv)oV`>@b?>W+4Sgc+N-Du(UEhNDooP}#A&+}KrV;0@N0RwXa$@KPrsigp#Lz(@o4c8Khy zEojbamD)vJU9QQV=Bd2FJ$MsKO)Hv&_qR!Sf18B&H{^oO59$lixVRIkC@E_as%Sq! z#wpT3co|`>i0BaP$68$lB?*tIEZskFg6Jwy+1QumcKN;VH)$T3)`{LSl2xt#2^knw zIG`k={s3!At`5fC$_tqQ%3?t?mV{0F2`K`M7ME3TDe=6;L4)OrWIArD8gb5PdI9j?! z#LtqH0QK>8A>jR^_%GlekyJlZUwJh0>quZMc1QiAaM_k!4=f<2pkdl1`|l{1gUjyX z4s)K+{)urf(OIExhtoa!g8)G{J#Vdb19LPCW(m#zbAN&Fz$5a2=k!ie%^x*+=CuEt ziq4)m^AXubx{qV6nmCpSrkw4piSrO|>eOnzAWb0B%K9uMQAG!Ezxh`XFP**FuNo25 z>xK7WO_l}LWGOp)!lb8xOq`!Eaj;`(PaKg|om4=Vr&5TN{&Uv4Xaw>)bZc75ZGO*? zi*)IcgZ89&ju%qW*5Hnov_`|PDqN+!-=vHibK14`RrJp=PmTwvFLH(Hpq_HS> zn3b^K>Hz|LOIPJUCORhrkG2X@yFs-6Py<(n;DY*}W|K=@A^-g*^@e=@8x<85X680# z7Q{4?a6$cr`NRc`=}hv(T3)@zO+)>9^0Ce z2fc5c;x^z)wptvH%X6LmTw_1)x1Uk_xxjwjWIrqHXPNyRZ9fa_XP*6Z*w3T1N$P2{ zpQ6(4Pbk0TN{-$<{%0}IgcQj8`op3dFYvCv|$Ch3WFU>NA5VuWQ83%CeMv>6)` zn8zy<8*G~QCBJhIU@TEZ1SdFocdPdSl$^-pHQ?ME)E^vW1x_F^pI2;sP35)BdR@e; zUnL0M1%^(#3oKChwl=cgxze#xJB_zmENzyatKVCc_0 zPnw|q@crtMSgjrpuHjME(d3H!KtEcDNA*s|c_L~G+vSM?L%bhKH!wF>GAUklNh|N3 zM6l2~5x1G#Lm1W48;OmBz^bK}>Z6>6sX%Cbb+wCm3F=`VTQ5`g1!-`mcDE2kq?CS6 z(&}8JFl2eaUDT+zG@4p4G45+$#Z{(OH*_)rB+CUWUj3yj#B7KwM|-ld(H!7xjenW! zYpv|wQ5n7S_sZBO2O``?wE+2ZHU7sOUF|qJkcJAlC!=XO3Sr&GHn+FvXx8$m!_jEw zAyFbGQ@R=^W-JuDwcE|CXmt5U$t-MyE1 zYLW4!aTBSfLw~TIFY_n4aA5?*G7Zvkh7~tW;uOS3e?GEUMRv6d@+bQ!N%0>CQ)Zz( ze)00Ic&6pJsT;t3$A_&dQN(D}4V~0IJWIaTcX%32H!V|T;k~81^-D&f?}XotgiNY@&P6U>e>xB}rHu=8-pK{Zx*?aqDb?f`)}E4TTkhhC;l?!)m7( zZ#}j3o4r_#p$88AM64}CKgA)=n;3Avg?tshO(WXhiuoxJZPmW;%^TL-;{=s|AQHE? zZDuufOwM;kN;h13C(2`0QIJ%<;}pNon!H=-<}VoLaLivlo}Zfz^D{caUBbW@tupPR zE`kW<)x6+sHnU=@P_6h4J2pi3lX)9f{v%za`6)(`?8x{31&UXD6dO^VemZ=Cbf_QO zNo0@|S-&qGub++`I?}PZAbg>0S&?(~-Pq{~t3;=%*D54-XurgAFpn)8kyoi=|Il4T z>@>C~t5{3{<9c^s?v%XRgzU)v9c|ECwQ3W*;~d!~QzAqtmKnwVjPrOvzaHBPQ$|bA zGQwXLGG5xY??}2@k@pN}?~wSUbYsfH)DZOLDXisb*o(hJre}3X9>#&*ol}eD9j`4g*WE z{r6hrqomxI2|ogAPZW9&ZnXWzz(hny znq2>cP;2DJNQVir(~Dw)#!;l=xWjw7wJzKO6`Ky(AR$9~hx|f99KAzcmynO)UDDJK zc&8EOem>22ANjmKV17t{RneEI{l6uiZuHYMQMgKSv=9n2awk`k;bn5_6XVc}4I$x# zvV7eqYAZOWJ-ZD3=gdL`t-IC?wr5zZ$)`7QaTV%kQnlb>v6>0f2TgeOU%o8 z@fv`ez&oWlv^30BYY5ak6|m3QW7CdpTufWEqms|H4-|iaF=2l2d$gKM%qp^}mNX^z zr~-@91x_Z0ZuQZL+N_dfTMZd#K1LZdr2Q^PVr#5g6-~-PL@e{K7NQvioC*;)?A(q7 zYvo0vu`w)|7&|Ojy2y{PZ{}TPW*OxL^+nz8>|a)`ZZ`jClSSk9oT<|q!p!?q0Ru}p zPIUuBm7!Nd(2YYPx%+N&SM}7SAi!C*D!qfb67Jw>5S$W8pyk#CCI_Bbs8@>qHFxAf_#~x&is~ zHbSqJo?KL@)pf4mtN|1Cym?HS!CKuh?a8AnnjB?pp&x6>%z652^E~?4;b8cT)HVe8 zmTwF>&5*M_gamPIz*q=|U)m7V_nF7RcL9ALUWMud#-!2Dc2TPTqLzSjvoU9Zo38hZ#CjKu$U4;fAx%6|oQJ`=N%7%29rUySZE@@;V^1)^Ajn7>o0~Mj3`$ zI1OYZzT>p)95rd7V$lON8=%P(GGoY<6#X*Et%!OsS|V#tiGW`wI_Ep9vj$?Ok=FEg(`#j8fU!*;OQU!hBVeqJOy;V z;mClZK+-E^1741$_NpY73IjV@HJbiaJjU*=Pu+;3sq*SwrwCgV{ zX84$8OCq#We4YG+(*11p1mp7XDsfU^DI_f46U@AIHF;^$lAH|xgr)I?QPk4`%_5mC z>&)i&0GCnT4JW_TSFZr2Re!73BgZ_HZcl7&R_N4G{;dxm|*!fGH4R6+zIfIzbHLkX#)i z6_VO+rxjV%QQYTRu}w%T$SIC?D|@Jd^}h@6wWnZYCnzkPT;ki`?2gC7UDbTDJ^i!O*;0eE{q-0b{xvxLD#Zkjc1Yr;`uCq;(aO=adONlt{1aPwMC$rXeQ=}YZOsUNZJ{+?%NQJ}~a z=hI-%vxE71mgOYpp{)~L@~hFgvy3v(RXig zhgaW+h(xyDxZ_YV2UEvM??o@?zFTy{d5R3n4|w8NVr7k1g-SO?*0p~`0X|@l9r_l8 zsedBg+^b~IrZVw%-RkK)YIq-P@ESjSaGg&-B)Un z)wj=!pTou-@As;&EBAD-`cPwum&9@OhA=b=F4Qd*|H7Us=-sUaX=H$*_fk#IGPUQ9 zD_o|;cV8gVTH7*1Bhv*u80vCdmaCo zvt~N70Ppig*6)98;d`-%@h#|;l3w&m8X+55i+iOSE(ZBHOY}+G{`l)~3Wh&`;)m=l z!h#eJA(}k$;?te+AK?}u(;_gLGne5i!TPXR(Di!7v?&AoosYLV-_hn6j(HrSaE8Fc z)vRH(zq5`iF(7}@CbJ$~6n##@GtdDsNaSr#eDWFj$m8X+cx109eqBoV zMfsk1wmc==8Nc;iPkb8k{*m2Qo3S;-dBjPx@$+qhV>kzxxBsjwr6fD}kUN4JzO5Q3 zQ6tUCvYRu(*A~IMZ#UoGeEOF?C#4z452WqH(B{!{m7sh^UaE@4-qCS0E{>9<68Tbq zvM$2TrN*95B#%l$!MsGO z=$2{%g=AyGJfG(@r-xDST)i8Mf!#L0l6u>#-DVgWlfzBqXjz(^v-QwpZ2<6`0 z1vAB$1uE6RSnmeD*Smr5ryEFKa|KhscXt!xe*T6!w3**SLZkaQWvP0N7Cp4{{i0?e zgK?qUpX}tc&cuNFjeOL7SJ|y*3DidUz<~Pea%PDpoPuRqV}WKVkR#6l0W+wfPc<~2OcF+P@Zhx4V_^D+OQ zXNx$6FS7)^@*)?~mspES1d<+vAN^SwHiE?!+y(BINKSH?yh>R?yR3653+AT_L_4lbDLsH9weD#y_{%PR@G^n z;Dlpydyw^oOy;u=myc|-X3TxaK$wa9U^pbko!n}L-ANdq{p=(^wLS~%&l|1JtL@Ja zpZDKFL!ac3axc$6@!xEJxAE*gKPVrdd5S$F^8KFLdt}_wriun3AS3j+y4~IZiE?V; z2#=v;W<>rZ_hfkB+6;U?ArnK*SY^g$5HA=ES|ls(eeBO9Z%kVnLeqEoM&Ha}g+z@% z1=AFa^>wUYy;GYR_q`+jcYN=P`yJnYC0VApVDFpTNhw@g&TNrglJy+8Yqkt2YC_`U z)Hd5Fku(1B`D1xL2KKN{p(M4CrFl_KuwtOuvc&^c6D2@cO@)4#MIer=ZNw2YE)|K& z-*NE@i;&|HJi3dJsE$keSQ8SgDYKPG?9QnoEOaBGF|e;P0?mgQf^`8zsJ-fU$(gPY zT7ZnB2w_K;BJuh;nnx({mppmsb@K2u*W~k%KQYhHE<6LV5}};yDCZg><1bP>a@TI3 z)i%f(x%+oTzU+y46kaqqM3oGkN6#6KfGEv5lxzOXm^4w4KZM^xI=RA^`Lj zebU|a3%a|mjENp+0EFm)ReKp@!(KZ?-_xttW-+1`V*XkU0aoIqukvSuU;r_0f|A+N z5~1Y!Seav(Df!ew;ig)m@l1l|C)AStYqPLPQ)WG%-RsVl+nA4Lzjbck^}U{*#!yvB z*VS!17mfM)aerdY{qg?#cA>|nI^&UFA_5$rk=a!48sAi&RbbI;Q#sP81Ud1WSI4pI zloAw7N`?8`-`BAv+6OVRVjWEptyMu=_QsmLak`usJXwaiQ*pwVem`b^ZBn<j=K4zOw(t@j&lRvQ8c4jD$CtVH z3R#?Lqw|BkWUMZK61Z4(#o9h&?4{Ou+HKvLP(jgGN^Xz7Qq5w0rOX(v9Izi^H!e-953jn3Q2NT5Rljt^y(euc;Og5>A&E0ILQOXkf z0GV6wn!jHFF3t7nPs%XBs4%krIHzYb8LULad$Xa;P+WM-!c53Uu7&}zgrnypl=Rh_0~-4k`@43q#{h(-(-f^d~=&LOPRim+g+g%zXZ8sOHx zm`gTK(f-uS-o#udBto{faxFo=(odIXm95XjQ*5HLYx~D)FVT;&o9G|JK5)XV-JZ1E z&h61p?>H1Yl;d@7E80tn!=U_Xj@O66fA^p?s_$Bujl-o+k^}gK5N=Wq_&Cf6IkG&< zQrU=C%mvYLw2#}r1%~O~ zM$jmt0yvc|ikIhK(IvA}t64*5@S>-;#M*Ga02^y10dlFo;=oaPi=A9hxg5#N`Y2!A zNtGU5xBwSOP|`5;S{&T=;T-3LC)${&T358qv!cO)M|VPw!tBpwl4E`M=pxe_*U(&Y zUeYF|<~9U=+)|x4$ql_z08h3^tiEq+JnRA!9LU0ESy2mVJkg^gy?xJQ8@L_M~ZJ|o=1M!Xzl9-B|Vj=)B$6s zUCK_<;Z3q^I?aFoO)%c9Bk}V$PMUJ&&78sP995eR7Ob2yCfm~Nd2dHY@l%lBzrPCT~`hG1-#A;z>L>AF?8-k4I9?-8?CeypD|(<>fyn zx0s}ShHu%xf5S7FP*=MiT zs^_HHeIukyb;(IhZc)vjvhCS`slJcAUOloC%UV%h{bFU#$O##h+>0B6>#Q3MdTp|5hzOVrFe(4rL?=cyJX5~&u;A8bEIhJ;dbM#$55k7$+aTSR} z#>j9>~=v8pm;Y0Ik9RHB@Gx? z$pSS48)OoS4|1*QS{aK3HYxP#`6Thi4{@3Fu;RPx)w2n~&xaC2g+HE{IWS`*2MTrA zFh%nM>%!LZ6DxnKKDH(ASrC5X87U5PYi5*S?(q?myHA*>A>+0@v3-n9bR*>8XHEt` zvt0Z{vib43BbUV!x05;kaHae{xR~Fv_%nCN$Di($-)gzoO@1@}cabA@-Vp7 z4z`bf#8mF{I#J83VL@!Pt!}hNiEUZ%eM=-L zzX)SwTf;>jVhiJ;Gv2uGGjBZ9rMBOWP0-C~>QRr|s^|70v}-QyGM{HISzAopJMfI? z^s*&woEez3$XpE&l84e0O*np|xX84K=0|6yCs~_;S+j)59Cwj5%%w*sguJc!1G=kSa3(?3%bQbn3=bE0&c zme@=XFuCRVevbCXc^980)|Hrj1TSsX6891jzxfm(It5Q-4d$w>LG;hvs#3|(cekW5 zW&C8aF_R)=wYrs~s19ZHfgLp>@WP3%MS8nF8+n_%U*wfCuck)xvBxldDo~MG`VCwl zd>$N8VtawZJ7ww*6gb*zh`_(W=YVmY&`t^%@mav)_AiFTh(53wM1x+HP7a|#$#Dt} zswRO$668Pbh{S&S2V#fSVs?eG$=Ik;2&y;VK+dNZ4Q1P>0wAznKuX}ojq?JtZ#FM( zSA3CWmwNTn!Nk)2o?2I-Fhryf=C)814J1LH&7XQXazLhgrd@P536WkaVgajn4RlDU zCu1^q>0nyClom??-;zcLV9$JOBg*~rCFpnPA&3s!SFL8eLsr^x^E+^8dMQbpgdL7AVQajKOA+jk#Pvj1K^nc7^Qn0bkFV|cbNEHSOfM_HQ!oS41l z-SkZ4y^t+q5o3z?pm`fXl5zu28Wyx0CO0a=q?_Frk4Eeo+kX!pHSg@9ux7~q*PEKn z?CxP3NO5@VB+eIQD$^Yi?-G4N#mr$aa=ktMw-Rp(wHqT?w*)Rk#hvuY#{2i4Qys9NO+s%*sF5VXqR_ix}O=XZNI36Jf=N zB7PpyU%}Tgwnp_&sBY)9UK65Pv z_$GNvKL@s?&LH3}qOURlRgAZ2f}}P>vk?c0^-PJ1>on&R#~mt{x5$-B11LqZ*TZj> zDT`4Azy7civrTxvn(-Xz&}P3-GUj^<^i*dgO?mzgp+QloR|PCI^;(jzvdIdAhO74 z=b_os7f;X=DrJwel6iV1yO^MP_wQniKIT9D>^oag7Sdk^ zQF|1krg24fqPG_hi@F2>R<#7BVm}`k!o6+$Va(}~j<@4s3;XR5;(7*BNiQic0 z+PG-)hs}Q|Nu#XSr}lJPXzyO)h?~tjZ|}i2)_HElhifUqr@!LWH;YoK zaJj|OVcaf8HPEFc{>ge_mdFT7BX>VxaaR9Iuvh>4Ed+bf;^3h_{6l^@gJ5IA3ZhkE`vptZ<<#~9Y}CcMX;Qcx&K{KRnPmi3BR#k@f7vA-5v6-rh;=#37_gd; zm<7ZKV$F8zUyJ-p<$p#|^cCEQNSf)SVVDjCdPaLRlUxR~?<9ZcX=_^DwOUQ^6ZYpV ze40NEpFJI7AF{u`4o_K++>7X8lq#0lRWK8T@xD2t5SXBtdS1a-(-OCg$q2+g^DLD8 z^zT%_=ts@3{1&313^Mu`hVS0^6aYQL`RupUxW8}iUnJ;$$pyc(m-=653A@<+GDsqj z8^ut(xnG9I$okCR(?^-ny|+_yEd_P2HASuz$PMgv#a$wEgPj?Rom_WjERjpcuUjzi z=&zX7zY(Rd0|*M59Fk_e&P^Y$d2-XYbbI`U%+Fu*y=hJT4n) zwW}A3ZPh{z8v}r8ItzblvTo}Za8C;7Kl+c9Cj=I0J3RF~Q>92%^9LXpgS-PFyE2qo=i$LNGyLOUYYBfQ5wiz@mlt`{g;B4A}Snl5Di8L!6nEKyFk z71mkG4Tm{hzTw>F+yp}nX*s5%Rlq{408uMfI`Zl8(N_3TT9!6TQe>#RWZOJQq`>kv zYy1C=34E-O;dU*2)Lz<7=mg8t|f!f7>i?&kaCei>-GbKgT(Z7CPMyU+u(9VDy$39ZE!#Wpm5=zJzP*2V@rSQ}$p3`f<>+ zzP)ohveL;+fmHNB&W>d4kW^L-?Ne=SFS+|?zibXO@yPP|uX)hp(!e!`v1S(68-H@4m zcEj380%WH2Y1oh{iJ`fa`hpx?RfC%3Je<+fA`C-{^+>&4S_I$XBWck~UFjBCInj~q zZqf6Ij%0%q;+Y{G+mTA498ChRag{Y>FQ&w=xr=N5w-{;DSNiWoWr4;I(Mg*FBlTmh zTR!z?qJ&=h36!F&{DUE=wQv7S91WZfI$;53#iR(Dh>41q$iEQIFcs7;eGBES#K4=a z*a7`zQY5@?%NO`D9ke3Odr!i_{$XJ+TB=*1q(upowDbs+On0kWpWbpoCD2q1>aPXa z1&w(kVma*`?s8y_KOtDtU(fz8e@;%NqQKYMx!ZHmra*JENIE6U|s@~87rvlEDIH*Jx@cm>aDLe?fcw(pW5XEm5=tcqo zL)qwP%7N=W-Kh!^vCH2vrarwTgqo^Ybj^<=?T6)0irN-A7IXqyGw9r%Zn%Cjxxmx0 z2^&WJs5?kL+!q0C+p;PuRf~-8RqhKoUl!*Q@V<>%Ey zYGR{!heOQcFzu5zBrCx(4Y+iG;i7NS){8xpkwv@XjOuP>6R>FaiqlbgtWAPAZ4H*T zR8kPukLj^;s#N;^!lsb^IvNlVaL6l!S{D`CWe1G=WLFU>_(1{vKB+FGKOsQ@y%|s! z2#A%%lO_iTaCqnB5JVX;eys+b%Q^*FsH)oYzcO4T&Fv8B!iRP>>VOZ33$!YOhK8&n zJ$9MFP@gi38(yRWIbbr;$J5yXrQGhtT_q@pTK#QVankB9g!1lS=?9Ajh`FrN6Su!C z_Dp&CuliV~Rg3Jq3~f)tGMNC<&ydy6K%zp;gFxaMSiM`BBi6MXGsT-&EQBuFL$$+e zb6U+&o8#vzATaukD70al_;kpLH-zm$C)3IT8xkjAK;|ZMf}xRdY5xO_07hk6m8i-} zbGTGm7qVu!rzs~Bm|IQyy?{Qzg!d;VF*RpMleDTQ70_nY`w|`+)R0jOQTQ6*JHIxs z^)Q4*(T@0VZT$|Vh+eeA61dkU?e#nNTSEx)r@60jty7P^sgScdr0)$mHvtH#PUhb% zZiKun9p-Ma_}@;w#B3xpYaoXakh;9i&D)bqPMBevNNS}b!@@W1sUSlmtDyb2G#6WP z(#mbY(u15N)-9R|ruQ(P07pPSA?0c7OL&~)JhlC>-F_QEq}zWg=w#?ql^1k(g7U0l zD0N|dl5-7{z7&mAtKwdB{~l}ZH^|&qle~NGBMzbz5+Xl@fg`J;Dci+J^a8&>@jrn6 zdj5YZ;15?QeB%e-uvFjh)P@{i=@;*>5CD?wEa(;%wDa|#^RK%SIhV85$!;B4^L|J@@eyd1f691I>%vryN7oi#x^&8;vsu+Jp=o~Z_pu3nIon=jv6 zaT5~iQA=O)M-Nc8UF-dixv|@AptfQ4wuw5w2(?QUPiOY z6}8w-x?v^)-=Q9t zlV1i}s~SvH-$l^g1t%z=W0|Y&b+M$yrP~Q-gob5blNjpWcogoNzx4Pui7L0|5Q2B| zCgECakPqR^iOaLnV+3!< zN{$2)|BylgD^5xs0d4Xz|Atpzx?mCv-qh=)j)PK~^X@Hkhpi zoa`c7(Ui!$TJ@;f1F-!on&g8`DbR`F;updO>;FKF`2P$$p!B3bspdVICUOv(AmECf z(6oDYF~#M$G6Pcp!9@8{R!1Oq=qP&+8jeTdP~p3vB#4B8zzwYxyVHvSpan}5UeaNJ z&kh567H}2=JUa~7*jKN&A@GTK4{f#;8k0aS3aO_dw zV1)^+<1Yyk>7JVGB5EufzG$8YiW+2526d6plH&i*Vb$uI0*MElvX&Z;UTYuQ@pIbG2iDSGjxIZni>Y?e^acTVI$M<`u3A=SFmY`ggg`Kn zwT>j1a2eFmm>IrUTc4|~KT-TT%ATGvu6n#y1X2(R+am9@&m>oIgLOg?|35oIMK1?p zrwg>ZMTdBdlYH9xw>`!~t2y#HJYycJcMO2b-%S6@wDl<(58Q8!&I7AuIQ_9^7hFy@bjK=}ws*FwIVB5qCYxX1g(?@Die5CbMvt+W zxoCOGEWYpe%)0u5Sp7$Sz4|B_>-n~}AHRO@OA;d9{MedfCki4Ts=2PxU1Qw)s>Gt& zC?~LCton{dXE-xBCeOdUUDV_Vj(j*xf8f=l0zZ~O>|{Zt#V&y$RRYidKP6C6cL~8n zLMjd>s-<9ZUt?6gX*Fe^karMjTi2?V43}*-)+o;KA|FlDA9~Yj$)PCyLJ*WK~+9ksdPSxK~dT-BajHP8U46ut624NUM zv8DwcZoo|O#ud90N;$exO zAB9bV<4=$FNHg?5z7O?d$*j&j!aPCcTdO(9)QqKawVFNhB0gwZc|nG(5WXZjSey9L zx5W;gP;nwwF8(D%XA1`8pCocAhE+qYgl>>~JI%LUp9Rf)SA~**-cW|2om4A#W}b~A z#3(u%RX-zJQ2!|mq&Y~?``lk4pHE+k4`94FE-f)auXyy(OqGAf`yM?~ffqMCHO>|@ zSvel;c9C8!sU2+|y}F986lM;T>W4_M=05wkzy9^Fa9mpu4!(%=_me_eq+~QwGsx6R3)1CvaHB=6Q^S3bq-X0ex0} zsC4N~;qL`vOBXo8vw19bgug9IDkxy>@;f&L^at~#D0~hT+_Pv~`g56D^U{48LUrV)EiI4qouZ!8d(j@Ld&BUUPW~ zHFDJn|Mur16_COVnxN(0ZG0K6984aH0!;Ozs)64vG0H0t|D&7pY29MuDK!yZo7e2B zqyx?l^P97|ew!N;7($HTRBGUwZ}dm>X{I|v|5XE_*x7RHzj{Tz&2+o;U$v@NuRB|h zJG1CT2hN*yRk75~tFYQ(oOzqk`q8QjbOX1>!w@=!FtSc|^6P zQ{aA5R!<}15DN4tlk+VD@CMJI@zWBY5kbwd3zmNaA-p-!`HwAie?_Z)QU$yqZE*mQ zbo4m@;wCO1#k|LFIeG(|o0u62k07#Hffj$I9~ef)-x+^nJE+%;)8l9Bb^N{Cd3^?TEzk zjB@TQ#uxAKUbN4nKdg#jAZG*ci%wwbW~i5+iL+D9DQsUvUiD^%>V0}b`tuy?gPuGr zO_2s}m(RWpEZw8k+{6s@It8I9Am|DR6d?dmu#x;~>_IK{s>s9|^{AHNhh5O%ho9xw z2OG0?>fd(5W&)j!X8oNlv8-^I?0KdB*zz(ljTKw&cZBf(GQC9h|BL;lrI8DafIIQ+ z=Gdu{%Ax*^&OE2XRpxN|wa0cXa*3~|6(?oghd+&-{7U#p@`!9!y}9)HIBxYA!9tK- zRiU&z@rzTebZnK1MXC0|YLKc5rK=v??@Ee5rnm4WKVnu0b8amnJk!eQ!J)Lo`wV;~ z%WOytaHZYd}2 zu~!xE(&w~Z^sYyLx-d#4<`wmAp3;-yANUeuC$Iq|Zk&K*`Yh6pIKTLlFV6v-52=&^ zBV4#3L~V*u2bC` zmA|=K+!|K?Jb-JmSblXCf4PE1UrbXZDEjsQ` zj2&rin#m1J(L;snXu3Srq~R$TLqrQYh7#_4H-L4P*mBI)REweRfbo2x>?t9sNt~t@ zow)rLfsW+%5vj%j?qF$Z(dD6{u6pr*5h!g6YUM{&8-mW1TvC5`26sWut`MM;;*z5R zE1Ff(qSWmp0;SDCZOVy2CT$ieo3E?HR>fbm8;Av9Wan+gd-DcRard?mnFJkDVpLQZ z>!gWBTpE}dQCzx1o3d8~@$#X+hWaxXFmYbf_xg*_Nllr5rbezdINxzGE<%Ip`(ZUp z#mv`f^ApH|?rN;vN3K%J^Z1uNY*cgkY+1NLwxobQ8S6Wf^LQ3uMRqjSc(S=v(&g=0 zp&~Z?oF7OK#EI)m)$1l=-I0M97RA1u`E_)5Ffn9(EIyjXkduR?WwbiYiPy;@@4?(@ zZ?a~vcQZxmWok+6j?o#B?4bVhlHNJag5uCV`MxZm!tNNLEMq5tZ79IOKHJn1Lmw+^ zO2-RjUogq$A;$W5DLJc@xe2kbZh%E@4H?TzFfv;JO`cIt6v`wkg`8M815G_C^0_?v zRAPtszasRE7flJ}E!yRu;O*xQe;LUNnerG|+6Zl+5V}Z_#!hsF zYuF_V9N{YswfB2Vk7`xFAqpaTmJu68CMcSz!n_YFy*DImOBOh^s`u4~5G)M(^jivpf!LD5QTYForEvl{*@>3A zd6gQHRH;=($P+v9mGGBTRa&)0u3)QPs}>1?_M27mVByTh0|QnxI^s&DIQD#@blSOr zAII_{*?a_u&^sz*$*>J&>N9)Ez>QJfHZ<^~d3WV*)3?XA7I;dnO-u7`^Z$6er3rYr zK!2@h*Y=N{yBa@sA<2I*i#riQa$gG=GYj(sagOpQ{vT`a0v}a%E&gYcKn4t)pi!ct zgqpUb&=!TRgIgUXR;xFFw6s zWW(sIOO_lS?&oYIWs0QSPYPK|8paJtRUf)TZ=CQWz47`=r;3ndtg$mTWMAI9_#D2H z+>ps#$b^|^N+}?vr@5Z|W8ZL4(tB71usRTJOs?QEnfS$QU}qujkc0rspNx+O3btgD z1+!w$m)c`(V|RIu!R9r~Tis7cEsIuvJFTSQ?dZ6}g-2Z5y$!9=++BrTo|m*0*OLrD ztQ@IW1;MLho>5T$9!OuUY~-j%tN#$lfhlu3cL71XHXUYOH6E`qs=5AZ2o0&Y* zXY0(L-SQbC2chy~fQZ*qgqEY%v%sr8*qXM>ja+X*9$%Ud5YBbMNVF`Q-_3CEaPQ`g zoXySqGu?a6JeR8C#u6Gh(@Z<51HLkK;8&)ebLLbzy#;{RrALkp2<7Q1_|_h4#gpT@ z%<6v4@1&cZXD;k?EB7l>jmQGFdT}G$_p3%W;ww@k3%qHep?<4|B@7k7tFm&ji^ZBs zRy8`kpvVt+l`shSNdVBtLtNC2qeLC&*i0ndl?zM){oD)DldT_kI&F8!=A z0oNzq!VhC!2b1u1qu<4<3MTnpcF(YdgV783Nk62Asy4&(I+6pP>7)LvzyYrKK{j0T zCkAwPuvhO4lTf^V*lhE4e+C^(^-f6SztzKk=c-KsUJB-Lb=j;|$xp+=Q$`kyy!@G{zo+{gZ5gE3HP`qT!y#Oz0QQffeIFt^fux-GlQ z9#aux`rZHInEu&mLdG-;#}z3U{)qZc8&gs0p!z?I>C2csCN-41XoWE-G=d%kho})P zOZSiW7Ua#7oBY@-NC1iDrHBT6SPH$;=$wS2D6OEQA@f2${_xCb$~kG4^=>tF3@)H@ z=NQb9?x>KgRG0#zvad6HE(iO&p8I~>Rue4DzytGz#J|Bb!7NSG!4C}`70X{*i zKZjGayJQ%l`vAfYbYgw2%8Fo=oY3in_pAluCd&sM3>lbuUwkR3O5_RH5W{J=vuCFZ~oYE7|OMUbt>~)|8pAR4JS# zLs~Gv-09B<70g7(34i!T;q#)G@j>kJpj2rW@>5u{3-=kj3Np-ZWfnvh3j=BubGtLPK*B%>>-D@IFRW*Gfe3G z3sW-_-%8WHQ&S0QLH(ol)8DzUqmI5N$ zs+QB2JGIyXutjv~?^y1#NoQGZ13s%~xj$qe@h{YX14CVjulZpY69g=4$w*wl-^>K+ z94-A41NqxOk;&gIUt!0eWY)cft*8^1BXwC-u!dT&Rn;E&5P+y{{gPKdpk{-9QwsDA zm-?ze|K1+Z&*hf16}eDmk=g>{fn8hQ?~9XJ@Sbdm4)(Xet!#-?CyLL~v|i{)qB3mo zPEA*D7>nb98WPsdcufWa&>{=uYKyJ0?<3B#`j1noTD^w^C(n0yjK4u6+|nZ}?iU(% zj8HG_~;S-_R6F+ z$PRKc#(&B)WV|DB!W*PgRgoUw>9;3EFhHNpd^fWvVk?5w+?SsQNgV0G03)(pBy!;a z3SA4|C!f-7`Bzu?TwD$)F0cM1PC4T1u!2)=qayY&`i1UhFs?A>Ngu?{H#oL#5uu5V zRgw^cq-KOC$nlTt_^ETKr#>Bnp*@cn<1I&|ivM4N21}Rx=Y;QxV~PI+RTh zodfoiuAYt6lzIP-AZ>esYqCUs#$0zF+pF5*`|)?t2OMn>*gHXro#9}4n?dwonm@=! z`Wb&jMr4&&AkAK2{X&2RHD_%@=!TPp+wlEVda%mm8FlFTUEvs+W^?InZo@(Oy(bIX ztF+SNRVI%{awqo{apy89b&-N{-;Sr_m7p*6f}2sz{Le~ z+c|Lw+Tgd!i!5UdRA@fTUTApam@9nc*zJ*xvTxa)IBpmh1s|s+{%P#t1YyApCE&lv zh};KLcae2NexwzzeXZvv&Qs#CMCoR^wo8ovll&Ogy(2|Q2Ce2+EWeHDJXiQHe58(3 zKSt-I3zbUHg3lrgrfA{Ok&O+~gYab{WyV=Le(V6V!Dv)m=yz@PyIu&o{^ECGu={Sp z4Uu{YDp;SVA}jaE?YgH&!rXr$QtKiCq+81bB5oTgz?AQ4)5`ZC1uhl@0SwQ}*TrVx zcx=rzBBbV9&{dN!4_>f?#MvlQ7Gn-VF)N&s(TgzBkp%-mmsl-x*zO ztUx4=Y4Aa70@qNT*7f;IsF9&_@=9 zR##_fwD?=bHKL{XjQr6`_jz_`<$JxJ&*y%fi&*f`gDnzKnDD4?AfWI-V;pBz-JSU@ zTHQgOlpnrT%_OX9$rttKV}dyqWpymJwL}0U#X&brcQcUgw`%v7=AI*+J@}!)JLF`q zw>yS#Spe~NKc||QoLr}S-eSnGh?xb#r_4001$q9Ar__MN2Kn-0;S@6q0O|(djyuxYu{EU=&#&9(ZA=i64nO~+ef>mqM zn$bDxHvB^Wl(CB#p@MsWh*;i8&$&9Wkp%jem>LBq@RBVuMw2xfC<)D;KlFUFl|H{{5+ zrxU1Q=|4dRqG#9_R&t{zX$gGg+fU|Rzo)5tu=bNotlC}8-)cFE^#M#cv;~j+ z^mK{-q*mT4TPln|%(*sO)duW6)RMm!ZU;hqucENf2w;x^5IA?Z?HaDrTy~>UDkk>+ zt~ZpNyZ04DH!4%EqLj}ZZkPAPevFkKmofJ3g;w_{OT@mfe~4eXjQ`VY1_RE+Pjc*~ zBH3a!y)<0(u7qath?Gw9j zIUs)e$JzGB4RU-cGS11o!1*r3vT{~!e}67${!5PET8zF0eb_}IA|K9%{A}k@>E4L@ zeNL+dN>25AUeM>5iO;qQ*RI%+t7Ke@(Sw;gTRs_ld)NN9fNv0e>KK>LFW8^C2b+r= z@#ehPGwMURT#V%#qbB7jO_s^|y0t>OXhd`Ukpn0Fm^qkF3b&xtUVb4QfF-o=I{T?LtI^#oz$O|>u#@kCoai0 zi)=vM_!9QuNURHmLrnOwPmu57bFLAK3+;g<*g{xa`9)AL=QiDXXbBl``n!^!-S7CV z>zT2ovR|UJF(SwwJGM)|YU%7@1<^4Z+jQdvBhv83)nM%`M!M)gQd8)GrmgX-@k)TEDJ-%Pr;3{?fR z!#b7nmKqWhsRm&!U7{*b^BH6|ebz%Vdt76o{Baw~A2rh=+fHIoq)Z5PQx(JNGJ3aC z{wN&V<{hzHHy>5i;Dcwn*G!IhjXBO-$e-Nlx~aOD+=XX2~L&mShW9Wgy&z3RhTV(?)a(swfdukvrM4)ykBLnH7N*TzIOsQrK$&sV|=2t}2-LorH#0CzR+T})B z(w3raYLB^cFz&x7@l8vWF(VsE>fM=k^0wospzL={>>X!M!DTCTa*7(>!gd=CF zLR|yoBR@UBzKgG*C9gdquiaE_i=b-^Eo-+4T{P;CvR;PuOs{d8<8J1I8fB@=RD)^A z9-7>#t%pq<^wGx-7G~5ovfjCoiqbqS^9HoUv$#K}&GP6J*Ov&Xwj@+$mrRjhY&s!x zLziT#@J(#}QI<=QpM?iqY7(LoPNo)7#vIx9C5{}_@V%bS`K8t~OZe&l?*{_B(Fy_E zA!CpA1>0K{*m9{=JlVQQjyRuLe3Kk-rfL)9+wApx5`Nt0>9ALYYEhb4!(RawyGgD7 z=O7&xUClc}ZMV5otz=53t?-wu(ydpXVU_McRHSYsWJUbcq|Cxk-|Z;~M0>UD{{VqK z<8VNz7h<$^LeXXcFZP1W(GFyOBl3)_4EuE{f1L~tTAbkIDd|CrGU9*w-Wf(bM?^)I zu(rLiVtfG5>L5lb`kgZsy~-}CaDCk#!E_2Y#$V*I4^@n7YY~zJtlMXLtzQU`OpX?x zXH+f|Sh7}h^7k3Rlo_{IAkvu>U3H$wiRGTshn7;|+dgf=!GKjh+iTrCZ9?N6Mac<` zqY=mKXi21xU-kl}k^T_Pc~P_V3pph{qA{+OKhNE#7&)7V{L$ibjLJ@L(detS`io_Y z72Pou7E1_<#-aMvL$!LL;u>#u=~v&(UBOW*@iyG~TEJ`%M!n|@L@!_8BrsOi7|=4x zt`4}5h368%`J3{dDeuR_cgu4>c|H-oL!SG~^B3XU8zYI^4XSY0`4Bsfv1LQdw z4)~+~fs>Pi}p6&`C83I+~PKy>jWtizjV1*;^B?hl+gVrndx zGctl}3-?)5I}49%OP`hWsjG0kC8N`$#X~a|t-}O-)YR35_^@8o>3Z8+cyd&D9X1A_ zgGTXop_~vTw}n3g*gE~uzyOyuW0m=OA%YlOqY(lW$06EMi4PFS2riLukKV@fFbMaG z7YgxPaFFkvM5)0N2&P^-8ZRL?uwsQfx5#!26cV)eC6t+VH3o*B)Elyg@S7xF-w;=0 z_E7m187KGpZC^&SuRu^b|25ClPN@k2psOpsSLP^5U`@ik?v*a4HwK2NdOWXc^}i;S zOSvJgxXrdkXESztVh~5kNaihOAnWvK^>r|OJ4Ve|UARvsBQ+H}yp0});%ykuu$YO1 ziSaV4slsTu{{JZ~(@1xi#?+J~Mw_oEMk>wlK%tnJHUi;U^<-|+4?x0~p21lJ~h8#y|7{s`EH^UM}w_d5aChqwX93jN1qZcF#?e$VfE z1+!s<62@i93!C1UyPoU;@h7q&v_3uY?Zd4lTD?G^w&AeaY((c{y9Guh5E7I9QOW+O z%Kj)deq7jr--5aeDS-2oPzx?5v<+`Z-qAv%Je_li-MIb=HjMPZh4o;^Qs(LxDmj{|2WbmvW()i zlBs+vIsvEQomwQ$cj{WGW?9Dif#3CIWE(LB;$4!|fTN6-popdai`PU6K2XBAZyWSW z)Hw`u@)*6n#C^kc$OFD1PuIy4?uGlUR>|ev$qE6<&XMp08UDf@EeA5VuT>L@PA`VB zBR&k6!vp4IG|}4o`9#qNL|fY`$CXb4P2QaEH!CW1vt(MYQ-Y3or6pjscV`4QB!0S5 z#lTaM?PArkaw(gk@ZF-oELz+8NTZkLwsk`e8mU=CaW~AHX143@aSX@QvrRp>T_2XV zL@=U0hW{0&KFx^!bQ+4hhWXQ#)NPnIfQxUKWvC&szSy$-RB)zZPEz9MMV6xF}6AWt{n#D!a?9@*MYg1Kvv z6JxZ%9&GO3KzhX~nf6i5@Xq;O z-fdwxM;9DYUP7xCDord>#KLgUER{0ZKtSjSK98~-V%oP=`~Z~)&AW<%W^sWZ)g0Af zbq6ggj`S067cqhpC_lcT%cKhE2R(VSjIK!9N#rQ4=EQ(!AmWqAcoE#DhH2a2a+V+3 zEVh^U-7s5b#4~%1{U+cT^>}4f^$vVl4`ligP!=JdU+`VD&2tuCjWCYOo~t9t{Q2K; zkiaoRuz+{OK|u$GYeI!tGcBPR?Gw}lv`?5O{R6n6@URQeZ$ITK(sA$aw0;Mz6FFM} zRW3x#=`QE3vOIy%cLUZHh?_x|c`_v5nt*i^I^3o1Yh=%d2kGsl?h>9h${(*~TUL3k zvV6aFONGz6dzze*5GQ(c@(DB8gdd^>h8Yzig2!qe1u6QYjrN{WXC-ed)%@Y0NTsb- zZ^0$O=)-x)FWP;=Wup-@sNzCdwf_*J%4_-_0U1L{%-9$|egWsbVjBFFnY95|M{+-1 z&Jk&88{%26@3r}bKJ#N0P~<(yoO}UfcmaMEaht{|WVm+Ys^5)Y&73)}8?`5fTS5f= zC|i&TA;7h|n|bt!r>Xmk(!y>gp-7h8Q45>hD!h+`57+bY)BHqLd;j5@-(%uXT*OVQc{F}#$f@0%(A~ZMsqV4*c(F)zPd9JLTXF(}*tO?#ptbMU z>Q>P?aPfOT#0~w!d}O@CwWY7~HGYymGJI|646aq;wQ{#YYR_!ECi&HDoT<6|Ij`H^ zI=P3#2Yc;-v?NUpXpx&(!hC+6jm9hB^e*4gP zBD_BrMsqCurag0_i^{CVmLl3>dG945V9kJA!vPqv)tyOWYN<_c_6RNT^G* z%{`s5f{fq0itwBD8iI>r);YolymljJIpQ8p_H(bDlZ)JRw z>C~-Tri-ce+iV;sT8P)vM$iyADXs25Wzsk|tVL^-H+AAF5oPWdm*TxTI_NVJW%|8X z_R8F2TZ0XkUbrXVTC_$lyk)v9O5A@QRYblV)B{4R4aKiKZ2K?n^2+Tj%^*<}h;f zTq2za{+fRks~GL~)=spKqnQ<(nH(+~U)45n&(U6|%JV_EKJmHc3_@jM^>A%0+=JhI zKrkX0V-`bOkj1l@V*E*Evj|v(b8xZ+&AoWuiao)3C#bH4B^RsLXus*V^#;*$1)@Ro zc>G69n*fRQShpUQ>0_g=i9bn65au12?rpjapQEg4WH9p4}3(oSnh-J!}?5Qef$aN+m}BClZnx5SkzvI5NG&oYD`l}8OM%?r zng;Oz$I-NgKxon-gATgl`jsgEdm zkGan~;w3NEb)R}&?b`b3n_cE!a(O-RdEV4)-`G9d*QU-L`~u^+kmJ0=eCgB*N~75q z%RErW{4LVW&C<=yW|y%$<|};5m!Uf9Gu2PS>xQ^v8nlu&2o>vKYS#`YnX#1+Y?Cq3 zeZ2E+z{q*xOlVXP9+pL=?nw;O#!53b0;69`lqvYUm_eUmdCmf#t{Z3eg-t3BP_Y7( zyI5(<_lUQ!8Tg-x68)uxt@`*IOXht?kNipKd#u^mSX*x8h`nmCY|XvQJ8QWI$49y~ zXS#VPo@VbN*tfzKj$b4XtYvXwhd-m#i0|f=3T9EksfR~uWO1eW(7vpR*5sewUhbYi z2Oau{4J_cpH2UeRkY>82kg3mlK%r1qCzu|(9^emJx6ERrEl`}S@UiBh%Yq$xqt}wH z*5UKKIQN>=!hgGa7JF?o7%RioE(?ra7L4TxOt{ulnqWqAw(DjKi&Sl;N0Qq7(ZWpr zq{CPEqPZtJ3B=hb{RdZWDivI5?x4e~X(E1$pzsYZMULf!Zi^fnqSd#M?2F!z;q$yQ zx0^cqBa>^dX)iEzE$Wc2kdea#uZwhU_owF3$o{Mdff`#r#ms+E$J3Cw$+!rJsWiP$ zrMLa9O69ogu9%_7S@{5aFj|%*rc{$X657kK+e2cvr~@!NnV3#nS$*32Oh_z+Gya|d zERHmv!vM0>0I*9)dJDJft{1sRq({u0^gLRe;q|m@%U*$$HTOktb%|FIg}j;Nru$`< z!ym}fKX3sQeiZ<_TBKfD-Tln?nNJj`iZq3UajM5@qJm#RxI5|!4X^m`6zIDR;jE#c2}{No8yl)GdF(~ zc0t)fX~n;w0~F4qat?!uW5l~cR=aKh2ua);l{<7ch~2O$aOJviNU3{7oy3@gkvq*% zUZ$cV-|5FSqEL`^E}CFi4@_m{7Rj>}St+A7%VxKiRWlddF$zg${ala;KG(_wplrFR zf(T*Q1R`Qy$PWRBTPb9N!>sT3V6*lzMP~T%K)?v&xlEYfDrH2?p@Bl~x$z-yx(~Of zhpy5Om*!-K#t5s_fP4Ml$uX$dCBkCFF8g1_3)~5?%M|J6o)jM-vwS79>@ZI@H#byf z@T|lqM|7$a%*!-4Enk=(GVBiM-5pTVOdx^@>8xO0!)@r0(IZ6Q9Kvm}pCXK5EAD1Z z&(Nc*PVG^>(57eY5&UJUN4NyrVH!Ek%9=*5-Mg=zo=m$l6VBY3B06KUT2^V^;jNir zEb!DCXmwFp-S!d%YVjq!K&KzU)`FRclbF7B_V2T7N&GM9$^TPLa0N*#6Kg!Z`}wi?Fu0czaK#b zzDcZ!`PQ6*LMW7%%+Cs+ckKlUP1p@vBZO0|ZHVG&E_E8W&scaG)mVCHj12;Xvd|O( zXr<6^iCILCQ~$7X*!)$DB)@u6L9A4 zHTjRp(ArBzN}jk3N6{~`kz~MJnwB*VyEZku!?4#xuev#Op3vgsZx}OoV00n}>%{2| z!*cMQTK7h%pU?Bf{2eyDjJ1dIEoUegPO7oI@q0CvOU^Ksx;Kc7%6j|EKL-oHfX9=8 zu)Dg4Fy0wLPOl-Xq1Ozdh@Z6h&-tTZg0&oWI>3!vKNb*)_S+yM{KBS! zAL98mDwx*eVzum$yK+QxrpS5goGGbOlhKz`Czfc^D>^KkoL+lWuBhQJ31vO!Zo%k8 zD-gcVFel}C%`&$672*ks&5V`C-P52%;ND_ssMpGJAzWwjd}~CMi3n6An<l&RBDsIWFwZi1<{{y1DHHI- zY|hqfO=QZB7A9*28ZYBkhS@!TN20^>cLz=U1BQ&D`##yfVf4;Y=3A`$K+nhshOKpW@MMB7fL?9|i>*yc^*A z#%;jGtBBuTf#H|gY1k7mxieN^E-GjU&Ue9g*o+@n=5{W2n38Fg)Ey3uEIGU_Utm1^ zU7kw9I;`NfUM!%WHI7f0fVV7okQd3TsQq3GB5A@B#~)`tfVsDWz+8jO6!JZy869

    S|kBwH>Dzv(d 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

    r)y8T1?sLvq1y|} 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 z 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℞Z)d-Hqi;x}2TU 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ξ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