From 35bdae390b05bee4deaeaaab89a5ca82aed89339 Mon Sep 17 00:00:00 2001 From: kotori0 Date: Fri, 11 Dec 2020 03:31:56 +0800 Subject: [PATCH] Add SandHook-hooklib to source tree --- build.gradle | 6 +- edxp-common/build.gradle | 4 +- edxp-core/build.gradle | 27 +- edxp-sandhook/build.gradle | 12 +- .../system/lib/libsandhook.edxp.so | Bin 198700 -> 0 bytes .../system/lib64/libsandhook.edxp.so | Bin 342808 -> 0 bytes edxp-service/build.gradle | 4 +- edxp-yahfa/build.gradle | 4 +- gradle.properties | 4 +- sandhook-annotation/.gitignore | 1 + sandhook-annotation/build.gradle | 8 + .../swift/sandhook/annotation/HookClass.java | 12 + .../swift/sandhook/annotation/HookMethod.java | 12 + .../sandhook/annotation/HookMethodBackup.java | 12 + .../swift/sandhook/annotation/HookMode.java | 17 + .../sandhook/annotation/HookReflectClass.java | 12 + .../sandhook/annotation/MethodParams.java | 12 + .../annotation/MethodReflectParams.java | 22 + .../com/swift/sandhook/annotation/Param.java | 12 + .../sandhook/annotation/SkipParamCheck.java | 11 + .../swift/sandhook/annotation/ThisObject.java | 11 + sandhook-hooklib/.gitignore | 2 + sandhook-hooklib/build.gradle | 66 ++ sandhook-hooklib/proguard-rules.pro | 23 + sandhook-hooklib/src/main/AndroidManifest.xml | 2 + sandhook-hooklib/src/main/cpp/CMakeLists.txt | 33 + .../src/main/cpp/art/art_classlinker.cpp | 9 + .../src/main/cpp/art/art_compiler_options.cpp | 25 + .../src/main/cpp/art/art_method.cpp | 197 ++++++ .../src/main/cpp/casts/cast_art_method.cpp | 290 +++++++++ .../main/cpp/casts/cast_compiler_options.cpp | 32 + sandhook-hooklib/src/main/cpp/includes/arch.h | 48 ++ .../src/main/cpp/includes/arch_base.h | 34 ++ .../src/main/cpp/includes/art_classlinker.h | 14 + .../main/cpp/includes/art_compiler_options.h | 28 + .../src/main/cpp/includes/art_jit.h | 28 + .../src/main/cpp/includes/art_method.h | 87 +++ .../src/main/cpp/includes/art_runtime.h | 18 + sandhook-hooklib/src/main/cpp/includes/cast.h | 123 ++++ .../src/main/cpp/includes/cast_art_method.h | 39 ++ .../main/cpp/includes/cast_compiler_options.h | 24 + .../src/main/cpp/includes/dlfcn_nougat.h | 17 + .../src/main/cpp/includes/elf_util.h | 72 +++ .../src/main/cpp/includes/hide_api.h | 59 ++ sandhook-hooklib/src/main/cpp/includes/inst.h | 120 ++++ sandhook-hooklib/src/main/cpp/includes/log.h | 16 + .../src/main/cpp/includes/native_hook.h | 19 + .../src/main/cpp/includes/never_call.h | 14 + .../src/main/cpp/includes/offset.h | 28 + .../src/main/cpp/includes/sandhook.h | 16 + .../src/main/cpp/includes/trampoline.h | 231 +++++++ .../main/cpp/includes/trampoline_manager.h | 115 ++++ .../src/main/cpp/includes/utils.h | 41 ++ .../src/main/cpp/inst/insts_arm32.cpp | 134 +++++ .../src/main/cpp/inst/insts_arm64.cpp | 74 +++ .../src/main/cpp/nativehook/native_hook.cpp | 96 +++ sandhook-hooklib/src/main/cpp/sandhook.cpp | 567 ++++++++++++++++++ .../src/main/cpp/trampoline/arch/arm32.S | 124 ++++ .../src/main/cpp/trampoline/arch/arm64.S | 139 +++++ .../src/main/cpp/trampoline/trampoline.cpp | 144 +++++ .../cpp/trampoline/trampoline_manager.cpp | 324 ++++++++++ .../src/main/cpp/utils/dlfcn_nougat.cpp | 296 +++++++++ .../src/main/cpp/utils/elf_util.cpp | 171 ++++++ .../src/main/cpp/utils/hide_api.cpp | 367 ++++++++++++ sandhook-hooklib/src/main/cpp/utils/lock.h | 30 + .../src/main/cpp/utils/offset.cpp | 59 ++ sandhook-hooklib/src/main/cpp/utils/utils.cpp | 143 +++++ .../com/swift/sandhook/ArtMethodSizeTest.java | 6 + .../com/swift/sandhook/ClassNeverCall.java | 13 + .../main/java/com/swift/sandhook/HookLog.java | 37 ++ .../swift/sandhook/PendingHookHandler.java | 59 ++ .../java/com/swift/sandhook/SandHook.java | 416 +++++++++++++ .../com/swift/sandhook/SandHookConfig.java | 35 ++ .../sandhook/SandHookMethodResolver.java | 167 ++++++ .../sandhook/blacklist/HookBlackList.java | 48 ++ .../swift/sandhook/utils/ArtDexOptimizer.java | 101 ++++ .../sandhook/utils/ClassStatusUtils.java | 68 +++ .../com/swift/sandhook/utils/FileUtils.java | 119 ++++ .../swift/sandhook/utils/ParamWrapper.java | 129 ++++ .../swift/sandhook/utils/ReflectionUtils.java | 54 ++ .../java/com/swift/sandhook/utils/Unsafe.java | 124 ++++ .../sandhook/wrapper/HookErrorException.java | 11 + .../swift/sandhook/wrapper/HookWrapper.java | 443 ++++++++++++++ .../sandhook/wrapper/StubMethodsFactory.java | 340 +++++++++++ .../src/main/res/values/strings.xml | 3 + settings.gradle | 2 +- xposed-bridge/build.gradle | 2 +- 87 files changed, 6887 insertions(+), 31 deletions(-) delete mode 100644 edxp-sandhook/template_override/system/lib/libsandhook.edxp.so delete mode 100644 edxp-sandhook/template_override/system/lib64/libsandhook.edxp.so create mode 100644 sandhook-annotation/.gitignore create mode 100644 sandhook-annotation/build.gradle create mode 100644 sandhook-annotation/src/main/java/com/swift/sandhook/annotation/HookClass.java create mode 100644 sandhook-annotation/src/main/java/com/swift/sandhook/annotation/HookMethod.java create mode 100644 sandhook-annotation/src/main/java/com/swift/sandhook/annotation/HookMethodBackup.java create mode 100644 sandhook-annotation/src/main/java/com/swift/sandhook/annotation/HookMode.java create mode 100644 sandhook-annotation/src/main/java/com/swift/sandhook/annotation/HookReflectClass.java create mode 100644 sandhook-annotation/src/main/java/com/swift/sandhook/annotation/MethodParams.java create mode 100644 sandhook-annotation/src/main/java/com/swift/sandhook/annotation/MethodReflectParams.java create mode 100644 sandhook-annotation/src/main/java/com/swift/sandhook/annotation/Param.java create mode 100644 sandhook-annotation/src/main/java/com/swift/sandhook/annotation/SkipParamCheck.java create mode 100644 sandhook-annotation/src/main/java/com/swift/sandhook/annotation/ThisObject.java create mode 100644 sandhook-hooklib/.gitignore create mode 100644 sandhook-hooklib/build.gradle create mode 100644 sandhook-hooklib/proguard-rules.pro create mode 100644 sandhook-hooklib/src/main/AndroidManifest.xml create mode 100644 sandhook-hooklib/src/main/cpp/CMakeLists.txt create mode 100644 sandhook-hooklib/src/main/cpp/art/art_classlinker.cpp create mode 100644 sandhook-hooklib/src/main/cpp/art/art_compiler_options.cpp create mode 100644 sandhook-hooklib/src/main/cpp/art/art_method.cpp create mode 100644 sandhook-hooklib/src/main/cpp/casts/cast_art_method.cpp create mode 100644 sandhook-hooklib/src/main/cpp/casts/cast_compiler_options.cpp create mode 100644 sandhook-hooklib/src/main/cpp/includes/arch.h create mode 100644 sandhook-hooklib/src/main/cpp/includes/arch_base.h create mode 100644 sandhook-hooklib/src/main/cpp/includes/art_classlinker.h create mode 100644 sandhook-hooklib/src/main/cpp/includes/art_compiler_options.h create mode 100644 sandhook-hooklib/src/main/cpp/includes/art_jit.h create mode 100644 sandhook-hooklib/src/main/cpp/includes/art_method.h create mode 100644 sandhook-hooklib/src/main/cpp/includes/art_runtime.h create mode 100644 sandhook-hooklib/src/main/cpp/includes/cast.h create mode 100644 sandhook-hooklib/src/main/cpp/includes/cast_art_method.h create mode 100644 sandhook-hooklib/src/main/cpp/includes/cast_compiler_options.h create mode 100644 sandhook-hooklib/src/main/cpp/includes/dlfcn_nougat.h create mode 100644 sandhook-hooklib/src/main/cpp/includes/elf_util.h create mode 100644 sandhook-hooklib/src/main/cpp/includes/hide_api.h create mode 100644 sandhook-hooklib/src/main/cpp/includes/inst.h create mode 100644 sandhook-hooklib/src/main/cpp/includes/log.h create mode 100644 sandhook-hooklib/src/main/cpp/includes/native_hook.h create mode 100644 sandhook-hooklib/src/main/cpp/includes/never_call.h create mode 100644 sandhook-hooklib/src/main/cpp/includes/offset.h create mode 100644 sandhook-hooklib/src/main/cpp/includes/sandhook.h create mode 100644 sandhook-hooklib/src/main/cpp/includes/trampoline.h create mode 100644 sandhook-hooklib/src/main/cpp/includes/trampoline_manager.h create mode 100644 sandhook-hooklib/src/main/cpp/includes/utils.h create mode 100644 sandhook-hooklib/src/main/cpp/inst/insts_arm32.cpp create mode 100644 sandhook-hooklib/src/main/cpp/inst/insts_arm64.cpp create mode 100644 sandhook-hooklib/src/main/cpp/nativehook/native_hook.cpp create mode 100644 sandhook-hooklib/src/main/cpp/sandhook.cpp create mode 100644 sandhook-hooklib/src/main/cpp/trampoline/arch/arm32.S create mode 100644 sandhook-hooklib/src/main/cpp/trampoline/arch/arm64.S create mode 100644 sandhook-hooklib/src/main/cpp/trampoline/trampoline.cpp create mode 100644 sandhook-hooklib/src/main/cpp/trampoline/trampoline_manager.cpp create mode 100644 sandhook-hooklib/src/main/cpp/utils/dlfcn_nougat.cpp create mode 100644 sandhook-hooklib/src/main/cpp/utils/elf_util.cpp create mode 100644 sandhook-hooklib/src/main/cpp/utils/hide_api.cpp create mode 100644 sandhook-hooklib/src/main/cpp/utils/lock.h create mode 100644 sandhook-hooklib/src/main/cpp/utils/offset.cpp create mode 100644 sandhook-hooklib/src/main/cpp/utils/utils.cpp create mode 100644 sandhook-hooklib/src/main/java/com/swift/sandhook/ArtMethodSizeTest.java create mode 100644 sandhook-hooklib/src/main/java/com/swift/sandhook/ClassNeverCall.java create mode 100644 sandhook-hooklib/src/main/java/com/swift/sandhook/HookLog.java create mode 100644 sandhook-hooklib/src/main/java/com/swift/sandhook/PendingHookHandler.java create mode 100644 sandhook-hooklib/src/main/java/com/swift/sandhook/SandHook.java create mode 100644 sandhook-hooklib/src/main/java/com/swift/sandhook/SandHookConfig.java create mode 100644 sandhook-hooklib/src/main/java/com/swift/sandhook/SandHookMethodResolver.java create mode 100644 sandhook-hooklib/src/main/java/com/swift/sandhook/blacklist/HookBlackList.java create mode 100644 sandhook-hooklib/src/main/java/com/swift/sandhook/utils/ArtDexOptimizer.java create mode 100644 sandhook-hooklib/src/main/java/com/swift/sandhook/utils/ClassStatusUtils.java create mode 100644 sandhook-hooklib/src/main/java/com/swift/sandhook/utils/FileUtils.java create mode 100644 sandhook-hooklib/src/main/java/com/swift/sandhook/utils/ParamWrapper.java create mode 100644 sandhook-hooklib/src/main/java/com/swift/sandhook/utils/ReflectionUtils.java create mode 100644 sandhook-hooklib/src/main/java/com/swift/sandhook/utils/Unsafe.java create mode 100644 sandhook-hooklib/src/main/java/com/swift/sandhook/wrapper/HookErrorException.java create mode 100644 sandhook-hooklib/src/main/java/com/swift/sandhook/wrapper/HookWrapper.java create mode 100644 sandhook-hooklib/src/main/java/com/swift/sandhook/wrapper/StubMethodsFactory.java create mode 100644 sandhook-hooklib/src/main/res/values/strings.xml diff --git a/build.gradle b/build.gradle index ddd888e9..6ace8209 100644 --- a/build.gradle +++ b/build.gradle @@ -24,6 +24,7 @@ allprojects { templateLib64Path = templateRootPath + "/system/lib64/" templateEtcPath = templateRootPath + "/system/etc/" hiddenApiStubJarFilePath = project(":hiddenapi-stubs").buildDir.absolutePath + "/libs/framework-stub.jar" + zipPathMagiskReleasePath = project(":edxp-core").projectDir.path + "/build/tmp/release/magisk" } repositories { google() @@ -34,8 +35,3 @@ allprojects { task clean(type: Delete) { delete rootProject.buildDir } - -ext { - minSdkVersion = 23 - targetSdkVersion = 28 -} diff --git a/edxp-common/build.gradle b/edxp-common/build.gradle index 28713379..01a708ed 100644 --- a/edxp-common/build.gradle +++ b/edxp-common/build.gradle @@ -4,8 +4,8 @@ android { compileSdkVersion androidCompileSdkVersion.toInteger() defaultConfig { - minSdkVersion 26 - targetSdkVersion 28 + minSdkVersion minSdkVersion + targetSdkVersion targetSdkVersion versionCode 1 versionName "1.0" } diff --git a/edxp-core/build.gradle b/edxp-core/build.gradle index e3f9b3dc..20aa1baf 100644 --- a/edxp-core/build.gradle +++ b/edxp-core/build.gradle @@ -41,7 +41,6 @@ ext { sandhook_authors = "solohsu, MlgmXyysd & ganyao114" riruModuleId = "edxp" - zipPathMagiskRelease = "$buildDir/tmp/release/magisk" moduleMinRiruApiVersion = 10 moduleMinRiruVersionName = "v23.0" @@ -120,13 +119,16 @@ afterEvaluate { def variantLowered = variant.name.toLowerCase() backends.each { backend -> - def backendLowered = backend.toLowerCase() def backendCapped = backendLowered.capitalize() def authorList = property("${backendLowered}" + "_authors") def magiskModuleId = property("${backendLowered}" + "_module_id") + project.logger.lifecycle("delete file") + delete file(zipPathMagiskReleasePath) + def prepareJarsTask = task("prepareJars${backendCapped}${variantCapped}") { + project.logger.lifecycle("prepareJarsTask") dependsOn cleanTemplate dependsOn tasks.getByPath(":dexmaker:copyDex${variantCapped}") dependsOn tasks.getByPath(":dalvikdx:copyDex${variantCapped}") @@ -136,7 +138,6 @@ afterEvaluate { def prepareMagiskFilesTask = task("prepareMagiskFiles${backendCapped}${variantCapped}", type: Delete) { dependsOn prepareJarsTask, "assemble${variantCapped}" - delete file(zipPathMagiskRelease) doFirst { copy { from "${projectDir}/tpl/edconfig.tpl" @@ -169,12 +170,12 @@ afterEvaluate { doLast { copy { from "${projectDir}/template_override" - into zipPathMagiskRelease + into zipPathMagiskReleasePath exclude exclude_list } copy { from "${projectDir}/template_override" - into zipPathMagiskRelease + into zipPathMagiskReleasePath include 'riru.sh' filter { line -> line.replaceAll('%%%RIRU_MODULE_ID%%%', riruModuleId) @@ -185,23 +186,27 @@ afterEvaluate { eol: FixCrLfFilter.CrLf.newInstance("lf")) } copy { + include "libriru_edxp.so" from "$libPathRelease/armeabi-v7a" - into "$zipPathMagiskRelease/system/lib" + into "$zipPathMagiskReleasePath/system/lib" } copy { + include "libriru_edxp.so" from "$libPathRelease/arm64-v8a" - into "$zipPathMagiskRelease/system/lib64" + into "$zipPathMagiskReleasePath/system/lib64" } copy { + include "libriru_edxp.so" from "$libPathRelease/x86" - into "$zipPathMagiskRelease/system_x86/lib" + into "$zipPathMagiskReleasePath/system_x86/lib" } copy { + include "libriru_edxp.so" from "$libPathRelease/x86_64" - into "$zipPathMagiskRelease/system_x86/lib64" + into "$zipPathMagiskReleasePath/system_x86/lib64" } // generate sha1sum - fileTree(zipPathMagiskRelease).matching { + fileTree(zipPathMagiskReleasePath).matching { exclude "README.md", "META-INF" }.visit { f -> if (f.directory) return @@ -214,7 +219,7 @@ afterEvaluate { dependsOn prepareMagiskFilesTask archiveName "${module_name}-${backend}-${project.version}-${variantLowered}.zip" destinationDir file("$projectDir/release") - from "$zipPathMagiskRelease" + from "$zipPathMagiskReleasePath" } task("push${backendCapped}${variantCapped}", type: Exec) { diff --git a/edxp-sandhook/build.gradle b/edxp-sandhook/build.gradle index 3d4c0112..65a339e8 100644 --- a/edxp-sandhook/build.gradle +++ b/edxp-sandhook/build.gradle @@ -8,8 +8,8 @@ android { defaultConfig { applicationId "com.elderdrivers.riru.edxp.sandhook" - minSdkVersion 26 - targetSdkVersion 28 + minSdkVersion minSdkVersion + targetSdkVersion targetSdkVersion versionCode 1 versionName "1.0" multiDexEnabled false @@ -28,7 +28,7 @@ android { dependencies { compileOnly project(':hiddenapi-stubs') implementation project(':edxp-common') - implementation 'com.swift.sandhook:hooklib:4.2.1' + implementation project(':sandhook-hooklib') compileOnly files(project(":dexmaker").tasks.getByName("makeJarRelease").outputs) } @@ -62,21 +62,21 @@ afterEvaluate { task("copyDex${variantNameCapped}", type: Copy) { dependsOn "assemble${variantNameCapped}" dependsOn tasks.getByPath(":edxp-common:copyCommonProperties") + dependsOn tasks.getByPath(":sandhook-hooklib:copySandHook${variantNameCapped}LibraryToMagiskTemplate") def dexOutPath = variant.name.contains("release") ? "${buildDir}/intermediates/dex/${variantNameLowered}/minify${variantNameCapped}WithR8" : "${buildDir}/intermediates/dex/${variantNameLowered}/mergeDex${variantNameCapped}" from (dexOutPath){ rename("classes.dex", "edxp.dex") } - destinationDir file(templateRootPath + "system/framework/") + destinationDir file(zipPathMagiskReleasePath + "/system/framework/") outputs.upToDateWhen { false } doLast { copy { from file(myTemplatePath) - into file(templateRootPath) + into file(zipPathMagiskReleasePath) } } } - } } \ No newline at end of file diff --git a/edxp-sandhook/template_override/system/lib/libsandhook.edxp.so b/edxp-sandhook/template_override/system/lib/libsandhook.edxp.so deleted file mode 100644 index f8ff8905870bcfe7c8a0a6c1ef9909a4f3b66918..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 198700 zcmdRX2Y6IP)b?yhAoS3?B=ja^Qz$Bugaino1OiB3HrWl?u-Of}nc^BAr0V>+zGz zgs8_u zktXg}$6X$!H1P_Wcy&!YrJZ|umnPmW+C9IICZ3{+XKLb8H1W4J@r|1JVNLvkCVp2F zFB9X=Un5OCw5xmmfo|?`-|p`5I88hw!99PJCO%dZpQ4H1>Fr*=WFPlS zuiVeQeD-kn_#2w|MooOb5HE+Kp9ygquWOy|^e$@RRbB4+%Qf+Rn)r{Jc(V-m^1tP{ z$B&M5kAI_y|Eh^se2%dL`+QhK6br&^kYa<~|I-I^8)M~Q#V3zotkPMXG*6UgrCH=l zjP01NV`R4KAik>uV{!9!tU8bX-h;8>3w6?*Mff(*8!6CxE|jrLzxqh!gJ_l*%vgmD zI?1*Yz6T`zxbw_KRb)D6JM$PZTG|6IZ4L`f*+#SzAs~G zt97g%=kIMJV?8#>^eBH-GVr&k<#RzlPoO^#^I(yoI%yuD`fH;7z0rQKEwz6F@UIK_ zQxLCsOXaT=`s>UYm3}?gpJh{Y(!3M^dKL(Na;AM}81` zA+{4^Hy7wwFvmY^VXXd6o#cB^d*-A3$3pojkjJVwbPUaqA8^ozd=%(o0NVikbpn2|NXEXNrM7Pi@?R3# zzY}qj5I+J!KlRqJ5Z>O0h_`t~)(?_j1JvIyQOBC`_BF#mXggWQ0y%zY6k`iksPdi% zc`O*M)<67t#>S7=!7r5Ma|-g=0N;(;OXDeYBx4VcD)9i;q%C9bPF3kQ8-?+hDCd)W zyVeIihfeaZh`;0)8Cx<@$09gC$6`@G^xv1q*T7z^g1#y7-DOc8@(e^i(W{Ihr?aU1 zt!l$qIOq{R<-Y)Z8opo0tdI-U=Zo=W1bqxcDSj5tRG6S2{b2+*8+9z2m!DUOv6%yP z%*5jW34;1BZd#qp=2;HZyP{r(y8>_2=Y{U!W72V+BS z`$+Po_;5I(Qw9BA5Bu}iGPV5`QC}6vyFBQV{-C+6HTXyK5U;|*obYAA5A_$(8-e!z z1^FrM9Sg>1_S7+dE{}vr#vVi8$^f6_Qx^SeT&~)?8X9|Mf&AN>WO^juHt5ftg8ZC_ z$K=TJB6_DW{>}^epAW!zU#nv!czrvDU=4!tM&p_IU8~_Y4(VzAbZiF4-wXRT8ul%a z$FJb!6zoql;$(lOLEnvne#}l}Y&+~D$&2_Y1Nqbx1$KYoFJG!*3b9p;~G%m)>LPxj#CAjUrZP^~`={Pz&}ub&G0 zQeL%BjnOY3^ik{2#`v^gd@B5}0HbE7tY5_MH0WbnK_7!KUO&S8qUhfi=>LTsItH^S zwa*@i{@<$3C#71z-oXArEu{A4ni=~M@*#bp{@4h4m4baz^l5kyV|tsakAvZl#IBL& z1Cmb~=I?mHJ`C|=tnr(wJ*n_AWAlHL?JLPA4D)e6VLomVg8l>lioIEp&REkUJ`#VV z?`siv3h|F1kFQ-ihHjMFHxKgMAdJTsV1GV`{h@Ua$*Wuy#FJ%vN&GHu&sf47)&8ZR z{7mSB569nx`sN>2>n~av@|>ym$92qi*GB53^(oOm2K*M_56y=B0@wtMhtG$r`hFVu zSwjBwSFtvQyhvY2-u+%-?9jV9X)Q|hb^w2<(B4oeLT%_bjThqoqt>wZg1t+GK?p*e z=u!SwJ@ggwRQk7kE5`OL&vLh)bxmkL=qvhhL1T}GgTKv-bS#3GFOB?PMu z=W_oCu;?PtC$tyUNcr>7zTq2H`9vka-eLR@za-xyKn%ltqR4wB`uo6WwZFFvgMAh9 zKj{ehz`uQo(>H`d9-v3%Ngq1FKe;E&CsR9Pyutr1%JENNJ~AR6z~kG|zw-rq7leW9 zi?~0h*RUMylVFc$0Dps^52I1PRp^gR@CRxM{>dXu0B4q~_F%HceolbC{V24r9q3OG z{C{8Q_XyZeWqxaf@iiIx63qE;j`68;sQ$>!Uhej`4dnR|teJ zU#e_V_2maBo(1}$)YlpIv-epw|C)ob8>pY`C)Iy00^{>7mER>p;BR8SmG!Lxdw})u z8q9ZdfKU4PD)=crK(*I-7~i6OJmzw@kBwpPX9)KG0OUOx_CcZ70uxVf_~Yd{{pGQY zT@~ze3yjyuk97=YOsc;(=sghVErcLH?=R<*JW52n+usjhulF8Q>zNCxa@BaVLo{EO?8-%_wXgMA?Rk-SQo8G8@y z0h^M%zr;ZK4gMR|NBNzKW4sFf&k^_+qP*8-W4`}Nt-lh=w?%n{z6M@1V+`hh8o$)O-3G>ffIcev{x{?^661~XNgwuMzTb=ap6C<)a~SW-p`R-`zqL@` z^Oz4t^7wbq=W6gDz^2rmpFw{Q^hcpr0`%wZR@*xrK*pV~pd>2&<{RR6%^#!4Z z_c8zLvQ__M&I?#y!kz|7`4w1MR7CvvB2NDK_&T5m{|VhD$v?RP*0(}_@mG-#{whfL z0qhLQ2f^PA-}_49E-UUy%{_=LY0kMhLd2avaDpGpqG`WfpX6VJa2`?wtKRqWAo8vC>sjzn9* zpDSWv%#QX`{}TN`=tJ>iJ`7@#^!qsa`(t5#t&xTGwqS1#XS@41$DyCYGIi`Zl&Ah1 z2zg!?+S35_)xvxPF-Y~*!bCPcS;x9?{CeS7zwVdk9~vKz5!dJWFsP9H6Z^O`0I-OcE!N{zNN}L9`*ZuqRtm{1t_woq@iSeiHvZ zFrF3*{qs*B_}{{MaGMqW1NKu$-eezjFkF#XuTXnPo{6Qf|02*I1b()|-YNRN5%E>9 z$4Y%U7$4ig-wmFmSF#^sPFR()t>kb#C)<2`xl&E ze;>xW_EqJ77#Sw`+Y0^klCX~$kB4bb-@rf_h5Z#POe*pF2?jzb*blPr_4{4x^uDkEE!=ld9VJK%pP<%h>Y9`J9K`fnD;d=LA(5^^W{WnnLF!aq>t zxfcbW7wl0H&>sc+UX$~)CldAq{)R&D9Qx-3^rt589~b00^A(leMaZK!s}dHTsM5^P(B+E!Z=vkJ>jc1^TsB9WQs`zsA5`P(H~c6ysmq5Bf3NJ^ls| zt?=K$hSa|!!GAdTr}EVPi{R&+z|ZXtm=Dn(xt#ut0a(v}p!yH*VZQAu*c%@>CP(1! zD*U_yd0d7+6~XE6d;$6?`2T^Rzd-2k9vEmjJ#=g_$8Qcf?Ck~rgUfRR2$vH0KU53$ z3-fgy;FCRyrvA@T_gB^q$9fypRhlujMvu5n7_8D<1rNe!F9nu zr~~?^1b*Jl!1z6*%6l{Hs)N5;p7YZf^u8A8y@&R76!huC zIJ9@Uj=}6n?R`8H^}*k+%*zL({4}9_E5z3c@$WG{Mf>tH@{0=ci9x)q5I+FH3^%Il zhx!<=I`|*GczrdXe~o+U7|e*&f5pM?2%$f|gJLg8(6Qq@pXo8*j8@0REk*l8`_tRb*do|F8qYLd+qY$Glc3*= zx?p_4{x?HD>CYJSj{*Ht5pfzXpTZuA_U~oPzvqSZ<`K{@0{NnwCHgzjA4@Qw!>mZ< zVdB$`4`;Z?d%-8pz_(vfhsEH(>0ofS8f_`vZTQfFB2Zi!gp-I=b&?UFnVe8Q33ssK4tEfqy5gSI>g}IDviu z=tn_cmG;=m<2()X6U9k?z8eU8|DoF77g63%W0tQ}Dkdfd9LIPj+!tUv+$a3&G3~E8UuEQv6!K$WkE=o7V8$f+wUGakFg{a2|4V^? z-vq{*!@ni_ME0;A@IMyt(}90pz;BBDXh9ys(U3;SZ_djvD~k0a{EtSw{?#yaen~pE zj>kh#-YS$I1Nt)s`jcIlA0U62Es1}B_;Xfaz3>43^C7`rSLhCV^R{}vHyiXm6zGMc zKR1J30H?PI`NakKMnRuXK%ZaY`74lLUdTTNMm~W4fGvriw=;?Tfp8@`^n$y3H;>(egz0tT%Q$( z{dykujMgVq-{L{;=Y@Syev?qXGv=2ZtWT8jlK}q3`D`%o+oJsnes4 z!2f}U*iRpU`B*3S$4KN~67t6&eocr6Hh{er#(PqP`}{iz__qZ7D^8q0LjLl2sK90n zgZ&lOE7O4gkAVM1N%ZGPb$$&&eIteXQW0M%#OI)VWud)uFkj|Eze!%S9$tw2+Cu&W z_#0MX{yhaldK30fk?+G1un(|5ioTr1_$Up30b-Z*^>IAwt`e;yRCIQ&~> ze5^+PSs}lTANIqro>J(IFAe!)Jd-~}{c{NP#qqZW>)oIM>VEK)COA(J+P@R=^TPhx zTG+D)_}g`*_6M+UF&>?pRQtOQ{7ez}$%MZk-oNkzKgFFo7RcLsp+93|;Xf+5HPC|b!i9-99tNS(4(8t!oeta+t(;C5E z76Ct-jXrD|=+XS#2<`h(Xy2s{n4jP;DfXf?+cepN$0`5P^OKN9^{hvUbV z!TKdp_4g~mFg9Kw$4P$uVGqItdtipX-p2g<9H$p-g}*7-Yd^HFnXo=xUJLDqzeDv= z{WrmA4EDp|21)I?9)|q_&_f{Q&xSn2`Kmkg`w-ecpW}Dvh4HpR$M*1edkCT&_8S#> zjjjlPR`5R-K)(*a-a-sgeLraA9TSGHc_^lOoB^o$w^08%q5g+h-_@TZ-!~%pJ}_dvzDc#GGqc_8 z=ULb%%URXm+Ved87wqR?7)kv%75-BN_=l)g>c4?Q;9m**p_iclw*`OhBJ$0s4`Pz| zzlQu$uverHWPcmC2EM>=BF6Ja2i5tf81T;t_N^1>)f3i3O`v}*p^r44$(}USwC81v zzjcCrNx;CfV19#|Nc;@I!1KX)Yk@e8$41cK?*#kMHwpWDg1l~lAD7?{kA{593-Sm@ z|Ky;5nsNHCLY^Z9dp`l=X9)O}+aJKnLjQ7w_P@{{`x{sfP(Jn7OU1C?CY&ezgZh6I z)|<;Zy4$CuM8=MR-}1ctJ&dn#>%B1q47ia z-zH-GO@;pU<@vs8@V|um9{{lu_IId08sD#BzTZ1a$Id~oiT^nru-`LJonPj`@Lx8o z^U04dz&>FATN#fdU>}18`*{rybGPH}#M(4UduR~aA0Kxh@{ll+OF zJt$Zn{n;FG>fghdecguYNd*^g=|j1}9e&M%kRp#Ndt zO7Z-uvF`I#X~^d#Vg1zw{kuWv-%7||Ea*=y#IFnS0o^cOu-`NV^htj8ksmF{I~4Z% zCt-c?Jo2qVemLSah4^ofXJ_nJ*OmAUU~Q2&(( zQ{k^+e3O2V{CWfbynr8%jH#G^$X*ct0|H^ccB%Sv5#?{Aex-Z{Ui4TW26Ox>C1G!% z4;Z#m`F@b!GC_WC_rrZS%opf(DSr^^_Z95TjYgR7V6RA@ssD|zcfFxMO8=UH-%P+~ zpg&2V-vsg(?`x(3f2Dx0gFdf;J}dMykbhjr{|W6Ii2hXC_Xq<=wEr>bu>Y8kz@}uc zMxne(kl$q357EAlNB$Hc|4In<&xP~Xg|Nq`1b^c?>OU^X*LQ%sy`KttT?Bnw^%CX} zoS)9%^7<3yR|@6l0zXf{UxIiqp}kX4?p-N(bH7A9Wh@u7W~nBo#5ZWzeG1k_1%Vj7S}V^V4q6EKKbzckU;D|!yYO6JPrDoCFo;s z*rOn<=bLf-7|1KApSu6^odxybJU}Ubvo+)`@Ou^ZaUlAO#vhIEb_m<_SI?hwu$~Eo z{R114eeBW&`n_EB4`!ji1}#(lQ$N_#zJfj7J__?sMNAHO=sry+jQ3TTFO>2A736b4 zn4dmG`|G3qiu{(3g#U+lFv?T^T!8*(!3k2vW2w%Vf6#tq{;LOn;x_nI?0wg2(4S=W ze39i~J`?;2AK1${BW3X538vcqRKQr1} zH_3;Ufx|@n{t3RT^-=w|-O#6(1bvzXeDQoey$AO9Ay1{hjzXW?VZEs6LjvXlalOBGtr-w(0@vMenLfSus@{qXD;lu z`2A5u@Ett#v=hAM#W5c{kcy8tYZ4hh&dd!QV4tK8)b>ZbARHK_3GVCx2w6#-80Qf%akl zWgy4j3wz=={u^Pu8%bMa{<1apXd1H2z0~p{aqjkKKl)R&KOaCp>HZl#G=9^;?=Imy z%0Ce6C*i!LFUE^*tLi^}hWS;r5BHOy@6cyuJpG38FWSF-n(==J9ob6Iw+W~(5bI&; zU-DN6*MdI7->HUp5K?wUK(2y+o`U(aG4^ArKGKJS@b{mep^ld~(2?7ns{MF%2)64{ z9%fAHpB&^5LcTxZqz}uWA8T-)1~E(VAwzMV0R16;$bN1^$Cy7<*U!^2p2hEPI@>T_ zFuxN$!mp7I{~q%bjX#>7oSN|+5Bzb0f6)i=(?a}@3ZReipzw1j2K#4%eVp1A>nofm zD*8MS<(mof{aw^|UhpUWhP}To=-<~EUwOj#N<{fyLV0E|BxM^7MwdC;;$mH5quMj8 zB{8YF(@vq&XfvhQ?ZYT4BPLsHMyusjGmDOi>fMob?iOq4VmF!$G1=04cN@i6XJe+( zkYrCYII}FtE`vhG(B5ivI=h)O&5rg)tJPpr-ntoGmQ3?A77Hn`Tmsnd1ojO{Mq5X- zt9xRqImz`D*!Hw^i`CrK>`Jklm^s^=R0wbRb(qZU-O4$0oJnZpldCgXoW?|}Iog~Z zVmG>CZB~n|U{R>m$));qecA$Mn=`|~8`a*JlwvNpoAN6estD}~9h6^yl!eQ!ARWlZ zwb(4K4t7Vp*=DlXhEhL0Syoi$X?d|YTZTnJsh`M*)9j+!yV^}pA$K6l5>GHDo7<gyQ58{!zK4zOhT9e|EO$hS!trpNmir7 zELEbGZe>VCveOyg+K_6OhL(FNnVPI>1y&V8^@QkE9($V8t;QsCn%U-3t9lZn-t+ar z$<_>Kio`)oCh92&&Ekwqbh;eIB-azr_y{)@iiX~fcUUrEQVT;1m$c4hGdrE_?HM*# zjH_S<3AeM&(jE#bX;4gjA+2e}?TO4QS(d`sXoVpzcQ3}E)WJ{2&X#*N)@Cwi7m5wG zHMCO;Ze%N9_sFm$4ST9)hJ^5D#@bwFN4mp||6xqJ7s5|Sh{R8}qz^sKPP;YJ9P2Wt z#iSM@PH%;}Se&lHx*#MJLKXN@8&q(&g@l4RuVo5jt|b>j2cuIg3_<+6bIz;ADB@@~nBF;CF`mmv9o7rJW!l+DeWhBP9({e`+356|l@m)6(taDRed3j6=;1eJFe!nlNM=A5)OQb!XI*PDrT5=5#^YG99&^ z0x9Ot7J|^d&~44>3ikbfjCg1`C$9FjO1qmqimQ7j*Z0EYNJCfK_id=}x#@RwPj^}D zHfLeo(=x`I9GfnI(`%pu=16sv>^F;Gdiw(Z6D=7sjL$k9D>1K!1P7b>($B-F}M09Nu+~JgA zhGe6~>XtAx!-&IeqYD@*_|>b9BnKNK7uKGHKyaYB(dle~&5@i{EDB6$C`-0GlFacA zdlFiUAQ|Sv$t2HC@~t3_{1L+XK1Ij5Kqfu2{4=)8U2U&7~bz z)L~w|Bt6ZXn)ymHTB>#h$6_d90>rf4(j*0#HB#fdB^dO2%IafrT3mLA#ta0js_W*! zq)KzAKwZRhWtok`x~IpcVKzhOyBRc+{l+ z@E+Z}vw$MxipUkqa(CB}0t%68$%T~JSz9dH;y~AT&PYpt%Jz6IP zRISd3V3?8>bMNdz1?{y!;f#4LLX1(h1xc*HLTr6ypcb~Bqz@4hI&aH&FjppbH2yCE*Y)zV^5fUO3YRE0#D0OImttd(*1<;Yn7r z(IHzCwOngiPzI|RdwwwVP$q~7t>qFl*kFPTiAE=qGeIRLQ(=`$n#4k)Ho)qoJUt1? z2TCR@oX<;0D^3aigwd8{HW-uPLK!SJr`h3pB2$pO8?{jM)iZUr+LvJvo4X__FWqQy z#Kw^a-HOB-6JyDa>6y^pz4kEbi~>5MO*%F>Akw5^F+JnBdz&wW@HEWx*#J0*pvw)FnYxO`Y*h}?9EzrM|QMK+92`Hfu;fZ-3!V@wJ z5uO`Xfx>gcDo}VLRw2R@(VieYH`Ky~*QXo#mPy&!#zae|UJoBlIzW<~Y4~Qzc1gtU zSRp9kv=o4tzZ+7B^!lisQ;6!hVHGGn5vvgCiD*xdo*U{Dq~}HTOjhZ5z?OwYpuuQ{ zTn*S~NwPXL(J)QCwOc$rCqJ5DHCZy#aO_R}gnI$B`v*VXV9ri5OFN%DBbnTEZKAY= zXfP%X&%jcjBg$zGGZqX^CC!!MuxDXU5r@#y37xddXs}Cr9dIv{t?dGm4K8Mqwh|1f z*h>)cy(a_TBCYTZDOhWZ_}-I&p9Y7YrSZ)wWfzf-Bt1ybDZky8%#y5jG|yzUVm$|yV{Ey|P}sSwYgcS9BqYYpi}SBiomk>LcehvCFlD^*0j zK>MTEe5Kt@BUTUHi~*8>78L zx{5(7X|t)&ZMgik&;L>POCO50wLJ?<(L^lWP4ar>S==RBt0Z(aNWRC@I;#nBl6(ID zgIf|tYr6j?9cDC{Ucs)oe5laVoXnt<*w{#v2bO#WinU{QMmimf;P_H74Nl4S$S02S z?i?NBAkoH$0R}v-K48+axNzcPwGuf-8#(I5A!$ITB0obqelXbOlOr0hQFc4*p{;|% zo<>I-l%yG6l!Pl96vz$0X^VnFiNaBFl*3{g3Ns)bo~US@a7<)1J0!j(!zZ7Qz!u`< z635^2(T5aE$Upx8ySx^;)l8evLr8JRRZxm_>kFYOU))8BHSxnqmYSKyxOtb)L-Nmo zVogd$LW&)ePj74vsVDl<=6^aJoGMsUhen<-({$35V8pdD1CG8ukDwg#F;EBUYq?L= z9cZUw-VL6d@p6VIutxnastP};5-y))yQt6jIiT34I_T!2mwQ>nmNPhc7>|>ycrB^FZb$ zA4{)~bU2JTUCn8UW^598JxRl%Sd2cHYPU+)esC`#)L@bC5j@p=%yY2qxDw~#RSyGg@(+5cr_;qD?3N*7vPSdw(+TEJNH7&h*z5=Mur8uDS% z)s}o!YlHElSOet(PC*A9?p+p6gc4GWCVQ52LjUZPS`wvBf>J*_sn$dacYb8sDcxCn zW?~_FA|_2r(rq3|b8VJqr`L)z=S}A@{K<4;VsX%>q<7Ql)&U`fk^7HKs*UD%9^@-b z&rVgkRHIVGyqzYDfM=%LD)uSn8gedW6^~8DnG42DYO1_noj-9s4IP?d<8g3jlMX;N zXX{TvK)P$>F)KYyL20VS{GlD~Pf_-Xv(Qt}XoH4x6X8A;KB;UfCVGwVaU5Q~D{MCKj;xwvHzV(XT)6GlqCaVL z(9xns(oZS^tNkxaxa1PTX7#_)0QY4u{zVb41^=Q1*8*YFUGJ?o#eA>5DI$39O%bD@-V|^O>rD~uiM{E8 zTv%_4$WQJ~Vf`r~E89{0MzkI`yyXk&!fvp;e;Pu@&2tC1U}w)`51EF&%7?p7c_RNi zN5NZp?kGrKDgB#z`OFuhS>ZpKVUL;b-;>Zd3gQeFQa}$BZcV)jMk*nUyh14pcu$sq zL|N3#LU{JRD$?sM&R!`QX^HBUSFful>4JV_{=!!{yYToXP9FwWMnshyK<`w;;T?-> zSM^B5lWa?Df<((-a?0bP5M+7nE;-y@E5>Iy^7jvg&}f5Z$Xk_~<%)bGU6Pu`_e`0bJ_O&J@h`j0j`+BE`l?1B zmY89&;x?Z-i!L)|D#>(>U)qAEFa4wsEqP8zsB}Iff8A~1pR^e80XDA5#>Xec^V^gm zExn=1Go3r8Iz8xHrWl>_VWsl18FSJH*M=O6*=l0xIRC~MF9tgJx|ejV0eg6i{U9k4-5|)_^b!t(D%do zV4K}#NzQ?aaf`1?-3xkHmJy!}^ptMJ6(D$xZh9f&!8+XolJ1QdaODDHS-!j;W68hO zjuU^ntskOSd+!Mlp#CfX-J@3v!qfIk0eGHb^4@%p;UW)#g1DD+`Pm-b z1EP!4%7=v%$M@FK9UjG$kM-$`{++QSoJ?!+TXyj%RgJGW;d_)FYpi(`@Bm8nj7-35VgeC#jvPrtyx! zl`V1yrD-WeK9DDah-CUefkcSQ`<#rN(F$Wt5-sgL;mgnbY!ovYrQ2Q<;2yWD4M)X= zB{>gd_4wFxC=Fd}L8)F#l6ymBQ@xPD6*JE=Nc4`XN%dM%stpvp)MhhMCjR#*h%^mt z8BvqySuV>9tt@Y}JQ6)n- zZZHa(Hic!S;F|`?2~)pl(+5k}5AltN$=oUpR}AnA0vdz0mRlOr>C<`T;?Vybwf_m`u%?IA(tOPKY+`F45*uxc zk(#OaJoMd65*BhUGwJ?+Y`GT=68&7I*W{5S3}5NvEsxpdX?jlMgNKOK!K0xOD%PWE z;}ftwb@d4arlscKo3_y8~Ze z;2y8V=90d~kX<5ty(3O2biZHTF~s@-pWB9n^Zgjw_A|PaO!@^+`C~*c`zcZe-}fq< zy1JTG^w0~r{4F7{pzTy|=xBn;Zjkq5o??3llTXVetb%QJeXz8gknVs(EyD2=42n+C zx*wJ;+|b&Tflo}aV-=f?g5lD8Y?o|(3?Nu}FQu*7hELxj~Oz1%uQivm^gk*z#4ru23Pu4L4-)$3Ji@pnz5f=;tZY=&LX~2Y|2dWefuYADGy&XONL7eV=01=&qKgr-9dE zcupZ67#n(s04E z@S|Jg(0R}F5C$(KkALA?%Jdxic#<|f`R9$2(UvvaZTm%7YHJqks!h>{=CAI_K)}`t z+bZsPDubFrZo37_&f(vBj39o(P@?2dh|XR9tlxKvY~>d2%i0dM69q;JVc>$pju{(2$cjTj=_f1P4K92mLUpFo z%>nEdx({M^4m^#78-pHNp((9ZD1E4O7)igiLpNaDje*Cs=CRqJ>2%N9@q0J)<)GxV z;^c~cS6u#SYIW{xO>O7v8vN0RWV1`_w0RdW=0|e2N#q){;T^wF=iF--qIHUg{?xT# zrc}zvI`K5TdHc0BuZ{5ReQ%6=c7s;4qmf^s^5d8Rt zAql?{jEhStv8i2BanmX$$w~_Bz7J1D@Vf<1(u5E!MHQsNI0%36KBlsHQ~nu zX(T6EhjGUtk1dZ>B zO)q(clv9V0XE}A?c*&D#V!CRbVM{V*&~HuVcRHU`+j!1sH)&z}# zb&pYg21xqA7xn=Lp|>rIet@yP9ba_Yt%fM+K8}~-@SnBC3n-1BBXX~u%#Ov`J;R|T zP)PldI{DECOxgKAolfo&easIVX3oaO6|@|k>i$bdCNmvq;*?tzIY;5YuTH<*k%6No zxdUkrR;8w-%D-%`QjmV)if2l9soaQ2Kc-Z0y~J?7Vvz5`2~oQIs~=9!6#T$DE@H_{ zdiE~_3{l`m9|bW`3jIv5cv%ToNi$(wq^8oRI0v0A|{EAGzGbztO?iB(nUD_`#6br*sal8t{qdnMU zsDpIB^GS#W{Op>$Kxk+dG+${j;YXuxlaYQ%i|(f>F0_|chluU5({GyL_d~QL;&~6p z^Dd6(eH_m_IiB}&e4K(9r(nh@sBsEzTt2cdeuKEju$nfSOY9?#|>Sw-Y? z_BeNR_Z^9xH_jU8j5Egh;%srQI8&S_&JyQ{GsOAf>~L;4GcqsYu#@IguDikoz}5?%f2rZxiI6O_2LF!F^D9 zAL^b+UWU2`seqyGiREpmdt!MT>KZI@Xt)g_cf3M|x+h`*LtTSd$WYf{7CO{5xMF(> z80raps3VkA2BD-P2qpDEC>itwWvJ5&$K*quQaCOj>PV6F6``cD2qm3GC}}N1NpBHK znu}1@0tQ8j0gb0{+?OH`Jp%!tf~%!bT`%!JH?%!15;%z#|KT)kYoT)AAgWC0T7 zn&pb6dfnGh^n>$WW^zv?FT-1dRKW1|#PT+9HCUpeyA51-yn+U9viw__=yeT#!Gldu zDNPxX7jJ_OGp@8Yhjy8AY{oPkXiGQy`MH<7W9Gh>77|Qep6vgS&nVxYbjMMzwQJJz zokJzv;*@?b5en|bfuvn5i!&pTF8w1*9I5s%dIHLYi7OUx)&pnkMr=UblB9BwOOe`G&Q5LJ^f2 zPQ!gK1s;9DH6qi!I3?sW%{y28ixz6z+;*LXg}>fmv<>A)q9V4KoZlgOH|%^_>O)NS zG$a13mb7avP;pOJ$+)Krbi`}KA|1DM0pFhCGT4(160;({Te?uMTe?ce{gSvqNRy#b z3bW&f6q7OPJld?yDY%SUe>m*~dMD?RrPA}rQVF)S*l-ISfBp=c-1rSkn@ebuXP!#Z zGf$=|pIZnzLApz48E!q9pD2o1Nz}+iN!B((N%!D{GBCE>^f*6F!x`aua3&>+ilmed zabp*sn$T}B%aytJzmn>uDMZ{`Qz+eQQ)uNbjwYf_X&!7#iEbQnOfOszt~V|y-5VFu zPNp;y(K^#&QsxtR0&7iE6isMCG6)Iy>Wtu)s_LPDD`=pYs_LGYnol902em3S$rDSh zBp*w)b!t+6L19NE|FB0$lbMqgUEq$o3c8<9PEiXD3c6m4qLNm+TT=!d#9b*992MJ8E7V%Ovy%o3rj3UoVW=%b*{$qATb8&nX@V1J z$iUB*IxV63Md)Wt>8~ZqKd3JKs;T^w=yC$xqN8jg$8XdbQp{HTu|=M!{D``miV`NN z0;)=Wjj^j*01z^lfmkyDYh}|Om5+-hq(kGepL*w`xPyCOy zr%_nkhp~A4EqbP7_-pr!Rjjyy<@&MUI^*dt-1`UQ2E>p1ywl8pcvdIUCqSo*A2+eh zoIUKur)O*Xl#6N*5LLcnu{t5SC3L!g$bj6%k4N3<JdoMVq3E)JNrCkObnnIbBfAs>Gn0l8FOlpDtHg41BLjTO zG1kd{M&OLa-F5N0fZ(XyjN)}7a_9T9${UOo19GE+h*9QKhxy}|A#Ux#`?em=BJ0+&8}K~NpxUs4^`Lj|T_COd& ztK+XLUY>2MRxV;$Nvg!B@r>%s-*<*D8V8INwv72vIiGN!_xzd^@nhv#{E%|G+<@ZD zcQo@K9l+xKb-9d%=bjqfI$(?|A}}yF!rzAl7iaJJ1oW*siTU_Mv<_fJ1NTG(>Ap%-`SlXZ8~F-y6Y#QD4A(=38%^?s$B}vWR-w72{DZ z*Pk(87Sd-(a8F&dKhp&Tl=cNJALbX>w}fs_1gk&Xm%5kfTIc%ffLb+z`3L&vM))%S z#=gFwumPDq2YXdz!S!{%Iv=z@ATY`|s1th9pZQFJPBaPbx#7TQpP4-)9L2^KC057m zc|3T;?I3>^IHprjJ-=KZT@zmxU6HylFwl?fDPCUZ8#bW=)z7Mee!X1A_JVMAA4zWG zSOl6!qSi6LBJ<0!k&T9wpXB4iDnj!j0x6lAiwN_p%F5&x8O?mqZ#5%oMeABkTxQ$o z@~K{a4pbAYl&|m4BG4{h-+&1J(pPowuv}JkMXvvlT>sol%(rnwRhAnunsqP-md{1E z`$Jy2L^?2nUUc-z##B7)Q%V;Y1Twk4djcUV>j3|VX#Zf=snai|)=p-=0c=CWSRY>& z(1`E@awk;{iqthKIw^vk${juf%F9NxssZByP=k*3%Jq%RB|KIqFxSVY;0V0@wlA z3D^bL4cG(N2RH~g0#Kf#csUL@$rC<9_yvDIgYYZB*E~+adB8=$Ws30U3c{ZO*8sl) zegoVB`~|oJpy!?(um=bq(Yp@A6i@`<2Pg)>fM&%30e}jCiU4{lA*{mRt0Albs0nzE zrv)Mm0@MZ612hCQ0z3~02GFBN7y<|bv;?#Qv~x*?1Q z^Z+CPdIS0Z#HTOf{dih`gad^9L3kemNCKDuLjkD(daMX-fZ+fKzzN6zWC5}PBLMV_ zP9F1@sU_4+VPn(4B4Zu_$pN4QcU>0BwU=cuh7UO*>U>V>Yz$ySes}a5jcptD9 z@Bv^wfSwN#ZUAiL@l8DZ7~y8XR=_8K9RPZEA^eoTQ+yA9-^;^1golKD!a0igF~CW{ zXFTr|!p{L;08RtW0L}uw0h|Y11Y81K2K)f{32+5)4R9UsJKzt%4ZuynpMX1nzX1;b zj{uJWm@P1qVFCgu56!!n>ZFH!4A?yBDUGl!paP&GPpia38H2IPJYE%HH6gDC-fIB@ z0d)cO0F3}m0nGtnfYyMQ0UZFH0G$C{0r7xdfIfh}fPR4ffPsKP00STqU;XQ2bF-ZU8?a8G}{CJ>NN4$3e{55Iq?cEc;{&7#$LtA4J zk3VRSUwCf)FWs)Znj44s{wBMB?_9c1vDdFWjxKsIuR(XDHK{bn=@T&YWqP0c=F(>C z`?*4U;QjEQ&CUMfJFQ5-`{IuV_oc8mAoag;&9yJ`YsBDF>4e4)Bd|_&%jmwS} zJyEto%-JO;<{cfr+-J$b1ut%%)L>xRK-Z~}^ByD(y?!+C;3wDOvP?B!yVJ1TTk9|1 z%^S95@QK@g&3n(EI`Vd@LB&@lZmOJ>G-_^4>(~E|9vJ0B;MoBw^?G1GP|zaLO`!MPISZ!T(v~%zC zb1kzP1RSZ*;;Vs4KOg!guf@KLy0If7!gWgqRJtGFcem`c&%VCBb5U;U`lY8zwfXk% zh7Hz_bPb9u^7$*XX3oref9KBMe-CK4w4Lv8&iS*arLCGg zwR{zy<7IwWIR)Y8t}9>7Y2N<9Z^&Qv^_Eu}ty|OT^0=FpY{!w|U-|64GUK~;JAX&s zY~Ut6xa-&wbg9Ybds@dG9$n&#c}Sa}@7iE|!=!h|O)U}W_#vR`>5mq?@I@uRw-zAp ztKGVLS5LGYcx1`tjCOs?&F@^yx8%cB_XAGFUTu=tbl&rMx2G?i*>imLA#IO$YgfB* zi5tZdF15|=z9KqlWX)Jxk2elY=y4G6!wG+uR9V2Vb zZ@D;W*MTPc_RVarUzj${=g@_P)$Rwh@7*u)=z}T=Y~hL?e^{^nu-7?j$+zQD*B`vI zsrP|5UJ3gp<=XTeR>#)&dlf4`zUv#mZf*PSlB0uu_+xbBZsT)ry>s{LbbH>g}#ezS-92r$b{N z2KF56xUhcD{MjSg*3{MCJNeh%eOups=UCP+IX~L+npOI+YOR}lehKdv5K(gU3C;Ca-sQb-XS6tI zy!PT7=c~SUGbdyGxCyoEES$?Cwv>vSR&B=b!SUA)J=B-0Q}WuE`v&gr`^c}@;uGy- z&Rl=3ZsQV_E_KN1@Oo@Ur40w~H(fDi^!IOHyVW+QZer^JSr(ymQ6pSqSicVCw3)f8*L7$0gn;`m&AIS?r~3=8&f03vTl-GYpes9W z4zJR>`NTi-9(L{j@xz^ie;G68@+a%dpIc=#_N%tMX)7LCJKXu| zi@Fml8N6+o}E3kWm_j5Zees^fo-5Fn8ca^Aed6jkDZ$FPu4E^?l)m2)y zIlAF&<(}*BepeOgO?}E|7F(Fv*LtnZ_i+u{ub#5_k6X2nK5%@y3_bE%R(`y2+PMjj z$N#09dVsah=yPTHkh;jfZ7g%W@#<|g>*IaPCI7pdOnX23!x=fbacG(Ay-$z&bp4Md z_d3TPE4qEcstS=~XXlij`25_H)h^~{<@{_Loc4CzZA&(N5}tf0FDG``mcx&Je7K}% zz~a+AHZA*heQCqk?1|s6E&lnoh)cS8tM8nS@7+GWY-isQgHL~bFmHUd{>ho=KAqp( z-=|28p*}+f=x^WI*?n2k@o2}LGs$7eKmF6ZRN18)%t_5>m6-d%pcxSZSLn0!e%A?h zHmwFGk?~#|<_Aq0qG8!=zCN39jhhobWor)vWwx3KzT_ z*>Rd*`O&#}|L}`jZ~C_X&Hwn0bu;NE>1;`gds2*(H{ypTGAe;!^>csfY3?oDN|2 z-;f1i%8c=2GK zd2>$Vnw38Oy8nq{Z=9>Q^^ZZre1?o~|Jk?Gx15T+d;Li9Cbc7{E=l=4uxtCY=X~R{ z_O2>XEalOS&VOw^mS`OO%c)Mmd9{9C zet5_THuVVJ?;wrBl|e7Qe-H1+@Ls)V&B-elMOC~3cn01F_RTTi1g#dU+?RK_cM5>aBADX>wo;o=)@_P5}NrU z{uRX>7JV=ksmM*K!nueil_pCR=ACWl#* zvZtS1`_7(&>pCyUJkdRND$@7;@OcpmuRFuHPDe=4kX;*Pts6OY2Hx#kF3jFAJ9yG; zy!SePebN`%)%va668ZzhyNzpAb}qu4QrAnLe(+WBg0`_$gM$BDIK+R}2Mdt?#+jcx zP`L2DD8HimN-tH)4U5`ijw=zpZvFGkr&{a>w{k`Jm^`X(Z+|si5pq` z{$qq}@Z7`S-J7v>cJ`D_@BLlDzwhHpCmZxXsY}@q*YlO|l3QogGoF3^reW~m8>hRB zt(B)bi`08#hm0*KO?Y zC2o!G)nYR6`&;9$zGj`VwPb{ExtOu*vnvm3yX9E%@~g7@hD@J|{5f6cBwtS{eI#H` zskB+$myNx4Jm_s#_S;K*63aiBj{K$XE?+l2^VYp;#;vOlpNy$?ccbNer)Ak^{th0s zvBKmBqsCuh22c!;L(c)^U$9LvGK9JMB_WQmKyNveFxr;es{qKV& z-$zK`*rxycZ-if#T6g;&gbxAN+0kqYA9EP@Pu!toKfmj`?^jtL&FC;Fy=dTk3*s-Y zTI1-|G+b@~iItak6&1wU6hXPFOa!@#jHrck8(7?wy|3%6!oDQq=Cw zL)IO8Yt7hG_u3tG1|)oSiLDqhx!m1x+j_nGR+UxF8s5qIz4eYCW{o^q@}rK`56nBd z?%ftw%O%|%w6VybDBZkoPM%pBI;TsmL$-fjE_pWMukoK&UWxvwQ8Ujpy8YPlU0m^p zn%!7abZezjOTRk2T#Xi2>#l!$OX~d6CmN1SE}2)R$M#L**4}R4 z^`9PH-j3bWctU!MhrSy({W`zAzn@{!)N^Gbj7^7rTsLvWZ`C{hv)n$Q`tYXP{m*Aw zbobs%o;rVS#v8p_yxVT?gVIIbj0kJ@XX~!z%dg7(a7vwueV2_*Jrnfy*TehP+itSewQn-W|{ba1L-4 zX|&f$`!xdq^jrn*5WLfVO)_8}${UbI`!g+M6lvd-_IFDokDkGRVR%2wQ4Q)4qHjpaR}$4`(LQ zX@6!QLgkr&cV%Cb_7wg?JOelj@SX%D+MDXa@k5bz7-_u`wg%At$`s_aMHqv0+FywR zw8ncgq<6*pTY#Q`uK>!vz(u@&4`>g(K7gr!_fd}#AwAImIy4`?(%Lr-jH(W}Q_eI+PCjq!sk)DnB zl?dsfy)ZjKk2D_u?Z?p`6YU?Dn4o7*6ro^1%@5vRRa+K-DxNDu7~Ep04gATBJk*`4=9a1+7GRRv;zp^C0++BaNPFNc#lk7XZd{I+RZ5QOff= za3TRQ0NRJ6bE38=|32Om0CdjM0co`7Tm|s~fU0;mAY6hx1M+_0#4?aZ=WfdWKP9Il ztqY(x=P3qd%i*2&yTzv?B6OzmIZtmOWX==b2P5AISOgdfumWs=bO1dy5jH}7^+4+b zyf@_OqmlP2(vKmY1bB_74@3GRywh1@Pn7A3koG!fAp8~Sd+<(sq4dyxb{PPj4=v;9|0jK_%p&^0lxuO z0gujplkuJaxDB`uXpXdp2Y4c<-i*Rn$PmQgL0n~P_`r5Kzsl6 zH09xFgfFAM)x6AeUdon5egMkULReBNE&q1`Wj6x<62g_pqsPe0(^+y+yuX3am*=fQ z*cxed5Z*+34}b~qGRn^Yl*Ri`fRVtN0i5RmbOw10X`KLlfkRI@q|>to@qWmsM=uA` zxi_7k{{fta2;btkHF$nWj!)5|$fL6kdggMxFoav>B^_guLcR>!%dpVF@Abhj%mZ#OE`_TLb!Y zUd6nJNbf8pe5ffaWJ%{UjX8}!gp44RNkcpW;dmiEm%qQo+wn7xm*ydzDQTZP(8%QY zpCU7y;}qd(iHPfgQ=P|qAnc7eJ)a=&cZAtIPG`?2r5xC6gq?Ugo&VnC?^<~s=MbG&5E&t|06Kw6Z5TOIFrk+xn)D~gs zC`Z`|p*&Aw)A&mc$GxM$>5lYbz!?j;f;ydu)BOx9!iE6x>A~ZR5oYs@6~woIw*mCG z13CkSBCi_oW+3d$amFD&1o7*D37nT3oEDuK&O^HR&^g;0j`t?dD-MMHNUOrrvxEY@ zh4;RAZ-DYiDAygZmGeL-lL6Zhe;)7}@{R-ILGN2mlW^!ciu@Krxk%)HD&Wip&SxmQ zl;a#nSed`mJ(Wo0H6ucJ>Irlx-VJmbBmW}a`)KkgpPu5#r>84$zvu5G5&sLYn)5MG z;HL@4nE-lYk-i5|6SyyO`Zna}^7lhRIiN^S81ky(tt9g3?311kc({m%y?7mqc(@xl zO95X1YM@*{j)y2~$8qT0g!gD6kJ3ID@+q!7&uh}h@C-A`2l2dac=rR$;_Xn*a_=Dj z3qYPg!z#QJsk)qxETpF(-k#@w$pj=AWs{C(8k{n0Dmrjp9`Ev5~lp$Z3KhB zQ&r@50^R^ln{w0fendu-{_l_f-vRC}q+jOrD8q&Krb4+6{QW3zt3UE@@OOz2{;MG1 z|AV{;;Lu$ddIsUWJYYNG`w^dx_f#nd>nPx^;IwKZ?LEMo$oKYKMtKv@n};$v0@9bl zJH3|Yb)V<>VLaZP*QG(1qPy^a8Q>2RGQY=r9U=ZQr?ZxaD>!{Wf$nbW%67Iq?ZU*P5wc;*rC&9MJD=mHmh{)BtkFfYO6;~57y2RHrl z{7%UHnTGwVf1Vb*Pr~gUm}g-=B#xHgxlzc!2Um(+Dcrvz&-^F&INV<<{{H}64tF1h zodNR(akm7VfXTxB-{5{JxChr!m?vOf{c{KI=i&KPxc3*_{2Z?NQ-SO2L{7hw=mX%^Ef<%9e}j1$c0Yq@mFFXPrU3RI)BNKj!*G))c6Z}CpxrOU^#i!C z|E!mbhc$P!dWX0pJP7NDxIcr74}H-9S*zKUm0!oCOB zYsH_Z5zcd3UaZ2ssJQ>AW*-;#7vWxqW>2TT!o3do`yjYR+=&gK>#Qhxc!vXp0nwv>ne;(JL26w}}74pMyJF2;n zM{PU~H~h&@LmfjH3qKwRZ7^Sf-M7Fj?OwMyx(DnRKWOz$38x8my_)@3AbaurcVV88 zXNm8?eF)|;aeJM1kK!l9zbnA+!rUZrsKC8H$ukr3%o?x}c9U>(H_Q!UzYEX(81hr# zLGUBE$48%)=f#=5M{iW@hQV*Z-7&fTBpfy4nm;FDw-07cu4(5Lca+Cqd=&8WGlZ%C zw8}FhV)=gI2Vvg?`M<>dT3mN&{vU<^Z_=)Bq`O!7EnfWtHsaYvaa#x;khp#ZE_)z< z4*W6vo{=ZtYTtLL^e@!{3sTy_!nFeta4z0GYy1CRIveKS`^C`GKL$$hpTGaifq&+} zKXc%pIq=UM_-78hRt|8Slm30f$HyHDW5xx2FYla#*QpoA2lLTo)R;Q#ISK^($@k@_ z@AEo+-??}{hJn_(u%8wtgtI~)29vz+7nTZx!d=4M!b)MauvS6H)=rczK1n!aQM0I47i1g6>_y9AU07Pv{dCEO1uRFDw)m35$j0!d=1&;cj82 z&=OV)YlOAJI$?{jRoEtM7j_6cgXSD!Xe?XFd`fkjtis031Lh)Eldb!g(=~jkOzWTK5n5$ zm?O*;<_Uem0-;}6C@c~d3rmCnVNh5u+$F3K?iN-G!@??|C9D?K2pxB)%Mq!h%S=b_M z6}Ac6g&o2!VYjePctF@M925=-hlL};h;URmCX5Ovgww)=a8{TS&Ix%?(k?flTj&vb zg}K5!VS&&uEEELi{3de-w!l-aU7!ytl6T*~mPUwQ-&VH{6JwmTA zN0=+j6Z(V&Lcg#`SS&0R282OjNLVi1C9Dwc7FG(wLQ7aJtQFP?>xB)%Mq!h%S=b_M z6}AaGgq^}}VUMs+ctF@M925=-hlL};h;U3eE}Rg?gww)=a8{TS&IuJZXxQyd=oWf~ zIl?@lPgo%I3k!us!eU{Guv8cjhJ@w93gK>Hr7$e45?aD)VU4g>SSM@{HVT`CEy7k| zo3LHjA?y@(3A=?o!UMv7;gE1xI3kP)M}=d;abZ+AA&dzV!dc;*kemDL@)Ej*9-&v5 zBg_@%34KDpuuxbmED@Fp1Hzy%BrF&15>^Oz3&X-HAr3m(@vafp3hRXR!UkcZuu0e~ zY!S8z+l8INE@8K@N7yGkAnX?o3WtQl!iaEGI4+C|CxkKKv@ju@6{du9LT-|@`$?fk zm?O*;<_Uem0-;}6C@c~d3rmCnVNh5u+$F3K?iN-G!@??|C9D?K2XNwg#E%n;jnN-I4T?yjtis031Lh)Eldb!g()F71K8yz^a#De z9AU07Pv{dC2>rrBVUe&zSSkz(L&9?5E@6dmx3E$e7FG!@VU4g>STAf4HVT`B&B7L8 ztFTSjF61vj6o!SCuv%CvtP|D?8-$I*CSkL% zMc68A6LttYh26p)VW04TuwOVR91;!-M}!gKm~dP;A&d#9g$d!TFeRK5@*tJn-h^(U zSC}Kr6Z(V&Lcg$3SR^bKmIzCQ0bxj3F02sl7FG(w!YZL9tQOV?YlU^f24SPHS=b_M z6}Ac6g&o39VVAI5*dsh3>=zCRhlL};h;URmCL9+=g%iS{3&I!4Z)h;igTj&vb zg*n1pVV=+@^a~4x#ljL{sW2c63PZwj;Vxl?aJMiltP)lWYlOAJI$^!ALD(p45;hB4 zgl)ohVW+T5*e&c4_6ZLN`-OwTA>ptvA{-Tt3!}mbVN5tJObBO%DdC)u2Mbw#ZlOn* zE6fx6gatysuuxbeEEbjsON9YpP#6-H3wH@Cgu(1|yh6fqArE`m^-bs&dWAW{JfTnM z7ZwVOg(bp(Feoe+?h@`6Rtl?xmas-xE36kb2%Ch>!d79MutV4>>=yP24+#5(L&9NU zL^vvp3MYgy;j}OzoE4^ob3z_?wDVc$7J7tUVU93Ym?!iJ3xs}Qp|A%V!B=CST74FX zgB)WdHt?6CoL66lGYvQ#$Pbz3{snvw)|Z9-*f8pNFV1?9I5g2h`)ja2Q`pbv-j8)( z9N=?&0BhdDPHg;jVAFaJud%szP}qcnB@S#f^;sWja2E zJ)L~M7W*f$u1z-a{-?2LQ`pLIKa2ZVk9O2yKd8{he8hDl{kaM0rTs0~hb`R2c-)F` zg>~d@@LyPfdf>pO!3weg`NH_(u#=bZxE&n^^9>vlP6%CCSEPM8`9-X!(|t4c`|>{6 zEgTc3g#B2bb=-yhkc=-5|LkVETX0^7>H7-yGxGXA#FyoR!(?;3{yOrL`3Da3c^u|w zqRlau3km50Gw#i;crA^ye|`rKkM?ghO{f zLjE!z`r(e@4xpZrgSgMth7(8FCco517th;kyWQH->sech93d8P4yJ-^|zF zBfse1A5ag;DDs>6`vTet%jHG1GrGs-;5z#EC-_6g5Dz{dNBV?gLJyyZy@&pR)xtJm z4(kW(D_Cw|hp>zF0@nei6Kod782%*kgY{zy@nyWGQBQe|&9-Co_Zaro(_gSc*eFa1 z$N3!Y57NIAI3vUOzKnG7`M;pOGagCgBf~v~b9?lE4*AdLaEPaX_s^g`@;U74+0Ar< zBf=8K-!N1j^B+vm-f5_AKJPNr1jE5b^&-Xx3=3WK7uQ{E4>-J#L;v0QFt*SlaoEd4 z;;=-quv}OzY!-G4qrx1<1J4D7)xs`epD-%SVLa(xSS#!h4hh|iKivsygdM^`;e;@U z>16zcUBW)$pm0PuCY%uZS?}Ri|uJC(#QI@!cczp3t$P`B@Q|alB;o_?!aMT zE9-kM(#!s5gQ24AKXCYmdeDWAjPur`JVjtIwug>(=5 z1HxUbueh!h1{gnFH?bdjo1sE<_jZusz0*)F3#Ir>G$>uR)P@_lHR^bZHsO6mUnhUy@3_@;sJ!6Ez@i35{S zK3|D^WPCq@^fUahVIMqmT#Imc4K@pl882KHkk=W?OMh|TbQk$CL%HeB!hPn$UZkJ) zHHHe4Hz0n@*BjxE&wtubqm0LA(f{*)9rBaB$xtc!a~tgGPXnIg^*+207~lQKKf3z@ z@`LHb!JZ)R;}BXd?Qx(fMf(;*71ADT6c#dETsJe^uNtbA{(TMoE}v^hJz_nwVI2`e)zBV?gNryW`z7*~@xg(kDEVvD3%=jS;2(Ju>^q5Y9FC>Ih3 zpJw^|aYMB;yo90ZnBO>TxtspY;+pyJ3hFtp|Au^JI_6QY$kWI-`h(vZ(!l>kVSeC) z7ZJt-hsmlKJ~$?9U_QGY>Hy1OxkL3a+!YQr!g_O#Lyglu$DvY;*Lkp~KY0!n=JVjF zu!Z6H9BP>H&3C8(<9C5W&C;I>5g)qqJ5&ebxy7Lp(y3=3NgRm>`(>tzu2Lo zw0{epqy4`iJo;0D@EH%Vh~d1=p-SoRrSOOGEOjU!-M_=3+Uf3{4%JV-3;yu_c86-? z{h&it(7($aDwofjAmh6O`9R`uW|S<4dxrCFgv<1SIlR8op$5ra_}3%M=c^s6nDz9% zh!?Nl=TKeb`w=g4w?j=ZoDVvbMSnkx@R+`jI8+O-uXU&x}@ z&+@>*)IoAD@|X9k9cnlIz22c3$QqOr{jYT>KmGd*@|n+n7UfCSIh2d>1Dp8#O(=iz zR)kA`Z$tbUAFxW;Ds(emuussR&mrE-H!vuy5;h8pn7<8(AGr_tL+(esSg!bxKq2$3 z5%H$|7eU6m2`9`L?>i80@=Hi3*$jKSzYF2>`fk)W#^)Y~nil3UUbxO-`oLV~$Gr%b z&$Xf)S^i%|KGXg_c#P!#Z{|x6rhpHnx9IBP>zwJC>Jhmd~e^8oy1em?C`&5X}a5Dz~8Q`8sQKZE$Qz7C`O znf{+SR5$NGi|6S72*TrYKS%pvIKKcH-y=wuuu51fY!U!d79ouwOVToDj|lJuDA|lgsjX4(*fIzeM@4Tt^+MR@f@+6Sk1QLOHWN z{RZw>PhQ~v#X|YNi2jK6=Z|RjY}YvW9%Z_4NI%7JUqZV09Q+6gdls%457>uUuCQ~_ zANb)XQKy<2Ka@pOn8W&tYcInEtLP44L>Lb4b&;rp?W~`elT`CQ<{X8rmuJx47%s;0 zLyRZJ;zg{t7)!U)9mdL0#s_seAuOajT<@Yguv%CvbTi(t?_>Pn$1vR^Zqtk>Si*b) zcMI!;ZNezsEkXFqUmTM6GJg25#4y9h2N*1dgS7bR9tzYsgtZzUZaKhk&UGp`?ePJn zQl@W%Qw{R|8=R_#{#^+F=noDE=kWf;PSwWyZ$f%#ztyQ~8U7_s)g){e9uOwz9v@q2 z=Jng)AN|G01`;gaZBF}RmZY2Mzuc*Eh2wlKgz%Ui9P}<^I?A2O!+gHdscM*S_#j?` zFqh?t>q1_?&#C(P96r!e!*KCorwL&{pT~8S<@_PULl~m}l}=S9JV1MVRBu=~#`$VR7^M4lT+`iyh!^cU5Dx9X=~SJxf5@q3`TVyK5Ar*x2fW|qR4%6LVb}{> z7Ooj@*f)~jMffB>tTW2zK_B^jlr!toqbMha`#9V&UqB!I2g`-k!sZ2gK93I?_3=4; z2qDI6(8KiMFu#lL1`vN?M3@kkFx)}ZLvk49!gT%&<;?uYN08jSeirFwdVUW78BPTC zgyG<$IVI>b9KUv|kkHF`{|5Dx_3pPQKVgh~9_bQB=>Jit3a~!?9_>fi$mjpyR2B3; zigw5RdI9CY`!70Gov;%1dkuygVG`4kD)PH{Ka-`HUy~)6PmuU~X&H^`qse@>pj zJek}NeIxlzjAO`eV4O=85d9|^K)#dh&`Xl|kWhqt8uf*I+)!iW9@J-Y6WT4g z1MQi_M=oMyC&pW3CdOgpLr^1=zrZ|)ybS#wc?9(xedU^`pzkG-*KV>O^GEW(Q7_2# z7#EN`@tz}1v@7y@rF`UnLw`zs4DT7T1M^(+cDxVBuV9=-#xZ{*pM@TP{EeXk(Bj{^Z?QFCm}DJe+(d=8@!5=$%Oq)?rA@mq$o^z#>BaEA$fN6VQi~ohW~@ z3-e-f8NQ7}K7{cHc^>AqT(p034b~CJjabhkSEKyN4Os6Y zH=+E=Ut?THu1EQk>rnpWDwIEY9=-=d=3%{pOkuu3ej9oj@(pPJq)({`c_qr9gpOp4 zJO}G=WDdT?Lw*qY4DuUj|KxLcUy{&EB*-o3zsY6jf5|Sa1Ci&Te9@{K+9zX#ci7%Afo^%Ab4*>$c=d^#9~mlt1amx;B}Q@+U7u|4&|k{-69ej1$P)QU2s7 zQ2yk7D1Y*1j33DFLw`&D7xZ!@K33F7{tEp+IgW8Cc?tS|@~tR;@@;7UWC_|oxfSJ4 z{tL>VJcaTnKLPzWnL_!K%b*u0d!Y9ty?FnVzeD+x`0&*biE-L6*@yN|cBB6%_v8If z2GIV=V`%^6`_TSLjHM>X4CpIK=zpfkFQNY@zmE4miE(aAzg0z^i}p`CQU2toQ2yjN z#(!iP%Ac&n`=8tfJq;N^`IGNO`IEyK|B)C+w~)tC{$vI8zvL|#|B+uu`IB+H|4Gc3 zy2uWv>LxQW{v#vM>yVgV9w0HE?j~- zc>j|ww12V-`brXG{usF(pvhaR6Sa;jo-6yhlTV@jlRMG>lUL&XPre)Pe=>yfC(AJYBX^+vlP1cayd33EUV-u_uR{AL zYcc*KkD&i2??C@g#xVXP%droFY{mPZ{CAB1$p=vWP|fM zr-~8OiD&M9G4F8mixqSIe_D{sH94rsrJ7u<$%UF+pviffoTJGeO?GMW+^Ms1nAPNI zO`g!?aZMi8c1>>8fN%YRLt*5nCI9@peiO&-zYAx-YrWlYMoq5QNT$$6Tbqsbmkc4_ilO3Qyup4Q|EO&-_eQB5AvWoZR!wf!*INiF|1d0LYvGTmwlZQ09Uz7VZxm%MvHMw1rTQ#{^lN&X;UXyDzxmuH} zG`UifD>S)WlY^REs>#KgT&T$fnw+P}IhyRzWS1t-{Z-3Bbq#<$^Dw#r^(%#+^Na!n%t_%&6?b($@Q9C ztI5@xT&2mCnp~mD<(eGSF3{vWP0rC|k0!e`d2UwAe@&j&P43s^K27e{RO|IAET1~FjyJxdob=7lgl+ZsL7?8T&&53np~jCd77M~$sSF1Y4Y65TK;SDv?fnz z^0+3CYVwFC4{370CiiJ_wAfnp~;L6`EYG z$w5sn)#PGLF4W`#P0rKg98LCUvPOl`{Cc~kJ_V79f&a$hnS zSDQW`c841dHDK*{Ka5L#1Ag5dJ$~}cuz6}`b@Zy)hOj%IvXO7JYzuGuYw8B0&6xa|arrLS zR-BkLq z42F5+!js>JJ@O~A{%{(+76UWSWd~ z`^@dz9Y_8(<@!pJH}2YZ=c~+u92}hI27{=-3&GKw+uVLrMZ8I@zcW>HNV9}Lj zhgoj>y>rI!si^WHH@=iWT^#B&)Riy``LImO2bbhSrd=-_GZ)(R*r(;j>1kduH(by8 z?Hq8-WJcHfT}N3ef1SqB=m@3dGiyVe|1L#EGv3Eonx~U$CTc}`{dSJUrlXR^v$1#E zu^*ad?)`o`or_WXYGV5D)AGb)SbKy?*Qb@Cm1XLUb-~;LW7AE@$85`4<1?3pPbX8; zKKOOg{(E{lJCtp=2D-o!x8<RsvhYcUwsu%v9#+valmFtQu*|6;*K>9W_~a2&FOun5xpvbe*|@L0rJGS*mdM|a%ei- zYh18CdO8`N9zJ+6@|WdZ(`)!MBP*kuF=OQL7(+ZOE|1s2?mPZ@1Uhu6K% zG2k-~#XMPTwPRB(zZ#U}BS(s?gJ{8Y`^=QjT#@+RX*JM=JTYPR!dwiq5oV$7t~A%% z?RI#|WnR>qZn;lS87AsqzHhNTdJ}hJZGGXH{XH4x8$xPJI)z5d66DoNg!r8)e=qxp z!fDj?f^|_xr&f%&`o+Wp?5I>11R|*(t0>3b&$9GLSw;PrA22 z`$X)Rrb;_ammy8Nda))8b2d&J%G8#dg3GO~mT`|S!gSI77-F>AF5Ox?oZnA%^qx+x zn>uGP77jZWAGhyLOE}p5kJ#g%z9S29aW``QsfahIyp0akK9&B{f(4PN%=kM*e z+xD>^V4ccWvxEL+Ev6;w=;`D`Q!EKDQuzo&@iiQJ8gA*%YpN~q*+(}FU-Is*OjG$b zK6c(?Mdn&_wfUQry8&;Q$%TIW$w}7gW0NeU=BXuiScb)`spufNwt^?rHFy}h3uW1K=&!%C2Po{Zp2xWG$-P#+*?AE?2vdr9v zoY*+IQu1i4{kFVRO0alR6|&74ZE%lPwOH%W@1hgHRuYC8cZlSw1Q_QJc@q69W>bA|O$!w`>dV1iWOZ;QLtw==Y%Hdc4r#xF57u?FuFte&pGP1@=b@>y2aLgGz+oMlGuMaZuojoZ+i}PW885K;#h@s z`7Ffkbn-Kkc%M#=BhT2+)K9v1s!cZspNp$iKaZ=+PABVdzh=^~%Bl~=#shA&pD*M2 zeLYV-p7DdF<@LeytwQTZ;j9yGr=!*Qipv^Jm2B_W;gEbf6niRQ^wjJ)oxC{S(T%-X zR$zBg?~k)`2Yd3w_S*=m*)Sv!BmsvFgyj`Q8+Dn;yjNk$4^6m#h!p znauKMkL8v*&D@fd zwN8FLoSd^+z4HS;KFBSoXE*OoveUAj)z0=@tVo+U*~9dN3A^#mZRn2 zy?3sC{~k5`^SH4GE!j61H?H1dIl{Zbk68ZjuDq_WWvYAd z(SrF`k9aRd-u?QKg)pKkTxLngb)q1zjhfgQ(ja%0)gp?6p7R@PJZMTn1-+c1)aX+4#j`P{cxH_M4>x?_v z5LbI-;75yGz9MmGK6&`KigH9x7x%{5>wNp98n_YZ-3}APzQA6zEw-oZo$jKWgE`hl zOWm`_H15UhAg(Oq{*9<>t^r3+1ip11R|5?Xr^jwf%}Cs_%4J>_&V}FINWlx%p;!d( zxI2F|@OUQL=kkzeqia*Tf5eHmhn@D=t26G~lL*kz$*Cp;d`&V1I=E3#T#U9Nj?38FT7GB8isAJ1sZvSaBO$SHE$@!W-Y zPIO@pTGc|isug$O{m>rD!~4yCKeYT7<(hSmyCw5PfpWDVH)EM6+$syPL_dwP&AOkt z>xzHgbi9!3Gg>L<=6@b`nei{7JPk|vGF!6R+*>p5Ih}kmmSMNn{#a(4qlKk^ES8(k zKI*TreW9%TIc9Vh`NB0;ppyTp-1lkLoMW*UEQXSZ8Rn1eF-jsU@k`m#7PxqmBpYA~XJM${k=_ zx?=my>q6{f7>mPkWgLz>Rvu1yy$mfKqdQYMY8RgBj4`z5Qy$-YQmP?cCu1??-yL}X zE;vHQMe`BMf;ja)B-4#@OYHx!_;S1^=g6 zkN3vnb}m#S7xp|xo9km)_mc-=8*dF;n{VZ)C4gL0Cvu%PJeJjV89ut1j^hT?z1wmB zwjjfIuWQ-vi#+|P&n!g0*%4b8y`b#E#r&y4{#;}3hOfI~%$+M^YkC>uow3#Er!n@A zA@`Pgq8l(;5y%#0FEU$JI8UOdNN&q2|~lh23U0`z^bjtvQA> z*U@xaqr36rY-`6;YTyCX!_UC%geeLb>g$(bkL!P8Upe-scBB23Ltbbv#jnv`JTc#% zl2^4CM@(-oV>5H#KI=#6Klm}9oILK^6Zktn=9AImx*t!>9DpC^n7JFhiAN9eJ$|7t z$6RL4CqH=HVgBS?nK#C|)~#HdwefV)5kv2fkz~&y_8sn>F1&@$_8qQ`^U0p$hOJw0 z4~(Nt-#!zB|F7lN4Yv>co!gq3T)16$$8xUW4S7uVBz(^rEf(I&draT#=TuL>WAaLqb-jMT2bLPd)*ACx<@IUx>;TO%c!EO4Tqn7S7bA2u5 za)jVI&K5nN%sigUKKNLM=_*>8Pbn|7)l?hPt;-({!OfM&qo`H$$+=@|P;dR8&KvQO_sed7LfaW8wMa^5f@UyDXYrmMPki`J@{ff%)WLkI^@@ z@x{^BUc~X5QbWCrdc?845mZP?>G5>AG#pyUKkt>d1&iti{_>%_agr}mv_3tf@?b1P zf43Z0{@KX+>*@QJ<5`&hXYH)xNYk26?#JAFK6%0MiI+a}J?t}uc?A39=kPu@^6}-1 z29>`(<$1&YusV_B7>v7C4aPI`2jlLQ`>w0m5wS=81x52o&vDlYpF%po9B>Kf20dsY zn7hmTz->XNVfoFb9pALv!H%%s+Gk(2U<~Uu}x_@}wn71n#hW!93g%Kv8A z8ND3kHx7+Z$M(M+={dw0Z?jl;uQ|qCzp0l`d(3RiRp*oC$F4;V&nH8;$64x%#KD2| z826(1=@p+h^Pr1#JX{xS!^l6aMae{)n@_&=7_M7X!9i%#Rv*bUp-CyCK0~!QyXKP@ zANyV0agHDQB+AaN-=#b)&Q_K9x0F%vrIai1ES}9=)MaEX_M|sXsevl&%VeE)nvLdr zQ?3m94lk(Zl^b0ESM9Qww8}WWWpj2jP-}ZM77*pHSAYKu< z15A%S-%q$w-+knfC410zSqd4Z+cytws|)XXmB>kDh1_-vfZyq{UN7+rNY3{8C(!3G&^z(Mpy^ga5q|$>K!>86qo2^aeIVsPI$iWWO z+lRKhB9Hd2N_jqVQSYkgc5BsRl;;n2Of5G)pHhRpC-c!{vWK9olH! zxjpj;dxX6+-?WSq9%qwf3Zc3O_tbrZ7PI50n58RpnyMdI40(mhVP9CBZ$ z92!s#6}J9`+pt|7l4H;2? z-Fz}%%CGDyc@KNTr5KL9xf`A?B= zmASjWwbO}N=_d1L_#BC|Wk;vKQI_?H&tzE9>93a={+oh<#M2E~Z67kfwo|pZe02L{ z{C>OtRMvXG_vn9=ySwUx3~yvQE2?~yhNr!~Xe-m7Hmt*r#^jgc<{Dz2g^M#S6o8NIHvrYK}iSIRp_aw}W zugoX!Lk{$WRpQ}>QMCPi=4PZRG!@?SjQR6aZcE13RCWUI^8Dx@d)dRC7a5H^SM4|N zShw}sbE8keX8Doup7~@ge5rviU$TA4XrV6`O#LpE6aAFwjH*p(eRAxsB`1s}uAu+R z`!9d&sH>ftf%#WW$BgYw+&B#vZleT^U~$WqIUIzqjnY>5**o zQs_*a(RY-+Lq@hA!u`L-)CHKKzs1ViFp&27;%VmFCDZDH(4uAwbzrfVeJXY-!nt(k zhfu~W%h4F!yWyVxJpa;#GIDlmV`zpnh>)IrX)~VPy!h-BF?BxUKJe1|vJG~u+|l)A z>ut#y%@Zlp$LBj@zeA}#@{$@jhO;A|MBBRs=1!QqV6KLFA50ZY7R+-chPnaV3Ac3j zDO@jm8^)>NuVAuaqA|{x(<9o+ruCU)m*;ejm&r#Ihsg~Y+ zlVgk}(224p$Dr5gIpjnuc2D_mFa73t_(vSWsezLFp_|;9aRs%&tE}@ZZ+M;MMSr>* z_8){vhe7}DjBUo>mnU<2-MxI)g|#@2za1FK&`j^z5SL$eOy+%uV^!fax z>x2h0M$Tc3`?rXWqX#*733LZtZD;eX9w|DK?t{HI?=+y9y&2clZ(eD&?f7h{4t;VR zYI+^C*Q({_;AgMACHUD8+;`j-U6_kA8CJ zC(CZe3hx@LXUFvjWvTUvvW!BdnbKiZ*RbwOLiRRD%c0% zVm?_l`2joB50t?UZ-88kl`t2YyrvA{&%0PhJW8B^J}VezP~c^yn4zP0|12$+E?J-tgMZ*+q*wY~ph=Uukdg1mVP z((Ql_Ln(|9@GiQ<_IElS=-s;L>P-^dP10MzX zjlz7GGq^qnyc2f(j-dsvgUN+#f+z1oABl9@t403IqZuNjJz%zx9)}$Ms-fNqcgmkL z5U>_nDRud5Lwn;!N#9h5aq9BX4()k*ZfLDt0$goX*nhCzZ``wPd_EbB zH}tL!c`-(1$P4QftI8JEBhWL&v!YA!hFEIX+_~g;W)#}kSv}$$R?5@s5Y>p^^)Rg$ z87lS`Lk&W9Bi(+Og)uwl|7(#p_RN9DJcze1?t5%aXcTQS9f$RP&(ZX19@^lb^7Z50 zoDJG#uy7v7BdsVaa0|>ro?=zg zt}WS?(W|iPbQ*3_Fxq{|eP!SOJ?@Rca8C(y$zIn*ANdUI)*q``F}UaK8iEVj4Z3n# zkM%AW_iZ~GP(nV$bo=#OC(E?uNUC`guZrwdS;Uv?Y}iYo20GyHUYPWp;KtZOd2@}A zedc{VSOX2MvCA{Va$B3N)#%48b1vCGQ`ox_X-mtlDEn{9PhdVm9+>(2HLSVhLl~>^ zPB-)t%M!Pp>G+DFmLu$2ig8vP#)*|2r(N1s9FfUwYPAErm!jB&D#pAw%E6e=oRp+3!Q~6!JD=@-Zg{;^NY%c?u@H_ctL%kX4%!9lICKtvFL!Fl=vI-Hdo;W{SYp4)rV?FB2)y$*~P`6gXb zh8-C@mt0}5Kz{WWyS25d5I6}rdd(e8zaj4FqiZlKf9M^{C$r7`F!IpgTy<+aFn+x6dUfr?EEd zKb-QY?D5@reaKj!r+H%E1bp4__P0 zb{$UT1`eh!Q3q2+J!+}}U)~>7Y7g$XueE3J8zMf-vH9bB1Hmnr%fAzI`S%=oKIK(! zD{IPaMum+~KL@z==k2p{Je{?vNXZscu-^$@zq3zoe_*SBF;G5UGZs$GQvkA;3aTQ!XEJ;%WmJ?GcicahoR~hG za;dCn7IH6ZG540occGWy3a%O$J$B~Ibp?ic+h%-g;e12gfj;&&Tpzp``(WOLc`cak z$5hr(PjQHA95L;f(dFz#V-bX36g{1BiF~RNyi1Ta4nq z?X$o9ZK_bE;67lxUkCRk0fn6j>ikvFqMPv10mNY`_Tq)$CP!V9a_0qt?jUpa=BeE> z*Pi^PDp(m^!r4~QO~FDdBkHzg%*(MGC=+?DTA5#&Sg%aKGxl!8JQ${@a3Otj*f;0z zy%yu0jeFd|hIJV2U`J#+U8xlfcyAuI_gw|hTf5BR(9f={3;t~9ZI}<=91LJJ%JtQ* z9nb9Chdmctq5tc`NRxB_GK>@Wgah`h7r%%-6{2nE0t{n%;GR`}& z(}VdU=f$c6n))8}7`w*c*JGi+GV0~(f*VmQxOdZCv^>1cd?v24i_FKvbIH$4)r37h zx_u<{-Lj1c(VZJ@ys0d04})wX6PY%1c#5E!AH7t+`A^cQT$E2zGl&NTd3{- z;bN-w zcVRxY%DO$g5;_p1-8e9CL*6z!jTvTr=+?iB$ugu1D-hX!^LHtC%lDBVo~ch?`I((o z__m**5e+Tm#i&tB5^@Z*DZz(=?{v32J zAGOD?%dMjD>LdCSA1*5ja~8g=COfLzQ!l{L?(QoC=5ExMn}h664`ZKCz&w?F^jO8t zbm_Bp4vKBpv9qz^Nc`2YSrajQm_1CIh>P(cHRt~Dxr?#k6WhxCVd@W;MeH8=*-2lM+T^gZC6Fc!>S zm=MfPn0Mmd8ZZ~;Uoa1PAIuJzF4(ui+zj*GEf|ZUP5%aF%NH^KgUx4`iNbxWW0SgXF8Oqv(QY_*~J2XN{tTReLqCR=L$h8w~YlKl1Yn(4)X`9P@!*>`@(5zLxEo zW7wq<%?Ix)C~~3k@{|^Zz6d zWQ>dQI~(6~{n&9WF>samQ3mcKxssN2t#B8ukFG+@S7|Z-bL{nE9*wbVU5hdIl$JQ99 z_*ikW9t*S9U$&nYM-v#Z>T?De0K%nI>@$*dOnvdjydf< ziW>C;10K}vKkr*i3*wexo)gMRkNE5z&+02ii{E;B5BKb5V!!S_NKHF7Tk4dn%5UDW zhiwykXV8m}&KR;XB>QAAM?&8|H4Oh<(63}kxaV#j!oG@hd<=`bCk(_w4O|a*|EqrI zL;pj+^WL6AOn3HTnqA{(!{kgTt#f4mm5Erq++n?a z&f~19%f_=q`4(;OurlnP>f0yQ7>>=&1HKYB>Mr#eBk=D&_-mLMAz#`D^tTw*462P` z?kE1=ru+ZW-=?)#+19z6Gsl?+XVabMTf2F9AQxqD`g03<6|QM8FV^`Fpx36Jf%TIk z0lqIcV_bC39$!LT=f?PrTAbV+5j^{VovsC~B;SGF9o4YoF3Sa5r*+<*T%_|F*e}$9 zb#HTSZo-}r(Sp`x_byAkgmv=0@blw~aeD1o1ZEp(?*~ZP{h(v6%8)zvKCI%cTz0-X|t`vDLaN(eRlq)>3QTmf?Y`628xvlgdFq z&)dT%((`#WFnk-%aKLXn?@{*Y{7sJ&2LIAPt>ZxGb?+r|+nSn2X1p7e+Ri|1^qrOR^c*4K_dcbqc(LEKM=|LU@G zps#S8|FOR~9MmQ*)ENt5yteyv4GSdPc21^im>MW~jW{vBua2jB4LkR1*v%onuT?i+ z#`h0j%l^gJaewdY*nb)JEbseF`nFK!PV1K`-{7avZW;pN9W}4>><3@RekbgiXUj|% z`kn8@c_x6m&Qs76H62`1=7%nobEQ+sV>2Q9L?G|@Y<+c4U|Hg_Lo8)A@W&iOUE*8F z|5MoKy!$cw@{5_(>AF&9^zOn+@TuewPEIOc{GeCtxs&)*^2wQH7-=sW zr=5*fkUOx2Cs^(J--dlFr;@Ae^A;1x(_xqcw_snYFuk`3^Miys^j6rV&nwyMO9L0+ z`tQf1%M!opNBf4oVV+%?>L1|SBRy{A$d!Fg5yA+<9dn&Ekv&d`NOleuEB5oNhR8G=2m_Na8^owU5PiO?d7@rH(Np!rh;O!z8eMczpLnUD3=MO1`HCX(Jn?IzA2E&&_kAFlB`~jK* zn8EP{H{$LODKG5?Jty3rmrVNksvj-9KR`zWlMaK<(4MhYGF!7v&DI4vUagWWcwcSFEdCM|{u%ol5phJMFWGlvLX#IH_n@%kYNj!Y(MRM%ZsqXoTVN zJMoKyS6+VPmxp3*XsxKPaIav`x-9XPADwwA?WQ&EH$91uolKv%cA1%>Y}qs07|T-h zrE$6gJ2WGQ-g@)G*di;G1vd|czuCZ@>pt8)mHdpjQUhz?Ze3ZxTDQ{(tPJ+PGI&+y zbJ_&6@?!@0L+@&smS1Mm2$0G`BhG$m5;6G^o;AMO~6y|ehl==wf;eUut zVBM18IAHc!%9o8X8&|dLxmXj+tM`>%SGnvKfs(^j7*}-ROJq5MFV}tQ0mP3_`x0MN zxZd7^YbUNDUq{&2U(@w@$6X3dX9PnYQ-oWb*1` zOMN^6y$Sc4v15g9)?vp=`iX^m3!{c*iCZ!Mz6$Yq@-v2-T#j{n$V-qGe6!`XM}5l@#ZRt6-YLyQ?6KD=?5$%se=uN41`1Z5`;;6m2jpS;BMPo+SP`s^f@$q`M`cE4<|{nYi2I(FaF&^%8j=Y zv<$XCYHDunVtFmjrDPvJ!gQe4j2*PFE0?klYcLjUT~jNgG4w0jY&pZ$I-Q(+$3d(s z+3&W)lb7>+GFH{nCx!jy!io~g5PJ*OeR`q)IF;-}`7xa@pv9(R+%tJLojsGEL;TYA zPfRi;KR?B*g;YOdU!8*9Y9ZAMd)(DZ%ry`*qlmsPf{EH4a7m}?p=+TS8~?^boKVk&Dmo3?!rkwpJ}w7Om-eSf4%X2CwBj_ zg|<%mZdU%(5yR)Z(dfb_ty9j$xtmMY(oSMkWqIvFy46iy^w1}hZT5ceh4#{DpQT8T zkDb`VZG80PkDW@)q+dejuG!Id)#HvGXch@`~TX zaGAbzPH|O3Ia^L8^ClZiJ-aN2| z=iyKs|9=?i+l%zUKb+-R`2NL7?3m=3d#Udf&eLH}DqOw)jL%$}SaN3KM(i6rccHGl z7*DU#E$%Hp#PVE+Sh8+2h9fu?$g;#p3~rgj*^v&c2fTnCYG;z;XS|5#wmioXRp3HD zYZM_?890ZG5I4MLzW*8h5$~=*e4yVv`A)C5!#v!{PfCJ%_;FPv6UC8M!(-_3rS>kPhd+P_%LkGNkN=hLi(H%@cM!l~rp*z$KH zR^sZ{wyO)`r;=MxdZ%!Tmt|LY8oNCH)_)6hv@o~9RKr{iW5PTL!xr!IolO3D2K{~9 zRpzqa7hDB6nS2rb$rH$n184KY@5ZTTXY>^I=N9!gU<`dSS#u2kP%9ESL|>kUFMoyJ zM)&2ZnHoHQBMiejiEm^yAQj%}Q_1m|!uWPBdC%WGi46Ocz^UX!jCU38j>z5pxO@G8 zCo%n$Cou^VgW+}cz(RkL-Y11~Qk(07*Yl)?-K!WaZ3C_XbrE8GK4aVyYeS5=+P4Kc z^X%Vn`sWDujc|uKSKiL{qu-xoS}Kv2mYAz7L(7rfGf#dJI`SImq+!y1=Y4jJyQWSh zYbC~;5##eEJzuu(w&8A-++ByenTUVhz)Fk>*FriMX1#s2Zh&vMMg71Dw*x1H2bb2} zX&udS5A4iaiFWS69{-+0>2YNZRvMQk-ZqcWb%S(^xGf5 zF;AWFWUBmq;e5Q^(R)o_98Q0ACb4)HNoFJx?wRDT(c%`uy3`KKiLeHd2if+R=KoOk zF7QoMY5(|{$)%GtZPRiqwLsDWrsdY6@}lC>rfo<|fpQg;iZ?{oEv~CcLAJ79 z0wQn0%cAS0AV@2^OA$XU?4S zoadbLoaa2ZBTVMuc~j`pUQHu*ZY!I_O)hL@*=(E~q?8piHY2aPK5Fx{`Ap;$4+Tnr zrvc=V)_?geH;TTFmw8RB%r_v(qSUYbrm5XhyRwd}c3%G%&LYyvcsshKFJQx)DE_Gj zG6}$@;``_AzHvZ)viVIE|A71--~FGr`$gpKZ+ApmhY|z8bHC5ZiW#>fPv5ub8|#W0 zM9&5*d-0fjMB@|Oe{*y7bu(OUev8-61(-z_BG1AC#lxk*pov=VY9YPD>fhFNCu~^S zSiZC1#sYJZx@yPx;0bLkVb^)@T^`u`Y*6%>HunrU)6^|3ILGbO)2!L%#N3$E-s` z?v{kMZg}P~|3<);m$?38+_uy@w4ocT0oOH>!^pML4jmrm@kSz{64v+{FRQh;C^rH26}0 zcGZY3aFC$BrsG@-^E<$|u9ydZGTdYEM9ja0=lEHI=Vk>S5$_3}A&_qn%(}0-r7zE_ zWott8H%Sr^X`-Uxz{lXjnsHHn(=1T(-^E~q7eB+C>NIHynpW^2=cDk|V~>YX-F^n} z?ZCGT@DYB{r`AOGGmr=!8S zZinDrqi6vr8W0mNyXZ#UYr&)VT9d(vCBM(a?2G@3*BXg91(f%06u4t!Pn`j*x;Y`!zYQyj8C;I4qo>$e>%ljSaOyYQh4DDtLEJ;aMgw@W zZpi_!IsNur{N+5W*-ls~LrS-Fw;a3GIr%Y14DyA2>stUo%EMU&Dw1pmoq! z8E0v2r!NO9Fuwqp={)e!cU(HYFuDM#Hn^cR6S~yQW^E|g##srT5IoTO^@9H%?&dQw zxKE!^;XaF$Zt3_Ls{M;I{~6qON8yI$QxxvKusBT=O8|FS71nUT9;5XH%Sh*_nS?|A zhTnk)8;lJiTG&f5*+STasa` z3AhL*(3wOPCTI-{@GD*e0oj9%&A8<7Gka)!gN{fw$H zCAiSHZbRJf9M+hmuTB&XgfZJ7M?vmf1uFV(tOC^=;atE}{QnD{A5O>MF-PG^Q{d@2 zP33l<{!if97=`ELY3eol?pt^fCyL9%TmKvSa=9Gu^%e@LI>gi ze7ger7u5GGE@*PT1^=_pBx+-IJg#%3b(&K~eKy!p>qyMiedfXuLhueuGzHBeZKs)8 z#1ws=BP_jl?%qtS1B2^bI?(?@SUZHJv*(z_wov7bX{I_)t9xCd={?fN-BpRPIj-_V zpS7xM2klf%;>tJ-Ya50*_-bfXM96xBiv(k~HU#hDu~{O=&mXz2-3+bJ~~i_bOThli1wEtSn2DD?p1@ zAZMAm$#P3f4odqkS`jWvPb$)eZs{+Osa%w5qfhTZE^$%vM&%dA)me=OcenIH8(uoR?9t0sc4#@xSLvnfB3H?UhB=3oaz1_o;#BP@K)>G! z&LZ7^w=FsN^SyLfdhB#^6uQ1Pl3sy^U}rW0&|QYOK5UZv26lMswUMiCI~ck3$OtwC zci=K|XzR7xZoyg#*#A2UKi0{|lN=t@cTETM_o7vHHfb&BAI$A;*klpR#N~hvb}%tb zX4YJH&b>LX2||WMpTU1TCcPIEvk-YSvy6@H_d?TbK906P*x)W~;Z)zGJPqeGDLlw&>TNeVwwF&ANrZJ$y z7+5Hq?s2=Xufub02pjUf3&kiTs8yx$dPy0hJyrw~;tjoVJL zO-(eW$#+nU?D?a<^7NIt(d7!mOPjula;ed@ca*f~`uF%c z@K+QCLX~dmd{`6UJIPtOju2uIF>!*-IgrM~w^GyUFlW4HCag}A`MS?BuCcdEgT-$i z4@-eD~!`oeUV5?Y~4m1Ekj}H!*UL`X*7JGm4&6O)2!nI zm{GmYgQ5d^a1Lpp5|C{YmQBzmV0M{raoaQMGFYz5#eV}Thv-&0uvgsXu5?wo-L8=P z1=n_Wy$dm~T$cV`5L09eqC|uxi`omyzJ=CcNQxq-v>YpRLr=K3#=QZWr4=)TYieBK z7L`8tK*pIh&~}>*#PT);%Tr|FI8E;$4_2*jZU(cki5lOW_7`-S{sy${%?{SFj?-*_ z4u-=T&5#EF?@E+qL_d;4mc%P==eN#{0uLakMNLu~ zP8T$RK8Ga__RqB9grx`Y7g^SXrTg(0t(IZL7xNs@DSzFGzt*9gk8l~$Ka+4hiHq8i za>-trC|<(>ijxzTd|2}?Aj$<3hag&qH6Af1EVYB%!@Aeeg1u`R_`G`H@$jwC3F2>} z`b-R5B-*A%>wqm$QJl6NsKp!`>eOx^eptJm_JO*M3Cccjaw}O=V&B)w)rX}i=ZM~_ z+R$&>w939OA-?Yu;`_c&z^hXJk%+Tn6n9+gz6riyfG1Jhp=fTprL|L2SO0I2kRTYRj=Bgy#G%Wq)9EVtJ?_#e^(hrK` z20XO#7K*V#aP&!gE)pEKUt9$^$X<*3Cke9(9@W1;lwb&gKiaSsK8a!J<8x|EPBr?f zDovqSunj14S!)`;r~W}yC`%aj(pr46?_46NEMbZMzLXaaOAIYA!*1TV- z`5v@;(+x2k(;WI&V`^gCrLFUwrSb9%>WGacS-Sn41?9x(I;}^SMN88udNVVl9@Aii z3T-5Fz^ZnZS$H2`zd#o52}>`Yy}e0;Qde~Alv4YnXUfu4w26B2&9h-?FE~n?HR}~= z34L+B(h_6$XN&vmhxL0^lA|yo@feq2I))jb*D6}3u=LJpv?W3QTwPHtqJTalnh-c` zK^!YplT6xOL6LQ89khe}S2%g8l~Y=AtAdLmm*66#z}P1l703=?A8P_^L|-)M`+NHW z3b(*PN*I$g(|m#4TdU54`&(_l_W*W+>+~5nMi$T9@EWAuV4^tgZ4RZ(?o;ztgQ6M5 zKZeyZL3OaYeGCahK#BX73>$p%%qNdl4)GOu)Cs-_@+l^!%KaRUEUg2~lnVNe@@@gl z<=3mcA1nosUJ>r+L5Rc*k8gxDD2%A` z7B}YG8I?Do*rZC7Rd6S=G#YK7oDV8F{{k#vr`7{$M9&9{pi7GK#_;EctRRd?DKvBI z&j_VzoO{wHfjYIykk``qeDO>e{#GQj-qhm*E;iz#KI9>jOm8&1BGPEcTd7BDdkOD} z;ung1f>IvtW%0RC(=Z6F8|t3y<~C~GFE!o;z83fcbPDBAU>yxx-%BIn$v7i`O1iO^ z`Xwx-A-_@lAIK>_B&J)b@0ECcGyb3T4UN|4RO&l@`j_>sQ|il#*7qeiB%=tc8UJF` zH*j=4ukcPZVzt0Tl7mLvR?Hr{`%c^3Gy-4~qO1X0N1}5KxKhBIS0W3E>RKdHY!4<& zpPVC1yn^!7k?q)b4f=_2j5Xnmy7m<}sn5+F>hrYd^M%s`*XgutArAq+oa(YE+;mtf zQ)EP>S0LC;DDj8W#8c3CDBm8`YD=EL*g0HbxsVPY^!iuEGJ%pc#lf z)JHl3K16dT&_?q{?(UW@bgTV0ThXVUQ=S;+S)h$Hs4cKHqdgdhaT4>OCn_{ZR(?gD&M4^ z?v@&{)-A_((YWO3n-w#TLLT&3$&jOjb6Ajvc6M;u~!Z>MS~rKinUi{i<;y?4z42^QSj!<+M9}sw9`t89%&zP zTS?I!1={glpS_3@xtzoRpQD4PtSR`c%$wJ=b4Aa}9Nn{@h2-sq0`4OFX-)h5d}ooT zJ&=dFU)wpkd!4Re~DUwb_&@2@XcZAC8f4o zkza-NMP)7-#btig{=dY{uyS}hlA2`6efm~6*+GP*hdO9I|F~UU&sKm3G>F-KR055Y zbsaKJgBbZH6aDhY{RVMpUs$@m4J%GIJg2aSQh)Vj2{W0orad*Qpq+Cq9;jFJ&n_=w zdIIVx2>??@h{S`RcF#M^Dg(bmtE z(@jjAcv0;WTb?ZK@32%c@XZCwiQY9Ry&aZ%+G#gxo@t(CFs^A&%Pwr^E2|2I7roSJ zj+E7AoqyjFUH%2rBC3iH&+%W zokV=cl=2GM_G$9$BKMs3%rR@*2aPUi*W7YnL3U9>aL{t@+Cj_o!Fh7#^h6g68R4s* z8uj172!L$%=VhZuZzKFY-#)bL3gh6?qITUaHSI&PZYW4q;7$YF=J70-eLm05O)kdY zJfc-(`itek<2guUxT_0YuI1Vg@6K)FTv}jF<@01j&H_wiu{KlxHRJ3H&s3t^mr{C8 zq4Wl{wmQ=Q8D}kQScnc8#joE9U`z@)wTQmQdevUt$lUJ6K$|fwVP-;ke_vOkueo4> z8}k)Dh5hyRx4peh=hp2R??^3MfYE54dAr*xM!2~J>)JK^+;(2C4{on2wQsKkULob; zLd?p6CK$x~v1gK{n)abhHjKNrF#X*>W*0a1x2S)uq&BK_6P#BY&VzAtdxC97K6Pg5 zEE=6!V{tpbY#Ij|sV$3gam~DkP^McxKfgQn%E(3JP zDxU(`G$eG)&qW8*D9lmn3(jT;zR+pY5@k)sE{*yN^Yk5czAg%@G_kuiW|yWuUjy4S zHTDzH8k{;1?bnHr__&%li^p8yO;Uh z;Gb6i#Mnk$1d~v1D18tf+a%{rYqK<2lnC%f@dm_Wqi>$ZH&^1D%h86X@D0JFbLth} zZCToUj_feWT7VNhy$ty-L%yxie6Z!~(?w&J%h&-^Uh+TS#O1xmz*E&DAN9si*qxD$ zm<&G%vB^?h4JgcA56>|K$o@IPscZwdGTK_oALpQO`Que~OF(jHlsTuQk#ztxs4kCwY{ zK)EeFYPsL{sO5eK+nm!2;PZ&X6 z=W&e1uAR4)1vr}}Q2%ybLdh|{p0nCvo6VkP;ytoZC)lnH=xwv1S4hJA`7BH^BP`1j z0tt26*Kl@(DfuJ*`JJtEnBFoC7Q9K;vCF|^PZE6E`s8N4h2Jdr z#9=rcA*8X44)OJTysoR2x^$>3JxDb1&U4A&e{-;kXUQqZsfSKcg=#c%>TTvAze9ch zMmWKe7>}o6ib{GV={-nApx+ZWg`ah*{b&%4-3IV{@OV&oz9_y@Ho%sq0dd#U5$$S= zW21xi*Jj8gska8hlZ0?rU#STU7L!x>;GobpNE9@d`bu+jrc$De{K+;59=MS%oJZry|o&4 zINd2*nJou#o9}7YYxz!&OW6S1EQi)-uGT#ru^o{|Z#yDqHsB$qEqHgHheN24BbAvoOljShc}PcQe^<8Ok?AI9f0n@aDJF^s}>fLG}b;2 zS2QNniEmRGy5KC77;2=y%L7TzE_Rp@)4LNr`Eb|syAwk~9b`P1J^G+-3$wh7^+s1(~(hQYj7_>vFlAj)NEt^u6Bds(hgmn!>H(FufHzG}n80W2)0W z^In@aZ$ssY7JO&bqeSiK+Depr+q-!GMT?=-x{rZ1E8VT&b(haT zELaV^b7(K;NQ5?3l~_SfVx?0_a4L*d5D)h9C`pY`NP9X-nh3k!t;I1}Gf@XgntFCb z;{vST5$X9}3GvTkyiW4$!I0Y|IUd4^Rm|EjBg+ljdfaUo)uXE-(z_ApbXkhEpk2$` zU@sBl<;c&r5U{Cpt}li3%*+~*-pB4ik{C4AnDdClSJC*neC4*6J8g!AZ3&5Im+Lpr zX>YIAhh*3at%2s38D#02GZEM56IE1ecXxn7m0HtOmj z0Xu^=u6;2i>)oLKI7`SPNw#z8rFs|9cPrXH_FPJ+p-Q`@z}`^lggw90B}#1JE4(f_?~UCy0~cU-dMZ@ zNxFcYXfF8N$LuOy#wvyA(abth<~}ls5A$2GM@hJ1X}f9J`C~YZBt-jjb=)*34pUCP zL-ZZ8`8IPKvI6&r8qVA9VW76Yb?KRoyI>FJYV_QYi`dpU161+xt(&2p!fZc6js#7M zC1wMz#6g8^nI!G(2xCVbksj(hSg69JfxQDpn+fuhj%2{JzM#CFHznjRZBJg-bxeau zw2?g4&HcEveYVTxaQe+fmK>X(;_$2dBCYP`(>g@>RmYOakDY;u_ECWYvA&{tn&>cM zr6;*EzcIt1iOy1%Er^buehs{Y)BTvgt3ZW~!`{MyiWKrVZiaMg>=5eyKx1lcdk78jzww&`l zSj-@6kfpV)ZJ91NPVVd2z}cFtPI#WDRpWFB-Ze@&r;I<(?$?Ee1~j#N#~Pi6ED**7 z8XN5Cfs)$o_8&i6o?-W}?2T_&4lh>;`zed8y^Q>% zn7A73sES8UuT!50mEi+yQD({GB%7iD9_(wGCe zf&|Y>w10HW-wm`Iy}+GkD}AtUFo+ZVwThjCcCSIS`B%nytL6l6%(h6uh%Js0N$Ng# zOx8AU@6@vF(ie$RC9f{N&4DuSO9(+vt>28c53St{sn$B(ZH>8(=j?{Sg4(NPehJ^P zR=>`EI%peS;TcMjGwxA=^H8+3ln_N<*L7$$IWj*@8z{)|2(Oc0P>9~9)^Z-gjWv#& zSY%%b)C0Wtbj0N?=a>cXU)sKR-l6tIq)lk+-gh>Z#^h4WEg|YA$-bc9kqzRF{=RQX zx;eNKr!KO22ch(2$MK1UR-EV!%avlM+^8+|?( zeSR?d+!B3W6@C6L`g~{f`R@l}7V;}*lqpi{Qg;Dba?KglF4;5SJ;@yD>i;6PCb0w` z_-3o~3A-uPZF&cQ2r@`WuWkY(}F6<%xK}YsTdHiOLuiasU zhWK);B(3P+EOQ+uAD3-IY;k7!pbGZHGxT+c9T(KreTW`}|Dr*Sm!G28*>HZR!%Tc+ z0@0&e+itxM`Z>5)1-VKD^zQetyy$=W+V62=Cc_guv)QG{@B$dG_QpBw<0md{|9DlVf3SOjoE%c1 zN@nh*?T@Wm360%iKcD?Mz9G$mOF0j40(=X!j#_sec;#frT6-qAe6t}R7KlYSeeIvH z#R)|C3CUj>I^Nf%UrF}n^oG{@&GHmxZW6BCY5xiS)6`b=9sNxbpNRCRU)>+V2jBq{ zPGwF{;R0NiIkdCU;dHA5!*bAB#;DSMCyHqq#4k+0Eai@Qr8Za z@+A8AZt(ecW9@zlR#-&W1nM92T6^*a17ZML0cCT<*+?hhSs)FfH4LY>Fm6nC$h4;t z5LA}3F%-FthlZ14zzs&k(0P~}QhQ> z{69*45v69d(znkC#*~rOBpdTU@p=cWy-@n=sPCx&#Y8hPW}Dvi`0lw_YbcM5QxGWS z5lGD+Z>_|rkK}25bee!VPrhy=E|%tr#SPqHoN*Jw7Na; zZl-UEiz}r5M?231=v+Yc>;xtXd)e3@S|$RnX}Es4M&+*?A%99iOmP}Tm(mkstF!S1 zca8f{k_E0TZ?VRQ&jLQv0sTh|TsAq5}ZT1jH$o){U8*#E( zwi>;Ybh(nW{~Yw+h)kdEPj*anaezsc#;Q<;f&<|bTgm}jS(vfYS3{SGzis$?H15BO z!VLP6xDmX?q)Yr)QW4FmqK)6o*PHWTZ#@Qf@q>t#9&Vjg{0eAHo*O%u(YX$eV&OL9 z9L!Cj8Hu2%S%DRACp`O2n}IWJ^}>4D18%+sR@~+yp$I)UdK5T5qTk8BTyVYP9J8zV z?L@a}q#;T@Yd&v7;(V5(!I^O_9!TkALCmj(6Drp9M1&MAt@7cNK}&&vO$ z@?%c&Mo;$2SB2{AEC5|nl@haUoL9awBm|za4+=P!b6G0Yb}sWAco*>R@8nX9mH3Vq z?kHOZ{>*kVm>61L#pi1M^nRH`xPxGWmwN8!@P@|Mh->4-s7wb{|FDYQeFS>1j`>gu z$r?|(y24+Jw!+8TlK3KWns$ACFhR*J``GhP_}H-+Li}e-Bbg51+o=p)OR#v zPc|B~*6P@{jw7pkArB?s3=Z*jnacgJX_I^v^EGaguVfXC+t8Xq_;3Sz_?|O*5_HF| z4cQ)OP7nf=CQRY$*4h7lbZPrXD{=!z9TP&$38@Nv$KQ4>=WJ6IO5YD5_Bep>?9uTd zs>`Y5(fX;D?4RYFrsV86IxM8M9L1T}RGY>UT1GV`1&?729z?WX#6`BfuuK=+rmV`G zWi3ioW8B7OY)wOn8)t}>&uJes@hp6$M!FYasigzXG-S<~v%^eLalsC+X?V5rUskhqe2KZxO0`bC{G}267_8Z&Ve$4 zA}amr)7pk%f0c_K9Or02#FW`poE2?Iw_=`A@8v1Ir?H+`#xT}7U@)|dFm_v|im&6B z;42ul7G;U=xYco8hjBd_@Fy$qJ4P+{iiL^)QdpxXL}4%EAg98GTCy|Ahb9$#!Q#mZGjMr^zf!K(DAJJZn(-f&_!&L+7e z{zpVwazI^A$Ua06&w&Sw*^HEZ!r9wztiiAe6wjZ(B`|I#!0g7hrp_yJ{C zB1vB>yAnZs%ulg!{#9KO=`(l-t97kLT}x0G?XV>2m}0puz~5boqobs$yDmYzRnb|~ zewKD!g1995tnRu5aY6K1-E|3KdGvWlw9Mk@^NZ2vY0>Ac(dR44PFu_e?g!#G1F#vy zv5F^$B;`f(j*R0|{OZ#DXY(n4ax{N>G`~Kc{}be2(-0dMYap3Qb>f5p9WI=Eyc52t z;4VRD_@`NCy*>{(8GPD^crlVR6rOP8%g>%x{(h#^s&Q%+E|2o;M7^~rTmLm%XPz`EDbS?A0w)}^!0}(j!N-{3{SWi!fE^9xseIh7^EG!tZrLF;>f9rmCZUdq z^i)JgT1&vH?`S{-Gf7JBu$E;(0>tfDT<|KQEeS>Z_Q8I#ksxnulj$z^oGy=x&UuxT z$Q0MhW)o|?(>>JrYNv@OO%=(nC|YNI&7*6Z`(+|K}Xs& zS?h6%-i)xYM|ho1On)G}#=&fN1@ax=vp3=7kkrD$`0MV=8>CeD(nk23w7B8yxFb_e;LLSuAL7wC62uPJoKKm^v9n(?_NEPIq~LxH zt}p))-`8V3=OGXA&2X;<$BmetHtbRDNTJ=kS&>Ybpi=yE|8y>j7Re^eu*DsgVz-NSjj{RqB+l17rOI)) zA#OWM_I(AcdhN~tU%de5jnBv}3MOX2BdlgdE)!qzEXXYo@2|0E^5dGtnchLwf9{;G z*G??>@p5m`I41Ubo%kJBQ;J`E%`M{!#H+o09!WeFJ2>$KW=4T{eGUEnmGbvo{2h^+ zBBbA&S)+F(MrYi@Zm;7#=X;>w@0C7)XbpU4hGx=9nitRwV#i_g8D8HdkM=z-j|aT- z;f0m&@R&_L(n>bKLQ;S}a7+zkE_nBioY#yq?UM}|`cAE|-h7KADO4e6yS{33&Mm*J z5xw$KibpinER?Ng?ut&=Q}%O5S;u4SBe{Z0s$T_Ie=QT-z20p~6#vEGZ!>-B+>S`u zfPGQmW`}MUPB%!o7xTem)(9Mpd&cOz1d(y60>#4Nw(Z4#B=JL{+ ztDJZXtjw9X7uY%%(CyM}y#Z2xPTVXf!1rI+L1ium=ge>7#Aju%!*SxfR=ud%nEBd4 z78^fIY(kk#{I3DHCZty4-E!W{yaeh4zUPeb%wz!MwuU!mO(IUhn> zmPgx?u6Zl;1m^IU!#U>uJ7a@E0G{}Qv3JsuhWq+#$WWrQi|hrcyn0XnNO=P#E^+=E zB`%7VC}*!-lMG=;LPNj_6s=P?(yyEZ|$}CCdZir*fXNA+cZP^zY({}A0qO64BMlTdzdpF zxl^LKlQf6WPlsf!89ih{jd_P;GwkuGmy@F>bdw}LCYL=gZG&!{`eX<$1FmI5Vas%s zu}!$kxK|J1*grpG?2TbK6YO&YT}Ar$NPh+C_u{?;=?VK%x1w5Nib-)rus?VC!IDep`e*fGCu z;P=&aLQc^-_N%Kz14&*%CoCMTO4eGe4GqdVP^i0l0{d}?_q*01;@zyC+st<1_j}fY zU;2Ly?i$?3aZ~U+7sqOE;g&N>{pJ6^a{IUgTr>A6_jm3~?j-k5t`)gN?kDadr-2y~ zm6pg4;xFUJ@mKJ6zKp+_|8wU`PCc=^)}HW>g-f`xE5`|be(WMd{mOTMU;4-VB{Px2 z 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 PIO12pU7-_II^q5e#=>)t diff --git a/edxp-sandhook/template_override/system/lib64/libsandhook.edxp.so b/edxp-sandhook/template_override/system/lib64/libsandhook.edxp.so deleted file mode 100644 index 3e0cdc562009cc850a90883f1aefd1bb12a03e3f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 342808 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

b#l@#KwZu7*|jLv&kQ9FUTXum{3yF356p%iiF7U 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 wS3Q- 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

Sip<2U%b5b71m7Ueo#XLOzNPUV2Y z$LzSheO&on<-DU+;0_VW&M^49-%drFI zgR3ClE1_gPiXP|#JHaxrAFKjLz*=w$90E^)lc0wekXAo-I#viSfU*Z?kpo!~Oq z4>ok1j!g(3JO#QxfIj6K0Q133MeGGeGE?>S>1$Kb#;Lua2V<*9-e)PfqXQ?l65X_?T$DczFoCAYk z_4C95_Pjv8z$tJ9oCT-A+&{)YxD0xHl=lqhm5pV>Y0o`Ar{=o>Cb*-YTfrVfpU#=DeLtqQo5B7pN-$x%T1*bqixFCFx0aRH6 zeW3RTlmjdPgJ1>N07k%0uovtHN5K(r4x9qlzy&bxhvWq;2eYn656lPq=CKD(|A@SR z^I$Ky1fB#v|42Il{oouJ_%U|Ckp=X5srVS^2PeQPa0YAv=fG|-`V-;-D}IVTSh7gD zZlFJbKJXM+3M&7H{DOI4Cl~-vg4N&*==&$~3YLO7Jb+ydmV!~R7VHDN!C`O^%=u@^ z4^D&2;4+wV6XiceykH;L01ktlV9vkb4=ngs;smpQPMn3b6EGh1+7AeaLVfra2nupAr)Yrzq)9UKLF!P;MtC$I;c1AD<`a2(7jCcj`I zI0=@6(_k$)1Ga;+U@tfio&=Y{32+6R1Kt0IJ+K_i+Dg9w^TDBI>K_~d8$jQ`lSi-} zJPCGz6W|KC08aB|giP&9-fPq!SO%7Ym0%DIt&mS}i7)yZ0c(Ga9vEC@JiHnD>*ODd z{wHyR?Q8e}JHQEW5L^HQr;*=Ayr2)P087Cj7z8W92CxC_2FJh=@Dw;B^cZpS_(3O_ z5B7sWa0F}zS3%y}r;ICa#HPT2`bKOOoB{Jo@#A_URt0u~E#Ly!3q~^Dh)sY?;4+x& zek11DPW)g#*awz_b6^9Q!xuqzgJs}|(7_onv;lvhZzFm;XxE@041!hQB-k!=&l|CR zFanN&L*N{kdmj2=ADDA1^$(VUqvyX7s|BaPPVgiz4?HP!a00B{^hRs}oCB3I;@*sZ zuoLuyLtrg92DXC@7ord5^W~Q_-~y=JhTKJO#0tTNw;&Im1UtdWi;)MbvdJr0atV0? z17Ozew12P^90!A7)}{CXtHFLSJBK*IKJXOixg5QB(%!&Aa0sjdC%|^l&kNc44o4*j zj)DE)9JmOsf~8lGA3yfNQm_^bf?Z$>*b8=pec&M24~~HY;0!nlo&r}u&rZhS+&5xA zFb^yR2f-?E25bSduf!gh3l4%U;1t*cE`y7pXBX`h^npuYDYy&2*M z2e1kZf>E#?JPG!L!{7**zlA)5-5`(0DJMZ6I0BY}fvfNj`mQD)U<)_`PJuJva2|Sl zIR;;wUY0uzP0da#f#rWSxo22mRpaZt4+S3{W1hb`SdC&|dNg&fP(O0Ncyy4+roE z`oNqD>H!Rb4PZCe33?BZ575oaXJ^2CzK~eCn|5;#?G?=Di;9C_0oVW*f}LO)*bn-_ z5wHTB0&BqqFa)lGEnrrVJb?LNH|PiZz$)+**bW9Nu?JRwBj6x71FnI~p!;6R^DgXz z`QSKM4(8lPTwoOJ24}#NV8Q*w19pR_z#dS!hxQBRfJ0y*coHlJr@;nr4(tS%z_+{nkfgk+>Kr(CFprn>^@6i6lQ*#TukZ&(K;?ew5zGNYpF&#)RbV;T0-n4e78?YI!7;F!7ym7TwV=+VR_o8=UsVVzuBr*bXj$z2ML-vDgHd&lklkfCb~e-ICD34gddE>PJ$KS1Q>W1)rjDp?ZTs!#&=fMeZ`4RF1 zu7Imx?xV!fNW5S^7yKFDX0lr=C1bbpYz zz-+J_%>58?fj+PsEC&a{wGR^)IP*AhfwSN$nDu+K%ZJbhOTjWQ2sZGA8tvfFA5dT5 zNpJ+50jI#M9`wQBN70W^Z(u370#<>mU^lo14ub7}M16yU;0(9`o&sk+hW=636TRqz zz9+~B*ba7sT^}cIum_w27ePK=r7VFtpzM;=@pp#H%A7qQ<$xrd;Goqq})oCfE>o)V|E9dhC3;u$336_JMpy$)r1;;_dvl9xw_2h0Z}U@fS8nRWnr!4a?&oD-a6e0!931Ny*PFbK+)tAnCG8mzcSQ9Ist z!N8S&tLm&Pyl>|-D9juDx!-d-wg!5>$p9x?mG{c57hEUYPj2Y*Jazul-ea*On)9Z(#o|4uE6iXj^}!#T$QGrwOnFvp1)uXFHQ!n@#*nbV5bZI2yD+~ zhP}97>_M0KqsVz{x%MJ*SJ=ymKe5+?Tp9a`_;owNkH9|(KS%iGM%=Q`CiNiY8icRc zj7HYzL(u!7iw$!V`Elq2HuPD;j-EMPLv)v*_aYwub4F|F+f zHfOy+0mW_zdM)&TMNiL%@a3};UGN8lpNM}zB!oW%fAC)WdJ(^q@E6b*S#y*9dFYGK zmxY*89vLSph;KB+H9yMh`C}G%vL*cMX z%X1Q!Y@)}@s+HOXuDNES_xpxkZE}8PJTmm2zjQ$QM;?Cz=#3pU>cb%}DW`mjX}IZh zY>0ikcD)F{u-O<_EOzvIbrV-F{9)0Lx7S3!&4ZuY!nIfnKhd58@XO%q6cN(-+*bBh-VDF^#8)K7tsfOPFexu#T_4Fu(-vM9lA=ipdJP&%_rF{;-UxS}d zyh_?6Iw)6|59U>#;%H2r($R+1h^h=<3Ltj5m zSoN!s>v(K^zl=ifgx-a%)N+gcKKODEyU?y2(oc|)_{Ncwd(>Jx;#fAJ&qB}o;QD%8 zg6@W1E`srVC+fq?ZUOvR;iuG>#8m))0e(p8d0oHP^DF-OUJcgF)EoQeCiIBdx1o1I zFM}@q-rPi920)>ww#QNEh0wM9#p9&iJmuBP55Et7g=q|w_{+{??FM~_eb3zw=-gy| zDB?F8xxk0l$5UX?t8`86zqI23^e*HJg<|GKa)*h5#&dCCZzo=d0a%!{ZW0q^?bo- zZSi{3>s|6aj$AHs9zj!EodZ_TimsDIs#l*3KZbN`5Yib8TMhu%A-f0Q6U{Pg;9 ztpfT8bgdtx#4CCc_!IDT&k)#z-eu?|)3y4CK8U3_q$`9QS zy-M^`>PzfL;J3pc6n<)Z6&jn^??Z0c#{Mw$1?XD-%yz12>GeGge+|A<`&)wV9k9kN z{@fSpda3o93w;TDe({k~9;xp#_+rngKC9v9!`Jd*bH3F9zZU+0*pK%Yz5PmD1MuhJ z=L_H1#P2BdCFoA&oQ1yzKe;?&Z^_V0ri(pymhQ*TzFj%<;EO${at7e%oG`{wn|cYs zSN8Etg4nmoLl=A>`VGPlC5@vTO58*68{qrcH#eb=LvMjDZOh!GJhRX{pmzu{YPBc) z75H=TD}|qucj0GWM7_RXACK@$;8()$6@8n2SP6d;eu?mH${U40_ZQCmKKM&#;E%#r zKAn10kNM8J*A+^f1RV&_9gTX z|5|M59nfo`r_%9p%;(5{cl z^@wb39g%kl=PjS(S-o}k^z)4X{0{g5;TxM4FZ7epbD()P-mP*s%-AE(Ocqp_4v z?ByXR?Zw>0&x%3U%J+p-eSO^5`YVbJ=x5WOJ)bq?EakKIlM3W3{+jlW56|c9=V4FaG7iT_tjP;{Q{2_V91qcaV12fqeP6F%PEL6TaB1h96=-kyqWH zoG^zlNRR6#J5w z5c>V5{t;*WGUNtQ^u=x^^llq^1bP&@UV{j-iF_CIkd6ER^q>uW6ndGBooVO=(8Z>? z$^Ihrd>cD!(6gZ@&p(pi>?>$n&;w#5rCo}>68KUtKH(di)}El3LN9ZgF9))<@K_mf0^qaklMUn48>c~??L zUpgI=`*xn!_UZN=FG&1me5=IJN^2F=Sf4)Ay1O;Y2>H=-a5{aI-a9t%z!RsO>NIw`QOHU z7WhN3J@2$Bzj0l)0J)N{SnZ470Cb-Xy&AgLh8~5!Y7=J<^hM}mGqrt7oNMss;0M|F ze5zcelFE~~?lX&=g5N?5KQT|Oz|Vr;Nj*BRYxUMFexuwHubnd1L%R*XDg96629OJy zayL24O(N$v<*sm+TSBf7Ig#*ebe7BZ>3%0g?mzF~KU=*0dbC4nPh~#Z6!yB=UoS`g zlCHmsd<6NxSM}@4o*$;#T`xa?{2=n3=z2bPW_hXO4&;}S*XoI5*`&Sp`OyDb>V2U^ zIow-l9`JjR^*nH9KT?hokYZMJ!}0--YSq^Mm}{O2-(mj&JKefWj{4e;SazM`~%~- z1AiQTKl~Emr^GM%^YDk^mpbs*;7`JD7k<24dOH*S+^hNfhBLnmeiXjnqOXrblILpp zeef5AZ?=c{Jdq_-tzC2>SMg2fac>B|AO3R_gsoJr7cjDF0^Q53%pLBfx*Qc)s-VivJ4aD!y%8!v z_RUS&-;$v>!oKHcyLDD-`3(iJoqG-Q7=Tk=!(JB%Oj=h^pM>})3+xw7vW>tdUEt_ywv{06b}<6Zn`i?^#p zd#FY(V%pKAv^XZAhoDzN^L*M~U-B}5TrYAJq8qoLXqVo1u&#waCV6Qy>{!}|UhWd) zD!y-w|E63@yO8`;BR7Oxlzq=b&T)yoW#lBrcz=|AHnB4VUp|Z4$-ZZ+VJF!ibkXfV zF7N|qJ4^8W@HIQX-iZcViXG`QlgRZWr?)^&O0z!?T|VntE~I$=^!gG1Yw*Y5Tl1UX z=jJnZz?XWm(=UUc^F!x;T@61MzFYK-P5efod(NQO2j2_dYbt?K&SB_Eiao9T(3gla z*^kiYq047`Q|T+vC!yycV{Q_c_gbCq7h;2P-$3@+#9je>$w#uD&;vGfu~%)-JJ?Un zpXhbK_fwui;TxOK`=D1r512$y=)=&vpnH<&dBVGnoIfDt27P&Iy29cB4 zJl{0rQu?>}5qo{eRq2+r|3WW-J_|iHp8@C-HuP%f!#4CN^nU2cV80{bZ_KB3`jKhMd-aQ}QOM58TN71%FZe9XIS)=FP-)S}9*1@_kwX9{~f92OSB*NP1GB5`QrC7XTJr8 zoKNI3?B#Odi9J8|df88{AK~Z0mv=a57E;P5`~duE_$8um!wX z*dK!5`xE0lB;I}!^*ssy6#S^@r|_lz7U7rubp5zi!NgMn-H(jt*E{&nCeJOqo|H?1 zN-q3L_}YADQ?4@j@~#RyzWA+%A4u^l?O_tS#N%h*^NiuwChh^lzrUYq<5zz_Vwe%zM0#^INqfjE^zv!tM^4^_QH`9%4(An89|8DX@TEVRo7f+Q-Uoe+eb3$Y_C>!7 zxrSw{zR(Atw?lWcZ*D>#g&wk@PeTvd&=;YXrO>5ZYtZwdORR}{P4uhWt>o_v{4)53 zXW&=EFF6Ch1Agfl_yh1IZm0Oh;rq|PpNAhf1Ah&E`5E}RC8WiHFZECcU-Iph{280j zE1`>DJ(D^^=n?3Wk5qaW^t=>1Qa=OGbD+sG@TXUq zuTuHgmV9JyW4?ObcutRF*@RvIz2P_3`(E050(uMdPR75pT~8M~QRF91Tc1Y}dXM-` zp-Wzdpet{1ed-MLAac{lRmbd}k4(9rgj|90Ml4V2!|DD_(&td}ZsGb1@3irq#eW5I zIT?IL95OjZv9cjlM&`Y3KN-#F%Plm8|7)ed~grB7JBI!{H(y2cT6Swk#Wp>EAm%F7r2A3Z-QmW zFC(9C&;+#dLsvFf>00@rXF*>#jtuDIa*yygzF~VkqXd&{@V)T+ShsqvU=b^u`P^Ro zzJhW8*%-g1T#M*6@D3~QW)9A>E|t2;E@K|L;*FR*XR?0Y%YrE5C*?k_?wN?;XmNvMl=0?lO7USeDnkS&dR%0@4jcLkl4{5#l} z_{)$R;9Wl2^DdTr>F4v+@W*(k&+r-SNIU96uB?i8^hh4ot&i3}PvPd$WzV~L*Nc?v zokqFNq9^e#;m2L`#`@1m8Ts~Nw*`J`{pCRqK~Js+t^Ck~&{wc+Z7=%zv>JY1E${Xb zzOhMrh(gbWo@`I*bsoA0dJFrW4@zd(QszC8bNg{;%GEo|6(HAd%H82CSBcyLazSi+ zu6LH}K+eOvkIF^vLT9-l+QV){;G{$2>K%Qg>~`idR_2`c&C+H z>>8W+8-U&mT|WPBEthfr2S58y*XzwfSD=?V=&iud`Q&;%FSkV9&>JL9OMY~J1@J3) z=T>T*0qCXB7f`d)3&CGa(bL*L^u-jqw39{XGtg^k$DZ#Qs|&mF4Oy`>iM+zQzLMjT zepC>k&OgmKNqIbLU+&HgtKe+I}2Jyzd|nkxJxOk)LPZ+HMnZN<1CN$ve|(9pV{)zx3DEctmd$ z`W$q54$)czC`k9A53*ED>oml&;n+bjNhwJ0Xg+2(qXPv&@&dT6>f3#k&68b9d z04!P8E_A)9=>2%TUXSSgBlEX|-Y|UMPuA;AiaqE~{d!UC+UTu8Uxe;7-skS4{(olm zCwVP_o&#Op>*CbErF~Q*SNTut^`p@J& z{?h?}*ha4pdO!3DX$LlXqwq_4hh)3hH8zQ3TJ)g1O(LlEf9PG%SA}jF&-C)T_Y>-8$3hoIY?7fGB^_?^pEJ*l4_=n?2c>-<^U#VB&8{@toC z<(!5-3w?@xySy#I@A!}PdhQC=xzJZc&n7>4@XL5tXKG%{pyxv$aj2(i_+!819jId0 z*tGJC9`F22wkPx+=-JRirZ6b^l|9JHuPEOtI+A*@lEV3LC@zMqp5WFT}?{-%EsO}^jYYW zV$UXydHC(GueY}Xy#;!5xgd7D1%-KeNkj>{8z(YOVJa1 zQRt^^{PaMdOQDOOA?Q=kS8V(Ue-i${Zx~NyJhq8r5&lWu6`NdM(OZMw2R*c|zv=xu z_io~O!>U(+UJ3L`=vf;$NaK1+2>Bs*ES4t$SjOALdN2=G4|0Q^m>!RVoWwnf-28dG zQ&8fzDeo-&>GNaj%DV)84Ej83c6#0*b;G-Flk=q2KlEDYsqLZ+dN749@l`_iL+`Zs z(Y1vig+Buq{H*nQi_o*7YwKQ{e&>D{^VCIFJt=oC z^cD2-r5wg4^b+W9+{jS@@k7uh(0G9)UjUpy#~@ggy;DxjfRoBhV*B zUgisj_AUPUkQ?G%$*FM+L+^#2oOj8`B=kY(TDemCgYXyOm*m9s>$)j?@#j9scmzM$ zpTwIBeHOYlkDnplfaqUt)fc@3+yi1a*YIx>_c(m_+t&M? zg}!{H)vt_OWtIFx-cSBLKg{8P&C(wd>kNrAf_#<_dD@HTD|YhwI2k}Le~UE^iN6|p zHuOREt$uX94)}d3df6h&ChsG4x4$j^K2o8J%?2C!66lrCJ3w<2d8T`140>|@g&yK> z3c4ROH?bl5%g~pFxO21rgy)5gJ2zdqlUpm9yPtADozXV?>dx)ET zP9dkA=Oo1^q3xC+AGMFK620*}YyZ{i7y2;tGx?SB^&vN(qA&De=+n?;-`r$>68e;l z{5-Eo)FrsR6$2>PpTO}|$?@s<}ZqGIcKXu^g zyPm1&-ye7~*mw7{cRsf-*dFOS&6YOq5PZhzUjmd)EB<5+n-bWzNbF*UG?ejsJot-RUi7EkxnVQChXED!u>*q6#Yq8pL&28%v=duWFp8fAwMAmBEs*)rW14O3*QsJyPy27 z+V>sxsaf^uSJh{}t@eLQ4aajYrZjn6Yn$YM9DCI_$6`xD(d{LbV<(~azpC!h3-au@ z)#tvYKB*Ng5;sfhFfEVhmZiOBQ=iM&UD54MWbfL%oPFXOt{48nr4?`5)%SJRuBX1{ zdOwEr;YnnAr4PtoCHh0#tmE?#^a%7`=-T_}$a^k%zw*QnGG6$;q;1zz-_CgYTN#<< zU(3kc_tlI$GVh$q$lU*xjLx}?4}C8qv*PbFGVl7kj1PY|vUwmmoD?gEVjm3k+naw)8_Lg}0doLu;tP_9edf^YG{JWm)a`ip#$}Inlnz`?F zwLJ6ARW)<}uhkF#FW2M0=gO@3m700iFV)U&*N1-Jm3d%A&Aj_H^{EfLp8k;QnNC-K zOx^eF8|rhX)#umLf&Wyi-dvm)TH+ih&SBzQBWCLV%yI5D<1`{O;xwW*;@qtVx<`*R zIneiN*(6_DHYIAwres&LNp>wAj!=w*N-O5Pj3tnr(W^; zD56;r{Yv!x+nE=1{osl7UpP zl?RjSLFC4fTS`Mt-bb3ZV`0jUh8HFf7wgbHgdTY9#W&I~htK{+qkQqk4w2X4FexY7kPHcW*ljN1hHO~t? z>Fv8<&oiF>jn8g)F7tW!K!$5?Jiq25fT>&B!wPnSw^`4Zq~5$2aQzW_u3NJoUl;6_ zb%D7oaGj2uO^#3UP=S8l&Y1o=aJ%*5dn_qHL!Xbk(CbDorCeH(%o0f%cRlZR-5K{z zp%TjxZC;yKSey6!mNXgwITwj85QID78}^E z7AUh2W>p^#VXvr+$OEoycE?@r6_+~UBCIu+yE{Ye%&@2`v4LyVw`%^%22`a>b@!|4 zpz0o0ReUEq!BuSF8ufC8v#F{qPMIR^URCW^-9xH6U=@uGY*DkN#guqMeEC$Z+Tf0= z@^ain$Vx1RP62i7jVSV+dmLY`faMi^E>6f;9Sx}-c8Aptt&s4qm&JOuXEsxb2IexA zF*PKmjIw(w!^1OR<8BZ8lkSt^2KhUcDAyu9tLG~NYBlddUL}QejEo%i``sQ!r9pR) zm8UxdVK%dY2EHM{Zs$g+xJgg9%E9z`S}lsbO$rrIn%Ao;)dVU&1};+F1@1C6xm-f? zxU+3&xi&OAxpZkM_O4X3vfLGFj;BG*_mrz;-U_R~%PBxRCx-43Rqdc8iJ-M|WV?M< z`Abw!mb+3d^#rZ-%T;fdJD}#_qtqL)^3E1Rk$SaO$sSILBkpBYZE4}rEH#V6E|)V9@W2~ zs?%x?om4I0z1Dp$_n=Gdw|b2YP)4akFTv!v^R2f2AMj$dcX}Uxl9(YiqP5@46lt%c zYSxmAOAg*~7hgy#uL6*^c$qTD-k_Q_=VEy9@+9MUoOfYC)~u?Od52V`-0TaNX%{Uf z)vV481_|$si>!~wZH=%uqWPK7{7lDr7nWr)3{`mXTP2r6^nO5m5ik9qy+FEw(6k49 zb3J8B9weU23g~(I;?uxAF~cVW<1hY-BG?v zO^eSHaJMVv46DTIDRoDbGGpJCuJvJ$wLhTeFNrGhu0SbYX3#yTCN+$8Igs(9ko(cz zZt8-uMUN{>A#MD5sP2AghUjG(P18ey`xwZDwpkly%c;Uakuu~slwpzT8a8w{E49p# z6(&WKyHx2!u2c1Nx|Dg0~t@YE``hL5Ci z-xJ@LewWR7Q@}V@!uVqG!MN&m=U8Y`mma_37n=i{R01zob4mIK^~f}u=wuO7oOY4w zEp=C^Wu9tPUhEd9Z&J_8mMJZV2}dVNxh|!exca8LXQkD7=44(ZHHMb>#a^MioOmnL zG6IR)yNCwB=+@$1P}L|qrcL7XkRNZ(qnV1nO?5_C0*} z$eik#+Q8z%Gr2+OcX=i@@FA1DnGJl+bvFB>nR#;?l*LRpR|!sK=Fk8)WV741A;?&} z!M(geJ+*;qNOD2BFIO+XEO#MkSjoLf@+!Oqcnhj`HHAmt>UMQz_IQ=E;Pxwp zlnh^7bh&3bpsZZJaGh!YO6`k{hB6A~HuG_)as2k2S1`X>89VP}Jcf(P z@&_~cV)25L8OpG$OV1AWy{E45jNPCtUm@?hmSe`cQ5S2TPDD7qwA3@=W}!dkRyt-> zcBfs;9D2DfDe>^cLZx@i#W$|1?Do6zwU{I$UHpmQ&Zbanb7M%kg#Fgy!b8Asz1_UM zq;z{p$#1QHPVrm@&Sl_S2F_*RTn5f%;9LgIW#C)}&Sl_S2F_*RTn5f%;J-HmzOU-n z82koy8`y5(f3LT5*3M<%Tn5f%;9Lg&r)41cntqMijN5;&JRE!Wt@aM9+~3^D{RNwC zB*lKfus@)EIMznNAe~I%&l&bpwq{cU#!rxe|*Hda9Q}zBQ9qTKd|49+Q`B;}fuGjO5fvX0t8R%ru)Ki|+ z^;7j4c=qQ1<@VoQH|OmA*J|rr{?6s^&1B$QdwDb2S}%Jpf9rGdW+>>T@HHdORQ5&d%X_!dJTL2m-O|I`_FWoddhx1 zWZD}&i#^|;>-wGA%iee{@M(K{XN!C8EPmFEczXwR`=@?OKWh$tO8V{NHuK;!@|U`v z96gI(z(KF-guOqfJe{MT%fPt|{Ljz8a;E-VXXk5r|L-=i*T8-Q2Mlak(dD8BmR9pD zC|jp-Y-Z%&_F1n-yff6W%{ey ztRI`@4H?H~Io{>q&%ZIf@--OtOn=oETKz?gW7FU7I`|tg{IwYJ3kC+WbbAv9W?iHo zR~eXEpMwV7^f&C_&!>I)4fSud52yCicen1(EMKa>_Iq@`>F-}0{Pm{kufwqCMwV{eS1;PORxU&40}%g-1l1jl{@%rNz^b>6^=_-b zF$aIa^V7@cl3~xuU*!WhFsV{yNk2H*VN-@>lkt)!&kX zzvVRj`3-wc{*;K--xYV+x0l*Y>E+XH*mLrib=2zb4hMfT>H2Hd?K$}iwOIYNIr#H$ zPOp3ohCL^L?pCY6KXdRmlBU0zaqgx0l{D{pA_iKfY*0OTpRZ_vN$rn|Q)nz9t8MEou6jH0+t> zYyY@z->koGycHgTLTK>E*NEu;=72?d)`sukbDDm9N&Y=j89?vsQo24*mwy^fzqSbMiO#oYmi-IQYxD zIKA?X8}^+1WcBxygFpWz>6Ndv*p`78Uh)nAi?zrxGYE1%!6XZl8bsp)1aGu@KpzYS#M3Rd|ie;vwW%k zMqjp;FY};%d+AKm-<3=`S^(6)FCP9Q@6s=`VN|eon{+`K$iA)!!!^{3&nK%U5g2oAuXV9GmsmVjM3UxUT-bY4!I52Y)Sw zzq8h#Vb7_2Gc#6y7u;(r59Euc$3*rQb190M)LnWe$N-YJcrA6eBND)F{ zR79EQna{N!u?i9u2mGYudo%BSGxKKOI^K!(d}+|%-6sy-FXM-KeG@Vt_k-?lPR4)! z=3swYmk0gjhxmI{{N3*QofCV*@;Ub1pueRd{`SS+y)u8;`bsi>>dL|EJ9~A|-{ug1 zrzSa{8!~^GzbzRbyMD00Cx009cYcV!ZSi-zd@hK+VfozE{M~bMaKGSlKYJG6p^$&o z?IVeYj^yk%I;N-Fkp0dSGx6WpE&6UX)##+8ZsXIs4dVfk zjrTb-&@al#MSQ9do#(#E6X~eeZiBx=B4gf-o4g+6`45pN#NJJj5!b%RA9UEzZz5}N zqr}UdgYC~b;t`JWpmy14AB^_FXdjI3gVF22fBQPHBkvRM++Y5Y`C$7H zKapG(L?*6^ysPPtKEm^#6~z44MSf4yUl944roYQ%JNFC1jxF+>raviipy?x#GflrP z@)=G4_7MH1=ym%a4$*%h`mY2L|JNd4)ASD?=Jo3K^P)d02s`sb^cct4wHHhBgjiGjU2YPIcCwHvOjCUNTq1ByEtsYS~uB%tcwYoF2*NT|T(gT8iVP zW|+n+i62^i+{$Nh-1H;2(atm9E0^oVpcH!bz$tt6nUWI}D}m>`1Feg*>%q?xqhYW+6C90sX9T$EqjH6ACT$Z@)j0OJjH8C zSKHIZvHAHUX71S2&rh2rYt~vbi*})G7mALVTTa3xY=)GVX~VG6D9w`0^$e>WXQ8#! zUa`EDMl*P{5g1)5a?{ALg7tQ~-eSxW9+3#ib5Z@HNnRu-<&?<5Y~%r&eq zs?`&>71pAF=0hSwzF!O1{BSv|QAo{Dg2FXv1Yw)3G}?`<<|c`|Zdi2^&{wvVb8^!S z)NM6LIFzf%-zPBZ?`_4e!=l%1P>~8VvZT(*RL00S|Q# z$f_Rl3)L`se5vc8zH?Dz%m*J4v9 zd}^hu(huFZz4%d=0lq8+BE%0rz$b{WYCe!r_W{n)xN68T;%6;=&k1#uZSYZt0-_ED z|KMZ&FA4u~7?ipe>RYITDZV-jTIc(uQ}1}?RrN1*faCYkU|&OB4;ax{KOg5$0e^oE zD`O+z!DL(bm}Sb}U*LsV%siOCs_{Eg4+Wm-75tcwJi_X08vk_6Gk}IlP+vp-pn8)! zYW;}+^m*Y6zK8;*5On_=r0>6fuYb!kfbR+qpz}Ya0add_9Tauion4-(=Ns_@za*}@ z#NeZj+xeUPbHr8a2Y+l&?R45_d+h&8xhwX5!7mh-sH65C_;~)=nPfZTl312*?O&|x zd*b%{M;*8`C2^o&EDqrx_@l-* value(); +} diff --git a/sandhook-annotation/src/main/java/com/swift/sandhook/annotation/HookMethod.java b/sandhook-annotation/src/main/java/com/swift/sandhook/annotation/HookMethod.java new file mode 100644 index 00000000..1404649f --- /dev/null +++ b/sandhook-annotation/src/main/java/com/swift/sandhook/annotation/HookMethod.java @@ -0,0 +1,12 @@ +package com.swift.sandhook.annotation; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Target({ElementType.METHOD}) +@Retention(RetentionPolicy.RUNTIME) +public @interface HookMethod { + String value() default ""; +} diff --git a/sandhook-annotation/src/main/java/com/swift/sandhook/annotation/HookMethodBackup.java b/sandhook-annotation/src/main/java/com/swift/sandhook/annotation/HookMethodBackup.java new file mode 100644 index 00000000..4ae5769a --- /dev/null +++ b/sandhook-annotation/src/main/java/com/swift/sandhook/annotation/HookMethodBackup.java @@ -0,0 +1,12 @@ +package com.swift.sandhook.annotation; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Target({ElementType.METHOD,ElementType.FIELD}) +@Retention(RetentionPolicy.RUNTIME) +public @interface HookMethodBackup { + String value() default ""; +} diff --git a/sandhook-annotation/src/main/java/com/swift/sandhook/annotation/HookMode.java b/sandhook-annotation/src/main/java/com/swift/sandhook/annotation/HookMode.java new file mode 100644 index 00000000..503ee21a --- /dev/null +++ b/sandhook-annotation/src/main/java/com/swift/sandhook/annotation/HookMode.java @@ -0,0 +1,17 @@ +package com.swift.sandhook.annotation; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Target({ElementType.METHOD}) +@Retention(RetentionPolicy.RUNTIME) +public @interface HookMode { + + int AUTO = 0; + int INLINE = 1; + int REPLACE = 2; + + int value() default AUTO; +} diff --git a/sandhook-annotation/src/main/java/com/swift/sandhook/annotation/HookReflectClass.java b/sandhook-annotation/src/main/java/com/swift/sandhook/annotation/HookReflectClass.java new file mode 100644 index 00000000..d6cf8933 --- /dev/null +++ b/sandhook-annotation/src/main/java/com/swift/sandhook/annotation/HookReflectClass.java @@ -0,0 +1,12 @@ +package com.swift.sandhook.annotation; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Target({ElementType.TYPE}) +@Retention(RetentionPolicy.RUNTIME) +public @interface HookReflectClass { + String value(); +} diff --git a/sandhook-annotation/src/main/java/com/swift/sandhook/annotation/MethodParams.java b/sandhook-annotation/src/main/java/com/swift/sandhook/annotation/MethodParams.java new file mode 100644 index 00000000..351a441a --- /dev/null +++ b/sandhook-annotation/src/main/java/com/swift/sandhook/annotation/MethodParams.java @@ -0,0 +1,12 @@ +package com.swift.sandhook.annotation; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Target({ElementType.METHOD,ElementType.FIELD}) +@Retention(RetentionPolicy.RUNTIME) +public @interface MethodParams { + Class[] value(); +} \ No newline at end of file diff --git a/sandhook-annotation/src/main/java/com/swift/sandhook/annotation/MethodReflectParams.java b/sandhook-annotation/src/main/java/com/swift/sandhook/annotation/MethodReflectParams.java new file mode 100644 index 00000000..c40b039f --- /dev/null +++ b/sandhook-annotation/src/main/java/com/swift/sandhook/annotation/MethodReflectParams.java @@ -0,0 +1,22 @@ +package com.swift.sandhook.annotation; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Target({ElementType.METHOD,ElementType.FIELD}) +@Retention(RetentionPolicy.RUNTIME) +public @interface MethodReflectParams { + + String BOOLEAN = "boolean"; + String BYTE = "byte"; + String CHAR = "char"; + String DOUBLE = "double"; + String FLOAT = "float"; + String INT = "int"; + String LONG = "long"; + String SHORT = "short"; + + String[] value(); +} \ No newline at end of file diff --git a/sandhook-annotation/src/main/java/com/swift/sandhook/annotation/Param.java b/sandhook-annotation/src/main/java/com/swift/sandhook/annotation/Param.java new file mode 100644 index 00000000..de4eb55e --- /dev/null +++ b/sandhook-annotation/src/main/java/com/swift/sandhook/annotation/Param.java @@ -0,0 +1,12 @@ +package com.swift.sandhook.annotation; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Target({ElementType.PARAMETER}) +@Retention(RetentionPolicy.RUNTIME) +public @interface Param { + String value() default ""; +} diff --git a/sandhook-annotation/src/main/java/com/swift/sandhook/annotation/SkipParamCheck.java b/sandhook-annotation/src/main/java/com/swift/sandhook/annotation/SkipParamCheck.java new file mode 100644 index 00000000..7013d110 --- /dev/null +++ b/sandhook-annotation/src/main/java/com/swift/sandhook/annotation/SkipParamCheck.java @@ -0,0 +1,11 @@ +package com.swift.sandhook.annotation; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Target({ElementType.METHOD, ElementType.FIELD}) +@Retention(RetentionPolicy.RUNTIME) +public @interface SkipParamCheck { +} diff --git a/sandhook-annotation/src/main/java/com/swift/sandhook/annotation/ThisObject.java b/sandhook-annotation/src/main/java/com/swift/sandhook/annotation/ThisObject.java new file mode 100644 index 00000000..5550d898 --- /dev/null +++ b/sandhook-annotation/src/main/java/com/swift/sandhook/annotation/ThisObject.java @@ -0,0 +1,11 @@ +package com.swift.sandhook.annotation; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Target({ElementType.PARAMETER}) +@Retention(RetentionPolicy.RUNTIME) +public @interface ThisObject { +} diff --git a/sandhook-hooklib/.gitignore b/sandhook-hooklib/.gitignore new file mode 100644 index 00000000..9ff2a377 --- /dev/null +++ b/sandhook-hooklib/.gitignore @@ -0,0 +1,2 @@ +/build +/.cxx diff --git a/sandhook-hooklib/build.gradle b/sandhook-hooklib/build.gradle new file mode 100644 index 00000000..588010a4 --- /dev/null +++ b/sandhook-hooklib/build.gradle @@ -0,0 +1,66 @@ +apply plugin: 'com.android.library' + +android { + compileSdkVersion targetSdkVersion + + defaultConfig { + minSdkVersion minSdkVersion + targetSdkVersion targetSdkVersion + versionCode 1 + versionName "1.0" + + externalNativeBuild { + cmake { + //arguments "-DCMAKE_BUILD_TYPE=Release" + } + } + ndk { + abiFilters 'armeabi-v7a', 'arm64-v8a' + } + } + + externalNativeBuild { + cmake { + path "src/main/cpp/CMakeLists.txt" + } + } + + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + } + } + +} + +dependencies { + implementation fileTree(include: ['*.jar'], dir: 'libs') + api project(':sandhook-annotation') +} + +afterEvaluate { + android.libraryVariants.all { variant -> + def variantNameCapped = variant.name.capitalize() + def variantNameLowered = variant.name.toLowerCase() + + task("copySandHook${variantNameCapped}LibraryToMagiskTemplate") { + def libPathRelease = "${buildDir}/intermediates/cmake/${variantNameLowered}/obj" + doLast { + project.logger.lifecycle(libPathRelease) + copy { + include "libsandhook.edxp.so" + from "${libPathRelease}/armeabi-v7a" + into "${zipPathMagiskReleasePath}/system/lib" + } + copy { + project.logger.lifecycle(zipPathMagiskReleasePath) + include "libsandhook.edxp.so" + from "${libPathRelease}/arm64-v8a" + into "${zipPathMagiskReleasePath}/system/lib64" + } + } + } + + } +} diff --git a/sandhook-hooklib/proguard-rules.pro b/sandhook-hooklib/proguard-rules.pro new file mode 100644 index 00000000..27d58c26 --- /dev/null +++ b/sandhook-hooklib/proguard-rules.pro @@ -0,0 +1,23 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile + +-keep class com.swift.sandhook.** { *; } diff --git a/sandhook-hooklib/src/main/AndroidManifest.xml b/sandhook-hooklib/src/main/AndroidManifest.xml new file mode 100644 index 00000000..5f32bcca --- /dev/null +++ b/sandhook-hooklib/src/main/AndroidManifest.xml @@ -0,0 +1,2 @@ + diff --git a/sandhook-hooklib/src/main/cpp/CMakeLists.txt b/sandhook-hooklib/src/main/cpp/CMakeLists.txt new file mode 100644 index 00000000..7e62adef --- /dev/null +++ b/sandhook-hooklib/src/main/cpp/CMakeLists.txt @@ -0,0 +1,33 @@ +cmake_minimum_required(VERSION 3.4.1) +project(sandhook.edxp) + +ENABLE_LANGUAGE(ASM) + +add_definitions(-std=c++11) + +set(${PROJECT_NAME}_SOURCES + sandhook.cpp + trampoline/trampoline.cpp + trampoline/trampoline_manager.cpp + utils/dlfcn_nougat.cpp + utils/hide_api.cpp + utils/utils.cpp + utils/offset.cpp + utils/elf_util.cpp + casts/cast_art_method.cpp + casts/cast_compiler_options.cpp + art/art_method.cpp + art/art_compiler_options.cpp + art/art_classlinker.cpp + trampoline/arch/arm32.S + trampoline/arch/arm64.S + inst/insts_arm32.cpp + inst/insts_arm64.cpp + nativehook/native_hook.cpp + ) + +add_library(${PROJECT_NAME} + SHARED + ${${PROJECT_NAME}_SOURCES}) + +target_link_libraries(${PROJECT_NAME} log) \ No newline at end of file diff --git a/sandhook-hooklib/src/main/cpp/art/art_classlinker.cpp b/sandhook-hooklib/src/main/cpp/art/art_classlinker.cpp new file mode 100644 index 00000000..d54f50f2 --- /dev/null +++ b/sandhook-hooklib/src/main/cpp/art/art_classlinker.cpp @@ -0,0 +1,9 @@ +// +// Created by 双草酸酯 on 11/27/20. +// +#include "../includes/art_classlinker.h" + +using namespace art; +void ClassLinker::MakeInitializedClassesVisiblyInitialized(void* self, bool wait) { + +} \ No newline at end of file diff --git a/sandhook-hooklib/src/main/cpp/art/art_compiler_options.cpp b/sandhook-hooklib/src/main/cpp/art/art_compiler_options.cpp new file mode 100644 index 00000000..eaab2044 --- /dev/null +++ b/sandhook-hooklib/src/main/cpp/art/art_compiler_options.cpp @@ -0,0 +1,25 @@ +// +// Created by 甘尧 on 2019/2/24. +// + +#include "../includes/art_compiler_options.h" +#include "../includes/cast_compiler_options.h" +#include "../includes/hide_api.h" + +using namespace SandHook; +using namespace art; + +extern int SDK_INT; + +size_t CompilerOptions::getInlineMaxCodeUnits() { + if (SDK_INT < ANDROID_N) + return 0; + return CastCompilerOptions::inlineMaxCodeUnits->get(this); +} + +bool CompilerOptions::setInlineMaxCodeUnits(size_t units) { + if (SDK_INT < ANDROID_N) + return false; + CastCompilerOptions::inlineMaxCodeUnits->set(this, units); + return true; +} diff --git a/sandhook-hooklib/src/main/cpp/art/art_method.cpp b/sandhook-hooklib/src/main/cpp/art/art_method.cpp new file mode 100644 index 00000000..368b5faf --- /dev/null +++ b/sandhook-hooklib/src/main/cpp/art/art_method.cpp @@ -0,0 +1,197 @@ +// +// Created by swift on 2019/2/3. +// +#include +#include "../includes/art_method.h" +#include "../includes/cast_art_method.h" +#include "../includes/hide_api.h" +#include "../includes/utils.h" + +extern int SDK_INT; +extern bool DEBUG; + +using namespace art::mirror; +using namespace SandHook; + +// Non-intrinsics: Caches whether we can use fast-path in the interpreter invokes. +// Intrinsics: These bits are part of the intrinsic ordinal. +static constexpr uint32_t kAccFastInterpreterToInterpreterInvoke = 0x40000000; // method. + +void ArtMethod::tryDisableInline() { + if (SDK_INT < ANDROID_O) + return; + uint32_t accessFlag = getAccessFlags(); + accessFlag &= ~ 0x08000000; + setAccessFlags(accessFlag); +} + +void ArtMethod::disableInterpreterForO() { + if (SDK_INT >= ANDROID_O && SDK_INT < ANDROID_R && DEBUG) { + setNative(); + } +} + +void ArtMethod::disableFastInterpreterForQ() { + if (SDK_INT < ANDROID_Q) + return; + uint32_t accessFlag = getAccessFlags(); + accessFlag &= ~kAccFastInterpreterToInterpreterInvoke; + setAccessFlags(accessFlag); +} + +void ArtMethod::disableCompilable() { + if (SDK_INT < ANDROID_N) + return; + uint32_t accessFlag = getAccessFlags(); + if (SDK_INT >= ANDROID_O2) { + accessFlag |= 0x02000000; + accessFlag |= 0x00800000; + } else { + accessFlag |= 0x01000000; + } + setAccessFlags(accessFlag); +} + +bool ArtMethod::isAbstract() { + uint32_t accessFlags = getAccessFlags(); + return ((accessFlags & 0x0400) != 0); +} + +bool ArtMethod::isNative() { + uint32_t accessFlags = getAccessFlags(); + return ((accessFlags & 0x0100) != 0); +} + +bool ArtMethod::isStatic() { + uint32_t accessFlags = getAccessFlags(); + return ((accessFlags & 0x0008) != 0); +} + +bool ArtMethod::isCompiled() { + return getQuickCodeEntry() != CastArtMethod::quickToInterpreterBridge && + getQuickCodeEntry() != CastArtMethod::genericJniStub; +} + +bool ArtMethod::isThumbCode() { + #if defined(__arm__) + return (reinterpret_cast(getQuickCodeEntry()) & 0x1) == 0x1; + #else + return false; + #endif +} + +void ArtMethod::setAccessFlags(uint32_t flags) { + CastArtMethod::accessFlag->set(this, flags); +} + +void ArtMethod::setPrivate() { + uint32_t accessFlag = getAccessFlags(); + accessFlag &= ~ 0x0001; + accessFlag &= ~ 0x0004; + accessFlag |= 0x0002; + setAccessFlags(accessFlag); +} + +void ArtMethod::setStatic() { + uint32_t accessFlag = getAccessFlags(); + accessFlag |= 0x0008; + setAccessFlags(accessFlag); +}; + + +void ArtMethod::setNative() { + uint32_t accessFlag = getAccessFlags(); + accessFlag |= 0x0100; + setAccessFlags(accessFlag); +} + +uint32_t ArtMethod::getAccessFlags() { + return CastArtMethod::accessFlag->get(this); +} + +uint32_t ArtMethod::getDexMethodIndex() { + return CastArtMethod::dexMethodIndex->get(this); +} + +void* ArtMethod::getQuickCodeEntry() { + return CastArtMethod::entryPointQuickCompiled->get(this); +} + +void* ArtMethod::getInterpreterCodeEntry() { + return CastArtMethod::entryPointFromInterpreter->get(this); +} + +GCRoot ArtMethod::getDeclaringClass() { + return CastArtMethod::declaringClass->get(this); +} + +uint16_t ArtMethod::getHotnessCount() { + return CastArtMethod::hotnessCount->get(this); +} + +void ArtMethod::setQuickCodeEntry(void *entry) { + CastArtMethod::entryPointQuickCompiled->set(this, entry); +} + +void ArtMethod::setJniCodeEntry(void *entry) { + CastArtMethod::entryPointFromJNI->set(this, entry); +} + +void ArtMethod::setInterpreterCodeEntry(void *entry) { + CastArtMethod::entryPointFromInterpreter->set(this, entry); +} + +void ArtMethod::setDexCacheResolveList(void *list) { + CastArtMethod::dexCacheResolvedMethods->set(this, list); +} + +void ArtMethod::setDexCacheResolveItem(uint32_t index, void* item) { + CastArtMethod::dexCacheResolvedMethods->setElement(this, index, item); +} + +void ArtMethod::setDeclaringClass(GCRoot classPtr) { + CastArtMethod::declaringClass->set(this, classPtr); +} + +void ArtMethod::setHotnessCount(uint16_t count) { + CastArtMethod::hotnessCount->set(this, count); +} + +bool ArtMethod::compile(JNIEnv* env) { + if (isCompiled()) + return true; + //some unknown error when trigger jit for jni method manually + if (isNative()) + return false; + Size threadId = getAddressFromJavaByCallMethod(env, "com/swift/sandhook/SandHook", "getThreadId"); + if (threadId == 0) + return false; + return compileMethod(this, reinterpret_cast(threadId)) && isCompiled(); +} + +bool ArtMethod::deCompile() { + if (!isCompiled()) + return true; + if ((isNative() && CastArtMethod::canGetJniBridge) || (!isNative() && CastArtMethod::canGetInterpreterBridge)) { + setQuickCodeEntry(isNative() ? CastArtMethod::genericJniStub : CastArtMethod::quickToInterpreterBridge); + if (SDK_INT < ANDROID_N) { + //TODO SetEntryPointFromInterpreterCode + } + flushCache(); + return true; + } else { + return false; + } +} + +void ArtMethod::flushCache() { +// flushCacheExt(reinterpret_cast(this), size()); +} + +void ArtMethod::backup(ArtMethod *backup) { + memcpy(backup, this, size()); +} + +Size ArtMethod::size() { + return CastArtMethod::size; +} diff --git a/sandhook-hooklib/src/main/cpp/casts/cast_art_method.cpp b/sandhook-hooklib/src/main/cpp/casts/cast_art_method.cpp new file mode 100644 index 00000000..b67d70ed --- /dev/null +++ b/sandhook-hooklib/src/main/cpp/casts/cast_art_method.cpp @@ -0,0 +1,290 @@ +// +// Created by swift on 2019/2/3. +// + +#include "../includes/cast_art_method.h" +#include "../includes/utils.h" +#include "../includes/never_call.h" +#include "../includes/log.h" + +extern int SDK_INT; + +namespace SandHook { + + class CastDexCacheResolvedMethods : public ArrayMember { + protected: + Size calOffset(JNIEnv *jniEnv, art::mirror::ArtMethod *p) override { + if (SDK_INT >= ANDROID_P) + return getParentSize() + 1; + int offset = 0; + Size addr = getAddressFromJava(jniEnv, "com/swift/sandhook/SandHookMethodResolver", + "resolvedMethodsAddress"); + if (addr != 0) { + offset = findOffset(p, getParentSize(), 2, addr); + if (offset >= 0) { + return static_cast(offset); + } + } + if (SDK_INT == ANDROID_M) { + return 4; + } else if (SDK_INT >= ANDROID_L && SDK_INT <= ANDROID_L2) { + return 4 * 3; + } + return getParentSize() + 1; + } + + public: + Size arrayStart(mirror::ArtMethod *parent) override { + void *p = IMember::get(parent); + if (SDK_INT <= ANDROID_M) { + return reinterpret_cast(p) + 4 * 3; + } else { + return reinterpret_cast(p); + } + } + + }; + + class CastEntryPointFormInterpreter : public IMember { + protected: + Size calOffset(JNIEnv *jniEnv, art::mirror::ArtMethod *p) override { + if (SDK_INT == ANDROID_L2) { + return RoundUpToPtrSize(4 * 7 + 4 * 2); + } else if (SDK_INT == ANDROID_M) { + return getParentSize() - 3 * BYTE_POINT; + } else if (SDK_INT <= ANDROID_L) { + Size addr = getAddressFromJava(jniEnv, "com/swift/sandhook/SandHookMethodResolver", + "entryPointFromInterpreter"); + int offset = 0; + if (addr != 0) { + offset = findOffset(p, getParentSize(), 2, addr); + if (offset >= 0) { + return static_cast(offset); + } + } + return getParentSize() - 4 * 8 - 4 * 4; + } + else + return getParentSize() + 1; + } + }; + + class CastEntryPointQuickCompiled : public IMember { + protected: + Size calOffset(JNIEnv *jniEnv, art::mirror::ArtMethod *p) override { + if (SDK_INT >= ANDROID_M) { + return getParentSize() - BYTE_POINT; + } else if (SDK_INT <= ANDROID_L) { + Size addr = getAddressFromJava(jniEnv, "com/swift/sandhook/SandHookMethodResolver", + "entryPointFromCompiledCode"); + int offset = 0; + if (addr != 0) { + offset = findOffset(p, getParentSize(), 2, addr); + if (offset >= 0) { + return static_cast(offset); + } + } + return getParentSize() - 4 - 2 * BYTE_POINT; + } else { + return CastArtMethod::entryPointFromInterpreter->getOffset() + 2 * BYTE_POINT; + } + } + }; + + class CastEntryPointFromJni : public IMember { + protected: + Size calOffset(JNIEnv *jniEnv, art::mirror::ArtMethod *p) override { + Size jniAddr = reinterpret_cast(Java_com_swift_sandhook_ClassNeverCall_neverCallNative); + int offset = findOffset(p, getParentSize(), 2, jniAddr); + if (offset >= 0) { + return static_cast(offset); + } + if (SDK_INT >= ANDROID_L2 && SDK_INT <= ANDROID_N) { + return getParentSize() - 2 * BYTE_POINT; + } else { + return getParentSize() - 8 * 2 - 4 * 4; + } + } + }; + + + class CastAccessFlag : public IMember { + protected: + Size calOffset(JNIEnv *jniEnv, art::mirror::ArtMethod *p) override { + uint32_t accessFlag = getIntFromJava(jniEnv, "com/swift/sandhook/SandHook", + "testAccessFlag"); + if (accessFlag == 0) { + accessFlag = 524313; + //kAccPublicApi + if (SDK_INT >= ANDROID_Q) { + accessFlag |= 0x10000000; + } + } + int offset = findOffset(p, getParentSize(), 2, accessFlag); + if (offset < 0) { + if (SDK_INT >= ANDROID_N) { + return 4; + } else if (SDK_INT == ANDROID_L2) { + return 20; + } else if (SDK_INT == ANDROID_L) { + return 56; + } else { + return getParentSize() + 1; + } + } else { + return static_cast(offset); + } + } + }; + + class CastShadowClass : public IMember { + protected: + Size calOffset(JNIEnv *jniEnv, mirror::ArtMethod *p) override { + if (SDK_INT < ANDROID_N) + return getParentSize() + 1; + return 0; + } + }; + + + class CastDexMethodIndex : public IMember { + protected: + Size calOffset(JNIEnv *jniEnv, art::mirror::ArtMethod *p) override { + if (SDK_INT >= ANDROID_P) { + return CastArtMethod::accessFlag->getOffset() + + CastArtMethod::accessFlag->size() + + sizeof(uint32_t); + } + int offset = 0; + jint index = getIntFromJava(jniEnv, "com/swift/sandhook/SandHookMethodResolver", + "dexMethodIndex"); + if (index != 0) { + offset = findOffset(p, getParentSize(), 2, static_cast(index)); + if (offset >= 0) { + return static_cast(offset); + } + } + return getParentSize() + 1; + } + }; + + class CastHotnessCount : public IMember { + protected: + Size calOffset(JNIEnv *jniEnv, mirror::ArtMethod *p) override { + if (SDK_INT <= ANDROID_N) + return getParentSize() + 1; + return CastArtMethod::dexMethodIndex->getOffset() + + CastArtMethod::dexMethodIndex->size() + + sizeof(uint16_t); + } + }; + + + void CastArtMethod::init(JNIEnv *env) { + //init ArtMethodSize + jclass sizeTestClass = env->FindClass("com/swift/sandhook/ArtMethodSizeTest"); + jobject artMethod1 = getMethodObject(env, "com.swift.sandhook.ArtMethodSizeTest", "method1"); + jobject artMethod2 = getMethodObject(env, "com.swift.sandhook.ArtMethodSizeTest", "method2"); + + env->CallStaticVoidMethod(sizeTestClass, env->FromReflectedMethod(artMethod1)); + + std::atomic_thread_fence(std::memory_order_acquire); + + art::mirror::ArtMethod *m1 = getArtMethod(env, artMethod1); + art::mirror::ArtMethod *m2 = getArtMethod(env, artMethod2); + + size = m2 - m1; + + //init Members + + accessFlag = new CastAccessFlag(); + accessFlag->init(env, m1, size); + + entryPointFromInterpreter = new CastEntryPointFormInterpreter(); + entryPointFromInterpreter->init(env, m1, size); + + entryPointQuickCompiled = new CastEntryPointQuickCompiled(); + entryPointQuickCompiled->init(env, m1, size); + + dexMethodIndex = new CastDexMethodIndex(); + dexMethodIndex->init(env, m1, size); + + dexCacheResolvedMethods = new CastDexCacheResolvedMethods(); + dexCacheResolvedMethods->init(env, m1, size); + + declaringClass = new CastShadowClass(); + declaringClass->init(env, m1, size); + + + hotnessCount = new CastHotnessCount(); + hotnessCount->init(env, m1, size); + + auto neverCallTestClass = "com.swift.sandhook.ClassNeverCall"; + + art::mirror::ArtMethod *neverCall = getArtMethod(env, getMethodObject(env, + neverCallTestClass, + "neverCall")); + art::mirror::ArtMethod *neverCall2 = getArtMethod(env, getMethodObject(env, + neverCallTestClass, + "neverCall2")); + + bool beAot = entryPointQuickCompiled->get(neverCall) != entryPointQuickCompiled->get(neverCall2); + if (beAot) { + quickToInterpreterBridge = getInterpreterBridge(false); + if (quickToInterpreterBridge == nullptr) { + quickToInterpreterBridge = entryPointQuickCompiled->get(neverCall); + canGetInterpreterBridge = false; + } + } else { + quickToInterpreterBridge = entryPointQuickCompiled->get(neverCall); + } + + + art::mirror::ArtMethod *neverCallNative = getArtMethod(env, getMethodObject(env, + neverCallTestClass, + "neverCallNative")); + art::mirror::ArtMethod *neverCallNative2 = getArtMethod(env, getMethodObject(env, + neverCallTestClass, + "neverCallNative2")); + + beAot = entryPointQuickCompiled->get(neverCallNative) != entryPointQuickCompiled->get(neverCallNative2); + if (beAot) { + genericJniStub = getInterpreterBridge(true); + if (genericJniStub == nullptr) { + genericJniStub = entryPointQuickCompiled->get(neverCallNative); + canGetJniBridge = false; + } + } else { + genericJniStub = entryPointQuickCompiled->get(neverCallNative); + } + + entryPointFromJNI = new CastEntryPointFromJni(); + entryPointFromJNI->init(env, neverCallNative, size); + + art::mirror::ArtMethod *neverCallStatic = getArtMethod(env, getMethodObject(env, + neverCallTestClass, + "neverCallStatic")); + staticResolveStub = entryPointQuickCompiled->get(neverCallStatic); + + } + + void CastArtMethod::copy(art::mirror::ArtMethod *from, art::mirror::ArtMethod *to) { + memcpy(to, from, size); + } + + Size CastArtMethod::size = 0; + IMember *CastArtMethod::entryPointQuickCompiled = nullptr; + IMember *CastArtMethod::entryPointFromInterpreter = nullptr; + IMember *CastArtMethod::entryPointFromJNI = nullptr; + ArrayMember *CastArtMethod::dexCacheResolvedMethods = nullptr; + IMember *CastArtMethod::dexMethodIndex = nullptr; + IMember *CastArtMethod::accessFlag = nullptr; + IMember *CastArtMethod::declaringClass = nullptr; + IMember *CastArtMethod::hotnessCount = nullptr; + void *CastArtMethod::quickToInterpreterBridge = nullptr; + void *CastArtMethod::genericJniStub = nullptr; + void *CastArtMethod::staticResolveStub = nullptr; + bool CastArtMethod::canGetInterpreterBridge = true; + bool CastArtMethod::canGetJniBridge = true; + +} \ No newline at end of file diff --git a/sandhook-hooklib/src/main/cpp/casts/cast_compiler_options.cpp b/sandhook-hooklib/src/main/cpp/casts/cast_compiler_options.cpp new file mode 100644 index 00000000..b5bcb7e2 --- /dev/null +++ b/sandhook-hooklib/src/main/cpp/casts/cast_compiler_options.cpp @@ -0,0 +1,32 @@ +// +// Created by 甘尧 on 2019/2/24. +// + +#include "../includes/cast_compiler_options.h" +#include "../includes/hide_api.h" + +extern int SDK_INT; + +namespace SandHook { + + + class CastInlineMaxCodeUnits : public IMember { + protected: + Size calOffset(JNIEnv *jniEnv, art::CompilerOptions *p) override { + if (SDK_INT < ANDROID_N) + return getParentSize() + 1; + if (SDK_INT >= ANDROID_O) { + return BYTE_POINT + 5 * sizeof(size_t); + } else { + return BYTE_POINT + 6 * sizeof(size_t); + } + } + }; + + void CastCompilerOptions::init(JNIEnv *jniEnv) { + inlineMaxCodeUnits->init(jniEnv, nullptr, sizeof(art::CompilerOptions)); + } + + IMember* CastCompilerOptions::inlineMaxCodeUnits = new CastInlineMaxCodeUnits(); + +} diff --git a/sandhook-hooklib/src/main/cpp/includes/arch.h b/sandhook-hooklib/src/main/cpp/includes/arch.h new file mode 100644 index 00000000..d3843971 --- /dev/null +++ b/sandhook-hooklib/src/main/cpp/includes/arch.h @@ -0,0 +1,48 @@ +// +// Created by 甘尧 on 2019/1/12. +// + +#ifndef SANDHOOK_ARCH_H +#define SANDHOOK_ARCH_H + +#define BYTE_POINT sizeof(void*) + +typedef size_t Size; + +//32bit +#if defined(__i386__) || defined(__arm__) +//64bit +#elif defined(__aarch64__) || defined(__x86_64__) +#else +#endif + +#if defined(__arm__) +static void clearCacheArm32(char* begin, char *end) +{ + const int syscall = 0xf0002; + __asm __volatile ( + "mov r0, %0\n" + "mov r1, %1\n" + "mov r3, %2\n" + "mov r2, #0x0\n" + "svc 0x00000000\n" + : + : "r" (begin), "r" (end), "r" (syscall) + : "r0", "r1", "r3" + ); +} +#endif + +#define ANDROID_K 19 +#define ANDROID_L 21 +#define ANDROID_L2 22 +#define ANDROID_M 23 +#define ANDROID_N 24 +#define ANDROID_N2 25 +#define ANDROID_O 26 +#define ANDROID_O2 27 +#define ANDROID_P 28 +#define ANDROID_Q 29 +#define ANDROID_R 30 + +#endif //SANDHOOK_ARCH_H \ No newline at end of file diff --git a/sandhook-hooklib/src/main/cpp/includes/arch_base.h b/sandhook-hooklib/src/main/cpp/includes/arch_base.h new file mode 100644 index 00000000..34c05938 --- /dev/null +++ b/sandhook-hooklib/src/main/cpp/includes/arch_base.h @@ -0,0 +1,34 @@ +// +// Created by SwiftGan on 2019/1/17. +// + +#ifndef SANDHOOK_BASE_H +#define SANDHOOK_BASE_H + +#define FUNCTION_START(x) \ +.text; \ +.align 4; \ +.global x; \ +x: \ + +#define FUNCTION_START_T(x) \ +.syntax unified; \ +.text; \ +.align 4; \ +.thumb; \ +.thumb_func; \ +.global x; \ +x: \ + +#define FUNCTION_END(x) .size x, .-x + +#define REPLACEMENT_HOOK_TRAMPOLINE replacement_hook_trampoline +#define INLINE_HOOK_TRAMPOLINE inline_hook_trampoline +#define DIRECT_JUMP_TRAMPOLINE direct_jump_trampoline +#define CALL_ORIGIN_TRAMPOLINE call_origin_trampoline + +#define INLINE_HOOK_TRAMPOLINE_T inline_hook_trampoline_t +#define DIRECT_JUMP_TRAMPOLINE_T direct_jump_trampoline_t +#define CALL_ORIGIN_TRAMPOLINE_T call_origin_trampoline_t + +#endif //SANDHOOK_BASE_H diff --git a/sandhook-hooklib/src/main/cpp/includes/art_classlinker.h b/sandhook-hooklib/src/main/cpp/includes/art_classlinker.h new file mode 100644 index 00000000..18eaccd2 --- /dev/null +++ b/sandhook-hooklib/src/main/cpp/includes/art_classlinker.h @@ -0,0 +1,14 @@ +// +// Created by 双草酸酯 on 11/27/20. +// + +#ifndef SANDHOOK_ART_CLASSLINKER_H +#define SANDHOOK_ART_CLASSLINKER_H + +#endif //SANDHOOK_ART_CLASSLINKER_H +namespace art { +class ClassLinker { +public: + void MakeInitializedClassesVisiblyInitialized(void* self, bool wait); +}; +} \ No newline at end of file diff --git a/sandhook-hooklib/src/main/cpp/includes/art_compiler_options.h b/sandhook-hooklib/src/main/cpp/includes/art_compiler_options.h new file mode 100644 index 00000000..0a462353 --- /dev/null +++ b/sandhook-hooklib/src/main/cpp/includes/art_compiler_options.h @@ -0,0 +1,28 @@ +// +// Created by 甘尧 on 2019/2/23. +// + +#ifndef ART_COMPILER_OPTIONS_H +#define ART_COMPILER_OPTIONS_H + +#include + +namespace art { + class CompilerOptions { + public: + void* compiler_filter_; + size_t huge_method_threshold_; + size_t large_method_threshold_; + size_t small_method_threshold_; + size_t tiny_method_threshold_; + size_t num_dex_methods_threshold_; + size_t inline_depth_limit_; + size_t inline_max_code_units_; + + size_t getInlineMaxCodeUnits(); + bool setInlineMaxCodeUnits(size_t units); + + }; +} + +#endif //ART_COMPILER_OPTIONS_H diff --git a/sandhook-hooklib/src/main/cpp/includes/art_jit.h b/sandhook-hooklib/src/main/cpp/includes/art_jit.h new file mode 100644 index 00000000..c59f48cf --- /dev/null +++ b/sandhook-hooklib/src/main/cpp/includes/art_jit.h @@ -0,0 +1,28 @@ +// +// Created by 甘尧 on 2019/2/23. +// + +#ifndef SANDHOOK_ART_JIT_H +#define SANDHOOK_ART_JIT_H + +namespace art { + namespace jit { + + //7.0 - 9.0 + class JitCompiler { + public: + virtual ~JitCompiler(); + std::unique_ptr compilerOptions; + }; + + class Jit { + public: + //void* getCompilerOptions(); + }; + + + + }; +} + +#endif //SANDHOOK_ART_JIT_H diff --git a/sandhook-hooklib/src/main/cpp/includes/art_method.h b/sandhook-hooklib/src/main/cpp/includes/art_method.h new file mode 100644 index 00000000..58fb8ec4 --- /dev/null +++ b/sandhook-hooklib/src/main/cpp/includes/art_method.h @@ -0,0 +1,87 @@ +/* + * + * Copyright (c) 2011 The Android Open Source Project + * Copyright (c) 2015, alipay.com + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef ART_H +#define ART_H + +#include +#include "arch.h" + +//7.0 - 10.0 +#define GCRoot uint32_t + +namespace art { +namespace mirror { +class Object { +public: +}; +class Class: public Object { +public: +}; + +class ArtField { +public: +}; + +class ArtMethod { +public: + + bool isAbstract(); + bool isNative(); + bool isStatic(); + bool isCompiled(); + bool isThumbCode(); + + void setAccessFlags(uint32_t flags); + void disableCompilable(); + void tryDisableInline(); + void disableInterpreterForO(); + void disableFastInterpreterForQ(); + void setPrivate(); + void setStatic(); + void setNative(); + + void setQuickCodeEntry(void* entry); + void setJniCodeEntry(void* entry); + void setInterpreterCodeEntry(void* entry); + void setDexCacheResolveList(void* list); + void setDexCacheResolveItem(uint32_t index, void* item); + void setDeclaringClass(GCRoot classPtr); + void setHotnessCount(uint16_t count); + + void* getQuickCodeEntry(); + void* getInterpreterCodeEntry(); + uint32_t getAccessFlags(); + uint32_t getDexMethodIndex(); + GCRoot getDeclaringClass(); + uint16_t getHotnessCount(); + + bool compile(JNIEnv* env); + bool deCompile(); + void flushCache(); + void backup(ArtMethod* backup); + + static Size size(); + +}; + +} + +} + +#endif //ART_H diff --git a/sandhook-hooklib/src/main/cpp/includes/art_runtime.h b/sandhook-hooklib/src/main/cpp/includes/art_runtime.h new file mode 100644 index 00000000..e27d68ae --- /dev/null +++ b/sandhook-hooklib/src/main/cpp/includes/art_runtime.h @@ -0,0 +1,18 @@ +// +// Created by 甘尧 on 2019/2/23. +// + +#ifndef SANDHOOK_ART_RUNTIME_H +#define SANDHOOK_ART_RUNTIME_H + +#include "art_jit.h" + +namespace art { + class Runtime { + + public: + jit::Jit* getJit(); + }; +} + +#endif //SANDHOOK_ART_RUNTIME_H diff --git a/sandhook-hooklib/src/main/cpp/includes/cast.h b/sandhook-hooklib/src/main/cpp/includes/cast.h new file mode 100644 index 00000000..6748c686 --- /dev/null +++ b/sandhook-hooklib/src/main/cpp/includes/cast.h @@ -0,0 +1,123 @@ +// +// Created by 甘尧 on 2019/1/12. +// + + +#ifndef SANDHOOK_ICAST_H +#define SANDHOOK_ICAST_H + +#include +#include +#include +#include "arch.h" +#include "utils.h" + + +namespace SandHook { + + template + class cast { + public: + cast(T t) { + this->origin = t; + }; + + virtual Size getSize() { return sizeof(T); }; + + private: + T origin; + }; + + template + class IMember { + public: + + virtual void init(JNIEnv *jniEnv, PType* p, Size size) { + this->parentSize = size; + offset = calOffset(jniEnv, p); + } + + Size size() { + return sizeof(MType); + } + + virtual Size getOffset() { + return offset; + } + + virtual Size getParentSize() { + return parentSize; + } + + virtual MType get(PType* p) { + if (offset > parentSize) + return 0; + return *reinterpret_cast((Size)p + getOffset()); + }; + + virtual void set(PType* p, MType t) { + if (offset > parentSize) + return; + memcpy(reinterpret_cast((Size)p + getOffset()), &t, size()); + }; + + template + int findOffset(void *start, size_t len, size_t step, T value) { + + if (nullptr == start) { + return -1; + } + + for (int i = 0; i <= len; i += step) { + T current_value = *reinterpret_cast((size_t) start + i); + if (value == current_value) { + return i; + } + } + return -1; + } + + private: + Size offset = 0; + protected: + Size parentSize = 0; + virtual Size calOffset(JNIEnv *jniEnv, PType* p) = 0; + + }; + + template + class ArrayMember : public IMember { + public: + + virtual void init(JNIEnv *jniEnv, PType* p, Size parentSize) override { + IMember::init(jniEnv, p, parentSize); + elementSize = calElementSize(jniEnv, p); + } + + virtual Size getElementSize() { + return elementSize; + } + + virtual Size arrayStart(PType* parent) { + void* p = IMember::get(parent); + return reinterpret_cast(p); + } + + using IMember::getParentSize; + + virtual void setElement(PType* parent, int position, ElementType elementPoint) { + Size array = arrayStart(parent); + memcpy(reinterpret_cast(array + position * getElementSize()), &elementPoint, getElementSize()); + } + + private: + Size elementSize = 0; + protected: + virtual Size calElementSize(JNIEnv *jniEnv, PType* p) { + return sizeof(ElementType); + }; + }; + +} + +#endif //SANDHOOK_ICAST_H \ No newline at end of file diff --git a/sandhook-hooklib/src/main/cpp/includes/cast_art_method.h b/sandhook-hooklib/src/main/cpp/includes/cast_art_method.h new file mode 100644 index 00000000..1cdb37bb --- /dev/null +++ b/sandhook-hooklib/src/main/cpp/includes/cast_art_method.h @@ -0,0 +1,39 @@ +// +// Created by 甘尧 on 2019/1/12. +// + +#ifndef SANDHOOK_CAST_ART_METHOD_H +#define SANDHOOK_CAST_ART_METHOD_H + +#include "cast.h" +#include "trampoline_manager.h" + +namespace SandHook { + + class CastArtMethod { + public: + static Size size; + static IMember* entryPointQuickCompiled; + static IMember* entryPointFromInterpreter; + static IMember* entryPointFromJNI; + static ArrayMember* dexCacheResolvedMethods; + static IMember* dexMethodIndex; + static IMember* accessFlag; + static IMember* declaringClass; + static IMember* hotnessCount; + static void* quickToInterpreterBridge; + static void* genericJniStub; + static void* staticResolveStub; + static bool canGetJniBridge; + static bool canGetInterpreterBridge; + + static void init(JNIEnv *env); + static void copy(art::mirror::ArtMethod* from, art::mirror::ArtMethod* to); + + }; + +} + +#endif //SANDHOOK_CAST_ART_METHOD_H + + diff --git a/sandhook-hooklib/src/main/cpp/includes/cast_compiler_options.h b/sandhook-hooklib/src/main/cpp/includes/cast_compiler_options.h new file mode 100644 index 00000000..5b98a9d4 --- /dev/null +++ b/sandhook-hooklib/src/main/cpp/includes/cast_compiler_options.h @@ -0,0 +1,24 @@ +// +// Created by 甘尧 on 2019/1/12. +// + +#ifndef SANDHOOK_CAST_COMPILER_OPTIONS_H +#define SANDHOOK_CAST_COMPILER_OPTIONS_H + +#include "cast.h" +#include "art_compiler_options.h" + +namespace SandHook { + + class CastCompilerOptions { + public: + static void init(JNIEnv *jniEnv); + static IMember* inlineMaxCodeUnits; + }; + + +} + +#endif //SANDHOOK_CAST_COMPILER_OPTIONS_H + + diff --git a/sandhook-hooklib/src/main/cpp/includes/dlfcn_nougat.h b/sandhook-hooklib/src/main/cpp/includes/dlfcn_nougat.h new file mode 100644 index 00000000..1fbaa5c4 --- /dev/null +++ b/sandhook-hooklib/src/main/cpp/includes/dlfcn_nougat.h @@ -0,0 +1,17 @@ +#ifndef DLFCN_NOUGAT_H +#define DLFCN_NOUGAT_H + +//see implementation in https://tech.meituan.com/2017/07/20/android-remote-debug.html +extern "C" { +int fake_dlclose(void *handle); + +void *fake_dlopen(const char *filename, int flags); + +void *fake_dlsym(void *handle, const char *name); + +const char *fake_dlerror(); + +void *getSymCompat(const char *filename, const char *name); +} + +#endif //DLFCN_NOUGAT_H diff --git a/sandhook-hooklib/src/main/cpp/includes/elf_util.h b/sandhook-hooklib/src/main/cpp/includes/elf_util.h new file mode 100644 index 00000000..79141764 --- /dev/null +++ b/sandhook-hooklib/src/main/cpp/includes/elf_util.h @@ -0,0 +1,72 @@ +// +// Created by Swift Gan on 2019/3/14. +// +#ifndef SANDHOOK_ELF_UTIL_H +#define SANDHOOK_ELF_UTIL_H + +#include + +#if defined(__LP64__) +typedef Elf64_Ehdr Elf_Ehdr; +typedef Elf64_Shdr Elf_Shdr; +typedef Elf64_Addr Elf_Addr; +typedef Elf64_Dyn Elf_Dyn; +typedef Elf64_Rela Elf_Rela; +typedef Elf64_Sym Elf_Sym; +typedef Elf64_Off Elf_Off; + +#define ELF_R_SYM(i) ELF64_R_SYM(i) +#else +typedef Elf32_Ehdr Elf_Ehdr; +typedef Elf32_Shdr Elf_Shdr; +typedef Elf32_Addr Elf_Addr; +typedef Elf32_Dyn Elf_Dyn; +typedef Elf32_Rel Elf_Rela; +typedef Elf32_Sym Elf_Sym; +typedef Elf32_Off Elf_Off; + +#define ELF_R_SYM(i) ELF32_R_SYM(i) +#endif + +namespace SandHook { + + class ElfImg { + public: + + ElfImg(const char* elf); + + Elf_Addr getSymbOffset(const char* name); + + void* getModuleBase(const char* name); + + Elf_Addr getSymbAddress(const char* name); + + ~ElfImg(); + + private: + const char* elf = nullptr; + void* base = nullptr; + char* buffer = nullptr; + off_t size = 0; + off_t bias = -4396; + Elf_Ehdr* header = nullptr; + Elf_Shdr* section_header = nullptr; + Elf_Shdr* symtab = nullptr; + Elf_Shdr* strtab = nullptr; + Elf_Shdr* dynsym = nullptr; + Elf_Off dynsym_count = 0; + Elf_Sym* symtab_start = nullptr; + Elf_Sym* dynsym_start = nullptr; + Elf_Sym* strtab_start = nullptr; + Elf_Off symtab_count = 0; + Elf_Off symstr_offset = 0; + Elf_Off symstr_offset_for_symtab = 0; + Elf_Off symtab_offset = 0; + Elf_Off dynsym_offset = 0; + Elf_Off symtab_size = 0; + Elf_Off dynsym_size = 0; + }; + +} + +#endif //SANDHOOK_ELF_UTIL_H diff --git a/sandhook-hooklib/src/main/cpp/includes/hide_api.h b/sandhook-hooklib/src/main/cpp/includes/hide_api.h new file mode 100644 index 00000000..4f8fba51 --- /dev/null +++ b/sandhook-hooklib/src/main/cpp/includes/hide_api.h @@ -0,0 +1,59 @@ +// +// Created by swift on 2019/1/21. +// + +#ifndef SANDHOOK_HIDE_API_H +#define SANDHOOK_HIDE_API_H + +#include +#include "dlfcn_nougat.h" +#include "dlfcn.h" +#include +#include "../includes/art_compiler_options.h" +#include "../includes/art_jit.h" +#include "../includes/art_method.h" + +#if defined(__aarch64__) +# define __get_tls() ({ void** __val; __asm__("mrs %0, tpidr_el0" : "=r"(__val)); __val; }) +#elif defined(__arm__) +# define __get_tls() ({ void** __val; __asm__("mrc p15, 0, %0, c13, c0, 3" : "=r"(__val)); __val; }) +#endif + +#define TLS_SLOT_ART_THREAD 7 + +using namespace art::mirror; + +extern "C" { + + void initHideApi(JNIEnv *env); + bool compileMethod(void *artMethod, void *thread); + + void suspendVM(); + void resumeVM(); + + bool canGetObject(); + jobject getJavaObject(JNIEnv* env, void* thread, void* address); + void *getCurrentThread(); + + art::jit::JitCompiler* getGlobalJitCompiler(); + + art::CompilerOptions* getCompilerOptions(art::jit::JitCompiler* compiler); + + art::CompilerOptions* getGlobalCompilerOptions(); + + bool disableJitInline(art::CompilerOptions* compilerOptions); + + void* getInterpreterBridge(bool isNative); + + bool replaceUpdateCompilerOptionsQ(); + + bool forceProcessProfiles(); + + bool hookClassInit(void(*callback)(void*)); + + JNIEnv *attachAndGetEvn(); + + ArtMethod* getArtMethod(JNIEnv *env, jobject method); +} + +#endif //SANDHOOK_HIDE_API_H diff --git a/sandhook-hooklib/src/main/cpp/includes/inst.h b/sandhook-hooklib/src/main/cpp/includes/inst.h new file mode 100644 index 00000000..0bc3f2a4 --- /dev/null +++ b/sandhook-hooklib/src/main/cpp/includes/inst.h @@ -0,0 +1,120 @@ +// +// Created by swift on 2019/2/3. +// + +#ifndef SANDHOOK_INST_VISTOR_H +#define SANDHOOK_INST_VISTOR_H + +#include +#include "arch.h" + +#define CASE(inst,mask,match,type) \ +if ((inst & mask) == match) { return type; } \ + +namespace SandHook { + + union Arm32Code { + uint32_t code; + struct { + uint32_t cond:4; + uint32_t empty:2; + uint32_t opcode:4; + uint32_t s:1; + uint32_t rn:4; + uint32_t rd:4; + uint32_t operand2:12; + } units; + }; + + union Arm16Code { + uint16_t code; + struct { + uint32_t cond:16; + } units; + }; + + enum InstArch { + ARM32 = 0, + Thumb16, + Thumb32, + Arm64, + X86, + X64 + }; + + enum class InstType_Thumb32 { + // BLX