From aa1e734460a995b8709dd3b2052a2911897f1ab8 Mon Sep 17 00:00:00 2001 From: huangshan Date: Sat, 25 Mar 2023 09:53:51 +0800 Subject: [PATCH 001/201] del useless code Signed-off-by: huangshan Change-Id: I7203573b7dcc6f2a2b49aa05c4971ec3ddabea17 --- tools/rom_ram_analyzer/lite_small/pkgs/basic_tool.py | 1 - .../rom_ram_analyzer/lite_small/src/get_subsystem_component.py | 3 --- tools/rom_ram_analyzer/standard/ram_analyzer.py | 1 - 3 files changed, 5 deletions(-) diff --git a/tools/rom_ram_analyzer/lite_small/pkgs/basic_tool.py b/tools/rom_ram_analyzer/lite_small/pkgs/basic_tool.py index 512ed59..660a04c 100644 --- a/tools/rom_ram_analyzer/lite_small/pkgs/basic_tool.py +++ b/tools/rom_ram_analyzer/lite_small/pkgs/basic_tool.py @@ -140,7 +140,6 @@ class BasicTool: if __name__ == '__main__': res = BasicTool.grep_ern("^( *)ohos_prebuilt_shared_library", "/home/aodongbiao/oh", include="BUILD.gn", exclude=("/home/aodongbiao/oh/out","doc", ".ccache"), post_handler=lambda x: x.split('\n')) - # print(res) for i in res: if "oh/out" in i: print(i) diff --git a/tools/rom_ram_analyzer/lite_small/src/get_subsystem_component.py b/tools/rom_ram_analyzer/lite_small/src/get_subsystem_component.py index 2dbd476..de9fee6 100644 --- a/tools/rom_ram_analyzer/lite_small/src/get_subsystem_component.py +++ b/tools/rom_ram_analyzer/lite_small/src/get_subsystem_component.py @@ -142,7 +142,4 @@ __all__ = ["SC"] if __name__ == '__main__': ohos_path, output_path = parse_args() - # info = get_subsystem_components_modified(ohos_path) - # export_to_json(info, output_path) - # print_warning_info() SC.run(ohos_path, output_path) diff --git a/tools/rom_ram_analyzer/standard/ram_analyzer.py b/tools/rom_ram_analyzer/standard/ram_analyzer.py index c6c2df5..d49b177 100644 --- a/tools/rom_ram_analyzer/standard/ram_analyzer.py +++ b/tools/rom_ram_analyzer/standard/ram_analyzer.py @@ -116,7 +116,6 @@ class RamAnalyzer: for line in line_list: process_name = line.split()[7] if process_name.startswith('['): - # 内核进程 continue process_name_list.append(process_name) return process_name_list -- Gitee From 934a7f5e860bd781b51884a5c13bb703e182a5b8 Mon Sep 17 00:00:00 2001 From: huangshan Date: Mon, 27 Mar 2023 10:00:08 +0800 Subject: [PATCH 002/201] del useless code Signed-off-by: huangshan Change-Id: Id02ec05b38952a125c7f2589ac220ad54dde4141 --- tools/rom_ram_analyzer/standard/rom_analyzer.py | 7 ------- 1 file changed, 7 deletions(-) diff --git a/tools/rom_ram_analyzer/standard/rom_analyzer.py b/tools/rom_ram_analyzer/standard/rom_analyzer.py index b748563..698130a 100644 --- a/tools/rom_ram_analyzer/standard/rom_analyzer.py +++ b/tools/rom_ram_analyzer/standard/rom_analyzer.py @@ -115,13 +115,6 @@ class RomAnalyzer: @classmethod def __put(cls, unit: typing.Dict[Text, Any], result_dict: typing.Dict[Text, Dict]): - """ - subsystem_name:{ - component_name: { - file_name: file_size - } - } - """ component_name = NOTFOUND if unit.get( "component_name") is None else unit.get("component_name") subsystem_name = NOTFOUND if unit.get( -- Gitee From 66f814f2d4a717bc8c8a59b477b8d3ab2b884b4b Mon Sep 17 00:00:00 2001 From: huangshan Date: Wed, 29 Mar 2023 10:25:49 +0800 Subject: [PATCH 003/201] add fotff v0.2.0 Signed-off-by: huangshan Change-Id: I4c377eabe58cd3100ce9d2dea9172fea479e3fe5 --- OAT.xml | 6 +- tools/fotff/.gitignore | 28 ++ tools/fotff/LICENSE | 201 +++++++++ tools/fotff/README.md | 75 ++++ tools/fotff/go.mod | 28 ++ tools/fotff/go.sum | 91 ++++ tools/fotff/main.go | 175 ++++++++ tools/fotff/pkg/dayu200/build.go | 108 +++++ tools/fotff/pkg/dayu200/dayu200.go | 181 ++++++++ tools/fotff/pkg/dayu200/flash.go | 128 ++++++ tools/fotff/pkg/dayu200/get_newer_ci.go | 119 +++++ tools/fotff/pkg/dayu200/steps_ci.go | 156 +++++++ tools/fotff/pkg/dayu200/steps_gitee.go | 365 ++++++++++++++++ tools/fotff/pkg/dayu200/steps_gitee_test.go | 100 +++++ .../manifest_tag.xml | 411 +++++++++++++++++ .../manifest_tag.xml | 411 +++++++++++++++++ .../manifest_tag.xml | 411 +++++++++++++++++ .../manifest_tag.xml | 412 ++++++++++++++++++ .../manifest_tag.xml | 412 ++++++++++++++++++ .../manifest_tag.xml | 412 ++++++++++++++++++ tools/fotff/pkg/mock/mock.go | 65 +++ tools/fotff/pkg/pkg.go | 61 +++ tools/fotff/rec/fotff.go | 184 ++++++++ tools/fotff/rec/fotff_test.go | 300 +++++++++++++ tools/fotff/rec/record.go | 133 ++++++ tools/fotff/rec/report.go | 119 +++++ tools/fotff/rec/types.go | 24 + tools/fotff/res/res.go | 107 +++++ tools/fotff/tester/manual/manual.go | 88 ++++ tools/fotff/tester/mock/mock.go | 64 +++ tools/fotff/tester/smoke/smoke.go | 149 +++++++ tools/fotff/tester/tester.go | 46 ++ tools/fotff/tester/xdevice/xdevice.go | 162 +++++++ tools/fotff/utils/exec.go | 90 ++++ tools/fotff/utils/hdc.go | 81 ++++ tools/fotff/utils/http.go | 73 ++++ tools/fotff/utils/ini.go | 53 +++ tools/fotff/utils/log.go | 97 +++++ tools/fotff/utils/mail.go | 67 +++ tools/fotff/utils/pprof.go | 26 ++ tools/fotff/utils/proxy.go | 88 ++++ tools/fotff/utils/runtime.go | 56 +++ tools/fotff/utils/ssh.go | 164 +++++++ tools/fotff/vcs/gitee/branch.go | 41 ++ tools/fotff/vcs/gitee/commit.go | 45 ++ tools/fotff/vcs/gitee/compare.go | 139 ++++++ tools/fotff/vcs/gitee/issue.go | 51 +++ tools/fotff/vcs/manifest.go | 186 ++++++++ 48 files changed, 6988 insertions(+), 1 deletion(-) create mode 100644 tools/fotff/.gitignore create mode 100644 tools/fotff/LICENSE create mode 100644 tools/fotff/README.md create mode 100644 tools/fotff/go.mod create mode 100644 tools/fotff/go.sum create mode 100644 tools/fotff/main.go create mode 100644 tools/fotff/pkg/dayu200/build.go create mode 100644 tools/fotff/pkg/dayu200/dayu200.go create mode 100644 tools/fotff/pkg/dayu200/flash.go create mode 100644 tools/fotff/pkg/dayu200/get_newer_ci.go create mode 100644 tools/fotff/pkg/dayu200/steps_ci.go create mode 100644 tools/fotff/pkg/dayu200/steps_gitee.go create mode 100644 tools/fotff/pkg/dayu200/steps_gitee_test.go create mode 100644 tools/fotff/pkg/dayu200/testdata/version-Daily_Version-dayu200-20221201_080109-dayu200/manifest_tag.xml create mode 100644 tools/fotff/pkg/dayu200/testdata/version-Daily_Version-dayu200-20221201_100141-dayu200/manifest_tag.xml create mode 100644 tools/fotff/pkg/dayu200/testdata/version-Daily_Version-dayu200-20221213_110027-dayu200/manifest_tag.xml create mode 100644 tools/fotff/pkg/dayu200/testdata/version-Daily_Version-dayu200-20221213_140150-dayu200/manifest_tag.xml create mode 100644 tools/fotff/pkg/dayu200/testdata/version-Daily_Version-dayu200-20221214_100124-dayu200/manifest_tag.xml create mode 100644 tools/fotff/pkg/dayu200/testdata/version-Daily_Version-dayu200-20221214_110125-dayu200/manifest_tag.xml create mode 100644 tools/fotff/pkg/mock/mock.go create mode 100644 tools/fotff/pkg/pkg.go create mode 100644 tools/fotff/rec/fotff.go create mode 100644 tools/fotff/rec/fotff_test.go create mode 100644 tools/fotff/rec/record.go create mode 100644 tools/fotff/rec/report.go create mode 100644 tools/fotff/rec/types.go create mode 100644 tools/fotff/res/res.go create mode 100644 tools/fotff/tester/manual/manual.go create mode 100644 tools/fotff/tester/mock/mock.go create mode 100644 tools/fotff/tester/smoke/smoke.go create mode 100644 tools/fotff/tester/tester.go create mode 100644 tools/fotff/tester/xdevice/xdevice.go create mode 100644 tools/fotff/utils/exec.go create mode 100644 tools/fotff/utils/hdc.go create mode 100644 tools/fotff/utils/http.go create mode 100644 tools/fotff/utils/ini.go create mode 100644 tools/fotff/utils/log.go create mode 100644 tools/fotff/utils/mail.go create mode 100644 tools/fotff/utils/pprof.go create mode 100644 tools/fotff/utils/proxy.go create mode 100644 tools/fotff/utils/runtime.go create mode 100644 tools/fotff/utils/ssh.go create mode 100644 tools/fotff/vcs/gitee/branch.go create mode 100644 tools/fotff/vcs/gitee/commit.go create mode 100644 tools/fotff/vcs/gitee/compare.go create mode 100644 tools/fotff/vcs/gitee/issue.go create mode 100644 tools/fotff/vcs/manifest.go diff --git a/OAT.xml b/OAT.xml index 9857f5e..0be7e8a 100644 --- a/OAT.xml +++ b/OAT.xml @@ -69,10 +69,14 @@ Note:If the text contains special characters, please escape them according to th + + + + @@ -80,4 +84,4 @@ Note:If the text contains special characters, please escape them according to th - \ No newline at end of file + diff --git a/tools/fotff/.gitignore b/tools/fotff/.gitignore new file mode 100644 index 0000000..c9ab9e9 --- /dev/null +++ b/tools/fotff/.gitignore @@ -0,0 +1,28 @@ +# Binaries, caches, configs and outputs for programs and plugins +*.exe +*.exe~ +*.dll +*.so +*.dylib +logs +fotff +fotff.ini +.fotff + +# xdevice default directories +config +testcases +reports +resource + +# Test binary, built with `go test -c` +*.test + +# Output of the go coverage tool, specifically when used with LiteIDE +*.out + +# Dependency directories (remove the comment below to include it) +# vendor/ + +# JetBrains IDE +.idea diff --git a/tools/fotff/LICENSE b/tools/fotff/LICENSE new file mode 100644 index 0000000..29f81d8 --- /dev/null +++ b/tools/fotff/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + 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. diff --git a/tools/fotff/README.md b/tools/fotff/README.md new file mode 100644 index 0000000..fb295d4 --- /dev/null +++ b/tools/fotff/README.md @@ -0,0 +1,75 @@ +# fotff + +#### 介绍 + +fotff(find out the first fault)是为OpenHarmony持续集成设计的问题自动化问题分析工具。 + +为了平衡开销与收益,考虑到开发效率、资源占用等因素影响,OpenHarmony代码合入门禁(冒烟测试)只拦截部分严重基础问题(例如开机失败、关键进程崩溃、UX布局严重错乱、电话/相机基础功能不可用等)。因此,一些会影响到更细节功能、影响兼容性、系统稳定性等的问题代码将可能被合入。 + +fotff提供了一个框架,不断地对最新持续集成版本运行测试套,然后对其中失败用例进行分析:找到或生成在该用例上次通过的持续集成版本和本次失败的持续集成版本之间的所有中间版本,然后运用二分法的思想,找到出现该问题的第一个中间版本,从而给出引入该问题的代码提交。 + +#### 软件架构 + +``` +fotff +├── .fotff # 缓存等程序运行时产生的文件的存放目录 +├── logs # 日志存放目录 +├── pkg # 版本包管理的接口定义和特定开发板形态的具体实现 +├── rec # 测试结果记录和分析 +├── tester # 测试套的接口定义和调用测试框架的具体实现 +├── utils # 一些通用的类库 +├── vcs # 版本控制相关的包,比如manifest的处理,通过OpenAPI访问gitee查询信息的函数等 +├── fotff.ini # 运行需要的必要参数配置,比如指定测试套、配置构建服务器、HTTP代理等 +└── main.go # 框架入口 +``` + +#### 安装教程 + +1. 获取[GoSDK](https://golang.google.cn/dl/)并按照指引安装。 +2. 在代码工程根目录执行```go build```编译。如下载依赖库出现网络问题,必要时配置GOPROXY代理。 +3. 更改fotff.ini,按功能需要,选择版本包和测试套的具体实现,完成对应参数配置,并将可能涉及到的测试用例集、脚本、刷机工具等放置到对应位置。 + +#### 使用说明 + +###### 普通模式 + +example: ```fotff``` + +1. 配置好fotff.ini文件后,不指定任何命令行参数直接执行二进制,即进入普通模式。此模式下,框架会自动不断地获取最新持续集成版本,并对其运行测试套,然后对其中失败用例进行分析。 +2. 分析结果在.fotff/records.json文件中记录;如果配置了邮箱信息,会发送结果到指定邮箱。 + +###### 对单个用例在指定区间内查找 + +example: ```fotff run -s pkgDir1 -f pkgDir2 -t TEST_CASE_001``` + +1. 配置好fotff.ini文件后,通过-s/-f/-t参数在命令行中分别指定成功版本/失败版本/测试用例名,即可对单个用例在指定区间内查找。此模式下,仅在指定的两个版本间进行二分查找,运行指定的运行测试用例。 +2. 分析结果在控制台中打印,不会发送邮件。 + +###### 烧写指定版本包 + +example: ```fotff flash -p pkgDir -d 7001005458323933328a01fce1dc3800``` + +配置好fotff.ini文件后,可以指定版本包目录烧写对应版本。 + +###### tips + +1. 刷机、测试具体实现可能涉及到[hdc_std](https://gitee.com/openharmony/developtools_hdc)、[xdevice](https://gitee.com/openharmony/testfwk_xdevice),安装和配置请参考对应工具的相关页面。 +2. xdevice运行需要Python运行环境,请提前安装。 +3. 刷机、测试过程需要对应开发板的驱动程序,请提前安装。 + +#### 参与贡献 + +1. Fork 本仓库 +2. 新建 Feat_xxx 分支 +3. 提交代码 +4. 新建 Pull Request + +#### 相关链接 + +[OpenHarmony CI](http://ci.openharmony.cn/dailys/dailybuilds) + +[developtools_hdc](https://gitee.com/openharmony/developtools_hdc) + +[dayu200_tools](https://gitee.com/hihope_iot/docs/tree/master/HiHope_DAYU200/烧写工具及指南) + +[testfwk_xdevice](https://gitee.com/openharmony/testfwk_xdevice) diff --git a/tools/fotff/go.mod b/tools/fotff/go.mod new file mode 100644 index 0000000..ab14fc5 --- /dev/null +++ b/tools/fotff/go.mod @@ -0,0 +1,28 @@ +module fotff + +go 1.19 + +require ( + code.cloudfoundry.org/archiver v0.0.0-20221114120234-625eff81a7ef + github.com/Unknwon/goconfig v1.0.0 + github.com/huandu/go-clone v1.4.1 + github.com/jedib0t/go-pretty/v6 v6.4.3 + github.com/patrickmn/go-cache v2.1.0+incompatible + github.com/pkg/sftp v1.13.5 + github.com/sirupsen/logrus v1.9.0 + github.com/spf13/cobra v1.6.1 + golang.org/x/crypto v0.3.0 + gopkg.in/gomail.v2 v2.0.0-20160411212932-81ebce5c23df +) + +require ( + github.com/cyphar/filepath-securejoin v0.2.3 // indirect + github.com/inconshreveable/mousetrap v1.0.1 // indirect + github.com/kr/fs v0.1.0 // indirect + github.com/mattn/go-runewidth v0.0.13 // indirect + github.com/rivo/uniseg v0.2.0 // indirect + github.com/smartystreets/goconvey v1.7.2 // indirect + github.com/spf13/pflag v1.0.5 // indirect + golang.org/x/sys v0.2.0 // indirect + gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc // indirect +) diff --git a/tools/fotff/go.sum b/tools/fotff/go.sum new file mode 100644 index 0000000..9649c26 --- /dev/null +++ b/tools/fotff/go.sum @@ -0,0 +1,91 @@ +code.cloudfoundry.org/archiver v0.0.0-20221114120234-625eff81a7ef h1:YMr8OebAw8ufxTyTLPFbMmiChH4M+1RaIpsdLKojZ48= +code.cloudfoundry.org/archiver v0.0.0-20221114120234-625eff81a7ef/go.mod h1:WK8AWnIZ1W1EpPoVLzsSshXKKqP1Nzk6SoVRxD9cx54= +github.com/Unknwon/goconfig v1.0.0 h1:9IAu/BYbSLQi8puFjUQApZTxIHqSwrj5d8vpP8vTq4A= +github.com/Unknwon/goconfig v1.0.0/go.mod h1:wngxua9XCNjvHjDiTiV26DaKDT+0c63QR6H5hjVUUxw= +github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/cyphar/filepath-securejoin v0.2.3 h1:YX6ebbZCZP7VkM3scTTokDgBL2TY741X51MTk3ycuNI= +github.com/cyphar/filepath-securejoin v0.2.3/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4= +github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= +github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1 h1:EGx4pi6eqNxGaHF6qqu48+N2wcFQ5qg5FXgOdqsJ5d8= +github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= +github.com/huandu/go-assert v1.1.5 h1:fjemmA7sSfYHJD7CUqs9qTwwfdNAx7/j2/ZlHXzNB3c= +github.com/huandu/go-assert v1.1.5/go.mod h1:yOLvuqZwmcHIC5rIzrBhT7D3Q9c3GFnd0JrPVhn/06U= +github.com/huandu/go-clone v1.4.1 h1:QQYjiLadyxOvdwgZoH8f1xGkvvf4+Cm8be7fo9W2QQA= +github.com/huandu/go-clone v1.4.1/go.mod h1:ReGivhG6op3GYr+UY3lS6mxjKp7MIGTknuU5TbTVaXE= +github.com/inconshreveable/mousetrap v1.0.1 h1:U3uMjPSQEBMNp1lFxmllqCPM6P5u/Xq7Pgzkat/bFNc= +github.com/inconshreveable/mousetrap v1.0.1/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= +github.com/jedib0t/go-pretty/v6 v6.4.3 h1:2n9BZ0YQiXGESUSR+6FLg0WWWE80u+mIz35f0uHWcIE= +github.com/jedib0t/go-pretty/v6 v6.4.3/go.mod h1:MgmISkTWDSFu0xOqiZ0mKNntMQ2mDgOcwOkwBEkMDJI= +github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo= +github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= +github.com/kr/fs v0.1.0 h1:Jskdu9ieNAYnjxsi0LbQp1ulIKZV1LAFgK1tWhpZgl8= +github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= +github.com/mattn/go-runewidth v0.0.13 h1:lTGmDsbAYt5DmK6OnoV7EuIF1wEIFAcxld6ypU4OSgU= +github.com/mattn/go-runewidth v0.0.13/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= +github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= +github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE= +github.com/onsi/gomega v1.24.1 h1:KORJXNNTzJXzu4ScJWssJfJMnJ+2QJqhoQSRwNlze9E= +github.com/patrickmn/go-cache v2.1.0+incompatible h1:HRMgzkcYKYpi3C8ajMPV8OFXaaRUnok+kx1WdO15EQc= +github.com/patrickmn/go-cache v2.1.0+incompatible/go.mod h1:3Qf8kWWT7OJRJbdiICTKqZju1ZixQ/KpMGzzAfe6+WQ= +github.com/pkg/profile v1.6.0/go.mod h1:qBsxPvzyUincmltOk6iyRVxHYg4adc0OFOv72ZdLa18= +github.com/pkg/sftp v1.13.5 h1:a3RLUqkyjYRtBTZJZ1VRrKbN3zhuPLlUc3sphVz81go= +github.com/pkg/sftp v1.13.5/go.mod h1:wHDZ0IZX6JcBYRK1TH9bcVq8G7TLpVHYIGJRFnmPfxg= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY= +github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= +github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= +github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0= +github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= +github.com/smartystreets/assertions v1.2.0 h1:42S6lae5dvLc7BrLu/0ugRtcFVjoJNMC/N3yZFZkDFs= +github.com/smartystreets/assertions v1.2.0/go.mod h1:tcbTF8ujkAEcZ8TElKY+i30BzYlVhC/LOxJk7iOWnoo= +github.com/smartystreets/goconvey v1.7.2 h1:9RBaZCeXEQ3UselpuwUQHltGVXvdwm6cv1hgR6gDIPg= +github.com/smartystreets/goconvey v1.7.2/go.mod h1:Vw0tHAZW6lzCRk3xgdin6fKYcG+G3Pg9vgXWeJpQFMM= +github.com/spf13/cobra v1.6.1 h1:o94oiPyS4KD1mPy2fmcYYHHfCxLqYjJOhGsCHFZtEzA= +github.com/spf13/cobra v1.6.1/go.mod h1:IOw/AERYS7UzyrGinqmz6HLUo219MORXGxhbaJUqzrY= +github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= +github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= +github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= +github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.4 h1:wZRexSlwd7ZXfKINDLsO4r7WBt3gTKONc6K/VesHvHM= +github.com/stretchr/testify v1.7.4/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20211215153901-e495a2d5b3d3/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.3.0 h1:a06MkbcxBrEFc0w0QIZWXrH/9cCX6KJyWbBOIwAn+7A= +golang.org/x/crypto v0.3.0/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= +golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.2.0 h1:sZfSu1wtKLGlWI4ZZayP0ck9Y73K1ynO6gqzTdBVdPU= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.2.0 h1:ljd4t30dBnAvMZaQCevtY0xLLD0A+bRZXbgLMLU1F/A= +golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/term v0.2.0 h1:z85xZCsEl7bi/KwbNADeBYoOP0++7W1ipu+aGnpwzRM= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.4.0 h1:BrVqGRd7+k1DiOgtnFvAkoQEWQvBc25ouMJM6429SFg= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc h1:2gGKlE2+asNV9m7xrywl36YYNnBG5ZQ0r/BOOxqPpmk= +gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc/go.mod h1:m7x9LTH6d71AHyAX77c9yqWCCa3UKHcVEj9y7hAtKDk= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/gomail.v2 v2.0.0-20160411212932-81ebce5c23df h1:n7WqCuqOuCbNr617RXOY0AWRXxgwEyPp2z+p0+hgMuE= +gopkg.in/gomail.v2 v2.0.0-20160411212932-81ebce5c23df/go.mod h1:LRQQ+SO6ZHR7tOkpBDuZnXENFzX8qRjMDMyPD6BRkCw= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/tools/fotff/main.go b/tools/fotff/main.go new file mode 100644 index 0000000..2c7d73d --- /dev/null +++ b/tools/fotff/main.go @@ -0,0 +1,175 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * 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. + */ + +package main + +import ( + "context" + "fotff/pkg" + "fotff/pkg/dayu200" + "fotff/pkg/mock" + "fotff/rec" + "fotff/res" + "fotff/tester" + "fotff/tester/manual" + testermock "fotff/tester/mock" + "fotff/tester/smoke" + "fotff/tester/xdevice" + "fotff/utils" + "github.com/sirupsen/logrus" + "github.com/spf13/cobra" + "os" + "path/filepath" +) + +var newPkgMgrFuncs = map[string]pkg.NewFunc{ + "mock": mock.NewManager, + "dayu200": dayu200.NewManager, +} + +var newTesterFuncs = map[string]tester.NewFunc{ + "mock": testermock.NewTester, + "manual": manual.NewTester, + "xdevice": xdevice.NewTester, + "smoke": smoke.NewTester, +} + +var rootCmd *cobra.Command + +func init() { + m, t := initExecutor() + rootCmd = &cobra.Command{ + Run: func(cmd *cobra.Command, args []string) { + loop(m, t) + }, + } + runCmd := initRunCmd(m, t) + flashCmd := initFlashCmd(m) + rootCmd.AddCommand(runCmd, flashCmd) +} + +func initRunCmd(m pkg.Manager, t tester.Tester) *cobra.Command { + var success, fail, testcase string + runCmd := &cobra.Command{ + Use: "run", + Short: "bin-search in (success, fail] by do given testcase to find out the fist fail, and print the corresponding issue", + RunE: func(cmd *cobra.Command, args []string) error { + return fotff(m, t, success, fail, testcase) + }, + } + runCmd.PersistentFlags().StringVarP(&success, "success", "s", "", "success package directory") + runCmd.PersistentFlags().StringVarP(&fail, "fail", "f", "", "fail package directory") + runCmd.PersistentFlags().StringVarP(&testcase, "testcase", "t", "", "testcase name") + runCmd.MarkPersistentFlagRequired("success") + runCmd.MarkPersistentFlagRequired("fail") + runCmd.MarkPersistentFlagRequired("testcase") + return runCmd +} + +func initFlashCmd(m pkg.Manager) *cobra.Command { + var flashPkg, device string + flashCmd := &cobra.Command{ + Use: "flash", + Short: "flash the given package", + RunE: func(cmd *cobra.Command, args []string) error { + return m.Flash(device, flashPkg, context.TODO()) + }, + } + flashCmd.PersistentFlags().StringVarP(&flashPkg, "package", "p", "", "package directory") + flashCmd.PersistentFlags().StringVarP(&device, "device", "d", "", "device sn") + flashCmd.MarkPersistentFlagRequired("package") + return flashCmd +} + +func main() { + utils.EnablePprof() + if err := rootCmd.Execute(); err != nil { + logrus.Errorf("failed to execute: %v", err) + os.Exit(1) + } +} + +func loop(m pkg.Manager, t tester.Tester) { + data, _ := utils.ReadRuntimeData("last_handled.rec") + var curPkg = string(data) + for { + utils.ResetLogOutput() + if err := utils.WriteRuntimeData("last_handled.rec", []byte(curPkg)); err != nil { + logrus.Errorf("failed to write last_handled.rec: %v", err) + } + logrus.Info("waiting for a newer package...") + var err error + curPkg, err = m.GetNewer(curPkg) + if err != nil { + logrus.Infof("get newer package err: %v", err) + continue + } + utils.SetLogOutput(filepath.Base(curPkg)) + logrus.Infof("now flash %s...", curPkg) + device := res.GetDevice() + if err := m.Flash(device, curPkg, context.TODO()); err != nil { + logrus.Errorf("flash package dir %s err: %v", curPkg, err) + res.ReleaseDevice(device) + continue + } + if err := t.Prepare(m.PkgDir(curPkg), device, context.TODO()); err != nil { + logrus.Errorf("do test preperation for package %s err: %v", curPkg, err) + continue + } + logrus.Info("now do test suite...") + results, err := t.DoTestTask(device, context.TODO()) + if err != nil { + logrus.Errorf("do test suite for package %s err: %v", curPkg, err) + continue + } + for _, r := range results { + logrus.Infof("do test case %s at %s done, result is %v", r.TestCaseName, device, r.Status) + } + logrus.Infof("now analysis test results...") + toFotff := rec.HandleResults(t, device, curPkg, results) + res.ReleaseDevice(device) + rec.Analysis(m, t, curPkg, toFotff) + rec.Save() + rec.Report(curPkg, t.TaskName()) + } +} + +func fotff(m pkg.Manager, t tester.Tester, success, fail, testcase string) error { + issueURL, err := rec.FindOutTheFirstFail(m, t, testcase, success, fail) + if err != nil { + logrus.Errorf("failed to find out the first fail: %v", err) + return err + } + logrus.Infof("the first fail found: %v", issueURL) + return nil +} + +func initExecutor() (pkg.Manager, tester.Tester) { + //TODO load from config file + var conf = struct { + PkgManager string `key:"pkg_manager" default:"mock"` + Tester string `key:"tester" default:"mock"` + }{} + utils.ParseFromConfigFile("", &conf) + newPkgMgrFunc, ok := newPkgMgrFuncs[conf.PkgManager] + if !ok { + logrus.Panicf("no package manager found for %s", conf.PkgManager) + } + newTesterFunc, ok := newTesterFuncs[conf.Tester] + if !ok { + logrus.Panicf("no tester found for %s", conf.Tester) + } + return newPkgMgrFunc(), newTesterFunc() +} diff --git a/tools/fotff/pkg/dayu200/build.go b/tools/fotff/pkg/dayu200/build.go new file mode 100644 index 0000000..0453005 --- /dev/null +++ b/tools/fotff/pkg/dayu200/build.go @@ -0,0 +1,108 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * 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. + */ + +package dayu200 + +import ( + "context" + "fmt" + "fotff/res" + "fotff/utils" + "github.com/sirupsen/logrus" + "os" + "path/filepath" +) + +// These commands are copied from ci project. +const ( + preCompileCMD = `rm -rf prebuilts/clang/ohos/darwin-x86_64/clang-480513;rm -rf prebuilts/clang/ohos/windows-x86_64/clang-480513;rm -rf prebuilts/clang/ohos/linux-x86_64/clang-480513;bash build/prebuilts_download.sh` + // compileCMD is copied from ci project and trim useless build-target 'make_test' to enhance build efficiency. + compileCMD = `echo 'start' && export NO_DEVTOOL=1 && export CCACHE_LOG_SUFFIX="dayu200-arm32" && export CCACHE_NOHASHDIR="true" && export CCACHE_SLOPPINESS="include_file_ctime" && ./build.sh --product-name rk3568 --ccache --build-target make_all --gn-args enable_notice_collection=false` + rmOutCMD = `rm -rf out` +) + +// This list is copied from ci project. Some of them are not available, has been annotated. +var imgList = []string{ + "out/rk3568/packages/phone/images/MiniLoaderAll.bin", + "out/rk3568/packages/phone/images/boot_linux.img", + "out/rk3568/packages/phone/images/parameter.txt", + "out/rk3568/packages/phone/images/system.img", + "out/rk3568/packages/phone/images/uboot.img", + "out/rk3568/packages/phone/images/userdata.img", + "out/rk3568/packages/phone/images/vendor.img", + "out/rk3568/packages/phone/images/resource.img", + "out/rk3568/packages/phone/images/config.cfg", + "out/rk3568/packages/phone/images/ramdisk.img", + // "out/rk3568/packages/phone/images/chipset.img", + "out/rk3568/packages/phone/images/sys_prod.img", + "out/rk3568/packages/phone/images/chip_prod.img", + "out/rk3568/packages/phone/images/updater.img", + // "out/rk3568/packages/phone/updater/bin/updater_binary", +} + +// pkgAvailable returns true if all necessary images are all available to flash. +func (m *Manager) pkgAvailable(pkg string) bool { + for _, img := range imgList { + imgName := filepath.Base(img) + if _, err := os.Stat(filepath.Join(m.Workspace, pkg, imgName)); err != nil { + return false + } + } + return true +} + +// build obtain an available server, download corresponding codes, and run compile commands +// to build the corresponding package images, then transfer these images to the 'pkg' directory. +func (m *Manager) build(pkg string, rm bool, ctx context.Context) error { + logrus.Infof("now build %s", pkg) + server := res.GetBuildServer() + defer res.ReleaseBuildServer(server) + cmd := fmt.Sprintf("mkdir -p %s && cd %s && repo init -u https://gitee.com/openharmony/manifest.git", server.WorkSpace, server.WorkSpace) + if err := utils.RunCmdViaSSHContext(ctx, server.Addr, server.User, server.Passwd, cmd); err != nil { + return fmt.Errorf("remote: mkdir error: %w", err) + } + if err := utils.TransFileViaSSH(utils.Upload, server.Addr, server.User, server.Passwd, + fmt.Sprintf("%s/.repo/manifest.xml", server.WorkSpace), filepath.Join(m.Workspace, pkg, "manifest_tag.xml")); err != nil { + return fmt.Errorf("upload and replace manifest error: %w", err) + } + // 'git lfs install' may fail due to some git hooks. Call 'git lfs update --force' before install to avoid this situation. + cmd = fmt.Sprintf("cd %s && repo sync -c --no-tags --force-remove-dirty && repo forall -c 'git reset --hard && git clean -dfx && git lfs update --force && git lfs install && git lfs pull'", server.WorkSpace) + if err := utils.RunCmdViaSSHContext(ctx, server.Addr, server.User, server.Passwd, cmd); err != nil { + return fmt.Errorf("remote: repo sync error: %w", err) + } + cmd = fmt.Sprintf("cd %s && %s", server.WorkSpace, preCompileCMD) + if err := utils.RunCmdViaSSHContextNoRetry(ctx, server.Addr, server.User, server.Passwd, cmd); err != nil { + return fmt.Errorf("remote: pre-compile command error: %w", err) + } + if rm { + cmd = fmt.Sprintf("cd %s && %s", server.WorkSpace, rmOutCMD) + if err := utils.RunCmdViaSSHContext(ctx, server.Addr, server.User, server.Passwd, cmd); err != nil { + return fmt.Errorf("remote: rm ./out command error: %w", err) + } + } + cmd = fmt.Sprintf("cd %s && %s", server.WorkSpace, compileCMD) + if err := utils.RunCmdViaSSHContextNoRetry(ctx, server.Addr, server.User, server.Passwd, cmd); err != nil { + return fmt.Errorf("remote: compile command error: %w", err) + } + // has been built already, pitiful if canceled, so continue copying + for _, f := range imgList { + imgName := filepath.Base(f) + if err := utils.TransFileViaSSH(utils.Download, server.Addr, server.User, server.Passwd, + fmt.Sprintf("%s/%s", server.WorkSpace, f), filepath.Join(m.Workspace, pkg, imgName)); err != nil { + return fmt.Errorf("download file %s error: %w", f, err) + } + } + return nil +} diff --git a/tools/fotff/pkg/dayu200/dayu200.go b/tools/fotff/pkg/dayu200/dayu200.go new file mode 100644 index 0000000..17ae273 --- /dev/null +++ b/tools/fotff/pkg/dayu200/dayu200.go @@ -0,0 +1,181 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * 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. + */ + +package dayu200 + +import ( + "code.cloudfoundry.org/archiver/extractor" + "context" + "fmt" + "fotff/pkg" + "fotff/res" + "fotff/utils" + "github.com/sirupsen/logrus" + "os" + "path/filepath" + "strconv" + "strings" + "time" +) + +type Manager struct { + ArchiveDir string `key:"archive_dir" default:"."` + FromCI string `key:"download_from_ci" default:"false"` + Workspace string `key:"workspace" default:"."` + Branch string `key:"branch" default:"master"` + FlashTool string `key:"flash_tool" default:"python"` + LocationIDList string `key:"location_id_list"` + locations map[string]string + fromCI bool +} + +func NewManager() pkg.Manager { + var ret Manager + utils.ParseFromConfigFile("dayu200", &ret) + var err error + if ret.fromCI, err = strconv.ParseBool(ret.FromCI); err != nil { + logrus.Panicf("can not parse 'download_from_ci', please check") + } + devs := res.DeviceList() + locs := strings.Split(ret.LocationIDList, ",") + if len(devs) != len(locs) { + logrus.Panicf("location_id_list and devices mismatch") + } + ret.locations = map[string]string{} + for i, loc := range locs { + ret.locations[devs[i]] = loc + } + go ret.cleanupOutdated() + return &ret +} + +func (m *Manager) cleanupOutdated() { + t := time.NewTicker(24 * time.Hour) + for { + <-t.C + es, err := os.ReadDir(m.Workspace) + if err != nil { + logrus.Errorf("can not read %s: %v", m.Workspace, err) + continue + } + for _, e := range es { + if !e.IsDir() { + continue + } + path := filepath.Join(m.Workspace, e.Name()) + info, err := e.Info() + if err != nil { + logrus.Errorf("can not read %s info: %v", path, err) + continue + } + if time.Now().Sub(info.ModTime()) > 7*24*time.Hour { + logrus.Warnf("%s outdated, cleanning up its contents...", path) + m.cleanupPkgFiles(path) + } + } + } +} + +func (m *Manager) cleanupPkgFiles(path string) { + es, err := os.ReadDir(path) + if err != nil { + logrus.Errorf("can not read %s: %v", path, err) + return + } + for _, e := range es { + if e.Name() == "manifest_tag.xml" || e.Name() == "__last_issue__" { + continue + } + if err := os.RemoveAll(filepath.Join(path, e.Name())); err != nil { + logrus.Errorf("remove %s fail: %v", filepath.Join(path, e.Name()), err) + } + } +} + +// Flash function implements pkg.Manager. Flash images in the 'pkg' directory to the given device. +// If not all necessary images are available in the 'pkg' directory, will build them. +func (m *Manager) Flash(device string, pkg string, ctx context.Context) error { + logrus.Infof("now flash %s", pkg) + if !m.pkgAvailable(pkg) { + logrus.Infof("%s is not available", pkg) + if err := m.build(pkg, false, ctx); err != nil { + logrus.Errorf("build pkg %s err: %v", pkg, err) + logrus.Infof("build pkg %s again...", pkg) + if err = m.build(pkg, true, ctx); err != nil { + logrus.Errorf("build pkg %s err: %v", pkg, err) + return err + } + } + } + logrus.Infof("%s is available now, start to flash it", pkg) + return m.flashDevice(device, pkg, ctx) +} + +func (m *Manager) Steps(from, to string) (pkgs []string, err error) { + if from == to { + return nil, fmt.Errorf("steps err: 'from' %s and 'to' %s are the same", from, to) + } + if c, found := utils.CacheGet("dayu200_steps", from+"__to__"+to); found { + logrus.Infof("steps from %s to %s are cached", from, to) + logrus.Infof("steps: %v", c.([]string)) + return c.([]string), nil + } + if pkgs, err = m.stepsFromGitee(from, to); err != nil { + logrus.Errorf("failed to gen steps from gitee, err: %v", err) + logrus.Warnf("fallback to getting steps from CI...") + if pkgs, err = m.stepsFromCI(from, to); err != nil { + return pkgs, err + } + return pkgs, nil + } + utils.CacheSet("dayu200_steps", from+"__to__"+to, pkgs) + return pkgs, nil +} + +func (m *Manager) LastIssue(pkg string) (string, error) { + data, err := os.ReadFile(filepath.Join(m.Workspace, pkg, "__last_issue__")) + return string(data), err +} + +func (m *Manager) GetNewer(cur string) (string, error) { + var newFile string + if m.fromCI { + newFile = m.getNewerFromCI(cur + ".tar.gz") + } else { + newFile = pkg.GetNewerFileFromDir(m.ArchiveDir, cur+".tar.gz", func(files []os.DirEntry, i, j int) bool { + ti, _ := getPackageTime(files[i].Name()) + tj, _ := getPackageTime(files[j].Name()) + return ti.Before(tj) + }) + } + ex := extractor.NewTgz() + dirName := newFile + for filepath.Ext(dirName) != "" { + dirName = strings.TrimSuffix(dirName, filepath.Ext(dirName)) + } + dir := filepath.Join(m.Workspace, dirName) + if _, err := os.Stat(dir); err == nil { + return dirName, nil + } + logrus.Infof("extracting %s to %s...", filepath.Join(m.ArchiveDir, newFile), dir) + if err := ex.Extract(filepath.Join(m.ArchiveDir, newFile), dir); err != nil { + return dirName, err + } + return dirName, nil +} + +func (m *Manager) PkgDir(pkg string) string { + return filepath.Join(m.Workspace, pkg) +} diff --git a/tools/fotff/pkg/dayu200/flash.go b/tools/fotff/pkg/dayu200/flash.go new file mode 100644 index 0000000..6ad078e --- /dev/null +++ b/tools/fotff/pkg/dayu200/flash.go @@ -0,0 +1,128 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * 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. + */ + +package dayu200 + +import ( + "context" + "errors" + "fmt" + "fotff/utils" + "github.com/sirupsen/logrus" + "os" + "path/filepath" + "regexp" + "strings" + "time" +) + +var partList = []string{"boot_linux", "system", "vendor", "userdata", "resource", "ramdisk", "chipset", "sys-prod", "chip-prod", "updater"} + +// All timeouts are calculated on normal cases, we do not certain that timeouts are enough if some sleeps canceled. +// So simply we do not cancel any Sleep(). TODO: use utils.SleepContext() instead. +func (m *Manager) flashDevice(device string, pkg string, ctx context.Context) error { + if err := utils.TryRebootToLoader(device, ctx); err != nil { + return err + } + if err := m.flashImages(device, pkg, ctx); err != nil { + return err + } + time.Sleep(20 * time.Second) // usually, it takes about 20s to reboot into OpenHarmony + if connected := utils.WaitHDC(device, ctx); !connected { + logrus.Errorf("flash device %s done, but boot unnormally, hdc connection fail", device) + return fmt.Errorf("flash device %s done, but boot unnormally, hdc connection fail", device) + } + time.Sleep(10 * time.Second) // wait 10s more to ensure system has been started completely + logrus.Infof("flash device %s successfully", device) + return nil +} + +func (m *Manager) flashImages(device string, pkg string, ctx context.Context) error { + logrus.Infof("calling flash tool to flash %s into %s...", pkg, device) + locationID := m.locations[device] + if locationID == "" { + data, _ := utils.ExecCombinedOutputContext(ctx, m.FlashTool, "LD") + locationID = strings.TrimPrefix(regexp.MustCompile(`LocationID=\d+`).FindString(string(data)), "LocationID=") + if locationID == "" { + time.Sleep(5 * time.Second) + data, _ := utils.ExecCombinedOutputContext(ctx, m.FlashTool, "LD") + locationID = strings.TrimPrefix(regexp.MustCompile(`LocationID=\d+`).FindString(string(data)), "LocationID=") + } + } + logrus.Infof("locationID of %s is [%s]", device, locationID) + if err := utils.ExecContext(ctx, m.FlashTool, "-s", locationID, "UL", filepath.Join(m.Workspace, pkg, "MiniLoaderAll.bin"), "-noreset"); err != nil { + if errors.Is(err, context.Canceled) { + return err + } + logrus.Errorf("flash MiniLoaderAll.bin fail: %v", err) + time.Sleep(5 * time.Second) + if err := utils.ExecContext(ctx, m.FlashTool, "-s", locationID, "UL", filepath.Join(m.Workspace, pkg, "MiniLoaderAll.bin"), "-noreset"); err != nil { + if errors.Is(err, context.Canceled) { + return err + } + logrus.Errorf("flash MiniLoaderAll.bin fail: %v", err) + return err + } + } + time.Sleep(3 * time.Second) + if err := utils.ExecContext(ctx, m.FlashTool, "-s", locationID, "DI", "-p", filepath.Join(m.Workspace, pkg, "parameter.txt")); err != nil { + if errors.Is(err, context.Canceled) { + return err + } + logrus.Errorf("flash parameter.txt fail: %v", err) + return err + } + time.Sleep(5 * time.Second) + if err := utils.ExecContext(ctx, m.FlashTool, "-s", locationID, "DI", "-uboot", filepath.Join(m.Workspace, pkg, "uboot.img"), filepath.Join(m.Workspace, pkg, "parameter.txt")); err != nil { + if errors.Is(err, context.Canceled) { + return err + } + logrus.Errorf("flash device fail: %v", err) + return err + } + time.Sleep(5 * time.Second) + for _, part := range partList { + if _, err := os.Stat(filepath.Join(m.Workspace, pkg, part+".img")); err != nil { + if os.IsNotExist(err) { + logrus.Infof("part %s.img not exist, ignored", part) + continue + } + return err + } + if err := utils.ExecContext(ctx, m.FlashTool, "-s", locationID, "DI", "-"+part, filepath.Join(m.Workspace, pkg, part+".img"), filepath.Join(m.Workspace, pkg, "parameter.txt")); err != nil { + if errors.Is(err, context.Canceled) { + return err + } + logrus.Errorf("flash device fail: %v", err) + logrus.Warnf("try again...") + if err := utils.ExecContext(ctx, m.FlashTool, "-s", locationID, "DI", "-"+part, filepath.Join(m.Workspace, pkg, part+".img"), filepath.Join(m.Workspace, pkg, "parameter.txt")); err != nil { + if errors.Is(err, context.Canceled) { + return err + } + logrus.Errorf("flash device fail: %v", err) + return err + } + } + time.Sleep(3 * time.Second) + } + time.Sleep(5 * time.Second) // sleep a while for writing + if err := utils.ExecContext(ctx, m.FlashTool, "-s", locationID, "RD"); err != nil { + if errors.Is(err, context.Canceled) { + return err + } + return fmt.Errorf("reboot device fail: %v", err) + } + return nil +} diff --git a/tools/fotff/pkg/dayu200/get_newer_ci.go b/tools/fotff/pkg/dayu200/get_newer_ci.go new file mode 100644 index 0000000..b845e2d --- /dev/null +++ b/tools/fotff/pkg/dayu200/get_newer_ci.go @@ -0,0 +1,119 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * 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. + */ + +package dayu200 + +import ( + "encoding/json" + "fotff/utils" + "github.com/sirupsen/logrus" + "io" + "net/http" + "os" + "path/filepath" + "time" +) + +type DailyBuildsQueryParam struct { + ProjectName string `json:"projectName"` + Branch string `json:"branch"` + Component string `json:"component"` + BuildStatus string `json:"buildStatus"` + StartTime string `json:"startTime"` + EndTime string `json:"endTime"` + PageNum int `json:"pageNum"` + PageSize int `json:"pageSize"` +} + +type DailyBuildsResp struct { + Result struct { + DailyBuildVos []*DailyBuild `json:"dailyBuildVos"` + Total int `json:"total"` + } `json:"result"` +} + +type DailyBuild struct { + Id string `json:"id"` + ImgObsPath string `json:"imgObsPath"` +} + +func (m *Manager) getNewerFromCI(cur string) string { + for { + file := func() string { + var q = DailyBuildsQueryParam{ + ProjectName: "openharmony", + Branch: m.Branch, + Component: "dayu200", + BuildStatus: "success", + PageNum: 1, + PageSize: 1, + } + data, err := json.Marshal(q) + if err != nil { + logrus.Errorf("can not marshal query param: %v", err) + return "" + } + resp, err := utils.DoSimpleHttpReq(http.MethodPost, "http://ci.openharmony.cn/api/ci-backend/ci-portal/v1/dailybuilds", data, map[string]string{"Content-Type": "application/json;charset=UTF-8"}) + if err != nil { + logrus.Errorf("can not query builds: %v", err) + return "" + } + var dailyBuildsResp DailyBuildsResp + if err := json.Unmarshal(resp, &dailyBuildsResp); err != nil { + logrus.Errorf("can not unmarshal resp [%s]: %v", string(resp), err) + return "" + } + if len(dailyBuildsResp.Result.DailyBuildVos) != 0 { + url := dailyBuildsResp.Result.DailyBuildVos[0].ImgObsPath + if filepath.Base(url) != cur { + logrus.Infof("new package found, name: %s", filepath.Base(url)) + file, err := m.downloadToWorkspace(url) + if err != nil { + logrus.Errorf("can not download package %s: %v", url, err) + return "" + } + return file + } + } + return "" + }() + if file != "" { + return file + } + time.Sleep(10 * time.Minute) + } +} + +func (m *Manager) downloadToWorkspace(url string) (string, error) { + logrus.Infof("downloading %s", url) + resp, err := utils.DoSimpleHttpReqRaw(http.MethodGet, url, nil, nil) + if err != nil { + return "", err + } + defer resp.Body.Close() + if err := os.MkdirAll(m.ArchiveDir, 0750); err != nil { + return "", err + } + f, err := os.Create(filepath.Join(m.ArchiveDir, filepath.Base(url))) + if err != nil { + return "", err + } + defer f.Close() + if _, err := io.CopyBuffer(f, resp.Body, make([]byte, 16*1024*1024)); err != nil { + return "", err + } + logrus.Infof("%s downloaded successfully", url) + return filepath.Base(url), nil +} diff --git a/tools/fotff/pkg/dayu200/steps_ci.go b/tools/fotff/pkg/dayu200/steps_ci.go new file mode 100644 index 0000000..577f9f2 --- /dev/null +++ b/tools/fotff/pkg/dayu200/steps_ci.go @@ -0,0 +1,156 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * 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. + */ + +package dayu200 + +import ( + "encoding/json" + "fmt" + "fotff/utils" + "github.com/sirupsen/logrus" + "net/http" + "os" + "path/filepath" + "sort" + "time" +) + +type TagQueryParam struct { + ProjectName string `json:"projectName"` + Branch string `json:"branch"` + ManifestFile string `json:"manifestFile"` + StartTime string `json:"startTime"` + EndTime string `json:"endTime"` + PageNum int `json:"pageNum"` + PageSize int `json:"pageSize"` +} + +type TagResp struct { + Result struct { + TagList []*Tag `json:"tagList"` + Total int `json:"total"` + } `json:"result"` +} + +type Tag struct { + Id string `json:"id"` + Issue string `json:"issue"` + PrList []string `json:"prList"` + TagFileURL string `json:"tagFileUrl"` + Timestamp string `json:"timestamp"` +} + +func (m *Manager) stepsFromCI(from, to string) (pkgs []string, err error) { + startTime, err := getPackageTime(from) + if err != nil { + return nil, err + } + endTime, err := getPackageTime(to) + if err != nil { + return nil, err + } + return m.getAllStepsFromTags(startTime, endTime) +} + +func (m *Manager) getAllStepsFromTags(from, to time.Time) (pkgs []string, err error) { + tags, err := m.getAllTags(from, to) + if err != nil { + return nil, err + } + sort.Slice(tags, func(i, j int) bool { + return tags[i].Timestamp < tags[j].Timestamp + }) + for _, tag := range tags { + pkg, err := m.genTagPackage(tag) + if err != nil { + return nil, err + } + pkgs = append(pkgs, pkg) + } + return pkgs, nil +} + +func (m *Manager) getAllTags(from, to time.Time) (ret []*Tag, err error) { + var deDup = make(map[string]*Tag) + var pageNum = 1 + for { + var q = TagQueryParam{ + ProjectName: "openharmony", + Branch: m.Branch, + ManifestFile: "default.xml", + StartTime: from.Local().Format("2006-01-02"), + EndTime: to.Local().Format("2006-01-02"), + PageNum: pageNum, + PageSize: 10000, + } + data, err := json.Marshal(q) + if err != nil { + return nil, err + } + resp, err := utils.DoSimpleHttpReq(http.MethodPost, "http://ci.openharmony.cn/api/ci-backend/ci-portal/v1/build/tag", data, map[string]string{"Content-Type": "application/json;charset=UTF-8"}) + if err != nil { + return nil, err + } + var tagResp TagResp + if err := json.Unmarshal(resp, &tagResp); err != nil { + return nil, err + } + for _, tag := range tagResp.Result.TagList { + if _, ok := deDup[tag.Id]; ok { + continue + } + deDup[tag.Id] = tag + date, err := time.ParseInLocation("2006-01-02 15:04:05", tag.Timestamp, time.Local) + if err != nil { + return nil, err + } + if date.After(from) && date.Before(to) { + ret = append(ret, tag) + } + } + if len(deDup) == tagResp.Result.Total { + break + } + pageNum++ + } + return ret, nil +} + +func (m *Manager) genTagPackage(tag *Tag) (pkg string, err error) { + defer func() { + logrus.Infof("package dir %s for tag %v generated", pkg, tag.TagFileURL) + }() + if err := os.MkdirAll(filepath.Join(m.Workspace, tag.Id), 0750); err != nil { + return "", err + } + var issues []string + if len(tag.Issue) == 0 { + issues = tag.PrList + } else { + issues = []string{tag.Issue} + } + if err := os.WriteFile(filepath.Join(m.Workspace, tag.Id, "__last_issue__"), []byte(fmt.Sprintf("%v", issues)), 0640); err != nil { + return "", err + } + resp, err := utils.DoSimpleHttpReq(http.MethodGet, tag.TagFileURL, nil, nil) + if err != nil { + return "", err + } + err = os.WriteFile(filepath.Join(m.Workspace, tag.Id, "manifest_tag.xml"), resp, 0640) + if err != nil { + return "", err + } + return tag.Id, nil +} diff --git a/tools/fotff/pkg/dayu200/steps_gitee.go b/tools/fotff/pkg/dayu200/steps_gitee.go new file mode 100644 index 0000000..543c82a --- /dev/null +++ b/tools/fotff/pkg/dayu200/steps_gitee.go @@ -0,0 +1,365 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * 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. + */ + +package dayu200 + +import ( + "bufio" + "bytes" + "encoding/xml" + "fmt" + "fotff/vcs" + "fotff/vcs/gitee" + "github.com/huandu/go-clone" + "github.com/sirupsen/logrus" + "os" + "path/filepath" + "regexp" + "sort" + "strconv" + "strings" + "sync" + "time" +) + +type IssueInfo struct { + visited bool + RelatedIssues []string + MRs []*gitee.Commit + StructCTime string + StructureUpdates []*vcs.ProjectUpdate +} + +type Step struct { + IssueURLs []string + MRs []*gitee.Commit + StructCTime string + StructureUpdates []*vcs.ProjectUpdate +} + +func (m *Manager) stepsFromGitee(from, to string) (pkgs []string, err error) { + updates, err := m.getRepoUpdates(from, to) + if err != nil { + return nil, err + } + startTime, err := getPackageTime(from) + if err != nil { + return nil, err + } + endTime, err := getPackageTime(to) + if err != nil { + return nil, err + } + logrus.Infof("find %d repo updates from %s to %s", len(updates), from, to) + steps, err := getAllStepsFromGitee(startTime, endTime, m.Branch, updates) + if err != nil { + return nil, err + } + logrus.Infof("find total %d steps from %s to %s", len(steps), from, to) + baseManifest, err := vcs.ParseManifestFile(filepath.Join(m.Workspace, from, "manifest_tag.xml")) + if err != nil { + return nil, err + } + for _, step := range steps { + var newPkg string + if newPkg, baseManifest, err = m.genStepPackage(baseManifest, step); err != nil { + return nil, err + } + pkgs = append(pkgs, newPkg) + } + return pkgs, nil +} + +func (m *Manager) getRepoUpdates(from, to string) (updates []vcs.ProjectUpdate, err error) { + m1, err := vcs.ParseManifestFile(filepath.Join(m.Workspace, from, "manifest_tag.xml")) + if err != nil { + return nil, err + } + m2, err := vcs.ParseManifestFile(filepath.Join(m.Workspace, to, "manifest_tag.xml")) + if err != nil { + return nil, err + } + return vcs.GetRepoUpdates(m1, m2) +} + +func getAllStepsFromGitee(startTime, endTime time.Time, branch string, updates []vcs.ProjectUpdate) (ret []Step, err error) { + allMRs, err := getAllMRs(startTime, endTime, branch, updates) + if err != nil { + return nil, err + } + issueInfos, err := combineMRsToIssue(allMRs, branch) + if err != nil { + return nil, err + } + return combineIssuesToStep(issueInfos) +} + +func getAllMRs(startTime, endTime time.Time, branch string, updates []vcs.ProjectUpdate) (allMRs []*gitee.Commit, err error) { + var once sync.Once + for _, update := range updates { + var prs []*gitee.Commit + if update.P1.StructureDiff(update.P2) { + once.Do(func() { + prs, err = gitee.GetBetweenTimeMRs("openharmony", "manifest", branch, startTime, endTime) + }) + if update.P1 != nil { + var p1 []*gitee.Commit + p1, err = gitee.GetBetweenTimeMRs("openharmony", update.P1.Name, branch, startTime, endTime) + prs = append(prs, p1...) + } + if update.P2 != nil { + var p2 []*gitee.Commit + p2, err = gitee.GetBetweenTimeMRs("openharmony", update.P2.Name, branch, startTime, endTime) + prs = append(prs, p2...) + } + } else { + prs, err = gitee.GetBetweenMRs(gitee.CompareParam{ + Head: update.P2.Revision, + Base: update.P1.Revision, + Owner: "openharmony", + Repo: update.P2.Name, + }) + } + if err != nil { + return nil, err + } + allMRs = append(allMRs, prs...) + } + logrus.Infof("find total %d merge request commits of all repo updates", len(allMRs)) + return +} + +func combineMRsToIssue(allMRs []*gitee.Commit, branch string) (map[string]*IssueInfo, error) { + ret := make(map[string]*IssueInfo) + for _, mr := range allMRs { + num, err := strconv.Atoi(strings.Trim(regexp.MustCompile(`!\d+ `).FindString(mr.Commit.Message), "! ")) + if err != nil { + return nil, fmt.Errorf("parse MR message for %s fail: %s", mr.URL, err) + } + issues, err := gitee.GetMRIssueURL(mr.Owner, mr.Repo, num) + if err != nil { + return nil, err + } + if len(issues) == 0 { + issues = []string{mr.URL} + } + var scs []*vcs.ProjectUpdate + var scTime string + if mr.Owner == "openharmony" && mr.Repo == "manifest" { + if scTime, scs, err = parseStructureUpdates(mr, branch); err != nil { + return nil, err + } + } + for i, issue := range issues { + if _, ok := ret[issue]; !ok { + ret[issue] = &IssueInfo{ + MRs: []*gitee.Commit{mr}, + RelatedIssues: append(issues[:i], issues[i+1:]...), + StructCTime: scTime, + StructureUpdates: scs, + } + } else { + ret[issue] = &IssueInfo{ + MRs: append(ret[issue].MRs, mr), + RelatedIssues: append(ret[issue].RelatedIssues, append(issues[:i], issues[i+1:]...)...), + StructCTime: scTime, + StructureUpdates: append(ret[issue].StructureUpdates, scs...), + } + } + } + } + logrus.Infof("find total %d issues of all repo updates", len(ret)) + return ret, nil +} + +func combineOtherRelatedIssue(parent, self *IssueInfo, all map[string]*IssueInfo) { + if self.visited { + return + } + self.visited = true + for _, other := range self.RelatedIssues { + if son, ok := all[other]; ok { + combineOtherRelatedIssue(self, son, all) + delete(all, other) + } + } + parent.RelatedIssues = deDupIssues(append(parent.RelatedIssues, self.RelatedIssues...)) + parent.MRs = deDupMRs(append(parent.MRs, self.MRs...)) + parent.StructureUpdates = deDupProjectUpdates(append(parent.StructureUpdates, self.StructureUpdates...)) + if len(parent.StructCTime) != 0 && parent.StructCTime < self.StructCTime { + parent.StructCTime = self.StructCTime + } +} + +func deDupProjectUpdates(us []*vcs.ProjectUpdate) (retMRs []*vcs.ProjectUpdate) { + dupIndexes := make([]bool, len(us)) + for i := range us { + for j := i + 1; j < len(us); j++ { + if us[j].P1 == us[i].P1 && us[j].P2 == us[i].P2 { + dupIndexes[j] = true + } + } + } + for i, dup := range dupIndexes { + if dup { + continue + } + retMRs = append(retMRs, us[i]) + } + return +} + +func deDupMRs(mrs []*gitee.Commit) (retMRs []*gitee.Commit) { + tmp := make(map[string]*gitee.Commit) + for _, m := range mrs { + tmp[m.SHA] = m + } + for _, m := range tmp { + retMRs = append(retMRs, m) + } + return +} + +func deDupIssues(issues []string) (retIssues []string) { + tmp := make(map[string]string) + for _, i := range issues { + tmp[i] = i + } + for _, i := range tmp { + retIssues = append(retIssues, i) + } + return +} + +// parseStructureUpdates get changed XMLs and parse it to recognize repo structure changes. +// Since we do not care which revision a repo was, P1 is not welly handled, just assign it not nil for performance. +func parseStructureUpdates(commit *gitee.Commit, branch string) (string, []*vcs.ProjectUpdate, error) { + tmp := make(map[string]vcs.ProjectUpdate) + if len(commit.Files) == 0 { + // commit that queried from MR req does not contain file details, should fetch again + var err error + if commit, err = gitee.GetCommit(commit.Owner, commit.Repo, commit.SHA); err != nil { + return "", nil, err + } + } + for _, f := range commit.Files { + if filepath.Ext(f.Filename) != ".xml" { + continue + } + if err := parseFilePatch(f.Patch, tmp); err != nil { + return "", nil, err + } + } + var ret []*vcs.ProjectUpdate + for _, pu := range tmp { + projectUpdateCopy := pu + ret = append(ret, &projectUpdateCopy) + } + for _, pu := range ret { + if pu.P1 == nil && pu.P2 != nil { + lastCommit, err := gitee.GetLatestMRBefore("openharmony", pu.P2.Name, branch, commit.Commit.Committer.Date) + if err != nil { + return "", nil, err + } + pu.P2.Revision = lastCommit.SHA + } + } + return commit.Commit.Committer.Date, ret, nil +} + +func parseFilePatch(str string, m map[string]vcs.ProjectUpdate) error { + sc := bufio.NewScanner(bytes.NewBuffer([]byte(str))) + for sc.Scan() { + line := sc.Text() + var p vcs.Project + if strings.HasPrefix(line, "-") { + if err := xml.Unmarshal([]byte(line[1:]), &p); err == nil { + m[p.Name] = vcs.ProjectUpdate{P1: &p, P2: m[p.Name].P2} + } + } else if strings.HasPrefix(line, "+") { + if err := xml.Unmarshal([]byte(line[1:]), &p); err == nil { + m[p.Name] = vcs.ProjectUpdate{P1: m[p.Name].P1, P2: &p} + } + } + } + return nil +} + +func combineIssuesToStep(issueInfos map[string]*IssueInfo) (ret []Step, err error) { + for _, info := range issueInfos { + combineOtherRelatedIssue(info, info, issueInfos) + } + for issue, infos := range issueInfos { + sort.Slice(infos.MRs, func(i, j int) bool { + // move the latest MR to the first place, use its merged_time to represent the update time of the issue + return infos.MRs[i].Commit.Committer.Date > infos.MRs[j].Commit.Committer.Date + }) + ret = append(ret, Step{ + IssueURLs: append(infos.RelatedIssues, issue), + MRs: infos.MRs, + StructCTime: infos.StructCTime, + StructureUpdates: infos.StructureUpdates}) + } + sort.Slice(ret, func(i, j int) bool { + ti, tj := ret[i].MRs[0].Commit.Committer.Date, ret[j].MRs[0].Commit.Committer.Date + if len(ret[i].StructCTime) != 0 { + ti = ret[i].StructCTime + } + if len(ret[j].StructCTime) != 0 { + ti = ret[j].StructCTime + } + return ti < tj + }) + logrus.Infof("find total %d steps of all issues", len(ret)) + return +} + +var simpleRegTimeInPkgName = regexp.MustCompile(`\d{8}_\d{6}`) + +func getPackageTime(pkg string) (time.Time, error) { + return time.ParseInLocation(`20060102_150405`, simpleRegTimeInPkgName.FindString(pkg), time.Local) +} + +func (m *Manager) genStepPackage(base *vcs.Manifest, step Step) (newPkg string, newManifest *vcs.Manifest, err error) { + defer func() { + logrus.Infof("package dir %s for step %v generated", newPkg, step.IssueURLs) + }() + newManifest = clone.Clone(base).(*vcs.Manifest) + for _, u := range step.StructureUpdates { + if u.P2 != nil { + newManifest.UpdateManifestProject(u.P2.Name, u.P2.Path, u.P2.Remote, u.P2.Revision, true) + } else if u.P1 != nil { + newManifest.RemoveManifestProject(u.P1.Name) + } + } + for _, mr := range step.MRs { + newManifest.UpdateManifestProject(mr.Repo, "", "", mr.SHA, false) + } + md5sum, err := newManifest.Standardize() + if err != nil { + return "", nil, err + } + if err := os.MkdirAll(filepath.Join(m.Workspace, md5sum), 0750); err != nil { + return "", nil, err + } + if err := os.WriteFile(filepath.Join(m.Workspace, md5sum, "__last_issue__"), []byte(fmt.Sprintf("%v", step.IssueURLs)), 0640); err != nil { + return "", nil, err + } + err = newManifest.WriteFile(filepath.Join(m.Workspace, md5sum, "manifest_tag.xml")) + if err != nil { + return "", nil, err + } + return md5sum, newManifest, nil +} diff --git a/tools/fotff/pkg/dayu200/steps_gitee_test.go b/tools/fotff/pkg/dayu200/steps_gitee_test.go new file mode 100644 index 0000000..f7b86f1 --- /dev/null +++ b/tools/fotff/pkg/dayu200/steps_gitee_test.go @@ -0,0 +1,100 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * 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. + */ + +package dayu200 + +import ( + "fotff/vcs" + "os" + "path/filepath" + "strings" + "testing" +) + +func TestMain(m *testing.M) { + defer os.RemoveAll(".fotff") + defer os.RemoveAll("logs") + m.Run() +} + +func TestManager_Steps(t *testing.T) { + m := &Manager{Workspace: "./testdata", Branch: "master"} + defer func() { + entries, _ := os.ReadDir(m.Workspace) + for _, e := range entries { + if strings.HasPrefix(e.Name(), "version") { + continue + } + os.RemoveAll(filepath.Join(m.Workspace, e.Name())) + } + }() + tests := []struct { + name string + from, to string + stepsNum int + }{ + { + name: "15 MR of 15 steps in 12 repo, with 1 path change", + from: "version-Daily_Version-dayu200-20221201_080109-dayu200", + to: "version-Daily_Version-dayu200-20221201_100141-dayu200", + stepsNum: 15, + }, + { + name: "27 MR of 25 steps in 21 repo, with 1 repo add", + from: "version-Daily_Version-dayu200-20221213_110027-dayu200", + to: "version-Daily_Version-dayu200-20221213_140150-dayu200", + stepsNum: 25, + }, + { + name: "15 MR of 14 steps in 14 repo, no structure change", + from: "version-Daily_Version-dayu200-20221214_100124-dayu200", + to: "version-Daily_Version-dayu200-20221214_110125-dayu200", + stepsNum: 14, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + ret, err := m.Steps(tt.from, tt.to) + if err != nil { + t.Fatalf("err: expcect: , actual: %v", err) + } + if len(ret) != tt.stepsNum { + t.Fatalf("steps num: expcect: %d, actual: %v", tt.stepsNum, len(ret)) + } + if tt.stepsNum == 0 { + return + } + mLast, err := vcs.ParseManifestFile(filepath.Join(m.Workspace, ret[len(ret)-1], "manifest_tag.xml")) + if err != nil { + t.Fatalf("err: expcect: , actual: %v", err) + } + mLastMD5, err := mLast.Standardize() + if err != nil { + t.Fatalf("err: expcect: , actual: %v", err) + } + expected, err := vcs.ParseManifestFile(filepath.Join(m.Workspace, tt.to, "manifest_tag.xml")) + if err != nil { + t.Fatalf("err: expcect: , actual: %v", err) + } + expectedMD5, err := expected.Standardize() + if err != nil { + t.Fatalf("err: expcect: , actual: %v", err) + } + if mLastMD5 != expectedMD5 { + t.Errorf("steps result: expect: %s, actual: %s", expectedMD5, mLastMD5) + } + }) + } +} diff --git a/tools/fotff/pkg/dayu200/testdata/version-Daily_Version-dayu200-20221201_080109-dayu200/manifest_tag.xml b/tools/fotff/pkg/dayu200/testdata/version-Daily_Version-dayu200-20221201_080109-dayu200/manifest_tag.xml new file mode 100644 index 0000000..d6cddc4 --- /dev/null +++ b/tools/fotff/pkg/dayu200/testdata/version-Daily_Version-dayu200-20221201_080109-dayu200/manifest_tag.xml @@ -0,0 +1,411 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tools/fotff/pkg/dayu200/testdata/version-Daily_Version-dayu200-20221201_100141-dayu200/manifest_tag.xml b/tools/fotff/pkg/dayu200/testdata/version-Daily_Version-dayu200-20221201_100141-dayu200/manifest_tag.xml new file mode 100644 index 0000000..700fe6b --- /dev/null +++ b/tools/fotff/pkg/dayu200/testdata/version-Daily_Version-dayu200-20221201_100141-dayu200/manifest_tag.xml @@ -0,0 +1,411 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tools/fotff/pkg/dayu200/testdata/version-Daily_Version-dayu200-20221213_110027-dayu200/manifest_tag.xml b/tools/fotff/pkg/dayu200/testdata/version-Daily_Version-dayu200-20221213_110027-dayu200/manifest_tag.xml new file mode 100644 index 0000000..51b92b7 --- /dev/null +++ b/tools/fotff/pkg/dayu200/testdata/version-Daily_Version-dayu200-20221213_110027-dayu200/manifest_tag.xml @@ -0,0 +1,411 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tools/fotff/pkg/dayu200/testdata/version-Daily_Version-dayu200-20221213_140150-dayu200/manifest_tag.xml b/tools/fotff/pkg/dayu200/testdata/version-Daily_Version-dayu200-20221213_140150-dayu200/manifest_tag.xml new file mode 100644 index 0000000..c1b47de --- /dev/null +++ b/tools/fotff/pkg/dayu200/testdata/version-Daily_Version-dayu200-20221213_140150-dayu200/manifest_tag.xml @@ -0,0 +1,412 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tools/fotff/pkg/dayu200/testdata/version-Daily_Version-dayu200-20221214_100124-dayu200/manifest_tag.xml b/tools/fotff/pkg/dayu200/testdata/version-Daily_Version-dayu200-20221214_100124-dayu200/manifest_tag.xml new file mode 100644 index 0000000..b1f452e --- /dev/null +++ b/tools/fotff/pkg/dayu200/testdata/version-Daily_Version-dayu200-20221214_100124-dayu200/manifest_tag.xml @@ -0,0 +1,412 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tools/fotff/pkg/dayu200/testdata/version-Daily_Version-dayu200-20221214_110125-dayu200/manifest_tag.xml b/tools/fotff/pkg/dayu200/testdata/version-Daily_Version-dayu200-20221214_110125-dayu200/manifest_tag.xml new file mode 100644 index 0000000..580e14f --- /dev/null +++ b/tools/fotff/pkg/dayu200/testdata/version-Daily_Version-dayu200-20221214_110125-dayu200/manifest_tag.xml @@ -0,0 +1,412 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tools/fotff/pkg/mock/mock.go b/tools/fotff/pkg/mock/mock.go new file mode 100644 index 0000000..be38bf5 --- /dev/null +++ b/tools/fotff/pkg/mock/mock.go @@ -0,0 +1,65 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * 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. + */ + +package mock + +import ( + "context" + "fmt" + "fotff/pkg" + "github.com/sirupsen/logrus" + "time" +) + +type Manager struct { + pkgCount int +} + +func NewManager() pkg.Manager { + return &Manager{} +} + +func (m *Manager) LastIssue(pkg string) (string, error) { + ret := fmt.Sprintf("https://testserver.com/issues/%s", pkg) + logrus.Infof("LastIssue: mock implementation returns %s", ret) + return ret, nil +} + +func (m *Manager) Steps(from, to string) ([]string, error) { + var ret = []string{"step1", "step2", "step3"} + for i := range ret { + ret[i] = fmt.Sprintf("%s-%s-%s", from, to, ret[i]) + } + logrus.Infof("Steps: mock implementation returns %v", ret) + return ret, nil +} + +func (m *Manager) GetNewer(cur string) (string, error) { + ret := fmt.Sprintf("pkg%d", m.pkgCount) + time.Sleep(time.Duration(m.pkgCount) * time.Second) + m.pkgCount++ + logrus.Infof("GetNewer: mock implementation returns %s", ret) + return ret, nil +} + +func (m *Manager) Flash(device string, pkg string, ctx context.Context) error { + time.Sleep(time.Second) + logrus.Infof("Flash: flashing %s to %s, mock implementation returns OK unconditionally", pkg, device) + return nil +} + +func (m *Manager) PkgDir(pkg string) string { + return pkg +} diff --git a/tools/fotff/pkg/pkg.go b/tools/fotff/pkg/pkg.go new file mode 100644 index 0000000..142ae30 --- /dev/null +++ b/tools/fotff/pkg/pkg.go @@ -0,0 +1,61 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * 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. + */ + +package pkg + +import ( + "context" + "github.com/sirupsen/logrus" + "os" + "sort" + "time" +) + +type NewFunc func() Manager + +type Manager interface { + // Flash download given package to the device. + Flash(device string, pkg string, ctx context.Context) error + // LastIssue returns the last issue URL related to the package. + LastIssue(pkg string) (string, error) + // Steps generates every intermediate package and returns the list sequentially. + Steps(from, to string) ([]string, error) + // GetNewer blocks the process until a newer package is found, then returns the newest one. + GetNewer(cur string) (string, error) + // PkgDir returns where pkg exists in the filesystem. + PkgDir(pkg string) string +} + +func GetNewerFileFromDir(dir string, cur string, less func(files []os.DirEntry, i, j int) bool) string { + for { + files, err := os.ReadDir(dir) + if err != nil { + logrus.Errorf("read dir %s err: %s", dir, err) + time.Sleep(10 * time.Second) + continue + } + sort.Slice(files, func(i, j int) bool { + return less(files, i, j) + }) + if len(files) != 0 { + f := files[len(files)-1] + if f.Name() != cur { + logrus.Infof("new package found, name: %s", f.Name()) + return f.Name() + } + } + time.Sleep(10 * time.Second) + } +} diff --git a/tools/fotff/rec/fotff.go b/tools/fotff/rec/fotff.go new file mode 100644 index 0000000..84e108f --- /dev/null +++ b/tools/fotff/rec/fotff.go @@ -0,0 +1,184 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * 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. + */ + +package rec + +import ( + "context" + "errors" + "fmt" + "fotff/pkg" + "fotff/res" + "fotff/tester" + "fotff/utils" + "github.com/sirupsen/logrus" + "math" + "sync" +) + +type cancelCtx struct { + ctx context.Context + fn context.CancelFunc +} + +// FindOutTheFirstFail returns the first issue URL that introduce the failure. +// 'fellows' are optional, these testcases may be tested with target testcase together. +func FindOutTheFirstFail(m pkg.Manager, t tester.Tester, testCase string, successPkg string, failPkg string, fellows ...string) (string, error) { + if successPkg == "" { + return "", fmt.Errorf("can not get a success package for %s", testCase) + } + steps, err := m.Steps(successPkg, failPkg) + if err != nil { + return "", err + } + return findOutTheFirstFail(m, t, testCase, steps, fellows...) +} + +// findOutTheFirstFail is the recursive implementation to find out the first issue URL that introduce the failure. +// Arg steps' length must be grater than 1. The last step is a pre-known failure, while the rests are not tested. +// 'fellows' are optional. In the last recursive term, they have the same result as what the target testcases has. +// These fellows can be tested with target testcase together in this term to accelerate testing. +func findOutTheFirstFail(m pkg.Manager, t tester.Tester, testcase string, steps []string, fellows ...string) (string, error) { + if len(steps) == 0 { + return "", errors.New("steps are no between (success, failure], perhaps the failure is occasional") + } + logrus.Infof("now use %d-section search to find out the first fault, the length of range is %d, between [%s, %s]", res.Num()+1, len(steps), steps[0], steps[len(steps)-1]) + if len(steps) == 1 { + return m.LastIssue(steps[0]) + } + // calculate gaps between every check point of N-section search. At least 1, or will cause duplicated tests. + gapLen := float64(len(steps)-1) / float64(res.Num()+1) + if gapLen < 1 { + gapLen = 1 + } + // 'success' and 'fail' record the left/right steps indexes of the next term recursive call. + // Here defines functions and surrounding helpers to update success/fail indexes and cancel un-needed tests. + success, fail := -1, len(steps)-1 + var lock sync.Mutex + var contexts []cancelCtx + updateRange := func(pass bool, index int) { + lock.Lock() + defer lock.Unlock() + if pass && index > success { + success = index + for _, ctx := range contexts { + if ctx.ctx.Value("index").(int) < success { + ctx.fn() + } + } + } + if !pass && index < fail { + fail = index + for _, ctx := range contexts { + if ctx.ctx.Value("index").(int) > fail { + ctx.fn() + } + } + } + } + // Now, start all tests concurrently. + var wg sync.WaitGroup + start := make(chan struct{}) + for i := 1; i <= res.Num(); i++ { + // Since the last step is a pre-known failure, we start index from the tail to avoid testing the last one. + // Otherwise, if the last step is the only one we test this term, we can not narrow ranges to continue. + index := len(steps) - 1 - int(math.Round(float64(i)*gapLen)) + if index < 0 { + break + } + ctx, fn := context.WithCancel(context.WithValue(context.TODO(), "index", index)) + contexts = append(contexts, cancelCtx{ctx: ctx, fn: fn}) + wg.Add(1) + go func(index int, ctx context.Context) { + defer wg.Done() + // Start after all test goroutine's contexts are registered. + // Otherwise, contexts that not registered yet may out of controlling. + <-start + var pass bool + var err error + pass, fellows, err = flashAndTest(m, t, steps[index], testcase, ctx, fellows...) + if err != nil { + if errors.Is(err, context.Canceled) { + logrus.Warnf("abort to flash %s and test %s: %v", steps[index], testcase, err) + } else { + logrus.Errorf("flash %s and test %s fail: %v", steps[index], testcase, err) + } + return + } + updateRange(pass, index) + }(index, ctx) + } + close(start) + wg.Wait() + if fail-success == len(steps) { + return "", errors.New("all judgements failed, can not narrow ranges to continue") + } + return findOutTheFirstFail(m, t, testcase, steps[success+1:fail+1], fellows...) +} + +func flashAndTest(m pkg.Manager, t tester.Tester, pkg string, testcase string, ctx context.Context, fellows ...string) (bool, []string, error) { + var newFellows []string + if result, found := utils.CacheGet("testcase_result", testcase+"__at__"+pkg); found { + logrus.Infof("get testcase result %s from cache done, result is %s", result.(tester.Result).TestCaseName, result.(tester.Result).Status) + for _, fellow := range fellows { + if fellowResult, fellowFound := utils.CacheGet("testcase_result", fellow+"__at__"+pkg); fellowFound { + logrus.Infof("get testcase result %s from cache done, result is %s", fellowResult.(tester.Result).TestCaseName, fellowResult.(tester.Result).Status) + if fellowResult.(tester.Result).Status == result.(tester.Result).Status { + newFellows = append(newFellows, fellow) + } + } + } + return result.(tester.Result).Status == tester.ResultPass, newFellows, nil + } + var results []tester.Result + device := res.GetDevice() + defer res.ReleaseDevice(device) + if err := m.Flash(device, pkg, ctx); err != nil && !errors.Is(err, context.Canceled) { + // Sometimes we need to find out the first compilation failure. Treat it as a normal test failure to re-use this framework. + var cfg struct { + AllowBuildError string `key:"allow_build_err"` + } + utils.ParseFromConfigFile("", &cfg) + if cfg.AllowBuildError != "true" { + return false, newFellows, err + } + logrus.Warnf("can not flash %s to %s, assume it as a failure: %v", pkg, device, err) + for _, cases := range append(fellows, testcase) { + results = append(results, tester.Result{TestCaseName: cases, Status: tester.ResultFail}) + } + } else { + if err = t.Prepare(m.PkgDir(pkg), device, ctx); err != nil { + return false, newFellows, err + } + results, err = t.DoTestCases(device, append(fellows, testcase), ctx) + if err != nil { + return false, newFellows, err + } + } + var testcaseStatus tester.ResultStatus + for _, result := range results { + logrus.Infof("do testcase %s at %s done, result is %s", result.TestCaseName, device, result.Status) + if result.TestCaseName == testcase { + testcaseStatus = result.Status + } + utils.CacheSet("testcase_result", result.TestCaseName+"__at__"+pkg, result) + } + for _, result := range results { + if result.TestCaseName != testcase && result.Status == testcaseStatus { + newFellows = append(newFellows, result.TestCaseName) + } + } + return testcaseStatus == tester.ResultPass, newFellows, nil +} diff --git a/tools/fotff/rec/fotff_test.go b/tools/fotff/rec/fotff_test.go new file mode 100644 index 0000000..1033a0c --- /dev/null +++ b/tools/fotff/rec/fotff_test.go @@ -0,0 +1,300 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * 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. + */ + +package rec + +import ( + "context" + "crypto/md5" + "fmt" + "fotff/res" + "fotff/tester" + "github.com/sirupsen/logrus" + "math/rand" + "os" + "strconv" + "strings" + "sync" + "testing" + "time" +) + +type FotffMocker struct { + FirstFail int + steps []string + lock sync.Mutex + runningPkg map[string]string +} + +func init() { + rand.Seed(time.Now().UnixNano()) +} + +func TestMain(m *testing.M) { + defer os.RemoveAll(".fotff") + defer os.RemoveAll("logs") + m.Run() +} + +func NewFotffMocker(stepsNum int, firstFail int) *FotffMocker { + randomPrefix := fmt.Sprintf("%x", md5.Sum([]byte(fmt.Sprintf("%d", rand.Int()))))[:4] + steps := make([]string, stepsNum) + for i := 1; i <= stepsNum; i++ { + steps[i-1] = fmt.Sprintf("%s_%s", randomPrefix, strconv.Itoa(i)) + } + return &FotffMocker{ + FirstFail: firstFail, + steps: steps, + runningPkg: map[string]string{}, + } +} + +func (f *FotffMocker) TaskName() string { + return "mocker" +} + +func (f *FotffMocker) Prepare(pkgDir string, device string, ctx context.Context) error { + return nil +} + +func (f *FotffMocker) DoTestTask(device string, ctx context.Context) ([]tester.Result, error) { + time.Sleep(time.Duration(rand.Intn(1)) * time.Millisecond) + select { + case <-ctx.Done(): + return nil, context.Canceled + default: + } + return []tester.Result{{TestCaseName: f.TestCaseName(), Status: tester.ResultFail}}, nil +} + +func (f *FotffMocker) DoTestCase(device string, testcase string, ctx context.Context) (tester.Result, error) { + time.Sleep(time.Duration(rand.Intn(1)) * time.Millisecond) + select { + case <-ctx.Done(): + return tester.Result{}, context.Canceled + default: + } + f.lock.Lock() + _, pkgPrefix, _ := strings.Cut(f.runningPkg[device], "_") + pkgOrder, _ := strconv.Atoi(pkgPrefix) + f.lock.Unlock() + if pkgOrder >= f.FirstFail { + logrus.Infof("mock: test %s at %s done, result is %s", testcase, device, tester.ResultFail) + return tester.Result{TestCaseName: testcase, Status: tester.ResultFail}, nil + } + logrus.Infof("mock: test %s at %s done, result is %s", testcase, device, tester.ResultPass) + return tester.Result{TestCaseName: testcase, Status: tester.ResultPass}, nil +} + +func (f *FotffMocker) DoTestCases(device string, testcases []string, ctx context.Context) ([]tester.Result, error) { + var ret []tester.Result + for _, testcase := range testcases { + r, err := f.DoTestCase(device, testcase, ctx) + if err != nil { + return nil, err + } + ret = append(ret, r) + } + return ret, nil +} + +func (f *FotffMocker) Flash(device string, pkg string, ctx context.Context) error { + time.Sleep(time.Duration(rand.Intn(1)) * time.Millisecond) + select { + case <-ctx.Done(): + return context.Canceled + default: + } + f.lock.Lock() + f.runningPkg[device] = pkg + logrus.Infof("mock: flash %s to %s done", pkg, device) + f.lock.Unlock() + return nil +} + +func (f *FotffMocker) LastIssue(pkg string) (string, error) { + return "issue" + pkg, nil +} + +func (f *FotffMocker) Steps(from, to string) (ret []string, err error) { + return f.steps, nil +} + +func (f *FotffMocker) GetNewer(cur string) (string, error) { + return "", nil +} + +func (f *FotffMocker) PkgDir(pkg string) string { + return pkg +} + +func (f *FotffMocker) TestCaseName() string { + return "MOCK_FAILED_TEST_CASE" +} + +func (f *FotffMocker) Last() string { + return f.steps[len(f.steps)-1] +} + +func TestFindOutTheFirstFail(t *testing.T) { + tests := []struct { + name string + mocker *FotffMocker + }{ + { + name: "0-1(X)", + mocker: NewFotffMocker(1, 1), + }, + { + name: "0-1(X)-2", + mocker: NewFotffMocker(2, 1), + }, + { + name: "0-1-2(X)", + mocker: NewFotffMocker(2, 2), + }, + { + name: "0-1(X)-2-3", + mocker: NewFotffMocker(3, 1), + }, + { + name: "0-1-2(X)-3", + mocker: NewFotffMocker(3, 2), + }, + { + name: "0-1-2-3(X)", + mocker: NewFotffMocker(3, 3), + }, + { + name: "0-1(X)-2-3-4", + mocker: NewFotffMocker(4, 1), + }, + { + name: "0-1-2(X)-3-4", + mocker: NewFotffMocker(4, 2), + }, + { + name: "0-1-2-3(X)-4", + mocker: NewFotffMocker(4, 3), + }, + { + name: "0-1-2-3-4(X)", + mocker: NewFotffMocker(4, 4), + }, + { + name: "0-1(X)-2-3-4-5", + mocker: NewFotffMocker(5, 1), + }, + { + name: "0-1-2(X)-3-4-5", + mocker: NewFotffMocker(5, 2), + }, + { + name: "0-1-2-3(X)-4-5", + mocker: NewFotffMocker(5, 3), + }, + { + name: "0-1-2-3-4(X)-5", + mocker: NewFotffMocker(5, 4), + }, + { + name: "0-1-2-3-4-5(X)", + mocker: NewFotffMocker(5, 5), + }, + { + name: "0-1-2...262143(X)...1048575", + mocker: NewFotffMocker(1048575, 262143), + }, + { + name: "0-1-2...262144(X)...1048575", + mocker: NewFotffMocker(1048575, 262144), + }, + { + name: "0-1-2...262145(X)...1048575", + mocker: NewFotffMocker(1048575, 262145), + }, + { + name: "0-1-2...262143(X)...1048576", + mocker: NewFotffMocker(1048576, 262143), + }, + { + name: "0-1-2...262144(X)...1048576", + mocker: NewFotffMocker(1048576, 262144), + }, + { + name: "0-1-2...262145(X)...1048576", + mocker: NewFotffMocker(1048576, 262145), + }, + { + name: "0-1-2...262143(X)...1048577", + mocker: NewFotffMocker(1048577, 262143), + }, + { + name: "0-1-2...262144(X)...1048577", + mocker: NewFotffMocker(1048577, 262144), + }, + { + name: "0-1-2...262145(X)...1048577", + mocker: NewFotffMocker(1048577, 262145), + }, + { + name: "0-1-2...1234567(X)...10000000", + mocker: NewFotffMocker(10000000, 1234567), + }, + { + name: "0-1-2...1234567(X)...100000001", + mocker: NewFotffMocker(10000001, 1234567), + }, + { + name: "0-1-2...7654321(X)...10000000", + mocker: NewFotffMocker(10000000, 7654321), + }, + { + name: "0-1-2...7654321(X)...10000001", + mocker: NewFotffMocker(10000001, 7654321), + }, + { + name: "0-1(X)-2...10000000", + mocker: NewFotffMocker(10000000, 1), + }, + { + name: "0-1(X)-2...10000001", + mocker: NewFotffMocker(10000001, 1), + }, + { + name: "0-1-2...10000000(X)", + mocker: NewFotffMocker(10000000, 10000000), + }, + { + name: "0-1-2...10000001(X)", + mocker: NewFotffMocker(10000001, 10000001), + }, + } + for i := 1; i <= 5; i++ { + res.Fake(i) + for _, tt := range tests { + t.Run(fmt.Sprintf("RES%d:%s", i, tt.name), func(t *testing.T) { + ret, err := FindOutTheFirstFail(tt.mocker, tt.mocker, tt.mocker.TestCaseName(), "0", tt.mocker.Last()) + if err != nil { + t.Errorf("err: expcect: , actual: %v", err) + } + expectIssue, _ := tt.mocker.LastIssue(tt.mocker.steps[tt.mocker.FirstFail-1]) + if ret != expectIssue { + t.Errorf("fotff result: expect: %s, actual: %s", expectIssue, ret) + } + }) + } + } +} diff --git a/tools/fotff/rec/record.go b/tools/fotff/rec/record.go new file mode 100644 index 0000000..52894c6 --- /dev/null +++ b/tools/fotff/rec/record.go @@ -0,0 +1,133 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * 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. + */ + +package rec + +import ( + "context" + "encoding/json" + "fotff/pkg" + "fotff/tester" + "fotff/utils" + "github.com/sirupsen/logrus" + "time" +) + +var Records = make(map[string]Record) + +func init() { + data, err := utils.ReadRuntimeData("records.json") + if err != nil { + return + } + if err := json.Unmarshal(data, &Records); err != nil { + logrus.Errorf("unmarshal records err: %v", err) + } +} + +func Save() { + data, err := json.MarshalIndent(Records, "", "\t") + if err != nil { + logrus.Errorf("marshal records err: %v", err) + return + } + if err := utils.WriteRuntimeData("records.json", data); err != nil { + logrus.Errorf("save records err: %v", err) + return + } + logrus.Infof("save records successfully") +} + +func HandleResults(t tester.Tester, dev string, pkgName string, results []tester.Result) []string { + var passes, fails []tester.Result + for _, result := range results { + switch result.Status { + case tester.ResultPass: + passes = append(passes, result) + case tester.ResultFail: + fails = append(fails, result) + } + } + handlePassResults(pkgName, passes) + return handleFailResults(t, dev, pkgName, fails) +} + +func handlePassResults(pkgName string, results []tester.Result) { + for _, result := range results { + logrus.Infof("recording [%s] as a success, the lastest success package is [%s]", result.TestCaseName, pkgName) + Records[result.TestCaseName] = Record{ + UpdateTime: time.Now().Format("2006-01-02 15:04:05"), + Status: tester.ResultPass, + LatestSuccessPkg: pkgName, + EarliestFailPkg: "", + FailIssueURL: "", + } + } +} + +func handleFailResults(t tester.Tester, dev string, pkgName string, results []tester.Result) []string { + var fotffTestCases []string + for _, result := range results { + if record, ok := Records[result.TestCaseName]; ok && record.Status != tester.ResultPass { + logrus.Warnf("test case %s had failed before, skip handle it", result.TestCaseName) + continue + } + status := tester.ResultFail + for i := 0; i < 3; i++ { + r, err := t.DoTestCase(dev, result.TestCaseName, context.TODO()) + if err != nil { + logrus.Errorf("failed to do test case %s: %v", result.TestCaseName, err) + continue + } + logrus.Infof("do testcase %s at %s done, result is %s", r.TestCaseName, dev, r.Status) + if r.Status == tester.ResultPass { + logrus.Warnf("testcase %s result is %s", r.TestCaseName, tester.ResultOccasionalFail) + status = tester.ResultOccasionalFail + break + } + } + if status == tester.ResultFail && Records[result.TestCaseName].LatestSuccessPkg != "" && Records[result.TestCaseName].EarliestFailPkg == "" { + fotffTestCases = append(fotffTestCases, result.TestCaseName) + } + Records[result.TestCaseName] = Record{ + UpdateTime: time.Now().Format("2006-01-02 15:04:05"), + Status: status, + LatestSuccessPkg: Records[result.TestCaseName].LatestSuccessPkg, + EarliestFailPkg: pkgName, + FailIssueURL: "", + } + } + return fotffTestCases +} + +func Analysis(m pkg.Manager, t tester.Tester, pkgName string, testcases []string) { + for i, testcase := range testcases { + record := Records[testcase] + logrus.Infof("%s failed, the lastest success package is [%s], earliest fail package is [%s], now finding out the first fail...", testcase, record.LatestSuccessPkg, pkgName) + issueURL, err := FindOutTheFirstFail(m, t, testcase, record.LatestSuccessPkg, pkgName, testcases[i+1:]...) + if err != nil { + logrus.Errorf("failed to find out the first fail issue, err: %v", err) + issueURL = err.Error() + } + logrus.Infof("recording %s as a failure, the lastest success package is [%s], the earliest fail package is [%s], fail issue URL is [%s]", testcase, record.LatestSuccessPkg, pkgName, issueURL) + Records[testcase] = Record{ + UpdateTime: time.Now().Format("2006-01-02 15:04:05"), + Status: tester.ResultFail, + LatestSuccessPkg: record.LatestSuccessPkg, + EarliestFailPkg: pkgName, + FailIssueURL: issueURL, + } + } +} diff --git a/tools/fotff/rec/report.go b/tools/fotff/rec/report.go new file mode 100644 index 0000000..f8413f1 --- /dev/null +++ b/tools/fotff/rec/report.go @@ -0,0 +1,119 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * 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. + */ + +package rec + +import ( + "code.cloudfoundry.org/archiver/compressor" + "fmt" + "fotff/tester" + "fotff/utils" + "github.com/jedib0t/go-pretty/v6/table" + "github.com/jedib0t/go-pretty/v6/text" + "github.com/sirupsen/logrus" + "reflect" + "sort" +) + +const css = ` + + +` + +func Report(curPkg string, taskName string) { + subject := fmt.Sprintf("[%s] %s test report", curPkg, taskName) + rt := reflect.TypeOf(Record{}) + tb := table.NewWriter() + tb.SetIndexColumn(rt.NumField() + 1) + var row = table.Row{"test case"} + for i := 0; i < rt.NumField(); i++ { + f := rt.Field(i) + if f.IsExported() { + row = append(row, f.Tag.Get("col")) + } + } + tb.AppendHeader(row) + tb.SetRowPainter(func(row table.Row) text.Colors { + for _, col := range row { + if str, ok := col.(string); ok { + if str == tester.ResultFail { + return text.Colors{text.BgRed} + } else if str == tester.ResultOccasionalFail { + return text.Colors{text.BgYellow} + } + } + } + return nil + }) + var rows []table.Row + for k, rec := range Records { + var row = table.Row{k} + rv := reflect.ValueOf(rec) + for i := 0; i < rv.NumField(); i++ { + if rv.Field(i).CanInterface() { + row = append(row, rv.Field(i).Interface()) + } + } + rows = append(rows, row) + } + sort.Slice(rows, func(i, j int) bool { + return rows[i][0].(string) < rows[j][0].(string) + }) + tb.AppendRows(rows) + c := compressor.NewTgz() + var attrs []string + if utils.LogFile != nil { + if err := c.Compress(utils.LogFile.Name(), utils.LogFile.Name()+".tgz"); err != nil { + logrus.Errorf("failed to compress %s: %v", utils.LogFile.Name(), err) + } else { + attrs = append(attrs, utils.LogFile.Name()+".tgz") + } + } + if utils.StdoutFile != nil { + if err := c.Compress(utils.StdoutFile.Name(), utils.StdoutFile.Name()+".tgz"); err != nil { + logrus.Errorf("failed to compress %s: %v", utils.StdoutFile.Name(), err) + } else { + attrs = append(attrs, utils.StdoutFile.Name()+".tgz") + } + } + if err := utils.SendMail(subject, css+tb.RenderHTML(), attrs...); err != nil { + logrus.Errorf("failed to send report mail: %v", err) + return + } + logrus.Infof("send mail successfully") +} diff --git a/tools/fotff/rec/types.go b/tools/fotff/rec/types.go new file mode 100644 index 0000000..4061172 --- /dev/null +++ b/tools/fotff/rec/types.go @@ -0,0 +1,24 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * 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. + */ + +package rec + +type Record struct { + UpdateTime string `col:"update time"` + Status string `col:"status"` + LatestSuccessPkg string `col:"last success package"` + EarliestFailPkg string `col:"earliest fail package"` + FailIssueURL string `col:"fail issue url"` +} diff --git a/tools/fotff/res/res.go b/tools/fotff/res/res.go new file mode 100644 index 0000000..74a4ef4 --- /dev/null +++ b/tools/fotff/res/res.go @@ -0,0 +1,107 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * 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. + */ + +package res + +import ( + "fmt" + "fotff/utils" + "strings" +) + +type Resources struct { + DeviceSnList string `key:"device_sn_list"` + AddrList string `key:"build_server_addr_list" default:"127.0.0.1:22"` + User string `key:"build_server_user" default:"root"` + Passwd string `key:"build_server_password" default:"root"` + // BuildWorkSpace must be absolute + BuildWorkSpace string `key:"build_server_workspace" default:"/root/fotff/build_workspace"` + devicePool chan string + serverPool chan string +} + +type BuildServerInfo struct { + Addr string + User string + Passwd string + WorkSpace string +} + +var res Resources + +func init() { + utils.ParseFromConfigFile("resources", &res) + snList := strings.Split(res.DeviceSnList, ",") + addrList := strings.Split(res.AddrList, ",") + res.devicePool = make(chan string, len(snList)) + for _, sn := range snList { + res.devicePool <- sn + } + res.serverPool = make(chan string, len(addrList)) + for _, addr := range addrList { + res.serverPool <- addr + } +} + +// Fake set 'n' fake packages and build servers. +// Just for test only. +func Fake(n int) { + var snList, addrList []string + for i := 0; i < n; i++ { + snList = append(snList, fmt.Sprintf("device%d", i)) + addrList = append(addrList, fmt.Sprintf("server%d", i)) + } + res.devicePool = make(chan string, len(snList)) + for _, sn := range snList { + res.devicePool <- sn + } + res.serverPool = make(chan string, len(addrList)) + for _, sn := range snList { + res.serverPool <- sn + } +} + +func Num() int { + if cap(res.devicePool) < cap(res.serverPool) { + return cap(res.devicePool) + } + return cap(res.serverPool) +} + +func DeviceList() []string { + return strings.Split(res.DeviceSnList, ",") +} + +func GetDevice() string { + return <-res.devicePool +} + +func ReleaseDevice(device string) { + res.devicePool <- device +} + +func GetBuildServer() BuildServerInfo { + addr := <-res.serverPool + return BuildServerInfo{ + Addr: addr, + User: res.User, + Passwd: res.Passwd, + WorkSpace: res.BuildWorkSpace, + } +} + +func ReleaseBuildServer(info BuildServerInfo) { + res.serverPool <- info.Addr +} diff --git a/tools/fotff/tester/manual/manual.go b/tools/fotff/tester/manual/manual.go new file mode 100644 index 0000000..e039cc1 --- /dev/null +++ b/tools/fotff/tester/manual/manual.go @@ -0,0 +1,88 @@ +/* + * Copyright (c) 2023 Huawei Device Co., Ltd. + * 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. + */ + +package manual + +import ( + "context" + "fmt" + "fotff/tester" + "fotff/utils" + "github.com/sirupsen/logrus" + "math/rand" + "strings" + "sync" + "time" +) + +type Tester struct { + ResultLock sync.Mutex +} + +func init() { + rand.Seed(time.Now().UnixNano()) +} + +func NewTester() tester.Tester { + ret := &Tester{} + utils.ParseFromConfigFile("manual", ret) + return ret +} + +func (t *Tester) TaskName() string { + return "manual_test" +} + +func (t *Tester) Prepare(pkgDir string, device string, ctx context.Context) error { + return nil +} + +func (t *Tester) DoTestTask(deviceSN string, ctx context.Context) (ret []tester.Result, err error) { + return t.DoTestCases(deviceSN, []string{"default"}, ctx) +} + +func (t *Tester) DoTestCase(deviceSN, testCase string, ctx context.Context) (ret tester.Result, err error) { + if deviceSN == "" { + deviceSN = "default" + } + t.ResultLock.Lock() + defer t.ResultLock.Unlock() + var answer string + for { + fmt.Printf("please do testcase %s on device %s manually and type the test result, 'pass' or 'fail':\n", testCase, deviceSN) + if _, err := fmt.Scanln(&answer); err != nil { + logrus.Errorf("failed to scan result: %v", err) + continue + } + switch strings.ToUpper(strings.TrimSpace(answer)) { + case "PASS": + return tester.Result{TestCaseName: testCase, Status: tester.ResultPass}, nil + case "FAIL": + return tester.Result{TestCaseName: testCase, Status: tester.ResultFail}, nil + default: + } + } +} + +func (t *Tester) DoTestCases(deviceSN string, testcases []string, ctx context.Context) (ret []tester.Result, err error) { + for _, testcase := range testcases { + r, err := t.DoTestCase(deviceSN, testcase, ctx) + if err != nil { + return nil, err + } + ret = append(ret, r) + } + return ret, nil +} diff --git a/tools/fotff/tester/mock/mock.go b/tools/fotff/tester/mock/mock.go new file mode 100644 index 0000000..93d9b89 --- /dev/null +++ b/tools/fotff/tester/mock/mock.go @@ -0,0 +1,64 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * 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. + */ + +package mock + +import ( + "context" + "fotff/tester" + "github.com/sirupsen/logrus" +) + +type Tester struct{} + +func NewTester() tester.Tester { + return &Tester{} +} + +func (t *Tester) TaskName() string { + return "mock" +} + +func (t *Tester) Prepare(pkgDir string, device string, ctx context.Context) error { + return nil +} + +func (t *Tester) DoTestTask(device string, ctx context.Context) ([]tester.Result, error) { + logrus.Infof("TEST_001 pass") + logrus.Warnf("TEST_002 pass") + logrus.Warnf("TEST_003 pass") + return []tester.Result{ + {TestCaseName: "TEST_001", Status: tester.ResultPass}, + {TestCaseName: "TEST_002", Status: tester.ResultPass}, + {TestCaseName: "TEST_003", Status: tester.ResultPass}, + }, nil +} + +func (t *Tester) DoTestCase(device string, testCase string, ctx context.Context) (tester.Result, error) { + logrus.Warnf("%s pass", testCase) + return tester.Result{TestCaseName: testCase, Status: tester.ResultPass}, nil +} + +func (t *Tester) DoTestCases(device string, testcases []string, ctx context.Context) ([]tester.Result, error) { + var ret []tester.Result + for _, testcase := range testcases { + r, err := t.DoTestCase(device, testcase, ctx) + if err != nil { + return nil, err + } + ret = append(ret, r) + } + return ret, nil +} diff --git a/tools/fotff/tester/smoke/smoke.go b/tools/fotff/tester/smoke/smoke.go new file mode 100644 index 0000000..3bc5cb1 --- /dev/null +++ b/tools/fotff/tester/smoke/smoke.go @@ -0,0 +1,149 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * 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. + */ + +package smoke + +import ( + "context" + "crypto/md5" + "encoding/json" + "errors" + "fmt" + "fotff/tester" + "fotff/utils" + "github.com/sirupsen/logrus" + "math/rand" + "os" + "path/filepath" + "strconv" + "strings" + "time" +) + +type Tester struct { + Py string `key:"py"` + Config string `key:"config"` + AnswerPath string `key:"answer_path"` + SavePath string `key:"save_path"` + ToolsPath string `key:"tools_path"` +} + +func init() { + rand.Seed(time.Now().UnixNano()) +} + +func NewTester() tester.Tester { + ret := &Tester{} + utils.ParseFromConfigFile("smoke", ret) + return ret +} + +func (t *Tester) TaskName() string { + return "smoke_test" +} + +func (t *Tester) Prepare(pkgDir string, device string, ctx context.Context) error { + return nil +} + +func (t *Tester) DoTestTask(deviceSN string, ctx context.Context) (ret []tester.Result, err error) { + reportDir := fmt.Sprintf("%X", md5.Sum([]byte(fmt.Sprintf("%d", rand.Int())))) + if err := os.MkdirAll(filepath.Join(t.SavePath, reportDir), 0755); err != nil { + return nil, err + } + args := []string{t.Py, "--config", t.Config, "--answer_path", t.AnswerPath, "--save_path", filepath.Join(t.SavePath, reportDir), "--tools_path", t.ToolsPath} + if deviceSN != "" { + args = append(args, "--device_num", deviceSN) + } + if err := utils.ExecContext(ctx, "python", args...); err != nil { + if errors.Is(err, context.Canceled) { + return nil, err + } + logrus.Errorf("do test suite fail: %v", err) + return nil, err + } + return t.readReport(reportDir) +} + +func (t *Tester) DoTestCase(deviceSN, testCase string, ctx context.Context) (ret tester.Result, err error) { + reportDir := fmt.Sprintf("%X", md5.Sum([]byte(fmt.Sprintf("%d", rand.Int())))) + if err := os.MkdirAll(filepath.Join(t.SavePath, reportDir), 0755); err != nil { + return ret, err + } + args := []string{t.Py, "--config", t.Config, "--answer_path", t.AnswerPath, "--save_path", filepath.Join(t.SavePath, reportDir), "--tools_path", t.ToolsPath, "--test_num", testCase} + if deviceSN != "" { + args = append(args, "--device_num", deviceSN) + } + if err := utils.ExecContext(ctx, "python", args...); err != nil { + if errors.Is(err, context.Canceled) { + return ret, err + } + logrus.Errorf("do test case %s fail: %v", testCase, err) + return ret, err + } + r, err := t.readReport(reportDir) + if len(r) == 0 { + return ret, fmt.Errorf("read latest report err, no result found") + } + if r[0].TestCaseName != testCase { + return ret, fmt.Errorf("read latest report err, no matched result found") + } + logrus.Infof("do testcase %s at %s done, result is %s", r[0].TestCaseName, deviceSN, r[0].Status) + return r[0], nil +} + +func (t *Tester) DoTestCases(deviceSN string, testcases []string, ctx context.Context) (ret []tester.Result, err error) { + reportDir := fmt.Sprintf("%X", md5.Sum([]byte(fmt.Sprintf("%d", rand.Int())))) + if err := os.MkdirAll(filepath.Join(t.SavePath, reportDir), 0755); err != nil { + return nil, err + } + args := []string{t.Py, "--config", t.Config, "--answer_path", t.AnswerPath, "--save_path", filepath.Join(t.SavePath, reportDir), "--tools_path", t.ToolsPath, "--test_num", strings.Join(testcases, " ")} + if deviceSN != "" { + args = append(args, "--device_num", deviceSN) + } + if err := utils.ExecContext(ctx, "python", args...); err != nil { + if errors.Is(err, context.Canceled) { + return ret, err + } + logrus.Errorf("do test cases %v fail: %v", testcases, err) + return ret, err + } + return t.readReport(reportDir) +} + +func (t *Tester) readReport(reportDir string) (ret []tester.Result, err error) { + data, err := os.ReadFile(filepath.Join(t.SavePath, reportDir, "result.json")) + if err != nil { + logrus.Errorf("read report json fail: %v", err) + return nil, err + } + var result []struct { + TestCaseName int `json:"test_case_name"` + Status string `json:"status"` + } + err = json.Unmarshal(data, &result) + if err != nil { + logrus.Errorf("unmarshal report xml fail: %v", err) + return nil, err + } + for _, r := range result { + if r.Status == "pass" { + ret = append(ret, tester.Result{TestCaseName: strconv.Itoa(r.TestCaseName), Status: tester.ResultPass}) + } else { + ret = append(ret, tester.Result{TestCaseName: strconv.Itoa(r.TestCaseName), Status: tester.ResultFail}) + } + } + return ret, err +} diff --git a/tools/fotff/tester/tester.go b/tools/fotff/tester/tester.go new file mode 100644 index 0000000..77eb783 --- /dev/null +++ b/tools/fotff/tester/tester.go @@ -0,0 +1,46 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * 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. + */ + +package tester + +import "context" + +type ResultStatus string + +const ( + ResultPass = `pass` + ResultOccasionalFail = `occasional_fail` + ResultFail = `fail` +) + +type Result struct { + TestCaseName string + Status ResultStatus +} + +type Tester interface { + // TaskName returns the name of task which DoTestTask execute. + TaskName() string + // Prepare do some test preparations for one certain package + Prepare(pkgDir string, device string, ctx context.Context) error + // DoTestTask do a full test on given device. + DoTestTask(device string, ctx context.Context) ([]Result, error) + // DoTestCase do a single testcase on given device. + DoTestCase(device string, testCase string, ctx context.Context) (Result, error) + // DoTestCases do testcases on given device. + DoTestCases(device string, testcases []string, ctx context.Context) ([]Result, error) +} + +type NewFunc func() Tester diff --git a/tools/fotff/tester/xdevice/xdevice.go b/tools/fotff/tester/xdevice/xdevice.go new file mode 100644 index 0000000..4cc7d8d --- /dev/null +++ b/tools/fotff/tester/xdevice/xdevice.go @@ -0,0 +1,162 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * 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. + */ + +package xdevice + +import ( + "context" + "crypto/md5" + "encoding/xml" + "errors" + "fmt" + "fotff/tester" + "fotff/utils" + "github.com/sirupsen/logrus" + "math/rand" + "os" + "path/filepath" + "strings" + "time" +) + +const enableTestModeScript = `mount -o rw,remount /; param set persist.ace.testmode.enabled 1; param set persist.sys.hilog.debug.on true; sed -i 's/enforcing/permissive/g' /system/etc/selinux/config; sync; reboot` + +type Tester struct { + Task string `key:"task" default:"acts"` + Config string `key:"config" default:"./config/user_config.xml"` + TestCasesPath string `key:"test_cases_path" default:"./testcases"` + ResourcePath string `key:"resource_path" default:"./resource"` +} + +type Report struct { + XMLName xml.Name `xml:"testsuites"` + TestSuite []struct { + TestCase []struct { + Name string `xml:"name,attr"` + Result string `xml:"result,attr"` + } `xml:"testcase"` + } `xml:"testsuite"` +} + +func init() { + rand.Seed(time.Now().UnixNano()) +} + +func NewTester() tester.Tester { + ret := &Tester{} + utils.ParseFromConfigFile("xdevice", ret) + return ret +} + +func (t *Tester) TaskName() string { + return t.Task +} + +func (t *Tester) Prepare(pkgDir string, device string, ctx context.Context) (err error) { + logrus.Info("for xdevice test, try to enable test mode...") + if err := utils.HdcShell(enableTestModeScript, device, ctx); err != nil { + return err + } + time.Sleep(20 * time.Second) // usually, it takes about 20s to reboot into OpenHarmony + if connected := utils.WaitHDC(device, ctx); !connected { + logrus.Errorf("enable test mode at device %s done, but boot unnormally, hdc connection fail", device) + return fmt.Errorf("enable test mode at device %s done, but boot unnormally, hdc connection fail", device) + } + time.Sleep(10 * time.Second) // wait 10s more to ensure system has been started completely + logrus.Infof("enable test mode at device %s successfully", device) + return nil +} + +func (t *Tester) DoTestTask(deviceSN string, ctx context.Context) (ret []tester.Result, err error) { + reportDir := fmt.Sprintf("%X", md5.Sum([]byte(fmt.Sprintf("%d", rand.Int())))) + args := []string{"-m", "xdevice", "run", t.Task, "-c", t.Config, "-tcpath", t.TestCasesPath, "-respath", t.ResourcePath, "-rp", reportDir} + if deviceSN != "" { + args = append(args, "-sn", deviceSN) + } + if err := utils.ExecContext(ctx, "python", args...); err != nil { + if errors.Is(err, context.Canceled) { + return nil, err + } + logrus.Errorf("do test suite fail: %v", err) + return nil, err + } + return t.readReport(reportDir) +} + +func (t *Tester) DoTestCase(deviceSN, testCase string, ctx context.Context) (ret tester.Result, err error) { + reportDir := fmt.Sprintf("%X", md5.Sum([]byte(fmt.Sprintf("%d", rand.Int())))) + args := []string{"-m", "xdevice", "run", "-l", testCase, "-c", t.Config, "-tcpath", t.TestCasesPath, "-respath", t.ResourcePath, "-rp", reportDir} + if deviceSN != "" { + args = append(args, "-sn", deviceSN) + } + if err := utils.ExecContext(ctx, "python", args...); err != nil { + if errors.Is(err, context.Canceled) { + return ret, err + } + logrus.Errorf("do test case %s fail: %v", testCase, err) + return ret, err + } + r, err := t.readReport(reportDir) + if len(r) == 0 { + return ret, fmt.Errorf("read latest report err, no result found") + } + if r[0].TestCaseName != testCase { + return ret, fmt.Errorf("read latest report err, no matched result found") + } + logrus.Infof("do testcase %s at %s done, result is %s", r[0].TestCaseName, deviceSN, r[0].Status) + return r[0], nil +} + +func (t *Tester) DoTestCases(deviceSN string, testcases []string, ctx context.Context) (ret []tester.Result, err error) { + reportDir := fmt.Sprintf("%X", md5.Sum([]byte(fmt.Sprintf("%d", rand.Int())))) + args := []string{"-m", "xdevice", "run", "-l", strings.Join(testcases, ";"), "-c", t.Config, "-tcpath", t.TestCasesPath, "-respath", t.ResourcePath, "-rp", reportDir} + if deviceSN != "" { + args = append(args, "-sn", deviceSN) + } + if err := utils.ExecContext(ctx, "python", args...); err != nil { + if errors.Is(err, context.Canceled) { + return ret, err + } + logrus.Errorf("do test cases %v fail: %v", testcases, err) + return ret, err + } + return t.readReport(reportDir) +} + +func (t *Tester) readReport(reportDir string) (ret []tester.Result, err error) { + data, err := os.ReadFile(filepath.Join("reports", reportDir, "summary_report.xml")) + if err != nil { + logrus.Errorf("read report xml fail: %v", err) + return nil, err + } + var report Report + err = xml.Unmarshal(data, &report) + if err != nil { + logrus.Errorf("unmarshal report xml fail: %v", err) + return nil, err + } + for _, s := range report.TestSuite { + for _, c := range s.TestCase { + var status tester.ResultStatus + if c.Result == "true" { + status = tester.ResultPass + } else { + status = tester.ResultFail + } + ret = append(ret, tester.Result{TestCaseName: c.Name, Status: status}) + } + } + return ret, err +} diff --git a/tools/fotff/utils/exec.go b/tools/fotff/utils/exec.go new file mode 100644 index 0000000..76857e2 --- /dev/null +++ b/tools/fotff/utils/exec.go @@ -0,0 +1,90 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * 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. + */ + +package utils + +import ( + "context" + "errors" + "fmt" + "github.com/sirupsen/logrus" + "io" + "os" + "os/exec" + "time" +) + +func ExecContext(ctx context.Context, name string, args ...string) error { + ctx, fn := context.WithTimeout(ctx, 6*time.Hour) + defer fn() + if err := execContext(ctx, name, args...); err != nil { + if errors.Is(err, context.Canceled) { + return err + } + logrus.Errorf("exec failed: %v, try again...", err) + return execContext(ctx, name, args...) + } + return nil +} + +func execContext(ctx context.Context, name string, args ...string) error { + cmdStr := append([]string{name}, args...) + logrus.Infof("cmd: %s", cmdStr) + cmd := exec.CommandContext(ctx, name, args...) + stdout, err := cmd.StdoutPipe() + if err != nil { + return err + } + stderr, err := cmd.StderrPipe() + if err != nil { + return err + } + if err := cmd.Start(); err != nil { + return err + } + fmt.Printf("[%s] exec %s :\n", time.Now(), cmdStr) + go io.Copy(os.Stdout, stdout) + go io.Copy(os.Stderr, stderr) + return cmd.Wait() +} + +func ExecCombinedOutputContext(ctx context.Context, name string, args ...string) ([]byte, error) { + ctx, fn := context.WithTimeout(ctx, 6*time.Hour) + defer fn() + out, err := execCombinedOutputContext(ctx, name, args...) + if err != nil { + if errors.Is(err, context.Canceled) { + return out, err + } + logrus.Errorf("exec failed: %v, try again...", err) + return execCombinedOutputContext(ctx, name, args...) + } + return out, nil +} + +func execCombinedOutputContext(ctx context.Context, name string, args ...string) ([]byte, error) { + cmdStr := append([]string{name}, args...) + logrus.Infof("cmd: %s", cmdStr) + out, err := exec.CommandContext(ctx, name, args...).CombinedOutput() + fmt.Printf("[%s] exec %s :\n", time.Now(), cmdStr) + return out, err +} + +func SleepContext(duration time.Duration, ctx context.Context) { + select { + case <-time.NewTimer(duration).C: + case <-ctx.Done(): + } +} diff --git a/tools/fotff/utils/hdc.go b/tools/fotff/utils/hdc.go new file mode 100644 index 0000000..89b9e61 --- /dev/null +++ b/tools/fotff/utils/hdc.go @@ -0,0 +1,81 @@ +package utils + +import ( + "context" + "errors" + "github.com/sirupsen/logrus" + "os/exec" + "strings" + "time" +) + +var hdc string + +func init() { + if hdc, _ = exec.LookPath("hdc"); hdc == "" { + hdc, _ = exec.LookPath("hdc_std") + } + if hdc == "" { + logrus.Panicf("can not find 'hdc', please install") + } +} + +func WaitHDC(device string, ctx context.Context) bool { + ctx, cancelFn := context.WithTimeout(ctx, 20*time.Second) + defer cancelFn() + for { + select { + case <-ctx.Done(): + return false + default: + } + ExecContext(ctx, hdc, "kill") + time.Sleep(time.Second) + ExecContext(ctx, hdc, "start") + time.Sleep(time.Second) + out, err := ExecCombinedOutputContext(ctx, hdc, "list", "targets") + if err != nil { + if errors.Is(err, context.Canceled) { + return false + } + logrus.Errorf("failed to list hdc targets: %s, %s", string(out), err) + continue + } + lines := strings.Fields(string(out)) + for _, dev := range lines { + if dev == "[Empty]" { + logrus.Warn("can not find any hdc targets") + break + } + if device == "" || dev == device { + return true + } + } + logrus.Infof("%s not found", device) + } +} + +func TryRebootToLoader(device string, ctx context.Context) error { + logrus.Infof("try to reboot %s to loader...", device) + defer time.Sleep(5 * time.Second) + if connected := WaitHDC(device, ctx); connected { + if device == "" { + return ExecContext(ctx, hdc, "shell", "reboot", "loader") + } else { + return ExecContext(ctx, hdc, "-t", device, "shell", "reboot", "loader") + } + } + if err := ctx.Err(); err != nil { + return err + } + logrus.Warn("can not find target hdc device, assume it has been in loader mode") + return nil +} + +func HdcShell(cmd, device string, ctx context.Context) error { + if device == "" { + return ExecContext(ctx, hdc, "shell", cmd) + } else { + return ExecContext(ctx, hdc, "-t", device, "shell", cmd) + } +} diff --git a/tools/fotff/utils/http.go b/tools/fotff/utils/http.go new file mode 100644 index 0000000..e2ed194 --- /dev/null +++ b/tools/fotff/utils/http.go @@ -0,0 +1,73 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * 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. + */ + +package utils + +import ( + "bytes" + "fmt" + "github.com/sirupsen/logrus" + "io" + "net/http" + "time" +) + +func DoSimpleHttpReqRaw(method string, url string, body []byte, header map[string]string) (response *http.Response, err error) { + for i := 0; i < 3; i++ { + if response, err = doSimpleHttpReqImpl(method, url, body, header); err == nil { + return + } + time.Sleep(time.Second) + } + return +} + +func DoSimpleHttpReq(method string, url string, body []byte, header map[string]string) (ret []byte, err error) { + var resp *http.Response + for i := 0; i < 3; i++ { + if resp, err = doSimpleHttpReqImpl(method, url, body, header); err == nil { + ret, err = io.ReadAll(resp.Body) + resp.Body.Close() + return + } + time.Sleep(time.Second) + } + return +} + +func doSimpleHttpReqImpl(method string, url string, body []byte, header map[string]string) (response *http.Response, err error) { + logrus.Infof("%s %s", method, url) + req, err := http.NewRequest(method, url, bytes.NewReader(body)) + if err != nil { + return nil, err + } + for k, v := range header { + req.Header.Set(k, v) + } + resp, err := proxyClient.Do(req) + if err != nil { + return nil, err + } + if resp.StatusCode >= 300 { + defer resp.Body.Close() + data, _ := io.ReadAll(resp.Body) + if resp.StatusCode == http.StatusProxyAuthRequired || resp.StatusCode == http.StatusForbidden { + SwitchProxy() + } + logrus.Errorf("%s %s: code: %d body: %s", method, url, resp.StatusCode, string(data)) + return nil, fmt.Errorf("%s %s: code: %d body: %s", method, url, resp.StatusCode, string(data)) + } + return resp, nil +} diff --git a/tools/fotff/utils/ini.go b/tools/fotff/utils/ini.go new file mode 100644 index 0000000..2680e7b --- /dev/null +++ b/tools/fotff/utils/ini.go @@ -0,0 +1,53 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * 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. + */ + +package utils + +import ( + "github.com/Unknwon/goconfig" + "github.com/sirupsen/logrus" + "reflect" +) + +// ParseFromConfigFile parse ini file and set values by the tag of fields. +// 'p' must be a pointer to the given structure, otherwise will panic. +// Only process its string fields and its sub structs. +func ParseFromConfigFile(section string, p any) { + conf, err := goconfig.LoadConfigFile("fotff.ini") + if err != nil { + logrus.Warnf("load config file err: %v", err) + } + rv := reflect.ValueOf(p) + rt := reflect.TypeOf(p) + for i := 0; i < rv.Elem().NumField(); i++ { + switch rt.Elem().Field(i).Type.Kind() { + case reflect.String: + key := rt.Elem().Field(i).Tag.Get("key") + if key == "" { + continue + } + var v string + if conf != nil { + v, err = conf.GetValue(section, key) + } + if conf == nil || err != nil { + v = rt.Elem().Field(i).Tag.Get("default") + } + rv.Elem().Field(i).SetString(v) + case reflect.Struct: + ParseFromConfigFile(section, rv.Elem().Field(i).Addr().Interface()) + } + } +} diff --git a/tools/fotff/utils/log.go b/tools/fotff/utils/log.go new file mode 100644 index 0000000..9c9b8d6 --- /dev/null +++ b/tools/fotff/utils/log.go @@ -0,0 +1,97 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * 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. + */ + +package utils + +import ( + "fmt" + "github.com/sirupsen/logrus" + "os" + "path/filepath" + "runtime" + "strings" +) + +var LogFile *os.File +var StdoutFile *os.File +var osStdout, osStderr = os.Stdout, os.Stderr + +func init() { + if err := os.MkdirAll("logs", 0750); err != nil { + logrus.Errorf("can not make logs dir: %v", err) + return + } + logrus.SetOutput(os.Stdout) + logrus.SetReportCaller(true) + logrus.SetFormatter(&logrus.TextFormatter{ + ForceColors: true, + FullTimestamp: true, + TimestampFormat: "2006-01-02 15:04:05", + CallerPrettyfier: func(f *runtime.Frame) (function string, file string) { + funcName := strings.Split(f.Function, ".") + fn := funcName[len(funcName)-1] + _, filename := filepath.Split(f.File) + return fmt.Sprintf("%s()", fn), fmt.Sprintf("%s:%d", filename, f.Line) + }, + }) +} + +func ResetLogOutput() { + logrus.Info("now log to os stdout...") + logrus.SetOutput(osStdout) + if LogFile != nil { + LogFile.Close() + } + if StdoutFile != nil { + StdoutFile.Close() + } + LogFile, StdoutFile, os.Stdout, os.Stderr = nil, nil, osStdout, osStderr +} + +func SetLogOutput(pkg string) { + file := filepath.Join("logs", pkg+".log") + var f *os.File + var err error + if _, err = os.Stat(file); err == nil { + f, err = os.OpenFile(file, os.O_RDWR|os.O_APPEND, 0666) + } else { + f, err = os.Create(file) + } + if err != nil { + logrus.Errorf("failed to open new log file %s: %v", file, err) + return + } + logrus.Infof("now log to %s", file) + logrus.SetOutput(f) + if LogFile != nil { + LogFile.Close() + } + LogFile = f + stdout := filepath.Join("logs", fmt.Sprintf("%s_stdout.log", pkg)) + if _, err = os.Stat(stdout); err == nil { + f, err = os.OpenFile(stdout, os.O_RDWR|os.O_APPEND, 0666) + } else { + f, err = os.Create(stdout) + } + if err != nil { + logrus.Errorf("failed to open new stdout log file %s: %v", stdout, err) + return + } + if StdoutFile != nil { + StdoutFile.Close() + } + StdoutFile, os.Stdout, os.Stderr = f, f, f + logrus.Infof("re-directing stdout and stderr to %s...", stdout) +} diff --git a/tools/fotff/utils/mail.go b/tools/fotff/utils/mail.go new file mode 100644 index 0000000..5bf2485 --- /dev/null +++ b/tools/fotff/utils/mail.go @@ -0,0 +1,67 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * 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. + */ + +package utils + +import ( + "crypto/tls" + "fmt" + "github.com/sirupsen/logrus" + "gopkg.in/gomail.v2" + "strconv" + "strings" +) + +type MailConfig struct { + Host string `key:"host" default:""` + Port string `key:"port" default:""` + port int + User string `key:"user" default:""` + Password string `key:"password" default:""` + From string `key:"from" default:""` + To string `key:"to" default:""` + toList []string +} + +var mailConfig MailConfig + +func init() { + ParseFromConfigFile("mail", &mailConfig) + if mailConfig.Host != "" { + var err error + if mailConfig.port, err = strconv.Atoi(mailConfig.Port); err != nil { + panic(fmt.Errorf("parse mail port err: %v", err)) + } + mailConfig.toList = strings.Split(mailConfig.To, ",") + } +} + +func SendMail(subject string, body string, attachments ...string) error { + if mailConfig.Host == "" { + logrus.Info("mail not configured, do nothing") + return nil + } + dail := gomail.NewDialer(mailConfig.Host, mailConfig.port, mailConfig.User, mailConfig.Password) + dail.TLSConfig = &tls.Config{InsecureSkipVerify: true, ServerName: mailConfig.Host} + msg := gomail.NewMessage() + msg.SetBody("text/html", body) + msg.SetHeader("From", mailConfig.From) + msg.SetHeader("To", mailConfig.toList...) + msg.SetHeader("Subject", subject) + for _, a := range attachments { + msg.Attach(a) + } + return dail.DialAndSend(msg) +} diff --git a/tools/fotff/utils/pprof.go b/tools/fotff/utils/pprof.go new file mode 100644 index 0000000..8c505c4 --- /dev/null +++ b/tools/fotff/utils/pprof.go @@ -0,0 +1,26 @@ +package utils + +import ( + "github.com/sirupsen/logrus" + "net" + "net/http" + _ "net/http/pprof" + "strconv" +) + +func EnablePprof() { + var cfg struct { + Enable string `key:"enable" default:"true"` + Port string `key:"port" default:"80"` + } + ParseFromConfigFile("pprof", &cfg) + if enable, _ := strconv.ParseBool(cfg.Enable); !enable { + return + } + server := &http.Server{Addr: net.JoinHostPort("localhost", cfg.Port)} + go func() { + if err := server.ListenAndServe(); err != nil { + logrus.Errorf("server.ListenAndServe returns error: %v", err) + } + }() +} diff --git a/tools/fotff/utils/proxy.go b/tools/fotff/utils/proxy.go new file mode 100644 index 0000000..25f88c7 --- /dev/null +++ b/tools/fotff/utils/proxy.go @@ -0,0 +1,88 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * 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. + */ + +package utils + +import ( + "fmt" + "github.com/sirupsen/logrus" + "net/http" + "net/url" + "strings" + "sync" + "time" +) + +type ProxyConfig struct { + ServerList string `key:"server_list" default:""` + User string `key:"user" default:""` + Password string `key:"password" default:""` +} + +var proxyClient = http.DefaultClient +var ( + proxyUser string + proxyPassword string + proxyList []string + proxyIndex int + proxyLock sync.Mutex +) + +func init() { + var config ProxyConfig + ParseFromConfigFile("proxy", &config) + if len(config.ServerList) != 0 { + proxyList = strings.Split(config.ServerList, ",") + } + proxyUser = config.User + proxyPassword = config.Password + proxyIndex = len(proxyList) + SwitchProxy() + t := time.NewTicker(6 * time.Hour) + go func() { + <-t.C + proxyLock.Lock() + proxyIndex = len(proxyList) + proxyLock.Unlock() + }() +} + +func SwitchProxy() { + if len(proxyList) == 0 { + return + } + proxyLock.Lock() + defer proxyLock.Unlock() + proxyIndex++ + if proxyIndex >= len(proxyList) { + proxyIndex = 0 + } + var proxyURL *url.URL + var err error + logrus.Infof("switching proxy to %s", proxyList[proxyIndex]) + if proxyUser == "" { + proxyURL, err = url.Parse(fmt.Sprintf("http://%s", proxyList[proxyIndex])) + } else { + proxyURL, err = url.Parse(fmt.Sprintf("http://%s:%s@%s", proxyUser, url.QueryEscape(proxyPassword), proxyList[proxyIndex])) + } + if err != nil { + logrus.Errorf("failed to parse proxy url, err: %v", err) + } + proxyClient = &http.Client{ + Transport: &http.Transport{ + Proxy: http.ProxyURL(proxyURL), + }, + } +} diff --git a/tools/fotff/utils/runtime.go b/tools/fotff/utils/runtime.go new file mode 100644 index 0000000..40e499d --- /dev/null +++ b/tools/fotff/utils/runtime.go @@ -0,0 +1,56 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * 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. + */ + +package utils + +import ( + "fmt" + "github.com/patrickmn/go-cache" + "os" + "path/filepath" + "time" +) + +var runtimeDir = `.fotff` + +var runtimeCache = cache.New(24*time.Hour, time.Hour) + +func sectionKey(section, key string) string { + return fmt.Sprintf("__%s__%s__", section, key) +} + +func init() { + if err := os.MkdirAll(runtimeDir, 0750); err != nil { + panic(err) + } + runtimeCache.LoadFile(filepath.Join(runtimeDir, "fotff.cache")) +} + +func CacheGet(section string, k string) (v any, found bool) { + return runtimeCache.Get(sectionKey(section, k)) +} + +func CacheSet(section string, k string, v any) error { + runtimeCache.Set(sectionKey(section, k), v, cache.DefaultExpiration) + return runtimeCache.SaveFile(filepath.Join(runtimeDir, "fotff.cache")) +} + +func WriteRuntimeData(name string, data []byte) error { + return os.WriteFile(filepath.Join(runtimeDir, name), data, 0640) +} + +func ReadRuntimeData(name string) ([]byte, error) { + return os.ReadFile(filepath.Join(runtimeDir, name)) +} diff --git a/tools/fotff/utils/ssh.go b/tools/fotff/utils/ssh.go new file mode 100644 index 0000000..ad255d0 --- /dev/null +++ b/tools/fotff/utils/ssh.go @@ -0,0 +1,164 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * 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. + */ + +package utils + +import ( + "context" + "errors" + "fmt" + "github.com/pkg/sftp" + "github.com/sirupsen/logrus" + "golang.org/x/crypto/ssh" + "io" + "os" + "path/filepath" + "time" +) + +func newSSHClient(addr string, user string, passwd string) (*ssh.Client, error) { + config := &ssh.ClientConfig{ + User: user, + Auth: []ssh.AuthMethod{ssh.Password(passwd)}, + HostKeyCallback: ssh.InsecureIgnoreHostKey(), + } + config.SetDefaults() + return ssh.Dial("tcp", addr, config) +} + +func RunCmdViaSSHContext(ctx context.Context, addr string, user string, passwd string, cmd string) (err error) { + ctx, fn := context.WithTimeout(ctx, 6*time.Hour) + defer fn() + if err := RunCmdViaSSHContextNoRetry(ctx, addr, user, passwd, cmd); err != nil { + if errors.Is(err, context.Canceled) { + return err + } + logrus.Errorf("exec cmd via SSH at %s failed: %v, try again...", addr, err) + return RunCmdViaSSHContextNoRetry(ctx, addr, user, passwd, cmd) + } + return nil +} + +func RunCmdViaSSHContextNoRetry(ctx context.Context, addr string, user string, passwd string, cmd string) (err error) { + exit := make(chan struct{}) + client, err := newSSHClient(addr, user, passwd) + if err != nil { + logrus.Errorf("new SSH client to %s err: %v", addr, err) + return err + } + defer client.Close() + session, err := client.NewSession() + if err != nil { + return err + } + defer func() { + select { + case <-ctx.Done(): + err = ctx.Err() + default: + } + }() + defer close(exit) + go func() { + select { + case <-ctx.Done(): + case <-exit: + } + session.Close() + }() + logrus.Infof("run at %s: %s", addr, cmd) + stdin, err := session.StdinPipe() + if err != nil { + return err + } + defer stdin.Close() + stdout, err := session.StdoutPipe() + if err != nil { + return err + } + stderr, err := session.StderrPipe() + if err != nil { + return err + } + if err := session.Shell(); err != nil { + return err + } + cmd = fmt.Sprintf("%s\nexit $?\n", cmd) + go stdin.Write([]byte(cmd)) + go io.Copy(os.Stdout, stdout) + go io.Copy(os.Stderr, stderr) + fmt.Printf("[%s] exec at %s %s :\n", time.Now(), addr, cmd) + return session.Wait() +} + +type Direct string + +const ( + Download Direct = "download" + Upload Direct = "upload" +) + +func TransFileViaSSH(verb Direct, addr string, user string, passwd string, remoteFile string, localFile string) error { + c, err := newSSHClient(addr, user, passwd) + if err != nil { + logrus.Errorf("new SSH client to %s err: %v", addr, err) + return err + } + defer c.Close() + client, err := sftp.NewClient(c) + if err != nil { + logrus.Errorf("new SFTP client to %s err: %v", addr, err) + return err + } + defer client.Close() + var prep string + var src, dst io.ReadWriteCloser + if verb == Download { + prep = "to" + if src, err = client.Open(remoteFile); err != nil { + return fmt.Errorf("open remote file %s at %s err: %v", remoteFile, addr, err) + } + defer src.Close() + os.RemoveAll(localFile) + os.MkdirAll(filepath.Dir(localFile), 0755) + if dst, err = os.Create(localFile); err != nil { + return fmt.Errorf("create local file err: %v", err) + } + defer dst.Close() + } else { + prep = "from" + if src, err = os.Open(localFile); err != nil { + return fmt.Errorf("open local file err: %v", err) + } + defer src.Close() + client.Remove(remoteFile) + client.MkdirAll(filepath.Dir(remoteFile)) + if dst, err = client.Create(remoteFile); err != nil { + return fmt.Errorf("create remote file %s at %s err: %v", remoteFile, addr, err) + } + defer dst.Close() + } + logrus.Infof("%sing %s at %s %s %s...", verb, remoteFile, addr, prep, localFile) + t1 := time.Now() + n, err := io.CopyBuffer(dst, src, make([]byte, 32*1024*1024)) + if err != nil { + logrus.Errorf("%s %s at %s %s %s err: %v", verb, remoteFile, addr, prep, localFile, err) + return err + } + t2 := time.Now() + cost := t2.Sub(t1).Seconds() + logrus.Infof("%s %s at %s %s %s done, size: %d cost: %.2fs speed: %.2fMB/s", verb, remoteFile, addr, prep, localFile, n, cost, float64(n)/cost/1024/1024) + return nil +} diff --git a/tools/fotff/vcs/gitee/branch.go b/tools/fotff/vcs/gitee/branch.go new file mode 100644 index 0000000..10c196f --- /dev/null +++ b/tools/fotff/vcs/gitee/branch.go @@ -0,0 +1,41 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * 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. + */ + +package gitee + +import ( + "encoding/json" + "fmt" + "fotff/utils" + "net/http" +) + +type BranchResp struct { + Name string `json:"name"` + Commit *Commit `json:"commit"` +} + +func GetBranch(owner, repo, branch string) (*BranchResp, error) { + url := fmt.Sprintf("https://gitee.com/api/v5/repos/%s/%s/branches/%s", owner, repo, branch) + resp, err := utils.DoSimpleHttpReq(http.MethodGet, url, nil, nil) + if err != nil { + return nil, err + } + var branchResp BranchResp + if err := json.Unmarshal(resp, &branchResp); err != nil { + return nil, err + } + return &branchResp, nil +} diff --git a/tools/fotff/vcs/gitee/commit.go b/tools/fotff/vcs/gitee/commit.go new file mode 100644 index 0000000..21c3c96 --- /dev/null +++ b/tools/fotff/vcs/gitee/commit.go @@ -0,0 +1,45 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * 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. + */ + +package gitee + +import ( + "encoding/json" + "fmt" + "fotff/utils" + "net/http" +) + +func GetCommit(owner, repo, id string) (*Commit, error) { + url := fmt.Sprintf("https://gitee.com/api/v5/repos/%s/%s/commits/%s", owner, repo, id) + var resp []byte + if c, found := utils.CacheGet("gitee", url); found { + resp = c.([]byte) + } else { + var err error + resp, err = utils.DoSimpleHttpReq(http.MethodGet, url, nil, nil) + if err != nil { + return nil, err + } + utils.CacheSet("gitee", url, resp) + } + var commitResp Commit + if err := json.Unmarshal(resp, &commitResp); err != nil { + return nil, err + } + commitResp.Owner = owner + commitResp.Repo = repo + return &commitResp, nil +} diff --git a/tools/fotff/vcs/gitee/compare.go b/tools/fotff/vcs/gitee/compare.go new file mode 100644 index 0000000..4271d24 --- /dev/null +++ b/tools/fotff/vcs/gitee/compare.go @@ -0,0 +1,139 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * 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. + */ + +package gitee + +import ( + "encoding/json" + "fmt" + "fotff/utils" + "net/http" + "time" +) + +type CompareParam struct { + Head string + Base string + Repo string + Owner string +} + +type CompareResp struct { + Commits []*Commit `json:"commits"` +} + +type Commit struct { + CommitExtend `json:"-"` + URL string `json:"url"` + SHA string `json:"sha"` + Commit struct { + Committer struct { + Date string `json:"date"` + } `json:"committer"` + Message string `json:"message"` + } `json:"commit"` + Parents []struct { + SHA string `json:"sha"` + URL string `json:"url"` + } `json:"parents"` + Files []struct { + Filename string `json:"filename"` + Status string `json:"status"` + Patch string `json:"patch,omitempty"` + } `json:"files,omitempty"` +} + +type CommitExtend struct { + Owner string + Repo string +} + +func GetLatestMRBefore(owner, repo, branch string, before string) (ret *Commit, err error) { + branchResp, err := GetBranch(owner, repo, branch) + if err != nil { + return nil, err + } + head := branchResp.Commit + head.Owner = owner + head.Repo = repo + for head.Commit.Committer.Date > before { + if head, err = GetCommit(owner, repo, head.Parents[0].SHA); err != nil { + return nil, err + } + } + return head, nil +} + +func GetBetweenTimeMRs(owner, repo, branch string, from, to time.Time) (ret []*Commit, err error) { + branchResp, err := GetBranch(owner, repo, branch) + if err != nil { + return nil, err + } + fromStr := from.UTC().Format(time.RFC3339) + toStr := to.UTC().Format(time.RFC3339) + head := branchResp.Commit + head.Owner = owner + head.Repo = repo + for head.Commit.Committer.Date > fromStr { + if head.Commit.Committer.Date < toStr { + ret = append(ret, head) + } + if head, err = GetCommit(owner, repo, head.Parents[0].SHA); err != nil { + return nil, err + } + } + return ret, nil +} + +func GetBetweenMRs(param CompareParam) ([]*Commit, error) { + commits, err := GetBetweenCommits(param) + if err != nil { + return nil, err + } + var ret []*Commit + head := param.Head + for head != param.Base { + for _, commit := range commits { + if commit.SHA != head { + continue + } + commit.Owner = param.Owner + commit.Repo = param.Repo + ret = append(ret, commit) + head = commit.Parents[0].SHA + } + } + return ret, nil +} + +func GetBetweenCommits(param CompareParam) ([]*Commit, error) { + url := fmt.Sprintf("https://gitee.com/api/v5/repos/%s/%s/compare/%s...%s", param.Owner, param.Repo, param.Base, param.Head) + var resp []byte + if c, found := utils.CacheGet("gitee", url); found { + resp = c.([]byte) + } else { + var err error + resp, err = utils.DoSimpleHttpReq(http.MethodGet, url, nil, nil) + if err != nil { + return nil, err + } + utils.CacheSet("gitee", url, resp) + } + var compareResp CompareResp + if err := json.Unmarshal(resp, &compareResp); err != nil { + return nil, err + } + return compareResp.Commits, nil +} diff --git a/tools/fotff/vcs/gitee/issue.go b/tools/fotff/vcs/gitee/issue.go new file mode 100644 index 0000000..48a2c04 --- /dev/null +++ b/tools/fotff/vcs/gitee/issue.go @@ -0,0 +1,51 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * 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. + */ + +package gitee + +import ( + "encoding/json" + "fmt" + "fotff/utils" + "net/http" +) + +type PRIssueResp struct { + URL string `json:"html_url"` +} + +func GetMRIssueURL(owner string, repo string, num int) ([]string, error) { + url := fmt.Sprintf("https://gitee.com/api/v5/repos/%s/%s/pulls/%d/issues", owner, repo, num) + var resp []byte + if c, found := utils.CacheGet("gitee", url); found { + resp = c.([]byte) + } else { + var err error + resp, err = utils.DoSimpleHttpReq(http.MethodGet, url, nil, nil) + if err != nil { + return nil, err + } + utils.CacheSet("gitee", url, resp) + } + var prIssues []PRIssueResp + if err := json.Unmarshal(resp, &prIssues); err != nil { + return nil, err + } + ret := make([]string, len(prIssues)) + for i, issue := range prIssues { + ret[i] = issue.URL + } + return ret, nil +} diff --git a/tools/fotff/vcs/manifest.go b/tools/fotff/vcs/manifest.go new file mode 100644 index 0000000..93c3caa --- /dev/null +++ b/tools/fotff/vcs/manifest.go @@ -0,0 +1,186 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * 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. + */ + +package vcs + +import ( + "crypto/md5" + "encoding/xml" + "fmt" + "github.com/sirupsen/logrus" + "os" + "sort" +) + +type Manifest struct { + XMLName xml.Name `xml:"manifest"` + Remote Remote `xml:"remote"` + Default Default `xml:"default"` + Projects []Project `xml:"project"` +} + +type Remote struct { + Name string `xml:"name,attr"` + Fetch string `xml:"fetch,attr"` + Review string `xml:"review,attr"` +} + +type Default struct { + Remote string `xml:"remote,attr"` + Revision string `xml:"revision,attr"` + SyncJ string `xml:"sync-j,attr"` +} + +type Project struct { + XMLName xml.Name `xml:"project"` + Name string `xml:"name,attr"` + Path string `xml:"path,attr,omitempty"` + Revision string `xml:"revision,attr"` + Remote string `xml:"remote,attr,omitempty"` + CloneDepth string `xml:"clone-depth,attr,omitempty"` + LinkFile []LinkFile `xml:"linkfile,omitempty"` +} + +type LinkFile struct { + Src string `xml:"src,attr"` + Dest string `xml:"dest,attr"` +} + +type ProjectUpdate struct { + P1, P2 *Project +} + +func (p *Project) String() string { + if p == nil { + return "" + } + return fmt.Sprintf("<%s>", p.Name) +} + +func (p *Project) StructureDiff(p2 *Project) bool { + if p == nil && p2 != nil || p != nil && p2 == nil { + return true + } + if p == nil && p2 == nil { + return false + } + return p.Name != p2.Name || p.Path != p2.Path || p.Remote != p2.Remote +} + +func (p *Project) Equals(p2 *Project) bool { + return p.Name == p2.Name && p.Path == p2.Path && p.Remote == p2.Remote && p.Revision == p2.Revision +} + +func ParseManifestFile(file string) (*Manifest, error) { + data, err := os.ReadFile(file) + if err != nil { + return nil, err + } + var m Manifest + err = xml.Unmarshal(data, &m) + return &m, err +} + +func (m *Manifest) WriteFile(filePath string) error { + data, err := xml.MarshalIndent(m, "", " ") + if err != nil { + return err + } + data = append([]byte(xml.Header), data...) + return os.WriteFile(filePath, data, 0640) +} + +func GetRepoUpdates(m1, m2 *Manifest) (updates []ProjectUpdate, err error) { + if _, err := m1.Standardize(); err != nil { + return nil, err + } + if _, err := m2.Standardize(); err != nil { + return nil, err + } + var j int + for i := 0; i < len(m1.Projects); { + if m2.Projects[j].Name == m1.Projects[i].Name { + if !m1.Projects[i].Equals(&m2.Projects[j]) { + logrus.Infof("%v changes", &m1.Projects[i]) + updates = append(updates, ProjectUpdate{ + P1: &m1.Projects[i], + P2: &m2.Projects[j], + }) + } + i++ + j++ + } else if m2.Projects[j].Name > m1.Projects[i].Name { + logrus.Infof("%v removed", &m1.Projects[i]) + updates = append(updates, ProjectUpdate{ + P1: &m1.Projects[i], + P2: nil, + }) + i++ + } else { // m2.Projects[j].Name < m1.Projects[i].Name + logrus.Infof("%v added", &m2.Projects[j]) + updates = append(updates, ProjectUpdate{ + P1: nil, + P2: &m2.Projects[j], + }) + j++ + } + } + return +} + +func (m *Manifest) UpdateManifestProject(name, path, remote, revision string, add bool) { + if name == "manifest" { + return + } + for i, p := range m.Projects { + if p.Name == name { + if path != "" { + m.Projects[i].Path = path + } + if remote != "" { + m.Projects[i].Remote = remote + } + if revision != "" { + m.Projects[i].Revision = revision + } + return + } + } + if add { + m.Projects = append(m.Projects, Project{Name: name, Path: path, Revision: revision, Remote: remote}) + } +} + +func (m *Manifest) RemoveManifestProject(name string) { + for i, p := range m.Projects { + if p.Name == name { + m.Projects = append(m.Projects[:i], m.Projects[i:]...) + return + } + } +} + +func (m *Manifest) Standardize() (string, error) { + sort.Slice(m.Projects, func(i, j int) bool { + return m.Projects[i].Name < m.Projects[j].Name + }) + data, err := xml.MarshalIndent(m, "", " ") + if err != nil { + return "", err + } + data = append([]byte(xml.Header), data...) + sumByte := md5.Sum(data) + return fmt.Sprintf("%X", sumByte), nil +} -- Gitee From 0393ecf49e081e95281780fc9cb29c659cb47731 Mon Sep 17 00:00:00 2001 From: JasonYujia Date: Sun, 2 Apr 2023 07:59:56 +0000 Subject: [PATCH 004/201] Delete old process name Signed-off-by: JasonYujia --- cases/smoke/basic/screenshot32/resource/process.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/cases/smoke/basic/screenshot32/resource/process.txt b/cases/smoke/basic/screenshot32/resource/process.txt index 4899b7b..65c063f 100644 --- a/cases/smoke/basic/screenshot32/resource/process.txt +++ b/cases/smoke/basic/screenshot32/resource/process.txt @@ -41,7 +41,6 @@ telephony camera_service foundation hdcd -disp_gralloc_host light_host vibrator_host sensor_host -- Gitee From 64379ba637011709dde0707e1aa9f8b20dd0dce3 Mon Sep 17 00:00:00 2001 From: zhangkaixiang Date: Fri, 7 Apr 2023 16:44:45 +0800 Subject: [PATCH 005/201] delete distirbutedfile process Signed-off-by: zhangkaixiang --- cases/smoke/basic/screenshot32/resource/process.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/cases/smoke/basic/screenshot32/resource/process.txt b/cases/smoke/basic/screenshot32/resource/process.txt index 65c063f..1261aea 100644 --- a/cases/smoke/basic/screenshot32/resource/process.txt +++ b/cases/smoke/basic/screenshot32/resource/process.txt @@ -30,7 +30,6 @@ distributeddata useriam inputmethod_ser ui_service -distributedfile netmanager sensors media_service -- Gitee From 044a40b2abbc29668fc4ec49c52cbd285b4275cd Mon Sep 17 00:00:00 2001 From: noellemu Date: Fri, 7 Apr 2023 16:10:16 +0800 Subject: [PATCH 006/201] Add common tester for fotff Signed-off-by: mujingrong --- tools/fotff/main.go | 7 +- tools/fotff/tester/common/common.go | 143 ++++++++++++++++++++++++++++ 2 files changed, 148 insertions(+), 2 deletions(-) create mode 100644 tools/fotff/tester/common/common.go diff --git a/tools/fotff/main.go b/tools/fotff/main.go index 2c7d73d..a5f4fde 100644 --- a/tools/fotff/main.go +++ b/tools/fotff/main.go @@ -23,15 +23,17 @@ import ( "fotff/rec" "fotff/res" "fotff/tester" + "fotff/tester/common" "fotff/tester/manual" testermock "fotff/tester/mock" "fotff/tester/smoke" "fotff/tester/xdevice" "fotff/utils" - "github.com/sirupsen/logrus" - "github.com/spf13/cobra" "os" "path/filepath" + + "github.com/sirupsen/logrus" + "github.com/spf13/cobra" ) var newPkgMgrFuncs = map[string]pkg.NewFunc{ @@ -42,6 +44,7 @@ var newPkgMgrFuncs = map[string]pkg.NewFunc{ var newTesterFuncs = map[string]tester.NewFunc{ "mock": testermock.NewTester, "manual": manual.NewTester, + "common": common.NewTester, "xdevice": xdevice.NewTester, "smoke": smoke.NewTester, } diff --git a/tools/fotff/tester/common/common.go b/tools/fotff/tester/common/common.go new file mode 100644 index 0000000..d4f28dc --- /dev/null +++ b/tools/fotff/tester/common/common.go @@ -0,0 +1,143 @@ +package common + +import ( + "context" + "encoding/json" + "errors" + "fmt" + "fotff/tester" + "fotff/utils" + "os" + "path/filepath" + "strings" + + "github.com/sirupsen/logrus" +) + +const ( + testResultPass = "pass" + testCaseFlag = "--test-case" + deviceFlag = "--device" +) + +// Tester is the common tester for most kinds of tests +type Tester struct { + Tool string `key:"tool"` + Param string `key:"param"` + ResultPath string `key:"result_path"` + ResultFile string `key:"result_file"` +} + +// TestResult is the structure of the test result json file +type TestResult struct { + TestCase string `json:"test_case"` + Result string `json:"result"` +} + +func NewTester() tester.Tester { + t := &Tester{} + utils.ParseFromConfigFile("common", t) + return t +} + +func (t *Tester) TaskName() string { + return "common_tester" +} + +func (t *Tester) Prepare(version string, device string, ctx context.Context) error { + return nil +} + +// DoTestTask run all test cases on the specified device +func (t *Tester) DoTestTask(device string, ctx context.Context) ([]tester.Result, error) { + args := strings.Split(t.Param, " ") + if device != "" { + args = append(args, []string{deviceFlag, device}...) + } + if err := utils.ExecContext(ctx, t.Tool, args...); err != nil { + if errors.Is(err, context.Canceled) { + return nil, err + } + logrus.Errorf("Failed to do test task on device %s, error: %s", device, err.Error()) + return nil, err + } + + return t.processResult() +} + +// DoTestCase run the specified test case on the specified device +func (t *Tester) DoTestCase(device string, testCase string, ctx context.Context) (tester.Result, error) { + args := strings.Split(t.Param, " ") + args = append(args, testCaseFlag) + args = append(args, testCase) + if device != "" { + args = append(args, []string{deviceFlag, device}...) + } + defaultResult := tester.Result{} + if err := utils.ExecContext(ctx, t.Tool, args...); err != nil { + if errors.Is(err, context.Canceled) { + return defaultResult, err + } + logrus.Errorf("Failed to do test case %s on device %s, error: %s", testCase, device, err.Error()) + return defaultResult, err + } + + rs, err := t.processResult() + if err != nil { + return defaultResult, err + } + if len(rs) == 0 { + return defaultResult, fmt.Errorf("failed to process test result: no test result found") + } + if rs[0].TestCaseName != testCase { + return defaultResult, fmt.Errorf("failed to process test result: no matched test result found") + } + + logrus.Infof("test case %s on device %s finished, the result is %s", testCase, device, rs[0].Status) + return rs[0], nil +} + +// DoTestCases run the specified test cases on the specified device +func (t *Tester) DoTestCases(device string, testCases []string, ctx context.Context) ([]tester.Result, error) { + args := strings.Split(t.Param, " ") + args = append(args, testCaseFlag) + args = append(args, testCases...) + if device != "" { + args = append(args, []string{deviceFlag, device}...) + } + if err := utils.ExecContext(ctx, t.Tool, args...); err != nil { + if errors.Is(err, context.Canceled) { + return nil, err + } + logrus.Errorf("Failed to do test cases %v on device %s, error: %s", testCases, device, err.Error()) + return nil, err + } + + return t.processResult() +} + +// processResult parse the test result file +func (t *Tester) processResult() ([]tester.Result, error) { + resultFile := filepath.Join(t.ResultPath, t.ResultFile) + data, err := os.ReadFile(resultFile) + if err != nil { + logrus.Errorf("Failed to read from result file %s, error: %s", resultFile, err.Error()) + return nil, err + } + + var result []TestResult + if err := json.Unmarshal(data, &result); err != nil { + logrus.Errorf("Failed to unmarshal test result %s into json array, error: %s", string(data), err.Error()) + return nil, err + } + + var ret []tester.Result + for _, r := range result { + if r.Result == testResultPass { + ret = append(ret, tester.Result{TestCaseName: r.TestCase, Status: tester.ResultPass}) + } else { + ret = append(ret, tester.Result{TestCaseName: r.TestCase, Status: tester.ResultFail}) + } + } + return ret, nil +} -- Gitee From a2cfaa84be60cca19df31af3e55a0dd7903a17db Mon Sep 17 00:00:00 2001 From: mujingrong Date: Mon, 10 Apr 2023 11:53:52 +0800 Subject: [PATCH 007/201] standardize args for common tester Signed-off-by: mujingrong --- tools/fotff/tester/common/common.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tools/fotff/tester/common/common.go b/tools/fotff/tester/common/common.go index d4f28dc..d5fbd18 100644 --- a/tools/fotff/tester/common/common.go +++ b/tools/fotff/tester/common/common.go @@ -68,8 +68,7 @@ func (t *Tester) DoTestTask(device string, ctx context.Context) ([]tester.Result // DoTestCase run the specified test case on the specified device func (t *Tester) DoTestCase(device string, testCase string, ctx context.Context) (tester.Result, error) { args := strings.Split(t.Param, " ") - args = append(args, testCaseFlag) - args = append(args, testCase) + args = append(args, []string{testCaseFlag, testCase}...) if device != "" { args = append(args, []string{deviceFlag, device}...) } -- Gitee From 4354fa87fdac3d4d9ef4d4a39e46411d477a89c1 Mon Sep 17 00:00:00 2001 From: huangshan Date: Mon, 10 Apr 2023 15:34:40 +0800 Subject: [PATCH 008/201] refactor pkg to support more devices Signed-off-by: huangshan Change-Id: Ibe479d5840a10130a98ad2f3cd82bf888a95215e --- tools/fotff/main.go | 18 +- tools/fotff/pkg/dayu200/dayu200.go | 172 ++-- tools/fotff/pkg/gitee_build/gitee_build.go | 74 ++ .../pkg/{dayu200 => gitee_common}/build.go | 75 +- tools/fotff/pkg/gitee_common/common.go | 151 ++++ .../{dayu200 => gitee_common}/get_newer_ci.go | 73 +- tools/fotff/pkg/gitee_common/get_newer_dir.go | 45 ++ .../pkg/gitee_common/get_newer_or_fail.go | 111 +++ .../pkg/{dayu200 => gitee_common}/steps_ci.go | 12 +- .../{dayu200 => gitee_common}/steps_gitee.go | 732 +++++++++--------- .../steps_gitee_test.go | 2 +- .../manifest_tag.xml | 0 .../manifest_tag.xml | 0 .../manifest_tag.xml | 0 .../manifest_tag.xml | 0 .../manifest_tag.xml | 0 .../manifest_tag.xml | 0 tools/fotff/pkg/pkg.go | 26 - tools/fotff/rec/fotff.go | 13 +- .../tester/pkg_available/pkg_available.go | 81 ++ tools/fotff/utils/http.go | 12 +- tools/fotff/utils/ini.go | 17 + 22 files changed, 1007 insertions(+), 607 deletions(-) create mode 100644 tools/fotff/pkg/gitee_build/gitee_build.go rename tools/fotff/pkg/{dayu200 => gitee_common}/build.go (55%) create mode 100644 tools/fotff/pkg/gitee_common/common.go rename tools/fotff/pkg/{dayu200 => gitee_common}/get_newer_ci.go (63%) create mode 100644 tools/fotff/pkg/gitee_common/get_newer_dir.go create mode 100644 tools/fotff/pkg/gitee_common/get_newer_or_fail.go rename tools/fotff/pkg/{dayu200 => gitee_common}/steps_ci.go (95%) rename tools/fotff/pkg/{dayu200 => gitee_common}/steps_gitee.go (94%) rename tools/fotff/pkg/{dayu200 => gitee_common}/steps_gitee_test.go (99%) rename tools/fotff/pkg/{dayu200 => gitee_common}/testdata/version-Daily_Version-dayu200-20221201_080109-dayu200/manifest_tag.xml (100%) rename tools/fotff/pkg/{dayu200 => gitee_common}/testdata/version-Daily_Version-dayu200-20221201_100141-dayu200/manifest_tag.xml (100%) rename tools/fotff/pkg/{dayu200 => gitee_common}/testdata/version-Daily_Version-dayu200-20221213_110027-dayu200/manifest_tag.xml (100%) rename tools/fotff/pkg/{dayu200 => gitee_common}/testdata/version-Daily_Version-dayu200-20221213_140150-dayu200/manifest_tag.xml (100%) rename tools/fotff/pkg/{dayu200 => gitee_common}/testdata/version-Daily_Version-dayu200-20221214_100124-dayu200/manifest_tag.xml (100%) rename tools/fotff/pkg/{dayu200 => gitee_common}/testdata/version-Daily_Version-dayu200-20221214_110125-dayu200/manifest_tag.xml (100%) create mode 100644 tools/fotff/tester/pkg_available/pkg_available.go diff --git a/tools/fotff/main.go b/tools/fotff/main.go index a5f4fde..4bb156f 100644 --- a/tools/fotff/main.go +++ b/tools/fotff/main.go @@ -19,6 +19,7 @@ import ( "context" "fotff/pkg" "fotff/pkg/dayu200" + "fotff/pkg/gitee_build" "fotff/pkg/mock" "fotff/rec" "fotff/res" @@ -26,6 +27,7 @@ import ( "fotff/tester/common" "fotff/tester/manual" testermock "fotff/tester/mock" + "fotff/tester/pkg_available" "fotff/tester/smoke" "fotff/tester/xdevice" "fotff/utils" @@ -37,16 +39,18 @@ import ( ) var newPkgMgrFuncs = map[string]pkg.NewFunc{ - "mock": mock.NewManager, - "dayu200": dayu200.NewManager, + "mock": mock.NewManager, + "dayu200": dayu200.NewManager, + "gitee_build": gitee_build.NewManager, } var newTesterFuncs = map[string]tester.NewFunc{ - "mock": testermock.NewTester, - "manual": manual.NewTester, - "common": common.NewTester, - "xdevice": xdevice.NewTester, - "smoke": smoke.NewTester, + "mock": testermock.NewTester, + "manual": manual.NewTester, + "common": common.NewTester, + "xdevice": xdevice.NewTester, + "smoke": smoke.NewTester, + "pkg_available": pkg_available.NewTester, } var rootCmd *cobra.Command diff --git a/tools/fotff/pkg/dayu200/dayu200.go b/tools/fotff/pkg/dayu200/dayu200.go index 17ae273..b02a9de 100644 --- a/tools/fotff/pkg/dayu200/dayu200.go +++ b/tools/fotff/pkg/dayu200/dayu200.go @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022 Huawei Device Co., Ltd. + * Copyright (c) 2022-2023 Huawei Device Co., Ltd. * 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 @@ -16,38 +16,62 @@ package dayu200 import ( - "code.cloudfoundry.org/archiver/extractor" "context" - "fmt" "fotff/pkg" + "fotff/pkg/gitee_common" "fotff/res" "fotff/utils" "github.com/sirupsen/logrus" - "os" - "path/filepath" "strconv" "strings" - "time" ) type Manager struct { - ArchiveDir string `key:"archive_dir" default:"."` - FromCI string `key:"download_from_ci" default:"false"` - Workspace string `key:"workspace" default:"."` + ArchiveDir string `key:"archive_dir" default:"archive"` + WatchCI string `key:"watch_ci" default:"false"` + Workspace string `key:"workspace" default:"workspace"` Branch string `key:"branch" default:"master"` FlashTool string `key:"flash_tool" default:"python"` LocationIDList string `key:"location_id_list"` - locations map[string]string - fromCI bool + + *gitee_common.Manager + locations map[string]string +} + +// These commands are copied from ci project. +const ( + preCompileCMD = `rm -rf prebuilts/clang/ohos/darwin-x86_64/clang-480513;rm -rf prebuilts/clang/ohos/windows-x86_64/clang-480513;rm -rf prebuilts/clang/ohos/linux-x86_64/clang-480513;bash build/prebuilts_download.sh` + // compileCMD is copied from ci project and trim useless build-target 'make_test' to enhance build efficiency. + compileCMD = `echo 'start' && export NO_DEVTOOL=1 && export CCACHE_LOG_SUFFIX="dayu200-arm32" && export CCACHE_NOHASHDIR="true" && export CCACHE_SLOPPINESS="include_file_ctime" && ./build.sh --product-name rk3568 --ccache --build-target make_all --gn-args enable_notice_collection=false` +) + +// This list is copied from ci project. Some of them are not available, has been annotated. +var imgList = []string{ + "out/rk3568/packages/phone/images/MiniLoaderAll.bin", + "out/rk3568/packages/phone/images/boot_linux.img", + "out/rk3568/packages/phone/images/parameter.txt", + "out/rk3568/packages/phone/images/system.img", + "out/rk3568/packages/phone/images/uboot.img", + "out/rk3568/packages/phone/images/userdata.img", + "out/rk3568/packages/phone/images/vendor.img", + "out/rk3568/packages/phone/images/resource.img", + "out/rk3568/packages/phone/images/config.cfg", + "out/rk3568/packages/phone/images/ramdisk.img", + // "out/rk3568/packages/phone/images/chipset.img", + "out/rk3568/packages/phone/images/sys_prod.img", + "out/rk3568/packages/phone/images/chip_prod.img", + "out/rk3568/packages/phone/images/updater.img", + // "out/rk3568/packages/phone/updater/bin/updater_binary", } func NewManager() pkg.Manager { var ret Manager utils.ParseFromConfigFile("dayu200", &ret) - var err error - if ret.fromCI, err = strconv.ParseBool(ret.FromCI); err != nil { - logrus.Panicf("can not parse 'download_from_ci', please check") + watchCI, err := strconv.ParseBool(ret.WatchCI) + if err != nil { + logrus.Panicf("can not parse 'watch_ci', please check") } + ret.Manager = gitee_common.NewManager("dayu200", ret.Branch, ret.ArchiveDir, ret.Workspace, watchCI) devs := res.DeviceList() locs := strings.Split(ret.LocationIDList, ",") if len(devs) != len(locs) { @@ -57,125 +81,23 @@ func NewManager() pkg.Manager { for i, loc := range locs { ret.locations[devs[i]] = loc } - go ret.cleanupOutdated() return &ret } -func (m *Manager) cleanupOutdated() { - t := time.NewTicker(24 * time.Hour) - for { - <-t.C - es, err := os.ReadDir(m.Workspace) - if err != nil { - logrus.Errorf("can not read %s: %v", m.Workspace, err) - continue - } - for _, e := range es { - if !e.IsDir() { - continue - } - path := filepath.Join(m.Workspace, e.Name()) - info, err := e.Info() - if err != nil { - logrus.Errorf("can not read %s info: %v", path, err) - continue - } - if time.Now().Sub(info.ModTime()) > 7*24*time.Hour { - logrus.Warnf("%s outdated, cleanning up its contents...", path) - m.cleanupPkgFiles(path) - } - } - } -} - -func (m *Manager) cleanupPkgFiles(path string) { - es, err := os.ReadDir(path) - if err != nil { - logrus.Errorf("can not read %s: %v", path, err) - return - } - for _, e := range es { - if e.Name() == "manifest_tag.xml" || e.Name() == "__last_issue__" { - continue - } - if err := os.RemoveAll(filepath.Join(path, e.Name())); err != nil { - logrus.Errorf("remove %s fail: %v", filepath.Join(path, e.Name()), err) - } - } -} - // Flash function implements pkg.Manager. Flash images in the 'pkg' directory to the given device. // If not all necessary images are available in the 'pkg' directory, will build them. func (m *Manager) Flash(device string, pkg string, ctx context.Context) error { logrus.Infof("now flash %s", pkg) - if !m.pkgAvailable(pkg) { - logrus.Infof("%s is not available", pkg) - if err := m.build(pkg, false, ctx); err != nil { - logrus.Errorf("build pkg %s err: %v", pkg, err) - logrus.Infof("build pkg %s again...", pkg) - if err = m.build(pkg, true, ctx); err != nil { - logrus.Errorf("build pkg %s err: %v", pkg, err) - return err - } - } + buildConfig := gitee_common.BuildConfig{ + Pkg: pkg, + PreCompileCMD: preCompileCMD, + CompileCMD: compileCMD, + ImgList: imgList, + } + if err := m.Build(buildConfig, ctx); err != nil { + logrus.Errorf("build %s fail, err: %v", pkg, err) + return err } logrus.Infof("%s is available now, start to flash it", pkg) return m.flashDevice(device, pkg, ctx) } - -func (m *Manager) Steps(from, to string) (pkgs []string, err error) { - if from == to { - return nil, fmt.Errorf("steps err: 'from' %s and 'to' %s are the same", from, to) - } - if c, found := utils.CacheGet("dayu200_steps", from+"__to__"+to); found { - logrus.Infof("steps from %s to %s are cached", from, to) - logrus.Infof("steps: %v", c.([]string)) - return c.([]string), nil - } - if pkgs, err = m.stepsFromGitee(from, to); err != nil { - logrus.Errorf("failed to gen steps from gitee, err: %v", err) - logrus.Warnf("fallback to getting steps from CI...") - if pkgs, err = m.stepsFromCI(from, to); err != nil { - return pkgs, err - } - return pkgs, nil - } - utils.CacheSet("dayu200_steps", from+"__to__"+to, pkgs) - return pkgs, nil -} - -func (m *Manager) LastIssue(pkg string) (string, error) { - data, err := os.ReadFile(filepath.Join(m.Workspace, pkg, "__last_issue__")) - return string(data), err -} - -func (m *Manager) GetNewer(cur string) (string, error) { - var newFile string - if m.fromCI { - newFile = m.getNewerFromCI(cur + ".tar.gz") - } else { - newFile = pkg.GetNewerFileFromDir(m.ArchiveDir, cur+".tar.gz", func(files []os.DirEntry, i, j int) bool { - ti, _ := getPackageTime(files[i].Name()) - tj, _ := getPackageTime(files[j].Name()) - return ti.Before(tj) - }) - } - ex := extractor.NewTgz() - dirName := newFile - for filepath.Ext(dirName) != "" { - dirName = strings.TrimSuffix(dirName, filepath.Ext(dirName)) - } - dir := filepath.Join(m.Workspace, dirName) - if _, err := os.Stat(dir); err == nil { - return dirName, nil - } - logrus.Infof("extracting %s to %s...", filepath.Join(m.ArchiveDir, newFile), dir) - if err := ex.Extract(filepath.Join(m.ArchiveDir, newFile), dir); err != nil { - return dirName, err - } - return dirName, nil -} - -func (m *Manager) PkgDir(pkg string) string { - return filepath.Join(m.Workspace, pkg) -} diff --git a/tools/fotff/pkg/gitee_build/gitee_build.go b/tools/fotff/pkg/gitee_build/gitee_build.go new file mode 100644 index 0000000..ad24018 --- /dev/null +++ b/tools/fotff/pkg/gitee_build/gitee_build.go @@ -0,0 +1,74 @@ +/* + * Copyright (c) 2023 Huawei Device Co., Ltd. + * 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. + */ + +package gitee_build + +import ( + "context" + "fotff/pkg" + "fotff/pkg/gitee_common" + "fotff/utils" + "github.com/sirupsen/logrus" + "strings" +) + +type Manager struct { + ArchiveDir string `key:"archive_dir" default:"archive"` + Workspace string `key:"workspace" default:"workspace"` + Branch string `key:"branch" default:"master"` + Component string `key:"component"` + PreCompileCMD string `key:"pre_compile_cmd"` + CompileCMD string `key:"compile_cmd"` + ImageList []string `key:"image_list"` + + *gitee_common.Manager +} + +func NewManager() pkg.Manager { + var ret Manager + utils.ParseFromConfigFile("gitee_build", &ret) + ret.Manager = gitee_common.NewManager(ret.Component, ret.Branch, ret.ArchiveDir, ret.Workspace, true) + return &ret +} + +func (m *Manager) GetNewer(cur string) (string, error) { + return m.GetNewerOrFail(cur) +} + +// Flash function implements pkg.Manager. Since this gitee_build just tests package buildings, +// there is no need to flash images actually, just build it and return nil unconditionally. +func (m *Manager) Flash(device string, pkg string, ctx context.Context) error { + logrus.Infof("now flash %s", pkg) + buildConfig := gitee_common.BuildConfig{ + Pkg: pkg, + PreCompileCMD: m.PreCompileCMD, + CompileCMD: m.CompileCMD, + ImgList: m.ImageList, + } + if m.PkgAvailable(buildConfig) { + return nil + } + if strings.Contains(buildConfig.Pkg, "build_fail") { + logrus.Warnf("here is a known build_fail token package") + } else { + if err := m.BuildNoRetry(buildConfig, true, ctx); err != nil { + logrus.Warnf("build %s fail, err: %v", pkg, err) + } else { + logrus.Infof("%s is available now", pkg) + } + } + logrus.Infof("since fotff just tests package buildings, there is no need to flash images actually, mark flash as a success unconditionally") + return nil +} diff --git a/tools/fotff/pkg/dayu200/build.go b/tools/fotff/pkg/gitee_common/build.go similarity index 55% rename from tools/fotff/pkg/dayu200/build.go rename to tools/fotff/pkg/gitee_common/build.go index 0453005..d2efd04 100644 --- a/tools/fotff/pkg/dayu200/build.go +++ b/tools/fotff/pkg/gitee_common/build.go @@ -13,7 +13,7 @@ * limitations under the License. */ -package dayu200 +package gitee_common import ( "context" @@ -25,48 +25,47 @@ import ( "path/filepath" ) -// These commands are copied from ci project. -const ( - preCompileCMD = `rm -rf prebuilts/clang/ohos/darwin-x86_64/clang-480513;rm -rf prebuilts/clang/ohos/windows-x86_64/clang-480513;rm -rf prebuilts/clang/ohos/linux-x86_64/clang-480513;bash build/prebuilts_download.sh` - // compileCMD is copied from ci project and trim useless build-target 'make_test' to enhance build efficiency. - compileCMD = `echo 'start' && export NO_DEVTOOL=1 && export CCACHE_LOG_SUFFIX="dayu200-arm32" && export CCACHE_NOHASHDIR="true" && export CCACHE_SLOPPINESS="include_file_ctime" && ./build.sh --product-name rk3568 --ccache --build-target make_all --gn-args enable_notice_collection=false` - rmOutCMD = `rm -rf out` -) +type BuildConfig struct { + Pkg string + PreCompileCMD string + CompileCMD string + ImgList []string +} -// This list is copied from ci project. Some of them are not available, has been annotated. -var imgList = []string{ - "out/rk3568/packages/phone/images/MiniLoaderAll.bin", - "out/rk3568/packages/phone/images/boot_linux.img", - "out/rk3568/packages/phone/images/parameter.txt", - "out/rk3568/packages/phone/images/system.img", - "out/rk3568/packages/phone/images/uboot.img", - "out/rk3568/packages/phone/images/userdata.img", - "out/rk3568/packages/phone/images/vendor.img", - "out/rk3568/packages/phone/images/resource.img", - "out/rk3568/packages/phone/images/config.cfg", - "out/rk3568/packages/phone/images/ramdisk.img", - // "out/rk3568/packages/phone/images/chipset.img", - "out/rk3568/packages/phone/images/sys_prod.img", - "out/rk3568/packages/phone/images/chip_prod.img", - "out/rk3568/packages/phone/images/updater.img", - // "out/rk3568/packages/phone/updater/bin/updater_binary", +func (m *Manager) Build(config BuildConfig, ctx context.Context) error { + if m.PkgAvailable(config) { + return nil + } + logrus.Infof("%s is not available", config.Pkg) + err := m.BuildNoRetry(config, false, ctx) + if err == nil { + return nil + } + logrus.Errorf("build pkg %s err: %v", config.Pkg, err) + logrus.Infof("rm out and build pkg %s again...", config.Pkg) + err = m.BuildNoRetry(config, true, ctx) + if err == nil { + return nil + } + logrus.Errorf("build pkg %s err: %v", config.Pkg, err) + return err } -// pkgAvailable returns true if all necessary images are all available to flash. -func (m *Manager) pkgAvailable(pkg string) bool { - for _, img := range imgList { +// PkgAvailable returns true if all necessary images are all available to flash. +func (m *Manager) PkgAvailable(config BuildConfig) bool { + for _, img := range config.ImgList { imgName := filepath.Base(img) - if _, err := os.Stat(filepath.Join(m.Workspace, pkg, imgName)); err != nil { + if _, err := os.Stat(filepath.Join(m.Workspace, config.Pkg, imgName)); err != nil { return false } } return true } -// build obtain an available server, download corresponding codes, and run compile commands +// BuildNoRetry obtain an available server, download corresponding codes, and run compile commands // to build the corresponding package images, then transfer these images to the 'pkg' directory. -func (m *Manager) build(pkg string, rm bool, ctx context.Context) error { - logrus.Infof("now build %s", pkg) +func (m *Manager) BuildNoRetry(config BuildConfig, rm bool, ctx context.Context) error { + logrus.Infof("now Build %s", config.Pkg) server := res.GetBuildServer() defer res.ReleaseBuildServer(server) cmd := fmt.Sprintf("mkdir -p %s && cd %s && repo init -u https://gitee.com/openharmony/manifest.git", server.WorkSpace, server.WorkSpace) @@ -74,7 +73,7 @@ func (m *Manager) build(pkg string, rm bool, ctx context.Context) error { return fmt.Errorf("remote: mkdir error: %w", err) } if err := utils.TransFileViaSSH(utils.Upload, server.Addr, server.User, server.Passwd, - fmt.Sprintf("%s/.repo/manifest.xml", server.WorkSpace), filepath.Join(m.Workspace, pkg, "manifest_tag.xml")); err != nil { + fmt.Sprintf("%s/.repo/manifest.xml", server.WorkSpace), filepath.Join(m.Workspace, config.Pkg, "manifest_tag.xml")); err != nil { return fmt.Errorf("upload and replace manifest error: %w", err) } // 'git lfs install' may fail due to some git hooks. Call 'git lfs update --force' before install to avoid this situation. @@ -82,25 +81,25 @@ func (m *Manager) build(pkg string, rm bool, ctx context.Context) error { if err := utils.RunCmdViaSSHContext(ctx, server.Addr, server.User, server.Passwd, cmd); err != nil { return fmt.Errorf("remote: repo sync error: %w", err) } - cmd = fmt.Sprintf("cd %s && %s", server.WorkSpace, preCompileCMD) + cmd = fmt.Sprintf("cd %s && %s", server.WorkSpace, config.PreCompileCMD) if err := utils.RunCmdViaSSHContextNoRetry(ctx, server.Addr, server.User, server.Passwd, cmd); err != nil { return fmt.Errorf("remote: pre-compile command error: %w", err) } if rm { - cmd = fmt.Sprintf("cd %s && %s", server.WorkSpace, rmOutCMD) + cmd = fmt.Sprintf("cd %s && rm -rf out", server.WorkSpace) if err := utils.RunCmdViaSSHContext(ctx, server.Addr, server.User, server.Passwd, cmd); err != nil { return fmt.Errorf("remote: rm ./out command error: %w", err) } } - cmd = fmt.Sprintf("cd %s && %s", server.WorkSpace, compileCMD) + cmd = fmt.Sprintf("cd %s && %s", server.WorkSpace, config.CompileCMD) if err := utils.RunCmdViaSSHContextNoRetry(ctx, server.Addr, server.User, server.Passwd, cmd); err != nil { return fmt.Errorf("remote: compile command error: %w", err) } // has been built already, pitiful if canceled, so continue copying - for _, f := range imgList { + for _, f := range config.ImgList { imgName := filepath.Base(f) if err := utils.TransFileViaSSH(utils.Download, server.Addr, server.User, server.Passwd, - fmt.Sprintf("%s/%s", server.WorkSpace, f), filepath.Join(m.Workspace, pkg, imgName)); err != nil { + fmt.Sprintf("%s/%s", server.WorkSpace, f), filepath.Join(m.Workspace, config.Pkg, imgName)); err != nil { return fmt.Errorf("download file %s error: %w", f, err) } } diff --git a/tools/fotff/pkg/gitee_common/common.go b/tools/fotff/pkg/gitee_common/common.go new file mode 100644 index 0000000..045c1b7 --- /dev/null +++ b/tools/fotff/pkg/gitee_common/common.go @@ -0,0 +1,151 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * 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. + */ + +package gitee_common + +import ( + "code.cloudfoundry.org/archiver/extractor" + "context" + "fmt" + "fotff/utils" + "github.com/sirupsen/logrus" + "os" + "path/filepath" + "strings" + "time" +) + +type Manager struct { + Component string + Branch string + ArchiveDir string + Workspace string + WatchCI bool +} + +func NewManager(component string, branch string, archiveDir string, workspace string, watchCI bool) *Manager { + var ret = Manager{ + Component: component, + Branch: branch, + ArchiveDir: archiveDir, + Workspace: workspace, + WatchCI: watchCI, + } + go ret.cleanupOutdated() + return &ret +} + +func (m *Manager) cleanupOutdated() { + t := time.NewTicker(24 * time.Hour) + for { + <-t.C + es, err := os.ReadDir(m.Workspace) + if err != nil { + logrus.Errorf("can not read %s: %v", m.Workspace, err) + continue + } + for _, e := range es { + if !e.IsDir() { + continue + } + path := filepath.Join(m.Workspace, e.Name()) + info, err := e.Info() + if err != nil { + logrus.Errorf("can not read %s info: %v", path, err) + continue + } + if time.Now().Sub(info.ModTime()) > 7*24*time.Hour { + logrus.Warnf("%s outdated, cleanning up its contents...", path) + m.cleanupPkgFiles(path) + } + } + } +} + +func (m *Manager) cleanupPkgFiles(path string) { + es, err := os.ReadDir(path) + if err != nil { + logrus.Errorf("can not read %s: %v", path, err) + return + } + for _, e := range es { + if e.Name() == "manifest_tag.xml" || e.Name() == "__last_issue__" { + continue + } + if err := os.RemoveAll(filepath.Join(path, e.Name())); err != nil { + logrus.Errorf("remove %s fail: %v", filepath.Join(path, e.Name()), err) + } + } +} + +// Flash function implements pkg.Manager. Flash images in the 'pkg' directory to the given device. +func (m *Manager) Flash(device string, pkg string, ctx context.Context) error { + logrus.Warnf("not implemented yet") + return nil +} + +func (m *Manager) Steps(from, to string) (pkgs []string, err error) { + if from == to { + return nil, fmt.Errorf("steps err: 'from' %s and 'to' %s are the same", from, to) + } + if c, found := utils.CacheGet(fmt.Sprintf("%s_steps", m.Component), from+"__to__"+to); found { + logrus.Infof("steps from %s to %s are cached", from, to) + logrus.Infof("steps: %v", c.([]string)) + return c.([]string), nil + } + if pkgs, err = m.stepsFromGitee(from, to); err != nil { + logrus.Errorf("failed to gen steps from gitee, err: %v", err) + logrus.Warnf("fallback to getting steps from CI...") + if pkgs, err = m.stepsFromCI(from, to); err != nil { + return pkgs, err + } + return pkgs, nil + } + utils.CacheSet(fmt.Sprintf("%s_steps", m.Component), from+"__to__"+to, pkgs) + return pkgs, nil +} + +func (m *Manager) LastIssue(pkg string) (string, error) { + data, err := os.ReadFile(filepath.Join(m.Workspace, pkg, "__last_issue__")) + return string(data), err +} + +func (m *Manager) GetNewer(cur string) (string, error) { + var newFile string + if m.WatchCI { + newFile = m.getNewerFromCI(cur + ".tar.gz") + } else { + newFile = m.getNewerFileFromDir(cur+".tar.gz", func(files []os.DirEntry, i, j int) bool { + ti, _ := parseTime(files[i].Name()) + tj, _ := parseTime(files[j].Name()) + return ti.Before(tj) + }) + } + ex := extractor.NewTgz() + dirName := strings.TrimSuffix(newFile, ".tar.gz") + dir := filepath.Join(m.Workspace, dirName) + if _, err := os.Stat(dir); err == nil { + return dirName, nil + } + logrus.Infof("extracting %s to %s...", filepath.Join(m.ArchiveDir, newFile), dir) + if err := ex.Extract(filepath.Join(m.ArchiveDir, newFile), dir); err != nil { + return dirName, err + } + return dirName, nil +} + +func (m *Manager) PkgDir(pkg string) string { + return filepath.Join(m.Workspace, pkg) +} diff --git a/tools/fotff/pkg/dayu200/get_newer_ci.go b/tools/fotff/pkg/gitee_common/get_newer_ci.go similarity index 63% rename from tools/fotff/pkg/dayu200/get_newer_ci.go rename to tools/fotff/pkg/gitee_common/get_newer_ci.go index b845e2d..f5b3495 100644 --- a/tools/fotff/pkg/dayu200/get_newer_ci.go +++ b/tools/fotff/pkg/gitee_common/get_newer_ci.go @@ -13,10 +13,11 @@ * limitations under the License. */ -package dayu200 +package gitee_common import ( "encoding/json" + "fmt" "fotff/utils" "github.com/sirupsen/logrus" "io" @@ -45,22 +46,18 @@ type DailyBuildsResp struct { } type DailyBuild struct { - Id string `json:"id"` - ImgObsPath string `json:"imgObsPath"` + CurrentStatus string `json:"currentStatus"` + BuildStartTime string `json:"buildStartTime"` + BuildFailReason string `json:"buildFailReason"` + Id string `json:"id"` + ObsPath string `json:"obsPath"` + ImgObsPath string `json:"imgObsPath"` } -func (m *Manager) getNewerFromCI(cur string) string { +func (m *Manager) loopCI(param DailyBuildsQueryParam, cur string, getFn func(cur string, resp *DailyBuild) string) string { for { file := func() string { - var q = DailyBuildsQueryParam{ - ProjectName: "openharmony", - Branch: m.Branch, - Component: "dayu200", - BuildStatus: "success", - PageNum: 1, - PageSize: 1, - } - data, err := json.Marshal(q) + data, err := json.Marshal(param) if err != nil { logrus.Errorf("can not marshal query param: %v", err) return "" @@ -75,19 +72,13 @@ func (m *Manager) getNewerFromCI(cur string) string { logrus.Errorf("can not unmarshal resp [%s]: %v", string(resp), err) return "" } - if len(dailyBuildsResp.Result.DailyBuildVos) != 0 { - url := dailyBuildsResp.Result.DailyBuildVos[0].ImgObsPath - if filepath.Base(url) != cur { - logrus.Infof("new package found, name: %s", filepath.Base(url)) - file, err := m.downloadToWorkspace(url) - if err != nil { - logrus.Errorf("can not download package %s: %v", url, err) - return "" - } - return file - } + if len(dailyBuildsResp.Result.DailyBuildVos) == 0 { + return "" + } + if dailyBuildsResp.Result.DailyBuildVos[0].CurrentStatus != "end" { + return "" } - return "" + return getFn(cur, dailyBuildsResp.Result.DailyBuildVos[0]) }() if file != "" { return file @@ -96,7 +87,39 @@ func (m *Manager) getNewerFromCI(cur string) string { } } +func (m *Manager) getNewerFromCI(cur string) string { + return m.loopCI(DailyBuildsQueryParam{ + ProjectName: "openharmony", + Branch: m.Branch, + Component: m.Component, + BuildStatus: "success", + PageNum: 1, + PageSize: 1, + }, cur, m.getNewerDailyBuild) +} + +func (m *Manager) getNewerDailyBuild(cur string, db *DailyBuild) string { + p := db.ImgObsPath + if p == "" { + p = db.ObsPath + } + if filepath.Base(p) == cur { + return "" + } + logrus.Infof("new package found, name: %s", filepath.Base(p)) + file, err := m.downloadToWorkspace(p) + if err != nil { + logrus.Errorf("can not download package %s: %v", p, err) + return "" + } + return file +} + func (m *Manager) downloadToWorkspace(url string) (string, error) { + if _, err := parseTime(filepath.Base(url)); err != nil { + logrus.Errorf("can not get package time from %s, skipping", filepath.Base(url)) + return "", fmt.Errorf("can not get package time from %s, skipping", filepath.Base(url)) + } logrus.Infof("downloading %s", url) resp, err := utils.DoSimpleHttpReqRaw(http.MethodGet, url, nil, nil) if err != nil { diff --git a/tools/fotff/pkg/gitee_common/get_newer_dir.go b/tools/fotff/pkg/gitee_common/get_newer_dir.go new file mode 100644 index 0000000..03ca9a5 --- /dev/null +++ b/tools/fotff/pkg/gitee_common/get_newer_dir.go @@ -0,0 +1,45 @@ +/* + * Copyright (c) 2023 Huawei Device Co., Ltd. + * 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. + */ + +package gitee_common + +import ( + "github.com/sirupsen/logrus" + "os" + "sort" + "time" +) + +func (m *Manager) getNewerFileFromDir(cur string, less func(files []os.DirEntry, i, j int) bool) string { + for { + files, err := os.ReadDir(m.ArchiveDir) + if err != nil { + logrus.Errorf("read dir %s err: %s", m.ArchiveDir, err) + time.Sleep(10 * time.Second) + continue + } + sort.Slice(files, func(i, j int) bool { + return less(files, i, j) + }) + if len(files) != 0 { + f := files[len(files)-1] + if f.Name() != cur { + logrus.Infof("new package found, name: %s", f.Name()) + return f.Name() + } + } + time.Sleep(10 * time.Second) + } +} diff --git a/tools/fotff/pkg/gitee_common/get_newer_or_fail.go b/tools/fotff/pkg/gitee_common/get_newer_or_fail.go new file mode 100644 index 0000000..03730f5 --- /dev/null +++ b/tools/fotff/pkg/gitee_common/get_newer_or_fail.go @@ -0,0 +1,111 @@ +/* + * Copyright (c) 2023 Huawei Device Co., Ltd. + * 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. + */ + +package gitee_common + +import ( + "code.cloudfoundry.org/archiver/compressor" + "code.cloudfoundry.org/archiver/extractor" + "fmt" + "fotff/utils" + "github.com/sirupsen/logrus" + "net/http" + "os" + "path/filepath" + "strings" + "time" +) + +func (m *Manager) GetNewerOrFail(cur string) (string, error) { + newFile := m.getNewerOrFailFromCI(cur + ".tar.gz") + ex := extractor.NewTgz() + dirName := strings.TrimSuffix(newFile, ".tar.gz") + dir := filepath.Join(m.Workspace, dirName) + if _, err := os.Stat(dir); err == nil { + return dirName, nil + } + logrus.Infof("extracting %s to %s...", filepath.Join(m.ArchiveDir, newFile), dir) + if err := ex.Extract(filepath.Join(m.ArchiveDir, newFile), dir); err != nil { + return dirName, err + } + return dirName, nil +} + +func (m *Manager) getNewerOrFailFromCI(cur string) string { + return m.loopCI(DailyBuildsQueryParam{ + ProjectName: "openharmony", + Branch: m.Branch, + Component: m.Component, + PageNum: 1, + PageSize: 1, + }, cur, m.getNewerDailyBuildOrFail) +} + +func (m *Manager) getNewerDailyBuildOrFail(cur string, db *DailyBuild) string { + switch db.BuildFailReason { + case "": + return m.getNewerDailyBuild(cur, db) + case "compile_failed": + lastSuccessTime, err := parseTime(cur) + if err != nil { + logrus.Errorf("can not get package time from %s, skipping", cur) + return "" + } + nowFailTime, err := parseTime(db.BuildStartTime) + if err != nil { + logrus.Errorf("can not get time from %s, skipping", cur) + return "" + } + if lastSuccessTime == nowFailTime { + return "" + } + return m.genFailedPackage(lastSuccessTime, nowFailTime) + default: + return "" + } +} + +func (m *Manager) genFailedPackage(lastSuccessTime, failedBuildStartTime time.Time) string { + pkg := fmt.Sprintf("%s_%s_build_fail", m.Component, failedBuildStartTime.Format("20060102_150405")) + logrus.Infof("getting failed package manifest for %s(%s) at %s", m.Component, m.Branch, failedBuildStartTime) + tags, err := m.getAllTags(lastSuccessTime, failedBuildStartTime) + if err != nil { + logrus.Errorf("can not get latest tag from ci, err: %v", err) + return "" + } + if len(tags) == 0 { + logrus.Error("can not get latest tag from ci, tag list is empty") + return "" + } + if err := os.MkdirAll(filepath.Join(m.Workspace, pkg), 0750); err != nil { + logrus.Errorf("can not mkdir %s, err: %v", pkg, err) + return "" + } + resp, err := utils.DoSimpleHttpReq(http.MethodGet, tags[len(tags)-1].TagFileURL, nil, nil) + if err != nil { + logrus.Errorf("can not get latest tag file from ci, err: %v", err) + return "" + } + err = os.WriteFile(filepath.Join(m.Workspace, pkg, "manifest_tag.xml"), resp, 0640) + if err != nil { + logrus.Errorf("can not write latest tag file, err: %v", err) + return "" + } + if err := compressor.NewTgz().Compress(filepath.Join(m.Workspace, pkg), filepath.Join(m.ArchiveDir, pkg+".tar.gz")); err != nil { + logrus.Errorf("can not write latest tag file, err: %v", err) + return "" + } + return pkg + ".tar.gz" +} diff --git a/tools/fotff/pkg/dayu200/steps_ci.go b/tools/fotff/pkg/gitee_common/steps_ci.go similarity index 95% rename from tools/fotff/pkg/dayu200/steps_ci.go rename to tools/fotff/pkg/gitee_common/steps_ci.go index 577f9f2..36cdd9e 100644 --- a/tools/fotff/pkg/dayu200/steps_ci.go +++ b/tools/fotff/pkg/gitee_common/steps_ci.go @@ -13,7 +13,7 @@ * limitations under the License. */ -package dayu200 +package gitee_common import ( "encoding/json" @@ -53,11 +53,11 @@ type Tag struct { } func (m *Manager) stepsFromCI(from, to string) (pkgs []string, err error) { - startTime, err := getPackageTime(from) + startTime, err := parseTime(from) if err != nil { return nil, err } - endTime, err := getPackageTime(to) + endTime, err := parseTime(to) if err != nil { return nil, err } @@ -69,9 +69,6 @@ func (m *Manager) getAllStepsFromTags(from, to time.Time) (pkgs []string, err er if err != nil { return nil, err } - sort.Slice(tags, func(i, j int) bool { - return tags[i].Timestamp < tags[j].Timestamp - }) for _, tag := range tags { pkg, err := m.genTagPackage(tag) if err != nil { @@ -125,6 +122,9 @@ func (m *Manager) getAllTags(from, to time.Time) (ret []*Tag, err error) { } pageNum++ } + sort.Slice(ret, func(i, j int) bool { + return ret[i].Timestamp < ret[j].Timestamp + }) return ret, nil } diff --git a/tools/fotff/pkg/dayu200/steps_gitee.go b/tools/fotff/pkg/gitee_common/steps_gitee.go similarity index 94% rename from tools/fotff/pkg/dayu200/steps_gitee.go rename to tools/fotff/pkg/gitee_common/steps_gitee.go index 543c82a..11899fd 100644 --- a/tools/fotff/pkg/dayu200/steps_gitee.go +++ b/tools/fotff/pkg/gitee_common/steps_gitee.go @@ -1,365 +1,367 @@ -/* - * Copyright (c) 2022 Huawei Device Co., Ltd. - * 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. - */ - -package dayu200 - -import ( - "bufio" - "bytes" - "encoding/xml" - "fmt" - "fotff/vcs" - "fotff/vcs/gitee" - "github.com/huandu/go-clone" - "github.com/sirupsen/logrus" - "os" - "path/filepath" - "regexp" - "sort" - "strconv" - "strings" - "sync" - "time" -) - -type IssueInfo struct { - visited bool - RelatedIssues []string - MRs []*gitee.Commit - StructCTime string - StructureUpdates []*vcs.ProjectUpdate -} - -type Step struct { - IssueURLs []string - MRs []*gitee.Commit - StructCTime string - StructureUpdates []*vcs.ProjectUpdate -} - -func (m *Manager) stepsFromGitee(from, to string) (pkgs []string, err error) { - updates, err := m.getRepoUpdates(from, to) - if err != nil { - return nil, err - } - startTime, err := getPackageTime(from) - if err != nil { - return nil, err - } - endTime, err := getPackageTime(to) - if err != nil { - return nil, err - } - logrus.Infof("find %d repo updates from %s to %s", len(updates), from, to) - steps, err := getAllStepsFromGitee(startTime, endTime, m.Branch, updates) - if err != nil { - return nil, err - } - logrus.Infof("find total %d steps from %s to %s", len(steps), from, to) - baseManifest, err := vcs.ParseManifestFile(filepath.Join(m.Workspace, from, "manifest_tag.xml")) - if err != nil { - return nil, err - } - for _, step := range steps { - var newPkg string - if newPkg, baseManifest, err = m.genStepPackage(baseManifest, step); err != nil { - return nil, err - } - pkgs = append(pkgs, newPkg) - } - return pkgs, nil -} - -func (m *Manager) getRepoUpdates(from, to string) (updates []vcs.ProjectUpdate, err error) { - m1, err := vcs.ParseManifestFile(filepath.Join(m.Workspace, from, "manifest_tag.xml")) - if err != nil { - return nil, err - } - m2, err := vcs.ParseManifestFile(filepath.Join(m.Workspace, to, "manifest_tag.xml")) - if err != nil { - return nil, err - } - return vcs.GetRepoUpdates(m1, m2) -} - -func getAllStepsFromGitee(startTime, endTime time.Time, branch string, updates []vcs.ProjectUpdate) (ret []Step, err error) { - allMRs, err := getAllMRs(startTime, endTime, branch, updates) - if err != nil { - return nil, err - } - issueInfos, err := combineMRsToIssue(allMRs, branch) - if err != nil { - return nil, err - } - return combineIssuesToStep(issueInfos) -} - -func getAllMRs(startTime, endTime time.Time, branch string, updates []vcs.ProjectUpdate) (allMRs []*gitee.Commit, err error) { - var once sync.Once - for _, update := range updates { - var prs []*gitee.Commit - if update.P1.StructureDiff(update.P2) { - once.Do(func() { - prs, err = gitee.GetBetweenTimeMRs("openharmony", "manifest", branch, startTime, endTime) - }) - if update.P1 != nil { - var p1 []*gitee.Commit - p1, err = gitee.GetBetweenTimeMRs("openharmony", update.P1.Name, branch, startTime, endTime) - prs = append(prs, p1...) - } - if update.P2 != nil { - var p2 []*gitee.Commit - p2, err = gitee.GetBetweenTimeMRs("openharmony", update.P2.Name, branch, startTime, endTime) - prs = append(prs, p2...) - } - } else { - prs, err = gitee.GetBetweenMRs(gitee.CompareParam{ - Head: update.P2.Revision, - Base: update.P1.Revision, - Owner: "openharmony", - Repo: update.P2.Name, - }) - } - if err != nil { - return nil, err - } - allMRs = append(allMRs, prs...) - } - logrus.Infof("find total %d merge request commits of all repo updates", len(allMRs)) - return -} - -func combineMRsToIssue(allMRs []*gitee.Commit, branch string) (map[string]*IssueInfo, error) { - ret := make(map[string]*IssueInfo) - for _, mr := range allMRs { - num, err := strconv.Atoi(strings.Trim(regexp.MustCompile(`!\d+ `).FindString(mr.Commit.Message), "! ")) - if err != nil { - return nil, fmt.Errorf("parse MR message for %s fail: %s", mr.URL, err) - } - issues, err := gitee.GetMRIssueURL(mr.Owner, mr.Repo, num) - if err != nil { - return nil, err - } - if len(issues) == 0 { - issues = []string{mr.URL} - } - var scs []*vcs.ProjectUpdate - var scTime string - if mr.Owner == "openharmony" && mr.Repo == "manifest" { - if scTime, scs, err = parseStructureUpdates(mr, branch); err != nil { - return nil, err - } - } - for i, issue := range issues { - if _, ok := ret[issue]; !ok { - ret[issue] = &IssueInfo{ - MRs: []*gitee.Commit{mr}, - RelatedIssues: append(issues[:i], issues[i+1:]...), - StructCTime: scTime, - StructureUpdates: scs, - } - } else { - ret[issue] = &IssueInfo{ - MRs: append(ret[issue].MRs, mr), - RelatedIssues: append(ret[issue].RelatedIssues, append(issues[:i], issues[i+1:]...)...), - StructCTime: scTime, - StructureUpdates: append(ret[issue].StructureUpdates, scs...), - } - } - } - } - logrus.Infof("find total %d issues of all repo updates", len(ret)) - return ret, nil -} - -func combineOtherRelatedIssue(parent, self *IssueInfo, all map[string]*IssueInfo) { - if self.visited { - return - } - self.visited = true - for _, other := range self.RelatedIssues { - if son, ok := all[other]; ok { - combineOtherRelatedIssue(self, son, all) - delete(all, other) - } - } - parent.RelatedIssues = deDupIssues(append(parent.RelatedIssues, self.RelatedIssues...)) - parent.MRs = deDupMRs(append(parent.MRs, self.MRs...)) - parent.StructureUpdates = deDupProjectUpdates(append(parent.StructureUpdates, self.StructureUpdates...)) - if len(parent.StructCTime) != 0 && parent.StructCTime < self.StructCTime { - parent.StructCTime = self.StructCTime - } -} - -func deDupProjectUpdates(us []*vcs.ProjectUpdate) (retMRs []*vcs.ProjectUpdate) { - dupIndexes := make([]bool, len(us)) - for i := range us { - for j := i + 1; j < len(us); j++ { - if us[j].P1 == us[i].P1 && us[j].P2 == us[i].P2 { - dupIndexes[j] = true - } - } - } - for i, dup := range dupIndexes { - if dup { - continue - } - retMRs = append(retMRs, us[i]) - } - return -} - -func deDupMRs(mrs []*gitee.Commit) (retMRs []*gitee.Commit) { - tmp := make(map[string]*gitee.Commit) - for _, m := range mrs { - tmp[m.SHA] = m - } - for _, m := range tmp { - retMRs = append(retMRs, m) - } - return -} - -func deDupIssues(issues []string) (retIssues []string) { - tmp := make(map[string]string) - for _, i := range issues { - tmp[i] = i - } - for _, i := range tmp { - retIssues = append(retIssues, i) - } - return -} - -// parseStructureUpdates get changed XMLs and parse it to recognize repo structure changes. -// Since we do not care which revision a repo was, P1 is not welly handled, just assign it not nil for performance. -func parseStructureUpdates(commit *gitee.Commit, branch string) (string, []*vcs.ProjectUpdate, error) { - tmp := make(map[string]vcs.ProjectUpdate) - if len(commit.Files) == 0 { - // commit that queried from MR req does not contain file details, should fetch again - var err error - if commit, err = gitee.GetCommit(commit.Owner, commit.Repo, commit.SHA); err != nil { - return "", nil, err - } - } - for _, f := range commit.Files { - if filepath.Ext(f.Filename) != ".xml" { - continue - } - if err := parseFilePatch(f.Patch, tmp); err != nil { - return "", nil, err - } - } - var ret []*vcs.ProjectUpdate - for _, pu := range tmp { - projectUpdateCopy := pu - ret = append(ret, &projectUpdateCopy) - } - for _, pu := range ret { - if pu.P1 == nil && pu.P2 != nil { - lastCommit, err := gitee.GetLatestMRBefore("openharmony", pu.P2.Name, branch, commit.Commit.Committer.Date) - if err != nil { - return "", nil, err - } - pu.P2.Revision = lastCommit.SHA - } - } - return commit.Commit.Committer.Date, ret, nil -} - -func parseFilePatch(str string, m map[string]vcs.ProjectUpdate) error { - sc := bufio.NewScanner(bytes.NewBuffer([]byte(str))) - for sc.Scan() { - line := sc.Text() - var p vcs.Project - if strings.HasPrefix(line, "-") { - if err := xml.Unmarshal([]byte(line[1:]), &p); err == nil { - m[p.Name] = vcs.ProjectUpdate{P1: &p, P2: m[p.Name].P2} - } - } else if strings.HasPrefix(line, "+") { - if err := xml.Unmarshal([]byte(line[1:]), &p); err == nil { - m[p.Name] = vcs.ProjectUpdate{P1: m[p.Name].P1, P2: &p} - } - } - } - return nil -} - -func combineIssuesToStep(issueInfos map[string]*IssueInfo) (ret []Step, err error) { - for _, info := range issueInfos { - combineOtherRelatedIssue(info, info, issueInfos) - } - for issue, infos := range issueInfos { - sort.Slice(infos.MRs, func(i, j int) bool { - // move the latest MR to the first place, use its merged_time to represent the update time of the issue - return infos.MRs[i].Commit.Committer.Date > infos.MRs[j].Commit.Committer.Date - }) - ret = append(ret, Step{ - IssueURLs: append(infos.RelatedIssues, issue), - MRs: infos.MRs, - StructCTime: infos.StructCTime, - StructureUpdates: infos.StructureUpdates}) - } - sort.Slice(ret, func(i, j int) bool { - ti, tj := ret[i].MRs[0].Commit.Committer.Date, ret[j].MRs[0].Commit.Committer.Date - if len(ret[i].StructCTime) != 0 { - ti = ret[i].StructCTime - } - if len(ret[j].StructCTime) != 0 { - ti = ret[j].StructCTime - } - return ti < tj - }) - logrus.Infof("find total %d steps of all issues", len(ret)) - return -} - -var simpleRegTimeInPkgName = regexp.MustCompile(`\d{8}_\d{6}`) - -func getPackageTime(pkg string) (time.Time, error) { - return time.ParseInLocation(`20060102_150405`, simpleRegTimeInPkgName.FindString(pkg), time.Local) -} - -func (m *Manager) genStepPackage(base *vcs.Manifest, step Step) (newPkg string, newManifest *vcs.Manifest, err error) { - defer func() { - logrus.Infof("package dir %s for step %v generated", newPkg, step.IssueURLs) - }() - newManifest = clone.Clone(base).(*vcs.Manifest) - for _, u := range step.StructureUpdates { - if u.P2 != nil { - newManifest.UpdateManifestProject(u.P2.Name, u.P2.Path, u.P2.Remote, u.P2.Revision, true) - } else if u.P1 != nil { - newManifest.RemoveManifestProject(u.P1.Name) - } - } - for _, mr := range step.MRs { - newManifest.UpdateManifestProject(mr.Repo, "", "", mr.SHA, false) - } - md5sum, err := newManifest.Standardize() - if err != nil { - return "", nil, err - } - if err := os.MkdirAll(filepath.Join(m.Workspace, md5sum), 0750); err != nil { - return "", nil, err - } - if err := os.WriteFile(filepath.Join(m.Workspace, md5sum, "__last_issue__"), []byte(fmt.Sprintf("%v", step.IssueURLs)), 0640); err != nil { - return "", nil, err - } - err = newManifest.WriteFile(filepath.Join(m.Workspace, md5sum, "manifest_tag.xml")) - if err != nil { - return "", nil, err - } - return md5sum, newManifest, nil -} +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * 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. + */ + +package gitee_common + +import ( + "bufio" + "bytes" + "encoding/xml" + "fmt" + "fotff/vcs" + "fotff/vcs/gitee" + "github.com/huandu/go-clone" + "github.com/sirupsen/logrus" + "os" + "path/filepath" + "regexp" + "sort" + "strconv" + "strings" + "sync" + "time" +) + +type IssueInfo struct { + visited bool + RelatedIssues []string + MRs []*gitee.Commit + StructCTime string + StructureUpdates []*vcs.ProjectUpdate +} + +type Step struct { + IssueURLs []string + MRs []*gitee.Commit + StructCTime string + StructureUpdates []*vcs.ProjectUpdate +} + +func (m *Manager) stepsFromGitee(from, to string) (pkgs []string, err error) { + updates, err := m.getRepoUpdates(from, to) + if err != nil { + return nil, err + } + startTime, err := parseTime(from) + if err != nil { + return nil, err + } + endTime, err := parseTime(to) + if err != nil { + return nil, err + } + logrus.Infof("find %d repo updates from %s to %s", len(updates), from, to) + steps, err := getAllStepsFromGitee(startTime, endTime, m.Branch, updates) + if err != nil { + return nil, err + } + logrus.Infof("find total %d steps from %s to %s", len(steps), from, to) + baseManifest, err := vcs.ParseManifestFile(filepath.Join(m.Workspace, from, "manifest_tag.xml")) + if err != nil { + return nil, err + } + for _, step := range steps { + var newPkg string + if newPkg, baseManifest, err = m.genStepPackage(baseManifest, step); err != nil { + return nil, err + } + pkgs = append(pkgs, newPkg) + } + return pkgs, nil +} + +func (m *Manager) getRepoUpdates(from, to string) (updates []vcs.ProjectUpdate, err error) { + m1, err := vcs.ParseManifestFile(filepath.Join(m.Workspace, from, "manifest_tag.xml")) + if err != nil { + return nil, err + } + m2, err := vcs.ParseManifestFile(filepath.Join(m.Workspace, to, "manifest_tag.xml")) + if err != nil { + return nil, err + } + return vcs.GetRepoUpdates(m1, m2) +} + +func getAllStepsFromGitee(startTime, endTime time.Time, branch string, updates []vcs.ProjectUpdate) (ret []Step, err error) { + allMRs, err := getAllMRs(startTime, endTime, branch, updates) + if err != nil { + return nil, err + } + issueInfos, err := combineMRsToIssue(allMRs, branch) + if err != nil { + return nil, err + } + return combineIssuesToStep(issueInfos) +} + +func getAllMRs(startTime, endTime time.Time, branch string, updates []vcs.ProjectUpdate) (allMRs []*gitee.Commit, err error) { + var once sync.Once + for _, update := range updates { + var prs []*gitee.Commit + if update.P1.StructureDiff(update.P2) { + once.Do(func() { + prs, err = gitee.GetBetweenTimeMRs("openharmony", "manifest", branch, startTime, endTime) + }) + if update.P1 != nil { + var p1 []*gitee.Commit + p1, err = gitee.GetBetweenTimeMRs("openharmony", update.P1.Name, branch, startTime, endTime) + prs = append(prs, p1...) + } + if update.P2 != nil { + var p2 []*gitee.Commit + p2, err = gitee.GetBetweenTimeMRs("openharmony", update.P2.Name, branch, startTime, endTime) + prs = append(prs, p2...) + } + } else { + prs, err = gitee.GetBetweenMRs(gitee.CompareParam{ + Head: update.P2.Revision, + Base: update.P1.Revision, + Owner: "openharmony", + Repo: update.P2.Name, + }) + } + if err != nil { + return nil, err + } + allMRs = append(allMRs, prs...) + } + logrus.Infof("find total %d merge request commits of all repo updates", len(allMRs)) + return +} + +func combineMRsToIssue(allMRs []*gitee.Commit, branch string) (map[string]*IssueInfo, error) { + ret := make(map[string]*IssueInfo) + for _, mr := range allMRs { + num, err := strconv.Atoi(strings.Trim(regexp.MustCompile(`!\d+ `).FindString(mr.Commit.Message), "! ")) + if err != nil { + return nil, fmt.Errorf("parse MR message for %s fail: %s", mr.URL, err) + } + issues, err := gitee.GetMRIssueURL(mr.Owner, mr.Repo, num) + if err != nil { + return nil, err + } + if len(issues) == 0 { + issues = []string{mr.URL} + } + var scs []*vcs.ProjectUpdate + var scTime string + if mr.Owner == "openharmony" && mr.Repo == "manifest" { + if scTime, scs, err = parseStructureUpdates(mr, branch); err != nil { + return nil, err + } + } + for i, issue := range issues { + if _, ok := ret[issue]; !ok { + ret[issue] = &IssueInfo{ + MRs: []*gitee.Commit{mr}, + RelatedIssues: append(issues[:i], issues[i+1:]...), + StructCTime: scTime, + StructureUpdates: scs, + } + } else { + ret[issue] = &IssueInfo{ + MRs: append(ret[issue].MRs, mr), + RelatedIssues: append(ret[issue].RelatedIssues, append(issues[:i], issues[i+1:]...)...), + StructCTime: scTime, + StructureUpdates: append(ret[issue].StructureUpdates, scs...), + } + } + } + } + logrus.Infof("find total %d issues of all repo updates", len(ret)) + return ret, nil +} + +func combineOtherRelatedIssue(parent, self *IssueInfo, all map[string]*IssueInfo) { + if self.visited { + return + } + self.visited = true + for _, other := range self.RelatedIssues { + if son, ok := all[other]; ok { + combineOtherRelatedIssue(self, son, all) + delete(all, other) + } + } + parent.RelatedIssues = deDupIssues(append(parent.RelatedIssues, self.RelatedIssues...)) + parent.MRs = deDupMRs(append(parent.MRs, self.MRs...)) + parent.StructureUpdates = deDupProjectUpdates(append(parent.StructureUpdates, self.StructureUpdates...)) + if len(parent.StructCTime) != 0 && parent.StructCTime < self.StructCTime { + parent.StructCTime = self.StructCTime + } +} + +func deDupProjectUpdates(us []*vcs.ProjectUpdate) (retMRs []*vcs.ProjectUpdate) { + dupIndexes := make([]bool, len(us)) + for i := range us { + for j := i + 1; j < len(us); j++ { + if us[j].P1 == us[i].P1 && us[j].P2 == us[i].P2 { + dupIndexes[j] = true + } + } + } + for i, dup := range dupIndexes { + if dup { + continue + } + retMRs = append(retMRs, us[i]) + } + return +} + +func deDupMRs(mrs []*gitee.Commit) (retMRs []*gitee.Commit) { + tmp := make(map[string]*gitee.Commit) + for _, m := range mrs { + tmp[m.SHA] = m + } + for _, m := range tmp { + retMRs = append(retMRs, m) + } + return +} + +func deDupIssues(issues []string) (retIssues []string) { + tmp := make(map[string]string) + for _, i := range issues { + tmp[i] = i + } + for _, i := range tmp { + retIssues = append(retIssues, i) + } + return +} + +// parseStructureUpdates get changed XMLs and parse it to recognize repo structure changes. +// Since we do not care which revision a repo was, P1 is not welly handled, just assign it not nil for performance. +func parseStructureUpdates(commit *gitee.Commit, branch string) (string, []*vcs.ProjectUpdate, error) { + tmp := make(map[string]vcs.ProjectUpdate) + if len(commit.Files) == 0 { + // commit that queried from MR req does not contain file details, should fetch again + var err error + if commit, err = gitee.GetCommit(commit.Owner, commit.Repo, commit.SHA); err != nil { + return "", nil, err + } + } + for _, f := range commit.Files { + if filepath.Ext(f.Filename) != ".xml" { + continue + } + if err := parseFilePatch(f.Patch, tmp); err != nil { + return "", nil, err + } + } + var ret []*vcs.ProjectUpdate + for _, pu := range tmp { + projectUpdateCopy := pu + ret = append(ret, &projectUpdateCopy) + } + for _, pu := range ret { + if pu.P1 == nil && pu.P2 != nil { + lastCommit, err := gitee.GetLatestMRBefore("openharmony", pu.P2.Name, branch, commit.Commit.Committer.Date) + if err != nil { + return "", nil, err + } + pu.P2.Revision = lastCommit.SHA + } + } + return commit.Commit.Committer.Date, ret, nil +} + +func parseFilePatch(str string, m map[string]vcs.ProjectUpdate) error { + sc := bufio.NewScanner(bytes.NewBuffer([]byte(str))) + for sc.Scan() { + line := sc.Text() + var p vcs.Project + if strings.HasPrefix(line, "-") { + if err := xml.Unmarshal([]byte(line[1:]), &p); err == nil { + m[p.Name] = vcs.ProjectUpdate{P1: &p, P2: m[p.Name].P2} + } + } else if strings.HasPrefix(line, "+") { + if err := xml.Unmarshal([]byte(line[1:]), &p); err == nil { + m[p.Name] = vcs.ProjectUpdate{P1: m[p.Name].P1, P2: &p} + } + } + } + return nil +} + +func combineIssuesToStep(issueInfos map[string]*IssueInfo) (ret []Step, err error) { + for _, info := range issueInfos { + combineOtherRelatedIssue(info, info, issueInfos) + } + for issue, infos := range issueInfos { + sort.Slice(infos.MRs, func(i, j int) bool { + // move the latest MR to the first place, use its merged_time to represent the update time of the issue + return infos.MRs[i].Commit.Committer.Date > infos.MRs[j].Commit.Committer.Date + }) + ret = append(ret, Step{ + IssueURLs: append(infos.RelatedIssues, issue), + MRs: infos.MRs, + StructCTime: infos.StructCTime, + StructureUpdates: infos.StructureUpdates}) + } + sort.Slice(ret, func(i, j int) bool { + ti, tj := ret[i].MRs[0].Commit.Committer.Date, ret[j].MRs[0].Commit.Committer.Date + if len(ret[i].StructCTime) != 0 { + ti = ret[i].StructCTime + } + if len(ret[j].StructCTime) != 0 { + ti = ret[j].StructCTime + } + return ti < tj + }) + logrus.Infof("find total %d steps of all issues", len(ret)) + return +} + +func parseTime(pkg string) (time.Time, error) { + t, err := time.ParseInLocation(`20060102_150405`, regexp.MustCompile(`\d{8}_\d{6}`).FindString(pkg), time.Local) + if err != nil { + return time.ParseInLocation(`20060102150405`, regexp.MustCompile(`\d{14}`).FindString(pkg), time.Local) + } + return t, nil +} + +func (m *Manager) genStepPackage(base *vcs.Manifest, step Step) (newPkg string, newManifest *vcs.Manifest, err error) { + defer func() { + logrus.Infof("package dir %s for step %v generated", newPkg, step.IssueURLs) + }() + newManifest = clone.Clone(base).(*vcs.Manifest) + for _, u := range step.StructureUpdates { + if u.P2 != nil { + newManifest.UpdateManifestProject(u.P2.Name, u.P2.Path, u.P2.Remote, u.P2.Revision, true) + } else if u.P1 != nil { + newManifest.RemoveManifestProject(u.P1.Name) + } + } + for _, mr := range step.MRs { + newManifest.UpdateManifestProject(mr.Repo, "", "", mr.SHA, false) + } + md5sum, err := newManifest.Standardize() + if err != nil { + return "", nil, err + } + if err := os.MkdirAll(filepath.Join(m.Workspace, md5sum), 0750); err != nil { + return "", nil, err + } + if err := os.WriteFile(filepath.Join(m.Workspace, md5sum, "__last_issue__"), []byte(fmt.Sprintf("%v", step.IssueURLs)), 0640); err != nil { + return "", nil, err + } + err = newManifest.WriteFile(filepath.Join(m.Workspace, md5sum, "manifest_tag.xml")) + if err != nil { + return "", nil, err + } + return md5sum, newManifest, nil +} diff --git a/tools/fotff/pkg/dayu200/steps_gitee_test.go b/tools/fotff/pkg/gitee_common/steps_gitee_test.go similarity index 99% rename from tools/fotff/pkg/dayu200/steps_gitee_test.go rename to tools/fotff/pkg/gitee_common/steps_gitee_test.go index f7b86f1..38f8dcb 100644 --- a/tools/fotff/pkg/dayu200/steps_gitee_test.go +++ b/tools/fotff/pkg/gitee_common/steps_gitee_test.go @@ -13,7 +13,7 @@ * limitations under the License. */ -package dayu200 +package gitee_common import ( "fotff/vcs" diff --git a/tools/fotff/pkg/dayu200/testdata/version-Daily_Version-dayu200-20221201_080109-dayu200/manifest_tag.xml b/tools/fotff/pkg/gitee_common/testdata/version-Daily_Version-dayu200-20221201_080109-dayu200/manifest_tag.xml similarity index 100% rename from tools/fotff/pkg/dayu200/testdata/version-Daily_Version-dayu200-20221201_080109-dayu200/manifest_tag.xml rename to tools/fotff/pkg/gitee_common/testdata/version-Daily_Version-dayu200-20221201_080109-dayu200/manifest_tag.xml diff --git a/tools/fotff/pkg/dayu200/testdata/version-Daily_Version-dayu200-20221201_100141-dayu200/manifest_tag.xml b/tools/fotff/pkg/gitee_common/testdata/version-Daily_Version-dayu200-20221201_100141-dayu200/manifest_tag.xml similarity index 100% rename from tools/fotff/pkg/dayu200/testdata/version-Daily_Version-dayu200-20221201_100141-dayu200/manifest_tag.xml rename to tools/fotff/pkg/gitee_common/testdata/version-Daily_Version-dayu200-20221201_100141-dayu200/manifest_tag.xml diff --git a/tools/fotff/pkg/dayu200/testdata/version-Daily_Version-dayu200-20221213_110027-dayu200/manifest_tag.xml b/tools/fotff/pkg/gitee_common/testdata/version-Daily_Version-dayu200-20221213_110027-dayu200/manifest_tag.xml similarity index 100% rename from tools/fotff/pkg/dayu200/testdata/version-Daily_Version-dayu200-20221213_110027-dayu200/manifest_tag.xml rename to tools/fotff/pkg/gitee_common/testdata/version-Daily_Version-dayu200-20221213_110027-dayu200/manifest_tag.xml diff --git a/tools/fotff/pkg/dayu200/testdata/version-Daily_Version-dayu200-20221213_140150-dayu200/manifest_tag.xml b/tools/fotff/pkg/gitee_common/testdata/version-Daily_Version-dayu200-20221213_140150-dayu200/manifest_tag.xml similarity index 100% rename from tools/fotff/pkg/dayu200/testdata/version-Daily_Version-dayu200-20221213_140150-dayu200/manifest_tag.xml rename to tools/fotff/pkg/gitee_common/testdata/version-Daily_Version-dayu200-20221213_140150-dayu200/manifest_tag.xml diff --git a/tools/fotff/pkg/dayu200/testdata/version-Daily_Version-dayu200-20221214_100124-dayu200/manifest_tag.xml b/tools/fotff/pkg/gitee_common/testdata/version-Daily_Version-dayu200-20221214_100124-dayu200/manifest_tag.xml similarity index 100% rename from tools/fotff/pkg/dayu200/testdata/version-Daily_Version-dayu200-20221214_100124-dayu200/manifest_tag.xml rename to tools/fotff/pkg/gitee_common/testdata/version-Daily_Version-dayu200-20221214_100124-dayu200/manifest_tag.xml diff --git a/tools/fotff/pkg/dayu200/testdata/version-Daily_Version-dayu200-20221214_110125-dayu200/manifest_tag.xml b/tools/fotff/pkg/gitee_common/testdata/version-Daily_Version-dayu200-20221214_110125-dayu200/manifest_tag.xml similarity index 100% rename from tools/fotff/pkg/dayu200/testdata/version-Daily_Version-dayu200-20221214_110125-dayu200/manifest_tag.xml rename to tools/fotff/pkg/gitee_common/testdata/version-Daily_Version-dayu200-20221214_110125-dayu200/manifest_tag.xml diff --git a/tools/fotff/pkg/pkg.go b/tools/fotff/pkg/pkg.go index 142ae30..0e434b4 100644 --- a/tools/fotff/pkg/pkg.go +++ b/tools/fotff/pkg/pkg.go @@ -17,10 +17,6 @@ package pkg import ( "context" - "github.com/sirupsen/logrus" - "os" - "sort" - "time" ) type NewFunc func() Manager @@ -37,25 +33,3 @@ type Manager interface { // PkgDir returns where pkg exists in the filesystem. PkgDir(pkg string) string } - -func GetNewerFileFromDir(dir string, cur string, less func(files []os.DirEntry, i, j int) bool) string { - for { - files, err := os.ReadDir(dir) - if err != nil { - logrus.Errorf("read dir %s err: %s", dir, err) - time.Sleep(10 * time.Second) - continue - } - sort.Slice(files, func(i, j int) bool { - return less(files, i, j) - }) - if len(files) != 0 { - f := files[len(files)-1] - if f.Name() != cur { - logrus.Infof("new package found, name: %s", f.Name()) - return f.Name() - } - } - time.Sleep(10 * time.Second) - } -} diff --git a/tools/fotff/rec/fotff.go b/tools/fotff/rec/fotff.go index 84e108f..64cccd8 100644 --- a/tools/fotff/rec/fotff.go +++ b/tools/fotff/rec/fotff.go @@ -146,18 +146,7 @@ func flashAndTest(m pkg.Manager, t tester.Tester, pkg string, testcase string, c device := res.GetDevice() defer res.ReleaseDevice(device) if err := m.Flash(device, pkg, ctx); err != nil && !errors.Is(err, context.Canceled) { - // Sometimes we need to find out the first compilation failure. Treat it as a normal test failure to re-use this framework. - var cfg struct { - AllowBuildError string `key:"allow_build_err"` - } - utils.ParseFromConfigFile("", &cfg) - if cfg.AllowBuildError != "true" { - return false, newFellows, err - } - logrus.Warnf("can not flash %s to %s, assume it as a failure: %v", pkg, device, err) - for _, cases := range append(fellows, testcase) { - results = append(results, tester.Result{TestCaseName: cases, Status: tester.ResultFail}) - } + return false, newFellows, err } else { if err = t.Prepare(m.PkgDir(pkg), device, ctx); err != nil { return false, newFellows, err diff --git a/tools/fotff/tester/pkg_available/pkg_available.go b/tools/fotff/tester/pkg_available/pkg_available.go new file mode 100644 index 0000000..602d550 --- /dev/null +++ b/tools/fotff/tester/pkg_available/pkg_available.go @@ -0,0 +1,81 @@ +/* + * Copyright (c) 2023 Huawei Device Co., Ltd. + * 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. + */ + +package pkg_available + +import ( + "context" + "fotff/tester" + "github.com/sirupsen/logrus" + "math/rand" + "os" + "strings" + "sync" + "time" +) + +type Tester struct { + device2PkgDir sync.Map +} + +func init() { + rand.Seed(time.Now().UnixNano()) +} + +func NewTester() tester.Tester { + ret := &Tester{} + return ret +} + +func (t *Tester) TaskName() string { + return "pkg_available" +} + +func (t *Tester) Prepare(pkgDir string, device string, ctx context.Context) error { + t.device2PkgDir.Store(device, pkgDir) + return nil +} + +func (t *Tester) DoTestTask(deviceSN string, ctx context.Context) (ret []tester.Result, err error) { + return t.DoTestCases(deviceSN, []string{"pkg_available"}, ctx) +} + +func (t *Tester) DoTestCase(deviceSN, testCase string, ctx context.Context) (ret tester.Result, err error) { + pkgDir, _ := t.device2PkgDir.Load(deviceSN) + es, err := os.ReadDir(pkgDir.(string)) + if err != nil { + logrus.Errorf("can not read dir %s, testcase failed", pkgDir.(string)) + return tester.Result{TestCaseName: testCase, Status: tester.ResultFail}, nil + } + for _, e := range es { + if strings.HasSuffix(e.Name(), ".img") { + logrus.Infof("find image in dir %s, package is avaliable, testcase pass", pkgDir.(string)) + return tester.Result{TestCaseName: testCase, Status: tester.ResultPass}, nil + } + } + logrus.Infof("no images in dir %s, package is not avaliable, testcase failed", pkgDir.(string)) + return tester.Result{TestCaseName: testCase, Status: tester.ResultFail}, nil +} + +func (t *Tester) DoTestCases(deviceSN string, testcases []string, ctx context.Context) (ret []tester.Result, err error) { + for _, testcase := range testcases { + r, err := t.DoTestCase(deviceSN, testcase, ctx) + if err != nil { + return nil, err + } + ret = append(ret, r) + } + return ret, nil +} diff --git a/tools/fotff/utils/http.go b/tools/fotff/utils/http.go index e2ed194..4b4bfcb 100644 --- a/tools/fotff/utils/http.go +++ b/tools/fotff/utils/http.go @@ -25,7 +25,11 @@ import ( ) func DoSimpleHttpReqRaw(method string, url string, body []byte, header map[string]string) (response *http.Response, err error) { - for i := 0; i < 3; i++ { + maxRetry := len(proxyList) + if maxRetry < 3 { + maxRetry = 3 + } + for i := 0; i < maxRetry; i++ { if response, err = doSimpleHttpReqImpl(method, url, body, header); err == nil { return } @@ -36,7 +40,11 @@ func DoSimpleHttpReqRaw(method string, url string, body []byte, header map[strin func DoSimpleHttpReq(method string, url string, body []byte, header map[string]string) (ret []byte, err error) { var resp *http.Response - for i := 0; i < 3; i++ { + maxRetry := len(proxyList) + if maxRetry < 3 { + maxRetry = 3 + } + for i := 0; i < maxRetry; i++ { if resp, err = doSimpleHttpReqImpl(method, url, body, header); err == nil { ret, err = io.ReadAll(resp.Body) resp.Body.Close() diff --git a/tools/fotff/utils/ini.go b/tools/fotff/utils/ini.go index 2680e7b..b0d5e67 100644 --- a/tools/fotff/utils/ini.go +++ b/tools/fotff/utils/ini.go @@ -19,6 +19,7 @@ import ( "github.com/Unknwon/goconfig" "github.com/sirupsen/logrus" "reflect" + "strings" ) // ParseFromConfigFile parse ini file and set values by the tag of fields. @@ -46,6 +47,22 @@ func ParseFromConfigFile(section string, p any) { v = rt.Elem().Field(i).Tag.Get("default") } rv.Elem().Field(i).SetString(v) + case reflect.Slice: + if rt.Elem().Field(i).Type.Elem().Kind() != reflect.String { + break + } + key := rt.Elem().Field(i).Tag.Get("key") + if key == "" { + continue + } + var v string + if conf != nil { + v, err = conf.GetValue(section, key) + } + if conf == nil || err != nil { + v = rt.Elem().Field(i).Tag.Get("default") + } + rv.Elem().Field(i).Set(reflect.ValueOf(strings.Split(v, ","))) case reflect.Struct: ParseFromConfigFile(section, rv.Elem().Field(i).Addr().Interface()) } -- Gitee From 86533dc53414408b187b07b3e197e31be16be06b Mon Sep 17 00:00:00 2001 From: aodongbiao Date: Thu, 13 Apr 2023 16:02:11 +0800 Subject: [PATCH 009/201] [rom_ram_analyzer]bugfix:process_name maybe NoneType Signed-off-by: aodongbiao --- tools/rom_ram_analyzer/standard/ram_analyzer.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tools/rom_ram_analyzer/standard/ram_analyzer.py b/tools/rom_ram_analyzer/standard/ram_analyzer.py index a68d77f..d9d0545 100644 --- a/tools/rom_ram_analyzer/standard/ram_analyzer.py +++ b/tools/rom_ram_analyzer/standard/ram_analyzer.py @@ -372,6 +372,9 @@ class RamAnalyzer: return v for process_name, process_size in process_size_dict.items(): # 从进程出发 + if not process_name: + print("warning: an empty 'process_name' has been found.") + continue # 如果部件是init,特殊处理 if process_name == "init": _, elf,_, _, size = cls.find_elf_size_from_rom_result(process_name, "startup", "init", -- Gitee From 84485c82bbac4c4412b174f21ecb70544042d671 Mon Sep 17 00:00:00 2001 From: limingkang Date: Mon, 17 Apr 2023 09:32:48 +0800 Subject: [PATCH 010/201] base update Signed-off-by: limingkang Change-Id: I807cd3377cd2643b15133103dda061c5adb8ea29 --- tools/deps_guard/rules/ChipsetSDK/whitelist.json | 1 + tools/deps_guard/rules/NO-Depends-On-SA/whitelist.json | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/tools/deps_guard/rules/ChipsetSDK/whitelist.json b/tools/deps_guard/rules/ChipsetSDK/whitelist.json index 05f50f2..958e054 100755 --- a/tools/deps_guard/rules/ChipsetSDK/whitelist.json +++ b/tools/deps_guard/rules/ChipsetSDK/whitelist.json @@ -65,6 +65,7 @@ "libhdi_video_layer_client.z.so", // by libwpa.z.so for hispark taurus platform "libwifi_driver_client.z.so", + "libipc_core.z.so", "librtg_interface.z.so", "libconcurrent_task_client.z.so", "libffrt.z.so" diff --git a/tools/deps_guard/rules/NO-Depends-On-SA/whitelist.json b/tools/deps_guard/rules/NO-Depends-On-SA/whitelist.json index f8da24c..7259656 100755 --- a/tools/deps_guard/rules/NO-Depends-On-SA/whitelist.json +++ b/tools/deps_guard/rules/NO-Depends-On-SA/whitelist.json @@ -2,5 +2,7 @@ "liblbsservice_locator.z.so", "libnetsys_native_manager.z.so", "libavsession_service.z.so", - "libsg_collect_service.z.so" + "libsg_collect_service.z.so", + "libabnormal_efficiency_mgr_service.z.so", + "libquickfix_engine_service.z.so" ] -- Gitee From a4c84f3de25c412a4db0dba1137714403c8bd935 Mon Sep 17 00:00:00 2001 From: mujingrong Date: Thu, 20 Apr 2023 17:12:07 +0800 Subject: [PATCH 011/201] add test command for fotff Signed-off-by: mujingrong --- tools/fotff/main.go | 28 +++++++++++++- tools/fotff/rec/flashandtest.go | 66 +++++++++++++++++++++++++++++++++ 2 files changed, 93 insertions(+), 1 deletion(-) create mode 100644 tools/fotff/rec/flashandtest.go diff --git a/tools/fotff/main.go b/tools/fotff/main.go index 4bb156f..25f3d2f 100644 --- a/tools/fotff/main.go +++ b/tools/fotff/main.go @@ -64,7 +64,8 @@ func init() { } runCmd := initRunCmd(m, t) flashCmd := initFlashCmd(m) - rootCmd.AddCommand(runCmd, flashCmd) + testCmd := initTestCmd(m, t) + rootCmd.AddCommand(runCmd, flashCmd, testCmd) } func initRunCmd(m pkg.Manager, t tester.Tester) *cobra.Command { @@ -100,6 +101,31 @@ func initFlashCmd(m pkg.Manager) *cobra.Command { return flashCmd } +func initTestCmd(m pkg.Manager, t tester.Tester) *cobra.Command { + var targetPkg, device, testCase string + testCmd := &cobra.Command{ + Use: "test", + Short: "build and flash and test the given package on the specified device", + RunE: func(cmd *cobra.Command, args []string) error { + opt := &rec.FlashAndTestOptions{ + M: m, + T: t, + Version: targetPkg, + Device: device, + TestCase: testCase, + } + return rec.FlashAndTest(context.TODO(), opt) + }, + } + testCmd.PersistentFlags().StringVarP(&targetPkg, "package", "p", "", "package directory") + testCmd.PersistentFlags().StringVarP(&device, "device", "d", "", "target device sn") + testCmd.PersistentFlags().StringVarP(&testCase, "testcase", "t", "", "test case to run") + testCmd.MarkPersistentFlagRequired("package") + testCmd.MarkPersistentFlagRequired("device") + + return testCmd +} + func main() { utils.EnablePprof() if err := rootCmd.Execute(); err != nil { diff --git a/tools/fotff/rec/flashandtest.go b/tools/fotff/rec/flashandtest.go new file mode 100644 index 0000000..8eff793 --- /dev/null +++ b/tools/fotff/rec/flashandtest.go @@ -0,0 +1,66 @@ +package rec + +import ( + "context" + "fotff/pkg" + "fotff/tester" + + "github.com/sirupsen/logrus" +) + +// FlashAndTestOptions specify which pkg.Manager and which tester to use to flash and test the specified version +type FlashAndTestOptions struct { + M pkg.Manager + T tester.Tester + Version string + Device string + TestCase string +} + +// FlashAndTest build and flash the given version to the specified device, then run the specified test cases +func FlashAndTest(ctx context.Context, opt *FlashAndTestOptions) error { + result, err := doFlashAndTest(ctx, opt) + if err != nil { + return err + } + logrus.Infof("Flash and test for version %s and test case %s done, result: %s", opt.Version, opt.TestCase, result) + return nil +} + +func doFlashAndTest(ctx context.Context, opt *FlashAndTestOptions) (tester.ResultStatus, error) { + // flash the specified version to the specified device + if err := opt.M.Flash(opt.Device, opt.Version, ctx); err != nil { + logrus.Errorf("Failed to flash version %s to device %s, error: %s", opt.Version, opt.Device, err.Error()) + return tester.ResultFail, err + } + // prepare and run the specified test + if err := opt.T.Prepare(opt.M.PkgDir(opt.Version), opt.Device, ctx); err != nil { + logrus.Errorf("Failed to prepare test, error: %s", err.Error()) + return tester.ResultFail, err + } + if opt.TestCase == "" { + // run all test cases if the --testcase argument was not present + results, err := opt.T.DoTestTask(opt.Device, ctx) + if err != nil { + logrus.Errorf("Failed to run all test cases on device %s, error: %s", opt.Device, err.Error()) + return tester.ResultFail, err + } + // only mark test result as pass when all test cases passed + var ret tester.ResultStatus = tester.ResultPass + for _, r := range results { + logrus.Infof("Result for test case %s is %s", r.TestCaseName, r.Status) + if r.Status == tester.ResultFail { + ret = tester.ResultFail + } + } + return ret, nil + } else { + // otherwise run the specified test case + result, err := opt.T.DoTestCase(opt.Device, opt.TestCase, ctx) + if err != nil { + logrus.Errorf("Failed to run test case %s on device %s, error: %s", opt.TestCase, opt.Device, err.Error()) + return tester.ResultFail, err + } + return result.Status, nil + } +} -- Gitee From 1bedd225aa99345e3aff97d3266bae47aa95a1f3 Mon Sep 17 00:00:00 2001 From: mujingrong Date: Thu, 20 Apr 2023 17:35:33 +0800 Subject: [PATCH 012/201] refactor test command Signed-off-by: mujingrong --- tools/fotff/rec/flashandtest.go | 32 +++++++++++++++----------------- 1 file changed, 15 insertions(+), 17 deletions(-) diff --git a/tools/fotff/rec/flashandtest.go b/tools/fotff/rec/flashandtest.go index 8eff793..523270d 100644 --- a/tools/fotff/rec/flashandtest.go +++ b/tools/fotff/rec/flashandtest.go @@ -19,48 +19,46 @@ type FlashAndTestOptions struct { // FlashAndTest build and flash the given version to the specified device, then run the specified test cases func FlashAndTest(ctx context.Context, opt *FlashAndTestOptions) error { - result, err := doFlashAndTest(ctx, opt) - if err != nil { - return err - } - logrus.Infof("Flash and test for version %s and test case %s done, result: %s", opt.Version, opt.TestCase, result) - return nil -} - -func doFlashAndTest(ctx context.Context, opt *FlashAndTestOptions) (tester.ResultStatus, error) { // flash the specified version to the specified device if err := opt.M.Flash(opt.Device, opt.Version, ctx); err != nil { logrus.Errorf("Failed to flash version %s to device %s, error: %s", opt.Version, opt.Device, err.Error()) - return tester.ResultFail, err + return err } + // prepare and run the specified test if err := opt.T.Prepare(opt.M.PkgDir(opt.Version), opt.Device, ctx); err != nil { logrus.Errorf("Failed to prepare test, error: %s", err.Error()) - return tester.ResultFail, err + return err } + if opt.TestCase == "" { // run all test cases if the --testcase argument was not present results, err := opt.T.DoTestTask(opt.Device, ctx) if err != nil { logrus.Errorf("Failed to run all test cases on device %s, error: %s", opt.Device, err.Error()) - return tester.ResultFail, err + return err } + // only mark test result as pass when all test cases passed - var ret tester.ResultStatus = tester.ResultPass + var result tester.ResultStatus = tester.ResultPass for _, r := range results { logrus.Infof("Result for test case %s is %s", r.TestCaseName, r.Status) if r.Status == tester.ResultFail { - ret = tester.ResultFail + result = tester.ResultFail } } - return ret, nil + + logrus.Infof("Flash and test for all test cases done, result: %s", result) + return nil } else { // otherwise run the specified test case result, err := opt.T.DoTestCase(opt.Device, opt.TestCase, ctx) if err != nil { logrus.Errorf("Failed to run test case %s on device %s, error: %s", opt.TestCase, opt.Device, err.Error()) - return tester.ResultFail, err + return err } - return result.Status, nil + + logrus.Infof("Flash and test for test case %s done, result: %s", opt.TestCase, result) + return nil } } -- Gitee From 65ccaea2b62f2a95d652a966112ccdace2a1378b Mon Sep 17 00:00:00 2001 From: huangshan Date: Fri, 21 Apr 2023 10:39:23 +0800 Subject: [PATCH 013/201] update README.md Signed-off-by: huangshan Change-Id: I2aa13d7217b759b793d884e51d6ffcf55e6748d5 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c60415b..7bfecdf 100644 --- a/README.md +++ b/README.md @@ -43,4 +43,4 @@ ## 相关仓 -[**developtools\_integration\_verification**](https://gitee.com/openharmony/developtools_integration_verification/blob/master/README_zh.md) \ No newline at end of file +[**developtools\_integration\_verification**](https://gitee.com/openharmony/developtools_integration_verification) -- Gitee From 36776bab7f2cc5657ae4a2ffb07b570c916fc5a9 Mon Sep 17 00:00:00 2001 From: zhoutianer Date: Fri, 21 Apr 2023 14:20:37 +0800 Subject: [PATCH 014/201] fix launcher image Signed-off-by: zhoutianer --- .../basic/screenshot32/resource/launcher.jpeg | Bin 87599 -> 87681 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/cases/smoke/basic/screenshot32/resource/launcher.jpeg b/cases/smoke/basic/screenshot32/resource/launcher.jpeg index 3ebdcd145e634c8fdba25a06e8605ad691a03f88..3e62b00caf9658e86f24199bd74bf8e07a2a9ebd 100644 GIT binary patch delta 43987 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 C=rBS6 delta 43914 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 U19M~?4oA4gPz;j78vYFYA3Ret%m4rY -- Gitee From c6df29618869defccf3d94138d56223ceee1267d Mon Sep 17 00:00:00 2001 From: aodongbiao Date: Sun, 23 Apr 2023 08:55:26 +0000 Subject: [PATCH 015/201] [rom_ram_analyzer]Unify the units into byte Signed-off-by: aodongbiao --- tools/rom_ram_analyzer/standard/README.md | 10 ++++++---- tools/rom_ram_analyzer/standard/ram_analyzer.py | 9 +++++++-- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/tools/rom_ram_analyzer/standard/README.md b/tools/rom_ram_analyzer/standard/README.md index 6a11151..7d48d2d 100644 --- a/tools/rom_ram_analyzer/standard/README.md +++ b/tools/rom_ram_analyzer/standard/README.md @@ -65,9 +65,9 @@ ```json { 子系统名: { - "size": 整个子系统输出文件的总大小, + "size": 整个子系统输出文件的总大小(单位:字节), "file_count": 整个子系统产生的文件数, - 输出文件名: 本文件的大小, + 输出文件名: 本文件的大小(单位:字节), ... }, ... @@ -84,6 +84,8 @@ 基于out/{product_name}/packages/phone下所有cfg文件、out/{product_name}/packages/phone/system/profile下所有xml文件,分析各进程及对应部件的ram占用(默认取Pss) +可供参考命令:`mkdir xml && cp $(find ~/oh/out/rk3568/packages/phone/system/profile -name *.xml | xargs) xml` + 结果以json与xls格式存储,其中,json格式是必输出的,xls格式需要-e参数控制。 ## 使用说明 @@ -139,10 +141,10 @@ ```json { 进程名:{ - "size": 本进程占用内存的大小, + "size": 本进程占用内存的大小(单位:字节), 子系统名: { 部件名: { - elf文件名: elf文件大小 + elf文件名: elf文件大小(单位:字节) ... } ... diff --git a/tools/rom_ram_analyzer/standard/ram_analyzer.py b/tools/rom_ram_analyzer/standard/ram_analyzer.py index 20a584d..8d98fc4 100644 --- a/tools/rom_ram_analyzer/standard/ram_analyzer.py +++ b/tools/rom_ram_analyzer/standard/ram_analyzer.py @@ -109,6 +109,7 @@ class RamAnalyzer: for lname in __process_name_list: if lname.startswith(hname): return lname + return str() def process_ps_ef(content: str) -> list: line_list = content.strip().split("\n")[1:] @@ -136,8 +137,12 @@ class RamAnalyzer: if not processed or not processed[0].isnumeric(): # 如果第一列不是数字(pid),就过 continue name = processed[1] # 否则的话就取名字,和对应的size - size = int(processed[cls.__ss_dict.get(ss)]) - process_pss_dict[find_full_process_name(name)] = size + size = int(processed[cls.__ss_dict.get(ss)])*1024 # kilo byte to byte + full_process_name = find_full_process_name(name) + if not full_process_name: + print(f"warning: process \"{full_process_name}\" not found in not found int the result of command \"ps -ef\"") + continue + process_pss_dict[full_process_name] = size return process_pss_dict @classmethod -- Gitee From 9901405e1967dfdb567aff095212eddd13bd60fa Mon Sep 17 00:00:00 2001 From: mujingrong Date: Tue, 25 Apr 2023 11:43:56 +0800 Subject: [PATCH 016/201] add --result-path and --result-file flag to fotff Signed-off-by: mujingrong --- tools/fotff/tester/common/common.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/tools/fotff/tester/common/common.go b/tools/fotff/tester/common/common.go index d5fbd18..24a71fd 100644 --- a/tools/fotff/tester/common/common.go +++ b/tools/fotff/tester/common/common.go @@ -18,6 +18,8 @@ const ( testResultPass = "pass" testCaseFlag = "--test-case" deviceFlag = "--device" + resultPathFlag = "--result-path" + resultFileFlag = "--result-file" ) // Tester is the common tester for most kinds of tests @@ -54,6 +56,8 @@ func (t *Tester) DoTestTask(device string, ctx context.Context) ([]tester.Result if device != "" { args = append(args, []string{deviceFlag, device}...) } + args = append(args, []string{resultPathFlag, t.ResultPath}...) + args = append(args, []string{resultFileFlag, t.ResultFile}...) if err := utils.ExecContext(ctx, t.Tool, args...); err != nil { if errors.Is(err, context.Canceled) { return nil, err @@ -72,6 +76,8 @@ func (t *Tester) DoTestCase(device string, testCase string, ctx context.Context) if device != "" { args = append(args, []string{deviceFlag, device}...) } + args = append(args, []string{resultPathFlag, t.ResultPath}...) + args = append(args, []string{resultFileFlag, t.ResultFile}...) defaultResult := tester.Result{} if err := utils.ExecContext(ctx, t.Tool, args...); err != nil { if errors.Is(err, context.Canceled) { @@ -104,6 +110,8 @@ func (t *Tester) DoTestCases(device string, testCases []string, ctx context.Cont if device != "" { args = append(args, []string{deviceFlag, device}...) } + args = append(args, []string{resultPathFlag, t.ResultPath}...) + args = append(args, []string{resultFileFlag, t.ResultFile}...) if err := utils.ExecContext(ctx, t.Tool, args...); err != nil { if errors.Is(err, context.Canceled) { return nil, err -- Gitee From 25fbd5324f6135aed996f04a424015ae4f9e860b Mon Sep 17 00:00:00 2001 From: huangshan Date: Tue, 25 Apr 2023 15:41:48 +0800 Subject: [PATCH 017/201] add manifest_branch to support monthly fotff Signed-off-by: huangshan Change-Id: I78e3283d86c5037bcdfdfe4aaa6cd5275f882204 --- tools/fotff/pkg/dayu200/dayu200.go | 3 ++- tools/fotff/pkg/gitee_build/gitee_build.go | 17 ++++++------- tools/fotff/pkg/gitee_common/common.go | 24 ++++++++++--------- tools/fotff/pkg/gitee_common/get_newer_ci.go | 2 +- .../pkg/gitee_common/get_newer_or_fail.go | 4 ++-- tools/fotff/pkg/gitee_common/steps_ci.go | 2 +- tools/fotff/pkg/gitee_common/steps_gitee.go | 10 ++++---- 7 files changed, 33 insertions(+), 29 deletions(-) diff --git a/tools/fotff/pkg/dayu200/dayu200.go b/tools/fotff/pkg/dayu200/dayu200.go index b02a9de..986c8a1 100644 --- a/tools/fotff/pkg/dayu200/dayu200.go +++ b/tools/fotff/pkg/dayu200/dayu200.go @@ -31,6 +31,7 @@ type Manager struct { WatchCI string `key:"watch_ci" default:"false"` Workspace string `key:"workspace" default:"workspace"` Branch string `key:"branch" default:"master"` + ManifestBranch string `key:"manifest_branch" default:"master"` FlashTool string `key:"flash_tool" default:"python"` LocationIDList string `key:"location_id_list"` @@ -71,7 +72,7 @@ func NewManager() pkg.Manager { if err != nil { logrus.Panicf("can not parse 'watch_ci', please check") } - ret.Manager = gitee_common.NewManager("dayu200", ret.Branch, ret.ArchiveDir, ret.Workspace, watchCI) + ret.Manager = gitee_common.NewManager("dayu200", ret.Branch, ret.ManifestBranch, ret.ArchiveDir, ret.Workspace, watchCI) devs := res.DeviceList() locs := strings.Split(ret.LocationIDList, ",") if len(devs) != len(locs) { diff --git a/tools/fotff/pkg/gitee_build/gitee_build.go b/tools/fotff/pkg/gitee_build/gitee_build.go index ad24018..11bbfd4 100644 --- a/tools/fotff/pkg/gitee_build/gitee_build.go +++ b/tools/fotff/pkg/gitee_build/gitee_build.go @@ -25,13 +25,14 @@ import ( ) type Manager struct { - ArchiveDir string `key:"archive_dir" default:"archive"` - Workspace string `key:"workspace" default:"workspace"` - Branch string `key:"branch" default:"master"` - Component string `key:"component"` - PreCompileCMD string `key:"pre_compile_cmd"` - CompileCMD string `key:"compile_cmd"` - ImageList []string `key:"image_list"` + ArchiveDir string `key:"archive_dir" default:"archive"` + Workspace string `key:"workspace" default:"workspace"` + Branch string `key:"branch" default:"master"` + ManifestBranch string `key:"manifest_branch" default:"master"` + Component string `key:"component"` + PreCompileCMD string `key:"pre_compile_cmd"` + CompileCMD string `key:"compile_cmd"` + ImageList []string `key:"image_list"` *gitee_common.Manager } @@ -39,7 +40,7 @@ type Manager struct { func NewManager() pkg.Manager { var ret Manager utils.ParseFromConfigFile("gitee_build", &ret) - ret.Manager = gitee_common.NewManager(ret.Component, ret.Branch, ret.ArchiveDir, ret.Workspace, true) + ret.Manager = gitee_common.NewManager(ret.Component, ret.Branch, ret.ManifestBranch, ret.ArchiveDir, ret.Workspace, true) return &ret } diff --git a/tools/fotff/pkg/gitee_common/common.go b/tools/fotff/pkg/gitee_common/common.go index 045c1b7..18330d4 100644 --- a/tools/fotff/pkg/gitee_common/common.go +++ b/tools/fotff/pkg/gitee_common/common.go @@ -28,20 +28,22 @@ import ( ) type Manager struct { - Component string - Branch string - ArchiveDir string - Workspace string - WatchCI bool + Component string + Branch string + ManifestBranch string + ArchiveDir string + Workspace string + WatchCI bool } -func NewManager(component string, branch string, archiveDir string, workspace string, watchCI bool) *Manager { +func NewManager(component string, branch string, manifestBranch string, archiveDir string, workspace string, watchCI bool) *Manager { var ret = Manager{ - Component: component, - Branch: branch, - ArchiveDir: archiveDir, - Workspace: workspace, - WatchCI: watchCI, + Component: component, + Branch: branch, + ManifestBranch: manifestBranch, + ArchiveDir: archiveDir, + Workspace: workspace, + WatchCI: watchCI, } go ret.cleanupOutdated() return &ret diff --git a/tools/fotff/pkg/gitee_common/get_newer_ci.go b/tools/fotff/pkg/gitee_common/get_newer_ci.go index f5b3495..33fa988 100644 --- a/tools/fotff/pkg/gitee_common/get_newer_ci.go +++ b/tools/fotff/pkg/gitee_common/get_newer_ci.go @@ -90,7 +90,7 @@ func (m *Manager) loopCI(param DailyBuildsQueryParam, cur string, getFn func(cur func (m *Manager) getNewerFromCI(cur string) string { return m.loopCI(DailyBuildsQueryParam{ ProjectName: "openharmony", - Branch: m.Branch, + Branch: m.ManifestBranch, Component: m.Component, BuildStatus: "success", PageNum: 1, diff --git a/tools/fotff/pkg/gitee_common/get_newer_or_fail.go b/tools/fotff/pkg/gitee_common/get_newer_or_fail.go index 03730f5..d6b8ef2 100644 --- a/tools/fotff/pkg/gitee_common/get_newer_or_fail.go +++ b/tools/fotff/pkg/gitee_common/get_newer_or_fail.go @@ -46,7 +46,7 @@ func (m *Manager) GetNewerOrFail(cur string) (string, error) { func (m *Manager) getNewerOrFailFromCI(cur string) string { return m.loopCI(DailyBuildsQueryParam{ ProjectName: "openharmony", - Branch: m.Branch, + Branch: m.ManifestBranch, Component: m.Component, PageNum: 1, PageSize: 1, @@ -79,7 +79,7 @@ func (m *Manager) getNewerDailyBuildOrFail(cur string, db *DailyBuild) string { func (m *Manager) genFailedPackage(lastSuccessTime, failedBuildStartTime time.Time) string { pkg := fmt.Sprintf("%s_%s_build_fail", m.Component, failedBuildStartTime.Format("20060102_150405")) - logrus.Infof("getting failed package manifest for %s(%s) at %s", m.Component, m.Branch, failedBuildStartTime) + logrus.Infof("getting failed package manifest for %s(%s) at %s", m.Component, m.ManifestBranch, failedBuildStartTime) tags, err := m.getAllTags(lastSuccessTime, failedBuildStartTime) if err != nil { logrus.Errorf("can not get latest tag from ci, err: %v", err) diff --git a/tools/fotff/pkg/gitee_common/steps_ci.go b/tools/fotff/pkg/gitee_common/steps_ci.go index 36cdd9e..b45682d 100644 --- a/tools/fotff/pkg/gitee_common/steps_ci.go +++ b/tools/fotff/pkg/gitee_common/steps_ci.go @@ -85,7 +85,7 @@ func (m *Manager) getAllTags(from, to time.Time) (ret []*Tag, err error) { for { var q = TagQueryParam{ ProjectName: "openharmony", - Branch: m.Branch, + Branch: m.ManifestBranch, ManifestFile: "default.xml", StartTime: from.Local().Format("2006-01-02"), EndTime: to.Local().Format("2006-01-02"), diff --git a/tools/fotff/pkg/gitee_common/steps_gitee.go b/tools/fotff/pkg/gitee_common/steps_gitee.go index 11899fd..2754035 100644 --- a/tools/fotff/pkg/gitee_common/steps_gitee.go +++ b/tools/fotff/pkg/gitee_common/steps_gitee.go @@ -63,7 +63,7 @@ func (m *Manager) stepsFromGitee(from, to string) (pkgs []string, err error) { return nil, err } logrus.Infof("find %d repo updates from %s to %s", len(updates), from, to) - steps, err := getAllStepsFromGitee(startTime, endTime, m.Branch, updates) + steps, err := getAllStepsFromGitee(startTime, endTime, m.Branch, m.ManifestBranch, updates) if err != nil { return nil, err } @@ -94,8 +94,8 @@ func (m *Manager) getRepoUpdates(from, to string) (updates []vcs.ProjectUpdate, return vcs.GetRepoUpdates(m1, m2) } -func getAllStepsFromGitee(startTime, endTime time.Time, branch string, updates []vcs.ProjectUpdate) (ret []Step, err error) { - allMRs, err := getAllMRs(startTime, endTime, branch, updates) +func getAllStepsFromGitee(startTime, endTime time.Time, branch string, manifestBranch string, updates []vcs.ProjectUpdate) (ret []Step, err error) { + allMRs, err := getAllMRs(startTime, endTime, branch, manifestBranch, updates) if err != nil { return nil, err } @@ -106,13 +106,13 @@ func getAllStepsFromGitee(startTime, endTime time.Time, branch string, updates [ return combineIssuesToStep(issueInfos) } -func getAllMRs(startTime, endTime time.Time, branch string, updates []vcs.ProjectUpdate) (allMRs []*gitee.Commit, err error) { +func getAllMRs(startTime, endTime time.Time, branch string, manifestBranch string, updates []vcs.ProjectUpdate) (allMRs []*gitee.Commit, err error) { var once sync.Once for _, update := range updates { var prs []*gitee.Commit if update.P1.StructureDiff(update.P2) { once.Do(func() { - prs, err = gitee.GetBetweenTimeMRs("openharmony", "manifest", branch, startTime, endTime) + prs, err = gitee.GetBetweenTimeMRs("openharmony", "manifest", manifestBranch, startTime, endTime) }) if update.P1 != nil { var p1 []*gitee.Commit -- Gitee From 299fd6bfbfc47f385acb184eeb28918b8574bda9 Mon Sep 17 00:00:00 2001 From: huangshan Date: Tue, 25 Apr 2023 15:46:22 +0800 Subject: [PATCH 018/201] add sample ini and dayu200 flash tool Signed-off-by: huangshan Change-Id: I77043778982b574943126584c1e8400933107379 --- tools/fotff/fotff.ini | 58 +++++++++++++++++++++++ tools/fotff/pkg/dayu200/upgrade_tool.exe | Bin 0 -> 1319424 bytes 2 files changed, 58 insertions(+) create mode 100644 tools/fotff/fotff.ini create mode 100644 tools/fotff/pkg/dayu200/upgrade_tool.exe diff --git a/tools/fotff/fotff.ini b/tools/fotff/fotff.ini new file mode 100644 index 0000000..08e6ba9 --- /dev/null +++ b/tools/fotff/fotff.ini @@ -0,0 +1,58 @@ +pkg_manager = mock +tester = mock + +[pprof] +enable = true +port = 8080 + +[mail] +host = smtp.example.com +port = 465 +user = admin +password = password +from = admin@example.com +to = alice@example.com,bob@example.com + +[proxy] +server_list = +user = +password = + +[resources] +device_sn_list = 7001005458323933328a01fce1dc3800 +build_server_addr_list = 127.0.0.1:22 +build_server_user = root +build_server_password = root +build_server_workspace = /root/fotff/build_workspace + +[dayu200] +archive_dir = C:\dayu200 +watch_ci = false +workspace = C:\dayu200_workspace +location_id_list = 110 +branch = master +manifest_branch = master +flash_tool = ./pkg/dayu200/upgrade_tool.exe + +[gitee_build] +archive_dir = C:\dayu200 +workspace = C:\dayu200_workspace +branch = master +manifest_branch = master +component = dayu200_asan +pre_compile_cmd = rm -rf out*; ./build/prebuilts_download.sh +compile_cmd = ./build/common/asan/build_mixed_asan.sh --product-name rk3568 --ccache -g5:foundation,graphic,distributed_data -g2:appspawn --build-variant root -g0:access_token,accessibility,accountmgr,audio_policy,avsession_service,bgtaskmgr_service,bluetooth_service,bytrace,camera_service,cert_manager_service,console,dcamera,device_manager,device_usage_statistics_service,deviceauth_service,deviceinfoservice,dhardware,distributed_data,distributedbms,distributedfile,distributedsched,downloadservice,dscreen,dslm_service,edm,faultloggerd,hidumper_service,hilogd,hitrace,hiview,huks_service,inputmethodservice,installs,locationsa,media_service,memmgrservice,msdp_musl,multimodalinput,netmanager_base,netsysnative,nwebspawn,param_watcher,pinauth_sa_profile,privacy,pulseaudio,quick_fix,samgr_standard,sensors_musl,storage_daemon,sys_installer_sa,telephony,thermal_protector,timeservice,ui_service,wifi_hal_service,wifi_standard +image_list = out/rk3568/packages/phone/images/uboot.img + +[xdevice] +task = acts +config = ./config/user_config.xml +test_cases_path = ./testcases +resource_path = ./resource + +[smoke] +py = ./smoke/resource/capturescreentest.py +config = ./smoke/resource/app_capture_screen_test_config.json +answer_path = ./smoke/resource +save_path = ./smoke/save +tools_path = ./smoke diff --git a/tools/fotff/pkg/dayu200/upgrade_tool.exe b/tools/fotff/pkg/dayu200/upgrade_tool.exe new file mode 100644 index 0000000000000000000000000000000000000000..61030691d5beff7b436a93cac5db7ff4a4f0360a GIT binary patch literal 1319424 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

JI+)zI5~kH(!PaMe;G0G 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

HHB{4A$ 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

j=G0RDGzR0R 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%0Dd^supAEWdBj+ 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�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

%A4NBCYn(SN!#U<7Yr`E(Cg`54u&M9}hsUA$mp` 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 z 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 z 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 LU Date: Sat, 6 May 2023 18:21:17 +0800 Subject: [PATCH 019/201] remove udevd for mmi Signed-off-by: yuanxinying --- cases/smoke/basic/screenshot32/resource/process.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/cases/smoke/basic/screenshot32/resource/process.txt b/cases/smoke/basic/screenshot32/resource/process.txt index 1261aea..99efc48 100644 --- a/cases/smoke/basic/screenshot32/resource/process.txt +++ b/cases/smoke/basic/screenshot32/resource/process.txt @@ -10,7 +10,6 @@ appspawn hilogd samgr storage_daemon -udevd uinput_inject multimodalinput huks_service -- Gitee From 573fe56595e4b4de425a35bb2e1bdd21b289b96b Mon Sep 17 00:00:00 2001 From: aodongbiao Date: Sat, 6 May 2023 13:05:48 +0000 Subject: [PATCH 020/201] [rom_ram_analyzer]1. add baseline to result. 2. refactored the format of xml of ram Signed-off-by: aodongbiao --- tools/rom_ram_analyzer/lite_small/README.md | 13 +- .../lite_small/pkgs/basic_tool.py | 77 +++++- .../pkgs/rom_ram_baseline_collector.py | 67 +++++ .../rom_ram_analyzer/lite_small/src/config.py | 11 +- .../lite_small/src/config.yaml | 2 + .../lite_small/src/rom_analysis.py | 49 +++- tools/rom_ram_analyzer/standard/README.md | 126 ++++++--- .../standard/pkgs/basic_tool.py | 13 + .../pkgs/rom_ram_baseline_collector.py | 67 +++++ .../rom_ram_analyzer/standard/ram_analyzer.py | 256 +++++++++++++----- .../rom_ram_analyzer/standard/rom_analyzer.py | 50 +++- 11 files changed, 584 insertions(+), 147 deletions(-) create mode 100644 tools/rom_ram_analyzer/lite_small/pkgs/rom_ram_baseline_collector.py create mode 100644 tools/rom_ram_analyzer/standard/pkgs/rom_ram_baseline_collector.py diff --git a/tools/rom_ram_analyzer/lite_small/README.md b/tools/rom_ram_analyzer/lite_small/README.md index 859aac6..d46209a 100644 --- a/tools/rom_ram_analyzer/lite_small/README.md +++ b/tools/rom_ram_analyzer/lite_small/README.md @@ -27,6 +27,7 @@ 1. 关于NOTFOUND:表示对应的编译产物没有在BUILD.gn的扫描结果中匹配(包括模糊匹配)到 1. 本工具是基于gn的template进行匹配,如果新增了自定义的template,则需要相应在代码中进行配置 1. 由于本工具是进行的静态扫描,且部分gn文件中使用了较为复杂的gn语法,因此本工具的**准确率无法达到100%,结果仅供参考** +1. rk3568因为主要使用的是自定义的template,所以能够在编译阶段收集更多有效信息,因此建议使用standard目录下的脚本进行分析 **子系统及部件的查找过程** @@ -51,18 +52,17 @@ xlwt==1.3.0 ``` -1. `python3 rom_analysis.py --product_name {your_product_name} --oh_path {root_path_of_oh} [-g] [-s]`运行代码,其中-g表示直接使用上次扫描的BUILD.gn的结果,-s表示直接使用已有的子系统和部件信息,默认都会重新扫描.eg: `python3 rom_analysis.py --product_name ipcamera_hispark_taurus`. +1. `python3 rom_analysis.py --product_name {your_product_name} --oh_path {root_path_of_oh} [-g] [-s] [-b]`运行代码,其中-g表示直接使用上次扫描的BUILD.gn的结果,-s表示直接使用已有的子系统和部件信息,此二者默认都会重新扫描, -b表示在结果中添加各部件的baseline信息(根据bundle.json).eg: `python3 rom_analysis.py --product_name ipcamera_hispark_taurus -b`. 1. 运行完毕会产生4个json文件及一个xls文件,如果是默认配置,各文件描述如下: - gn_info.json:BUILD.gn的分析结果 - sub_com_info.json:从bundle.json中进行分析获得的各部件及其对应根目录的信息 - {product_name}_product.json:该产品实际的编译产物信息,根据config.yaml进行收集 - - {product_name}_result.json:各部件的rom大小分析结果 - - {product_name}_result.xls:各部件的rom大小分析结果 + - **{product_name}_result.json:各部件的rom大小分析结果** + - **{product_name}_result.xls:各部件的rom大小分析结果** + - rom_ram_baseline.json:各部件在bundle.json中定义的rom和ram的基线 ## 新增对产品的支持 -*rk3568因为主要使用的是自定义的template,所以能够在编译阶段收集更多有效信息,因此建议使用standard目录下的脚本进行分析* - 在config.yaml中进行配置即可,格式说明如下: ```yaml ipcamera_hispark_taurus: # 产品名称,需要和命令行参数中的-p参数一致 @@ -100,3 +100,6 @@ ipcamera_hispark_taurus: # 产品名称,需要和命令行参数中的-p参数 ## 后续工作 1. 对target(xxx,yyy)中,xxx/yyy为变量的情况可进一步优化 +1. 重构 +1. 在config.yaml中允许人为配置以进一步提高准确性 +1. 单位自适应 diff --git a/tools/rom_ram_analyzer/lite_small/pkgs/basic_tool.py b/tools/rom_ram_analyzer/lite_small/pkgs/basic_tool.py index 660a04c..b182b29 100644 --- a/tools/rom_ram_analyzer/lite_small/pkgs/basic_tool.py +++ b/tools/rom_ram_analyzer/lite_small/pkgs/basic_tool.py @@ -20,6 +20,40 @@ import os import re import glob from typing import * +import unittest + +__all__ = ["translate_str_unit", "BasicTool", "do_nothing", "get_unit"] + + +def get_unit(x: str) -> str: + pattern = r"[a-z|A-Z]*$" + unit = re.search(pattern, x).group() + return unit + + +class TestGetUnit(unittest.TestCase): + def test_TB(self): + self.assertEqual(get_unit("1TB"), "TB") + + +def translate_str_unit(x: str, dest: str, prefix: str = "~") -> float: + src_unit = get_unit(x) + trans_dict: Dict[str, int] = { + "Byte": 1, + "byte": 1, + "KB": 1024, + "kb": 1024, + "MB": 1024*1024, + "M": 1024*1024, + "GB": 1024*1024*1024, + "G": 1024*1024*1024 + } + if src_unit not in trans_dict.keys(): + raise Exception( + f"unsupport unit: {src_unit}. only support {list(trans_dict.keys())}") + x = float(x.lstrip(prefix).rstrip(src_unit)) + return round(x*(trans_dict.get(src_unit)/trans_dict.get(dest)),2) + def do_nothing(x: Any) -> Any: @@ -138,8 +172,43 @@ class BasicTool: return output +class TestUnitTrans(unittest.TestCase): + def test_Byte(self): + self.assertEqual(translate_str_unit("~1MB", "KB"), 1024.00) + + # def test_byte(self): + # self.assertEqual(translate_str_unit("1byte"), 1) + + # def test_KB(self): + # self.assertEqual(translate_str_unit("1KB"), 1024) + + # def test_kb(self): + # self.assertEqual(translate_str_unit("1kb"), 1024) + + # def test_MB(self): + # self.assertEqual(translate_str_unit("1MB"), 1024*1024) + + # def test_M(self): + # self.assertEqual(translate_str_unit("1M"), 1024*1024) + + # def test_GB(self): + # self.assertEqual(translate_str_unit("1GB"), 1024*1024*1024) + + # def test_G(self): + # self.assertEqual(translate_str_unit("1G"), 1024*1024*1024) + + # def test_TB(self): + # with self.assertRaises(Exception): + # translate_str_unit("1TB") + + # def test_prefix(self): + # self.assertEqual(translate_str_unit("~1MB"), 1024*1024) + + if __name__ == '__main__': - res = BasicTool.grep_ern("^( *)ohos_prebuilt_shared_library", "/home/aodongbiao/oh", include="BUILD.gn", exclude=("/home/aodongbiao/oh/out","doc", ".ccache"), post_handler=lambda x: x.split('\n')) - for i in res: - if "oh/out" in i: - print(i) + # res = BasicTool.grep_ern("^( *)ohos_prebuilt_shared_library", "/home/aodongbiao/oh", include="BUILD.gn", exclude=("/home/aodongbiao/oh/out","doc", ".ccache"), post_handler=lambda x: x.split('\n')) + # for i in res: + # if "oh/out" in i: + # print(i) + + unittest.main() diff --git a/tools/rom_ram_analyzer/lite_small/pkgs/rom_ram_baseline_collector.py b/tools/rom_ram_analyzer/lite_small/pkgs/rom_ram_baseline_collector.py new file mode 100644 index 0000000..a217950 --- /dev/null +++ b/tools/rom_ram_analyzer/lite_small/pkgs/rom_ram_baseline_collector.py @@ -0,0 +1,67 @@ + +if __name__ == '__main__': + from basic_tool import BasicTool +else: + from pkgs.basic_tool import BasicTool +from typing import Dict, Any +import unittest +import json +import logging + +class RomRamBaselineCollector: + """collect baseline of rom and ram from bundle.json + """ + @classmethod + def _put(cls, result_dict: Dict, subsystem_name: str, component_name: str, rom_size: str, ram_size: str, bundle_path:str) -> None: + if not result_dict.get(subsystem_name): + result_dict[subsystem_name] = dict() + result_dict[subsystem_name][component_name] = dict() + result_dict[subsystem_name][component_name]["rom"] = rom_size + result_dict[subsystem_name][component_name]["ram"] = ram_size + result_dict[subsystem_name][component_name]["bundle.json"] = bundle_path + + @classmethod + def collect(cls, oh_path: str) -> Dict[str, Dict]: + def post_handler(x:str)->list: + x = x.split("\n") + y = [item for item in x if item] + return y + bundle_list = BasicTool.execute(cmd=f"find {oh_path} -name bundle.json", post_processor=post_handler) + rom_ram_baseline_dict: Dict[str, Dict] = dict() + for bundle in bundle_list: + with open(bundle, 'r', encoding='utf-8') as f: + content: Dict[str, Any] = json.loads(f.read()) + component_info = content.get("component") + if not component_info: + logging.warning(f"{bundle} has no field of 'component'.") + continue + component_name = component_info.get("name") + subsystem_name = component_info.get("subsystem") + rom_baseline = component_info.get("rom") + ram_baseline = component_info.get("ram") + if not (subsystem_name or rom_baseline or ram_baseline): + logging.warning(f"subsystem=\"{subsystem_name}\", rom=\"{rom_baseline}\", ram=\"{ram_baseline}\" in {bundle}") + cls._put(rom_ram_baseline_dict, subsystem_name, component_name, rom_baseline, ram_baseline, bundle) + return rom_ram_baseline_dict + + +class TestRomRamBaselineCollector(unittest.TestCase): + + def test_collect(self): + RomRamBaselineCollector.collect("/mnt/data/aodongbiao/codechecker_oh") + ... + + def test_bundle(self): + def post_handler(x:str)->list: + x = x.split("\n") + y = [item for item in x if item] + return y + oh_path = "/mnt/data/aodongbiao/codechecker_oh" + bundle_list = BasicTool.execute(cmd=f"find {oh_path} -name bundle.json", post_processor=post_handler) + print(bundle_list) + + + +if __name__ == '__main__': + + unittest.main() diff --git a/tools/rom_ram_analyzer/lite_small/src/config.py b/tools/rom_ram_analyzer/lite_small/src/config.py index a557af6..b187bb1 100644 --- a/tools/rom_ram_analyzer/lite_small/src/config.py +++ b/tools/rom_ram_analyzer/lite_small/src/config.py @@ -13,7 +13,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -# This file is a configuration for scaning the BUILD.gn to collection compile +# This file is a configuration for scaning the BUILD.gn to collection compile # products. @@ -43,14 +43,16 @@ def parse_args(): parser.add_argument("-o", "--oh_path", type=str, default=".", help="root path of openharmony") parser.add_argument("-g", "--recollect_gn", - action="store_false", help="recollect gn info or not") + action="store_false", help="recollect gn info or not(-g)") parser.add_argument("-s", "--recollect_sc", action="store_false", - help="recollect subsystem_component info or not") + help="recollect subsystem_component info or not(-s)") + parser.add_argument("-b", "--baseline", action="store_true", + help="add baseline of component to the result(-b) or not.") args = parser.parse_args() return args -logging.basicConfig(level=logging.INFO) +logging.basicConfig(level=logging.NOTSET) _args = parse_args() # # global variables @@ -60,6 +62,7 @@ result_dict: Dict[str, Any] = dict() project_path = BasicTool.abspath(_args.oh_path) product_name = _args.product_name recollect_gn = _args.recollect_gn +baseline = _args.baseline _recollect_sc = _args.recollect_sc _sc_json: Dict[Text, Text] = configs.get("subsystem_component") _sc_save = _sc_json.get("save") diff --git a/tools/rom_ram_analyzer/lite_small/src/config.yaml b/tools/rom_ram_analyzer/lite_small/src/config.yaml index f3394b2..67073f2 100644 --- a/tools/rom_ram_analyzer/lite_small/src/config.yaml +++ b/tools/rom_ram_analyzer/lite_small/src/config.yaml @@ -12,6 +12,7 @@ # limitations under the License. + # 注意:如果target_type有了更改,要相应改变config.py中collector_config target_type: - shared_library @@ -44,6 +45,7 @@ default_extension: default_prefix: shared_library: lib static_library: lib + # black list for command 'grep', it should be the subdirectory of the root path of oh black_list: - .repo diff --git a/tools/rom_ram_analyzer/lite_small/src/rom_analysis.py b/tools/rom_ram_analyzer/lite_small/src/rom_analysis.py index f827b03..ab90aff 100644 --- a/tools/rom_ram_analyzer/lite_small/src/rom_analysis.py +++ b/tools/rom_ram_analyzer/lite_small/src/rom_analysis.py @@ -29,10 +29,11 @@ from threading import RLock import collections from config import result_dict, collector_config, configs, \ - project_path, sub_com_dict, product_name, recollect_gn + project_path, sub_com_dict, product_name, recollect_gn, baseline from pkgs.basic_tool import BasicTool from pkgs.gn_common_tool import GnCommonTool from pkgs.simple_excel_writer import SimpleExcelWriter +from pkgs.rom_ram_baseline_collector import RomRamBaselineCollector from misc import gn_lineno_collect @@ -149,7 +150,7 @@ class RomAnalysisTool: return product_dict @classmethod - def _put(cls, sub: str, com: str, unit: Dict, rom_size_dict: Dict): + def _put(cls, sub: str, com: str, unit: Dict, rom_size_dict: Dict, com_size_baseline: str = str()): size = unit.get("size") if not rom_size_dict.get("size"): # 总大小 rom_size_dict["size"] = 0 @@ -164,6 +165,10 @@ class RomAnalysisTool: rom_size_dict[sub][com]["size"] = 0 rom_size_dict[sub][com]["count"] = 0 + if (sub != "NOTFOUND" and sub != "UNDEFINED" and com != "NOTFOUND" and com != "UNDEFINED") \ + and (not rom_size_dict.get(sub).get(com).get("baseline")) and baseline: + rom_size_dict[sub][com]["baseline"] = com_size_baseline + rom_size_dict[sub][com]["filelist"].append(unit) rom_size_dict[sub][com]["size"] += size rom_size_dict[sub][com]["count"] += 1 @@ -228,10 +233,13 @@ class RomAnalysisTool: return str(), str(), str() @classmethod - def _save_as_xls(cls, result_dict: Dict, product_name: str) -> None: + def _save_as_xls(cls, result_dict: Dict, product_name: str, baseline: bool) -> None: logging.info("saving as xls...") header = ["subsystem_name", "component_name", "output_file", "size(Byte)"] + if baseline: + header = ["subsystem_name", "component_name", "baseline", + "output_file", "size(Byte)"] tmp_dict = copy.deepcopy(result_dict) excel_writer = SimpleExcelWriter("rom") excel_writer.set_sheet_header(headers=header) @@ -241,6 +249,7 @@ class RomAnalysisTool: component_start_row = 1 component_end_row = 0 component_col = 1 + baseline_col = 2 del tmp_dict["size"] for subsystem_name in tmp_dict.keys(): subsystem_dict = tmp_dict.get(subsystem_name) @@ -255,6 +264,9 @@ class RomAnalysisTool: component_name) component_size = component_dict.get("size") component_file_count = component_dict.get("count") + component_baseline = component_dict.get("baseline") + if component_baseline: + del component_dict["baseline"] del component_dict["count"] del component_dict["size"] component_end_row += component_file_count @@ -262,10 +274,17 @@ class RomAnalysisTool: for fileinfo in component_dict.get("filelist"): file_name = fileinfo.get("file_name") file_size = fileinfo.get("size") - excel_writer.append_line( - [subsystem_name, component_name, file_name, file_size]) + line = [subsystem_name, component_name, + file_name, file_size] + if baseline: + line = [subsystem_name, component_name, + component_baseline, file_name, file_size] + excel_writer.append_line(line) excel_writer.write_merge(component_start_row, component_col, component_end_row, component_col, component_name) + if baseline: + excel_writer.write_merge(component_start_row, baseline_col, component_end_row, baseline_col, + component_baseline) component_start_row = component_end_row + 1 excel_writer.write_merge(subsystem_start_row, subsystem_col, subsystem_end_row, subsystem_col, subsystem_name) @@ -278,12 +297,16 @@ class RomAnalysisTool: @ classmethod def analysis(cls, product_name: str, product_dict: Dict[str, List[str]]): logging.info("start analyzing...") + rom_ram_baseline: Dict[str, Dict] = RomRamBaselineCollector.collect( + project_path) + with open("rom_ram_baseline.json", 'w', encoding='utf-8') as f: + json.dump(rom_ram_baseline, f, indent=4) gn_info_file = configs["gn_info_file"] with open(gn_info_file, 'r', encoding='utf-8') as f: gn_info = json.load(f) query_order: Dict[str, List[str] ] = configs[product_name]["query_order"] - query_order["etc"] = configs["target_type"] # etc会查找所有的template + query_order["etc"] = configs["target_type"] # etc会查找所有的template rom_size_dict: Dict = dict() for t, l in product_dict.items(): for f in l: # 遍历所有文件 @@ -311,13 +334,21 @@ class RomAnalysisTool: continue d["size"] = size d["file_name"] = f.replace(project_path, "") + if rom_ram_baseline.get(d["subsystem_name"]) and rom_ram_baseline.get(d["subsystem_name"]).get(d["component_name"]): + component_rom_baseline = rom_ram_baseline.get( + d["subsystem_name"]).get(d["component_name"]).get("rom") cls._put(d["subsystem_name"], - d["component_name"], d, rom_size_dict) + d["component_name"], d, rom_size_dict, component_rom_baseline) + if d["component_name"] == "unionman_products": + print(d) find_flag = True if not find_flag: # 如果指定序列中的template都没有查找到,则模糊匹配 # fuzzy match psesudo_gn, sub, com = cls._fuzzy_match(f) if sub and com: + if rom_ram_baseline.get(sub) and rom_ram_baseline.get(sub).get(com): + component_rom_baseline = rom_ram_baseline.get( + sub).get(com).get("baseline") cls._put(sub, com, { "subsystem_name": sub, "component_name": com, @@ -325,7 +356,7 @@ class RomAnalysisTool: "description": "fuzzy match", "file_name": f.replace(project_path, ""), "size": size, - }, rom_size_dict) + }, rom_size_dict, component_rom_baseline) find_flag = True if not find_flag: # 模糊匹配都没有匹配到的,归属到NOTFOUND cls._put("NOTFOUND", "NOTFOUND", { @@ -334,7 +365,7 @@ class RomAnalysisTool: }, rom_size_dict) with open(configs[product_name]["output_name"], 'w', encoding='utf-8') as f: json.dump(rom_size_dict, f, indent=4) - cls._save_as_xls(rom_size_dict, product_name) + cls._save_as_xls(rom_size_dict, product_name, baseline) logging.info("success") diff --git a/tools/rom_ram_analyzer/standard/README.md b/tools/rom_ram_analyzer/standard/README.md index 7d48d2d..af157fe 100644 --- a/tools/rom_ram_analyzer/standard/README.md +++ b/tools/rom_ram_analyzer/standard/README.md @@ -10,7 +10,7 @@ ## 支持产品 -主要是rk3568系列,已测试产品包括rk3568 rk3568_mini_system +主要是rk3568系列,已测试产品包括rk3568、rk3568_mini_system ## 使用说明 @@ -30,32 +30,32 @@ 1. `-h`或`--help`命令查看帮助 ```shell > python3 rom_analyzer.py -h - usage: rom_analyzer.py [-h] [-v] -p PROJECT_PATH -j MODULE_INFO_JSON -n PRODUCT_NAME -d PRODUCT_DIR [-o OUTPUT_FILE] [-e EXCEL] - + usage: rom_analyzer.py [-h] [-v] -p PROJECT_PATH -j MODULE_INFO_JSON -n PRODUCT_NAME -d PRODUCT_DIR [-b] [-o OUTPUT_FILE] [-e EXCEL] + analyze rom size of component. - - optional arguments: - -h, --help show this help message and exit - -v, -version show program\'s version number and exit - -p PROJECT_PATH, --project_path PROJECT_PATH - root path of oh. eg: -p ~/oh - -j MODULE_INFO_JSON, --module_info_json MODULE_INFO_JSON + + options: + -h, --help show this help message and exit + -v, -version show program\'s version number and exit + -p PROJECT_PATH, --project_path PROJECT_PATH + root path of openharmony. eg: -p ~/openharmony + -j MODULE_INFO_JSON, --module_info_json MODULE_INFO_JSON path of out/{product_name}/packages/phone/system_module_info.json - -n PRODUCT_NAME, --product_name PRODUCT_NAME + -n PRODUCT_NAME, --product_name PRODUCT_NAME product name. eg: -n rk3568 - -d PRODUCT_DIR, --product_dir PRODUCT_DIR + -d PRODUCT_DIR, --product_dir PRODUCT_DIR subdirectories of out/{product_name}/packages/phone to be counted.eg: -d system -d vendor - -o OUTPUT_FILE, --output_file OUTPUT_FILE + -b, --baseline add baseline of component to the result(-b) or not. + -o OUTPUT_FILE, --output_file OUTPUT_FILE basename of output file, default: rom_analysis_result. eg: demo/rom_analysis_result - -e EXCEL, --excel EXCEL + -e EXCEL, --excel EXCEL if output result as excel, default: False. eg: -e True ``` 1. 使用示例 ```shell - python3 rom_analyzer.py -p ~/nomodify_oh/ -j ../system_module_info.json -n rk3568 -d system -d vendor -d updater -o demo/demo -e True + python3 rom_analyzer.py -p ~/oh/ -j ~/oh/out/rk3568/packages/phone/system_module_info.json -n rk3568 -d system -d vendor -d updater -e True -b # oh:rootpath of oh - # rk3568: product_name, same as out/{product_name} - # demo/demo: path of output file, where the second 'demo' is the basename of output file + # -b: add baseline of to the result # -e True:output result in excel format additionally ``` @@ -67,7 +67,13 @@ 子系统名: { "size": 整个子系统输出文件的总大小(单位:字节), "file_count": 整个子系统产生的文件数, - 输出文件名: 本文件的大小(单位:字节), + 部件名: { + "size": 部件的大小(单位:字节), + "file_count": 部件对应的文件数, + "baseline": 部件的baseline(根据bundle.json生成), + "编译产物文件名": 编译产物大小(单位:字节) + ... + } ... }, ... @@ -76,15 +82,15 @@ ## 附加说明 -1. 由于目前standard产品使用的基本都是自定义的template,能够有效收集更多信息,因此相较于lite_small的分析脚本,本脚本能够具有更高的准确率,请放心使用 +1. 由于目前standard产品使用的基本都是自定义的template,能够有效收集更多信息,因此相较于lite_small的分析脚本,本脚本能够具有更高的准确率,可以放心使用(不出意外的话 # ram_analyzer.py ## 功能介绍 -基于out/{product_name}/packages/phone下所有cfg文件、out/{product_name}/packages/phone/system/profile下所有xml文件,分析各进程及对应部件的ram占用(默认取Pss) +基于out/{product_name}/packages/phone下所有cfg文件、out/{product_name}/packages/phone/system/profile下所有xml文件,rom的分析结果,(rom_ram_baseline.json——可以在rom分析阶段通过-b参数生成)分析各进程及对应部件的ram占用(默认取Pss) -可供参考命令:`mkdir xml && cp $(find ~/oh/out/rk3568/packages/phone/system/profile -name *.xml | xargs) xml` +收集cfg、xml文件的可供参考命令:`mkdir xml && cp $(find ~/oh/out/rk3568/packages/phone/system/profile -name *.xml | xargs) xml` 结果以json与xls格式存储,其中,json格式是必输出的,xls格式需要-e参数控制。 @@ -104,6 +110,7 @@ 5. 准备好相关数据: 1. out/{product_name}/packages/phone下所有cfg文件,并将其放置于同一个目录中(ps:同名文件仅保存一份即可) 1. out/{product_name}/packages/phone/system/profile下所有xml文件 + 1. rom_ram_baseline.json——如果需要在结果中生成基线信息 6. 运行rom_analyzer.py产生的json结果一份(即-o参数对应的文件,默认rom_analysis_result.json) 命令介绍: @@ -111,40 +118,70 @@ 1. 使用`-h`或`--help`查看帮助 ```shell > python .\ram_analyzer.py -h - usage: ram_analyzer.py [-h] [-v] -x XML_PATH -c CFG_PATH [-j ROM_RESULT] -n DEVICE_NUM [-o OUTPUT_FILENAME] [-e EXCEL] - + usage: ram_analyzer.py [-h] [-v] -x XML_PATH -c CFG_PATH [-j ROM_RESULT] -n DEVICE_NUM [-b BASELINE_FILE] + [-o OUTPUT_FILENAME] [-e EXCEL] + analyze ram size of component - + optional arguments: - -h, --help show this help message and exit - -v, -version show program\'s version number and exit - -x XML_PATH, --xml_path XML_PATH - path of xml file. eg: -x ~/oh/out/rk3568/packages/phone/system/profile - -c CFG_PATH, --cfg_path CFG_PATH + -h, --help show this help message and exit + -v, -version show program\'s version number and exit + -x XML_PATH, --xml_path XML_PATH + path of xml file. eg: -x ~/openharmony/out/rk3568/packages/phone/system/profile + -c CFG_PATH, --cfg_path CFG_PATH path of cfg files. eg: -c ./cfgs/ - -j ROM_RESULT, --rom_result ROM_RESULT - json file produced by rom_analyzer_v1.0.py, default: ./rom_analysis_result.json.eg: -j ./demo/rom_analysis_result.json - -n DEVICE_NUM, --device_num DEVICE_NUM + -j ROM_RESULT, --rom_result ROM_RESULT + json file produced by rom_analyzer_v1.0.py, default: ./rom_analysis_result.json.eg: -j + ./demo/rom_analysis_result.json + -n DEVICE_NUM, --device_num DEVICE_NUM device number to be collect hidumper info. eg: -n 7001005458323933328a01fce16d3800 - -o OUTPUT_FILENAME, --output_filename OUTPUT_FILENAME + -b BASELINE_FILE, --baseline_file BASELINE_FILE + baseline file of rom and ram generated by rom analysis. + -o OUTPUT_FILENAME, --output_filename OUTPUT_FILENAME base name of output file, default: ram_analysis_result. eg: -o ram_analysis_result - -e EXCEL, --excel EXCEL + -e EXCEL, --excel EXCEL if output result as excel, default: False. eg: -e True ``` 2. 使用示例: ```shell - python .\ram_analyzer.py -x .\profile\ -c .\init\ -n 7001005458323933328a01fce16d3800 -j .\rom_analysis_result.json -o /demo/demo -e True - # demo/demo: path of output file, where the second 'demo' is the basename of output file - # -e True:output result in excel format additionally + python ram_analyzer.py -x xml -c cfg -j rom_analysis_result.json -n 7001005458323933328a59a140913900 -b rom_ram_baseline.json -e True + # -x xml:指定xml文件的存放路径为xml目录,-c cfg类似 + # -b rom_ram_baseline.json:指定rom与ram的基线信息文件(可在rom统计阶段使用-b参数生成) + # -e True:生成xls格式的结果文件 ``` +3. 生成文件说明: + 1. refactored_ram_analysis_result.json:结果文件 + 1. ram_analysis_result.json:结果文件(供看板使用) + 1. ram_analysis_result.xls:xls格式存储结果文件 + ## 输出格式说明(json) + +1. refactored_ram_analysis_result.json ```json { - 进程名:{ + "子系统名":{ + "size": 子系统下所有进程占用内存的大小(单位:Byte), + "部件名":{ + "size": 部件下所有进程占用内存的大小(单位:Byte), + "进程名":{ + "size": 本进程占用内存的大小(单位:Byte), + "elf":{ + "拉起本进程的二进制文件名": 该二进制文件的大小(单位:Byte), + } + } + } + } +} +``` + +1. ram_analysis_result.json +```json +{ + "进程名":{ "size": 本进程占用内存的大小(单位:字节), - 子系统名: { - 部件名: { - elf文件名: elf文件大小(单位:字节) + "子系统名": { + "部件名": { + "elf文件名": elf文件大小(单位:字节) ... } ... @@ -153,4 +190,9 @@ }, ... } -``` \ No newline at end of file +``` + +## 后续工作 + + +1. 考虑适当简化逻辑 \ No newline at end of file diff --git a/tools/rom_ram_analyzer/standard/pkgs/basic_tool.py b/tools/rom_ram_analyzer/standard/pkgs/basic_tool.py index 96a59ec..22458ef 100644 --- a/tools/rom_ram_analyzer/standard/pkgs/basic_tool.py +++ b/tools/rom_ram_analyzer/standard/pkgs/basic_tool.py @@ -25,6 +25,19 @@ class BasicTool: @classmethod def get_abs_path(cls, path: str) -> str: return os.path.abspath(os.path.expanduser(path)) + + @classmethod + def execute(cls, cmd: str, post_processor: Callable[[Text], Text] = lambda x:x) -> Any: + """ + 封装popen,返回标准输出的列表 + :param post_processor: 对执行结果进行处理 + :param cmd: 待执行的命令 + :return: 经处理过后的字符串列表 + + """ + output = os.popen(cmd).read() + output = post_processor(output) + return output if __name__ == '__main__': diff --git a/tools/rom_ram_analyzer/standard/pkgs/rom_ram_baseline_collector.py b/tools/rom_ram_analyzer/standard/pkgs/rom_ram_baseline_collector.py new file mode 100644 index 0000000..a217950 --- /dev/null +++ b/tools/rom_ram_analyzer/standard/pkgs/rom_ram_baseline_collector.py @@ -0,0 +1,67 @@ + +if __name__ == '__main__': + from basic_tool import BasicTool +else: + from pkgs.basic_tool import BasicTool +from typing import Dict, Any +import unittest +import json +import logging + +class RomRamBaselineCollector: + """collect baseline of rom and ram from bundle.json + """ + @classmethod + def _put(cls, result_dict: Dict, subsystem_name: str, component_name: str, rom_size: str, ram_size: str, bundle_path:str) -> None: + if not result_dict.get(subsystem_name): + result_dict[subsystem_name] = dict() + result_dict[subsystem_name][component_name] = dict() + result_dict[subsystem_name][component_name]["rom"] = rom_size + result_dict[subsystem_name][component_name]["ram"] = ram_size + result_dict[subsystem_name][component_name]["bundle.json"] = bundle_path + + @classmethod + def collect(cls, oh_path: str) -> Dict[str, Dict]: + def post_handler(x:str)->list: + x = x.split("\n") + y = [item for item in x if item] + return y + bundle_list = BasicTool.execute(cmd=f"find {oh_path} -name bundle.json", post_processor=post_handler) + rom_ram_baseline_dict: Dict[str, Dict] = dict() + for bundle in bundle_list: + with open(bundle, 'r', encoding='utf-8') as f: + content: Dict[str, Any] = json.loads(f.read()) + component_info = content.get("component") + if not component_info: + logging.warning(f"{bundle} has no field of 'component'.") + continue + component_name = component_info.get("name") + subsystem_name = component_info.get("subsystem") + rom_baseline = component_info.get("rom") + ram_baseline = component_info.get("ram") + if not (subsystem_name or rom_baseline or ram_baseline): + logging.warning(f"subsystem=\"{subsystem_name}\", rom=\"{rom_baseline}\", ram=\"{ram_baseline}\" in {bundle}") + cls._put(rom_ram_baseline_dict, subsystem_name, component_name, rom_baseline, ram_baseline, bundle) + return rom_ram_baseline_dict + + +class TestRomRamBaselineCollector(unittest.TestCase): + + def test_collect(self): + RomRamBaselineCollector.collect("/mnt/data/aodongbiao/codechecker_oh") + ... + + def test_bundle(self): + def post_handler(x:str)->list: + x = x.split("\n") + y = [item for item in x if item] + return y + oh_path = "/mnt/data/aodongbiao/codechecker_oh" + bundle_list = BasicTool.execute(cmd=f"find {oh_path} -name bundle.json", post_processor=post_handler) + print(bundle_list) + + + +if __name__ == '__main__': + + unittest.main() diff --git a/tools/rom_ram_analyzer/standard/ram_analyzer.py b/tools/rom_ram_analyzer/standard/ram_analyzer.py index 8d98fc4..27f99e5 100644 --- a/tools/rom_ram_analyzer/standard/ram_analyzer.py +++ b/tools/rom_ram_analyzer/standard/ram_analyzer.py @@ -14,7 +14,7 @@ # limitations under the License. # This file is to implement the rom analyzation of standard device. -# +# import argparse import copy @@ -26,6 +26,7 @@ import sys import subprocess import typing import xml.dom.minidom as dom +from typing import Dict from pprint import pprint from pkgs.simple_excel_writer import SimpleExcelWriter @@ -58,7 +59,6 @@ class HDCTool: stderr = str(cp.stderr) return device_num in stderr or device_num in stdout - @classmethod def exec(cls, args: list, output_from: str = "stdout"): cp = subprocess.run(args, capture_output=True) @@ -98,7 +98,7 @@ class RamAnalyzer: @classmethod def __parse_hidumper_mem(cls, content: typing.Text, device_num: str, ss: str = "Pss") -> typing.Dict[ - typing.Text, int]: + typing.Text, int]: """ 解析:hidumper --meme的结果 返回{process_name: pss}形式的字典 @@ -133,26 +133,31 @@ class RamAnalyzer: break if line.isspace(): continue - processed: typing.List[typing.Text] = cls.__hidumper_mem_line_process(line) - if not processed or not processed[0].isnumeric(): # 如果第一列不是数字(pid),就过 + processed: typing.List[typing.Text] = cls.__hidumper_mem_line_process( + line) + # 如果第一列不是数字(pid),就过 + if not processed or not processed[0].isnumeric(): continue name = processed[1] # 否则的话就取名字,和对应的size - size = int(processed[cls.__ss_dict.get(ss)])*1024 # kilo byte to byte + size = int(processed[cls.__ss_dict.get(ss)]) * \ + 1024 # kilo byte to byte full_process_name = find_full_process_name(name) if not full_process_name: - print(f"warning: process \"{full_process_name}\" not found in not found int the result of command \"ps -ef\"") + print( + f"warning: process \"{full_process_name}\" not found in not found int the result of command \"ps -ef\"") continue process_pss_dict[full_process_name] = size return process_pss_dict @classmethod - def process_hidumper_info(cls, device_num: str, ss:str) -> typing.Dict[str, int]: + def process_hidumper_info(cls, device_num: str, ss: str) -> typing.Dict[str, int]: """ 处理进程名与对应进程大小 """ def exec_once() -> typing.Dict[str, int]: - stdout = HDCTool.exec(["hdc", "-t", device_num, "shell", "hidumper", "--mem"]) + stdout = HDCTool.exec( + ["hdc", "-t", device_num, "shell", "hidumper", "--mem"]) name_size_dict = cls.__parse_hidumper_mem(stdout, device_num, ss) return name_size_dict @@ -179,7 +184,8 @@ class RamAnalyzer: process = info.getElementsByTagName("process")[0] process_name = process.childNodes[0].data result_dict[process_name] = list() - libs = info.getElementsByTagName("loadlibs")[0].getElementsByTagName("libpath") + libs = info.getElementsByTagName( + "loadlibs")[0].getElementsByTagName("libpath") for lib in libs: so = lib.childNodes[0].data result_dict.get(process_name).append(os.path.split(so)[-1]) @@ -197,11 +203,14 @@ class RamAnalyzer: rom_info_dict = json.load(f) elf_info_dict: typing.Dict[str, typing.Dict[str, str]] = dict() for subsystem_name in rom_info_dict.keys(): - sub_val_dict: typing.Dict[str, typing.Any] = rom_info_dict.get(subsystem_name) + sub_val_dict: typing.Dict[str, typing.Any] = rom_info_dict.get( + subsystem_name) delete_values_from_dict(sub_val_dict, ["size", "file_count"]) for component_name in sub_val_dict.keys(): - component_val_dict: typing.Dict[str, str] = sub_val_dict.get(component_name) - delete_values_from_dict(component_val_dict, ["size", "file_count"]) + component_val_dict: typing.Dict[str, str] = sub_val_dict.get( + component_name) + delete_values_from_dict(component_val_dict, [ + "size", "file_count"]) for file_name, size in component_val_dict.items(): file_basename: str = os.path.split(file_name)[-1] elf_info_dict[file_basename] = { @@ -228,7 +237,8 @@ class RamAnalyzer: if first.endswith("sa_main"): # 由sa_main去来起进程 xml_base_name = os.path.split(path_list[0])[-1] - cls.__parse_process_xml(os.path.join(profile_path, xml_base_name), result_dict) + cls.__parse_process_xml(os.path.join( + profile_path, xml_base_name), result_dict) else: # 直接执行 if result_dict.get(process_name) is None: @@ -237,7 +247,7 @@ class RamAnalyzer: @classmethod def get_process_so_relationship(cls, xml_path: str, cfg_path: str, profile_path: str) -> typing.Dict[ - str, typing.List[str]]: + str, typing.List[str]]: """ 从out/{product_name}/packages/phone/sa_profile/merged_sa查找xml文件并处理得到进程与so的对应关系 """ @@ -267,54 +277,92 @@ class RamAnalyzer: return process_elf_dict @classmethod - def __save_result_as_excel(cls, data_dict: dict, filename: str, ss: str): + def __save_result_as_excel(cls, data_dict: dict, filename: str, ss: str, baseline_file: str): """ 保存结果到excel中 - 进程名:{ - "size": xxx, - 子系统名:{ - 部件名:{ - 二进制文件: xxx, - ... + 子系统:{ + "size": 1234, + 部件:{ + "size":123, + "base_line":124, + 进程:{ + "size":12, + "elf":{ + "elf_file_1":elf_size, + ... + } } } } """ tmp_dict = copy.deepcopy(data_dict) writer = SimpleExcelWriter("ram_info") - writer.set_sheet_header( - ["process_name", "process_size({}, KB)".format(ss), "subsystem_name","component_name", "elf_name", "elf_size(KB)"]) - process_start_r = 1 - process_end_r = 0 - process_c = 0 - subsystem_c = 2 + header = header = [ + "subsystem_name", "component_name", "component_size(ram, Byte)", "process_name", f"process_size({ss}, Byte)", "elf", "elf_size(Byte)" + ] + if baseline_file: + header = [ + "subsystem_name", "component_name", "component_size(ram, Byte)", "baseline", "process_name", f"process_size({ss}, Byte)", "elf", "elf_size(Byte)" + ] + writer.set_sheet_header(header) + subsystem_c = 0 subsystem_start_r = 1 subsystem_end_r = 0 - process_size_c = 1 + + component_c = 1 component_start_r = 1 component_end_r = 0 - component_c = 3 - for process_name in tmp_dict.keys(): - process_val_dict: typing.Dict[str, typing.Dict[str, int]] = tmp_dict.get(process_name) - process_size = process_val_dict.get("size") - delete_values_from_dict(process_val_dict, ["size"]) - for subsystem_name, subsystem_val_dict in process_val_dict.items(): # 遍历subsystem - for component_name, component_val_dict in subsystem_val_dict.items(): # 遍历component - elf_count_of_component = len(component_val_dict) - for elf_name, size in component_val_dict.items(): # 遍里elf - writer.append_line([process_name, process_size, subsystem_name, component_name, elf_name, "%.2f" % (size / 1024)]) - component_end_r += elf_count_of_component - subsystem_end_r += elf_count_of_component - # 重写component - writer.write_merge(component_start_r, component_c, component_end_r, - component_c, component_name) - component_start_r = component_end_r + 1 - process_end_r += elf_count_of_component - writer.write_merge(subsystem_start_r, subsystem_c, subsystem_end_r, subsystem_c, subsystem_name) - subsystem_start_r = subsystem_end_r+1 - writer.write_merge(process_start_r, process_c, process_end_r, process_c, process_name) - writer.write_merge(process_start_r, process_size_c, process_end_r, process_size_c, process_size) - process_start_r = process_end_r + 1 + component_size_c = 2 + baseline_c = 3 + + process_start_r = 1 + process_end_r = 0 + process_c = 4 + process_size_c = 5 + if not baseline_file: + process_c -= 1 + process_size_c -= 1 + for subsystem_name, subsystem_info in tmp_dict.items(): + subsystem_size = subsystem_info.get("size") + if subsystem_size: + del subsystem_info["size"] + for component_name, component_info in subsystem_info.items(): + component_size = component_info.get("size") + component_baseline = component_info.get("baseline") + if "size" in component_info.keys(): + del component_info["size"] + if "baseline" in component_info.keys(): + del component_info["baseline"] + for process_name, process_info in component_info.items(): + process_size = process_info.get("size") + elf_info = process_info.get("elf") + for elf_name, elf_size in elf_info.items(): + line = [subsystem_name, component_name, component_size, + process_name, process_size, elf_name, elf_size] + if baseline_file: + line = [subsystem_name, component_name, component_size, + component_baseline, process_name, process_size, elf_name, elf_size] + writer.append_line(line) + elf_count = len(elf_info) + process_end_r += elf_count + component_end_r += elf_count + subsystem_end_r += elf_count + writer.write_merge( + process_start_r, process_c, process_end_r, process_c, process_name) + writer.write_merge( + process_start_r, process_size_c, process_end_r, process_size_c, process_size) + process_start_r = process_end_r+1 + writer.write_merge(component_start_r, component_c, + component_end_r, component_c, component_name) + writer.write_merge(component_start_r, component_size_c, + component_end_r, component_size_c, component_size) + if baseline_file: + writer.write_merge(component_start_r, baseline_c, + component_end_r, baseline_c, component_baseline) + component_start_r = component_end_r + 1 + writer.write_merge(subsystem_start_r, subsystem_c, + subsystem_end_r, subsystem_c, subsystem_name) + subsystem_start_r = subsystem_end_r+1 writer.save(filename) @classmethod @@ -328,25 +376,43 @@ class RamAnalyzer: evaluator:评估elf文件的从phone下面开始的路径与service_name的关系,评判如何才是找到了 returns: 是否查找到,elf文件名,部件名,size """ - subsystem_name_list = [subsystem_name] if subsystem_name != "*" else rom_result_dict.keys() + subsystem_name_list = [ + subsystem_name] if subsystem_name != "*" else rom_result_dict.keys() for sn in subsystem_name_list: sub_val_dict = rom_result_dict.get(sn) - component_name_list = [component_name] if component_name != '*' else sub_val_dict.keys() + component_name_list = [ + component_name] if component_name != '*' else sub_val_dict.keys() for cn in component_name_list: if cn == "size" or cn == "file_count": continue - component_val_dict: typing.Dict[str, int] = sub_val_dict.get(cn) + component_val_dict: typing.Dict[str, + int] = sub_val_dict.get(cn) for k, v in component_val_dict.items(): if k == "size" or k == "file_count": continue if not evaluator(service_name, k): continue - return True, os.path.split(k)[-1],sn, cn, v + return True, os.path.split(k)[-1], sn, cn, v return False, str(), str(), str(), int() + @classmethod + def add_baseline(self, refactored_result_dict: Dict, baseline_file: str) -> None: + with open(baseline_file, 'r', encoding='utf-8') as f: + baseline_dict = json.load(f) + for subsystem_name, subsystem_info in refactored_result_dict.items(): + for component_name, component_info in subsystem_info.items(): + if component_name == "size": + continue + if not baseline_dict.get(subsystem_name): + continue + if not baseline_dict[subsystem_name].get(component_name): + continue + component_info["baseline"] = baseline_dict[subsystem_name][component_name].get( + "ram") + @classmethod def analysis(cls, cfg_path: str, xml_path: str, rom_result_json: str, device_num: str, - output_file: str, ss: str, output_excel: bool): + output_file: str, ss: str, output_excel: bool, baseline_file: str): """ process size subsystem/component so so_size """ @@ -364,7 +430,8 @@ class RamAnalyzer: rom_result_json) process_elf_dict: typing.Dict[str, typing.List[str]] = cls.get_process_so_relationship(xml_path, cfg_path, profile_path) - process_size_dict: typing.Dict[str, int] = cls.process_hidumper_info(device_num, ss) + process_size_dict: typing.Dict[str, int] = cls.process_hidumper_info( + device_num, ss) result_dict: typing.Dict[str, typing.Dict[str, typing.Any]] = dict() def get(key: typing.Any, dt: typing.Dict[str, typing.Any]): @@ -379,33 +446,37 @@ class RamAnalyzer: continue # 如果部件是init,特殊处理 if process_name == "init": - _, elf,_, _, size = cls.find_elf_size_from_rom_result(process_name, "startup", "init", - lambda x, y: os.path.split(y)[ - -1].lower() == x.lower(), - rom_result_dict) + _, elf, _, _, size = cls.find_elf_size_from_rom_result(process_name, "startup", "init", + lambda x, y: os.path.split(y)[ + -1].lower() == x.lower(), + rom_result_dict) result_dict[process_name] = dict() result_dict[process_name]["size"] = process_size result_dict[process_name]["startup"] = dict() result_dict[process_name]["startup"]["init"] = dict() - result_dict[process_name]["startup"]["init"][elf if len(elf) != 0 else "UNKNOWN"] = size + result_dict[process_name]["startup"]["init"][elf if len( + elf) != 0 else "UNKNOWN"] = size continue # 如果是hap,特殊处理 if (process_name.startswith("com.") or process_name.startswith("ohos.")): _, hap_name, subsystem_name, component_name, size = cls.find_elf_size_from_rom_result(process_name, "*", "*", - lambda x, y: len( - y.split( - '/')) >= 3 and x.lower().startswith( - y.split('/')[2].lower()), - rom_result_dict) + lambda x, y: len( + y.split( + '/')) >= 3 and x.lower().startswith( + y.split('/')[2].lower()), + rom_result_dict) result_dict[process_name] = dict() result_dict[process_name]["size"] = process_size result_dict[process_name][subsystem_name] = dict() result_dict[process_name][subsystem_name][component_name] = dict() - result_dict[process_name][subsystem_name][component_name][hap_name if len(hap_name) != 0 else "UNKNOWN"] = size + result_dict[process_name][subsystem_name][component_name][hap_name if len( + hap_name) != 0 else "UNKNOWN"] = size continue - so_list: list = get(process_name, process_elf_dict) # 得到进程相关的elf文件list + # 得到进程相关的elf文件list + so_list: list = get(process_name, process_elf_dict) if so_list is None: - print("warning: process '{}' not found in .xml or .cfg".format(process_name)) + print("warning: process '{}' not found in .xml or .cfg".format( + process_name)) result_dict[process_name] = dict() result_dict[process_name]["size"] = process_size result_dict[process_name]["UNKNOWN"] = dict() @@ -420,7 +491,8 @@ class RamAnalyzer: result_dict[process_name]["UNKNOWN"] = dict() result_dict[process_name]["UNKNOWN"]["UNKNOWN"] = dict() result_dict[process_name]["UNKNOWN"]["UNKNOWN"][so] = int() - print("warning: '{}' in {} not found in json from rom analysis result".format(so, process_name)) + print("warning: '{}' in {} not found in json from rom analysis result".format( + so, process_name)) continue component_name = unit.get("component_name") subsystem_name = unit.get("subsystem_name") @@ -434,9 +506,42 @@ class RamAnalyzer: if len(base_dir) != 0 and not os.path.isdir(base_dir): os.makedirs(base_dir, exist_ok=True) with open(output_file + ".json", 'w', encoding='utf-8') as f: - f.write(json.dumps(result_dict, indent=4)) + # f.write(json.dumps(result_dict, indent=4)) + json.dump(result_dict, f, indent=4) + refactored_result: Dict[str, Dict] = refacotr_result(result_dict) + if baseline_file: + cls.add_baseline(refactored_result, baseline_file) + with open(f"refactored_{output_file}.json", 'w', encoding='utf-8') as f: + json.dump(refactored_result, f, indent=4) if output_excel: - cls.__save_result_as_excel(result_dict, output_file + ".xls", ss) + cls.__save_result_as_excel( + refactored_result, output_file + ".xls", ss, baseline_file) + + +def refacotr_result(ram_result: Dict[str, Dict]) -> Dict[str, Dict]: + refactored_ram_dict: Dict[str, Dict] = dict() + for process_name, process_info in ram_result.items(): + process_size = process_info.get("size") + del process_info["size"] + for subsystem_name, subsystem_info in process_info.items(): + for component_name, component_info in subsystem_info.items(): + for elf_name, elf_size in component_info.items(): + if not refactored_ram_dict.get(subsystem_name): + refactored_ram_dict[subsystem_name] = dict() + refactored_ram_dict[subsystem_name]["size"] = 0 + if not refactored_ram_dict[subsystem_name].get(component_name): + refactored_ram_dict[subsystem_name][component_name] = dict( + ) + refactored_ram_dict[subsystem_name][component_name]["size"] = 0 + refactored_ram_dict[subsystem_name][component_name][process_name] = dict( + ) + refactored_ram_dict[subsystem_name][component_name][process_name]["size"] = process_size + refactored_ram_dict[subsystem_name][component_name][process_name]["elf"] = dict( + ) + refactored_ram_dict[subsystem_name][component_name][process_name]["elf"][elf_name] = elf_size + refactored_ram_dict[subsystem_name]["size"] += process_size + refactored_ram_dict[subsystem_name][component_name]["size"] += process_size + return refactored_ram_dict def get_args(): @@ -455,6 +560,8 @@ def get_args(): "eg: -j ./demo/rom_analysis_result.json") parser.add_argument("-n", "--device_num", type=str, required=True, help="device number to be collect hidumper info. eg: -n 7001005458323933328a01fce16d3800") + parser.add_argument("-b", "--baseline_file", type=str, default="", + help="baseline file of rom and ram generated by rom analysis.") parser.add_argument("-o", "--output_filename", default="ram_analysis_result", type=str, help="base name of output file, default: ram_analysis_result. eg: -o ram_analysis_result") parser.add_argument("-e", "--excel", type=bool, default=False, @@ -470,6 +577,7 @@ if __name__ == '__main__': rom_result = args.rom_result device_num = args.device_num output_filename = args.output_filename + baseline_file = args.baseline_file output_excel = args.excel RamAnalyzer.analysis(cfg_path, profile_path, rom_result, - device_num=device_num, output_file=output_filename, ss="Pss", output_excel=output_excel) + device_num=device_num, output_file=output_filename, ss="Pss", output_excel=output_excel, baseline_file=baseline_file) diff --git a/tools/rom_ram_analyzer/standard/rom_analyzer.py b/tools/rom_ram_analyzer/standard/rom_analyzer.py index 698130a..6443340 100644 --- a/tools/rom_ram_analyzer/standard/rom_analyzer.py +++ b/tools/rom_ram_analyzer/standard/rom_analyzer.py @@ -23,6 +23,7 @@ import typing from copy import deepcopy from typing import * +from pkgs.rom_ram_baseline_collector import RomRamBaselineCollector from pkgs.basic_tool import BasicTool from pkgs.gn_common_tool import GnCommonTool from pkgs.simple_excel_writer import SimpleExcelWriter @@ -33,6 +34,7 @@ NOTFOUND = "NOTFOUND" class RomAnalyzer: + @classmethod def __collect_product_info(cls, system_module_info_json: Text, project_path: Text) -> Dict[Text, Dict[Text, Text]]: @@ -72,9 +74,12 @@ class RomAnalyzer: return product_info_dict @classmethod - def __save_result_as_excel(cls, result_dict: dict, output_name: str): + def __save_result_as_excel(cls, result_dict: dict, output_name: str, add_baseline: bool): header = ["subsystem_name", "component_name", "output_file", "size(Byte)"] + if add_baseline: + header = ["subsystem_name", "component_name", "baseline", + "output_file", "size(Byte)"] tmp_dict = deepcopy(result_dict) excel_writer = SimpleExcelWriter("rom") excel_writer.set_sheet_header(headers=header) @@ -84,7 +89,8 @@ class RomAnalyzer: component_start_row = 1 component_end_row = 0 component_col = 1 - + if add_baseline: + baseline_col = 2 for subsystem_name in tmp_dict.keys(): subsystem_dict = tmp_dict.get(subsystem_name) subsystem_size = subsystem_dict.get("size") @@ -98,15 +104,24 @@ class RomAnalyzer: component_name) component_size = component_dict.get("size") component_file_count = component_dict.get("file_count") + baseline = component_dict.get("baseline") del component_dict["file_count"] del component_dict["size"] + if add_baseline: + del component_dict["baseline"] component_end_row += component_file_count for file_name, size in component_dict.items(): - excel_writer.append_line( - [subsystem_name, component_name, file_name, size]) + line = [subsystem_name, component_name, file_name, size] + if add_baseline: + line = [subsystem_name, component_name, + baseline, file_name, size] + excel_writer.append_line(line) excel_writer.write_merge(component_start_row, component_col, component_end_row, component_col, component_name) + if add_baseline: + excel_writer.write_merge(component_start_row, baseline_col, component_end_row, baseline_col, + baseline) component_start_row = component_end_row + 1 excel_writer.write_merge(subsystem_start_row, subsystem_col, subsystem_end_row, subsystem_col, subsystem_name) @@ -114,11 +129,17 @@ class RomAnalyzer: excel_writer.save(output_name + ".xls") @classmethod - def __put(cls, unit: typing.Dict[Text, Any], result_dict: typing.Dict[Text, Dict]): + def __put(cls, unit: typing.Dict[Text, Any], result_dict: typing.Dict[Text, Dict], baseline_dict: Dict[str, Any], add_baseline: bool): + component_name = NOTFOUND if unit.get( "component_name") is None else unit.get("component_name") subsystem_name = NOTFOUND if unit.get( "subsystem_name") is None else unit.get("subsystem_name") + + def get_rom_baseline(): + if (not baseline_dict.get(subsystem_name)) or (not baseline_dict.get(subsystem_name).get(component_name)): + return str() + return baseline_dict.get(subsystem_name).get(component_name).get("rom") size = unit.get("size") relative_filepath = unit.get("relative_filepath") if result_dict.get(subsystem_name) is None: # 子系统 @@ -130,6 +151,10 @@ class RomAnalyzer: result_dict[subsystem_name][component_name] = dict() result_dict[subsystem_name][component_name]["size"] = 0 result_dict[subsystem_name][component_name]["file_count"] = 0 + if add_baseline: + result_dict[subsystem_name][component_name]["baseline"] = get_rom_baseline( + ) + result_dict[subsystem_name]["size"] += size result_dict[subsystem_name]["file_count"] += 1 result_dict[subsystem_name][component_name]["size"] += size @@ -138,7 +163,7 @@ class RomAnalyzer: @classmethod def analysis(cls, system_module_info_json: Text, product_dirs: List[str], - project_path: Text, product_name: Text, output_file: Text, output_execel: bool): + project_path: Text, product_name: Text, output_file: Text, output_execel: bool, add_baseline: bool): """ system_module_info_json: json文件 product_dirs:要处理的产物的路径列表如["vendor", "system/"] @@ -147,6 +172,10 @@ class RomAnalyzer: output_file: basename of output file """ project_path = BasicTool.get_abs_path(project_path) + rom_baseline_dict: Dict[str, Any] = RomRamBaselineCollector.collect( + project_path) + with open("rom_ram_baseline.json", 'w', encoding='utf-8') as f: + json.dump(rom_baseline_dict, f, indent=4) phone_dir = os.path.join( project_path, "out", product_name, "packages", "phone") product_dirs = [os.path.join(phone_dir, d) for d in product_dirs] @@ -164,14 +193,14 @@ class RomAnalyzer: unit = dict() unit["size"] = size unit["relative_filepath"] = relative_filepath - cls.__put(unit, result_dict) + cls.__put(unit, result_dict, rom_baseline_dict, add_baseline) output_dir, _ = os.path.split(output_file) if len(output_dir) != 0: os.makedirs(output_dir, exist_ok=True) with open(output_file + ".json", 'w', encoding='utf-8') as f: f.write(json.dumps(result_dict, indent=4)) if output_execel: - cls.__save_result_as_excel(result_dict, output_file) + cls.__save_result_as_excel(result_dict, output_file, add_baseline) def get_args(): @@ -189,6 +218,8 @@ def get_args(): parser.add_argument("-d", "--product_dir", required=True, action="append", help="subdirectories of out/{product_name}/packages/phone to be counted." "eg: -d system -d vendor") + parser.add_argument("-b", "--baseline", action="store_true", + help="add baseline of component to the result(-b) or not.") parser.add_argument("-o", "--output_file", type=str, default="rom_analysis_result", help="basename of output file, default: rom_analysis_result. eg: demo/rom_analysis_result") parser.add_argument("-e", "--excel", type=bool, default=False, @@ -205,5 +236,6 @@ if __name__ == '__main__': product_dirs = args.product_dir output_file = args.output_file output_excel = args.excel + add_baseline = args.baseline RomAnalyzer.analysis(module_info_json, product_dirs, - project_path, product_name, output_file, output_excel) + project_path, product_name, output_file, output_excel, add_baseline) -- Gitee From 47e5d5816c6fe7c1cd33ab006f441200fc4509aa Mon Sep 17 00:00:00 2001 From: aodongbiao Date: Mon, 8 May 2023 01:49:35 +0000 Subject: [PATCH 021/201] [rom_ram_analyzer]1. delete useless and test code. 2. add copyright header to the new file. 3. format some fiels Signed-off-by: aodongbiao --- .../lite_small/pkgs/basic_tool.py | 53 +------------ .../lite_small/pkgs/gn_common_tool.py | 75 +------------------ .../pkgs/rom_ram_baseline_collector.py | 41 +++++----- .../lite_small/pkgs/simple_excel_writer.py | 12 --- .../lite_small/pkgs/simple_yaml_tool.py | 7 +- .../rom_ram_analyzer/lite_small/src/config.py | 8 +- .../lite_small/src/get_subsystem_component.py | 4 - tools/rom_ram_analyzer/lite_small/src/misc.py | 2 - .../lite_small/src/rom_analysis.py | 30 ++++---- .../pkgs/rom_ram_baseline_collector.py | 54 +++++++------ .../rom_ram_analyzer/standard/ram_analyzer.py | 7 +- .../rom_ram_analyzer/standard/rom_analyzer.py | 6 +- 12 files changed, 69 insertions(+), 230 deletions(-) diff --git a/tools/rom_ram_analyzer/lite_small/pkgs/basic_tool.py b/tools/rom_ram_analyzer/lite_small/pkgs/basic_tool.py index b182b29..26d884c 100644 --- a/tools/rom_ram_analyzer/lite_small/pkgs/basic_tool.py +++ b/tools/rom_ram_analyzer/lite_small/pkgs/basic_tool.py @@ -30,12 +30,6 @@ def get_unit(x: str) -> str: unit = re.search(pattern, x).group() return unit - -class TestGetUnit(unittest.TestCase): - def test_TB(self): - self.assertEqual(get_unit("1TB"), "TB") - - def translate_str_unit(x: str, dest: str, prefix: str = "~") -> float: src_unit = get_unit(x) trans_dict: Dict[str, int] = { @@ -50,10 +44,9 @@ def translate_str_unit(x: str, dest: str, prefix: str = "~") -> float: } if src_unit not in trans_dict.keys(): raise Exception( - f"unsupport unit: {src_unit}. only support {list(trans_dict.keys())}") + f"unsupport unit: {src_unit}. only support {list(trans_dict.keys())}") x = float(x.lstrip(prefix).rstrip(src_unit)) - return round(x*(trans_dict.get(src_unit)/trans_dict.get(dest)),2) - + return round(x*(trans_dict.get(src_unit)/trans_dict.get(dest)), 2) def do_nothing(x: Any) -> Any: @@ -170,45 +163,3 @@ class BasicTool: output = os.popen(cmd).read() output = post_processor(output) return output - - -class TestUnitTrans(unittest.TestCase): - def test_Byte(self): - self.assertEqual(translate_str_unit("~1MB", "KB"), 1024.00) - - # def test_byte(self): - # self.assertEqual(translate_str_unit("1byte"), 1) - - # def test_KB(self): - # self.assertEqual(translate_str_unit("1KB"), 1024) - - # def test_kb(self): - # self.assertEqual(translate_str_unit("1kb"), 1024) - - # def test_MB(self): - # self.assertEqual(translate_str_unit("1MB"), 1024*1024) - - # def test_M(self): - # self.assertEqual(translate_str_unit("1M"), 1024*1024) - - # def test_GB(self): - # self.assertEqual(translate_str_unit("1GB"), 1024*1024*1024) - - # def test_G(self): - # self.assertEqual(translate_str_unit("1G"), 1024*1024*1024) - - # def test_TB(self): - # with self.assertRaises(Exception): - # translate_str_unit("1TB") - - # def test_prefix(self): - # self.assertEqual(translate_str_unit("~1MB"), 1024*1024) - - -if __name__ == '__main__': - # res = BasicTool.grep_ern("^( *)ohos_prebuilt_shared_library", "/home/aodongbiao/oh", include="BUILD.gn", exclude=("/home/aodongbiao/oh/out","doc", ".ccache"), post_handler=lambda x: x.split('\n')) - # for i in res: - # if "oh/out" in i: - # print(i) - - unittest.main() diff --git a/tools/rom_ram_analyzer/lite_small/pkgs/gn_common_tool.py b/tools/rom_ram_analyzer/lite_small/pkgs/gn_common_tool.py index 5293400..35f153b 100644 --- a/tools/rom_ram_analyzer/lite_small/pkgs/gn_common_tool.py +++ b/tools/rom_ram_analyzer/lite_small/pkgs/gn_common_tool.py @@ -204,77 +204,4 @@ class GnVariableParser: result = BasicTool.re_group_1( content, r"{} *= *(\[.*?\])".format(var), flags=re.S | re.M) result = ast.literal_eval(result.strip()) - return result - - -if __name__ == '__main__': - cc = \ - """ - target("shared_library", "mmp"){ - xxx - } - - ohos_shared_library("pinauthservice") { - sources = [ - "//base/useriam/pin_auth/services/modules/driver/src/pin_auth_driver_hdi.cpp", - "//base/useriam/pin_auth/services/modules/driver/src/pin_auth_interface_adapter.cpp", - "//base/useriam/pin_auth/services/modules/executors/src/pin_auth_executor_callback_hdi.cpp", - "//base/useriam/pin_auth/services/modules/executors/src/pin_auth_executor_hdi.cpp", - "//base/useriam/pin_auth/services/modules/inputters/src/i_inputer_data_impl.cpp", - "//base/useriam/pin_auth/services/modules/inputters/src/pin_auth_manager.cpp", - "//base/useriam/pin_auth/services/sa/src/pin_auth_service.cpp", - ] - - configs = [ - ":pin_auth_services_config", - "//base/useriam/user_auth_framework/common:iam_log_config", - "//base/useriam/user_auth_framework/common:iam_utils_config", - ] - - deps = [ - "//base/useriam/pin_auth/frameworks:pinauth_ipc", - "//third_party/openssl:libcrypto_shared", - ] - - external_deps = [ - "access_token:libaccesstoken_sdk", - "c_utils:utils", - "drivers_interface_pin_auth:libpin_auth_proxy_1.0", - "hisysevent_native:libhisysevent", - "hiviewdfx_hilog_native:libhilog", - "ipc:ipc_core", - "safwk:system_ability_fwk", - "user_auth_framework:userauth_executors", - ] - t = [ - 1, - 2, - 3 - ] - tt = [ - aaa, - bbb, - ccc - ] - remove_configs = [ "//build/config/compiler:no_exceptions" ] - - subsystem_name = "useriam" - part_name = "pin_auth" - }""" - s = """ -updater_usb_init_cfg_path = "//base/startup/init/services/etc/init.usb.cfg" -updater_init_usb_configfs_path_cfg = - "//drivers/peripheral/usb/cfg/init.usb.configfs.cfg" -updater_faultloggerd_cfg = -"//base/hiviewdfx/faultloggerd/services/config/faultloggerd.cfg" -updater_hilog_cfg = "//base/hiviewdfx/hilog/services/hilogd/etc/hilogd.cfg" - -ohos_prebuilt_etc("updater_hilog.cfg") { -source = "${updater_hilog_cfg}" -install_images = [ "updater" ] -part_name = "updater" -} -""" - s = "\"${updater_faultloggerd_cfg}\"" - print(GnCommonTool.contains_gn_variable(s)) - ... + return result \ No newline at end of file diff --git a/tools/rom_ram_analyzer/lite_small/pkgs/rom_ram_baseline_collector.py b/tools/rom_ram_analyzer/lite_small/pkgs/rom_ram_baseline_collector.py index a217950..3b4afad 100644 --- a/tools/rom_ram_analyzer/lite_small/pkgs/rom_ram_baseline_collector.py +++ b/tools/rom_ram_analyzer/lite_small/pkgs/rom_ram_baseline_collector.py @@ -1,10 +1,25 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# Copyright (c) 2022 Huawei Device Co., Ltd. +# 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. + +# This file is to collect baseline information (according to bundle.json) if __name__ == '__main__': from basic_tool import BasicTool else: from pkgs.basic_tool import BasicTool from typing import Dict, Any -import unittest import json import logging @@ -42,26 +57,4 @@ class RomRamBaselineCollector: if not (subsystem_name or rom_baseline or ram_baseline): logging.warning(f"subsystem=\"{subsystem_name}\", rom=\"{rom_baseline}\", ram=\"{ram_baseline}\" in {bundle}") cls._put(rom_ram_baseline_dict, subsystem_name, component_name, rom_baseline, ram_baseline, bundle) - return rom_ram_baseline_dict - - -class TestRomRamBaselineCollector(unittest.TestCase): - - def test_collect(self): - RomRamBaselineCollector.collect("/mnt/data/aodongbiao/codechecker_oh") - ... - - def test_bundle(self): - def post_handler(x:str)->list: - x = x.split("\n") - y = [item for item in x if item] - return y - oh_path = "/mnt/data/aodongbiao/codechecker_oh" - bundle_list = BasicTool.execute(cmd=f"find {oh_path} -name bundle.json", post_processor=post_handler) - print(bundle_list) - - - -if __name__ == '__main__': - - unittest.main() + return rom_ram_baseline_dict \ No newline at end of file diff --git a/tools/rom_ram_analyzer/lite_small/pkgs/simple_excel_writer.py b/tools/rom_ram_analyzer/lite_small/pkgs/simple_excel_writer.py index da6f3c6..81f4431 100644 --- a/tools/rom_ram_analyzer/lite_small/pkgs/simple_excel_writer.py +++ b/tools/rom_ram_analyzer/lite_small/pkgs/simple_excel_writer.py @@ -122,15 +122,3 @@ class SimpleExcelWriter: def save(self, file_name: str): self.__book.save(file_name) - - -if __name__ == '__main__': - writer = SimpleExcelWriter(default_sheet_name="first") - writer.add_sheet("second") - writer.add_sheet("third") - writer.set_sheet_header(["h", "m", "n"]) - writer.append_line([1, 2, 3]) - writer.append_line([2, 3, 4], "second") - writer.append_line([3, 4, 5], "third") - writer.append_line([3, 2, 1]) - writer.save("demo.xls") diff --git a/tools/rom_ram_analyzer/lite_small/pkgs/simple_yaml_tool.py b/tools/rom_ram_analyzer/lite_small/pkgs/simple_yaml_tool.py index 32cb530..084e45e 100644 --- a/tools/rom_ram_analyzer/lite_small/pkgs/simple_yaml_tool.py +++ b/tools/rom_ram_analyzer/lite_small/pkgs/simple_yaml_tool.py @@ -24,9 +24,4 @@ class SimpleYamlTool: @classmethod def read_yaml(cls, file_name: str, mode: str = "r", encoding: str = "utf-8") -> Dict: with open(file_name, mode, encoding=encoding) as f: - return yaml.load(f, Loader=SafeLoader) - - -if __name__ == '__main__': - config = SimpleYamlTool.read_yaml("/home/aodongbiao/build_static_check/tools/component_tools/rom_ram_analyzer/src/config.yaml") - print(config["black_grep_dir"]) \ No newline at end of file + return yaml.load(f, Loader=SafeLoader) \ No newline at end of file diff --git a/tools/rom_ram_analyzer/lite_small/src/config.py b/tools/rom_ram_analyzer/lite_small/src/config.py index b187bb1..a8f786a 100644 --- a/tools/rom_ram_analyzer/lite_small/src/config.py +++ b/tools/rom_ram_analyzer/lite_small/src/config.py @@ -243,10 +243,4 @@ collector_config: Tuple[BaseProcessor] = ( ) ) -__all__ = ["configs", "result_dict", "collector_config", "sub_com_dict"] - -if __name__ == '__main__': - for c in collector_config: - c.run() - with open("demo.json", 'w', encoding='utf-8') as f: - json.dump(result_dict, f) +__all__ = ["configs", "result_dict", "collector_config", "sub_com_dict"] \ No newline at end of file diff --git a/tools/rom_ram_analyzer/lite_small/src/get_subsystem_component.py b/tools/rom_ram_analyzer/lite_small/src/get_subsystem_component.py index de9fee6..2620c7f 100644 --- a/tools/rom_ram_analyzer/lite_small/src/get_subsystem_component.py +++ b/tools/rom_ram_analyzer/lite_small/src/get_subsystem_component.py @@ -139,7 +139,3 @@ class SC: __all__ = ["SC"] - -if __name__ == '__main__': - ohos_path, output_path = parse_args() - SC.run(ohos_path, output_path) diff --git a/tools/rom_ram_analyzer/lite_small/src/misc.py b/tools/rom_ram_analyzer/lite_small/src/misc.py index 79af85b..e31a1f0 100644 --- a/tools/rom_ram_analyzer/lite_small/src/misc.py +++ b/tools/rom_ram_analyzer/lite_small/src/misc.py @@ -34,8 +34,6 @@ _config = SimpleYamlTool.read_yaml("config.yaml") """ ===============info handlers=============== """ - - def extension_handler(paragraph: Text): return GnVariableParser.string_parser("output_extension", paragraph).strip('"') diff --git a/tools/rom_ram_analyzer/lite_small/src/rom_analysis.py b/tools/rom_ram_analyzer/lite_small/src/rom_analysis.py index ab90aff..94eac36 100644 --- a/tools/rom_ram_analyzer/lite_small/src/rom_analysis.py +++ b/tools/rom_ram_analyzer/lite_small/src/rom_analysis.py @@ -88,7 +88,7 @@ class RomAnalysisTool: if (not sub_path) or (os.sep not in sub_path): return # 将其他目录添加到dir_list - t, sub_sub_path = sub_path.split(os.sep, 1) # 如果是c/e,分割成c,e + t, sub_sub_path = sub_path.split(os.sep, 1) # 如果是c/e,分割成c,e t = os.path.join(rela_path, t) if t in dir_list: dir_list.remove(t) @@ -107,7 +107,7 @@ class RomAnalysisTool: logging.error( f"product_name '{product_name}' not found in the config.yaml") exit(1) - product_path_dit: Dict[str, str] = dict() # 存储编译产物的类型及目录 + product_path_dit: Dict[str, str] = dict() # 存储编译产物的类型及目录 root_dir = product_dir.get("root") root_dir = os.path.join(project_path, root_dir) relative_dir: Dict[str, str] = product_dir.get("relative") @@ -120,14 +120,14 @@ class RomAnalysisTool: product_path_dit[k] = os.path.join(root_dir, v) # 查找编译产物信息 # product_dict格式: {"so": ["a.so", "b.so"]} - product_dict: Dict[str, List[str]] = dict() # 存储编译产物的名称 + product_dict: Dict[str, List[str]] = dict() # 存储编译产物的名称 for k, v in product_path_dit.items(): if not os.path.exists(v): logging.warning(f"dir '{v}' not exist") - product_dict[k] = BasicTool.find_files_with_pattern(v) # v是全路径 + product_dict[k] = BasicTool.find_files_with_pattern(v) # v是全路径 if product_dir.get("rest"): rest_dir_list: List[str] = os.listdir( - root_dir) # 除了配置在relative下之外的所有剩余目录,全部归到etc下 + root_dir) # 除了配置在relative下之外的所有剩余目录,全部归到etc下 for v in relative_dir.values(): if v in rest_dir_list: rest_dir_list.remove(v) @@ -152,14 +152,14 @@ class RomAnalysisTool: @classmethod def _put(cls, sub: str, com: str, unit: Dict, rom_size_dict: Dict, com_size_baseline: str = str()): size = unit.get("size") - if not rom_size_dict.get("size"): # 总大小 + if not rom_size_dict.get("size"): # 总大小 rom_size_dict["size"] = 0 - if not rom_size_dict.get(sub): # 子系统大小 + if not rom_size_dict.get(sub): # 子系统大小 rom_size_dict[sub]: Dict[str, Dict] = dict() rom_size_dict[sub]["size"] = 0 rom_size_dict[sub]["count"] = 0 - if not rom_size_dict.get(sub).get(com): # 部件 + if not rom_size_dict.get(sub).get(com): # 部件 rom_size_dict.get(sub)[com] = dict() rom_size_dict[sub][com]["filelist"] = list() rom_size_dict[sub][com]["size"] = 0 @@ -306,10 +306,10 @@ class RomAnalysisTool: gn_info = json.load(f) query_order: Dict[str, List[str] ] = configs[product_name]["query_order"] - query_order["etc"] = configs["target_type"] # etc会查找所有的template + query_order["etc"] = configs["target_type"] # etc会查找所有的template rom_size_dict: Dict = dict() for t, l in product_dict.items(): - for f in l: # 遍历所有文件 + for f in l: # 遍历所有文件 if os.path.isdir(f): continue find_flag = False @@ -320,11 +320,11 @@ class RomAnalysisTool: logging.warning( f"'{t}' not found in query_order of the config.yaml") break - for tn in type_list: # tn example: ohos_shared_library - if find_flag: # 如果已经在前面的template中找到了,后面的就不必再查找 + for tn in type_list: # tn example: ohos_shared_library + if find_flag: # 如果已经在前面的template中找到了,后面的就不必再查找 break output_dict: Dict[str, Dict] = gn_info.get( - tn) # 这个模板对应的所有可能编译产物 + tn) # 这个模板对应的所有可能编译产物 if not output_dict: logging.warning( f"'{tn}' not found in the {gn_info_file}") @@ -342,7 +342,7 @@ class RomAnalysisTool: if d["component_name"] == "unionman_products": print(d) find_flag = True - if not find_flag: # 如果指定序列中的template都没有查找到,则模糊匹配 + if not find_flag: # 如果指定序列中的template都没有查找到,则模糊匹配 # fuzzy match psesudo_gn, sub, com = cls._fuzzy_match(f) if sub and com: @@ -358,7 +358,7 @@ class RomAnalysisTool: "size": size, }, rom_size_dict, component_rom_baseline) find_flag = True - if not find_flag: # 模糊匹配都没有匹配到的,归属到NOTFOUND + if not find_flag: # 模糊匹配都没有匹配到的,归属到NOTFOUND cls._put("NOTFOUND", "NOTFOUND", { "file_name": f.replace(project_path, ""), "size": size, diff --git a/tools/rom_ram_analyzer/standard/pkgs/rom_ram_baseline_collector.py b/tools/rom_ram_analyzer/standard/pkgs/rom_ram_baseline_collector.py index a217950..b614451 100644 --- a/tools/rom_ram_analyzer/standard/pkgs/rom_ram_baseline_collector.py +++ b/tools/rom_ram_analyzer/standard/pkgs/rom_ram_baseline_collector.py @@ -1,18 +1,35 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# Copyright (c) 2022 Huawei Device Co., Ltd. +# 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. + +# This file is to collect baseline information (according to bundle.json) + if __name__ == '__main__': from basic_tool import BasicTool else: from pkgs.basic_tool import BasicTool from typing import Dict, Any -import unittest import json import logging + class RomRamBaselineCollector: """collect baseline of rom and ram from bundle.json """ @classmethod - def _put(cls, result_dict: Dict, subsystem_name: str, component_name: str, rom_size: str, ram_size: str, bundle_path:str) -> None: + def _put(cls, result_dict: Dict, subsystem_name: str, component_name: str, rom_size: str, ram_size: str, bundle_path: str) -> None: if not result_dict.get(subsystem_name): result_dict[subsystem_name] = dict() result_dict[subsystem_name][component_name] = dict() @@ -22,11 +39,12 @@ class RomRamBaselineCollector: @classmethod def collect(cls, oh_path: str) -> Dict[str, Dict]: - def post_handler(x:str)->list: + def post_handler(x: str) -> list: x = x.split("\n") y = [item for item in x if item] return y - bundle_list = BasicTool.execute(cmd=f"find {oh_path} -name bundle.json", post_processor=post_handler) + bundle_list = BasicTool.execute( + cmd=f"find {oh_path} -name bundle.json", post_processor=post_handler) rom_ram_baseline_dict: Dict[str, Dict] = dict() for bundle in bundle_list: with open(bundle, 'r', encoding='utf-8') as f: @@ -40,28 +58,8 @@ class RomRamBaselineCollector: rom_baseline = component_info.get("rom") ram_baseline = component_info.get("ram") if not (subsystem_name or rom_baseline or ram_baseline): - logging.warning(f"subsystem=\"{subsystem_name}\", rom=\"{rom_baseline}\", ram=\"{ram_baseline}\" in {bundle}") - cls._put(rom_ram_baseline_dict, subsystem_name, component_name, rom_baseline, ram_baseline, bundle) + logging.warning( + f"subsystem=\"{subsystem_name}\", rom=\"{rom_baseline}\", ram=\"{ram_baseline}\" in {bundle}") + cls._put(rom_ram_baseline_dict, subsystem_name, + component_name, rom_baseline, ram_baseline, bundle) return rom_ram_baseline_dict - - -class TestRomRamBaselineCollector(unittest.TestCase): - - def test_collect(self): - RomRamBaselineCollector.collect("/mnt/data/aodongbiao/codechecker_oh") - ... - - def test_bundle(self): - def post_handler(x:str)->list: - x = x.split("\n") - y = [item for item in x if item] - return y - oh_path = "/mnt/data/aodongbiao/codechecker_oh" - bundle_list = BasicTool.execute(cmd=f"find {oh_path} -name bundle.json", post_processor=post_handler) - print(bundle_list) - - - -if __name__ == '__main__': - - unittest.main() diff --git a/tools/rom_ram_analyzer/standard/ram_analyzer.py b/tools/rom_ram_analyzer/standard/ram_analyzer.py index 27f99e5..d180be7 100644 --- a/tools/rom_ram_analyzer/standard/ram_analyzer.py +++ b/tools/rom_ram_analyzer/standard/ram_analyzer.py @@ -138,9 +138,9 @@ class RamAnalyzer: # 如果第一列不是数字(pid),就过 if not processed or not processed[0].isnumeric(): continue - name = processed[1] # 否则的话就取名字,和对应的size + name = processed[1] # 否则的话就取名字,和对应的size size = int(processed[cls.__ss_dict.get(ss)]) * \ - 1024 # kilo byte to byte + 1024 # kilo byte to byte full_process_name = find_full_process_name(name) if not full_process_name: print( @@ -440,7 +440,7 @@ class RamAnalyzer: # 要么uinput_inject的对应key为mmi_uinput_inject。对于此类特殊处理,即:如果service_name找不到,但是直接执行的bin等于这个名字,也认为找到 return v - for process_name, process_size in process_size_dict.items(): # 从进程出发 + for process_name, process_size in process_size_dict.items(): # 从进程出发 if not process_name: print("warning: an empty 'process_name' has been found.") continue @@ -506,7 +506,6 @@ class RamAnalyzer: if len(base_dir) != 0 and not os.path.isdir(base_dir): os.makedirs(base_dir, exist_ok=True) with open(output_file + ".json", 'w', encoding='utf-8') as f: - # f.write(json.dumps(result_dict, indent=4)) json.dump(result_dict, f, indent=4) refactored_result: Dict[str, Dict] = refacotr_result(result_dict) if baseline_file: diff --git a/tools/rom_ram_analyzer/standard/rom_analyzer.py b/tools/rom_ram_analyzer/standard/rom_analyzer.py index 6443340..c269c09 100644 --- a/tools/rom_ram_analyzer/standard/rom_analyzer.py +++ b/tools/rom_ram_analyzer/standard/rom_analyzer.py @@ -142,12 +142,12 @@ class RomAnalyzer: return baseline_dict.get(subsystem_name).get(component_name).get("rom") size = unit.get("size") relative_filepath = unit.get("relative_filepath") - if result_dict.get(subsystem_name) is None: # 子系统 + if result_dict.get(subsystem_name) is None: # 子系统 result_dict[subsystem_name] = dict() result_dict[subsystem_name]["size"] = 0 result_dict[subsystem_name]["file_count"] = 0 - if result_dict.get(subsystem_name).get(component_name) is None: # 部件 + if result_dict.get(subsystem_name).get(component_name) is None: # 部件 result_dict[subsystem_name][component_name] = dict() result_dict[subsystem_name][component_name]["size"] = 0 result_dict[subsystem_name][component_name]["file_count"] = 0 @@ -180,7 +180,7 @@ class RomAnalyzer: project_path, "out", product_name, "packages", "phone") product_dirs = [os.path.join(phone_dir, d) for d in product_dirs] product_info_dict = cls.__collect_product_info( - system_module_info_json, project_path) # 所有产物信息 + system_module_info_json, project_path) # 所有产物信息 result_dict: Dict[Text:Dict] = dict() for d in product_dirs: file_list: List[Text] = BasicTool.find_all_files(d) -- Gitee From d201d524e92d5fbdf12f7f78a93794ed6989016e Mon Sep 17 00:00:00 2001 From: aodongbiao Date: Mon, 8 May 2023 02:14:15 +0000 Subject: [PATCH 022/201] [rom_ram_analyzer]change copyright 2022 to 2023 Signed-off-by: aodongbiao --- .../lite_small/pkgs/rom_ram_baseline_collector.py | 2 +- .../standard/pkgs/rom_ram_baseline_collector.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/rom_ram_analyzer/lite_small/pkgs/rom_ram_baseline_collector.py b/tools/rom_ram_analyzer/lite_small/pkgs/rom_ram_baseline_collector.py index 3b4afad..32dd3af 100644 --- a/tools/rom_ram_analyzer/lite_small/pkgs/rom_ram_baseline_collector.py +++ b/tools/rom_ram_analyzer/lite_small/pkgs/rom_ram_baseline_collector.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- -# Copyright (c) 2022 Huawei Device Co., Ltd. +# Copyright (c) 2023 Huawei Device Co., Ltd. # 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 diff --git a/tools/rom_ram_analyzer/standard/pkgs/rom_ram_baseline_collector.py b/tools/rom_ram_analyzer/standard/pkgs/rom_ram_baseline_collector.py index b614451..af25f71 100644 --- a/tools/rom_ram_analyzer/standard/pkgs/rom_ram_baseline_collector.py +++ b/tools/rom_ram_analyzer/standard/pkgs/rom_ram_baseline_collector.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- -# Copyright (c) 2022 Huawei Device Co., Ltd. +# Copyright (c) 2023 Huawei Device Co., Ltd. # 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 -- Gitee From f67785ee4e4817ec9d2b84db071f3d0bc2a47f88 Mon Sep 17 00:00:00 2001 From: liujiahui Date: Mon, 8 May 2023 09:50:44 +0800 Subject: [PATCH 023/201] feat:add rk3568_chipset_only test Signed-off-by: liujiahui --- .../mini_system/rk3568_chipset_only_test.py | 207 ++++++++++++++++++ 1 file changed, 207 insertions(+) create mode 100644 cases/daily/mini_system/rk3568_chipset_only_test.py diff --git a/cases/daily/mini_system/rk3568_chipset_only_test.py b/cases/daily/mini_system/rk3568_chipset_only_test.py new file mode 100644 index 0000000..04e4694 --- /dev/null +++ b/cases/daily/mini_system/rk3568_chipset_only_test.py @@ -0,0 +1,207 @@ +# Copyright (c) 2023 Huawei Device Co., Ltd. +# 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. + +from ast import parse +import json +import sys +import os +import time +import argparse +import re +import subprocess +import shlex +import datetime + +def GetDirSize(dir_path): + if not os.path.exists(dir_path): + PrintToLog("\n\nERROR: %s, dir are not exist!!!\n" % dir_path) + PrintToLog("End of check, test failed!") + sys.exit(99) + size = 0 + for root, dirs, files in os.walk(dir_path): + for name in files: + if not os.path.islink(os.path.join(root, name)): + sz = os.path.getsize(os.path.join(root, name)) + #print('{} : {}byte'.format(os.path.join(root, name), sz)) + size += sz + PrintToLog('total size: {:.2f}M'.format(size/1024/1024)) + return size + +def PrintToLog(str): + time = datetime.datetime.now() + str = "[{}] {}".format(time, str) + print(str) + with open(os.path.join(args.save_path, 'L2_mini_test_{}.log'.format(args.device_num)), mode='a', encoding='utf-8') as log_file: + console = sys.stdout + sys.stdout = log_file + print(str) + sys.stdout = console + log_file.close() + +def EnterCmd(mycmd, waittime = 0, printresult = 1): + if mycmd == "": + return + global CmdRetryCnt + CmdRetryCnt = 1 + EnterCmdRetry = 2 + while EnterCmdRetry: + EnterCmdRetry -= 1 + try: + p = subprocess.Popen(mycmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + result, unused_err = p.communicate(timeout=25) + try: + result=result.decode(encoding="utf-8") + except UnicodeDecodeError: + result=result.decode('gbk', errors='ignore') + break + except Exception as e: + result = 'retry failed again' + PrintToLog(e) + CmdRetryCnt += 1 + p.kill() + if printresult == 1: + with open(os.path.join(args.save_path, 'mini_test_{}.bat'.format(args.device_num)), mode='a', encoding='utf-8') as cmd_file: + cmd_file.write(mycmd + '\n') + cmd_file.close() + PrintToLog(mycmd) + PrintToLog(result) + sys.stdout.flush() + if waittime != 0: + time.sleep(waittime) + if printresult == 1: + with open(os.path.join(args.save_path, 'mini_test_{}.bat'.format(args.device_num)), mode='a', encoding='utf-8') as cmd_file: + cmd_file.write("ping -n {} 127.0.0.1>null\n".format(waittime)) + cmd_file.close() + return result + +def EnterShellCmd(shellcmd, waittime = 0, printresult = 1): + if shellcmd == "": + return + cmd = "hdc_std -t {} shell \"{}\"".format(args.device_num, shellcmd) + return EnterCmd(cmd, waittime, printresult) + +if __name__ == "__main__": + parser = argparse.ArgumentParser(description='manual to this script') + parser.add_argument('--save_path', type=str, default = 'D:\\DeviceTestTools\\screenshot') + parser.add_argument('--device_num', type=str, default = 'null') + parser.add_argument('--archive_path', type=str, default = 'Z:\workspace\ohos_L2\ohos\out\\rk3568\packages\phone') + args = parser.parse_args() + + if args.device_num == 'null': + result = EnterCmd("hdc_std list targets", 1, 0) + print(result) + args.device_num = result.split()[0] + + PrintToLog("\n\n########## First check key processes start ##############") + lose_process = [] + process_pid = {} + + two_check_process_list = ['huks_service', 'hilogd', 'hdf_devmgr', 'samgr', 'foundation', 'accesstoken_ser'] + other_process_list = ['softbus_server', 'deviceauth_service'] + + for pname in two_check_process_list: + pids = EnterCmd("hdc_std -t {} shell pidof {}".format(args.device_num, pname), 0, 1) + try: + pidlist = pids.split() + int(pidlist[0]) + for pid in pidlist: + int(pid) + process_pid[pname] = pidlist + except: + lose_process.append(pname) + all_p = EnterShellCmd("ps -elf") + for pname in other_process_list: + findp = all_p.find(pname, 0, len(all_p)) + if findp == -1: + lose_process.append(pname) + + if lose_process: + PrintToLog("\n\nERROR: %s, These processes are not exist!!!\n" % lose_process) + PrintToLog("End of check, test failed!") + sys.exit(99) + else: + PrintToLog("First processes check is ok\n") + + time.sleep(10) + + # key processes second check, and cmp to first check + PrintToLog("\n\n########## Second check key processes start ##############") + second_check_lose_process = [] + # for pname in two_check_process_list + other_process_list: + for pname in two_check_process_list: + pids = EnterCmd("hdc_std -t {} shell pidof {}".format(args.device_num, pname), 0, 1) + try: + pidlist = pids.split() + if process_pid[pname] != pidlist: + if pname in two_check_process_list: + PrintToLog("ERROR: pid of %s is different the first check" % pname) + PrintToLog("SmokeTest find some fatal problems!") + PrintToLog("End of check, test failed!") + sys.exit(99) + else: + PrintToLog("WARNNING: pid of %s is different the first check" % pname) + elif len(pidlist) != 1: + if pname in two_check_process_list: + PrintToLog("ERROR: pid of %s is not only one" % pname) + PrintToLog("SmokeTest find some fatal problems!") + PrintToLog("End of check, test failed!") + sys.exit(99) + else: + PrintToLog("WARNNING: pid of %s is not only one" % pname) + except: + second_check_lose_process.append(pname) + + if second_check_lose_process: + PrintToLog("ERROR: pid of %s is not exist" % pname) + PrintToLog("SmokeTest find some fatal problems!") + PrintToLog("End of check, test failed!") + sys.exit(99) + else: + PrintToLog("Second processes check is ok\n") + + target_dir = os.path.normpath(os.path.join(args.archive_path, "system")) + PrintToLog(target_dir) + ret_size = GetDirSize(target_dir)/1024/1024 + PrintToLog('Size of system is :{:.2f}M'.format(ret_size)) + if ret_size > 50: + PrintToLog('ERROR: Size of system({:.2f}M) is over the upper limit(50M)'.format(ret_size)) + PrintToLog("End of check, test failed!") + sys.exit(99) + + target_dir = os.path.normpath(os.path.join(args.archive_path, "data")) + ret_size = GetDirSize(target_dir)/1024/1024 + PrintToLog('Size of data is :{:.2f}M'.format(ret_size)) + if ret_size > 50: + PrintToLog('ERROR: Size of data({:.2f}M) is over the upper limit(50M)'.format(ret_size)) + PrintToLog("End of check, test failed!") + sys.exit(99) + + target_dir = os.path.normpath(os.path.join(args.archive_path, "updater")) + ret_size = GetDirSize(target_dir)/1024/1024 + PrintToLog('Size of updater is :{:.2f}M'.format(ret_size)) + if ret_size > 50: + PrintToLog('ERROR: Size of updater({:.2f}M) is over the upper limit(50M)'.format(ret_size)) + PrintToLog("End of check, test failed!") + sys.exit(99) + + target_dir = os.path.normpath(os.path.join(args.archive_path, "vendor")) + ret_size = GetDirSize(target_dir)/1024/1024 + PrintToLog('Size of vendor is :{:.2f}M'.format(ret_size)) + if ret_size > 50: + PrintToLog('ERROR: Size of vendor({:.2f}M) is over the upper limit(50M)'.format(ret_size)) + PrintToLog("End of check, test failed!") + sys.exit(99) + + PrintToLog("All testcase is ok") + PrintToLog("End of check, test succeeded!") + sys.exit(0) -- Gitee From 69abdf1ab1963a5fe32f1e5bd7354da7d56ad512 Mon Sep 17 00:00:00 2001 From: cheng_jinsong Date: Mon, 8 May 2023 17:41:10 +0800 Subject: [PATCH 024/201] =?UTF-8?q?=E5=90=AF=E5=8A=A8=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E6=A3=80=E6=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: cheng_jinsong --- tools/deps_guard/deps_guard.py | 19 +- tools/startup_guard/README.md | 10 + .../config_parser_mgr/__init__.py | 19 + .../config_parser_mgr/cfg/config_parser.py | 519 ++++++++++++++++++ .../config_parser_mgr/config_parser_mgr.py | 50 ++ .../param/system_parameter_parser.py | 165 ++++++ .../rules/NO-Config-Cmds-In-Init/README.md | 27 + .../NO-Config-Cmds-In-Init/whitelist.json | 54 ++ .../README.md | 17 + .../whitelist.json | 375 +++++++++++++ .../startup_guard/startup_checker/__init__.py | 44 ++ .../startup_checker/base_rule.py | 69 +++ .../startup_checker/cmds_rule.py | 133 +++++ .../startup_checker/system_parameter_rules.py | 68 +++ tools/startup_guard/startup_guard.py | 48 ++ 15 files changed, 1616 insertions(+), 1 deletion(-) create mode 100755 tools/startup_guard/README.md create mode 100644 tools/startup_guard/config_parser_mgr/__init__.py create mode 100644 tools/startup_guard/config_parser_mgr/cfg/config_parser.py create mode 100644 tools/startup_guard/config_parser_mgr/config_parser_mgr.py create mode 100644 tools/startup_guard/config_parser_mgr/param/system_parameter_parser.py create mode 100755 tools/startup_guard/rules/NO-Config-Cmds-In-Init/README.md create mode 100755 tools/startup_guard/rules/NO-Config-Cmds-In-Init/whitelist.json create mode 100755 tools/startup_guard/rules/NO-Config-SystemParameter-In-INIT/README.md create mode 100755 tools/startup_guard/rules/NO-Config-SystemParameter-In-INIT/whitelist.json create mode 100755 tools/startup_guard/startup_checker/__init__.py create mode 100755 tools/startup_guard/startup_checker/base_rule.py create mode 100644 tools/startup_guard/startup_checker/cmds_rule.py create mode 100644 tools/startup_guard/startup_checker/system_parameter_rules.py create mode 100755 tools/startup_guard/startup_guard.py diff --git a/tools/deps_guard/deps_guard.py b/tools/deps_guard/deps_guard.py index fbd7e02..5572aab 100755 --- a/tools/deps_guard/deps_guard.py +++ b/tools/deps_guard/deps_guard.py @@ -34,7 +34,7 @@ def __createArgParser(): return parser -def deps_guard(out_path, args=None): +def _deps_guard_module(out_path, args=None): mgr = ElfFileMgr(out_path) mgr.scan_all_files() @@ -47,6 +47,23 @@ def deps_guard(out_path, args=None): raise Exception("ERROR: deps_guard failed.") +def _startup_guard_module(out_path, args): + import sys + import os + for path in sys.path: + if path.endswith("developtools/integration_verification/tools/deps_guard"): + sys.path.append(os.path.join( + path, "../startup_guard")) + break + + from startup_guard import startup_guard + + startup_guard(out_path, args) + +def deps_guard(out_path, args=None): + _deps_guard_module(out_path, args) + _startup_guard_module(out_path, args) + if __name__ == '__main__': parser = __createArgParser() diff --git a/tools/startup_guard/README.md b/tools/startup_guard/README.md new file mode 100755 index 0000000..68dae13 --- /dev/null +++ b/tools/startup_guard/README.md @@ -0,0 +1,10 @@ +# 启动资源管控 + +启动资源管控是对启动过程中配置文件(\*.cfg)和系统参数配置文件(\*.para", \*.para.dac)的管控, 约束各子模块的启动资源配置。通过对OpenHarmony镜像中的启动配置文件(\*.cfg)和系统参数配置文件(\*.para", \*.para.dac), 通过对白名单的检查, 完成对启动资源的管控。 + +支持的拦截规则如下: + +| 规则名 | 规则说明 | +| -------------------------------------------------------- | ------------------------------------------------------------ | +| [NO-Config-Cmds-In-Init](rules/NO-Config-Cmds-In-Init/README.md) | 所有启动配置文件cmd管控 | +| [NO-Config-SystemParameter-In-INIT](rules/NO-Config-SystemParameter-In-INIT/README.md) | 所有系统参数管控 | diff --git a/tools/startup_guard/config_parser_mgr/__init__.py b/tools/startup_guard/config_parser_mgr/__init__.py new file mode 100644 index 0000000..065104e --- /dev/null +++ b/tools/startup_guard/config_parser_mgr/__init__.py @@ -0,0 +1,19 @@ +#!/usr/bin/env python +#coding=utf-8 + +# +# Copyright (c) 2023 Huawei Device Co., Ltd. +# 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. +# + +from .config_parser_mgr import ConfigParserMgr diff --git a/tools/startup_guard/config_parser_mgr/cfg/config_parser.py b/tools/startup_guard/config_parser_mgr/cfg/config_parser.py new file mode 100644 index 0000000..299a805 --- /dev/null +++ b/tools/startup_guard/config_parser_mgr/cfg/config_parser.py @@ -0,0 +1,519 @@ +#!/usr/bin/env python +#coding=utf-8 + +# +# Copyright (c) 2023 Huawei Device Co., Ltd. +# 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. +# + +import os +import json +import pprint + +def _create_arg_parser(): + import argparse + parser = argparse.ArgumentParser(description='Collect init config information from xxxx/etc/init dir.') + parser.add_argument('-i', '--input', + help='input init config files base directory example "out/rk3568/packages/phone/" ', + action='append', required=True) + + parser.add_argument('-o', '--output', + help='output init config information database directory', required=False) + parser.add_argument('-b', '--bootevent', + help='input bootevent file from system ', required=False) + return parser + +class ItemParser(dict): + def __init__(self, config): + self._config_parser = config + self["name"] = "" + def create(self, json_node, parent = None, fileId = None): + return + + def update(self, json_node, parent = None, fileId = None): + return + + def get_name(self): + return self["name"] + + def get(self, key): + if self.__contains__(key): + return self[key] + return None + + # get value form json array + def get_strings_value(self, jsonStrArray): + if jsonStrArray == None or len(jsonStrArray) == 0: + return "" + + string = jsonStrArray[0] + for i in range(1, len(jsonStrArray)): + string = string + "@" + jsonStrArray[i] + return string + +class CmdParser(ItemParser): + def __init__(self, config): + ItemParser.__init__(self, config) + self["content"] = "" + self["fileId"] = -1 + + def create(self, json_node, parent = None, fileId = None): + assert(isinstance(json_node, str)) + assert(parent != None) + info = json_node.partition(" ") # 取第一个空格分割 + self["name"] = info[0] + self["jobId"] = parent.get("jobId") + if fileId: + self["fileId"] = fileId + if len(info) > 2: + self["content"] = info[2] + #print("Create cmd %s %d" % (self["name"], self["fileId"])) + return + + def __str__(self): + return "cmd \"%s\" content \"%s\" " % (self["name"], self["content"]) + +class JobParser(ItemParser): + def __init__(self, config): + ItemParser.__init__(self, config) + self["condition"] = "" + self["serviceId"] = -1 + self["fileId"] = -1 + self["jobPriority"] = -1 + self["jobPriority"] = -1 + self["executionTime"] = 0 + + def _add_cmds(self, cmdList, fileId): + for cmd in cmdList: + self._config_parser.add_cmd(cmd, self, fileId) + + def create(self, json_node, parent = None, fileId = None): + assert(isinstance(json_node, dict)) + self["name"] = json_node["name"] + self["jobId"] = self._config_parser.get_job_id() + #print("JobParser %s %d" % (json_node["name"], fileId)) + self["jobPriority"] = self._config_parser.get_job_priority(json_node["name"]) + + if fileId and self["fileId"] is None: + self["fileId"] = fileId + if parent != None: + self["serviceId"] = parent.get("serviceId") + + if json_node.__contains__("condition"): + self["condition"] = json_node.get("condition") + if json_node.__contains__("cmds"): + self._add_cmds(json_node.get("cmds"), fileId) + + return + + def update(self, json_node, parent = None, fileId = None): + assert(isinstance(json_node, dict)) + if parent != None: + self["serviceId"] = parent.get("serviceId") + if fileId and self["fileId"] is None: + self["fileId"] = fileId + if json_node.__contains__("cmds"): + self._add_cmds(json_node.get("cmds"), fileId) + return + + def __str__(self): + return "jobs '%s' condition '%s' " % (self["name"], self["condition"]) + +class ServiceParser(ItemParser): + def __init__(self, config): + ItemParser.__init__(self, config) + self["critical_enable"] = False + self["limit_time"] = 20 + self["limit_count"] = 4 + self["importance"] = 0 + self["once"] = False + self["console"] = False + self["notify_state"] = True + self["on_demand"] = False + self["sandbox"] = False + self["disabled"] = False + self["start_mode"] = "normal" + self["secon"] = "" + self["boot_job"] = "" + self["start_job"] = "" + self["stop_job"] = "" + self["restart_job"] = "" + self["path"] = "" + self["apl"] = "" + self["d_caps"] = "" + self["permission"] = "" + self["permission_acls"] = "" + self["fileId"] = -1 + + def _handle_string_filed(self, json_node): + str_field_map = { + "uid" : "uid", "caps":"caps", "start_mode":"start-mode", "secon":"secon", "apl":"apl" + } + for key, name in str_field_map.items(): + if json_node.__contains__(name): + self[key] = json_node.get(name) + + def _handle_integer_filed(self, json_node): + str_field_map = { + "importance" : "importance" + } + for key, name in str_field_map.items(): + if json_node.__contains__(name): + self[key] = json_node.get(name) + + def _handle_Bool_filed(self, json_node): + bool_field_map = { + "once" : "once", "console" : "console", "notify_state" : "notify_state", + "on_demand" : "ondemand", "sandbox" : "sandbox", "disabled" : "disabled", + "critical_enable" : "critical_enable" + } + for key, name in bool_field_map.items(): + if json_node.__contains__(name): + value = json_node.get(name) + if isinstance(value, bool): + self[key] = value + elif isinstance(value, int): + self[key] = value != 0 + + def _handle_array_filed(self, json_node): + array_field_map = { + "path" : "path", "gid" : "gid", "cpu_core" : "cpucore", "caps":"caps", "write_pid":"writepid", + "d_caps":"d-caps", "permission":"permission", "permission_acls":"permission_acls", + } + for key, name in array_field_map.items(): + if json_node.__contains__(name) : + self[key] = self.get_strings_value(json_node.get(name)) + + def _handle_scope_jobs(self, json_node): + job_field_map = { + "boot_job" : "on_boot", "start_job" : "on-start", "stop_job":"on-stop", "restart_job":"on-restart" + } + for key, name in job_field_map.items(): + if json_node.__contains__(name): + self[key] = json_node.get(name) + self._config_parser.add_job({"name" : json_node.get(name)}, self, self["fileId"]) + + def create(self, json_node, parent = None, fileId = None): + assert(isinstance(json_node, dict)) + self["name"] = json_node["name"] + if not self.get("serviceId") : + self["serviceId"] = self._config_parser.get_service_id() + if fileId : + self["fileId"] = fileId + self._handle_string_filed(json_node) + self._handle_Bool_filed(json_node) + self._handle_array_filed(json_node) + self._handle_integer_filed(json_node) + + #for file + if json_node.__contains__("file"): + for item in json_node.get("file"): + self._config_parser.add_service_file(item, self) + + #for socket + if json_node.__contains__("socket"): + for item in json_node.get("socket"): + self._config_parser.add_service_socket(item, self) + #for jobs + if json_node.__contains__("jobs"): + self._handle_scope_jobs(json_node.get("jobs")) + + #for critical + if json_node.__contains__("critical"): + critical = json_node.get("critical") + if isinstance(critical, list): + self["critical_enable"] = int(critical[0]) != 0 + self["limit_time"] = int(critical[0]) + self["limit_count"] = int(critical[0]) + else: + self["critical_enable"] = int(critical) != 0 + return + + def update(self, json_node, parent = None, fileId = None): + self.create(json_node, parent, fileId) + return + +class ServiceSocketParser(ItemParser): + def __init__(self, config): + ItemParser.__init__(self, config) + self["family"] = "" + self["type"] = "" + self["protocol"] = "" + self["permissions"] = "" + self["uid"] = "" + self["gid"] = "" + self["serviceId"] = -1 + + def create(self, json_node, parent = None, file_id = None): + assert(isinstance(json_node, dict)) + self["name"] = json_node["name"] + if parent != None: + self["serviceId"] = parent.get("serviceId") + fields = ["family", "type", "protocol", "permissions", "uid", "gid"] + for field in fields: + if json_node.get(field) : + self[field] = json_node.get(field) + if json_node.get("option") : + self["option"] = self.get_strings_value(json_node.get("option")) + + def __repr__(self): + return self.__str__() + + def __str__(self): + return "socket '%s' serviceid = %d family %s" % (self["name"], self["serviceId"], self["family"]) + +class ServiceFileParser(ItemParser): + def __init__(self, config): + ItemParser.__init__(self, config) + self["name"] = "" + self["content"] = "" + self["serviceId"] = -1 + + def create(self, json_node, parent = None, file_id = None): + assert(isinstance(json_node, str)) + if parent != None: + self["serviceId"] = parent.get("serviceId") + info = json_node.partition(" ") + self["name"] = info[0] + if len(info) > 2: + self["content"] = info[2] + return + + def __repr__(self): + return self.__str__() + + def __str__(self): + return "file '%s' serviceid = %d content '%s'" % (self["name"], self["serviceId"], self["content"]) + +class ConfigParser(): + def __init__(self, path): + self._path = path + self._jobs = {} + self._files = {} + self._cmds = [] + self._services = {} + self._serviceSockets = {} + self._serviceFiles = {} + self._jobId = 0 + self._file_id = 0 + self._serviceId = 0 + self._selinux = "" + + def _load_services(self, json_node, file_id): + assert(isinstance(json_node, list)) + for item in json_node: + self.add_service(item, file_id) + return + + def _load_jobs(self, json_node, file_id): + assert(isinstance(json_node, list)) + for item in json_node: + self.add_job(item, None, file_id) + return + + def _load_import(self, import_node): + assert(isinstance(import_node, list)) + start_with = [ "/system", "/chip_prod", "/sys_prod", "/vendor" ] + for file in import_node: + found = False + for start in start_with: + if file.startswith(start): + found = True + break + if found : + self.load_config(self._path + file) + else: + for start in start_with: + self.load_config(self._path + start + file, file) + + def load_config(self, file_name): + path = self._path + file_name + if not os.path.exists(path): + print("Error, invalid config file %s" % path) + return + with open(path, encoding='utf-8') as content: + try: + root = json.load(content) + fileId = self.add_File(file_name) + # print("loadConfig %d file_name = %s" % (fileId, file_name)) + assert(isinstance(root, dict)) + if (root.__contains__("services")): + self._load_services(root["services"], fileId) + if (root.__contains__("jobs")): + self._load_jobs(root["jobs"], fileId) + if (root.__contains__("import")): + self._load_import(root["import"]) + pass + except: + pass + + def add_File(self, file_name): + if self._files.get(file_name): + return self._files.get(file_name).get("fileId") + self._file_id = self._file_id + 1 + self._files[file_name] = { + "fileId" : self._file_id, + "file_name" : file_name + } + return self._files[file_name].get("fileId") + + def add_job(self, item, service, file_id): + if self._jobs.get(item.get("name")): + self._jobs.get(item.get("name")).update(item, service, file_id) + return + parser = JobParser(self) + parser.create(item, service, file_id) + self._jobs[parser.get_name()] = parser + + def add_cmd(self, item, job, file_id): + parser = CmdParser(self) + parser.create(item, job, file_id) + self._cmds.append(parser) + + def add_service(self, item, file_id): + if self._services.get(item.get("name")): + self._services.get(item.get("name")).update(item) + return + parser = ServiceParser(self) + parser.create(item, None, file_id) + self._services[parser.get("name")] = parser + + def add_service_socket(self, item, service): + parser = ServiceSocketParser(self) + parser.create(item, service) + self._serviceSockets[parser.get_name()] = parser + + def add_service_file(self, item, service): + parser = ServiceFileParser(self) + parser.create(item, service) + self._serviceFiles[parser.get_name()] = parser + + def get_job_id(self): + self._jobId = self._jobId + 1 + return self._jobId + + def get_service_id(self): + self._serviceId = self._serviceId + 1 + return self._serviceId + + def dump_config(self): + # print("Dump jobs: \n") + pp = pprint.PrettyPrinter(indent = 0, compact=True) + pp.pprint(self._jobs) + pass + + def _is_valid_file(self, file): + valid_file_ext = [".cfg"] + if not file.is_file(): + return False + for ext in valid_file_ext: + if file.name.endswith(ext): + return True + return False + + def _scan_config_file(self, file_name): + dir = self._path + file_name + if not os.path.exists(dir): + return + try: + with os.scandir(dir) as files: + for file in files: + if self._is_valid_file(file): + name = file.path[len(self._path) :] + self.load_config(name) + except: + pass + + def scan_config(self): + config_paths = [ + "/system/etc/init", + "/chip_prod/etc/init", + "/sys_prod/etc/init", + "/vendor/etc/init", + ] + for file_name in config_paths: + self._scan_config_file(file_name) + + def get_job_priority(self, job_name): + job_priority = { + "pre-init" : 0, + "init" : 1, + "post-init" : 2, + "early-fs" : 3, + "fs" : 4, + "post-fs" : 5, + "late-fs" : 6, + "post-fs-data" : 7, + "firmware_mounts_complete" : 8, + "early-boot" : 9, + "boot" : 10 + } + + if (job_priority.__contains__(job_name)): + # print("get_job_priority %s %d" % (job_name, job_priority.get(job_name))) + return job_priority.get(job_name) + return 100 + + def _load_boot_event(self, event): + if self._jobs.__contains__(event.get("name")): + print("loadBootEvent_ %s %f" % (event.get("name"), event.get("dur"))) + self._jobs.get(event.get("name"))["executionTime"] = event.get("dur") + + def load_boot_event_file(self, boot_event_file): + if not os.path.exists(boot_event_file): + print("Error, invalid config file %s" % boot_event_file) + return + #print("loadConfig file_name = %s" % file_name) + with open(boot_event_file, encoding='utf-8') as content: + try: + root = json.load(content) + for item in root: + self._load_boot_event(item) + except: + pass + pass + + def load_selinux_config(self, file_name): + path = self._path + file_name + if not os.path.exists(path): + print("Error, invalid selinux config file %s" % path) + return + try: + with open(path, encoding='utf-8') as fp: + line = fp.readline() + while line : + if line.startswith("#") or len(line) < 3: + line = fp.readline() + continue + param_Info = line.partition("=") + if len(param_Info) != 3: + line = fp.readline() + continue + if param_Info[0].strip() == "SELINUX": + self._selinux = param_Info[2].strip() + line = fp.readline() + except: + print("Error, invalid parameter file ", file_name) + pass + +def startup_config_collect(base_path): + parser = ConfigParser(base_path + "/packages/phone") + parser.load_config("/system/etc/init.cfg") + parser.scan_config() + parser.load_selinux_config("/system/etc/selinux/config") + return parser + +if __name__ == '__main__': + args_parser = _create_arg_parser() + options = args_parser.parse_args() + startup_config_collect(options.input) diff --git a/tools/startup_guard/config_parser_mgr/config_parser_mgr.py b/tools/startup_guard/config_parser_mgr/config_parser_mgr.py new file mode 100644 index 0000000..e6e8154 --- /dev/null +++ b/tools/startup_guard/config_parser_mgr/config_parser_mgr.py @@ -0,0 +1,50 @@ +#!/usr/bin/env python +#coding=utf-8 + +# +# Copyright (c) 2023 Huawei Device Co., Ltd. +# 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. +# + +import sys +sys.path.append('.') + +from .param.system_parameter_parser import parameters_collect +from .cfg.config_parser import startup_config_collect + +def __create_arg_parser(): + import argparse + parser = argparse.ArgumentParser(description='Check startup architecture information from compiled output files.') + parser.add_argument('-i', '--input', + help='input config files base directory example "out/rk3568/packages/phone/" ', required=True) + return parser + +class ConfigParserMgr(object): + def __init__(self, path = None): + self._path = path + self._parser_list = {} + + def load_all_parser(self, options): + cfg_parser = startup_config_collect(options) + param_parser = parameters_collect(options) + self._parser_list = {'cmd_whitelist':cfg_parser, 'system_parameter_whitelist':param_parser} + + def get_parser_by_name(self, key): + if key: + return self._parser_list[key] + +if __name__ == '__main__': + args_parser = __create_arg_parser() + options = args_parser.parse_args() + mgr = ConfigParserMgr() + mgr.load_all_parser(options) diff --git a/tools/startup_guard/config_parser_mgr/param/system_parameter_parser.py b/tools/startup_guard/config_parser_mgr/param/system_parameter_parser.py new file mode 100644 index 0000000..fb07b6d --- /dev/null +++ b/tools/startup_guard/config_parser_mgr/param/system_parameter_parser.py @@ -0,0 +1,165 @@ +#!/usr/bin/env python +#coding=utf-8 + +# +# Copyright (c) 2023 Huawei Device Co., Ltd. +# 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. +# + +import os + +class ParameterParser(dict): + def __init__(self, prefix, parameter = None): + self["prefix"] = prefix + if parameter == None: + self["type"] = "string" + self["dacUser"] = "" + self["dacGroup"] = "" + self["dacMode"] = 0 + self["selinuxLabel"] = "" + self["value"] = "" + else: + self["type"] = parameter.get("type") + self["dacUser"] = parameter.get("dacUser") + self["dacGroup"] = parameter.get("dacGroup") + self["dacMode"] = parameter.get("dacMode") + self["selinuxLabel"] = parameter.get("selinuxLabel") + self["value"] = parameter.get("value") + + def decode(self, info): + self["value"] = info.strip("\"").strip("\'") + #print("value '%s'" % self["value"]) + return True + + def __repr__(self): + return self.__str__() + + def __str__(self): + return "%s= DAC[%s:%s:%s] selinux[%s] value=%s" % (self["prefix"], self["dacUser"], self["dacGroup"], self["dacMode"], self["selinuxLabel"], self["value"]) + +class ParameterDacParser(ParameterParser): + def __init__(self, prefix, parameter=None): + ParameterParser.__init__(self, prefix, parameter) + + def decode(self, info): + dacInfo = info.strip("\"").strip("\'").split(":") + if len(dacInfo) < 3: + print("Invalid dac %s" % info) + return False + + self["dacUser"] = dacInfo[0] + self["dacGroup"] = dacInfo[1] + self["dacMode"] = dacInfo[2] + if len(dacInfo) > 3: + self["type"] = dacInfo[3] + return True + +class ParameterSelinuxParser(ParameterParser): + def __init__(self, prefix, parameter=None): + ParameterParser.__init__(self, prefix, parameter) + + def decode(self, info): + self["selinuxLabel"] = info + #print("name %s selinux %s" % (self["prefix"], info)) + return True + +class ParameterFileParser(): + def __init__(self): + self._parameters = {} + + def _handle_param_info(self, file_name, param_info): + param_name = param_info[0].strip() + old_param = self._parameters.get(param_name) + if file_name.endswith(".para.dac"): + param = ParameterDacParser(param_name, old_param) + if (param.decode(param_info[2].strip())): + self._parameters[param_name] = param + elif file_name.endswith(".para"): + param = ParameterParser(param_name, old_param) + if (param.decode(param_info[2].strip())): + self._parameters[param_name] = param + else: + param = ParameterSelinuxParser(param_name, old_param) + if (param.decode(param_info[2].strip())): + self._parameters[param_name] = param + + def load_parameter_file(self, file_name, str = "="): + # print(" loadParameterFile %s" % fileName) + try: + with open(file_name, encoding='utf-8') as fp: + line = fp.readline() + while line : + #print("line %s" % (line)) + if line.startswith("#") or len(line) < 3: + line = fp.readline() + continue + paramInfo = line.partition(str) + if len (paramInfo) != 3: + line = fp.readline() + continue + self._handle_param_info(file_name, paramInfo) + line = fp.readline() + except: + print("Error, invalid parameter file ", file_name) + pass + + def dump_parameter(self): + for param in self._parameters.values(): + print(str(param)) + + def _check_file(self, file): + valid_file_ext = [".para", ".para.dac"] + if not file.is_file(): + return False + for ext in valid_file_ext: + if file.name.endswith(ext): + return True + return False + + def _scan_parameter_file(self, dir): + if not os.path.exists(dir): + return + with os.scandir(dir) as files: + for file in files: + if self._check_file(file): + self.load_parameter_file(file.path) + + def scan_parameter_file(self, dir): + parameter_paths = [ + "/system/etc/param/ohos_const", + "/vendor/etc/param", + "/chip_prod/etc/param", + "/sys_prod/etc/param", + "/system/etc/param", + ] + for path in parameter_paths: + self._scan_parameter_file(dir + "/packages/phone" + path) + +def __create_arg_parser(): + import argparse + parser = argparse.ArgumentParser(description='Collect parameter information from xxxx/etc/param dir.') + parser.add_argument('-i', '--input', + help='input parameter files base directory example "out/rk3568/packages/phone/" ', required=True) + return parser + +def parameters_collect(base_path): + parser = ParameterFileParser() + parser.scan_parameter_file(base_path) + parser.load_parameter_file(base_path + "/packages/phone/system/etc/selinux/targeted/contexts/parameter_contexts", " ") + # parser.dumpParameter() + return parser + +if __name__ == '__main__': + args_parser = __create_arg_parser() + options = args_parser.parse_args() + parameters_collect(options.input) diff --git a/tools/startup_guard/rules/NO-Config-Cmds-In-Init/README.md b/tools/startup_guard/rules/NO-Config-Cmds-In-Init/README.md new file mode 100755 index 0000000..e58c538 --- /dev/null +++ b/tools/startup_guard/rules/NO-Config-Cmds-In-Init/README.md @@ -0,0 +1,27 @@ +# 耗时命令白名单规则说明 + +## 1. 耗时命令说明 + 命令执行超过200ms的命令行。 + +## 2. 规则解释 + + 1. **耗时命令约束**:**[白名单](whitelist.json)** 约束*.cfg文件中的耗时命令。 + 2. **condition服务约束**:白名单中约束service启动方式是:"start-mode" : "condition" 且"ondemand" : false , 且服务通过start命令启动。 + 3. **boot服务约束**:白名单约束service启动方式是:"start-mode" : "boot"。 + 4. **selinux约束**:selinux未打开, 或服务的"secon"没有配置。 + +编译时会提示如下类型的告警: + + ``` + [NOT ALLOWED]: 'mount_fstab' is invalid, in /system/etc/init.cfg
+ [NOT ALLOWED]: 'load_access_token_id' is invalid, in /system/etc/init/access_token.cfg
+ [NOT ALLOWED]: 'init_global_key' is invalid, in /system/etc/init.cfg
+ [NOT ALLOWED]: 'storage_daemon' cannot be started in boot mode
+ [NOT ALLOWED]: 'hilogd' cannot be started in conditional mode
+``` + +## 3. 违规场景及处理方案建议 + + 1. 检查违规项是否是耗时命令,其次该命令存在文件路径是否包含白名单中, 如果不在,根据要求添加命令到白名单 + + 2. 检查服务启动类型, 根据 **[规则解释](README.md#2-规则解释)** 排查修改 diff --git a/tools/startup_guard/rules/NO-Config-Cmds-In-Init/whitelist.json b/tools/startup_guard/rules/NO-Config-Cmds-In-Init/whitelist.json new file mode 100755 index 0000000..8097426 --- /dev/null +++ b/tools/startup_guard/rules/NO-Config-Cmds-In-Init/whitelist.json @@ -0,0 +1,54 @@ +[ + { + "cmds": [ + { + "cmd":"mount_fstab", + "location":[ + "/system/etc/init.cfg" + ] + }, { + "cmd":"load_access_token_id", + "location":[ + "/system/etc/init/access_token.cfg" + ] + }, { + "cmd":"init_global_key", + "location":[ + "/system/etc/init.cfg" + ] + }], + "start-modes": [ + { + "start-mode":"condition", + "service":[ + "hilogd", + "wifi_hal_service", + "hdcd", + "hiprofilerd", + "pulseaudio", + "huks_service", + "hiprofiler_plugins", + "watchdog_service", + "pinauth", + "hiprofiler_daemon", + "multimodalinput", + "udevd_service", + "mmi_uinput_service" + ] + }, { + "start-mode":"boot", + "service":[ + "hiview", + "storage_daemon", + "samgr", + "thermal_protector", + "appspawn", + "param_watcher", + "device_manager", + "storage_manager", + "hdf_devmgr" + ] + } + ] + } +] diff --git a/tools/startup_guard/rules/NO-Config-SystemParameter-In-INIT/README.md b/tools/startup_guard/rules/NO-Config-SystemParameter-In-INIT/README.md new file mode 100755 index 0000000..20fdfba --- /dev/null +++ b/tools/startup_guard/rules/NO-Config-SystemParameter-In-INIT/README.md @@ -0,0 +1,17 @@ +# 系统参数白名单规则说明 + +## 1. 规则解释 + 1. **[白名单](whitelist.json)** 约束系统参数配置文件(\*.para", \*.para.dac)中的名称。 + 2. **[白名单](whitelist.json)** 约束系统参数命名合法性。系统参数命名由:字母、数字、下划线、'.'、 '-'、 '@'、 ':' 、 '_'。 例外:不允许出现".." + 3. 系统参数名未添加在 **[白名单](whitelist.json)**。 + +编译时会提示如下类型的告警: + + ``` + [NOT ALLOWED]: Invalid param: distributedsched.continuationmanager.. + [NOT ALLOWED]: persist.resourceschedule.memmgr.eswap.swapOutKBFromBirth is not found in the whitelist + ``` + +## 2. 违规场景及处理方案建议 + + 1. 检查白名单和系统参数命名, 根据 **[规则解释](README.md#2-规则解释)** 排查修改 diff --git a/tools/startup_guard/rules/NO-Config-SystemParameter-In-INIT/whitelist.json b/tools/startup_guard/rules/NO-Config-SystemParameter-In-INIT/whitelist.json new file mode 100755 index 0000000..8733ef9 --- /dev/null +++ b/tools/startup_guard/rules/NO-Config-SystemParameter-In-INIT/whitelist.json @@ -0,0 +1,375 @@ +[ + "const.ohos.version.security_patch", + "const.ohos.releasetype", + "const.ohos.apiversion", + "const.ohos.fullname", + "persist.thermal.log.enable", + "persist.thermal.log.interval", + "persist.thermal.log.width", + "persist.thermal.log.", + "sys.usb.config", + "const.product.hardwareversion", + "const.product.brand", + "const.build.product", + "accesstoken.permission.change", + "persist.resourceschedule.memmgr.eswap.permanently.closed", + "persist.resourceschedule.memmgr.eswap.minsToday", + "persist.resourceschedule.memmgr.eswap.swapOutKBToday", + "persist.resourceschedule.memmgr.eswap.minsFromBirth", + "persist.resourceschedule.memmgr.eswap.swapOutKBFromBirth", + "const.cust.", + "persist.darkmode", + "sys.usb.ffs.ready", + "persist.hdc.root", + "persist.hdc.mode", + "persist.hdc.port", + "persist.hdc.uv.threads", + "persist.hdc.control", + "persist.hdc.control.shell", + "persist.hdc.control.file", + "persist.hdc.control.fport", + "accessibility.config.ready", + "bootevent.appfwk.ready", + "component.startup.newRules", + "component.startup.newRules.except.LauncherSystemUI", + "component.startup.backgroundJudge.flag", + "component.startup.whitelist.associatedWakeUp", + "netmanager_base.", + "persist.netmanager_base.", + "const.distributed_file_property.enabled", + "const.distributed_file_only_for_same_account_test", + "const.telephony.slotCount", + "telephony.sim.opkey0", + "telephony.sim.opkey1", + "persist.sys.default_ime", + "ohos.servicectrl.", + "ohos.servicectrl.reboot.", + "ohos.boot.", + "bootevent.", + "startup.service.ctl.", + "startup.device.", + "const.debuggable", + "const.build.", + "const.SystemCapability.", + "const.product.", + "persist.init.", + "startup.appspawn.", + "startup.uevent.", + "persist.init.debug.", + "persist.init.bootevent.enable", + "persist.appspawn.", + "persist.xts.devattest.", + "ohos.boot.sn", + "const.product.udid", + "const.product.devUdid", + "const.actionable_compatible_property.enabled", + "const.postinstall.fstab.prefix", + "const.secure", + "security.perf_harden", + "const.allow.mock.location", + "persist.sys.usb.config", + "persist.window.boot.", + "debug.bytrace.", + "persist.distributed_hardware.device_manager.", + "persist.sys.hiview.", + "vendor.hifi.watchdog.come", + "bootevent.wms.fullscreen.ready", + "persist.pasteboard.", + "const.theme.screenlockWhiteApp", + "const.theme.screenlockApp", + "persist.global.language", + "persist.global.locale", + "persist.global.is24Hour", + "persist.sys.preferredLanguages", + "const.global.locale", + "const.global.language", + "const.global.region", + "bootevent.useriam.fwkready", + "hiviewdfx.hiperf.perf_event_max_sample_rate", + "hiviewdfx.hiperf.perf_cpu_time_max_percent", + "hiviewdfx.hiperf.perf_event_mlock_kb", + "persist.filemanagement.usb.readonly", + "debug.hitrace.tags.enableflags", + "hilog.", + "persist.sys.hilog.", + "bootevent.samgr.ready", + "persist.samgr.perf.ondemand", + "persist.sys.graphic.animationscale", + "debug.graphic.", + "musl.log.enable", + "musl.log.ld.all", + "const.display.brightness.", + "persist.sys.arkui.animationscale", + "const.build.characteristics", + "const.product.model", + "const.product.name", + "const.sandbox", + "const.product.devicetype", + "const.software.model", + "const.product.manufacturer", + "const.product.bootloader.version", + "const.product.cpu.abilist", + "const.product.software.version", + "const.product.incremental.version", + "const.product.firstapiversion", + "const.product.build.type", + "const.product.build.user", + "const.product.build.host", + "const.product.build.date", + "const.product.hardwareprofile", + "const.ohos.buildroothash", + "backup.debug.overrideExtensionConfig", + "persist.netmanager_base.http_proxy.host", + "persist.netmanager_base.http_proxy.port", + "persist.netmanager_base.http_proxy.exclusion_list", + "persist.distributed_hardware.device_manager.discover_status", + "input.pointer.device", + "hiviewdfx.hiprofiler.profilerd.start", + "hiviewdfx.hiprofiler.plugins.start", + "hiviewdfx.hiprofiler.native_memoryd.start", + "libc.hook_mode", + "persist.multimedia.audio.mediavolume", + "const.SystemCapability.ArkUI.UiAppearance", + "const.SystemCapability.ArkUI.ArkUI.Full", + "const.SystemCapability.ArkUI.ArkUI.Napi", + "const.SystemCapability.ArkUI.ArkUI.Libuv", + "const.SystemCapability.Account.AppAccount", + "const.SystemCapability.Account.OsAccount", + "const.SystemCapability.DistributedDataManager.KVStore.Core", + "const.SystemCapability.DistributedDataManager.KVStore.Lite", + "const.SystemCapability.DistributedDataManager.KVStore.DistributedKVStore", + "const.SystemCapability.DistributedDataManager.Preferences.Core", + "const.SystemCapability.DistributedDataManager.DataObject.DistributedObject", + "const.SystemCapability.DistributedDataManager.RelationalStore.Core", + "const.SystemCapability.DistributedDataManager.DataShare.Core", + "const.SystemCapability.DistributedDataManager.DataShare.Consumer", + "const.SystemCapability.DistributedDataManager.DataShare.Provider", + "const.SystemCapability.MiscServices.Pasteboard", + "const.SystemCapability.Security.AccessToken", + "const.SystemCapability.Security.DeviceSecurityLevel", + "const.SystemCapability.Security.DataTransitManager", + "const.SystemCapability.Security.DeviceAuth", + "const.SystemCapability.Security.AppVerify", + "const.SystemCapability.Security.CertificateManager", + "const.SystemCapability.Security.Huks", + "const.SystemCapability.Security.Cipher", + "const.SystemCapability.Security.CryptoFramework", + "const.SystemCapability.Security.Cert", + "const.SystemCapability.UserIAM.UserAuth.FaceAuth", + "const.SystemCapability.UserIAM.UserAuth.PinAuth", + "const.SystemCapability.UserIAM.UserAuth.Core", + "const.SystemCapability.UserIAM.UserAuth.FingerprintAuth", + "const.SystemCapability.Startup.SystemInfo", + "const.SystemCapability.HiviewDFX.HiLog", + "const.SystemCapability.HiviewDFX.HiTrace", + "const.SystemCapability.HiviewDFX.HiSysEvent", + "const.SystemCapability.HiviewDFX.HiAppEvent", + "const.SystemCapability.HiviewDFX.Hiview", + "const.SystemCapability.HiviewDFX.Hiview.FaultLogger", + "const.SystemCapability.HiviewDFX.HiChecker", + "const.SystemCapability.HiviewDFX.HiDumper", + "const.SystemCapability.Utils.Lang", + "const.SystemCapability.BundleManager.BundleTool", + "const.SystemCapability.BundleManager.DistributedBundleFramework", + "const.SystemCapability.BundleManager.BundleFramework", + "const.SystemCapability.BundleManager.Zlib", + "const.SystemCapability.BundleManager.BundleFramework.AppControl", + "const.SystemCapability.BundleManager.BundleFramework.Core", + "const.SystemCapability.BundleManager.BundleFramework.FreeInstall", + "const.SystemCapability.BundleManager.BundleFramework.Launcher", + "const.SystemCapability.BundleManager.BundleFramework.DefaultApp", + "const.SystemCapability.BundleManager.BundleFramework.Resource", + "const.SystemCapability.Ability.AbilityBase", + "const.SystemCapability.Ability.DistributedAbilityManager", + "const.SystemCapability.Ability.AbilityRuntime.Core", + "const.SystemCapability.Ability.AbilityRuntime.FAModel", + "const.SystemCapability.Ability.AbilityRuntime.AbilityCore", + "const.SystemCapability.Ability.AbilityRuntime.Mission", + "const.SystemCapability.Ability.AbilityRuntime.QuickFix", + "const.SystemCapability.Ability.AbilityTools.AbilityAssistant", + "const.SystemCapability.Ability.Form", + "const.SystemCapability.Notification.Emitter", + "const.SystemCapability.Notification.Notification", + "const.SystemCapability.Notification.ReminderAgent", + "const.SystemCapability.Notification.CommonEvent", + "const.SystemCapability.Communication.SoftBus.Core", + "const.SystemCapability.Communication.NetManager.Core", + "const.SystemCapability.Communication.Bluetooth.Core", + "const.SystemCapability.Communication.Bluetooth.Lite", + "const.SystemCapability.Communication.NetStack", + "const.SystemCapability.Communication.WiFi.STA", + "const.SystemCapability.Communication.WiFi.AP.Core", + "const.SystemCapability.Communication.WiFi.P2P", + "const.SystemCapability.Communication.WiFi.Core", + "const.SystemCapability.Communication.IPC.Core", + "const.SystemCapability.Communication.NetManager.Ethernet", + "const.SystemCapability.Communication.NetManager.NetSharing", + "const.SystemCapability.Communication.NetManager.MDNS", + "const.SystemCapability.Communication.NetManager.Vpn", + "const.SystemCapability.Location.Location.Core", + "const.SystemCapability.Location.Location.Gnss", + "const.SystemCapability.Location.Location.Geofence", + "const.SystemCapability.Location.Location.Geocoder", + "const.SystemCapability.Location.Location.Lite", + "const.SystemCapability.Update.UpdateService", + "const.SystemCapability.HiviewDFX.HiProfiler.HiDebug", + "const.SystemCapability.Developtools.Syscap", + "const.SystemCapability.Sensors.Sensor", + "const.SystemCapability.Sensors.MiscDevice", + "const.SystemCapability.Graphic.Graphic2D.ColorManager.Core", + "const.SystemCapability.Graphic.Graphic2D.EGL", + "const.SystemCapability.Graphic.Graphic2D.GLES3", + "const.SystemCapability.Graphic.Graphic2D.NativeWindow", + "const.SystemCapability.Graphic.Graphic2D.NativeDrawing", + "const.SystemCapability.Graphic.Graphic2D.WebGL", + "const.SystemCapability.Graphic.Graphic2D.WebGL2", + "const.SystemCapability.WindowManager.WindowManager.Core", + "const.SystemCapability.MiscServices.Time", + "const.SystemCapability.MiscServices.InputMethodFramework", + "const.SystemCapability.MiscServices.Download", + "const.SystemCapability.MiscServices.Upload", + "const.SystemCapability.Print.PrintFramework", + "const.SystemCapability.MiscServices.ScreenLock", + "const.SystemCapability.MiscServices.Wallpaper", + "const.SystemCapability.Multimedia.Audio.Core", + "const.SystemCapability.Multimedia.Audio.Renderer", + "const.SystemCapability.Multimedia.Audio.Capturer", + "const.SystemCapability.Multimedia.Audio.Device", + "const.SystemCapability.Multimedia.Audio.Volume", + "const.SystemCapability.Multimedia.Audio.Communication", + "const.SystemCapability.Multimedia.Audio.Tone", + "const.SystemCapability.Multimedia.Audio.Interrupt", + "const.SystemCapability.Multimedia.Image.Core", + "const.SystemCapability.Multimedia.Image.ImageSource", + "const.SystemCapability.Multimedia.Image.ImagePacker", + "const.SystemCapability.Multimedia.Image.ImageReceiver", + "const.SystemCapability.Multimedia.Image.ImageCreator", + "const.SystemCapability.Multimedia.Camera.Core", + "const.SystemCapability.Multimedia.MediaLibrary.Core", + "const.SystemCapability.Multimedia.MediaLibrary.DistributedCore", + "const.SystemCapability.FileManagement.UserFileManager.Core", + "const.SystemCapability.FileManagement.UserFileManager.DistributedCore", + "const.SystemCapability.Multimedia.Media.Core", + "const.SystemCapability.Multimedia.Media.AudioPlayer", + "const.SystemCapability.Multimedia.Media.VideoPlayer", + "const.SystemCapability.Multimedia.Media.AudioRecorder", + "const.SystemCapability.Multimedia.Media.VideoRecorder", + "const.SystemCapability.Multimedia.Media.AudioDecoder", + "const.SystemCapability.Multimedia.Media.AudioEncoder", + "const.SystemCapability.Multimedia.Media.VideoDecoder", + "const.SystemCapability.Multimedia.Media.VideoEncoder", + "const.SystemCapability.Multimedia.Media.CodecBase", + "const.SystemCapability.Multimedia.Media.AVPlayer", + "const.SystemCapability.Multimedia.Media.AVRecorder", + "const.SystemCapability.Multimedia.SystemSound.Core", + "const.SystemCapability.Multimedia.AVSession", + "const.SystemCapability.Multimedia.AVSession.Core", + "const.SystemCapability.Multimedia.AVSession.Manager", + "const.SystemCapability.MultimodalInput.Input.InputConsumer", + "const.SystemCapability.MultimodalInput.Input.InputDevice", + "const.SystemCapability.MultimodalInput.Input.Core", + "const.SystemCapability.MultimodalInput.Input.InputSimulator", + "const.SystemCapability.MultimodalInput.Input.InputMonitor", + "const.SystemCapability.MultimodalInput.Input.Pointer", + "const.SystemCapability.MultimodalInput.Input.ShortKey", + "const.SystemCapability.Telephony.DataStorage", + "const.SystemCapability.Telephony.CellularCall", + "const.SystemCapability.Telephony.CellularData", + "const.SystemCapability.Telephony.SmsMms", + "const.SystemCapability.Telephony.StateRegistry", + "const.SystemCapability.Telephony.CallManager", + "const.SystemCapability.Telephony.CoreService", + "const.SystemCapability.Global.I18n", + "const.SystemCapability.Global.ResourceManager", + "const.SystemCapability.PowerManager.BatteryStatistics", + "const.SystemCapability.PowerManager.ThermalManager", + "const.SystemCapability.PowerManager.PowerManager.Core", + "const.SystemCapability.PowerManager.PowerManager.Extension", + "const.SystemCapability.PowerManager.DisplayPowerManager", + "const.SystemCapability.PowerManager.BatteryManager.Core", + "const.SystemCapability.PowerManager.BatteryManager.Extension", + "const.SystemCapability.USB.USBManager", + "const.SystemCapability.Applications.settings.Core", + "const.SystemCapability.Applications.ContactsData", + "const.SystemCapability.XTS.DeviceAttest", + "const.SystemCapability.Test.WuKong", + "const.SystemCapability.Test.UiTest", + "const.SystemCapability.DistributedHardware.DistributedAudio", + "const.SystemCapability.DistributedHardware.DistributedCamera", + "const.SystemCapability.DistributedHardware.DistributedScreen", + "const.SystemCapability.DistributedHardware.DistributedInput", + "const.SystemCapability.DistributedHardware.DistributedHardwareFWK", + "const.SystemCapability.DistributedHardware.DeviceManager", + "const.SystemCapability.Msdp.DeviceStatus.Stationary", + "const.SystemCapability.FileManagement.File.FileIO", + "const.SystemCapability.FileManagement.File.Environment", + "const.SystemCapability.FileManagement.File.DistributedFile", + "const.SystemCapability.FileManagement.DistributedFileService.CloudSyncManager", + "const.SystemCapability.FileManagement.UserFileService", + "const.SystemCapability.FileManagement.AppFileService", + "const.SystemCapability.FileManagement.StorageService.Backup", + "const.SystemCapability.FileManagement.StorageService.SpatialStatistics", + "const.SystemCapability.FileManagement.StorageService.Volume", + "const.SystemCapability.FileManagement.StorageService.Encryption", + "const.SystemCapability.ResourceSchedule.WorkScheduler", + "const.SystemCapability.ResourceSchedule.BackgroundTaskManager.ContinuousTask", + "const.SystemCapability.ResourceSchedule.BackgroundTaskManager.TransientTask", + "const.SystemCapability.ResourceSchedule.BackgroundTaskManager.EfficiencyResourcesApply", + "const.SystemCapability.ResourceSchedule.UsageStatistics.AppGroup", + "const.SystemCapability.ResourceSchedule.UsageStatistics.App", + "const.SystemCapability.BarrierFree.Accessibility.Core", + "const.SystemCapability.BarrierFree.Accessibility.Hearing", + "const.SystemCapability.BarrierFree.Accessibility.Vision", + "const.SystemCapability.Customization.ConfigPolicy", + "const.SystemCapability.Customization.EnterpriseDeviceManager", + "const.SystemCapability.Web.Webview.Core", + "const.SystemCapability.Ai.MindSpore", + "persist.time.timezone", + "hiviewdfx.hiprofiler.", + "libc.hook_mode.", + "hilog.private.on", + "hilog.debug.on", + "persist.sys.hilog.kmsg.on", + "persist.sys.hilog.debug.on", + "hilog.flowctrl.proc.on", + "hilog.flowctrl.domain.on", + "hilog.loggable.global", + "hilog.buffersize.global", + "persist.time.", + "const.ark.minVersion", + "const.ark.version", + "const.display.brightness.min", + "const.display.brightness.default", + "const.display.brightness.max", + "persist.telephony.", + "telephony.", + "sys.", + "sys.usb", + "net.", + "net.tcp.", + "const.postinstall.", + "const.postinstall.fstab.", + "const.allow.", + "const.allow.mock.", + "security.", + "persist.", + "persist.sys.", + "debug.", + "musl.", + "bootevent.wms.", + "ffrt.", + "hiviewdfx.hiperf.", + "persist.multimedia.audio.", + "persist.ark.", + "persist.ace.", + "accesstoken.permission.", + "persist.bms.", + "distributedsched.continuationmanager.", + "updater.hdc.configfs", + "updater.flashd.configfs", + "updater.data.configs", + "persist.xts.devattest.authresult", + "llvm.debug.service.", + "persist.edm.edm_enable", + "persist.edm." +] diff --git a/tools/startup_guard/startup_checker/__init__.py b/tools/startup_guard/startup_checker/__init__.py new file mode 100755 index 0000000..73a52af --- /dev/null +++ b/tools/startup_guard/startup_checker/__init__.py @@ -0,0 +1,44 @@ +#!/usr/bin/env python +#coding=utf-8 + +# +# Copyright (c) 2023 Huawei Device Co., Ltd. +# 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. +# + +from .cmds_rule import cmdRule +from .system_parameter_rules import SystemParameterRule + +def check_all_rules(mgr, args): + rules = [ + cmdRule, + SystemParameterRule, + ] + + passed = True + for rule in rules: + r = rule(mgr, args) + r.log("Do %s rule checking now:" % rule.RULE_NAME) + if not r.__check__(): + passed = False + else: + passed = True + + if not passed: + r.log(" Please refer to: \033[91m%s\x1b[0m" % r.get_help_url()) + pass + + if args and args.no_fail: + return True + + return passed diff --git a/tools/startup_guard/startup_checker/base_rule.py b/tools/startup_guard/startup_checker/base_rule.py new file mode 100755 index 0000000..082ca12 --- /dev/null +++ b/tools/startup_guard/startup_checker/base_rule.py @@ -0,0 +1,69 @@ +#!/usr/bin/env python +#coding=utf-8 + +# +# Copyright (c) 2023 Huawei Device Co., Ltd. +# 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. +# + +import os +import json + +class BaseRule(object): + RULE_NAME = "" + + def __init__(self, mgr, args): + self._args = args + self._mgr = mgr + self._white_lists = self.__load_files__("whitelist.json") + + def __load_files__(self, name): + rules_dir = [] + rules_dir.append(os.path.join(os.path.dirname(os.path.realpath(__file__)), "../rules")) + if self._args and self._args.rules: + rules_dir = rules_dir + self._args.rules + + res = [] + for d in rules_dir: + rules_file = os.path.join(d, self.__class__.RULE_NAME, name) + try: + with open(rules_file, "r") as f: + jsonstr = "".join([ line.strip() for line in f if not line.strip().startswith("//") ]) + res = res + json.loads(jsonstr) + except: + pass + + return res + + def get_mgr(self): + return self._mgr + + def get_white_lists(self): + return self._white_lists + + def log(self, info): + print(info) + + def warn(self, info): + print("\033[35m[WARNING]\x1b[0m: %s" % info) + + def error(self, info): + print("\033[91m[NOT ALLOWED]\x1b[0m: %s" % info) + + def get_help_url(self): + return "https://gitee.com/openharmony/developtools_integration_verification/tree/master/tools/startup_guard/rules/%s/README.md" % self.__class__.RULE_NAME + + # To be override + def __check__(self): + # Default pass + return True diff --git a/tools/startup_guard/startup_checker/cmds_rule.py b/tools/startup_guard/startup_checker/cmds_rule.py new file mode 100644 index 0000000..e0c28b7 --- /dev/null +++ b/tools/startup_guard/startup_checker/cmds_rule.py @@ -0,0 +1,133 @@ +#!/usr/bin/env python +#coding=utf-8 + +# +# Copyright (c) 2023 Huawei Device Co., Ltd. +# 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. +# + +import os +import json + +from .base_rule import BaseRule + +class cmdRule(BaseRule): + RULE_NAME = "NO-Config-Cmds-In-Init" + + def __init__(self, mgr, args): + super().__init__(mgr, args) + self._cmds = {} + self._start_modes = {} + self._boot_list = {} + self._condition_list = {} + + def _get_json_service(self): + for i in range(len(self._start_modes)): + if self._start_modes[i]["start-mode"] == "boot": + self._boot_list = self._start_modes[i]["service"] + elif self._start_modes[i]["start-mode"] == "condition": + self._condition_list = self._start_modes[i]["service"] + pass + + def _get_start_cmds(self, parser): + list = [] + for cmd in parser._cmds: + if cmd["name"] == "start": + list.append(cmd["content"]) + pass + return list + + def _parse_while_list(self): + white_lists =self.get_white_lists()[0] + for key, item in white_lists.items(): + if key == "cmds": + self._cmds = item + if key == "start-modes": + self._start_modes = item + + def _check_condition_start_mode(self, cmd_list, service_name, passed): + # print(cmd_list) + if service_name in self._condition_list and service_name in cmd_list: + pass + else: + self.error("\'%s\' cannot be started in conditional mode" % service_name) + passed = False + return passed + + + def _check_service(self, parser): + boot_passed = True + condition_passed = True + start_cmd_list = self._get_start_cmds(parser) + for key, item in parser._services.items(): + if item.get("start_mode") == "boot": + if key not in self._boot_list: + self.error("\'%s\' cannot be started in boot mode" % key) + boot_passed = False + elif item.get("on_demand") is not True and item.get("start_mode") == "condition": + condition_passed = self._check_condition_start_mode(start_cmd_list, key, condition_passed) + return boot_passed and condition_passed + + def _check_file_id_in_cmds(self, cmdlist, cmdline): + file_id_list = set() + # print(cmdlist) + for i in range(len(cmdlist)): + if cmdline == cmdlist[i]["name"]: + file_id_list.add(cmdlist[i]["fileId"]) + pass + return file_id_list + + def _check_cmdline_in_parser(self, parser): + passed = True + cmdline = [] + file_id_list = set() + parser_cmds = parser._cmds + + for cmd in self._cmds: + cmdline = cmd["cmd"] + file_id_list = self._check_file_id_in_cmds(parser_cmds, cmdline) + file_lists = cmd["location"] + for key, item in parser._files.items(): + if item["fileId"] in file_id_list and key not in file_lists: + output = "\'" + cmd["cmd"] + "\' is invalid, in "+ key + self.error("%s" % str(output)) + passed = False + file_id_list.clear() + return passed + + def _check_selinux(self, parser): + if parser._selinux != 'enforcing': + self.warn("selinux status is %s" %parser._selinux) + return False + + passed = True + for key, item in parser._services.items(): + if item.get("secon") is None: + output_str = "%s \'secon\' is empty" % key + self.warn("%s" % str(output_str)) + passed = False + return passed + + def check_config_cmd(self): + self._parse_while_list() + cfg_parser = self.get_mgr().get_parser_by_name('cmd_whitelist') + self._get_json_service() + self._get_start_cmds(cfg_parser) + + secon_passed = self._check_selinux(cfg_parser) + cmd_passed = self._check_cmdline_in_parser(cfg_parser) + start_mode_passed = self._check_service(cfg_parser) + return secon_passed and cmd_passed and start_mode_passed + + def __check__(self): + return self.check_config_cmd() diff --git a/tools/startup_guard/startup_checker/system_parameter_rules.py b/tools/startup_guard/startup_checker/system_parameter_rules.py new file mode 100644 index 0000000..b91d118 --- /dev/null +++ b/tools/startup_guard/startup_checker/system_parameter_rules.py @@ -0,0 +1,68 @@ +#!/usr/bin/env python +#coding=utf-8 + +# +# Copyright (c) 2023 Huawei Device Co., Ltd. +# 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. +# + +from .base_rule import BaseRule + +class SystemParameterRule(BaseRule): + RULE_NAME = "NO-Config-SystemParameter-In-INIT" + + def _check_param_name(self, param_name, empty_flag): + # len: (0, 96] + # Only allow alphanumeric, plus '.', '-', '@', ':', or '_'/ + # Don't allow ".." to appear in a param name + if len(param_name) > 96 or len(param_name) < 1 or param_name[0] == '.' or '..' in param_name: + return False + + if empty_flag is False: + if param_name[-1] == '.': + return False + + if param_name == "#": + return True + + for char_value in param_name: + if char_value in '._-@:': + continue + + if char_value.isalnum(): + continue + return False + return True + + def _check_Param_in_init(self): + passed = True + value_empty_flag = True + white_list =self.get_white_lists() + parser = self.get_mgr().get_parser_by_name('system_parameter_whitelist') + for key, item in parser._parameters.items(): + if str(item)[-1] == "=": + value_empty_flag = True + else: + value_empty_flag = False + + if not self._check_param_name(key, value_empty_flag): + self.error("Invalid param: %s" % key) + continue + if key in white_list: + continue + self.error("%s is not found in the whitelist" % key) + passed = False + return passed + + def __check__(self): + return self._check_Param_in_init() diff --git a/tools/startup_guard/startup_guard.py b/tools/startup_guard/startup_guard.py new file mode 100755 index 0000000..875763d --- /dev/null +++ b/tools/startup_guard/startup_guard.py @@ -0,0 +1,48 @@ +#!/usr/bin/env python +#coding=utf-8 + +# +# Copyright (c) 2023 Huawei Device Co., Ltd. +# 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. +# + +from config_parser_mgr import ConfigParserMgr + +def __create_arg_parser(): + import argparse + parser = argparse.ArgumentParser(description='Check startup architecture information from compiled output files.') + parser.add_argument('-i', '--input', + help='input config files base directory example "out/rk3568" ', required=True) + parser.add_argument('-r', '--rules', action='append', + help='rules directory', required=False) + parser.add_argument('-n', '--no_fail', + help='force to pass all rules', required=False) + return parser + +def startup_guard(out_path, args=None): + mgr = ConfigParserMgr() + mgr.load_all_parser(out_path) + + from startup_checker import check_all_rules + passed = check_all_rules(mgr, args) + passed = True + if passed: + print("All rules passed") + return + + raise Exception("ERROR: config_guard failed.") + +if __name__ == '__main__': + parser = __create_arg_parser() + args = parser.parse_args() + startup_guard(args.input, args) -- Gitee From d8ade181c087271958da7063a04db63c6440bb83 Mon Sep 17 00:00:00 2001 From: "liujiahe (D)" Date: Fri, 12 May 2023 19:34:13 +0800 Subject: [PATCH 025/201] skia upgrade, smoke figure upgrade Signed-off-by: liujiahe (D) --- .../basic/screenshot32/resource/contacts.jpeg | Bin 41143 -> 41306 bytes .../basic/screenshot32/resource/mms.jpeg | Bin 20675 -> 20636 bytes .../basic/screenshot32/resource/note.jpeg | Bin 94803 -> 96391 bytes .../resource/notification_bar.jpeg | Bin 61336 -> 63778 bytes .../basic/screenshot32/resource/settings.jpeg | Bin 64866 -> 63388 bytes 5 files changed, 0 insertions(+), 0 deletions(-) diff --git a/cases/smoke/basic/screenshot32/resource/contacts.jpeg b/cases/smoke/basic/screenshot32/resource/contacts.jpeg index 5903b54bf7d6b88151a4e59942b9379b0360a7dd..af3ab344cec79db08f1944b6451fe4d5bb64253a 100644 GIT binary patch literal 41306 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%0D?=s7)@1ux17r7 z)++6Z;_PGdJ3NvmWEneedkpRGMX))DjI5npDm&{^P}5QfLs_T;Fhh zI}>0KJ8P9o>Pu;RiEGJ4Rhqcmt3!g6O%K{kUIS;*L9WD5`keWUax^!l?a6RJRgVqWhIN-|P5Ydv~|Ph1O?eDpBUEZ>NC3Dj&zt*Mh|T9HuM z?VY5O7P;V?I1>yNAyMVLcjV@OhA985ueWE1O;m9^h7N)#w!~J0NA9oE)O?raul2&n zSgC5ecF|qC?ePcq+Rv|;*4^=}t#*lte);(VS^Soyw8T#AH^wRh(~W%G5^}yvd&ql= z4Jg!(hVq_0j!RAm7zhiZ4#E4Nf@CB+$q`EHVN6jrsjl6Zr zUs?XlkHhX)5!;+zytV8YXzg3IF@1QduTK{INntX07e^gcJc^#_)!*9Jc2mD9>4D`h zj^evr`0g+}r0Hl^YOGaROr>2#b6QNA)L0I>`@&}WkF<^TLNhBkn?!|CL470@?;k-4 zG6Y8tOM|k$YW*L0USp4iq_0J*+oo+5Ejh5ikS>y>S+ zG2-Z^%+Jr8WN(ygtG9SH$*DX8exNDDvfOu2CFL^5=GlF{X)ivXRdKig;M9EdN7sjh zLv6%@OI^AXc1hNLr;q`J)c6 uT#Qv{6oy`#27ZD^W%>Nt4{>I@8}%YALc{cbe@2)e)%Sk;dBci)>i8f24bjv9 literal 41143 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 literal 20675 zcmeHu2~-o?mUbaBIUx!HB18p+E0Z9IA`le;5fK5Ihp2!|YD7dpL!!u_phQ8*1%xPr zD5F47!9avCh=|Oy5(XIqk}!lKL#506`u2P4|KESt>t6rrw%4Lq=Twn8r|R3MzS?J> zy?60@_=CX46Q<^-fPer12*7^;zaKCLRtfyve%7mgZmR`<)_ zi-?H`3yZE56x2~&%1O@jn0(qN~rYY7rFJ z39OP35R?$$*8m6@r_dkpV6cDN1Xc;I77`YLVXTE4lx~FK3kt%ZgoE8{uv$WB z(+;g8!kewniR=uJ)V}@bxv1jNqADqyR)*5P^H;;g)@+fMk=?p$x3bD_dvtX7>m4|# zZ+y(e)aTZZGAjD+y_oof$4?Rozb7T9 zXJlr*$bR`Mr?`Yv`sVGsvhr$bO>JHM$A(XB?H!$6-95d1L&GEAN5{q|Ca0Kl^9zft zC2*PjQ!W8O@NZ(l^*@zM0+wsl&u1X=Q!as3!Eh0jSS_?eOL)@}YmsvSn|Es87L`2u z=y_3{fA(Gm#Yt0Cnx|vJV6Nn3Gle- zF)F}^1_0ho_J;L;uFoH> z|FPFU9{(k_e{%Q#=Jo<}Xzpe-YZ`pSxf~M9ie%96WW`LMSw=7`hADnq=iW6f6&Id< z?a1*9k1cla0dvmSQ7zdKi5T`LiXLTnczq}7k+~Aa1FK|kdKG3JFVhIXwhe53$HY$$F*B;u4BON%546qOG2-4| zdTA_GEx;*Lia9DcB7(r5@^4WcDg<|Cb0yGK6owg62%J6I0v(u2Gw3q7nbYs;r~hOi zPKWOA?{D|m#YF0L;zbMSk#f>+geBs883h#bYKurRSBsZ}yFhsW=`#^jR0KjEgBZq1 zfJeW(fW%`hWHaB;piJ|4tw2ee#JkJ4>cd55H^$W~JV8B0F-}lGy^JAE?j|aW%Iu!8 z9mMyE)VS|KOHArHBcn;`#wWM%f!_Vn(x<DW_4QwE9uG$U2sGpsDs!3RpNCvk3a z0~v-(w~?2`H<<)7#jA{T;~Q%fc5-xfwlutQ69?JzR->eflb@(9@JS{v+ZH_^SW7U1chw+h>hOHQr z7g-&NZBq&go#!jwZZ-{2!g`u1oNZPtz1F$R2l&8hWq3R_!DvX7$ygc|iN;uQ4&%4c zLg-GUcM?v%#l5|bX8w|`bsll%p1kQw-+8M5NkyWX!-NnJsIUc0WsKC7Lxn?VVXjGQ zP?#;Xn|Pu7+Kj4W)YypSQ~aWXR*iWiFLSK?2Db{n(J@?A?SHSYhcRulLPN)L5Y zDbdZjh-d|&R+3Sx4N?^i9meLx@ed})5*$oL< zjNGGknOXuga zVt!j!dB$n}7}keJc?Yfy0gqsZJW0<6V^A z^Nv}2n~M*4?lbkmHyYH3+a{orVLfO|1Gh)r$%I!`Ib8*{e@w$B!Q5pN`F*Jo-bTjBFK^+tacj{GB`M|-ayod00rc9jMvrM_4tAq9| zATJ>Y@hFDvJKSIvrMRNL7LVweNJB8~6NX*#HEXsSrK;US%MQEv?%aGZL0DFCH6Lhp z%&I$3-z@>g9!a#)kiXhywjk|GY@;N>bN*^m&=EJjk64U=8(&;GqwC zDE6Kc&@sySB;47LWLyp(png!R+-*KYoW_9(h{);=S{S7%mWS@6j1r!Vb)1{HY2BGS zjqgQ)zeRJm)jxwi^MP$-!$Evc`za8|^rt3-1kO|{c6Qq&TJ4@P&x}*`$&5k$ICe7W z{>YcuwBv=jNN+T#j+>TeDh>umKuQ=N-Ycvuc&MhY?vDS>f{@c-rR=FEIz?iZdC|}f zvlgBqooUOlh1Ngg1J6WeU`B*Zptx7@GgjdKJJ2meX)|x>Iga^>)?+>Wxgy_V=`9t> zuxkdD#be2q*&+L?DQ~i=?|D{sl`-{}uS=LpHs%3=YH6+kb^98WW7tZA_s3%(Gp?ZC zbd?@gN^yw92a3oFTKJ(sFl7igtwO%8jw4YC(Ay?H@WzgJMdhP#8B?<2 zUjCl64ri70*ZM!L=U=gi!z>;oA>LxMV8(HHceuvP=;|#5n~-d`cM97W5iF*xVlm}i z+GgV6IT8Hv_(rGR>_9k&sxb0G8)X0jLsY$#OY@-Fbzvj&}Z%P|WzN}q(o;!RF4 zwmwaeN2YicNK)E)txM_4bYjEEzgU8nSoLvm0uz6g)~+M++OpLZg> zq7MqAvPXX!xa~xSKaQuEF;WOgUgZOG5XBTXc#9&393;>rT!w?AaDyqd5_mBoD4#sB zWVDwLMD$y84pX$(zMMJf%{e-KOG}eGPq&c3c}i05Vkf@qvl#!ciAU zOqCft^0un^LE5gaN&#&3bsR$1qHql_ZIt?s(jLWEHh=^vDFLJA+S^k+W> zskjVZE1D~9%v#%_ zfz{>;5vT(KVS$#=mlS8zU97y%k9<$w>|>?!ghu2Pna1&QI!DTEtU(y#sKKzsYC)NF zp={s-LkS%eunEEV2CHD3S+@Nwl>&M$YC`+mEjTAI*Wn?@<2+}>EjdRpXkPxzMa=HY z=ZZ@^)C??#8e4;}26BEMDc#hlQxOsig>t%m8F8ARzQ@QCHD7a>R#n(%(_e#?>pC~D zGvi{;42~R)IYQ?HZpcaE5$BtF=MdY##(LsrtTL|3i@bIOe;-+5NvTF|a^qSu&@B8d z^=q;^J*4J6E~4qk3xuUdp+%uKe4yVM%14G%o}xFxa%dq3bJ?gF3WLLHhFNgOEyR6b z41I4v9_nH0-8I_oW8dZ$>TvyatzW4erN^k= zpIoDoe(P5(8^fBbDNiY&nkF|7pTP%uW(JYG&Dq@x-h4ofKIg$=z+%f`yC|h1T&V&o zYZko86ddZzj<`rR9!i(8!Q5=m z5D~6|XfVbHROJKbE8!(h*4}O_jy~oJ{PZ0cXtxwZioniiA@)|%wL|h6NU6|D0p_-1 zoG&jCNg8&{$CO#6jCp?=u1tWDOyjELC_WT$53&XkU8w>p!fPMrU2h{uDRlLtNGUfr zGo?05HJdxq3I2NAIaVGjio)<);%@$eh-OP7BrhAFk@rSg^D~&+`n+SJdtXrIC~YT? zx?Eg#_kCFZ^ol>)*P5jwaW%jSqOE#6fo?!YxG64qs){ z3yRlRoAX|=%#9k8E|BJijnD+BL=sn(TCbo5F7bi0vm0;|O-Czlfv_$U&cl9KLaZ?` z^JO?#GanG{?{3lXU}V)*3_tBPc^PUpJ@<9lzS1|gNg^rWi@nV#Z!G{AEO zUA(`XI@CSQc@9w(gu5ToA;UyOFp3Lr24(N-te5SvTdGD$ZuiR$e8} z`++U%BG~C4lB~N>CJw1{@~cb!$xNh z7APRaxj$7nY^qfqGSc-!lw@-ym#PPpz_Q^&DPQjoeW(bGrGEg+MW)mOHGsRYTypes zX6Zbp*YiGJMYP2I(J&3%*F2QfSjI4$X)f?>B`yZ|Rj!U&LM;9Gv9)MO9NafD$V*TJ zVOV`kjZETPhp)SMX>l`;o9Nfs0b4wyLxkcy%oAAU9pn{J2J?{&i%u9(2F9^_!`tEJ zNF!xROOTwUQTsF#1zuIj_loECn{Z0hf^96umaR=V&v4^Uu*tY8GHkWFIk0~42+E)x z)B8*seOQw!nt!qMfvM}G+@9m&y_c8bilOOR%~y9V_<(u{dzOXb#X(}&kFek10)g`z zMupMMwQ+WP{AP}tbK;>)+T|e0w$8DSIWv5tZ-n3 z11lU@;lK(9RyeT2ffWv{aNz$V2Q1Y`pU2xSW;>`4^R8HEwGATQ<9Pwk#B_0TGM;lf zAF;)aPFKNfmxM_2!!V)K>7?R)8n|i;*zwh3kNScK&4VcHHI2)i`l=S&|M>}(;#K2Z zrE(fi$csAxd!`63u+KJ+l4@Ik8V-)hZk<+ayXZYvph4-zwX3{@8^=^07?@~l@W^s+ z2n^r@hLq9Ab`5S^PmmDYUc1SJ54f5HO4?U82(s0+=YZIwoCRp=l;7r?lV@+FHHF?UHJn5N+ zTa5314*SIF^N5RI$aAFZcW_ACSvK;|xOONGzoW8)Y!(nEGOIXGE?-`mrd@czH2^MQh+C3$X!aXB#~B%JgVR=wLJre@jxN@L?OTvyDr|I>~?b3lHTeatLm z=n3Nv8h59FEt6rN4kC#9G3*P6$s82p_^Mw74lc&Ste32oz(N|4oLrpu^ zJC7Z|tf9o~K+b(^6VxWtpv}J1iz%^k69zp{ujZ`(SIUr38*aR`ejKHPvDBwUV1i#w zynSOWA^)|wY7BPTJ5olU_?zcO8n;}WRSQxfb7Z+aQ)FlA9_|j_BkS$I zph%9tXT--g%lH%GmzM@yiHm)utPAcfu=mKtO(Y6ZpqDRLHzV1)6z*d3J1fv!6E{Av zhiJ(hzq`;&=Iz00LS^<;!wfSvp5dLjEdl0l(~_$6YKasiw%11z4if-kejg_x)tSP(h$^2ZZP)k{b5LO4N!! zULRCCl8mUuNuV&MuNh{ypS2g}X&k#cC4F`|N`=X3UiNpdckMJ%Je(f0=RXpMeihRE zfg`7!Tyo@vl`h%H<8GWt{%OXWqWu}t346y5L<08AS#~TgkMhwDB>+c+PK`iic7+Oj z;N@F(BRA5Hf#62K`s@iDa?v-@u^6WW*sPe71C_D{_eXYSZ~ARQDd#1g$Az zl!@c8u*o0#8j{Wqtc{VPc%0_$rS&L(5c+NPrH#mUPS4yB zTu+%&hl=^Y4m*qpTpz--M{P03l4aD-CJy7&MN$$#JEU+*FWPJWRa0UaA8^{<^v5%t zewj1pyxfv!)4YA@?sT@!!RU`M4p!!>dv~YjG=&PMZVG#YrO_>&pRLNN+Q#_WJbt!5 zmC3QoDO65n^^hrxE{MGo~fbFjUA3<`!r4zBb(XEdJA{GsjfSS8L*o&*D&f^Qsaybj|ErK2R+e zfc98jY_8U7#(C*aNU0k*Kz;-0k%DBr2(*j3ylxg@Sls zOKMXl+^Z)bvV5uQ_SSwk{*c!s=JW3P7C>vQe?2xJ2PWM&+!4<4SSq_&A0ql z)I9$>rtjo)BOIErzrI&${T*GoZ`y2h$+xL4!6we?h@o}x1e!O;9y`*GcLwM_g$FvY zx?mhi&fi^(5nU~B>qxBzibZ^LvOw=(*Q;z$y~D)S zU-F~5m9;_A;7-)$zKQ52rb*M&Tg!@t3FtnTrx*xDk5>`wn8+&>0UN1lhg!}u%_2*W z&t5DrJ(s2tRpbRekSeTs#8`4_xtt&Q?KQ!yLl7OsLD0|3!0RO?%oQu+!}4KLqviE8 zQbvz(=dzm^W_7UvIc{>74!BnN%EY5o8b`l>Wt+JX?--a2r{Ye=(`&I}VQao0KX(19 zpM>inv-Z!QUB$BibgTP04~|)g;dlrBE{QXtey;1X8mT{5e$Nkvo5=>nc-!wam_nM^ z`JX9A4pc;`Sp*t!I<|JJd#M-8&D3!^E0!8OXBK#g_^pwsT%qt;+$p_GTngjVYM=~< zab@2SUeSzmTwPpx`g-9RJhMr?Y8CR^Cy!Zr(^)tRX!r=zlWED2u0`~OcWFtc%b`ee z556*4g^M9PAHnvQ1r{F=o2DzbfAhQk+fb_Q336+}NcfLthd7n*PM#4bv_>tq!vnHi zx2xrs^V7KQfB)RCPr4>nT*irO%8`#;thw$Sb?+61wWNKKN9$eYbtEC;^c@1-{YRR` zLx}cZem0l}XTL2;Crd}_+|$&dyO?`u)26N_NV6$y?=4qwlZ7{cVWagS3B#A~yb8&n zrpbf*E(PZH(W|(|LHQvQVK0Wwk(~{EK!GxKA2n4GJ>rZiajQ#u5u)hG{FZn-&o|lR zNoNPVuEFjk*u059(43_7rgd80OIx5m{|pmdMT;eFTQoOtdr3tP?uVMP<#NgX~a5zsv`ut5kpg$9YjA{$1XWi;rJVbAnaC8>m z;Apn~OTsJHUNfa|mkc=V`dH|@Pei{ltOoa>&xJP(he*nhhu_lN)EjN3Zs*9(x|C5~ zfvo4e5@887_Zhk-Fo3y!=lE9nS4=B>X@#^!{CHy}-lRCuN%P&XHq%V$k=fI6nL_Or zvd18PjWTyfhw_&}8mL`tlS z@}^p#qwkHRxLH*rWH6?>xv*PF&u0CQull9Z17)9W>RFEI^Dr6MeUmoyVM}6t3NgAI zU(*Ggrx85dAjh*Xrm8Onk<_~13l_k*AphX zEq4th1^ebSUc2b2{nMipe@Zd_$h^4P$g{B|rpVB24Mmb0*p9IrGQ40YXGvm=I8Eul z!1Q{}Yorqz;`X)k9M}UL?AxO>NsRfBkAcfjiX!I>JviPmBpx**n-$Zp@BPCI52q{Q zQ8qs{NaD;0+Qe@;C|rd z+m^p?)qRP18KK?qGSt*oO?%lI%hFu-p0r}tQ#ChLL=kyJjwWb(%m@BJz=HSunR~5z zO@LXj#KY;hE;WYu4PXZ8_YMAF#18aEqdi{86>8S(-()4u^6bv|v>7}9IYx899Pv_W zl+rV>Vcq}_ni;6W`F>XLr!*s_KL&O(hVdr@$6|SI72UH!H%&sbsk701U=w-Yu)JdJ z*4cYQW$!9mcfMubM=P@%U)KK^!_yKFZ50~NT7Feia0S=jzUEpPhm~KwruIL@hob2-DE96(mt^D->?^emLT=nb2uYdBlOMjDDx>RPR>~h(EJLP}tY4HO} zVa2jPe*0_bl5MEp6qYPiSh84$!hm_o{M+=vWdHV9^4rp7GRtMbG~~evC2PU-mo5d9 zmH{&cXNQB|QOgu$6t@~2T(0DBPIlWBWy4#KUarviy`XyCi8g_zk;m2Bax2%XY}mMI z`wlH_ot?%edrbH4GqXHoWo>iV_Q=Uor_VS#IlFkC_qyPH(Z@INTF~|2kkA_uckV_; zMc<2wPk8(!k@_?#IW7HFMrPLQ>^Fr)#U-U>@5(D`YU}D78b3CDYVYXm>Sp!yvUvmi z?}J0bKSoA{Q`0lEqB(ee;TK&?P)q+t7I^+I=~4i6{q}1OWPj1M=(wsR9a*l1kEIv{4^sl>fM~Qv1cyrS138M|7*10Z<={D=SgT;jT{?PV)Op z^c<|TdP#VmSaUiEyLMFZywy3cwHhsnN5fV$PHKKw_LpoW_lCo*5u*Ges@jmTn#_Te z7~B0Y0tX_jofRiJ$m6UHVOfdMw-D3_yRPj=>hiW%i8`L*(`B|nwxoBGrt|9O&qg#U zxQ4eKkWqH{+p$6YHkjS78UC-1^rh|pAHV)rSACfIUtJ?;Wp5UVr76$_;seZ@MU*!s zMt#>KlDCjh=iuYMP9REJk~(-Ns#zr%6}YY}C0fEc%T-X#+>H+Wug3W`ieSIIXjYmc zaT8yH6GW&*)SdjXqwo`+n_9yV|BEc|&WuDbJxY%Z!?T)A9sA1+ZPZsxo6T?QoBPS!w}=YB_V$Sw(z^)W7b7@D zgSDPFyyvgpGkA!m23X$M>6P43w?Kl%O!n{4pcVOEAx&)h3~%-lz;R)dL(p_0-H{XP|_U4 zY>ZYM)j))uR1iH@fPMYoIN7X%s7w21wRRDe=wP*o(o0vhVl#&5sm#m7zA;N_tlZW2(cZ5%fdd+ThZx^o39jxqv%M&bU5ac}!e_7+rUf)^aaEXYY5 z7g4oI!8Q`hlVGuVi>Md0dPuU5dW|Mr8&Hd1ur{4|vWSZGz#@cnWZP=kdl7ZGL0ZTZ zd?mJrl}p=arwv3GUnwl2 zGUPO77Ey3y79v->h&qUm0UrW)jopQ-1vF7TkRq@xs;w*_aUi*cQv^km_ek_${^~n4 zMTsfzf>B7URhK@wW3a`~e}nq9gPQyZq=YYJDK@d$P<1uqH}THRlkoOM)Wm(Ny1Q2- zKElA3BB8yIg9bK%-GY`bLv(?pe}11CVvejX1jAjG;NT}25>LS;rebcTL)z%^Q8Vju z70Lzi>5@+3=%Av<^F@@xa*5F*>Xj$Cmk3|jwut(^Fgw|kg{<`B(ffiMU8pyWF+J1# zxms5HOu}nI4#@!ylqPuYxe&Q^S+K&lBdh9~hE^=1hM%2)S`D?Aj=KC^kIZ|zgDE_d zVBz3Jl+5}?RMd3|84k{Y)#vJxt*VA=0#wK18>I>SY*LBX{y}lM`svOSO@k|5?W3wy z_8elKWJQqs7g28=KcHc4`Uia*u2y5!dS{PBLP-czx1KQQ>#p9Z(G-JxI*xv#7doei z{?_#H@C$S(JsRR>Vgx6l4U$#DhDTyKq&9U`85|+DgAr9Yxb_p`MZKGQc-W;Yx;0@H zactT73rBAR&1Yiz(h>P^@ecR~1n;25;yob+5)rQ5UT5Z5gJth*J(hqd_?exG+@6AKG1xjW3L`j5fp-w@F#jOR`r!3I7C~Cv{`(&szHLS{vsMW56z~hYiF=$k$Y3X)$gIOm`7H!z*4R=r$5p z7bkgAY8UeJhUf3)ZivR6?zZ?qV&KEJ@>{5%7b5RdTnzVL{9oGAe^e3uUp?>5s7oR( z!>Q%XDAk}|rt*SqM#9Z|aki42CZ;#1&s0Q~W|PA@G#CnC7t90z2_=Y;Dy#P*r+6K;5i^0gL_ zcd~^y?jmLf?$7X@<(ssU)XS_$*Q3lo~?>3>H zZNRSATN4leJaoldXHWs-evBZQHh!$Mbj(HfI~LZ#OV-)d;sy4Dr*{V`U$J9gb`Kk_a_rem-P^K84pr>nt|h*R^y7;bQR7P7aLjG9z z)aQ!lRF~e-w_^o;`bnmC0pgF6Z246m*I4hzB`=~%q9p4mB6n#F^J1$k z@`b5-IVc=AS)Uj=6rc!sJ<9Ykm}i`__A#24)0|%JIc-sS;pnQ2~SopqLw1- z;3z(t;vKK1RI{-EOLk7PKRQYCdYiS^<2$3rmR}*pEuw(UxXgjKbH;h%KO_#)G-Nr_ zo~qYQ(hw@uw%ddW+F2jsrO9r`2&P7%@1&g<2>n(a(re7APt0@3?hp#k^bWFN%zZ07 z{pLrayJA^kV1CPh&3&g>G7^v?t_=4RviK)}9h6rQUY_J)##O`?uy-|Pxnw=jK{#2z znIOYXv#A-d&oI#Nn4cdvo6AOyk{$Wl1q!gbDu&=Oizj;(&kcD z+o}wAG%OeO|76v)bF2b0!{fU*`k#--&N_VBMy1j7!oOiA^2AEyW=LQ;soX4H4bx8~ zvcH5@Zp<7_j!Y44o^Y(A?s;T)<+>*|_qNW_cl-HM?;UGsf}>vg6p8M4%vMQe3jOpHJ-&G6*+6wbTdl7YdsGjvXHn(IHh$0OQc7TWt zn{p{^Z;>&)A{jlti1Ot5Te?3mj=VJ^;L*{LnWkOHu(Fnlz@a(NSrYtwx3vIq*rR`tR;Xf5+}}ih42_ z>M)G3Su99EpuoF=Cn#bcq%CzF91t$vGIAY3cg_ZS(_#9d;!Z7!owPMY+=TA}PLbXs zs{013ilioeGmwI;u=Eli&d;Y(ZxB9+Q$oEJp}bCgeXqCp=bxSOHzTVb!~R-#@Z3~K z#PB^4xR+~7#)emyFm3+8}W) z@7pW!!sXp;T`|lI5@nwk%SuWB*MOeU_nQ$T@+p8(lhT(E_az2xv4ltHoi8>pjWP)n zKR*~$WjX#sBXI-&;Kr#h1ldIt-CkM_adQ#iwA~Jt*b0Wn#VX^$`7lC&f6on)3(CVd z?XFd(F=Cq*Q55IUMU?f}BFbK7r+e~UOD?C6gUFW%0AX@s{8`cxI7PhCmwk=MzFrZR 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 diff --git a/cases/smoke/basic/screenshot32/resource/notification_bar.jpeg b/cases/smoke/basic/screenshot32/resource/notification_bar.jpeg index 3df52e44d3ea6026c0ebdb4b5c23b36942002ee8..3bb25b4123b6cdb37fe79399afd3cbfa46f5a8cb 100644 GIT binary patch literal 63778 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 O%!tCovu6FL`2PSbAj4Sz literal 61336 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

HR!g?;>ge3 z5*ll>AjE*^5G^hX2%E#uXgnxyW67;*AQ#+i1VgVZ79Rg+EK8~x?Y&PAzjJOoCKJYn zX+q|~y$dF=kTyIp7LjF9ElMKi^L88!jv@iD@d?5W#03LNnk{(>BoPP<@28HX5D|1) zVfY{|ih+PIT-b>8TenrdoQFy)OC*dUb2<-W%*xY|N@0aE*3AWxh^Ab3_ zu#vHp!bsSD{029SBt8jJO;WGb!ZL|8H!!|jASMzEKtO5OUb`Kz&R||>P7`fM2Qc7o z{DOjnOD8Dj%~gk51xrP;&uFdUUq^=}tJt|L%8|RmhF25_1$Qb~oo}^a?U@_;?X0h% z5Tb;OG3S^|#-_XxRzV9^1B~Nh@oF zi>T^_=fywbMV^NL)hCON$;ip`B!#|?X0#?9am1IA6P`@`4HiM2p%ao1aq!J63Fnd= z39jH$!vE~_QY2ei-C9$K;aNNT3~T+oTzQI6B!aGCq$}>yz!FH-tF6k zFVzN;szC1|V+b~;Lmdi~qdU|J`)cl$OFUI)=*($Z6Uu9uk9;^IMa!)q?y7}nARgrb z${6qj*Ke^FUgTgmTYwW?ldy@xRXPGk7)Fp3$#M#F$7r>z0JbtWtG~f=G3)B#DKIVS zLd(veL&%3f6oj$+VmCseswEt|L*Usmg@bpbLdfl)SPF|sP6WUIxD2o9Zw`i2%Dy*rXL192KwAK;zlND%#H}XEv$kH z0PU?p|D+HF2b2$Mqb=+SR%3iM-X dis+Nh@v3O(a?aPXa~EI@3Ch=`z4g=|5(h>8ek$Wjo2P@0;79?4@%YE*7_de%$|G4k>-gCe6z26SMwNjXCty#t#;~CEw za|(Ne1Bmr!Pn(=ZtXP3StbqRz!al@F#L5-FUcb&Of4x?T{5r2*wMt}_=xR~X-w(01 zYedD?iiwJ@kyx`<{MQTqv`#{N-LEgdZt}NFSFRQjSuHLmD)xJk|I|tN86mS~)o&|X zL{@A^tdvX3X;L85(wPK~ns@0-ma5W_00)^}0>WhfLm0k_k7%m+I z{~xhRX0`0L{l`V+EUt=eza@X*;nTNkcAUtqRIqGi@6>j>9lTb2gW^UdWz}73>bv*o z=pNKNboj{0Q%0wa&zPLOc_ZgXa`2~eV#h*$_tEy{i>*~KWd~Iv*=7_GSgFlCcM@GlS zIkR)~3*1F;Y57;XRv<+F)-3q^zigKb+^&_s#z5>>yH>39hYt~%Rjaq{7nMD3A$Ika z-1Y+x*T|oE`Zl+6?G9~Awt~~`R`Crxb(pH0UrqbHW&e8(3;uu9vj1qfkp_LlJOcR_a)=i5q~>als&jsU?on>3);vg*HZEK)E>|9U9tgJ@J72;`7DLu zCq(Ec3lZqKM(AFPn3s`414tfR{7hIiaUj6A9;u8~P4(PBohX>HuZb^es}&-yr^P=w z@>L^5hhiC&oVmi;DeDQ=b5esFT_pIj$@F zLx#6YW*)gU;whqbDzPqUYo7Ah-($NK{Gq z{F))FZ^1G}g6d)QGaEn=)53PAxN3i#T)Rt2{P;w(VA68Qsu(l-m6}S$KY?0FYtREp zvmO}na%m(1QXNG~XYYO6!Z+6`ruJDwmn=-V8Q7k3hTbB@XU1z5fYzhIJ%B)?gtrgw z8d9VX5nu4JIupB%MGm8~&FxWr!JB_W!yKMV#0!HR)aG~H9b-%&^x&>@~faDH?U{} zb-s&|3Uc1Sqi$TT$2P809wETZ4I$+Nj|z@rBpD6a0i^Swsl30PF8Mhs(NCW0L;M<# zS}2?Y__E!VLPR01!f(*bntNS{2)@VH0~a=5=rPJZ$=OlK@#MHOCa~muAkAnfkaCH- zI9^(CSXWQ~Dq9a)6YauN0jhikX8KH7MvHX>@PzjbfGI^hPMk#d^Ls`vp zzz|tbNN%BlI_Z!ZfmJUc#8a0|9bo}ngXAlqq37QPF90^JR)}b{<2gfXnge;hqmULS zEEw&92GxwK(GMLJqM`kK(qc$Z^USPjU3O=pKw2V#YY zRs35#BcQTE54qA%DIlir3`Y#Vmv5Zzz8v#bC%4vXZ|NgyMZ695KIZ972v!({r(g15 zLsd=H2jICQgW3R8T^580N^-zhNK<O+UknO@^uT~LuveO09J#2dzRxMDJQ`r z!_6Rr`R*kz2(+(PHV@@{y)jaVPfz!xM_C=1=&EpJq0FWPk6;9t$IRmjP<2+V5~B2)@T0QQaP z*Bl0`o3Ef)xjaR{7gk`ZA<1?>Gt-*bALEvd-U`{J*rHtEr~QkpCaMPp+>4na^KL;j zm34v`eh@4AK%aThe*1~#;y%M>RD|jr(CR{o$NVso$CScCO-$tVdM%=$HB)e}kAeVv zo)!>u3Mx?c?bzdk(i>hBA~yyknj|(CmJ%UbBX1Oc8J6*Sm*mv(_OzMMBe*v5ryxHJ z4a46&MaFng*%yOU>Up=hbQ+{UiRRMsV0qt5>GZ?2qyhRu1lzY@u3Cs#ZQ3#t3>{V4 z4&F~O;g(Q`h|8C|XS@a+;NVU(B8XYNkI0ejK2DIR|T&CekG89d$2OBEk9OX{4i|Z#EG2(&*q#S5o zeaj=)#)z8%_cx3>1T*|X_<@CjQ&>GAA~uLAMDRpl#Xg!@t-#;o`XZSRqOd+t=V-ZuHc!4wZ zvzT6!3(z#YkV|*qPKF;FuA6u@yh{{5~z-*=tbkTasYB8${W<>eY93Vm;HE4E# z2Ays`F*nufB@4rw&f;YTDNP34KF|c)(!Wz`98tJ+<16 zXT*1cyU!mCIS*fa-{B|^UEQxxim$Utj<*Hw%jY$sehF4mpd!8IT;YEkNrB`s z)tF@w*dRTO1)??HY%x;ftCJry=0)L>D}TZ&8O=1p9uy+p=rBMZU9?+C0v6CsAfEHyRzC;|~9fm{->^|s0J1}sCG-&kM zZudXk@%I`P3s%4$(&rL%UF3rT%YVElTuJL{pJfr)+C01sL@TavPyNT68vj$3wN|#8 z{L@_t|4`>EtCQpY@utXssPiX@zq$b)y1%;NcM1Nh8~%;D;j#&3&DhQ2L?%OKy!6hC zQMEa_S>43p3pf(r;zWG3sUM4S(DeTj8e?K|1*H6P{CfhCM7tp-8S63Aw zZ(;Nghe9ZGN*dablrJdG1iq}Sy13=}+cDUE=ca+7f%-?Jxt9ritY@5&i?pEd1Fw2n zml#&y6(rjzxSV}LH??O&O3WcAnL5Ms9dAMwjl@~mlE@+~s2G8@1pF5}6Zjg!0>b*64Z9d9bUu382neyh3hc=&f4(DD18dQH2=Q;E? z5}Nk)-bMCV8OEFdx7OWCnrCHRa6#|DZ1rL&!LTV4DK<&Q0vyzUc{NRb^dNcj;ys^- zH^@>ct3SS2d+OF#bkNpFRLs%E8owD*KDnN;5^6`Tou@`(Bxm~Vx18Qmb@V|p>&ILe z{?Z9-iSez3iTZ0VzDpvr`{mM$b#|q@_4fHB38Xet4XT`TRjS$_2@zB&(`A2yt#^_i zzFOC<%`s(3MYD;_x)P2yCYa^5Ma(Q=c~;|$zsb&9^|3pY$a@#167WpE7iW$sT^%i6 zjR7M#if3B97tX|*8ERTVhth~Ub~HxKsoi*)Evd*Y7m&!B3lanctWlf(UKsAlU`G4R zBMK9}c5A)Mg-L-k`KTEu8qoH@z!6``0SNkXY}oR^Tw!`0q}_JMLHC5K5MkYsTvW^z z{Cp%nhm1fL1Cu3eUbS;g0#HYm@S5TFc{!(#Qucg|ACaZ4JAEavdhym;{RZhn$mfXr zE(#-Pb~huBAlTgf0L{*W!O~!12}h4bcm&CSS|cpAsA)HXN#6d#&d!`vqNw`MC(`?t zYz;9Kb&<^EPYfmgbV)cdUb?Mgm(bLWW?_v)nUt1rs?&X24U%vU0 zuG~%%6XXGI3}isxSr#z3IMR24eK*5pWMj&K242Hd3L(7Rz+I%<{ev+p ztQJ_s-^BhJKx3(7X~rk{Y|AsrnP2+gXzLQ!7=zZ@`18rnMUjeI3^pCJf?7mnZsM6o z0tL7RF6kpsRosnbs6qFZfNM13F%_y&K(-K395&hR^Y%NK39Ju@zLU82o#~G=d~_F% zcHPPFO42pbwR*dG)F!?YXwPnI`!>PStD#DduEpK*&??EQbyYhAN$W(lh{2pjOb+h~ z)JRth8{}BM<;+yI*_Z`#-4`~QxoU)$e-BK;yxd@Xwh2b3d_goY$|~1|O?knJNgXS6 zNVzl9C)`mfk3$Gv_@cW-3ql_J2DJ5_e#a|Xc2RJ-&4VyxxA}@QFKpaO6C5C)`)$qEWosf>1xyBAJjqc( z`(Mq#@t_h@$2aFiJ+FC`m_4gI=YBx@A?Yec6<4{RZpO2N+N>#>MR}NwY6MmkY42Ke zp8i|z=HJ;1X6oFUp2PKx2}}9h1VIdLR{)t+1+_8qh_zmr)%;@)J9|8xFXZYSRQ~bl zFn-fR+VkMGvf)2>L`iAG>vqbw2S(hK z^*n20%t5!tv6;(QBc?g1L8>#8gA~3|S;)r>smTx0&ocuOt1W+A!Q}lWM7%e~B7B7i zgB?$tw~Y$o%T3iLjW}pC!9&As0h>MSRML0GVfS;=GGc8O#>4}Q_w}DKo}Mme?2CF8 zh`SP$5*Spjb$RoK<56$L**T8MVI^xFTOO69S@QIf3%2(Sjl|^{M`8{vclkfcv3xex zp3WW4nW26E2~oOtb1j2f9brOZ^-8v+5P?U#0*YQwu*MvzNEHIp`@HQPfmVQXai`dm z{gT~@>(Uzqy|AKz?Me28BbR!Yau4>ZLb03J=o(D#V6BQa$8OyEK!97-a%k5}52-Yr zyA03S{LO7fN`lF!FY5Gu0_LIbf_`%K&FwirX!+qmQYb~8T|8y)qWcOb)#apekb{fc zP`LT_QYo;!_cTfkDaicfvxRTLmc~=v$Psi*7)2+*>1ZNZ5lkM|l%1#&B5qW4ZZ9dF zbK>dJ5~0ZMHp~#_0{?!Sp$=#|5EiCy&sJm=;N%Kg?o4>-YKm%T?m09wbt*8fF@7Ai zM=5Y4?4(|1QS-@>eEY$fE%X32u8AOPp>IOs2hIVg*MsSdFrBgh7Vlir^;{#FN2Yu8 zUJ-sd_4NuR5%ZX-LyQe0Y_&&sFrgpEEQ|q`hP{uB=aJ#C4JqF5Y&NDfcRV%SYoIFQ zJA>JayMWBnR3CW}e0>3^}`e$E?>y=Z(c0e?NQ5@+VG#BSyd~a0s=4_%z^w4v$Am z6*AV@j2E@ILmLX%L)_Qz^z$8Ry|`rcS})D-K*gcCYxVM$I`8k@eeT1FtcRpH7(7Lk ze~RrB`R$>nSzI4h7Jqb$>xk09qHeU8U`B9930Xn*1)DjIEa^&GDBV9=7x|!+h@WJ( zs8TrC_~N1>A)?p9Xx(koVdLF`8C$6xwB-~>IhFtz46DWvmNDG!Iw3*~#MrcEThfeM zcCm}zrUn2t+}XHoh4^u=4Da&(6j(vOx81v0!hn7L}ZVUfB9 z@Iv-_=$IbPxzm7^Om=S@qpsIYRBu05)WM2unjMVyS;(#3d15y(@!{~q6;c%ji9ISP zFjNb$uk^*D*)t(iSnZz^^o8u3eX8~0ACigdYn{+tjaP^3hhLsPVzdQuf27`L1-QsU zS31Cqk$DJT@4aVycYJAlz9N5@Ua3*xtD+uab5Y6T-7bRfDTD>ARN*YT4ihdrmar;G z4-DdIuOOZhA^3pDfo6P6nOZgzexZdX^iH?zXrtUWAjK18=LJGRPcPRoTh z?c9`-1mtMFxlP%}Q47aO@FhTtcYFyp`B8QudXrb_!D#Jq`u_V@hkHy>37qPkI~#Z( zY8IBQU)whG&hpoMgryo;ORg*tg4%-q`#aUf@pY~9B&#uMbQ0h#|+AD ziad{r#HoVT?1>tT5?>~jZ;%W63_567QHl1PQwQL9Pbs$5WdE!&Q9kJ!b-W^rhQjRx zs?3?RsC^)*S`kuiqZ~5TF+^}2snW!E-=%W}kGI`YM~+f_o~eezK@)?ZjF%)2@GRuu zQYEq(W}y^WE4vf)dahjxW8TmBi= z|Es?%4Bykb%7Mph(h03bXFY*!u-*JuSZRsT1i6`BNjvJNXBJT3g@|tT_ablpDLSvd zGN~e^lI-5Cd`XCy?NTmd7uRY}Bphz_J6E6SK^k3r>NXa!TLXz{L7C0tcC!nF2-i+c zV5YMJGxyaFF&`y;cAtU96Zk4kMSCJo!yYr4bAE4Nkv|q-LMXw+(7Wab?o7H#r@4Xf_#8^wTe!Qmj3QR&6Tvv?bA-Zepdm{*jn|)la<*5 zW2RoUz?6xlifZZazoEZ>SL~hk)S9yGJQQ(g>B@a;b0b8cV+C&;b`57kMap>6HulZ( zyq26D#jSj8-40UkhG4@}xxLaq)*f}+qT$Ob{)`DBDPa$bg;BO)4f8strmXM2R>x?0 z$vuRFJF~SB+YTXToAA@>Z=`iO#*>X~avg46D|XZ1nnK=$!^$sxwx2lOf^vf5^x{(9 zaUIv|OI}dE!BH!fM4mXV`JTZeyYtVP3|YHAyUL;C-aZ@&hZr3~dt@osQ(dH%4E#px zjkGK;q*kzt!_$&J&lDt>hue+3ybg?!mL0u1^fxi1k(DaS1#C)~u32$RlO4!%3k7bcfF*brVIdzs*^- zC^3z0?BljB&ICnV4+jBbHz$n#U(e0>aIzLHU*I4MPYoHM(C@JCkS!gCmw>be_Ei%YI+JCDQ|jRFC}YmJ6RbLpDqO*DtrU9)o{^ zaibh{G!xcz!9DLG8VF|}7+GTY8*1(4FNmVKK+VkZo>cx-J+YewL`~MR-4%- z$nRit;kfH(A%fxhS`eBJ&|U};lxBzI2fKl*9*ntR^h~}ncLS^%44omK?p-`0?T=E( z9y@>j5`j0_NmpM<{Et#P|8b?Y`x|l0-wU<=ap7OLhr9K!&iVg`dBrSaQsx&t=+M<2VlQ8ho^HT>GZW{ z1fL%QHOZl+8%Oe&t6rZa%}&2E?1T7FjpD@tu#lJ<~0rQ8#MpAl#n@`l0*bw{p~3NU;HZDt_U1xE6AyC-m; zuMw~U?)}tlBAF3oN&K)&^C)qk(h6sA98M0`3x{@(VI=SLWd|jm#<#An**};e_#S(0 zS)cSE{R*fCiD$5tomr@L{EMxWogOWO12ZP&5$EPM&+cGs4ybVkcW#~!@9w$3H=opd zUtbMGU7Y3;3!%FuOSkLX4C^NxyAKEv>0Hz;E-IE>Go+7Y{a z>X?dU$O99l&kJM%>l{_H(h3Im7t<|;i1KuFF0@wg30*EQ4)($<4Hkg`HL3qE1dUWUG@S4K<+-Qi1em0Ne{yBOfGb!^4`$jvJJIu&@b`9BuR1 z@O3ZN`07iSxT)m&`3lEG6T+&I}S4Zx1%l-D-J6J^&{2OrTDx7ZD#tf)qAEV{WG%Q%A&hpkoB1jklN#;z}}OYeQ}aK z>Od#NJ$z{X7G^6JPJRq7=U)VG!M<7;Na7)(HhN1O(_kb@M~ILDH`T;?uO28t@!sJi--WgPP< z874tuB0ng&Yh)_nayOmQ?gc&HoQ%@`N?6P#=-efL+#~s~*MC288eTZVR(+LaV)ah; zNMGBTZ!;S_E$O{$1V8b+rN^!qbL;u?63`>$BP4ivoWy^4Or_B%fL29_q;4(*V(dsT z7>n*-&wl;7mK^%FE9VA(e};p@DNci*=Es=hIu^dXbX{xiL&00zQS3U!dr%_J(0!Q^ zmeO&3?^K}&_Kvq}g8j?nFvx(?pccO>c2MA^uk6?)eKVPI4WzpS=_Fruqi$5H7Q6AoR?{EZDqxMW?dNviGdpcsRc+iRwq1t-r~Vkp5aE} zFdpkDmoV|WAGWt*^vP4k94d?39IojWNePW_VTG8COiw?Eh z2+iRgakx&5GJo}eK*JvFXJt*&d&lY7jyu}k72wB*-E$uHZfST{KMW^Y>5nfd zkqQihlkp?^zHh*#Dg#%1fQS)m|f zc43PlX5k5JC2$YK>p158kIP-n&H*Wq1C%F3>_L3_XNFM(^M^GVt91^*K#qpFz@Fah z<~1=_yss`<%dtoy{fI7oH|g45L!<{iEK(;&zi-U$c@^Qv{s`dC&aF$%i+Sr{rFGJQ z(k@s=?0CJz*EnPKdbgvPmYRgIqLkf7!!6w~Gbv419Mo52YyfT`=?8!?`Y!fU@Zza1 zOO2!M)Uj-e8w#o0LvmAYX-NRT$KakwtsZ9&&Lq;H`{f#a!h{e};1@pmp>;Kf{TBi)>CJ z#f|eL9BGv?xnz*uB}iRb;sI)cvPPfjq~`;)P!-AcaySJ| z!Vwd8?=*>3VQq?MT%i^RqYu|lFILT}H@#V(qDFp}6kJAT?s|2|5l}X~KE@cTN2czx7tKl%YlH}d;f^tt!|kwm6L%Kn zn*IDyWzL_SO`E%>@}&C}UlVj0z<(4p zHo@;Vpawd6vN|=O5t8+a+;W=Bv*c`S!`1jnBu1FbVMzxu>f!uP)Gp-0<aoZ(&?ua&zMd z1_IAw;q?GlmS9VmNobtS<$WuRfHf{0unl(QV+0@3?$l5rqG0ATp-;v95l#cVn(i4- zKcC_~U{jcZnQ9HR{GvbcJ|$|&@%oi|wdJ;;_uOZK3>Dg|wX1Ez^+fwesISENfzXxZIwSQ1?Fs`yDiR$n+`t7?~Pu!X75cm|wUV0Uz0cS-f zVLncxKLVAS=FF~q&bom1ntnA7E`#Nx81UHx-8(y>9NJNG;03l9o3}%z9{MO?+`A-r zyXLMhulEwLuxRVFE-Un$O{gLUBPhIHv? zuJI^TGqPlsuv}(qpyA6Dn~Y{Ra#;cxx(&QV=96pPPkJnmM3cneZ>KZPvF5+Z&p0o;A){sZY#-UDPjl^qt4&lC&4F{BM#6_gryoh?&2tDi*m$wz z74U@y-y%Iy(iOEdHhgNwoN)#Ly4O8zSY2m^jf4e63?5K(zLua2cL1v)c+*}}Uq#UY zomq*JM!N6s5DKC#tGY%Vf`Tv2Il*2@#*3kEPIJ3H8+r%bu2;)(JIp(I_NIG~yu}62 ze`Q1|z?v^_sR7f&*M8iPkRaz@G5O%Wz28TzY4#`7n?ItE24}P;a^VPaN@XjR-35cH z2EP_uJ9-V-@Ca716H@X}?y&P4`rcK1#E<`R>1nO6m!D*ZQT?sq8jXY_geif0of;dc z(wIao53&p_`v5^cZzuIzhEfz5#7?gTqzrX|s$Q_0ciiI$H}}Kn{s7-I`R3B~X=|}1 zE~PcjQwNsv=C;+R-2{pz83h&f!RXxKHvXzRW+&^9=u!wn<9du6u@|%K1c^OI6n-9Sx>8RvLa?DXpZz_@(tH;V?w`@{%FbvfSbaWj>K&bK%Q#jBU6L&Sl#sr8`5qmCdvlh?V>-r zXu8W~W~eS;!XC4wTyYQ?ffm=rAOcXePu+_XzVG_xZFwf@ordihMbT})6kduNarD+P zq&img6X@o{79xz>{4nxZ50Z8F zdFwnnydBqqbft1sNZy|MHh$(G8-lo>D2>BQ)KWOOJ=A^mJ{vWd9zu0L<45fU1Kdus ze-Nt;P{)f)IiiW0lfTh_I3RZ&dRvM=&V#e_nVF1@hRV2Jm4n6X3UUPYg zXJ_2u^|^H%V}6;y1-hJX)2}W>5P@v!*9Qk+XZW8zVk*Bp$m#cDuwf<=vN2zaytI#f zo=*{J`;QgQ{~pU{{=BRw+eaQ~q;_G3>~*7AgeCvwM*e$|?RfQ^bya_&CnNz0*k!Bl zLj5Yn1eOApYx!BQyZ_Hzi1?mYgzOtjd#6&(xzk@Di+2AB(%gtQoI3}vm5RQwdVEie zz!$6Ih3wMdbdWMvJ^Q)gotS7Klq1M2+Mv?EWE4tqlF4M*kog zn}6q2+jXwpYgu8Wq>>y(u!EOsMLq0*zy6zrjsElPG(WHLM@t(HDZy?pCw7h6_F#qM z-ao)pOMA(fH^b#L?lX>B9a@yXvqRsUjjAriky)lYHr2ixkI<;qIR>$}*IX!1)PDH% zOMPzJb1}!%-(s$~?m48ddUlR3X38;VVL}Zh10*hiaV%cM_I8~_pM%pj$yx*VS1f$k z#B~zn8Oq=~@99p#E11g?6TK4EYP%vc!=1~b16G=A9Y!v?gCCE$B$yzSB8M#o=Gtj2KGjh4zQdLH(G@`H2CCb(XL8%e`kxWql7$%DR7)@1WPi zzki6Mp%nJbN)2^q{I}h$=|@O&bBtHaX#lsGBqk`uC4_uY4SdUuG4n;QTcF7Vq%fx+ zk^{=Bsl9fE5W&kYV=T&-YoD=Q)F)Tmh3$53^^YUoslW}yK zyoKfUU9DrwtpuO0ay>3dK*5RPzVvTz$EtDc&%qhf-?H3qXxdjBuIg9_h(~KTHpSYV zL=kB@*j~0AB(+MAfZH?Pe zc)K*^E@oaDFL0rq5v*DgyLTX|aA|=D_gdv=QodWAgu&l6XmYkWbCJzarHZyZ+WNg$NbN>Qec1+)*0XiJtgz50?crDMIFHk z`4Bx&fn064moa`2BSm$RriWY!QnZaT?iPK{egr3rxs1yIIR&NrVen={9ZJ3Z8{Xix z#qKu4`DFYavlD+p5i9?tpZDbSr(I1i-{(}I}E~fhe?HMb$#$6TdL@Sd3b{P zBOl$eFDs3`(``>Vq{Z5SU`J>D4F7OiQTn??!U2qoPf=vkvo~A6nu{J+oBlb#*{0$)wZ5jK_L@%K*+W?~ z=5+h1UPIIAjQJ5bfykrY7e*uA8bRQoH8v1wnfM{2~mr*1v3a0(p_&mA>5 zo=@&%miqWEr$}1G?|HPR+STBmbecTs_&8&50(VmxCxt=v%);SK$oO>tm0HuYG`;SxHGrjM9x{ z-kq-2YF_{LIY0!X#uwv|r;4+{Ebewe3Qix_!@-^?1}j+R2YsYHscQ>1dFUJ@8kHts z@);++hU@N~!csL3FL!@O7i0MHaRbJa+dNW74G-jXmzxcm%U7fL+ep%U)s)8jnO=Dz zZ3%(Y(zsTC$w+2w0s>epF;AbznteSq6G& z=E4r@8S1tzXmDHFkC^lfT-S0=bdB|fZcLGM)V0R}#?wCu`&f}}T%5CG53ks`JjmWO zHFL53e*c0qpU}FBrzgD^aEmAG5E+EfPwz#8L-QXYRSRd=~+p@je zA~(j%Tf;j3tIq+iPdO=Z&3K#eVT=AxGoUNE#}o>S0N89#5}#y8Vq4f`rwif=dvtBK z#r8}bk*3!$#`)x_#IsXqW<1)3wycLnz>Ao+ISUbWnNMF1p%MK3?7`2ZBC8UnPe}jv zq{UN2=IgY{r%3r9o))UzeQA+`Ywf0lAN5FuGTu4AkpRZH4UIx2wJ!QrlllHp{VNz|(kgj3Zr{qyqY|t*aAU7%>YO1tmA; z9S+jJo=L&CdByFPG2*rID5Uwe5&~UW^U z0ncHgy@q>Q!&G>({O7r{PQgcbXDcB>DI_Dnnn~lLtId^7-QJJtsci3%?Y`8x9j~-K z0W*I>6^}ZEn}F^SJeN1wa@=Zt*78NV`96acM~_F=l%5U=y3cjk&azLG)3IpSd!xAMqKE|@c5I}?}4PUl_$LsLEA80)UWEwoTSQ$is~awJ;B?(J!)xo!F-CSqEi zwk!V=D8lA_z8RnfGkEfpouggWE%b@5Wn@T>?)#hq;9z%iyoOhfp^7FD0B^3-K6Kyu zMSy9Y;|31t^A>-W+C$0_>?LB2-D%3TcGtw(dow-Pa-m*49kswHON&wBTA%em$v}N+x1P}nWT7GLDyv$M9J3LgCqsV zQH$g6-0l4PbPdkDn7rzxhXyAUe-&f@oiMUZSbgwJYxg>Qz~J`R$H$H(oSQ|_X9hkL@{ZxYQFef4 zOx~9rln!ra-d-Xq4}IjYbG!jKq7-FKgEuU)=F1Ul=xPyral3Kdw<|w*CYZf0Ob^ph zD4p{z=<^CFI(-c`{MYK^cyC|K@fiK4Uw9Yldhf`-dL=Vux@+>mrp>oYCLH^v!}Ir+ z?ag@jrtQ(fjeh7WH%M+A``D%Ou&7T`Tl1}(z8U7H$kTz2$RBE_E?vlcgV`cSc~_9Vo^#mTz}v8BOQ323ceFz%6u3#uiDe5C z(3VBNoJ&;QMZ;5BDj0AlY8lOUil!~2mI+{q%60(*x}-5K4f9N*6eU<~P(!h*12dw> zSCfP1)eC&YD_Zmvm4hDLs#knQlwFF2t!>QK+dmtIqUM|LCS9FRX)=7~+i{=xg`ob+ zt8qs4rgQt)y2NUL9>?@6#uqrCFF-AM`JX5yMf)Arq(wH#+MCF~oc;O4Z^oMHO78U^ zK*O<#Ht9#CeE+H+N2?sS#IQ_>?UTy3tKu4)nD^tj=#Qr=WX~T(?K+dF(o>x60wi-SzjH zU|`9}^}}=V>LN{sNT>mJ-4wxiq;i1X=TlxAJ~nPi%6aeEZN0cJ0_Y07?O?i_V8}RI z@&@{b5ub-QE+W*eU>0{^jew(HbiJKs?HjIF!ZK(@xq)j$796vF+j>mNQIqZSSpWW; zE1-3qon%r*T7PZcbk(xV&fA2WUU6*W$vJlWXBCl7iX!N9t^@d}o3htB;c|bz->uCz z8x@H=;Vr3 zUA6f)zYlu#$h__c*g!+lJBNw>t!>!D=@P%`E2cP9d#5%JHI5h$pW057T~Tves&l;K zj~vwhyd(dotf=1!3nRovm1n=*`=>?x|Eu5rJaGRvKP&v5{LOOBEw>ONw1fy-;5p)& zg^|MB7k}FMZ3X#1*x%f86r4YWw4pw~-sSr6cP*!+Qt&^CnS$TDZ=EFlryJpQ4L?)<`uVRu`EM)`@6%g#8mSAMbHG#qY0!G~%{m%r zG*4JsfL-#HLoj7p=H}+(c0+RjscL3~_%F}G<3FA7*K_g?0!F(c`z#E?QzL>m-#+$v zI95Go=xM~N57N3!Mm{iQk%PSsRt{3bl&N9fQ%>yuw4F!%ew4|!)x|cbToX&-SBQCj z6TAbiH&ES>Q8*QLd{%PWx5)P%bwQTnIzC6b7lZe2mx}J5cGiX4;5}fNvOocRmyN^r z!f8F}50)n~cxAKL=^&{KBM;B472BSV)nr9W)E(JEiYV94I(gqY5E0)sOh1?U{yx6_ zh7GIYRJ*lt;rUe0y3rtcsaLJX{|uV`Unh3|%laQiGaYDN*wV#W1J9#Gqlb&1lrDC( z5vv;F3T!#WlTyZfU7!}=t#N?;9+C8HczanObRL!sTqm@GeK)ynr*f**!MKJMH4&SO zV_qTaim1Ouk?7T|T;#kg99eA}8%OrtA%Hi`AAwVT@TOE_HP*uxsaZFJ)7$C5^hwT_ z)@av?i-UsZd6^(l@@R*=iB+is6F&%5_cE^W@dZt>9Z^_EYU zwqZj0!)-Pe|9n#Y)Z8KM{2_Ad&5qqn_slzx$U^xB*%&eL_pRW1_P+hUWKJV>+;9hs z;mV*6Mj?5U%%)ueU-Ay}{Xhd|A4&>5J#o3C0J*7J^;=2ixt%p9zM_t(H({M$&4Jd> zK_P-W`72H1nom#HT#X&7_J=9F-uwCB8kf%NSc^AUG#)J-u(G=$tXYrI>*zC`gYEe_ zOPEQ^mIe=hU<^Phyd%d4nk5E`!}N_gUe>K2$eOymitS21OhFQ)UdUUlxl&G)eDr{FC?R{th=R=x?|T-Xgf%$XR#)HAk#aM;{^ z)b2*wI}pEkrR-x#Vso4oCEnqLdI4`^@{{%0_sJV&jMkG|F!V^+vt5kQ0i=)f_TX9! z<=6^S@1KBpcxw|h&*|vQf}>4%VD83JlO@7gK27l4a2M2vWE)HO(&~`~di5kwtuU$3 zjYX9;&TM4CBx1Ckerb78x1mi@dlS_qo_B$$2HBZzJ0$3^Scm7%fO|<{`uADX9$Ga} zWK>*BibhLN)F%?8Lf-^nm_EUVyUfyU4_0J+-S2hh>8aICt(#uvtHHp0u;b3yMV*Qd zp_oOr;xT0*Vv57t1iIB=kksquky#v4wetDc++I)(cBZQiMqY^>_iA)cNm8eDVMhn? zCfF|(Yl%A=E5T~+uRN+B0T?cpZC&pZfi56cqUhRoEi+Viw5(^s`A_@ZQfG`6t24Z#@QUm&Ixr zNVEHIzrQ};*Q98bYr1|erO6UE2idA<{G>)e+dg){p$a;gE;6_)ZqF4u_83@^?PV1g zQqy_`Y@?&J;RWppH_sS ztSUx(wtK^H_SSXl<|w%#vxwt^iy=SB;I3c!u*Nkc*?C&1;U-QxtZDn)kLXkMx+q({ z?u~@{MfSbES^M5ow#UXK$lu-Dd#}?+!Av4I4mIr*xp;XJ&9?EOBL^0%?0-lwNmIu; z^|tMhvK@G8oL*l=S_kS~ieIcRwrC!*8}mO>ZV?pURcGrY(*(mO<4wCoNBDh&FrEqB4-g{NXxSPZhs`RmdKN+3f?(ntaDI@P4B0L%DdHxAFG2 z@P4!?Y9fBysthqckOlGBFUpjOz`)SFUb^-#32b|vMY|1TfONb5D% z;rx{`JFOQkiHo1`2e9ww8lG^;*Wq!7)6gnUQB$!tOc7I%{NMQrzb@Z zN}{VCn@US5>2C5l*tPr<8t=krG)FcP;UuUK+*iBl63!-Wtl$+e@cdrUOFu0#PYY|t zaV;FQ)oKuQy?kf1*Ktc3oHt0hZudIpo;81S1-vQkk9pv3WX)(wzbsOUQH}c;c;$5+{%;UmtiPm{vZUtQ5Y^*(1kX0T5xuSZFE=Uiq>UmgJ(kBmdR1B(9# zdtV+8_1o{QRg#nl6;n|vF$s|{l_ZIY%Fg^Edr~2z#!Mw-$%G=5$(Cf9WGl-|_DUN2 zWW*Q~vJ5kp@g1}DT;1oK``pWUp4WZO^W68jU(fmdp?<$-t`w>-~8z+^>Hi zU^}+gxNuP1yO218u8j8Lo{>S%H5==7UCClc6xzAMQ$CgB^{%$ABiEM1?Da@lB%J|n z>u+cJ%(z()-Gd*9?YKD;g$TfZ?Lu}7tcxKOrDtLEk+*1Pvc?`$d9In@%s~us!A3NT z8tf%~bo{QC&v(d1YK$iMg(74u{5O4EP|>~q+ECWeGefF#2S@mYfVjU2iRWMU*OXAH zNFHkyjz_EV8c$lC3~kmPtem_(;q*&PT>p1%=lrWS<{d@J7rVEe5$@PtnDwr*LUrQM zZ7lZ`d7Mxi6!g(Eau9yVb4_->(aYs8?ht)4RJ&AqgPib(ByMiBE1(!k%hICo(+k9v zn*yF^Xnv06SLcVh5lx;i|C2+`<=%h8Zl14;*^~9>0v}z$9}hVhk*@{n2V_33x?<~j z@0its%5yo;dniw-m)?f?4Z6JFcpG}groB9UFNSYd+P$kXehAO=+KW$oQS1FMborAD zauO@HFRZlFy{S|3$m@8Rm9yviMwTxyra*7d+<`I6#Q1W)L=E?=$A($;BV&wC z9x3Hhv_Bj6MzKl)KwqO$ygqs*Vn=sSyR@*;mQ-HCCPq$`SL0>-e%M~~l|N7zqL=S` zHzY1_q?D=ZRpCR+ix41)6NmJc2BUmJuf4Dw{c0KL9nUt8S3Q30Ygn@sWgR zMUx}?C{pIMOqFx`!Fq2%+*_nAHqOWj6apk2z<%D>8X6YpC)+t->gO-({JmB46h3vG zwU_X0u{bxpD@Y%^&$|k74>6QztOoo%PU7w@U5OK^b98Hq@R2MXp2{N&zg?{Fr1RIq zM?(`#<X5UOCrg)vwS-*z88(WW=u*nNccX7UkNigs3)kxA8jpY-ri-n&@EpJMh$>?T-p z*ny~0vj#HTE%HrNq`M`# z-81qi?oAQvj8?;bn~(5xjZSI3MH}}r8&O8bIhFz#2kKE_Bw{F={zm>j0KV_$paYux zIC@N6bnz|%6JH;zz0KAjL0I#3A?!vS61;DVf;_I!G7Yi+pdqZYps6xFf!o zdOF5o=TP*uJsX>nP{l#E1pA9q;NDj#^$Ya;hy1*wY(aaS=iCmr5OwnpJ;8n7A#1jn zB+VNmoc{6S`C6`R@=cFd_FwB0jw$rXTF)!@xB+e~i`Io#tiTU&r zzne+Q#}stCsW7Ld&Dq?qnCPEky=J|oIy&C($H5h@SkVcrTmC^;`kx)qcm9r3F0M5V zw^y&a>{o^VnmM~2AXjRq-#`DQS8V^YZzm_xCo_c-F7z-n6$==r&Fc}~5f-oCw0&@G z!L7@>7BE=O8Jp!=L}zwe+na8Z-dEZM|1Fn@rmk=WU||DmU{A&;S0&@1yY#p9vSXRc(HG)5Nr0_DBBivJ7Rf zyY{aP{x{hH74t@VpYW`txOX6Z=IF+85@6^gQ<8h{H#;7#HV2iHpZONyxNMl^9*=;k_d==VRd36z6XHezr+4)~ zviJ43{4TlHi9>fgmrjNGfoqX%5G8G!UzYNJXzwTgz&`$?P~y^jVcXj0$kE-_H<+U; z4?~Lp&X(aW;?eO- zUKu?@UJ9R`uWhL7STxG(XMHEve&xmS4>Z{{w!iNnlyV6HU0I@^Vs4d`rvlh5&%pKZ(11lf)({GP**YAnVwAncdS^wV z$C1@P#STQftz2qBsR%TC7eM8Gs$KWN>Z2*WOSJ{G0*jGwwe)uCD6hi(cD?%ninvWK zlE<5&JQWa*w9VEidqkqwmhZb|#-|J-pJAhZAg2cSZuWw6JzE)ejVy&9#`>j+r>4uI zRf6J~t|TN5Ehb7Lui^1C(w>%3#ZKIt4T>jl z^FSr6+(%gQiCVDk|YZH_bKN_)!@+LzBV|524uB;g-=x3Nn_=az zF#5(CzS8CJvjuPM9^Dw05-xdvYE)fZ9V%O^SOB-iYE`iAfr+I^MZZCbes>srGff*D=ucK zTo{iZ-U@$Uo7NZO-xE$dW0K+yi2&eFqGFFz<&ClX@Mike`hsv;FAnh(M~>X5r33BG|~1?1;fY#FFa zj}n~2$#L_!Q10vUvg9K#F+{yK#2i)R$loG_2}=#7`2oH+^MOa>5mA4}Cg>bPX=}rE z%VGT*3pUpXwV0rIDRHtb(Yxklqdg^H!1M9xpy@(`U}-Hthz1yF-39Xa>Os)qXc)`H zajGVamy7!7?6XL4RFW@4tPp^M!ClKqm~_qIuxqL}32|3Q8a|GRJ}-A9)KE%I6cSN` z%V1ztI%GVaZDAoeGorO6?5zNOTn(gqTSaT_*vuAyLQpt}lkCWd0&jwZ#>Mhzc;gGB zqZZtEm>)mILPUi(7lKOacdfP)is-S6)97W-7=Y+p_vV*3DyZS3`04uTdn}%VHAWo*IQGa+~_q`@y2qF zkDVrM6+T4_jo=_P@feag;mxRnFJZgoY)%yTRlBQ&;fz*$*90s{)CD zhE$jxKUlCIB66a*tD#J`J7eJKO?sT6HGAxA$Nr1jrv6H8J#7Uhy{Lgk1RAM3D?UYG z0&H1)iorjEhH-C|fT249>0OAeQPmeqN}l^YIO|7s_IPv8ley}yZSLMXN{`Zath!~QRd z_S-N&KjhiA0}FM{P@*?@(i@BibYzI|brIOwlhg#x6>Kb#bFRUW5GmLZ9Gr_9Fw+oJ zK&wJ%upS{xBR<%{X}MeEKKIMW z7k0ea$>lsR#Qvw4tq1;-?hhP$p12Lyxfkb46zmMbi5#h;0Sy+YzSuf~bd3>1T1K#4 z_*7u}(tF7$_wgt>-y0=^?a6PIHFmDF0TS?Z;brn9;)`FY@F{k`=p(F@z{+F5Xw2pe z9SF&$)GKdn54J?uzGlNB1ecj-)3`gf9XuT@wNJk#1%#U+Ml!iYF1x-`XoMHI3Tf8J z5bA5e5FrAq0~#ktW~~qA;;@nS(N4p?j0ehtVJOyO$;bT%49__?W+4X@@H5ggTGYeD z#|Up}NE6lK;s7UYz_uXRmXvrq*yj1NH$4FuZ6+|+A2Lx+P!*j|wBS0;?LT?u^v*|S zst%~uLNM5K<67vkp^*3Rwf5)&n@(6Gu3RsCe^GFe%rQA(!D%pqahCyvWT%6hR9ST7 z^$#yjA^9go6jbHneSy0NM}^zR8H>_IMH%=%#y7$utER()3oU|`x;sB!4BYkYYzx=B zMeBYR5Tuas2dwuSM06W(1oyc*U4-wunhV+E?XG^t%HfRKdnvZb zrLX}DRrj;QhmHJL1S!ARVWs6Qu3-mfKMXpyT)nKj22+q8#t9$!kUD%6twL2P2RANo z<;b66z;MEjl?jx^UeO|5Y#&S#V{~n(R+DPUv3sD)+S1>+rS@~6#i(Pe>e&I){nl6A z=ZU>W(q{~8ll)#(WCo-C{j>2bz0!bW=VkmB{SoMk-#*gk&Wz^Ae{Y@lulh(XYM7|d zhqh$x?%AKq-}RZ~Om$awsZ_dD^oe-O$19&!`(S?Wei^C6CN&e*QJE$ky^W!-Uk4kl znL!qdzh9&dDsZ0C*Uyg=th;vJGhg@abF#Q7)ZAs^zeITuz(rNKqRRk=zj7_gXtEyR zgYQ#r9VTV^b2hyeE!j1cj#8nFr99 zgW+Bd-d9HzZ^&!c^Vd$A%!xAzQzLxKw&BzTvI0h>J0N&#lvLO&=*s)nfZ*-1%Tb!f zXUM31`;d3&r6|@>61(Vto|h`PYyJOInu9D&P$ZueW-51INB+>uw@cupTC$P$JY^k*b-2`^_^%3v}hZ! z0s6%Mtap?3#UXqBvDqwo`;CF_#d%^-1RzbVmknw=Wo;j#(<>&G!_2r#Vy?Q^@LT>Z zgFQm|Whsp7pATjp-y&me=BWO1+86+?cPqwWZ}ghzeWfXsHzZsrevCMq@Lxr7zWlR-CNDw}^m)K0a%nbJb;tA1~+ z|E_C?);QG|&JK&u;l8rEaq>!5paNH6(ixP9cRg@*`nPa(2<#dh<5dT^vv01*vq?L7 zVJ{(-{yHiS;em@mtVUeY=AXb0!d3^tmSN=C1I@Mh7=5bob{}rlV`{8%&z{$5qcoq; z7=@gJP4qT_`eXpKw-BL>^M7W-n3>wjKl0W0Ax0m{_Y5Y)z!Waaw!Sc7+>f*J*U)tP ze7*IC>yF!3-BJvjJ+$~=!AJ50HvoOG!9NNUfK9jITsAN|)4d4_4MZl|Z8n=DuVm*J4wNHcsp9^DeA^7@-2s9Wgb+||c z+@TOY0r3cF&$9OHQUh26?mp}*cgnDD*X~h$=0gijkJ*po_unrPB_J}`&Rz+hV3(nf zk#-2Kf?+EXb&+J+cT~p=S_U-2$`mUq;?38q#I~jFm%idRf9M_MK0%74gt24SwuFPe zkGLsEGa+aNB?pQ+6T_uB-)uRs*ZjP@uJ*TZN#05>4|R2Zh^H5%?~zLpQ)BFnSAM0vtzaYXx=!J8 zEAI)^eey!-3tdwkW`yQqbpH?zX!|A%(!my;a?F^>~QQec$(7?NHSi*4Sx+~f;0qyJ$1fK z<-IHL#r_&RaFcqby8MuqC-qa+iZ+n!;Iv_K^rqbuD|GN3e~;)hb{D5b0Qgxl*tWrC z-8H9G=WvW2WOi6w$|#aI&JEv~WXx-`d8OP2lK~U|xJU!NX&BEkCWz5zzRAdx!A04$HAw(*R6ZE;ac|z>p9}#hFgc<7H{X6 zMa&CN9vLujG3LN8XQg~82a3|N49`H>r=Hq%GqyDd#*8%D%)(_;ebuUrRF5^no(zI# zf+?&+Ma+6_g|sKW5e2E8L9wmicM%nr5#=+i(9H>aJ!sA(X1c!)wQ>fdTj+C$w#PWQ zFeOBMxVKLXFM>>%0>Fhj`Mfk z+>`aZ9rPpqH^|Wco5$7DI6d^(INK$)d;9SO^fe70thyXeopjNVUG{(hTjP@<-GwL( z8oJ~b(iR9``gmzUw-m%W|A}&;g=4n#!?eN5lHI!P-A*6a8~Gi{7!WUj&3L*lg=!Ffo5nBO*WLu24mx*c0H(f6?<_ zOF(w-dY#mE|B`a~D%oY-4z9;uHjLHTswYMIFj80>kRv^Oldv{-(c==|BIJvKUt1*sLm8 zCFb38tN(+}4-9W|-(=G!{l*QC7IlyN!MqhyX!l!rvj%1J+IWYk7oVzIYTWk8ce!) zgKVh3Xr-=V-TtD?I0#mQe_I?GBgXtuWE5z=nLPd)_App3_0RoUeqFhYqY1b52?MOj z^6nOy28DQIvGKGbFuLYk{te;&E)m8Xaq;*KdbZp}6}X3)h96Zdvo`hi{L}uC zALJx*68d@N{=0dpk(8(RaS4Rhkn}m{nMPD}h8Sc$)IXyPvigGKA7qc0gr=lL%s1<2 zDa-&-NW5JM11x7Nk>-CXKM=}&+s7jU<}!%n_Bck;?NPN9~(Ty zTht~AQW>M~DBLhBD+@vi?hRQWH_1SS~q6 zQL-v-DCWyK(OPkaty0+l0K!h~BEAr84Q0;6-2_q;{ss&ViU?#%Y1eV7ReAR?$A(Sk zG%s(9&b_aAYYjP=DoVpIpygQCqM}ljEt*^#)}}Xf)3)zzF z1x`^DBrQmBh`f0+F^b%S(a3XkwFKO@U5T{Au(^-Kc;>nnk7qEl@Lm{C3T_H?I`O=nJlv^piM4 z{?V}&HQ2N_rFCZHw~xSu#*cGz44Bh4yn;;50}y5CnX4SANzIyWRJE4@TSh6jPa1xo z0IyGS24EGrG=NNLxD}0eaife*M@{Pq4pFE4K>R z$$$Zb;R-rS%FkMB00MZ?@&IPfboOjbpK+VUpc^>3Qms*;*ugg#n;3e7@+vk=Ad}QU zD6@;qjyL}v?!-A6k>}(sb8_W1-VIveCD_2?{dMd28rXVfw0{t00 zkej7b3wG@$Z-Wce$0I&&<{0{+JtcKQ`qJReJnU!08zL*5jRa}BuxOFtPqA=};l|-f zf)bj_cWOvRv0r197_ERjbMm0#u^{1FsCBd#k>U)UVnW{vsQ5vrVJAF>}cFXAc_1f)J6X&s0{~h<= z3r7b0PQR`Vx2Pe-9EnYe_0BQ;5cX=s9bH|&#VbySGBt2Q;j0q+Ta)O`UL#Yn%N@=k z_b^WRUnf9E>kj%G(W0p*(=Bc!s`qbo8bg`@UH%`U4S;U$aCaLYr0NwIRE)u@)qx*Lt#?ZCFVz4QQ&h z8f!e1hdE@dzA-Fq0?r#7HQnr%M4z2qqK?nGD@x(()3S{&eNi9R4~%<@kML+s9#+!V z3t9hwMkAWU%B5Vq<_B6Bpb>QUm_P~290GbU5dmzf3J~l<=X8xx&cs2#r|EhQ`_E81DLnWjrew8;U5Jn z33*S90OxeW3w#SGuwhYNS(D>D=+6=gDKz6xh>@Hd0AYG16S4xNJ-AjmG#n9KU|idb z+eVd)YUsSu%^N$k`0RB295#K|kAUz7{$8u=``14@dsx=4?OD`&Fh^Vma1PxFubBw? za;&n06AEIspp*o9{zJljGi|fE$-R>-n>M}2{5pTwV_5q3AG?&Z-XUl>?ose{d=Pa5 z)_a5W26R+C>`g_IT0Q7U(r|G)KMD;kiNMhJTfYRZ<5FAH5^>P3&v>u!p=cetpIgAD zvciXJmoJ{>;KPHq7O6Gtp0rN0P+v2Robih9H+FP>=nB_a$Gg5U1HDjHekcwAvdh!C z=HNFz#RLl9U{?!*ggNtYurD8FQ|l2MC(<5u2#h$ZOLZ4OTd7crxKvQR2Efx9xY;hA z-3zdN2Y}vk6jE>%v9Jfn`mDQvR)pz>62WGxkJjeC6%q{3@eg4vdV`&mq?@X|OS_B9 z%-!P0RpwR_suR6)<3M>A$FZPQo&_+hCP^7rr+Yb=u-v;UMPM?(Zn5E8;r-y;d-SsT z67yg_VS$9|Lj>C+)+0Riao|7(?QfY%4-gk@YH5IpAu2pMDbqDt94n*@?h4OQ6?7#7 z0UMjBC!+Dl^PfoHyU0U#$ZT^BZOgl#P+zGg)#!^4woHuKk`K1xnMsQSzAX(%XeVlF z8C#qCn61XLV2d+yXYK+pN9-epn{2T9xogXLJ=+)U!dFK!_eXt-F*hXdK2sz67uW0$ zVqa<VZSn1b4tOE32qFpHUW(_kzPmGEFbDu>n&=Ta@UHYgWb6dTyuPsC^ zVWnJ=KLdSZblRD)VN{10D2|10Bu3BUc4K zmSs1Dz>;*uu0OiaW?@ONO4>fUFYm7bzLi>`v%C#<7d-r=9#_?E7+TxJ{;nLh_zYm} zO+j+0&wrg5<0KSh>+{~~3^A{aZeRATN3q5v%WN1g1&vo*|HOwOyAq_3ZX z^E;qtwU*1?H_7%S>$!Z~nJ^(`kkg^l(+=Ke-G5Y1{dYYU$?e_Rf8(xoo!qB3`2=`^ z(cc)52hxsEf6Opi9v&BX(yVBQp$v#~hUP?TefSPg^-yj`Iy;KtS#i0%$o2EUgu&C( z>ynexW8i>?XQ>*5!BMqQ%UXsAG0N)gaI8uTBP{T2m)pZ~?%Q4&^W~?sl2o5r9Xz~9 z1QJYu^K9;(r_(l_B2Nykv$rKWBLs`a(5Q49bs4KEyJgwYP zTU0bcBJ6t8+)F*eoAWx%3*4XR6@P68RdlJ$cj)@*3kM!OKK)pkWX4W`F|P_Nhixy0 z53loUI13Q)^@E}cTSpwC5x_ikdOyW3)3AxsS%XzrUbgvi}vMW{QdC zv(M{os`HUgH~hFIWKIeLd;(Sl3X2wyedoBwz5b%D78;aB-2H<<%BR9^JzbU}+|6_# z2|wGIQ3P-14C!_1b4gr?0~g47F{pw~dUb?lWFPw1MI?w-HyTDr_Pb(^cViE<6ihhg z3iPgpo;*eF#d6P4+k|w6ofV;6JO5lC;camEFnKfD@4ZN|+t8f}-{>&D#pmocsr5c~?qHg% zW&;hDMI$$(?vWIrKv;8tjNnW==tHcv2=F&lR;}&b5o?*K9{Iq3L|&DLb&j;JICK?L z7hnGM3d&Jn17&k4+y-F|*$sCO_NKU+9c~JFNjH#}+hfjfZj=}M<~el+2w<7^{T44Q z0=Y=_Pl=+5!-x(H^5BcO;TEbYR}N%z$f=4xpcF}~e<0Q(ya_aX18gm6SLhAWF34`!(!@Tpmw&Q% z=XTQ&f5ITo^@{t$_(A9oAyUso6lEo0CL&=nI*U&dRDO+u)Zd`exu#vs6(OI%=V6 zJGcwTis5`OaCC%h33k%ncg>{L}dM_wnbbhL|M2 zB<83v-FPdmPTg45k1mGuq(_U^LaibEBYw2XXk#sxA9~yh+T+h>d8FXty!|yI{-^lo)A?rhe-t~nyF|FC7Z*`r-Azh7i+Va4x2q`iXzOUOx*_J6n^F`64V^dY4j;@ZKj` z-LG^=MVCc8K^ROvgEJ5SI5qsfvAkdxM|`TELEb!(p<3ICRq<2a*JZes-ESS+WasE# zThu1}?s}=SNw&jO@3E{+Yii&KQ?~`%M}7kX=nvNoto|G5Y!u|dp0R>jFN?I!=`*(dOq6BZX{me3VRk7JZQBB|J}`|Ah1v8wXz7 zb*{QmO*cA^T?^nEouq#6-mhv{@Av$d3CTIIB^sCijmbi9LKO-FB>ydkM=cY?Ll{0h z>ZSI$j;Jrp0d7buL~V%mni&6K{`1+#v-7M&iioh#!`n<1jLeBKe9do}u9ymABR=&s}(1%Gvb=&tUDNDZ9rXNp*W5V?5TqNW2yGCdT2#!5)`PDF>ci z?6%TH6wi+JUjaYa{H?xwqN&W{Q`NU z{M78?)Odqwi?I5v`V}vMl^QF)N`RtqX$$3e?S}Ar7(tWp%h9T;DrLMhn z`Hk*d8LlTU9-jwo>eRZePQ5cYvSuhoaa#qtrFif8;`Q3o*Lq2(Njod{5zAgqQwFX- z&C~pNU_;%|-d914Hz#iY<`yGql zRETlek`EUZOaWt{m0qIs&)17)b_@ZWn z-u*g(2*w7M!LH0e~VeN|U(r1=J(C+ZEa6UOrz4Ru}EOUrFT zQV=WQKyOtE`j{?Ylt`SPVofWCO`-6iTJa{-MvTJ?2*p>oWa~9}v-~l&djRs-+S5kq z%Z&vam(|s&&4M!XZq_8MRIlk4IRa6Uau;!h2A!pTl`+bI#}v#>XEzZ6EppjTrD<^CFJW(z)Ioq z0Sl+yRjV`iAOgB)BodE>;MDvIm!Eh#C+k_7cXr=7L-$|Og4$sX6YeMI z2wz=9g|RQ7?ho$iE-s%8P)4hqpc-!-zhU56gv%ZX1#95^a>RU+V#*?F?!%ZU)DBFV zI*iJ%ZpzodmO*3CPT2Y!LcQ-m?{tATVP(1vcPO#GRO^1rqUrljpUIwjfztaluIBo9 z8ppP#e7$vASS?yEz1$uugWQ{4xApoj%tRUM-reBQ9vtg%;&ofIc^tF#VaUo}I7^Yg zO<*g0DcXVA#Rj-njH72JyZ?RB>Pn`PW*0JZUrkTZ?y(_XMBt z!6-AY)a(m+ogwJ|tdbW#!1*BiP+SM7hkqVz)}*`%dMqV+gwego9@Q{lT2*w;qY$lp zvuE&h%43-CY&2<$;3Nb{7Aw1jDPZ?T))|l^%h8A{{+h!~^WOPBjbfXc7Sk2fK_y{10F*!I$!Fc!k+FbDk;m9_ z;%se9{X7`e@B_lT>VyTHZ&g*y9=u>SRuwe=T4rMg$= zNWmVDlH5wG2xZrLE7yU_ZE(ce!bqg#@a4BGf*oM4xI3g~#EB zzLLN0o*82zRIWg$P_i)0Iw!!Y!VLb z!A}JiW4{qfG2|8CZfpZzNe3frn(KGSb!Yl9Q72!At9Q-COoSh88l401YjU_?m4P>< zuLp6^&&GtID38}tI;YWqB7zd6;Q^sDloj^{HX%;^3a%*_HJlmXY#{ex<-MLCWe(tqd}}^ojPtPmt3|vb76eUe0YudH9rK}86N zeG~ON{9ZXmuRP~wWU|;G^O65fzsM3Uk^sf~stvv5D=2X4C?kUv7z81QQ=&+lCmiP& zxA0JP zMdq6cPIKhzrI)wyZFw1hmlENS*~U#bFAOT$2ReFuja=$u$_%c@ZrqMl$KQ-T#~p@H zS%O0xwML38`ZQ7+s%mJgIz(ou-_IhKkpVD~@1AI%1DoyYLKN8w?}L4HW<9oXP?>Wh zAxGfO!N&(nZ$lR&H%tP8M?8E-+S08gKdBPocdZi!$Df&+l?mH#AqEK#VP#h$_#2_v zA@N3OT0a-mpLZ*;y{-qKRCY*x*5dK*8q{!`4Si}Oolg6zko~T@i;?mv*iCoDb74zAAzTc7R+ibl9(uL<0AioB^l9-Gvggwy z6jnU{JF80mD~PN5zs365{;g^6e~y#>l?m8g)7pccdmpO3_~exWZc3C!*kavt$@3Rb za4>-h_YpJUX1_oF`#Ag$o)6Y%XdKv&86QCRbxRU>FBi(CS2y7XyFgd<+vDpL78yX3 zmVKkRF3m^FbluU}A{Wscpi}Dmqe`}|BA)y>OV>DXbnP~{@i|B;lsKk83+9E&|^*mBc%R8b_@1USyxWd zXpF?cSwyGKR?3LWMfm7yQ{HkJ<8mIEfBxIVFU|9&)|X%EPnGM&AP!nGKebG=kJybE zt8=EcZy(%(uGyt~_zNaO)Iwvct?eA1qM>~k4)0hMre{0@1#*~xh|*+E2jQOa{_yF| zaIGR)*@tR;JZ0Rhk%%X+F_x$Ae#|6qsmmKMmrm2DNmYHASFEx!27+<@lTVS1(HB`> z3DVr2noDYDhC29W69yUioSDYiNvFmZr+0DDszW(PO<^LFcmn}Jv|IcLP;}zTutemf za#x>_gbXJvEmBB;gM&=L6(IoY%%1Rui|xuY=2r9?^Pp=SDg)JI{-TmC9{0R^SER;l zyrzaaY5&i-mfsWfbIJTtMIr1fD#F#eMf?z9jl7M_^x zGfK8+XXCFu4QuGpdQ#=P=^k*KtvCZIA7L0ctE6`|bi5pss9&14GO#`hxbb9L<2{zy zT?@}yN`9?4pBWmRixtL^V5S@=?jtBlKBDG`akesHbN)4tYgeT{1LkeZefNjo?|)~- zt22?bQqg*I;cep$0=1N8LMgt<2tItHTDiz)8%a@X!Z8T%ubS?WxYx66_H#)*ChHt~ z_|-Fm(t~3;*m#yQp=hgF-Xux^z%1e`adq4CqIU=M!_V9YID=Z0?pfS?a;*usPgqNm z5jEgemLc(o4VWFn6xnfC6^>H;1CXz^uG77WT>Y*p#@xU0YU_RnShbPh%hN4J&(4nJ z+~WRg_9oe|26Rlsr7((6@cLAEBaqLAu)G)$=n876nTh%#q`yCx&kG!JG##bm4?5@r zGgS9q@_x2p&s!*Ih!RQC6-JPK2+LcU6!~${miA!0vOuT2O9wc%Z|$pjYwM6h;^(DG zCrdQi+&ss++9H)I zN{6JQ&!J;&E5gHaD>6O(+bYEmwroqdJ9}%+g6|~I5vCMluvLrk*jfL5~88RX#2B`r~TrbWZXayU5H$VjV)28%d$O zY9FO?eJfk1d1;>_uj35V(UqVgn8skgg)l^9+hYoNgG%Hv1ioK?BWabjb^{pD;^I4 zNf3YVPR7D#6viIBCSU*y?tYuGMgSsPr2;9*hZ}2Qc9gMO;tUb6`2EIR!TBdVB9F|$ zpN%{bwd{?ZblHHbK0G*v;~&HJRmHaP)x7DYc2SsJz`))FT~WU@(SM<{sYPJJMDnqD zI`%CyDlw<@6Q7bAn(6PG(Ixjs)ip5aQv>XDB#3K`vgP0(%)ia0P8Z|C zaIZ`oUA^Ps`?}g<7wvb~Qbdy1vc?hRaw$`QBaJ@NOtoFa$%qVn(#p2P-^ssMwMF+q z?&r#o-p=A{BWBlROFkUAKYsm|!E-Pw7;u1J<&Y$jwAY!rjbnE`#D4BaFhC|M_^3$1 zb`Zx3flI*))u&)r_$a|!T+tkcIQUbnpa|bTje^woKm`7NLVvIHZ5TTm*ISxy*39hOEaoS#-5a8N(X8fb(OW9d0Pabps^-La;2Oh5J#Mi8*EHz_)~)8WIT# zf(yyec)~y!QO{Q8qp)Y*)ovOTI>{GqiPkRTi(`z1kBl`%t*!^yWL6Z1&_Z3LmlN&< zEw+nPF&6&5z1>^$J(BHNaj2>k@GDdM+lpiSy^ots0g|kr9GfhUZOr6enLHVbk%>l3^a_h z)dSr8e+e*5dJiNL2X-{u2N5?xU3>+>A?V{U3bKHgOAhSg9up-l-8w1r{l-BF6@<|( zw>NJR2+a>yU0Fsknr!|uyDslO8!wS+b73#n>xN63r=qdiq=G^GQ+{@n@dj)YPErIg z3Xx2;Lx8T+k7kYZbF-fu3A}M-6@?_a4(5_D4y!2mjkAX1GBBE%gEAOq%#YzcKKxjB zhlxNyc4hHasw?QSu$24nxov3jgtR!$1Lq;MQmz*Wk|)2-BYH7E#rS5Ezbcz@+M*$9 z2tS2lQ-`S0$hg7)c(9b|PBiNhIcWDPqvI=A$gw=uC|ZBa*$zJ!f6J!i!dVHTpDII; z7j+<3BDwSYI8Pbt4z8dXT*0UKT&pRNV06-(c!{A8ml3Rnv;kgyf1DHE1Y4(LY0=mY zT^T!ycc|@TCcD3Iu1wX)G~|^i<3eWC1oMZ-a11*Ab%;YjHRIWtRc`QTeBsC-E-1>;XAq6BBs{S3#{))-K_AMO-L9Qh+P* zJCqU7SNu~fa6i^7WfVYb+OW0{`U*ouppg$4Nw00N-O_vyLSNVEfapNfGt(M#4dJ(l zD^+0y9})vpEx;*bWhgPzJD2s#>*BY+-uC~aQsD3N*#9j!bLW?>Mb_%S z5r6srCD!uCv)e&wlYjXp&J)Z!r$_iFmM+VfW_?=Sg%#D1SJf4*K`=CbKg9>Xqc zTRCO%WiOwvqeG^Kpl&)UiQuyl^+hzt{;%&frk~E&m*ZH$D970b84in zeY~nfb@X^(|CK$7hv*5-W`j8gbxzq6yPi@%5Xyl2t@`knaQ;!yw}nj+`3SvufyHxs zN&1Fw-zFve{Jmf7*dD9VEt-Whw~1yH$NL_Ae>=6fVfJoCK|qPX!r2Bl(0D;2?mM=iLVRHK@zdLD z%sD^JjfOMYj>ATNvL{c*$sB<1*N543E3U3# zY)8YiF@i+qqJM*Icu$!o`h5;*w%WKF?)`|h#kSENRXnQc-{AWzD9zM34}LTI|1zK7 zf?wOe4<&RHtNrr}&x1BC?+xTvN$=^9MiJ-$S%(_T;2#7{U!Jj0w<${4U3>0ex@+We z%<@}x$bL-|DVcPcyX$9Z{4)LJ%$Y7!r|AV5`B$F|$0(b5MSO7_nwLzt8s^UKf{u;T z@3YLtj|g84+>3l*K>p?Sp#6B{?g`5!_#%+46-Cy-S32^N<6bdm%Qa&^f7+BwBs&tC=#=9YUEnM2jv;^uuQSmClysO46%gp(6gNl>BT3l<0(ST8vQ5FaE0^_{w z!9TnDDd&QPEDfDW)uN6*#xPL}05y;?k4IwRGDh(H0qDdY)zWfiP{deIdt>EKpN1wa zeoR<9d(#DUM7SF&kI#9#%e-Ycra|!IBsHPNvGK}YRuo&N|H0bs5adf^9`DcoX)_Z5v|zUk*18J9bOLHTHYb1?_l?N@B|MA&>q(K28t|XL2&zU zktn9uq+n%J5wF*VH?QER91lt`b}z>V@SCZi06bbotspI+#z{kWMknZXg-^xnSwJ1R z-=f#ZmUN7PUH5id$?4H@ih!59x78+L*5{fJ&^{oUXxQL(b_;W=mhc0AU1he2m78$)mYGZ z`m=pjRnnjhr&Hc}K~3KP#Qq%)+&IWHhfueZqQ~#4?ug^7pkVc=d;HBT+xFypI0Xi3 z2UKa>gL9U*{!TF?G*rtv&D`}fFaGd&+7nB{6ls{qJhv3CsL9LV8}nN+mA}NWToHK5 z0j?#4OBd)=E>9KSzgT|CroF1>RqSPzy7EZcyIQeH8?#c&=P*xB)~vVkQ84;gz&1}| z?X9ElB#{XbXt`=8C7i&lJP$o6N%IKcKsAL{y#2Et$1AO6ouU@bS~?}Kl@fI^BYrHq z`7%x*q3#5CH^Un>TI5_?O^h{G#eYC6e=ri&+Tig?p*a_auxANgR{M%Nf$t_3Du*Gj zW8SO~dhxTb;vV3odEo@7B?bNfd@Fx9zdhZ6MZ3i{9EWWhflTTYWmsEET_V@`qOS|r zRg*U4NV<9;g2WeZx%!da z%%ug9{9{-~L|_ZGGb6H37TO{s)eDL)n7Zsj9W$3u269YR^ z#?Xp6jlt$;o}NB!QLxbdRUp1>eYA#`iuCX#eNJy>`?1=|*H3YNB`~BY3GcoNytRdM zwape3z6zY+j1#%4B~+-FaQwA2KLj!6vGwkF3+6r5KduX@7j3-}gWw7i6Rc{VP{8uO z1Zu!HiE(tMIclJiozA2$#AI>J-ay_YfV$iWd^(R;decWP@Qz>HvoBk8$aK0TQY60;2b zvg=E`T9;#5T4BLe)kux3Sj33MZWRF`eHx*NOl1GooRxj9N&B51ifVzAk?~ezeKWY$(eZLB6U>6E`S+nmxObu0-pf}f>c)p)+q@Pd~L{IZva{wdDcRE_883=W;Nfg8-KbBbT0 zRy^=yKblFM_IS2cYhfRG=v-;(E#=4q6&hL7n^AvH1p{c0P`Nc>PJG+43#nVao7JfO z0x}LD`|#~}{-})NrHc_8lpbH?nL@EJv&FoJ z>aqE~Qy37i{7jLZu@iyauQ^aK8)~U6%7?hPw-%N7H z16UQBnCQFe^(HRutH4FbeUO7JDkPeUWlu?ro+Fhz2U|5O%Ckxmq^cOjZiDnvO4Wj=(t^UE;U3EAiCL}=LI1UK&I1IzsYEo=!68o z2UZ%B`;H35_ZbGRU2rvz<45Z-_uW_z)8U%1P?FkDTs6OxZV&|524*nZz6!V^qmYtP zh7h?s$FnQew_Ha9Gpq!k6RN7s8tb3WV_7krTJu}5yy85tHzE22x9oR@*F^ER5HvYn zQ)94uWD$p zW6f+bs!vb5g%dBmgv#)wz;DMvM29dx^Jhmi>|Af}-tZ`)ekGkDr8XjYo-&K^N zR6$3sZ-hszK0u|Zwq0+!>JmAq;U^pk__ zE$KB~-u>CZ(eu@cFTxd+w9f|2hwU{!fgv9eWLJTSiNw>0FDBOR2apEc$8D4E`*3Y> z`^ae*cE^VZFR9%A5%()N%TY~vyg2kkVxebsd$d7CVwhx8ahv0UkN2dQnTpHz@FRO! z$qeFxKIbsVR$y85g-(F`U*bK-t8!04wM@wF5{uRZzxRviR{@{apofRN4f-6Zntig@ z{5+-eDizG;3s}G|DRU0vEUKA$^Lsd=T>l=*j*lM8vqKsmJAcFSOZt^CFTD7^h6^`i&0c&KWF)Pjr!dzD)Zd0tVb+s@bJK9yFy^ z{p|N>#xd|#*WVh4f5hLCrS)A~4ajR|{4HBh@BYFMD<`z&dXQrf#zS;9mjK1&jPCN?W| zy^Nj3i!H&qKS#0PjQHa^vi_><)OFLUhlJL1hsQ9*L6`luC0A(!8ieR8jP%p9dC_$s zF_ed*LzTerRj{{ME}z z7gW>U-It+G6yu|~l1vls5yq4I(|9YqN_{ z|14x_L6!-)h)6NYj^MO<_)Z+bmw^!Va*!NOe>65%tODE#7b~sf+cQMtwbosx@)wpc z@n9u=74St#6Y6#aIKm!oM5kN1=@lP&L)4RTBnFTb+oJIN=TkPowg^MNTy-6@Yi@F z0)UWk|21r&m2JdJ0wZ~|4JCqar+>%QADs(1;WOEF=xye!*K0|bRWPWbpRtyKdpO#f zj~8*iV2lbZz4^P=bGbRGLC6KU{|DGzF0n!WGv%CW0q&@}T*mv3xwtrGz6?7DO420a2 z0NE9#edH)f4_XCxtox>z;6aGGAx)#ob0tel0aL7K$V)d}i`iD{S=oQk6p^Z2o%E43 z=&Vkz;%d?th@2e`{DBq7$BI5!IF4!9&FBp9XNJ?2+|=H`=qet9w_D^H4TO35 z-bjX!x?F`Y#c8InC4u{Ca5VZxPyHc*xFxb2msP~bxp{Q8J1TUDxwHr4hKi<$C`Q$ zrYJ2>9B8GDEHklhxqg86#m31%3A`k_7`R9#vYZ$p{d4bFFPX4Fjgsm|UZzGF+kQfO z-&&rCBR|Cw`10PFgf3gEHZ&KD=B{$b#+$+p?*(J2b@vc5a_2m`q zeE8o%i1~kAvk0~e>g%qTIzUvjN^8xUnAyOYtR+}X@5L9kUvbsxvGX5jUNI$V+9+C{ z5z-$eZN_|@6$_>|twcTbnhu;(C?c%910sggf7-J?`t0TnKn&TcR$g8mP17O!gp+a@5?_ihiZVPz!RX{HWC!tzZ8sS1HiQu!5 zCs)#2E+Cm_;X~RWsw}f@4j=Ws_lxee*zulPXWy~K50~qzW zMWp6^f@K~E123EC6@Z%R)==2g=g)x7P(`f?r8bbFkUROB9#&(haP+>i-XfP7o#?vy zCj=?u8MaZs#pJ=}E{bfZ=m_OpH&>F;aR-Q5oV~Qy9Kz<9WnX~q)Rvtp^kn~Ny1B7M z+sQ;`Tsg>LBUQ=WZRkgj+GYWo&dSGXiEHIQGRVChy@&mEo7@7tY?@3%9kc_cT9|sd z{j2-$JcQ+EJ^~{C`>w++CG1*=mF^4S9BZyLF9#3fw^2)p4RAp$Amlck(rXM-8mCn^ z4JQ_p*e>VG2u0=hZQ8E4tZ!S7ZQySg;aueRAj|rQOaj}HnRge%j$)ON3e@hW!>c)` zA2E14>!<4jUl;hq?l{;g*R=H^?59@v;`^iVyeBC{GSX(66i#*jM)_U{9Y+pHoAIJ3 z+WeOEUEQQ&oTd&z7AkC@ODgqJUpgHiWb$$~zCc+Qe6rPBBP^b{o#oWnW%214vd}^| zQ>eZYug^;&xG!yjK)+x3J<=*kbPj)jb+Q6^g>%T-(kXUOCOX0G@XDjPNPU$%gYZ*l zF(64$r%l;|rvn);yxcVC25qM6?4L#!g~QyNUs(( z1T!)V2QCfF{!$R;e9&ss9h^1o1E=@zL34fMp#5GHD!s9*?ZaJxrrR&4^|w&Gs#587 zbf%5cMv8p~3)A3Kamw(fYE{K6^>=anfdYSwh03Gmwn*Xn+oyt23pA#BBj{C4Q8+e6 zx>u=a7K2k-9-bD@7*Z)zIbj%u(S8xHL|Di?fwEj`)wE$RJ{f+@Yo)e9BRUx|>8KrU zI~BWf6|d!IaJfWz{I$u-l$9y2gfu%1G+fr0gELE3F~YNh?83~G%9jYos_w%|TcRIZ zxa@SX`4n>XZ~+z6NXwBxtEq35A~r+W)fZs+#)nH~Q(gy2us*dBdTA;zv+?K~CyZXw z-r!6KxtFFl?lmVC*|&Q8Vf7MqvR|xUZ$faFGaF96?$g;Gw%6=s(&X5zucn-N#)>LH zqD){)2+twJeB5)6-5TgH!k0rM{I-F9r5(?^*~#T^(m_8&g{qDo4fRSEk}L6Qt5Id# zF$gVNQ)N8gH4K8$hxAoa)}77%69uvtiO0}FAd?}$s;nmp&7uvVs{AObTyS-8Nnqjq zgtp);^ZF)lYUk07>)7c{hBpn5zMYEX#vM#lb&TIRD~zz=B;3v)N81>=?N@xCtK^^0 z;6C{(@cmbTTCJ1%5@)+2M~&Y?+d|k1LMd zw-%`rgL1eJB728VXTy@$Dmoo5fdi(R*Ha3NKSH;9=1DIs-sn8iNs>is(1BFPItF}} z8j;LbIQ7poW?nr-y`s;Ew1CBEzf0oJ+SicQ=QjF>kxV~K19E^t5r8RTjm7)QNzuF5 zj}YM$xfuhyC{j@tkRI__ESaddADo$Fh;{bgb8vOH^5Wj49>P`dBSVWrO<>;y&?}H~ zoP5c0x=c}r5_JpJ9_3s4WmtI!QR8YPC83vlti;Y4xn z_VFc1gZjYR$jWytjWiH`u9J+|21QuNqh-YHhd&KlusxBzmn4!Vnr8u=ARBw@Us&8qdYPD#b zx@fy}vdX2HusMzz*PJCiuK?yKi!V$ZCv5es7!-Oy+13`YBv#aArbSVI5owslL22Qa z-YsV*`CjDPE_XCMlm4c)CI!hdliBB4d5y>&lqiO;RPZWS-BUWz&okFy$Vw_j zE1tgy*S(;eyhdGVn7f4GN+8F8h??`b@9i3C&IvfA_7l^Eu*F!}GyOo95iz2#njWFE z)ftFC^zD^1ueOq)zWJt!lyvSKz6Vo}wDTxh5Vwu8>s$ytUS3t{2*{QuLEpvNH*1Fj zNJQa`gHCh6z2Ey`{R3mKgZ5WmMZHTgDVT-b2=m7qcH?YHnzqC|>yRwZ>DUzm`HnQf zdD?5wcEAK%b&2DgH_~+ipFEV)UMk}k`!ME(A7*23J)23F>sIb0I}$XvR)1%gFYr4{ z+EM2>#fN-BrAUq99rb^qRUi_#9bou~bB>bj9(GP${GSLDq{X?MqIN;S57r0w2x;oe zv#gHI9JOa524QRk2*x?lyhc%BF0p+|YGQ)Sw~M^@~8ODbc#FHTs5gdF)y R!SyP5Bu4-CcEP?5{4cLZbu$0} literal 64866 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 Date: Fri, 12 May 2023 19:37:41 +0800 Subject: [PATCH 026/201] skia upgrade, smoke check wifi Signed-off-by: liujiahe (D) --- .../basic/screenshot32/resource/wifi.jpeg | Bin 15362 -> 15214 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/cases/smoke/basic/screenshot32/resource/wifi.jpeg b/cases/smoke/basic/screenshot32/resource/wifi.jpeg index 8d06193cdf300b62ea825f5a438856018fb4fc20..2b59fccf6375e9e4473e8744f45f4a9225c567ae 100644 GIT binary patch literal 15214 zcmeHu2T&Bvx9=c1OU|s45y?p;tf+v1umTE_BxlKKfrS+ikennVC_zM$5+uq>MiG#p zWY{H0mR-SRabfqZ|6Bk2?yb7@>fTrPd#~!fucx}Jr)RqB{LY-7=|1N-#91N|IB%e< zuM3co0RS240Ei2~4d5KvpY*3Z_a{-1|0yXcD99~rRzCLa&k&KYAWh~-11*4h#vqJ8Zs5KZ{%b`z&RE&auzaTKL8@h zN%;@)NW%V0B0EP;K}khT5`&&}L(6%R_~hgyp(#lclkScrT?Z&wC|NJcYg4hAI8Y1u zvnxbrzMv7l{_*GcYJPBorDJ9{V^hKH*7XQdaiUoZP(pg2J-$iprN&uc}`+HZ`}r zYi(=q=e~9o_sy;C9n8{(i7=dvWJ8**hy62SkJ{8Z8> z|8&R8=<1K-e0zIlUH|B7=S{3Kp%1pxM4wqKGEA4E6N$hS5g=SA0=v^HBl_G&=0m4K z@FOBX1Tql6kKn!HL;ykrPUwk1gU+nw-`D@v&)@d(pPwHlA)LCJkAEr=PF8CM7pcUIWMh6CL(=b`u@o z|5Of;zdqT~UsWIiL|9nxYu&xh;RAeFZ6D&De%Y;;>3o1C5S$$6BklpJj{ zQs>!zXUu4Ff$&y`)P|8Pfvy_8VnzgFYFCIrj|^82=4H7PvZn^#d+)4`x!_fP7IM36 z=HrgE-I&5j)yt)4yLD%^2p=A}>q=@V1p&Z$p^611FUg^YIWNfWd7o6H1c6j{dm_vf1rXTRG>3uHABl--tGcn z$qsEX9tV1Z*tbRJVQn#XF`)bKC$0WOpjWT{M$L&NN}aa8yrs3fP@ewet;UZXeRu4W zk0Wm6I}JS0JOYa>rRTD&A-TFoq0KSe#Y2UM!9Q=VliJ5W1-YilsLEMr+gB8LpFd^7 zPMV}5DI$QZM$p2MuMp?NaOKEn05r7!s?PD81_U|R0&W?3sUCxFEBcf?ns#dtiRb!m zVI$D4DN~IPlzB!3C9ZG&H?WGR8j!`B!AJ(JkStwOaUubwyiV{#U*xg_}X=!7V}}M~iyh zx>9A@E!TfDm_;N$RJm2KC}%GhI7|dIn@(mn>vpZ820>`M>K3V*q6iRO)D(h_SAY5T zV=bXCA4F%5AV=qiz=Jx2PFg5^9v&-94PG&)tXFpZ&J=jJ^y+tiS`oQNjG>HH; z1r4u&)d9Aq4P&&wVBPqsgtDXks#3_Fg7HoNhKJty{0xD|kiO1*uqOg1qng+)YWcY} zO5m)7z&^WGcynSXKdq(y`wtJ+8`H@gH(khMu8l^3(ujZq5uo)#ppC2#aN_&V5CzT% zIs}TVDdWP$`tl~00sq5&zAoJ4wfnEci&MULO%Z4!@B*hkXIWrpzD~RO!g;8c7<6cW ztD_+)ZmhvKQbC7x$i+22!VS7UP}h7}rB%>@f@+vIQ0L|FdX@)2_>^@kpJY=F;MV6q zF+_laI+m037ieM?+#NS=zJ^eUI0FeyR zf(SUlaT17qVay>mh%}Q!EKg0)RfCMax@}X+e263~-3(zvK97tyNnt4ofs1k{nerRX zJ`9ZEkbdS=INDM+t+df%keR|0jy6h$ClHk0qr0qpAHf^DrQP%PLp2waxMXa`G8g!u z_ea|oHc@vuDym&0HjMTQN36hA>71&^mCO_;_FX9H|=-VA2wb`e?`0 zWmfMY$lm+gW^>=u+@!B!w^4iDW_$H(6`PQvoU=c7oVloJA6VM>?gsceyYoyn zrfM%5-8zJL>wC(EM}kf{6|wf{rGa0Aaj4D(=JXQAsr+h;YCOE9K4E@BYu9Gp?-PXY zdalb|@0EK{>(%i`QCHzTk=;D72e^By62YZRxOA*iE)me1t}6`~C*RGZh&Z5#bGdTq zLu?F91B|31{ix3?EC{z!oEV&hc?6q?zUmPrG}-L6V8`OlwrssTSZ0l{zWMM=SH^H1 z|EF7~+KeqtF;d@GW}67Ke3*2s0BMlk9U{P^LG2<_juu-({W@!STrc+3K^oQWbMS5d zC?~q&@UxeEp-!;w^{hvqx%n%vG%vQY#hU7aUb@S*DYXbR4T)S_3$_o;YTGRdkN93u zA6Rbx7p|!>#vHyAepG+uN6-AMh+m}C%ZY>BpCA2?C;a-rb*gQ- z1089GK_Lp~ZU`!Hr(F%v+T04OmZ;EtBJ?&*BKe0 zB;`aE8UL&>wW_~(G2#Eq?KUEUJ|~mwQWS3NQi}|d3y3tb&E#^s=Mg9{ef@s1oaUiv z49#%8`PgqSPO8NW>U-l07YQu|H|0V_#W=AZ71;E#W|{(C(n0qYWFNnbuoh&~zop(#<8lkubHy5v$*=^Z0U z$02cWK}A{eg-$N8-RFtYhVLE{Wy3N9<1>d!Zo4Oi1`>_*Zv%gwj`I8_xMn3?j@h$0 zgDdJrA^z_4Ur_}6Qxj({2OV~^^Cmhx6moYAFU3AmXG;PkDiriS4Jjx(U`e~`2oHY$ z;hpfb=|<`_y=#y6ub8A4e0(TDz6e_}03@n3ym>o0T<3}@Qo93~03LufK#oi)i6x(A z!x9|sBzAr@hAL9h>PFYivPZfoE=yWS&aDrNw}4#X;>+zjTqz*@C=bcsrz``5XA#eva^w(hJ)scTGdj zk#k(U!Q^LrWv%$|8m*3yoN!Qr=ObG6`&rDuBdYMuGl)R&bnFQ);LTo} zh6pnV*LczcK6p-3ab=w6)cr5T+OMht5ZZQI8@1}xDDwCiHfEslBluKhXuxk`Kx%})a3I6B=T;wcQ;lGE z*V=N$S&D{#HEsbbg`PTf~(aI19`!z%0BwT>UV9U#D(j;Vdtm1DLtd;G0b~I$nk{RCA?@&)MP_Y zodpa#^T2Z`$UtdQ@fKN5E2ppngWUC$R*nF^P>t+W<|KqWD0-!d*9K~b&6`kGPZhW3 zRZZ}z3&JT|m!2PzeVUt_eapF@t>5rRW@t7K!`<^brf1JI=rQBH^R88B#Se&g-8oes zk)-dCU`4L6c>RmLK1;!tqa@X zz60+=elUt#d?So<w<*V^q!9|R?q2&Q9YaCT8a zk!Fz8BQFGNm!F5Jp&JkVL!D0F!zjJW93k?)?~A`y)C$kTeVF-9tUOJ2;W zIO>4Yqdpi<-%0P$pdlVcJ-3b*_`DnPh)r0IHTRAI2VLLy`XTHRI$R&rwqtvN_77rhzUd0EyXd^3I^iBIAq=R` zi2T}=+tqhPt4r`+E`6$(A3h4Sh@<*ABH*Zf97jF zrA!3oi+Uc2X5U6kHzSzc(D6MR*6ZxKGAIe$ zbV>wRqr~pt-wq#7s6@12?p3zCuf6Md>zEaN=q&RgJ>@6ux&;Sb&=bTJb-{}jru*$w z7~Kn^wYIap@4?%UpdqUH>{}g!r%Am-=DGtm0RPApXuEU9+qJOPiaqWFCldh{unTGF zJ0PNu8Qj$G{Bm03Cme5GFga!BXR!h5uoMx#u&Sf=o!5fCX&&JKpKrKxR;|V7*)4(b ziS{b@EDUM$KDc}#aTW6RDlICH>GML03{%A3l|er>)w4IiwPxl4HW+<>1BQ4DErl*>3ab|dtQ#G7ZW$&Og*8qX9$=oFSr$OZ`(w?nV zymS>?>CELeg__s?F0ZChoCVo^AcglNOfD;&m7Gdf44@l&(9qcaj^@MLN()bxuN8V% zK>Wj0zB;5_(4iJ^7R=Y0Qi{1!xH0q4*;R%55)>>UTs=n3vx~F%sH$}ZH%FS?^G!n_ z4gzP?xE%E08hYbt3Eh;8kA{Qq%fYm&NW9ol#;{1XryG4Vb>u1g%=-h%xuea5Q~yfb z&e9P)CuP#$ZxZ&i#rF-7bG2PA<DI@i+Sp@Vt?rgX<~?c*veuUoV6ziqRpTF+9sPPW5roO879Qm7nyz49q*MbNl1oB8Z3_4j%tuSLc(N{9Up z*?(t#V25eI-p0W(t%IC!7GDj^)o}(~(hvksag_+fwqW0Oa(2!`q(Z*g_&SD}J$Rv` zG(XEs1)p`quFgHIM?73fgV50D*zvz^lG`z)Q4L%v`8ADm!`{MKqCk%y2;p z+@2apO{+n^xAIn5m2zR=WEfnql5cNw5ie;;=GwE2@D3Eg+O-@HM)=E+*J@pkwsyCD z5qehS57;yIXQs96ADMm6uoU!I1G39<-u>Piyf0<`l^LeEdjaj&W+FYCI4dT-l` z_|**qpInoRjGcblDfet4*z369RU*J<3(Z>{N<1}NQ!e>ce{tf}aFyrfls6#&Q)VT3 z-{6G^<0pN7wg)vj{6Fc1qtRS@OXwLCB+U&|+DFsS%q`G;wcHEBlfBHkCtj&h1%3B9OM8G8bWv=?PL4L{J{Zj1x!fB_L%v z=b#6@U^AUYUS59nFfD zxWpSKio1ptccqOBbA?>~9H75D2%PJnllbo79B2Wei4wGd-LXpDI=IK*n5EXkvpU`fPY`6r=^#@TQA2%87w&I$Tn`J6EV}*k#D7!7C*-nm zl)XN3lboONlSC)IZ~+?9vl35wU2B-F%JSlb`}C_kOQbr|Hv75m7!2(PUTQp$=r3dI z6!%OE2+#6*DK3)noB>S*1*Ni^`ruPN-uxxrziVpV@3&1vLVtc$SXp}DP9{-fvNiwo z3BQ%xcs->$p878M=l;o?=X62$#`grw2$2X3N)O9aO$4-7aOl6A|JKQWmqF+NX3rbz z=>^qG4U87oKn7pFG-pG5k$8^r~Wdb z^pS-xo~u(306loR*ub~+JSoyd;-;{=2aF`o%Y`;*?4xTUNQDfzRitUS59jqTkFyEA z+|niXX0v}MH0d4kZy@~tc~+L2B-1;*evT`cekRmlr?!qT?)fHu>*{Lz67NN^YTmbN zJoUvvFW%7#N!DwWr8U+CqI>5 zDWoF;GOl$yc#!x2_ud-i<;#Aw5x>}N@mD@BYVqs3 zTV+i>(#UlYTJ4-T4Fe9Uq`o{HK7FGLuJH?Q;|=F9s_)Zd&HBT#p6)csNCBfRQ3rv|Zwbf=N&uZoa~*{ z1Atj}p8&`b$L=armimThn%GMjxtdG4vHD!A*L) zX}o4tyjhiEPqVv13-e@~HcV~aeMeZ#;?Eso<8YEy&@Pz9boXVP>qJdRZ7FK7ugNI$!tb>%2#l8uW$<{`P_uY(Qzi)<-(zSz;f* ziyj#IyJ}w_9gB^?!1ssn$~(MneP?WUCt$w5wfZ&6qgkJoXP>`qRhhIYp#FVL$9dk) zpCakkn_|hnHk;81kFgdWvjz`QCOrw$faH{NHKl`w%e7zgR8ot%$1bhX&GJNu(%oZ! zg>U>GXmF1;%VR*ScCsrdbYcnQ3x%)F^dZ=BqFTZ@x53}KFHoDQOUetH#*)%><&A2G zIZ5a1Q|e;-Bn7lzca!7R&<(3GpQ89-H^0DcthSYBpdK;lQ8lv5RIRo7s#oUmiN!y8Vx_7k9}@{{l`D_;H#5FFJ#RMktYUB4hV!?s zkxGl+mhlVB0ZK40tai>5#M-4vQ6lg&zPrgwUUDksiLC~vbn%BtdnmFo-r>WjJ5+Wx zJ-SY2cNIRZ8gjcA!L1K~KBnJx#;oZtkdYFfH7@0VjDp6ycjZ zZ?MZ7lB|**=8Y=K^=(|TQOgh! zWS=EMb!+KHja0pE7=>VjV>gK+6yr}Ag;T;GBI1_C&nk(42ZZ)MZhW9y3M0DuVA0cl zSZUVLcS)OdJ?sMYr<8N-uSrW$h%CCu-lWQ6Kx$?TQ%cZukse5SnDBtKGBaJq53iN?fn! zzA6*$9Gm*SX(;y8x$8YMqMjALV3m2djr({?6lMmopq>sd}D? zrJbh%B91CfQzLLViHc!3sz!|Ejb-Ftp+>}mW)zL3aw0lZ{9QHli{K73SeDkem5@TC z-BF3aK$)~9-|i8!qas7#{tG5Pf9Z_C>1^{$-MQLRD5=smEmJ^hf2a!5TWhhw8k+64 zGi`RatkjuAHqn3n-@MfS4+8v3pc8uSU+^=k4pOB3YXiQlXwlFioh-9)bTHgvbfwwt zlkfozRW; zm+BJz5f3l7J5MEdm>OwLnHnjbPW0uw|NPkhz+w}BOlp%t!_~fHM#OeFad+;>!wOT z9rvf+_)vJPJejGo{A%;%eI1SH zfsCb^D0{_vvyc9}W;bOm)?vxXYMKe$iO)&J#*c3IN~uE~@z?ql>G=d9Qm|XI%LHSA zDvb>~;3Z7Wlc<6$8nmw=aFS0o@w`XIkWzr57*?;9qI@VW<)QTW(}Ll}y3BG?KUFQE z<83O% zEOX@{zde6YSpt_oBli{E*ZPMIF}#=Z%#vWODK4K6INX<(XQqRp5TQC{$tmw;=CzV~ z&JFKCFHslQU)zC)q;GXocMGPEK&OM(_S8Cu8)<;j_b-D=Z+a{C^Qz2oIb$D+$9sib zbW45gf1W!g<#}uh-ERx5^;ujq;?V<@Zv+J>5m=3{Sz8grC9!zJS8c7p5;_lQglHU> z38t{jbt>@A)JvvFyFNHg6dz7+sE`QsH!wl1zD+&AC|(cVHx}t{Eiv6s4?AdyGTFB! zxon@*n0^`V&<>NZ_ZDvkO+dw^CkNBY!i-ROX*HRB zv1dc0B6MS=ZjOfX!lB~N&vg(126zv+iy8@F*R2_(lMjJnb-Fy__N^9M4r zGEP62f7mF5J!VSI*;3nqAYKfgdU&O^vTx2N$yb`TOxrw|==8_gJZsQ;P&_(&BD59cY*%=~K@4bMSa3M|iW88%{D74h%Dv#0J?LBCRNwHM$v^ng~4@;{xhA zpE_UfRr$J4jQh>!{hXGjz$$)vc`##==^MiIal1&qQbt(t*}KyltM84M%Cz{prj_J! z!#ylH3iVpjP*D@Y7lM{28EE-Z{O!CZtdKawlg8t4j@pyrsf}1qqouZ1&b82vWc^>d z(0bNk|D>-TwgInNMn#IvKUVDRPjt3?ap}^f;S>uP(7SwX^JmqB4(!|JL`7C3okUr5 z9J|Ri%Kyg9zZ^>hF1l+q5P|12dZ6DeL?FmQ?Rkdstr322>2z3%g>JcL+!6Q7W7b)# zxC3E*E7q>(6psRKX`&VUe^uA4LgwK;AT$I)a&Wg|tI$r^?53Hc23BqK;84GB11P0q zFxnx|TX|_9Yhj48?uezpVz0A^dl;5koV8j%AU630f3H5txl6j4EteljR=ieyw5HT( zqvWX{ow)U?R$-`w>XraiSVR2K9*NOI;mx8ak85_Kh}?pEEWv$r!8`JYN5T~6Ba#+L zkH`7+CN8uR-Xj<#0A0f-;-cN0o{u6Eg)zFFtEp}uTho>etILJFsx7Z)e}5!UEWcPK za%lW%y;>dQ2zRe}{gJLlSl1E+XY3K?rq&>zdPg&Aj$TQIsjUg{f>@wtR?XA3GO8!4 z9g*`8wx9kbjOYc#`x`& zZPiGr$1m^Dy3g0CW_eN1uhnFGL}2P>dj5xDUWeWjsy-UoqKhN+U!^qktE zOES?3cbmV|y|ClQT^9h~F>h?`Qn2!wT-JM}+;?-m9j+o79U|=iYO2dx?4Gnz`edEc zK#2hQh{YC~VA(vi+V(zvY}pY1^s%8vE$5ZIFrE-sGK(5kIVMjKJ8rkPn`S~BBb%a( zXOuE-3AQ|FQQtzwsj3W&w9~c2Bo_5FBBMyezL-{P!gRQ7OgH-$obj>-UoF&gWsUmL z9Zx~YuRm75`UGdL(z`?pczg4*Jp371H0rm7^LST1|C+#o55g7og1Lx*JD+R}5deWb zO6Qpg=Y84TdDDt8H6(fx^C?Ts@>Yk>tK4tiK7}@GH?sH5O$`NRFURXGPJDcN4R88# zp6^wC)a&7sK6x6;_%HiCn(=xkzo%ZLJUmn_R$IKXP2$_FoU-Pvjv^AHY-qq^#3!6v0Tzajk zYuVvB6k6Kj-FnpMYOn0;<*%ch){s$3J2$s+lhe6>CD}C~B+b4f4JnwAX=^1H#Kfe{ zG0dO&$bXyz@!XTv|Dkj~0YlyJz_Uv!Be|hYJ?*67EAFWHa;%i?UL)2bk&YA3J7wE87-ilQ zNBftOl`Wx145%NeM0c#DFyD6K-oL-n1RjLMYDq(qhyZz)GCHuYgafVG>1f|+a5XyKoGM|j9e;^1-AdX|gZ62w=1%#}^12p4Pv*myQ{kxi z7s|yEF!0NLPT*GO#ScKWNWtw%xS-UJgH+HP_+BPnTP8t#03IFASs9Eff;8fM@5WO% zcTaj_T8CRYTimN!(>m z4=eH`ajwbCUsu#V39A1wewj2Q8wul9EB$clQ&|jTAU(N6ylu)SO6F8!qGctagR>&H zQ2O&BE@oc6CZ)nFRBBlC=j!JVy6g&Zemt-m>@PIeAUwJh1QV?}4LWNkNa9qn;pnI3 z=IHUHAOs~endllW0Sya>J|}))OPsjs&wp zvwOHgj}eR)o6~!;9zf#>cNADxF)u2^+dAxm~biw(lrHtH*3oNhWY-IT>&3pFhp?asRehPPX=NUJrSx3a@xIVQ$&`sr4 z%H(LIUhvDjd}+s6eh?X$4m&KhnJL{uG$!nwp&C;2z|EoY-Q3$9ZfUYd+n0kO=eIM9 zJc7Ax%bl<}DX(qx^RropYj+elp0Y}PDNFy9qF20D1w`?i2f#khUmCv0rz`1RR`L9= zL$KQ*H5Vm(p3^tqlf~U?hM%0;eMw1fnQis?tkTdKWOV?0zTb&Y79#dFI@E=g#ELy`PKOi)9dluBMJA zh=c?LA|d`j7Ym^Kpi3lw%AfkupF&3ZrzR&OBPF9Cr=a);QBqS;P*PJ;P*BlQQPcb> z#1x9{L}vf3kX#}qBd4GwvO!CHp`L-rJ}D`YX>uaR#J7Wq&p~92-S>)DHNY8p0n4$iAW!Xlz#;&Qj;6%>_}??2Gc)Y8_`ee~GW z%-q7#%HF}z$=Su#&DZaxe*iS_RmAJasOXs3xYV@tw;7r5va$;bi;6#$lz#qFQ(ITx z(Ad=6(%sYB*FP{gG(0gm^<#Qwc5WVpURhoHwf=i!6T5$Kc!WC!PEP;GMFJxIH?fHI z|4=SQqFk5$tO4a8xkxSr5Q&tLjQpAm1=Bra%BMce*JZ<~SkzNKR(DYg+%mziK6^1v z!zL()62krw?H`i;&j}X(za`m!2=)WfNEFI7|4BEMkBPkiOKCA`Dftl{jzhBn z{B`)@1?U2lj5s}ncZ*zr3@<<@v=^XCjakdTpZ~3&zwP6Het#JIvuUc5O7SO{3m$&J zF4fmvmJT>|?1ee6QG5;8m+l!awa)3*dr2K{k9U78%4cXW^eDxfQu6vtDB{*eC#&puD z0$2TOARXjS{BT4$krrS6{Dn@MF@&GcbpgVd zBO)OUjXUgEUz}+(#vFe=L=J$U%kLZ1PdZKa&EU=x$|tRFZwvOY^&hZ!N3YKc-fyq* z`HiR#*l7SeNhju$snNo_YY9IuK#?OWVu#G1;hw=cXM7{E4hL-rVZ%CSe|fJYjD5`F~m zinO+5Q|L@~&IAbPBra*J=T?2OKWpSzQL1buaMK#j_Yi37(MhrXCgsP`aA(8UX3D~u zGF*jMe>D@*4>V7R%c_p#^66R_`90Fqyryxnv z{7UWqas;Y#=k5q z>3*it)6@Qj+t=Z$oZDGR2MzEBiIIe{7L{C03AmX|zZW7!ZeVBZynn3D`Qb3mM6;BG2zLq`~Ws!&FN) z8fW0la=AQOvxg(v#mQPe;B0UZcWix%+OK5`2E$MDA(QzSE54Wu5M78M5YP+9=;hw& zJe`NBv|oT;GZ9A6y9uTB(+Gh+G6q?}&1%h*5uuSgElEGgIB!sy#5=4w7pHu6D#&(! zv{r77Hr&=ZgA;xr8|dSS`6E$ep0hZk+5Maisow>;ZQX zyrm^xA^(vp@k&S=ai`M|ruRdpi2KO^NjD2bTQzoIwR%3UVc;>J8k;TcbH8@7O%{HB zvLW<2EF%2g6F`LX3$p40glFW!2?3AJgrW4Eh&t)*Vxs*3zZQC``8eIP39;lyKYrln zGJYxD;PT00(&4?WBtBRefA#x$`UU7IJPuh!JmhYng)1@aD4ycX?G3DT7cTRdx)@?* zy#NIDn#Da<&&Yd{;}BER@GSn57f1-!;bs!iX0FcSaOB(zCjr~j$MUh_Z=KyI%p+=U zco0-zJm*zyw!zD1Z=U<0FU!2Vm4P@Qr z%zi}l&WE8D_`Fu{k~rq8I$?g<&NaZ*>uD43g9?GA>kBpN@s}#pQ|!pG#{{Z9tYH@z zV_q4>*WkQeUEmFP!dH?2ZGs?R#$!bbl?#3}4E^=vdblf#wg|aG48hUy8DkgdhKr37 z=V>&v*Il0@mQ4?f{Vr0z^>XE^pd6|2IMJeimH$kdF)6fv#Nj9vT3L5a|7!EqVTIyu z*Zi#D^I(Zj<9iwVLq5mj&wIe-3QZY(EwMYs#RrYtXLqj5t~yhm^1hm?GvT~6`_;Wh zn1)_3a_GBn%KL-&X){Wn$t+g**FOu?tHm+ZRH@qbzh0qxamUAa$dS9kHc2pIvWY(_ zgzCHU3pY10t3iq$E)AOAiQ2bDv{j(S=1x-ZUGm!>rLG09q$*0Jgq;VfOr<}%MDi@O z^-^m-d19yR-Oi2pB>QZi2F`01kpg65`~)&yaVxQ(6#e0H^Qt<_0VhMH^suQ9;j$8MYdf<0!Wsoh ze)x8k=YW|ke=>3pk0W4*_)XrmLe02mHuptj2Fnkh8vIlhC2=YG2_7nZegP5=WsB4A z!DlPb@4Ngx`d{mzAXJG)w4m-54fQjb)+AlgVuw3bMsWci>r>3S7S%&zzg$HN25l3(mb|oZ_qTzn3#cG0fzW&3I5lD3hKz-41?Ccgub8@XQ0!HdeKzZXR9 zz!e_RxtIihI6k<1!~<1@GyH2pB9#hmFRv4V<9>m*0_0R*+`HyNF0Hw=6+8Esq z7G#^IY^lF771}c?j3gp%+c0^X2+v#bv?I5DSKdi_-I&460Ckb}fqeeeo@=}PYESsh z6mcr(qVqQ@K7lLX*|Z*lIMBSZP+HVcH}!O?eqjMihV7r3xhZx~OmhFj{?skcjbxel zegsAzJlno*4vEZsp_H6X+4rjY=i`GquKY*egC*RTqjE9yk1_CAxD$jFrU=E~S`L2T zs$ivAd3L6kCT3kT^y^OG2f5ePzHh}l9Y`J@GNo0oAQ@F0&+fx6pT9FGLFLaUJ(yY_ z$KO5Gik6leRbDV{#R|UQ$e5l8s#xopdC^nI0@+O}WzqjrzErj5v zbE+|u0K07;_|b(eY)`7*xrJ(9BT(4XL>6SY80sIAUD zuwn$RBY%aS5m4K|qi<80#ln_(oVdX=H7guw%6roygA^<(8T%_$RRkvr?5s$~s!9Ji ztmGt2bueS;{X}Rnc!-TNG_IrCI=@{Hz|33P-H~49Xh+78( zVD65h)f*WFYfr;uP_E^>^)5!_3OBVUTF&3sB-4T{E+hMF5IeCeQV^UOaQ+op$B&-{gSqmq7r-@ zQA51c@0XDC3!GkN{!FE*Lg^<#kEOYH(QRYsl4w7~EX@{5tG{Wd`je|2QyZo-etMYA zKewnMbyMWz9;p83i=*G#t22+-dqyEB1fH3`cREDKTzRQvSruYBGgs)Gvgds*J1}hi zignPJ^~TJ-?i$+K#SkiB<}r|hvF`>m9F4eKYoCGLdRl6y;l}YGb<`_W@ory??YHOD ziX5zO&-7uA?En|X*9hAXS<+MLt}kiE%QvxWFU_-aJ`z)odTH`?qit85N^xkg6yYeM z4R)-ImKj#BgU}x)3|cs9*S=;ID80RM0jdYbhloItxN=N>58^e128>cnLS^SO0!f-_ zR&NY6nscpauaC**XK7{e+m@*CDo+~goOSuXI^HhFRvfPkba{gNTX31IQSGF9B|w@% zn5D^>aicFcHqz-?+5Vo9&WQ!xait0dxl`}sdFBMoA^P}liWV$3lE*x~QTdGbSl;~l zIpoQLaLOIoW|DCdy{Tq%#qjoU$hQs|AQ#hv>&Ehh6QuFic*$ykl2+@#lM={B%h*5^)6yWtHFYQ54y zZe>_`LeFz9Xus=iuHWp=Rd`Kc6b+#YnMBeNXg9L`bA_|ez{}X%L2qKXe`-!A3w-Gx zUKX}&Uf!p-nfWAq9w(Sw>%sZVz>vovXr>QBA0i36i_PC@#YCV2`fY`Syt$w>3%&9o z*PBuW)*yXS*>9`|=SVoxA1oX*)~CO3aNl`y&y=69MLFI%5uuw^=JA+k>7xdV$^D?n zf41Ws=-rQ;6Y1pR!asGyvK{mhBr!8F9)2rNdFz+Y1HU>4LFDw-n&-PhVR^Y*Q>CAB ztf`BRRhYbI4fZ#Y+nMwTSo4IV2>Cz0D^EG4kP&Fehti!8f7T=p|+WU~JA${OWFmtwC`RJle zHO48qTp7Q!%aAVRx_QrUX2V62N(l{h_P)=D4OO9E?|9F8>2V5qf^i+d4=)jcZ!WN> zRLP+?DYI~%y>z0Sf}t{b&|^2T18vD9X)ND%8Oo4-Q|(F{*1Q+Oxp@;Rv%OX~xp#XJ z1F^Ac)gkX26l<|G9rT>z?3XdEya3rJMde9iO~>LoB%nEcc5(-m*}r%MdONOV*ed^w zmcAX?4DqR^UAr(G7`4GSnmJfy`b4-$6Y+4Kld#ZkygvVe0$~ zkkca9=a)}PY4Q}+n&^qa(F+hMpwQQG4U3GDGpuo25^HYEw`pUSZMCUm?+%qEOBr8B z`H-N!B9EHy5a`uPF^kEo-P@nKG+2yC{^+P^8GPmM;lFkA&oc-X5`*yJCQ0aS zu$Y2xe6YlQ^$GoztX=!_S+F0`efdB(DJQmPq4%QIo`ZY)NWCgQ z!S^R}XDw;hN{%&nt>At}<<0k2FiOP*+mf&MC(jC!q`)m=F8|)ksd7HIC~;Vwa(Ys< z>y`T){9Q~*Zd*dQLZyHtH#}RVcAQ*2^Yim18=WS5kt@x1&#Ak9KZlFI7-ZBF6-+G2 zBNyI2^8U*#t-fLRAtTlIVaT7^8+PsZ2TmCA8;85YHOzlF`@>>!0g)~0e`m{NoOss# zf8S%NBWC-w_!(MD?OI#RO&z^)L8h-2?#-}%|2*@#QKVMtz?(Zcpy_ zmvs7l@}4W6&WxOb@hmgTi!(dUXzB3N^;c2JMQ9_q|tt-nyy3 zY1_1zpT^~z2GL(qcNp$Jdl867SOK)1$QtDKK^eTu90tdXm;o{PK3_i`vczhov3@Fvih2CeXMhs+^q5KgLG zD6$YaOkYE!a3y;veeCrKsrsDs11xuH6@QWO0>%DtO--f^-DC$XVGLZS5DE4`P~agL zzHM`RjBk>7=lBlwUsYoZW&O+ivLHQE!H%EAb$5);HX6zqHNC<)0!rL7A6W;}Y@o zVl#!esw_4W@dcY=&3b7D7Iis#?QJdZpC$$NRsk?@U8K^N7eJcl{*q2fq~3co~pzU*pq%?y&F=q z^l^EIZNUVyvs+vVeEL3OIayinkmw11_)ez>&q;9Gjap5G=DcjDZC0jf>U2jN|@ zclzMCA}9yZ;2m}W za`a}$lb+|c!7&j%Y_Bq6KND|T_a>xX=IY9*u1#mKp)MCq>SUy_hEd2ri*N-!p*h@N zVi^?s1$B&hzd8Q7Fg;Ky@V(O4>@?Ss!q=%8(fJAJyz6-oD?b6M$8T!lo14o=-RJs5 zUg8RV8X`J)@s5Bi)?6LV1e3uoC7`90CDOc(=Y@+|r}RYcU5jtiNWZCR*8l3J>Skp$ z@scMUktdFQkVl1?>D{}sd38#W`8UpLO4e3WN2N}8Ar!=%e;0bRkDM3LJkJ6r`^ws(qPwitFi za}oYJgdSqC2-u_VVv7qm$-K=B>ow^2lHU2tFv*-$r-VhUV%Djj0*Qrwzg9TM=DHg7 zZ#dN39io3tx@X_iFWQ?P2np&sqi`bn1Q_aRpY$oy%?+C*FAz^UP>sFr}JqGjuI3oP{*4?=i-E0P-5im9h|^44!xj_ z<%>GfK6>5I47CgLi(Hrgww3T%p#S=l63L=USPa6GFBC}&x37$clXu7yzAdrTVmcaw zR&s1f%_iz#18ilEviObb&g)M|G`vsU+J9(&Q4x7N6~*>?Yt+2gBpuysKm6Y2M^5|B z4L!SguS2=AKFfOLrmQoLAW4-K&Y-0OlX%`Yg*NlYb8f){E8cN-Ai%wVn5?-DjOhO5 zk6QO&&txlj-4T9oLrs*Ih`SrRnvZRL;K!`WrMrdyawnw#eL$B_aN+0 z;^jL6;gJuBdG|?4;NmA%rt2!Bth{n5U#m!!>W+DGG{?wgN-&Q|>PtRziC|tUq)KL8_IhU@Pt#vQ zgIdvi{MJ(Pq05)i7ZnEPtan8GPnxd=)K`95(~7IU9q8UdjaoB#+<073gf1qq{U}E~ znnWz;Ab8b8@h~801<3%j#6EI+w86)Gq$;8pP!mNjJ}g>3FLz1EsF#!eTi|-$+eJL& zyeNdr5&-urQ}!U=5O|xh{t2k9t=8b{0~YmpIL?)@)%YC$7e48~%_(`0Ff%=dvBc0A z5k^Hea9+^%2tzpEIU)yoO6SUtnuZz@1MAKLZFmPpQW~l@nho8Kk~oMl6Xid@UDj=tV7BZrKh*sKPI=Ql>TYs+(Von-gOf8+>$T;5e{uJmQ^31pQ-n{ItKDi$XU zzqeJ%MY-HJlqC>SqcU@v z*QUEiGV~Q&iv=eaZwpS^m7>1Me&co3l&hBU)Hslk|9UjNQ8I-A&(q_WCx{0jgaUZz z4q>g&l^9T?)<*VRfEeWJ9<(N|UjLff27mcuI7%$}7Lt>qu@gL7h&Jy*#tvbFR^U6X z==>Pv`ixwm#1v;iQiI8zr!Q!4S*x!(rtjFa@~S7wlJKdI+Zv;}mlW9}Ou_!U9UKj5 z0dBJH*<$TeRt9^`eS`{!3y@8s#N642HTrFSj(J`7?|IJvH4Usco>>HK*@UHx3SlHH zs7YWN!(qmOK0alDnWr$%z2xt`-x`i(tDvTh3S^2Wu}VrJmB2@$1^)!}S1RYMi89oT zMd39*10f^b0XOZS-j;Pwj^zVV0^hw~CyA9E)WyjDd_reF?q_a(y4b5w^dl%pNvwZ7 z?s%dm{cAfeBk%n5*hvQUFiLIm7<{#M+E8z4d}eXx!~=Ffxvhk*qjS9g zu_K5_H>n!^mYVRChd>jip>oY_nqBzLo4}nNrwoahSixA<6*IwAh9cf(-dxN8fqJgu z9yapm_Y7o}GdVb<7_Eoizo`;Xk)f!byh?Y3ZmE9n`L3#(@-+uZE-#D@x0j(azIpH&;J`<52f``0~XWts5zPi<)*%ZIxp z%?fo$!mJw4KN2qE-G30cpg1Wdzq58<%{rZrQ&JIP)V`#wOvx0iZ!VDxD35* zBb<>e?g&=AJyzr~b}Xq)hauV&8&&hsai0ZL)yEhplHR~awKa>CIt6$7z?X8NXSa?Vj0|;C^2}v__3g_s4if9uB_ZH@%I5@?*6ja z`8%Qrdskp|-Ygd&Pd@qu9d_Kinlo^Ihk2Ts-SJ!k(7!TS{z{0&JR!ahEd#W?%ijN$ ztD~gzyHe~<N3r~Iqc123586H(}UBDbyf#Jh5 zm!N0xED|Qbtuy0|?C(kFdzg-a-g2~cQoM3S#M1yzsl~py1r0idDoqDSb>_2o%d7FL znXLX|@)^-T``1hZYL@BJ7C_EyiKgk)BE}!Z?!QtE7sONQBoj ztR@2O>C$s)VJJui+|iO1_46d`{;lu;G0Ni05~)So!3Ejz(w7V(UJd3X4;)Z%jFG*> z-%1($V#k54jDooq_MoMy+)qQwOKe)p8wx)`27Jhhx%*KL>Zb3MYm%wEOs-JfJ_$S1 z*<{936KyMSc9AefG)&XW_9oSD&}1F70A~dt-KYG*dblM%SLZdtIo3z z4)JM;S8icN@T|Y+=PMszAl1Urm`0fF^z4qz(_EU#z>HCmd?|LpWE zdg}=rA}z!3@7#~n!ax>!AQ(j7-n@LzGJJ>R%qV1B1`y~yl`ky8`(mPre;QJP^?mLC?4~a9pn(G1+e}Dy>Lzy9n=Mgi!cqY zRNmHS^mk$J>X$(A#qtpkKj*PT1jc3*(w)yoV1(Z9H`Y3na#c{)%tT*+=oj2*5>@Vh z7ED#o6dh?2U|0z3;!9fWlz5>5o!KEK-N^9gsc<5Ykzu3b#`y;|X05NAr>ce4uGyn` zl|dyC>$~49x*O#m^+;zn)p|&3TI7kosTCh8*Oh^HDPDk<^L$2s-9ICPv767!r(k+? zI{7a(^)-T=D<}?ZgyLg zq=rv%AYr=Xou|zftHYCOYA||4h$5kruljh0$GKnu1_2lg+e4{*U6l380M#GniUDcW|yfIz^u>Ln^EKSV4;=Le5)zC=4oBZL?v{Q~5=re?yv zCJ_qa0Fk(T(d|_>4{%P0ciF(5^@Gsx$PQL0F~8hT&tzC)3$p|QKW-tf;K8M|`ZT+i zN58MP=C38~Jlqu#pO3-3SG$B%!psM&fRum zlWpXvtutx5t*)hs{*mFh@!f>t`l9az?oGQ2x5PZE4w8^p*SA^EZa@or?Lb&aEP-!v zQ{e(cyIl9COBMpnG0C_iUGsinL{R^^eQUP-N$(7;WKPXOjjyQ+n7DY`=SeUy)@y5} zEuVb*b|r_+rpeMkCD5?BZkgAwBe>K(xic{=nfZYllyKK{B~G_IY@$_#nLurfhR+A# z(kHy&ZrsyvO&9_|2u08hTC@zT8_*dcW z{>;lAtmEk`R8-(%z!88e{asG?J@erYengBt&B~r|@a7Oa$K}z9xnRX_)OZX(M#I$- znu->9^A~3jW7lVw0H+;Rb!kRdN0NgW-1XcG5H(xM(l-4waXpQB@l3p+6&O#DUeo&b z#$9%oFAz)$G5>P_Al~x*M+; -- Gitee From 10ba5e6f176a16a668002713fd0f853fbe678f2d Mon Sep 17 00:00:00 2001 From: zhoutianer Date: Sat, 13 May 2023 17:01:27 +0800 Subject: [PATCH 027/201] fix launcher image Signed-off-by: zhoutianer --- .../basic/screenshot32/resource/launcher.jpeg | Bin 87681 -> 87366 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/cases/smoke/basic/screenshot32/resource/launcher.jpeg b/cases/smoke/basic/screenshot32/resource/launcher.jpeg index 3e62b00caf9658e86f24199bd74bf8e07a2a9ebd..d35a4e28e9e446219ffdd23dc728ddcb7a7726f6 100644 GIT binary patch delta 36159 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∾N#3-kwT6>6IDs!GbS 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 Date: Mon, 15 May 2023 11:09:59 +0800 Subject: [PATCH 028/201] =?UTF-8?q?=E6=A6=82=E7=8E=87=E8=A7=A3=E7=A0=81?= =?UTF-8?q?=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: redjie --- cases/daily/mini_system/L0_mini_system_test.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cases/daily/mini_system/L0_mini_system_test.py b/cases/daily/mini_system/L0_mini_system_test.py index 18f4eca..c37378d 100644 --- a/cases/daily/mini_system/L0_mini_system_test.py +++ b/cases/daily/mini_system/L0_mini_system_test.py @@ -63,7 +63,7 @@ def ReadFromComPort(com_port, timeout): while (time_end - time_start).seconds < timeout: com_output_once = '' while com_port.inWaiting() > 0: - com_output_once += com_port.read(com_port.inWaiting()).decode() + com_output_once += com_port.read(com_port.inWaiting()).decode('ISO-8859-1') if com_output_once != '': com_output += com_output_once print('{}'.format(com_output_once), end='') -- Gitee From cb60839ebd10b5231885a23c4467cbca318ef9c4 Mon Sep 17 00:00:00 2001 From: aodongbiao Date: Mon, 15 May 2023 20:35:53 +0800 Subject: [PATCH 029/201] [rom_ram_analyzer]1.support unit adapt; 2. improve the accuracy Signed-off-by: aodongbiao --- tools/rom_ram_analyzer/lite_small/README.md | 8 +-- .../lite_small/pkgs/basic_tool.py | 14 ++++- .../lite_small/pkgs/gn_common_tool.py | 9 ++- .../pkgs/rom_ram_baseline_collector.py | 10 ++++ .../rom_ram_analyzer/lite_small/src/config.py | 47 +++++++++++++-- .../lite_small/src/config.yaml | 34 ++++++++--- tools/rom_ram_analyzer/lite_small/src/misc.py | 26 ++++++++ .../lite_small/src/rom_analysis.py | 60 +++++++++++++++++-- .../standard/pkgs/basic_tool.py | 10 ++++ .../rom_ram_analyzer/standard/ram_analyzer.py | 38 +++++++++--- .../rom_ram_analyzer/standard/rom_analyzer.py | 27 +++++++-- 11 files changed, 244 insertions(+), 39 deletions(-) diff --git a/tools/rom_ram_analyzer/lite_small/README.md b/tools/rom_ram_analyzer/lite_small/README.md index d46209a..e9e66a6 100644 --- a/tools/rom_ram_analyzer/lite_small/README.md +++ b/tools/rom_ram_analyzer/lite_small/README.md @@ -96,10 +96,4 @@ ipcamera_hispark_taurus: # 产品名称,需要和命令行参数中的-p参数 ## 如何提高准确率 1. 如果已知编译产物不可能从某些目录下的BUILD.gn产生,则可以将其对应目录加入到config.yaml的black_list,从而不对该目录下的BUILD.gn进行扫描,以减少出错概率 - -## 后续工作 - -1. 对target(xxx,yyy)中,xxx/yyy为变量的情况可进一步优化 -1. 重构 -1. 在config.yaml中允许人为配置以进一步提高准确性 -1. 单位自适应 +1. 对于已知检测错误的或NOTFOUND的编译产物,如果知道其正确的部件和子系统,可在config.yaml中的manual_config进行配置 diff --git a/tools/rom_ram_analyzer/lite_small/pkgs/basic_tool.py b/tools/rom_ram_analyzer/lite_small/pkgs/basic_tool.py index 26d884c..421b3cf 100644 --- a/tools/rom_ram_analyzer/lite_small/pkgs/basic_tool.py +++ b/tools/rom_ram_analyzer/lite_small/pkgs/basic_tool.py @@ -22,14 +22,26 @@ import glob from typing import * import unittest -__all__ = ["translate_str_unit", "BasicTool", "do_nothing", "get_unit"] +__all__ = ["translate_str_unit", "BasicTool", "do_nothing", "get_unit", "unit_adaptive"] +def unit_adaptive(size: int) -> str: + unit_list = ["Byte", "KB", "MB", "GB"] + index = 0 + while index < len(unit_list) and size >= 1024: + size /= 1024 + index += 1 + if index == len(unit_list): + index = len(unit_list)-1 + size *= 1024 + return str(round(size))+unit_list[index] + def get_unit(x: str) -> str: pattern = r"[a-z|A-Z]*$" unit = re.search(pattern, x).group() return unit + def translate_str_unit(x: str, dest: str, prefix: str = "~") -> float: src_unit = get_unit(x) trans_dict: Dict[str, int] = { diff --git a/tools/rom_ram_analyzer/lite_small/pkgs/gn_common_tool.py b/tools/rom_ram_analyzer/lite_small/pkgs/gn_common_tool.py index 35f153b..61c7470 100644 --- a/tools/rom_ram_analyzer/lite_small/pkgs/gn_common_tool.py +++ b/tools/rom_ram_analyzer/lite_small/pkgs/gn_common_tool.py @@ -203,5 +203,10 @@ class GnVariableParser: """ result = BasicTool.re_group_1( content, r"{} *= *(\[.*?\])".format(var), flags=re.S | re.M) - result = ast.literal_eval(result.strip()) - return result \ No newline at end of file + result_list = list() + for item in result.lstrip('[').rstrip(']').split('\n'): + item = item.strip().strip(',"') + if not item: + continue + result_list.append(item) + return result_list diff --git a/tools/rom_ram_analyzer/lite_small/pkgs/rom_ram_baseline_collector.py b/tools/rom_ram_analyzer/lite_small/pkgs/rom_ram_baseline_collector.py index 32dd3af..66b22d2 100644 --- a/tools/rom_ram_analyzer/lite_small/pkgs/rom_ram_baseline_collector.py +++ b/tools/rom_ram_analyzer/lite_small/pkgs/rom_ram_baseline_collector.py @@ -37,6 +37,16 @@ class RomRamBaselineCollector: @classmethod def collect(cls, oh_path: str) -> Dict[str, Dict]: + """ + 从bundle.json文件中收集rom、ram的baseline信息 + 返回结果: + "subsystem_name":{ + "component_name":{ + "rom":"123KB, # the value may be "" or null + "ram":"234KB" + } + } + """ def post_handler(x:str)->list: x = x.split("\n") y = [item for item in x if item] diff --git a/tools/rom_ram_analyzer/lite_small/src/config.py b/tools/rom_ram_analyzer/lite_small/src/config.py index a8f786a..9049816 100644 --- a/tools/rom_ram_analyzer/lite_small/src/config.py +++ b/tools/rom_ram_analyzer/lite_small/src/config.py @@ -48,6 +48,8 @@ def parse_args(): help="recollect subsystem_component info or not(-s)") parser.add_argument("-b", "--baseline", action="store_true", help="add baseline of component to the result(-b) or not.") + parser.add_argument("-u", "--unit_adaptive", + action="store_true", help="unit adaptive") args = parser.parse_args() return args @@ -58,11 +60,14 @@ _args = parse_args() # # global variables configs = SimpleYamlTool.read_yaml("config.yaml") result_dict: Dict[str, Any] = dict() - -project_path = BasicTool.abspath(_args.oh_path) product_name = _args.product_name +if product_name not in configs.keys(): + print(f"error: product_name '{product_name}' illegal") + exit(-1) +project_path = BasicTool.abspath(_args.oh_path) recollect_gn = _args.recollect_gn baseline = _args.baseline +unit_adapt = _args.unit_adaptive _recollect_sc = _args.recollect_sc _sc_json: Dict[Text, Text] = configs.get("subsystem_component") _sc_save = _sc_json.get("save") @@ -240,7 +245,41 @@ collector_config: Tuple[BaseProcessor] = ( }, unit_post_handler=DefaultPostHandler(), ud_post_handler=TargetS2MPostHandler - ) + ), + DefaultProcessor(project_path=project_path, + result_dict=result_dict, + target_type=_target_type[14], + match_pattern=fr"^( *){_target_type[14]}\(.*?\)", + sub_com_dict=sub_com_dict, + target_name_parser=TargetNameParser.single_parser, + other_info_handlers={ + "output_extension":extension_handler + }, + unit_post_handler=UnittestPostHandler(), + ), + DefaultProcessor(project_path=project_path, + result_dict=result_dict, + target_type=_target_type[15], + match_pattern=fr"^( *){_target_type[15]}\(.*?\)", + sub_com_dict=sub_com_dict, + target_name_parser=TargetNameParser.single_parser, + other_info_handlers={ + "hap_name": hap_name_handler, + "mode": mod_handler, + }, + unit_post_handler=HapPackPostHandler(), + ), + ListResourceProcessor(project_path=project_path, + result_dict=result_dict, + target_type=_target_type[16], + match_pattern=fr"^( *){_target_type[16]}\(.*?\)", + sub_com_dict=sub_com_dict, + target_name_parser=TargetNameParser.single_parser, + other_info_handlers={ + }, + unit_post_handler=DefaultPostHandler(), + resource_field="sources" + ), ) -__all__ = ["configs", "result_dict", "collector_config", "sub_com_dict"] \ No newline at end of file +__all__ = ["configs", "result_dict", "collector_config", "sub_com_dict"] diff --git a/tools/rom_ram_analyzer/lite_small/src/config.yaml b/tools/rom_ram_analyzer/lite_small/src/config.yaml index 67073f2..cfeabc9 100644 --- a/tools/rom_ram_analyzer/lite_small/src/config.yaml +++ b/tools/rom_ram_analyzer/lite_small/src/config.yaml @@ -29,8 +29,10 @@ target_type: - ohos_prebuilt_shared_library - lite_component - target + - unittest + - hap_pack + - copy - subsystem_component: save: true filename: sub_com_info.json @@ -51,7 +53,6 @@ black_list: - .repo - .ccache - doc - # - test - build # 排除out目录,为了避免排除其他路径下的out目录,这里详细列出了out下的所有目录 - out/gen @@ -73,6 +74,7 @@ ipcamera_hispark_taurus: bin: bin so: usr/lib etc: etc + hap: system/internal rest: True # 是否将上面root目录下除了relative指定的目录归到etc并进行匹配 query_order: # 匹配顺序,key应当何relative字段中的key一致,value应当在上面的target_type字段中 so: @@ -82,11 +84,20 @@ ipcamera_hispark_taurus: - lite_library - lite_component - target - + - unittest bin: - executable - ohos_executable - lite_component + - unittest + hap: + - hap_pack + # 对于脚本无法自动检测或误测部分,在这里手动配置 + # manual_config: + # usr/lib/libplugin_demuxer_ffmpeg.so: # start with out + # subsystem: test_manual_config # [required] + # component: test_manual_config # [required] + # other_detail_info_key: other_detail_info_value # [optional] ipcamera_hispark_taurus_linux: @@ -98,6 +109,7 @@ ipcamera_hispark_taurus_linux: bin: bin so: usr/lib etc: etc + hap: system/internal rest: True query_order: so: @@ -107,11 +119,15 @@ ipcamera_hispark_taurus_linux: - lite_library - lite_component - target - + - unittest + hap: + - hap_pack bin: - executable - ohos_executable - lite_component + - unittest + hispark_taurus_mini_system: product_infofile: hispark_taurus_mini_system_product.json @@ -131,11 +147,12 @@ hispark_taurus_mini_system: - lite_library - lite_component - target - + - unittest bin: - executable - ohos_executable - lite_component + - unittest wifiiot_hispark_pegasus: product_infofile: wifiiot_hispark_pegasus_product.json @@ -169,7 +186,7 @@ hispark_pegasus_mini_system: - lite_library - target -rk3568_mini_system: # rk的目前从packages/phone/system_module_info.json中分析准确度更高,因为rk基本都使用的是ohos_xxx,而lite/small的更多的是使用的gn原生target template +rk3568: # rk的目前从packages/phone/system_module_info.json中分析准确度更高,因为rk基本都使用的是ohos_xxx,而lite/small的更多的是使用的gn原生target template product_infofile: rk3568_mini_system_product.json output_name: rk3568_mini_system_result.json product_dir: @@ -188,12 +205,13 @@ rk3568_mini_system: # rk的目前从packages/phone/system_module_info.json中分 - lite_library - lite_component - target - + - unittest bin: - ohos_executable - executable - lite_component - + - unittest hap: - ohos_hap + - hap_pack diff --git a/tools/rom_ram_analyzer/lite_small/src/misc.py b/tools/rom_ram_analyzer/lite_small/src/misc.py index e31a1f0..c7a7a6f 100644 --- a/tools/rom_ram_analyzer/lite_small/src/misc.py +++ b/tools/rom_ram_analyzer/lite_small/src/misc.py @@ -34,6 +34,8 @@ _config = SimpleYamlTool.read_yaml("config.yaml") """ ===============info handlers=============== """ + + def extension_handler(paragraph: Text): return GnVariableParser.string_parser("output_extension", paragraph).strip('"') @@ -47,6 +49,10 @@ def target_type_handler(paragraph: Text): return tt +def mod_handler(paragraph: Text): + return GnVariableParser.string_parser("mode", paragraph).strip('"') + + """ ===============gn lineno collector=============== """ @@ -132,9 +138,29 @@ def add_postfix(content: str, postfix: str) -> str: class DefaultPostHandler(BasePostHandler): def run(self, unit: Dict[str, AnyStr]): + if "extension" in unit.keys() and (not unit["output_name"].endswith(unit["extension"])): + out = unit["output_name"].rstrip( + ".")+"."+unit["extension"].lstrip(".") + return out return unit["output_name"] +class UnittestPostHandler(BasePostHandler): + def run(self, unit: Dict[str, AnyStr]): + if "output_extension" in unit.keys() and (not unit["output_name"].endswith(unit["output_extension"])): + out = unit["output_name"].rstrip( + ".")+"."+unit["output_extension"].lstrip(".") + return out + return unit["output_name"] + + +class HapPackPostHandler(BasePostHandler): + def run(self, unit: Dict[str, AnyStr]): + hap_name = unit.get("hap_name") + mode = unit.get("mode") + return hap_name + "." + mode + + class HAPPostHandler(BasePostHandler): """ for ohos_hap""" diff --git a/tools/rom_ram_analyzer/lite_small/src/rom_analysis.py b/tools/rom_ram_analyzer/lite_small/src/rom_analysis.py index 94eac36..efa1350 100644 --- a/tools/rom_ram_analyzer/lite_small/src/rom_analysis.py +++ b/tools/rom_ram_analyzer/lite_small/src/rom_analysis.py @@ -29,8 +29,8 @@ from threading import RLock import collections from config import result_dict, collector_config, configs, \ - project_path, sub_com_dict, product_name, recollect_gn, baseline -from pkgs.basic_tool import BasicTool + project_path, sub_com_dict, product_name, recollect_gn, baseline, unit_adapt +from pkgs.basic_tool import BasicTool, unit_adaptive from pkgs.gn_common_tool import GnCommonTool from pkgs.simple_excel_writer import SimpleExcelWriter from pkgs.rom_ram_baseline_collector import RomRamBaselineCollector @@ -179,6 +179,7 @@ class RomAnalysisTool: @classmethod def _fuzzy_match(cls, file_name: str, filter_path_keyword: Tuple[str] = tuple()) -> Tuple[str, str, str]: """ + TODO 应当先遍历gn_info进行匹配 直接grep,利用出现次数最多的BUILD.gn去定位subsystem_name和component_name""" logging.info(f"fuzzy match: {file_name}") _, base_name = os.path.split(file_name) @@ -294,20 +295,67 @@ class RomAnalysisTool: excel_writer.save(output_name) logging.info("save as xls success.") + @classmethod + def _result_unit_adaptive(cls, result_dict: Dict[str, Dict]) -> None: + total_size = unit_adaptive(result_dict["size"]) + del result_dict["size"] + for subsystem_name, subsystem_info in result_dict.items(): + sub_size = unit_adaptive(subsystem_info["size"]) + count = subsystem_info["count"] + del subsystem_info["size"] + del subsystem_info["count"] + for component_name, component_info in subsystem_info.items(): + component_info["size"] = unit_adaptive(component_info["size"]) + subsystem_info["size"] = sub_size + subsystem_info["count"] = count + result_dict["size"] = total_size + + @classmethod + def _match_manual_configured(cls, manual_config_info: Dict[str, Dict], compiled_files: Dict[str, List], compiled_root_path: str, result_dict: Dict[str, Dict]) -> None: + for file_path, file_info in manual_config_info.items(): + full_path = os.path.join( + project_path, compiled_root_path, file_path) + if not os.path.isfile(full_path): + logging.warning(f"config error: {file_path} is not a file.") + continue + file_info["size"] = os.path.getsize(full_path) + file_info["file_name"] = full_path + cls._put(file_info["subsystem"], + file_info["component"], file_info, result_dict) + for _, v in compiled_files.items(): + if full_path not in v: + continue + index = v.index(full_path) + del v[index] + break + @ classmethod def analysis(cls, product_name: str, product_dict: Dict[str, List[str]]): + """analysis the rom of lite/small product + + Args: + product_name (str): product name configured in the yaml + product_dict (Dict[str, List[str]]): result dict of compiled product file + format: + "bin":[...], + "so":[...] + ... + """ logging.info("start analyzing...") rom_ram_baseline: Dict[str, Dict] = RomRamBaselineCollector.collect( project_path) with open("rom_ram_baseline.json", 'w', encoding='utf-8') as f: json.dump(rom_ram_baseline, f, indent=4) - gn_info_file = configs["gn_info_file"] + gn_info_file = configs["gn_info_file"] # filename to save gn_info with open(gn_info_file, 'r', encoding='utf-8') as f: gn_info = json.load(f) query_order: Dict[str, List[str] - ] = configs[product_name]["query_order"] + ] = configs[product_name]["query_order"] # query order of the gn template to be matched query_order["etc"] = configs["target_type"] # etc会查找所有的template rom_size_dict: Dict = dict() + if "manual_config" in configs[product_name].keys(): + cls._match_manual_configured( + configs[product_name]["manual_config"], product_dict, configs[product_name]["product_dir"]["root"], rom_size_dict) for t, l in product_dict.items(): for f in l: # 遍历所有文件 if os.path.isdir(f): @@ -339,8 +387,6 @@ class RomAnalysisTool: d["subsystem_name"]).get(d["component_name"]).get("rom") cls._put(d["subsystem_name"], d["component_name"], d, rom_size_dict, component_rom_baseline) - if d["component_name"] == "unionman_products": - print(d) find_flag = True if not find_flag: # 如果指定序列中的template都没有查找到,则模糊匹配 # fuzzy match @@ -363,6 +409,8 @@ class RomAnalysisTool: "file_name": f.replace(project_path, ""), "size": size, }, rom_size_dict) + if unit_adapt: + cls._result_unit_adaptive(rom_size_dict) with open(configs[product_name]["output_name"], 'w', encoding='utf-8') as f: json.dump(rom_size_dict, f, indent=4) cls._save_as_xls(rom_size_dict, product_name, baseline) diff --git a/tools/rom_ram_analyzer/standard/pkgs/basic_tool.py b/tools/rom_ram_analyzer/standard/pkgs/basic_tool.py index 22458ef..f5561de 100644 --- a/tools/rom_ram_analyzer/standard/pkgs/basic_tool.py +++ b/tools/rom_ram_analyzer/standard/pkgs/basic_tool.py @@ -5,6 +5,16 @@ import glob from pathlib import Path from typing import * +def unit_adaptive(size: int) -> str: + unit_list = ["Byte", "KB", "MB", "GB"] + index = 0 + while index < len(unit_list) and size >= 1024: + size /= 1024 + index += 1 + if index == len(unit_list): + index = len(unit_list)-1 + size *= 1024 + return str(round(size,2))+unit_list[index] class BasicTool: @classmethod diff --git a/tools/rom_ram_analyzer/standard/ram_analyzer.py b/tools/rom_ram_analyzer/standard/ram_analyzer.py index d180be7..eada31c 100644 --- a/tools/rom_ram_analyzer/standard/ram_analyzer.py +++ b/tools/rom_ram_analyzer/standard/ram_analyzer.py @@ -28,6 +28,7 @@ import typing import xml.dom.minidom as dom from typing import Dict from pprint import pprint +from pkgs.basic_tool import unit_adaptive from pkgs.simple_excel_writer import SimpleExcelWriter @@ -277,7 +278,7 @@ class RamAnalyzer: return process_elf_dict @classmethod - def __save_result_as_excel(cls, data_dict: dict, filename: str, ss: str, baseline_file: str): + def __save_result_as_excel(cls, data_dict: dict, filename: str, ss: str, baseline_file: str, unit_adapt:bool): """ 保存结果到excel中 子系统:{ @@ -297,12 +298,13 @@ class RamAnalyzer: """ tmp_dict = copy.deepcopy(data_dict) writer = SimpleExcelWriter("ram_info") + header_unit = "" if unit_adapt else ", Byte" header = header = [ - "subsystem_name", "component_name", "component_size(ram, Byte)", "process_name", f"process_size({ss}, Byte)", "elf", "elf_size(Byte)" + "subsystem_name", "component_name", f"component_size(ram{header_unit})", "process_name", f"process_size({ss}{header_unit})", "elf", f"elf_size{'' if unit_adapt else '(Byte)'}" ] if baseline_file: header = [ - "subsystem_name", "component_name", "component_size(ram, Byte)", "baseline", "process_name", f"process_size({ss}, Byte)", "elf", "elf_size(Byte)" + "subsystem_name", "component_name", f"component_size(ram{header_unit})", "baseline", "process_name", f"process_size({ss}{header_unit})", "elf", f"elf_size{'' if unit_adapt else '(Byte)'}" ] writer.set_sheet_header(header) subsystem_c = 0 @@ -409,10 +411,26 @@ class RamAnalyzer: continue component_info["baseline"] = baseline_dict[subsystem_name][component_name].get( "ram") - + @classmethod + def refactored_result_unit_adaptive(cls, result_dict:Dict[str,Dict])->None: + for subsystem_name, subsystem_info in result_dict.items(): + sub_size = unit_adaptive(subsystem_info["size"]) + del subsystem_info["size"] + for component_name, component_info in subsystem_info.items(): + com_size = unit_adaptive(component_info["size"]) + del component_info["size"] + for process_name, process_info in component_info.items(): + pro_size = unit_adaptive(process_info["size"]) + del process_info["size"] + for elf_name, elf_size in process_info["elf"].items(): + process_info["elf"][elf_name]=unit_adaptive(elf_size) + process_info["size"] = pro_size + component_info["size"] = com_size + subsystem_info["size"] = sub_size + @classmethod def analysis(cls, cfg_path: str, xml_path: str, rom_result_json: str, device_num: str, - output_file: str, ss: str, output_excel: bool, baseline_file: str): + output_file: str, ss: str, output_excel: bool, baseline_file: str, unit_adapt:bool): """ process size subsystem/component so so_size """ @@ -505,16 +523,19 @@ class RamAnalyzer: base_dir, _ = os.path.split(output_file) if len(base_dir) != 0 and not os.path.isdir(base_dir): os.makedirs(base_dir, exist_ok=True) + with open(output_file + ".json", 'w', encoding='utf-8') as f: json.dump(result_dict, f, indent=4) refactored_result: Dict[str, Dict] = refacotr_result(result_dict) + if unit_adapt: + cls.refactored_result_unit_adaptive(refactored_result) if baseline_file: cls.add_baseline(refactored_result, baseline_file) with open(f"refactored_{output_file}.json", 'w', encoding='utf-8') as f: json.dump(refactored_result, f, indent=4) if output_excel: cls.__save_result_as_excel( - refactored_result, output_file + ".xls", ss, baseline_file) + refactored_result, output_file + ".xls", ss, baseline_file, unit_adapt) def refacotr_result(ram_result: Dict[str, Dict]) -> Dict[str, Dict]: @@ -563,6 +584,8 @@ def get_args(): help="baseline file of rom and ram generated by rom analysis.") parser.add_argument("-o", "--output_filename", default="ram_analysis_result", type=str, help="base name of output file, default: ram_analysis_result. eg: -o ram_analysis_result") + parser.add_argument("-u", "--unit_adaptive", + action="store_true", help="unit adaptive") parser.add_argument("-e", "--excel", type=bool, default=False, help="if output result as excel, default: False. eg: -e True") args = parser.parse_args() @@ -578,5 +601,6 @@ if __name__ == '__main__': output_filename = args.output_filename baseline_file = args.baseline_file output_excel = args.excel + unit_adapt = args.unit_adaptive RamAnalyzer.analysis(cfg_path, profile_path, rom_result, - device_num=device_num, output_file=output_filename, ss="Pss", output_excel=output_excel, baseline_file=baseline_file) + device_num=device_num, output_file=output_filename, ss="Pss", output_excel=output_excel, baseline_file=baseline_file, unit_adapt=unit_adapt) diff --git a/tools/rom_ram_analyzer/standard/rom_analyzer.py b/tools/rom_ram_analyzer/standard/rom_analyzer.py index c269c09..2536a6c 100644 --- a/tools/rom_ram_analyzer/standard/rom_analyzer.py +++ b/tools/rom_ram_analyzer/standard/rom_analyzer.py @@ -24,7 +24,7 @@ from copy import deepcopy from typing import * from pkgs.rom_ram_baseline_collector import RomRamBaselineCollector -from pkgs.basic_tool import BasicTool +from pkgs.basic_tool import BasicTool, unit_adaptive from pkgs.gn_common_tool import GnCommonTool from pkgs.simple_excel_writer import SimpleExcelWriter @@ -142,7 +142,7 @@ class RomAnalyzer: return baseline_dict.get(subsystem_name).get(component_name).get("rom") size = unit.get("size") relative_filepath = unit.get("relative_filepath") - if result_dict.get(subsystem_name) is None: # 子系统 + if result_dict.get(subsystem_name) is None: # 子系统 result_dict[subsystem_name] = dict() result_dict[subsystem_name]["size"] = 0 result_dict[subsystem_name]["file_count"] = 0 @@ -161,9 +161,23 @@ class RomAnalyzer: result_dict[subsystem_name][component_name]["file_count"] += 1 result_dict[subsystem_name][component_name][relative_filepath] = size + @classmethod + def result_unit_adaptive(self, result_dict:Dict[str,Dict])->None: + for subsystem_name, subsystem_info in result_dict.items(): + size = unit_adaptive(subsystem_info["size"]) + count = subsystem_info["file_count"] + if "size" in subsystem_info.keys(): + del subsystem_info["size"] + if "file_count" in subsystem_info.keys(): + del subsystem_info["file_count"] + for component_name, component_info in subsystem_info.items(): + component_info["size"] = unit_adaptive(component_info["size"]) + subsystem_info["size"] = size + subsystem_info["file_count"] = count + @classmethod def analysis(cls, system_module_info_json: Text, product_dirs: List[str], - project_path: Text, product_name: Text, output_file: Text, output_execel: bool, add_baseline: bool): + project_path: Text, product_name: Text, output_file: Text, output_execel: bool, add_baseline: bool, unit_adapt: bool): """ system_module_info_json: json文件 product_dirs:要处理的产物的路径列表如["vendor", "system/"] @@ -197,6 +211,8 @@ class RomAnalyzer: output_dir, _ = os.path.split(output_file) if len(output_dir) != 0: os.makedirs(output_dir, exist_ok=True) + if unit_adapt: + cls.result_unit_adaptive(result_dict) with open(output_file + ".json", 'w', encoding='utf-8') as f: f.write(json.dumps(result_dict, indent=4)) if output_execel: @@ -222,6 +238,8 @@ def get_args(): help="add baseline of component to the result(-b) or not.") parser.add_argument("-o", "--output_file", type=str, default="rom_analysis_result", help="basename of output file, default: rom_analysis_result. eg: demo/rom_analysis_result") + parser.add_argument("-u", "--unit_adaptive", + action="store_true", help="unit adaptive") parser.add_argument("-e", "--excel", type=bool, default=False, help="if output result as excel, default: False. eg: -e True") args = parser.parse_args() @@ -237,5 +255,6 @@ if __name__ == '__main__': output_file = args.output_file output_excel = args.excel add_baseline = args.baseline + unit_adapt = args.unit_adaptive RomAnalyzer.analysis(module_info_json, product_dirs, - project_path, product_name, output_file, output_excel, add_baseline) + project_path, product_name, output_file, output_excel, add_baseline, unit_adapt) -- Gitee From 459b1bc59739008d0b9bbacd99902eed3a7ddf6d Mon Sep 17 00:00:00 2001 From: zhoutianer Date: Tue, 16 May 2023 14:44:28 +0800 Subject: [PATCH 030/201] fix launcher image Signed-off-by: zhoutianer --- .../basic/screenshot32/resource/launcher.jpeg | Bin 87366 -> 87644 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/cases/smoke/basic/screenshot32/resource/launcher.jpeg b/cases/smoke/basic/screenshot32/resource/launcher.jpeg index d35a4e28e9e446219ffdd23dc728ddcb7a7726f6..2f0cce857e0bcd0684a6c9e6df09c2de54a23959 100644 GIT binary patch delta 80684 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 z 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 VVKO{1_bF^jM^+Nf^me!J{{bk8t{DIT delta 80483 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]i}r{2?R`pzcr>nN|Vb1u*on5b~cQ$J|~&( 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

BDkj-7hhqOLhQ`pbz} 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 -- Gitee From a7648cdbfd0ae196293c54ad369bc80308341664 Mon Sep 17 00:00:00 2001 From: cheng_jinsong Date: Wed, 17 May 2023 11:40:07 +0800 Subject: [PATCH 031/201] =?UTF-8?q?=E4=BF=AE=E6=94=B9'secon'=E6=A3=80?= =?UTF-8?q?=E6=9F=A5=E4=B8=8D=E7=94=9F=E6=95=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: cheng_jinsong --- tools/startup_guard/startup_checker/cmds_rule.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/startup_guard/startup_checker/cmds_rule.py b/tools/startup_guard/startup_checker/cmds_rule.py index e0c28b7..0c98580 100644 --- a/tools/startup_guard/startup_checker/cmds_rule.py +++ b/tools/startup_guard/startup_checker/cmds_rule.py @@ -112,7 +112,7 @@ class cmdRule(BaseRule): passed = True for key, item in parser._services.items(): - if item.get("secon") is None: + if item.get("secon") == "": output_str = "%s \'secon\' is empty" % key self.warn("%s" % str(output_str)) passed = False -- Gitee From 2029f9f8ff53fd2d511a97f53aa91cf5d1836109 Mon Sep 17 00:00:00 2001 From: luo-wei246 Date: Wed, 24 May 2023 02:04:39 -0700 Subject: [PATCH 032/201] fix:configuration modification Signed-off-by: luo-wei246 --- .../rules/NO-Config-SystemParameter-In-INIT/whitelist.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tools/startup_guard/rules/NO-Config-SystemParameter-In-INIT/whitelist.json b/tools/startup_guard/rules/NO-Config-SystemParameter-In-INIT/whitelist.json index 8733ef9..4791015 100755 --- a/tools/startup_guard/rules/NO-Config-SystemParameter-In-INIT/whitelist.json +++ b/tools/startup_guard/rules/NO-Config-SystemParameter-In-INIT/whitelist.json @@ -371,5 +371,7 @@ "persist.xts.devattest.authresult", "llvm.debug.service.", "persist.edm.edm_enable", - "persist.edm." + "persist.edm.", + "persist.usb.setting.gadget_conn_prompt", + "persist.usb.setting." ] -- Gitee From cb273f4a43af950cf2571f6ac4889dea7d20d859 Mon Sep 17 00:00:00 2001 From: huangshan Date: Thu, 25 May 2023 20:43:21 +0800 Subject: [PATCH 033/201] fix OAT.xml Change-Id: I5c802cffd96954c3b988424ad9233d331c7d6b06 Signed-off-by: huangshan --- OAT.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/OAT.xml b/OAT.xml index 0be7e8a..80623c1 100644 --- a/OAT.xml +++ b/OAT.xml @@ -67,13 +67,13 @@ Note:If the text contains special characters, please escape them according to th - + - + -- Gitee From 5a115190256e4e77a31c993f06794d8799a132e6 Mon Sep 17 00:00:00 2001 From: Cao Chuan Date: Fri, 2 Jun 2023 16:39:40 +0800 Subject: [PATCH 034/201] Add image ndk into white list Signed-off-by: Cao Chuan --- tools/deps_guard/rules/ChipsetSDK/whitelist.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tools/deps_guard/rules/ChipsetSDK/whitelist.json b/tools/deps_guard/rules/ChipsetSDK/whitelist.json index 958e054..e4e1914 100755 --- a/tools/deps_guard/rules/ChipsetSDK/whitelist.json +++ b/tools/deps_guard/rules/ChipsetSDK/whitelist.json @@ -18,6 +18,9 @@ "libdisplay_gralloc.z.so", "libhdifd_parcelable.z.so", "libconfigpolicy_util.z.so", + "libpixelmap_ndk.z.so", + "libimage_ndk.z.so", + "libimage_receiver_ndk.z.so", // Third party libraries "libdrm.so", -- Gitee From 453b89a469b12276926251e21a288171756cdab0 Mon Sep 17 00:00:00 2001 From: cheng_jinsong Date: Fri, 2 Jun 2023 09:16:18 +0000 Subject: [PATCH 035/201] update tools/startup_guard/rules/NO-Config-Cmds-In-Init/README.md. Signed-off-by: cheng_jinsong --- tools/startup_guard/rules/NO-Config-Cmds-In-Init/README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tools/startup_guard/rules/NO-Config-Cmds-In-Init/README.md b/tools/startup_guard/rules/NO-Config-Cmds-In-Init/README.md index e58c538..fac7744 100755 --- a/tools/startup_guard/rules/NO-Config-Cmds-In-Init/README.md +++ b/tools/startup_guard/rules/NO-Config-Cmds-In-Init/README.md @@ -18,6 +18,8 @@ [NOT ALLOWED]: 'init_global_key' is invalid, in /system/etc/init.cfg
[NOT ALLOWED]: 'storage_daemon' cannot be started in boot mode
[NOT ALLOWED]: 'hilogd' cannot be started in conditional mode
+ [WARNING]: selinux status is xxx + [WARNING]: xxx 'secon' is empty ``` ## 3. 违规场景及处理方案建议 -- Gitee From 74887e3d35afcf0f6214038b37357bcc5742c65d Mon Sep 17 00:00:00 2001 From: zhangqiang183 Date: Mon, 5 Jun 2023 03:01:43 +0000 Subject: [PATCH 036/201] Add image source ndk lib into white list Signed-off-by: zhangqiang183 --- tools/deps_guard/rules/ChipsetSDK/whitelist.json | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/deps_guard/rules/ChipsetSDK/whitelist.json b/tools/deps_guard/rules/ChipsetSDK/whitelist.json index 958e054..1d6918b 100755 --- a/tools/deps_guard/rules/ChipsetSDK/whitelist.json +++ b/tools/deps_guard/rules/ChipsetSDK/whitelist.json @@ -18,6 +18,7 @@ "libdisplay_gralloc.z.so", "libhdifd_parcelable.z.so", "libconfigpolicy_util.z.so", + "libimage_source_ndk.z.so", // Third party libraries "libdrm.so", -- Gitee From 0bab27a69fb72299dea2f00fd16527cd12eaf590 Mon Sep 17 00:00:00 2001 From: jiazhenyu Date: Mon, 5 Jun 2023 09:20:14 +0000 Subject: [PATCH 037/201] add third_party lib for usb camera function Signed-off-by: jiazhenyu --- tools/deps_guard/rules/ChipsetSDK/whitelist.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tools/deps_guard/rules/ChipsetSDK/whitelist.json b/tools/deps_guard/rules/ChipsetSDK/whitelist.json index 958e054..29df65d 100755 --- a/tools/deps_guard/rules/ChipsetSDK/whitelist.json +++ b/tools/deps_guard/rules/ChipsetSDK/whitelist.json @@ -40,6 +40,8 @@ "libbuffer_producer_sequenceable_1.0.z.so", "libbuffer_handle_sequenceable_1.0.z.so", + "libohosffmpeg.z.so", + // To be optimized "libprotobuf_lite.z.so", "libdmabufheap.z.so", -- Gitee From 7c6b185be7e9d40de8bea5b73da5c2f945ba8335 Mon Sep 17 00:00:00 2001 From: chenwei Date: Thu, 8 Jun 2023 11:17:26 +0800 Subject: [PATCH 038/201] add libhitrace_ndk.z.so as chipsetsdk Signed-off-by: chenwei --- tools/deps_guard/rules/ChipsetSDK/whitelist.json | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/deps_guard/rules/ChipsetSDK/whitelist.json b/tools/deps_guard/rules/ChipsetSDK/whitelist.json index 29df65d..f0cd1fe 100755 --- a/tools/deps_guard/rules/ChipsetSDK/whitelist.json +++ b/tools/deps_guard/rules/ChipsetSDK/whitelist.json @@ -4,6 +4,7 @@ "liblog.so", "libhilog.so", "libhilog_ndk.z.so", + "libhitrace_ndk.z.so", "libhisysevent.z.so", "libhicollie.z.so", "libservice_checker.z.so", -- Gitee From c2348795742b8b97bc87eeffa8e11a7bdeee55cc Mon Sep 17 00:00:00 2001 From: zhoutianer Date: Fri, 9 Jun 2023 16:03:03 +0800 Subject: [PATCH 039/201] fix launcher image Signed-off-by: zhoutianer --- .../basic/screenshot32/resource/launcher.jpeg | Bin 87644 -> 87231 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/cases/smoke/basic/screenshot32/resource/launcher.jpeg b/cases/smoke/basic/screenshot32/resource/launcher.jpeg index 2f0cce857e0bcd0684a6c9e6df09c2de54a23959..96a5e3595a54c32132074b7972580398e8490ec9 100644 GIT binary patch delta 83253 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ͤ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

4mN!~_Ldl{=V*`6I!Fal|;PU*= zNTuB+(DSc5bNaR!>Rn3~{^fgmOYa3b_Eq8`p|tR_@xR%}toAl3HtMKj8NoV^mqSow_nL^e8dJc?t88xvp2gh6M-fdhR3#|BHm#do%#>K1ixo zuD(7mV>J;d*|&<|0|^aVtQlV(6Z|Yc%>p@v9F;-sbG)-@cl+GY<2g@N8pi9milWxe zfY^EmLuO!3{xd%o0bUngnAn%U{=6AO22K5 z3Iv#)%sKLl)WGd26Jq_Jl|bTtSLz6KjsM}8E*bIFG{eVP=fv=Jh;yw0K4nuMyR+s_ zC*o5w0LX4@eOTE1c=Rw1Z-x%W(!GoU7(R8QKV>V1-p{@i2 ztDN^~83`o*sXS8~_HLPll-#fIB)(BY`e-^d96r`Te^VR?KJ)9&a7PcZWmOT*aHy7k zVk-5)QT21R0+%?ofAIMrHtZ2ajHr&Ee120-)~2_&y!~H>x~F@CDb2XkG5pj9ZIhbg zCLA%rp-?f-1M?IGY|Ok7_M4x#(akKX>eucGCPXz%3U>D*)IE}mOru;a&XxA9_VT*4 zQr0ZQCvyyxuR2>sprXfb9hLxaL{l>!Y3|$h!u~-RAQSe_C`Jj7k;f>Raj5ad*@$}= z$R^s(PjIh0sN)lL42yFUy*;S#c^|YAKcA?I|#<;9W;j zkm87y59ebGHS}cGI!gKGf~i&N5V|lr(Knz30VExm-y)FQqupIS8W9&e2Dq@CKDQFF z$+V&u#1QI!=^ZIiVoy{CLgcEw_emcZ*eLaef6mf;qFo*1e_P5sD2Ug|n?odY8&5pz zyM#Nn#0G8w{D|j6_&w7_QSOjrOeKss`GWy7i$=Nb0S8!k%X$v&>SZ*l#8XMl2f9corAlgo%f z0bz)TaL)EgF6IKQYd`(|*lx}$^3$*++b-A6Wy@)G{E?u)b^Gyy+85290^aI}J@Oje zI$WRHn6YHp8eS{JI@+E>zbRDpBDKkw_MEiH>czztwsSN;?pf+~Rz6qV-r0wHO>%UM^D+n|6Al{N%`% zGuXI=;PelY&ob3H!oJGb-+!ggU3!>T)A1Uo%)V+Zovk7F7NZGjbaDvlsyRQa90(1V z!q*?2+IuMn@Hkcf@*TXKjuL`> z`qXY6&Iw5NNxz3SfDUy~*ARqA68CW#>tkt5vX2w4Pc>jlR3RDb5@4(ho)NwM(v&}%rXRLtqpvT|ID8lREs~yB z<#$Usw0Fag;7e)=(&9Pa!1!g#twjIwBae1Qn+IEgcMvOV`WI2KE)i_TouywD`exi- zO!Gb)iMKXkx(J%gGYzHRHZ0vXiP@JMwN=NcONRxx#l8!*!^ZgK3@4I4)<)c29j$#j zR!20;fAbaDw=)c%$G}vhIHL_kq0c6BuD(H=&C+D_WWdU&TdL=^U$6xk>*ZttPU!Ztz zTy3Q(Bv!UVJT#Df$6I!|XNlEcY3zV?Srt=O+XEKjciIj0JW&#~A<@t!TL}Nf#O++( zJ9drX+BZ?hM{g2>bUKDa={f!4LWCeADd-V+@o3|Fu`7G;nkD&z8S>gWqRH?j+_jEP zjp62VrTt7+q^%(Z3F#$k``e=D3S+Fc0?V}%6H>lM%Mv}&JTB~o&ziW%RUesMs z#{HD$5Ip?EbD>^>Gp)X?KS5L=yvM(@M=YKm`+&`I@I3yL_<1V2kJ@N}^ea+qFQ`3{tH`6a;8rO!Ov1r-pmUU!RSo|v;a^)TMR)FH3#RDfoQ^J* z9(Xslq(*Ks|8^(;_T2i7@__}PmC;j2Ye|NY{hrD4e2O}28&3XDMQ-f8<+G^r$@}(k zlfb<4z2?rGguqFmM@(wHUjIRlS-9=OcyjQy^v5j=ruC`sLyXjtZOl`3@Hki*Q!vT9 zFv0n(otFeb|I;!y^1N#7g8%J_$({PgPC9$xKS1SY+Mh6B&glhLE!?zZJ~Z<{_V zAUq|jhA0cv-sIe`c@28jCJEUpn=+z;sO7A(JzVIACnwd+rdfQC+aG2ZKx_?IGA zm++F+0MXmGiE|PS;hEK8qv!n}N8cXKbpQX4VTd_2H5xgE>2N!YhKUhoX6!(<)a_K+ zKGkgqao4a?)+}ShLJm8aLs4{7=_bvgJEv__DhZKOC3J9C-{1TG{pZ?sxy*IF4v*L4 z`8ae>)GZe-3~ys{9fD&o9a|bbl<#}lZzuRjr*wY#DlvH5k52X)ZE)V@X}RYSeg1OF z#wgA3uuXXBuh_Qm*n$ABjBtFy^M-y_U*B4-){yJjyAOTfCphbML)*cCGVB1d=K1`E z`}r&q5P9QU_ellBWtnVzt$k@hiq*}?WUM!&xHiWHDO8vVPB*AU$9lB9>hiq?a1y&8 zJF!oC60>*Tk6L|pi)!4hC$7(dt=G6#m)@}Wo@jgxWdi>3>r5oav_+ez^EqRx`iz$o z4%_ySbDYs{76_euu{cpPLt;&c;=^;3d{ov4ToVuKX5AnM3&wU`*MLoNm7A#+u)udX zFR6^?sLGryJU_6Hq@EPO5n=)YcpRMW3)GAMxRQ70$0qv3*k|5z=b1#v)5D zBp1s3xwJ*!n7B^4fu03&l3wVtjbj?AxGbJ-RL$UO3dw>Ca)la4E{-6C;1}qA-3xZ0h(Q0 zs+%SuYk1V=FzRuk(BT)ope!yR7_@!1D^w?C@`PZaeN8{H*{VXqQJy>>C1MQyj{Ea` z4g2`jm`>1X%v4GD>`*#oZV}fF&PSLmJ&w|u152Qt&jCeCtAz>43(?+bO=nh|Lpb{J z3%~%F0HGGKlD|YdQ|w%KgNgb_Gsujbuh5kt>S@KxeMNgstfn6_SfQa9{Lzv%iFmkU z^~NKfZb_m80*smxQMpHpbO%oRvBS}<5L_=h`|s&9>CT1fUA~Y+#6_B_WyeBD zd*qkK&G+;!$C(&M7UbnuwOJbaz85|;W_EL zii0YD4=o0({(NtiD@*a|A-vB}d7__AUk#0Jy(|mp{evEExRV%nCGi9>yK3^wO=Jv@ zKL0(D?|tz=+Z7gX?WV^Xzi1#nJbBikPefL|yZYwp6QM6h=ouaEtXj9U_sNivb2XgwtQ?1TFcpp-4Y(Tq?Sv=lLXY zxiHfc!UC;9HPK|^;~0uVUfZdmuLKOB?xgwzc$CTS@2HN8fncmeZ!ZFhmn@Q{dt=Pg zcLvsACQ7pg&R8CAaKmK=9;NRxc%eRb*P$$+fAC&Zqb(Bp3MtLOo7D@-#q%3*)sY~gA9qYm;WuV9Bn zC+s60#KBK~D`{(uB}nr|FV5F~85?^i6x_z*U*4;?IEkGh1Y1D{O-(MZMJV`X$^(NI-c@8|zM7YF+ zseX*my`CGs-RjT!KJVJaF=GCB~ruB9s7DH{|st^OW|V-}ya zym1;f_>Oak0<{E{{vkLi2l~uiQ&cLFn)F(%hJed{LFH%NMPT??z+GEHU@SY@EW!P& zB;f3P$Qcu)SMK4S3Xl+{oGRiIpz>` zy7o%5ox`8c%VX0%bxmkooX<)58j*Dsq!>y=6c&ago`*YwR z=Z~u=7=1!}N`9d6@N{yt$zk7yKU(h$P)opJ6RoOvcT~M0rzfI{{GKxY+T<^-L}1a@ z7TsOxapDO6MrLGL)q2F%J==Y9pCknF-pd_uq%8PIuc3xKlMKfyNkKLR2iNTcMTDIw z|H{%r?(=QT8PzxJy4%xMLWmQ46x%Pmsug$c3MW6k$;|y@xRB0o^?6*_YX=oR$+p@> z+iUEup6!T%0$}xjn#nf!OLn^+r&kDv6Q;o{wSG~GZq;E0K144%YrMu<&~(;#(;h?+ zWLGi+Ew#3a3)tKKUqp;EqFtOkd$rM*dM)O65!36i`dr1nA|u5mc?&itSE(pT{Yczd zrm9T&A_b{AQ6CS~8#=BbpGHvzT|#V{)yw`B)I&>#5sPocdM+Ja1g(0uCKk0AYHZ3Q z-E?H)-m_g|*^|8db23%!K~0~Te@WaHA)}XC@g|Sg+}DY+49AhiK8A zZPdDE4Kf+}a|AzQ4v>cf)E!r{1VkB3Sl@JsMQZeQh?B&+Z?*soHn@D#03$eJszeVR z7T3$BVhDh88QMa`2X2G)gm^Gd7J<=h?&e|@%I$L_N9-Q1@dWShU%8Y2wh0PaADUy+ zjUGe(o)Z*}9=aTp2A14J{cs^xjdycBN6TsNsaHq-HoXgLvZ)BAHkABv9p-w>DT_2n zWrZ4BeJuP2A7i`XpX7I&25xV}7n4_B{`11$kMs6)deoPjR>xMHGym9xvI}H*r zy;U&pD)E;}#-V1t^V+E1)_rzn2pEGnS60ElbZ__Oq3t5iZI?Ry%Q&pDibe$|R?!i3 zeLtaStKa;A5=}s?55^4mDQkz?9-}iEW8(7;#-zh4MnRo0X`2%ZyQ3Yn`m#dFe(BRS zjmSbeyp4rYx{m=eE)*6MjuHnab zH;00r1M31o+xs>%^3&m4?-oNH9tQnZ>eFwiZn+3K; z_~lHlemtNWF>P~|eB^&*_nn@+T8k6;KDBX!^l{D#F*2b2dpa|NJt#~bw%&~!$qYE0 zy^lZBf3BW)gFMD5ew#I(_8l+^b&GfAj4#mF_xKfAa9b0ytY*SB5~0cJ741?|qZO>r{pa`%mz3zGk-O< zI>T`9x7mixMMGu|1!eo>5HI?feBKdV=7xK(RQC$UyhOa~ti|TPtX&hF0(9Hdll#Em zmD}97C3PW1CXlP|j!6EZm%_L7e;limcA|%GAL|HhRAaO=+Gof$lRTpI$sB5foCQQ< zZMkQJYsXK!Qq&-6sQOB7Q3R2bj}jW3)70#jg7LgC7VB#IHE$gL?j;BYWXANOyQyq1 zzJ@}r*SNc0e-(@waZB@}y#`Lj@|*f|q#M`DniE~FUa-b5?*P)#hvp+)jaw1CbI)uzkV(_h zeIL!}TZs2Jb@m*1NKe~1Axb8X8t%U2=;d$0I|x1hu+{DL$Z=`^TH&t=1hf2sfw#ly z>9XS$3rS-&QI3x88)HESTVoytv)biq0c7J5eANfI|~~2M4GXa-+pa+ zr7xkIB+z#9>dn+Fh&;kwApWjVx+o5Nz_aXA<{?n8NXL zaEmmue}@1vY=K5zy!qP70jO>m4J-aC)i{zHXOrZEa^0z`(3&muBTRR~`YeF>Vsg?l z7I+ikA`Ie=3(3SA@-hi{yw0Wt>u>9XbB9iUAFI8R*8@RJGb@E&fwozF^>{pEx?@i$ zH8kD3Xsb=WDH9(x_flR1aJNRC+_NHR+NS>8+D*Fl3HQw5J#lQ3OtOBm_BYy_MPlK{3HEgp%%Ob8-f!uoT>~b4=v4ETyv|PeY6Sxy-S!Ua)dc8M!*?wW z@^7`DH0JHK-(W|R1r4`hFD;VhBUrnxv@;EE)dopqUB!9lj3 ziqEicOIwHV5@S%=SJz?AJJpXDQOqB8XvK>x<4vZpsY~Ymd%f~(H}o50T@xFe{fGR* zpT{&-q%9J$7o5}+A$o}fO9M$DPwpP4P)#S6uo(;!KOO8IVkNsJHqq8)yO$Br=g z*i*<>Mb>!H3k=+t+Awv-kQZ=NpW03JL6fGD+2vFlADx6s2F_t*SK`V5u7mDSO6M8b z5Xttn!<6jnj`<4-Lg-u4aT#TOD%y!vd~tiz^D4@{G89-v7G5fSAuEL z%0wj$oG z*#Tc6^{&okBFxfPt~S~P{_h+@d(rT=Wk4@<0=u?WPrmtq{%{zA6+UvlXDVcHTh=`f zy6Kz!c8ASz+h!s;@vIdSvITZ5ovb=HA8hh8)=mPwetxA7wiHUm5A~%X-#%+}3c*4O zt7f43X!BMN!(Dz}fmE&2<3&z|k7pd29mLanh=t};HBp*N`KalMV%sh-nkajN6J-IZSRVp9Ae;pc-`!zmJG&3q z((T{%f~(NvjRPl-tUEE9%=K((`d$bZ-eIvPWYsCK^j`I!?9=qp$lB|v$hFg>D(=uv z408K!BOVLeNn*8;G9t*iHoMx8kAhTAPbQlex#(PGzvG8&-V8*n(P&P=K~NNYO5M^6yS>?`s4BsoGdD)uvC1*FT%JGcR!Y@vnbwbs47V9Es)kj|1w>pWAp zzd2|q6o=P6BZ);C&J!NB4by%o5|VHZ1)BEIr9^vg(Qn4_f!EopJt3%MG3z72IKFuI zZWYp$)X4qZ!m(NEzKd*hju>VEMLK!6wg2H3ATi8j8^*g{ll?stv-@ zl!bR@cdHT#-_8azC*uV8B>$(E2uz*Jy4&f=iDvgfaeGmkm&`VlHG1W_s;{>z8uuUM z{Hx@B-kZMurF#F%8=tBQT2dUao|7cd4La$3j6O0efvHoN7=K-l+ao+PgsRn~%P%I| zR4_Wf3Qz1d>&ueX)G`1SMZ9gWZv^$s-~D!8dhP*l**cTVu$YPB?aoQPxSOv)2UJ$A zz-@K6IiNLZeAqeNuipDY(^CS{%sy*-Aqq4jhUf;Y{@L4n!ovbMMa!zM!^r-cefRHqCcmZufyr0q9d1m&!PssbyQ5cqEy}OZtnc2?38s? zhxYj|noDK+k3R+REC&HKxh52u$506~)Ls-t)oI{j$le_xFj$JpO=Rzid zS{-s%mnfPS;aVv}NmxX4Jui&IK{Y@QqE~$kIZb4O=1HKS8n=tC+bH~!@0YAs8bs!m zrCShAFQE%Nw;J_Km3flRR14IO?Q3apc5tNo{Lf!{efTO2`EC*S=(_);3YsA|d?n{V_#L#(40n~NU(g>bvb~yR zdQ7D4Z)1GjtG_zbu1V5`{RUj8Aa+X9not&>J=KWb+&QFHI?jiOS0CJ<#!EmH-Y%^n zI&qAjEZjF5VbE^UOAqsglW9qme255cN@x?+V|i0TB9S}lke*T(kZ7YOB!(R2e{!#s zHBVI_vMV%#uAAWyDnsrP9ibnTOuZ8VeM<@6itIpmo8pHpUx)?*1ytCB*v@3FV zc3^Dysv!L@m0y&DHaD;Ax_+G-B(YlFU|XM?e$!#}XA9@db7m1$G#KEJSu$radV#;W ze;J#LDW0-Wa~~r9r2U08ImB1dw@4>h_Vr0IPm0j24U*G~SN(C|YzIwJUhh1W+}$#x zd%W)UhMYbZXP0Pchb|L@yqe~G5j&2Dw(10_>*JM3TFi*&+o2U5(SOl5Ud<6PKx(M% zb*sbx_m9l5X-44dV@8^<46n`wb*aQ(cVArgiNo^}A`k zk(B#?{f1BfSFxG4yFECLk*%p8lU4=BCl4g~BOmu7x@73j4*NXkke||SE}Wie7LqiV zXpbq!?>3Fql+!Awt0bD!ngahV>L^oQh_5!d5z7=8T^QL7&6LZVL0UqIVTjcoz9y>! zR(VF|*%~*RgFGXpD4Yh|L*IoM^<(>L`?@5Es+^4QwH@(}aMOJAA`{6TwHqH#`~Z-y zU;KHL&>Gs3@^xL@Z$M(>!qUEoqPFnQ)HFhk5S2`aqfXBn)v|ODG#7T{u;srg7wy`Z zeO+cQSLXvzV%C7CIU?It2RUf~)cntviY=^ zw)YtS=G%&&v@X9yhq$X{$w=)dGV9NRl#ku>q{zUg*}9pmnMhXVS))aUP;ak{~LR8>lFOWpal*9QJy%31%(6E+HS=Qy1Q1q>FRMB5^dSLB4g zMN>ML8{W_KqQfPH0N0KA2Sq=$>$a_4SP{<1<0|!c6x$}@g-PG~x)|jzD>7-Ht+6VI zyk#xYMxaeY%xJV^FIbNB%ISVPo6#f^h({XPea6I@(Uw{pbgOz182=*@PpD4dtl z-q+yZ`>tyZmVh#W)&&p(QHvoPYZBdb&NI05xsnNjxuZmVnkCzA{XTfj?o)ks^Oo%u z3@oL&vyk|~g!#c!o^@Zv0HM`o&5qb~6|5-&%PYYXBEMjMuH|F0mNZ>~T@%HSEzu+v z`)pX6*pPJyry*fX@pb5ew0Yja@yAVOh}Y6~nY&Zl>G?OtK?RSkvMOjxD6#3u&0ESm z$f^?V-&A#(3?_n}r#!Y>llwV3<75!sD6*g7jV`z{P~{W9dB`;F+# zt(obcLYyDuW<8k|Ms%9D*BWwt)}@#Qk6%z16RT6*#^FNqXi2fF>aK<^f-3Bf^dN|# zjrHHtcxx}jN_n>l^mg&tP3`|U^)vUa8D}`x+=Rg)Wh(?u+3FYoHm1X*&nH^)eoKz` znbtV?X%zm12$(T$>wyt1X6>E-Ht1n{pI%9@PVrEFFFE35yE8(#`^5#=!Cfp!H*>9Q0 zqUZpjG6Qmxc zA?%wjeW_`*m?{PkW~dp0ze2enljxlCXf)alo5~_I8sub!s%5%M)y6It%fh7qGf*v5 ztL?!jFrf>WP_?SkyS4})ky@t1$q*T+5k=CWrtAP_$Kwh0zHylwa%GevOYG;D=f;7!4vQ1~l+8%L454Z|F;^t@<6)y=ycy%-T{?Hcyu?`g7iTv+c8 zrB-dZ{?VdXlSM$nY_~47fAZMjXI?0%{H4C1yxy^E(f6*F*8;VjfT%hKOA6aM{@P(? z(oruf+ksyf==I)Tk-Dqb4rUGHw)Ou{`LRJ(UF_TmqOmM2ry zV)8~Pt~|5AtGjkF{OUiUi7_ACAr0u-#k8ERZZU`)YU?= zUt$*{YzcJfr1`JXWgq|7Mo&6xU3Kn4Jjq3$wNSM|T}U=3eT&w#>m~?d;RPO^LEgp+ z(Tm@ohNd*{gC)san<$K-#sF>O!^~^{tNwP{3ENwyBnI(@s7Vz&-GKOhS(H}YQ^$1W z!rL5&y)akjyb*>1Q#xIc%D9Rr{*a3KntH&*3i|Er`fv%een3Jk4y^EkI{+ zCP4f%)@XI`Es3cb0{G9B&Z=;a|%?pT0N-UdqR+8j~CT9Z70p>cC zG|k2kpi9^ouClELo&`MWZcrnqSi`y_KAQw#v{I2~Nds07+`1RpAuWs&Ru>|37;RG} zopH+24c)9xvG@Gpn)msyR)Sx#X|{PUmcN@GI~d6{27L;_hDwkHwXeDellowhC)dL% z_T){Mf!`L1JEI@AOr4e4W;J52!VNnRbuh46K2Q$%Q_~i1AB!Y>GH5yVPtU$xrH}gJc$&OzB-n6P@ z2q1^{97wG7O$YV5?m9_fO=Oo$UC(cW3N$}N=I0#gZkw&^YeQ33`b-?bu-O{sgYf3> z%F^z@m}V3`wje!qk?frBUTf2*E`8z!?2Qep( zf1BeunybAnO8M{Y)&n0ZzDo^%@da(Ty-L;bQR_ed;SrtYkTYI&CvER>kmZaehd>ze zNe=_z^!zKhqGgg+{%xLM-a6D&YT*tg>6|&W#Ro(X#|jc$>o#x6@`q|^iDz#-W8tIO z#aWR5FJ9T)DTPk19%8oG=F-G`Q>}(^i|ERPq+qraX=MMEWdag-z;TPVG+&33^Bi?e z6DsjIJh?dtuVR`eCS4VgG*RqRo@kP3j4$wqeo@+Gj!^jtD3MEh4hBt>xr~40=szgUc1ShvM^)eR$5e)DP!9Zr1vB9LWx+UOb zf(WV;Nw!d#6C73YTb3-Hg2v0S{ubN(5m0{59vVhWnk_kaR$LfB(-vA^jd-#)Te2oq z3=jV(o8Er$^f`T!+j@_NEvy+3S;q*{;OoMnzmWq*@HDSl_1GV@eJ$lKh1e9xPkTFH z1UZ%e#kQoEoc@!Rh?OCYO!KYWyxqKYD98I`yV&|xHJ*jKsIESXuR`jb{crC~@Zl?A zy%rG>JKNN>BiBWGuSh!{^SRy|>o$Khv!dMe1K!hJqy8B>`iS$Z#poGkDNFGeJlx%& zYI?nX1YZ8IrLdbb8TGG1YpCe?%>pA8rd?&{m->{?rx^3{T9xn|`V({2$-)Ykft?4> zSP76v+~Lgig$LcVW6B!Sn^tck8V`$3$V#^vpfG%`zthU4qc+`Le`Qh5RxB&k>2o2i{E-+-J zqBKcf8a8sE-9d0ZiKvs#1P;{8@hPYpD1_!?lj&|JMjYgIEcm07@K$9HOmp|cevsH; zB;{aMC@vbgKwAut^8F%$jsU5T?08rUF@W|QGb~T7{5K2$4{Ed5;Hv=$A4#;6j})3g z(vW2NUp|=zlWwUowy2)Pr%BixQ+`I+@!ptXASjsR5{)Z7@_jS2w*zH*{FHtTTn-{E z5@vFPf`eor9Y2{#4OB%DG{I;4jn@i66Pyilk`MA=3hLXCX4zTvm)aT&o%4aGi`v)p z=uRv5ttB0SWpGMk55(mv^}^5iJ=T|~8hg>{WaT-gj_J0|H|+<#8&PmI6*vcQuYDw0 z%$!5G6>L&TV0!#Z+Bor9a%ytjVz?KG*pFSGYYga&QWoUZch>r)c+DG|-E`$&v~yRP zZrtRC`w-@%9>rLEv+@&hD6KXi{POa6VSx0==9=w)QYL5Xs^-Qee);~IiTnG2!7}bP z;q4N=5Q*txqEl^Hd15YF?D_SnS^umujG3co{rot%tn2eelD~B z<4@DU9K4$zHRZL5`2*!06JNPC@2m|avYvU-YkNY^*~-b)tTkbL%Sgek*S+%?Ah}C+ zp7!*GP1y-RA%30i@9;ST=xLNbpUXa9WCC5HZL#PzL7B`9r^^kmitJ4!(V6oTMFhRQ zRia7_=CKbRIq!)hY$gxE-7>oTWl|O1_&5zpERa@D=q8nUzo zsnaEJ!P451knYtGWT~jm$E|?>RVXI*Kv3(*6NP?Uu)L;msG3^f)K}ZTtcuL;3rtp60LOzanRg{_Yb4UM4@k+@XESne)Ak{t7l;+5EgB z0hgZ$@i46^(Dyo#9)9};d6Dww-N_Ypf%N8u&YZ|pW9XGP@(ZUE9Y`)iAnuy+9jl}C zWRz9qQHc8@Npdt^dy8s!TrCiL^V35yniKG98b0&2md{dxxV<8kDc+U+ja~a{*s*$x zy;QgYbm}DVB?|xfvF*?_3a$LND=ZM#=<klS6Aj=sAI@X|*ymG1{4kfsTYOllqMKj37C8T~FozRC)^X z&1rO!LCYg20yK|mqxA>%=vs*kMQ&pD>Yqj|JWx=QrI`SKqT}F$0tVp}pg)G(%<>Tl z{U1Yr@rS{U_Om4=AJ#skL0^%$@y)x^(8|o&YG~bK(`wW9-B1?K-`O8|0&0r?QU|Eg z#>xd8pfCLK@UM>f7cxgvRg>zO=jRt96?=(-s)Ofg?LxcpLaWTCmdOkz*(D%>o)27& zBDOwcwd}H!z75;38dc6e z_kqUqZzU5X3N~XMDMOpn7J-&I&66&}EBUlbjqW*4A!hdKTCa1bu3JULB`+@r09vye zHMfd2{Zqt4?Pi}n!yZuNwu&CQfunMyI@O>5T`^HI|9y=q@#hUCk&1>~0}kA=Acf$a zUJ5S3{^${s@izF99{stHXaf1i{5!urfkaHvQXd$)q$!MMQ;_V{Z7p*h_OlfS&}__D zW?L*YR*>QngxL%Cps?wdV-+ZA-0cKF1G~AyJ=EAzwODxNMG@c*AD(YfU~1z#`hhMM zsG^REjqy+(lpUPpP)@f%cI|hyaMc0c{=(rP2(+zF2wf0(8N`hx>Mz4>|^#-7G}Y09PuM1KZi$9y9Rv+LoV6&)^N0}HzuYwd)Yejm7GY) z?!M!{7uky4g)*o0)C{0Zs}83;H4pKm@?~>S~lHQOlB4IVU%m7^idU?Aa)s8tXjIaT77z8qrwKnh@p2$Fk zR+P$A&deE`7Lv|bg9Lm0d`X*G1Bl5fLAs*N5;JEfvPZrWATH+G4?$mz^odIvypiO+ z41#70J^~Oo$TNoZjboZNyyh!M1ktgVKwR%~#N^i+IO!`u`p)n94GfH4A+(5VFxUOB z5}1RCUXdf5EK_&hcXoO)lpMmiiVI)#nRr}|F^1O{x$eP$3WCJE!sp6@3emBd6zI~4 ziBgUeK*aZYz~b7vdl>CDtH2@tgy371Cb2 z`NoQrzar0{xm*^tDlZB>Nx6AH(^ZQ(IgI>}8;A>x{OmETzx^UA+gTXJZ5I-{p{v1G zUzhRk&q@QWHLrjaBuiO{iOf;F4ZJ2g>fKY~iA3K@-^%7CU;%MJk@5cDt9G5Z@jLa< zW^1oH*G00f;a@E5!21uB9*7?9Qr1wbQSYEnZP&d2m2W)S`3IEise6EKjy&df$^wCA z5_GU(F*~h_+R&GE%_1pWYy7M@@^|MQR{5kVje~}TTz%0FOGpo`Ll2ceJCrfJ^Rhnl z9ZDR<<+lsFs?VG>J!@jDBPf9@P5O;rC(tUV8a!CM@V>5^#HkOts*+oFCbj-pz2l=7 zMl1p4pzl9qR>+wT2!rxcE#@M?LAA}6*&l0OB#1!-=;hcvxAGvoj~<$GZhk7u>A6^N z271sJqKB=%&gOxkn{BZ*@(K+Lm_(;I<}tJ-7TM}%P}Asfot=u)j)LgzD-9OJMEP6J ze)a(+XYbGw8e23X5Ms(GnXOyo(j5w3# zJ)(#wt7G-t5S$k17P7Cv1`SzDo)Uz1{N~yGefY9bVJiy0nN6D?ubbYQFeGVIFC!z8 z`sy&zFO~@dKt*+a|7UU zlL{x+_yzBa*nj|kt@0f9`J`SbFir(`cxqRDlhle4UnQ(JtyYJAdvo-xD`~$&PeYE( zsPfn=4RzUzqN3&qgRjfsSD(<{zbUtxxq0~ad)n{MEtnL7P*P~cPk+yC*Gz^O7;K(xi4MCI{8eo6C1*v3vfLlYuXnQD1T>9F7YA%@@n_9j zH#OqKydDQE;pweVO(%+DN0nB-d=hE&ps$>bm$Oq0-i`^0cq+5V-}Z!6IGi-aqm5p7j?tka;+wKLvju!o zJjQ3L;99E%+==bC9Q5%U`94Xt#D=WBLAj7L1nn*}Ehd=^ug~&%g9t6Jg!3&=$4=fi z0Dl1+BXEJB!AGV#}{7&xT=WU%hS)JrT&)R zFIw1%l55`B4t{>xtD7DbMO0k%lLL^yZyvLY>T~LFn?2qesugsG8j$9Xp^H5(y}P44=dkZv^-NWFt5+zrGfe_%DJiu_Cj(=RPDglQV}d94n3r(ys@4m;Ik+B>(hI9GM{#tp*ymZb_r=ctwG_76V2 zl1AG^AUE1WZrY@Sm*3rM*5Nhp!dhetos!s4IWa`#hn$5Uut$?^yXRkMmS~BLt7Dq` zRR=6#^z%+^UsdC=jBC1OvlYw-Yqh=9bik{XTL39Xa3N^}K^x>_VF!>#6*XbmK7(Mt zWx`O${*E;7JX~b~Sf#>!GR!T|YI0aVJtOZQL0%|&*tOYywqVN2Fi0gX?wmb{eSSDL z`VBg)zoYy~AC_KvcB%@f%d2~w=yd6y&hf)3j6py)=x4wrT*3?v{`!M2UzrzfHan_DuRCc$@*!hoPP@sNG&w3|EQ$z+PQd7c+UcZp4mV;1^ zO9(ksc&uqe0iBGu=E!x5)k~*J9+l~V1^e@P1NMM;(@~r%Y0oJ9?I{3ls^JP*@O~sp zPLh+FE>yGaVQ)jBql=+x*#I%FDs%G3bs!@9n^j~e;yAk)yN+DJQ`4%fU@eyfXDr2* zEv85LMZ03Q6V}YL^Jnu54>faNf1X?uLSIes&DRTIORK%M9&D=ySjd8r5)ypKL>A4C7`yh`1_zOyWY2^iR3pOx)V{kkqZ z(n-$jvmPtGF<8+7oK!I5)AarB(AymNhQeU_(?@*Ai1XxEVU&*ujFhO8T^5|umEC}B zfK@dETxLlEybTbl;*P#Lb`h;C)XfBp&SgsLMi8|cXtP$k5q1mUru>6}QLhBVrkhE4 zyf?^pp&!$_RCOl&Kst*+VnzK2Rv-y`Y)(+dud?lMJ`_xciCk!jYGy}RbDjW=;9 zCDtaezP_rSw>(V2ND({<3vq}rsl959ec@S9lc8K3ppXX$je-zE8yo=Qywwu|JQY}} zi;o_PjKEaxLWm6qg2n{?DkUQ_0GU_9$=jI9f@=U5?qF(h$`&zmoI`19%N7#_oHJ6R zs@rjBoqTdcIkumzN%Ii`+r`;mtqh?7s6b(FgZy`^nbO2%G;tw9i;2UpC;`;FE^L?y zXQAa^CJUEC0Mn??x&LkP)bCp?%OK6c%^kd+_mbB|1K5N4u0WeDK+STMOj&g2Do2h| z`ILxgd;?w)fxXh@`cC{L0zj)+qzsJ-g(|BAG9Fr;89V<14*VP9Qn&48a)qi0K>sbI zbMXTtgAS>Eb)zmWO&q2d27eDWk)h!mfSnP!GGsiS{xst^7)os1wYCAY^VR71>CVjE zl58(WPV+*HN+8S&iY%42CmYGNtK((*)F@g0oyX9^)}*ZG$Lm4dqIlgEZYwconJGIifc#T>&=JhpIi- zn&tfa3n~%BPqQ`Mf1PpPP+FWishs4lL$9#n#?bfRDg0)t+ZY|eQbs^~xLtD9WuvBluDXHZYtTxH#dwv*c<&qxcw5A{22YOJkz+AnzZhQq&F z9d0mtCn^D`TZFaadf7W*OMP~!dSX7#;|O{#Xa>O>(Y2u8Xzdi(2-&NjjtMSX!TLwQ zkO<>lS1RbcV%f)~uQyvtF}>5_qwU7_Xq|vWzsOTR=(c9EL)HnkT8kmZTLMW4aSY$I zx;LQ2C6Z1fPaR0bAV!cr73g^#-5&lV!v>kT$ntdWQjC7S}y3Tx&mnX_5@+OMe^shTo7 zMbPdpq%{)pBi=XZ+X#mfBXB93TN67UL(Q>o?ei0qCo)aB?*fK11Zp1GTs=aELtWYS z^k$RA0>(UETJ3}S6>bPnnjH&!7ib2TSOl~(hy?mJtfw2z;wq&DOr0cMcGTnwcJKaH z6Bu#@`y&Y(%up5Y1&bU6WH~eYZcI&4kJB?R`{;HW8;CjZp=rOzkfhK83osHeu1(bD zuZH|eUXmNKwf(N$+Mb7X2Pohrl=WDdOYe3+Zi`W0+>yp*oMb}C!>B0z8Z{)zgzIPf zt<9W*1)ROml|t-56)gz>xH2{4_U%8@FWf>?Ui1$&I@Ow*C>ohwK|c^q%1=(?h5K6A z>4gZGiMY>suMX%OB7J=xpI53{Y3@Wg(q%ti4KM!(>9Wc zD#;g*FmnyqII;pDtu9B72u=fEl#@bp8L*{k1Ir*Ogs#0Nw5`h1rE@rx$4SJp2>giF z;}h)YMZ){D^YbC7nJ=!omCFRM$SspV4*(h%!Q-X8mh63(kLYO(~8z!^3`jcHmyxcHMcZ3+(ZkI$Ti zMQ^N2r0zWd>7=KU0#6FG8DhFcmx8=oX^#!>ZWI(L;Q>J7CGsg^-G5J z6QBiq-uLxd3sR9CfdoD0(?G4`)U9@qwQbTD&MD9Gv_oCJ-&#s z&Mvr?Dd!g0$-b?CgE0Uz;1$}T;q)^U`N-*Iqvu%u`kD|2mw2U_KguzQoaH3|%zx?t z)>*Y{N@%9%l(X&D9D&T%iN#HB=zf(TrvC!+93#JqSp(^xmRhfuVjNCJRti zIf*_~S90S)Z@!Z@6d1$ab&<&rd)3Yjc7h!T=metwzpmaq5bE#yA0G*&kQ#;TvJ8=B zlzl8&W~?)avQ&slfdPi50n!>C11JIYD^u&Uy#-e!Q^Z3D9R++rCF?HOg!z+)UV5rJnC9 zti`$ZXIN=0?N}q7yL+%F*78kBdq96)fBxO)mm#XHK)_0;x15)HOr6xIoxZ5I9fpHn zwoV>zOgRJc<1i@VN;21rX)Tn-g0tVf$fp+(KSN2kX7F3D%1!w0X~GDUY1n2CMKlLs zORd+QiaBy9rk~!&u@5p+aOfvqLEh31_%KtvC~TN2aebjUGN9?Om5B6(0*$ND2ULT% zvQRA!Jo7ZMvyNf>ik6fG2|hj98g&q-Qn!xi-rY1DHx!@S?Tu%NG{JbD7Og#x(2twb z#GoY;YLE*HMM&v%$&V4UL^ zL>(f;p7Z%EMjhmxJx#3pdBA_MnD>m~OJZS!`bYBC?<=@HX!_n=Ug_Gy5pnYkONF=6 z+l4vAAaQ(`I^T3}algP;=faR9KhCQ2kxA)aYK{&_Wb=lI#pm4vShCUQ-s%+Y{kqzn z99L22eDCFXe}mDqn!A^Jv!3(RDe5$-&+SKwP;6_q&L&@0I(nYjGVru%i(M))6QK}Kcmz!ApF+ActETfEx?_P!OQKS^)y?6Om#+f5UiXBwxHAJ8zR*LOd4nNY0 z78WH!TAciMBQD$28N>n7oU7n$yZa~O?c6r~V8O*|>M z&T!mFHv`)@kAvC3iNuTvRUaPYKo`kbJjN?AH!_Q)xmJ2&2S>@fp==vXZTW(<#LQnS zOti>%h9t(iTZ6GrfpF0Wd21f$6f?smh4hxfc_lv3o29V02@aF!@b(1=x2}s5wb^M) zEKKaesj~{;4tU#;rF;`MoE(p@CW{o^(icT=P{)m>%_O=52?sf>nnNz)^?IZeMlrff zyx&oDWVRsTu|TW96RLCYQgT3|oolY4;}#vEpPHRn&uX_8^L-e%+7m!fwGa}si@ZK= zSAae(m&OsXHE4*|Vh52k7!OBF3vAur@cC5&KLKj_96 zzZ@wKzOOxLovEyzBzE|VYqrGts+0TcJ;#I+F0#aMXX!#yd!CjgRle5p#inWx(*j98 z4AJ}h62E(YnW0>AJ$uk4aB&>BC@ds@;do*^pQQlscbC-CvDpa~X@GcUg_Bo=kOW?q zbg5t??MzPBkw5^J>(`yhBMgJ7M|}BAV#W6;rq=HI`io{UIBpGsJzoR=Wx9H0;ua;L z7MTY@W4>FS%4e7@$ct-JSwf<@Us@^jEoZ~{v;+GS55{E zqz;Ue7}o!3{*~egMjVX%fyu~;M+ENbD^;=%u#wEs=TGI!d<=jBiw{u|aA4v&8C)1) zoB!UwcnJ8Ql*)k&1SvJ}mc8Iu4hA^NcDz5+7NSV&b>cy+cXu^Nyg+hjI$S^u2Z0aX zWzzZ%f%a{dCrO$%D(GhgRejg>9ng&woF)Dj%r_JuEB!#Iy|MtElXS+{A2?c_?%wThK+{AU#c)R13Q1!8wR}W11+1@* z+hV7!JvX6JFF(@f`1K8#zSEB%7S)xYv9WQ6Rk#Q@4f47>n<;8-;(^yNowH029@qC3@rqRajlQ+2j|@EHJ?oSO{ed5_ZIimX z8MwyNc92Ve+v`x_yWmgBRQNWj?A>F&})p~~!005fUL`Fc; z?_=k?w(&zN3phwuv!w$QZC|@Y{i$iw@q~r8qfwoTk_19uFJ}UAJyY1D1IhWz-67xs^o)o>9bT{VU_lnyrFyzrb4F8()3fJFdvv{#-Vtzc4kp1B1>` zC|Q&u;9Z?$pN!kC@H+2(|6n}I!Tck1@+w^8yMse~VRTzv7eeH8s-O^x$1s{KH8O5_ zOGeBg^Kvn~a~rBRS4Zfe$Z^~K%-#o4O-5}sPifevH?Gr6 zRT0M1pAAr?#TJVrjI!WC#U3DF0q1og9KMF*uoXIR7>0{5*D24vZqQdK;FJji{rUZLM0kC`Li8WNpisE~8-?n03*xAUzA=CY4Oo&bS+2d+$Bk z{q!sU;5~24!?oPy$I&%0cCA^uzW3k$cyj8eIk#PYleZZ8SYe!CBEJrRqq&@s$f`%C zs8dzWyWE+A>@84OobC@>r5&F0o+2Hi#{%+^(f~{w}UMC_hh=&Sxr6vxykHGVtq&y%&y5a&=Ho}D9?yujK5ONc>$DB*! zB9d@99N))++biE|QboKTdPdW`SszL7x?@h41#gaSTxm?50nLNQagPwOz3i zasm5nhimqh$jAm;gyyn?9Xzuj)%^_%cU3<{i`MQ^62WQcd*^Wrp zUAZs?g6+D`*mZ4qcE}Kws2WV21OelLmRy{1OLWyxhrs4K`2eE_dNp8+FJQ|Cpy8Q? z1kGF!Atok36`_o8D$HksA`Hr3EKHfDaoD-ykvJTJI}9Iaqky#MEP-cI70O_GR8?Pn z@cHKQFt+N?;5)>!&VuKMb=_8o7{?AAYI~N<`Bv%rE)7r8!jkuiUuT^omYc^vmjx0E z_FN!}c5d~STBN)xeWX#|dDqtBCH}&R-B-qsUGf|#c)n0-pIni&f`tNuU;2oC_1|7H zV#Ct!PD*Tf+Kw0V4@8U6KBmgTOA>ng(!$L*_#!zCp6nwTn9Pui4cV8(YVA7~K z$@b0RBTR9;`T(^MxREs0{L_qo#%3fX!#=29F zA8cz#5W495aAdM1>EiXG;S}IgZu-bP^cwi7b?~Yr$-0x@OwJT0PYR|UUqnFifU-^K!2MQnD5(Pd{ z@3V1H=={nRJ~?>!_Td!m6??prOA|zwlY=o}g^_pxjOk9sQW0Zakpt);8QBmFkRR3U zczTl#wmbC?hV~E@F6wq)uAnD$5%g45A4wI zB4IE_id4FSFV@-=ctL9;u||CPxJ~#ZH5mA?Q7N4+0RS)!S)IW`rAnFLR&iL;G2v^V z8&LI_aCKp#U?hOIF{}>vA2*X4g}_2cR|J78WK@pYeyP@3M#0_6bvvpxzlCAW*rQnm z-vzoy`2#zRsko7vW8ss@Wr)_eYo$$B-(`Cw*@qxc(9LwG<5rm6Gm2vdfySgRqU`cX z@0wF0vMWy4_wDu;@-Q^wOkqSFe?BHPK5Du!RHJeORdNdU>JY+i*77PF%JDP4A**?a z9wcnoVslQZ^Tb2438ltzL{{Mt`I>5t5?PCLUqQ%h-*vuV66l)Ti{sJP# z(|ZxW5Z_9dbk3;x+H05J`E6*u0c#%GfPJZF*Xi7lVX@uzv43yC#u+P3hF@oT+)PO_ zDP>ohUuj4#-*8*~wE=@ZklBLUQ6sbeHMp}iV({j}B=oo6&4OXap3G&p>ySmt)7gRwe_EW~fPL7kXY;4%AC~i; z6b~4JCf^Tbb6v@sxrDS`lsV%+bg{4z0Xj;f#v1qhrbfExb^4v zrc{_q3(#upSWP`~c+~6)G;_CpZN1{(#*To*&NUmbm#CEmcGVv?mTe(;;WNQ+=s(>6 zAOr1S>|esbZ`1?al+~+aY=_(?;qnBwATT`tTOE3(v;mu6`bQ)W9H#7gls909zMtVY z6NV;F!Db#MEQh$Qvi_0sanR-{G!5F6bSWOlD|KeOwTuX0E?n_`)eimm`w#NB)Bk$b zxe(LVNTP39rz229d#19k&i9JRRpAG<3}s^1oMzqBn28+DxkniOk@ zf;LqNbfvH+10V=ce=Ge21;4M`KAB^i@6uUeNGONhI3$Id{fC3p7pf!d(;xomRo5cn z)a$XJ`t&&+c5#ilU!mdN8&GpUP(X0qfuE_)`;Tqh6t1zC?U2W*AlaU{*im*xa)wa9 z2K^`SO^H?gA$t7C>AZl={xe{gH9x0hCv6f-Xn}tGrB!jJIy`Q$95n!juzNKmY?A=u zNCyw;NWiJ>Gxu3+!@tBap>IOa^6Fp7+Kt0kW4gy7M90Wu1cfzI9?KSVM$JM0FqQZl zXZLSW3oxrhH)+lOMIFplE--}O@SNO~jN~lv=YORDMDdS)$DGc){E~KJ*)}+vX*YUG za!n=~>iB2+NzU8_E^nyVzrzq364tzk`O+E~MhiS8uqI>o_ph5kGgcPrLD6u--fW18 z0wb}>I}S{RA0nH2g!nTzH3;FQgk(}SoBu!mpuX)+VMG6{7fYQ}l1^o7#X2O-O}23V zvIW%vzQD}ggBfl6XDQiK zd5blfOQ6`Me4)kv6+6;P__+c5wj0`9asDZ`Nd)wFZ9C-0&sw2gY}V;ddv@seQObY( z{a-G+S6!~{>ruX{^Pb^+l)XDkQm*^#DorRSD1U5kepT#y>>4)bOR=jj<@9^p>+bk6 zk!su(vepHW9cJ=Av`Sun#g3Z8L9U4S zh2;~nh@gQEH3{8Vbm)r?Ey1>%vnz?#geoawk^EN}=dG_CyZpI5@l{q%0_VyHJjLhg ziZ8bm8g)&!n8`?gy>jN^!`)BU*Ip|a#JIaYZLH9(yQa`4p5VO0*j%465CpHzD0g^Z zy8uG#@vo^6>*@(pc>}&v0^^v^ofeTr!EmW`d%*tU2U*s@)IBpIv3O zoc=jBldQEf@HJw6pk$<6D1xSG&veyvWICJD0-H3EU-4X#02tsc$wzc&S2qrejypMP zChvPR`ZzaE;ruU7LV7;ql6xkF#%>A(cC3V9#Z@6N1Jf+#h4j0ooFC?S8IzQtO0a5l z$SxBM|1C6ps(GULV=7(FWtFdEZ4Q+|o;ZSq zJWsig_2wHfUH_W)%LT72M%?_VtNPFR<@G@xu(;4JOD^uTtk1+NMO-GlR>!)}@)EwO zfrL=8dPYsxPS)yC-fARh7m4{41$a&)- z=Xx#l%7H=iv4kK+fT9tY%ld^SeRw?cwm3jyuIiP56z0vI->`t+J*P~~Uoy>?hqw>2 z-kYX^&&5qGeQ0c{mU&P@X4g`3lvOA7*}Wc#u_I0=hier*bRA1pW9pm+Z7p6C0#Y-3 zZok1089&<`tBGDu48vXhi*QkNbzVHe4&$kI)Jq{;(}Yvfse8ck!q*GWZ>~nQhjDp& zC1pR~>zQnerqILql+=qQ9B)uV7-dHg{JN-<7(_|_2 zHU8GIrPLCj15Y!CjSP>mXEtD>Bad+X^zVaB^8P~6c27dy)(PSGf^_|BsOE+E(e4RN zBcv#1#;ydo0f~a`?UqJk9i*ty_A@*VP4Y;*%SRgaAX#U%6w2`#CJQ^kc5*bpYs;bS z=y!v;bY0)<^PABonivgB*jZAF@kg?j!bjD^BW>C%gz)cTg7keH%VgyHE)p!DajS&! zq0oEv=ytk0%uuk@JM9&D}A((Y?0OeT!$Cl(T{JAnr-Leo^u z>0k&)idmGWtV6ep&Xe1ZS<{vJBM{@Ere*u7SapD*!ti>Td{3AWqhx3y=;~DTL;53m z^LD5A?O}0XcBhLJHoE_Pb8xSOFm0=tU?%}svp7*x@;ZqEsr4^VZ!0zbNXYCT35~qz zyytpBtHQK+`)NmC`P>}a#{`7(a7XFhr=L>8vrI>?eW7?lROQfy>?_zM5_9p8QJuI8b(QK#mezD$0l=W$0^M)}Q4LKWW< zmUjw3E5kj+DCH9pB9gP(l8f|GrL~>CQR@?7w(V&I*SU`KnA6>&Trl|4!nBNANMaEI zhB03)97)6UqJ1tE_!zGPRp2x%Nd%; zRtK6$D*Ta}6X$`HaIQeftCJV(GNhTTvDaR``7xp>%rwmh7RXl@C(BSZS_q)88dGZ&LNeMHFiz1wQ2zp8GEKu{Ly{x z+^w*tO!UWruaO3Rha7v#7qfbwzeu@p>kJH1gI|S(ILAgeI2XqTom0_T&Sf7`f8Eol zv@4;mxU~uR!g%>n88_rq3p}1UoZRofR=6B`SN!gG=ljPVAXM?sWt+$`G}n{WJs;bL z1#`46R*S!_-)bKeKb;=Mi~*n@uK-Qp6o z7dXG*VYq_zxiB+1C8*4;gt8=d?TDs1zP9)kCtWo6b~q~Mdh=7eOZWq838|I*V8cn}zGzJK*~ndv%}d+kO86e{La*%&Sr zDPV%|jrO$jldF9v;x^42rS-BwBUKiXiW79@J)9c8y96O>=f zMn-DWy{P8G_7qqFJs=}C}TFp7wHE3UR}Drd*F+n*`A$+hd#THg`qkyKVzaHWWWYY)pIrp z1asE>tjM|_SB7&Qep0YV^cN1nK2f@P$w7fFm?O!)5wpJZg=MiOtBYD&7FeCEe_K=X zpsw!H2o$QdQYP@-?XphWG>=P%$l=>%-#H_mK1`X;gr+`?W?L zP7mq3etDB#GKQ!deN8={SX=C%w*rDFDr0Y7R(D$ZHr4`tceGafSe_zWHE2<1rZkI- zXgX}%w0G;`ei2sh;}?ffLl;p4zOSvL2m>=8)^0bi-orYD#(hqhC68Totj3p`=kvzC{PYRkbLe*F{*poLMe5+`u#V(f`7y^Na?llz z2gTA6jUb>E^7hkO?>}MmoD%ppL?CeTbOhz+UXm+!zuePlWqu1LgWB4BbqA+2d|G_> z*g2PRwzRrTj{bnEc2eOvmEQ}cy6wf~gGRWq&sL!UzitI27LQ$L2bT{KIx>t?Z~w?dR6;N68fH*Ul;*wTj zY6t1b%z)tF@`i!0V2p0z9gQDQf&=Z}MWT8xjsor)grw$n7z40k%b{-t7Bxa5T&L#4#8a%*Bfcr(rZ<@!s_Z^o6qT=`JSB-i8 zjxn=2-9i+8c4yC?D;=u}eIH1=)fZdFoVvfIMsI@*qw8X|T7K7?%#$zRK0?7!zgl=c zW7piUUp|d?Ts;;0{bp;ZL4uxUV_?MvzTS~Nf4+njAy1x|-$J|ll z!O+kyXztg9k&7HBGC8)2H&^sN3!y)~t1uw!of0+R*w`l$OVYHaidY4VkeI~uR7?pwzJT>X7@7oxN43e&v<^Mq_wiR3|-IbeKz za{rTD+Wmm7P{0W#0}dE#vGjOFRVJa*&gSC+!Q&Z$v+b!|nGVI{a3h9US=m~;S} zbxb*^tYRmq;RrqL5lWx>*k$^=YEe%~vG4_X5I_$qa+qyy?s1|BM0hPFW!+%|_RNQJ zBcqR>B52x|sUi|V(!_$EmqEC(sd-ng_ z%PoJ*O`4-Wl$F=4Qzl-M6_QtQrgFA8=9cG2!J!l()&9esL6-$Ro_6dX9m_S(58u+< znliwWVjCs2KEGEJ#oBvMU-Pm!QBz~<);Zg6%r7GAK6VZ&2^^65)FCw_JIQG3g{UoJl(Qp)`ydK5LG*L-xa53IA;dQgkMfpzK!*amV?2B9B&#qTj0+>uDm5YaNTpvuhk+Bsvt&6g$uSw9r@ieJ1gr5PQjYq~2m;BL=oKu2v3B~%*;{80jkDusdZ_NQ4e_69TyJCeKMrb2H zQA%_X57_rySVgFSXc8s$R0rp-(boG{(qbThnc}7$CRIzNYY;`ZydHIA&)zJ|0)VEv z>%J~3^z)sz@ z#Z=Q6kMb))x{3P^^eQZM-#mRI?aOE`O1J!3^|1B3Xwx;>xG*K1{X4QAp4=&9*M5Ka zzRCoj#0E@Fz&?cSgkj;lTTKpE{Cb`@Q&hN5$!l{5oODi96U4vZW$RIN_q*u zp`~=NzbM7T``f(8zYNCN7PTAx*jw<=GEz}qHJ7GaA>ill)2}s<5R>_Ri}t#$Zk}(& z1s0#H@|!fPLXR)$MzKu&h~~xeYe=u!mo#)MF8R5)U2kd0TlK3}RpXUo^CwMGOfO3u z5jh46Tyf0nKLX8v+JK1*{n$&&`2j_syq@|rj@22j2?$+c?>=>c4GdayqR{Q@4_i;I ze>$-;XP`Y?`gw7B{d(@b19R`8>#|3x^d0xuh`&%dSiT!6;$?6@(ru4#YeQCIgIKD1 zxxjZsKf6>*;jvHloj7BX!AIU@sgW-$Sg~im7>!RYav8==t$NGEMdgkszM2CNi{sM| ziPsS;98Q5CK&@>T&w&}PP;~+UeLi8g&AZ3Hydg7q>g-6*4l}qtnCtc&V3>_~d@+jo z-h4v|%Y5~ldk`@RKesm{Y=ui~V0Kh$>ChTwfGvpcpDl>17yeasRn*>ec#hAg*{zeO z`LyFeer(do*%N&Y#!zosgq2ZrCEYhT;FX_X)S7Y3Xx`{?V5G`pP#$N0I%TG@XwJ7t z%f4RNMb)`XH*79s;4EZpcDLLTIwLHJwK}b{umg)%q!hc~R>jwnkzBV6ljE4e#C&iV z?bPI++jGgkErB>!kBJJpqWP&gP~sg=XMEv9d8Vph{k6OMpl&hI`LRyosiA7azQ58b@YW&TaOTA*`hd&fcd;Gx|kDndjR%!B@Q^Do4lA>54rB;KiXz;49FP)4aZd`exC02pVCq*z1xr zeSs^=8L! z?9z^o<%K-0!uKiBt;W@zi^z4}^PZEWBdjvjlzc9R%pN$pj<+4~bgTfyBc% zkA2N$Rh4L-N+VO7O7h=*R9gSQxnNjW`>|T@H~Ni5{*IvHG?IL%cIo=c+VagvS2!{@UO7k{^E+vrnm_rayuj1{A&grOOk> zB&eSJsiwVnn@E35sH72U5q4iU-8vtBE)cJR%Tn1WpD<+s(MiB*(~oX{NW#4%*cq zqy0Z0NHnZ9MBP$iM?Ne)k=Z{yeEie2CDfF_!g6$IjhpCKSLJ=y9<5_4NidzBhM#b)Y$VlR15z|bTIy3cP*A9_SV(ig`xpLBr zjssW9qpW9@P44qejTkp1UTz3o`LI`Z=cnO_pWgz|s_2|k(j{k}KY4D`X`L*v1lifW zuCXC~!1ra@2w2bwFyLgxq`|co?p!`|1dDXgN@Y0f z^X>e3SK)Y`?o9_TTYR9=18IFGnu^NNRLCW^TH*p1DU^<__QHg7F81&5fuzts&0J0a z&*yzRt{bAp3raJEk+&EDc9)0xKc?GOlt3L58?av=DY`GgO${mqEVEv;JvQ?3mP-iR zQ*HJAD=}+qu;7G|>?Xr3*pN4v%yb9(5oEV)U-|WGhs53N!3+VqKK%&2UI79CJ0`yT z`dI1>XZUS4MOA zBfz;Kj1*N;@)6YbAmdK8dAfGjkE}qe6U?`dXi&$(X59y$iJa+g(Hw`NB5_ZLjy32H zeKhP7I3NoCW8j5Wjujg!-lWu0D+dt$=jXX$fH!~HqRJLG<&)!y?byfMOL5!xCU^wI<(L36!f7yf$MfxoHPpIOr9m?_iQ{u0vs{UoBREi<0Binal zZpuxx{eQitul`r~_<~o0H-95t^~VNm^4`Ck>HFy>tg$;b<<(9VQq2zC-g=78d4J4p zeia3+FX8JyiKYX1^FN{~(Sb9Y4tYzwa!9{Cz4RY%>450wwVQt$DX=iLA8oE&{xML$ z{y*ZVYye(8vINB6BWPxEAaqCWskSeh4gc*J`@mOw1D5b-Y#k9kO92zAKqVkQXbc6Y z_)EmUL>A!{?Gw)Y{|Erm|M&kw8#zPEB}x6~B-AI-e_x^=Ye_Dz=do9{j*23{*y+zr zo&Fz5jC*ca)ZAu2zPGi*@Ruzr1OKR7!W#6Kyi0#seY82wrA$7tqzT^3|EGS}det9& z{iBXLRC2OG6kw0#@(;)0_=fePLi{m)cc{dsoW{W5)C7&KR$F%54cw- z$THt+VKW}>ev=%U0&qSwO$aA;fB*c=ie!yrR^B4lsT`(B0RRSmVs!(!7R(lPy(;J# zq#B5=YJ$y9A3F!Re`VF_7EaSqNKPYs418FpNFs{B9nSDd8MhgvW6`{LMY_C?5(sfh zLEh?AGpr_xUc|?pWb8qcOz_0Se1-&`1F0F9%f(sAB)ID{JM;;0^Ts}>x?ixgS=w~9 z$owOo=;v|X@lPor&{;m$C22uuzac9b#uDST52ir!w}%NBgqj4!lbcBJ$aVmDCq_eA z4%)-{7ZD`0KyMdLv&|uxwo0gWr2hZ?s==YhkGBiQxJ3@fS8=VteL8rk3w-r_(OW zu(;aZ)5W)R7_+-8|@#14s?CtsVDhb$Y!wCY~v ztuBnL9NR{V44}z{{;bD#``X(My8T3G?dPu^!c&GHYaF#8`1_iRIcPfGJ91DtfN($u zi=|N&q!{wO9ss)Us3adi?m2e&HfJ{T5x6pT*dcJ>3`}P#3=aX1d$?DGOMnh#+D3t- zIqj&o<5=}LLTg9&6Vn}3Ys>EKk@Vk_egG^2k(aS|vG5c+O9E-(fwUuR7;9vIw_ z>M=6&^9x?xd-wVJwZ5DF`?V#`XWfjsh{81AFZy(^uNVM0M3o^*=A&%6AG9}Si~3V! zNPJQUK(btJq67kIb(F|Z)ZK-C%RBhx zr(fPKovn};-qfIpG>bcJnSOIWVRmwom3jckM{ujM+eoxl!R&BugjO!O% z8ARE=Wdl&jyLZS{k>k{o#^R_G!blZGeH^c@z4Rb$TfP_wSg-bqLTB5nze=x@(h=sI zrA`{%1~<$kEasJG31!l3@2)xon7WKgelk@aAJXLx8z!h*P1`nX$+GHT0EfIvu0wMm z-=WcN28a-4;G__m*^FG`EBw73=J-r9k{@blo-InjggDqCyDa$tN-m`t*}4yzIg~~U zB<+$K%Isu5vcwakkl|nF(UX=2K1y%Mx!LQ8GDhMNeS14e*CdxaGa#hX*GJ2&FH1*g zKQ4-}pR_ePq*Iq6wn&A?iaTGK#En}eeg632eC$I@iqWXdibn3XQe=$=A^Fj6=z<>k zVW;X99WA>j+uO4=%+&qx+tjLjK0;RqEwFRh>wXC;Pe(wU{Uza_fdCg!S)2Le!a%KE zrkp#vahPNmViHWD`(R7}-j5D9`NCaAvW3%%b3tY?@FVIc&C}xSOPAurTj9|3G zgs}{51ZmIkeUGl5y4TE5xinbBI3y*QGWY4UZ4#z9UgM22f3Vc|uQQ0w(Y;qSu0Ly9 ztWS%{@4oQ2X4(P327+t?iKjiXNLTT@x8zt)V-z_S@;6siEBRNs z)zN7Lqr(JsG`b+34B%O5KIRqCQ!-* z4@#4YaIyO~?dCFVhX4$p9;~`B{CYmtogZ$mZUs`e@hVc`F2)!Tc&@xHNDh9rND73K za!`xU?8IRk3v;4T$m-AC-|Ve+EtG&5M2XZrVh&;^Dae8O-gIPJrFV@8MS&_GYOiji zAmuI0Q$R*$J#F^oalfoia)%6wwL@9f_#N5t-4flO5uv=?$ZRoQ>&^{W*^x4h#EDs} zXPM?cJ2<__Lee@y0H8poa|R#M?OCQTDohf5Xp0^OP^Zl#cYv6ujbj>9>C!uF=L$kb$SS{8;6 zEhCBvurCs&;KWH->tarH0aBNUvj>?N7z|$5vv<*qoF*h8AMQY_gCV~eWmJz{P(=A$*gB)&OUpeJuQTb6Xh4*M_d4)K8BhGUsv_x zgC8Y-2iMSp7Sb<*3s4TsS#dS~h0T(pp!N%CgoQAr-C_X+5tfOMeJuvrlbua#T{zA_-di5oYx{7Oj6 zGM5QvVt`wr0>LY$CepNH7lv@6zg+pHTA`W(gL|8U*t>`t`q|-AcWr^45?T#`7kFqp zjhqom+Q@1a)1&U)PNSR;(A$_LxV3@bHl*X)Ve~fU!m}D(?J!2f4BAwG)ns^GCX`)ldIsyR|5N{ zrbZArS}*T~VYZ%Nwkfn7UZK}hpaJzUGDpxG_Pj+|BcM?F8I=E>)NpCn0u+rmH({7B z2!GX1!EcF+e+}x^IE_FRXyc05^Na5J-`whQyU-&9`8n1GK>?2FAgng4fvs~cQ!%dm z9d7U>-BCxuK=dN@5eQHUNbzwivzZ(}2f5sr{PpX*<(11TN~8rPNc87Nd&fapvHCm+ zc)O#HFRh*#2K6bm3-{;Hy0%Pdr7yKow(nj-XsmyL_t>w+bC72(X^pz~&Y^pI?z5`; zb5Ln!%G<&ie}MaQZT%FPLHC}m>4)lbP`>Z++0nDja)$kyq&aTo7ZFkoqN^Be(V7e5 zU2)~u3D8MEJ(7MHESc#hpVFHj(wrX|FTs2nb`DxbC293Pdy4n)4^f=8?H2OAckD0c zcOh>AnF(J2fg6apr#AP;@i7w5*i=k}+8^xm>Gq7{fyY+6v9ug=zn)15ezl;rm@w8{ z@8RjZ#^rhElhE0A`cfbzlD#V5O?~V|s~$@t$IsWWzPuB6RfjQUTZb9Zw5P5*14%xu zyZE0~4xv$}xiyO+oTXGMWZq3p#AO;^rNN&r@o724k@^#r_r=+znXx@Ash_|36MM3p zGgE5W0VQMK`Cnvd9dYORnj6$_1e&k1A2P6y=lou%?t29*&bay-QaiZAiMk6T%xaKI zWjz@+L^z4^en^s?q3ejg#qTW*(_oj#gCh%qM7WNzq=D0u6bNTw{x09n30L!zqMqkY zQ(QM624pkb{zE;uy=)c2%$huzm$|yHVy2M zZWAasUrg^!Ic&&MpZ=kTALBr+t5aDl&5%3qM1LO*p=2$Rhto45bQQ9kWejy_WTu_>*&sYEq*)X^Ey~{U)@Ll| zCPEpbL3a%}d!FC<&y70VLohXu?P#!#jH7{7@5Es3cwMJhf~kZhZi3>ie-D=5;{E$z ze)~zflh*6#SrzQtAyX^oAy;@!qa&UWuZKjg(`Syn)w9^9NAK{=)H20}4OU`>WeqNI zVqlzV$?$^Mrf&S}taay_mT7w#q?6@jc5}nv+$R7_*C43Lq4C`jO-7{}2|`NWjEZ|f z*t!}{2Nto$HRf*EdkhFOgstbnIjD_ikJ(N8{--VM!abT0!M^UsKK|JIA>t4H<|igP zZ-TDfpY60k&nlLsXmi^U=rdDRMzVpw-8VW_-JhhXy4#5xor7}A;*Yn~JCb#a&p~}X zMBwz0e^yuNEI~y%)M_f`3J22YI?hBzkR7GxB-1XctZ%~;mxqdVqOlP1f9@y>&-^Gp zjWQip7I1&pwaC+p8uc& z!uN4MT6olrSCFV}{_@0MUJRRa)cWAoP3H$%VOb@!=b$P?yNAFx0ld&f>yKq=Ra z+va9Wu59E7j~*by8in1O^z^c3$NU^0n&lZ1j2g7kRhj-P!s!*=4mL9k|1Zl00S8CU zC@;5fUmnXY-Cv(KFv3$uA~PVLhDJV4Je&|p?d=kUA(~BUHJFtwW8TW+z7W9s(M=6o zZ49}Yb?%ig@h3q!6OWRzarbL+b>%vP+}S^NcZ-6h%UEhg z)9hM|7>|`JRNMzArf$X4rv{o=22JyS`}FYeZ1C9=MOzEQgxBMb`(5a08&>Zs!z$~3 z^={v*;q8_3TeSWZ^I_Qquj?2jn7%sv1S#}547~CfUN7{7^A)eZf?W7n4jwoY31vA6 zJqMMYc%ZV*K}Gs!n`i!mZd^@QN^PdxM{f&QPI`6!lpV*;|E~Y6CY@viThkHtNr8>` z?Z`hbTRxSUB*(GH^!yTkZI_%|;nwC^ygag<8Dj3@&*pV#(h2mDKFT#a+p39#7Z|*A zIUZ0q`Btf4C0dunEukiEA_qLqHa1qjaZl{sYeB>dTkJ{ta`HI{b%%KNIrlWDcKvpA z?0iJ0!owafHVakh zJ+o#y3hzb+P88&ENq>wRK9W{4y+fjstmsN6q|{TKmY2^#SI4VL&H+%rwq+e=W#6=? z{zdB2!D1HAP};um(UC#!ZRaiK2{Mmk1%r3i(BEgOP38KJOZD;J28cAw3|>Fq==YIr zX=6*eN;F?A=(=5NM{o#V&pKTT;<19(&-dz*YIercC3aSIpmrWT97qlkk=)Jvl)Jv@ zq-REe;97oAsT*0w4cNQ&y67FJ_~AlhP-M@oq!iN!@2(V5=fa0xn>9s@7(7W%FG75N zm=&rjmTwranuRL)%yaPO*toJ?PBKY6|He=ROS6HGzh6L}iMZ5VV-|0)5L40J%Tx_~HQN!sw5p|;V@46c5#^oNYn_&`kfp78b=;i3H~EgrWA_bo`;~pWa%zMQYcvc&}^K zH!(l4`t-9QSJ69NWp_p?wNCY?x~=`7gTs19FV)XOy%Oy==PaOi! zr&z@2PvN}){g_9P^~6}yxO3vmWx~S)tM@>qSI4}kSCY${AMfXcSDf}%EmwEnIyR*S znLT+BZgsC!UO4gz!!klH(c&q0#){QEmVw7=h%?{$Yab?cSL-r5ix$wiPGT@a7>g1-ZRWG8!%vN;~Yt{r)=d)1q3c0KKnoi7H6f zaiIqwPQ<0YS{II5KsIQ^sIBW&d2MNor`HpcFE&*1HuMpia?SI+Yt9Zo4WyU!yW~yZ>5KfrZlmX+l9da+xN{Jn5^(CPPQvKNA^?5KIsTiU z){g2QBXLb3Zyv{f3#VVTVKy1bsrO~L{UI!$!OKAjv;JVq0F#Wj=KC|Y2cII`9`aDu zTUq@fErh)&NE&%f{o;kgLbf5E{xYxjO^FLC8|JSajd+!IaDDPyUAagieSl^$z1dFb z%{W}q^Z@pSkhc)e0M>9*a~ZJken0ISJowR&ZY&E%oBgdVCX`7JrO)%~`7jR)JVjsC z&F?ywV~Pghq8xL&ya2ljQOjPG2AjY<#L|%k!u@n7#Er3tF@w5#l)Xe3DU`(TTArM+ ziM4H$LlJeN@z!RCuj_(%!n+@INjiR{n0xy^ovPXf^&7ay+gUtEtbpGzjI>?DxCs0l-=36Sm9}%2ux=lO>te`0H_uW()TJAJe zqRFCum^#kmniRh@r`m*BoZ?Ivi`T^9d)V%}rI|l{=1huhzi(=f!*n=OJd2p#sN%S+&ANSlML(0s1QA#s0xY z87oOBfvWVaFpTh(##}1-sR7m+ZBEFjQI~6WR~ZcN>XN&he^BTt_MQNu!-*$MzS$$O z69NYHaNdTm`G(TjZ-7bAVrxeqoryg>VkYML4e6n$Q2}Lg(XwOjl8Y?FjRecV?NU{8 zT+k~sNkxDl=Gl*RO)EixSr}|Lj}1C!?i0ac6Few3%}qB|tpA4HX3H;3HCj~2R0RBE zS+G8sldAM_bp(?E&v*a4uCEo*ft_=Ld=_MbvCH9KSxV%w_*=?xvT!`@;V(0Asd9W3*vbI-p~hkYejjTM?9Dhv{v z901tuNA5_?sr06yvQcV$vx)SFusp|2e3)#zm`{JedXFky{a;C`jS+P%TSWP*ECTlY~$1-SQt**{b1$Sl;m?zu3H*%tVK6P0wFyRe3?_|Z&#?7h@tUYVFF z1xL^hYz7^?Q}&^wk85s&h5F=-{qhA`NW=qp7W(YLng0NN8m!dJ=aqJ719c@}0$J?g zSZ`OUg7t>}gMM4}{0T%+CqC@Zfdm{6zM;v+&-Zao&lHWbmC>=?3S%lnyQq*iiUEwZ zj@4DLXnq>X?2p{M&;`{%`2xYYTTL5M$_S8-&*Gvvy8{)OIvlH#+IrLb(u9n3qG6?j zfF6OGdK^rGE$YDL%&!h*=m2`u&7vivs1%b5gp;%eZjO;>dN8bW1$Od}IwyHwa8?61 zZa{%(D=u2-(wxs&Y!hI8iE~ztZCAvSTUUjQQ&%i)i$u`k{S?@ql4c73Y=wvC+F6_K z2pedHC7M{u^X(G1ah9CZgEtDg-wVdrb*JM|uiQATf1)eoDh#lITV7G;Cxn+E4kFJj zaZy+Ra1XS1XM@V3wC`u32f38&Uz&fi1fd`&X;Mr& zT@&Wl%*|-N`l`8y*MGXjbOROBaNxqx9}tMP20vqUP1_;n{1Bu<>*M79ULbJ?Z2p_ z$G6ikAC~%$3yAViNp#6=l(a->hKg_TCtn# zVy9xZ~DKAO3H7_gSVa}gud4V~IcD}bw0$ULeH0|*pyXu&7}%=?fe`i zMo}brMlsXDyM;Oz&{uP2d7>iG3}?-|Bl_MKv$kI-Snx+@>0-BP;{E63kwVvacW?IqcML;~m6)zIy29pAf6mn!6Qo1!v^(Q zyH26qI#m3@Ul7ER_~{bWBNCagnhSU3iC=Qlxl9+{a}COTWO|u*QP;)^v7@rBu>x|e zhb!;mW_g^r=**8uje3C`oJ8;@W(o_#Q}tDfao<4+@%Ug9oUvjW(nEd^>YjgPqcV9! z2LZN=Z}SWlVv>SHR7SjX4ISVa0y$z@ef98Izr@HxWGSt<0;E8ir(w+p5yfq+xkohV zNTk(UtS^38tM1yNx!liJE2%T^24q6Yp$+wc6ENXjJMGFm)0+nA16rmsffusM8sZLD zE{X~j|D1D?YpU*2RPT**IJ|gy!fCUQ7l3+856XSMk4X%Z@!Kh)H!*HpG}2R~`p^Km zK@4`~@k2m61*YeGP24Y_Y6a#57h6{~yFh+5&u8$zyFAWr=LW0wzg146gZLFjGOO#-#sVTEd^+6z$UW83HGJL&&d>Y-ZCDjzYn)Yw zuOs?5`Qj0`%<6ERZ5Nn*I#}R#Kyvt3x)z*kkx_?F64jypQd^d}*xj0M%HiS2^tIcI zhz>n_UAj?H!9*YpnOBvt`Nc%B$2w8Qnk~mIIu!a_Zs~KzigrCiR$N0nM-SYT^=|P) zo?M*tHq$KMmztf>BF4?B1Yu-72OY0Y&|aRTU*~L&(S;|`H(rAqN*GRBfoO(sGz%F~ zRLFDoe9dWQq^(*9dg5OsnBCQoY=$z0<h*J^$I_F6hq7H|YTxu(-!q1=bHa*#>)ov(!8)LSKbz{ffwNI7H4{GT z<{yTh)~vavf6ekQh=6j4ikkkyugw(TdZem_eMXWMnq`w1sJ0?8mw6Nb=(Gd2*=;8y z^IB?BYN8;Cgy@I#*7LCMu9~P7Myr-81>Si5(}X|!W#euEK_LFwqvX@P92U+Z&c3Hq zSczYiVai^Fut3)WoJlQAmkW{VbP5f(YzG}ol2b)G_#W4r2 zE+TraFd{QrR}E>rb_f97-$To%Q;<<**gtn|PPJYB01#IKBM*P?2aJ+i0df&dN%SSk zM@V~ndvl_xPp*5{$I44ttT~MY%`uqD5G2RvXlQ_31?zE|j7$ISOC}Hkc=P5Qi_`!ukZTems1ioBuT&YE(-k zQO$z+OdhY%fwSYE`il0NP@|75pqIZ}c1*FDbr#=Yd3IK-*Bua}s*I4H_LT~nEh$AX zn>8K=AN%OsQ4Qi7I+(R$YWx;k6fwCumdK)Uf3**$Dy}V_FazO9o%ZaUNzW4(R}k+M za8$1_)|jJiT}NTId8O#t-Np2XIXowmOBhK$384HD{otTMN}=eBw+tX~%9w25vv1)e zZ>?|m&R==+j*akHh{bToe%sbNWmhGmqxbt7ILTa@0(Dw#sKon@bjt>4o>jVEBV8GP z5MOA6I15v}bRiK;s$mw7G}V&dmp>DDP$Zq-dtY+JhX_7=XZ=sn<=zz?4Q|Ch7|bfA zjR7nZAYyvt`0mnr9!9>Mumqr^Ql?raw&zOYy3Ukr7FS79;>7Ux1jP=G3S{MD(HgDA z$hd-x2(e#xrxS|8WPE-hpNNI)MWG)3!h_Y4GrdK5Ta`tphsq?^nC@zGdg3%;OS+^m zH<@7x3zu8hRW&+7-F}EuEkTR#Mc#5qdj_zBvX0D005c0;8z=p`1XS>c`g{7Q%MIV4 z(ygko`Y5BC*FIDPizO8V>azRX1Q)tE*gTn3O_xU`#lZWcV_4|ab}nd(Gje(AJGN2l zA^B4HgKdYteUm|Iv6`>ZCWN^*>i>!aNAi$22yldwr^Osw5Ny?WzF5})YiNc9Vqjc0 zgKmCEL5-oMcZv%+Of)shuEoiCl(o~uYYsd$>J^lJz-MYUd9Yo|JX$<~h)PPY*}Ny~ z7%d@ZPGD=L_XnHmlW835*#%GX$R(?W77#T01w}uXP7x4wjDuCBseSp{@Dxm zf()?1eGd9q;^REf>TqrI#Og2yh`VUeKl6EDqmAzD9_Klz{@Gb?mKtZ`IY>JGB$X1m zEMjaM_hx!oGB@$tZN6+Vq+K$fZ>V_VIVjqr7pQI7dUy`{P@aA7Yj9moj8?3qBWG7+ zDz(ZJZyS8{odVM_E!L{He|SrKa0 z()r44A8&=|OGVy29Y6&XiDsW$K}33WmZ2q0c$K#emjYoG`T6?_yzh1T&YGF>FZ{mF zL7n&e95h<4)_m`jrgf-Hu}>)~=t<9CKR2gL!q|F|yEov8tv zlwbrApvYI58xDI{SDZw-zijZlC}L#_Z<91|^a`p7&zn7a)bigraaWD_gF{8)zWULw zfmB;n?ScB%&A;SdKP-eChnyU7iUqr5^p?^{;=qF|Z^#H>%*KK{(`_|#zf?nHojK-H ziNn9)fT&u1n=WBY~M`$26=Mslw?Ze!q-#|yKY34 zW#`|WOH2r)KG`q*s1fab86n%NH2j)dQ{^-Ssl{8E6~1hBZSWIp2`BH2KCV#z@%D*6 zHLb&EpMQ#E9AZMp>cx+oj(VY6U@d(onuNT~KD$NaZO{DcOmm!fTLw1z)S5l_n?%poeqc zGXp`C6{83@i`sF_FaMkb5F7}V1ur3#-b7#S30D0i;d>@$A3R$Kp~@t?0_+T)gDBfv@|7Jth$j@9Y*Y5GCgI_GSP@Pz zl9W!*%`Vo{!K5Mmhm_WWQ-0en^DEIvQgi*m==DTvmh2Cc$^P;t$058D=b+7V&{?gg z35%us=Dj#BUn`V?51iHm^InJ_;2#zbIEkG=EWAGl{e_%^@OCF}&p{)FXKd<6{^y|1 z+*5Zu^D0UL5m`!UN!z-E&4`l$vK=XDM*AFO+;VvJ98{tAQZx7P{|;8e*&PC4#5c>; zLvC;k!P@=3EpNp!euZP>RZQi~`)ozcF?fe>RNku4jlCio6aYN+(Q6BnCAvpw+?kCl zj_fSHpt+7!;G(ntt&a-M$}-guES+tD;yx zA4)F!dyO*lKPQw-I9mSXE$+H=pH8Y-Yz3dIdBFCElQAjHnJgvCjg1cV`R#Mi4PbXs zH^%22bQ?GXSSbBF^W9IX=OCG!d+9)5ONaV`eOygL#lYWk{)1!68vss&?GAL#L5u5@ z(EpUYqe;GVPkV21plwPU#0GBG{s`oXbabRLltxxrSZQ5;sNj zFugh~_zO9>x}?keaP(}1QmB|~nh&)|j<;&rf<*rAskVTm3=w;QjRCltZ_CJ`5QZ z%b-(Kj}CTu7pBJXxwH2U@XzCs6S@`HE$eP?*9rEQ@u_)xH$u&PFgFihkhKNdFGBdr z0Jq`6ryItvVj42#Q9Me_O30|{j)y{2XsknmPhu`kRY&7&zrsYi^d8V=kC-E?`snG5 zjG4Tu0di8T#5z*bo_?H2^+}FT!nfpAoQ!xS;UqY+UiRt{i!VN!d~{8wEZg!kZ%w{y zk~4bv2d~NmJ`=)@-T*DR|Jl=S*`Gfl9$0Dfl(AdW7g@%C2A2)K`zRx;w)y`WoF+ayJp`oBz<|Td z@$DwHkA}paJK7H%oxC~k+eez)j;j{s-=E{V$GmIjAA~{w>*=tT^QyS%U)|fs@*5xc z-gt0y2>H<1H`ou=Qu_Y7{@HZr?%eRT4jI2hyC+fQO9SYsRenJEU0yQQmR5-!#HY#0 zP8|^tTQtodocta{#*Y*z{<=UA!q^h{v~?Xme!O-9L?PAm9NOP@3S8XXJxlQ!4P?sk z$#Twfq)@3iJcr6i;-F({fyvB`^dDZuQsbuEiC-5-O4}7uggjK}7x{ny9g_a8fD5Uz zyJS4~W+bM~5qL3cL9X+G28ak;Fnpa9T2_j&9NI23$6(EZuXcPvKBnqbJ{qh?J|t|G z>3y}@-YMt)+<06;f2EBSE9O3c`f$i5>H;&>-zziwEe+~C*kc!hCsbbFRP9j*ngwr~ zwM1Pkhm>M=<+$&gXz2D2v`odG?Ql-nc5gjsnCDQa2BwECCtfpNQj4jnKOXWeFjVtu zev?OH=N}XGDspUalpAH@W`EqH;1BC+pS*6zV!{eXmWp@iRy+F&9p)P?}vTB?Yi>}H8?f{a;oiDTUhYr2T^_JC#6EOY3PI^Ja-f~O%cT>ac@xY zYZlKOjfp%~Q9;~Z3SOFvttG$pRuRBVLcd(+*LIjZ~?q2y7AKTP~VpTDauF$oUF8LTqFS(ti5F7QF*r!hxYEUhG_`{P}#sRFCYfq5K zKS-~R%%#rG9$|Og45vDar-yG_kC2K*7vIjZKK-gvY3$C^Pm-PW>7~8Mnz9XCe-%K+ zg3J@q5i&ARS>v2%cMxrOO|yk`*2#ysA*QS0k^QszyOm}Gg^7tVocgq%PDbTRflm0d zwnO^$)}G1MLq74gd%y2psc&w!$UKoaNVy2(f?MyzzrL1?FlD02@ehyCoaU3AN|oY# zqq4sU=k{=Nj3Xw(OP5R>bkqPZI{EDYwFY0b)Zt~C&2@yoB7_=NGSKuPDl2P?4hQ#v z+)lmZ*u^fvem#He`7 zPHWKzO0_rnr!F@0hQ^+xD$uwong7C1X#3C?PQLY>53qiB9I$>C)OHSfnY&3~`=u{f zp!48YSZSe9uBNRmzRk#C>9_D>53lF>%j?l!(<9a$rM{p%7XAJ+ zLHVAg@umJYdOZ#Of=&zdRi_-)ZQ|DYM?2NgPya|wW7l$TRX))-s_2e$kGMv$x2MR7i;nJ6rL-q&qt^7t!_#Xwa&87jX_TIL83lvx!quo z!Q^l{HzhPw>_Pm;_*=6clCLwNW}iPjdA9ob*_y#2%Vy!R*Z6VL*}W6@zF!jRaJBgKsyXr z+1ODjhd1l`Jh2Sj`glW;lO{}GWv9f_jQbg4QS>k+ZKO!jTj!Drfd*+MjS)7xAgM$> zI&|j0_$`!kcE)vl>Mdh{5kc>(K$#ge4K*`jgH{(6>~|st8>@WwM)%mSELr1 zGID?6HcyNO6#}2%7rY#UfBl98>~RgwU9>;|&2fIaC37x{4tgpVTHtYGL6Edys-#Oo z=*>S>?2^|Wq?n=Rd~J4A4|ghY;CM-P8!~sZSJb4{Dlv^;J#foI3GzvsZ#N{=m%raX zg4SzT_EBr+;T67zDnDLnhb6{Yhb&Ez)ccW|zP-@TNTy@%7yAhbnIku!pta#>n zCfSmPh?rV-s{T2n5>1c9gauaox&Bc5PNZB9hfG_H&RU~A%c90DqhR?$_@_tv$e^D7 zKYV|O-Q$)TzmzDBt*A25H5zzaF9d1*k%=UB>xwKIKIu;ESKvGcKLA3cB;D&kL^gGy^VKgw@+fdNB7E({yCayv#;~Lx9GWT@M%Q; zQu)fvZ6P!jOh^C_;m!n2Gj6#zH#gN=v5tS`*1v^jXAMpYrr*C!cVK;+$*tk3>P{=? z9L+3cDc|?a9y<2@^x6Do{$(rV_Rw0ZJr0%qrF-&Sao}z3YLa$V-4)|?uD5gE`T^8Q zm*<0a+JgXe6IA{6E>tK+*i*@J5{$acI(OP3(y+gz&b1GSm6a^+eX5A6vr0Tn-3o8? z)$#UKvRAj!j#OfPQt{SklT1|`iDjpy7xe4?Ie z;lx1~U+f)JjyiVthakkfUl<-jznNmtDOmcJB7jKYh7CY^DSKfd<79*S_J8pFz@a4) zlGCyQ{H|mc)6R-ey$HFfqshKquhPuvX=~#hgli=>Bdo-NXYg_M8hzGf3DYCrI}$3? zBO0m0hX!3`Av|2GPfbn?R$G>nC}(a~uku^xIVg{kcSmoYS#-r7nC;q7C}^npz^f;} znm!yPCp0WU2ixZoUo%#83YIOPN3$JQ=@tO=aD~#tCokgW!EdFgS@(gqWs~N?M=VqK z(xSGB78FJsLi$q20R9M<`3|})5_a)Q+s*G0u;h<`*r-Jv=`oWq-yAwj>5MP(&pBxL zUH}8@z2bt08C62kM<88(JHWkkg9v_*WZ1|_<<6bi=vDOR#t~INQZZj-h;E^A(gd?3 z6AZX*NU3#9o`c5WyQr=B7_I-vC9DH!t)O;HYPNizLmqjezV>4{=kX@wOh+6z+Oa!j zT8^u1o1sv86zb1e^K}Z$1kZj%1iL)mnBthoy4Rzsdsqs~p~sJfAeaDv`Y+Q^IM_%~&|Wr#q{0B`}p^ zO+}heRLZISv4L+%f%@PIQ{a=}*Ju@&$9$P;x%eNvL;IH;U))QM)tj61HfE+(da)Qe z|2ywul~2FPiTNj&(_jis&ZFO$7;X5cz9qSsySsS(EKKx5%R9x5o?qu6Kg!Gj>+R;2 zJHvFmx>fEwc3_~h(La7qeMi1Zi8>%4bU{`82l1sxe_F#F=Y&3wKX^7Nkdt~4YkxD$ z*$mS`byBLCB;Chhb7Y16U2|nRUzhXiO7P(JAeyDhT1&%fo@o^1-vfIR5;2wYT3(^? zgVtwbDvk~rMO@dvvT!1}Er}WM$t{K=V;j$s1xfNNy%MHZJNvc?`xYMN@0?D6Yy<4! zr~d<(I0|5XthGIQE}kUIhK`JYmG>R!Qg|`N!}uRBUN-Ji|NY(*RG-v9Gws5T+E1RQofH-a9f&yX^9J;itB%=O7%HvBh6L z7x@DqG3dIJdxk^}RjNvEg%ZJC2_3-77)w%^v|DnIi4A?>=P%eGqxH(!@q}*tM0_;o zu}*d%@Hh2C=qJjbK6<)<6cJU*rVEVvD{)qFD$d~Vd4T@kS8DmK2jk};uiPJ7y0|F2 zMr|fNic9sj2)EKJfAfVzO}emPs$Nz1-aJ{E#8EG?N;Plx_{TX}*nMyQwf-HI36o7H zRjpUnrFAzYeke?K&{FL{uy0@YT1B*#0f<=-QOO6vcLw^O7k@xYGj;8*+iv#HmQ=oR z(irfj^*eAT$aop$SNBpgcT|Q*ko+-UdyzaN{tofs-e$nJH+8?^;XKfWT0B_fMh8PpoZ{92Bb#@{Eh*UsAj5 zW=RTpuKP3o))On2O=ew19w4hf5a1}6zuahvGf#!@@7ldtXFKq((b3NjNFv>1tPx)n;mo=iaqJPhd{JC^=q= z(5Z0=)>o-}IMd)(`|vpZr{B~>_v_N8^0qDE(zU$Z#rffz78c)4GAce@T`x_lU$-ur zwBX#AR;%G_f)GBvkY&@q6(qD4!~Di0X}v0&OglS z7Jw~duxP=Ts9ol?uSyHqc^+)GOIK9FzFR72Gn#!+<~K{s-K?_ge`#BM5I1xGme$`H zqtyigYEB}dil(yV@7m|b`AhpuC2)s0*E;c4A?mE{IFF7V-+z`-Wq{DcD*i-z`ANef zDcS8#vR8gv7+2J?V|@>vHSXA#xFAEq<*?!a?Ud$1ZIuOc>j zbWGUIqIXC@lyk{goGjHqUn{O78>!#?+@<+V2Pql~ziMS*WM$vJvE9X2u|Kx8 z!&!)Gf=kw3r>){Xu-T_)Ze&1Zh>d z&`56F4Kl>E{eJFpag*O5Nz=1b3*G&0?x*ez9bf#mkjsQs&S=Xpb^aowzLLdTktCx} zK(zi6AHQ}8uy>8Zku}QrPv}fG3Xd5mIFV-&e@2ZzFr|BA_UO-Pbm2LuUyOJTq8bD! zg4nl#bI?C_imV*Acm}4L*|YRpqNvypZv;KDF9n^NykGK|SoI|Jk{DdK=i9hC8kZ@y zq0|w}RL$s$aw*#RD6{CkQFezgnU}^sf5!{Y$Y(LNWC;IvsV~F-zKDF?*zFeqt#DG# zR7KE$cQ42`FMuv`{gJbL$Z~&LBOrDWM4fdsRJJ7jZJ%QE75c`Ll@K^i@eXD&&N=y4 z$rzXyTuA!;)p2Xvxa+0~4|=m#+0Ssi=I_UbxSds8b)P(KCx*_=S93ig^xp%jJ}*3u zDY7Q6Z7}z&`BHN)m1@@_eBmuuDtVvbVCQJ4u{1U6jUMdpn;Cr1%MlSc3D{K?3;xR6 zo3$*Q`Lx?t<-Ph9DImqVQr38QVQ?#4EAeVl)NHP!wfY9-N&@Afl!{{6>epY{36W}4 zndF0;E`_I8RX#O{HLa)E^0I6DK(sw>y`gft+sbb$&Tz(-dqgQRI$KWN)&D{%K&yW8 zj-u~Z%x6zqyCLhlD1K=G`*pyzilycx? zX=0*Vwh!dEU82B5l;2ehXt*EDCn*jmap-}>880+;Dw1mjIo?r=_JUOGoq$+ncm7W; z3L4G&rCY2KmpRxc62Bsv>HY-RH%^0|2=b?_PV$>?knCehi!j1NbEdlv4z>fV%exs_ zB7FLO9QarKRp#+6I4v??bMh)E>?9;l63pNjh z18yjD`sy#on@?DNK7l(#>EbQ|FTJf_h97vcle_=MXyTnCdkLwJ-Hm!phmWwq#kC>j zy&tA}TI_Ft8O7osp9b$#biRDy$DG0&_VG=r#*N8_Im%5lU(P}~u0A>)AJgRL581p5 z{dKV(dL@c-ygY^T824$Os}}o6&l`>y{ZEnF+`O0M<`W{jdbB?a_`nqf0Os8_{_fSQ z>vUCMzAP@ZXBV>`F|S9~PXghzg+WB<-qq28?UZOmzvVOwGu9_+VqF`^C~%@p(!__W z^6zHY$M>H72Vl=LUe*O9>P+3qn*WmJi0a&Ac+2)XjgI?c{7WD@U|OiT=@pPz$t7b^ z2rS=YMu}GCtA1g$8Z z;@(K6ihniihMM(;7CjE9zr-6$xy@H1sU^b{aK|W<8#r2M>24HkvNFO|dn)nl(Y(?^ z&2`-N;WuiNwY#77vc=-eIa%TgMwa#oQFGZiXSVlo6w-nNWbtwUyImfdw=#gu(L;y} zx%6Sl;yb0k^8h+$G)d-zqi;%QXXmo<8$9-lSAa{FIhCv>c7gM;pkB2Aho!L?cS+OR z?)XnZcDQ@khhZxtHz{`=j1x}P6DqPs=c=M}}19G!vqB6cAmGbF;XQ+2R9eO?b=5eFPqcOWTd`>aR9O&u5b7 z;NNW4)qdM1W zpn?-vZ7gUy8=sMjxOr@xL+QDG-_%3;uN3i3?c(^qOGs=m)lRFgNviLNb^P3)jcfbi z#_P{nX>xXrHl^!W^)Cf8Zc}<|#(b)zuGWa{vje*`v6LRQkGh9(rAdw9vlX`@US?Lu z?@>r13dg57$PJ5FnH~7=7l9n_n-csCAPgc#q3W@#0~YxoQ`*?n0_cGXm#M%{XWlb3 zaZ|GUfj3W;cJ`-{@TM!L<-ylfY)jj{yYSz}n~EjGnR_BYeRakFOYj1Chubf%>2w`_ zgPy(KuY;-&Zl$u(-n@w(&9LDT0re8Ee1c!nHiEc^l}?c&4x zpI&^!t8P7?q+|~QV<34?BV-ZcS1unn&Ms?oKH`qVgm*yo-9VDFaY`dHhEum}zsZ|| zy7q{VYJO#>gUNI`HJO*k8ozpJh~P(}i7E+9aGf{R&qS@}zfhbWaVdWO&an+Qb-b1L z2#CKadvyWfT@V;-Zxy>Ooen@P(o__b{*9Q~e2`o#^tXH%Ex@Lu*Q=_CKP>!H?9mgb zayP(7DaHC3;m(qRML?q#4_Pg}=os!f83Xx+ILd(>a)eli{!lKNv}pg9YwevZB@}?) zy`{S)wO4bD@hXx8b-~y<989HXs9S}+-4$L&T%My~(n#eePK%(f5Wt8v)(|P!JbC{E z+;1?lf5;f8W}6Oy{MjVDG0lJQrd5%mDn{S^UbjG3HANl2P5M%tlF!bu63M9a zW^Q<|t~~YaZWDGVne9~KkA6n-$xMDSh)5^!{IRW1O5dGY3Ho*MXMf*#HJN{(yJ7QU z-7Mx(Yt7@{OH_oHA0mOF=q}!`lmgsv3)ge~d3zcR^j?5*$oI-0MMX{+O#sen_Lg+w zAnEm^XdU>5sP~HK=ohl0A8UPfp=u-D5MNBe~(juaa zAKF$dn9?<=x+FN4 zh3QfB%x-y0H>&;@!K8*zAJIO{-6-8NU*TWAW7x7FD8yZ=ccn+BLpkSF$`iS_#tcRr z=93hM13js(CT2|FdfJ&VqzXQk3UK+p+WMfPvK%L~a)-}=PAxdr&Et1a-EhrnqX3Wj zxYzc_fS;Q=4gU{Q-yO}?|HmDpD2f^_6{AGWwl+cRy+v$VMXlPgl}i<+F(P&~C^2H! zE?T1%TkWk{o1#|L{66`e=bYy}f9Iadxw-j#UhmiXlu<|QDO4>a$zF8x=dCMIKLbw} zM}QaW?-7+)C2P4c^oTAf--73PX*LW$dRinn!t<6H=g`PTM}66G48yaRMvQv(CHbbG zPfjIE{&<)v%VO;JI<4>%@JOQW6Vx1zGK-~>9L6pV zht9CFtuBz zr1ZL@64E*M02PJR^#=d9xMWc=GT;6@(=DsCNE2B>Li&4I5vM=t>8}2lCX?%^DX?78 zXk-<6WauA2t|q68>kAY8sUgtScJ>VaC~m=Iq(+Ldt>vk6-lZ6Rcqnnukb=TUMJH$Y zdMf%NHA3yuZJ?}ck%dUyTuUi-l{gk&JS9psN+xwch@8Qi2Xrn=!C%TkO7BAR@!l7r zLV>x^eZ1F4)HsSt5q3AO>LQ7jnbOa8@7S|)X=$;qFj8v&yFh7GFtH5GQ5zYqGX(EO zgwt-jG*bzG$~-o>jydDAOlieZ?pRiRTg*Cf%<->N7|K*qmZL_URIAae&6c;%9<)q( z0w?DQqUNsy_b!Q;)jEJrpbFFVe^YCh{(ZchCn6G(HjQO{@Jh_YJrskDLbCp$+d!oD zGc28G*z`!ADc%X)+pA1FGweH)7n=S(Gte~o7X%ey#?(93@8sCG5tWc8-v74cZ|<`! z6meBKDHVDMBcEf5?dWHvMO_ET0UvW8%WL|gqw^}INfVoU{rVM6w*4p%Oa23qt_l#i z>8@JJJhn>Mg$pd4gK{H7qvjeVg<1ClEbnJnqW$RjJiN~0`ej#hk1O6}#ZeQ4v?*Ce zgW+Lep2i0L%Kp5)1}#g!Rg=OgpLW%ur{i>n9=P@WeEXnnvIvm=`7Adi5IBE9;Y2&s zO3ZwAxr{+nVsJL1)p;jOUF^C|YOD_L3BAK`rLA$woI?x?N$fdR80EN5No{wiqY zYQY)rZZg}5E+$A$zjgaN#R%)?_}4M=8K&5Pfms;d34A(90J@}{rss%;H}~GZ{Sa-Z z`)jg}ZN9y-;Hf7iZpDBDpaPV1Drl^`zDYmSgjQvrXzv9iDqLlVFVFCZQ`yVe)B5jB;pRw4vN$P)=ar_iIjtW94-+B@yp$!=hgWWn zO1yVEh+k4(C9?0mvHG=*JuUr{b`9;(bP(wm(Zxe--iG923k|xtW?0Kx#ZWuDFc2i3 zR0vhF4K=^@UQ7*=SdbFk?N2B;E+ehZA`_sT`4vmWqTS(D6nH{>*>%0BbuuYAwD*$_ z%0hE0Z_NDcVMhUs;yzStN@Fp?>x?8Ssr{7luJRGa?OM>0jW(RL7D8wk*sat#8#(KJ`d7^1UrO|4JemZo~$w z(+Medn=t^OT8@w^ELr3pH8(X2tWJqmv*hw03&9((kS%k* z#!*O9tmK#AHQP8}udg}_PA-)?A0TfV~M@@*;!U(kGH-@NYy`5#r?sUJ?FItQ(Qp#!RXG7 z>UJ(HW3RD0L3e>KA~s)JTkY~Li# zv#$3;i^cx)0peN5^6Q^vgPP10^b5GoN$MVSa$RMv) zbDH|2I7RG(`|kX}?Z>^V za@*5$M_8A$zJFG1u2xIkTQ_2z>0WPDomv@G4u-1g@a`lGpQf{1gth0l!Ctib*HvL!OqV{EVlxt1NBiF?-_RMJq}xa2EDArfBR<)=KkYdR1=RM~Qib92FEp2k~FyjK$3w z2qy$`iE+Z*w5$W=@9758yr;-6m|5J+ybE7=c96Jabv3+X)4X^{R4L`MTCejL6vr&y6;I(?buzM1nNx}_XK1R87mfctKKeG&+8CN zT2c@t>v^tuOvYPJCSe;}=E#uI0bcbzSxR|P`uu$a=B|-2@F{19C{Rd}{_e zhf5{B_kMo5n0q`IJicE!wbR#_;wKkl=JhMSJf zHEYGk3{JmXYrsGlmR8^RsR5Zi=_z7A{&FWweV~`u%Ax%z(yNGpvgD}zVAC3D#lu?N zE$O^6bQr75c7tlf_Ag<@a*ptZ=gau7#>A@GF>jf{=I0P!)UA9Ai<^rM-|x0E))kvo z+l1Dtb_O{nmo%59m9Q4t!oX7Q<7+zQk20p83|!xgk_PfhED1Nm3{?qR*r`8PGT$1YFxpyXiAE!o7y?+bm0V7)9 zcxlTX7o%@&DTBk-vtT;tPFBftOs6px=rMzG5=Y1}7`3H$h02AtpL``|GHhs8v1;lB z3gyNwzOq$==!cN13mI(~g$bv>Hk=x#O4gxf`10P9unsuP{Ri^!9+}4s938c~9JnZ~ zRLYpjP0ydu6SoZKZkOwjv+!E1oMQ>hebRZc{<;-BDZZ&nSJL+Pqn?@n(ib3T$lb+V z?pd^X#_%X#7B`$iMn>r7CTvH+!m|wG2e@`StUj%GJw*BSGLx47v%i-5cH1njbc5sN z8)DX{d(vHA=3%4t+){Zdnch?ib%1~2fW2T>3OvE7*3C`O_4dZa>`bQTU6xu5rB0OUR@fN@FDe|AEZZ7PfIR{rdTLDfk}IiKP!4Lazh3bAfL>w)bgxM18dQ zxi=Kkt(c(msf#)zx+y6i#eh6AND#EtbsP1*%2lPxJ;f-1uYJ7GR%cz`g4%W!TUcT` z&H|gN4F~RN1^9|gZGSCId8KlGQt@ZtK15V38b#NAfK#qmyGa$tA1D#E_3b%t6;pa; z*oU);6Uyj*rrS)aDL}5!hCL)^#MUXVIy80Oazdn{s4n(rVbrOYL1A-eCol0asPZ=L zgN&4+{D);7$t!_81{-%|2u7Z7^bUAa@$3$8QFUgeg+Hmj-J(erbz zB1`pTSw;=DY#}mS%6(X9WvwIwUd}L#Zn+Yqm_)sP+?>h^fIWGePKxc*xf>}$!zQ*- z--~DJVjgvKAMET9a7Z1F6xP(&Tj)r?aQClXCWch^r!&Y=w1@I84XUlGbv1px>|!Y5 z>#KX)?DR27{BrV|mFzo$sxu8b`P~AYAo8>5YH}thG)G6R1;PRn=#Ppz{-&wdwXFpr z-Xib1!2n2nWWZ@S$qyn5NY#c5lmo9|A^Rp}=G+w2)scFfcXLAV9uVoLft2G@?-Q)a znjr_7BPA4R!n$gr;KcGMRG#iLd*8z(3fXJ_e@272x1Ml`rc&lyYWPFz?WVthU94Ul zOnhk|=#_*i#|z_B!8V3)`L~rLEPPm>B`Ke5eX~~No?sPk>sKRXKXos9CFevt$@f~Wm6)2*G!%syJWgNJ zLD5DAfjXl9{oNMS=$CsS?Mug&ZMal}%DT?ySy{ujULn`<^hw{}$8}O)XLQIuY{V=dA48?==4oOd zHm8PkZtQ3~ay$7*yb5=Foz7WUpxB`MFuR2(;8SLQ@L;sPU2EWmtj7whrF5{hKlx|R z4T~e?mt5IlVdwBw5EMdp;w~+oR%NH7Z7U2!7X4`<*86D~K~E(>q^ZcB@VIvKhwNZ^ zALiU@+m+AZ+m?3P>f+>!J?r4dO8pHnXo59-Q^Y|uu%F!(x>BjS3_eKT>f16E>C|?R zz-DbE1pGGX<9hFIltC#(;4=u)OrIP*niLbaKs5=`OOw`V&eQ+-EL-{$xqd_BE(SJ+chsD`ol26g71zwNqDW*W=GTP z9wcji!za<^UoC2-IQ&ZR;UZ5;T@OT=3Un~y0NlIl2IuQjTH3u1HR}pz-7)pk)qBb# z{iR*v!9cdP(@#Eg`2&ZUHfQz^PI5`rrURX4e56Mi8mJkSZdDxs36ZbM~e0jp# ze+zOUd8j&c`U>nt08a+ne%O6ZqSDu~vFXNj!v}vCI}s+|zY_b%_?518#vaDZLLRvN zLetLud&FUAqMh!!@Q(&UkZkj&lQ^SgDENevknnn8n7sdiPaVS;K9_QXm-q86^2-9B zHkaIh;@i_>pUje!Uhv~O!O@%a4Z4+B82*m4eSYnIO=hN!4TVr+amrFyxq7dgcrSl# zS?Vv1ZR80)suf#*@WB1oAdWr9WElA9`~BQ>$fZn{GNG24XlB_ss5FJH8O}52O=TJA zMRq47reVe*lZ^2X_xbDH?orOz(R%pMAx^;KC7+v#_Ga}XiGd#WVzF`7Ewe0pYFEjM zYNS`lp`YD+lbZT=X6*43w!UUES3i;!)@w74%7rOp{4>AAS4ENZl+jc8Sm2}tzGmJK zv+Mr!UG~!Hk7@vJ`RK{mI&{<|8%nA{9$_YO{%3n!IfDT@Yy48eDuLHBSwjWCaL-<9VfFPf7F7a*gRF3>TN;b~! zf*hej()^+PdJ0p*ZDKnpv^)=yMy%>suCDb1L8!tlReF z2XSApBQYbE5bUH=p*Go0c7Zu+v#=Z4VNuTqERdoE@J1I2sRG z9Ono5*f{hAsIV2sD3O?BA%`t}I-tVxDg@e<6YWgl{HiHT_tt3;D1`821@&1HMS zm4w9UiSkza{qQQryNm*zi*=MK;;`VYe{g(ns)s;loQFkZGCs9t^OQwwkMNSIlW->a zALw&YM&CAa39b2a!lg!X)xHEmVLv;cL|+N(g)|A&Jz52p=*gLqr;4nw4&R3Vlw+F1 zf8fOa4BwF=rZT8t+I>9+)+kApUoUSMvN@51wEHfDzo{p>*|k1Z!4Ea9-p~GM#M)5? zhvCeP)uJYlXyZ7>4TnY@V=&ke8_W@!;3tXSZ8}YoW1&n6osjgt7q7VLldI3G#iy;1 z6c%cZG6Ft{-lU`Ck``AQ7Ai6y{G*)|SOfYHsiZVjp~CFUsAi8pyt&p=TITE>i?qJO zTz-E}h9THJN1x)pvTSef{@J+Rjbslfq?n!fczg{l23Qt)>8McwzeA3ztazuQH{}$D z4j+wTkvqC}^TK`5jU41l6sJrtm(U)Y(niiZVc@~KYt5x2X2dIf;L(N$g$}sZTjzEp zhst&l5yohe3vsN)8W9O!sb@d0=34h?Rr>g$-!y~1J(zUvY9e<6|7w|UnP#!qL`yUU zPWAkppD_Ii_amX{R5d@uEp-9dXBDmTVsYX%pIMG0jxQl4@&UrmKA- z+Ed98i~7!G_#f!$FwQ?kowRY4A3|?xW|z&Hxx&&Qo12dJ+wPpi2)yA6A=_KMW}))$ zO!i{;Ig5vK7IImmU2Y&TEru$?^qePTKQ*DCBv`Dl6}*;U#D4RHF9&g!1r;Ii!*ojQ zsa}2d3*j-{y^^04%e~WeFnxJ#7S4H>oj7Y&+yv2uMYQ9=9xsNAF*v&{AU<{@#*|oE z8FsJ7S6)!Je=r^{+bs@#Bu8rxhjuwz_Nc7NQ2ybHQTVV@MJF*5sw0=G?5C8>IVn~q zQ0JZ%j7aLfBb((NzFopkL`(bdH_P@^S)Py+ToP+BzdQQSiL|?v7z0%wEoTAkZA5Qj z8)o&G!bgOeGW~?V*){|I|E%;v%J1#=J{+s#R0x|G`ScjAb7lyIxthx`dKwqh_()6> zZ)}Ioao@$7SmlIX@d~FRqIVUEenK%Yb~p z$&?B06j*B*Yzz!{kHfU4vMfLhhVEa{XHK-2gi^vHQ~~ik7#P99X|^>k%le5%!ksZk zw%*IK4Vv_w%?_;4I6EJEV_fH)4jUoVr>~Fl4}PV33U{Pv#;(P2kuxeG!?-GOY`(Q) zu1y}nl0)DABxZnn#Cq(}hLrX^f>BfJ=vM);D=XDqoCMFOofs^+9WgqxrEM`6wcvOG zlHD~HTdxoW@cW&msgEF@V<~Jo+&4Z2_Jb?+5ftmh9Y1seKLgmmm8)Z*W+KDr=&$#fEv!p*Xi!%iUQpvqkph_&2jY4j}}9;iV{J_@yt1G@!`H&RU)+BN=@_!plhv+G|Z2E$V@G8d*gl*75Nd08dq2is- zAtUQg6_40({}ZHGiK!2J>K@B|wb-5Wu0Qy>m~K^Ec{xW32T*BdJ`(}gx==nXi3@_R z)^3Lb?x{|&_;fN-9X7IJxrrpv0-nrZhfvykdTxw@CQD)hrl;)O_pq|jcf}u5%4-#z zl$U4*JRi7$RD8}-{-7y(@R^98Q`tq;Yx|@~&eun#ZLeS90vV;fo~42aMru7m%8Fvt3;`Ks{q~yKL&5N>NKx4`Llvonx51zR^03) zu_+;H^kzpz8yjBXn@2^|7Gd_eXzXXM_qZuq-(@A-GLA_C#VxjxT?aU)!ba>NF zu()mL`PD#bYgQ@SjZm4Ab~*3GSj!2A=h7) z6r5fM90j=PGP>&_!uhC2%b3S`Nfy%pPku^S@WBG+q?mDSHv11^c{!-;<$}cL-@Sxl zO6dNsNlju}icJXkaY2QLf9hPDs?ky=8P=4NlJm;l86Cg(^|S|ij89mNBzdmR_u0FY zjY#vwXn(AKTc0uievlFfjbpOxO?R3bZM>asC>p|n)GiG~MX>Fws;BlPiqL7H14%v6ZtC@&a|lMM}vhSn_@lmPYGjrEe>itI!7$sj!Eq*S3>Uw zEe|@%t#d}ZCMvGJ>i!3k47m|R=cmE_xZPo)^&PQ`Aq;sPI>A0-o1;JOD{pRQ5?*Ba zqvhJMPYGRStB=5Nn)%2GZ1n&D=MDIRQK$^qk)PQw`9cU7d<&N|2+9>AmE$HzCX}iy z*l9yYJRC3G8~3iZ)M_YcHA9c4DkWsn5MGzPP2jN`)S^3Viw!OC@c%&R7Ol=6zi+6Q zx4c3(_z|V<)&$%QSZj$BbM^Xr z&>{;7y2LxTs4?5CclM}#MmGOlX}s|O7ytO)vwF$bbwX7j=&k{JhN8|UCfIDCY!g@8 zw}I_y_tFsHJ+c}`;D;XYNQh(5IrZ-foFJERkt!$a<@1mxiD+u?!yeTXZDSIpO!6^F zVqbP!3l)X-CQyk)07dVpYNKg*4^#SGJ_ zD8XLr1F`vu)`hRA9L%MapGj z6KeVPwT9}?@j-}ineEZcq)DU-uj1sy`>8mzfS(jF=sJ=tDdCCXmL`!sN8AWPP8C?O zSyY8=nexW|RZOqAH`C?WIMbDTDEQj3WX;@$b?e_4vOenjNu>^47$iE&CcBdBczI+f zuWVO@N%9km-ZDBoAA4ijGv>HPPBwzf_5DZODWrM|Mp*m)me+6@rX$n`?tNaOVPJ># z$X-3tu#U+QRjoDFq@y?4vR3cM#kIl(*?WGeZsa07CV&CavnM(rm%M?4a!m?rCCTT3D=KIXzg1tydnwj86xL{@(g&q zlWm!}SwYz;%5HwmW2Sa*RN?l8lcbNZo=**!N|RpO9(86i}lJ`=i$UT(%wcMZEbntv|y%I`&sMj3-KyISr zl`Q_NLv9jclG>!jAy+V=6R)Cz0k|H${7d2~Pzsc5FeKRD_+VVEkT%^R|=$J?b7tH~tF(csI zQ21csaEj)&llwQ5gC-x2gZU)jo~;JhSFT0e&rUaq&d4y-aVpn)A~xRhjblR`#CLc9 z%t)=l07gnptRo$7*@=PauG4Qzl90;t3vYDfwncR_*lw6Ko{o4f7$}0G$tfbmrrm zN|MgmITD6lHUGPz>(CvVJHLONc0xOkclK>0x(;e|n7lL(dU>BIFoaFK+?ruE>)|9TF$1~60)$qB9 zRhgX#U1(i$D}JP2aOQJ07Z1sgXYiaG=~V#Cm~z^68=Ex z^D#xPu|SH^1Ca7r=LUxm?Wpj}e=AW*g4yMIYTJK|*9y2`5eH`_1aO_0Wnl;v+kNI7 z&o=Qz!<9TxbnVYoC{j>a01}N>l6rvXZ zdp$vE({yeuwTDXGD@rCvw29n#24^s@1AJ9-)IAuxd20)O_<4C@VsrH+Z#);7<5=gq zS^0Akei)`&IBAF&Ga@)6zNq|=Qk;{o8^ltS$cO|8r4A%%dli}W@{@Brlc#9uJC0*d z*zYeWj?-Kp&!s!#lQ?OQ;* zo3cB76>nd(zG1F$UfswUf33uK-42ZT5uG%1ZXRFGD(C0d{$_gZEK0s}SpGJAfHf-fQ4;d# z27eOJS4J-ITbiRtV0iz@aW#$5KDqq?p;-7s&L{Em;6=* z>n1$wVFvv+5-}n|JGS6HIMrX6>m$~emlwv%CaHTx$OCudC;>5nWu)RLiRm+T?XX>a&3G%#k_?i(fj76 zv~67OoAE=^Q)@CD?)P6UOE45I=em$qD};EgC{EgafDYZdd-DTB&-=FT%d4qk$EBYT znNEFg!xCJw6M)1-O&gYnY56t_x5TEKOM{N!koRS_wv`@Y=me}R%gq&>wLP7-(p6}D z9B0~FRKj|?8e`xq9|-~u+J50*dZ0ha7}wD;@ ze`scU zSTFD7cAeB?>{jsPklmj+%6TVsY~_AMJhh|YZkz4+-mkhg9bA;N%H_lPg|KPwpYPqL zPT{Gtl?ufS8H-WlyyH7hLUKk&rI3YBr8-{g-UGyA^gNeSLa$khAJgJHXJ0s$-$?Lx z*W6$H{E34C_lrhgfA5#4g7$!LSud+2X4f{>ZTjvlB=TW*B&WrrnXOc$$$CS9s$`*) znESYXl6rHE)ohY_t`ogsn0eDB-<3<-ND&o@gp_ndhZRp{Z6;8p^ z-4`%^YyL$0$F$Udf#IBNQ zQ>CUUM_}#gJD5kilEc{ckJb3)BS@oz?r(tZZcqV1H&qtx_%a=W5`gxji0}C%lbAg@ zLk3NA4H-GD3u+?c@T^Een4~`U3OJuU8Z$yJ6qwj)Y-`RpCXOYiaTFeG>3+=U_B5v| z;)L$^T^el)x+E4Nj_$h7==z?1B6>CxVl~5mf2*;yUn#gO)sSc2jR|eM37|rkCezo3` zTiZ<-5Ggxts}ZFyfK2WBnCHBd%S^0xY-TS^#Hz*>+DB6EBOVDtC9m|K&)BtvLo(B$3W?btuV=0%ZAPew_iVDUdkKk0>d<fkFBq?)taS`?UBob zDFh3D&8mIQ(7ZF92SlX31)-bB2>M{!|3JBj&qmn-W*X#JkOKYJYf16mAO>;fpDkp0 zIJd!Pa(9E=SAHQGcrobN+UOk%o_BW&u=)e7B+^)mX(j6t+I-sBZ7S%l1&`&NH~=@< zVDO_(EON|0k$Sz5QBn|Fa#L75;F&n<#G$5k$vZJ-9pQfIUUuqe$ZdjRx=P_Z>F~#w zgje~8l)81^;t)2h>bEoxl2GvBEh!V&&=U>v68+@b$u~OZ-&ZELVv$eMg%aEc&n`6tRo#t8(NAo{ zKmNoCFkm}2+Rcc(T(GGZ*~`mRdJz3VDOKePb2@qhk(=9sYZd-@Wb%6muoBGCQlG== zh#-jwbYuDp^KWW(P+;l0evj`zhYEjI4!OLee`5^vCT0$46?@LNc7Cvd$EO@O3)`*2 zd{aeLN>QwAWGAJ@Ztsr1VLBhfw2FnT?=G8*3qS4;rp(*0Zv2QR^i!Pq9=Sv(wcXn) zo*j51n9;ckCQI^hD2}zGa6-oe|2IlwHCEtEvKXvrxG&h>No|W2J zuJ~@sPxi1dJ(jw~-lL&wuu8A;W2rcJo6;5xcb%2&V}!S1(?x|JkZ_xc{4KkG#A&A8 z>Eak!*iuAycjo>0Is`;{SgQLAr=z90V>mP*Kd;dLXY$_^Ya~wObv*~hq2M7 zz{fQd5GfBlT&G#XZ4)bl5K21&oy)Ecl!L zO{c9)oHxd(Tfk{R{fbZFeoDngUTM4e&k;WKOE3f0g_dV1klacR69*SB$N7~&O*X96 zD?JIcl3xzRe|O=>ij7Yd4~5fNfAKwn7B_I^NazoR0S^fbo|%^t)xqB`7VjdXhV(q|&UyWe4*VfDDS=wyXKDW>{MJ*E?8E## z{$t8ms^ZpiQW!CPU9uHl%=Pb`6*00zoGrh{$Rd!%8!rNxH}L_8#}WU5R)c(8&tEbW zsgB*91H?Y5(-IbP5qYzXTt{m}WFL`vDePj@TGy2LZKx^h>#Fqkg;3;J72vk@^l0rr zP)g?Ii}jK>_@ZNv^Ec1R{3_wlc**yQ2!SbM5b!C=XdPO`WYTa!R{(4DyZsq%7_5N0 zSWY+zSKaRa#dl|FUFKHb+}-5vKh>fK#F%zGa5ZvC`5#DyWos?n1uFH3ke*}mnmgC? ziz*Jg;vc0=iT$ExL$bu@Y+oezEHjopxQ8D3&B3bXuC`?)v`!pN%I zoj-kJD)4`t{JCg%LAELfZlpH&ZPX`-FKR%wf`G}}fbZe|a4l4`mPy!}S$w`Sn)Ivm zVOHwo>f?xeWpoJu^Ga7at#4SFzxjNoQabn#M06AV2m0&26Mg&pv;hZqval$SxI^44 zd9`?&7jH!e@0fOydq(8#KXlx==J|{<$yr)jw|o}!7Zm3P@zLSMwp_`U1Pdtrt=P-o zWni!YlUmwG#2uEUYX}x4mMyPozTV*f1mowyFVsLtjL#Cc-HI?%O&&+QH1gQ6U&J^i z%dP4EmGCIDU_RAf8UnvQd?I>xB7sdBE4FGyfJw2M{*pEHaj#BFjX8+X@caJ`E2LGf zB3Aaxa_1s*9V!$1sE5|-NVw;8&iq8Rm2hS)EmoGSD*}E<%)(z*B0?4ZLSs_Sd-#OE zySi%f{dop&j^!`0szqFM_-Jl2pc``?2ti{e#tP$DhqW9uC3JlNdHd+I>B9b;Pl^Wp zHZnE;mb4snSP`9lyD3VQMy{=ELM0D7dP2>_LBtXP1wOR`?yAv=0N6Lb;h3ek=U~T} zw8Yqtm|aE0s5ndSvnX^FhUiq<^*?g#dZpbjy1J70r^uo?owf1mOW5?h( zFMp+Z{X}KCmnR?BD~C!N#fLqB(PAt<05|+ zdJn-qYlEeF?`%0Uro4lkZ6iQu|}dt@bnFx*CyqcM;WB|u($vJXjxl3u0c=KPuj zj5NUgZZszk*!5qu4Zd6yOU79x97_6qtU%#HdgoLKE9jhnRTF_T#6B4$w)Y$m+QZ2X zIBpyuHfWB}Qip8$sV{R~Y_KPCz9&^keNtK2G$=Kpj?K++$I?A|+`X zA$fF1;AR3YKesCGZz&4Zn#M>Lz}X;{Ohpv{W#et$V7+cb(8-_Ty?!Os-G1J=0}tt6 zA)j=RnTI|V3;g^v=?zw?k4)YlfZ%(O|#W*98JhBT;a)Lx}T)n zF#_BE{y-8Qt&?CfmBmO=hFH(1OkOhr%q4qWGf)mW_wuI7*y42scoOo#_1pH6%WkRP zO2~$!)6A&S?gf{|Xcwd3L72B)OAy(0BS~X&w6wG&x?`e3Nf&9y+rD}Kf$W4>77R%b z4nJb!F4xg|UXR!xk@TH#txl80pKyzRO^hZw&o4|H6MrZgYEe#HOO7$;Q`0E}@^#~X zN`~={XBxKwH0v~h;PWd3NpH)G7}m9ko_~AFR}5H=yS!_{y18>5`!*w z7I-}#VT#@OxOEyBc+lL^c*L3;JI9`E7;5%o7bblD^2;IPf1t#W--_b(qGi~n=b2oh z%GB3vJVdSjHNl7&#gTb>+E1*LG&>p}aBq?RHBu1kXrKWZopryP5p)~iv9Y0=k=FC1 zA(XJJT|<-(l!&YYae?D$Ts=rnL1k5Lxcp|lL3z+e4E!%Fv`-E;F>+xwMSQ=9(Yqh} z{f2DzwFvVL5BiE$GJn`3%+=hbL1Wt@SPEaKA~eq!UY7935aYbDxoeN_D3i?4Fc1su z0qe=5W@m$h3tds-AL<9*99sM66vPjG# z7bX>!7*#4mtadF6sa6q?l0fk4wOL7!Yy7IP@C^(||0z|-2H445|8I{V+gAvo^@WS9 zIe|>Eg`zFN6mI@3u~5j*&qn-Pi|a$$`FGUaZu9dE-t*R)K!?;QkEXfvn?GvySRI&b z1-o0JbcC(fTVXj`(T*M?z))x?p>?rM`T&w7$Jjx^9g68ZzBXg|utqG$6dEmB2?)D( zn)dNV=h56v>+skM|Km>6{4@Kb79E8$Nz$^|4>V?e0nugQ|1@2_{P42F(c35N+;n|T zUM%)oCZ!Xl5Hne? z%lkU=-7mXr*-dJc@6_#_!{Sxdl>FK5JF;Qrew}TLn#-F?F+ptATvlvg@mh1!6qQbj z2Hpe3TCn@u(60g=3kifH-Usz1W*SzQw;j5bhQY95pv3e~uFPpNlBF}M2pTZM%Crq- zJ%NQzHNGphaWh{Rey)&PS34kfT18C4SGrsSN{5U<4A-CZ7fMIO=_CbnDTq%o++rJ` zOvq*C<9mJ;2osicZkzu9E>;Ps-p)+PDrxnL!Lwb$!sSeT#J%i930Hbd^) z{yk$Ch_YU8TC#sDQfgA1u0u$e-H7{blZ1p#yZAbf0aQ94f$Y0;ehz#5!`Vhb)y^({ zR#}2!eW@9*X*-QPva>%jJk+dgYC(-Ybu}G~ov-VGz4(yhTUUGbB*a{*wxJM+IXz?3 zuV(l3v4By8Fdygf(w|Md?gyMNZ1g@E&yqJme!qQXAbGCb; zMKkb%r;#@|0lJ3tDgYaUa2HST`xvezQBfoOsIv(lWSTd9a8i2NlZ?*=ZW2w46FO@l z2W?ertm`UVv`_`wYp(Z(O`-!{4ljEUcPQBw!eQk(IChU@3(D*=Ybm?8Cgp~Gr`c~{ z7bI7pD*>kd#EatjnE4S^dae~jkwJ2OGq;bZpHT4nQgC=HV6i3(;qvw-uHVQiS9xsx zq})MmzB;l?<=O3C5}nmmCkB}CBW)`Fr1uwyLy-1aH(fs2WvREA#em(gCb9{er+e)4 zFTFk)J1E{)GGySP0(Q$_^co&-@~-~UWL@(>4AY{*%1hb6GwgyQvLMCeF3vx7I9E@2 z$19-3Xzz<%Ud1nxE5mwWz2GN_EA$JkF|YpKlZ7)QR0 zox#KJk3V9jM4QxGmY#kRT}DOv?wUgSyVpCU0E_!&>iB_?=F-2bheF51$c}Zzwia`a zB&y2HiTkAVur&>O-%o}?+;`X9NZ&r(UD|k3WJ!F_Y=j@?MwX&U>>Vv$IQTaqdm_uR z#V#y9X3+fe(?pEr1}K+0pEW9ZxH!Ra9Oc+joGo7BX(C*#q3#HaTQeu26_atA@X&;@Io#QfLrPGM(o!S;*Fn z=QMxUh@)k1zu}JBUr5N6#dR)+!i~i`CK4v;+&ae9>kV=QBgZ?J9V_8ZmL__{7MBIJ zs1oWV>@E5DRO-+PU3aq*q_no+@i(AkB3mL_I2*y>XQT_UFsZYrX+8#H2%%<)KCFLA zxNncha{Uq(RUD_I6{^U6l}u z9tMpx*}oXGs(f6Zm1Z-`g4A@IN333_`>p7=y!tC|(cqtBfa7&MVwjo#cVu({Pj>kS zWTko|5}<`rUcV+QtDRz9$pJsjRRyP9Qu%=E`jgrWN%1~M`JTJn%Q5Geq^xszNW+cM zYp(U1(!WiHptp;BN^x0#S@JW))ox;K*sMZ-7TV)s$m_6)sk@9;M*La*y_zEreVc-Y zn$SHGBP+J)N8eb#xX^r&u=ZaOdB7)QgZ zDV%AvbHeaDgYuE3dYph+2O)N+<;b*QrK=wU?^Lo7|`O^y%{3n>Cc;#-85$n4v4(k0Q-_|H}iu~%tG)cZ# zHiQ~t(2of0W8)4Y9)qlGb>b_M$gY{~M@I^Fk>$*bF>XSCK-(!B>wqIQkdP&HNq#n zO1*A2c?&QAHf;P@B{}WOJ}Qz-{(J~+LPHG3LjPE4TA$gj#L(if?#e`QTLw}6EWq<& zThMK}KJoZFqHSp~s`De=sfzK^CM!-TmxoOzZMW=}-uBqu+m|k{h>=g^Md5#-J_ceN zfqsgF!5WoS(Iyim=AVi0b6?Mx)CZahDcdS0JIT5L=RG|W>@8^O(>3nvT^{!G z%ktIQESxVvytPTUHC7p9kB-_IujbN?$&D=aF|pyk=b)`=AwBTcu&+nr zufC?)l`4Ju96eWMBVuBet%s4Tx%y6Q{z%a(VY?LO47xR(q-{nFFl|3sQe~*&PEq0f z>VIi)`)#|*a-I27#H#xYh|b7#yj_pE?*=gNa8T90GVVt2{s`~ok=`2|+O~(>3H4fb z<+H?6Lz8srx*1q9V=+P5^MpKr#g9$55dostC?;1PYUN*(= zhF+FyH=>@q-R%~Rlo;{V?)ObvbT9Se^1IAk1sSo(=>{*NIAa?Pblj26&A%12y8sc< zGnEz22HJS`H;v0sd2Pot@Oj{+&HH9`-F}(|6TTjbG=k_ z_23)QuiaD*@~dKH0?q48U7Zej4j_B9DlHESjj~zOIanjbDZ*Ti@gd0QT=clY_-b<| zJ>z9mZ98aB{vxQtMJxOLj4krRTS4|S#UNUWApeyVd4Dz@Y|?1s%RySO{qmJ8o}vF) zfVg1r+m{_+CtByKQhL{;R|y4;crTKuo!n3hDP2R(xc1kBg1=ZA9r|dIw09tmJ}c{M zMk~jqC79zk^0Z8-unBL@8y3MXQQa8%cn%(zF5S@W6%6qNRC?Y&<*A)(b+5aHohXDS zTuMg_(+F{^7MRfZ|HIK)hBf`Z?|(RCfRuzX7&#h)W}^}5?hyFUB_P{q#1R5A$7lo` z1Ef18RX}2+k(5%T8%YJx?|;AllReyV?7i*2?(4eF^L27iSfpnr-bdR%i3btX56tc` zNQq@3rKqpWGf8l&8lAx@fuKV%sM%f8uTnS9ZO*eM#_I?N5#~6xkC}w1gUY~P~t=OiF za`Z-fxvkt5*UlG1G=Y=H4qyA!%{k<5#bdG_pkm0!`cVN0o)nLXUW((HrF;6dF|-;zWk6F*fQ-E% z3vhrOWydbFGGonGxH6R>%U)Jds?RNEDa$Y%Wj`rPB$M591lb72DXsTGzKIGq(@ON zSU$##_sv?%r@tyl%zNFU12(@N_1S*YA)_MP`jk9-MX2BNQ|^nBDK2_WY+T2??$`&p ziVsg+kL%xp2^tP9=y#sXT}_Ptq2pjE@eE=+%tKd@{~^0;EkE2zgXR5f-wCcBv~&+DL%4J9Nn#G)C!u>AmMe8{ zINIONDZ_oEk&3*L@8ILdS?mR3!9Rv;|IlrLf%;j>X=n8Ko?~EV@BJR0PAkAmKE}4SQmqJ6>Q3oo zsSJ16-mVUn>!ahtmy);OEA?l;y05#$CR&#H!L*{i?yr;>B2hb|&P?*pW8n~n6-)Hj zT7I4Sf&yVNb>W}N$-uK(yXhx(x8wQ-q^4&AT`;dRzY_V{Wu|;ycyY+-QVct}5onZf zc$dt@z;|i`1`LH!9;B6DYh(zEu6!1zEWnYyJU|^rh7GJ+=X)fFD<#|B_M!1=_`!=) zXFr*r3jme6^&Bc#D`{tqyp@aY+2R#GtHtwVx_zbd@1%k8y`5N(47;e#dqh!ouc6s% zWCf7^Bgq<#r*RAbdKQeS<~_BdsUk$uPQGrM>soP$znhwfjSDpUeSg}##O3$bT{&zF z1LzaQu9!{hINdO$VgEiphRO&L6*0**F<@rt)Qg0jUtH93mv!ll<#n*n=|e>azGMvt zQvNwTt8MK*J&0DF!hU&hD*MhmS(*<{8xp4y_0I*}KJTil>#5G?g0%SuUb{Yi;z)N= z@P4MIc7Za>^#&2rdY>^{L!Ki2{?63#oc{vAAi*&m=VqVT?ERloW}+Tg?G zk=;vR`3gR$X7;1u!`}U)pweXr{qmZL_;2d`=;&5_`L^_cxNsk1$+9~AMvOLO?w+Gp zn2->JNzqR@|Fm}_xM4V{3OsNZ8C4!B?Q}DOik>X4f zG_n9O&W)dx?Q8U9)){S(6EfC3yFz-C#;NSU)Za=tA#S%xR~Dx4l%jNbu};_hC=wW$ zY))LWD=RJaA6-yj45ND)@Ik~h8W+ox=cpg%rt>Za__1gy1hx*)g)U-eBW{`$+O%lH z?Oy=r_N;ykW-SpFrExaYgI}r8lF{hgtt!s_r}1gn+&BL{g3FI>GXWmO4M^sn5}N@=Ud#@Gr5WvV>=Gw#wXT^)5J;9UAB&0GNMFgW-Csax4P`+4k8=Z@MBU5Y65fabls zkDc9kem>MYEHl+dk*f4e{O+&@AML4gFN=lF{8t7qqx2&>_bi~sU_^4J({@XOyj+WT zbqx>TXBdBtwwUgB`fZ=8hcY8+k$=5D#;+FtCm~bQz}mzet)*KzCA8(y4Z#0|k#qhY zIttOZ$BL5NVfa%$Ddq!rDH*A7N-9^aJBAazbz9wQ?>Xc4rg)XNKCLIL=H%7li?)Db?8{Z2Po=tS} za{KyqKa}^UmN)WFNzH8EMb@#>ec>a)lkdM`orz)rsKpe-<@9X_kZ6t#nrkV3iydNa zX+-_4=Lu)aum6*?Zo3W=LFGJl8-%;T;cd@HiCJ<(rfU&-{E9KEX@j~ zAGb{~K+YNl;byeI%B^#UVGKvdB%^q||NXaxY2rM2vBxr~jIvK`)7O|!i|5bVXlFK* z&3GpoK+;kNkiI}2?t_z+!#<_XCz~aJQu5F8cR5AQ^{KeX zs;|A)o0#^KuOkne%2!ise_$wuHz-q-$E2_0)V}2FrG4A*fc#wc@n-G3BamjKtNgUx zc0cS5BG}{kD;)t(OtsC+`SjRn%S&s>jOXiMqi}}5yKcBwIxo4=(y6$N^8lE@)hc-^ z>J8#j<1e0^6S@~1zaMV$AAiyKhMG$|aY|HgoTl`nrXi)0B*%WKX4gc+EFL&8T={UsEo1dFHN~_tIz;m8j^~B39Z}+5nj) zGmMiGN2n~jFd&?~PuF-{Fpcq%G`p{uBV}sD+GAYNo(@AN5tW#zStnU2vE11g74A5J zEOkiyWBQjaZA%|cam#I`Y+toLM?f%l%D%jk7dwD%D6MSOP>Rz%P%By(xar5N;i4>y0+RYXnBqxmG(Y77YnH$_+Mt(+XJG58aMpE7U-wA zx@bsru%C;?zOr^b@4xph;CEKbkR%qWOIIronDF5i7l7;U)3KU_-DFpq<;vBBa&aF`*OE4)U z;klev$W?$gRol#zvTgaO*Z%8azCCD_^p(F=SuqMhzB$@` znJ%{V5VA};uv#dWVCCu19gs}7ZBP^nJ~UZk{z$Y(i=FX3@bZ1W$)Dd;K6B``KtcU* zOZou-TQKnC_!n8%d!?hNBlLJZZ~%TzT(dP>eiuehBcy{YeAO+UhOVg5c|h4Ri>?wr zY-J9K=OT5FA@5f7BdlLLo+|rxR6ipTz6Z=^+2p(({_p-YwlQ`IwI3?`NEeWpLjmQj zS7MglRj}-8YSif+X1L{S%SgHTn)G4EBXg$s{=ghe_0`dD3-dICy*~4dmHC(IpiEj+ z4E$g7I^0Z)=6?XCf2@0P;&8zL9rXCxfgv>&m`Ep8fWkx2N#PA4I+r>9rC$X6`y&Fk zFpajh*_Cl%7~qV}u%3afH3GYeuRFDBX@6OS90E}AeO8D;8vo}HvP)WjD0fo8y;@={ zOuu=VAQJ4$>)h$7tmOlYjCwJNw_z0RGlA(P$H+ zze8$}{0gNjItzXN1B0e4f%V%1imvAsjuLyBykut|a|dfBvZba-%qccTEBx4MB_=4k z&J0XPy+{|eMyCx)M*l2VYN1ajqYzn(#Pf=ydg-L+t_eN@gwNQb>9+@FA568jBnOPB zO&FD%=HBy<^7oNf<$P$~15n$}?^BZ%H!9K=LE7kkb7KWv`=34((YS0fJ!U(4?Aep7 z`!&pm7O!;w49WxB;%E^>fwS@$8jr6d{GZcCg~E7Q7Q38@zb9c{QP!jtW|bo7S---q ztQcnjCx0{AEN;TP!v4c(UGG3S&IIf)l>*Gyn=~RJAj+8PPM!3!>^taA_L`lUrzqOy zwfm+O_nZPNHyFZJtBDF-LpoG>_h9z;2q(;Tu+R2}AyLa52Nps=Ogl-)N9BXvVAT=< z|1Zqy1K#`DN?1&?*SK)B+2~cl_v$tUOnvMNA?Iig zGAR&8u@E+fGSpqPKzoXXZ#$f{gS=Gj?$9qG_6Ey~I?}~x;}5#mXGjkpy`gB47JWoL z&i1b9>-aZg2TTofC6*y<{ETO7wlK6+6!g*ifLV&q38bdGLK`3WlKQ&TMUVbZyo&$t zi=D?s6Nq%5P0@s5UneH=O1XiqU6Iks3CI$ijGo#te>H5tiWXW8UEDKW;y)O=A$JaZ zAJ&H9_$K@@YT)Galxxd%VF;TqlR8m&p=q5;)YewdZzTrlGpq}2*-@wY`?X_jp-O*K z_MOycO6vaS-P!kuc$V)a?%KJG=Ju{}mZ6P0C1RmUXM5k?*VHP_ED$%(t8c{==NRFJ6Ik7zy12cene%N&Ok2bS|crhtUt&Cv(in2wOf*;l`Z@f zayWr~t+0$qGUdfHJ%6fOZf5;U1gRQN7CXP6xAEgW z;Y44W!yJ|WirRP~=Q(}pO>c5@6bnTFB^AiX%NN3p?O+$voqY6JXdA zs4S-A`+9@eRd-ea%wnfmY~>kBUmv?0y}Oi)+~SS0NggVxiiJMQcH)lBeR|!O=}?6~ z;JRrjv}FQL7(9t1`liqA`Y7jEt0bIOyTxZOtvKZ^T~yR8n+1hYxPeKabdz)btdw!D|$>wzJ z{y~BxuujRJ%f(WCAYCMzI0|%!JQ#Kz{wKm}jx-YE>&$XHUt>42W7eS6O#0GjYoD~` z>jg70Rz%@hqAm6Q@Js5dhBa6UwPsOmMTofFL=mSx+C26WN)vq<@spj+pAkIH^_$JK zER6km0cE#6oga9uY__=dHJObRCfAsHva*r5cKz3@inGSRYf#H7u>>u!HEfV3wHU7@ z_hLxJW*KfUDPh8xbRA+_7=WZIi4pt8!cPn)lx`I$C@GYLCr{5P7qu)HOI#_z$ z*;>xNGj&oOqNNc}2|vVILO?)HqBDX!d-F z!!3+Ec-f+O8U9m_AX`0tTQwh>WMQ}J-dMe>osC7J2=MdG)M06VWuGuUum7G#w*`Sg zm*)1*mqgT~(*F@a=sB}F*JM9ZsL7C4B(?H3MezEa?*uJa*@4JBD3!!ZW_sa&0xH+J zh%r$rA$PhL2jHZ=1MC!Cb%WG_qYYDllq4bH`0q`4Fq8U^PRKEqTauhUGgq7%N`f$k z4+K!|4=Wnh3>9}v{X_?^#Hf6j`62|)OaQFaB5dPyk|WUKN4yOVQ8zx~Uc3(;TG&04 z)a1;PT4%vVe~p+8s2e_(obJ^tYQF7?td?d5NnuqUWW><}XUp!4;h zZPeP(LK3t@58#_g89lDI|JqGM!&MZANf>&=+swUEAjmk6;D*^)Y+(8cl^priiBS}+p4q;z9+o_F0?2D zD|vgO2erDA{39MQ=ygW(LsBYlNEdKj2D?x>*QBfYnEldX+h&PVW}2v;yb|U;f0#nyq$quiq=C{O%fx{7jx(hh@=$-z%EDpdr8#06 z8@p#TW_S~~Oq6g^dD+W6dREymfL z5AK0F$vczPMeCN3mFc1DEAz)=^7jvmHk8(6Mi(;zV1K=Vw+#lmEpXE@#d~D*9>(i| zh|<)lY4j*8(mOGkb$<$E7f`AX5#1GiS8PY^I&Cp*T4$H3DdfucInS_!O=J}Bv~f&a zGhAT5jpeZmu&)Q)h-3_Z)Ex(iOqF*^9LHrUI?g^RPVlV!@2B0k_X9eG#&7*M3l{d%%-T>?ozV^!l z7mo`>z{-*b=>_k^(WHJ4k5))r3*_ujbeC4_h>q>j{+JBQy;d(T5+&&Ns|sef8ZHM& znon~Ge*PfXD&o!;9EI%O5>{Dy;gY-5-aQuC^*Q>N`hMh&%?+~3@BilRn0uPNoLV|O zCf+yb3p^1@E8MCqk4W1Al7u`dZ_rS0>=?ynLoP)Vr8fj!;gsLoS*z&zE&Ia?-Qf=A z?f!|9)JSTlCd2YRXnC;vua7hzw$WL@{wHDw&lLV^{IoVq<<;!i0#5VWZlwjw-%VQS zLu0lVB=IM(C4&S?x+sb*cy+&cYu!h$uj&G%KW<5P!ApllutB2zg=%)K&+xKr?~bXh z{TKZJXuAhG8AXwK^M#9=vf|AifxkCh|LePb(w#6qM8kgdSKLsSJ=oLNjb%FZ;J4ZE zv!^Kj0Xyg9T!ROzfHBxw{!|G<%f7KwIc&<(dqFYVH0LjkL=F$>=$7dD#Q2 zoVmp0_pkLEUQ&Q4nIfi0i)md_TN^Htx&r=X2!Pv))48kwLTR-75|bsEO_zMU=Qtwf zV1Fsv-#?!Pyw`~dq(k6=xFuR^+J>m4G_;mI8xZvM{OG{sagX49PY-WOsH$EAFXc~3 zVvYZtjFD#%7?SUvL6YbLsIA1}gJdiG5cjH^>|1kbgtNXO$vd5K^o#dtz2XC))*piv z(6&Et<9oF~PNfvC+W}|rBS#~l*Z$k*0qo;02lrne+gBs2i{;jVUS@Zxigf->qlFfu zNVg~j+#3S`=WytG`M=qPSZ$s(4YrdgW5@3`8W;ZqJTT`z7GIAQ!?lmsDet{b(=RP+ zKhKp;TK_u{%Dv3V9QF3MqSjL2pfZ9W62GDXtl(bpC}pXcDXRS3=hu5v^&s-ddD;@r zcV|WSwjhHRQkvY@?OpFRF**>n(4jWh0xAj-ccZMqAeA%rL3;#I_ATp6c{=Tn|6#WC z&++Ns+w06&%#^}Dn|}3vB)vGB$v_Q_wX&tKkL@XU?|B|~Yahghv=)+TH?!!0b<_E5 zVBd~C8GDX*Vo(TXbC_sMp+b!Q*OF(Ub3@5so0i^4_ z8b?|8?*hMw>qtaJhPEBp0RJb=}AA^+deZM z8IrD8yRh=7JhGi}B8vNBjtv1g;+spo{6_ZWvty?minw>Z{FOk;aR z>6GvP!OE4K;^HZG(n+0-W=WF>59Ye$f7j9`Nn*c^JKy_pd^_hf6c5=^l=bj#d_E7| z>wmnq@vBO)D3fi~Wk~H$FImLVRinY5mXJxIT`!zJ+fiIw8!+&z>6UnNa|X#WFXhF) z=LY?*=Ho{BoGt;mNFPy!*uimgjHb`#hHgt>M_PdC_UrA#PWCJS8Y`+om~nm*x}>Ar zaccY7`YUTg_d4BKS#h@P2LY7P-G_rrh)nK2OWmUNA7ptG@!|7RA7ph+e;6TQ>d+c`B|m&ehKVFQ@2%?U}`9*0_r2y!S*D zuSWkf6cyBgmY1@OA?)aHVIEOQYk7~JQgmP6G`pcvCbN%$k>_@&Ru}=tcO|y$+(xK5 z*&75O%bu0oW={dzg+@AT_?oPp&BuzB3?-DgyBqhphj$ygNj57^*2N2xzGM07x?F+( z@U>(MCmjRDy7?FlY-gde3hDD1f2@wrOo)v(1E!jCAn}$=6W38N){B> zFy6qzJqNUvO0?uFPEd4o&qdi0rJq=rJxU8cZsv9CWUH$L=)dab2Nf31FE1Hmsr!Lz zru3wf2Y^Ngi5q)5MFB)`g_F=fYT}B>&>?tiG6EU7y|bey@nKCEg2GxfQw)-a-!-bV zeRp=Irl)K~o>vHjry9Aih5qPzb$e>ZWFi~GiVog0yG_tS7}Cl~E@Pd3DohRYCCOFY zfO(9eep`i1X94{cWA_#^wO*K#?VJk!8m_GqCdyZv(KZr5I!T_m2l@}bpBVB9L@}zH zt4k53WTNM-Qz{pAmD>+&$DP<~T9lwVCB!j#C!XUY)4aw{5=?X}4F_|SYq?T@0g&(+ zy4Xdp-hSnx)|S6koLD~)QpoVOJ^^+RyB)e?W>>*nHDc{TKNZEHv|aerd8b_0Bg5wokT`#rx{EPvgEys+U5@Y?(G{#dI&Ms-o1W0Ns~Ip8V{jfY6WHnalMwuHvTkyn|jpoQzEp*$*l($pAhFpv5g{(J9^l6F_F4lkQ@+_46d924k8#gv>)OU4keNanRuToF= z(K;Yk>6!9ThkXq~P z8|VK-DD?L=k2Fe?cVA~vm`l0xBvrsUA$)8bL5Qpz{m_G~nK;eYyYSYP-ty7bf9K81 z&nLF#tjJ*FhIc#0uMyrmWV9LtsAL8d_-jLFb2e6{0@Kk;aWZNbNWUOK6-zpGGBkfc zRkb&_(g`tMR^k(#dC~(Dh8^T4rLqRH*ZO35%JckWv^O#!jsbAz(Q@g`@*7Cz=69VEcKJbCQ-77dy`a4Ay+t+b- znr5b+g`s`9Y*5CfuS!#2d%R_;3QKJi6@YktlC;b?fY&&@I*uLm-?hejHjulGC*U_# zh!`og^P26s^%-(t#ie11v5SbCNRQ6vE?yqJT%CcX3izI7NlWGvsk;m?#ps=d;&_jw zM?=(HRiAJ|(vw?pnC_W^!!MjNZ=W~nn&<*mKBCbn*A;xrTa*r?(10S2XXBb4Rd>k z5xEu{BFeOVCMAhhxgvIk8#=5VnZAK4GlfES68YUUypia?j~WjP|0oUD(_`ByAv43a zeXm&YsgobCmEB=QKN>Ow^@N>Fea|K~Gn zD)n+|!U)Jz&F%?UD?hJbSpLpOmOlKlU-3L2RbyZ@pDNK|&l)^3$tuxltQqGazusQ5 z^!uvpy?)bhaV{9qgkJ-Xm%`6$SgYL!k-Bmu2DLFUY>wlHwdhomIGD)# zcGptYkE-Z!Vo>^(WdTG}qGBKbv4 z{Qq$QE`u%{ps7O?@lXwHfMWkxL>i&GOL!lsd_<|a6t7k6^z&h)+86WDB@%0s8G(D# zX0;h#3Q#P zNU~3e!B3ECCZKkS8FghQd8i7RnCV8Q;v`T5)MWz<=#%FSykfl|+;ZsI-fs&vY!Gph zApd|yfQe$Otyb@KfluB<-$@VcJ{cisOOATVM;-J(W-oG5g%+BdkzSa<0W0;w6VW5@HxR?LxrmMr(PA*%14XIrs^bE`vfi7(GEIw?13Or*lsR7x9O;sZS` z-8rgql(7vlAAP*^29DbjOKwL^7BQ&&IvKc$er$9D>k3|HFudPE?ce6K!Z{cMi zT^}>3G*VnmCdM@5mkTHnxO+H@c)k+>9pUA99rQrgh>_X|VA! zvUAe0=#RAFt*VA4^^Feysn-<${h--A5fTeb3;un%I^K} zIn_4bL|7SiLkEClXhmOkCf{><&5!6i%{xwXhBA3EoO0=PIaf$#z&Lk%GdW zBI^^^6?+X-w$0P?<_7?KKD#A{Zj1FBz0bO>AX||*;e?I=E|bZKTYkVN*Lh8GB{pVM}EqgG5S8c z!NA@_=q6<_=vXPj!Y&|f)z!DngSUQ|V#4jb?kVGwJUi`v57^y=@^-cj zvG2{zU5i?6#2a8kxD}8J=s3yX3~%;=1ua&Bp=60vMiS=73(Etd-Abk+_rB!AH&zbQ z&wE5uY21?ZxaAqMonKW-vVhl_v|v?U`5nQwYF?L@ZFI1mT`i-?IO~)c%nz#X7m<-< zuiUuLcY4!ajRdLU(#tPpV5y{!>_OvfoVD6@<>ilSAO|^FuJ|`*I?wt}t?F&=n!&*9 zxGeU^k7cy7adLz}OeXsRk9w}m ziVmE-OLId@ll+i-_KgnwHKBSY=nT!tp5PVVTv-)~tqM99`rIN|tIwD61 zxA5XEVe_EVc}jmQ1QkRbGW#1x}l z@cvqQv^r##6m79uY)%Gt?)95JZdOt6+&m1Q*7R|Qmv&g%=%%2I=|?$rm4d;gPFp3M zciX+6D0@M<#5z=9o)-T~`Ds*@<@K(@X3G^?Qo*W`|P*Es~(Soa{5EQ)&}u=l$6E zO+&j1^N3oY+Oq>p!nr}JX{wl1x-{B9*xcdtRqo=-L`P^k&CpYQ3mZrpEs zUdD+U|DhMgjy^C(K2qKwa@HeoU2$Uex(uhBnWs=PyEE{d$H2ms95PT?cGsjV#whfR z*tKJ0k&I0DUcTLt5{c$+{+`WT1P7*wtsmQqV&-3W9MCgwLFvbbaf+5wWtA1Yv5O_B zR%FWrNF(~hvw}^w8ONoTJ`Aacjl=#0+4H)_!CleaWmT|6PU&c{D&Ifm@Z-f2S5wyJ znL9;U8q%4DC$Po#F+}>PVL)7sYf1*CyNy;);=Zbi*sZX~1`LR{AKl%s3*`!@K5K4N zl`g{t!>ew01VNen{>hLB=M2WrgDMN8T4+8eKabYVrS(-z-0K&IN&cW2Q1QLmYWMESG<&56RksMEaPs;%-Rv4E*TCVmb^5 ztlC?EHM|{uK^p#N50H9(grWir9 z>B^lG3C=d_XXS%u;~(`0XrN^V=8rn5M8SO4_oMNQ<~vpx4YUSdAIx7%YsUMZaNdvpMH3Pt{RME5bh-lYCyM6m zPQh0uGQuFB@Hf2n@I>P$@P`m0V zOODFm&w<=Ac{p!|qYN~|%XQ#nB7e$;a?~IZ$mKos{Q(m79fRGdXFrEsg|C=L0r4C? zg);gnoY;eL)}s%M;VvYk^j9a~s7{_5`Lml~=Xr#uSgZTWA#3&jm;HvYZvaG!VrlU# zq_grg%Kow57;^tTjyO0kUp&O~*hlXenT0yS;1IggzcBK}4_?>};!Q!MM%&l$cf?5Z z-DK!(jZq94i{MtYNW1BmCiBT{@=n;T6ZM0!uyHa?e9k2LBc+SPXc|&FP4YTk+Hhx!m;CRvNt4YX*YBZLFZLp zj5%~(Qc9DR1B^YqLA4yMTGOodoow#bZ-pFE+c>o;-O6`}FJg}?BLc$K7Mjm#!bB`@ z@lmo5Wx~lwd(#&*m$BT%e|}XJ34O6#8@jznCmQ`1e-? zF|OxN;ja)}g@0I)7JkQ1$c76WB}LIz=yEFpabA)B>CaFtBjJJ!%5;MBJoCBgY(z=1gq&tlfg zo~L&yHiDj~X}(SV>hS+$WuKmqzB9(=**GwF|9c+xPXhj{RF?@Z;Hg}Zt~J|~kfdX9 zgL+I=p{3Z6JqW-IxBJG%WVMqfN}d~l~deD+Gm<;^d>zS@z4v87+! z2`%0Nf0z4gp$rVl#7j2N8zrwd%vJlritarNTS_ZuvVwcs0=iNiv4aZ=vC}Jo!2HS5 zgiceLU=PWQY+E5+A$8KqKTC>~DyNm(mzGr#3C0gX-!i~KfYY-hOF_Zxh5@5+I_o-- zCA~`y>415%xn1HOwaWWsrHui}Z)7so2v?m+Hmg8BDyA6)B%E%a}5qFj9LS<3Ui4S(Q!1AdgKojrIWs{sbm7l8FvQn zWuxyHd3TGxY7bg&qt7Fqm)<_o#dD0z_Ep8^_2FRMqqpv*Qr+$>J^$KclQa~;W7=JQ zdRF36l4znf4wy}yzJv9KeCdQyPN2Jgv9HGBilQPIW*RjFH)!l*V`J1w6-d3L<=x7y z$r3HHT)r=n&mkbvN6EEI*@s9OSU&HwFUT(u*;a8EN*P13jhMS$E#hU!_?HdgDUp#g zN*XnswzQCSk>k3oF_%mO;?00Dp&%$^id1^0M4`d#YLT15eN&sD%KdQ%jV#1XA{Lds z?K!x&sn>Yoti{yEU^`Y6q|$m4>_~&Ula0uoDW*bwQJNY}PRo0d5i1rx@j5&!npC{) z0~=)DEM1w&k#*MaB%kt_XZ(2ho;ozE*xthCtb*xOomto}$46k@qQFcd<$TYWwOe#G zH60?VDPtaICx~|htf2qJCw;ePz@HWKgb3jOiiQCTuAi1)F}u4!C4Z_b9UJgtv*5em zK25K}cL<@f0=^OylPSq3-ixiO29cuF;JxTQ0~hY7)Hz%;d9j1qrcg4I)1hR@c!exL z^=pVNFhFayw+!H0^%b;v#nCAWxnAIbP_A7QA?b4N=1uq|IsvFGo%>(MdNlEmW5zY3 zUI-OwE(R%W>`+!gJShfE5-KHkO!~f34@=NWMbh+(aR1&Sc>f4cuE^Ol`*OFPkG+Sa zYBa;SrF159&REVBq;}M4M7>|vC%m>tKZHu(D z)F3wyM;e*v0RZnYsjU8Taf7>!H91SukwF19+2j=hWp22sJFXmYMPV-9$3LD?tqWhq zUl3dW+cJ6g;}p-NFtO&7+5?KxL|K+PoKLj3*WS+|CExA~u4D*>4>SH3UMBPKHnt;a zOrC7g+^}|Lax-f9@X7AQ2@^UY7XNE~?PSmLL6#NznSz>Sv9Or2i2Azg`+%u*vxa#y z(H{Mfzvy1-Uh#Z8r*1e={c38phchB@Gu}Q3Vjcb~wKqbM{&v=*A#F<0EquQEw_?gD z{ync8eYW6|WxRz{JQxJ~D@pJfX{AAaVSSHV(q?)D z9b-r1wv@+w1ayT{oz-lwLr{g`zJ7{^(i@4SLhCZ$F7pqd$6`R6hK2`m9v-b5tqy<*Qclc(R`Gw~an}d5VL|2RBcm_G@IcbdY&4%S z1I^$8?sKBws^!|$`a<% zEmxb(&Em_b)A-GB?$(-30m>~%@TO#DbY#?P;ADkyiN9lpmvNWdGAX252)%Z7#fdw* z8`(*>qp;*=MXdM>4WLGta>6Vx2Twz9cCQ*L86%g*$$lvP{kS-l_74hesOIolWSAvN zJZo0r*ViV_e7pKa<^oSxrA{9=OjfK7z=VA2rSm!99{m2gJtDlNdINiZGvzN%cJRBtRvD36!3r+`135;Cy(gEWw-u;;_h*7HS z8r=B5Thfm(tC1`rZB0s+;%YmyIcgzR0l&dU8imPSk z@=N5|;9znr*GCBhpK~B4hZ?X|=kqeCEH>JZRmIqx!F*Ju zTBBOltPiQmpPBWnBXmSrry2}KLN_yjxtgoRrn%JNEZPgDHwsNL*&NzR3FK`k*{gy5 z`ooAdwnn7tvGi*JKNwfISxB*2aCCY<*T45OuG@oa8XHYF1(8(7YTn;oGEpBYOvyt; zd7T0nB#ppmXl}aD<4`5sSsDOqu5fKO1VN{ocg+nJ^}Y*v)Io{ z85ktZM6P#javu7k#p1|Gf4O+Zw5q1(>)6F^c1fW0dg^`TbY^{YuLF(XJ78JtvxFf~(PeYKj>DPZ+WtPcb4icFV8AI>|o_>%-i z!gjDu5tur=i( z#;8G+{vdu^mJ>u9x?tm@xVDQryNv0X@w7fu0{8PqJ67}cAm;&kZ-sb>E0<4o{g1{E z4}E7yVXcl*!*e?h88gjrpU(LrxuC@TnBBoS0dO5hJBJI{;;PCmTwE#~u%ed65Pf zPb#ltM2}msz`TMKIUy% z(dStrB?l$4GS(=9Wfo|;((wdx`UHr-sBESD|1NZq-tX-0vMzsE%`i(HwEXyAVS>B~%ng6A zszr{?8tmT5mHVj;M%Q-ct0Oww_sj-fm=n%v{w$MqGUi{B*?Af5)Fw8E=_p2JRh+a- zbV-Aho@GN378>!uhC&*eXu?fC9??yFckICL&^j>o_XHWK&OiYhXX7VGUQSWC!zpn~ z9I0V@)01vGnQA8|Pw;E(l_URGoKWdU3)TMvFtRx`;h8|wR=(M^Rh#$HTSgzMyyYc? zPm1#C3_JzD%ldp%HIOMH-}%wsLsbQKPf7@cTrR_BP1!f$ylF7>At0r zkD>kC-JcGQkKUNAezA!E?0FBq^+^h0%Y0MU)?$Oqy-`||bzZyu=(tA?DB^K*;J?(k zwYK%Og(7_OWRAVi3DpV)k@}qs)Ej88|F_@#b&kz+{Qq%uF8)mS|NnQMT+XJ@oP|vX zhtY_Umx z!F|P>-t<@(LYE2&Z_i*d#JeByk(MqSWJIeqXsK_H-ylfbLTNJm`~JNr{<}K(^sFD( z5unRC-G8NXLTApiwJ?L5Tt>`2r=Oq0uerYr-p6)$4BdPyxvX;)J`bjwJ!s;9ko{D| zfsrRF-+N`&Q!9cC0c25TK3gyOg7_Gwe4kCq*SKAN+5gnda_BP4G`(%l{&}SGW_lpU zc`js1oD}Jzo_-bf{aVpuNzyXwtH*O-1nA3(#ML3AoP2_Xha}sJYF1wcpS*Jl0OwKu z*qTt^8#(Omo@+gJ*7BD2P1UK(eQ%m7%I=M9rZY=lynFPG+B{$zWLv>#oglA#lQjy@ z|BgrJz~3LOnjzG*7Crjs&wCxQLD7SdsH)#dojT1KSoP-}WLbFP4MziedwH$B@3Wcl z?4*1Uq+(CbziJDLWS!#K#E=5-7Gw}%}>H51m*!?%R z7SnU$^|f|&z#g*l}#D+2korpRA;+?ZW^F+R_o$i$Elr1P-#PHqSS$15q<}T zRRK5E<>4z_Ms&Wr?f&q;$poq(A_hTA;^EfWD;$PCB+5$bKI){`utJ%-%+$JM zM^KXdYok*Dc*tEq&mm>zVZbFqN9~MKzgc*ZO{ygY{B1>e)z_X$^pj>1*aj?B%Mi)u|appEf@Z?`s4oBbQyM6N+Yj>cWNXyUt3}(b0scq z8QC_~vp;87T5(^xn*Wz!s^f<+pJ%OH+4rZh`-JI_3AJ4{_bT?gHe|&?BZuFu-N%)? zRWV$ndgwZ|4{mWd?-vqna4Kt3%&17-Xi8R(dhu5U-{An-JpSR|fQ-gF?Qh+9Q+s>b;{MEYU7uj{vMv|9 zwk+a?k*g~LGn)d0*l+S+z*Ps@_YGfF?moUS4`7!04;r*?H(udK+q#HupS$G=Ex=wf zwukO&Xt7aGLyoLSj(c<+PyBFVD5_jxMmlP{& zp`)SSOKg6ySHj~9>{EtOos(yPy!OpIJ8YbM)mNI29FFH|&%tccwRa!o5I~;smVI>t zjg}{y4j50ayH&yK&Wfh~Sq$@yPPwoZz65=IGhDrG&ULrHpCgZLZ(K({+;@b2J3~MC z{kmLT_P6}bmipvGeSbT_yEA)qJ@SdRNP0`+K)D|aGGW1@$!<~GUcyu@Pc*g#CYu1H zIhyu0D-3rW(;qWE5uZBeP5d-xU^dw>q#jY zv+30J=r2KW@#d&JiHSV`gAwkB$=h~jJg8<7T?K(m&a+R6E6G4w`oHu3u{e65B@ZxI ziw&qo+lpOX!|#Uy{tz5dQgDNa?5%BTT$1 zKtc0J`J$BSj)3HX%Ws)!;P)cdOFMmPvO2RE&^V~Uq9ORfh@1Fp{-Ew^LS#=Jwi{#lG9%{*M(EGx41GKkPZg(KH>GLRX8)n&sc zsfMpNp{^6$7y;D~V3yG+3}eK`WI7K8E%?tfqA$<>`App)R!+OEeO;}#o>jf}ZB>%E ztM=$*+2bR%$;TY4(;G?%tNrsYZhmUkf3-4s!Syk{fegD_d zCjTCozvZImwxF>yfY@oOvk`J!=GYvxQ`WW$VFsMZ(4M>vIl{7cNsBuF?dFLqB$b8D zW3|wtVV`Gb`;%NEBrCAPM_B)yMw*$glX3rKPnq?H{f~$0;gT)go*le!)0!kIU$LsL z&hT3>^OIaejQC`ZU6DAHhHT9#8^Y_mAkekkvVG4t(@RyBq)~fmTq4L!O06n8XJt6> zW0SefYP@&mn=9C7P-_15a7Z<=4CZ|Hn&1_A+E}|+gJ>N~X*M6_x*HPqo?ZPE2GVz> z8oq#k?l}rqm;}beXEhGYG+Utq9y5u7=PV)NFzi5;(fLoAqsay{=$-K4>Zg}uPj_s8 zcpsNTzqw&x#2Qyjhou7{Mutzld6@urVM}J7Hz1y|iO0B*S>xACR9`6E@=1sxcIgT8%~_jg;DLodV-HxDLmT76Jne*W@xLpcnt1sf*gOsldG2YBeS<@`@VwbC4c!qj$DDVSk85R;&m_jNbW>5wXb;W_V1($IcHvCV&<>ni z$esiPEn)0w@*trvo^E4hI(Ys94oxexKx>zNUWl`;72dbW$f@b$*e(TUVKu z)i%XmO^waj*s$_fe@o%k4NhfIWqQj=TFoL?Z}N=`wF)Wrt`PHL2z&Z)KXN2C2zB<= z8K7)QU_fRr?^YL2MMwmXnWOZILZsNf{jaVVMgd~Q9<%~~qty3~KBRSDqdIB4#)Mt& zI@vI+ACBX^-dH?aBCk2$_oiVO6P%NAi{Ms5SYeIZ9c{dAaks~H=>rwyKNP5J9O-=M zn@1ZH<(wg3=+P+aF_YZx*R#1WZ7_0#VtO;5(O!U!M~?ipycB-GCxh;tsxnzWXt`^D z&U4SGqp_wNqjh^T8t+_E&)Yp{>cH9<*6$gWvh7;9`itXBkx|&5Dz5mS z!|#vmF_l{h&w=D&o%aO!W=oU5{|U$aeeGkScL}w*NDl}LYgKFM53v&LiS;PG(PdGf zbwY#ep6VObVLn+8XpP?gpx>LkA+c0*SGJgG9O$&4C*UuRcbTuE(gu&1S&B<8aQ<#a zxfG5sP*=D2RoJjQ4&~cTM`>n&k81F{B*ZwYkllfQx|SkSwO$WeL6)%%ltp5&>!Bk* z8`JM{tWBpT2cz?VHGLu(1zf z5m~xHrY6Bne|=$%M1DF6v!jwC`3BY%dK(KNESeNy1%fNk4w3FR(YmUQy)%5hKU+hi z&AvN1R*{V6$LN(&>G~&TS;TaUM18~((crc|eLoeJu`OLCwU z^u<8qGC_|pb65whkw?%137uybu^4aiE0C6$r0GNN*t8{Ih<@|%NMx^XwZ0bJTYHLm zWP>kJ_2J4S>r0q*3nHrtuXeG;Y?g_V)aftKm(D*cB-)4Eg zMf()#yP^axO`3tM&F16!=HU4Qo<;+6Xu=dAUvg@*>L`CoO9s7ns1YPg-QT~OtfAWF z(&8!-GA2Hd#Pp4uOZqx= zJK+@r&)E4H8T#I&a{8CCs$qA^!|7RM-G)+i>;sO)aZoFo+ToCt-}!Oa2Z(^=76~zr z3(yduqYB_ZhtZcs207VRm|D(o0V!8m(E9MYF;WQ95+v}Ur!zz9#Iyr04{(fSrgB+54nwSJ`;NlJ@qaXI`L+MjO+ePIl(ln%)?R#7}xEQh& z{I!0%RGl!-g8axKsfyM8x4MnM>&tZ&*j`yqfOY;NHVr(15ZQW9i94K85&=YBkgk;$ zV0j1BVR=HZ#2w4a+yi#efhrTr?wi&JKmf7<+V^NnqN57AfTxLt4IIi~R_y8aMC0oj z=5)6n8Ub8hn@LQRF|)zFM4hz4ZQH<6hTFDN+DYp9naf8Pi4Uhh$boN-)8^{TG@p|$ zwd=WmZmM7$ojaK$M?6w9=m-)p81pX}q+=RHH|mqtJ&lcq@4hHgSFR9{jSeLauD_3d zI=FG)`SqheVf&vE0o;5+OKKi6?8qSr=%&hi98OqM zC9hc9R&d?%y>%oWmdR|sZuXB&<{WkO0QdNgNf(TgtH0e|rT3d8stsDicEe_yMt~#~ z2U$*;?U_j9MA6>-xJ>@cZKLv9B>l74x+0jD>uOh*6bN&snS)<_gI}8SWIcP-Hn<6; zwqkNrqJs6Oh@R&XG^3Xxo%2$uC4&`8d>^Y{;*8V>Q*4M$m{Z=8SeOeOKJJqQ|;w z18LOgsE5u%b$f6gsnBP3m-3-A_}v)KgBkgpmwX+Kay=nH4u_Ml?e#UqsswP22L=O; z3A}FwMbw%s;ymbM5?l3nZXO2YyC$@xw0BTczJ#*mI>*wuD$ob{Qedrd?Xk?$ZnbeC z$`o5{+$bq0r@{QgDnr=7n1W#HcqlR)Jo?|@Q(Di2mV#@bVYVWVGk-neI1T;wbkRrt zlz`^{1j#egkoz(keQr6ak8bm|!h~DS=T-B2K2zwwZl8+sF_a#48n0}a0p0&9!S0GV z@=_K{t@d;&Mrm>EAt#;pW`?HgST?)TO7)^&MV%)q8(R-#j9(k}mxK)H!s>74kiWR@ zhK_h{Eynb1fdEt5<=H%_WzLt97Kh-2C!re_3J1#-E~x|?*;+WK7Nl^aIn7d$Ha!wFEYl1m)77yS0B%bd@YzN@i` zJdR;Vk4j`>jO6P*A1i1|z=jo3+Z19hM>!XCO?TBY&GrtJ+*?*S~J@ zR9@Q9WZhfC3Jj=6udttG?!owAM=qvs$?Hc98R3%-R2o#ePA`v8OC!0zM{-2h;U31P z8*LcNNsNA%p|by*+DK=n_+^-f*q2urnu*Prr8x2_GyXynr>@^7NAP%5WLCtbu2L+E#4FF=v= z^C9`{fwDft zK=#r6S@pp?Ku%^Wc8!m`+RFaDXo(5#NPD$i@z2*L;>Wa+wPMJgZE2f{$wn77On19a zU%izBC==Y{LbiYXe)!=n5ISr}V&I7VJbu`Mua9=SsC6gN!KVOb>=q8v zswhOqj4@QDz7}UcQx?n$dW=CN>|qnA*y5};jzhNyGjE4Bjtd0+;gSE25sM-KNT}4C zDSddYQ>?EnC;8#UW56RYA|c4LUO6;}W?5vc3KPQW`(BkFtyPc}zvekR>jZ-%R+U0K zR%F6i=tGr<>YeJn{qD}v?Yk{50SVS6v61P8qoRbJU*7#Afj$TpuK`4Ab*_E2je@@|4!x+UNIBhFjSF29Vs zq8-PY>TtGZL)*KWuplB^&nb@hOo07DbRNR^kR|iujl)5CWG3{AoUf@Xy*9}QMCbK_ zA+`{lm+GqkT2LnRrHGl{MBj3bx4-=Ic}L3GED8{ndZFwONYkxHVXpTzOmO1&gDZ_8 z(|~3PHQoAvRhIQxm7S>Iea7jk5XEJF zg_^EDHEuew@$kV6^G(%?hB8jh)R-`#3*e2qlR06VE38j!vODBTpKLMe%480o|8D;C z#-54vR~8poRLpqkgH8tvUXY#d8iW>EsG|(A`G+Cr4u5+6h#&@{cF`&mR)wO37oSfq zY?@;3^fu|#)%PF;yck%}+cQjAc%}Y5GQRZo*6T<9ic@g2exZ#zX-jX4cl}RjZ<)0v zT9V0SclhBlIn)O@`i5z_T}0X~BNe0JoRY<`+kTIp)T*3Nmvi+oXq-M-GHosAvWI6v zYkiF(+{=&b#>x4XVw)t-sEgMG&xQvG(*eMe*lDcnIARJVVR@B(3;?wJ3Qs+YnD+20 zefrrbXuf?l?IZJs2^)iizcc~z`*MmlGj}aIPaK|3`c9XplXW>hN|q~atWa}vf`%cD zF@ASlIehMXR9rQ58{h4@>GqG06;}6F9*&0|A-;sfPl2xaMleL)DP8rv#2hwh7&^<1 z{PGqlW=M}Kj&C_{$Jv=guxs#aDeQnO;z5@4?>c)$Ty%aGL?j?Z6!vzRR4%=65mO54r!^{@sw zmg1sncq@HmMc`F5#SCx@4gQNBE5a6(6NwCISYB-87`r_JE6V>V$(HSJ*U@km0*LMm zXTx820?J+`#{)gD*(A?f(T0w7I81k*kUx#J=_H-mX)ab}w%Y<&K`8Wf)1YDgcnS5G z*^IUwEnHv{3vR0CITI7TB&&nKBd#cBj>#)ftNW5P@-}$BGgEIA%)sP8|0HKkiKJ*5W+nHpHLu%-W#C zRe*RSAgz|5?8!oU5pgH_&IKJzP7X7k%io$j0hvP0%herh)*wbv7h&Otj!7^^A@zr4 zbx!N@idP>oKFkJ|FR`f;Ubzt&!xk4pw-z(VTZpIG4PzIF?YoT;hgj2q`4M6_`H1yuIg%T) zeGfMP7p_&oZg0PB#q$42P5kG2$e?GO5-?k~hX$q)cIvOH8}Hj1vO3dpYybsoKG!jf zP9SdD?qN{dm)|oWB)VrHWwC!f7b0m39&s7K2J)wF{Pg5Sgh*@g`Lb~ECv2h_T{K%w zG~JqAX8X~czOsbV`k?+gq&7rFDn(<53q_WM0pK894tF{I>o6qq3mg=Q3MTIMVR zzw-l6!1k6UGP8d{@1JpAj0m-Y_Du2s31#3G5|5s9_L%re&a(!uBBryj$pNrV(P@I( zw1fuuBx1-_0fn4=zW&X6xHft?n0hVC&5O#%9*TaPG*^4oIB+gZdwM5)2W#kl1fj~=V0Fs1jo4|tbUT}oqSg%mYM%5VOcv{v;ZEx4XvO# zo60`mJk2UePeX>)ejEn9j;CUFCGX4M+)ed;;&t4P9U*pX5%hd@+sod&FJVBI6wXfE z-CxM8@mZh@6(==Iw8o_S*oj&O_AS9QGn+QZDrj7sNcqwFB+pPAwLm9x`g@y9?Kzkb zNN#5Mdydk%npHH@xKg391O*)4G$jkGy@{&c4pS;-8O?+WPG5 zTf1{Qv;|MLJ_=el3{9Dsy`Ph~tmt+x9ZfFs{2v0f(8umj*GU`GczW-XL2N}h^$LVl zrIQYbU#|lxJ0bNc^yXa+oa7Xt@0y6;p=VeX0r&{ptB~RWuglaFZ0m`h*MIQJbz6e; zp%YV$GuN^BV=9r{MZeawhCXUMG$H~`Nzm0QX9hqYFNM^xmWVF7aw9*4MiO#q9>~+H zBA|Utjd|RdL}7zhv#r4Ha+oB|#0-tF&~q|x-eUA=H=Th=r>IU|G_A7l9kPXt>iIOb zXt*97+6F{b77&5nUrMW_4fhP0~vHA--SfdM*^Qur~kE~%}uflqmTLLjJr zU_H)mXE0;495j88ih#nvWMeh7eW4xOp2XDjZV#}~^wm+B5&RKrx6d?MsIJDV7pOHp z!l%>03;yBKK=(sEbUBbGS{x1@YxX#zk@}@^pylaG`qP-i)MEq{QSJ9UoegVZwOs|3A+KUp z`?G(}XG()&QjsIwYO$qd-^oWj2o8slAo%HNqK3Pd?U}uRzb7CIkoV!wa|0n4Bkbyr zF3FpdP?Xj#joDWAgwY9%GTIjt`nwpd9u=k##vRG|L)^4g=495t zyCnvrdnX(>%nr}|H%f45`7KhIn5z1xm)nEi;M111ob+(9kkAui^-g)LN%mgc<#rrW zbg*#$YwCAZg?(r9s_)e5l?yHTx4xJ+rZLY+)YbItZpyut%TBv-fT9S1R7N1~)bEWk z)vAl8_sXal_c8z+OGqyqNNtO;XDPQL#8(cu(mvvk=)pbfj3&MiAO4##0v_w#U%jr3 z=SFp9-QH0+1!kQXLW8Ryt77EjjWpSXC($a*<~~phq17z0fyN*?zusgCH|Harj+?DW ztsn6y{+>h5FGerkzj_M#pbn6ba3BhXExk@Tk;(ikR<%XpkZb(#!Zhy)aIduGWw>E6 zdSEe^6mJM2^){|sL{MY3ihCy+coI>+;*u>3UcL~3a`7rW4btKxMWhSY)9}Xw30l=z zX8o#f%gXrLAAeD*M~flBLiNqzf4-c^k~+_0(GjQZ@_U7{4sfYzACCxCouSu|x%MPG*KVE}+HG6p8Rr=~a0tk1(H5QgMsIwP$j?b(n1WwO-1(%-)Wj;25I8P+aImp2 z>-w1Dh}B1f3u^YEIVy@X9uP%-OGIV6j&rRaum}8o*CI)m+^(JOX;-bZSuwS%wmRrV zKmBwYT+Z+}y=0S6o1Te7n@Q5@(ci>YkBFcK>il+qH$&k$AU@|tXah{-)Uh&A21UR3tx#jxpAI2fJye)Yg)Pc*;!54Z zGztaU=Szl49#oj$kj3r=TcI(>9nEMAj{g$2Bc*sPwc8mvS;zKkZr+owaUgT7d?yWi z(U=HifGjGx_xknnUZ6JDH9lkPK;`NHJn4eiITXh`YlrKM8yoU&F`u!7 zx8JoV@oom)SjDNf=i8O6uZL;#ZyHsi3aO8*R42;#9z!nr0utt&lYPnW?md-wof5Za-73VjLb1i;A=P zo82kPIhZ-%v`bl8c4M?|Ev5ulZUw!*V<><}u{5BQL&jO@1WMPC`4yXJ)xzM|)Ifp; zn}Yi^?>AaC1+QHvrGfYq)p)(dPcZjRG3Foaio_Bi-gmwl{+0}XS4}ixM#d@fUM!@G zNYbE?Lwdzb;&Kvf1pM21ICH&MO=?r{1- zcJsJx-HS<91X8F{sxr;bBVM!5RWh?@D$&SnPvf(dKZ#5boE*aq$E8q|im|4iGams| z{<`7@GtI0$lIH;oIzfRUZx|o_R>bj}P*BSWnon@AMIvd9G$ zPb$BJo0@sTenh0m694~ZxXk(Ajr87C;Hx=Qw~`3#DPoU1;Bc`7s4mn1oWhKU%a04~ zINzFpWTA##<*!Dy>-(N(~Nn^nlNFvn}r>7 z3A2JBUR|~7pq!;Kuh@O0BiF>4*gID|FyjR6sTuK;^t$fP2ffW*UwBgfIhvfa98&pc zBNuXR(5`-Z=f9+BxDhPTz>x8wM2R?bzNjYR@cCQFnLujC= z4*Pl?;?ru5cQr2+ckTRx`UB1HHy67#@PI>hBPQd8*_W|$Hng5Ek{A!1l_Fy+ zE>y{zbL$U14FhWT*q}D>SR6?TH8f&>zLK-`?!>}CTujA$kcQOf6$Ha zAUX@8CIxB?FPSP%Q(fo`zT^QsUmse3L7ZXs?qfJ<$dz_KueG6rZQj zrxBzx9`O3cFyoYJJq+}+^~+x+bkD!i zF>`A^IWKOd?EA_5YgqtCR4;!d1b@g;{)rF_g<2NRYDhpfQ*}*9o8{-iecLK_C3J-R zCh^^fQJ$mKhJf6POx!`o8FdXvup_<(Et_24CF49ub-ku)pJ^kp72eB!*f#ymTLN{B zMiecmnB>F5Zo}cHR*gA1d9)WRwGg6PT1BUml7>&{%3ciQ#UF0rm0kX^dGBiPjQEXC zfp-+;(h0q{-y{Fv&|Zx0+U7ylBePd{_H}31jFB_P)}Mvo_0w1=Ozv!xKX| z@zoqbex3G+Jb#S8XE%;w26v0ohqiwi0H!Pqtf5Ys$xmDQXlox})`&Se&}d+4j26=- z0rfV*q9Eq0JIpDLT>Hg8j;T>|)?bQii8Ny1^fWy)4o$1hhXM!YSjZ)#LQ3UqOK4aE zmU7lxA;mx^&uu7WYKxe3>IJ{@1}35Wcw-vqH@rM=Ih4pbBQj#93#dGQ7;^vIpROW7T~sq+pz?+D?QM z^H6a!UFxwrQ0*ZgkT4C2`vPNS|~M?Lwksm)eTxTr(dj?fxm=- zzc34*R8Dvh)Huh)`MiCc7X=qCf*XWBCbaesMB=F0On%r%i({H;vFcO{!YFcftlFS^ zlSxqR8{NTuH;uP#9dyX>8LgpxB$)k#cB%mLWnuqq#ynOeOyKfo>Lc4HBH*8j%eVm4tbc4^2$gL= zUOnZ)ev2#pE5$9`)RC%*0OlV4va!Pay6Gd<&VwJN82xZSbe+`US&^^z+?V_!L|xaA z9-HRr6uA^h=X*!M3HQC@S55!C2ol5p9YIk;HXXM&#fH94rtz*9*=t>K{?B!ct*Ub@ zfdEYXaN8i+r#mp6h%=H>uUyXxrRoC0}(=&&=(h}s;W-(ei%B@ zFB_QBQe96~3Fk|4wmTLtE8wcntI5=`5G6}Lt?N<%DWrF%8o-M1@5dgu09$3`5E=ME z;Ya+|5KOjchK&Ypn(y^hcbMs(^@(lmUBIE8{iLQK&?;rCiO1)fxFko z=GH^c^$yNU)p=3i&R%+x<5UrjHjf8^zpT_229Nljq%2Tc-R5!KY1RRRS|&T{5$}>s zUPg$gm3yv5DM{Jd?W2?Bv4rn8<7N9MT^8y-E5X3nb!1=;){5;N0d@G>jQ7llz%RAP z%kpzN+n*#F62gVJT?qgnHS@Qp`(-M3&_EE75t#`5KvWR1BqMltAUS}d7IcU zbgvC$l1Gj*I(7OQKYRMPkn8R--mt&JwRdwiob`tNo=~JE4D6X5FHY(mhPmcMCWRMo zytpW(huq4T_|~-Wwt^s-;j+rmsc|M!oo6XQx?SqLMvP*}eeydO3NEP7hV`(j(=+9z zoT4Q7t9V6`R>j3`wa&aRfc_@MO@0wx2`98L!tL$qNF;S018H}sRSyn{DvFzq%5Y74 z)p@7hkFq$}PcV}2+{A<0vmu`^pZ z?9EXassp7k;2qzyp`JU3YAtK;7zRwX`(DY(E&xgdG~KDI~@ zP1eW@V$>PoBH~PCr4cqKS8+!X4$s&1{Sq=NZU$lamXK)u@%Au07Nc_(x&tgaf?PZDQ(0KxRO#keBe)>Mpqi^6P)|K75?Ck`egP;Kf(8`V?HC^jyGR)hm`b zBnjaxtKePAfv;Q4Xk`q1zX8?ox2di9bVTusH1Vu24G*!1$W^pe{sbWHiI;P-Q9p=V zN`I}+wvf3x*RI%J3u-h!uIlfWb>P6EsMDw)QAuBcUH`0q#-43gUu&%FTGbs;8HS;q z?ne^(-}j%C+Bsq8-S^z$Do4AoF)nZ;yJMu!+8{q;}NDC=; zjpc@+<@~$y#AF$FG2*tei2_L!lz(`%@|gng97ToaUR8u)k&R?!{f(4EN!y{FlCuMi z15z72LHPyvoavQVwFB)_+!uda9281zwxysQ0c(tQx&%xoZ4^d^R1H)FgF6MW$5NhD z7F=M)ZnbGZ3WQ*up$-Uqxn>8|50L~e8ZUeMS)3(IH!ncDm9$B;X94vWgnXSdTyzy~ zjFf6vb?%N$Iq3Cgv8r^(b9fJ>@BZ!zm*Tqbv+z}^>os3vZA-V%Y6ZS9tUBF!mJM@# zMJkH3qPIWY2)5W<>-1HC09Q5n?V#eH^6*i*S(LZiwKk08u&ecmT1BL<9x|(EmOCPs z=A)~&>DQORql?c@RVGLtaK1uSQ7(eD!5epPxb<08nt_iZR#3ot_b$8KSZZ%qsTazo zy6Z2bVY7XIJcYIP_)nK{e@axQ;4MIpw~0vi+|~Z!*Gbs+^Us+aw_fwb_0dOZSvzg5 zE28FpN%!r)_e`THY8jiJ^CG8ubw#Xnej^gAvz-$;gP5dY*zId7?AHs69@q^jThozF zPWk!kH1a?n5oQo-oX>`0d=%hmK++~vOU@AKdD2L?p4`o9%<&56Ll<(_LCte#3m^nsh^Hk^VC~ zKFl>+tlwT)bnKPkbTh#Se-VJ$` zlm1($Q#75M9Mb>)+-C!%n;IF}DAB~Trm^jS6j)5IYOB9cT65ZR4xUoxxm67aIF01H zc=`NMUA73wT+DlBJDhElH#b6ZQsLuqzn}uh42QGxo_1q++?1)S`68ZvV5Kpwz26`f zaC|^}$k(p*tc^HczEk@F<_g%izFdAd8XClC*}bb`;|E^4C$_NY2ghxGF{GLgiY2rc zHmjAvTh7b=3eUk$tWQdG<0j9*0iD8bV3^^7GXM{^t!HK8LCnZlM;8bOA~z}&Pnij9 zjQ&jRN*^4iERNt<^kWk6@;n}&Juk1Em}Mz13%#N=GyS0pp4tw&6GwL`Km1UJR)3~j zRQNmStNLd4)E;7^duy#$*5X>Jp1#X|V~yp+xS#;2jV`N1s6q=LxA3xDmO6%g_!J!w zNPav5AtQhZ_caJB!ENHOQx{|e!I}NWft#h$) zrV_K6?Vc0ifUWd38RPBY6HxPHg&>YKN_cYC>VyOxSPe8a8Bn)&TsI2ZS0~E<5Ag~J zA|H>{Rk>!C^oy+8o9|qFMKsPjVB7l(I5D~8L!EG_ti_AEy6wu}-IOQl+XBwB5t2Ya z^(alnd!b!fQC(mNSMjD6s?=9nVD^~l;l$Nsb17DAspnPrG@j@>0)GZy$L!OybR%dL zAckxt@gaOD3)(Y!LJ+b6TnnH9A5^{JzyE~4@74pPRqInGh4mH?3X}qk35Z04b<@Sn zM8F;+2!+7>5F%&E9^oeULw;@qa8|vr6cy%6+Q@gt7H+ehsR8=K!&(=GTSCo>U5!!)&qSrEGdGDc5HjX3(3e-1@j=tM85J z>X|YjUe6wyGF6(k#YbCUYNnDT8Hqi0Qqm}p*d(i#0pDnI_4}~_$r(G4mU?z;5@2VD zQ2~`|IYUt!f&+3?u~YVMh3bm#-AlT(A-kLk`Y<50IdXUMqRNl;(LZ}qg$UgO6eaKX z(bYx&t@-)UGlD=q^ne+1Rb(rB_umgW(7S}~$p>m`g0?92hFLciSXj3Bk1i9Tz#HXS zYHzQbal*O<#;1m0{NnZ9hN(tl`7M$0RzLH@8~0S_DC>n)?Y^XZsi(eT06@&qaB;b6Hlhz{;wbr4Ez#5#p%H-|7!m^YYi-EJc(Pie5E1~n!Rk@~Plh>dFJG-=;G zgDIST&Z@vF$r(OlCStIAeo?@A5I}PhF9he8h?C<53V-6sv>~Eu zE-?}vs|ua0^7Hghs!^Fjh#8l0EUTLNDZWelYUQ{6t~9(0V}4cQUWWk}nh%crkFeXD zBD3Ssx2Vj8Aq;(J^YVsagjjtnFL7Y+q)y0qmra&=Q_qwzR^2zLg`7}0|Aq&%JO{%d zd`T5&eT@wo8|$atrsGq^`~4&U-ZQ}HdxRdc*AfF|w7TzVR|7(?0Kxjq<$tH;fWOhN zq;or1S2y|in)ruuFLH2ESwT@0WRQRe9fo2ps4$$*_Spfb7zOE4SaZ<;+@AlY5sKOCin!0|H!DGWFrn-7Prr7hn{k(@3dowGlJpC;854z>=KEF8>gH=-hcVetV^O zTgt;1fEIQf5DT5L_u4^C7YI$U7q&x{qm<031pWF;yjTs}6~HC=QpB&&O-lePMwO>Y z+8_5`=k!%u;3om#AV$SE8vj&(1fOxz4Y%1$WKzaKtk4?}rn*~wIc96-i=lVe)U7{O z#Hm8nM0|mFga=?m^fn4D^Y?OCK#F#%aUi67Yh#>4wz34j+5&w&n|VKdp{T%ZXq)XH zz$Ou1`^<5pbuhe2IAWTpmN}dzsBdxI$X+Qw3FAOUcYT+DXN3Xo2mq7y{KVqmMzg|0 zO&`rJP8h0c(mBxJMZB*`fJeaP{?kso&zlYOL+{Qae?eJQ;iq7Czw6VzYcl8-?Dv>w zs3BELhoD07{)#AqL3a#mbx;)d)CNKhnph^THNKSyQi{~WeU%|Z^?yh8bQ2hCrKB`_ z1*o?~`UYUe(a=aPBOF|^hz+Hwigp6MJQNZUO@Bhp=n5)oUQ zm#Yk1iXa{jn!iZSm90kGI`bNJb`*f@D4m#N{Bv3q@W!~Sf^jk3$JNjVX44>3J9 zr|e&1l4K&O!|@~qyy{4Fb*Eg{J^vu@EpETT{_=sB91GPc@NAq#YEDBCilB!R)q|WI zlzFVru0Vcaasksr3KgWl@NWG^cEluAt0SZ0Kz#S&S|zVjS?mf!bzJ{t|RI*;Nr}LD@B9BRPlN1w!RY zcudHiyR?>Bq`_Mcn9q(!8{k_*r{?pUoeakE7LgU=1%>W7{3cRe@E!w0I5u6u}G1^5jFc_mJ zlxuyxl~^Y-#?Y4vZ8CjFQwi)NbKjHjlT?;+*pB(&Ez%yghr1f@&l}0%G6P&v8~CG% z11w}ga=NgB=N-jxj3t3nsf0_-*9ft@3H}|#i4#s9ZPE^+HYrg(#CKtU+bUq}T}d^h zB~A#I^l4%Tv54|Vd_6dy0m zEq(@Aznii{9$ld5gL~>7BM)q;mZtgYcsx%aD*hvvKs)@eJN)tdM}uhGdLg3(s}s?d z-I+OE>`H9kfhQym_%)4H1vzTvAw}m-#V%HHgT%Y17xbNKe^D6*7swB++d?%W0*6V+x6EjG#O`Izb^ z?%*VXxY{Z`-!<4fr@EhkeZ?S$MWD5~{WV8bSwPE7_l10KDNJpe+6V@$c6iHssl^)L zdC&nO$gephb_w%vD`vFCtFEfOR0~~)lK|*xpM;7&(ejRA_F~+=V@Y$zcP8(oWtZ5^ znI z5<&-a)*Jy2wV*|6o1jRW5*xqPkNzE^qQhRKWJ76Re6x}mw7Wy_hpEg%i}M6i#7H4` zPMv;$gQZEhSSo@VrjM<3_Mk?8+#`TDYN1F%d?9*WqSbms3p7>$R%tNl5Uhkt3%-yS zL-%AS@o{PMnO(yC`ZL||dUTqCr6S509-PPAeJdRaw&t*+6iFWjcOowy@huKXwvOA8 zWp4u^J_It%d_^rzgi;j2ML#m-b=fEU&g2~ugTy`k_U4A0_3His%)C-=JZ}L(gcr}F zKw>(m-!2?8Rq|7dT4=I>tuhmESI{mb*z`J<=uP&`K}2-OyjlXmVES`oXeIglPlcSr ztJu9L2Kz4Ns6>ZaPN-Cu-BI|=iBl-Pm%6VBN0w#K4oPua`>XMP0)y#oeo472&$&8*qM;TH#>gyB@>f#_ugR z)<2&`ND@cRsy}OzQEY8R&E|qEi!{UqegHVYf=;R;4zqEQaDtId})Ga#!2KPK^qN>7A`zkqAP7t@!d$ll@~o(UH7M~ z0xa%4yH5`fJnTgFT^OWJ?#Pq6b1BeXQ8p(PelLawB8n&M5##p~WHkX;zU~l8F{O(o z5+0m)`@jOtEiji!7C#nk(x#(ZkJiF9Bzfh70l8$5dtS5F^9Sy`{wG^UM zxxI59P}`}Ckx%@G98mxSnZQ}aa`;uIM8GQ9-rB&Ys)K`YLZ?t-1MeFH zv+t=z@`V#PTX>A=25mm`Xk^Y`~}q<~(*7LKro{u!GiEo10>0$}Id^k1Z;jWqk@CJL7xo;vnUWr1Xy9XNS6pav>&nESdx98#g zow+}-y{GxjY~h3WjMtjGYGOveO;}j8DyZ5&cz%?l)KRVjNbdt!uf*73 z$`B6{OSa;^R*;s+gnZnMC`bol=ucDjOmtvRE&Kj)gt-I@Z>C{o^12{V%%!G&^U{5lL!xAJ`F5e^8$5Xt5K&*X*@ zd@T?!E?J9v=MAkepREMioqfuf$Wd<7JGEEdOI>#E@O03HunB#3-`)jS(;7#9u;=x(k|YA_@-%SN95JVP^<&w!SIIJ?~b<{6~u^ zvOLJV!J8hVIrHCdkXS}VGG8`$$~g=kkDDqVxd{&hX`%Eaup=_n4h|2#v&=_r zIjAOHm*eRAtaK)c02@iH(8n0j?7Xz?XE21sQ+t}=1E@a2`JKQ&>a#nKxlqI^*>Mm0 z8g0{tFQVp|SZg6^gv%xfHe}|rcH9YY`|@Y}c#&}_!6u$nv!O*P(H4RSyyx=1OL!wI zkTGPFC_rdpNRTIPfnd8Nxm*r^CGlt#y__(4q8&YgYHS%SV+ zOgouZ-&uFenOXceZeruR=FkZnOp{u?#`;)m|6Ggam_~J62Aj#0!|TTGXqd^3)Z7D~ zW!lj~RK<>`;*u}M9xDtRs2lidpQYliO7cy?f&oK9PvrnAdE*l#I&;155|N$91!@-# z3&XIaYIDBHy-W=`XyulRzEpp|SbJ2bWOq_8>-2S6cak8W&>J((`I%I`dI}YF*m+4u zd$2tBIWs@$s!qOuz=!yKIy##8fcl4Ah+F;~S9Q3{k7y$wjHtbW6T*aL3HRX@=#P6U z4TmsQjSxBsA!iSL*6+IKrz0page)qIdwy-9Bm%p)Gm%vv&eVcO3?<W3j0uKwA&S^TCM;2wMttUQ z7SOFAnp0jknE-=uCg>MG^LdT5X>3Lk_SL9+)vvJekWOAO%_Avu8&K?+rIQz<2ls>* z5U)`^{MfTC5WPhTO5m(U<2$c54+5m%d*IIssc>GU0)ml}et2k5O3OjJdDP{AtfS@LOq7Fe-4*-$dwQK@Edq1}7FPGQ+C0>Dq0k@r{a< z#_2MJ?=U3sN_jjSAmG1<4`a=7@;1wdDtt25o|&Fc4@bLRw>P?ANk5n*!of0(LuqrK z_pYQGi;fD9Wp{SVzx;?E3wZ(sMs-(2rSfz?{8C{jMzYqz3lCiv!ihg(lgr@=e{Ub3 zTFCPuOCW-9iTQBcq25{hc+HykN z4S9~o6dnL<38c3sguufNgJf>O1zNnR!mctJ|Ja11@enibLSMf_aewf-GCD1<>)Qv` zXR1c6nhei8EqKiOSCdjv%&T}3X$WP-C0))RUvn#)7+>>N(^{`qqdNx?&BqV7-z{(x zJD3dk6W!F)ZXp7UV9@cdfi?t4ORvwz*<0G3O@PtZP}^}MGZtLh4vD=W#z8v96! zLW)5#rL`(!3h;>eAp5)2C~74X)@L$tL*-c9?%P?NP&0yG^wpSM>n>)>gmt?lUIVMQ z(`W)^4v*10o!vC% zI!~FhcaI4$1HlaijaB1_x(Tr56zt6P6r5Y_&_|*ho_np2B+S zH$+8NUYCn|$p^fWd@k0Oc=;;7^P?2Jq@i+A&_}0xmwUp6qEddUouMmzEN(!E!iKVf zA8PHmCzviR!zK-7>|vUo*S-|dwbFj26%d+&_#)ZkHEJ!v5=LVfp_oAmL$i*8mg1da z)yiTK44s!#Y+XJyKJW05aVwEeFl3je%ot`AU(k5=baEzI7b|v14#}LS$mWJ~smI!d zW6W`!^4j(RXf7wiGY$us-fC?##d zfHFaxnO&=eMqh@d*;Tc#k3CKJkvRxD8LwS@A%Dkr_E5^N?s!^C6slQwkV-lnN}aME zL+emDZVnkdw#@ldG@1}@wbmiiJDAwP&qIU4VYcOPOx7Hk8w3Pupt{o%ZzU6yV0jA# zDKjN(wm3X8z`E&RV%-8bcV~4P2|#&RFH%koY?@S8Jckxg628ZE#Mcek5T||#8?^*d zGVzp~`!^gOw-6L588&K(zsUNO4ecWQHq_pT_*fC(aPab@XdH|%!QC|5r|mcJ8D&T*!DkT-v2cOGC^N+S zX!I+UL|!*ROvkpuA(#gVL-3G{M-&qL3#DqDog}zK@~}gO=<|1Z;2v2#$f=s9fSdL= zsh@3{WR7XU^E}eQy{XDwF8z=^fb&0{)`YQ4@a4gU!6!{TBh|VS<43X+!fkyI?ceRK zO$#1;;r-^g7}Ib-sPgc(P)$E{!bId}tX#lUQ=mjourh%H@3E&>nmPEQ zv!0rCfx~yI2y%T?y4=^JBZz|Zu9Z2Mcp9O{6tn8k6HsL+jN=tDQ^#RVAmO+U| zlMF=<33)#a_XD#G-F=0^IG_V}ILeNv5wO-r=g!n%cXz%5VPq1_@UGsxb_J3&?y^)@ z8OKvhvY8&1&y@;O0)w$V+?fdQG$iaQQ`+|sd$c)sMhd|WkK8A1OesiY(`R~1qxr!F zjTgbT`6hmsQXbianaB-r2Y4Sg5cUKWB433fzxx8Da(B|9wo`pyB0iE7{dBvo(ill! zDR+OE={XfMhNmm+Qqh+0n$AT%HJ^yD+TX^!4)mztg7_3^Rj@R~z8OB35!o#fcE)TD6oBgL$-FZmdx{E0KV z=K!ldA>4hSSWMxaEb&y>enIksV>YN!BpuwO-H{ZL8O+7d>B7J;mP85rqiqZj2xpTu zdo_lIE>?)aZe^tO*~Y~}l%v1Xr~=9759V+QCQKH|M7#~OF!K@H4FWTmYz%DFXj(cY>O&iWwp$AP@63D;#UL zpKZ#9UashFBN@&Danzx&;hks!e$J{Ud2Iqd&#WkW(Av}dW}|2L%v+lfVMo}SACGY0 z=H7-qo|`9(pwGNpux0XSoB0rCq&iKCl-=*tA8aD*qV|K>=K_^IzIM%E;dB2vD;9cm zx!2<-5_(U~SaxiX@Bm|nGwQX9XPHb9Xq-AJ!0kAE;54{* ztpW_JTcjHDP63@}d{J78M9?ahQy#2$RQK2$p%hS)>V6-MU=xv*0LX&G)BY2t2dI<- zBP21C*Oc~AEADsde+3nLTr#vDv*&&{%7R`v2HewgD!M4#k#pgTXuEGY+h=*4ed_8* zkLTyx)KCI~X7|I2N6*dV;;!a!Nt##q$oRAhtygIDRS=Ull>fSaPlHe`eSodqm*2ah zfUQl}ZbJpz)3|!4W7ol1(iRLJdu6P9s(Zo%k-Td;2pn=cGEg?Q-ek(C>3;N;F+Z94u#U(wcLe%tcXPHv4Hds3~jpZ-`v=OEsTBpeYXXq>-o1@M0n)e-?h&r-cf~_(3^u> zu(`#CrC%U>iTV0Lb*TNH7aP1d4%+jhA2SuHNZ%CN57?5LwqOm=MmS~wq~^)3{reA4 zY+wQRtu;`4gy>c8x_mO%a0WC7ZMSE+1>?=!g0=VkBY-Qm&mtY4dS*0f^Znd{4eWtd z{`q3+7VNf-?aJEU-(UEdHGSk^_ojU|J2AK-VN*!!|6Yd~_~(z8hO6@%|8!A{fH^0< zzU_H2ytoCs4lVrLf?&6;w_u}F&@X`NFf6nGyTRNhrHb33*gtO?0v)uGfkN2N1>M^^1XmryheRKN}%l3}z=8c}e zf1f6tYdwwr23q_*%(`<0dZTjSj}W(;B!!;)uOEhG*lB6|^7V$K+x)@}|Gew(Hh>}z z{jJFDN(p85*lF9Y3FyeMJ2+~~3_hjb8RpqM{!iJbclts9x3vNW*zs!1XOT8fXE)6a zyM_qFo|D%Pfet1B^=^xpHGnt#M~X+%HOWE*mkf`jFX(=2bz^(i9&U5h z6e!@0D)39C|5Lf}4U=6XYO+NdQ~%x4y<2{zt+z zAhpKv;D+>Bo%O{gWY!JgPUwv?kldf%LlaDCK9KS0Urhr$8afU75STMx*Dlnd@INEl0;E0&1=t!cU<+ooZGzd`B0z)Jlf3GWET06d(c4zCExCqtgF|eF z5cKLUcZKlK+@j$|kfQ`ZEK7KmVuw!p|npBDWiy#$U{r z`u|uVu*q$EFn<#3|3_YZCfmk!^}mV1aA5C$M)O~xmo-l2K;S9B+W(n93QZFPc5q};jXzwL+C*ZAyZ$=T{QujG2g-=yA^!-a}pEXpRz zdF*Prh%O!pgT(0#UDm0CiymoGlwco5K?+s0)aMB-H%L6@95BDaqC+fZ8#)PiWq03O5*1Y`Pq^j^^q44TzXV8($wkzph;aESZnmVb1`}q&MzV*3=f&iNL zHXuKWrO{4P_CIceLL_X!6e)I*0Y5z_ce36312>-X_3e|ivNX~uv#zqP@BNAc3`lDY z`+oDr{#nf%t+d&OXDvO{_4mIHi=j(5N-u!%zjH;*cFOX|%Cw=Z?I(v#rzQ5c*v$(| z1)Y?K4SgZd+!sg|T_2Yzv4b@;nENOfwBY;V$cSsWsu!^f!;q*`dl%1hu1o;2QtbPg zTtu#yw9G+}@|Zh!S|f`RJCLGKVKJp3MdU>>LjnITK_Nu;nC^Ek>MiR@1-x>A_tnOO z3hSZNHQ|;mSep5qu>SkH8?BKUu1IhN<_?m+htoQ5?&i>%C!?FePrgGHEDl*}E+&o^GWrnC@DqUveqr(+9P?uZZp2?2PA} zSe`Ne(*oCB3be^w>-0)1j6eN@=Y5i^WJnfk;uyJeTU7f9Xv8k1g5;av2M(qLcGaTc zMX^_k5y9*#@ohY=b`&~g5K}AOEf5qewuHK^eX&fHeQ<5BgY>Pl6ejMI`tG=IuOOsZv8OU=pm23_!Rq5 z^;o)Q-Tc83l0DvdB#IBmQ5&(piW#WOU6YTE zkXWZ%krwMC$tg%LKmx$vPEHitx9|SJl}E(N-^7L0?gy_#B>3WBCmkf=ZrG7$ii(h8 z;3ulJeO%&tCwcoA=WB@cqU?K|`sGK~jfT_{S9fr_5e{=aHp6FtSzzwg(JuS9uHwB) zJleAPV>pYOHJG zXF>8ypVev*CddziV=)#U%s`YmgoELZs!gFR$*{R{bT7{L+HL{DsIJr}jdT!@+k?^vw`3`TbitJzKDtb(_JY&huvGcCC$E7Vi$G5q=zBo-^?HcuDi( zeV_Js<*AFD>^uWmrzAf{xIB-aJ6lhdeej;kK1Tp1D%J1kcd^_+(@^K_tTM~4Z~AMx z9I&GVq#rF%oa~jHT2fcRnlSeQM00^gr$cp$N40OA&_irGhx!d$ALiN{=0z2PXmJ&7c-XcQ$L;EdGRL* zicT{-BW$)Sd&#qR!C;ARw8mA$H(at5_j>rfz||7ZFf`sqcrmRdP3e?FKyfd;S*|0HDgb~Cc9ES#)qMy+3|Bz zIMdf!)!}wBD6u`5kb|in#szEXw}|=1%*ei#9tgzQ5);vN41$=F4|* zV~awcR+3AEja#1|?wwRM(JZsS`aWj!_XGy=`TVPSDB+hU;ZcR;H3X;Bcjm`k?{c~= z1T0#iPzOk~eC`(Sf!*QJr}x}U(G?)P4aAxDr$r+Hr>lm8EPFCR<*%7rAP84p)q+di z{;r(Co7^8ZMYdZosafb5l@At6U z&_Y)uWQX0Y+t4Z@7kystOSijs*zZgJQ}CYyc2- zWs@*R8@=kS4$_0A7T~2#Xdd_{9{6ee_%RK7`Q^|{(A$3K*~gd+9^txy%9Wi7OJW5N zmqcGk51DsO0{Vx)9{2Mp6@b;B2WfWzNfJX4ahIZns@pwnidvw}^39moYW3waN%e6b zrN*_Kas!7eQ1z*D=YxYh%4jlCuep=Iiu%zk4xE^+dsF=D+;q}F>16}QGdFWaIpkwb z*}9T$I4=yapr-8=Qg&(S4w-lT4P-RDR{Z7MNa?`+v%`4R zuCx7~w+i{_8~GdNmEqr~WzxE@-3me|OQ`33e3;sv(e(Y{fNR6!aq;3WnCZe`y{v0m z{70G5CP9@(Yn)ohnm&+?s)=#TGxN_}lUA5D_|zu@F%`*|&i4=?oxeAXvKH})Aft2JspezZs0Shn-){@B4@^l?e*=a~)rga`n^!S@AKEzS(-6$DQ7 zOM7k#k6=|yWz7$!2FstZ7#8Yss`je0-TxE9-yL@xI9Yw_q-#!fdS;;kj^{#xD{1)#2%L*!Z>9#tsLWOtWjVUTS(XmVS7vOzh zSA4nwgPPPXx6bN%GPC%M|$`hmpkZaheqVCw(xspI>!(+AK{{+|N0#6`Nd-khDPsy&roA-C7j>9lmLHF64Lo3`f*}{Fn#%(Ee0-j z+lRw%cKE>6&=u6GTf$o>{FAD6ms9#`L83Pg*&VjE|4Tyf9n01}Ry|*Iz?;$OI^8vA z(6zm7_np4Z-xiIm1B)wESLv{JmQAD(Nh4o|-6^gx9O~OP_7aVpu9p4RZC*Y!b#N&b z>&!al`!(BBff}CHnf<)ZtNBD!*GGwunJQythm!}{wJJS35=>k%nund<*UffdMw~xO zrCzxrStInCkL#p}oeJeq&Dql%=db()J=OBN&+ht~KAuJ;s-6DG@` z&%n3l={)mZ4Zki;*n(*kgyjfT-v12^hlmzx0#&~Oc2(@XX$37Jq5u1>`E)TvaRm~F zHoXk{w6Bb;ORvEHI#*DX9hC0adHczO@5Mh8e)71P+tO*m46oYSZ$jxRbMchv=Sj2emwc!rzBBWYGmO{9w$itpT#=rr>o*6F*c*N7 zu;$@Xo(({(qPe@yF>o{K$lB;iS6Go3v73?stl?UYb{zvws=0~2Kwporgf<5@9ab;h zf2rvDiyc7^LZ}q^e*z~f=E%!>dh6-2^&@3xe=dfT<|Ny$S4+6fj*e^?Ser@{YwtWi zgBuQuSQ6>heOG=42jbWO9-Oz_nB@n`zp@wHbr_nbSs30V&I4YWsEzb^dR2+K)O?Vlr}RD{MlZk)*Tb}+l<_OMVcT;&zt{wH9939Pn zZKis;fP9|?tuBN1nhjYQPPV`)?DjZ|Pwfzs=fWRb6lnSD%mVx1_&1$kKP9h3L1yH6 zNzN;L{XR3Rr9ziRm)F;eP7T#rCktfrj;kDuJQfPw`?S`yAR*lfXkg{{hn5RwHM=RF z@N@VG9ER)_<68DF+ksbAUmmzm`K7(VjF__rcuKkJrVi6{Cr8)I{KmDg8#zOpp= zE_VD+;q%*t_ocfn25vek{QDd@lm2}Urpf=FLki>7-r|=2lpySB3Og{3(UxS{%Al&Bc^K@}#qb13F#(d8E_r$7G zC*)pD8aGAgS^N$V(P5F7_E)%$!HmWw;vSLSm!H^^Yr z{af5zUoUSFJ84R;EqVp{)$)4siC*J&3%@LhUtCpPXf_P|QL>3R?tDWMLXQPasq^dD zym2uT@iw>--QlF5xZfrVcmKJr|1zo#)pBP4V^g@(O~B1zD$gOsuX+?al2``d$IFe^ ze%Ug-P4!ON`iB#0o(eskaa$D|DnZeT=!NK-^R?kABg8HjUkHkXboG0ILK?C!v@+__ zuR3>>==*BTG1sK!;*^38!;?@obHu$wsTg%bUAPSNU2?{Jbw_W_VwDA-m5o z?j(wlWb#F9i=ydRe~@JbTpCD9ZYZ`-AcQ^=d1z3F*(uk$x&&d+l*NxLJ!NT ziXj`L!&&%(B~!uy$?f`V=uCf z0wNfKJZt)HT((i`ai_*ow7*i)2G^i2vsGSQi_e zu5H0~3@UD`F7e(pq=AWtajN(;!B=RK@9MP6|CFVOwSoKIzw12$!BWa~vb{9KHKa{- z@#y_OeL-txTg)tu&26rft#=53PF2-W`#Uas{`YFklgA~V|GdOO@gVsuA4qR92FfAQ zCoI?w@JrqwNe{GK^WLuTDP07`rU2j` zkwl59B~9wh)$~B4@zwP8P2i1*BwtyCn*Wp4LjhCdj3sD=^rQdzM)m)_7(hZnA9(L`>7VMJmY2Y6Gqh`yE>g`c6`DaudB!Hgo2R&_gqIqOxBX@HRS$O(? z+Q4>B4)r?EPP=UObV1PHqY8SWDgCFYCWwE|mwH7z{NvkHoaH9;M`23c!T&rxNjA1k zHi&IMJd&{3{NKkVOvRaRLf+fD#c&gHEEW~Pc>DHQEa9K;#FUOJZo2+?ZbuU=mq?nF zn4LbS`?3%O2>dOc%s(IecmHb|&E+E4v;Oq|@7E%M9>9Rz)yGI+@{Ir^B=>^=8&4|(9ymW6r44_)=1ZfdsT=|TwnXzvd5|Ct%3h;aGYom|OtR;G zD_gXQ3p;~My~wD78}rQ*Hf=^o`oN1gZXaUDS!tYOkq`r?Y4Vz(FH|$r7T(1H z=wm^?#yJa+px3BKg&#>OO8f}FLuIIE=i=P-kk~yM^n=6>NJW6koza($p^y^q}@(G{q zIIbCEWdBG8erF09t-*lr!dgncg_0x3;%w>29tpcBeoir7hL$!hq)9zS$f{kt@KGC0 zxys1>t`D1zCg5G|X<_^_!-A2#OCmo->Yj!HOnp3QpxBT)IX^&1V zsA5g9P0O2uk#ePDiavIFA?S0!bNFCNM`AElQwn5Z`IynG5p4r!BG@RLr0@8fAS^=R zo=-B_6voU+m5W0{q#6=g38!IA1(b_k>BxR&d?@_3?{dgj@dl7VaV{?zaaib_;0X;T z<+u#A$~ES?%v+NK--0DQ1;J01l+ECTGukEA-yUsP!?WDVzih_T&2S`|FM5$Q`p;Af z%MahXHt?)c>g!jXrXkaMku?2^SN=v53=hZW(7R0OjoXm;7R>WN;70FYu( z!uHFebWeOh{0&m~n1y(bk|IdYEPOYCnC-s2=pt&(PqK(&n$BO)hlCvPz88e$z2y3?nP13r{(03G^4ptz>^#9^ zk-6L5qw~?`)Z?VC>oh~$(2}3dcYqyf)|FTV1JzsXdinEo#GG82c9s;#6~4DgOEVuK zpidwUi}`CKk4^)Q)M#T`%wQo12qcCtaSL`$ z8C^VyGBmo#ovta7{5jK>{tEo705JhmtxPzTO#`HEE5LaQV zVzC%=UpGno_E}=`K$E;E13sy?LM>XP@!dKNGB47}iStb->2LuV6xk07Yr_XRoQnn^ zADQDd8B<0ev@I&jO)7>sgL+O3$qU&pD_XR748+gWG$+=*n=+oV9!#&w^F+OVMPUf8 zvcg#ifVqAS*i3F#9RswGdy@eB!3kACZa_z=%X*!EFJD}4I0v5xR$-PPcU1nHKTr@@ zO@HTnVg4$U6FQbs%s2wi{)yOu7SIMOJFiF8FROz&0-;4!4>^&5_8w3@Um3Eh(XlrC zTEI=U?|bkdyQHp3f1yaoC~-O#p2uPXh+8_~T=c?!XUWH+l_(5$2?RcGkR(B1f8_(m zSaHE?Zgv{QVp(`RuQPML=oSLc8+tIk{3x)ZkUbq@mvzaZ6eN2(vd?ObSv85Ww1SVP z-BwjSMiNT`pyB2RzKI=mAYiK1A6cdlizQrE0*M?ft$E<%=kKAI*-_R9i@D(ASB&_z t?G#jXGtvAqYChD0C>~#>g8RH62n_F2#WqBRlL{WdCQMZo;jgwn{Xh8dAcX(` -- Gitee From 7652b049fb790bcd24b843d0dd7ce278a02a0523 Mon Sep 17 00:00:00 2001 From: mn_manan Date: Mon, 12 Jun 2023 04:45:08 +0000 Subject: [PATCH 040/201] Add std base library for rust development Signed-off-by: mn_manan --- tools/deps_guard/rules/ChipsetSDK/whitelist.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tools/deps_guard/rules/ChipsetSDK/whitelist.json b/tools/deps_guard/rules/ChipsetSDK/whitelist.json index 29df65d..bc637e6 100755 --- a/tools/deps_guard/rules/ChipsetSDK/whitelist.json +++ b/tools/deps_guard/rules/ChipsetSDK/whitelist.json @@ -19,6 +19,8 @@ "libhdifd_parcelable.z.so", "libconfigpolicy_util.z.so", + "libstd.dylib.so", + // Third party libraries "libdrm.so", "libpng.z.so", -- Gitee From e3bcbf7c55fc985af58e035d46bd8a05ede8074f Mon Sep 17 00:00:00 2001 From: wuliushuan Date: Fri, 16 Jun 2023 07:13:28 +0000 Subject: [PATCH 041/201] ACL check add Signed-off-by: wuliushuan Change-Id: I5239444f6adcebc90ac3e9414ea949fbae7e42fe --- .../screenshot32/acls_check/acl_check.py | 61 +++++++++ .../acls_check/acl_whitelist.json | 118 ++++++++++++++++++ .../basic/screenshot32/acls_check/config.py | 24 ++++ .../acls_check/read_acl_whitelist.py | 36 ++++++ .../acls_check/resolve_token_info.py | 59 +++++++++ .../basic/screenshot32/acls_check/utils.py | 58 +++++++++ 6 files changed, 356 insertions(+) create mode 100644 cases/smoke/basic/screenshot32/acls_check/acl_check.py create mode 100644 cases/smoke/basic/screenshot32/acls_check/acl_whitelist.json create mode 100644 cases/smoke/basic/screenshot32/acls_check/config.py create mode 100644 cases/smoke/basic/screenshot32/acls_check/read_acl_whitelist.py create mode 100644 cases/smoke/basic/screenshot32/acls_check/resolve_token_info.py create mode 100644 cases/smoke/basic/screenshot32/acls_check/utils.py diff --git a/cases/smoke/basic/screenshot32/acls_check/acl_check.py b/cases/smoke/basic/screenshot32/acls_check/acl_check.py new file mode 100644 index 0000000..f5be4dd --- /dev/null +++ b/cases/smoke/basic/screenshot32/acls_check/acl_check.py @@ -0,0 +1,61 @@ +import os +import sys + +sys.path.append(os.path.dirname(os.path.realpath(__file__)) + os.sep) +from resolve_token_info import * +from read_acl_whitelist import * + +log_tag = 'acl_check' + + +def whitelist_check(whitelist, acls): + try: + set_log_content(LogLevel(2).name, log_tag + '->whitelist_check', + '-------------------------- Trustlist Verification begin --------------------------') + check_pass = True + for k, v in acls.items(): + if k in whitelist.keys(): + temp = whitelist[k] + for acl in v: + if acl not in temp: + check_pass = False + set_log_content(LogLevel(2).name, log_tag, log_tag + '->whitelist_check', + 'precessName = {} the acl = {} trustlist is not configured.'.format(k, acl)) + else: + check_pass = False + set_log_content(LogLevel(2).name, log_tag + '->whitelist_check', 'precessName = {} the acls = {} trustlist is not configured.'.format(k, v)) + if check_pass == False: + raise AclCheckException( + '-------------------------- Trustlist Verification failed --------------------------') + else: + set_log_content(LogLevel(2).name, log_tag + '->whitelist_check', + '-------------------------- Trustlist Verification successful --------------------------') + except Exception as e: + set_log_content(LogLevel(1).name, log_tag + '->whitelist_check', e.msg) + raise + + +def main(): + set_log_content(LogLevel(2).name, log_tag, + '-------------------------- ACL check begin --------------------------') + try: + hdc_command(GENERATING_TOKEN_INFO_COMMAND) + hdc_command(DOWNLOAD_TOKEN_INFO_COMMAND) + hdc_command(CLEAR_TOKEN_INFO_FILE) + file = read_txt(DOWNLOAD_TOKEN_INFO_URL) + clear_token_info_txt(DOWNLOAD_TOKEN_INFO_URL) + acls_dict = check_and_get(file) + acl_whitelist = read_json(PATH + 'acl_whitelist.json') + whitelist = get_acl_dict(acl_whitelist) + whitelist_check(whitelist, acls_dict) + except Exception as e: + set_log_content(LogLevel(1).name, log_tag, e.msg) + set_log_content(LogLevel(1).name, log_tag, + '-------------------------- ACL check failed --------------------------') + finally: + set_log_content(LogLevel(2).name, log_tag, + '-------------------------- ACL check end --------------------------') + + +if __name__ == '__main__': + main() diff --git a/cases/smoke/basic/screenshot32/acls_check/acl_whitelist.json b/cases/smoke/basic/screenshot32/acls_check/acl_whitelist.json new file mode 100644 index 0000000..b5c2707 --- /dev/null +++ b/cases/smoke/basic/screenshot32/acls_check/acl_whitelist.json @@ -0,0 +1,118 @@ +[ + { + "processName": "hiview", + "acls": [ + "ohos.permission.DUMP" + ] + }, + { + "processName": "privacy_service", + "acls": [ + "ohos.permission.MANAGE_DISPOSED_APP_STATUS" + ] + }, + { + "processName": "inputmethod_service", + "acls": [ + "ohos.permission.INPUT_MONITORING" + ] + }, + { + "processName": "memmgrservice", + "acls": [ + "ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS_EXTENSION" + ] + }, + { + "processName": "locationhub", + "acls": [ + "ohos.permission.GET_SENSITIVE_PERMISSIONS" + ] + }, + { + "processName": "useriam", + "acls": [ + "ohos.permission.ACCESS_AUTH_RESPOOL", + "ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS_EXTENSION" + ] + }, + { + "processName": "pinauth", + "acls": [ + "ohos.permission.ACCESS_AUTH_RESPOOL" + ] + }, + { + "processName": "foundation", + "acls": [ + "ohos.permission.PUBLISH_SYSTEM_COMMON_EVENT", + "ohos.permission.PERMISSION_START_ABILITIES_FROM_BACKGROUND", + "ohos.permission.GRANT_SENSITIVE_PERMISSIONS", + "ohos.permission.REVOKE_SENSITIVE_PERMISSIONS", + "ohos.permission.INPUT_MONITORING" + ] + }, + { + "processName": "dscreen", + "acls": [ + "ohos.permission.CAPTURE_SCREEN" + ] + }, + { + "processName": "sensors", + "acls": [ + "ohos.permission.GET_SENSITIVE_PERMISSIONS" + ] + }, + { + "processName": "camera_service", + "acls": [ + "ohos.permission.GET_SENSITIVE_PERMISSIONS" + ] + }, + { + "processName": "audio_policy", + "acls": [ + "ohos.permission.GET_SENSITIVE_PERMISSIONS" + ] + }, + { + "processName": "msdp_sa", + "acls": [ + "ohos.permission.INPUT_MONITORING" + ] + }, + { + "processName": "dslm_service", + "acls": [ + "ohos.permission.ACCESS_IDS" + ] + }, + { + "processName": "accountmgr", + "acls": [ + "ohos.permission.ENFORCE_USER_IDM" + ] + }, + { + "processName": "hdcd", + "acls": [ + "ohos.permission.GET_BUNDLE_INFO_PRIVILEGED", + "ohos.permission.INSTALL_BUNDLE", + "ohos.permission.LISTEN_BUNDLE_CHANGE", + "ohos.permission.CHANGE_ABILITY_ENABLED_STATE", + "ohos.permission.REMOVE_CACHE_FILES", + "ohos.permission.START_ABILITIES_FROM_BACKGROUND", + "ohos.permission.PERMISSION_USED_STATS", + "ohos.permission.DUMP", + "ohos.permission.NOTIFICATION_CONTROLLER", + "ohos.permission.PUBLISH_SYSTEM_COMMON_EVENT" + ] + }, + { + "processName": "softbus_server", + "acls": [ + "ohos.permission.GET_SENSITIVE_PERMISSIONS" + ] + } +] \ No newline at end of file diff --git a/cases/smoke/basic/screenshot32/acls_check/config.py b/cases/smoke/basic/screenshot32/acls_check/config.py new file mode 100644 index 0000000..dd6281c --- /dev/null +++ b/cases/smoke/basic/screenshot32/acls_check/config.py @@ -0,0 +1,24 @@ +import os +import platform +import time + +# 系统分隔符 +SYS_SEQ = os.sep +# 系统平台 +SYS_PLATFORM = platform.system() + +PATH = os.path.dirname(os.path.realpath(__file__)) + SYS_SEQ +# 脚本的执行日志 +LOG_FILE = PATH + SYS_SEQ + "native_sa.log" +# 设备上生成的token info 文件名 +TOKEN_INFO_NAME = 'token_info_{}.txt'.format(time.time_ns()) +# 设备上生成文件存放位置 +TOKEN_INFO_URL = '/data/{}'.format(TOKEN_INFO_NAME) +# 设备上文件生成命令 +GENERATING_TOKEN_INFO_COMMAND = 'hdc shell atm dump -t > {}'.format(TOKEN_INFO_URL) +# 下载token info 文件存放路径 +DOWNLOAD_TOKEN_INFO_URL = PATH + TOKEN_INFO_NAME +# 文件下载命令 +DOWNLOAD_TOKEN_INFO_COMMAND = 'hdc file recv {} {}'.format(TOKEN_INFO_URL, DOWNLOAD_TOKEN_INFO_URL) +# 删除设备上的文件命令 +CLEAR_TOKEN_INFO_FILE = 'hdc shell rm -rf {}'.format(TOKEN_INFO_URL) diff --git a/cases/smoke/basic/screenshot32/acls_check/read_acl_whitelist.py b/cases/smoke/basic/screenshot32/acls_check/read_acl_whitelist.py new file mode 100644 index 0000000..59538c0 --- /dev/null +++ b/cases/smoke/basic/screenshot32/acls_check/read_acl_whitelist.py @@ -0,0 +1,36 @@ +import os +import sys + +sys.path.append(os.path.dirname(os.path.realpath(__file__)) + os.sep) +import json +from utils import * + +log_tag = 'read_acl_whitelist' + + +def read_json(path): + set_log_content(LogLevel(2).name, log_tag, 'read {}'.format(path)) + if not os.path.exists(path): + set_log_content(LogLevel(2).name, log_tag, '{} file not exits'.format(path)) + raise AclCheckException('{} file not exits'.format(path)) + try: + with open(path, 'r') as f: + file = f.read() + return file + except Exception as e: + set_log_content(LogLevel(1).name, log_tag, e.msg) + raise AclCheckException('{} failed to read the file.'.format(path)) + + +def get_acl_dict(file): + try: + acls_dict = {} + f = json.loads(file) + for it in f: + key = it.get('processName') + values = it.get('acls') + acls_dict[key] = values + return acls_dict + except Exception as e: + set_log_content(LogLevel(1).name, log_tag, '{}'.format(e.msg)) + raise diff --git a/cases/smoke/basic/screenshot32/acls_check/resolve_token_info.py b/cases/smoke/basic/screenshot32/acls_check/resolve_token_info.py new file mode 100644 index 0000000..25db52a --- /dev/null +++ b/cases/smoke/basic/screenshot32/acls_check/resolve_token_info.py @@ -0,0 +1,59 @@ +import os +import sys + +sys.path.append(os.path.dirname(os.path.realpath(__file__)) + os.sep) +from utils import * + +log_tag = 'resolve_token_info' + + +def check_and_get(file: list): + nativeAcls = {} + try: + set_log_content(LogLevel(2).name, log_tag, + '-------------------------- invalidPermList check begin --------------------------') + check_pass = True + processName = 'xxxxxxxx' + for it in file: + if it.find('processName') != -1: + processName = it.replace(',', '').split(':')[1].split('"')[1] + elif it.find('invalidPermList') != -1: + check_pass = False + msg = 'invalidPermList information is detected in processName = {}'.format(processName) + set_log_content(LogLevel(2).name, log_tag, msg) + elif check_pass and it.find('nativeAcls') != -1: + bb = it.split(':') + if bb[1].split('"')[1].__len__() == 0: + continue + permissionNameList = bb[1].split('"')[1].split(',') + nativeAcls[processName] = permissionNameList + if check_pass == False: + raise AclCheckException('-------------------------- The invalidPermList check failed --------------------------') + else: + set_log_content(LogLevel(2).name, log_tag, + '-------------------------- The invalidPermList check successful --------------------------') + except Exception as e: + set_log_content(LogLevel(1).name, log_tag, e.msg) + raise + return nativeAcls + + +def clear_token_info_txt(path): + try: + os.remove(path) + except Exception as e: + set_log_content(LogLevel(1).name, log_tag, e.msg) + + +def read_txt(path): + set_log_content(LogLevel(2).name, log_tag, 'read {}'.format(path)) + if not os.path.exists(path): + set_log_content(LogLevel(2).name, log_tag, '{} file not exits'.format(path)) + raise AclCheckException('{} file not exits!'.format(path)) + try: + with open(path, 'r') as f: + file = f.readlines() + return file + except Exception as e: + set_log_content(LogLevel(1).name, log_tag, e.msg) + raise AclCheckException('{} failed to read the file.'.format(path)) diff --git a/cases/smoke/basic/screenshot32/acls_check/utils.py b/cases/smoke/basic/screenshot32/acls_check/utils.py new file mode 100644 index 0000000..fc3d4c2 --- /dev/null +++ b/cases/smoke/basic/screenshot32/acls_check/utils.py @@ -0,0 +1,58 @@ +import enum +import logging +import os +import sys +from subprocess import Popen, PIPE, STDOUT + +sys.path.append(os.path.dirname(os.path.realpath(__file__)) + os.sep) +from config import * + +log_tag = 'utils' + + +class AclCheckException(Exception): + def __init__(self, msg): + self.msg = msg + + +def timestamp(): + return time.strftime('%Y-%m-%d %H:%M:%S', time.localtime()) + + +class LogLevel(enum.Enum): + Error = 1 + Info = 2 + + +logging.basicConfig(filename=LOG_FILE, level=logging.INFO, format='%(asctime)s %(message)s', + datefmt='%Y-%m-%d %H:%M:%S %a') + + +def log(msg): + logging.error(msg) + + +def set_log_content(level, tag, msg): + log_content = timestamp() + ' {}'.format(level) + ' [{}]'.format(tag) + ' {}'.format(msg) + print(log_content) + log(log_content) + return (log_content) + + +def shell_command(command_list: list): + try: + print(command_list) + process = Popen(command_list, stdout=PIPE, stderr=STDOUT) + exitcode = process.wait() + set_log_content(LogLevel(2).name, log_tag, '{} operation fuccessful!'.format(command_list)) + return process, exitcode + except Exception as e: + set_log_content(LogLevel(1).name, log_tag, e.msg) + raise AclCheckException(e.msg) + + +def hdc_command(command): + print(command) + command_list = command.split(' ') + _, exitcode = shell_command(command_list) + return exitcode -- Gitee From 0ad9ac8f4213663a105b7e273490a850ede5ace5 Mon Sep 17 00:00:00 2001 From: cheng_jinsong Date: Fri, 16 Jun 2023 08:05:38 +0000 Subject: [PATCH 042/201] =?UTF-8?q?update=20tools/startup=5Fguard/rules/NO?= =?UTF-8?q?-Config-Cmds-In-Init/README.md.=20=E5=88=A0=E9=99=A4
?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: cheng_jinsong --- .../rules/NO-Config-Cmds-In-Init/README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/tools/startup_guard/rules/NO-Config-Cmds-In-Init/README.md b/tools/startup_guard/rules/NO-Config-Cmds-In-Init/README.md index fac7744..f71ae94 100755 --- a/tools/startup_guard/rules/NO-Config-Cmds-In-Init/README.md +++ b/tools/startup_guard/rules/NO-Config-Cmds-In-Init/README.md @@ -13,11 +13,11 @@ 编译时会提示如下类型的告警: ``` - [NOT ALLOWED]: 'mount_fstab' is invalid, in /system/etc/init.cfg
- [NOT ALLOWED]: 'load_access_token_id' is invalid, in /system/etc/init/access_token.cfg
- [NOT ALLOWED]: 'init_global_key' is invalid, in /system/etc/init.cfg
- [NOT ALLOWED]: 'storage_daemon' cannot be started in boot mode
- [NOT ALLOWED]: 'hilogd' cannot be started in conditional mode
+ [NOT ALLOWED]: 'mount_fstab' is invalid, in /system/etc/init.cfg + [NOT ALLOWED]: 'load_access_token_id' is invalid, in /system/etc/init/access_token.cfg + [NOT ALLOWED]: 'init_global_key' is invalid, in /system/etc/init.cfg + [NOT ALLOWED]: 'storage_daemon' cannot be started in boot mode + [NOT ALLOWED]: 'hilogd' cannot be started in conditional mode [WARNING]: selinux status is xxx [WARNING]: xxx 'secon' is empty ``` -- Gitee From 77fc118ff06d12dc570597a74e928137909c2401 Mon Sep 17 00:00:00 2001 From: chengjinsong2 Date: Mon, 19 Jun 2023 11:35:16 +0800 Subject: [PATCH 043/201] feat:add chipset whilelist Signed-off-by: chengjinsong2 --- tools/deps_guard/rules/ChipsetSDK/whitelist.json | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/tools/deps_guard/rules/ChipsetSDK/whitelist.json b/tools/deps_guard/rules/ChipsetSDK/whitelist.json index bc637e6..80474a8 100755 --- a/tools/deps_guard/rules/ChipsetSDK/whitelist.json +++ b/tools/deps_guard/rules/ChipsetSDK/whitelist.json @@ -32,7 +32,8 @@ "libprotobuf.z.so", "libshared_libz.z.so", "libcrypto_openssl.z.so", - + "libcrypto_openssl.so", + "libunwind.z.so", "libudev.z.so", "libsurface.z.so", "libsamgr_proxy.z.so", @@ -64,6 +65,12 @@ "libhdi_input.z.so", "libhitrace_meter.so", + "libmapper_service_1.0.z.so", + "libinput_interfaces_service_1.0.z.so", + "libhdf_utils.z.so", + "libdisplay_buffer_vdi_impl.z.so", + "libdisplay_buffer_vendor.z.so", + "libcodec_hdi_omx_callback_type_service_impl.z.so", // by libdisplay_layer_video.z.so for hispark taurus platform "libhdi_video_layer_client.z.so", -- Gitee From ad24d9b07ded5954815c821c55a8ce851cfacd3d Mon Sep 17 00:00:00 2001 From: wuliushuan Date: Mon, 19 Jun 2023 09:03:58 +0000 Subject: [PATCH 044/201] Specifies the script execution device number Signed-off-by: wuliushuan Change-Id: I5c5a39ffb1c4d0c4f8c27e1f2a303147ca96c000 --- .../screenshot32/acls_check/acl_check.py | 24 +++++++++++++++---- .../basic/screenshot32/acls_check/config.py | 19 ++++++++++++--- .../acls_check/read_acl_whitelist.py | 13 ++++++++++ .../acls_check/resolve_token_info.py | 13 ++++++++++ .../basic/screenshot32/acls_check/utils.py | 13 ++++++++++ 5 files changed, 74 insertions(+), 8 deletions(-) diff --git a/cases/smoke/basic/screenshot32/acls_check/acl_check.py b/cases/smoke/basic/screenshot32/acls_check/acl_check.py index f5be4dd..7f9238d 100644 --- a/cases/smoke/basic/screenshot32/acls_check/acl_check.py +++ b/cases/smoke/basic/screenshot32/acls_check/acl_check.py @@ -1,3 +1,16 @@ +# -*- coding: utf-8 -*- +# Copyright (c) 2023 Huawei Device Co., Ltd. +# 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. import os import sys @@ -35,13 +48,13 @@ def whitelist_check(whitelist, acls): raise -def main(): +def main(sn): set_log_content(LogLevel(2).name, log_tag, '-------------------------- ACL check begin --------------------------') try: - hdc_command(GENERATING_TOKEN_INFO_COMMAND) - hdc_command(DOWNLOAD_TOKEN_INFO_COMMAND) - hdc_command(CLEAR_TOKEN_INFO_FILE) + hdc_command(GENERATING_TOKEN_INFO_COMMAND.format(sn, TOKEN_INFO_URL)) + hdc_command(DOWNLOAD_TOKEN_INFO_COMMAND.format(sn, TOKEN_INFO_URL, DOWNLOAD_TOKEN_INFO_URL)) + hdc_command(CLEAR_TOKEN_INFO_FILE.format(sn, TOKEN_INFO_URL)) file = read_txt(DOWNLOAD_TOKEN_INFO_URL) clear_token_info_txt(DOWNLOAD_TOKEN_INFO_URL) acls_dict = check_and_get(file) @@ -58,4 +71,5 @@ def main(): if __name__ == '__main__': - main() + sn = sys.argv[1] + main(sn) diff --git a/cases/smoke/basic/screenshot32/acls_check/config.py b/cases/smoke/basic/screenshot32/acls_check/config.py index dd6281c..90ae558 100644 --- a/cases/smoke/basic/screenshot32/acls_check/config.py +++ b/cases/smoke/basic/screenshot32/acls_check/config.py @@ -1,3 +1,16 @@ +# -*- coding: utf-8 -*- +# Copyright (c) 2023 Huawei Device Co., Ltd. +# 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. import os import platform import time @@ -15,10 +28,10 @@ TOKEN_INFO_NAME = 'token_info_{}.txt'.format(time.time_ns()) # 设备上生成文件存放位置 TOKEN_INFO_URL = '/data/{}'.format(TOKEN_INFO_NAME) # 设备上文件生成命令 -GENERATING_TOKEN_INFO_COMMAND = 'hdc shell atm dump -t > {}'.format(TOKEN_INFO_URL) +GENERATING_TOKEN_INFO_COMMAND = 'hdc -t {} shell atm dump -t > {}' # 下载token info 文件存放路径 DOWNLOAD_TOKEN_INFO_URL = PATH + TOKEN_INFO_NAME # 文件下载命令 -DOWNLOAD_TOKEN_INFO_COMMAND = 'hdc file recv {} {}'.format(TOKEN_INFO_URL, DOWNLOAD_TOKEN_INFO_URL) +DOWNLOAD_TOKEN_INFO_COMMAND = 'hdc -t {} file recv {} {}' # 删除设备上的文件命令 -CLEAR_TOKEN_INFO_FILE = 'hdc shell rm -rf {}'.format(TOKEN_INFO_URL) +CLEAR_TOKEN_INFO_FILE = 'hdc -t {} shell rm -rf {}' diff --git a/cases/smoke/basic/screenshot32/acls_check/read_acl_whitelist.py b/cases/smoke/basic/screenshot32/acls_check/read_acl_whitelist.py index 59538c0..8029508 100644 --- a/cases/smoke/basic/screenshot32/acls_check/read_acl_whitelist.py +++ b/cases/smoke/basic/screenshot32/acls_check/read_acl_whitelist.py @@ -1,3 +1,16 @@ +# -*- coding: utf-8 -*- +# Copyright (c) 2023 Huawei Device Co., Ltd. +# 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. import os import sys diff --git a/cases/smoke/basic/screenshot32/acls_check/resolve_token_info.py b/cases/smoke/basic/screenshot32/acls_check/resolve_token_info.py index 25db52a..6c2d16c 100644 --- a/cases/smoke/basic/screenshot32/acls_check/resolve_token_info.py +++ b/cases/smoke/basic/screenshot32/acls_check/resolve_token_info.py @@ -1,3 +1,16 @@ +# -*- coding: utf-8 -*- +# Copyright (c) 2023 Huawei Device Co., Ltd. +# 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. import os import sys diff --git a/cases/smoke/basic/screenshot32/acls_check/utils.py b/cases/smoke/basic/screenshot32/acls_check/utils.py index fc3d4c2..545ae46 100644 --- a/cases/smoke/basic/screenshot32/acls_check/utils.py +++ b/cases/smoke/basic/screenshot32/acls_check/utils.py @@ -1,3 +1,16 @@ +# -*- coding: utf-8 -*- +# Copyright (c) 2023 Huawei Device Co., Ltd. +# 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. import enum import logging import os -- Gitee From d03436f823ca1fb2b1fa7dd5f921b9636098dcbf Mon Sep 17 00:00:00 2001 From: redjie Date: Tue, 20 Jun 2023 16:53:07 +0800 Subject: [PATCH 045/201] configure acl check & update note picture Signed-off-by: redjie --- .../app_capture_screen_test_config.json | 2 +- .../resource/capturescreentest.py | 15 +++++++++++++++ .../basic/screenshot32/resource/note.jpeg | Bin 96391 -> 96201 bytes 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/cases/smoke/basic/screenshot32/resource/app_capture_screen_test_config.json b/cases/smoke/basic/screenshot32/resource/app_capture_screen_test_config.json index 2ea8743..a1c3b60 100644 --- a/cases/smoke/basic/screenshot32/resource/app_capture_screen_test_config.json +++ b/cases/smoke/basic/screenshot32/resource/app_capture_screen_test_config.json @@ -101,7 +101,7 @@ "entry": "aa start -a MainAbility -b com.ohos.note", "kill_note": ["killall com.ohos.note"], "all_actions": [ - [2, "kill_keyboard-x-y"], [2, "permisson_ok-x-y"], [2, "permisson_ok-x-y"], [5, "note_content-x-y"], [2, "note_content-x-y"], [1, "shot_cmd", "note"], [1, "cmp_cmd-level", "note"], [2, "recent-x-y"], [1, "recent_del-x-y"] + [2, "kill_keyboard-x-y"], [2, "permisson_ok-x-y"], [2, "permisson_ok-x-y"], [5, "note_content-x-y"], [2, "note_content-x-y"], [1, "shot_cmd", "note"], [1, "cmp_cmd-level", "note", 75], [2, "recent-x-y"], [1, "recent_del-x-y"] ] }, { diff --git a/cases/smoke/basic/screenshot32/resource/capturescreentest.py b/cases/smoke/basic/screenshot32/resource/capturescreentest.py index f64eb1c..9dd68e7 100644 --- a/cases/smoke/basic/screenshot32/resource/capturescreentest.py +++ b/cases/smoke/basic/screenshot32/resource/capturescreentest.py @@ -28,6 +28,8 @@ import shutil import numpy import cv2 import pytesseract +sys.path.append(os.path.dirname(os.path.realpath(__file__)).replace('resource', 'acls_check')) +from acl_check import * from pytesseract import Output from PIL import Image @@ -396,6 +398,19 @@ if __name__ == "__main__": print_to_log("SmokeTest:: DISPLAY POWER MANAGER DUMP State=0") sys_exit() + main(args.device_num) + native_sa = os.path.normpath(os.path.join(args.tools_path, "acls_check", "native_sa.log")) + try: + with open(native_sa, mode='r', encoding='utf-8', errors='ignore') as native_file: + native_file.seek(0) + acl_result = native_file.read() + native_file.close() + except Exception as reason: + print_to_log("SmokeTest:: error: native_sa.log are not exist!") + if "ACL check failed" in acl_result: + print_to_log("SmokeTest:: error: acl check failed") + sys_exit() + open_wlan() special_warehouse = [ diff --git a/cases/smoke/basic/screenshot32/resource/note.jpeg b/cases/smoke/basic/screenshot32/resource/note.jpeg index f918fc26bd47ffcd3460399cbb50b2001807e35e..b0e8edb1d1aad167335b21508864d4300cf47ec1 100644 GIT binary patch literal 96201 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%0DCJbT5bVLqA&3MV9j@;?V9;Y_ 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 z≀q@IC$c<99GhHLSBnH4e_?lrn^>L{?XrawyD(a0Bc!)*a*8#krC+3?E6^zXKmm zlSRddms)M=uq#R10{rXB?M3}G*Ls%pbhFStGItV(PJ={|7ras_uJ2+ol20Es+Gvurw9M!HhLgl~Yq4M2@ad z5w{M=soCcrsh&k^%e?m^XqfoV@)NmSxLMleh- z7fY5^dxatMt$BZr)wt4$4;NxM67<&p*61crpV?Axd6T{j*?_Ah-vMEK1&)Cg?KKzo z2Sj9t3kli1_BsixSnDly;_J0H*RP(6Eq*9}M*^k*9m)qWZXQtw$F{-sAxp%+)*-^E zL}-s04EAz$Y5g9Eft@DN^^hB+EYZ*>w5%79CN7)#%jtFt8a5DD07NEj1zo^q z;ij#efy3~neR@s=$#%jJFsbK+E%|clczDB40cA-|o{%{*o{2gnr?X7NZT3F4av}gX z+Xrzy!Sm}T?FXeo!9>dPagsh8Icc5;Yl8z)(>~=qQ?fP{4`+67KlVCQDgMTV10S#Z zQ;vYntwEwHpc81J?uBz+0l#S4Kv;EYK#%=xD}Eh}Gv^rQe#*|OHOL=!=xf-VD8_sL z<}PL~tQ#=Ss160w7q+3hfVoc`qduqnU69jGt`&Mh`iP&_g(+yI&QF06Kc{98#{MDB zkuch{W*fy2_TU{Mwb0}Yte99qA{L$*q)B>`L@IYvHQK;ocb@kBxw3<1YEGv+fzTA+ zZ4`eICD3x8wNdsX=3vHa10NPh8+6&>nJhXO3VzK-qcVFN{c}8nn!jD^?mol0-KbXZ z;hKqpK%*;aDsivF?c&i`v3cLr#gN-&S{EL zOwbOiIxPQOFb@QA{~eKz>-aw4J)3v1?0e=`sZC4_2L8y)dp6CA-m_Q{8z8VO9m=v| zV{3800eaz(q*zoI9yjA?#5_MR?6KG#_M$G(^Qxgs;ue>?AtJwHOR?3sFuFXLc>?j> zDxABf0vOU91QV7A7yIiJwt5{`-JJD#!SrLf-UiaxW~s%G9}K8_S-QhC_7TfoPwr`c z9I)GbVTQ_tABTyFqOOvy>EXh&y_bIq_<-~KRGZ?S#HIV}$DUd; zDZd)N>Q{eDG@Zu(C*aHp!SA?RO8_OFCuD-;Joy7K^XRu|)d;wlcNkd)3uo88Kz!h# z!KoDoe9&i*R6t^ng_%+K@R6DQ@^uoSgV;!bkfkx+SK!(G4YH<@MU4$VbS*H}(bEH# zPvh5%5P&)PHRiC%>A6q(JACy1i&?>6vc&EO)A;{k6&Kr!UzDv7w-Mu~y3SqP z5BG9Xs|Q3Zf~_p{4kXp3Z!YNwe*)?xW0PLUsNzf(Xbm;89I*}UZ*wrMBllsJsCKq# z8to?fvLnLIzxgR}5*K4&=J_m&6dtJ9On^=61|&E?ZV5$KY+&Bew`>2A6!Ppz)Fd52(#+rAKXaQJIw>y=jS7SbvX+ zslkiEEBm~KJ@<(WkT-&+r85_!kIXFgY<~jV@K&QA^=NFL`AHl{mCNCm8+bEUlU4^P z)>*^B401JJ^K3%5GXHZ@)BPGWXI+z*T0tGJF)N9G4zRLTzU2-B!@23F@ z$ux;sd<1?aNeimdCvCmo2Hf5TW-glhBH+sG^0djPB}K231W`NbJhcn!{TfmwLKZ+? z5zc=>l_tH%vX7Hvup3Zi&+aob_yEmQ?FRZTff|jvhDV3n&*tX3e82E9;kW&x(syUV z?qVK->RT&)!FZ{g_aX*>O>Ox$Vck-_htu;u?h~=xmI=?kKNJpG2wXHY-0%2rc8NE8ys%w6RyPr z=ELND+3#rKR_5L;Fps{Y0}*003H$LUTl%tQG@PZ!hif+81*8M-b1mV$dfa_UT+nfL z!xkQ}T+>?!Qy4j>ENHFyTBt(nY?M)lEbCFKnMN6Qx}%A52j|k#7Y@N1G(6Vk2SI)zV8X=mjT+Qf3H^jgm(7>@HYP#>_A!0l%fT6|r#{#3*Sp#vGySB6poQ1atgk#nwFf)(30cR1CY8a07Q;jAV8)MR!{IkC0z`*H zwtVPVY2WB|+y9_6{~Mr@g{3NeWU=?L>|+3BxyQ8x7w5y)Gw2#{n-zKdS4DIwnB0(( z1;&BNqJG#&7n9P~+4rsqo7P%6)TtdkX8rI<+=t&b50mwpo6kX2M`_^uKq+q3X^skG zWQm!66`g0|(ddbZe%wagglsQ@uj>YT9j{{~;s?M3CLY=P8yD>)erL=i|?C{9PKVWJRk?N?kJb;^4aK& z)7ra#6mNro9P`E+p#Mem!l&uj5_pb{sUfX1+R;`2fKkK5-gZ(fLR%|w)Afp5pD)8P zw+YS?7?fCFLKG-$SKv6>HOH!JYVCCMaxPpP|MsO;ISzO8M){5^w%d)0y@Qw)qgcQ> z^i0@7#kk{1$87(B?a+<^>6=z2Gc&d4NT)0JEBwKq#0S&>JlYtoRHiuoXXvAep!WDt z0JJv$MoWVvNX>M~p8{S}@Lp|hDnFdKodY2HYIHegcDD^At?6rKkTZT~O?7*} zsCs92n;8HZzZpPHihOY!mK3t#+MYN>zL|$Ne^dtBZx!N~u)7387`#QEJ;@3O|HB5Xi(PNR3t%HMyYgtlsEc7?S?_)Mre$U^WE3ewUn{{5k{Qo zV&RIWKy6BVsWxT2(AU)gUmqfF23Qm|0z?auv{|o^&3HZ77&Q&SpfzI9_rAr0X%_EP zn{ggfz0jcEGHek<zAbb??_EA3{dmbB8ZaeU1_vG0A>P2|ja_ zrWSb1aB)@u0Tq?vR~oFyb!_m;87pt##wKTf{3%cYj=wmO)SQTO2ziO+@$d!rK}qhv zD@K0;2LkmA%Liv*8~}f5gF)1`;tIP0cb+X(+y8*wQs;HkRO*qUWRJFa?B1dTnFvU$ zs+mMX+W^-x<~m?1!S{9mM6jsg&Xos6m{kEzQw|jg8(q(4#57NLbT(cWdP7+O){sf6 z2DYf`AZ;)ew+>zIzG&wFr#ApeyBSusY3oI_rvS`$nojAEyh_{0Xz~>&!E2~%-g3s9iIIB7TA93#j4&~bYk1Lf2BoW?wr za*PR~C{rX!OkyZuoF}9aG8x4fhX|Q*7!Nb^?EkI(?)`T99^Uue-{1ebwrgKu9y9m7 z?zPtaS?lvzHQUocU>{cPj?6yoerv_yd5N;GI;^pq#uGk)iKK(%IDFReT7nFGluf=! zn=eFjFZqHnDU~YXGOmudZIm(3#N$nR9($RzVzu_4iW8r`KIu6g){8_Advbk|(wQcp z4ACzaF~0yvK(&&pA|BSw<2({@}!D9t)bBm`VsndEsVXBQ2J0g z0FQcQX!)U{>mxGIz@xs>03ZirN$Z`DSpX;{>Y%~Pu#?$H<62>+jM2m3)Suj0jhc3Q zP666|Zz)s1NL4_B1u(caV137DO>2X$0Ew@|<5v~gK+4ad&o{fIzNu3INOR@!0dYy28$vue^HdSAB8{V}1mq zOt6ULAZ#r-CzNcWvF}1$oaaivdQM>#C9>$4&Cmro2lb-7f@ZC=dD?}WZr&dwWU9v1 zy$o5p*P>cbN(AmFINfMA%;;tamrd3LmnHeU6?Igc|MQ1iC* z*rUVCD4^f&vL?bLFQT1c05#JJN*J_6PavN&?m2H@S|URCh4t*(2cHrw-`KvdR@)V~ za@}S%{~E^xoyJCq-pS!f!74vGB6$mb!-nAXp@2q2C#om1KNoUd=3^r;3#mZ|%5unWD5Y5SpDK!F ztslh%3Oc8H+$SXX2VoOmt~lQkcIB!bB{QCJv6UjlUsCWo(5q}97d;TFdI~_I zQ*J{6IGJZRj&vsVEx|%9MWZzLX(Q{f8p6nnZna{>d(!HAVs5h+GheId!Z;2C-s*%b zByp2E*>Y9TvQDG{m9HKaok;P+*cJ;8+8Dk}T6zD5=_SF-(q<2>BS4xqVP$#*R!5%l zZlq0|e-Az?a7JFMEEU}crPJ8vqm9KDY2`l4ZO!9cHLjK!9pg5eq8zDHz}-u1 zg6XEBY%nj2(q@7z$mO0p*=pbpI&T)cA*=Fp;~nhRu&lL@Y>mq#O>TbwUa5Oom6X?Y zsdgJs4L5M+-vLEDN(Fgh;32frrpvwPJCu1K^|b7VZ;=)|?e9?LqmLx=K&wri3o#HZ zmNAXpDb+^ee}dal!+7o>2OmL{B;b!9)h7`ac1ez>qSYIog{^#7-;0biL|ENdm4B`I z@;nLF2jij2I_LUT@)KtA9yeMzCf_%ju$C?9DpU{Tp)BHubp0`Ty+-FPo6R@4ZYf!N zqh`qxgO`=KK|QZdWdr$#gv0RaZmH0KwbjKqWEHpI-h;OK^B7;H!WB)%D!hSP^IXKo zXo#dF(68DKO1g(9MnsCT#JkKI6!(`Apjcl+f!CP~DLMDrxF z&>PQcUGtr%qY%FFM8rX^x1bo;HZBJ03sPY9%s>`Q*`GCd;2SsUiv7*-yMC5NcLoh` za;Bsy(9mXeBqE|@US4L)!W|FpIAvRzr+?ym+1c1t@jmQXUuWQa4OLN!295v&m9Lzs z(v+{kbU6d~YA>{$!IP_A5a{l^HJHEQe96Y;>TTzn2m^$X_4ONch$FAmMOM{8B|ypn z`0BZrz#|-B6J#M%uwJUI5)VfkpdPv+YpAW~F)~q$1bg3M%@@vwgWOiVF;MQR*OoIS8LlY^+p9AYHb@1%6g@_Up!_1w(-&P{ ziyUV%zxLJ-3dR4zZoX?0z#9R;^JndCMH)k=&(DMt1r!)w!xSoR7wjN7z$2MR3;wCp zuq?Q^wlO&Ka>h&_x#5?LEWV(B>|K|5f>4fxO0WO;68Afv~e_D>3Yc!#siD7y-x4eM9S-i(eQ-7N94SyvEEYS@(4y zdgzDIG*JBqdHLY5#vhbBkam1s^eIUy{_emQK}(e=S1>)kjUd8qmP4W__cZ|=@@=X9 z=nUp$VSQC}bm74a* zIN14bsZ$j-Vu}+Es@#+vkC*v76J4dT>N#lL(fMyAHewG5!TAV=XeZGigH^$>pQ7>^ zLK!lf5t@JrAxiTSGSh@xl1x=&H|Xu0^7i&Qvu_uvc8foLy#DYtpLwOhqUT^F4vOo5 zW_fmFs+3V(WH1B05`d!U?!o7KJ7j?*x8g9$Ja+Ta{LuOkQ>o8zTz%1%0|)OIRA>%+ zf(c$j=$SF?bioEcJReBZZ(P?rzA`=0;;rW{xg8JgZIHIJufKHh!U=G&lc91N3M8OHndRMgGKO8*lqjMWypwmXV|`j;P0HdkqWo%9oXpcI zwTL}hUb9eOUSHfwx*_eChmXsI#V|;P<~0#in+V&xm3{fCq8uYN;dwYb2bQzsGDCn; z-MY_agV5qd0&DH`7gTD3tIm4qI6*D;5FjnoO?M*;JOz?aWdZF3V;-?4if7>W((iz| zIjw6QQh_uGP879lq&)Q~9w^QxyMR(gD^zdvL9@T;i)H^EXt%%faF75)Vo~_VVUl2T zB`4+{R8h`7l+o3keaGN^GI|dnwHTvs63lIPomn~xm!ZGe3D-QT$oPhV3U7RK|DLM?SAuuG1fs7CH<{Wt5*)o z-F708v=%$kEM4wOF~E4aM4@7*KohC#lyB!}fO}IFY6amWTvVk?G~$UG@W8BVs~zQHs!-Em{K5iqh=}tEHFsAl=7P2I%#jN>a{Mw6%>r`RY#D<1!A$l>%>V zE+cM%lQ~k6&=c}-1DH_tTM_Sgy8|3q*(o*h0Ekq-x;3U2%~H&AS{8SSw24j^rv}i0 z{xdS)OrQb&rmn%MM+DcVViOJ~j4Z47vX^85M|JPKIB7v&JS4E6uYW6 zLXh-_SUQi)@X8g?$2C z2d@O81Y_9${1Je`oI7*fZ)cyS+$)F_7`n@Ktmny&DFzzbD}3tcXg&C=*@mKMt?CgK z@8iY#&PKQHw!LE@PuDv>rb!Anb0va%$AsIvY~5V}vu6`?x5?8dGR1}h8$W0Mc_!Lm zC-1^*etTtMQ*xyC+14i87g3nz)^mX30eoJuiQJ7 z8igjVd}Z$g5q+4cZauK%Tn1hO>Nm*+q-b40YsMfdWWjuZ!JkV6Wmt27S;T+~SZD@P zff=_;2X=Y%%YKYW!OoOm+PLaFK)O!CbfuI6n{6aH0nW4we^mhV!%~CA{o(!ep}zj( z-)zOuF0grU05k+lz_<=CT&ssgjB}QA3WrCyo!wi>aurb9)6q%1$Lal?R-f?v+U)Gd z+To%;gLj-*Q#GYuE%8DfW_joIvLR@s;jEu$*GOseo{^CwBV|t}8W>gO%{}uD0v|Rj@2~ zP_Y=u*G+n+{D1Q~(|+6o_gCMp@i*q4@zd4%SD%vh4kQj?odx;;dvwDpx;V^+H#i6R zbbUY{RtU-ED8AUPoeHo3QHzDidTDS}@dpM7X3j?GcRQ?hBTubPMQ6dDTe)vu@L=Fcy8|n#s78 z*&{#hcNKXtVOIA7Pyk#8TeAAFQ^UG?z%KvpW7-U6F?{D=NZ-F13TU4C+QlI9gX|H} zd_HEf4`>i%fJqB8P76(6p!S#3;>7VoK^7L>!^4N_Y9^x>yEK}4q%j^=_BQxvkq6f@ zgij+Uy(|x6#E8;+&}4~AL$r|wABD5YPH8MUppnv*yrBA(E_}<`hL9CgS5pe!U%cH@ zrYIy)7q`_5K+xKRM<1Sm7=DjfyUcnGJW`XC7(z9C_PoglCE01FCLQ2^y;99j=)U85 zNgx{xlpssn2feW4W=FjukFi`_G7o}7`=hP>i|5_-Z}A$gf}i>xw~~)SS$)1rbZu`l zveDiFI5RB|520q})KlPi>Mb0+zP5%V)gibQU{8QMh!N2V8aSV2e#9lMNeeUz+A8PcKNT}fpgJ* z|2FYg`IfE$mh}js2b_-61xmfGX&n3g8@12h*;(oP#?%LWH`c|8G?Amp=BIJU%UtAC zw(?4zQE5ycc^~-`fPm(3rqnZjU-HaHCiy5&kb)mO#-gX4>`!j?U*^B`XvY4`q4mp9SK`b*GT4D=!I(+zGZo+|zK=QiKiQYiuR_H)5$SI+?4NH(s}#WG*bh3z zeS#$O@oj@vr96``%FT9`MnBV%&wuJP+uFRv>onSLEUBCJwT-wRt%QJ2WKRK~xWvzr z#R5KY@k}@~_&R~O&z&50?IO1|+ZA(1s@r$AdoJlba8`@@0?ec~e%v|Qv|Tk!o{-xf zjB`sV>1vRwxyjL?*v!FCT1FxlWXKx=2I~8uydJt*Of56m7W4fA*@cD!pok%B>#wq=DSKvdA2c#CUoRTA&F(*4DIi$` zAeH|EJ9mGDs1o0GphTGl9{2nfvD5ENFhkFm>~d3}hn*ejDTwI9YED`hE8PV?SvzP0 z`Kw$`uhH*^R6wO_5n!Z{k2HE}tpdZ;w6@SK3CjQivlUjn@8X_{G!|7)UKJWUR&)&8 z?kjp$SQNK%OO=OH;_5cpirYnoFv@Tr%<>N3WkB&o@7= zDD_{>R_}rv)=}CCr4z($rs|@)q8~3DE!RO8mg(YBf{Fx)W;5xx-v2IRc#CU3->$6E zx>H%BW?Oe8VpVCm;S7*7x4Z~Cy8jrXa$K~i0$Ib`8(W#`dd_Y>jd{8N`cAfi8sGF2 zordq}?i(-meo?XbN|53^4Fezm@S}1>>(=L8AKWYDW;a_ms}=eeE%kel^y}f&2xem` z3a+fOtQgz-MlJUJ_zlMYAFS=zG4s;qv-fjLFI(k+FlWE`t+LxJ*x zO5Djid-IItGk;vPe_uJ_2X4OiMmA9YF!AT6aa3-do%B^v3Cg{8Nrt!I{dV@zgR>*Z zhnguqfj5W7Uu@W@9w$0xf!hNFIh?=IhPd;;c|T2k_GSOmHb$R%|1)t9>YW@Rh6jae zoAV1(O_iJ;mqN+ExGauXpEZrTD%`^f3|36 zx-1fy+NHk!-R!pufo{PUOQTg?NEOUjnobiQQRzZT8tGO02=^kL($&_HlfevLKfT5IyG*Z+sw1*s)4 zmM2};*87Y*o~+uxCTWAD+%E4M7DucH3R&?j7q)IP(*~L~Cqk&RcYINS(cz(xs~`=y z6a&;&zF+tML_XyEXXSr61eT>QxS&B>MY%vfsUuwNLigiTXzNqW!wWT#P~bO20kMABKou(9|*h zg5}TP`G0=R8Ya(4#6qDf^b@XkHzeUV1;psafEiiCnvo(h)Dts6o?s1vf2Zd(J!_c# z54FtM&qyT5F|?~^k{L7m$%pni)3xg(!4+I#c<_=a9qPFbIwG0FBqY8X5FM^{IP5;< zsy0UYP>nytvfl0Fl5oN6i_(BeKVU0?fckRwN8}l^Rn|uzNH}P2TBv!G2WE56Cm19f z7x0MLd>l{Zxk^l0pS;q0hgz9f6S>djZ80);{JOKxkI#ILSv~lCuiSj*dGDTJFCS;0 zV2}kBQ;?l@%u0zTP`H9|{J8C_=9jbRew>8e({x)JC^JN>$o->*iMbuHEDnI1GHsB` zL}JbCQKLPtrq@KQ&+*=s`lzGh-9SRDL&tlQx%rzt6Rc0Zi^-r+{pE!EokO?!rf6I$ z#If(2g1BJOP5?aqq%%_CfNcYpC$T_7S(`dOYr1u3{eoDllaYj@dx<9V9yiXy8wd{w zWbo2@FBI1otfZ`&bE&0P<_K9NkKcoP4M}5qz(_BI<^hc-Xw3A<;|1IFuCO`^QE^C& z$K2eppuH)cGtwOP6lKv(Oph}U^AE~)Nklw04D8WEKooC4bFddDTAPN)A^HAETD!%; zY14w1)VSd{RbCq+`;0sjYlP=TnrU}uXLY`tAs|>eRQH+a2Ch{}eQdD{r8!V|-EHf# z&fQ3k6`^iY>SC;wIk&Y5sZ$C{<@BDOrt8K)!#lVbiLbbQv^-~FObHsHfvV1Usat>6 zQ=OgDUmDyZ`Y1;0g?dkTuTYXyR9JwL!yxC>oTzs=KVjq7!X zJ$>qTv@VjTd;6G;dTjiBTF-+4)I_VNNLD*=c*mb|7riPAMNcr!B$b&SpR3p|bXaX* zwtwMa);`v$mJ5?jtm_+(u=@62!C_HeGO>;&4qt>hjn2VQneP}p->MX)+|YW#oHq+V zvsLa6>Q^@3=;d;=Su-q)yJ#3gASC?SD@$_}hwzP<~Tg+BtMqh6-{TLxOv_3}_phz{H zAsFRiLmv+9s)L5dq1UWwGtFlw^AcE`CNN|AdcDjWy4IG!{c|sXmH-KXvD*b3lZv1{ zcBPSPS_4nWwVI~QI5(WX!wG>CR9i9#O?1rI)G*M08U1`ZBqI9HUf#7n+1D!m^pRiv zU+T;czLeHBiI}R~0*PD>ZTykVu;#T!&00hkPUfdHQ$^~BUmCp9fOCNIR<;Q z!jEu~^;-Lm5Na_Oyh5*eH3ZBBf-QDZ!9w~GthXB#z@wW&N~E* zT-+sxnW!m!LW!HP$5o5S)7^Nh<1O!jqj_95if4K6dBL0@Uu9&x(__3dTK~@Bpc4s- zUrK%PD&^h8B*iAjsXAq@k$SSpO}{LgCR*;qOX?b3vrf(7a@89_Ngu^03##hlGVg;xE(1e(GzWLf@S9tqb2S+^xeF|s{P|5%i2?pd~Q-)Bmi}- zmza;YpSJB;)-AG*Ej~2Dp%1Ul6s~BbxtL?RwXc#x4a|94Dl4P7ykgB$d|S!Y6TMGH zQ{z*&B&RJTj@KQ;7vC_J@ry)Z3Fl#)6ECssV@30)$pCv1b)q2s?%-CjTlw_@*S)!R zH9Jg$TeXl;9W`gMq$v*cE{o$EZeZ%=**$UzzXY8X;R_XBEKJqMZ=QGXX}vYKI`E8~XBfxE+m|HU~!-c8Gs z5MD#TY5qf~CU-`t1{Y5J0Ik$AT0m@YQ0LtMScW6lGGoOpZ}m{>{I&T4^Wpav@{ait zJD>GLTdy4z7BA~4DR@S@2AUoSdb}6q^l}wF9qnK@OSw30T7s`A>9ZzTZ7SxvQ)1od zedX?#-D)kfc+4Twdw!r5ho8h9xdi49du4M7@-oaEgJqznHbtG65t@C6ik2N*`bn;-UdcMF+Ewzt1--Y% z;92ntFZ$!B-VMIzzoZzWc#u`}90BR&V3WoqzAX>g-vPinJouW%>-pjSyPuvv-hbM6 z{7aLi8q$iIL+<)`jf!Cz6Y$PK?ohWm%DTB&6V!Wja4p3q9*ehbRS2R^-VtQEo{UCs zT`eb^_&C}0ks^vR@ZowNY|0@nb-~LxGK+n@e4xjE%)<&kuPodH$VsZDNv+mS%ihyv zO6^qZw)k&0kqNpQ5E@y!)DNm5FB5L&N#JQE&y1w?j|}XgLKFxH%N6mgB#Id2pem$<)oFMeD`u?}6E$2s@cKG8goa^IA2UAL^&;I}k zWXDE^0|Cp?yNfRJcgMW0DZNY~L++hZn&c&z!Fp@tg5G&#)mqpX{Ej}b;ha3EKhwR_ zy{vQ@RBPUZ8GPJ1tzk3C0;y(>J13(GjH+4#dr*YOdDd|PbY+0~>$HbA9nq^J*1w8+ z;>*UFSpkx9Mrg5rSJ2UNqfO0@B~25_8_rBRP1oL z1Kjk^s0pbBIk{e4X0~^1>$6)N1;6y6zHe!;Ci8jPBhGq)Rq`(#(8JS=w&~rp5=X ze0%n>@$miYi%N_j4UXz6)mPDn81GSlbk~46#R%Ck8B9QD5=?m|(;xh39POcij}Z+e zxzVg9&!+&+dO`<-4mlCqIJKgl`|?r_hL>{*>RoTSUjU_t}0e z5w}*gt*?F^#(y+UWjq#`G}Q zlk_7@SG&_d$&XI3ggd!M*$xq^^Zmh0KT6dK))^Cog;jIBxKlwh5%vMI z0-+jDDN2OVQi55d!O`?W6w5)e^(v{0THP$OnsYfRi)*48_7B zrgKL`L{NJlushbu_VWw_?sS$nFfRAOg;SU+XjBYXT8`etReSR?U}djnM~sofAu2RP z;~qU8SxHl%xk}CQGdcX6qlsDWS6WwLZ4}e6Uhf?YRjDZPPDe?E5wx@0J_Q7|*beJ0 zT68}_-f4y|xz8VUK0&YVF-w>jfD0|gI|X@56~`EFxPDk-GuIYbC=SLu5JYK& zK!K`I6TZo!RG~r^V!HG}GvE_SHd01lXojD@VywRn3<*?=AC8A7K-W8H%8!o*)5*{R z@Cnl`a6{T+vSZ{b(v()|OeAi{i`GVzUZdPb)S%i^;BrU=x%`0E@pMesk}UqOpgV$G zHKU!CF(c;4*Wh)w1ta?)aK4xi$imNA?=pds%=*+~TmEy=Q^*SfeRwKfD7Oe%;3|+4ntBG) z@`3Efy#b?j1-Gj+U04pcphxCT>L~4(PeSl{Dkjpuj^PgwcJL;z5VeIyjff_}h$o{! z2^E^Bu|5^8$Z*q<9gctXi_7V2DNQD8P&G7h4EuxBBB)&6z*Mjvrgc+t86c7p}5T^)6+|bLVihfdiVSn!6 zuBT1K`gdJd6ez4n%-E+|NX-q|EOWR9q=sHs#0PdMD}&&M`lrYk#YdEk>4_SECZ-^; z{A0MQ|72Hu|083E5NGHQi?LI$hFClK1Xz}D27x23B9v#-OTlGpGlwE$<685Ph1p>> z23vq39GC4<{^+Cw-Thk~Z%3DxVV&(0WJgH`LFA@KdA-Fcv4U z(?U>|Z-U)xD46ah>~yca?m@ik9^P78%uB5jqZ(q1G$56pbFI#jQXBj&M4Fa*N81hSI zZ>Uhk1W;nYwC8OSw7 zB2jyEV}i%;N;#xH5lVK`<`B%dA86N%RKUbm=J`l!LrO;Kr_FZl2QUM-bEPHE9-j5x zZQQ+IV``FL0z%1iZZ}d)C4Y3nVL7w$SMZ}p&y%JH^^u5#5`OWbE;-?i52{E}1L(X; zrv&|}i3Fex(gKSWri~YOnln z9KiJ637Y(J5khIg&B!5V;6o>-K;80zz-9v5_5#6xdDz|VV4SRbozV4nF?F48u!1w2 z*Bq1`kTLY(cQMrTN0Ap5NIp>Ce9^Ex_C>6NOIr#7=GRHm0)!O+_<|!2@I5UE_^JE# zkNQEev783w+n7jJ)mV7|cLSnqGk&k}Vu;)-zH>U72wxQDPIQA`#^v}JHYAi=>% zyEsTUelEswK3rfNY(78edR9;J7i3^{K|%PeEkK7&$z-K?T;r@=iZVD!?os{~c&@<2 z?;NxeVL(d7sP2Y!i^zHJKM@!4*5+h-E`BzrX4IyB&4Qgw?_F~Vu3Ri)`T!)?cJ4z( za5I}Mj59|g&suLxiVu)4V@3}S(FRMHNOZ!_kb+GMyD%;o5^WK5S}M47mFO;UtKY-^ zQfY3=Z6=HV;LN(`0$o*cD1Od4({&4!R;_zcG?Vo#8U`kLR&)h!_XzpMH3y+^h>na~>YdCWj>KpG;HGvTwFk#&P9s;zx-m3VHP-+LGfwy+T!FTHnTnqOG0 z%CRF;sxItUbK-Sk8%?hGxBx?Z36!)9V9h-W4+`0o(16!3?z{G!w6kNqYtXg0EnXhG zIY~$awhnIV<=U8&palXyH2erE-w(0V5?P5gK(k9lgBOzF;Rkec6l2`)hn=F|IC0tP z>3$=Zh=bKiN2+^GP`^oGM2`?fqz;UDA8EH`s}F+^J?Em2B1+E@_5VAq_v&6VM{xwFZgcFDXt~};fY~=4^vve_Sa$S~W zc4wH82CoX2)Df34s6V+mYU74A5gR0no6TgbZ^31Fow~#hS{mr^{tgJSpZE=vPZ7p0 z>YNtk0x$V&M)|jM**}r%QRwS*rYQO1%zd!@0J2_a5338rgpP17cVUe`!MSTBl$Aab zYMf3<*1~OWmtGfbKpd-^p^h2gig9EF1b!7{2~yuVpUQ~F=Sz@uM;61FJ>iO$t$NOD zRubCwT0~2XERHpmal{;%ds+f;u9qew3!MK*3ohRz*7AgSQMM58!`svSnwEt(@6M9+ zWMtr z%!nj;f+m+@Q@922DnFduKZ$qS;)EGoQ{^SK6|LE@#dN72U1$xqToQa(c?|o0>C$G5 z8!8wtg}s_Xu=ZF%xeLT@Odb{7>hsTNh#nkzx3$ChroV`JE9L$LE*4hB4vP!ykym6u zD2$|WjZxQV`5n2u$Z{h|?%*dxmWL19XkN{~RbXf|ux884lQ&2jleGz|tC!WweHNDP z78Bk6d-J+`a15yK>+?KoI$>>f;fi0-@ES@bB{G0^xpb*;+narPybB}yuG6>Xu8)vE zH5@)0h+4AN_lVvln4VgL-MC{Cs|Xh2VJFvozQM{U!B+H)*cixwXLnbUmyM$p@n%8J zf%31sSN0~?GY(EUSd4FGULq{#MJEd8LFMh8vO`3}&OK=Z7!{!;ADZosE2GO+72?~N zn@#$Z{C}-K;qA`6wU?Mma}`>5ODzJrsipV2J>`Kk^MN_ z3!3MHQXsZ;ik~UQWx{e5HgD-y&Qd(juHGtL@1}M=BTjc$PrEUahxkWKCp`0H;Suvn z;2ijC-N*n9+=Yt3b3IIi(sIax7Xo*vd}|uqCa@sZE8wmf93uEUvWDCoKH+$#e7`G3 zcKGK>+u$)Nrk;T2dP*|tk+pSoFI^^Z4PSN&6kO&7L3JqLtDlmyAx$?C_79p-tPnLL zC<^*n9Aa=qNCSCv-#BerNCRGCDyyRSzxiP*WseSxk_55Ab*^9>Na=yr??oK+@X>Uu zJ>FUUHYYD2ig~ey0~<4Zv@R6X?2ftF9lKjAn3A}RZh&igI|VLw5_-b(OkxLijydbu)(kF& zm#+e&#Tgvu&?4|lOEl_R8FMw&T87?Vl$t$LZV8m2ctdPQ|lDtb9drU z6J0$S*gdUi6mr0@!Jp0lSPAfBz$f6^+Qa@F#huTK(Ohs~xU{gx-M^_lX&GA2#iAFj+{IzT!|ML$&OWbmLU{k&I z>`4-!x;U)wemzU{d5NR$tZAwMT!Cu~4MEVS=KZBB1M9W3tfLXM6wfPwst~A?#M8}S?9X60>lZ&p+pty zIRzPJ`K5k5)Lg9Rs;1$Q|H5i`ElK6zDHF_#G2dT*9ZLh-4BS%P+I*5gD*%JUy2(zv za#6_s&|u8a(Pr=`5;Vkw2SwM2E8s|EzCZZ&6)vDh{?JG;dD%qvQFbBSbCGFQyI-K? z^DWdXrN;pUFP*(i>&^RtrSk-uocd=b^@;aF z|1B!zkB`Fi^bsI{#3rDoJ*kvqqGTFKh(WTNvy~>WEW-5G-uiUo3-)@AjKcH+#NiTf z5BosXrJmA^@kFr{yY+=~mHeU>hz(B36O-uPrcw#Njrps>AB(Jox z?g!j>J_y1(%9VrZa9Z_iE4jwA&6ZB)x`7f~G8cd(qT3TRX}FRt5v8R?(BTC%TX<{5 zd|2%Nw6<4l&Qqx^pWcm2hu?b{#odMZ4LXf&OJ*~Myt#WSJM(BmQ|xvRiHcIWJb}@j z6Vikx@mI0+>vYtf?mrm2-(M|7v&lUfKE>NpMwUmEU7!`EEB#WKHr$Wly6=1>7g;_@ zd=>Gj)v79{PU@a)6SyyZ4YUb1{-jbz62|RBPmlP33^_fg?pf!zx%jKur5NB*1W=tK z%>^q^2k2{m*3iPArq>H;Tu++tUK*bO^x=S?Jo|w1G^-mA>vtlD-w2GLcckCN3XkI2 zj)~!J65n->dIofgd}r>c0=Mz$F{yS%#C*gSY%?D2_F{lyC>=yz96o-MImD-Z!5~l27Z1T|H#djZf&<1mfyR zT__YUOYIEDa}VL+_4H~+TTOFS(#0382Ab@_%(czAae{~4A)nq&IjPr6-y+b;W=&@r zixJHT!0iTG5*LEe@{^&*A-53)H;k-yF_Zz5t1&B)Rj!@w(*?O69x}OrMP-7-FQA5Q zF;<_hJ#<1|+N&4IfAe>MY?=vhA(zzkk?t9)&{;kbnIiL)NzmgM8re#EAD~5UwzoAc zzlOxOyaBvZ6mTo^3f(b_Cfu|2`2f_vOcnaTJK6Q^nd;BEmNAds*Gl_`f&kU}nTfJi zy}^77N|Gb6Dt@RIWR>O3!reJSy;j0*4n^7T`4|U~Hi(+VV|s>rCObUi%Vw`He*bb; zZ5(OS%UybW?JvD4v%2yBLzl*|4yZI(BO>nQLby2RA74KeAQ%$b4>skKLT!An8qwuKPvl0d z3{CXrXBrHJ75Q8I8izkUv%7yYo~M}%C$n4OaBg>%$}IbXZ3WL$?Opo@>&6xn&+o(N z)Q?MH)61#ziS5JQY8MnPLak}BZKNyg+%4N#JBu{XA9PXFGY# zHY``b*i=hT9Ar_mV&GbCV%G?L_XztgUH1_2po; zTBWIlm5IxaVuf-}$O12c7RZdYVAv^HY5fjbJWRDzG$c=4=URXx8uF-vcz0hu|4D;x zZY4^^&T+S^Jm?Wt3$ePSzN~woL=l;<4FbK7DCDfq7c6Kk#Lo8e^X?LT7%$ubT}D)0 zPw#C$NEriV-ed&Uug_IOc*c3>C^!_%$tv5pbauvBv6G z&a3B*p0{6P#kjS&)B*B4g6{}Riw5UsKcR9LDz$SqLDe5*P;B2|f_P?)>a#Znni&IQ z0#nI+3sjGLE^vixj4NhJH6Y_l6^NkMjU)30)WLXwQ=N5dA)R zqONHDE%K2sEg*y_@QJ|JWk(dOi5^OJ7Hra|i?cDga78nIN4uY=0Jn~%c(a(SK5Y4p z!Se3&Cyz4jH3aQsqZg9q!g40uz>ehLw1KUyc(=_%Tl_8N3mH|5TYF_@@kqm}z~~Y@ zS#rq2NHORs%b+r?vF;3?KVr zCksqg`B+Js9&Ls0L(st*LT$OK@G> zX8PvnJvVz^?@)=qiMr7_$7c~{DKME{@`~3{m=s+`@KSnU9%5Z9N=*F-^z8R(@-0gj zf%V%9en|y<;L8E-9Xmw#h(4GuS#Cce)+SP-- z#+Oiu5rU>aT77W54B>4Ch>u^Io6PytPvksbAv8#ys9}QJ88iNW01m&1!)DF^)Ax8d z@ECTiXEzPj0>PY}VfcBi=fm|%x^AZP)y zuQ?$7x_nj$BKKt*!on8lG+7p5dh)Op8!{C;=eOJWp#|%LBwjJ@oKX|_Fp_0r$(t6N z^w#&q#B7usa$A3Q_BTlh-~MZ;@Ic_DamII*Krh-HsOMH2#0;c}l(jD$zd6^B24oyI z)C#;1I)Fq^GGMG+r8qrcPLVTzs@bTWuk=zXNn7}?xZ{pNHN^#JtQeZZ}Bg6PHs>7jOqGBe&Q^W10|0N=VRbx z+l(>7@DjpVydBJ!yy#G6hDa|5g{%x^ONkcJvS+wQlYl{ROcadie}P7p?*Nf*&6^*- z!@LYtE)~uK^kdva+F!4B9(wm5yjrE<(g?(zz`oN#BA)_!na&sL*^GI6VrCKFq-Zn& zA?tZ^Nd?LLha-9;OAT)qyz%!Uf1oR!yR_ley}%1Ont#0$Uz8M43Ks8*qQtO=m+bVM zcDK>kD(+Nuo#EeA|8j=K!QbwN4JC7rW7}#ZCC_`398^oVrHdNDU7x9*(PwF$1ZDp$mUkK&Q~~D1R}i5e(7bgP;DO zYk&I8KX9uAxV%@s#r(>c-dGQK(yuc? zV9jU10hFQTy&n-d8e+qm**j)1__aT`Ds#0c9GSC6pA4F8vcY<{xuWugC@QWhk|g72 zYh0AaEsa{1_vT~EiP7Go8@KDxqAh@+cHEgGL84NwT;P*s2!`oF1?CIKhIMR6Q?7DA zzzEPkj@07_nrzYX@*Q>os8B7Zg2G6|+So=e;Wr0BkPnhbR-%p8kD6e3V!o*10cvmIGj-Dd`h z>wp)(S*i>*EeqL@PM1y6U{Le`q1U(#;@+B}*#jEvx8EpU{+D^6xK$W2sQTRPn57a322J&C_LkGAO9vAV)LFt(?I< z@E!lhAF5ZJXx1H(?DQ{G7X-hK*cLwhQZoj2=ZRNAE3`f%8~n1&w&E0qJ6Wr#>g(3i zdT-z-2kUb7>=s26CHnPwp9+j*BLN9C5ckl!t=!pNIqI6qF+iwQXu7j%```%cay|bD z94--7jKBBZ4tBy{*7R`vTp_j9YysGf<7m-2(GayCHFK2ENMt3{r9E?!&Z%f{iQ(NI z8_fY{Zu9$gU^H6k6#ZnrI=oD`0}`&u-=QxKszyIJj2~SH7yG9T15)Cjw)I$)EZ*_& zzdWt&i6P)bWdaEF%>}%0ozDzw-i(76%3}CI#oU2L$eFU#0WPd!C3xh+s&76IcY~o& zgC})N zrwABPslhD4PWK{Gg%pW=rb)}OD4}~dZ%)AZ!euLaMME)WO1tXTjuAR)ifnq3)dUn* zqG}MYTC+pR7c<@(hZ6_>|KDA)hkt|d{rh&mWP~Fz%wtQj)a{!~mlDJUrzuX_EjWeA zFtz6N!Y~uL5vPdty|a&^lY1}7HZp+wYr^SsCqWzSMWdChDU~IS-30)mp|%`P|8?yf z8v6l0Z{*6|xC-!#1}0Ef(7Bgk52X7iafjb~k+yEvPD>|2m9ASRjHo!V@&vB*gw1AzI2^P(sV6bikzu)c&)J63oX!fPmCdILn@7;>(fdUSK!I=O z^tBvM{-=j1SzZQ73YEE?W=I`3Cs8>c8n4Me_ITc%-^C&)@S*)FTN{U>hHGx2Sw?l3 z-uw8`R*lvskc&Nna^2hZ8kq3bO&S*)*tsT=Lea(T{+N%qMjd0dL~42mT#Di1@WEHY z6N0ruIbKNSx~xaAC3LihRO9Ti#qVhY(S`q6l8tnivIsSd zW{Zv(;tp^h<6UNA(t|y6F>*0;T@T${Isg^WD@WQs9!)I6DI7Zh@g;#%en3R%R!oK%+Lh?!&zlB3o6;ZwWqnaFk-!9V#8?K z*si#SF~>-%<3D3!PF@$S3>^Y3J~bxP?0T6RhXk}ngehOy9@1*ia>K$B5MRH{JOdX_ z{E?Q&=L4bA^sjOfL5`3N_IH2XfpR-y^rNU#HDA=K}RfhEwtizz(f z|LSudw*hEG(z~!CN%h~w#Ciedc?_!H!61*>V+uyrY=_{tDzBF0%sk6)X3Ee#aKZoC z!_wL=y?tYsAw;9DV#amJLUE7|MOpmt?7&SsiZpKkM5vpafrP|?aB%K-G2Wx^-{@%x zoH4H1M^o9cb?30gG?=IhwKPatWs0Rz$1$^ES`}B6X8h)4EP84P8*hX8e!TX;zc6w9 zUmV@+P6i`>kM1cAG(1#i=HERaQ_^4bD=u|rTC^O8EaR!LF??;6*X;%2qp5li{V3I@5Sgm$5p!YQUpA|IIkwg!|mOtbO- zPicf#bNqa5xD#c0t>>R>zmHy=5p1qomT4>t?E&>U0`@n@H~F>dGxSE;yE5x@(h!;d zns5E|e>0{0e@ENaK%RF&OJPU0@#BHmU1R50aow&0BD8IzaA&q(2)nJHWtX@_Vx3M| zcIW@o)r!yYGpRCK8LN}+8fzO4wOn^GpLNSv*4q?p?K!xuzu<`7wn3SF)Y*4rTcC<0 z7zD3hMi6u0rRkttcU2EaPG9X5CP#t^t*!s=y!P)O^k!x_x$9u*A|CcCU($VVY{&K` zi`&K=Wp4p4sHLt*^%xT!%Q*NnmgB#pTF$Nid!j4#&i{sP|L?wA_nmfJbR_WKEWPX% z`+@6ADVxe~-gVN#7}rA81X=-R!G^a;WT6f6h@vj#NROR=^^&>H*vA;SX=r@TRi8 zEZ)53u}`GcNPbp-jt6kpM|Jfa@6RqK^AlRtYZC9ZGX%7bdfnrLvK(?gNf@;Pn&`DX zf^1Up0YII_&96ASUkE9KsJuhDMtbH;IM4^=la(XIs&A!xHRklllmZ$vSXYwrC;OrS z2R{gHGLoSd=5gO%S@GMHSLFTzQkmtQ!`w+>BnuMx0~<`O##1(d3COwm3|T*KyB4aU zz6oqAYJZa*m#cgTs9Tcvv+o<(d1h3vLQOP^i`+l5rWLzJgkda{ z=+ZDWe)v)5^IKHVbiePCu@jj0UaGrV`d>Z;?`<};_`zb1OLDhKkGf}8MhWcg@!f8+y-f9u~V|bMIc3)-Tu4S ze)J$PxP;?iM)D;2%Hcf{l?~eW!lbr#638|KgSX(_GhD{~pz(UMaPUEn)2`Hr9z;!e z3O48ZVhi3HX$cQ=M?y}N+%R^PSxI3>VAwVMh- z%~}+SM5P~;(xSM)3)Wugl=MIk-J`QMZnX4#>}@KCG*jeeKEM#>TY~PV$A7Sr6lPd= zGha#=`g5(-u)8l5xP-{?I{QR)GHDx)pYB%@C^ZanjIYT(0bp2RN&{C~5rThF@jEfw z)brF>R#A>3KM24mV$i#No&)v`-p4)x-snG=J1>R5CDciU>?j!)T1U5bzS3jjme1%& z)-LCvM8Q&HfZ0&(pQJDWwUt>hx;`A@&!;u5X(?ssmeQU_;6+&urr=_u0=9ywF@b4w zMvU)3NR2gSJhpX4bvR&V{AWAU<}-{u8)x2gYMdv5{{b^iZ>YddslDkO!ekV={rMWvbAl3Gc+#ywk-D_KdA zF`sTZGFukKW}=WBle=7#yFx?=X&CpF8OQiAGoSsxrmeQx_WRr4_y7IIxuwYHBcRR;rqwZ_LPxZ0&Hv!ngYfC`t z-%uu2kYf++M{mM_K?rBlfHDft2BspdWu&DeqFbCx{I=>b58j6-=$C~Q*$tx+NC)@<@ElO?MTzAx&#IkuAYX*Bd<5Qh!!{`J{iw6%DHIrFmM7l zda|&S9Ew#p7NON6o1p!AM$mA~FIPGr+zQkk0216G3wD~&Lr~Udh&;)64bd38+t8(X z^%ow<+0y=+1Y-z%9x=v{tdNEAb?TpO6G@MuA1YI&UIfm!xbejaFbFSlQ*w;?zrcOW zs>E`-qlG`|y#qFU(D#7Hkci5|i=si+K7f+eRZ2n+gXEza^C~Cfl?KvIMX%!~64$I? z)s621Yy)MyPjLSM36#XE(PDw7@XRBT4@97M&US_0x3cz(0H=U6f^4gOE0J3L)hq!S zGeaJPr10-}KZ7NGM?7!Ns)?Npl-;{Tp7m)T+EF=__a5_E!&pvVBjFFMx@9fmXYZ}v z3L;2p0EQlhLsZ|7bwF=3)Is@B^R#wFx|7L$<=S8#-dgX6*o!3jchCXJeD+0b0Z;W( zgm#ToN9W_VU8fqBg<|tWB+YSGhha~~ZEpulm-BgZ?GaqgVb0)U`><<$&1k)uk4bG? zR`6^G?bE+BUQ|+ks$`W$1)9l_%WFV=mn@@vCe7Cc8wz z(V}P6n>m$&F^Yb@9Ji?j^W~(dG8{q*_U8^Jjx|Ok<(&3~q;Qz(39m1?*@xgID zRhCl*w3iuou7a-M)ZBaPe~!-mZKZRyG}JuJ^6lM<%;{Z~WG<+j## zURU7aqOjt`hzdiijmJ+TCqm;wpMy@Nx1?;cXBV_SUg$jQ!1_JI*V1z1>8KpkG8cGA zx8i(q6x)ER)!f&Z8xeNBcTr6ANxKM#JxJY;p1;x`ce)43-#3hEu>0;Kr9{Dcq%<%Y?mTQlk=D1ZZN7TI%((3*S>ye++M)#o z-sA(hfp2Ho3!lXVomT)feXwPc0Yt`yi3AS2(8#UzO6r5&^&!NiHMYrFkE>72S7)p; z@zr~*GG%gVKwE6}ojHiCws&Fj=ZtoAPLHEY)NM3%Iw zm+ih9?Iw*y1yY2ase#iqqIR}k(WI}@Y#NDAlQ?7?0R2M4TJToa!Ti@Hnh~{NQ4g^o#D4l6|cKJ-wM4HpC-f@XynWFuN8&9M_< zEZ|@qw5{A(C5ZAvLH3dkCxl)hs7hA#3i)^Vnth}yh9Cg*Wom4XjBez#oerq z1Q!1};cXek606ReiQeKVw}5dZ_&k&>Xq3DE z_HxPn(ohTh0fvuCRpkNc`4R)4C*QNk`wHDX(TUwqhdAeD`PHqo9f}GOn{&s2#3*}J z$^(1v9swSEik}Jaf8)z=|L5c>ydDpoPuH^M&4#`9UT-L6xQ;Rb@23|9ckTe~H9keM zfYn53Jy=@Eyjn-JD%w_FMcpPt>e*;jFC6v9ZXuPXtd2z3y7Sl5zNf-QB#`kSaJq__ z^M03bLN6W=ApDTKeBHzxw));IKSHy2Wl8dQ3t~ z2C>cQhLmwzxo`sZLnzjOB>Ls`Gs{SeuzV8t00CV=Dxgdi8lagxL2Cpvmfg+Is=Fw< zYsXjbGX=L-$|^JGQ_Kk`EWTnWe#D0Fj(WAxFC&xn2;44?&b4;l^2c}Wc@~c5Z{YqB zuv)RYsI$zqIn{nE5_eZ_7r`BEKam4T!$!XU2R6JvRspe{jx|z$+e^Pocou4SmhoXs zo)IpZ`eh)~>*K>}x2_R~Y6Q`ORU*$T=k)@f0x*`THO2a34$ro{y<`4njepF zg~c_&y;g5C2s|}-1!j-fo9>d*8s72;N3nA5*p)n0hcjdK%XQ0BrYE-CiVm7*pmOQ_ z6Z+AyCDY+aKRk%(JXR}1R^{#Ij1>%?$7bZA!MwX1>+|5({Mz#efhBK!;sS=PD>dM;^qaM?*kYs7{RC}&Iqlj^dJ?|7=)_&118i$imJMxu@=Uuli zmAcN*EUQ#dVqLbO+K8gTe4NzqqQ-~?WHF+L`V-eaxgAnVg*KdUs}+exGhn)WUAiicNXNo8d1(Ap3~F$R?u^1;28v;tn*0!9Sfvqs^}zX=(#v$8s%OD zV%v4t7j4GtjVvn*aO2Cv3`CyvE~|BJkck~q3!u8d$&@t(TgB@N&~C;VWymx3){ah3 zOl+HYwnhT9kJQhjy97q!>4J}Xgq$bgh0<*{_N4020^+K)R{_Lo?+`OhwB8$tXQ2aD zkhc}Eu|n7m*5|IzDdQ&r>glix#1sOYXffbsL%tOld5rxvggP{OR{l1a4Qlb!IY=S> z5>fIMahdP{5A$tBa6Q*OvjTHD8s_Tii%o}9*S^`k-E}s@q{1ysah+@#RSS*gmbK|z zNFXk!s-iwo;0`_!mfe%Lg!?vLcHmmo{Dsf1aONKg9lN??tDYZGok~WXxQ0*0*wRFT zP`@f?W$S=e*~SnS$N3Pvfy>&hGBoF+B7+4-Z)n~)dwq+d5qSTSlsxbp#)XkVCE*5M z%yrIYNz+upj-bTuumExh`C)|K)0j&)JLqo|TrEZ>J)wO`do7KBjeH4=tA&K0k9-k; z71Dq^zXT_kULjI{oMe96Xbu#1>EKjHZ>?kT$fb)?P3`mKU%pGXI@Z5cCFX5)qw?yM z{s5Ptd6ByEdNkQm>?sQX_QQfxRGCy!6v>vYNV=M{^!{7R#s{hmm>v1GbP15? zWiHO2+!Xc#wroG-If=FjX;{P~VPQ$}9Ak9d#bTN)08{4zw8wfSkLj!3thPIYXM9y@ zcyH~Awv3Db#NH4~F`FY3N@DieN3nHqM(yk6fbpwa|jxHqfBPTsZxL)r_Le2#J) zDrgxirB6e%3nx@ZLN=B>Ze>WDvm4ATOBMF%t*w}SMfcvkvU!?a%H>l=qfsZpURniv z@w#j#j;bKKlY`^r?kM!n#?MBxswXUvi5`WuHze!MZJzf3MYtwIo|P!{M(4E}`)?#a zp)a5w=O%@>A@ds7)m>~!+*Witxp(58=6J->jJkb>T}DdFLT|P$@!Y4tb*1bRJs=%( z#&Prz$@IZSwI_AN?}PdJt(#bKuS?^0dM5_tx%BLnj5IN&ZQ!vl5EprzXe+_b%{d%x zZ>}HJIlR9vePLo^6n>=IZ0C0=c{0?WQ7vB6Ru^gNe6+ZgF7IF>q{l(sJN=dOvyru1 zRW6R+nNyNNg*a@PHI&(Y>S2wTB|1LiF@(NnGes9;V52=2_6B#8iic->U@-+@)%YPD zGbps&K3n?jKyL?~x4Uu^+|>K!!XDFKorEg7jaLwaCR{mAMIJ`NGW z5ex^&Qch?gvvK$k>MlpmQ$&}HTdQ-a?A}PxU^ryC9fWtRp3rwu!-%_vH(jt<=mBoj zJE;H}TSZl@SI(inJQ_A~_}?YtAIhvg=kn5zim5N2(L_vj-8 z>+cdQA?+mn#AtMD^8wXt!d$8adX0O!slZw~>lK7zm%Vgu6B?QQB(Kggh;Kyw6v2-< zhHaU`*zgvHC}=TLB+IO?p`?%owsE2Uif)KS$65x8K*syJzH^-Yx$%?sFaVVa*Xzq! zimVPj_7qs^H=B{}MB05^mVK08Rr!c9*#7S5tAw!sI8*xbfaZB;ym0>(cS;9+Qg? zksPW=2iEuPc@+ucnvqi6VYmek(NI2Me>xP9IT)0vBADH+uhiU{zfAGKK-vWsR7|k9ICnU>DKhP0@VrU=e8sZ7F(Iid-16@@3LUqMOlgo$B%G zHv_b`yEg7@cSY;F1_yirZtD-1If+(;Po?{l9C3l9WVK5PRGrq%>yp%fksT4)*}Qwt z(sX~3+AZ6lGC$3}C9)Gn6dxAU(fov4f!c&e@(;m|ez@{-W8$E2Ei{%D4Fv|AKvwMY zBlM!PQ78P%{I=G64m%&&0Bm@E++$I*1fF{wC!9aLorj~Z8$?$d6tT`voVgIi(;pb3 z&f%*5=5{rQ6#d+KCG+muj`p?NOB&^Ira3)l4V6eg$AfF0EG&TYIhzi*3{H1gFmXC4 z+Fai*riTxp&n624e5itnKte*PHW}=R2M27h%mNl)2I6Ubaxys(t0VP^i6Dn}u|^JB zf#S)uyep^|>}~6PVE6N)h-B2e!oG|=-!~B~ON$AYX_G+%hi!>&;~5mL&#DCZx0s69 zzAU2=+EMcQloFd8%A-jUeow1}a-zVz&1euN1+~Qs7d#+{?h{bZBn)Xtyz2B}xaV&+Nw3f*a;SdGyTv zUD32k;*?r?xZdB%=6{NQ^bh+v;0iAtg-Wsl!4B-MNQ^0=9)$luDeYOO#l4qN% zzPQe{XZJDY(N?egB=i}p=0R#C>Co=Em;KyN_lKUnUY zxu_)F=1$N4KJ$b=7dyKtLCr>L+XFRkAWOr9(jXdTM~8-6eibEMt;o1ZhhK^Ma=>ef zCE<}|B;8tCP$9j~%d|7J%xv;bq~p3kJK0eCj%Rh5`}x(b#Tl&AG*xsrbt~%3!Aoo< zH8h!3C8hBQ!r|c~H}tS{va6@bZ84-O*i!A z2sENESN^*3S$o-G-_3g6*?T49gqFbBGGo~e&h)4+z{>+o29c+d1)I^Xf{B6Xr*&x} z^S(oY7OrZ8sfusj+T9AgSTS@@qEuzO0{vC)+F4CT#97`yaNkranA{tirWkSjrUWDi zbxFo;X9jRwWxfNqHZ*`n5?WO0DaKG7O&sdNe0<$^4jc~arHs0I-njlO>G@y9WY4Xx z{~sub*2@aEP#18G2jsZ>i;+n*OfHR*V%Ld}NGo}r2k5GP~?cV1005FvG-K%vmY8C-x> zV{1eaFpmTAlJ2`A>o8puQ#2_4q5kmtMvVkk-%SiW|QXjfP&1M85MU>4Vc za1IQ7S-65a;w;qnq@FzQtm$soBIDq8-)P+~kz83Q*6Qs92ls`&O$4D#5H{!gWW+{)Iji!_{Y1MEQsBnbzT zo-EuIZGS5@{Tfb5nUkUYC6gV*>v!;%Po08>*>7_!+4GKRm zW16pI);`-8ISC^h#TcTq1KIo?IdG1|#6J*nU>57K94jwlaEe}_L8bL}M*7su0PrlD z)mL^+$;?f);&P9)zWc(;8J)L|=yo6J68#h-3FU#Q2jB%W#h|1MZd9o}_(q2@Ri;{T z7?Ey)=fL)cj(5-BYr!}?KUuL80d1Hfk+4V zWivz04#X9 zKjH$6+CUl4yov3>&acmt;buhCoZl=G33t3Un15!dEo9eGxJnZp>tF*+iiOIxF&c)k z>CIfEfHZdmB+ZSE!LDf~P${2W?2I7mYMB%Zhh;&$JGgA8&oiBRXG`M&xCtu8MF@X3 z=>-JH^WY}@(IGs`=!d^AdjTazo7JE(;ACwE(e;1Pm-HDnf}?l_jM-^W+?{#374ai| zN7NG@s2^cAROYi~PNXN=<>xKRT3?Mai^wL03cK7^yl@_fN(tPniDj73P5RkfO9HwS z>4z9)N}1?pKda>)u)K||$VJF(p%oX7V&~%iL)OaKxzhS>XQUGL>#M#>F_d{(w%V-g z`Hht-(>C%+s1_YF%I2SgP^OK5-O#6)z#S}O3|+znLi=R)OCXbv##Twbq&y^-iuUu9 zM1FZPSoMVH(&@3cIw%tDwDEQVskbdVtZswqJi&}voZLV$pZvm73+q`FiB&1VFS>XEs;{_7v@&cHGSj222uhTs zhiPmXeca6nZJqkC=)~Gr9#EOQZeHf5cH%(CBJstY!8kSXlGwU*nD2yCO%%dL-=Y8iB}n+)Z`gJd55E|E}be4o`)Q8~Un1Dr;k77k6RzwtvyMw_^ZNxUHVb965F0@f#ugA-KkI-DktI~1pQ!- z49C@<9b%h&s8z0ng*@6L>q!!G;FaB>4_$xPK-`Chj@qkZ2A*~{ai+U$ylrGFa$gZG zUmD@UWs=EVKBdS7%0i?ih%F1LlOwx9T|dYiB_|sHE+N}h*rxLiLeB|jyl}`L^E8Bn z4U$2c?<==$Q``4#)tgtQz{(Djk2??}S&YnwsxT-}kQ(o{#)P(3Hp&%K95MyANswJm z=O?!2?yq>5<&T9m>UTi0bp!&T4zeq()u{;F%;P;7^BPQrh+pH|I{cc2N4T_91rvP$ z7Nz&eF_J6$FUL`yd3y`gg*uNPWrdfAndL|yR!J!Xv%ok&jYG31Rr%dWDjo6E$j1e(uCWc}ws-I{;YJr$A z?7gXNu)w&n5}RekWpM1^42{#<8rjXpxeTOh7zoz)Ha!o0UW;@DzcGQKAZQ}&Mu85t zkipl6-seu#1`b+92y7Q6(OU(zj3)%|`*QtIWU7&=T zLz==)l@rQ26=PGY)2$2!vaT>%nU{|>ZVG3t*6-RmE&bV0)l5-%)H%{dk}UyMF%Zh! zZ6OcfT3!4Za&RNFDf2K@51VbTic1n(tjPH%n=E>Ho<}{`?sPZXzU>#JHX>qlf*|fl zf0=W5fvU~tNy)()^jyo=rR_XVW@H{@cTcZDsPtM1N*?+%AB5iuKiElv$zMnh_+4UQ zo&*}+iacRni|2L~Z^Ul$*DI~Z3Y~v6Qh4gR`lW>^M&Y?~We7FDBM+xreAZp|dgPFg zaJ~}|ow=#l41IwvE1xk1O`^!6{^qa3O?a7ff_AHuThg1MWUPDFNCm6C@QBb&mT`Skv}RzZ zlJPBPHMNSXCAylkMT7bhYw3M$1d%es5&-N3l6=>K;Cy@_#J|FS<*EQTSmANO|^g8 z$HP6*iJ29C1LSdZG?i3bulw3)8lIE9b#9WN&QC%ZAx0iddnDZW7-ilSiVv&vSThL@ zcY8j!qyF~2ZYAx*5hLZyHR|37d?-1jZrFgg$^khZv?Dk3*3rO@Bg4zU)7`~IC*L$1YE#|jhUnhw zQ8{{)+v9?h5SDXT)+j8S|B~z1(CvqJwh!WEb~f~QVRbO zwS$U&==Lz}Syps2%KzC=MQvp`#v~rwin;faxcgYIA3>0|opgkxfR)bTX`^}`b#>JQ zbmxv=)=As)odixPMw#Jqw;8Edd7Ze?OT*Q<6Mhmyq}QQ*hj9Kz(RG?4R%TEV&mo{& z^wb^hA}6kCH+W}1qnFJeCmzo`^a_(2uW3L^iPYsu%$KB%o^t#~IHPx}HMNB%2Z?lpcPtp+Z?P+)-MAD~Gg`LHxv zX^0I{5c!gnO22@#%IYW|EDyD-5V$nn{hl$BbOmr>UiEbmy4WG3bx=E#3 z8wc^@e{1V+7}l#Ccc?m&!fLrs;qKzYYp)B<&`G>~6naHVB$rf@;^EUTS%_~`Gb^u? z_9WUhMheyt3+Y;8jJ~t3l?|`=7b2YNZadl%~na$ee~3m#U74B->gGch;uCn5w-mm%>8 z!mhyCbq;b&F$Dw>ssO*_{vTYGJjgHpWYc}(=WPC8_+lzlbt7SeR(Z!lYrQA^$wRv5 zBc{jBeov3}GJoO*0UwqNbhC`O2OjiY$srmv(9%AubdkvReq}PStbO1|*pj4>yZy%@ayi3wk>@!Fk*9Tk>Ml=w3}L zwZBlG4+FqMu8`zgJq{S__Io(P88&2%51!@u7Cp_f1y7~99|9JdRSG41heXo<)Bw!}kntB10khzNPt4L8f6ls35&=N-pXO6k+2piE zl!$4fXIk0$*^B)dv(d9?FFCBaA}+x4&A9ae;sFE9jAKTsBi|}9kf15**Ns9Ex=&T8h^i!e@OFJZh(a6jj1M?2S`&5Hb&Iq1oo)dH)WsAfK{q*>MW z7}A&Y!q0Yu*#9ka@be+ICiB$!eO$W%jkasjt;SF62VF)Co!FU9Zm(xBk@NCA=X)syHh>tH&2K#pI-CG|IO7SpFt9Rm5K`gy;;afn!w zo*L4*0%}L~ap?2I73aKDZ!EYt0E7AV``PbWSI@?sZnNtRCfi1ENN2C5SrqN(s*qZ2m zxqM?sV&pHTZ^mf{@{VsC%cH!zTN?TsdA})54|Qo7^j$>Zll{^jy@LWl%&Ukyr{Tc< zQWWAJ?tuR(D*fln)8OkH{Y{Y+vCv5*6@ttQzfcuX#!svnh@JC};iAySv5C!{cSX0? z<>m%w3e!n>L-%eN6ZCLcy7T)1a|KR0HVMjYHUubz%+Z%&4A*7`TK5jZs&RJi?(Lg=wlhaC`@J7xyj5p^^(}3V!PJ@ji0@UPYhFha)NrLw+{K zQq*#_w5xp%E0_DEfQ-XY3mDn80X&5*v0+YxZOj)#=3h~JkCGJMQ9 z$3q)8CxkX8jvRuAlfoP&lEoaxENr2e!}!NgeZ^rs__xgN{~#aoOVapzKIHSS+3NVO zK4$9V_^9}vtl+?8Cq;g+w=68a-eXr14xBSFpO8CG-Oss7dl}W8vI{Tdld{A{xnDTh zCcOLLlv`PZOvo8y)AT=3ZNKn|{X|~oMd)UpX09 z_BQT_jbv|*h_zMC;RRfc9^BJCbHv2_tlXs>6VA_FJ8G2L%5+1HIBn5-&yfC?ALV)X zA7;k8#XftHr=SRVlp;J$|LU?ndcOYOv;J=+tVpOlB=3sf9*N}i%IT<2!BB~N;##o{ z@C~U=cUG9_TUMXa*l(G){;bBYp>sAC&r6hueQ$wHQ-&QP3*oLMV4J`$UCh`SS;G*{ z_Wy#B{_iZ4Z?2|85!o#)8Ic`4OEIm}PMlU^L_U}Y%^AYD zvxeJO`_~pAQ-5Rg_=2Z>@b8G(|7;`r;&&N{HzH`EeIdaCWs@&B-~XEwIsVbUy@quK zY&+OL z_Bs6R8u!#(bC3N-7hXtR_uu)DG|7DQRx5s7CXFeOEQEx)*rERBpKRg|O4{Y(Yxm5x zQ@7pf$hq-mSC8PX+6eO?bBX8yQtM%d6|P0PeOCdS+;h}>GWSLG+omVxlV=$K)%I`|ffm+QZ*aRn4JosmN$^> zT*jr>;RUnHU<9I){IcaEfa6Toyz@a0U{V?N=&RMI1}_s;YMD#fvR8cEJq$!AuRas0 zKhbV_3S8ttXkC+66K%ah#a-IvytYcg{B&b5Jj;>H|C37$yytT0?>hhJ$sEa5uN1x6 zTc#FdO|cFV?1XE030+g`gPpa_K%>zGlJP?^Tl`;rDJ2WE`=r|rRJ~IZvEM~sSvBg% z6MGl!@UNU0VmkfnPUA{sA#PJtTwf#Kr`2lOaIy8OTIaN8V!;cG@QNMpT-KzG25M(f|{|U0ZhqCN8+$Ib<2{6k-`47NmV8XN4&kZ z@s@|WBzd?U%*aj661D4`4)PR}$($WoenOj8%9QSE4|=K6s+v=`iGMEO*wBmsA8I#1k$g2ca6RjN67;=gC}X`@GbKL5-`WG7@4dCP2kWnV z=|32069xq&=+{&DIA|B^`_&{=LO<_mbTsmsh!-tT-;+}ax&h*n3Nsf$B zYk7bxl`|%m{RmWJCGW3R4~0aoB1w_j8TJ(Z9PvBU)n@!B*3;K3$DK`{EPz3LCdHEz zoh^kXxD9mNN{)YQQ#=!FLZ04&MPk&ui;^Bxdesj=dvcf4 zlg~l%EZV>PvAzW8I9~^_L=;fw<16B;5eNMEqSZjrdY;pm9S6<1F4$Bu#6sC$eQ}6W zu$SyPM_b9T?

R%C`>KnyOQM#xoncy9}%K)a-2Kghr}!$6a3=$O+Sj4c7J74$*yyk{+=zRfV!K zm8EzYAwJF;)oO)`;fg`MSsHb>b@)fki!!&Bhr(`ikk3>H&VM~&yu3A^1=QA z0h#uK&E4IgH!nI|k;G9--duOLHJ3zL=x-oL-0P>#5H0S2%G`Jvzggs$&N>Gb4@DlM zjZo^0a0o?|c|x0){pr`74l&9yGW;v%j~}XoUGDknbKY7tvJ;tL9t(4CiwRRD$W6}{jI;v8C-u?b4-5=rZRoqz0 zL5f)OdUe)1o*5&j8Xi7;Tt)Qe^h;V_0_+SmtLqyMwo)>U2eP4PGx2Z0=o14+1E*SgGNKY`FI~UH-N+UE;>BCGRRdi>RHQ?e;nI9u?@n=FCBKVS} z=jnNZQu=TQIg?63&06SzY$^B33m9?jvwKciE)Am|i3GhkYMgzn@z`>oF4n*%?zR@Y z{=0w}_zs;<`YGH#jiA`~R!u$#WVjep@^9>O63$uhJPnmUQ!S{Cflwa}Na@OFl``ov5Axy~V9dG3?gNQo2OGx{^YF0lUhxyCKS|9#+luD3) zq1BRlbF=_Gev34+J-BbQ9iMJI!JIALPK-tKQ~^(pBQo#Mz>$Pl1?*_}1x!YKH~tD^ z$T*E4klY4mbf06BeE10XjeJs7`FKv^LrCccLOBhpPNK3f~oOVjJy^7--~ZJcag@ z#3c`+Y7n2zT*tVYb?NMxOH`+prn_FzhTcmh30B^>Y z{nEK+bby`07AmLyt$glRPo!e zZ0&EQ3Nb4!GAZ$Z+XC)XA;4Nnk?uGI3-8zcbCR(x@i!$WU8)Mj&a8 z?p>uP5-TRRuuxT&P)^xM^q5HKgEPZ!U;}s7L6pD~6wZ4-!8o68c5jGzBw(^iNX%A+ zh@S#{ck7a}h{sR*#i}&uzUJriO{j2sUwDlbP|_F$-TNww8wUfFU#9!}Zx;;= z{A!+f$$Iy1Zk_sZR{A5q)Hg7=WVq>+0t8hv^iXb1V0<@<^G6osxW{|4q_D*fu9H`1 z&U@BjaB}GCz3=JkO%$vxkD1Nc(y~DUzZOUiGmC)*qAc9}l0YPR2(anFt%cmWf?6g) zJ034H!~N+%>7Ytw@R`*tH|#f$(rwjw6Y$x7hR?Yb19V3I9^{y!IzIxHchy@^V`X?a zsXMe(XX9q!c6n#p{1R7{eHVzrlO_0b7PC2s)iQu4D&RUdJksJZ!8_a z2P+`_=jVv9L%kpFpT!>1Q^tANdBJKb4%JK$9!9%3EH%O6*1C(D_+x?F1dmU^oIP6p zSoF%I#BffGW(BpPjf842g>o19Kh&tA!vZfPUrF1aba`%>LReB{i-;oEXq$Xk@C>O= zN)E)1yUy95S+4*&Zof`c)uGl#&*DASeAhy^*2B zv_5;#?N{vMXCJIiW6pC3U9=`Ww#nMuvbdw!ym^ai;Lgee9+i@b5*~pp*lJ}&zk+qi ztS0!?J94bre6?9u$V7R63;Nzy8cLgD0*_B0$g6nOtanMj12^utg;~j%1y6NCS{_j{ zj)f7|A^AE`SE6UgF=pHTs;C33v7}PP7fdHOB@Rz}S9SJxi3ft6ZE;C<7*2;r@~8K| z_)nbLD%yv&~EclAkB;U8#^-Rv#l7efG>n#K{=l5c-5DQ==!< zibI!%78>d7eA#~_rRJ2t*ndLL)x1f6Zs3Z$C2=JZGL!o7Ttfn?QI5})E5XmF6|>S< zPi`Bw)RzuQ8m!K$JU42=T&v!Fx2e<6StU|MWyU^=8ooDK<)op~PSF%*p);Pp9d2tY z?G;#ukf?2#?RbH7WFObk1*UV@H@9FAq=RWXZM=yFk)P{yVxVtSpPq5vm6zzw? zD086U0SJjp)-D5^#_z#t70PD}dcJ_oV&PB@bA7I(Uys(zaXW0LgFshkC%VJTn_bDh zn9pd0UZ1bf^kJR*8^=Q#Y};gi(NR`z2%vx)$gf@R zZxmvrvuikqnQrAt$r2~JA=by!$Ah_Ut!hHqpeKy9h+Kh{kSw}*Y7p3)1Cg$TTO$3a)HuV&^TWpdMplTj;IT$~+w->T<&-{EMPc%&NXBakQI==d&lEtHGk;r-YpVsmDYTF% z1I_%J!bRogiS-wRqzB#^W8_BxbE);B{vBGOR~2}j5p%ZU-A(kJ`p^C2RJvCzmG%!( zX{Il!C4A^K_^l4Koc0o6&^IwV>iQw$=npsMljk;lc>B>o(Qd(Z`RW{Ou3m!YRu zjI_3qzB4WMjPl5|dl$6#irKxZIPLpS1InKD$cx0f`WNrB+S`%Cc)=PVl=N8pQ&MCm zp^*Z-aH=Q`<`2R>h?|b&?;{<@H*_6DEx44{)w9$JD3Yk3vf|sjZZZ+hX?d1$w-7HZ zNCmTW#d;TVhQGH}gdD?%ZzGDsAWg{MMFeMAdzKyZd=|4<0}nij1^#WuQ@TT{%eP9VJNe`Ws%4SK=Ep1Y|gQZ{9mh@TEXaZ431V_VKH0IU1k00 zjTApU4QIO;2OV7~iFvz8m518|1gQyApDNr;Eu9Q#>p%}J4z94-f}hQmE6)9K6MKO@ zTh2KR7LQd^MW?}L;SOxmt+_3BYkf8p)2d9i;Qd({_5Brse{}i3Eli+3zFRo@ulkAzZ zo2gK&y5NZ9Z^$D!A#&>`@fVxsm_%+<4WYZKDILGwSf;#l*$c$00}jE>KdbX;fD<2v zS3un;e=U&+f10vdf)}Y3(EYin#Wr*_QZ@5xf=%`EP{Go5MSiC5R&T#CpBiTqVwzLl z@}qL-9ob>Yd$p(QdBhi6 z^14Ea^`O^ts%l32cRuB!)}i*x+fC=+njt%(0bGQyG-4(GQY=fFc!URw+?_60S$%aR z(PBl=W7C4D`w#jW-?#w|&I$vlodX2oetb#)-_+H_dTb+5&w6|fry+WX>3D?mT|^;N zgg0D(pUtG&#d(kl#>^Axm$iq=*2k)t+|r9ySGXh{&{d`u7~Bbz9has;j-*h=iNEG0 z3APMhWYU^Eh2FCUNLH&*xt8b@~EgD87n{-IE6{LLcv2O^T! z*uVPesl5Qr|EwyPtM+-pE{nn4^D_uq{PeN*Py7kb-A$U}v7ZlZ^W%gIZ%L21KL>i+ z^3*PCi@rB>e&EUIqu%W-ZXbUP$^`rBYev3Z5?Av7v*9t|&Ji1RU6W&sc39V2id8FR zIY^q1@LC-*+GX8ft@cSZ?Nr?RD!5o-<7@NEe|%g$_=m^U$D-tyy_0{p@|*rgLS|KhtPZh!!1kWLY0v=5J63(W5QI<6OYUn>5lF3en<`jO}9rPeTcWqfd(_V`>DZ*1^i{P68LC9^L&D?Ox- zlF!!8RwJ+%xm}hqvG~h^{%V0w>Sp~poj&iZ4Y-R{pU+!M3Vw28b1(IVQLc_U$=lX+ zh~88e;wB!9Jul;t0k6E+;iNrHIXSTNEohQx{3Ka|a9LkKRD#5?9pecFWM~hFUsHal z5Q9|0-h))=pUhgE2b?AikBL#`j1f2!+JAd*SU_RVAaz5@>Y3Pxz#GnmPaY5G2fR@l zAgie&Fd7g55NHl*Tn+A=7>@q=J8t<5ZTc0g2PwebJb~r~PM0V}tYr$x1d{CP0VUpaJ+E!A?ObY$&O8!#|#FV#0-f1}6H_JFD)Y0+1jO zCQ{)1z%fF(`navXvH#f5W!j`Zr?<r#%S3cq2A6?|1DM;y?oqVrlbbRqAGT$jzB z<2doX;QK7^MZKK27z|u(#k?yUkf%ui(To&GA}`P2QKR?fGygRd{G8Yi$fsWsS}$*q z)^%dvCxH0jUT?zuA3-AF1mRn|`MC^f)KEg#TktW;)e1l4$vCV!m;je(@w6I4?J`mCE6=ds9Ofsl>FCGj>yQzcXIH`zKdnA5>I6QIo9f3K6jb*}}3elw5dS9~{UM zH~;d7Nl&!}tu}9=D13COEsxkZft%Co86>c-uBi}A@xjjO%MI$WCOV}IzlnAQxIb)8 ztzY|Z0%rfq<(%FsO)L6c;=ASHkPKcr1cAnZMIoWN#b6^)lmeb-TBibaew_Z3&!YxE~Zi{8YJy*+SaS4Yqj{sfua zYHF9t?f4BU>Ot)CCd6x3cEw%a#g9nOow2eBwbGaA$695$!jwUuP&! zO6~A@9`%{3pu{LSm>rwzC2~$FH-nzVIv}~{OgbJ5m-PBfe;S}& zxPD{qGI=PrqWa=7>VoE;$P1IU+JAtj6l}BFoVs`X=L&5iC0vY3mjw^ZmfLGK;|fDG Sn=Fb!S0XC$$0FSC4gU{OQzYX6 literal 96391 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%0AX@s{8`cxI7PhCmwk=MzFrZR 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 Date: Wed, 21 Jun 2023 01:26:45 +0000 Subject: [PATCH 046/201] update tools/deps_guard/rules/ChipsetSDK/whitelist.json. Signed-off-by: zhangqiang183 --- tools/deps_guard/rules/ChipsetSDK/whitelist.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/deps_guard/rules/ChipsetSDK/whitelist.json b/tools/deps_guard/rules/ChipsetSDK/whitelist.json index 1d6918b..f9ae651 100755 --- a/tools/deps_guard/rules/ChipsetSDK/whitelist.json +++ b/tools/deps_guard/rules/ChipsetSDK/whitelist.json @@ -18,7 +18,7 @@ "libdisplay_gralloc.z.so", "libhdifd_parcelable.z.so", "libconfigpolicy_util.z.so", - "libimage_source_ndk.z.so", + "libimage_source_ndk.z.so", // Third party libraries "libdrm.so", -- Gitee From b3aade3aa99c35d6384ae6bb1088599f8ee7ec6d Mon Sep 17 00:00:00 2001 From: openharmony_ci <120357966@qq.com> Date: Wed, 21 Jun 2023 06:18:15 +0000 Subject: [PATCH 047/201] =?UTF-8?q?=E5=9B=9E=E9=80=80=20'Pull=20Request=20?= =?UTF-8?q?!93=20:=20Add=20image=20ndk=20lib=20into=20white=20list'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tools/deps_guard/rules/ChipsetSDK/whitelist.json | 3 --- 1 file changed, 3 deletions(-) diff --git a/tools/deps_guard/rules/ChipsetSDK/whitelist.json b/tools/deps_guard/rules/ChipsetSDK/whitelist.json index 608557b..758c7db 100755 --- a/tools/deps_guard/rules/ChipsetSDK/whitelist.json +++ b/tools/deps_guard/rules/ChipsetSDK/whitelist.json @@ -19,9 +19,6 @@ "libdisplay_gralloc.z.so", "libhdifd_parcelable.z.so", "libconfigpolicy_util.z.so", - "libpixelmap_ndk.z.so", - "libimage_ndk.z.so", - "libimage_receiver_ndk.z.so", "libstd.dylib.so", -- Gitee From 736c86492ce6b5b800c34a1c026c658dc60f3cdb Mon Sep 17 00:00:00 2001 From: Cao Chuan Date: Wed, 21 Jun 2023 17:21:05 +0800 Subject: [PATCH 048/201] Add image ndk into white list Signed-off-by: Cao Chuan --- tools/deps_guard/rules/ChipsetSDK/whitelist.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tools/deps_guard/rules/ChipsetSDK/whitelist.json b/tools/deps_guard/rules/ChipsetSDK/whitelist.json index 758c7db..608557b 100755 --- a/tools/deps_guard/rules/ChipsetSDK/whitelist.json +++ b/tools/deps_guard/rules/ChipsetSDK/whitelist.json @@ -19,6 +19,9 @@ "libdisplay_gralloc.z.so", "libhdifd_parcelable.z.so", "libconfigpolicy_util.z.so", + "libpixelmap_ndk.z.so", + "libimage_ndk.z.so", + "libimage_receiver_ndk.z.so", "libstd.dylib.so", -- Gitee From 5067927a3762dfe17aefc9026c2bcd911533a922 Mon Sep 17 00:00:00 2001 From: aodongbiao Date: Wed, 21 Jun 2023 19:59:31 +0800 Subject: [PATCH 049/201] =?UTF-8?q?[rom=5Fram=5Fanalyzer]=E9=80=82?= =?UTF-8?q?=E9=85=8Dfoundation=E6=8B=89=E8=B5=B7=E8=BF=9B=E7=A8=8B?= =?UTF-8?q?=E7=9A=84=E6=9B=B4=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: aodongbiao --- tools/rom_ram_analyzer/standard/README.md | 20 +++--- .../rom_ram_analyzer/standard/ram_analyzer.py | 72 +++++++++---------- 2 files changed, 44 insertions(+), 48 deletions(-) diff --git a/tools/rom_ram_analyzer/standard/README.md b/tools/rom_ram_analyzer/standard/README.md index af157fe..81008bf 100644 --- a/tools/rom_ram_analyzer/standard/README.md +++ b/tools/rom_ram_analyzer/standard/README.md @@ -88,9 +88,9 @@ ## 功能介绍 -基于out/{product_name}/packages/phone下所有cfg文件、out/{product_name}/packages/phone/system/profile下所有xml文件,rom的分析结果,(rom_ram_baseline.json——可以在rom分析阶段通过-b参数生成)分析各进程及对应部件的ram占用(默认取Pss) +基于out/{product_name}/packages/phone下所有cfg文件、out/{product_name}/packages/phone/system/profile下所有json文件,rom的分析结果,(rom_ram_baseline.json——可以在rom分析阶段通过-b参数生成)分析各进程及对应部件的ram占用(默认取Pss) -收集cfg、xml文件的可供参考命令:`mkdir xml && cp $(find ~/oh/out/rk3568/packages/phone/system/profile -name *.xml | xargs) xml` +收集cfg、json文件的可供参考命令:`mkdir cfgs && cp $(find ~/oh/out/rk3568/packages/phone -name *.cfs | xargs) cfgs` 结果以json与xls格式存储,其中,json格式是必输出的,xls格式需要-e参数控制。 @@ -109,7 +109,7 @@ ``` 5. 准备好相关数据: 1. out/{product_name}/packages/phone下所有cfg文件,并将其放置于同一个目录中(ps:同名文件仅保存一份即可) - 1. out/{product_name}/packages/phone/system/profile下所有xml文件 + 1. out/{product_name}/packages/phone/system/profile下所有json 文件 1. rom_ram_baseline.json——如果需要在结果中生成基线信息 6. 运行rom_analyzer.py产生的json结果一份(即-o参数对应的文件,默认rom_analysis_result.json) @@ -118,16 +118,16 @@ 1. 使用`-h`或`--help`查看帮助 ```shell > python .\ram_analyzer.py -h - usage: ram_analyzer.py [-h] [-v] -x XML_PATH -c CFG_PATH [-j ROM_RESULT] -n DEVICE_NUM [-b BASELINE_FILE] - [-o OUTPUT_FILENAME] [-e EXCEL] + usage: ram_analyzer.py [-h] [-v] -s JSON_PATH -c CFG_PATH [-j ROM_RESULT] -n DEVICE_NUM [-b BASELINE_FILE] + [-o OUTPUT_FILENAME] [-u] [-e EXCEL] analyze ram size of component optional arguments: -h, --help show this help message and exit -v, -version show program\'s version number and exit - -x XML_PATH, --xml_path XML_PATH - path of xml file. eg: -x ~/openharmony/out/rk3568/packages/phone/system/profile + -s JSON_PATH, --json_path JSON_PATH + path of sa json file. eg: -x ~/openharmony/out/rk3568/packages/phone/system/profile -c CFG_PATH, --cfg_path CFG_PATH path of cfg files. eg: -c ./cfgs/ -j ROM_RESULT, --rom_result ROM_RESULT @@ -139,13 +139,15 @@ baseline file of rom and ram generated by rom analysis. -o OUTPUT_FILENAME, --output_filename OUTPUT_FILENAME base name of output file, default: ram_analysis_result. eg: -o ram_analysis_result + -u, --unit_adaptive unit adaptive -e EXCEL, --excel EXCEL if output result as excel, default: False. eg: -e True ``` 2. 使用示例: ```shell - python ram_analyzer.py -x xml -c cfg -j rom_analysis_result.json -n 7001005458323933328a59a140913900 -b rom_ram_baseline.json -e True - # -x xml:指定xml文件的存放路径为xml目录,-c cfg类似 + python .\ram_analyzer.py -s .\profile\ -c .\cfgs -j .\rom_analysis_result.json -n 7001005458323933328a59a140913900 -e True + # -s profile:copy到本地的out/rk3568/package/phone/system/profile目录 + # -c .\cfgs:copy到本地的out/rk3568/packages/phone下所有cfg # -b rom_ram_baseline.json:指定rom与ram的基线信息文件(可在rom统计阶段使用-b参数生成) # -e True:生成xls格式的结果文件 ``` diff --git a/tools/rom_ram_analyzer/standard/ram_analyzer.py b/tools/rom_ram_analyzer/standard/ram_analyzer.py index eada31c..c6b9fd2 100644 --- a/tools/rom_ram_analyzer/standard/ram_analyzer.py +++ b/tools/rom_ram_analyzer/standard/ram_analyzer.py @@ -172,26 +172,28 @@ class RamAnalyzer: return exec_once() @classmethod - def __parse_process_xml(cls, file_path: str, result_dict: typing.Dict[str, typing.List[str]]): + def __parse_process_json(cls, file_path: str, result_dict: typing.Dict[str, typing.List[str]]): """ - 解析xml文件,结存存入 result_dict中,格式:{process_name: os_list} + 解析json文件,结存存入 result_dict中,格式:{process_name: os_list} 其中,so_list中是so的base_name """ - if not (os.path.isfile(file_path) and file_path.endswith(".xml")): - print("warning: {} not exist or not a xml file".format(file_path)) + if not (os.path.isfile(file_path) and file_path.endswith(".json")): + print("warning: {} not exist or not a json file".format(file_path)) return - doc = dom.parse(file_path) - info = doc.getElementsByTagName("info")[0] - process = info.getElementsByTagName("process")[0] - process_name = process.childNodes[0].data - result_dict[process_name] = list() - libs = info.getElementsByTagName( - "loadlibs")[0].getElementsByTagName("libpath") - for lib in libs: - so = lib.childNodes[0].data - result_dict.get(process_name).append(os.path.split(so)[-1]) - if debug: - print(process_name, " ", so) + with open(file_path, 'r', encoding='utf-8') as f: + j_content:typing.Dict[str, typing.Any] = json.load(f) + if "process" not in j_content.keys() or "systemability" not in j_content.keys(): + print(f"warning: {file_path} has no field 'process' or 'systemability'") + return + process_name:str = j_content.get("process") + elf_list:typing.List[str] = list() + for sa in j_content.get("systemability"): + libpath:str = sa.get("libpath") + if not libpath: + continue + elf_list.append(libpath) + result_dict[process_name] = elf_list + @classmethod def get_elf_info_from_rom_result(cls, rom_result_json: str) -> typing.Dict[str, typing.Dict[str, str]]: @@ -238,7 +240,7 @@ class RamAnalyzer: if first.endswith("sa_main"): # 由sa_main去来起进程 xml_base_name = os.path.split(path_list[0])[-1] - cls.__parse_process_xml(os.path.join( + cls.__parse_process_json(os.path.join( profile_path, xml_base_name), result_dict) else: # 直接执行 @@ -247,25 +249,15 @@ class RamAnalyzer: result_dict.get(process_name).append(os.path.split(first)[-1]) @classmethod - def get_process_so_relationship(cls, xml_path: str, cfg_path: str, profile_path: str) -> typing.Dict[ + def get_process_so_relationship(cls,cfg_path: str, profile_path: str) -> typing.Dict[ str, typing.List[str]]: """ - 从out/{product_name}/packages/phone/sa_profile/merged_sa查找xml文件并处理得到进程与so的对应关系 + parse the relationship between process and elf file """ # 从merged_sa里面收集 - xml_list = glob.glob(xml_path + os.sep + "*[.]xml", recursive=True) + # json_list = glob.glob(json_path + os.sep + "*[.]json", recursive=True) process_elf_dict: typing.Dict[str, typing.List[str]] = dict() - for xml in xml_list: - if debug: - print("parsing: ", xml) - try: - cls.__parse_process_xml(xml, process_elf_dict) - except: - print("parse '{}' failed".format(xml)) - finally: - ... - # 从system/etc/init/*.cfg中收集,如果是sa_main拉起的,则从system/profile/*.xml中进行解析 - cfg_list = glob.glob(cfg_path + os.sep + "*[.]cfg", recursive=True) + cfg_list = glob.glob(cfg_path + os.sep + "*.cfg", recursive=True) for cfg in cfg_list: if debug: print("parsing: ", cfg) @@ -429,7 +421,7 @@ class RamAnalyzer: subsystem_info["size"] = sub_size @classmethod - def analysis(cls, cfg_path: str, xml_path: str, rom_result_json: str, device_num: str, + def analysis(cls, cfg_path: str, json_path: str, rom_result_json: str, device_num: str, output_file: str, ss: str, output_excel: bool, baseline_file: str, unit_adapt:bool): """ process size subsystem/component so so_size @@ -446,8 +438,8 @@ class RamAnalyzer: so_info_dict: typing.Dict[ str, typing.Dict[str["component_name|subsystem_name|size"], str]] = cls.get_elf_info_from_rom_result( rom_result_json) - process_elf_dict: typing.Dict[str, typing.List[str]] = cls.get_process_so_relationship(xml_path, cfg_path, - profile_path) + process_elf_dict: typing.Dict[str, typing.List[str]] = cls.get_process_so_relationship(cfg_path, + json_path) process_size_dict: typing.Dict[str, int] = cls.process_hidumper_info( device_num, ss) result_dict: typing.Dict[str, typing.Dict[str, typing.Any]] = dict() @@ -493,7 +485,7 @@ class RamAnalyzer: # 得到进程相关的elf文件list so_list: list = get(process_name, process_elf_dict) if so_list is None: - print("warning: process '{}' not found in .xml or .cfg".format( + print("warning: process '{}' not found in .json or .cfg".format( process_name)) result_dict[process_name] = dict() result_dict[process_name]["size"] = process_size @@ -571,8 +563,8 @@ def get_args(): ) parser.add_argument("-v", "-version", action="version", version=f"version {VERSION}") - parser.add_argument("-x", "--xml_path", type=str, required=True, - help="path of xml file. eg: -x ~/openharmony/out/rk3568/packages/phone/system/profile") + parser.add_argument("-s", "--json_path", type=str, required=True, + help="path of sa json file. eg: -x ~/openharmony/out/rk3568/packages/phone/system/profile") parser.add_argument("-c", "--cfg_path", type=str, required=True, help="path of cfg files. eg: -c ./cfgs/") parser.add_argument("-j", "--rom_result", type=str, default="./rom_analysis_result.json", @@ -591,11 +583,13 @@ def get_args(): args = parser.parse_args() return args +def abspath(path:str)->str: + return os.path.abspath(os.path.expanduser(path)) if __name__ == '__main__': args = get_args() - cfg_path = args.cfg_path - profile_path = args.xml_path + cfg_path = abspath(args.cfg_path) + profile_path = abspath(args.json_path) rom_result = args.rom_result device_num = args.device_num output_filename = args.output_filename -- Gitee From ec72a22377c1f9314c7c1fdfb235d1d92d5d89bf Mon Sep 17 00:00:00 2001 From: aodongbiao Date: Fri, 23 Jun 2023 18:55:28 +0800 Subject: [PATCH 050/201] =?UTF-8?q?[rom=5Fram=5Fanalyzer]rk=E9=AA=8C?= =?UTF-8?q?=E8=AF=81=E5=8F=AF=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: aodongbiao --- .../lite_small/src/rom_analysis.py | 143 +++++++------ tools/rom_ram_analyzer/standard/README.md | 2 +- .../standard/pkgs/basic_tool.py | 34 +++ .../standard/pkgs/gn_common_tool.py | 80 +++++-- .../rom_ram_analyzer/standard/ram_analyzer.py | 197 ++++++++++-------- .../rom_ram_analyzer/standard/rom_analyzer.py | 117 ++++++++--- 6 files changed, 376 insertions(+), 197 deletions(-) diff --git a/tools/rom_ram_analyzer/lite_small/src/rom_analysis.py b/tools/rom_ram_analyzer/lite_small/src/rom_analysis.py index efa1350..5e263f2 100644 --- a/tools/rom_ram_analyzer/lite_small/src/rom_analysis.py +++ b/tools/rom_ram_analyzer/lite_small/src/rom_analysis.py @@ -88,7 +88,7 @@ class RomAnalysisTool: if (not sub_path) or (os.sep not in sub_path): return # 将其他目录添加到dir_list - t, sub_sub_path = sub_path.split(os.sep, 1) # 如果是c/e,分割成c,e + t, sub_sub_path = sub_path.split(os.sep, 1) # 如果是c/e,分割成c,e t = os.path.join(rela_path, t) if t in dir_list: dir_list.remove(t) @@ -107,7 +107,7 @@ class RomAnalysisTool: logging.error( f"product_name '{product_name}' not found in the config.yaml") exit(1) - product_path_dit: Dict[str, str] = dict() # 存储编译产物的类型及目录 + product_path_dit: Dict[str, str] = dict() # 存储编译产物的类型及目录 root_dir = product_dir.get("root") root_dir = os.path.join(project_path, root_dir) relative_dir: Dict[str, str] = product_dir.get("relative") @@ -120,14 +120,14 @@ class RomAnalysisTool: product_path_dit[k] = os.path.join(root_dir, v) # 查找编译产物信息 # product_dict格式: {"so": ["a.so", "b.so"]} - product_dict: Dict[str, List[str]] = dict() # 存储编译产物的名称 + product_dict: Dict[str, List[str]] = dict() # 存储编译产物的名称 for k, v in product_path_dit.items(): if not os.path.exists(v): logging.warning(f"dir '{v}' not exist") - product_dict[k] = BasicTool.find_files_with_pattern(v) # v是全路径 + product_dict[k] = BasicTool.find_files_with_pattern(v) # v是全路径 if product_dir.get("rest"): rest_dir_list: List[str] = os.listdir( - root_dir) # 除了配置在relative下之外的所有剩余目录,全部归到etc下 + root_dir) # 除了配置在relative下之外的所有剩余目录,全部归到etc下 for v in relative_dir.values(): if v in rest_dir_list: rest_dir_list.remove(v) @@ -152,14 +152,14 @@ class RomAnalysisTool: @classmethod def _put(cls, sub: str, com: str, unit: Dict, rom_size_dict: Dict, com_size_baseline: str = str()): size = unit.get("size") - if not rom_size_dict.get("size"): # 总大小 + if not rom_size_dict.get("size"): # 总大小 rom_size_dict["size"] = 0 - if not rom_size_dict.get(sub): # 子系统大小 + if not rom_size_dict.get(sub): # 子系统大小 rom_size_dict[sub]: Dict[str, Dict] = dict() rom_size_dict[sub]["size"] = 0 rom_size_dict[sub]["count"] = 0 - if not rom_size_dict.get(sub).get(com): # 部件 + if not rom_size_dict.get(sub).get(com): # 部件 rom_size_dict.get(sub)[com] = dict() rom_size_dict[sub][com]["filelist"] = list() rom_size_dict[sub][com]["size"] = 0 @@ -329,7 +329,71 @@ class RomAnalysisTool: del v[index] break - @ classmethod + @classmethod + def _iterate_all_template_type(cls, type_list: List[str], gn_info: Dict, gn_info_file: str, base_name: str, + rom_ram_baseline: Dict, rom_size_dict: Dict, f: str, size: int): + find_flag = False + component_rom_baseline = None + for tn in type_list: # tn example: ohos_shared_library + if find_flag: # 如果已经在前面的template中找到了,后面的就不必再查找 + break + output_dict: Dict[str, Dict] = gn_info.get( + tn) # 这个模板对应的所有可能编译产物 + if not output_dict: + logging.warning( + f"'{tn}' not found in the {gn_info_file}") + continue + d = output_dict.get(base_name) + if not d: + continue + d["size"] = size + d["file_name"] = f.replace(project_path, "") + if rom_ram_baseline.get(d["subsystem_name"]) and rom_ram_baseline.get(d["subsystem_name"]).get(d["component_name"]): + component_rom_baseline = rom_ram_baseline.get( + d["subsystem_name"]).get(d["component_name"]).get("rom") + cls._put(d["subsystem_name"], + d["component_name"], d, rom_size_dict, component_rom_baseline) + find_flag = True + if not find_flag: # 如果指定序列中的template都没有查找到,则模糊匹配 + # fuzzy match + psesudo_gn, sub, com = cls._fuzzy_match(f) + if sub and com: + if rom_ram_baseline.get(sub) and rom_ram_baseline.get(sub).get(com): + component_rom_baseline = rom_ram_baseline.get( + sub).get(com).get("baseline") + cls._put(sub, com, { + "subsystem_name": sub, + "component_name": com, + "psesudo_gn_path": psesudo_gn, + "description": "fuzzy match", + "file_name": f.replace(project_path, ""), + "size": size, + }, rom_size_dict, component_rom_baseline) + find_flag = True + if not find_flag: # 模糊匹配都没有匹配到的,归属到NOTFOUND + cls._put("NOTFOUND", "NOTFOUND", { + "file_name": f.replace(project_path, ""), + "size": size, + }, rom_size_dict) + + @classmethod + def _subsystem_component_for_all_product_file(cls, product_dict: Dict[str, List[str]], query_order: Dict[str, List[str]], + gn_info: Dict, gn_info_file: str, rom_ram_baseline: Dict, rom_size_dict: Dict): + for t, l in product_dict.items(): + for f in l: # 遍历所有文件 + if os.path.isdir(f): + continue + type_list = query_order.get(t) + _, base_name = os.path.split(f) + size = os.path.getsize(f) + if not type_list: + logging.warning( + f"'{t}' not found in query_order of the config.yaml") + break + cls._iterate_all_template_type( + type_list, gn_info, gn_info_file, base_name, rom_ram_baseline, rom_size_dict, f, size) + + @classmethod def analysis(cls, product_name: str, product_dict: Dict[str, List[str]]): """analysis the rom of lite/small product @@ -346,69 +410,18 @@ class RomAnalysisTool: project_path) with open("rom_ram_baseline.json", 'w', encoding='utf-8') as f: json.dump(rom_ram_baseline, f, indent=4) - gn_info_file = configs["gn_info_file"] # filename to save gn_info + gn_info_file = configs["gn_info_file"] # filename to save gn_info with open(gn_info_file, 'r', encoding='utf-8') as f: gn_info = json.load(f) query_order: Dict[str, List[str] - ] = configs[product_name]["query_order"] # query order of the gn template to be matched - query_order["etc"] = configs["target_type"] # etc会查找所有的template + ] = configs[product_name]["query_order"] # query order of the gn template to be matched + query_order["etc"] = configs["target_type"] # etc会查找所有的template rom_size_dict: Dict = dict() if "manual_config" in configs[product_name].keys(): cls._match_manual_configured( configs[product_name]["manual_config"], product_dict, configs[product_name]["product_dir"]["root"], rom_size_dict) - for t, l in product_dict.items(): - for f in l: # 遍历所有文件 - if os.path.isdir(f): - continue - find_flag = False - type_list = query_order.get(t) - _, base_name = os.path.split(f) - size = os.path.getsize(f) - if not type_list: - logging.warning( - f"'{t}' not found in query_order of the config.yaml") - break - for tn in type_list: # tn example: ohos_shared_library - if find_flag: # 如果已经在前面的template中找到了,后面的就不必再查找 - break - output_dict: Dict[str, Dict] = gn_info.get( - tn) # 这个模板对应的所有可能编译产物 - if not output_dict: - logging.warning( - f"'{tn}' not found in the {gn_info_file}") - continue - d = output_dict.get(base_name) - if not d: - continue - d["size"] = size - d["file_name"] = f.replace(project_path, "") - if rom_ram_baseline.get(d["subsystem_name"]) and rom_ram_baseline.get(d["subsystem_name"]).get(d["component_name"]): - component_rom_baseline = rom_ram_baseline.get( - d["subsystem_name"]).get(d["component_name"]).get("rom") - cls._put(d["subsystem_name"], - d["component_name"], d, rom_size_dict, component_rom_baseline) - find_flag = True - if not find_flag: # 如果指定序列中的template都没有查找到,则模糊匹配 - # fuzzy match - psesudo_gn, sub, com = cls._fuzzy_match(f) - if sub and com: - if rom_ram_baseline.get(sub) and rom_ram_baseline.get(sub).get(com): - component_rom_baseline = rom_ram_baseline.get( - sub).get(com).get("baseline") - cls._put(sub, com, { - "subsystem_name": sub, - "component_name": com, - "psesudo_gn_path": psesudo_gn, - "description": "fuzzy match", - "file_name": f.replace(project_path, ""), - "size": size, - }, rom_size_dict, component_rom_baseline) - find_flag = True - if not find_flag: # 模糊匹配都没有匹配到的,归属到NOTFOUND - cls._put("NOTFOUND", "NOTFOUND", { - "file_name": f.replace(project_path, ""), - "size": size, - }, rom_size_dict) + cls._subsystem_component_for_all_product_file( + product_dict, query_order, gn_info, gn_info_file, rom_ram_baseline, rom_size_dict) if unit_adapt: cls._result_unit_adaptive(rom_size_dict) with open(configs[product_name]["output_name"], 'w', encoding='utf-8') as f: diff --git a/tools/rom_ram_analyzer/standard/README.md b/tools/rom_ram_analyzer/standard/README.md index 81008bf..250932d 100644 --- a/tools/rom_ram_analyzer/standard/README.md +++ b/tools/rom_ram_analyzer/standard/README.md @@ -90,7 +90,7 @@ 基于out/{product_name}/packages/phone下所有cfg文件、out/{product_name}/packages/phone/system/profile下所有json文件,rom的分析结果,(rom_ram_baseline.json——可以在rom分析阶段通过-b参数生成)分析各进程及对应部件的ram占用(默认取Pss) -收集cfg、json文件的可供参考命令:`mkdir cfgs && cp $(find ~/oh/out/rk3568/packages/phone -name *.cfs | xargs) cfgs` +收集cfg、json文件的可供参考命令:`mkdir cfgs && cp $(find ~/oh/out/rk3568/packages/phone -name *.cfg | xargs) cfgs` 结果以json与xls格式存储,其中,json格式是必输出的,xls格式需要-e参数控制。 diff --git a/tools/rom_ram_analyzer/standard/pkgs/basic_tool.py b/tools/rom_ram_analyzer/standard/pkgs/basic_tool.py index f5561de..73ae952 100644 --- a/tools/rom_ram_analyzer/standard/pkgs/basic_tool.py +++ b/tools/rom_ram_analyzer/standard/pkgs/basic_tool.py @@ -2,6 +2,7 @@ import sys import typing import os import glob +import re from pathlib import Path from typing import * @@ -17,6 +18,23 @@ def unit_adaptive(size: int) -> str: return str(round(size,2))+unit_list[index] class BasicTool: + @classmethod + def match_paragraph(cls, content: str, start_pattern: str = r"\w+\(\".*?\"\) *{", end_pattern: str = "\}") -> \ + Iterator[re.Match]: + """ + 匹配代码段,支持单行 + 注意:ptrn中已经包含前面的空格,所以start_pattern中可以省略 + :param content: 被匹配的字符串 + :param start_pattern: 模式的开头 + :param end_pattern: 模式的结尾 + :return: 匹配到的段落的迭代器 + """ + ptrn = r'^( *){s}(?#匹配开头).*?(?#中间非贪婪)\1(?#如果开头前面有空格,则结尾的前面应该有相同数量的空格)?{e}$(?#匹配结尾)'.format( + s=start_pattern, e=end_pattern) + ptrn = re.compile(ptrn, re.M | re.S) + result = re.finditer(ptrn, content) + return result + @classmethod def find_all_files(cls, folder: str, real_path: bool = True, apply_abs: bool = True, de_duplicate: bool = True, p_filter: typing.Callable = lambda x: True) -> list: @@ -36,6 +54,22 @@ class BasicTool: def get_abs_path(cls, path: str) -> str: return os.path.abspath(os.path.expanduser(path)) + @classmethod + def re_group_1(cls, content: str, pattern: str, **kwargs) -> str: + """ + 匹配正则表达式,如果有匹配到内容,返回group(1)的内容 + :param content: 要被匹配的内容 + :param pattern: 进行匹配的模式 + :return: 匹配到的结果(group(1)) + TODO 对()的检查应该更严格 + """ + if not (r'(' in pattern and r')' in pattern): + raise ValueError("parentheses'()' must in the pattern") + result = re.search(pattern, content, **kwargs) + if result: + return result.group(1) + return str() + @classmethod def execute(cls, cmd: str, post_processor: Callable[[Text], Text] = lambda x:x) -> Any: """ diff --git a/tools/rom_ram_analyzer/standard/pkgs/gn_common_tool.py b/tools/rom_ram_analyzer/standard/pkgs/gn_common_tool.py index 11c2718..702d379 100644 --- a/tools/rom_ram_analyzer/standard/pkgs/gn_common_tool.py +++ b/tools/rom_ram_analyzer/standard/pkgs/gn_common_tool.py @@ -1,5 +1,12 @@ import os import json +import re +from typing import * + +if __name__ == '__main__': + from basic_tool import BasicTool +else: + from pkgs.basic_tool import BasicTool class GnCommonTool: @@ -98,21 +105,8 @@ class GnCommonTool: return part_name, subsystem_name @classmethod - def find_part_subsystem(cls, gn_file: str, project_path: str) -> tuple: - """ - 查找gn_file对应的part_name和subsystem - 如果在gn中找不到,就到bundle.json中去找 - """ - part_name = None - subsystem_name = None - part_var_flag = False # 标识这个变量从gn中取出的原始值是不是变量 - subsystem_var_flag = False - var_list = list() - part_name_pattern = r"part_name *=\s*\S*" - subsystem_pattern = r"subsystem_name *=\s*\S*" - meta_grep_pattern = "grep -E '{}' {} | head -n 1" - part_cmd = meta_grep_pattern.format(part_name_pattern, gn_file) - subsystem_cmd = meta_grep_pattern.format(subsystem_pattern, gn_file) + def _parse_part_subsystem(cls, part_var_flag: bool, subsystem_var_flag: bool, var_list: List[str], part_cmd: str, subsystem_cmd: str, gn_file: str, project_path: str) -> Tuple[str, str]: + part_name = subsystem_name = None part = os.popen(part_cmd).read().strip() if len(part) != 0: part = part.split('=')[-1].strip() @@ -145,13 +139,63 @@ class GnCommonTool: tuple(var_list), gn_file, project_path)[0] subsystem_name = t if t is not None and len( t) != 0 else subsystem_name - if part_name is not None and subsystem_name is not None: + return part_name, subsystem_name + + @classmethod + def find_part_subsystem(cls, gn_file: str, project_path: str) -> tuple: + """ + 查找gn_file对应的part_name和subsystem + 如果在gn中找不到,就到bundle.json中去找 + """ + part_var_flag = False # 标识这个变量从gn中取出的原始值是不是变量 + subsystem_var_flag = False + var_list = list() + part_name_pattern = r"part_name *=\s*\S*" + subsystem_pattern = r"subsystem_name *=\s*\S*" + meta_grep_pattern = "grep -E '{}' {} | head -n 1" + part_cmd = meta_grep_pattern.format(part_name_pattern, gn_file) + subsystem_cmd = meta_grep_pattern.format(subsystem_pattern, gn_file) + + part_name, subsystem_name = cls._parse_part_subsystem(part_var_flag, subsystem_var_flag, + var_list, part_cmd, subsystem_cmd, gn_file, project_path) + if part_name and subsystem_name: return part_name, subsystem_name # 如果有一个没有找到,就要一层层去找bundle.json文件 t_part_name, t_subsystem_name = cls.__find_part_subsystem_from_bundle( gn_file, stop_tail=project_path) - if t_part_name is not None: + if t_part_name: part_name = t_part_name - if t_subsystem_name is not None: + if t_subsystem_name: subsystem_name = t_subsystem_name return part_name, subsystem_name + +class GnVariableParser: + @classmethod + def string_parser(cls, var: str, content: str) -> str: + """ + 解析值为字符串的变量,没有对引号进行去除,如果是a = b这种b为变量的,则无法匹配 + :param content: 要进行解析的内容 + :param var: 变量名 + :return: 变量值[str] + """ + result = BasicTool.re_group_1( + content, r"{} *= *[\n]?(\".*?\")".format(var), flags=re.S | re.M) + return result + + @classmethod + def list_parser(cls, var: str, content: str) -> List[str]: + """ + 解析值为列表的变量,list的元素必须全为数字或字符串,且没有对引号进行去除,如果是a = b这种b为变量的,则无法匹配 + :param var: 变量名 + :param content: 要进行 + :return: 变量值[List] + """ + result = BasicTool.re_group_1( + content, r"{} *= *(\[.*?\])".format(var), flags=re.S | re.M) + result_list = list() + for item in result.lstrip('[').rstrip(']').split('\n'): + item = item.strip().strip(',"') + if not item: + continue + result_list.append(item) + return result_list diff --git a/tools/rom_ram_analyzer/standard/ram_analyzer.py b/tools/rom_ram_analyzer/standard/ram_analyzer.py index c6b9fd2..3e1a399 100644 --- a/tools/rom_ram_analyzer/standard/ram_analyzer.py +++ b/tools/rom_ram_analyzer/standard/ram_analyzer.py @@ -139,9 +139,9 @@ class RamAnalyzer: # 如果第一列不是数字(pid),就过 if not processed or not processed[0].isnumeric(): continue - name = processed[1] # 否则的话就取名字,和对应的size + name = processed[1] # 否则的话就取名字,和对应的size size = int(processed[cls.__ss_dict.get(ss)]) * \ - 1024 # kilo byte to byte + 1024 # kilo byte to byte full_process_name = find_full_process_name(name) if not full_process_name: print( @@ -181,20 +181,20 @@ class RamAnalyzer: print("warning: {} not exist or not a json file".format(file_path)) return with open(file_path, 'r', encoding='utf-8') as f: - j_content:typing.Dict[str, typing.Any] = json.load(f) + j_content: typing.Dict[str, typing.Any] = json.load(f) if "process" not in j_content.keys() or "systemability" not in j_content.keys(): - print(f"warning: {file_path} has no field 'process' or 'systemability'") + print( + f"warning: {file_path} has no field 'process' or 'systemability'") return - process_name:str = j_content.get("process") - elf_list:typing.List[str] = list() + process_name: str = j_content.get("process") + elf_list: typing.List[str] = list() for sa in j_content.get("systemability"): - libpath:str = sa.get("libpath") + libpath: str = sa.get("libpath") if not libpath: continue elf_list.append(libpath) result_dict[process_name] = elf_list - @classmethod def get_elf_info_from_rom_result(cls, rom_result_json: str) -> typing.Dict[str, typing.Dict[str, str]]: """ @@ -249,7 +249,7 @@ class RamAnalyzer: result_dict.get(process_name).append(os.path.split(first)[-1]) @classmethod - def get_process_so_relationship(cls,cfg_path: str, profile_path: str) -> typing.Dict[ + def get_process_so_relationship(cls, cfg_path: str, profile_path: str) -> typing.Dict[ str, typing.List[str]]: """ parse the relationship between process and elf file @@ -270,7 +270,7 @@ class RamAnalyzer: return process_elf_dict @classmethod - def __save_result_as_excel(cls, data_dict: dict, filename: str, ss: str, baseline_file: str, unit_adapt:bool): + def __save_result_as_excel(cls, data_dict: dict, filename: str, ss: str, baseline_file: str, unit_adapt: bool): """ 保存结果到excel中 子系统:{ @@ -403,34 +403,114 @@ class RamAnalyzer: continue component_info["baseline"] = baseline_dict[subsystem_name][component_name].get( "ram") + @classmethod - def refactored_result_unit_adaptive(cls, result_dict:Dict[str,Dict])->None: - for subsystem_name, subsystem_info in result_dict.items(): + def refactored_result_unit_adaptive(cls, result_dict: Dict[str, Dict]) -> None: + for _, subsystem_info in result_dict.items(): sub_size = unit_adaptive(subsystem_info["size"]) del subsystem_info["size"] - for component_name, component_info in subsystem_info.items(): + for _, component_info in subsystem_info.items(): com_size = unit_adaptive(component_info["size"]) del component_info["size"] - for process_name, process_info in component_info.items(): + for _, process_info in component_info.items(): pro_size = unit_adaptive(process_info["size"]) del process_info["size"] for elf_name, elf_size in process_info["elf"].items(): - process_info["elf"][elf_name]=unit_adaptive(elf_size) + process_info["elf"][elf_name] = unit_adaptive(elf_size) process_info["size"] = pro_size component_info["size"] = com_size subsystem_info["size"] = sub_size - + @classmethod - def analysis(cls, cfg_path: str, json_path: str, rom_result_json: str, device_num: str, - output_file: str, ss: str, output_excel: bool, baseline_file: str, unit_adapt:bool): - """ - process size subsystem/component so so_size - """ + def verify(cls, device_num: str) -> bool: if not HDCTool.verify_hdc(): print("error: Command 'hdc' not found") - return + return False if not HDCTool.verify_device(device_num): print("error: {} is inaccessible or not found".format(device_num)) + return False + return True + + @classmethod + def get(key: typing.Any, dt: typing.Dict[str, typing.Any]): + for k, v in dt.items(): + if k.startswith(key) or (len(v) > 0 and key == v[0]): + # 要么uinput_inject的对应key为mmi_uinput_inject。对于此类特殊处理,即:如果service_name找不到,但是直接执行的bin等于这个名字,也认为找到 + return v + + @classmethod + def _process_process_info(cls, process_name: str, result_dict: Dict, process_size: int, + rom_result_dict: Dict, process_elf_dict: Dict, so_info_dict: Dict,): + # 如果部件是init,特殊处理 + if process_name == "init": + _, elf, _, _, size = cls.find_elf_size_from_rom_result(process_name, "startup", "init", + lambda x, y: os.path.split(y)[ + -1].lower() == x.lower(), + rom_result_dict) + result_dict[process_name] = dict() + result_dict[process_name]["size"] = process_size + result_dict[process_name]["startup"] = dict() + result_dict[process_name]["startup"]["init"] = dict() + result_dict[process_name]["startup"]["init"][elf if len( + elf) != 0 else "UNKNOWN"] = size + return + # 如果是hap,特殊处理 + if (process_name.startswith("com.") or process_name.startswith("ohos.")): + _, hap_name, subsystem_name, component_name, size = cls.find_elf_size_from_rom_result(process_name, "*", "*", + lambda x, y: len( + y.split( + '/')) >= 3 and x.lower().startswith( + y.split('/')[2].lower()), + rom_result_dict) + result_dict[process_name] = dict() + result_dict[process_name]["size"] = process_size + result_dict[process_name][subsystem_name] = dict() + result_dict[process_name][subsystem_name][component_name] = dict() + result_dict[process_name][subsystem_name][component_name][hap_name if len( + hap_name) != 0 else "UNKNOWN"] = size + return + # 得到进程相关的elf文件list + so_list: list = cls.get(process_name, process_elf_dict) + if so_list is None: + print("warning: process '{}' not found in .json or .cfg".format( + process_name)) + result_dict[process_name] = dict() + result_dict[process_name]["size"] = process_size + result_dict[process_name]["UNKNOWN"] = dict() + result_dict[process_name]["UNKNOWN"]["UNKNOWN"] = dict() + result_dict[process_name]["UNKNOWN"]["UNKNOWN"]["UNKNOWN"] = int() + return + result_dict[process_name] = dict() + result_dict[process_name]["size"] = process_size + for so in so_list: + unit = so_info_dict.get(so) + if unit is None: + result_dict[process_name]["UNKNOWN"] = dict() + result_dict[process_name]["UNKNOWN"]["UNKNOWN"] = dict() + result_dict[process_name]["UNKNOWN"]["UNKNOWN"][so] = int() + print("warning: '{}' in {} not found in json from rom analysis result".format( + so, process_name)) + continue + component_name = unit.get("component_name") + subsystem_name = unit.get("subsystem_name") + so_size = unit.get("size") + if result_dict.get(process_name).get(subsystem_name) is None: + result_dict[process_name][subsystem_name] = dict() + if result_dict.get(process_name).get(subsystem_name).get(component_name) is None: + result_dict[process_name][subsystem_name][component_name] = dict() + result_dict[process_name][subsystem_name][component_name][so] = so_size + + @classmethod + def _collect_sa_profile_info(cls, project_path:str): + ... + + @classmethod + def analysis(cls, cfg_path: str, json_path: str, rom_result_json: str, device_num: str, + output_file: str, ss: str, output_excel: bool, baseline_file: str, unit_adapt: bool): + """ + process size subsystem/component so so_size + """ + if not cls.verify(device_num): return with open(rom_result_json, 'r', encoding='utf-8') as f: rom_result_dict: typing.Dict = json.loads(f.read()) @@ -443,75 +523,12 @@ class RamAnalyzer: process_size_dict: typing.Dict[str, int] = cls.process_hidumper_info( device_num, ss) result_dict: typing.Dict[str, typing.Dict[str, typing.Any]] = dict() - - def get(key: typing.Any, dt: typing.Dict[str, typing.Any]): - for k, v in dt.items(): - if k.startswith(key) or (len(v) > 0 and key == v[0]): - # 要么uinput_inject的对应key为mmi_uinput_inject。对于此类特殊处理,即:如果service_name找不到,但是直接执行的bin等于这个名字,也认为找到 - return v - - for process_name, process_size in process_size_dict.items(): # 从进程出发 + for process_name, process_size in process_size_dict.items(): # 从进程出发 if not process_name: print("warning: an empty 'process_name' has been found.") continue - # 如果部件是init,特殊处理 - if process_name == "init": - _, elf, _, _, size = cls.find_elf_size_from_rom_result(process_name, "startup", "init", - lambda x, y: os.path.split(y)[ - -1].lower() == x.lower(), - rom_result_dict) - result_dict[process_name] = dict() - result_dict[process_name]["size"] = process_size - result_dict[process_name]["startup"] = dict() - result_dict[process_name]["startup"]["init"] = dict() - result_dict[process_name]["startup"]["init"][elf if len( - elf) != 0 else "UNKNOWN"] = size - continue - # 如果是hap,特殊处理 - if (process_name.startswith("com.") or process_name.startswith("ohos.")): - _, hap_name, subsystem_name, component_name, size = cls.find_elf_size_from_rom_result(process_name, "*", "*", - lambda x, y: len( - y.split( - '/')) >= 3 and x.lower().startswith( - y.split('/')[2].lower()), - rom_result_dict) - result_dict[process_name] = dict() - result_dict[process_name]["size"] = process_size - result_dict[process_name][subsystem_name] = dict() - result_dict[process_name][subsystem_name][component_name] = dict() - result_dict[process_name][subsystem_name][component_name][hap_name if len( - hap_name) != 0 else "UNKNOWN"] = size - continue - # 得到进程相关的elf文件list - so_list: list = get(process_name, process_elf_dict) - if so_list is None: - print("warning: process '{}' not found in .json or .cfg".format( - process_name)) - result_dict[process_name] = dict() - result_dict[process_name]["size"] = process_size - result_dict[process_name]["UNKNOWN"] = dict() - result_dict[process_name]["UNKNOWN"]["UNKNOWN"] = dict() - result_dict[process_name]["UNKNOWN"]["UNKNOWN"]["UNKNOWN"] = int() - continue - result_dict[process_name] = dict() - result_dict[process_name]["size"] = process_size - for so in so_list: - unit = so_info_dict.get(so) - if unit is None: - result_dict[process_name]["UNKNOWN"] = dict() - result_dict[process_name]["UNKNOWN"]["UNKNOWN"] = dict() - result_dict[process_name]["UNKNOWN"]["UNKNOWN"][so] = int() - print("warning: '{}' in {} not found in json from rom analysis result".format( - so, process_name)) - continue - component_name = unit.get("component_name") - subsystem_name = unit.get("subsystem_name") - so_size = unit.get("size") - if result_dict.get(process_name).get(subsystem_name) is None: - result_dict[process_name][subsystem_name] = dict() - if result_dict.get(process_name).get(subsystem_name).get(component_name) is None: - result_dict[process_name][subsystem_name][component_name] = dict() - result_dict[process_name][subsystem_name][component_name][so] = so_size + cls._process_process_info( + process_name, result_dict, process_size, rom_result_dict, process_elf_dict, so_info_dict) base_dir, _ = os.path.split(output_file) if len(base_dir) != 0 and not os.path.isdir(base_dir): os.makedirs(base_dir, exist_ok=True) @@ -583,9 +600,11 @@ def get_args(): args = parser.parse_args() return args -def abspath(path:str)->str: + +def abspath(path: str) -> str: return os.path.abspath(os.path.expanduser(path)) + if __name__ == '__main__': args = get_args() cfg_path = abspath(args.cfg_path) diff --git a/tools/rom_ram_analyzer/standard/rom_analyzer.py b/tools/rom_ram_analyzer/standard/rom_analyzer.py index 2536a6c..8619f93 100644 --- a/tools/rom_ram_analyzer/standard/rom_analyzer.py +++ b/tools/rom_ram_analyzer/standard/rom_analyzer.py @@ -22,10 +22,11 @@ import sys import typing from copy import deepcopy from typing import * - +import re +import subprocess from pkgs.rom_ram_baseline_collector import RomRamBaselineCollector from pkgs.basic_tool import BasicTool, unit_adaptive -from pkgs.gn_common_tool import GnCommonTool +from pkgs.gn_common_tool import GnCommonTool, GnVariableParser from pkgs.simple_excel_writer import SimpleExcelWriter debug = bool(sys.gettrace()) @@ -33,27 +34,80 @@ debug = bool(sys.gettrace()) NOTFOUND = "NOTFOUND" +class PreCollector: + """ + collect some info that system_module_info.json dosn't contains + """ + + def __init__(self, project_path: str) -> None: + self.info_dict: Dict[str, Any] = dict() + self.project_path = BasicTool.get_abs_path(project_path) + self.result_dict = dict() + + def _process_single_sa(self, item: str, start_pattern: str): + gn, _, _ = item.split(':') + with open(gn, 'r', encoding='utf-8') as f: + content = f.read() + p_itr: Iterator[re.Match] = BasicTool.match_paragraph( + content=content, start_pattern=start_pattern) + for p in p_itr: + p_content = p.group() + files: List[str] = GnVariableParser.list_parser( + "sources", p_content) + component_name, subsystem_name = GnCommonTool.find_part_subsystem( + gn, self.project_path) + for f in files: + f = f.split('/')[-1] + self.result_dict[f] = { + "subsystem_name": subsystem_name, + "component_name": component_name, + "gn_path": gn + } + + def collect_sa_profile(self): + grep_kw = r"ohos_sa_profile" + grep_cmd = f"grep -rn '{grep_kw}' --include=BUILD.gn {self.project_path}" + content = BasicTool.execute( + grep_cmd, post_processor=lambda x: x.split('\n')) + for item in content: + if not item: + continue + self._process_single_sa(item, start_pattern=grep_kw) + + class RomAnalyzer: @classmethod def __collect_product_info(cls, system_module_info_json: Text, - project_path: Text) -> Dict[Text, Dict[Text, Text]]: + project_path: Text, extra_info: Dict[str, Dict]) -> Dict[Text, Dict[Text, Text]]: """ 根据system_module_info.json生成target字典 + format: + { + "{file_name}":{ + "{subsytem_name}": abc, + "{component_name}": def, + "{gn_path}": ghi + } + } + if the unit of system_module_info.json has not field "label" and the "type" is "sa_profile", + find the subsystem_name and component_name in the BUILD.gn """ with open(system_module_info_json, 'r', encoding='utf-8') as f: product_list = json.loads(f.read()) project_path = BasicTool.get_abs_path(project_path) product_info_dict: Dict[Text, Dict[Text, Text]] = dict() for unit in product_list: + cs_flag = False dest: List = unit.get("dest") - if dest is None: + if not dest: print("warning: keyword 'dest' not found in {}".format( system_module_info_json)) continue label: Text = unit.get("label") gn_path = component_name = subsystem_name = None if label: + cs_flag = True gn_path = os.path.join(project_path, label.split(':')[ 0].lstrip('/'), "BUILD.gn") component_name = unit.get("part_name") @@ -66,11 +120,18 @@ class RomAnalyzer: else: print("warning: keyword 'label' not found in {}".format(unit)) for target in dest: - product_info_dict[target] = { - "component_name": component_name, - "subsystem_name": subsystem_name, - "gn_path": gn_path, - } + if cs_flag: + product_info_dict[target] = { + "component_name": component_name, + "subsystem_name": subsystem_name, + "gn_path": gn_path, + } + else: + tmp = target.split('/')[-1] + pre_info = extra_info.get(tmp) + if not pre_info: + continue + product_info_dict[target] = pre_info return product_info_dict @classmethod @@ -142,12 +203,12 @@ class RomAnalyzer: return baseline_dict.get(subsystem_name).get(component_name).get("rom") size = unit.get("size") relative_filepath = unit.get("relative_filepath") - if result_dict.get(subsystem_name) is None: # 子系统 + if result_dict.get(subsystem_name) is None: # 子系统 result_dict[subsystem_name] = dict() result_dict[subsystem_name]["size"] = 0 result_dict[subsystem_name]["file_count"] = 0 - if result_dict.get(subsystem_name).get(component_name) is None: # 部件 + if result_dict.get(subsystem_name).get(component_name) is None: # 部件 result_dict[subsystem_name][component_name] = dict() result_dict[subsystem_name][component_name]["size"] = 0 result_dict[subsystem_name][component_name]["file_count"] = 0 @@ -162,18 +223,18 @@ class RomAnalyzer: result_dict[subsystem_name][component_name][relative_filepath] = size @classmethod - def result_unit_adaptive(self, result_dict:Dict[str,Dict])->None: + def result_unit_adaptive(self, result_dict: Dict[str, Dict]) -> None: for subsystem_name, subsystem_info in result_dict.items(): - size = unit_adaptive(subsystem_info["size"]) - count = subsystem_info["file_count"] - if "size" in subsystem_info.keys(): - del subsystem_info["size"] - if "file_count" in subsystem_info.keys(): - del subsystem_info["file_count"] - for component_name, component_info in subsystem_info.items(): - component_info["size"] = unit_adaptive(component_info["size"]) - subsystem_info["size"] = size - subsystem_info["file_count"] = count + size = unit_adaptive(subsystem_info["size"]) + count = subsystem_info["file_count"] + if "size" in subsystem_info.keys(): + del subsystem_info["size"] + if "file_count" in subsystem_info.keys(): + del subsystem_info["file_count"] + for component_name, component_info in subsystem_info.items(): + component_info["size"] = unit_adaptive(component_info["size"]) + subsystem_info["size"] = size + subsystem_info["file_count"] = count @classmethod def analysis(cls, system_module_info_json: Text, product_dirs: List[str], @@ -193,8 +254,11 @@ class RomAnalyzer: phone_dir = os.path.join( project_path, "out", product_name, "packages", "phone") product_dirs = [os.path.join(phone_dir, d) for d in product_dirs] + pre_collector = PreCollector(project_path) + pre_collector.collect_sa_profile() + extra_product_info_dict: Dict[str, Dict] = pre_collector.result_dict product_info_dict = cls.__collect_product_info( - system_module_info_json, project_path) # 所有产物信息 + system_module_info_json, project_path, extra_info=extra_product_info_dict) # collect product info from json file result_dict: Dict[Text:Dict] = dict() for d in product_dirs: file_list: List[Text] = BasicTool.find_all_files(d) @@ -203,7 +267,10 @@ class RomAnalyzer: relative_filepath = f.replace(phone_dir, "").lstrip(os.sep) unit: Dict[Text, Any] = product_info_dict.get( relative_filepath) - if unit is None: + if not unit: + bf = f.split('/')[-1] + unit: Dict[Text, Any] = product_info_dict.get(bf) + if not unit: unit = dict() unit["size"] = size unit["relative_filepath"] = relative_filepath @@ -258,3 +325,5 @@ if __name__ == '__main__': unit_adapt = args.unit_adaptive RomAnalyzer.analysis(module_info_json, product_dirs, project_path, product_name, output_file, output_excel, add_baseline, unit_adapt) + # collector = PreCollector("~/oh_nomodify") + # collector.collect_sa_profile() -- Gitee From 26b6655b8e404a253c1004c5514a6b185c81a2d4 Mon Sep 17 00:00:00 2001 From: aodongbiao Date: Fri, 23 Jun 2023 19:12:16 +0800 Subject: [PATCH 051/201] [rom_ram_analyzer]verified lite/small' Signed-off-by: aodongbiao --- tools/rom_ram_analyzer/lite_small/README.md | 2 +- .../lite_small/src/rom_analysis.py | 3 +- tools/rom_ram_analyzer/standard/README.md | 9 +- .../rom_ram_analyzer/standard/ram_analyzer.py | 164 ++++++++---------- .../rom_ram_analyzer/standard/rom_analyzer.py | 4 +- 5 files changed, 84 insertions(+), 98 deletions(-) diff --git a/tools/rom_ram_analyzer/lite_small/README.md b/tools/rom_ram_analyzer/lite_small/README.md index e9e66a6..468a512 100644 --- a/tools/rom_ram_analyzer/lite_small/README.md +++ b/tools/rom_ram_analyzer/lite_small/README.md @@ -15,7 +15,7 @@ ## 代码思路 -1. 扫描BUILD.gn文件,收集各个target的编译产物及其对应的component_name, subsystem_name信息,并存储到config.yaml中的gn_info_file字段指定的json文件中 +1. 扫描BUILD.gn文件,收集各个target的编译产物及其对应的component_name, subsystem_name信息,并存储到config.yaml中的gn_info_file字段指定的json文件中。如果BUILD.gn中没有查找到,则直接使用get_subsytem_component.py中预先收集好的数据(根据bundle.json) 2. 根据配置文件config.yaml扫描产品的编译产物目录,得到真实的编译产物信息(主要是大小) 3. 用真实的编译产物与从BUILD.gn中收集的信息进行匹配,从而得到编译产物-大小-所属部件的对应信息 4. 如果匹配失败,会直接利用grep到项目路径下进行模糊搜索,取出现次数top1的BUILD.gn,并根据该BUILD.gn文件去查找子系统和部件 diff --git a/tools/rom_ram_analyzer/lite_small/src/rom_analysis.py b/tools/rom_ram_analyzer/lite_small/src/rom_analysis.py index 5e263f2..54e3986 100644 --- a/tools/rom_ram_analyzer/lite_small/src/rom_analysis.py +++ b/tools/rom_ram_analyzer/lite_small/src/rom_analysis.py @@ -330,8 +330,7 @@ class RomAnalysisTool: break @classmethod - def _iterate_all_template_type(cls, type_list: List[str], gn_info: Dict, gn_info_file: str, base_name: str, - rom_ram_baseline: Dict, rom_size_dict: Dict, f: str, size: int): + def _iterate_all_template_type(cls, type_list: List[str], gn_info: Dict, gn_info_file: str, base_name: str, rom_ram_baseline: Dict, rom_size_dict: Dict, f: str, size: int): find_flag = False component_rom_baseline = None for tn in type_list: # tn example: ohos_shared_library diff --git a/tools/rom_ram_analyzer/standard/README.md b/tools/rom_ram_analyzer/standard/README.md index 250932d..cef2cbf 100644 --- a/tools/rom_ram_analyzer/standard/README.md +++ b/tools/rom_ram_analyzer/standard/README.md @@ -12,6 +12,10 @@ 主要是rk3568系列,已测试产品包括rk3568、rk3568_mini_system +## 实现思路 + +利用编译构建自动生成的out/rk3568/packages/phone/system_module_info.json中已有的信息重新组织,对于其中没有子系统和部件的文件,手动查找。目前已知ohos_sa_profile没有 + ## 使用说明 前置条件: @@ -30,7 +34,7 @@ 1. `-h`或`--help`命令查看帮助 ```shell > python3 rom_analyzer.py -h - usage: rom_analyzer.py [-h] [-v] -p PROJECT_PATH -j MODULE_INFO_JSON -n PRODUCT_NAME -d PRODUCT_DIR [-b] [-o OUTPUT_FILE] [-e EXCEL] + usage: rom_analyzer.py [-h] [-v] -p PROJECT_PATH -j MODULE_INFO_JSON -n PRODUCT_NAME -d PRODUCT_DIR [-b] [-o OUTPUT_FILE] [-u] [-e EXCEL] analyze rom size of component. @@ -48,6 +52,7 @@ -b, --baseline add baseline of component to the result(-b) or not. -o OUTPUT_FILE, --output_file OUTPUT_FILE basename of output file, default: rom_analysis_result. eg: demo/rom_analysis_result + -u, --unit_adaptive unit adaptive -e EXCEL, --excel EXCEL if output result as excel, default: False. eg: -e True ``` @@ -55,7 +60,7 @@ ```shell python3 rom_analyzer.py -p ~/oh/ -j ~/oh/out/rk3568/packages/phone/system_module_info.json -n rk3568 -d system -d vendor -d updater -e True -b # oh:rootpath of oh - # -b: add baseline of to the result + # -b: add baseline info to the result # -e True:output result in excel format additionally ``` diff --git a/tools/rom_ram_analyzer/standard/ram_analyzer.py b/tools/rom_ram_analyzer/standard/ram_analyzer.py index 3e1a399..e17b065 100644 --- a/tools/rom_ram_analyzer/standard/ram_analyzer.py +++ b/tools/rom_ram_analyzer/standard/ram_analyzer.py @@ -43,7 +43,7 @@ class HDCTool: True:可用 False:不可用 """ - cp = subprocess.run(["hdc"], capture_output=True) + cp = subprocess.run(["hdc", "--help"], capture_output=True) stdout = str(cp.stdout) stderr = str(cp.stderr) return verify_str in stdout or verify_str in stderr @@ -406,13 +406,13 @@ class RamAnalyzer: @classmethod def refactored_result_unit_adaptive(cls, result_dict: Dict[str, Dict]) -> None: - for _, subsystem_info in result_dict.items(): + for subsystem_name, subsystem_info in result_dict.items(): sub_size = unit_adaptive(subsystem_info["size"]) del subsystem_info["size"] - for _, component_info in subsystem_info.items(): + for component_name, component_info in subsystem_info.items(): com_size = unit_adaptive(component_info["size"]) del component_info["size"] - for _, process_info in component_info.items(): + for process_name, process_info in component_info.items(): pro_size = unit_adaptive(process_info["size"]) del process_info["size"] for elf_name, elf_size in process_info["elf"].items(): @@ -421,96 +421,17 @@ class RamAnalyzer: component_info["size"] = com_size subsystem_info["size"] = sub_size - @classmethod - def verify(cls, device_num: str) -> bool: - if not HDCTool.verify_hdc(): - print("error: Command 'hdc' not found") - return False - if not HDCTool.verify_device(device_num): - print("error: {} is inaccessible or not found".format(device_num)) - return False - return True - - @classmethod - def get(key: typing.Any, dt: typing.Dict[str, typing.Any]): - for k, v in dt.items(): - if k.startswith(key) or (len(v) > 0 and key == v[0]): - # 要么uinput_inject的对应key为mmi_uinput_inject。对于此类特殊处理,即:如果service_name找不到,但是直接执行的bin等于这个名字,也认为找到 - return v - - @classmethod - def _process_process_info(cls, process_name: str, result_dict: Dict, process_size: int, - rom_result_dict: Dict, process_elf_dict: Dict, so_info_dict: Dict,): - # 如果部件是init,特殊处理 - if process_name == "init": - _, elf, _, _, size = cls.find_elf_size_from_rom_result(process_name, "startup", "init", - lambda x, y: os.path.split(y)[ - -1].lower() == x.lower(), - rom_result_dict) - result_dict[process_name] = dict() - result_dict[process_name]["size"] = process_size - result_dict[process_name]["startup"] = dict() - result_dict[process_name]["startup"]["init"] = dict() - result_dict[process_name]["startup"]["init"][elf if len( - elf) != 0 else "UNKNOWN"] = size - return - # 如果是hap,特殊处理 - if (process_name.startswith("com.") or process_name.startswith("ohos.")): - _, hap_name, subsystem_name, component_name, size = cls.find_elf_size_from_rom_result(process_name, "*", "*", - lambda x, y: len( - y.split( - '/')) >= 3 and x.lower().startswith( - y.split('/')[2].lower()), - rom_result_dict) - result_dict[process_name] = dict() - result_dict[process_name]["size"] = process_size - result_dict[process_name][subsystem_name] = dict() - result_dict[process_name][subsystem_name][component_name] = dict() - result_dict[process_name][subsystem_name][component_name][hap_name if len( - hap_name) != 0 else "UNKNOWN"] = size - return - # 得到进程相关的elf文件list - so_list: list = cls.get(process_name, process_elf_dict) - if so_list is None: - print("warning: process '{}' not found in .json or .cfg".format( - process_name)) - result_dict[process_name] = dict() - result_dict[process_name]["size"] = process_size - result_dict[process_name]["UNKNOWN"] = dict() - result_dict[process_name]["UNKNOWN"]["UNKNOWN"] = dict() - result_dict[process_name]["UNKNOWN"]["UNKNOWN"]["UNKNOWN"] = int() - return - result_dict[process_name] = dict() - result_dict[process_name]["size"] = process_size - for so in so_list: - unit = so_info_dict.get(so) - if unit is None: - result_dict[process_name]["UNKNOWN"] = dict() - result_dict[process_name]["UNKNOWN"]["UNKNOWN"] = dict() - result_dict[process_name]["UNKNOWN"]["UNKNOWN"][so] = int() - print("warning: '{}' in {} not found in json from rom analysis result".format( - so, process_name)) - continue - component_name = unit.get("component_name") - subsystem_name = unit.get("subsystem_name") - so_size = unit.get("size") - if result_dict.get(process_name).get(subsystem_name) is None: - result_dict[process_name][subsystem_name] = dict() - if result_dict.get(process_name).get(subsystem_name).get(component_name) is None: - result_dict[process_name][subsystem_name][component_name] = dict() - result_dict[process_name][subsystem_name][component_name][so] = so_size - - @classmethod - def _collect_sa_profile_info(cls, project_path:str): - ... - @classmethod def analysis(cls, cfg_path: str, json_path: str, rom_result_json: str, device_num: str, output_file: str, ss: str, output_excel: bool, baseline_file: str, unit_adapt: bool): """ process size subsystem/component so so_size """ - if not cls.verify(device_num): + if not HDCTool.verify_hdc(): + print("error: Command 'hdc' not found") + return + if not HDCTool.verify_device(device_num): + print("error: {} is inaccessible or not found".format(device_num)) return with open(rom_result_json, 'r', encoding='utf-8') as f: rom_result_dict: typing.Dict = json.loads(f.read()) @@ -523,12 +444,75 @@ class RamAnalyzer: process_size_dict: typing.Dict[str, int] = cls.process_hidumper_info( device_num, ss) result_dict: typing.Dict[str, typing.Dict[str, typing.Any]] = dict() + + def get(key: typing.Any, dt: typing.Dict[str, typing.Any]): + for k, v in dt.items(): + if k.startswith(key) or (len(v) > 0 and key == v[0]): + # 要么uinput_inject的对应key为mmi_uinput_inject。对于此类特殊处理,即:如果service_name找不到,但是直接执行的bin等于这个名字,也认为找到 + return v + for process_name, process_size in process_size_dict.items(): # 从进程出发 if not process_name: print("warning: an empty 'process_name' has been found.") continue - cls._process_process_info( - process_name, result_dict, process_size, rom_result_dict, process_elf_dict, so_info_dict) + # 如果部件是init,特殊处理 + if process_name == "init": + _, elf, _, _, size = cls.find_elf_size_from_rom_result(process_name, "startup", "init", + lambda x, y: os.path.split(y)[ + -1].lower() == x.lower(), + rom_result_dict) + result_dict[process_name] = dict() + result_dict[process_name]["size"] = process_size + result_dict[process_name]["startup"] = dict() + result_dict[process_name]["startup"]["init"] = dict() + result_dict[process_name]["startup"]["init"][elf if len( + elf) != 0 else "UNKNOWN"] = size + continue + # 如果是hap,特殊处理 + if (process_name.startswith("com.") or process_name.startswith("ohos.")): + _, hap_name, subsystem_name, component_name, size = cls.find_elf_size_from_rom_result(process_name, "*", "*", + lambda x, y: len( + y.split( + '/')) >= 3 and x.lower().startswith( + y.split('/')[2].lower()), + rom_result_dict) + result_dict[process_name] = dict() + result_dict[process_name]["size"] = process_size + result_dict[process_name][subsystem_name] = dict() + result_dict[process_name][subsystem_name][component_name] = dict() + result_dict[process_name][subsystem_name][component_name][hap_name if len( + hap_name) != 0 else "UNKNOWN"] = size + continue + # 得到进程相关的elf文件list + so_list: list = get(process_name, process_elf_dict) + if so_list is None: + print("warning: process '{}' not found in .json or .cfg".format( + process_name)) + result_dict[process_name] = dict() + result_dict[process_name]["size"] = process_size + result_dict[process_name]["UNKNOWN"] = dict() + result_dict[process_name]["UNKNOWN"]["UNKNOWN"] = dict() + result_dict[process_name]["UNKNOWN"]["UNKNOWN"]["UNKNOWN"] = int() + continue + result_dict[process_name] = dict() + result_dict[process_name]["size"] = process_size + for so in so_list: + unit = so_info_dict.get(so) + if unit is None: + result_dict[process_name]["UNKNOWN"] = dict() + result_dict[process_name]["UNKNOWN"]["UNKNOWN"] = dict() + result_dict[process_name]["UNKNOWN"]["UNKNOWN"][so] = int() + print("warning: '{}' in {} not found in json from rom analysis result".format( + so, process_name)) + continue + component_name = unit.get("component_name") + subsystem_name = unit.get("subsystem_name") + so_size = unit.get("size") + if result_dict.get(process_name).get(subsystem_name) is None: + result_dict[process_name][subsystem_name] = dict() + if result_dict.get(process_name).get(subsystem_name).get(component_name) is None: + result_dict[process_name][subsystem_name][component_name] = dict() + result_dict[process_name][subsystem_name][component_name][so] = so_size base_dir, _ = os.path.split(output_file) if len(base_dir) != 0 and not os.path.isdir(base_dir): os.makedirs(base_dir, exist_ok=True) diff --git a/tools/rom_ram_analyzer/standard/rom_analyzer.py b/tools/rom_ram_analyzer/standard/rom_analyzer.py index 8619f93..87b08c4 100644 --- a/tools/rom_ram_analyzer/standard/rom_analyzer.py +++ b/tools/rom_ram_analyzer/standard/rom_analyzer.py @@ -324,6 +324,4 @@ if __name__ == '__main__': add_baseline = args.baseline unit_adapt = args.unit_adaptive RomAnalyzer.analysis(module_info_json, product_dirs, - project_path, product_name, output_file, output_excel, add_baseline, unit_adapt) - # collector = PreCollector("~/oh_nomodify") - # collector.collect_sa_profile() + project_path, product_name, output_file, output_excel, add_baseline, unit_adapt) \ No newline at end of file -- Gitee From 57b8754972c5afb93ae4c74ec1ff89dc636c3a8e Mon Sep 17 00:00:00 2001 From: zhangqiang183 Date: Sun, 25 Jun 2023 11:54:49 +0000 Subject: [PATCH 052/201] update tools/deps_guard/rules/ChipsetSDK/whitelist.json. Signed-off-by: zhangqiang183 --- tools/deps_guard/rules/ChipsetSDK/whitelist.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tools/deps_guard/rules/ChipsetSDK/whitelist.json b/tools/deps_guard/rules/ChipsetSDK/whitelist.json index f9ae651..2b61c79 100755 --- a/tools/deps_guard/rules/ChipsetSDK/whitelist.json +++ b/tools/deps_guard/rules/ChipsetSDK/whitelist.json @@ -18,7 +18,11 @@ "libdisplay_gralloc.z.so", "libhdifd_parcelable.z.so", "libconfigpolicy_util.z.so", + "libpixelmap_ndk.z.so", + "libimage_ndk.z.so", + "libimage_receiver_ndk.z.so", "libimage_source_ndk.z.so", + "libstd.dylib.so", // Third party libraries "libdrm.so", -- Gitee From 19403887c116744e6c22740fbb9fb707142f275d Mon Sep 17 00:00:00 2001 From: zhangqiang183 Date: Sun, 25 Jun 2023 11:58:35 +0000 Subject: [PATCH 053/201] update tools/deps_guard/rules/ChipsetSDK/whitelist.json. Signed-off-by: zhangqiang183 --- tools/deps_guard/rules/ChipsetSDK/whitelist.json | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/tools/deps_guard/rules/ChipsetSDK/whitelist.json b/tools/deps_guard/rules/ChipsetSDK/whitelist.json index 2b61c79..51e6b47 100755 --- a/tools/deps_guard/rules/ChipsetSDK/whitelist.json +++ b/tools/deps_guard/rules/ChipsetSDK/whitelist.json @@ -4,6 +4,7 @@ "liblog.so", "libhilog.so", "libhilog_ndk.z.so", + "libhitrace_ndk.z.so", "libhisysevent.z.so", "libhicollie.z.so", "libservice_checker.z.so", @@ -35,7 +36,8 @@ "libprotobuf.z.so", "libshared_libz.z.so", "libcrypto_openssl.z.so", - + "libcrypto_openssl.so", + "libunwind.z.so", "libudev.z.so", "libsurface.z.so", "libsamgr_proxy.z.so", @@ -45,6 +47,8 @@ "libbuffer_producer_sequenceable_1.0.z.so", "libbuffer_handle_sequenceable_1.0.z.so", + "libohosffmpeg.z.so", + // To be optimized "libprotobuf_lite.z.so", "libdmabufheap.z.so", @@ -65,6 +69,12 @@ "libhdi_input.z.so", "libhitrace_meter.so", + "libmapper_service_1.0.z.so", + "libinput_interfaces_service_1.0.z.so", + "libhdf_utils.z.so", + "libdisplay_buffer_vdi_impl.z.so", + "libdisplay_buffer_vendor.z.so", + "libcodec_hdi_omx_callback_type_service_impl.z.so", // by libdisplay_layer_video.z.so for hispark taurus platform "libhdi_video_layer_client.z.so", -- Gitee From ce5ebade3e6f16e7858ba1486d014f71222922e8 Mon Sep 17 00:00:00 2001 From: zhanhang Date: Tue, 13 Jun 2023 09:11:51 +0000 Subject: [PATCH 054/201] add whitelist for libohaudio.so Signed-off-by: z00511616 Change-Id: I9d2626bc3d1d27e08b61ed22f9c790e3147ab9fb --- tools/deps_guard/rules/ChipsetSDK/whitelist.json | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/deps_guard/rules/ChipsetSDK/whitelist.json b/tools/deps_guard/rules/ChipsetSDK/whitelist.json index 608557b..2bc3345 100755 --- a/tools/deps_guard/rules/ChipsetSDK/whitelist.json +++ b/tools/deps_guard/rules/ChipsetSDK/whitelist.json @@ -5,6 +5,7 @@ "libhilog.so", "libhilog_ndk.z.so", "libhitrace_ndk.z.so", + "libohaudio.so", "libhisysevent.z.so", "libhicollie.z.so", "libservice_checker.z.so", -- Gitee From f6e2a7b63f666bb3fa062cbc0d70bd5074255512 Mon Sep 17 00:00:00 2001 From: redjie Date: Fri, 30 Jun 2023 15:59:18 +0800 Subject: [PATCH 055/201] =?UTF-8?q?=E5=BB=B6=E9=95=BF=E7=9B=B8=E6=9C=BA?= =?UTF-8?q?=E8=B7=B3=E8=BD=AC=E5=9B=BE=E5=BA=93=E7=9A=84=E7=AD=89=E5=BE=85?= =?UTF-8?q?=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: redjie Change-Id: I352e2311c5a2a9c2b0bbb0b4db8168e718623a81 --- .../screenshot32/resource/app_capture_screen_test_config.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cases/smoke/basic/screenshot32/resource/app_capture_screen_test_config.json b/cases/smoke/basic/screenshot32/resource/app_capture_screen_test_config.json index a1c3b60..ec9d285 100644 --- a/cases/smoke/basic/screenshot32/resource/app_capture_screen_test_config.json +++ b/cases/smoke/basic/screenshot32/resource/app_capture_screen_test_config.json @@ -64,7 +64,7 @@ "kill_camera": ["killall com.ohos.camera"], "kill_photos": ["killall com.ohos.photos"], "all_actions": [ - [1, "open_camera_log"], [5, "start_camera"], [3, "take_photos-x-y"], [2, "convert_to_video-x-y"], [3, "take_photos-x-y"], [2, "stop_video-x-y"], [6, "convert_to_photos-x-y"], + [1, "open_camera_log"], [5, "start_camera"], [3, "take_photos-x-y"], [2, "convert_to_video-x-y"], [3, "take_photos-x-y"], [2, "stop_video-x-y"], [11, "convert_to_photos-x-y"], [1, "recover_log"], [1, "check_result"], [1, "shot_cmd", "camera"], [1, "compress_log"], [1, "check_photos"], [1, "get_file_from_dev", "/data/log/hilog/camera_log.tar"], [1, "kill_camera"], [1, "kill_photos"] ] -- Gitee From 309ab1f43400f6f1cbd8182dc79326b8d9df37a4 Mon Sep 17 00:00:00 2001 From: wuliushuan Date: Fri, 30 Jun 2023 08:10:57 +0000 Subject: [PATCH 056/201] token_info file add sn flag Signed-off-by: wuliushuan Change-Id: I28e07cdcb93d6efc7844008fc54e06697b15294f --- cases/smoke/basic/screenshot32/acls_check/acl_check.py | 10 +++++----- cases/smoke/basic/screenshot32/acls_check/config.py | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/cases/smoke/basic/screenshot32/acls_check/acl_check.py b/cases/smoke/basic/screenshot32/acls_check/acl_check.py index 7f9238d..61fd363 100644 --- a/cases/smoke/basic/screenshot32/acls_check/acl_check.py +++ b/cases/smoke/basic/screenshot32/acls_check/acl_check.py @@ -52,11 +52,11 @@ def main(sn): set_log_content(LogLevel(2).name, log_tag, '-------------------------- ACL check begin --------------------------') try: - hdc_command(GENERATING_TOKEN_INFO_COMMAND.format(sn, TOKEN_INFO_URL)) - hdc_command(DOWNLOAD_TOKEN_INFO_COMMAND.format(sn, TOKEN_INFO_URL, DOWNLOAD_TOKEN_INFO_URL)) - hdc_command(CLEAR_TOKEN_INFO_FILE.format(sn, TOKEN_INFO_URL)) - file = read_txt(DOWNLOAD_TOKEN_INFO_URL) - clear_token_info_txt(DOWNLOAD_TOKEN_INFO_URL) + hdc_command(GENERATING_TOKEN_INFO_COMMAND.format(sn, TOKEN_INFO_URL.format(sn))) + hdc_command(DOWNLOAD_TOKEN_INFO_COMMAND.format(sn, TOKEN_INFO_URL.format(sn), DOWNLOAD_TOKEN_INFO_URL.format(sn))) + hdc_command(CLEAR_TOKEN_INFO_FILE.format(sn, TOKEN_INFO_URL.format(sn))) + file = read_txt(DOWNLOAD_TOKEN_INFO_URL.format(sn)) + clear_token_info_txt(DOWNLOAD_TOKEN_INFO_URL.format(sn)) acls_dict = check_and_get(file) acl_whitelist = read_json(PATH + 'acl_whitelist.json') whitelist = get_acl_dict(acl_whitelist) diff --git a/cases/smoke/basic/screenshot32/acls_check/config.py b/cases/smoke/basic/screenshot32/acls_check/config.py index 90ae558..ff0a630 100644 --- a/cases/smoke/basic/screenshot32/acls_check/config.py +++ b/cases/smoke/basic/screenshot32/acls_check/config.py @@ -24,7 +24,7 @@ PATH = os.path.dirname(os.path.realpath(__file__)) + SYS_SEQ # 脚本的执行日志 LOG_FILE = PATH + SYS_SEQ + "native_sa.log" # 设备上生成的token info 文件名 -TOKEN_INFO_NAME = 'token_info_{}.txt'.format(time.time_ns()) +TOKEN_INFO_NAME = 'token_info_'+ str(time.time_ns()) +'_{}.txt' # 设备上生成文件存放位置 TOKEN_INFO_URL = '/data/{}'.format(TOKEN_INFO_NAME) # 设备上文件生成命令 -- Gitee From b48494585095a21cd3a46d14be7148e87ce4c5d5 Mon Sep 17 00:00:00 2001 From: wuliushuan Date: Fri, 30 Jun 2023 09:01:54 +0000 Subject: [PATCH 057/201] local reserve token_info file Signed-off-by: wuliushuan Change-Id: I462c79d787a8313322b4cd5a960da5831bcd68bf --- cases/smoke/basic/screenshot32/acls_check/acl_check.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cases/smoke/basic/screenshot32/acls_check/acl_check.py b/cases/smoke/basic/screenshot32/acls_check/acl_check.py index 61fd363..3a12bb5 100644 --- a/cases/smoke/basic/screenshot32/acls_check/acl_check.py +++ b/cases/smoke/basic/screenshot32/acls_check/acl_check.py @@ -56,7 +56,7 @@ def main(sn): hdc_command(DOWNLOAD_TOKEN_INFO_COMMAND.format(sn, TOKEN_INFO_URL.format(sn), DOWNLOAD_TOKEN_INFO_URL.format(sn))) hdc_command(CLEAR_TOKEN_INFO_FILE.format(sn, TOKEN_INFO_URL.format(sn))) file = read_txt(DOWNLOAD_TOKEN_INFO_URL.format(sn)) - clear_token_info_txt(DOWNLOAD_TOKEN_INFO_URL.format(sn)) + # clear_token_info_txt(DOWNLOAD_TOKEN_INFO_URL.format(sn)) acls_dict = check_and_get(file) acl_whitelist = read_json(PATH + 'acl_whitelist.json') whitelist = get_acl_dict(acl_whitelist) -- Gitee From 1d9988058f64a8de2c6c9d9fd4a7d98017f9b507 Mon Sep 17 00:00:00 2001 From: openharmony_ci <120357966@qq.com> Date: Wed, 5 Jul 2023 08:31:28 +0000 Subject: [PATCH 058/201] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=96=87=E4=BB=B6=20?= =?UTF-8?q?DeployDevice/src/func/liteOsUpgrade/liteOsUpgrade=5FRK3568=5Fap?= =?UTF-8?q?p-926.py?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../liteOsUpgrade_RK3568_app-926.py | 511 ------------------ 1 file changed, 511 deletions(-) delete mode 100644 DeployDevice/src/func/liteOsUpgrade/liteOsUpgrade_RK3568_app-926.py diff --git a/DeployDevice/src/func/liteOsUpgrade/liteOsUpgrade_RK3568_app-926.py b/DeployDevice/src/func/liteOsUpgrade/liteOsUpgrade_RK3568_app-926.py deleted file mode 100644 index 849dbc0..0000000 --- a/DeployDevice/src/func/liteOsUpgrade/liteOsUpgrade_RK3568_app-926.py +++ /dev/null @@ -1,511 +0,0 @@ -# -*- coding:utf-8 -*- -import uuid -import sys -import subprocess -import os -import time -import re -import shutil -import random - - -from core.base import BaseApp, dec_stepmsg -from util.file_locker import FileLock -from util.log_info import logger -from util.time_info import get_now_time_str_info, get_now_time_info, Timeout, timeout -from aw.Download.Download import * -from aw.Common.Constant import CONSTANT -from aw.Common.Common import getFileName -from aw.ExtractFile.ExtractFile import * -from aw.Common.Common import getHostIp, copyFile, copyDirectory - -lock_suffix = CONSTANT.File.LOCK_SUFFIX -suc_file = CONSTANT.File.SUC_FILE -failed_file = CONSTANT.File.FAILED_FILE -REBOOT_TIMEOUT = 20000000 - - -class liteOsUpgrade_RK3568(BaseApp): - ''' - @author: cwx1076044 - ''' - - def __init__(self, param_file): - super().__init__(param_file) - self.param_List = ["upgrade_upgradeLocation", "sn"] - - @dec_stepmsg("hongmeng RK3568 flash") - def excute(self): - ''' - #=================================================================================== - # @Method: excute(self) - # @Precondition: none - # @Func: 升级执行入口 - # @PostStatus: none - # @eg: excute() - # @return: True or Flase - #=================================================================================== - ''' - step_index = self.params_dict.get("step_list").index("liteOsUpgrade_RK3568_app") - - # 执行下载 - try: - if not self.download(): - CONSTANT.ENVERRMESSAGE = "image download fail" - logger.printLog(CONSTANT.ENVERRMESSAGE) - return False - except Exception as e: - logger.error(e) - raise e - - # 执行升级 - try: - return_code = self.upgrade() - if not return_code: - CONSTANT.ENVERRMESSAGE = "board upgrade fail" - logger.printLog(CONSTANT.ENVERRMESSAGE) - return False - if return_code == 98: - return 98 - if return_code == 99: - return 99 - return True - except Exception as e: - logger.error(e) - raise e - - @dec_stepmsg("upgrade") - @timeout(3600) - def upgrade(self): - ''' - #=================================================================================== - # @Method: upgrade(self) - # @Precondition: none - # @Func: 升级相关业务逻辑 - # @PostStatus: none - # @eg: upgrade() - # @return: True or Flase - #=================================================================================== - ''' - global local_image_path, loader_tool_path, sn, LocationID ,test_num - upgrade_test_type = self.params_dict.get("UpgradeTestType") - sn = self.params_dict.get("sn") - LocationID = self.params_dict.get("LocationID") - test_num = self.params_dict.get("test_num") - pr_url = self.params_dict.get("pr_url") - logFilePath = self.logFilePath - logger.info(logFilePath) - r = logFilePath.rfind("\\") - report_path = logFilePath[:r] - logger.info(report_path) - scriptpath = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(os.path.dirname(__file__))))) - logger.info(scriptpath) - local_image_path = os.path.join(version_savepath) - logger.info(local_image_path) - loader_tool_path = os.path.join(scriptpath, "resource", "RK3568_tool", "upgrade_tool.exe") - logger.info(loader_tool_path) - mini_path = os.path.join(local_image_path, "mini_system_test", "L2_mini_system_test.py") - archive_path = os.path.join(version_savepath) - if not self.check_devices_mode(): - check_devices_cmd = "hdc_std list targets" - f = send_times(check_devices_cmd) - logger.info(f) - if not f or "Empty" in f: - logger.error("No devices found,please check the device.") - return False - else: - logger.info("3568 board is connected.") - return self.check_devices_mode() - else: - # 下載鏡像 - upgrde_loader_cmd = "%s -s %s UL %s/MiniLoaderAll.bin -noreset" % (loader_tool_path, LocationID, local_image_path) - h = sendCmd(upgrde_loader_cmd) - logger.info(h) - if "Upgrade loader ok" not in h: - logger.error("Download MiniLoaderAll.bin Fail!") - return False - else: - logger.printLog("Download MiniLoaderAll.bin Success!") - # time.sleep(3) - write_gpt_cmd = "%s -s %s DI -p %s/parameter.txt" % (loader_tool_path, LocationID, local_image_path) - j = sendCmd(write_gpt_cmd) - logger.info(j) - if "Write gpt ok" not in j: - logger.error("Failed to execute the parameter.txt") - return False - else: - logger.printLog("Successfully executed parameter.txt.") - # time.sleep(5) - download_uboot_cmd = "%s -s %s DI -uboot %s/uboot.img %s/parameter.txt" % ( - loader_tool_path, LocationID, local_image_path, local_image_path) - k = sendCmd(download_uboot_cmd) - logger.info(k) - if "Download image ok" not in k: - logger.error("Failed to download the uboot.image!") - if self.check_devices_mode(): - return 98 - return False - else: - logger.printLog("The uboot.image downloaded successfully!") - # time.sleep(5) - if not self.flash_version(): - return False - reboot_devices_cmd = "%s -s %s RD" % (loader_tool_path, LocationID) - reboot_result = sendCmd(reboot_devices_cmd) - logger.info(reboot_result) - time.sleep(30) - try: - if upgrade_test_type != "mini_system_test": - if not start_cmd(sn): - if self.check_devices_mode(): - return 98 - return False - except Exception as t: - logger.info(t) - if self.check_devices_mode(): - return 98 - return False - time.sleep(10) - if "Reset Device OK" not in reboot_result: - logger.error("Failed to reboot the board!") - return False - else: - logger.info("Reboot successfully!") - logger.printLog("******下载完成,升级成功,开始进行冒烟测试******") - if upgrade_test_type == "null": - return True - screenshot_path = os.path.join(local_image_path, "screenshot") - resource_path = os.path.join(screenshot_path, "resource") - logger.info(resource_path) - py_path = os.path.join(resource_path, "capturescreentest.py") - new_report_path = os.path.join(report_path, "result") - logger.info(new_report_path) - time_sleep = random.randint(1, 5) - time.sleep(time_sleep) - try: - if not os.path.exists(new_report_path): - os.mkdir(new_report_path) - except Exception as e: - logger.error(e) - return 98 - if upgrade_test_type == "mini_system_test": - save_path = os.path.join(new_report_path) - if exec_cmd(mini_path, sn, save_path, archive_path) == 98: - return 98 - return True - if not upgrade_test_type or upgrade_test_type == "smoke_test": - test_return = cmd_test(screenshot_path, py_path, new_report_path, resource_path, sn, test_num, pr_url) - if test_return == 1: - return True - if test_return == 98: - return 98 - if test_return == 99: - return 99 - else: - return False - - @timeout(1000) - def flash_version(self): - partList = ["boot_linux", "system", "vendor", "userdata", "resource", "ramdisk", "chipset", "sys-prod", "chip-prod"] - for i in partList: - if not os.path.exists("%s/%s.img" % (local_image_path, i)): - logger.printLog("%s.img is not exist, ignore" % i) - continue - loadcmd = "%s -s %s DI -%s %s/%s.img" % (loader_tool_path, LocationID, i, local_image_path, i) - p = sendCmd(loadcmd) - logger.info(p) - # time.sleep(5) - if "Download image ok" not in p: - logger.info("try download %s again!" % i) - time.sleep(1) - second_cmd = "%s -s %s DI -%s %s/%s.img" % (loader_tool_path, LocationID, i, local_image_path, i) - f = sendCmd(second_cmd) - logger.info(f) - if "Download image ok" not in f: - logger.printLog("Failed to download the %s.img!" % i) - if self.check_devices_mode(): - return 98 - else: - return False - return True - else: - logger.printLog("The %s.img downloaded successfully!" % i) - return True - - @timeout(120) - def check_devices_mode(self): - check_times = 0 - while check_times < 5: - check_mode_cmd = "%s LD" % loader_tool_path - g = sendCmd(check_mode_cmd) - logger.info(g) - #time.sleep(40) - if "LocationID=%s Mode=Loader" % LocationID in g: - logger.info("3568 board has entered the Loader mode successfully!") - return True - else: - #if test_num != "2/2": - # hdc_kill() - os.system("hdc_std -t %s shell reboot loader" % sn) - time.sleep(5) - check_times += 1 - logger.error("Failed to enter the loader mode!") - return False - - @dec_stepmsg("download") - @timeout(360) - def download(self): - ''' - #=================================================================================== - # @Method: download(self) - # @Precondition: none - # @Func: 构建下载到本地的路径,执行相应包的下载 - # @PostStatus: none - # @eg: download() - # @return: True or Flase - #=================================================================================== - ''' - global version_savepath, version_name - dir_path = CONSTANT.Path.getDirPath() - if self.params_dict.get("pbiid"): - version_path = self.params_dict.get("pbiid") - version_name = str(uuid.uuid5(uuid.NAMESPACE_URL, str(self.params_dict.get("pbiid")) + "FASTBOOT")) - version_savepath = os.path.join(dir_path, self.params_dict.get("flash_type"), version_name) - else: - version_path = self.params_dict.get("upgrade_upgradeLocation") - version_name = str(uuid.uuid5(uuid.NAMESPACE_URL, (self.params_dict.get("upgrade_upgradeLocation")))) - version_savepath = os.path.join(dir_path, version_name, "img") - # 执行img下载 - - if self.params_dict.get("isDownload") == "True": - logger.printLog("不需要做下载,直接返回") - return True - - import hashlib - save_file_str = version_path.replace("/", "").replace("\\", "") - save_file_name = hashlib.sha1(save_file_str.encode("utf-8")).hexdigest() - logger.info("download hash string:%s, hash value:%s" % (save_file_str, save_file_name)) - save_path_file = os.path.join(dir_path, "record", "%s%s" % (save_file_name, ".txt")) - if not self.excutedown(version_path, version_savepath, save_path_file, False): - logger.error("download img fail") - return 98 - - # 保存本地版本路径给devicetest去版本路径下取用例 - saveVersion(save_path_file, version_savepath) - return True - - def excutedown(self, source_path, download_dir, suc_mark, is_file): - ''' - #=================================================================================== - # @Method: excutedown(source_path, download_dir, suc_mark, is_file) - # @Precondition: none - # @Func: 执行下载动作 - # @PostStatus: none - # @Param: source_path:资源文件路径 - # download_dir:文件下载到本地的文件夹路径 - # is_file:是否是文件 - # @eg: excutedown("xxxx", "D:\\local\\image", suc_mark, Flase) - # @return: True or Flase - #=================================================================================== - ''' - failed_mark = os.path.join(download_dir, failed_file) - lock_path = os.path.join(download_dir, lock_suffix) - file_lock = FileLock() - - if isDownLoadSuccess(download_dir, suc_mark, failed_mark): - return True - try: - nowtime = get_now_time_str_info() - logger.printLog("%s Downloading, please wait" % nowtime) - file_lock.lockFile(lock_path) - ret = "" - logger.info("Get lock. Start to ") - try: - if self.params_dict.get("bt_enable") and self.params_dict.get("bt_enable") == "True": - ret = downloadByBitComet(source_path, download_dir, os_method) - elif source_path.startswith('\\\\'): - ret = downloadByCopy(source_path, download_dir, is_file) - elif self.params_dict.get("pbiid"): - ret = downlaodByDownloadTool(version_savepath, self.params_dict.get("version_type"), "FASTBOOT", - self.params_dict.get("pbiid")) - elif source_path.startswith("http"): - ret = run_download(source_path, download_dir) - except Exception as f: - logger.error(f) - logger.info("下载失败,间隔20秒,尝试再次下载。") - time.sleep(20) - ret = run_download(source_path, download_dir) - if source_path.endswith(".zip"): - zip_name = os.path.basename(source_path) - ret = extractZipFile(os.path.join(download_dir, zip_name), download_dir) - if source_path.endswith(".tar.gz") or (source_path.startswith("http") and ("file_id=" in source_path)): - if source_path.startswith("http") and ("file_id=" in source_path): - if source_path.endswith(".tar.gz"): - zip_name = source_path.split('=')[-1] - else: - zip_name = "out.tar.gz" - else: - zip_name = os.path.basename(source_path) - ret = unTarFile(os.path.join(download_dir, zip_name), download_dir) - nowtime = get_now_time_str_info() - logger.printLog("%s download to %s end" % (nowtime, download_dir)) - - if not ret: - with open(failed_mark, "a+") as fp: - fp.write("") - return ret - except Exception as e: - logger.printLog(e) - #raise Exception(e) - finally: - file_lock.releaseFile() - - -@timeout(30) -def hdc_kill(): - logger.info("kill the process") - os.system("hdc_std kill") - time.sleep(2) - logger.info("start the process") - os.system("hdc_std -l5 start") - # time.sleep(10) - - -def sendCmd(mycmd): - result = "".join(os.popen(mycmd).readlines()) - return result - - -def send_times(mycmd): - times = 0 - outcome = sendCmd(mycmd) - while times < 3: - if not outcome or "Empty" in outcome: - times += 1 - time.sleep(3) - else: - time.sleep(3) - return outcome - return outcome - - -@timeout(180) -def start_cmd(sn): - try: - os.system("hdc_std -l5 start") - power_cmd = "hdc_std -t %s shell \"power-shell setmode 602\"" % sn - hilog_cmd = "hdc_std -t %s shell \"hilog -w start -l 400000000 -m none\"" % sn - logger.info(power_cmd) - logger.info(hilog_cmd) - power_result = sendCmd(power_cmd) - logger.info(power_result) - if not power_result: - return False - number = 0 - while "Set Mode Success" not in power_result and number < 30: - time.sleep(4) - power_result = sendCmd(power_cmd) - logger.info(power_result) - number += 1 - if number >= 20: - logger.error("Set mode failed") - return False - hilog_result = sendCmd(hilog_cmd) - logger.info(hilog_result) - return True - except Exception as e: - logger.error(e) - return False - - -@timeout(3600) -def cmd_test(screenshot_path, py_path, new_report_path, resource_path, sn, test_num, pr_url): - save_screenshot_path = os.path.join(new_report_path, "screenshot_result") - logger.info(save_screenshot_path) - time_sleep = random.randint(1, 5) - time.sleep(time_sleep) - try: - if not os.path.exists(save_screenshot_path): - os.mkdir(save_screenshot_path) - logger.info(save_screenshot_path) - base_screenshot_path = os.path.join(new_report_path, "screenshot_base") - if not os.path.exists(base_screenshot_path): - os.mkdir(base_screenshot_path) - logger.info(base_screenshot_path) - except Exception as e: - logger.error(e) - return 98 - config_path = os.path.join(screenshot_path, "resource", "app_capture_screen_test_config.json") - py_cmd = "python %s --config %s --anwser_path %s --save_path %s --device_num %s --test_num %s --tools_path %s --pr_url %s" \ - % (py_path, config_path, resource_path, save_screenshot_path, sn, test_num, screenshot_path, pr_url) - result = outCmd(py_cmd, save_screenshot_path, base_screenshot_path, resource_path) - if result == 1: - return True - if result == 98: - return 98 - if result == 99: - return 99 - else: - return False - - -@timeout(3600) -def outCmd(cmd, save_screenshot_path, base_screenshot_path, resource_path): - logger.info("cmd is: %s" % cmd) - p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, encoding="gbk") - curline = p.stdout.readline() - list_png_name = [] - try: - while "End of check" not in curline: - curline = p.stdout.readline() - logger.info(curline) - if "abnarmal" in curline: - png_name = curline.split(" ")[3].split(".")[0] - list_png_name.append(png_name) - if "SmokeTest find some fatal problems" in curline: - logger.error("SmokeTest find some fatal problems!") - return 99 - except Exception as e: - logger.error(e) - logger.error("execute smoke_test.py failed!") - return 99 - l = list(set(list_png_name)) - if l: - logger.error(l) - try: - for i in l: - result = os.path.join(resource_path, "%s.png" % i) - base = os.path.join(base_screenshot_path, "%s.png" % i) - shutil.copy(result, base) - except Exception as t: - logger.info(t) - p.wait() - logger.info("p.returncode %s" % p.returncode) - if p.returncode == 0: - logger.info("screenshot check is ok!") - return True - if p.returncode == 101: - logger.error("device disconnection, please check the device!") - return False - logger.error("screenshot test failed, check the %s" % save_screenshot_path) - return 98 - - -@timeout(1000) -def exec_cmd(mini_path, sn, save_path, archive_path): - cmd = "python %s --device_num %s --save_path %s --archive_path %s" % (mini_path, sn, save_path, archive_path) - p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, encoding="gbk") - curline = p.stdout.readline() - try: - while "End of check" not in curline: - curline = p.stdout.readline() - logger.info(curline) - except Exception as e: - logger.error(e) - p.wait() - logger.info("p.returncode %s" % p.returncode) - if p.returncode == 0: - logger.info("mini_system_test is ok!") - return True - logger.error("mini_system_test failed!") - return 98 \ No newline at end of file -- Gitee From d5b15a4c8a9747daeacd753435d9db39fd5c7a7b Mon Sep 17 00:00:00 2001 From: openharmony_ci <120357966@qq.com> Date: Wed, 5 Jul 2023 08:31:39 +0000 Subject: [PATCH 059/201] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=96=87=E4=BB=B6=20?= =?UTF-8?q?DeployDevice/src/func/liteOsUpgrade/liteOsUpgrade=5FRK3568=5Fap?= =?UTF-8?q?p=5Fold.py?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../liteOsUpgrade_RK3568_app_old.py | 506 ------------------ 1 file changed, 506 deletions(-) delete mode 100644 DeployDevice/src/func/liteOsUpgrade/liteOsUpgrade_RK3568_app_old.py diff --git a/DeployDevice/src/func/liteOsUpgrade/liteOsUpgrade_RK3568_app_old.py b/DeployDevice/src/func/liteOsUpgrade/liteOsUpgrade_RK3568_app_old.py deleted file mode 100644 index 1e91d2e..0000000 --- a/DeployDevice/src/func/liteOsUpgrade/liteOsUpgrade_RK3568_app_old.py +++ /dev/null @@ -1,506 +0,0 @@ -# -*- coding:utf-8 -*- -import uuid -import sys -import subprocess -import os -import time -import re -import shutil -import random - - -from core.base import BaseApp, dec_stepmsg -from util.file_locker import FileLock -from util.log_info import logger -from util.time_info import get_now_time_str_info, get_now_time_info, Timeout, timeout -from aw.Download.Download import * -from aw.Common.Constant import CONSTANT -from aw.Common.Common import getFileName -from aw.ExtractFile.ExtractFile import * -from aw.Common.Common import getHostIp, copyFile, copyDirectory - -lock_suffix = CONSTANT.File.LOCK_SUFFIX -suc_file = CONSTANT.File.SUC_FILE -failed_file = CONSTANT.File.FAILED_FILE -REBOOT_TIMEOUT = 20000000 - - -class liteOsUpgrade_RK3568(BaseApp): - ''' - @author: cwx1076044 - ''' - - def __init__(self, param_file): - super().__init__(param_file) - self.param_List = ["upgrade_upgradeLocation", "sn"] - - @dec_stepmsg("hongmeng RK3568 flash") - def excute(self): - ''' - #=================================================================================== - # @Method: excute(self) - # @Precondition: none - # @Func: 升级执行入口 - # @PostStatus: none - # @eg: excute() - # @return: True or Flase - #=================================================================================== - ''' - step_index = self.params_dict.get("step_list").index("liteOsUpgrade_RK3568_app") - - # 执行下载 - try: - if not self.download(): - CONSTANT.ENVERRMESSAGE = "image download fail" - logger.printLog(CONSTANT.ENVERRMESSAGE) - return False - except Exception as e: - logger.error(e) - raise e - - # 执行升级 - try: - return_code = self.upgrade() - if not return_code: - CONSTANT.ENVERRMESSAGE = "board upgrade fail" - logger.printLog(CONSTANT.ENVERRMESSAGE) - return False - if return_code == 98: - return 98 - if return_code == 99: - return 99 - return True - except Exception as e: - logger.error(e) - raise e - - @dec_stepmsg("upgrade") - @timeout(3600) - def upgrade(self): - ''' - #=================================================================================== - # @Method: upgrade(self) - # @Precondition: none - # @Func: 升级相关业务逻辑 - # @PostStatus: none - # @eg: upgrade() - # @return: True or Flase - #=================================================================================== - ''' - global local_image_path, loader_tool_path, sn, LocationID ,test_num - upgrade_test_type = self.params_dict.get("UpgradeTestType") - sn = self.params_dict.get("sn") - LocationID = self.params_dict.get("LocationID") - test_num = self.params_dict.get("test_num") - pr_url = self.params_dict.get("pr_url") - logFilePath = self.logFilePath - logger.info(logFilePath) - r = logFilePath.rfind("\\") - report_path = logFilePath[:r] - logger.info(report_path) - scriptpath = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(os.path.dirname(__file__))))) - logger.info(scriptpath) - local_image_path = os.path.join(version_savepath) - logger.info(local_image_path) - loader_tool_path = os.path.join(scriptpath, "resource", "RK3568_tool", "upgrade_tool.exe") - logger.info(loader_tool_path) - mini_path = os.path.join(local_image_path, "mini_system_test", "L2_mini_system_test.py") - archive_path = os.path.join(version_savepath) - if not self.check_devices_mode(): - check_devices_cmd = "hdc_std list targets" - f = send_times(check_devices_cmd) - logger.info(f) - if not f or "Empty" in f: - logger.error("No devices found,please check the device.") - return False - else: - logger.info("3568 board is connected.") - return self.check_devices_mode() - else: - # 下載鏡像 - upgrde_loader_cmd = "%s -s %s UL %s/MiniLoaderAll.bin -noreset" % (loader_tool_path, LocationID, local_image_path) - h = sendCmd(upgrde_loader_cmd) - logger.info(h) - if "Upgrade loader ok" not in h: - logger.error("Download MiniLoaderAll.bin Fail!") - return False - else: - logger.printLog("Download MiniLoaderAll.bin Success!") - # time.sleep(3) - write_gpt_cmd = "%s -s %s DI -p %s/parameter.txt" % (loader_tool_path, LocationID, local_image_path) - j = sendCmd(write_gpt_cmd) - logger.info(j) - if "Write gpt ok" not in j: - logger.error("Failed to execute the parameter.txt") - return False - else: - logger.printLog("Successfully executed parameter.txt.") - # time.sleep(5) - download_uboot_cmd = "%s -s %s DI -uboot %s/uboot.img %s/parameter.txt" % ( - loader_tool_path, LocationID, local_image_path, local_image_path) - k = sendCmd(download_uboot_cmd) - logger.info(k) - if "Download image ok" not in k: - logger.error("Failed to download the uboot.image!") - if self.check_devices_mode(): - return 98 - return False - else: - logger.printLog("The uboot.image downloaded successfully!") - # time.sleep(5) - if not self.flash_version(): - return False - reboot_devices_cmd = "%s -s %s RD" % (loader_tool_path, LocationID) - reboot_result = sendCmd(reboot_devices_cmd) - logger.info(reboot_result) - time.sleep(30) - try: - if upgrade_test_type != "mini_system_test": - if not start_cmd(sn): - if self.check_devices_mode(): - return 98 - return False - except Exception as t: - logger.info(t) - if self.check_devices_mode(): - return 98 - return False - time.sleep(10) - if "Reset Device OK" not in reboot_result: - logger.error("Failed to reboot the board!") - return False - else: - logger.info("Reboot successfully!") - logger.printLog("******下载完成,升级成功,开始进行冒烟测试******") - if upgrade_test_type == "null": - return True - screenshot_path = os.path.join(local_image_path, "screenshot") - resource_path = os.path.join(screenshot_path, "resource") - logger.info(resource_path) - py_path = os.path.join(resource_path, "capturescreentest.py") - new_report_path = os.path.join(report_path, "result") - logger.info(new_report_path) - time_sleep = random.randint(1, 5) - time.sleep(time_sleep) - try: - if not os.path.exists(new_report_path): - os.mkdir(new_report_path) - except Exception as e: - logger.error(e) - return 98 - if upgrade_test_type == "mini_system_test": - save_path = os.path.join(new_report_path) - if exec_cmd(mini_path, sn, save_path, archive_path) == 98: - return 98 - return True - if not upgrade_test_type or upgrade_test_type == "smoke_test": - test_return = cmd_test(screenshot_path, py_path, new_report_path, resource_path, sn, test_num, pr_url) - if test_return == 1: - return True - if test_return == 98: - return 98 - if test_return == 99: - return 99 - else: - return False - - @timeout(1000) - def flash_version(self): - partList = ["boot_linux", "system", "vendor", "userdata", "resource", "ramdisk", "chipset", "sys-prod", "chip-prod"] - for i in partList: - if not os.path.exists("%s/%s.img" % (local_image_path, i)): - logger.printLog("%s.img is not exist, ignore" % i) - continue - loadcmd = "%s -s %s DI -%s %s/%s.img" % (loader_tool_path, LocationID, i, local_image_path, i) - p = sendCmd(loadcmd) - logger.info(p) - # time.sleep(5) - if "Download image ok" not in p: - logger.info("try download %s again!" % i) - time.sleep(1) - second_cmd = "%s -s %s DI -%s %s/%s.img" % (loader_tool_path, LocationID, i, local_image_path, i) - f = sendCmd(second_cmd) - logger.info(f) - if "Download image ok" not in f: - logger.printLog("Failed to download the %s.img!" % i) - if self.check_devices_mode(): - return 98 - else: - return False - return True - else: - logger.printLog("The %s.img downloaded successfully!" % i) - return True - - @timeout(120) - def check_devices_mode(self): - check_times = 0 - while check_times < 5: - check_mode_cmd = "%s LD" % loader_tool_path - g = sendCmd(check_mode_cmd) - logger.info(g) - #time.sleep(40) - if "LocationID=%s Mode=Loader" % LocationID in g: - logger.info("3568 board has entered the Loader mode successfully!") - return True - else: - #if test_num != "2/2": - # hdc_kill() - os.system("hdc_std -t %s shell reboot loader" % sn) - time.sleep(5) - check_times += 1 - logger.error("Failed to enter the loader mode!") - return False - - @dec_stepmsg("download") - @timeout(1800) - def download(self): - ''' - #=================================================================================== - # @Method: download(self) - # @Precondition: none - # @Func: 构建下载到本地的路径,执行相应包的下载 - # @PostStatus: none - # @eg: download() - # @return: True or Flase - #=================================================================================== - ''' - global version_savepath, version_name - dir_path = CONSTANT.Path.getDirPath() - if self.params_dict.get("pbiid"): - version_path = self.params_dict.get("pbiid") - version_name = str(uuid.uuid5(uuid.NAMESPACE_URL, str(self.params_dict.get("pbiid")) + "FASTBOOT")) - version_savepath = os.path.join(dir_path, self.params_dict.get("flash_type"), version_name) - else: - version_path = self.params_dict.get("upgrade_upgradeLocation") - version_name = str(uuid.uuid5(uuid.NAMESPACE_URL, (self.params_dict.get("upgrade_upgradeLocation")))) - version_savepath = os.path.join(dir_path, version_name, "img") - # 执行img下载 - - if self.params_dict.get("isDownload") == "True": - logger.printLog("不需要做下载,直接返回") - return True - - import hashlib - save_file_str = version_path.replace("/", "").replace("\\", "") - save_file_name = hashlib.sha1(save_file_str.encode("utf-8")).hexdigest() - logger.info("download hash string:%s, hash value:%s" % (save_file_str, save_file_name)) - save_path_file = os.path.join(dir_path, "record", "%s%s" % (save_file_name, ".txt")) - if not self.excutedown(version_path, version_savepath, save_path_file, False): - logger.error("download img fail") - return False - - # 保存本地版本路径给devicetest去版本路径下取用例 - saveVersion(save_path_file, version_savepath) - return True - - def excutedown(self, source_path, download_dir, suc_mark, is_file): - ''' - #=================================================================================== - # @Method: excutedown(source_path, download_dir, suc_mark, is_file) - # @Precondition: none - # @Func: 执行下载动作 - # @PostStatus: none - # @Param: source_path:资源文件路径 - # download_dir:文件下载到本地的文件夹路径 - # is_file:是否是文件 - # @eg: excutedown("xxxx", "D:\\local\\image", suc_mark, Flase) - # @return: True or Flase - #=================================================================================== - ''' - failed_mark = os.path.join(download_dir, failed_file) - lock_path = os.path.join(download_dir, lock_suffix) - file_lock = FileLock() - - if isDownLoadSuccess(download_dir, suc_mark, failed_mark): - return True - try: - nowtime = get_now_time_str_info() - logger.printLog("%s Downloading, please wait" % nowtime) - file_lock.lockFile(lock_path) - ret = "" - logger.info("Get lock. Start to ") - if self.params_dict.get("bt_enable") and self.params_dict.get("bt_enable") == "True": - ret = downloadByBitComet(source_path, download_dir, os_method) - elif source_path.startswith('\\\\'): - ret = downloadByCopy(source_path, download_dir, is_file) - elif self.params_dict.get("pbiid"): - ret = downlaodByDownloadTool(version_savepath, self.params_dict.get("version_type"), "FASTBOOT", - self.params_dict.get("pbiid")) - elif source_path.startswith("http"): - ret = run_download(source_path, download_dir) - - if source_path.endswith(".zip"): - zip_name = os.path.basename(source_path) - ret = extractZipFile(os.path.join(download_dir, zip_name), download_dir) - if source_path.endswith(".tar.gz") or (source_path.startswith("http") and ("file_id=" in source_path)): - if source_path.startswith("http") and ("file_id=" in source_path): - if source_path.endswith(".tar.gz"): - zip_name = source_path.split('=')[-1] - else: - zip_name = "out.tar.gz" - else: - zip_name = os.path.basename(source_path) - ret = unTarFile(os.path.join(download_dir, zip_name), download_dir) - nowtime = get_now_time_str_info() - logger.printLog("%s download to %s end" % (nowtime, download_dir)) - - if not ret: - with open(failed_mark, "a+") as fp: - fp.write("") - return ret - except Exception as e: - logger.printLog(e) - raise Exception(e) - finally: - file_lock.releaseFile() - - -@timeout(30) -def hdc_kill(): - logger.info("kill the process") - os.system("hdc_std kill") - time.sleep(2) - logger.info("start the process") - os.system("hdc_std -l5 start") - # time.sleep(10) - - -def sendCmd(mycmd): - result = "".join(os.popen(mycmd).readlines()) - return result - - -def send_times(mycmd): - times = 0 - outcome = sendCmd(mycmd) - while times < 3: - if not outcome or "Empty" in outcome: - times += 1 - time.sleep(3) - else: - time.sleep(3) - return outcome - return outcome - - -@timeout(180) -def start_cmd(sn): - try: - os.system("hdc_std -l5 start") - power_cmd = "hdc_std -t %s shell \"power-shell setmode 602\"" % sn - hilog_cmd = "hdc_std -t %s shell \"hilog -w start -l 400000000 -m none\"" % sn - logger.info(power_cmd) - logger.info(hilog_cmd) - power_result = sendCmd(power_cmd) - logger.info(power_result) - if not power_result: - return False - number = 0 - while "Set Mode Success" not in power_result and number < 30: - time.sleep(4) - power_result = sendCmd(power_cmd) - logger.info(power_result) - number += 1 - if number >= 20: - logger.error("Set mode failed") - return False - hilog_result = sendCmd(hilog_cmd) - logger.info(hilog_result) - return True - except Exception as e: - logger.error(e) - return False - - -@timeout(3600) -def cmd_test(screenshot_path, py_path, new_report_path, resource_path, sn, test_num, pr_url): - save_screenshot_path = os.path.join(new_report_path, "screenshot_result") - logger.info(save_screenshot_path) - time_sleep = random.randint(1, 5) - time.sleep(time_sleep) - try: - if not os.path.exists(save_screenshot_path): - os.mkdir(save_screenshot_path) - logger.info(save_screenshot_path) - base_screenshot_path = os.path.join(new_report_path, "screenshot_base") - if not os.path.exists(base_screenshot_path): - os.mkdir(base_screenshot_path) - logger.info(base_screenshot_path) - except Exception as e: - logger.error(e) - return 98 - config_path = os.path.join(screenshot_path, "resource", "app_capture_screen_test_config.json") - py_cmd = "python %s --config %s --anwser_path %s --save_path %s --device_num %s --test_num %s --tools_path %s --pr_url %s" \ - % (py_path, config_path, resource_path, save_screenshot_path, sn, test_num, screenshot_path, pr_url) - result = outCmd(py_cmd, save_screenshot_path, base_screenshot_path, resource_path) - if result == 1: - return True - if result == 98: - return 98 - if result == 99: - return 99 - else: - return False - - -@timeout(3600) -def outCmd(cmd, save_screenshot_path, base_screenshot_path, resource_path): - logger.info("cmd is: %s" % cmd) - p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, encoding="gbk") - curline = p.stdout.readline() - list_png_name = [] - try: - while "End of check" not in curline: - curline = p.stdout.readline() - logger.info(curline) - if "abnarmal" in curline: - png_name = curline.split(" ")[3].split(".")[0] - list_png_name.append(png_name) - if "SmokeTest find some fatal problems" in curline: - logger.error("SmokeTest find some fatal problems!") - return 99 - except Exception as e: - logger.error(e) - logger.error("execute smoke_test.py failed!") - return 99 - l = list(set(list_png_name)) - if l: - logger.error(l) - try: - for i in l: - result = os.path.join(resource_path, "%s.png" % i) - base = os.path.join(base_screenshot_path, "%s.png" % i) - shutil.copy(result, base) - except Exception as t: - logger.info(t) - p.wait() - logger.info("p.returncode %s" % p.returncode) - if p.returncode == 0: - logger.info("screenshot check is ok!") - return True - if p.returncode == 101: - logger.error("device disconnection, please check the device!") - return False - logger.error("screenshot test failed, check the %s" % save_screenshot_path) - return 98 - - -@timeout(1000) -def exec_cmd(mini_path, sn, save_path, archive_path): - cmd = "python %s --device_num %s --save_path %s --archive_path %s" % (mini_path, sn, save_path, archive_path) - p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, encoding="gbk") - curline = p.stdout.readline() - try: - while "End of check" not in curline: - curline = p.stdout.readline() - logger.info(curline) - except Exception as e: - logger.error(e) - p.wait() - logger.info("p.returncode %s" % p.returncode) - if p.returncode == 0: - logger.info("mini_system_test is ok!") - return True - logger.error("mini_system_test failed!") - return 98 \ No newline at end of file -- Gitee From 8c735595a8196664fb89a1122db242204cbbcd84 Mon Sep 17 00:00:00 2001 From: openharmony_ci <120357966@qq.com> Date: Wed, 5 Jul 2023 08:55:19 +0000 Subject: [PATCH 060/201] update DeployDevice/src/core/run.py. Signed-off-by: openharmony_ci <120357966@qq.com> --- DeployDevice/src/core/run.py | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/DeployDevice/src/core/run.py b/DeployDevice/src/core/run.py index acc0bf0..7986abd 100644 --- a/DeployDevice/src/core/run.py +++ b/DeployDevice/src/core/run.py @@ -58,19 +58,19 @@ def start(param): scriptpath =os.path.dirname(os.path.dirname(os.path.abspath(os.path.dirname(__file__)))) loader_tool_path = os.path.join(scriptpath, "resource", "RK3568_tool", "upgrade_tool.exe") logger.info(loader_tool_path) - mycmd = "%s LD" % loader_tool_path - try: - num = send_cmd(mycmd) - if num != 2: - logger.info("try again!") - time.sleep(40) - num = send_cmd(mycmd) - if num != 2: - logger.error("有设备断连,全部处置为真隔离状态!") - errorcode = 200 - except Exception as f: - logger.error(f) - logger.info(errorcode) +# mycmd = "%s LD" % loader_tool_path +# try: +# num = send_cmd(mycmd) +# if num != 2: +# logger.info("try again!") +# time.sleep(40) +# num = send_cmd(mycmd) +# if num != 2: +# logger.error("有设备断连,全部处置为真隔离状态!") +# errorcode = 200 +# except Exception as f: +# logger.error(f) +# logger.info(errorcode) if errorcode == 99: logger.error("upgrade success ,but Smoke failed, the fatal problem occurs.") return 99 -- Gitee From 6cef151edd5732d8ffbd0a6bdc8f9ded4ecf56ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=A9=AC=E5=A4=A9=E6=94=BE?= Date: Sat, 8 Jul 2023 00:04:05 +0000 Subject: [PATCH 061/201] =?UTF-8?q?=E6=9B=B4=E6=94=B9note=E6=AF=94?= =?UTF-8?q?=E5=AF=B9=E5=8F=82=E8=A7=A3=E5=86=B3=E9=97=A8=E7=A6=81=E9=98=BB?= =?UTF-8?q?=E5=A1=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 马天放 --- .../screenshot32/resource/app_capture_screen_test_config.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cases/smoke/basic/screenshot32/resource/app_capture_screen_test_config.json b/cases/smoke/basic/screenshot32/resource/app_capture_screen_test_config.json index ec9d285..c5264dc 100644 --- a/cases/smoke/basic/screenshot32/resource/app_capture_screen_test_config.json +++ b/cases/smoke/basic/screenshot32/resource/app_capture_screen_test_config.json @@ -101,7 +101,7 @@ "entry": "aa start -a MainAbility -b com.ohos.note", "kill_note": ["killall com.ohos.note"], "all_actions": [ - [2, "kill_keyboard-x-y"], [2, "permisson_ok-x-y"], [2, "permisson_ok-x-y"], [5, "note_content-x-y"], [2, "note_content-x-y"], [1, "shot_cmd", "note"], [1, "cmp_cmd-level", "note", 75], [2, "recent-x-y"], [1, "recent_del-x-y"] + [2, "kill_keyboard-x-y"], [2, "permisson_ok-x-y"], [2, "permisson_ok-x-y"], [5, "note_content-x-y"], [2, "note_content-x-y"], [1, "shot_cmd", "note"], [1, "cmp_cmd-level", "note", 25], [2, "recent-x-y"], [1, "recent_del-x-y"] ] }, { -- Gitee From 410f6ecd5694572a871c6c4b6126c482ec3a7c85 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=A9=AC=E5=A4=A9=E6=94=BE?= Date: Sat, 8 Jul 2023 00:16:36 +0000 Subject: [PATCH 062/201] =?UTF-8?q?update=20cases/smoke/basic/screenshot32?= =?UTF-8?q?/resource/app=5Fcapture=5Fscreen=5Ftest=5Fconfig.json.=20?= =?UTF-8?q?=E9=99=8D=E4=BD=8E=E6=AF=94=E5=AF=B9=E7=8E=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 马天放 --- .../screenshot32/resource/app_capture_screen_test_config.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cases/smoke/basic/screenshot32/resource/app_capture_screen_test_config.json b/cases/smoke/basic/screenshot32/resource/app_capture_screen_test_config.json index c5264dc..345c8dc 100644 --- a/cases/smoke/basic/screenshot32/resource/app_capture_screen_test_config.json +++ b/cases/smoke/basic/screenshot32/resource/app_capture_screen_test_config.json @@ -101,7 +101,7 @@ "entry": "aa start -a MainAbility -b com.ohos.note", "kill_note": ["killall com.ohos.note"], "all_actions": [ - [2, "kill_keyboard-x-y"], [2, "permisson_ok-x-y"], [2, "permisson_ok-x-y"], [5, "note_content-x-y"], [2, "note_content-x-y"], [1, "shot_cmd", "note"], [1, "cmp_cmd-level", "note", 25], [2, "recent-x-y"], [1, "recent_del-x-y"] + [2, "kill_keyboard-x-y"], [2, "permisson_ok-x-y"], [2, "permisson_ok-x-y"], [5, "note_content-x-y"], [2, "note_content-x-y"], [1, "shot_cmd", "note"], [1, "cmp_cmd-level", "note", 15], [2, "recent-x-y"], [1, "recent_del-x-y"] ] }, { -- Gitee From 839c9558650369c9855b7d0744f7039755448532 Mon Sep 17 00:00:00 2001 From: openharmony_ci <120357966@qq.com> Date: Mon, 10 Jul 2023 00:42:27 +0000 Subject: [PATCH 063/201] =?UTF-8?q?=E5=9B=9E=E9=80=80=20'Pull=20Request=20?= =?UTF-8?q?!118=20:=20=E4=BF=AE=E6=94=B9note=E6=AF=94=E5=AF=B9=E7=8E=87'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../screenshot32/resource/app_capture_screen_test_config.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cases/smoke/basic/screenshot32/resource/app_capture_screen_test_config.json b/cases/smoke/basic/screenshot32/resource/app_capture_screen_test_config.json index 345c8dc..ec9d285 100644 --- a/cases/smoke/basic/screenshot32/resource/app_capture_screen_test_config.json +++ b/cases/smoke/basic/screenshot32/resource/app_capture_screen_test_config.json @@ -101,7 +101,7 @@ "entry": "aa start -a MainAbility -b com.ohos.note", "kill_note": ["killall com.ohos.note"], "all_actions": [ - [2, "kill_keyboard-x-y"], [2, "permisson_ok-x-y"], [2, "permisson_ok-x-y"], [5, "note_content-x-y"], [2, "note_content-x-y"], [1, "shot_cmd", "note"], [1, "cmp_cmd-level", "note", 15], [2, "recent-x-y"], [1, "recent_del-x-y"] + [2, "kill_keyboard-x-y"], [2, "permisson_ok-x-y"], [2, "permisson_ok-x-y"], [5, "note_content-x-y"], [2, "note_content-x-y"], [1, "shot_cmd", "note"], [1, "cmp_cmd-level", "note", 75], [2, "recent-x-y"], [1, "recent_del-x-y"] ] }, { -- Gitee From 523e72753c7aaf54020572ae51563758d442fcfa Mon Sep 17 00:00:00 2001 From: Zhu Guodong Date: Tue, 13 Jun 2023 11:21:31 +0800 Subject: [PATCH 064/201] add mindspore lite to ndk whitelist Change-Id: I09c93fd74e47fa793a366f35ea6a834793bf7fa8 Signed-off-by: Zhu Guodong --- tools/deps_guard/rules/ChipsetSDK/whitelist.json | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/deps_guard/rules/ChipsetSDK/whitelist.json b/tools/deps_guard/rules/ChipsetSDK/whitelist.json index db3518b..fd935e8 100755 --- a/tools/deps_guard/rules/ChipsetSDK/whitelist.json +++ b/tools/deps_guard/rules/ChipsetSDK/whitelist.json @@ -25,6 +25,7 @@ "libimage_receiver_ndk.z.so", "libimage_source_ndk.z.so", "libstd.dylib.so", + "libmindspore_lite_ndk.so", // Third party libraries "libdrm.so", -- Gitee From 676c89dea157092feca1a1e7c6a0e7a954f2a3a6 Mon Sep 17 00:00:00 2001 From: cheng_jinsong Date: Mon, 19 Jun 2023 18:45:16 +0800 Subject: [PATCH 065/201] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=90=AF=E5=8A=A8?= =?UTF-8?q?=E8=B5=84=E6=BA=90=E7=AE=A1=E6=8E=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: cheng_jinsong --- .../rules/NO-Config-Cmds-In-Init/README.md | 171 +++++++++++++++--- .../NO-Config-Cmds-In-Init/whitelist.json | 37 ++++ .../README.md | 28 ++- .../startup_guard/startup_checker/__init__.py | 5 - .../startup_checker/cmds_rule.py | 43 +++-- .../startup_checker/system_parameter_rules.py | 7 +- tools/startup_guard/startup_guard.py | 6 +- 7 files changed, 246 insertions(+), 51 deletions(-) diff --git a/tools/startup_guard/rules/NO-Config-Cmds-In-Init/README.md b/tools/startup_guard/rules/NO-Config-Cmds-In-Init/README.md index f71ae94..0fd81e6 100755 --- a/tools/startup_guard/rules/NO-Config-Cmds-In-Init/README.md +++ b/tools/startup_guard/rules/NO-Config-Cmds-In-Init/README.md @@ -1,29 +1,158 @@ -# 耗时命令白名单规则说明 +# cfg文件白名单规则说明 -## 1. 耗时命令说明 - 命令执行超过200ms的命令行。 +## 规则解释 + 白名单严格遵循JSON格式。 -## 2. 规则解释 + ### **耗时命令约束** + **[白名单](whitelist.json)** 约束*.cfg文件中的耗时命令。 - 1. **耗时命令约束**:**[白名单](whitelist.json)** 约束*.cfg文件中的耗时命令。 - 2. **condition服务约束**:白名单中约束service启动方式是:"start-mode" : "condition" 且"ondemand" : false , 且服务通过start命令启动。 - 3. **boot服务约束**:白名单约束service启动方式是:"start-mode" : "boot"。 - 4. **selinux约束**:selinux未打开, 或服务的"secon"没有配置。 - -编译时会提示如下类型的告警: + - 耗时命令 + + 命令执行超过200ms的命令行。 + + - 规则要求 + + 1. 命令行执行时间超过200ms。 + 2. 耗时命令在白名单中配置。 + 3. 耗时命令文件路径在白名单中配置。 + + - 白名单信息解释 + ``` + { + "cmd":"init_global_key", + "location":[ + "/system/etc/init.cfg", + ... + ] + } + ``` + 1. cmd: 命令行 + 2. location: 耗时命令文件路径 + + - 解决方法 + 1. 检查违规项是否是耗时命令。 + 2. 检查该命令是否包含白名单中。 + 3. 检查该命令存在的文件路径是否包含在白名单中。 + 3. 根据评审结果添加命令到白名单。 + +### **condition服务约束** + **[白名单](whitelist.json)** 约束*.cfg文件中的service的启动方式:condition。 + + - condition + + condition 条件启动,对服务的启动方式配置condition,通过start命令拉起服务。 + + - 规则要求 + 1. 服务不是按需启动,即"ondemand" : false。 + 2. 服务是条件启动, 即"start-mode" : "condition", 并且通过start命令拉起服务。 + 3. 服务在白名单中。 + + - 白名单信息解释 + ``` + { + "start-modes": [ + { + "start-mode":"condition", + "service": [ + "hilogd", + ... + ] + } + ] + } + ``` + 1. start-mode:"condition", 服务启动方式。 + 2. service:通过"start-mode" : "condition" 启动的服务。 + + - 解决方法 + 1. 检查服务否是按需启动。 + 2. 检查服务是否配置条件启动, 且通过start命令拉起服务。 + 3. 检查服务是否在白名单中。 + 4. 根据评审结果添加服务到白名单。 + +### **boot服务约束** + **[白名单](whitelist.json)** 约束*.cfg文件中的service的启动方式:boot。 + + - boot + + 在init job阶段启动,其服务的启动方式配置 boot。 + + - 规则要求 + 1. 服务是boot启动, 即"start-mode" : "boot"的服务。 + 2. 服务在白名单中。 + - 白名单信息解释 + ``` + { + "start-modes": [ + { + "start-mode":"boot", + "service": [ + "hiview", + ... + ] + } + ] + } + ``` + 1. start-mode:"boot",服务启动方式。 + 2. service:通过"start-mode" : "boot" 启动的服务。 + + - 解决方法 + 1. 检查服务是否是boot启动。 + 2. 检查服务是否在白名单中。 + 3. 根据评审结果添加服务到白名单。 + +### **start命令约束** + **[白名单](whitelist.json)** 约束*.cfg文件中的通过start执行的命令。 + + - start + + 通过start拉起的服务。 + + - 规则要求 + 1. 通过start命令执行的命令行。 + 2. 命令行在白名单中。 + + - 白名单信息解释 + ``` + { + "start-cmd": [ + "ueventd", + ... + ] + } + ``` + start-cmd: 执行start命令行。 + + - 解决方法 + 1. 检查命令是否是start命令。 + 2. 检查命令行是否在白名单中。 + 3. 根据评审结果添加命令到白名单。 + + ### **selinux约束** + - secon + + 服务的selinux标签 + + - 规则要求 + 1. 服务配置没有配置"secon"。 + 2. 配置配置的"secon"为空。 + + - 解决方法 + 1. 检查服务是否配置"secon", 且"secon"的配置不为空。 + 2. 根据要求修改服务"secon"配置 + +编译时会提示如下类型的告警: ``` - [NOT ALLOWED]: 'mount_fstab' is invalid, in /system/etc/init.cfg - [NOT ALLOWED]: 'load_access_token_id' is invalid, in /system/etc/init/access_token.cfg - [NOT ALLOWED]: 'init_global_key' is invalid, in /system/etc/init.cfg - [NOT ALLOWED]: 'storage_daemon' cannot be started in boot mode - [NOT ALLOWED]: 'hilogd' cannot be started in conditional mode + [NOT ALLOWED]: 'init_global_key' is timeout command, in /system/etc/init.cfg + [NOT ALLOWED]: xxx 'secon' is empty + [WARNING]: 'storage_daemon' cannot be started in boot mode + [WARNING]: 'hilogd' cannot be started in conditional mode [WARNING]: selinux status is xxx - [WARNING]: xxx 'secon' is empty + [WARNING]: multimodalinput is not in start cmd list. path:/system/etc/init/multimodalinput.cfg ``` -## 3. 违规场景及处理方案建议 - - 1. 检查违规项是否是耗时命令,其次该命令存在文件路径是否包含白名单中, 如果不在,根据要求添加命令到白名单 - - 2. 检查服务启动类型, 根据 **[规则解释](README.md#2-规则解释)** 排查修改 +## 违规场景及处理方案建议 + 1. 服务默认按照并行启动配置,如果需要添加白名单,需要评审。 + 2. 根据 **[规则解释](README.md#规则解释)** 排查修改。 diff --git a/tools/startup_guard/rules/NO-Config-Cmds-In-Init/whitelist.json b/tools/startup_guard/rules/NO-Config-Cmds-In-Init/whitelist.json index 8097426..0d21b1c 100755 --- a/tools/startup_guard/rules/NO-Config-Cmds-In-Init/whitelist.json +++ b/tools/startup_guard/rules/NO-Config-Cmds-In-Init/whitelist.json @@ -49,6 +49,43 @@ "hdf_devmgr" ] } + ], + "start-cmd":[ + "ueventd", + "watchdog_service", + "deviceauth_service", + "screenlock_server", + "resource_schedule_service", + "storage_daemon", + "bluetooth_service", + "hilogd", + "device_usage_stats_service", + "wifi_hal_service", + "hdcd", + "bgtaskmgr_service", + "module_update_service", + "hiprofilerd", + "hiprofiler_plugins", + "hiprofiler_daemon", + "pulseaudio", + "audio_host", + "audio_policy", + "huks_service", + "memmgrservice", + "netmanager", + "pinauth", + "updater_sa", + "telephony_sa", + "devattest_service", + "msdp_sa", + "accessibility", + "wallpaper_service", + "time_service", + "udevd_service", + "mmi_uinput_service", + "multimodalinput", + "hdf_devhost", + "concurrent_task_service" ] } ] diff --git a/tools/startup_guard/rules/NO-Config-SystemParameter-In-INIT/README.md b/tools/startup_guard/rules/NO-Config-SystemParameter-In-INIT/README.md index 20fdfba..d0bb419 100755 --- a/tools/startup_guard/rules/NO-Config-SystemParameter-In-INIT/README.md +++ b/tools/startup_guard/rules/NO-Config-SystemParameter-In-INIT/README.md @@ -1,17 +1,31 @@ # 系统参数白名单规则说明 -## 1. 规则解释 - 1. **[白名单](whitelist.json)** 约束系统参数配置文件(\*.para", \*.para.dac)中的名称。 - 2. **[白名单](whitelist.json)** 约束系统参数命名合法性。系统参数命名由:字母、数字、下划线、'.'、 '-'、 '@'、 ':' 、 '_'。 例外:不允许出现".." - 3. 系统参数名未添加在 **[白名单](whitelist.json)**。 + ## **系统参数命名约束** + - 规则要求 + 1. 约束\*.para", \*.para.dac 配置文件中的系统参数。 + 2. 系统参数命名由:字母、数字、下划线、'.'、 '-'、 '@'、 ':' 、 '_'。 + 3. 不允许出现".."。 + + - 解决方法 + 1. 根据系统参数的命名规范排查修改。 + + ## dac配置内存大小约束 + - 规则要求 + 1. dac配置不超过200个。 + + - 解决方法 + 1. 重新配置dac内存大小, 修改 "startup/init/services/param/include/param_osadp.h" 中PARAM_WORKSPACE_DAC。 + 2. 修改 "startup_guard/startup_checker/system_parameter_rules.py" 中CONFIG_DAC_MAX_NUM = 200的大小。 编译时会提示如下类型的告警: ``` [NOT ALLOWED]: Invalid param: distributedsched.continuationmanager.. - [NOT ALLOWED]: persist.resourceschedule.memmgr.eswap.swapOutKBFromBirth is not found in the whitelist + [NOT ALLOWED]: DAC overallocated memory + ``` -## 2. 违规场景及处理方案建议 +# 违规场景及处理方案建议 - 1. 检查白名单和系统参数命名, 根据 **[规则解释](README.md#2-规则解释)** 排查修改 + 1. 检查系统参数命名, 根据 **[系统参数命名约束](README.md#系统参数命名约束)** 排查修改。 + 2. 排查dac配置是否超出内存申请范围, 根据 **[dac配置内存大小约束](README.md#dac配置内存大小约束)** 排查修改。 diff --git a/tools/startup_guard/startup_checker/__init__.py b/tools/startup_guard/startup_checker/__init__.py index 73a52af..5231516 100755 --- a/tools/startup_guard/startup_checker/__init__.py +++ b/tools/startup_guard/startup_checker/__init__.py @@ -31,12 +31,7 @@ def check_all_rules(mgr, args): r.log("Do %s rule checking now:" % rule.RULE_NAME) if not r.__check__(): passed = False - else: - passed = True - - if not passed: r.log(" Please refer to: \033[91m%s\x1b[0m" % r.get_help_url()) - pass if args and args.no_fail: return True diff --git a/tools/startup_guard/startup_checker/cmds_rule.py b/tools/startup_guard/startup_checker/cmds_rule.py index 0c98580..c59657b 100644 --- a/tools/startup_guard/startup_checker/cmds_rule.py +++ b/tools/startup_guard/startup_checker/cmds_rule.py @@ -30,6 +30,7 @@ class cmdRule(BaseRule): self._start_modes = {} self._boot_list = {} self._condition_list = {} + self._start_cmd_list = {} def _get_json_service(self): for i in range(len(self._start_modes)): @@ -40,10 +41,10 @@ class cmdRule(BaseRule): pass def _get_start_cmds(self, parser): - list = [] + list = {} for cmd in parser._cmds: if cmd["name"] == "start": - list.append(cmd["content"]) + list[cmd["content"]] = cmd["fileId"] pass return list @@ -54,26 +55,25 @@ class cmdRule(BaseRule): self._cmds = item if key == "start-modes": self._start_modes = item + if key == "start-cmd": + self._start_cmd_list = item def _check_condition_start_mode(self, cmd_list, service_name, passed): - # print(cmd_list) if service_name in self._condition_list and service_name in cmd_list: pass else: - self.error("\'%s\' cannot be started in conditional mode" % service_name) - passed = False + self.warn("\'%s\' cannot be started in conditional mode" % service_name) return passed def _check_service(self, parser): boot_passed = True condition_passed = True - start_cmd_list = self._get_start_cmds(parser) + start_cmd_list = self._get_start_cmds(parser).keys() for key, item in parser._services.items(): if item.get("start_mode") == "boot": if key not in self._boot_list: - self.error("\'%s\' cannot be started in boot mode" % key) - boot_passed = False + self.warn("\'%s\' cannot be started in boot mode" % key) elif item.get("on_demand") is not True and item.get("start_mode") == "condition": condition_passed = self._check_condition_start_mode(start_cmd_list, key, condition_passed) return boot_passed and condition_passed @@ -99,7 +99,7 @@ class cmdRule(BaseRule): file_lists = cmd["location"] for key, item in parser._files.items(): if item["fileId"] in file_id_list and key not in file_lists: - output = "\'" + cmd["cmd"] + "\' is invalid, in "+ key + output = "\'" + cmd["cmd"] + "\' is timeout command, in "+ key self.error("%s" % str(output)) passed = False file_id_list.clear() @@ -108,26 +108,43 @@ class cmdRule(BaseRule): def _check_selinux(self, parser): if parser._selinux != 'enforcing': self.warn("selinux status is %s" %parser._selinux) - return False + return True passed = True for key, item in parser._services.items(): if item.get("secon") == "": output_str = "%s \'secon\' is empty" % key - self.warn("%s" % str(output_str)) + self.error("%s" % str(output_str)) passed = False return passed + def _check_start_cmd(self, parser): + passed = True + start_cmd_list = self._get_start_cmds(parser) + for cmd, file_id in start_cmd_list.items(): + if cmd in list(self._start_cmd_list): + pass + else: + for key, item in parser._files.items(): + if item["fileId"] == file_id: + log_str = cmd + " is not in start cmd list. " + " path:" + item["file_name"] + self.warn("%s" % log_str) + passed = False + pass + return passed + def check_config_cmd(self): + passed = True self._parse_while_list() cfg_parser = self.get_mgr().get_parser_by_name('cmd_whitelist') self._get_json_service() - self._get_start_cmds(cfg_parser) + start_passed = self._check_start_cmd(cfg_parser) secon_passed = self._check_selinux(cfg_parser) cmd_passed = self._check_cmdline_in_parser(cfg_parser) start_mode_passed = self._check_service(cfg_parser) - return secon_passed and cmd_passed and start_mode_passed + passed = start_passed and secon_passed and cmd_passed and start_mode_passed + return passed def __check__(self): return self.check_config_cmd() diff --git a/tools/startup_guard/startup_checker/system_parameter_rules.py b/tools/startup_guard/startup_checker/system_parameter_rules.py index b91d118..3f11a4d 100644 --- a/tools/startup_guard/startup_checker/system_parameter_rules.py +++ b/tools/startup_guard/startup_checker/system_parameter_rules.py @@ -20,6 +20,7 @@ from .base_rule import BaseRule class SystemParameterRule(BaseRule): RULE_NAME = "NO-Config-SystemParameter-In-INIT" + CONFIG_DAC_MAX_NUM = 200 def _check_param_name(self, param_name, empty_flag): # len: (0, 96] @@ -49,7 +50,10 @@ class SystemParameterRule(BaseRule): value_empty_flag = True white_list =self.get_white_lists() parser = self.get_mgr().get_parser_by_name('system_parameter_whitelist') + counts = 0 for key, item in parser._parameters.items(): + if (item.get("dacMode") != 0): + counts += 1 if str(item)[-1] == "=": value_empty_flag = True else: @@ -60,7 +64,8 @@ class SystemParameterRule(BaseRule): continue if key in white_list: continue - self.error("%s is not found in the whitelist" % key) + if counts > SystemParameterRule.CONFIG_DAC_MAX_NUM: + self.error("DAC overallocated memory") passed = False return passed diff --git a/tools/startup_guard/startup_guard.py b/tools/startup_guard/startup_guard.py index 875763d..92e259c 100755 --- a/tools/startup_guard/startup_guard.py +++ b/tools/startup_guard/startup_guard.py @@ -35,12 +35,10 @@ def startup_guard(out_path, args=None): from startup_checker import check_all_rules passed = check_all_rules(mgr, args) - passed = True if passed: print("All rules passed") - return - - raise Exception("ERROR: config_guard failed.") + else: + print("Please modify according to README.md") if __name__ == '__main__': parser = __create_arg_parser() -- Gitee From 33327aa256585dc70efd744cebb8d5bbc9e301cd Mon Sep 17 00:00:00 2001 From: lee Date: Thu, 6 Jul 2023 19:11:50 +0800 Subject: [PATCH 066/201] =?UTF-8?q?bluetooth=5Fservice=E7=BC=96=E8=AF=91?= =?UTF-8?q?=E9=AA=8C=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: lverpeng --- tools/deps_guard/rules/ChipsetSDK/whitelist.json | 3 ++- tools/deps_guard/rules/NO-Depends-On-HDI/whitelist.json | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/tools/deps_guard/rules/ChipsetSDK/whitelist.json b/tools/deps_guard/rules/ChipsetSDK/whitelist.json index db3518b..d2f893e 100755 --- a/tools/deps_guard/rules/ChipsetSDK/whitelist.json +++ b/tools/deps_guard/rules/ChipsetSDK/whitelist.json @@ -84,5 +84,6 @@ "libipc_core.z.so", "librtg_interface.z.so", "libconcurrent_task_client.z.so", - "libffrt.z.so" + "libffrt.z.so", + "libbtcommon.z.so" ] diff --git a/tools/deps_guard/rules/NO-Depends-On-HDI/whitelist.json b/tools/deps_guard/rules/NO-Depends-On-HDI/whitelist.json index 365431a..57f84f8 100755 --- a/tools/deps_guard/rules/NO-Depends-On-HDI/whitelist.json +++ b/tools/deps_guard/rules/NO-Depends-On-HDI/whitelist.json @@ -4,4 +4,4 @@ "libusb_pnp_manager.z.so", "libcamera_daemon.so", "libril_driver.z.so" -] +] -- Gitee From 664ff585b7e4e566e6961b2c3222fa7a170ec2ef Mon Sep 17 00:00:00 2001 From: redjie Date: Mon, 17 Jul 2023 11:19:04 +0800 Subject: [PATCH 067/201] power wakeup test retry Signed-off-by: redjie Change-Id: I6a7988a0f5271e5eed19c9a3737f31b8a7375cef --- .../basic/screenshot32/resource/capturescreentest.py | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/cases/smoke/basic/screenshot32/resource/capturescreentest.py b/cases/smoke/basic/screenshot32/resource/capturescreentest.py index 9dd68e7..90281b1 100644 --- a/cases/smoke/basic/screenshot32/resource/capturescreentest.py +++ b/cases/smoke/basic/screenshot32/resource/capturescreentest.py @@ -350,7 +350,10 @@ if __name__ == "__main__": file_from_dev("/data/log/hilog/system_start_log_{}.tar".format(args.device_num), args.save_path) connect_check() launcher_similarity = shot_and_cmp("launcher.jpeg") - if launcher_similarity >= 90: + power_state = enter_shell_cmd("hidumper -s 3308", WAIT_TIME_ONE) + if "State=2" not in power_state: + print_to_log("SmokeTest:: ERROR, DISPLAY POWER MANAGER DUMP State ≠ 2") + if launcher_similarity >= 90 and "State=2" in power_state: print_to_log("SmokeTest:: launcher screenshot comparison is ok!") break elif reboot_cnt >= 1: @@ -393,11 +396,6 @@ if __name__ == "__main__": else: print_to_log("SmokeTest:: first processes check is ok") - power_state = enter_shell_cmd("hidumper -s 3308", WAIT_TIME_ONE) - if "State=2" not in power_state: - print_to_log("SmokeTest:: DISPLAY POWER MANAGER DUMP State=0") - sys_exit() - main(args.device_num) native_sa = os.path.normpath(os.path.join(args.tools_path, "acls_check", "native_sa.log")) try: -- Gitee From 819244cdc071f3f84028721b001a756527e0f38e Mon Sep 17 00:00:00 2001 From: redjie Date: Tue, 18 Jul 2023 15:19:52 +0800 Subject: [PATCH 068/201] =?UTF-8?q?=E4=BA=AE=E5=B1=8F=E6=A3=80=E6=B5=8B?= =?UTF-8?q?=E4=B8=8D=E5=81=9A=E6=8B=A6=E6=88=AA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: redjie Change-Id: I0fa63e2cc3a230b4f4e61a83eb07ba5fa1a4f2d9 --- cases/smoke/basic/screenshot32/resource/capturescreentest.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cases/smoke/basic/screenshot32/resource/capturescreentest.py b/cases/smoke/basic/screenshot32/resource/capturescreentest.py index 90281b1..dc4db8c 100644 --- a/cases/smoke/basic/screenshot32/resource/capturescreentest.py +++ b/cases/smoke/basic/screenshot32/resource/capturescreentest.py @@ -353,7 +353,7 @@ if __name__ == "__main__": power_state = enter_shell_cmd("hidumper -s 3308", WAIT_TIME_ONE) if "State=2" not in power_state: print_to_log("SmokeTest:: ERROR, DISPLAY POWER MANAGER DUMP State ≠ 2") - if launcher_similarity >= 90 and "State=2" in power_state: + if launcher_similarity >= 90: print_to_log("SmokeTest:: launcher screenshot comparison is ok!") break elif reboot_cnt >= 1: -- Gitee From ee1ef69ab0f9271f06a500cc15b758d869d66878 Mon Sep 17 00:00:00 2001 From: wuliushuan Date: Thu, 13 Jul 2023 09:37:59 +0000 Subject: [PATCH 069/201] =?UTF-8?q?=E8=84=9A=E6=9C=AC=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: wuliushuan Change-Id: Iff2db399bf15c8b9394782c9d34e3182ff84f013 --- cases/smoke/basic/screenshot32/acls_check/acl_check.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cases/smoke/basic/screenshot32/acls_check/acl_check.py b/cases/smoke/basic/screenshot32/acls_check/acl_check.py index 3a12bb5..a6781a1 100644 --- a/cases/smoke/basic/screenshot32/acls_check/acl_check.py +++ b/cases/smoke/basic/screenshot32/acls_check/acl_check.py @@ -32,7 +32,7 @@ def whitelist_check(whitelist, acls): for acl in v: if acl not in temp: check_pass = False - set_log_content(LogLevel(2).name, log_tag, log_tag + '->whitelist_check', + set_log_content(LogLevel(2).name, log_tag + '->whitelist_check', 'precessName = {} the acl = {} trustlist is not configured.'.format(k, acl)) else: check_pass = False -- Gitee From fa90a9f6dedfb7434bf467f09717318292a74463 Mon Sep 17 00:00:00 2001 From: wuliushuan Date: Tue, 18 Jul 2023 08:37:31 +0000 Subject: [PATCH 070/201] =?UTF-8?q?=E6=96=B0=E5=A2=9E=20apl=20=E9=97=A8?= =?UTF-8?q?=E7=A6=81=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: wuliushuan Change-Id: I4d02b68f76eae1d8201d19fcae66a2487b763d32 --- ...\272\277\346\240\207\345\207\206v1.0.json" | 47 ++++ .../screenshot32/APL_compare_03/apl_config.py | 61 ++++++ .../screenshot32/APL_compare_03/common.py | 95 +++++++++ .../screenshot32/APL_compare_03/compare.py | 200 ++++++++++++++++++ .../APL_compare_03/read_device.py | 83 ++++++++ .../screenshot32/APL_compare_03/read_excel.py | 81 +++++++ .../screenshot32/APL_compare_03/readme.md | 121 +++++++++++ .../screenshot32/APL_compare_03/temp.json | 75 +++++++ .../screenshot32/acls_check/acl_check.py | 2 +- 9 files changed, 764 insertions(+), 1 deletion(-) create mode 100644 "cases/smoke/basic/screenshot32/APL_compare_03/APL\345\237\272\347\272\277\346\240\207\345\207\206v1.0.json" create mode 100644 cases/smoke/basic/screenshot32/APL_compare_03/apl_config.py create mode 100644 cases/smoke/basic/screenshot32/APL_compare_03/common.py create mode 100644 cases/smoke/basic/screenshot32/APL_compare_03/compare.py create mode 100644 cases/smoke/basic/screenshot32/APL_compare_03/read_device.py create mode 100644 cases/smoke/basic/screenshot32/APL_compare_03/read_excel.py create mode 100644 cases/smoke/basic/screenshot32/APL_compare_03/readme.md create mode 100644 cases/smoke/basic/screenshot32/APL_compare_03/temp.json diff --git "a/cases/smoke/basic/screenshot32/APL_compare_03/APL\345\237\272\347\272\277\346\240\207\345\207\206v1.0.json" "b/cases/smoke/basic/screenshot32/APL_compare_03/APL\345\237\272\347\272\277\346\240\207\345\207\206v1.0.json" new file mode 100644 index 0000000..7f7eec0 --- /dev/null +++ "b/cases/smoke/basic/screenshot32/APL_compare_03/APL\345\237\272\347\272\277\346\240\207\345\207\206v1.0.json" @@ -0,0 +1,47 @@ +[ + { + "bundle&processName": "com.ohos.launcher", + "apl": "2" + }, + { + "bundle&processName": "com.ohos.settings", + "apl": "2" + }, + { + "bundle&processName": "com.ohos.systemui", + "apl": "2" + }, + { + "bundle&processName": "com.ohos.screenlock", + "apl": "2" + }, + { + "bundle&processName": "com.ohos.adminprovisioning", + "apl": "2" + }, + { + "bundle&processName": "edm", + "apl": "3" + }, + { + "bundle&processName": "com.ohos.settings.faceauth", + "apl": "2" + }, + { + "bundle&processName": "cn.openharmony.inputmethodchoosedialog", + "apl":"3" + }, + { + "bundle&processName":"media_service", + "apl":"3" + }, + { + "bundle&processName":"com.ohos.amsdialog", + "apl":"3" + }, + { + "bundle&processName":"com.ohos.useriam.authwidget", + "apl":"2" + } + +] \ No newline at end of file diff --git a/cases/smoke/basic/screenshot32/APL_compare_03/apl_config.py b/cases/smoke/basic/screenshot32/APL_compare_03/apl_config.py new file mode 100644 index 0000000..b6bc30b --- /dev/null +++ b/cases/smoke/basic/screenshot32/APL_compare_03/apl_config.py @@ -0,0 +1,61 @@ +# -*- coding: utf-8 -*- +# Copyright (c) 2023 Huawei Device Co., Ltd. +# 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. +#!/usr/bin/python3 +# -*- coding: utf-8 -*- + +import os +# PATH='D:\\repo_test\\APL_compare_02\\' +# PATH=os.getcwd()+'/' +PATH = os.path.dirname(os.path.realpath(__file__)) + os.sep +# read_excel.py +''' +SHEET_NAME:excel中的表名,中英文都可 +COLS:excel中的列号,从0开始 +SVN:SVN的安装目录下/bin目录(SVN在环境变量中的位置) +SVN_URL:excel文件对应的url +USER:svn的用户名 +PWD:svn的密码 +FILE_PATH:本地下载文件的路径 +''' +SHEET_NAME="Sheet1" +COLS=[1,3] + +SVN='D:/TortoiseSVN/bin' +SVN_URL='https://PMAIL_2140981.china.huawei.com/svn/test测试/01 目录/01_1 目录/APL基线标准v1.0.xlsx' +USER='hhhhs' +PWD='123456' +FILE_PATH=PATH+SVN_URL.split('/')[-1] + +# read_device.py +''' +SQL_SRC:设备上的数据库路径 +SQL_DES:本地下载文件路径 +DOWNLOAD_DB:从设备下载的hdc命令 +QUERY_HAP_APL:查询HAP APL的sql语句(查询多列可以依次添加字段,添加字段的顺序为比较时的字段优先级) +QUERY_NATIVE_APL:查Native APL的sql语句 +''' +SQL_SRC=" /data/service/el1/public/access_token/access_token.db" +SQL_DES=PATH +DOWNLOAD_DB="hdc -t {} file recv" +QUERY_HAP_APL="select bundle_name,apl from hap_token_info_table" +QUERY_NATIVE_APL="select process_name,apl from native_token_info_table" + +''' +APL_LOG_FILE:执行脚本的日志信息 +APL_RECORD_PATH:APL对比记录的日志信息 +IS_OVERWRITE:是否覆盖之前的APL日志,w表示覆盖,a表示追加 +''' +APL_LOG_FILE=PATH+'apl_compare.log' +APL_RECORD_PATH=PATH+'apl_record.txt' +IS_OVERWRITE='w' \ No newline at end of file diff --git a/cases/smoke/basic/screenshot32/APL_compare_03/common.py b/cases/smoke/basic/screenshot32/APL_compare_03/common.py new file mode 100644 index 0000000..2cf1c74 --- /dev/null +++ b/cases/smoke/basic/screenshot32/APL_compare_03/common.py @@ -0,0 +1,95 @@ +# -*- coding: utf-8 -*- +# Copyright (c) 2023 Huawei Device Co., Ltd. +# 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. +#!/usr/bin/python3 +import math +import enum +import time +import logging +import threading +from apl_config import * + +log_tag = 'common' + +apl_file_log = logging.FileHandler(filename=APL_LOG_FILE, mode='a', encoding='utf-8') +fmt = logging.Formatter(fmt="%(asctime)s %(message)s", datefmt='%Y-%m-%d %H:%M:%S %a') +apl_file_log.setFormatter(fmt) + +# 定义日志 +apl_logger = logging.Logger(name = 'apl_compare_log', level=logging.INFO) +apl_logger.addHandler(apl_file_log) + +class ErrorType(enum.Enum): + not_in_apl_table = 1 + apl_is_invalid = 2 + +class ApiLevel(enum.Enum): + normal = 1 + system_basic = 2 + system_core = 3 + +class LogLevel(enum.Enum): + Error = 1 + Info = 2 + +class AplCompareException(Exception): + def __init__(self, msg): + self.msg = msg + +class AplCompareThread(threading.Thread): + def __init__(self, func, args=()): + super(AplCompareThread, self).__init__() + self.func = func + self.args = args + self.result = None + def run(self): + self.result = self.func(*self.args) + def get_result(self): + threading.Thread.join(self) + try: + return self.result + except Exception as e: + apl_set_log_content(LogLevel(1).name, log_tag, '{}'.format(e.args[0])) + return None + +def apl_log(msg): + # 写日志 + apl_logger.info(msg) + +def apl_set_log_content(level, tag, msg): + log_content = timestamp() + ' {}'.format(level) + ' [{}]'.format(tag) + ' {}'.format(msg) + print(log_content) + apl_log(log_content) + return(log_content) + +def set_error_record(name,error): + return time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())+' %(name)-50s: %(error)-50s\n'%{'name':name,'error':error} + +def set_map(results): + if results == None: + return None + res_map = {} + for result in results: + res_map[result[0]] = set_value(result[1:]) + return res_map + +def set_value(result): + value = [] + for res in result: + if math.isnan(res): + res = 0 + value.append(res) + return value + +def timestamp(): + return time.strftime('%Y-%m-%d %H:%M:%S', time.localtime()) diff --git a/cases/smoke/basic/screenshot32/APL_compare_03/compare.py b/cases/smoke/basic/screenshot32/APL_compare_03/compare.py new file mode 100644 index 0000000..8ee180f --- /dev/null +++ b/cases/smoke/basic/screenshot32/APL_compare_03/compare.py @@ -0,0 +1,200 @@ +# -*- coding: utf-8 -*- +# Copyright (c) 2023 Huawei Device Co., Ltd. +# 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. +#!/usr/bin/python3 +import time +import sys +import os +sys.path.append(os.path.dirname(os.path.realpath(__file__)) + os.sep) +from read_device import * +from read_excel import * +from apl_config import * + +def whitelist_check(apl, value, fields_from_whitelist): + # True 包含在白名单内 + check = value in fields_from_whitelist.keys() + is_pass = False + if check and str(apl) == fields_from_whitelist[value]: + is_pass = True + return is_pass + +def compare_hap_apl(fields_from_device, fields_from_whitelist): + records = [] + log_tag = 'compare_hap_apl' + hap_check = True + for value in fields_from_device: + apl = fields_from_device[value][0] + if apl > 1: + is_pass = whitelist_check(apl, value, fields_from_whitelist) + info = 'bundleName = {} apl = {}'.format(value, str(apl)) + if is_pass == False: + hap_check = False + # info = value + # info = 'bundleName = {} apl = {}'.format(value, str(apl)) + log_content = apl_set_log_content(LogLevel(1).name, log_tag, info) + records.append(log_content) + else: + apl_set_log_content(LogLevel(2).name, log_tag, info) + return records, hap_check + +def compare_native_apl(fields_from_device, fields_from_whitelist): + records = [] + log_tag = 'compare_native_apl' + native_check = True + for value in fields_from_device: + apl = fields_from_device[value][0] + if apl > 2: + info = 'processName = {} apl = {}'.format(value, str(apl)) + is_pass = whitelist_check(apl, value, fields_from_whitelist) + if is_pass == False: + native_check = False + log_content = apl_set_log_content(LogLevel(1).name, log_tag, info) + records.append(log_content) + else: + apl_set_log_content(LogLevel(2).name, log_tag, info) + return records, native_check + +def fields_compare_write_once(fields_from_device,fields_from_excel): + records=[] + for bundle_name in fields_from_device.keys(): + if bundle_name not in fields_from_excel.keys(): + record=(bundle_name,ErrorType(1).name) + records.append(record) + continue + + fields=fields_from_device[bundle_name] + standard_fields=fields_from_excel[bundle_name] + if not isInvalid(fields,standard_fields): + record=(bundle_name,ErrorType(2).name) + records.append(record) + print('Compare successful!') + return records + + +def isInvalid(fields,standard_fields): + if len(fields) == 1: + return fields[0] <= standard_fields[0] + + for field, standard_field in fields, standard_fields: + if field>standard_field: + return False + return True + +def write_record(name,error): + try: + file = open(APL_RECORD_PATH,'a') + err_record = set_error_record(name, error) + file.write(err_record) + file.close() + except Exception as e: + log_content=apl_set_log_content(str(s)) + apl_log(log_content) + +def write_record_once(err_records,is_overwrite): + try: + file=open(APL_RECORD_PATH,is_overwrite) + for record in err_records: + err_record = set_error_record(record[0],record[1]) + file.write(err_record) + file.close() + except Exception as e: + log_content=apl_set_log_content(str(e)) + apl_log(log_content) + +def excel_thread(): + try: + # settings={ + # ' svn': SVN, + # 'url': url_encode(SVN_URL), + # 'user': USER, + # 'pwd': PWD, + # 'dir': FILE_PATH, + # } + # excel_file = FILE_PATH #svn_checkout(settings) + log_tag = 'excel_thread' + # if excel_file == None: + # apl_set_log_content(LogLevel(2).name, log_tag, 'svn_checkoutc failed') #raise + # apl_from_excel = read_excel(excel_file, sheet = SHEET_NAME, cols = COLS) + # path = PATH + 'APL基线标准v1.0.json' + path = PATH + 'temp.json' + apl_from_json = read_json(path) + return apl_from_json + except Exception as e: + apl_set_log_content(LogLevel(1).name, log_tag, 'excel_thread catch error: {}'.format(e.args[0])) + return None + +def sql_thread(sn, sn2): + try: + print(DOWNLOAD_DB.format(sn)+' ' + SQL_SRC + ' ' + SQL_DES) + print() + log_tag = 'sql_thread' + sql_file = download_from_device(DOWNLOAD_DB.format(sn), SQL_SRC, SQL_DES) + if sql_file == None: + raise + query_hap_apl_thread = AplCompareThread(query_hap_apl, (sql_file, QUERY_HAP_APL)) + query_native_apl_thread = AplCompareThread(query_native_apl, (sql_file, QUERY_NATIVE_APL)) + + query_hap_apl_thread.start() + query_native_apl_thread.start() + + query_native_apl_thread.join() + query_native_apl_thread.join() + + hap_apl_map = query_hap_apl_thread.get_result() + native_apl_map = query_native_apl_thread.get_result() + + return hap_apl_map, native_apl_map + except: + apl_set_log_content(LogLevel(1).name, log_tag, 'download_from_device failed') + return None,None + +def apl_check_main(sn): + try: + log_tag = 'Main' + apl_set_log_content(LogLevel(2).name, log_tag, '--------APL Check Begin!--------') + excel_thr = AplCompareThread(excel_thread) + sql_thr = AplCompareThread(sql_thread, (sn, sn)) + + excel_thr.start() + sql_thr.start() + + excel_thr.join() + sql_thr.join() + + apl_from_excel = excel_thr.get_result() + hap_apl_map, native_apl_map = sql_thr.get_result() + + if apl_from_excel == None or hap_apl_map == None or native_apl_map == None: + raise + hap_results, hap_check = compare_hap_apl(hap_apl_map, apl_from_excel) + native_results, native_check = compare_native_apl(native_apl_map, apl_from_excel) + write_record_once(hap_results, IS_OVERWRITE) + write_record_once(native_results, 'a') + if native_check == False or hap_check == False: + apl_set_log_content(LogLevel(1).name, log_tag, '--------APL Check failed![hap = {}, native = {}] --------'.format(hap_check, native_check)) + apl_set_log_content(LogLevel(2).name, log_tag, '--------APL Check End! --------') + except Exception as e: + apl_set_log_content(LogLevel(1).name, log_tag, '--------APL Check failed![hap = False, native = False] --------') + apl_set_log_content(LogLevel(1).name, log_tag, "{}".format(e.args[0])) + +if __name__ == '__main__': + try: + sn = sys.argv[1] + except: + sn_list = [] + result = os.popen('hdc list targets') + res = result.read() + for line in res.splitlines(): + sn_list.append(line) + sn = sn_list[0] + apl_check_main(sn) diff --git a/cases/smoke/basic/screenshot32/APL_compare_03/read_device.py b/cases/smoke/basic/screenshot32/APL_compare_03/read_device.py new file mode 100644 index 0000000..114a731 --- /dev/null +++ b/cases/smoke/basic/screenshot32/APL_compare_03/read_device.py @@ -0,0 +1,83 @@ +# -*- coding: utf-8 -*- +# Copyright (c) 2023 Huawei Device Co., Ltd. +# 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. +#!/usr/bin/python3 + +from subprocess import run +import os +import sqlite3 + +import sys +sys.path.append(os.path.dirname(os.path.realpath(__file__)) + os.sep) +from common import * +from apl_config import * +log_tag = 'read_device' + +#从设备中导出数据库 +def download_from_device(cmd,sql_src,sql_des): + download_cmd=cmd+' '+sql_src+' '+sql_des + apl_set_log_content(LogLevel(2).name, log_tag, 'database start downloading!') + try: + result = os.popen(download_cmd) + stdout = result.read() + print(stdout) + if 'Fail' in stdout: + raise AplCompareException(stdout.replace('\n\n','').replace('[Fail]', '')) + #sql_file=sql_des+'\\'+sql_src.split('/').pop() + sql_file = sql_des+sql_src.split('/').pop() + apl_set_log_content(LogLevel(2).name, log_tag, '{} download successful!'.format(sql_file)) + return sql_file + except Exception as e: + apl_set_log_content(LogLevel(1).name, log_tag, '{}'.format(e.msg)) + return None + + +def sql_connect(db): + try: + if not os.path.exists(db): + raise AplCompareException('{} is not exists!'.format(db)) + conn = sqlite3.connect(db) + return conn + except AplCompareException as e: + apl_set_log_content(LogLevel(1).name, log_tag, '{}'.format(e.msg)) + return None + +#数据库语句查询 +def query_records(db,sql): + log_content = '' + try: + conn = sql_connect(db) + if conn == None: + raise AplCompareException('{} cannot connect!'.format(db)) + cursor = conn.cursor() + cursor.execute(sql) + results = cursor.fetchall() + conn.close() + apl_set_log_content(LogLevel(2).name, log_tag, '"{}" query successful!'.format(sql)) + return results + except sqlite3.OperationalError as e: + apl_set_log_content(LogLevel(2).name, log_tag, 'database {}'.format(e.args[0])) + return None + except AplCompareException as e: + apl_set_log_content(LogLevel(1).name, log_tag, '{}'.format(e.msg)) + return None + +#查询hap_token_info_table中的bundle_name和apl +def query_hap_apl(db,sql): + results = query_records(db, sql) + return set_map(results) + +#查询native_token_info_table中的process_name和apl +def query_native_apl(db,sql): + results = query_records(db, sql) + return set_map(results) diff --git a/cases/smoke/basic/screenshot32/APL_compare_03/read_excel.py b/cases/smoke/basic/screenshot32/APL_compare_03/read_excel.py new file mode 100644 index 0000000..20b6a25 --- /dev/null +++ b/cases/smoke/basic/screenshot32/APL_compare_03/read_excel.py @@ -0,0 +1,81 @@ +# -*- coding: utf-8 -*- +# Copyright (c) 2023 Huawei Device Co., Ltd. +# 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. +#!/usr/bin/python3 + +import subprocess +import pandas as pd +import urllib.parse +import os +import sys +sys.path.append(os.path.dirname(os.path.realpath(__file__)) + os.sep) +from common import * +from apl_config import * +import json +log_tag = 'read_whitelist' + +# 全部文件夹检出(本地已经安装svn) +def svn_checkout(settings): + try: + print(settings['url']) + print(settings['dir']) + os.chdir(settings['svn']) + cmd = 'svn export --force %(url)s %(dir)s --username %(user)s --password %(pwd)s'%settings + p = subprocess.Popen(cmd,shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE) + stdout,stderr = p.communicate() + print(stderr) + if stderr != b'': + raise AplCompareException(str(stderr,'utf-8').replace('\r\n','\t')) + apl_set_log_content(LogLevel(2).name, log_tag, '{} export successful!'.format(settings['dir'])) + return settings['dir'] + except Exception as e: + apl_set_log_content(LogLevel(1).name, log_tag, "{}".format(e.msg)) + return None + +#url编码 +def url_encode(url): + partions=url.split("/",3) + encode_url=partions[0] + partions[-1]=urllib.parse.quote(partions[-1]) + for partion in partions[1:]: + encode_url=encode_url+'/'+partion + return encode_url + +def read_excel(file, sheet, cols): + try: + df = pd.read_excel(file, sheet_name = sheet, usecols = cols) + data_list = df.values.tolist() + apl_map = set_map(data_list) + apl_set_log_content(LogLevel(2).name, log_tag, '{} read successful!'.format(file)) + return apl_map + except (ValueError,FileNotFoundError) as e: + apl_set_log_content(LogLevel(1).name, log_tag, "{}".format(e.msg)) + return None + + +def read_json(path): + try: + with open(path, 'r') as f: + file = f.read() + data_list = json.loads(file) + res_dict = set_dict(data_list) + return res_dict + except Exception as e: + apl_set_log_content(LogLevel(1).name, log_tag, '{}'.format(e.msg)) + return None + +def set_dict(data_list: list()): + res_dict = {} + for res in data_list: + res_dict[res['bundle&processName']] = res['apl'] + return res_dict \ No newline at end of file diff --git a/cases/smoke/basic/screenshot32/APL_compare_03/readme.md b/cases/smoke/basic/screenshot32/APL_compare_03/readme.md new file mode 100644 index 0000000..80db383 --- /dev/null +++ b/cases/smoke/basic/screenshot32/APL_compare_03/readme.md @@ -0,0 +1,121 @@ +## 版本 +python版本:3.8.10 +pip版本:22.1.2 +python依赖: + +``` +pip install pandas +pip install openpyxl +pip install subprocess +``` +## 使用 +`python compare.py` + +## 目录 +``` +APL_compare +├── apl_config.py # 整个目录中的常量定义 +├── read_device.py # 从设备中下载db并解析表和字段的函数 +├── read_excel.py # 从excel中解析表和字段的函数 +├── compare.py # 脚本运行入口 +└── common.py # 公共需要用到的函数 +``` +## apl_config.py +常量定义 +`PATH`:当前目录的地址 +### read_excel.py +`SHEET_NAME`:excel中的表名 +`COLS`:excel中的列名,下标从0开始 +`SVN`:SVN的安装目录下的bin目录 +`SVN_URL`:excel文件在SVN上对应的url +`USER`:svn的用户名 +`PWD`:svn的密码 +`FILE_PATH`:本地下载文件的路径 +`SQL_SRC`:设备上的数据库路径 +`SQL_DES`:本地下载文件路径 +`DOWNLOAD_DB`:从设备下载的hdc命令 +`QUERY_HAP_APL`:查询HAP APL的sql语句(查询多列可以依次添加字段,添加字段的顺序为比较时的字段优先级) +`QUERY_NATIVE_APL`:查Native APL的sql语句 +`APL_LOG_FILE`:执行脚本的日志路径 +`APL_RECORD_PATH`:APL对比记录的日志路径 +`IS_OVERWRITE`:是否覆盖之前的APL日志,w表示覆盖,a表示追加 + +## read_device.py +用于从设备上导出数据库,并解析表和字段 +### 数据库导出 +函数:`download_from_device(cmd,sql_src,sql_des)` +hdc命令:`cmd` +设备中数据库路径:`sql_src` +本地数据库路径:`sql_des` +执行命令:`hdc file recv sql_src sql_des` +### 连接数据库 +相关函数:`sql_connect(db)` +传入参数:`db`--db文件存放路径 +返回结果:`conn`--数据库的连接 +### sql语句查询 +相关函数:`query_records(db,sql)` +传入参数:`db`--需要连接的数据库;`sql`:sql查询语句 +返回结果:`results`--查询结果 +### 查hap_token_info_table中的bundle_name和apl +sql语句:`QUERY_HAP_APL="select bundle_name,apl from hap_token_info_table"` +相关函数:`query_hap_apl(db,sql)` +传入参数:`db`--需要连接的数据库;`sql`:sql查询语句 +返回结果:`res_map`--查询结果转化为的字典(map,key是bundle_name,value是apl) +### 查询native_token_info_table中的process_name和apl +sql语句:`QUERY_NATIVE_APL="select process_name,apl from native_token_info_table"` +相关函数:`query_native_apl(db,sql)` +传入参数:`db`--需要连接的数据库;`sql`--sql查询语句 +返回结果:`res_map`--查询结果转化为的字典(map,key是process_name,value是apl) + +## read_excel.py +### 从svn上下载excel +相关函数:`syn_checkout(settings)` +传入参数:`settings`--包含svn上文件路径,本地路径,用户名,密码 +返回结果:`settings['dir']`--本地下载路径 +### url编码 +相关函数:`url_encode(url)` +传入参数:`url` +返回结果:`encode_url` + +### 解析excel +相关函数:`read_excel(file,sheet,cols)` +传入参数:`file`--excel文件,`sheet`--表名,`cols`--列名 +返回结果:`apl_map`----查询结果转化为的字典(map,key是bundle/process_name,value是apl) + +## common.py +### 脚本执行过程中的错误日志 +相关函数:`log(msg)` +相关参数:`msg`--错误信息 +### 设置脚本执行过程中的日志信息 +相关函数:`apl_set_log_content(msg)` +相关参数:`msg`--日志信息,`is_error`--用于判断是执行失败、成功 +返回结果:带时间戳的日志信息 + +### 设置apl记录的格式 +相关函数:set_error_record(name,error) +相关参数:`name`--bundle name或者native name,`error`--错误原因 +返回结果:带时间戳的记录 + +### 将查询结果转化成map的结构 +相关函数:`set_map(results)` +传入参数:`results`--查询结果的列表 +返回结果:`res_map` +### 转换查询结果map的value格式 +相关函数:`set_value(result)` +传入参数:`result`--查询到的每一行结果 +返回结果:`value`--包含查询到的字段的列表 +### 时间戳 +相关函数:`timestamp()` +返回结果:时间戳 + +### 错误类型 +`ErrorType`:枚举类 + +### 自定义异常 +`AplCompareException` + +### 自定义线程 +`AplCompareThread` + +### 日志格式设置 +`logging.basicConfig` \ No newline at end of file diff --git a/cases/smoke/basic/screenshot32/APL_compare_03/temp.json b/cases/smoke/basic/screenshot32/APL_compare_03/temp.json new file mode 100644 index 0000000..15eb949 --- /dev/null +++ b/cases/smoke/basic/screenshot32/APL_compare_03/temp.json @@ -0,0 +1,75 @@ +[ + { + "bundle&processName": "com.ohos.launcher", + "apl": "2" + }, + { + "bundle&processName": "com.ohos.settings", + "apl": "2" + }, + { + "bundle&processName": "com.ohos.systemui", + "apl": "2" + }, + { + "bundle&processName": "com.ohos.screenlock", + "apl": "2" + }, + { + "bundle&processName": "com.ohos.adminprovisioning", + "apl": "2" + }, + { + "bundle&processName": "edm", + "apl": "3" + }, + { + "bundle&processName": "com.ohos.settings.faceauth", + "apl": "2" + }, + { + "bundle&processName": "cn.openharmony.inputmethodchoosedialog", + "apl":"3" + }, + { + "bundle&processName":"media_service", + "apl":"3" + }, + { + "bundle&processName":"com.ohos.amsdialog", + "apl":"3" + }, + { + "bundle&processName":"com.ohos.useriam.authwidget", + "apl":"2" + }, + { + "bundle&processName":"com.ohos.powerdialog", + "apl":"2" + }, + { + "bundle&processName":"com.ohos.filepicker", + "apl":"2" + }, + { + "bundle&processName":"com.ohos.camera", + "apl":"3" + }, + { + "bundle&processName":"com.ohos.smartperf", + "apl":"2" + }, + { + "bundle&processName":"com.ohos.devicemanagerui", + "apl":"2" + }, + { + "bundle&processName":"ohos.telephony.resources", + "apl":"3" + }, + { + "bundle&processName":"com.ohos.notificationdialog", + "apl":"2" + } + +] \ No newline at end of file diff --git a/cases/smoke/basic/screenshot32/acls_check/acl_check.py b/cases/smoke/basic/screenshot32/acls_check/acl_check.py index a6781a1..3a12bb5 100644 --- a/cases/smoke/basic/screenshot32/acls_check/acl_check.py +++ b/cases/smoke/basic/screenshot32/acls_check/acl_check.py @@ -32,7 +32,7 @@ def whitelist_check(whitelist, acls): for acl in v: if acl not in temp: check_pass = False - set_log_content(LogLevel(2).name, log_tag + '->whitelist_check', + set_log_content(LogLevel(2).name, log_tag, log_tag + '->whitelist_check', 'precessName = {} the acl = {} trustlist is not configured.'.format(k, acl)) else: check_pass = False -- Gitee From bcfe726434a8201c1a756293d8b3dd25e0f97842 Mon Sep 17 00:00:00 2001 From: redjie Date: Wed, 19 Jul 2023 15:13:23 +0800 Subject: [PATCH 071/201] configure apl check Signed-off-by: redjie Change-Id: Idacc2177e6b52e5a8e47c9cf70ded9a421210f5f --- .../screenshot32/acls_check/acl_check.py | 2 +- .../resource/capturescreentest.py | 24 +++++++++++++++---- 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/cases/smoke/basic/screenshot32/acls_check/acl_check.py b/cases/smoke/basic/screenshot32/acls_check/acl_check.py index 3a12bb5..a6781a1 100644 --- a/cases/smoke/basic/screenshot32/acls_check/acl_check.py +++ b/cases/smoke/basic/screenshot32/acls_check/acl_check.py @@ -32,7 +32,7 @@ def whitelist_check(whitelist, acls): for acl in v: if acl not in temp: check_pass = False - set_log_content(LogLevel(2).name, log_tag, log_tag + '->whitelist_check', + set_log_content(LogLevel(2).name, log_tag + '->whitelist_check', 'precessName = {} the acl = {} trustlist is not configured.'.format(k, acl)) else: check_pass = False diff --git a/cases/smoke/basic/screenshot32/resource/capturescreentest.py b/cases/smoke/basic/screenshot32/resource/capturescreentest.py index dc4db8c..03abe18 100644 --- a/cases/smoke/basic/screenshot32/resource/capturescreentest.py +++ b/cases/smoke/basic/screenshot32/resource/capturescreentest.py @@ -23,13 +23,14 @@ import re import subprocess import shlex import datetime -import sqlite3 import shutil import numpy import cv2 import pytesseract sys.path.append(os.path.dirname(os.path.realpath(__file__)).replace('resource', 'acls_check')) +sys.path.append(os.path.dirname(os.path.realpath(__file__)).replace('resource', 'APL_compare_03')) from acl_check import * +from compare import * from pytesseract import Output from PIL import Image @@ -295,7 +296,7 @@ def distributed_test(): distributed_result = f.read() f.close() except Exception as reason: - print_to_log("SmokeTest:: distributed_report.txt is not exist!") + print_to_log("SmokeTest:: distributed_report.txt do not exist!") if "distributedcalc" in distributed_result: print_to_log("SmokeTest:: testcase 0, distributed is ok!") else: @@ -391,11 +392,24 @@ if __name__ == "__main__": lose_process.append(pname) if lose_process: - print_to_log("SmokeTest:: error: %s, These processes are not exist!!!" % lose_process) + print_to_log("SmokeTest:: error: %s, These processes do not exist!!!" % lose_process) sys_exit() else: print_to_log("SmokeTest:: first processes check is ok") + apl_check_main(args.device_num) + apl_compare = os.path.normpath(os.path.join(args.tools_path, "APL_compare_03", "apl_compare.log")) + try: + with open(apl_compare, mode='r', encoding='utf-8', errors='ignore') as compare_file: + compare_file.seek(0) + apl_result = compare_file.read() + compare_file.close() + except Exception as reason: + print_to_log("SmokeTest:: error: apl_compare.log do not exist!") + if "APL Check failed" in apl_result: + print_to_log("SmokeTest:: error: apl check failed") + sys_exit() + main(args.device_num) native_sa = os.path.normpath(os.path.join(args.tools_path, "acls_check", "native_sa.log")) try: @@ -404,7 +418,7 @@ if __name__ == "__main__": acl_result = native_file.read() native_file.close() except Exception as reason: - print_to_log("SmokeTest:: error: native_sa.log are not exist!") + print_to_log("SmokeTest:: error: native_sa.log do not exist!") if "ACL check failed" in acl_result: print_to_log("SmokeTest:: error: acl check failed") sys_exit() @@ -620,7 +634,7 @@ if __name__ == "__main__": reboot_result = f.read() f.close() if len(reboot_result) < 1 and reboot_cnt >= 1: - print_to_log("SmokeTest:: \"reboot\" is not found in the reboot.txt") + print_to_log("SmokeTest:: no \"reboot\" found in the reboot.txt") print_to_log("SmokeTest:: the device will reboot and try the failed testcase") print_to_log("SmokeTest:: mkdir {}\\reboot".format(args.save_path)) os.system("mkdir {}\\reboot".format(args.save_path)) -- Gitee From a5f2c4c2c05df501088c14547795f6ee81f978ba Mon Sep 17 00:00:00 2001 From: redjie Date: Thu, 20 Jul 2023 16:38:47 +0800 Subject: [PATCH 072/201] =?UTF-8?q?=E4=BF=AE=E6=94=B9wifi=E5=AF=86?= =?UTF-8?q?=E7=A0=81=E8=BE=93=E5=85=A5=E6=96=B9=E5=BC=8F=EF=BC=9B=E5=8E=BB?= =?UTF-8?q?=E9=99=A4=E5=86=97=E4=BD=99=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: redjie Change-Id: I2db8209d38637849317eb6cae256503850f7e99d --- .../app_capture_screen_test_config.json | 8 +- .../resource/capturescreentest.py | 206 +++++++----------- 2 files changed, 82 insertions(+), 132 deletions(-) diff --git a/cases/smoke/basic/screenshot32/resource/app_capture_screen_test_config.json b/cases/smoke/basic/screenshot32/resource/app_capture_screen_test_config.json index ec9d285..fab4ef6 100644 --- a/cases/smoke/basic/screenshot32/resource/app_capture_screen_test_config.json +++ b/cases/smoke/basic/screenshot32/resource/app_capture_screen_test_config.json @@ -2,8 +2,6 @@ { "DEVICE_1":[5, 6, 7, 8, 9, 10], "DEVICE_2":[1, 2, 3, 4], - "DEVICE_3":[5, 6, 7, 8, 9, 10], - "DEVICE_4":[1, 2, 3, 4], "recent-x-y":[515, 1240], "recent_del-x-y":[360, 1170], "permisson_ok-x-y":[500, 1130], @@ -30,7 +28,7 @@ "crop_range":[140, 450, 30, 500], "kill_settings": ["killall com.ohos.settings"], "all_actions": [ - [1, "shot_cmd", "settings"], [1, "cmp_cmd-level", "settings"], [8, "wlan-x-y"], [2, "shot_cmd", "wlan_list"], [20, "connect_wifi", "wlan_list"], [1, "shot_cmd", "wifi"], + [1, "shot_cmd", "settings"], [1, "cmp_cmd-level", "settings"], [8, "wlan-x-y"], [2, "shot_cmd", "wlan_list"], [15, "connect_wifi", "wlan_list"], [1, "shot_cmd", "wifi"], [1, "shot_cmd", "wifi_connection_status"], [1, "cmp_twice", "wifi", 90, "crop_range"], [1, "kill_settings"] ] }, @@ -57,7 +55,7 @@ "entry": "", "check_result":["cd /data/log/hilog && grep -nr PreviewOutputCallback", "OnFrameStarted"], "compress_log":["cd /data/log/hilog && tar -cf camera_log.tar *"], - "open_camera_log":["rm /data/log/hilog/* && hilog -b X;hilog -b D -T CAMERA;hilog -r"], + "open_camera_log":["rm -rf /data/log/hilog/* && hilog -b X;hilog -b D -T CAMERA;hilog -r"], "start_camera":["aa start -a com.ohos.camera.MainAbility -b com.ohos.camera"], "recover_log":["cd data/log/hilog/;hilog -x > camera_log.txt;hilog -b D"], "check_photos":["aa dump -a | grep com.ohos.photos.MainAbility", "com.ohos.photos"], @@ -86,7 +84,7 @@ "app_name": "video_test", "entry": "", "mk_test_dir":["mkdir -p /data/app/el2/100/base/ohos.acts.multimedia.video.videoplayer/haps/entry/files"], - "start_video_log":["rm /data/log/hilog/* && hilog -r && hilog -Q pidoff;hilog -G 512M;hilog -w start -l 400000000 -m none"], + "start_video_log":["rm -rf /data/log/hilog/* && hilog -r && hilog -Q pidoff;hilog -G 512M;hilog -w start -l 400000000 -m none"], "start_test":["aa test -p ohos.acts.multimedia.video.videoplayer -b ohos.acts.multimedia.video.videoplayer -s unittest OpenHarmonyTestRunner -w 2000000 -s timeout 60000", "Failure: 0, Error: 0, Pass: 1"], "compress_log":["cd /data/log/hilog && tar -cf video_log.tar *"], "kill_video": ["killall ohos.acts.multimedia.video.videoplayer"], diff --git a/cases/smoke/basic/screenshot32/resource/capturescreentest.py b/cases/smoke/basic/screenshot32/resource/capturescreentest.py index 03abe18..030269b 100644 --- a/cases/smoke/basic/screenshot32/resource/capturescreentest.py +++ b/cases/smoke/basic/screenshot32/resource/capturescreentest.py @@ -39,13 +39,12 @@ def print_to_log(str): time = datetime.datetime.now() str = "[{}] {}".format(time, str) print(str) - with open(os.path.join(args.save_path, 'test_{}.log'.format(args.device_num)),\ - mode='a', encoding='utf-8') as log_file: + with open(os.path.join(args.save_path, 'test_{}.log'.format(args.device_num)),mode='a', encoding='utf-8') as file: console = sys.stdout - sys.stdout = log_file + sys.stdout = file print(str) sys.stdout = console - log_file.close() + file.close() def enter_cmd(mycmd, waittime=0, printresult=1): @@ -70,24 +69,15 @@ def enter_cmd(mycmd, waittime=0, printresult=1): cmd_retry_cnt += 1 p.kill() if printresult == 1: - with open(os.path.join(args.save_path, 'test_{}.bat'.format(args.device_num)),\ - mode='a', encoding='utf-8') as cmd_f: - cmd_f.write(mycmd + '\n') - cmd_f.close() print_to_log(mycmd) print_to_log(result) sys.stdout.flush() if waittime != 0: time.sleep(waittime) - if printresult == 1: - with open(os.path.join(args.save_path, 'test_{}.bat'.format(args.device_num)),\ - mode='a', encoding='utf-8') as cmd_f: - cmd_f.write("ping -n {} 127.0.0.1>null\n".format(waittime)) - cmd_f.close() return result -def enter_shell_cmd(shellcmd, waittime=0, printresult=1): +def enter_shell_cmd(shellcmd, waittime=1, printresult=1): if shellcmd == "": return cmd = "hdc_std -t {} shell \"{}\"".format(args.device_num, shellcmd) @@ -101,8 +91,8 @@ def sys_exit(): enter_shell_cmd("cd /data/log/faultlog/faultlogger && tar -cf after_test_jscrash{}.tar jscrash*".format(args.device_num)) file_from_dev("/data/log/faultlog/faultlogger/after_test_jscrash{}.tar".format(args.device_num), \ os.path.normpath(args.save_path)) - print_to_log("SmokeTest:: SmokeTest find some key problems!") - print_to_log("SmokeTest:: End of check, test failed!") + print_to_log("SmokeTest: SmokeTest find some key problems!") + print_to_log("SmokeTest: End of check, test failed!") sys.exit(98) @@ -123,21 +113,21 @@ def connect_check(): connection_status = enter_cmd("hdc_std list targets", 2) connection_cnt += 1 if connection_cnt == 15: - print_to_log("SmokeTest:: Device disconnection!!") - print_to_log("SmokeTest:: End of check, test failed!") + print_to_log("SmokeTest: Device disconnection!!") + print_to_log("SmokeTest: End of check, test failed!") sys.exit(101) def sandbox_check(process): - print_to_log("SmokeTest:: start to check sandbox path") + print_to_log("SmokeTest: start to check sandbox path") medialibrarydata_pidnum = enter_shell_cmd("pgrep -f {}".format(process), 1) medialibrarydata_pidnum = medialibrarydata_pidnum.strip() sandboxf = enter_shell_cmd("echo \"ls /storage/media/local/\"|nsenter -t {} -m sh".format(medialibrarydata_pidnum), 1) if "files" not in sandboxf: - print_to_log("SmokeTest:: error: can not find sandbox path : /storage/media/local/files") + print_to_log("SmokeTest: error: can not find sandbox path : /storage/media/local/files") return -1 else: - print_to_log("SmokeTest:: success: find sandbox path : /storage/media/local/files") + print_to_log("SmokeTest: success: find sandbox path : /storage/media/local/files") return 1 @@ -171,27 +161,18 @@ def connect_wifi(prefix, pic): data = get_coordinate("{}\\{}_{}".format(args.save_path, prefix, pic), "testapold") enter_shell_cmd("uinput -M -m {} {} -c 0".format(data[0], data[1]), WAIT_TIME_TWO) enter_shell_cmd("uinput -M -m 360 200 -c 0") - enter_shell_cmd("uinput -M -m 680 810 -c 0", WAIT_TIME_ONE) - enter_shell_cmd("uinput -M -m 80 910 -c 0", WAIT_TIME_ONE) - enter_shell_cmd("uinput -M -m 150 910 -c 0", WAIT_TIME_ONE) - enter_shell_cmd("uinput -M -m 150 910 -c 0", WAIT_TIME_ONE) - enter_shell_cmd("uinput -M -m 110 810 -c 0", WAIT_TIME_ONE) - enter_shell_cmd("uinput -M -m 50 1150 -c 0", WAIT_TIME_TWO) - enter_shell_cmd("uinput -M -m 680 810 -c 0", WAIT_TIME_ONE) - enter_shell_cmd("uinput -M -m 50 1150 -c 0", WAIT_TIME_TWO) - enter_shell_cmd("uinput -M -m 250 810 -c 0", WAIT_TIME_ONE) - enter_shell_cmd("uinput -M -m 220 910 -c 0", WAIT_TIME_ONE) - enter_shell_cmd("uinput -M -m 50 1150 -c 0", WAIT_TIME_TWO) - enter_shell_cmd("uinput -M -m 40 810 -c 0", WAIT_TIME_ONE) - enter_shell_cmd("uinput -M -m 500 1020 -c 0", WAIT_TIME_ONE) - enter_shell_cmd("uinput -M -m 50 1150 -c 0", WAIT_TIME_ONE) - enter_shell_cmd("uinput -M -m 680 690 -c 0") + enter_shell_cmd("uinput -K -d 2032 -u 2032 -d 2017 -u 2017 -d 2035 -u 2035 -d 2035 -u 2035 -d 2039 -u 2039 -d 2000 -u 2000 -d 2034 -u 2034 -d 2020 -u 2020 -d 2001 -u 2001") + enter_shell_cmd("uinput -M -m 360 200 -c 0") + enter_shell_cmd("uinput -M -m 50 1140 -c 0") + enter_shell_cmd("uinput -M -m 500 1020 -c 0") + enter_shell_cmd("uinput -M -m 50 1140 -c 0") + enter_shell_cmd("uinput -K -d 2054 -u 2054") enter_shell_cmd("snapshot_display -f /data/screen_test/{}".format("testapold.jpeg")) file_from_dev("/data/screen_test/{}".format("testapold.jpeg"), args.save_path) enter_shell_cmd("uinput -M -m 550 680 -c 0", single_action[0]) except Exception as e: print(e) - print_to_log("SmokeTest:: wifi list loading errror!") + print_to_log("SmokeTest: wifi list loading errror!") def calculate(image1, image2): @@ -254,7 +235,7 @@ def shot_and_cmp(image): enter_shell_cmd("snapshot_display -f /data/screen_test/{}_{}".format(prefix, image)) file_from_dev("/data/screen_test/{}_{}".format(prefix, image), args.save_path) similarity = cmp_picture(prefix, image) - print_to_log("SmokeTest:: launcher similarity is {}%".format(similarity)) + print_to_log("SmokeTest: launcher similarity is {}%".format(similarity)) return similarity @@ -262,7 +243,7 @@ def distributed_test(): if "1/2" in args.test_num or "2/2" in args.test_num: report_path = os.path.normpath(os.path.join(args.save_path, "distributed_report.txt")) if args.test_num == "2/2": - enter_shell_cmd("ifconfig eth0 192.168.0.1", WAIT_TIME_ONE) + enter_shell_cmd("ifconfig eth0 192.168.0.1") ping_result = enter_shell_cmd("ping 192.168.0.2 -i 1 -c 2", 3) file_is_exist = enter_shell_cmd("cd /data; find . -name distributed_report.txt") ping_cnt = 0 @@ -271,22 +252,22 @@ def distributed_test(): ping_result = enter_shell_cmd("ping 192.168.0.2 -i 1 -c 2", WAIT_TIME_FOUR) ping_cnt += 1 if ping_cnt == 30: - print_to_log("SmokeTest:: Ping failed, timeout of 80s") + print_to_log("SmokeTest: Ping failed, timeout of 80s") sys_exit() while "distributed_report.txt" not in file_is_exist and wait_cnt < 30: - print_to_log("SmokeTest:: waiting for the distributed test to end ") + print_to_log("SmokeTest: waiting for the distributed test to end ") file_is_exist = enter_shell_cmd("cd /data; find . -name distributed_report.txt", WAIT_TIME_FOUR) wait_cnt += 1 elif args.test_num == "1/2": - enter_shell_cmd("ifconfig eth0 192.168.0.2", WAIT_TIME_ONE) + enter_shell_cmd("ifconfig eth0 192.168.0.2") ping_result = enter_shell_cmd("ping 192.168.0.1 -i 1 -c 2", WAIT_TIME_FOUR) ping_cnt = 0 while "2 packets transmitted, 2 received" not in ping_result and ping_cnt < 20: ping_result = enter_shell_cmd("ping 192.168.0.1 -i 1 -c 2", WAIT_TIME_FOUR) ping_cnt += 1 if ping_cnt == 30: - print_to_log("SmokeTest:: Ping failed, timeout of 80s") - print_to_log("SmokeTest:: ##### case 0 : distributed test start #####") + print_to_log("SmokeTest: Ping failed, timeout of 80s") + print_to_log("SmokeTest: ##### case 0 : distributed test start #####") execute_path = os.path.normpath(os.path.join(args.tools_path, "resource")) os.system("cd {} && python distributedtest.py --path {}".format(execute_path, args.save_path)) distributed_result = "" @@ -296,13 +277,13 @@ def distributed_test(): distributed_result = f.read() f.close() except Exception as reason: - print_to_log("SmokeTest:: distributed_report.txt do not exist!") + print_to_log("SmokeTest: distributed_report.txt do not exist!") if "distributedcalc" in distributed_result: - print_to_log("SmokeTest:: testcase 0, distributed is ok!") + print_to_log("SmokeTest: testcase 0, distributed is ok!") else: - print_to_log("SmokeTest:: error:testcase 0, distributed failed!") + print_to_log("SmokeTest: error:testcase 0, distributed failed!") sys_exit() - enter_shell_cmd("ifconfig eth0 down", WAIT_TIME_ONE) + enter_shell_cmd("ifconfig eth0 down") def open_wlan(): @@ -333,7 +314,6 @@ if __name__ == "__main__": cmp_status = 0 global_pos = all_app[0] - WAIT_TIME_ONE = 1 WAIT_TIME_TWO = 2 WAIT_TIME_FOUR = 4 @@ -341,34 +321,34 @@ if __name__ == "__main__": while reboot_cnt: reboot_cnt -= 1 enter_shell_cmd("mkdir -p /data/screen_test/train_set") + enter_shell_cmd("power-shell wakeup;power-shell setmode 602") rmlock_cnt = 3 while rmlock_cnt: - enter_shell_cmd("uinput -T -m 425 1000 425 400;power-shell wakeup;uinput -T -m 425 400 425 1000;\ - power-shell setmode 602;uinput -T -m 425 1000 425 400;", WAIT_TIME_ONE) + enter_shell_cmd("uinput -T -m 425 400 425 1000;uinput -T -m 425 1000 425 400") rmlock_cnt -= 1 - enter_shell_cmd("hilog -w stop", WAIT_TIME_ONE) - enter_shell_cmd("cd /data/log/hilog && tar -cf system_start_log_{}.tar *".format(args.device_num), WAIT_TIME_ONE) + enter_shell_cmd("hilog -w stop") + enter_shell_cmd("cd /data/log/hilog && tar -cf system_start_log_{}.tar *".format(args.device_num)) file_from_dev("/data/log/hilog/system_start_log_{}.tar".format(args.device_num), args.save_path) connect_check() launcher_similarity = shot_and_cmp("launcher.jpeg") - power_state = enter_shell_cmd("hidumper -s 3308", WAIT_TIME_ONE) + power_state = enter_shell_cmd("hidumper -s 3308") if "State=2" not in power_state: - print_to_log("SmokeTest:: ERROR, DISPLAY POWER MANAGER DUMP State ≠ 2") + print_to_log("SmokeTest: ERROR, DISPLAY POWER MANAGER DUMP State ≠ 2") if launcher_similarity >= 90: - print_to_log("SmokeTest:: launcher screenshot comparison is ok!") + print_to_log("SmokeTest: launcher screenshot comparison is ok!") break elif reboot_cnt >= 1: - print_to_log("SmokeTest:: launcher screenshot comparison failed, reboot and try!!!") + print_to_log("SmokeTest: launcher screenshot comparison failed, reboot and try!!!") enter_shell_cmd("rm -rf /data/*;reboot") for i in range(5): enter_cmd("hdc_std list targets", 10) else: - print_to_log("SmokeTest:: launcher screenshot comparison failed") + print_to_log("SmokeTest: launcher screenshot comparison failed") sys_exit() enter_shell_cmd("cat /proc/`pidof foundation`/smaps_rollup") - print_to_log("\nSmokeTest:: ########## First check key processes start ##############") + print_to_log("\nSmokeTest: ########## First check key processes start ##############") lose_process = [] process_pid = {} with open(os.path.normpath(os.path.join(args.tools_path, "resource/process.txt")), "r+") as f: @@ -392,10 +372,10 @@ if __name__ == "__main__": lose_process.append(pname) if lose_process: - print_to_log("SmokeTest:: error: %s, These processes do not exist!!!" % lose_process) + print_to_log("SmokeTest: error: %s, These processes do not exist!!!" % lose_process) sys_exit() else: - print_to_log("SmokeTest:: first processes check is ok") + print_to_log("SmokeTest: first processes check is ok") apl_check_main(args.device_num) apl_compare = os.path.normpath(os.path.join(args.tools_path, "APL_compare_03", "apl_compare.log")) @@ -405,9 +385,9 @@ if __name__ == "__main__": apl_result = compare_file.read() compare_file.close() except Exception as reason: - print_to_log("SmokeTest:: error: apl_compare.log do not exist!") + print_to_log("SmokeTest: error: apl_compare.log do not exist!") if "APL Check failed" in apl_result: - print_to_log("SmokeTest:: error: apl check failed") + print_to_log("SmokeTest: error: apl check failed") sys_exit() main(args.device_num) @@ -418,31 +398,16 @@ if __name__ == "__main__": acl_result = native_file.read() native_file.close() except Exception as reason: - print_to_log("SmokeTest:: error: native_sa.log do not exist!") + print_to_log("SmokeTest: error: native_sa.log do not exist!") if "ACL check failed" in acl_result: - print_to_log("SmokeTest:: error: acl check failed") + print_to_log("SmokeTest: error: acl check failed") sys_exit() - open_wlan() - - special_warehouse = [ - "arkui_ace_engine", - "developtools_integration_verification", - "graphic_graphic_2d", - "windowmanager"] - - for warehouse in special_warehouse: - if warehouse in args.pr_url: - if args.test_num == "1/2": - args.test_num = "3/2" - elif args.test_num == "2/2": - args.test_num = "4/2" - print(args.pr_url) try: args.test_num.index('/') idx_total = args.test_num.split('/') if len(idx_total) != 2: - print_to_log("SmokeTest:: test_num is invaild !!!") + print_to_log("SmokeTest: test_num is invaild !!!") sys_exit() elif idx_total[1] == '1': idx_list = list(range(1, len(all_app))) @@ -451,9 +416,10 @@ if __name__ == "__main__": except ValueError as e: print_to_log(e) idx_list = list(map(eval, args.test_num.split())) - print_to_log("SmokeTest:: start to carry out the following testcases: ") - print_to_log("SmokeTest:: testcase number: {} ".format(idx_list)) + print_to_log("SmokeTest: start to carry out the following testcases: ") + print_to_log("SmokeTest: testcase number: {} ".format(idx_list)) + open_wlan() fail_idx_list = [] fail_name_list = [] smoke_first_failed = '' @@ -462,25 +428,15 @@ if __name__ == "__main__": sys.stdout.flush() call_app_cmd = single_app['entry'] capture_screen_cmd = "snapshot_display -f /data/screen_test/{}_{}" - print_to_log("\nSmokeTest:: ##### case {} : {} test start #####".format(idx, single_app['app_name'])) - with open(os.path.join(args.save_path, 'test_{}.bat'.format(args.device_num)),\ - mode='a', encoding='utf-8') as cmd_f: - cmd_f.write("\nSmokeTest::::::case {} --- {} test start \n".format(idx, single_app['app_name'])) - cmd_f.close() + print_to_log("\nSmokeTest: ##### case {} : {} test start #####".format(idx, single_app['app_name'])) testcnt = 3 while testcnt: testok = 0 if testcnt != 3: - print_to_log("SmokeTest:: this testcase try again >>>>>>:\n") - with open(os.path.join(args.save_path, 'test_{}.bat'.format(args.device_num)),\ - mode='a', encoding='utf-8') as cmd_f: - cmd_f.write("\nSmokeTest::::::Last failed, try again \n") - cmd_f.close() - if idx == 1: - testcnt = 1 + print_to_log("SmokeTest: this testcase try again >>>>>>:\n") if single_app['entry'] != "": enter_shell_cmd(call_app_cmd, WAIT_TIME_FOUR) - print_to_log("SmokeTest:: execute command {}".format(single_app['all_actions'])) + print_to_log("SmokeTest: execute command {}".format(single_app['all_actions'])) prefix = args.device_num raw_pic_name = '' pic_name = '' @@ -490,8 +446,8 @@ if __name__ == "__main__": pic_name = "{}{}".format(single_action[2], ".jpeg") else: pic_name = "{}{}".format(single_app['app_name'], ".jpeg") - enter_shell_cmd("rm /data/screen_test/*{}".format(pic_name), WAIT_TIME_ONE) - enter_shell_cmd(capture_screen_cmd.format(prefix, pic_name), WAIT_TIME_ONE) + enter_shell_cmd("rm /data/screen_test/*{}".format(pic_name)) + enter_shell_cmd(capture_screen_cmd.format(prefix, pic_name)) file_from_dev("/data/screen_test/{}_{}".format(prefix, pic_name), args.save_path) next_cmd = "" elif type(single_action[1]) == str and single_action[1] == 'cmp_twice': @@ -503,15 +459,15 @@ if __name__ == "__main__": crop_picture(prefix, pic, crop_range) first_similarity = cmp_picture(prefix, pic) second_similarity = cmp_picture(prefix, pic, WAIT_TIME_TWO) - print_to_log("SmokeTest:: first picture similarity is {}%".format(first_similarity)) - print_to_log("SmokeTest:: second picture similarity is {}%".format(second_similarity)) + print_to_log("SmokeTest: first picture similarity is {}%".format(first_similarity)) + print_to_log("SmokeTest: second picture similarity is {}%".format(second_similarity)) if first_similarity >= similarity or second_similarity >= similarity: if testok != -1: testok = 1 - print_to_log("SmokeTest:: {} screenshot check is ok".format(pic)) + print_to_log("SmokeTest: {} screenshot check is ok".format(pic)) else: testok = -1 - print_to_log("SmokeTest:: {} screenshot check is abnarmal".format(pic)) + print_to_log("SmokeTest: {} screenshot check is abnarmal".format(pic)) elif type(single_action[1]) == str and single_action[1] == 'cmp_cmd-level': next_cmd = "" sys.stdout.flush() @@ -520,20 +476,20 @@ if __name__ == "__main__": else: similarity = global_pos['cmp_cmd-level'][1] similarity = int(similarity) - print_to_log("SmokeTest:: start to contrast screenshot") + print_to_log("SmokeTest: start to contrast screenshot") pic = "{}{}".format(single_action[2], ".jpeg") crop_range = [80, 1200, 0, 720] crop_picture(prefix, pic, crop_range) pic_similarity = cmp_picture(prefix, pic) - print_to_log("SmokeTest:: picture similarity is {}%".format(pic_similarity)) + print_to_log("SmokeTest: picture similarity is {}%".format(pic_similarity)) if len(single_action) >= 3: if pic_similarity >= similarity: if testok != -1: testok = 1 - print_to_log("SmokeTest:: {} screenshot check is ok".format(pic)) + print_to_log("SmokeTest: {} screenshot check is ok".format(pic)) else: testok = -1 - print_to_log("SmokeTest:: {} screenshot check is abnarmal".format(pic)) + print_to_log("SmokeTest: {} screenshot check is abnarmal".format(pic)) elif type(single_action[1]) == str and single_action[1] == 'install_hap': next_cmd = "" if len(single_action) == 3: @@ -568,12 +524,12 @@ if __name__ == "__main__": findsome = result.find(single_action[2], 0, len(result)) if findsome != -1: testok = -1 - print_to_log("SmokeTest:: \"{}\" error:find fatal crash \"{}\"!".format(single_action[1],\ + print_to_log("SmokeTest: \"{}\" error:find fatal crash \"{}\"!".format(single_action[1],\ single_action[2])) sys_exit() else: testok = 1 - print_to_log("SmokeTest:: \"{}\" result is ok, not find fatal\ + print_to_log("SmokeTest: \"{}\" result is ok, not find fatal\ crash \"{}\"!".format(single_action[1], single_action[2])) sys.stdout.flush() elif type(single_action[1]) == str: @@ -589,12 +545,10 @@ if __name__ == "__main__": findsome = result.find(target_[1], 0, len(result)) if findsome != -1: testok = 1 - print_to_log("SmokeTest:: \"{}\" check result is ok, find \"{}\"!".format(target_[0],\ - target_[1])) + print_to_log("SmokeTest: \"{}\" check ok, find \"{}\"!".format(target_[0], target_[1])) else: testok = -1 - print_to_log("SmokeTest:: \"{}\" result is not ok, not find \"{}\"!".format(target_[0],\ - target_[1])) + print_to_log("SmokeTest: \"{}\" check failed, no \"{}\"!".format(target_[0],target_[1])) sys.stdout.flush() else: next_cmd = "uinput -M -m {} {} -c 0".format(target_[0], target_[1]) @@ -603,19 +557,19 @@ if __name__ == "__main__": enter_shell_cmd(next_cmd, single_action[0]) if testok == 1: - print_to_log("SmokeTest:: testcase {}, {} is ok!".format(idx, single_app['app_name'])) + print_to_log("SmokeTest: testcase {}, {} is ok!".format(idx, single_app['app_name'])) testcnt = 0 elif testok == -1 and smoke_first_failed == '': if testcnt == 1: fail_idx_list.append(idx) fail_name_list.append(single_app['app_name']) smoke_first_failed = single_app['app_name'] - print_to_log("SmokeTest:: error:testcase {}, {} is failed!".format(idx, single_app['app_name'])) + print_to_log("SmokeTest: error:testcase {}, {} is failed!".format(idx, single_app['app_name'])) testcnt -= 1 elif testok == -1 and smoke_first_failed != '': fail_idx_list.append(idx) fail_name_list.append(single_app['app_name']) - print_to_log("SmokeTest:: error:testcase {}, {} is failed!".format(idx, single_app['app_name'])) + print_to_log("SmokeTest: error:testcase {}, {} is failed!".format(idx, single_app['app_name'])) testcnt = 0 else: testcnt = 0 @@ -627,23 +581,22 @@ if __name__ == "__main__": fail_str_list = [str(x) for x in fail_idx_list] reboot_test_num = " ".join(fail_str_list) if len(fail_idx_list) != 0: - print_to_log("SmokeTest:: failed testcase number: {} ".format(fail_str_list)) - print_to_log("SmokeTest:: check \"reboot\" in reboot.txt".format(args.save_path)) + print_to_log("SmokeTest: failed testcase number: {} ".format(fail_str_list)) + print_to_log("SmokeTest: check \"reboot\" in reboot.txt".format(args.save_path)) with open(os.path.normpath(os.path.join(args.tools_path, "reboot.txt")), mode='a+') as f: f.seek(0) reboot_result = f.read() f.close() if len(reboot_result) < 1 and reboot_cnt >= 1: - print_to_log("SmokeTest:: no \"reboot\" found in the reboot.txt") - print_to_log("SmokeTest:: the device will reboot and try the failed testcase") - print_to_log("SmokeTest:: mkdir {}\\reboot".format(args.save_path)) + print_to_log("SmokeTest: no \"reboot\" found in the reboot.txt") + print_to_log("SmokeTest: the device will reboot and try the failed testcase") + print_to_log("SmokeTest: mkdir {}\\reboot".format(args.save_path)) os.system("mkdir {}\\reboot".format(args.save_path)) - print_to_log("SmokeTest:: write \"reboot\" into reboot.txt".format(args.save_path)) + print_to_log("SmokeTest: write \"reboot\" into reboot.txt".format(args.save_path)) with open(os.path.normpath(os.path.join(args.tools_path, "reboot.txt")), mode='w') as f: f.write("reboot") f.close() - print_to_log("SmokeTest:: error: name {}, index {}, failed, rm /data/* and reboot".format(fail_name_list,\ - fail_idx_list)) + print_to_log("SmokeTest: error: name {}, index {}, failed, reboot".format(fail_name_list,fail_idx_list)) enter_shell_cmd("rm -rf /data/* && reboot") reboot_result_list = enter_cmd("hdc_std list targets", 2) number = 0 @@ -662,10 +615,9 @@ if __name__ == "__main__": else: sys.exit(101) else: - print_to_log("SmokeTest:: error: name {}, index {}, these testcase is failed".format(fail_name_list,\ - fail_idx_list)) + print_to_log("SmokeTest: error: name {}, index {}, failed".format(fail_name_list, fail_idx_list)) sys_exit() else: - print_to_log("SmokeTest:: all testcase is ok") - print_to_log("SmokeTest:: End of check, test succeeded!") + print_to_log("SmokeTest: all testcase is ok") + print_to_log("SmokeTest: End of check, test succeeded!") sys.exit(0) -- Gitee From 42490db9f3a7723b72821b711e530d393c9b26ea Mon Sep 17 00:00:00 2001 From: openharmony_ci <120357966@qq.com> Date: Fri, 21 Jul 2023 00:47:10 +0000 Subject: [PATCH 073/201] update cases/smoke/basic/screenshot32/resource/app_capture_screen_test_config.json. Signed-off-by: openharmony_ci <120357966@qq.com> --- .../screenshot32/resource/app_capture_screen_test_config.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cases/smoke/basic/screenshot32/resource/app_capture_screen_test_config.json b/cases/smoke/basic/screenshot32/resource/app_capture_screen_test_config.json index ec9d285..a6a181b 100644 --- a/cases/smoke/basic/screenshot32/resource/app_capture_screen_test_config.json +++ b/cases/smoke/basic/screenshot32/resource/app_capture_screen_test_config.json @@ -49,7 +49,7 @@ "pull_down_cmd":["uinput -T -m 500 0 500 80"], "swipe_up_cmd":["uinput -T -m 500 500 500 300"], "all_actions": [ - [2, "pull_down_cmd"], [2, "pull_down_cmd"], [1, "shot_cmd", "notification_bar"], [1, "cmp_cmd-level", "notification_bar", 70], [1, "swipe_up_cmd"], [1, "swipe_up_cmd"] + [2, "pull_down_cmd"], [2, "pull_down_cmd"], [1, "swipe_up_cmd"], [1, "swipe_up_cmd"] ] }, { -- Gitee From 2d934467cf7f6094112c859a33c7e928f7077d16 Mon Sep 17 00:00:00 2001 From: wuliushuan Date: Fri, 21 Jul 2023 10:55:25 +0800 Subject: [PATCH 074/201] =?UTF-8?q?acl=20=E6=96=B0=E5=A2=9E=E7=99=BD?= =?UTF-8?q?=E5=90=8D=E5=8D=95=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: wuliushuan Change-Id: Ie90e827df6a4a5ec0c579e23a33b176cac47352c --- .../smoke/basic/screenshot32/acls_check/acl_whitelist.json | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/cases/smoke/basic/screenshot32/acls_check/acl_whitelist.json b/cases/smoke/basic/screenshot32/acls_check/acl_whitelist.json index b5c2707..986f53a 100644 --- a/cases/smoke/basic/screenshot32/acls_check/acl_whitelist.json +++ b/cases/smoke/basic/screenshot32/acls_check/acl_whitelist.json @@ -114,5 +114,11 @@ "acls": [ "ohos.permission.GET_SENSITIVE_PERMISSIONS" ] + }, + { + "processName": "backup_sa", + "acls": [ + "ohos.permission.INSTALL_BUNDLE" + ] } ] \ No newline at end of file -- Gitee From 69c00597f9b746b22adb25574767df7f3503c39f Mon Sep 17 00:00:00 2001 From: openharmony_ci <120357966@qq.com> Date: Fri, 21 Jul 2023 06:21:58 +0000 Subject: [PATCH 075/201] update cases/smoke/basic/screenshot32/resource/app_capture_screen_test_config.json. Signed-off-by: openharmony_ci <120357966@qq.com> --- .../screenshot32/resource/app_capture_screen_test_config.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cases/smoke/basic/screenshot32/resource/app_capture_screen_test_config.json b/cases/smoke/basic/screenshot32/resource/app_capture_screen_test_config.json index a6a181b..ec9d285 100644 --- a/cases/smoke/basic/screenshot32/resource/app_capture_screen_test_config.json +++ b/cases/smoke/basic/screenshot32/resource/app_capture_screen_test_config.json @@ -49,7 +49,7 @@ "pull_down_cmd":["uinput -T -m 500 0 500 80"], "swipe_up_cmd":["uinput -T -m 500 500 500 300"], "all_actions": [ - [2, "pull_down_cmd"], [2, "pull_down_cmd"], [1, "swipe_up_cmd"], [1, "swipe_up_cmd"] + [2, "pull_down_cmd"], [2, "pull_down_cmd"], [1, "shot_cmd", "notification_bar"], [1, "cmp_cmd-level", "notification_bar", 70], [1, "swipe_up_cmd"], [1, "swipe_up_cmd"] ] }, { -- Gitee From 8d8b9736950aedbaca36a259f146aa86dc59450e Mon Sep 17 00:00:00 2001 From: openharmony_ci <120357966@qq.com> Date: Tue, 25 Jul 2023 06:50:31 +0000 Subject: [PATCH 076/201] update cases/smoke/basic/screenshot32/resource/app_capture_screen_test_config.json. Signed-off-by: openharmony_ci <120357966@qq.com> --- .../screenshot32/resource/app_capture_screen_test_config.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cases/smoke/basic/screenshot32/resource/app_capture_screen_test_config.json b/cases/smoke/basic/screenshot32/resource/app_capture_screen_test_config.json index fab4ef6..f1acc66 100644 --- a/cases/smoke/basic/screenshot32/resource/app_capture_screen_test_config.json +++ b/cases/smoke/basic/screenshot32/resource/app_capture_screen_test_config.json @@ -28,7 +28,7 @@ "crop_range":[140, 450, 30, 500], "kill_settings": ["killall com.ohos.settings"], "all_actions": [ - [1, "shot_cmd", "settings"], [1, "cmp_cmd-level", "settings"], [8, "wlan-x-y"], [2, "shot_cmd", "wlan_list"], [15, "connect_wifi", "wlan_list"], [1, "shot_cmd", "wifi"], + [1, "shot_cmd", "settings"], [1, "cmp_cmd-level", "settings"], [8, "wlan-x-y"], [2, "shot_cmd", "wlan_list"], [25, "connect_wifi", "wlan_list"], [1, "shot_cmd", "wifi"], [1, "shot_cmd", "wifi_connection_status"], [1, "cmp_twice", "wifi", 90, "crop_range"], [1, "kill_settings"] ] }, -- Gitee From 998eec5aff3dd79ff9571ee625f6e848528960c9 Mon Sep 17 00:00:00 2001 From: redjie Date: Wed, 26 Jul 2023 21:13:29 +0800 Subject: [PATCH 077/201] =?UTF-8?q?=E6=9A=82=E6=97=B6=E4=B8=8B=E7=BA=BF?= =?UTF-8?q?=E7=9B=B8=E6=9C=BA=E6=8B=8D=E7=85=A7=E6=A3=80=E6=B5=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: redjie Change-Id: I6465f44d03d8fa756f2bd66bbcaf0fc3a86482dc --- .../screenshot32/resource/app_capture_screen_test_config.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cases/smoke/basic/screenshot32/resource/app_capture_screen_test_config.json b/cases/smoke/basic/screenshot32/resource/app_capture_screen_test_config.json index f1acc66..91b9105 100644 --- a/cases/smoke/basic/screenshot32/resource/app_capture_screen_test_config.json +++ b/cases/smoke/basic/screenshot32/resource/app_capture_screen_test_config.json @@ -63,7 +63,7 @@ "kill_photos": ["killall com.ohos.photos"], "all_actions": [ [1, "open_camera_log"], [5, "start_camera"], [3, "take_photos-x-y"], [2, "convert_to_video-x-y"], [3, "take_photos-x-y"], [2, "stop_video-x-y"], [11, "convert_to_photos-x-y"], - [1, "recover_log"], [1, "check_result"], [1, "shot_cmd", "camera"], [1, "compress_log"], [1, "check_photos"], [1, "get_file_from_dev", "/data/log/hilog/camera_log.tar"], + [1, "recover_log"], [1, "shot_cmd", "camera"], [1, "compress_log"], [1, "get_file_from_dev", "/data/log/hilog/camera_log.tar"], [1, "kill_camera"], [1, "kill_photos"] ] }, -- Gitee From 03144fe8711aaf708ad3e91530051d45b2ed0a95 Mon Sep 17 00:00:00 2001 From: openharmony_ci <120357966@qq.com> Date: Thu, 27 Jul 2023 00:03:42 +0000 Subject: [PATCH 078/201] =?UTF-8?q?=E5=9B=9E=E9=80=80=20'Pull=20Request=20?= =?UTF-8?q?!127=20:=20=E4=B8=8B=E7=BA=BF=E7=9B=B8=E6=9C=BA=E6=8B=8D?= =?UTF-8?q?=E7=85=A7=E6=A3=80=E6=B5=8B'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../screenshot32/resource/app_capture_screen_test_config.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cases/smoke/basic/screenshot32/resource/app_capture_screen_test_config.json b/cases/smoke/basic/screenshot32/resource/app_capture_screen_test_config.json index 91b9105..f1acc66 100644 --- a/cases/smoke/basic/screenshot32/resource/app_capture_screen_test_config.json +++ b/cases/smoke/basic/screenshot32/resource/app_capture_screen_test_config.json @@ -63,7 +63,7 @@ "kill_photos": ["killall com.ohos.photos"], "all_actions": [ [1, "open_camera_log"], [5, "start_camera"], [3, "take_photos-x-y"], [2, "convert_to_video-x-y"], [3, "take_photos-x-y"], [2, "stop_video-x-y"], [11, "convert_to_photos-x-y"], - [1, "recover_log"], [1, "shot_cmd", "camera"], [1, "compress_log"], [1, "get_file_from_dev", "/data/log/hilog/camera_log.tar"], + [1, "recover_log"], [1, "check_result"], [1, "shot_cmd", "camera"], [1, "compress_log"], [1, "check_photos"], [1, "get_file_from_dev", "/data/log/hilog/camera_log.tar"], [1, "kill_camera"], [1, "kill_photos"] ] }, -- Gitee From 814272a1c6910124a288c2778e03b725138f03ad Mon Sep 17 00:00:00 2001 From: redjie Date: Thu, 27 Jul 2023 15:59:06 +0800 Subject: [PATCH 079/201] =?UTF-8?q?=E6=9D=83=E9=99=90=E5=BC=B9=E6=A1=86?= =?UTF-8?q?=E8=B7=9D=E7=A6=BB=E5=B1=8F=E5=B9=95=E8=BE=B9=E8=B7=9D=E5=8F=98?= =?UTF-8?q?=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: redjie Change-Id: Iafebe964628fbcaaeb787fbe3dc330a1ceeab611 --- .../screenshot32/resource/app_capture_screen_test_config.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cases/smoke/basic/screenshot32/resource/app_capture_screen_test_config.json b/cases/smoke/basic/screenshot32/resource/app_capture_screen_test_config.json index f1acc66..3ce72fa 100644 --- a/cases/smoke/basic/screenshot32/resource/app_capture_screen_test_config.json +++ b/cases/smoke/basic/screenshot32/resource/app_capture_screen_test_config.json @@ -4,7 +4,7 @@ "DEVICE_2":[1, 2, 3, 4], "recent-x-y":[515, 1240], "recent_del-x-y":[360, 1170], - "permisson_ok-x-y":[500, 1130], + "permisson_ok-x-y":[530, 1100], "wlan-x-y":[300, 300], "wlan_button-x-y":[640, 200], "note_content-x-y":[500, 310], -- Gitee From 5df0517b40a2d1b9fc6168ae620125de7dec9470 Mon Sep 17 00:00:00 2001 From: "Meng.Lv" Date: Fri, 28 Jul 2023 07:08:10 +0000 Subject: [PATCH 080/201] =?UTF-8?q?AVScreenCapture=20apl=20=E6=9D=83?= =?UTF-8?q?=E9=99=90=E5=A4=84=E7=90=86(1/2)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Meng.Lv --- .../basic/screenshot32/acls_check/acl_whitelist.json | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/cases/smoke/basic/screenshot32/acls_check/acl_whitelist.json b/cases/smoke/basic/screenshot32/acls_check/acl_whitelist.json index 986f53a..c620b1b 100644 --- a/cases/smoke/basic/screenshot32/acls_check/acl_whitelist.json +++ b/cases/smoke/basic/screenshot32/acls_check/acl_whitelist.json @@ -120,5 +120,11 @@ "acls": [ "ohos.permission.INSTALL_BUNDLE" ] - } + }, + { + "processName": "media_service", + "acls": [ + "ohos.permission.CAPTURE_SCREEN" + ] + } ] \ No newline at end of file -- Gitee From 8f71106692a297e6602b8cb8aca474b4df6abc0e Mon Sep 17 00:00:00 2001 From: assertor <956765145@qq.com> Date: Mon, 7 Aug 2023 01:55:10 +0000 Subject: [PATCH 081/201] update tools/deps_guard/rules/ChipsetSDK/whitelist.json. Signed-off-by: assertor <956765145@qq.com> --- tools/deps_guard/rules/ChipsetSDK/whitelist.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tools/deps_guard/rules/ChipsetSDK/whitelist.json b/tools/deps_guard/rules/ChipsetSDK/whitelist.json index 0a44cb1..34813c4 100755 --- a/tools/deps_guard/rules/ChipsetSDK/whitelist.json +++ b/tools/deps_guard/rules/ChipsetSDK/whitelist.json @@ -86,5 +86,8 @@ "librtg_interface.z.so", "libconcurrent_task_client.z.so", "libffrt.z.so", - "libbtcommon.z.so" + "libbtcommon.z.so", + + //by aplay,amixer,alsactl,aconnect,speaker-test for ohos_emu_arm64 + "libasound.so" ] -- Gitee From 085f0efb19e50634089285e8f782730f9e7ab6f6 Mon Sep 17 00:00:00 2001 From: openharmony_ci <120357966@qq.com> Date: Mon, 7 Aug 2023 03:48:12 +0000 Subject: [PATCH 082/201] =?UTF-8?q?=E5=9B=9E=E9=80=80=20'Pull=20Request=20?= =?UTF-8?q?!132=20:=20=E3=80=90=E8=BD=BB=E9=87=8F=E7=BA=A7=20PR=E3=80=91?= =?UTF-8?q?=EF=BC=9Aupdate=20tools/deps=5Fguard/rules/ChipsetSDK/whitelist?= =?UTF-8?q?.json.'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tools/deps_guard/rules/ChipsetSDK/whitelist.json | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/tools/deps_guard/rules/ChipsetSDK/whitelist.json b/tools/deps_guard/rules/ChipsetSDK/whitelist.json index 34813c4..0a44cb1 100755 --- a/tools/deps_guard/rules/ChipsetSDK/whitelist.json +++ b/tools/deps_guard/rules/ChipsetSDK/whitelist.json @@ -86,8 +86,5 @@ "librtg_interface.z.so", "libconcurrent_task_client.z.so", "libffrt.z.so", - "libbtcommon.z.so", - - //by aplay,amixer,alsactl,aconnect,speaker-test for ohos_emu_arm64 - "libasound.so" + "libbtcommon.z.so" ] -- Gitee From 5280af3a7cbc337ee123b634f3f655d2b80be5ba Mon Sep 17 00:00:00 2001 From: redjie Date: Mon, 7 Aug 2023 20:27:28 +0800 Subject: [PATCH 083/201] update cmp picture Signed-off-by: redjie Change-Id: I59235aee0ac6edeac0b794e696022978ae7dd248 --- .../resource/capturescreentest.py | 2 +- .../basic/screenshot32/resource/contacts.jpeg | Bin 41306 -> 42216 bytes .../resource/distributedmusicplayer.jpeg | Bin 70105 -> 70887 bytes .../basic/screenshot32/resource/launcher.jpeg | Bin 87231 -> 87607 bytes .../basic/screenshot32/resource/mms.jpeg | Bin 20636 -> 20550 bytes .../basic/screenshot32/resource/note.jpeg | Bin 96201 -> 94183 bytes .../resource/notification_bar.jpeg | Bin 63778 -> 64461 bytes .../basic/screenshot32/resource/photos.jpeg | Bin 124295 -> 150171 bytes .../basic/screenshot32/resource/settings.jpeg | Bin 63388 -> 63318 bytes .../basic/screenshot32/resource/wifi.jpeg | Bin 15214 -> 14935 bytes 10 files changed, 1 insertion(+), 1 deletion(-) diff --git a/cases/smoke/basic/screenshot32/resource/capturescreentest.py b/cases/smoke/basic/screenshot32/resource/capturescreentest.py index 030269b..8c87d89 100644 --- a/cases/smoke/basic/screenshot32/resource/capturescreentest.py +++ b/cases/smoke/basic/screenshot32/resource/capturescreentest.py @@ -290,7 +290,7 @@ def open_wlan(): enter_shell_cmd("aa start -a com.ohos.settings.MainAbility -b com.ohos.settings", WAIT_TIME_FOUR) enter_shell_cmd("uinput -M -m 300 300 -c 0", WAIT_TIME_TWO) enter_shell_cmd("uinput -M -m 640 200 -c 0", WAIT_TIME_FOUR) - time.sleep(WAIT_TIME_TWO) + time.sleep(WAIT_TIME_FOUR) enter_shell_cmd("killall com.ohos.settings", WAIT_TIME_TWO) diff --git a/cases/smoke/basic/screenshot32/resource/contacts.jpeg b/cases/smoke/basic/screenshot32/resource/contacts.jpeg index af3ab344cec79db08f1944b6451fe4d5bb64253a..34a2946b2747b5c3af428001dfd44d6cf8c5b216 100644 GIT binary patch literal 42216 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 Tv37upnI*q*L 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 W&I*nNw4!jVG8_K^z(xAl@xK58BTpLu literal 41306 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%0D?=s7)@1ux17r7 z)++6Z;_PGdJ3NvmWEneedkpRGMX))DjI5npDm&{^P}5QfLs_T;Fhh zI}>0KJ8P9o>Pu;RiEGJ4Rhqcmt3!g6O%K{kUIS;*L9WD5`keWUax^!l?a6RJRgVqWhIN-|P5Ydv~|Ph1O?eDpBUEZ>NC3Dj&zt*Mh|T9HuM z?VY5O7P;V?I1>yNAyMVLcjV@OhA985ueWE1O;m9^h7N)#w!~J0NA9oE)O?raul2&n zSgC5ecF|qC?ePcq+Rv|;*4^=}t#*lte);(VS^Soyw8T#AH^wRh(~W%G5^}yvd&ql= z4Jg!(hVq_0j!RAm7zhiZ4#E4Nf@CB+$q`EHVN6jrsjl6Zr zUs?XlkHhX)5!;+zytV8YXzg3IF@1QduTK{INntX07e^gcJc^#_)!*9Jc2mD9>4D`h zj^evr`0g+}r0Hl^YOGaROr>2#b6QNA)L0I>`@&}WkF<^TLNhBkn?!|CL470@?;k-4 zG6Y8tOM|k$YW*L0USp4iq_0J*+oo+5Ejh5ikS>y>S+ zG2-Z^%+Jr8WN(ygtG9SH$*DX8exNDDvfOu2CFL^5=GlF{X)ivXRdKig;M9EdN7sjh zLv6%@OI^AXc1hNLr;q`J)c6 uT#Qv{6oy`#27ZD^W%>Nt4{>I@8}%YALc{cbe@2)e)%Sk;dBci)>i8f24bjv9 diff --git a/cases/smoke/basic/screenshot32/resource/distributedmusicplayer.jpeg b/cases/smoke/basic/screenshot32/resource/distributedmusicplayer.jpeg index 7053239010419f6b03c819868801792a0941cacc..324fa6f90191c75966f8ffe1e6ffcb12cee6f747 100644 GIT binary patch literal 70887 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

A|kOfg8d~D(d%||;;@J#HV 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

PpsOzAq=M)hQ7dOJ-KWGxkaRl1+jI77e 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 ahz#K!DDp#S`I*!C^KvU{47A}tb^i}}EJE4< diff --git a/cases/smoke/basic/screenshot32/resource/launcher.jpeg b/cases/smoke/basic/screenshot32/resource/launcher.jpeg index 96a5e3595a54c32132074b7972580398e8490ec9..b60b7ad1af5f89dd5c57d0d20dc34c18e04d39f6 100644 GIT binary patch delta 85882 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 delta 85474 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 KYboJVapeRKS8rjzR-^i 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 literal 63778 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 O%!tCovu6FL`2PSbAj4Sz diff --git a/cases/smoke/basic/screenshot32/resource/photos.jpeg b/cases/smoke/basic/screenshot32/resource/photos.jpeg index faccdff55629484ed30f8e18adec2bc07d1cc41d..4ca520918935d9aba81a8183a6c9bc531d68baa7 100644 GIT binary patch literal 150171 zcmbUIc|2788wZR}t9F%2i%h$+G-XK(&fP6Z(v&4jGIvQtrIMJ8IrrT{Q6_{enMw#T zS&N3LBxPx2n@Gk!A!alCIcJ`azW4Y0`#sO=`Qv#Wz09i_=X}n!ecsn~y|2%xzo~n0 z3lHwM+mD+v1&5mg{^8W$an`u0Qzm~VU#Cv~OrJLSI%E3uY13!Um^t(Jug2_IGc{&w z%$zxE?yT8!CV#;H=FOcmZ}QFLBLBH{>WpdAX3Wu;sqy=g|5q>Sx41>KrvEjyY1))^ zxT%Y#Oj|TX{Q-vua?bcI9uW3FKU1bon?7Tv1`uN|xS(_)5P#Y)b@Zghx=Txp|A~DvYyF>v@0L1#6>Km$b@}@2Im@({uUNTpliubn`le<( z%y;hEZN1NCzwH6LgHFya$6VdqJ-ko*obmNL>mPI__-aTf`Pz+}w<02M--(Kge~^%v z^e{Q)X~wh6tnBAGxkbe#rDd;Pmsh;6{!sI=_S5IO=9bpBcFwns&fdQMfx#i(&*2fF zNIW5t%H#^=q+U~S)Bd9tc>TZCYZ1_E>ZA`eCiR*!H3a-lTQq&f+U+wJ?>(w<@{-m% z<9}u?`7`!O;k()EO&kSFPhI{xXW0hR-i^XZ)qZRC|4gy#|DQDbpJM+%y*hF8rcD9P zo3;oC;n0SsQ3lo~L+tNr95x51#=Xq1y?GM8Nf$hzX|EDxsKS1cPOAtVwumUHQH`U~ zkz1ra_G+BQlvl|EYFzb3S~j9bN8cS%<8EBPq{c0a3!_OwIV>5Tl-BOFSM{0qLI$P0 zR?%KFHug2_*VMQzy)rBczYTAIDyVTbYTOLD$pXkn6JbHB>(A7yx||Idxa;KtKp`vJIm11835*;r4`S~c#vl*|?T|9dZ4 zjVnlEt8uPs+#!FW#N|mq&4Qh3++!LNhe!TVuGK`e1HM2ae>F}K2A<`aip`B3sNu0y z1S%h^4a9mFUsOB8j@>jNe}$hXmXEYqQV4f+eAGC?_J4&~jF)fKrmJx~D%H58S8Civ zmwHHUbTkz^Ukt9�D8`)lN!EQ}KkzAR=o=ktJfj`jSte;gF?~#p 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%0A5T3$3E73w8Sx@e)l47PDJ0)aOijoxhgbXVsi( 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

Yw_iF=G7u&@K>5zssbXBoAL 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�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 diff --git a/cases/smoke/basic/screenshot32/resource/mms.jpeg b/cases/smoke/basic/screenshot32/resource/mms.jpeg index 79f194b5a22068575d5f311c989ab0b4a29f068a..409232604b8fa1a0418323c0df5b4615472c1c26 100644 GIT binary patch literal 20550 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 J3N8Kme*nY2E|UNN diff --git a/cases/smoke/basic/screenshot32/resource/note.jpeg b/cases/smoke/basic/screenshot32/resource/note.jpeg index b0e8edb1d1aad167335b21508864d4300cf47ec1..683f626e6b0819dcad3eb84602d675d55d0c902b 100644 GIT binary patch delta 59427 zcmb@tc~BGE*Df4KM1+Wd2m(PtQ5hnWs9@rRh=>tU5fE~e8AJ{uGKI8)GDDOo2nbOS zP#Ge#Kp-;aAR;nPNDgCxywjmDXrw&(mjp;@y0iI z2z6-WuN_lZr{tz{*0E6VD(3Hs>Cx3UuE`~v20rB1v6T_ix?pHo9xyBJZ35=gM#fC= zi(ReLaeWzqX8gor9;GQ3x6wUgdpDP_l%)vmw#^MOQ?SE(P0%wwq^VkbCP^5%i&GM9=?@P!yQo> zU@xyja}Ss;DQ>5|xvtG_v!Go?Huj;}4iAtL?lvmw8TAm~7{B_k^WJD>WinLRB)>Me z;1IyCs3-!sO>|EaP=VX{(l_&8t!3G?Z#F)<>B=(sRlu@6O>R zO!zwDDfQYqBI78)yg&ji3{k5bA7C93s>r5o;iRFW>>jQaBu5(7=pD~l5K?x!KNzrB zM-WHzPwBHm=VOQlzX&I|{_!$zIML?HL+?8~N>OA9|^? zpDbHWUzqma4UE1l3Ih0jZG}KHwv1HYzCmak`xSEtd@`~pe^m5)c7PX}A8^v4Zyw-` z4cY=dRDLY$i1dbVsa;?BGRWbe2c%)V`8vYk_}3*AMLO3r_(rZ! zrabf{dlb_l`KF5SGhEPK7W#p7XdTgYX}NtH)DDQ##HbByw1m5S@5-aBo#qFtL$&_m zw5}s;v~n;RJ?iulMqMjK3Er@;XGt?A?g6 zabqevyzKZ}AK8YHC#sYgphjTgY^J))DfhM6+~R!9IPK0lLL-Pp708w0MB9%ndp6W? zaS{Hg-L~M`ip8R#v4pwz%-rQf*W-T}ua7+(ms1UlZ*Q2U$E_n2YgJpkIc*m8SfKxf z-Q^LJ3KH$%A0VujcM0!^=$Lg7~KtWeRRAeFHrY52xlmD^zo&arKzK^z(z z?-4k}Le}G=73o5Cj6U~afP6eM`9P!5wV~>!$$b%L#*hX6saN9Pg8`Sr&vo3}UtUrk z+Zr}_h^OScb_0J}+iCQN=Cd#B0OFQc&DY7>$x)^A#dz}*V$L;Q?akI>Hm7z}W!^~8 zWH+br+r@By6OZ5nj}3nf&0MtaYNO6&t|M~jUNN_5pH`i0e$qX#dxU3yn%rT{CqUXs z#%ZUn;kE%@lc~3D`uNg-+bZnsqo#c7@T%iI{KB`xz-U3J8wVd*D+U73)z<9UV=^@HOV;5(A&)e*huBU9)#uiGkV z+_YwlI5_ITRb$OF0Ol_D3=|wg_owZ8wY9aDs#CmOlBN!2ie}1-TeaXwf8RRRI<}7Z zMD>dtX%8=*m-SRR-eF+urR{gUL~v@XzzaF=5)0V|(HDCwYb5v~orDu3#v=Jkymdsh zcG+)N_dxe%0>{!?xb70&uE0r%P2N)Z;@Z@zWsL)T0dJT`%ED7A| zHjzG-tP)@F+S|Jj2$C)SHQ36(m>F{`d-1NQyOeOls3WlC77x`-K?Dvps>pZbB(d9Z zr6rxSrN9yNs+Zr`@1P18R#xy!-)byIZ0h5YBX>QE`={+P@_@oAtas0H=z}{4+PZ5m zTLD1pq0Cs(b*ptmUVg~@KyIC*dLN|`FJn0C(?pppzCAFBQSBzQ?!^zU76DnNqo(Lr z>j+E2;HkF{RJI6=rmlM8x0IgpV<8(T(TbL%1(X4*$;Z-~OU?El=)FyT-U0sd(Ak(? zJHbX2xE$NQjXM(=I<6VzmKo&Y2C{7G zPm9XF9vA(7m~i5UrhfgJM@iY@I6PYo4a2+)J+ID&`fk!Dd8_M%+Ok#-8pp|4-Iu_1 zqessjP5<0Jt&DWCwmPje+82JS)?0^b=5Znis6Py+gg~sC!!fb!Ju0u-mOahvn)@#G zod7^nf7I$U^3T7}Z37!V<1=)jDh_$(g4o;a<&&qv1!pT^7pd2T^Gf?IK+R0JzltPW zj$AP8{wsL<(NkMc)>-}7Qq4El=>O|K2EhMwwF5lL`}%}>(#MV&)S%oC7sBBW{8Z#W zy$R_fUdHAot3Z&($AVMiCS3_9GrA{7Cifq?JKcTrOR1IV!#5*|@_uBb{Mlo2j6f1c ztbr*ZwB*j$iToO|t~_*XzRw)Z*h%?i@!r?>&f`7yo5nHrkY=TUd^L=l?1ugh@@d`R z5~AL?IN-33co-_iN*nQGiS|!<)v2}Q*qdu5n)m5$#EmN;Yg zV0R^Q+d8678p}#LNqS~bb5_7V-|3t&e&yL1SrBr4To<_(T!4+L-OOdw!^wA%e-m_K zd7m&4$v4oYOnh@DdXKiyXL`%|gFCL)8!bvckqs1L6}N_Zn95#PB%cZ1_rE2cqksxt zVC}^$y&uheur|)W4hCg`;ms>HM+ZHggW)#>+OLw+G+rI}MRUEyM$r}`^_(`=0-`i5 z>*XM6rj;{`S34^s;20!rm)O5C_5XSg;E@z!U<^f}X(p59mH zrsjGbI$|#e`L6o9t-KM~)DpW>=Vwvxgi5tvM6ZY{6ObyetnK@;RA-E853$w7Wvpe? zJOHhbbUbq2&HE6 zp~ehX50|8ie_&{`@fdAAwm(U0Pu6C?L0q_sl&F+=5@OaWi*nWx?&yKL?IW(?ENY}; z&a=&KjNa7l!Svt1f9F>}w{vPGwZ>v;2=~|M*Z_3YNf~aFuzN3TJD5tfeO?Jb1lLq!9ju{7u`e} z7^?GOhiZHcHY7z`jz?-09uN?27KvB1juIDF-Yz;m0eEP>Cl}d>e^QnERr}buHP}B;gRP zebr6YmqiStSwP~`JR8nRGx~8c*vjGOjifu-#5M(|$0yKP{Vt@-J^A}8b(;db$3znl zxC>~-p$+HB=VW=S*5{RRS3QjbRg0swS->;31l{68oQWfn;?qCqFbt^>?tmd&IN3D; z8!?g`!Ta9$^+^@&JU4|2-SH-@eN^E9uJmYI%osYnY z_kxCt(E`h^8LQt0I^zxIL3CcVy%lNtSe-lXHr1I?*VM^*xdn%*AcSgqL_Z+HF>%-O45l}Mom_ycq|aR_`iaPIAQtnLLNz!3fu*v2T9Em zzz~W*$Kz8tsOa+YVzUtdkDRbFa8%)*zeX8ux+6<#^=($KBCka5QMy}8%}myPw?LiM z6vz;)!#M`@a-$i2-bO|}O2)M`0Vy+4_2*ja$U0)Ly(#ob6U-Vr?6i3`zzS*LrWDgE z`XJO0*bw{aTnijZh~=SXnCpmb?M=v?9@ZW|L2ZJCm;c^2K)E|G$(a7zZ1f+s#jPPK z%gf8M|1J;{0>YPX9u|=S&o-aa;4{H_f;O#(aOQpBgHs13s}sXgfShH z;ZUzS=mgZ1p&@!nli*3PR)jLSd@;o({2rR5PAr?cX9~Y(lr*CsWOVHFYSLOh%x8Sf z{I%#n)pNJwj9|e+%!xlLZ7MP&1)DhSGnE3_K#dV*J@qLcFKyz)f@5kTRrRME?{e^E zn?!rNCT}geXOhC%C!?$3D+G4!15xoZ4m?7g^%WciTlo+0;K7V=*f5}l!3$@@BHnQG z^i1UU1f2difx4sHFF4JG(N9lgrAL+k80=5Ly&XJK8<}Z4!Q@V*Z@gJr60-ptbF^~f;<5<)7dKxd~7i!PKU@n=Nu*Ac8LN_kJ8P#O=3cd!o`U?WqHy?a2B!|ZGM zsA-mO>TxJx%;&e!{Jp!$QS3Of|Gp@S4(7C2F~mf1AGys;bM4tTn045G>k-rOW+os# z_~UM}!{?fXr4!C7HoH6P4j-JW85gChCSjttm>y^4C?I@nx+5?SfzvbBDi#HtMunxi%^rrmD;;XBRjviY zd9nOEUC@EaY}Pp^-*%b<<=z>UO7z z`THTSV4Zh9K`uc%0(Mv2>|A}(szjOkV>WR{iD%~z?t`QDmk4%2Pb#QNnyvGKKfi<@ zN(w9%;B`Rw1=2R+jQ<-yapX3M%g`Vmq7_{_JuV&Fm6aTikbI z>8;qmH0m%wJO}e38+e6d;s7fhCb|V;{L|cu`gFBMjBLlXY z;m}X=KGg#NehW}%MrVznK#dBajDAx)m&(?NUM9(d{Nt^jDm%G``8GC+PJ0ObO-qTb zvNvnpS_QO})6dOE|LW^mN0hlWTN?2niC)+4C;qg1onAnbW_jB`-gMf>R6eN_xc_O`yVA(o7?z6|jCgfecBl!E9not2Yuq72lBOTEV6@h}45 z=RIx*nl*7(3evM41$*ezVd$WbrlT$rWxWjT@f>XwY=M;NI)-bIuI9jjszEL<7klsv7h)4 zO3|MGT=bHtK>XQvOlGixgh5RVt9scs5}mR4KSxZXs#&PvM{kjqWUIeW_9o2X5*UPWbzKc6MHb4-V4|AIgQo8fnml#xXJQvS zr5(|*1xtZC%tQ155)$XUC;kkk{p|?$aROr-PiAD@f0}mcC}~Mz$DGMP$wt@T*HLS4iCHb#=V003qO}q?Y&IS1IS}|!79FhQmp+f zAz5&kU{KUKlUW{yjvO>1@6f$>k=zYxQ-+cjcWkF1B`}P zQaEKB+S_nG!4cTkwc@^J64_S4ow@d~8yx}cd54`2eq)xp+6QgJ!uYZmjQ=3CTt`G^ z!ArG$ScAud*=)^My)gem?jbI)n{Ca>0vqcX+$vlV+l<=12~Eb*NNv)qswyHFNKK%6 zjFhMt%Sv(F4~}L}sDphY$}f1>h-JOZ6V9K3Ekve=j&(pX-&#HMsM!2pq!%grlK|I8 zezv3#`pty-%|^mmUhO+=MhxMQ3pX-G=lcWT{jdI@vxlRT%y)FQdK`fHMzc$z<5tZn z>R<_E39xaZs9*;4ybb>x;5ygVP#vLGrXs;8^y9B%6emv2Nej&rc-6CU*11Xg8X{K{+as2{*m#7-j2=p}K{t2j<|T0{yFC2 zXwsfc(n|4aahlgXGm8EX-M>~}Q`70J3?}zF%>R>xGUI%>xS4q}f&+~#I4VVA;Y;l$ z76lCfpKirp8?$vu^2(CuYt>pMdN`9sccy~gBFkXB9iR>=PV-@~4YLkBsT>@V;y)h& z^j!-yvQM3}R%_+o%1j)*oI#%`u}6L|oTiuA2zRGJ;wge%1bYe#J8LGmW*2DP^r%;c40ja<@7Ew zHw4xXPtV@0;92Q9Bd`7}bHMm&*DU9EMBhz4vGq(mM|FI-YI_rx@>F<&7acDdI@lb&%8#@yYR<9#2_ub$c2^H?Z zUzWfeLzLWR4S!j606~D6z1Y82@B{8s2Zs0@Y*D~WHc$T===(O%%(QFXunm8?B+hZV zV#Ue~@cVMxJW=~@RMXA`w3dQpU)mT+^P5O+9TENr_K-~cUifzomWvCl)q^_ZU;G9c z4UR|Y+_9p(h8$BjmBPCT!(*C7O89E)(ch*D{c0-CdVgyUVDHcWo0(^n*AZKkDHnPG zFVYk4^a_NExV4mit;?#ah!&%kcvo)_uuw`gWwxFYP4@zB)PZ&ubEb$JdmfbLYJBBq zsBr0#1)CKgrFniC=+Zket^PDFMamKp&~1}SgcXhUI(+{$i%1uoC;rUPFZ)S2Jd%ek z^)y<1#Fe)1#@|9P6?m*JoiaQD zHnJLhRE}PP7d;2Its^E=d+FL(7Q8!U_{UgQ5tDoNloDqVbW61o-hzzVHGU ztPr#2zM|P(`M5)?nSZFCa^!>#tO5s-TFGtg$x2U&@Zrh-G4Nwd)E`o)}2hU>}a^)R_Ye@{Z{$=|;y}e@^B#o9a?9olVht~1|%EnsEt9R3NNdj*vM!MP*c8(?K; z=)vX=B@P6nmXo=A*;hWV5G8o!CHG88soNrkZf-nr*~(1o?D0AJ=zHRIjO%9Gx5(ak z@CZq`3+4+#xd7IdzB**wPT25X!IvzsPlUc6&If?XpYx;5&eFonTlm&E3*_qzcV#Ec z?QkwEGFR^ z2`iLAbI=Tlh7C!KI-6s5_X4ag^2~vd(Ad51?a4ob`lLy@<9PU>sg8mz`LmAL4o7UV z4PIf{@}O}DJ-XJowp;tYDI$pc%KM z9<{MnE)dVEXh=7(byt!3>22UG)pcUQ+xre2gDC!wlZdGgWUDX@K-dhzI``&oQQy04e2?~E>v z^-Z?PUKJYygz`*CJY8S~^$qU_l?AtfI&5j)wps&%8ZR>4<-={f-GF+k$Hocq_b)f0 zU-^5>zmg`mHUT|9fL_;H0q;>VhaL@VH4H^Iq!!FSp_x&^yIvudXD@Opzx<@SR2)fU zpD?L(jxiI9K6=?nOsUVy6aiq90q%XAP{}sL@4ynBd&~aXLhIONVB~MG91{v~dJ8~2 zBsmScd^}+vbs#YJ0&LwnThXWbz&UTz_9lw#ZPN<}))9q%c6B=zZE!g{!LvXoDsq$gLoWQ5;BTB>Uzk@&A}hKBK05yshKw zwXHbe3|!PF?}3$0#HM9=K3uGZldwMYAum3u7jVUa`;2DTCTDy`%9ExRn=4Z91ylrQ z=R01%;O?EXz%D6YG+#&9kG1ODT}RybZuVIeiDivb09m0t&n5=zLIri)8sHQaL6^%z!ofh|*8AhaJG>or-`%TQ0aMfW?D{NB;gMI;F?)D5VE3kNqOcp!I1;KMz~ z!n{tLs;Iru9%phVz+H{blj{Z+dR@gvV@&9;kZWI_<|?)9BRlb7#WKtls$*7AqDlck zf!K>JUWqjE$a7D^-t97s9Wk)+wO_6EdER+W{ek&Tvaj?%7td*Z+0;f>MMW(Bf_~At zk0NJj+S<*PEYyJCSH(G;s;QGWA12KHd9CuIhY8(qQZf1ABAN!Z1xTnBUqYX$@D}VP z7=lLG_Jm`x7sChYRxtm5V z#Il%@lkRFI9i^IvVLJo2o+B+MD(z@F==?k`(W~|?a%>vfen7Ba7z*!(E8rE297^UZ z^hIQGjoB*sRXWuyOX8!XUY}zMIphm9v5@`wyD_69uZasO7YQSY8JJv2f#jiP?RyZvfx%oa%}7{FHSq2H;& zH4uFm0CvEbJsz<<`sIa=0d}1u{lT%2JO!g=&Nq(oG(VM=$7ak}36u$h#2@1v z#tenq*WB5!6;==I4&2>vOn52a8>wBhp9Ab%;BlZ|ewo z|JgwEJ&~7rT6V6lJYo8WTDxpy^I#K0$OBIBn*xu)q@Mfticrb)qdnm$&+RE1vq8AM z@}(I&`da7s<>Dk=rG}NFR*fP5yMN;bBIiuH3xNFH?4HO5oRSVu;aFI#uZKxU;kG|(2NBqxs3!jP?yaNk7c*n zH!!(Lf%gUGC&!*W@}7sCrL;jE?^!`sYfU-@{e^jJ z1W|SzfKs#dA=RfK%+<_|%V8d53kSNk=9*aMV=RRPhRLwyMe1`y>j+6_y0A3s-%EY| zKV18Nx%4i;_=sQ`KY)elcy%p=k!NEiEJq!)Kf1DPP zz18HAKvgo=L=4zoQGQG@`+bsp?~8UHgOCF;w^rUqPtN0EO|%p%+}R3k&xP$;Ci*Ni z6}Z5QMbhvp1tZv<;yQ-7jpE)}wBoW|q8v+%g;&<7=kCh5pbIkmcVj_kbxZ~T!iTrW zaVDe^0!JKi9np!s4{uC6ygUDP4@G9cqcH*c5^0Do)L($(VhRd7^#6Lp|8f0S%D^)G2@rH3W>cIdDVBB9wc1MH}o-0iMuYCfI*;> z9-uP1rxI>3m?5 z)o0My4s_#aN?wq(KiyaA7N5xW@~dd6e!8fgS;clWjU73wD}W(J^qR1b zC&8}}y(fqZj)4hXjlmJ&`9FrYlAFqh55L-cVQ^~jxNBPkp_)8OTsa}Of}i@ZX=zuC zP#Yu(9syn_>9Znk7yA&rzREzXl_LJBVJraR_JODXxx)A{C($kol(FcDxi3@!+1kK< z#l2Vm6uc_S*ASNZtgEEHD_g%QS}^;3u22 z-zD*|ncfApX6$GI;V=s|=*0)&X?OMc>rq<5xpnIlXWC#~X?}5c{YWOUA5ikqW3CR!v z8Z_dQW9!xt{U~nIWWq_9PfRX zHoF#LJw1j659JDF<@s)+SlUK7v{u;O7wXp$&5%lu%(+P1&$;_gGj5;NyWNNl_+FIo zTl8Vmq_(lu=bnOH>j;aQ7`C|C+*pLe1R!miJsZzfxOboPaMwv0rIfvk|Ew)jVfX~q z0HK@=KL~_X@6CUH0vK@*6(wG79KoME-(a&=Si_nZ54>rgmY3$?Kds~A!JV)Vjew@m!~H>Y&+kPo z53HrnDHX3;rCii&jX{XsR@8*e2ZlL6XB=#K^e9gbSWSZm(+B52c--uxZ^0aZ+OUcS z%xKh3!y4-*SX+c8;nupX471Aa1FEaO7V4ES85#|8Y8_vBH3uVxm{2aQ0Zw#%O|w2D zyK@Cd;?H5t`;s22r#IISc8RDqlLcB0%`R3L+Y0xS^dg2{Xr zQO+OAb&&HZFzq}KTaVqY;L084dmk)|85ilGmp)`iwQA?m%tSu(Y6#Ip=6@ZII6(cF zW1?)LoJKh2Ai)4E$^lF2_67;w47@*W^=&A~(SzI)w+c*WO|RLE!-q*EXuB!beuOHNIU?Y@aH&yc0(3MiIq=G< z?=0ja3bV@-Ze@0(*~znT168B18}}`;KN!$l#Pcmh=~z}isti5T!vY2m(^(}aYoko= zjI=sj_rP;=45}%`L0K4^w6Uf!qVDzyx-)Vo1jBDCgC?X?#2xoGKnzWt|{%(4tu5z2Ebmzc2q8v|2B^>FZdou^zpzUeg2L64JAqWj5 zvD+hQZmjf>8?@3Mn!Z=A>5kqa;=IU;yb3#|0xV|NO4|W-7wDd(XLuCW!&?o`u56~5 zEzCjV*}pX{xn*alPiJ-BrS@6I&gvrd+oGDFif`EEZ?*HV_5UJV;xU^^{m2owCR~h) z8pW2kwQ|J0(9rwlc(jhoqPl40Et2@(HH=Z_&@^9~r!jl#Lm{I(d(bu)Ye#ZVgEt|5F$TE@AaFZb8T>g2Lb#5EDy}` z)EL1I4Ndt|sk%Q2hHwR4XtXjuQ}miX`JU(m=goV0942@;U`B+Up~G?dR+Nl&%X`K% zNUl`|>qd;dEufu~ShnwhrKF05+oDJ)gD~K76fVf{I*(1(5so~0233x5A3ldp_u)s1 z3g=8*M&k9RuW%vY3%#i9^ReCv{Pf+0#|!V_t$Wee0W&?LCIA*XGeAy3pgT}!iqX8? z#$A}UsOHfhL#l*L9YU;jTUlS4x|Q?!gHO$6L(TTnk_D*S>xg$aXgfT|XE&(phyynE z@N6$9j3I}{`8hG{KKAzqaOD$dv;rvU5STK+KL7>~ipZ3I8OCKo6=D+0Vzq|u9}yZeDu~1JHz0keq!-FWvO+z_8PqL8G$&yYbX6K zQpr(h1b-e55OIyw)epYv&@2{@>~RZ?)5+vRYstG%&0S zzWPKs+y$@_FuTA}mgT{P!SM#7Di230b-!Era2Nr1Bmn1X=$Ngk?!v=phBoFR+`R)Iubx?;kEi^LuOWTE@LW^sswt%o z5Xj-6SC;q#ff{E-Ff$vG=u|<0$3j?h*@~0BnVPEvn-L$q@s)EcblxQ7hsP7^=+f{R zt;qA6V5FS^fEu;QT(yR(trU5o+U`M(I0Mn8;TeUU$TZnUy-qtf^g)Bcsfab#|H%(G z1GR8T5!OQp;>kb8I_0%Lp>I!dfrHDo{h5iOyZRq{3k5-F$5MhOUSIE#9s}>v*AA4D zW?pbPP0ZcM*-*B9^-#QD9aExAB!BjE(rvrJyDj1}+*u zcIIGNS=dqyp{$@8FHd(Jnuj$=T6t{jH zGabdZ$XeZ5y+&Sj{HZMI%g3npPj$8t z4#c*WExZGsQDf_u<|ef&yMEwqDhiPFFg6dkz?BlW$b?PiqRwEbaX5IMkvJR3mptx2g&_ zZvupeHjR@8e4y>40wS@`anDc85rPKnF4hw5o2O4chby0_ndsO@8Mk%Kj>e4Pk9gh6 z77gs${tLe3L`k3;KT7l&+G^RDik;mOP;d^FU7kDEf`rbMQ(wdSUjmbRlld5c$%NUA z%m^^RgWKkA@R)H11!mV1=P!XFENVrNqxY{8GeP^YebA>fjw05)qCNC)@n>&KILA&u zGJl3kpS9<9;c8%seq@10mF_p&fp<=Zf?7uXl}D@Mu8K{R$t|L1@PbB^f=7y4giEMc-yT+ zS%%DkdH%Uxty*OnqXbCxcLUrrxLevh`u=jdg|6wSpb3>`Br2x1QQ$MA*>gPXS3DO! z$5bFPDDoKP-$1<~2l=elxCfF08!nc;Vkg>PEQIOQjLt>4)hZdTkC|-@;bQv~z6sUe z&_IC|<$FGn^s-1Gp5_4f%Qu7~uSTBcKFtzs*S<2Ewdv|OWVemhzmAxPF+9niw<46$ zIbJH!zeQig&0eHDd63o zs-M6+t<*Z>eMqe*)&Nov9GI&hAdn>J!cY4>jZudG5Qg35Rko$^J(5CN2)Y3KqraC= zMf&}2bHTvDv|X!?Hgg{~(7E>1IH3GH92N~!aZhZ~T$(rQw;Dg1JKOhIc#9C?H3lX? z#|z`j@{^d;+9u3lA|JQxc+)E#tp2x4x6Wdo&iX_VBY3gl){CTg7fua!WUdAoX(Ekk zvKLqDo^@v1Q_Fz7SOBK*8KFVcOxSXTD_4b zX$)6?7|w2Ve;`gHUg3-%Kud9q|<_gLO@_+%)ndjis;g%p?RETW~+SS6zUcdl#~Y9wat5e2(0F zcSWuRz7g$|_HQON6gq)*A@}(|31_+qL2L`05%rbUwI-MsG}p%e`+r#RJ&KXo4)iC> zL-C1^F{%HZPQgQYPzO*WHnZNy@EHu6@$t5OphhzvbEsox*2m<7b8VT%H^Et;)qT}B z9DWT&5>=)#^9rsX+by_6GEd&NXV!^}C6zMeC&tabB6rFsb1N_>4`36*~781;rI0%)cbp^JeYsqE^Aj$E$v$t8U?fa*wc)pyrP~S4a2su`CRgm1 zIxPJ6rH?l4bYc<}Mbmc{YrZJx+N~l#PcGnt!UK}7wMZNDH6|+0Am)WGE6lq!+ zbEr^Ki1`BDN_~Nz15MJL=3VD}=e*Gk))s%E4-G z)BB2*3&$IMSCbE_X-G5nOn==YH?eeei}#RSR5Se4Gr37!+KtV#wGVw~}72BPhA0@H)>4RA5ltioHV( zI|ghdZuJPTa_0_PgoOBia8M|u7LGE~{CxKbI+dgJ8EZw3HE`dU24E9L*d~JeT%dM* z@fLWGO-GQs0uu%GsX58{w!eRSuKa8X9i6&>H{N9`YZa&9ys(Z4V93osyejqswVlp- z$>ieD&+t-9q{zRafAC1yxo2Yc%>JlklQv8SRK1#m#f`SQGL?t4_<_0|FYKx>-T+Eihw%008TUC^BE)*$K^ zSW9~j=>c^pXd~ecc!ouJJkG&3;kSWqbwpV>H4~Nh)~Oub{iv#~Vk5r1LH(MUNg{Dk zog=zOiR_?k#z=u0{16Z~!VJSpKAiM6!H&cq)W%+n2)dl8uDb)V5U`F|7HNLYe7v2! z)lHh76OtiGpJ&BQ44ympc;PftNlo|DE8Aj;wSSXz|6x#hGtKJKi4|x zGbkh!E03W&ql=bBfo%vazb?Dg8V2e7ws(eNtK8(nFn;70s<_1bi zmzcolwm&Iv9r4#HeaW`qBw04>Cy*Bu>Xb9s0)+S~-Q=0p!mTCJnNrXz4!syR`&)33 z$iyS5u$Iw+-TSazabnFiXYKw+3`L2*FzDd+MBNDPzxj)^@<6sR{Gdq;|CI(k z*PWod`+({ivyvZxx;t1F$!=>qvhY5}NVu~sDs6A;j_CV31qJMN1d!~r>Y?tt==pC^ zNBf735WT0K61}Cn)59pm74-!;j?b(DPu`MCeO4OSGrwGOH}u6mzflHUQfDNdXjY4J zJ5?pKxH1FRu3O4P;TSCRbuCgTtB8*+&)Cb&jr0cCrCo*=&wZ9O=X!UU_S(KbF1@X8 zvDk#RNP0rtECjZTG6B{YdQhc--vT#2V)Hu z+?I$qI5-5^Tb@RhU?qtMKqSYgp$*Aq)X&S=65kPW6Mf_(z?eNH{-CdSl2CcX9mu8Kxlq6{G3JD2hBrEBfppr2lm#OjC^3C`%?crB!B+`B57dvs`Z`}Qmdhc3EI zY8`zIi+H*=lc;Axqql(?XN$SHPnYa1jV^a--!17Xojv*Ec){!}N9Fe4O-ckaB`1Vb zL(CxTgNHK7e?1$8+xW!Er4gz}rSwmOOqK|JuB)@Q$2Y_`FImtm_8G*n5#>0 zX-fBnHRo@? zW~BsdO3o~pPE{!z8G7QDKl#AEa>C`5XSU}CQ?Cg;Qix|8TZLx2Cz>lvqA8;{N#r8( zU&cf=I5evOt{xgPzCE0s!}RF8c5A9!&&*eTZ6Z7O;pT@{4qMZ?C5*wQ{D5+dGP#uu zg;>h^=X~`ee@;|Q-XOK%#FY=@;5pvzZNdSe@xjpj8He4gHl<}ozsnFOz{0%$ft?K| zovS;~jG5a#wsKHMZ6oe)N2Q5HI=8uwJ7VSeb)<{MPd8vmrDFydmZ;?Bgmc#Tkvg)6_sb}tsUVEKcNQPwF8-X=>9JJLG zuC~35$#;6yH)cO1*F8U>Q&Pr^gwWj4kF~u^=4x^N$?c2omK$D}{$DntY-2W=*R?PC z_RbBLj()Fx(%NAcJP%uc1V9VCEE1XDu~n}XzZaZ7RB%e79JZSHT_?YJO$|UP|!2Duz2zU;0@|L9-a7TsC`Uur7DqeqbSihir#0cZD#k_<{h!E zZOd>?!IN!^+TPliuL&$*!H!q8I50 zsnFrT0*Gr$eUxudy?W1ICfD%*V?Za1k+P!}zgBqxSo-evVzLe4(_t#RVaw>N+ANm? z&t}eE93?qt_0~Fe%wtPSt3&4DxA{`=*KJye$aTaE3mp7z!Nt5wAy4M;CEt&=u>^Vl zycPYadifDOvW}Rho~2?$X|Q^GsRkC68Yyc>jw~tu$i2G#P(D>AFu5T^^5-~DBi6*! z?Y&1i&@o@tZMgRXD*_flEY+X0LM;)V9k(*1;HhKwxl0G;eI=s1{A-T=ag{uGv3q}I z1$k24c5C?rq7cWqSROu-Q1-zRnZozd|67bk=(D{Y$)K;QVGhDiK2QIa`U@!);d2sg z(pM`y9J7sxnk1gb+)Da+LT+)HA`CWz;rw>q1oj!QaHSM45Hl6#1y?JiOUhc^9(!Wy zN5q2JT;|CA^xae*nk^MQGGq+D)Sy!)veP_1N``{MbvKqjY{TJt^Y`@_{dSHe~92yhPe9>ncMwW&(q2ESj0UDbPY7%lA<4QlJ0L(|8Bml&5| z(kz@`)u%75BZ@xtt(rTUa*(UCWyrOqq^d(xuA%mBE zV~nOmV+NW_55H%9gNKXCUrO`1&n}Pf61-+5m}irntz0h?7B2oRW_@}u{OTh@?hmRo z_KXMBJ?8FKi#&@g_1cagyzuV>ebl}Rgi7qfmiRoQIj$q5VC5VJ{9vD`#K76K^K_nNzRmEx*9)AZDJI|3 zIZ6T4vu`)Xz{F%L*rjz;XkA?trcIf!y8S&AXn%DRv(0o1lQb&?16FT7Xc0F&#{q=N znsfoe4wxA5gzFf}>Y*Z_|0I6g0k!bw`-ra_|tGDOO1iv@l>V81}6hsbeg8cWSWq4fWML@Fxpo zK+X1_Iw_4}@1g&M)`uwZe?#lRe?qIsk?yE3&;|bKW7F4`-~a{EdqND4PA5*%K#k6gK#O@;dqSQEv-v)nm-!Fv6MToch>kqEG@3iCK98hG5(K zo(sQxlt7f?>0~RR+(VE^FsGMqC6B7nZ90s>|2Q$(Sv`n2BGIZDdf}UeME}zlttu^M z1vpa#ftoc803IHXR+x*uD7~6Aeo({!4dovsi=ri8dv!pF75R_U{%@fPt1hnVh}B(G zU`AI1iixQ@GUFQjKi%31eg_ew%)JnejWNNqHMP|)m&Jas?l#o?GCP~8Qf$7DGkuvG z5HEyJF;B-fId0++(+Val)Q+M(6)(J#Yok%j_y1$Cp~4hyiPGS`w?D&W*mWO_{4Ov| z`Lbyk<5fSB_9M34a1Kj$%-juF%IHs^p6Q-JHi*#wM7Hi46x&~Qa=cb<9no^K1DH{k zUnq>IjE8+WjknT-kDzZa?JonOft?RgQg*-0M;rX8QysQu>KTu}oqj8o81pg5GniO* zN9tp?W0SA<{~+zXNMn+?+z%Iva+isH@jC)!kssitnFrB0E`g0FZ1v0$`|T z5&zt|SMTR%uP$)(EZ$K8C_B3xx3uMX9QC=Y{KLm5504OCjM}N^SfShqyHH-B1;*}D zk)BXWgxda1Y6+m_2>IdQs;*nJ!VP5cTU*3A7yqbx1uD9=huQ~`W~ng+TEj_Gs^Gt? zuK56YNI~~IoIbC55Rh;w!Nm4X$~+Ao3z+r86wYy@1hAZ9X|&u&7je`%Q(aE!jpUoq zz>A^3B6GiIJ=)CP%g4Y~-ru=IQWj{J5VFRf9zPab`Q=fVkc z)=|>tl$X=tus74M=BJRz5>5*1q|kX|ETP_TFUhGhsxxfRv7@iAKfs$m7sf5OskD;+ zwx$?7nGhvbAZ6VhPX>EV47xjR9s{!aujjxTnQq_Lo;(yp7Pta;U!3DXAxb}mK3k(- z(8+|>pF;D>Aa3+rwc<%i25xaZpScd?=nXg_t}N@?J?sc3iXDH>J$Y;8k%dE9`kc)m zf1^?351hK8IOwumHIcNqXuAqSSF#aSF(*Vn~@=7MJFpMn-Be=Up z?2j3Ej5;u(kR18KfUG^_tbWsU+@~dAyaX`IDoo6KVkjH4#XuPQdy?<#q>H8H zr3b$_G^^+6wz~N z>GksQ8mk*$j;-^$ZiQPaffk#ngSpb9dhcm#xHn9w-!~>CIg0x0>MTJ2SKDJKH+luh3jrbKbJ5~MJYyKK zEWe22YzF&#Dt2;{@1GIFP?vS%Da0`%d?=x9g*>!mVCUiQB}3DoaRxDaD$vKKbx)yA zuToK7gnKU3wQ+aE;q>`4&_c(LQc8YS%@SBExZ%)n16RY!H~t-U^X}4oMgEsggY~`) zIM&fq0rzymTsmPqW@42VX?)qx&CoIEp^yaF>+t{@()bo}4BlN06tsA~2pY2DKDMFF z$ZIXULCS)~S_%SU&uXw@O`6gCwIDbeNAj!Me+nJ>_ERWfkK4P?g7LZnPuCwo)sWX> z4GmdBSDar?>K%z<#2?_F(N1(xWUi-Lz^g_XecOhS5qLFL*642uLp&o3-V3gkr(1$C z$BLay)M$MKkvxj?E!0Dfmb<5f)r6%)HjQHj$IoLfV`UUblu5LVLXoRvUHXi8|3JTG zlZD(fvrxLC?kIT+poKz!sH4Jim`6Y&p(zyCy%(2pa(Hhrfb{L`pM(2Q#t<&7FN7Q|Rq<%8rjFMg^pgSF}#ra&6RUo}De zMJ*4Y1tZ*o0RV`?uhjV|G~w&iYHSs@`t_8ZZ%Cde8?;(M??0^{;a*Xzdo$Cs*vGT% z;z#n988*(~fJw=r)^J57DEl`Wrm0{}HOiHzW&%fXj^mAaX@#@~}-BWh-^N^u8l%Mz9U zNCx}y0kc4H^W2YuwD+!|1rq`r6T}NNcADVm{S^8T7xYu;N;qoq!o}g_{}KWG2LuRh zB{R>yqxe2o9L@+a(0f@$fs;l@yrL#TDpWEz+e~k>>vwEcM+0WKSv55jKX^^KHqV$- zkQB<6JJOxVIzOrx%Jm+aMsD)Y#fjT^28KS+@u*GmiYhD?GsgOO?Gb)H&P%d7gwa%Q z7UO*a_!T`$c~9Gb_x?PSU14-5Ytk+{Did;dxBC$~XIaF4>N{pYxOGnSz|~lrwkMk| z&mXyf0yEN$B7)yaw(r)!pQpf~j;ysT%UqaPOV9ENx-(`xR<~n5H9|L9_XA)dUcsaKmF~gV!XO5kJ`Oq`WR{XYC_`{_g6t8Y9La!#j!B?ZRB-!buj&;Df zy0JQy1Pv&@nR18t7F``ieGh}x=vm5G0u<6*dCniqT}$WNoI7;KT(Q{uIq zri~?p(4?KED9Bji(q;Vf46Y9B%Ssrb&uXjGYau-P9>;gsxN9GJ=^;V84Ax=Zm9ogD z1=H^Z8lCw75;!DxO+$IeaDx*gjGiALCRA7+ZOg>K+brVe#~p+dqq1E-5K7xdZBbH? zGinvyi4~GDDngWlYic^+1dC8BRuuUm{s>ZH-lwWnCX0W)smoX~uDU~*bU zG&B{)m=-W6LT3~U^4=CjcYo~DRE$ssOpkLvvgxiaDWgW^VE7ZX@4rLh=Uu-S4G{ja zc7DrLXf>8V?|oqno)~KT@nxK`fd^J1` zi@HQ>Iz6wo9S9E6Ga-6f5wMamxTG94eti~ZOgTXM5$fx?PSkX}-M1Il1btM{`v1IX zp})m^r&f>({00^qeb{Pcu@m(?#}O4Kimpb^AN>Zgw?~37N^h53fF7W}`h5a?vNkA_ zP}25xegRLN{a*DdrBw@7CeF@r?D?N*%uArZ%Nq6-_%q7^>$C|*Q|>%{Unc(TkQAdg z<_^`JMmO5*W660p3KZx{$we#n#|6#BkSH$hr%>z|NE9!NSn*^vz~BS1g_IUY*n&G1 zN)joQb1y@UH70%set(~&U;W4gJ<0GC5FeD0^(gj%0d$w-eB~VXF$B2Co@QUW^YGn8 zt-r#~-mH4)FMI;!T1rMO7`RK91slt+%_V`P{YDn5G59wOSjzt^y1R9;r)5zFpjD8j z&Qto24uyu(JTSfX4GbZ?GV9Qfsw8qGSIalu#y`tybBD)G3o!+E5v5Zr-aDteD}azt zpR*C31HAz_Qs0pI6SZWb9werFOyz9ZbKl07@v0*cw&M5?vnkQGu4;15FF#EAORQQP zAe~4-pHl@mMewEe*LkoM_&4wpXL$GDX2422)#ATG{DR$t^q|ZVx){{lAEbt^tW4Y$ zt@@)G7@BOdB%AS$O!n(huFmFB8tT0zxL(~%%Kh3(HWTclUVcjZWUGJk*G)VY_ zVp@>M(F20b5rsM?9C;-jW-wP zt3u?r%J^R~+lk?V8>GW_M3hXR4A4=twy2c)+ z=ARXAU@+Zr+?UOOyT}ivK;L?@me$j>XrxuS+aMvyzhnl2m;A5Y%kKOagwKDlL<@7h zH2$e924^!M3R6-jC$iu8u3;sx!yW*pK?^nXtu2(SF#FX4Aw=jFREQrym|CiXkqxi4 zSbvmnnA)MN!cR`0#8^XB9~e;K_)E@VsA_LTKni@$4Y!SJ70-B2*k1gId}zwj?8*15 zM0ppElAlSb7JLN3K1Vk+1Xnq@go&cAj<$z(aJSGk@VFOKQn;~3x&36#ALFxQ)dYZ< zZp6?(CgElerbAV?fFcE%hrF+263wY5i}JzBsvd&V-EJ858$r1fGoS5FYq$Ktus;Rh zhe7VwMV5(4+0Cs&be@x zTpxBEL@&g^%1EwU!7#GV9@DL{XcdAgLfuRMTyZ|g+i$GjZdxj@MmjN?Q5k7D!A~C3 zoy0J`7{NuvXc@N#GOUIs7EYQ_IH$PhX$dtZS2!Q=N3ZC-?W>y&-<${aXWv@268_&s zbLjsvoLBr{C&5cYlwRBr0#s%^5aH)rrGkfuqK;U*1QPLp&1}knW$Q;!Hc7$e$L`8a zR1;9bndTm2Vd@aDl4%1&7~az!6m^xYRa{;QNQ1w7d$_s=RS`i|es)!frt}vAjsKaM=0uYCbE6h>yAvg+yQZvtU-?Gh8vmarGO@8EIz@H<*N*Ls+; z9&egg{I-4WYI(vB?^E64PaeE|@@o7fgg=IzBr8Bw8K98K5clX#mWE?ExA^Tp*d;%x zj_J`f)=`W2qmkKWcHVL~C;ekFOQCd9_g&O^uJXu$bc3OII~O;cRag49`xcD5H3>~* zpQ~4T#5XCLPJ}T`juCvGNe6w=434SKPZFd*<=o2A{SIW5`};w)IS~lW zOBJ^k%8`S0ysh*RAXJIy20GU7l)mrZ-3k6wDT}Y5sg37d!*Vb#fWN8|HQWGI9Uy4H z!J~e6LAf6lPSvLySiFGTFwLXCJ-?>*Bz3*bSo{TG_~U&|c5wLMg3`iZN;5&!W|8~+ z0H3l6qQ82{oy7|FH4g^h$@dC)^3a8%ERYB^!A5-3I|zP_81$`=bT&asp#C2K%rRKR zKnzZt>B=QEk>!gtZuD2LEOn*P=i%Gmj|Sy?Z8d{LlLyMNciFLtIhp*H!t7!ZJJ&6<}2tP;cbxHEmTO7EEI?S z4MiYBehQTsKLsNJCh5>uTnJPWow)HW?8Y&vzJ-uKO`8Ifv$44B0Mxc0sK=>>X%-E3 zykxkBWmE-B6q5d=QL9?ZOGl3hSKG;V=VT3T>u=9w8kv_-z$n`vttk;_zh=t2ZR}xC%GA$amzd)p+hUkn3)PwK{ zO%|A>A=$+rU;`nKPDE37G5gK%ZTa8W^m74Fo(VKT?#mNJO(Bs~$N}3*bH()nb!t9l zW_XC$n>yTD){yG2SQFo8nYU&=X5W5=^KC1QN-d#-Moy&vcfbYxiMTM44CeKpLR?@j z+5}{FuI>=<=}`J)xHe!DxH;!#0MgfWcfi;`;Oes0JiX&NH*$;KefvOeqf$|%Q#ZcR zlp{1?4>3O5-dh11<+{Y5LXRy8pMf~T!~pCiY2x%yFs#{_`CurRw)A5J#Y0U=PLi39 zrsQzyR`@)4zu_<^2OdS=|H!xq<1*cg3D?QfxVaRLMxn=2ytR`X5P0Q5OZ(O# zwIET@;svMhFMgsQV^RRO1)%)pZ?w2ux*vt_K~-inFB)jea}4E-ktK8!4(Cb#0b_qd z_4e5x5>1EH@2lB61iz29RcuQmT$#nh(em}U;s|yF7?lz3o?>1(H1vj1qEZWOQ89<_ zt?^V?2V;lqpUmcfCcw6O#`~i&hg4HyQA^fgEyRxk^=aG!Ic?f(cVMiIVg`d zNv;d;G2Uy$tk4Up8PtAv0P_tx^QzDSnZ9(njoJ=c^^~OrEs?q z6oO&u>kN6wcg3|hG^n2g@38rGvG#3-;h_2k*bI zzJP@WjS~k1*35NSL(OD2Ds$;m{PyTC%gN|CjaJ&z?S|G7-l}4aF_?VhTEl(*!lMaQ zpx+<<3hesE9^((yu1MylrViLOkDDqN=518m$=gCOf~vX$d7(g@FAem8M1xh4ZAdJH z*@h~-KC5A}?B(TJR#X&m5;d8Yat5MjKVHSTC@9YSm9})y_=M;Po+>z;sR5;lOp{FW*Gpvdxk4NZira_#!9y+s>ll(iiPmaY4EX?44X z0*u}sSiWXPoVoZrrVtlW)F#VscY*Y4f2PYWyaJNLc7mtWYAV|{_BF5a=fPL<%#q=vmmS|41sM@qVT8C%3=hykOKXC4dl|}A8YyA_Q><&^(?;!6?&u4#wqH0mSLRaU|ja(e6Qyv5|owH zXVY@C{>~#8zVGrFh`(FG3)%$}`5O_LTn9Q;5pFoa+LJeWCr}M1G6mV`w&crV5O#@M z-o6vBlTPqaYdVux@A4=>`>GKpt@EsKHJRzu1}mF}(}uD!d0oV6M92|pa4I}qW2jox zZJ_c7PGZ{!Y5#GhEW~zai0$#%y*{;WKVnQj`Cxtns=NZ?LkOr_vG0)u(!s?~5o`SI znomdE+Rix>W3skD4*C&mb-)PpE?4XL_G0xv>m49^hC^|_OCRunb%;GUg5#{U;J(gz z&&>KS*_*cbe}w55d{FrMS4A*FP=iO87TurkouQ)Gzvr1$(m>P z@B2|b2k(-e9pjwF`!G!#FtBTI4^ivN>X_y>;w{V%H^s)_$Bf-Em^l)&6nr@5oq) z#WFK^fu6{Z-MOH+4Vq>Br82Qh`zvcDF?Hh?yF<9hAEYr)68mawd6h+=yA$xLrLy1W z!^SMx+9aD|*2T~;4W;;czV&ABfaI%n&>_XgMq=@MuRIROTdoYe1Az(q2>>!bej8(r zE=mME;c)qcK(Zr`0iR z(S&8XDYx|Cv3dcVgA~f2w6qee#D6iKfhFegM-+PKNt*kQBzI@Jt^Lm4r%t`@&qbztQLrff3yo0R` zXu)f<(iej-cDs}&TwsyIMuHppon6ZBV~=kD&3C-(HeX&Ct3FCPjyx}5PSH(2X!F)w zXHaU>=(=N#Q5yv7!<0qjJu11FjtWDZgm_PAU$HCfj47qdP0;g3r$ zgCDPx1`od(?+FZ)o_bsf&`c|Vg8?~C5?r2Xzm~OG`s`_SU;R_NwR9S{lH3yIyf^Ol zPmef{Onekf?krQ=k5crd!8=1|85|7$7)xV0R<=t8m4F*y=CwY97 z+(1J!Z%=xrzui1GatER7jiY1Tn89abm6fcpsut%zuv7miseh#bO!y%^0{~8v!kfd8 zKVx>1c@T^c2+K3)S#E3}81l)m!zLeteY0T5>|NIlrRYAjr{(5XqRm|*^yN%8Cmw$E zY|Xt76p%>VSLfH#q)>oVWBx{4!~ejLH82_;u&*V^m3O6=S28QVcJ!Xs^c8uU$$h;i zVlU$Rn9#WPCwlkevjQSpco&PbuS9dzDUxl;PH2CH&k(eMdzN`4i@DIiS19Nz)bO*4 zZ$r1^h8K317sVfxi!lq$+&My1rhrMw0NZE6jPdBP+jIO41z?19-@!q{h^fA(6bjee6L)ihIYYgL3!vP3P9$9Jfi0K73U?MkU@#aY;r{y;tRd_4W0+2ZpU{ z_fu%ETG#YnxzYtxelb8(M^GX?a#vAJRFY zqmVEP)-0p+_Hn^r1V0C>RSU>YH*Mo+aRvOyF1(WAexQzHNlcaHq)d0qc$XAOZEF}0 zNSLqNvHbP7^;SjKgtdU(aW{@DG0L`M?V)5qRWhidS6)o|@W+zZ%>mNYpoz1`$V$!e zSab6jb>;ZJ>Ei5OD5(2E{rVZs*Go-#IL z_ZxdP3U#q)(hjfbX-B-ORXtd=K|7F+g0Im6}pi>>QF)U9gDl0K0MdgQG+UYRT?nNh%ELi9+am({$h*0T^#!* z(iZf#x@o%gz_N46`Z6LM2nkxu8aH9M%DPs3<6LJa=6LAHQLDGpNf*%CK)k&pD*-gM z351XSB%Q7`C*ApAA^}`AfbqP7T+sx3)bQRn(7eX)B=ko$!NC#3$y8CGCnbU?MZo&h zKnT42(A=^#=yvM$Q^?_EYR|pbn+?xcSDh!l_^7m4eD5m6W<>_Q)(%!T>DKp_u6R<1gKGBt#}g+jfo}YW z?G_U-vAUQJ=njvU*)-Dnk7r4SZKoguu-W|@T*6^<6)?CUKJBJUkP8p372>76>IDWwGwxMl3vrP)xfq=-J-ETU1mfuPe_q5FEa z?jtD^zOiDvlhn}?vO}?9)V8a2njy@WgJY*>`z9V4881sGe$11&&b6lgZ* z#sJ==iz?xCVst?9RD!jI7(e04hAS=k_E0lsUwT2o{g24q8w@f>Uhj!)i~NxMhYY|+ zi%?JO;FdC4U4Qve;<6XkXV~$4E0NFZOCs?V$eay8hH(>2-Hn!jw}`=h)YZBVZCZ+a ztwpJjcUF%Db3led()pN>n zMsiS&H%7P!DFH_wf5$3`nyt&>muEI-HY2$63$6?JH#!XP>lcGE=d$tg&Jrl$6m<J^D(~zg5We zf|fHG{A$#qLps1Y=P!VBjK11^H83BV6ZL=7|A8eH=jDUs9SQ+?=)X^FLemiGQyrRw zXxI{H^2Ldo<5vpUWG0WJ= zGyjO4LMM+AdCR%M{~3tf**k4m8qZeZg9EMzuQXnXKT{^S z82#-3S;#7WLw)+H=Nmf@sPVNM@J8gd_mGm)DxxDpLa2-(4Km3P+zFuK> zv2+qp(8o`ty@K`?uGvj`(YbpyRt>2BkDM)psuN-2Poa~OKsfw?2G2?#zqxoJA;}Af zOO&G)#p?w2hHIJAXE&*(=EGJjadxkA33KtO(v)(NYAc9Kf4eb(!@~F$o{CSU*>11gZB1Cho-N!^Fgx*QS`b<*XAJ%KY z^+=T1y~qCgZhZQpp9iHmG`hX9HOCo1(^uo4f7%Mp#<>k`GTb$Fd(sa#Jkh_iQM^s! zT49gq&HwYBj~?8ppuER=YLEOW6 z6@{S+*V~taJHyk6D`*b~%nS$U>xp22=F%}M7d39j)dPRTpK=DtT6_>k0)R5aJR^MHw{p9^NksNkK|z?Q zob^lu>I6m&@+b0-OQV+Rsc*AhzXJ*k+q>2d4bcQef1}~AeHtZ^OSpVm*wTl^DCGVR z<0EXdwAjP6+oCODY10kz*o;5L^1FGdQBkkTQ^`uQky%Hxkt<_kz!x%3-F_^XYu2t# zNg2GBd|dQsgG4@}`^W(B@PGZCN&7S1hf3Rkkpa!s1*}XiZ86sF+b=EOXYiyz5F&Yr z&2BhT7|Ujl9M*UliO+A|QyX>cPSyw7Fi=6ewCS}1H6}>6#pm>zL0yE%0WuqoB8n|O zPXK?9abMH>?M*kjnBJW?XmbWA9PCGu6z31?UIQBYi4k;93LFFF^z<6Ptqa(yB>KuM ztWjb1@4-K-f$ zzr(MMt;U5EC$P_s&Pq$G>2>R;MS^-W{T_)qAp;pZ#w0R+=^!Q0x&bWH;hfOu%dl4_ z*XYv-OR|gBr-46qC}%4*b|5-Z!RT zFC2?HpuG=jHfZ>;BwQ)v^%=NrYPdnM)yR+%zaMWWW`0ObBf8B~!Sy}S;E(2g5F6QN z#Wx!S`7$ORxq{i^-!;Jv1jyeZ>s5H-;_TlP>lrB#<2t}$gOK+BQB7SX%PkSVq!1XSG;b8F62MYP64?wETk& z=+aoIlsU?;C?Zcd14GCvf|PAd0BhTs`}0U`gGraQAOqJrM7>8@4I6{e)iVPts{s1; z8q4tbr|5~I%0$oJ;~4mZ+7fpkv=MJ&F@S9?3u!;pp_y7jjqkj7GoF6n)b28WPFNaA za%xea7F)HDQ0w(uJrqe*f|z5E3^6@>!mNO0M&l|#cb;fh&XK-;%Qv2WQ3^^C8{)Uk z?joU9G%K3x8S^)3TT#>VH6W*87fq21{J79Gd8wWbKJ_OvbWXqw0g+hK=ZX_4*!y4I z11l?s3M*o}zxA6b&8I)Qr(_je8~kbExJ)4k3@7|tp><2Cy@RJfBTu#kGLsTlp+-3| zV!58-5X^IUOYfFsWmKV-_atF>-Z^`}3wNN_YU~VsFV#^esub&SCWFzU+l!WEn)1z` zC-D5r06uM}yV`b6tumHu;9i6)nLmaa9$@M*;@q=Ij*$+gxV6a_@*910LdELjtoO#+ zZu|)e#e3hkGB_)I#n>Au%s<4{hG&PTDU#fMtn;3?Z`0dt9cz@I71N~>w4v+}n^)2L zS4e%w)k}6WyTvBitrE1d(u9^j!d(y&1oY1FO0d)x0KMX*1ec7WLJ0rbva)!O!;>xLPe#Yf z0)Gk0SQJv$+)jv{2!de^AS0G0Gohn)6NUof8pEXXZi7K?H^-*(9TLf>e#zbaq1k&L z*pXu3u<&ubeFPCj-EErTAN^%M;r1Ur7zQu?1kePH#W!syBBxs7M*JWtl*bmUq2h;} zlOBK%zOK&I2l9b<1vy-3)Udr)evb!&0%?TCN#uw<9@u{V$E$N!d0$ghQ)_Kjf<`l{ z%aM<$!iG|0bb0&SEG4H%L)iB1+SXT?{?p14#1u$&UepH6{ow|G|xXqyiWF;%~xbuETe!tWP+dcNjRHd7x+69DtW+l zV-{DvZ#R%+$zEv3AC+Nh%$P-tt6kyOo}6e>_>3+_D>G|`pusPA-Smp_hj6U3rk+5dTH0yx|rJIdf31dUiOS46SZlFfPl&C?V zIbpp{ye@n0ZAGFN7qr8rdpj(vv^)xyqoU(>LURhHJNCRlMANQXiqz-<=8+zXM-0vN zM;TaQnG?gVQN@WF9t+<}v8`dE{TTZ_c@?~Ch!{dp zXQ84Dj$NO9?N6}@Jxh(Z8EG+5GxORVjndQ}s~hW&KITeF#+Lty3;t1VA|d7v3k)UC zJ}s-T-@-~ig%Ad=ulen2Bb=ktU|Gw!uY7zyY!4v#t`VC!7h;z2%@Wsa zM)ij*Rph?j1jZuBg%S#=Q7dYMuI=1QPWIQN{SG;@hF4ioy z?Ws~mwCWoAH&QWI7jjP|p9AZt#a%LVgti8DZcwzuZJUHVj+o>~rDnv(bTpMk8ag}+ zbXi);Y5FtkppYRfV_A(Xikfb=<=@s_l*Ds5z;e{+0DFTuW7oEjC(!+9RckHpEi>i$ zJ_T%;g%ihV9W#=D`Ub!$jv%Z3e2xwZi|?RyJ{U)Jy?+Mwx7H+TY&K#6)IZ*E$i>h_GbeRz3 z4_d^8b2OTVpQA^K4`10^9vI}<@RAMoxSypB5$E@sTqz*Gi385F7pB1YPJr z4sI{Nqyln@^99|OMB{Fo9tQoQ^@W3}id-}tIbx}Ix}+gQqX;Knk9zAS7GUjYZ@yW( zQKQ9S`R13zyg8?V;Yx*tQ$WHMG$-aX_Ps9)M(Vf=+Dv5^#_f84u2Ge;V7l8*f2@pN@Dngvr`aNk4P3(ll4zt@>;!vN`s+ zcVgN!#`Lp5nM87!J_(IcRUJG6(GNAbxJ-Xb-$>#nyDw9HUP*o7d-SyXPYd?~JQyFM z7rTqNJV~^6v~=|kJ?ZFkviwthmhV+9FQvPVlMBmeu^p=vTyEYb46Q62SMcCy;QMy#Udx~J>F2^~0Ry1^x{*+;j#Nq1sZQ;I@R%M%jT4Um-8obt{Ofvg$H$YGQy z1?XuqU~k{2t;c)pjB&iw*DWq(rF#|H4%upR8b$SwwR!>kbcN##HC9eTOM?J$Sj=X1 zOt+w}eG#-P?n0Djd?l#S6@+F&9}w!OUtDy>Pp}mE z7Fq&m&j!fM{A$i#?r~pCfiU+GUq#@?fdqD(Jaja_1v!5ZCjZlpQ+HY*L6`ij(+L*D@JKjE_QE*a7A1WU))1TGn53wKcGWqiGwzIU6_L_PH z-MkLhgaO5*vzC42K^e%X>SbMw@hrD z2b`l-N8iiQze82z2ZI}61T(UlvDQ$|whR8Y_-~iJ z8%SRwgr<_AMSfy7H&& zUiH_$A-aZ50@FzE4MZOc~vV84J<(u`&OdUO@lKFP4;n2fjX3ghgiGhmjn8 z|I=Dw z1$^3z)zmvY3iLG>e;7QvhTC!v{nN#Tx!E9)YxoQ|@B*-?kM*Fsy_U9t_Vv{ya;Y1~ zlhg>B^_TuzWdH3?K)A{nuL2HMQ)H`3eK%oP3fW-x``oB7+X929rpc8R%LRc9a}EOWi#M`Zc$6 zMfAdQQoFv-*4}I!uX7y_$Ttz+Ykt%_EbZ93KzYIeJpQLpTpM2)q`Wc!BX(%gFa@^+ z$&L`Zo(vMHuSp&d;0&56QHC4AR;AMpmPeF_)$fLhup$`!kInq@0SNjwiOtW|8zOQ^ zN3~Ywd_iqIJ-4YqDA#X9s}>3c)VG1yYhVa?JsPD}V<$?)v7_uA=)S5sIoGesyT;m@ zMQgVa^m8Mq;4Rg$NZG!DF2-#kAniAl=Q=V?p0ZSiQPDb}^AKbcJS+2C z`Abi2hd#zB2pY@2S$pQD=+Qv5IYtJ&L_iwMhY))g__YwPEQ#9mVs%9g8&v;DLEYd1 zD#2vyM`zHV5PBH%xIhNa?=1j!98W-^ylLYf0}qyaQQ7qWM98x4`YZnkNdF8>zk*XS zp^Y|gw%7)(%z|f5KS%$s$(%!${V2a~niAI*RF}1Q<*1=FhO_|=R20?pW_w2*5j95k z@rX6}gRolea-d`Gvx8$6Pc!jUxHi7tdCaBx!Q+h2o3MF;CC&H?0FC{83(!p^9f9CQO&p zZ?&1L%RE%5GqAgIs;<@wCxfZzPJs^**>rgC8$6Qt z#=r;A&9~vAkxZ`k2t^og)JbSxF-X2;^f3}@u64r2?E-p>2m@ZcS^7{grrej?3snVx zLz~G3p#CXs1Fym{&$A=o=h+BJ{OLzVLns-zOygvCpPI9DqMz6H2rczs9cvd5v(E&f z7oQ$q_dBYP!i^PStnl){;JnMC<_fdpK(sgk))}T4wStxe+nDUH{0h*^f&`0d#X@rL zYC_Xdcdnq%|Go)OAlmEsH;eR$|( z?%L-P&TTu`^uR}q*t)Y3nYcaj4?Lxg%=E&|^h3C8+N=neT*bTs{vJYGASG;f=-H0% z25Uz4;%-?yBpql_jckpu-EHW$LMz-}k-Z9OFb-D9E^xysP)P$gKrf9fP8*6wGOZ!0 zNhe@dxUYkojaoCZCjlp4SmM1QN7FgNTf#fwz6JI}x^VM?^Uj7{Bz+-d_G7?D`0u9A z9t5;l=tHo!I?nQM7k$L5fsvvOQ+_Rsv{XYXnWgAApLVmvEg`B*hcD5+`_sBq-GEgmG9m}1(Bg`@}Qhw|p{X=a5V`!XN`$hCrv zIz!N&fxYjd;ZA519LX2a0`nw>7Y~9ENPlMeN`%ic#K_$=_~NkR&50VLn!bulpO<56 zB=UEhdfPnigO&b@o$VW@c|gm02qaJ@#=U_im5PK2Lf}DG(}o7;dQ|wE9676uIcEr; zR!WFFSvy&;($giFb75DCLEl)h0H{2^&j||XhG;3R2dzrlXD)YmQO7Dyg6(r3w;V_^ z3~6Hs5P^HGx@mDmgp5zWg6m(p`3ykU+LjdqF+2hW?9KSDVJ8H5z<;#*`TGw)qhBU6 z=wREZIt5%~ZQuk=Lz**AfdJ7J_UBo=t58l`P9h|^&GQEYDrxL>Hc&`uFSZ875pF?M zU=brK97n;qcgR{>14TC-@W@A~#4OLV)d!#2P*TJj7l|zk2%eAbM|Zq0XFIrx0))lE zK*CkskAzi0{Z@-T4#&K*^Pl}KYY4g8f8YF3drQrlfO*JO4D7+1Z~8{4jt)B4#x}V; zj$nb)dT29~8~}W(_Mxsio@Za^hCBw`MlmxBEDOiC#ms>p(bpD07u2cS=kL6;TPDx< z?Y&x@kO5RmHz8j!WF;>dY?|8K^GxZwIat|h=BLmIF4V91ylpRj@8?^QA97qpQ$I}%okD+3XhhC?B0=PtN&ZG#IUyOSL3;b` zD1=ghhUQVrr;5QxT#2S2d|RG;2mGf@V@w}7CZL0R-rHooF>yyD^ z6u{=Ev)C@wwK*944K*D_;dfD1sgVeLB=k#j_={OKVv$BCxVaD$#sAPn=O_BEOoQl) zDv@qr^f$AkaPV#wuK1jtuv3?`TLUISs-wUTwmQ=Wd>lPx7Qx}a`+T@dm^a5$NVK6+ zI;MCvRMp5|`x&~NX$I#}@XFwTyuG(_$ZvVY{g;Z$%GNxmvzi^V%9q&5sE4R=>sERg_yr z49sqocKlpnC7;^oA6e6vEe#Ho$!qiQz0Mhp*I(}(gE%AB>hYdm;=dABMu^CUQb54ge@wJY5K(yqM+ z=GIg9K^fSGGJRlb&3m$Vp>~i|-1ud}_w(3W%6}l1-4(-{zc!4!Nv;4UM~JYO(8*wW zL9->CGakUiGQoPP&7R4JU$X|A8v?!9MBdDT*oy&Vd*h=Wd6wHOwTp2`})t*igtQ*g~bk+RF_Nx0|QNLL` z%5%s&9n-vHV!d`1<+qfAHLQ**4AVpl*3z4CO|=JS8s7!mf1b=STFn+i4{7suuJ7=Z zwDJy(0|=7zQxCsKZujJ3OrH&zwo}1+zkePCC@J7mfyw%#h`tH-Bbf6B?+nkeHWJ!K za57Ve>JQIq*qM#R%3AMnx&Gv3%Y%Ex+ef1h-bv~Z zVwmcrd8PEKW%C7p_S%eC@X<{jyiAmTqope2*!o z(K*&?zr`-zL@DL7ryx=MkNP4S`W&}Ft|cym6Rbe?*pJ~UM+n+}bP@i>DmWeG?1w(I z0oGa2-V1d1k`#3Jx(RK^tG&UWgw02YtKH8ZPY7%a#T8DQ-#DS22Fjkc_}h(q-)`%( z!gWaINgS+#t8at%AZB)w3#1#!68`pR)@~uz?Uz|RO0{&!!QKG0g4rWnS#gNf{s1?{ z=J%sHcPOAM!ZgDKS_&PtS_j*YSOxo{g#71D6nEV^=2>m8fw7=PwnTgvxB-k+I>oo# zKqFYwLu?}GDk8zst2zeN1`ftxM=C`pEZ=oipfVfX?py~ApFe+AaR=yc+Nkw(kyg#F&^=|NMl3S%H|%DnWo@o!Ex()>{ratSywPctKrJwL!S&493$t} zb0wMkmWy}KY)=OqlH!l6ib~$gw2CAUJ+)e*_p7d15@!F-oCTlYafP6sMMtK&mVa3ac1gqN4j zeIxc0ra{H;J`o(@VRFb^g)DRWI5Xt6&P@l8Bl0=V^6U87jS?ph5}V47sIFPy2uiN^ z?FpYSNNA`81AyO9nigRz%P%+wF9y!KOtl1(B`DL;H0w)~YnOgWw3_YiSOcd9e!dMj zvpyq-a2G)EiN)WbA&^rx(;fw4-Xmo_83ojsj41_F5i>qj>)y=&$K1QeL%DbTbLBD@BQ5O{oK#<`u$$t?;pQEysBwtT-WFNto2#zz257+{7!_#58AG5Owc@2 zS2J&K&s)iUWtlf!ttY8RMXK@Iqo^^9%WPjO9TMA>nRg)r8RKAU?V-e>EGJw`PC$5O zBtTFA1Tn%s5Tuc=$0Xh%j>>?^T6Bu(!$Q0nA1wqYyxT1VpZTD;DRM{+*xyr! zdS?Y#9A_03MIP9;rlxOu`o0&Cw#AvM$4*@cw5{67$bSmBE85h>5XD*&v6pS_e*dlb zi+p>~jsaev*m>I&KUzKfJxjts|1DA;PE^}`;Fb2sx8+Hf2%pTodqy60;9OHjLW03z-IA($T6~x;+ zjFl^3hVWv0*q`ze_N|NQ`IWyUh*G$*ZV9V&?D5!@*!pqfubDya*9v$f3Z*2S$O$Ur8XJ-jNC1oHiu`0S1-I#qJyqdpYnak^t#$yqiGbX?$pn)AVh3T>(ql_MNz(}QL?b6e>RQaBkpbq`L1zIZ}1Umw@3TSoW#jH$o{E!uIjY0`PB&P0ybIa=XiPO5o&&$+L1f*1S z=(aGfPq;@V(o9nDblv91eRjwIU6hkfT5cSYNl`1zLsPnkwTE-uZ5ST$%}CuoR*Qwa zcqY#NRX17kd*Y(To)2E4ZO$tBCFHTUS|3Vsua31^D1A5n*b7_N;L-=F4kFAj7N`Of zJ-FVP8}&8X_)eb}$(q+P9S6}iXWM~|waZC@#yq6^2jhjCSRQt3h1*epBklQ1gJIYf zfl01?-WhP5xQRU71FzGgC2@!8wB5KRbR#pI7LtdCVvAo1rENV56yZG*<_%-I~}{A zh#&Ihk#@0Y$Fg}DPA=r}j?!P>zn9u>J9O^kSPGD!Tkj6wIAm(`N^%apYM-$wSG-J@ z+h3_DTH)X+e`$GOj;)3K%rj(=KI+Qc3DnQ$)N*9PNeNI>~v z((9W~#(}ynm(=i5b@W~{?iO-^EDc`i8E9_}_lF-0748VQI#pe^t~u8$tz4Dn@2yhu z5_ZVy_^mJdF}uDJ_TNwVqUv06JXM-v$iiB9o#AUDda$6@h#M;5*H0yKD&u~$!g92? zrfYWtf0W;aZ~x@jOkGZ)fE>QFTyvo!{)Spp>dPB!4dSRvge`Z0H8G)2V9?k`3Fz09y>k?J?a*H!Cg<>$w$}UF)S>g0vk_1Za15aTybi^q-m% ziyr>5y6;TXDRWRaz7d&J?W7!GN9xbKfc$0D?gC9ZX#vh;Zc6(Ly1f)`EB%lUZXv>W zK^Dsceo*1?=axGoPG1d(zxzuA4(>aBCANZBlb~D12t*|Bt!>V!6Sl*{9ZAmUL{Aeg zlP0vV{O^f#QSYwNuo<$z=K95#!zr*#2Fa->^+!eI=OWS`enGg4_j&zVYJ%pj<63zT;{@N|n7z%gB|B2$hpw zpJvu);R%I@m&?|@FLdxMdCzm6VKcasW+gv{_+%xM2HmxeTQF23j|Haqg z7UBXE0+nO*d)XYcxh?*DtX4wQ=BgF#b-pW+*)Esu%Qsy$2?Gl5zum!0nkvPR=U){? z6lz!7pYYd%63p3g)?XVbFIefyC_Q5r&TxJ!wf-M}MH+@as!sj4^Q(=9eSqWY5F@NJ zPiBA&;k6sHVDPse_E8x#BZcc2x+T`TWnnxoA%0$>cY>^Ay3F6J<;Pfx;h_BB3>`e= zWu~%>@z%VfJBL=k+mhV}LFS9UOS_uSXW~+ool`n$L!Nhs>5aG$o+nqWK23TU`gNVAT1tJKj38 z0_N%Q1=pXu`&V%6b7H=5_N5ve%$G>cn;h*jU3A=JaYcRxCe{8;>(vGE^vdG4 z@T~cXxv911zy0QFtmyG%{(jB$8JG;Pn;RUuGU|!>cHjcP&Xh=swTgBE!nmB4%_K(( z4X>1+qw97cMlvBuGW4kSp~YHX!@IwDRv9kf>}~w^^0#eziSy6@{hPEhGJPvdR`aT& zA9@~$`D}qb4*k`A$y?3z_=DGOd%T60md{RV-3v#_nm#J;ld}Xui-?`l*vmAFdTx0A9n(SYT zYHioie}zKszCmrsbk8x97YQWmpTy5y6QNa>`povbAO|K7H#j&{W5pinJ9Vs2q=`1L z!blVPG|^n}Us2%Bq}bh7;-!$?{_)t4ITda@gj2vF(Y(~mQbt(DFS+4$x9m;xsB`ju zgom@fIWPbL)Wqe=ivw>n0maCtCilda5{nyrERf}y0w12sM zh}6Q^uGN@jeU@X6`XZXQh;nPagj_Ev?{2{s(#KfKh2tY`@v8yv%R2U>rKdCBd!`dc2puGgAw2lCZ2WtUnkXkLew|y1XwB7CCaNA@ zOLhhp2*1s=S)Jfi;DPOFCJvZ&X={(;A`{{E4)LCLkgbp-MHc52xarqp=51y z(e8{&SLK|U)%S13OAKmecrOabtyDGUO)?`&^ABxv034*fEWNgHQ(KxZ=6=r^&B@Q1VO?YXY40H`Pdu^_>4)ydv zT$hhagN`|5PTZcgP>Tm3C`xnarq54&YPRv|KvIUNrc%pdXsqyOm6B#F)NZHeJTE8+q|G@pXtzP zo6ElX2BReU>diQLB>9GFy3lAhzTI#8sD?~nLk;`Wf>IN}_|5^Mq2i2{ae?*qYpGEV zqv|!R(&fe4s+=lJsd<(kw#*IdE(;76c!!mXM3( zqPqROC(o9CGjTzj>1tT}@q8DQgY7AGz{;DD@41%9dCB@>uWyP`*Zg66O&noU2}=;y zs!>Bv`os~kzSij<`<^&kYjJ>*6H_z&Ey;s0t*8Sg`?ge(T)o-&2T+$&{*^QYJe^k3 znTMw-;F}>2ekE>xQSFrNv|eb4ylDsos@t()zj_<=$rUFJ;XVX;^TiEb^Bca$Me@Q$ zQLV^izbUZ?*MAY(J|0}3m5G!C6M@wJ4CS;q&14(&62S$P@1U5;6(oTLs`XdhKw3O} zOkwUSxFBfp~cWeneYf&w=3f zQ=)@4Rwq81PtTt_vLC2dvn@h%0cZwA4J9UN@O^3WIJQH5)=|KdfMRx38)LHHY4%3` zpsMtxi;nCbAmfoYrI1Fp{Z5|IIX08j4XvhmAjdHdXP0RN%jwi3n_6U9$q}L1cT&D2 z+udZDhyayg9d(5NLRTY-iZbW_xDhi@_?^*hrb_cuXY-W2u;x{K)tzI*DP1#%Bx9+s4Y7^QNcRONR9IOMWWv;_i5!3C zF++XqeLBKwD3ds1@vXWK=`5bv@RAkQDLG+vJ)Rcfr)IUZ^Q$@Wmhq7drO!gLTuhF= zi~I0vLk)#B8Bj=@8?(dm(p~z(tvE~MsI{q!djKMm)xa#dc%dd05|bwJ_2BD13IzPo?rpO#XNp=PJ(n1oDQV5fMq=y$< zfPZ;Vc%X4|t0>dz;MFb-k0fbC&qnjnLfzrjxz}}vy7%?a9{b$Z3Zjp1!#R+5CKusv zb`(~J$ozVHuv_xVMcVSSd&leI>rU|1i_ck`_LjMhpUy8<|7LbW#N^f!D=i(kWrayr zByd3z-xCSV)aHh2x1@kL$K&fyzXnCKg1E;BVMJ8cjB5kV44tKhGehR&7+ao#AIHdL5)~%zrj+eTij6Gx-lsZ+}+2J3zZmiM42T8N+ zJ@Lu=7HyLud*qwKn;o~8ZdB?HRyobC45B{d>bjhbkIMhu+UYFWdAZVqtJE>F4)Xl# zh2QWBnGtVzH8+fjNcSKS?BlG{*>!IlwSAGN^?jc|57AUzXtb~Ud}4xsk8cAO{=c}r zOD$Dc18Ho}ti099O3^^(YrfL|9kBBJn&Z@mbpU0+}DhsY91|4rYCp`oAyinG!wk zy#NE@RXmWDn4%|RiNQk~>%46KvIO0zmiMv0MW2{He9OGI_LpB&es@zbxhL@(DSOAm zRu=CoM6i8@XZdFl*~x*DgU!wx(X_1MN>*aSxufySFa)2r~Wsw_VG; zq|KJ--3s)%-I?n6XbwGN9nKNaOfDH0#EYMlt;A|si$_g#M0TyBR{<>lCj$^ouv^4! zqMZEO#OcAEs^O*-0wj&)POP&;Igd-wQt1zhC){#l9>r0qy`pSKQvfMIGb`_T zHY5W!;vCk%a)u0Pbn+*}Dq86qg7$`gk+rFSoM009q>V)*i};%{;0*v8^!ydA-5*=* zlPNkUew4vF(|Mba!@g+(l6c1&dP_fe8SmC-4e;Un52WTtkf&XJq4_&CCGify7C6t( z9(end*;RUQckt9wo(}Ha`Z$unMOfBLs zcorz|Rt=~-m>^cN0O+3nw4`&!6>?}UD~_joo{oSOuk$gT??`gLQ$2V=90 z?_=#Aius)hy&ZK#u|ee23vk7@tQMPoo2#so3{*>AB!l#H6QfMjMCz!R$Jy63q#vB= z>4d${6?#oJAJ4WR-jgi^VdhP<-Qd&5?j6}ZY6Vb~U?*xLRHSGXqJF$S_PdvN1LLP| zxQ2^0jsjaQF$X*#ak^Jtlmlus;yWgCSUa*f%S45;H+yVkjp~_D?y4lPjm8mHe+C(u zsKbJ);Z{8H*rHs1DA$lZ`Z1*(kvGu|pb5!UifItZcS6M_gFse~em*lt#+8|3oCthuH6%tlxm-2HdvMfQJ_}sB6SE?P_ zCRhZBWD-)o3zJ5PTv9cQ*12Rd#N?-hS$=CCVOWWjO}4N0lRZ3rxXv>bX(CSo`HP%F z$YoY`DpRykg>EFAw4%gYzq=MbD7s0w%PmyFYfn1kvN!GeH`3#16NP z9wm>{TJR@#nEu-;IA`X}QY_&Izf@dA`ewr;itkE!i+^EdnPGPSQ%qb+`2|32kH-Ka zV}4CGn|Yy_`IBhalFrj@mM3bi{KejLauwPjwHpgTMpGOPGT4^PP2zOcxBCvj@}O3N zQg)Mr$(3Hl*xS@*E{V1b4&mDZ$y+*r!Y6I!bI>57#PGg}%RbzgDud)Cb{NTTPpdvb}|BP8zTSkF`+1 zKo{Ic-mWZ>2Th*iEC_1S7I|Emv75c`6IR1AK-ILWLIg`l?_ZteBJPaoHM7IkUYx=% zf~I-YUz+C4K-XYQuk-_GS-}O4W()hVy8r1M_z&?eEs_N+0ULmoRt!&JH)Bc`|3#)8 zW&I=8z13VzvjTiVvU3`de=Ifq?A4q zaV8MvUpek|qi<8eX&|25(e^X|)nQl6--_mY3%#hHjE=^Al?4A26U>{!98)8)pt_$D z2U#=6W?LNHFe!N+QnQjF3qwuY;tMOEmW1#|%O&6P$)SDVKk%cJPWWsam?XGRmY;lr z@R{cj(mvY5u3&ZS?mkZEAL$w?QW1pv;pyMtVLgwlAWu)m5vN^sj?wsMSfL_$K_6mU~gWHf~l;=V)_W_ z>`jr+%7m1G-=>2E4F8`JgjRX-_+T$mXNUCDMU%_}Xgj~Kn=>@UYdVA$@e%JTACF=a zI({^jEe-hN#viZUoZTUYcJSC9%Cc@rK5Q_RYdj;@hZL|y z4_MV4;X0!!ETNZqAcLh8K-!I7@A~5WT2(7sc#zKYD73$niWg1h#}T#cC8j|&sUL(u zdr<$$R%Bulh&U@ZW7cfG%wP&K@S~z6i-Rrn?yg@z9AZj>&@&>f|7FAaRH5oa*#_zl zqR_SXXb@eryt6WXk}0r>016xHreYj}D5Bas*2`vF0Kv(V*crTG_wFB79~szz&TfJ@ zRz(t;OZhfWj+3t%6Ou$bc;{(d_+`6#2WGY;c&6EbYco!cAZlqfXIkH%ZDswZBOLiV zmEj{GaK3ktGc(R~hsqGmoHTgP_ZYT5X@dE$K+PfElqj+T5eLqia5b5^@dFpzE?NWS za6HeVh9O}bYKRnJZ_F!# z)Q{CcC&OlDepi)jqZsfiD~qjKQ`0Dm8~h$x49gd8GFOg^bv#k4Ixkt%B}R=M=NfYY zdCvTe<87@E{vDE{X1ty*W#tl_UezRfu{FM6&M9kMGb+}&yx zWUx00yuE}^GF4z|dl;yu&Fz>^_%V08f|vRxi(Z9=Rfp<(>omw;9L@9{ zUF0-gLmUW_jLQzf7P*>WF0>TwYa%uYOi^4$0&&jw;?Q&9HHz=t{1eoXu@C0LB3H@B zYgPr->G~qP3l|0OyN)tG$-gG>EXW^2yVpJJAx3_km)mSGDu=%Kat^D=+j8xpmbveh zzB3By<3<(&TlOY%GL#p}vpWm$}+On5+P+7Kucm~y4}gXF-8LzUk0_ZDBX{;;fh=Ktz>e?1sUc&am;D4014t%05D zF@#A!^i-F(EVYBh^Q8@w`FJZHaafm2x<<;es(k1s+)yi8{afoy_|3h)#)-c!R3jb!?|qXt~c*&yKa6T0bw(EesD&g_zAvGIl3wLiBdZXOX(TkUB;M z3;2w16J7X%Ur1d^iNqHzx+S|70)eAU=f@gHjidQ7)_t|a_BFS+?ZxW_I-Pp&9JgM= zKsYy5{7PtqA4ar?oem%#FvO3wS$T-Vns{=yctjyKiLE^IK4t!6--CB{udTXD+GMkJ zADd;6LVvslcMJ*i9}XAlquT{FV!Cm#aAUx*jgZJzRV;3NazD#5BgRaaerM}6mtJ=l zY14B`0gVR29Tv|6aF`W6AsSu&)dX~%20PHCz6ZK2*oK#Q1C82!N{h0dNLLvJCLR;{ zYnagWTH8b_Yx%)7tQ96Q6!5iI?L;yqr+_|Yh;R*3f9IPj({e2e;&o~@?!~AHj~3)W zB56GAI?)4;+j|&>BdkNZxU_2o-l0-GlWJbSATktNLAuf8azDAuq%&T|lJRR)<_J3zwexzR{djzu<@;_m3+HQg*NsAwu0mkSyT0@){(1R_qCRH$(p0zf- zff%po8Q!}Cu_E4FBY$9n7sMJ_7v?yt@@fy@7l`5HhHi`eQPFa8H(-)iuOa1npiaOd zppm)$d~sv3M)QyR~%A72W{+yR>{MUxSI+fH-Dn+?9Pc#gCPr-dlQMDrq1ac02i z;j0}gR^2s8DIVBGkmF`1dpfu`iCJ50IfG6Rh%Bh481c!K40KIlg%o+EZJn1-`cmiP zd0{@c?7y6)AO2L^%vayL%`7huH}jvuR^Sm%5FVu2bVTPmA?xm?^G;d_JTHP%(SM|o_v#fS#Hyd96cwlb@UIo>*Y@;8f5ONaIZJ+45vEp3x`pdK%2Ybor8hKGN zQ2?Q6j%5n+J(_&%kfa`+XN*&rQ#wT-Rl+GE7p*_zj{`K{!v=TGe94+P#5~B<`?nV| z()ce(i;%9eL<4b3nJV061vz)YGvP1o9&~~X5mPWv2{6z1Mg;}M%_I2N)pskNhc!(^-nNjl-NZMgLAYi3EX&Ts5W3Oi`G`285KvajwL1wnNjxh% zmNy>Vc0}OUm;qF?&W=~rq$QXfMYkZlvP`!G^}p~-3#JxunQOP<{9_5TCD!(}p28I6 zXe2PFcHQPHD-FUc@g0)b(lYps*_0(Hv5VN@Tun7XC51cBHn`KeM`axst<8TaJi0Qc z7P7*0yHjz34sWB?3US-kMyd=BkkHNNHIHD64ASqX^pS5Bzor9jsQ;rEX2X0>A>>aD z;Yjy{mHZqi3*1{e=Q7E~Q=W42A-rDfDz0F6%8`>5=(*Iy}w* zsstGUB+OKogq5ygYKR|`zMY4i#x$CMTwnIxc(G=3@vS$bIzxWii*&p*P8Ssxhu6ig zPZ~cRrzPT{qdbcqki!n7|1% zeS^_$_md?N`!ud@bEZ%E?l#au?!HEupm`u0iY?L*9;N6vina-VMbn2Njysp%!s=FS zDKUH=SRikWG&$@mVNQGMkOwKxM|8j^F~OHvKHO5VU7JATJ2-Sy_Es)&!nZm@`oddT zdU{;2O?)R`dz#2(xgudxhVn-OV=WA?o>PyrLq=ORW2+bfeZVeK_My(8{G$TdhhoO? z(GSyu-DHuh6t-}bXXwP&xPeIn=+Zzmb_kRky}34zN6p3V>5wPthFAd9I1p!;(}Pal zX_OGuTnI6Kxo4S-=zus;bWG!h{tl(?VR1p~Q@~2TI0PP^wr7fRUPZuK^bv(ZGSmSo zWe}`}G2ua2g789NJN6uF5bZ#fcn;k z{{SqT?B7r4U;gvSRzzshS6bti(RciUvqr-2VQq=>;-r!g;U=^bCO>%J(r4mDds-;l zeLcFDBILw9`Pr}T1fKRVewpgiJ1O~=x^s%j27to~TL>AIB!B_s+wz#w1B9HZVMpPn zf!u(?BaUWOK~J8Elb&{x_mf&~ZdliFE6n(Tl~c~!px@g@QbF03BU~?nj~a&Fy-4UF zRK!Cl5Go{NoZ`+(2d@LQ++nqfc-N|+dtaDwh`)E=cmB!gM6xK4meik5y=84mS6U4R zXdq*Fx8$&zKToDA-hU{JqAgkFkh#eLS>lMkAK~h5c{{S}iVrb%Nux!tFNj}o4=kBt z9)QxSi5!@uHeC3+^RS~H%yyLSf|0CL;tM{bhIv!*a|g3(RK@nQrM}H(g~#s0$#J&H zar;;SuIu)d$Jn`O&~)%y#ZM8Wi^hPe%r#b5y2&c|#>eoDn@WPa$Wntrai`GQZoJZ2 zo4DgnYi`~;y-Oi4uV{PkO|u8T<8-XwZt^8R(LXeI^*ANF-`PJX1T=QTu+NM!ZB!n6 zJHHUSLvB->1&Ff#188L`v-xY;a->!tX(SE4LyQK}AE3Jcl4;rpMyw|qd;;P>%y-DA zSJ=Y2%z!CDI&9gi5ZRO)AZNXx^`XYne65j4@F6eWsZ@tGxHfJpNHywT+v}>a7$YUm2fge@%4(g8D9ri~ez8Z>L6r z`lW*CiV)Ya)VoV7wyn{qXSQW-KA6*xCk!E)7p^GxmNt`B!|ZCdVvN)iP|*C>N^g)? zAbr>oZlR(Rs|2y0E%Bf6VC!+mhDfIIDcpk8Dm6k@GB`F1 zPFwV4{`jjG98Y6)<-=&1y>QE^SVi&ZP-l0hndu8YMe*K~+%7LS2aoyraY<4qr*q6? zbIg?Q)cPps)ldP9Y4OGuHbCex_zFJiO0DRS9O~wJIaoG}PWe1@9CR{n(|_EznQzm?2Akt635qDlDGq__N&HMf$gz@(?MH0oQ*7W9g74$`tuOzC#6yG^^0I z1}^-?t5@wgC%$~N@KT^7b;~HFV{^Zi`k{t1dD$OjO~!KBiCEY{@=Rt?y&56J4#NH=VP`r`P#y?Ar)?aeVS+lFB(& zSEu)EtLrPi+3r@PE04uH?910EPn0W@-(oU{=a^T}T72!Hr~+A?A0h2LO?ktOIk6e1 z<2N(VO4&aTOA%FsPM)>BXjS}$8;KS)TZwq(MH_J64n4Hjf+ z2q0LE(cqGV3kdz7)pVo%ALC0(tpwm=qun6S&W^JZtLHOy;Ix{Rn4nMT;bi_CxUv`O z#?HID@aQj0k#vvXDm+7bktWLEjrWWK=lb~<^b=RT7^548PHs=X&n?(kz5MoWKhH(d zE~@N7Cva!;{ls_5G-q|;4>E3&a){-_T5CMsKmRfRc~&bY`!`Nj157|qnX z)DZ=VDwl7!x3@JRcfoXL0dWa8ZxyVT@q%4JYiDpxv3nt0{G5PwY}1ykiw-x}=Eu9A zUh&FQJ=<(GO-)TN)TtkElXn!@^)VJ)mQdcCHF4lx*YST02?#-98>-W*5y6H|Ulx132gGiS6Upi^L>1{mR=tpf9M#W(y2&?;~R zGR;XZYCoIa@mbz!X=%~R{FUSO9j2>@zFtehb_qN-8JAqpiw7*?DlB`sE;Q$(ng|$RWW(zFOtoL}i;w>Xpj9iF2zni8|& z4f0>{ji-GM#SKi$DH95h1FQ+VCxvtS2$Fxvs6RgT4Jso4-~>2jcl~Faw;@$@Wb^y) z$q_#`{})m1PYT8knLmbH6psTO{7D<`01oqM`f^p=GTdvrcpq*fE~9XRIqo11DY1Nz z=~C^6+LX^|T)p@bWFBqVz;6@fMC5BP*A9?}7FVA9Ya>roMiAP@EZLShu&NNhA=1xR zMTCsKw~fj;Jh>_hGPvpnmGAgIJ~JH;#9UkV4< z?#dT$4<`A^(*?q30ppb1+6Wzp@1Nw?A%A~0a}SSDiAYim!SCjjXs5Eh2x7fVIc;2# zCCt5f#9Dx@fLwI(XwOJW;3JDv8qpHq|J-#&1uPo2+Aj7RTPM2q_D6V!--VwN%ggZS zT&^E8x<_T%cE*h7VY==foDnXB{$2{Va`w7+F8u3~=?cC$Rb)5UZ8-lCwe_dOD$#b{ zXxEphYEBqs2gOgj{(N6^&4%+7rWQeK_Qd4tFb1`owdrUu4|z>k;zglJy8C=Wn(TjQ zHNKEFUM-}6TTpvy#bXJsvPv7~--;=S%|zTReZ2hSMdRXTCzlIj0c!lL^nYIbb+hYc zj9#DpN|{UwZPj<5&rm6`?}oL$G26QQA$_JvU`Xdk;pF~a_9F;W8@(s=LpKZJ_%%0q zXo@>xBm7uY);1 zrhE|3A3X=-zbaX{KbAIMKAt?T9Mwd$0X0gY+MmwpNF>BeRrTdC0xGS-d#< z?FG2?^fP;KA;^a^h-b?80Z+&31^F5)w;&~uYcU)wRvotn&FQaS-+sdE8J&TL%{AzW z;IQlql4jYmFM&r5DPNg_NRQ6pF@be&H9hEQ5IWiRHbLO zA<0Ajfk5H(Dv$R&bD1u1dd;nvHuE?r6pRf%QfX$^2oHIP|dha@l-3rm9D0oYUg=QGmY z9~oVHngZeVh~~cu`JUdMws=TLyAhE(ILN0+moiIqmWDzov555jECH2-uu_rvi1fD= zLj*|o^u;Y&_y6vLbSGcj%KtC#mHUt1OXqmuOszY$i4|q|24k62b`pA_X1iwqtM~4) zXSPthv}w-Q2Bmz9;o~#f@N%1_frM>xkrnEQEJ40|{Np}SFnL-9V@A;m!_~nuJujt` zEO7GlPAiY`<0f4V-sKYvu*Ql3-^~r^nE2yZr*)dYo}&rh}7${_53{~_lAph z>NG5v@Z~t|pR|o5XSvh2yeG2-@DIfZZxa#QZrjm+jk3Et&>2R^ zuYE}un=g1ctK6LBVYKpD7FlV>%C{EbDyMI>UOtixlPdmIMmq(QbXaQwV@P z|Mx{k{`Xb>kI&+NVt6w%JQa_JIjrzYEGwdy)EzK8STyM|JYQwH z#UY$Dow@`UMSpk*x0b%x0y-pM!>vWgm4q2Zvp;v@Q^85Ui^oC?4`;XPI+ryvlZy)J z;sYOABJM06LpmI68H!Hf-lUPA62UqRHW@INw2?HX4>5n+JueINbzsYEasAX^oQr?_ zDVag7H>yHg^tVIW;4gf3Dx%c+{wb!cIDz#Is*N@hOf5k$2c3w8G3vARS;Ah_XrZq0 z`X}XX3*J;ewk2H740^|-i6Vfc6AI^e!|A-icmJh2H^%Jvm0Q!Ot7w<>ZtSc1dG!f# zL+p&rbNWvg+^Y3%9^PJEy2Ll(b$BV03HDzi_A<{NSFX6YQ@-H zL91goS}PzxJN03xoXN>W$?0UL>S!<7!@xVRc60v1e#I)50aR6 z;zX}uvoPYwEmElwgRYa9_VxypvinLR{^CFkF>(t)GM(9H1s^-v?>g zKaRW}NQzV`0nO=6CqL zA3>V@7rL4?P8z8WNE`YB^>9-tk=x|A{Y#1bf2fe#GNiG!sCL)X<$MGlsx)P1yi;US z$D&E8=>-RT5?jWWwu$7%*==PCu|1MkSzU>U%p^I?XD2McwW?{KI^9B%i0$IUa|m3ytn^?)91~`v4(YljYafR%lay2dhVx8_-a#9izi~J;>t7 z(M28%sWnX{tJ5w0WwSdvYyGfTM94C%4V2|Kkh`_{<=@BIY|K$qH#y$3N43tIb3 zC-)GKbGu|un@z6g@$~+vWqti`e@Yz3iTmlYj0H4#aVWL~dt(D5(hOJ&KmVBd zDG`xBdRy@%pAbc{cxLVs@(i0Im56-E&*b=c(MmUrL~c^g@9rz#uQN|}~ z;zW}jSSM-jBS_zaJ!ZC~^x&5TB=3N#lnzgJMMxOOd>r^UwDbh>7YkvMCW)-gKsL+G z*pU-Ryu(O)TQ_(Lo64^W;(TD1t@_3@DRS+RvQY8fnce(ki&0BnHi#6f9~SP}YvfB* zm`iwk+*h1av3*qS?f9v2$;#FWgvGC{kBd^_Bz#u_4kPnJuwOI!gs zlEr=i-YBFQo#PK@8-)H82Bix3qG6yT9Oish9?kj#c|BHj7ZUe&CRN zt7tQCq&Agy;8fxAS{>^;;)9zD_E?+uPL+3kqt+liA24yigH57@Yp_;U4yTIT{)ww` zbL~|k-ot4}o{v|skKxSIlG@W@wuuMlIl270&B#rC?$~H3rb_K3@pi$O(e-X@X2%7# zK#_0ACIg10C^FxWNxCUoVA7QCv7*l3&p&5hwhpT}=EuI?amvfosteOaT_J(O4M@2i ztLqkvcbs#}WErn4<;lPuiY@O+syc?}F{)XM%)HY-b_OD)D|7a_Mwla)NdC~fH?n+wxv>~iBc0cxAEejZ2?=>`Z8&>EG=;YH?AR)k-?;_g&Iit zp(Yz1t5Po`;0TPTyTMo?+RpbXev)$bDtUwX8n(JcKy4zIQakoSmhAYG-T z?5W`-o|3txd=*Ki#6ld|bARHe#Fs1(pU%#Xv)er^RZ0)HSSvapoD&wFDutM(^H~x$-*yc9~=^;h(DFS+O z=YXSgsmHdB)b$nVm^0ojNO5LDR3K*^XVtXx^UB@Ge2zIs?`Mdk84xW0XX+g2>X%Z;sj0Oh7*g_jLp zdD#fq@E8tL&ZA~smitFEbtqoX?CaDIK$aIrQx?QMLO!iuYw~+rJW{S~OiZG7GI+lc zhdqU-L?8g{(1OW&j(sna$ZK9RE@KfsJhf#@lbJFD`SJL6$LlMjeyeLNsqaO$FgUZW zhgSK}q1&v6Fwf(w8n3m;-77yt=6Ig;r!RW~JNStyw8qOD*~4Z+5>jcz7TN*5w&6&3 zZa^^129=&Bntf#DiddUD<2&?F!5}%l1BRTdY-Fv-9~@+U+>I@Ac27twN9o@SuqKP;1WC(Sd#BjrV;{7bZM&QcE_TMr|z z!pq(O}{B((_^xv-q{X|x;0fQI&P%5^sh-!@R! zJA%A}SX_E<%-H`>9pdXJu!W6C^GK#mvBn4FgRm=q3Y!1XQwPmbvkg-cpw0=!?ieL5 zab^x(DvUfy9-o}`#L44GOCW2|b9gZ#0`G9u`zunu7e;tRIhS`rg}B;kk;h7b zeB$}+$6wk9kn?mbzOJvMPA40w)0!b;%Zcb#U@zNTXYufRA+1>4mv-obcxf`rnAJT8 zw1GmA@A(1nwGtEF*v^#y{`R(xD^r{();G&m(h#C#h($23!>Q1TpWZ@KghKB$^hy-u z(*k*&*s=x9nJ(F7K)ncbjw5VvFJq^`ki_6{k+eSyI4u+^QI7V`SraBUYkJFU)Y8_vD}G8apmH!+&8s;Bi2OwG zXvYz*RXHRobF0o^U-NmHrM$AcKo)SaN$^w#t^-r(YDdU36v<2>+^Bx`Ag7}f=E+V1 ze%{Zv|J}Nr8)X7DOX1$=tot>jVAW+VZ`aL+lGPn#kxZT7kvOSLGr*H8 zFOszpgnuYG@;KnvAtw)$`Mj_PYs(VWzW41b$qjUJJ0HYvn-?mGl09Db2ERv~09)vM z$t)p65XnL5mcIa{Cy~jw#6PB}%~Ig+L3IU1CTuf}{zC#iO$4PB*!V8!TJTo4P`hqg zB%)+IpX343}H0q>k?EYpR>c|%b~$A$J3T%kCu zObXN=tRgs7-M-F9y2zA&bPFeyVp2$Z+xhf!*+C+l5=hV3utORppe z6k>l$>@lD1?&hR_CxkJ^tn!FL$=$$U9_;@yBME_S?64G8{s9<9#T^ATXT-B2o_v2(0cVFQhtzhW|)92GUSaP;S*`b>$x8d@QM_h zrV?G>G*ge$^y4wry1+<3oOitJXwGyFE>!rmq*9kUMLC43@w|Je5imQmjmN0K^j@$< zp(3kC4rlf7LN`R;<*>*Amd&l}$?dPos2(q+QdPR?qbpzpOTKSu)guVqmYk&C#i6}$ zMn?qr*OYC9VvP$!O0=nX%UAUlVy{TOPYPAg zxfK?m1-jTE1ug7i)sUsk1Vklt`w^a__?^|$y?Eq-K}KA*#eElmkqHU67fwH3b!VC* zQZa>Lhibxwkh%Q^$Ho2$d+}j3TWE;AXQ_02?e9T`z>l#MO4CF^bzG*D{n>S^2MG+> z`;YK7Imm!Q@eC?Yr~PRJ^2dNhcw&RRGj~;Qk9lQj{0h zr+xag>dD(m@6ea} zJ~Hx6M)s$~QFW5XZQC3qSohJ5=o^EA&`ONJ>%XS&ZoIwQYZ>Q2)9{*hkF){7Gg)i1 z0cD@tk}sZ3K2$OXF|;i=k&JR zJUgc-c2He!&e^F-=4E6a6%S0|S0G!}c}=t);nwf@p{h~BV~6WzJZTv{Xw`AvCE}O! zuJ2-~V+R;t3HA~q4>2I`=aBMO44w@OlAzG;Ew8vpdxGE!y`Ep%7M8h(**$#Fu4KRh z>37a~zF&I(_M@BJY5S94lws zTb)bVVt0D30((VZj?8PhnS^xrVw)Qm2PUFC4_+O4-$&dK?0NrMbR8i{GNP+Y6?;R@ zajUSBtNVW{yV9s8&M3-&7DO>Fn7E+vln7F^2!fQw3<}EP60I!?6e%DoMWv~rK`~P| zwy0=R84f6MLu!js*3=550nsW_RKO^xV*qgh%Mc(0lbQB~igG;aIsKFTm@_#u-^WweXB=u)S|J}t-pJ8aj5s*K5+1s2V>Sioz=hazd~z|q|qC|5(;2x-i7Cw+y%&d z=f59>QvKg!@;SP(N?wzv5A|#LNCDjyghcIoF1rSEXjM#BERLxFsRH zTVlQ`6Wd`ov{0KOtRYm6pmI98GgvRyIk9?(l1VRo`cLHqCEVNDy06{;ey3l<|FJv3 z^nM3ySk*tXv$4BeHpR4EUg-W7(C9WZd?n*FEZwU<2bC$ML_6vlY_^=dki6;C&sc+C z16}EWJx%`Pna(4wcb5@aNBgSx15|m6^#sRLAs#wMNGNul1S%|>Vg=s0dxID-ycEyj zo4a<|HKx)dK&WU%-=jICvj~gC_8)9s##5G*QH760k{8-`W}Th1(mIn)c3il2^Qq<) zEv?TK+$OPyy)~Y_5ebVLyu#7e?<}XA!&dpSC#6jLp`+3h#%XW5A92MycrRcjEEmCY zgM-U1^wBXTh|&HKFEE-u`TcRj_i>TMv(7+gj)E>}B3mbh&GF#sn}x#5P(QWGtOYFW ze|m^VR}j8vGm?yVZ$n%$oM!b^pf4?Cs^#qiXR!zE&A#!$!m!YAzh4mFIIjeW_5PPys8STfb1UgUCoTB5Rg;*0amkesjd&kh@I zXMo9lg~J3Rm!k}9P1;(w$Ao;r%Y*1b~yOO2K`nllRogVr*l=|A_bkHn1N3;L8g0d`slHzlF-a# zRIv9-c_g9UQy(4AeYxWwgUiw{CvQ?P6@z)K7xdl`4#Xc15r zDx&b&G0=FvY>Y4w9$v1$)zP>*0}yI@{1i>%qfFTzKr7o$@|%~fuCm8AJa}&Gmoaju zZ6vnchUz=Y`5|r{Ilug9gT{YSht6fgFtCUDxG)8N8KG;?5!@*R2st&;l}8rw_4j=f zh&|I7+Tf_00`!Zz-kQ&^@H+ZKRc9|Hu$`~#t?1w>FdOn1+$+a(hav2bils$HPxA23 zwn1>Bc(^7OX~X+s5jP|UH`|QxS$6tXy-bP4bD-M^hd@+BL_`FyA|Q#%3?df+We6!1WtJ!?5m2Hi zA|fEOGDXISh|IH)5CmjS7(ziRm9G2V>-Bnd_mBS3Yq8)5r>f4`=j?BP``i0WGB-6Z zZ2GjM4ro<#1=;m&vBYieoJL-@w{FuDtsZt&+{||&%30+)gSuPPbji_#R>CXI9>6FN zAcbx==b!GHpCpTYujQWOBgRAN9zvAk_}Yu}qJ?&jas*Azc+~qK=RBW5?G8_M<^XPC zWX=3z`jICDZ_zoE{9_fKal!NlPEjveg6lA#=!=oK;$s(j*BZ|E)?IIuUr$5v_G`C5 z7rEJu#;{R0B+2O;JqfGQPL#*lcpT5Q^c+uhU2=`WO|~YttUFxej4{&i4MNl=?+nxS zlkuK8gIixGUgI~kqWrHGiA62WZ_^|VOl*0Rb5Qeowf0l4_$&VcB^7(@%BjKvhXJ60 zxg(m_V@)L+rIUxWG5od0lOsCam5nIK<`%5px0_S;Fo10}i(POn6{4s%`+hp7rvfuC z?0~!i^*+EiJRBQKP~?nL>S>CW*~|fEbLjRF5jy{DQR8?h!C{_0^|r<@6zXO>n&{=BUsGY?FWkA8K3EA+7WAi$Jm1qo)KvDfi59G&2zg_P zAnQ7u_i#3h0;z{lAx`9y5m4ul1GH_y8xn||JM2r@?3tH=wKahL{gIXiSh?4|ygN@f zR^QrJh|(*!^MoC(<)}iGA8BwBa^+u!bU2vC=T#zXN{otR+)v{0$S_TAkP(_9jz(|1)j-E!Q}uvN8Qc z>FM2*-y-4lgW)#ZzvYrbin?(-Gh<)*`J8*N?Y!>9IVhbMD^RU=4RN+N zxx{pT3UPz;$nVjw3(h>V^`Xe-X`ISd#aM`B7msVo`~{eSw(fZ(0{9Ta7{2}8*>rDR zue0r@{uk<#!{f_KWXk zCK&vm)%2-nVR8=uPx^xqk-kx`+{2P>GvSqXF>1*!H7N%I#)YWdlnWSJA2)h2wstGY zQHa_KTm$d;+^p&0y$J1GBiwnmo=wYkM$O zO1&TrALKsAZ(H-sc$4+d5ka>QRRT1G;IuNggV?&T1_yyF!&1w!XO__cjWU7kzG4 z+UtG9IC*r~U`J?JtOM) ztjo=5jA3G&L=$kzTxMetBM|WXU^R-Ki!ii~TZikgvqF>!>_U29)5B+Kx5mSc7FejX z;3MSAS^X+RNn{q6a~aWorCvJNz178Wv!PEy3xO7*-Xqtq6@7o+rr)y=X6JMv$UPHbj=N7MG7VE-8xp*S49=< zVxbj7BJ0+TI)6D%@lwKE$|&Q=@^o*Kh6;=q0C*6dfm0oFNc%y%*N~3QC1+*d3qAfT z!=ErIcDkLo0ds2S~tT*@q;wXoB7F@#xP@vdMLkU)UZ_{(T~Td_4( z5F9VK*e58BbDF>LD(!pS$oKFmJ-0ZFo;MN_optv=GtK#%m2-nc<=XN*1Yb%E2A@-+ z5l^MY-XLxGNU(n278DGuZ8{6Du9g)d_Q*uQBjTU_LnuIXeAH=%;yfW6;BdK~DPH0C{{&>?k(I$e86agPI=A3>iAkCO^;ffG-Df4FG^Q>;< zXgxSg|Dy&h^b1i6_)&5H^{p5_58qUd3_H~^?X_MiDYzrYTs$B|{r5j9pm{oc-x3y3 zxOuH_x;sk3(#%}*PMTH5FRbkX{`-4Ku-Xy`v|9^NdytXCZ@N4E2w#jMoMIyG$o;A# zikAI@Z6mHt?B~549nv+eTHK!GDsX%0YbjRMc~j%nhwKy2bRTEO=3TgbXuF+-OyS++ zPuPUyuUHA?t6_HcrYxjU|JT3Ch1j^_TLzO`MZD-y$u2l~XXj^J#sh#AL*rO0Th^r! zUPtivdK=gVW}jHH5>$T(d>$<@b?6@Xi-Ua#%Y}%Z1h29D4hGH1)mPY*rN8NK)DxnL z2ZtK=#_gH7ExB8zifojodn3rm&f;`k^6UF|05n#RQ@Su{auPfo5y;<9!gWB$$HH@; z`x$*B9seLm`QFl+{5@%&V5k#-9tky1)xSr?!>u&V89z&&JC_&D<<|ivLR4&YgR-rC z((0IArr%h^QHF=Nd&=qGg+i2r_jrr(-V~i(Z@x{`w2q9F`1?DR8b86k2m4rzNIKw$ zNu-xAL<8RR!EHRpV$ksws6E=0^ZK|vcjaBFarT|yJHC2<8sFhQL!XQJKO=IPcpsZP zJW4w(PP{_?PDcj;5+Q>V6N)wl7zrP`dr{Gn+v3|wYC?;W`D(`biL+N7-gj81{(8e+ z7$}Cf+PsH_Hv-3W-($O}=mMx+buxxfa(rpoyGk=-18ouc!wf#S^5w82Bazr@3)Zi#2D_PLIp z#`XOwd3gMAmRO3BS+IZtTn8d+HVBf<6hJvPV|I>J&NWMBnJO?E-YwOqIP4VEXkUIX zG`>g=<+q0x90LI=|6qtH8~b(m0!ubMFbBk%cYojd4g^94PXf0X#=1*dZBZeneoGd4 zqV{4bZMkB<=_?g={!zG=S;U-;c>AlBZvu&R7!5mJ{?+>8w1ZM7&~B1)at?`SgfSXl0^0Tz+oHs2EqDDPCzy93hC5VH zO^&p43M|HZcua-)(GX4&VcaG;*zd@YCU`={afdkg;{uq?Cr!OA4D1fZB5fJ{M0fK9)L**wIk(TWRk?ZO!f3dJ+jnb;KfB*)K^ zjO0D@#|}-UEjww7jH3r~c^cr$9MaWtK_UI-0>&HG2h)9h)yOg&_@R`==)y(|Ey3(1 zN$VfwO4qG(@F4;Bn)VY19eDe|Y*C=e5xC*s@5$aod0@7$)l*4Dqa*lR7PTHeSQan% z+ktEO!@gc$X+em zh3lW<2=1T9cDh*c>l4KFi4Gms&)e4=c+Ui}HCnaYG~$pVPaeGII*N`hcCr+WU3R&p z<<1eJ9_1mS=%Nf{wULMSLg`r4%6?}Sa@LryrnwTmzEC=8oG z*i5zHIwS;R6K*kh@>S{Smq{%Vmk|DO=uJfm5g0yg_`r%dVz4JZ1#=2K!-C zl?t2T{FCGdl5H~C#QPYIP1_KL_W^nR7WkJeonvJSYOcm(5uM>7c0~P4S^TKwBZWnM z*DQ0j&PM5u&?<(n4!tr3VX0MyqdhnVzY|lD|BC+ z_Jj}xYC1IGhYV{mMVlrYY2ZH3daO9E>nA?;SJ2+IUvbiUCs`V|wE$XPV)y*xo{8eHsp5sG-q!6!Loy(F# zlqhgNX71i-tBEFCG#(grZ^`mH045F1>Gv}mmGiR$f$`JZPhC*&`5dzn|DCFAfeK3g zc;W0{AU)aT!Z|=0s5J&yqqP2Qu$cE)Ix!NDhAi_#G#IPKBf$j^NdBHORTVjsIZrQN zu~hps9P0Lh@qFU3g<2+7@9-A>G#y1}&9s3U6eLp}kh25>k#k@ocvf}Pm4%k4#a-Om|0#{QyG%Kvdz!D1yjjCYk&Eh+9AP0x(a~p>6?q5y~oX>d!q*|N2zl=0UV98l>7ozCT)(7}|`!7!cMbvt0Wxem(UVFia zH=zgWWg8MA?(at}r)e*mkKrLDf365m2U$pUNHWhzP-(WIAH=Y_o?oa_F^c**?Q(3$ z>LKOwGpKF@(W<4?-9J&eJ5!vs%?9(E;ZMJbSg1o2IOkQpvRCdltAq(h&AiZ2a5^cHbW`U?4C4r3sY{|)NEByCt=asu0CRapx|s_@olY;2+v;lAx7 zvg80p3iQ9QUlmBPMmfy!lEzI!0e6ElswgsV%bI+$86qNX=8}hwEX)lf^sop$)x%l6Gu$mCnAN>)S z+TOEDA~7oYoxiVur-(9aTIw3Ne(rD z4c|%Ez^qa9J*F7WmP=!wdVeDbz4eb=#n1AvJ)vf8-oD$DZL}8G*qY5_8QN z$f-c$4WPDAnk~x=G~gzHHzNl>qt$YeWWr$saes z(cR;;bl*15!0`t^tw$0n`4@p&Z#pZLR;bbV1r~w3fl~GChd2j6SDD`xXGauz^b!KB z;g6}he(sc&f@U;Uj>G|%s4-P8;)Fp?tD#;FCbm+ zaH)u))(bpoHX>Gav%g7N@|o*y+B|381LRo*_D%6V%$OwTy5J4njVKyY-%xHG;B1@c z8|I%Hpk@c;CcIb{G1|bUbEPnl#0*R+KZgVj4T2E$TMW8(RdbxwoLJlLJ%0iqL~ha7KtMS_P!a=XW%qF_4@IZ(8t@e$$XINB&NfI*5%{5PcBjVzzXpXSwB2<9sC$EPdzb!-iB~Z?9&8 z-4^y@?bG4V8n4Bwf({~R;tz|dbLp^{E8>Hz@nhII$xvlx0_orw!XL$b6{?Q7T?&|< z(43pUUMbngFEw-NwtIPBf5Kejuj*vpJYqvzBst~S4J`X1gdD_((}7XYonqCadr&b~ z@muEMeX6=|3!BwkpkjbIQtinL6TEu=eAK)p8%bG*rzf zI(@qN@$Yug2#e6{ITQX_NJfxYBRYdjoP?D$s!jDfVQU?5AHXGF+EXrq`1W>&I@2km3f8`bWZtAYHC)tv?Vm=vC8> zb9^=Yr(*ma(C6f0u4d0bBKYrvAmS|>N5O?L#Ja|Pu$bc*7S!mQqlV^s<2Tf(&7kkF z=!(9^4VTwm#rTz8RejnheXBt=aRzp>95p(`ikR-rb zH1AUR+qcDt2g;@ZC!Al3!&f|xW4^0Dgg!TXT8o{y*K0Wb4KHpc2h^SgScL$`KQB5C z@!aP^lyr>*MfS=Sb6slfOUv{3+3anKU-oTunTr1YGuKZewK0c5)uIR-m#$OST{~C& zu!PRJ((0Xy+ghxjCs{jJdOvv5tn^Y@P5HPe?$R?9d7ltK)ow+iB2%K27>h-4_YyMW zkF_7bXr#zhD$`q~G3qayoqq5^!y0Wc?5RDH&9s{lpWQenTXSA5wB~X&?|WQp&p|)K z2^q zl;+hnr+-cMJn*6MheK6ZgzxVHPz#vb#1)0bk0aBM1o80J4!)R=LVh;Kb`<_pK}m!H z{JeHh1_RX$rbClq$HwhN^?n(MH^ssRyFUjiNW4*g+R>ut194>W)+R5X9Dwivh0uSE> zx|}zXbW%C44(-t44?<$nR!cmZ{z#1Hd@Dy!HMu3_^xJjNu!PkklO?0y6D{&K6{ynZ@9Uw~57;Q@+94O^t;!769 zFAs$jG+eq(^N7CCts12t7_3BG{CQY?r&Z!W{`ch9YWo0@NeZZqU{N{mDH0aY>;-|L zi^F6AB;SHiVswZiyj7ihltI?-nO)9PJq-?h9GPCvn){l#&DpC&S=LHD$sDPU?NUqr zT3gWhZ?amC6jvb^FTZJ7JCEqkF=qmPB*`1&eX-y^|5;^#9}31>a;bB!d~8TyQ(9T9 zD^J((a*dS59T|H1#M%xu1533hTTLXD9y~B;xr-Yx*Z}&Qw#~I55`q_bsIK#uZ^i}z z6}KV(_u|G&2Wb8)cbuvUfxgpoC+SN+CWs^S`^-;BakLasc3W;U3(M%B^1 zjreqNM5*CDFWr*0E6tjAKnhp1l4NCIl}}~izv3e?#h7|ubR->RChb+TgENwH|EQ_r ziQ>z9MDMyCLiC?KUwM>Z_-(r#3C$%2^xFyK7SH?0j|9a@xhDK?3r%K zoT=H^H|g!?v2-oX+sL<{K3;N4GoK(Iy|A|y5PiLbC*iNRDL^LR6TUJ@1B~SmztTC6 zLd;#jfXrzXSx&nutR6-xlW6wyWk8ED49qAIfnrXWLyVE4Ex3|r4)uk1_wnX<&wZ z)nWG0E!4R|86gVg;{1(FtBT=jvUmrVFG_EK=Kh$eAlMX%XASQ-GdW7H$8Wzvx()8| z4A4p26@NMjZX|U{e2bIc!ArXH$;?jBhHN(Bru$?5YP~IJ>daH@hD;_PAW)E8qZi^& zaE{$Mc82q{>!7b!mubFdMPV{Pz~$?Y(7kiN*XWQNF@=4MW}SI5j*RF}J4k-I_rK|A za6RwcIEXC{jW!4cyyI-KYT}wAi!JOskV*l6i}#3h(j=>Gwt#zw(D&d;Oidj z*>(|rpR!7@;&~zLK<$M?ZoB9YWLs?(z$p!PnwI@Pm=h9Z$h%M6LJT5;pj-ZeC{0@ReJEI#Kuo0^iTc2SPP~+;G=x zADpbNMR+UmmMn`dXHmjVXJo7(8mKvftJ~?U4*mJuNdej|5!M2d?_8vC2G zJ7w@_i?$th(5>rtS%ul9*S^mgPp{#9R6L*V9c!hoevd=JNL(D9q;u{p2vm8<_HT#i zP#6UaU4WGNLeyzNB|=>4@d#m2DfqMZ|7H09IvUz4$e{mQ_`FC1_X|;T5u->ejyAk4 zlzkaz%9<0?%nxeYkgDreQCX(Td%g^Q%v`$uschec$%t%$_A1#fo@R_4+0~-0xI?e= z=r+aEtnw(+Cl=D-JB^lkxqm0`-hC7Z$)3yM9A&REm`JL}c?fM5yeTb+A{%__zS>i= zBm7jzfZo3HqonlDwg!V9$0v5r@T+3=$7!iGn&d7_8GZ?xS?Kb>l(UG8UlX2JhIUCj; z{!P;Ch(pBZ?QI$2+<|1ynzk%mv045&>2kL8Gf?2cmK0m-~;tbRILN24Wr-%x5j;C)hVi7q!Ur zbQh9mz6*L#dk_;yIXiUZxetv&2=P3;xZ4eALYxzop??ky$C^0!23`YMsN@D z;hWF>fx=U7Z`x!ps8Kc(_hStOL}&@qd)M?j;`nMns!sb*0pggvl>?<9LE8* z#{mzZzw)atYk@-E*L?#E`H#-o8664|h)?{n8gEcl|6#sLYS}f%9K36m)K#ju!>I$i zT-l$$`zd+e%Y7u8EA2$+AK8=AG;eZT^|gNU6FQDk-~<&QZ#O~w%MR~JdkApO*@&=! zlqaKY3Ly*zQ5-r5e3%&#=TINIf2sIVMkOqkI|D6Rz}UJLzE_B9I~P)*FQDRC?|1;m z*2bFce}8#lz;f&tc^3k@kFvVSVj(6Cbn%Df{r>Zrg1P8)-p3Xts=B_kehc=Q{L@IC z&#%yf+rsgiKR1XAf7b9~}@)HA`t4tVh4{uWgmZXFY)Pym0|nNl|1dsaaJYOXGTU5b_+b2%i6gqxhoDt z>Va9Th4oX+xoZdyPQk<01$Xi81%u(Es|kQBEsj}?i3L1}gEy^KY!i=U$ClViL8_eB zDgNR_k51pq`9LSaInTshPAD1-ZvcAX#RKS(IBlc`qRyO)9P=M^7_|>EWP8@z#w+;8 z&=jO_n`G~)(1Wq*sd;Y_y)B`l9~l{LZ-bRHh z%;;I<+dwTMm$BXwH`OR02f(0!?m-j-2t3J^qR(vhs*jXBT-i`DY&;Z}mEATu4_W|;dYvPng$wCB__q$J>K{e`cQW;h;N zbA#YHCXpY{JH|yLK?ad%%Om)^$eqlxyvfF4MOfM`LnqM@l6QR@Y61*?8f-E)pHK=V z_(LU_nIq>#{~VOzQXtt}_5#EIA@eU7Q1E6J_cd8FMSRWl!O>Ts$7+K@M3sH>j=WzE z*N>04)HdxT^4-_gvg`7W@`eQ|04s;S9q+M_0F?K|z&c=f6M1W2sdI~sbG>mz(D_zh zIYf);k;gxOh3-HUYwJ-N#Mga!@4<`QC0mwIl7Bux+v zY)2GOtJD9jSD3j7YUtN6JIP&x(b2FGBo2-ikPd^TEa~TA8v^oxsx!;oF;n1exxDAPqSL8O)uyJ6XSQPCs+rD2vt;Y}dyC zGPy-Q9!|5Iz|nc%YY^^npGt1)f{_O~XV3$Iys*ziDXZ{NW`c@TSvP%DJQ>#5Nwo3> z)Z6-jsma!q3uwW?#Xll#D+`jOFs?(>oG33A!3-~8aDJ?bu&Yb2WC1-B5AYS8Mf`k& z;WDfydcQ5-TR8&57a=(y5~lY;;*q|nXh`}3yYvSWtyfY>R|L^)(XXbM`o&*EE}=yh zvL{b?oqS^1eM`F;C|qeusE)dW;I#NPi=|nTm~dT8O^SJsiUmp z0-fR@4NfGJ;NUkvLuXgao09le!2%RcUZ63<&Wqj|BW@%&Z{r*Kba^v5|7bKE9a;id z-tQ=NNzkpX-*IeW5oQ^q4Tt^I--??&)@dg;EX$ul)yo~~V@+PS3S=blD>-h9pw7Bl3Z0BUWk+_~XA zzncFL8&^B3v~vD1kYoB$pUgq8xkdPXMY2+6 zF&&bTs%6UIJr&W3c+UAb?Z)+#LTqyQm;No?-Ru9f^55eRY?sDvA5$0VL1)+uiJ@{`2TO zdqE!HOB-5XF&c6pQ$A9Rt~F5yUyfQMjbR0#wFBECBOU3i3zZvik7?%9d%p-#_vpoF zNM^DQkSoDRL4L^IzxXqv$9Wm`W@2VUK63P2s_VYjz6eEn&|xugk{ngZ9Q1_69QdN} z&*B+C9L56VZZoA0((!D^Du*;}8{M9{sw7MPCr+(W5xV9u1E{-e79vPNR+CRGpPUOG zeI&xpt^+{z167=J#W~yj!83coa_{ka>A)@d?u+kA8@m`c6G|TOm z)f>3oA*@?}-PwnH<1tbKIqI`Ufw%lyEAj(CG~b9^YbGb4DYBT2L}jr4On0!A-f}^7 zjTryVvx(srBcN*OI%fK<%)*E`QrG=AzuQzwZ7|d7%wNWAgL~*ZjQGPQ{Bs!X?_A{v z|1|QffXNpb4t68X?;BC%csrs2jQCe+bOSKx%ZnDgsyY~!_IHLT=slL}ze6$P%tX`R zaa^CBQzRf=lqzN&d)CbrGjn*3XoI8!>VRk~o^ug1Xy_uyKmxJp^_I~N!;l5`j$dYC zV8Au$=P3)0-Nn)bVwK%mF)*|r8bJ2IncR(+f;J(ip2?-oh9aufH~>12RTD>v z2}bdb1TFQFxCQ>Xy5EV{Qw{^+O4ZOWpbZCSL3V-!++i-jYXZahmqUP|#=ccMl1cl@ zmLT+&Gx+w*?s=yJ2gQN$SMjYBSb$mcBw~PC1NH-;wz}p3tywS$?Nz}uCV^wS@SjAX zoin3ABdx!9G`bl6N8Y**JOnF5Y4fzQg+Gs)Du2zBFJR>9$!2 zMmI1AU3nIQl;!*CJ;B7pvJCB%LBsEty*lJ?x3{|fp=XP#9M-X{H;@FyEzkuT-By>vjcru z;1gfJeGh|mKN9^)6SV*&t@=(mlwziCwz9&6BnsI6bKZI6?*JMS;TrP1OWMtprfNhC zLM|{qffc>eF4t{K;Ay$S_|?bcx!;Fz9@u~@G-xO9a48m4B{ty`rVX85wFN zOJQsFjXFgB4c|XZAm4^dP7Df<88etRHuFzPT6<#koE~!P=z2onjP!ZY9bCrfPLdbs`5rn*j3Mmj z(0B_#5zvSdZzSByy>bs`iW_P2V8B z0mfIAeC874;N3HC?7IsrKHjqMlS?1BU3ijSsJTs0xulqS}vK5Fk zS0nBVz@&uE5E#gUC*^2GjMZ{`iMaAT4lp zbS5`F+?ihHt&l+t@hd24`51sZSoL|$c5OY}LVCk*eBtD5D94qj0IGU&G*}+gU|GtJ z-{s}yP7gcMrq}1MgqEA^#8mI;kHi7FGBe#sSE2?GqVbi|k6|%qSNOY$a05Yts}YN> z()!>X*7$O`w;*CWb%gNNeW_5*&SF<>iY<1P6hK(DK#@i{xkyVlg1w92Mb5%$@D6(R zA!msQe=AJ*3e@bkR%e2HJUIF zRJMZRWJBm8hZ04S8?^;3M?0z{$2NHSejNHooqxl?LM^aaW5M7YzPA~Skmr~qBH_Om zyI^Hdozr(NrK=v^)p@;ZImYv8^Img_uV@WGh$41YifN)UlZ|dF92TLq>#W$=o-Cn% z=Gv^L2ly%_!P7&Z+n~iB30vrD!?g%2{!{1_RIDGNv?*CY z`k-{tnpoUp)VgyXW;U9P_*H*Qvf$_5tj8~XuMkVV6xp7P58W=IZP>_M)bgS8(CNs1 zz_hMp@B3|lSUI)#h~G!*YPn>izqIp2ij}^??u9ABQN9{H%q;SpTj8uPA(}-pxBM(O zpYqPf|J`)*6t~S^H>)>fr+J`~eUmu;&YrWU4P3t!+$d;7GWIq|DxHV)SKL2AZXb+> zWToIOE3a;F)+ffsfZA=BV+*T3eM@0a4~}5hZX>2hNwUNkXaAeV{Yc!69z3(eMD8QR zgIauT(*ADP81A4+1~J7zXUj)OV~2CE#=uTFvnv6VwJFsX*AF!X4!y?X$v=@K&Y9S6 zh(OaU`aL2pWr3C6qja&5+kLRMjp5&4klu+xH#%5du94%6++)2I zYpKhS>hLofHauGz*LJR}WJdZB8}ZPD(13dB0IpI%0_v!^womew=y7k6rEOyvNZ~c& zHs8T6{#6UU{qPiFH-|?Fe80nz2ogtU-shFr*w6gfDM`V$mP8Sf>bD|dovIA^2}rCD z6TKg#jTH;AwJ7NdYBlK9Ha&W->*HA5$jAtCQ)0UvqamQ_0BZJ7-iKsP^uFZYhYeJg z^@gpZ~i{V&Gd-(!4j2E9F?D=dQW=vJDzt^0=(Y^yq_cbur<$%STSoo-;%kJd4_QTYlq8rrr zyZhEiB6lkx`dpr#HE;l)zUpPOA=N@A`*nzA13_~MUl{a74_C||h^0Oi-Qd6LF!i6q zVf#nEyq+N_f0hmVNmZ}Rh`P}GAz8fLE;)jtdP?rttz`#0L=5s|;|1HYg(#7|h+mer zPCNPWUIwct=DMogkp%MNobDX6w2*1{W^Thpd~{-jyN(XvzThWIIxL-Th~kscPxn&i zw`{=S5`hPJ$*YuBT78jcrxrUU{?*|M%`|xy^&4%~-fp{LEB47o6}M;aH_3D!=R~u0 zxNDz6Zl7JZ#@YQ%qvnWia60uLQ`UafO_mMeTb3sA`1M7h0f>?*pPBS!y?5%aoxOL3 zAMZ`Da^f>rH7ZgL&57GTg&#c&A(HOvAOzvuh|uj~DpPcWTJpW*L;Ai)T|fX)`NW;l z=loA59b!0=gec<&?efz9H`|}zZoYR-tuOzp&9U=$d0_kZur8Ye z$V)koWkl|}{m+-10eA$A|G3~mc_ejL&io@zh)cHb@-Lam(Ft~zSN$9>2(s@Ee!nS9 zZuVEZ%gkWE1jV4Yv%3*nQsXZ~DHfRK&+x7bQBMjQft4v_+m3#Sdli0A+U`ozJqww8 zqktl4+t^9OK7bsved?|0DGa+K!R#v$Nz=H{$1O<03gkZZKid?l@}hmSK-%t@1i{gH z+SvXwp+PP2GVhG3@A#a`65raoyau_^{AumkiUsN4>cET0*qqZ8Wc zp=L=Ik9}|675fbv#e13UnsIv2zDDyXHbI3mT7#c`BZUi5Nrr5H{zhvkC+{ogkH=Ex zQfv4^-Sbz`qcHWi`FO0K$P*&oQHWx^1%Q?BHIbl$5T!O_fus{b#P8*~g{kexUBaJU z(hepF?8Xsyz_L>vK1g=~y!%gvaxroZ;r%mWN%i3)ji!*(KK9dor z{i0nn^HY@-a-_F`#*GJw(qLShRawfswwDL}OX8N_X^zGgvTlqvwP;kZ(S}M3>GK;1 z$N8sAWYc&t?{>RYlvEg4&*{h^3NT|wm>{HW?x+x@N_>c)={gVJE)9ZrA0~>{ZyYh` znDu|Pq)N4qJCdBAFAE@751((6nXFiyGvphC&W#J4nFbotq4y4q)kqvDK`>N$urXqy znWAU7HTg&Lh(051c|S@sGY-Y^e`HXPZaiAKYwrO3Q051t4_dqE%6f3#1%#Px(ZDlL zoyW<4o0$kv&9^F%&DfL;KT0Wp5Q!rxUQQ611qXK^2UhQFTR`T2tv(NFHa6z|U9+W( ztNyg2>UO|L%UedM{FlU$6W6WIx=utK7&sHX5B0Dw4h^Qw*Tp7gE4oL5I1A|mz&AVtc>A{<)BAoZ6vN2*x=WO z9g6L9xF|b|t07~InvJ06=m6xx-PWW)h|F@DHF0`Z{NB>9r;80lMdNzx3KwhbPDR&B0psL?piS z5fqc>-YEi^`Awd${_`wf!pD&=j50TRC4+Ao;k`wjMlF}CTB^uaNY?oQd_ZO z`d!npi7Gw$sy|grgfZ>{e7Y@`J}Ze`ED%f1&lCeX49)I=7o;U1d?yq`D%5>-OZ!cJ z_$U!d&Xa>{JAnOve4isH`3oIGx(NDma&6)rKq^=CIA=VsA>)e45jaog=`E{2+uw?z zrZhjKd1PnLT#}ehyEyA0+b6ko&*vx`?ziaA2N6J6LJx*b4_R|AK3Z;{xYT?7K9=vL z2FOgUjAKff$mg`-rd;B<`u-beyVb>^?-g zaJB5syloiHj(5}4o!JUWnWgx--@KAcN2~whi^ZnX{5U58XO}i?y|VBblUDG1Y4_1K z^-A7j%BUv`#|v`*#rN^YTZf;NtLSAJF7QmwsnC37-Widr!0I1$*0HFe3*HgV+ddmg zGo-FtCFOaugX28|HLD84yUZgJjJXrbv?%2Lz-A_;z8yOP;qKr?hM#CE9_vE(wr@zw zo9qnqX_WeOGj&DbEh!u&fX6T?cC4$V!!yTz+T&dqDY`S}-^^piz8Mu1lqaKp!f~yo z(VtlZw+%d2OZsJWEkNw|fN!}tDIVgEQwE$nQ%wv~y{ll)Pk{=g9sH{@$Y*;mS@Xoj zgM^{LrRl+6e7nxh^1_sU@qMzvKI=KFe;Z5U-eQW>QY75K+#WpWer0#$uuwNy+v5%C zb*++(C1=t_=@`Rk-1?~km?R&4l_IQK-@aAI$2uWX3ZoVTfWtx+b;`k={?by4Qi~ zDPG>69U=0~!gnkZUv*P-X}soM;o4!5I?do=uP>Y_NFMJwVp?rp1>n<(*AM%pxF20O znk5GY$3fryOKh45bZGqzlmdVxAHYwLT9AXNO-((7mq0XeZ5U*4OkO_i2;CXBgIJR& z-VO3IL>#y_{ZG)eyyP621n6fYU6_?I++i-Tj0C?-aMSeBW9P+hY3s{?0}&Xr2r z3g1LU84JRSpwkP}Tdfl6%}ZHVvpXHBUOFksuWXwPSYzXd_~zBqKwa{?uzolD7<1y@ zGtLRUO7Zc$+$ktYQZ%CdJ{LP5^0H^ITru)vk3|%E0QEHjNu+Tv@KUM_Se}g%&{i+w z9RcJz1?4y0P3gKF8$CYtTN;s{jPsIgbZn_g1Xn|9x+gS5t%KHcH^R^rX7~GB<$`$* zDLIZ$-Vu!&+lpJdEj5Z2E+<(iB^(JRcHVrpr6o%B86=|0D+G5a%^kL02u z0((dT`M+}lt?=K(y*nw3IUti6zk}O~&<0EM>W$P#!Xvc&yixG^(?cikYmu`9tQ~0? zWyuW$%_Q3X0Vikg6b-wc1~w?C{6X6%f9A(9M9{_yF)>thxWjBcMuNU9F|f0HthoBK z4tyzgTy<=nWR%6Ohk@y%s2n~ot`UoN-*`8CoZ2+7k+nPRmAikZpr)?yZnnV_cQc-L zg0Zmo7b8W>*PSIFbPBY-?J6&eFxzaiu%-~iR_(u@>tNkKLMrt4n7R@AFbl4|_Y#^X zi!;ZzBU?eJA2b2+t^v2Qzvf}yKm5(w5uC&%r9^K!I+!KEPGFJ4j1{H`TPX13m5+IO zx(~WMO{@U1S1LDZf_ExGH7g3IL6P(IXtHR)TVTe=!vFY>_M9+&c#O=NVF)%aj zChuL(gT9k;PsaFi&CU2gg1f@++m?;JiQ~Rww6~}DL5?8M0n$qFyehyi_O9vv#doX~ zi>w27YZ{HzcKzbh&j3Vv%fvz6ZB5L=wNhxvn)~P+Wm+CRUl_N1<7#ls>Jtk?#a6jw z0SS&{ZvX(fb%TVy0@3&Rw`CXfXuWjO5e%Q_DCM?-5ii476wa%o$kgae5=1`hQ0O8J z?A*YcIFMbsf1mr>+r0mYr&93;mv?1Rst*oCsa6$U;r+a#%id4~X7P|jpNuIx8z%?n zTFvTjC0_vpzab*zhPLxTW;ei!yqWzC11K5161j;=4c zx>w~Vqs?Zy__&KeY~V8y-#>DM#93%G3#KAXjxSd-Yp~VeV8)H0IMUbik3(A(?sN7+ zA7~89$^y7CX* z305sE-*ta}j?*M_pyTR%y^^Qzwcdn%W-AR-i`@L*3>De9t`hHv!4iQ69NqF{SAkba zYjFKg+(uqHzf?j`(`oip`d*~?7hikyq^o?0u#;kHgT;>Owm5LIDI5i>7poTVI= z_dLMl*i(z#-hRuAVs_>GyDkI{c=u(`UzuaH6`{Uu$@@ak=L#{ysqzXftqpo~yPCx3 z-|6A(u>0fy!a_gJz1;aUb;5MV$nHJL50-D|iYVroFs%WYSzar+Sbd4ss1F!#euG=B z#ptsUT&tjRz4C!G&Q3NYwF6n_Mx5@*`P^ye3pz_o$-_eGW8QQc;46u9Z(&OFqH6>j zSpv2CuJzGr`s{C4U(e$WH2iJ9Sq6^%*lsGBsNw8n8wgeNKKxMskvarKel{`lsL&RB zSe+_ad8bR$FW>6elyzyMVz@0wr{>zNa?H+oO>X-=Y7@Swo$vQS=E*^!fUJ5{aZ@a! z!h}CHq4j}gGr$`uO&tf#*_X6s3uiKD zd4S{9tlveM_9#VcZSy)scCo^_Q4Zm}AWNJBwwds!{D10rPwtSIjp**GiZLHO-0tK)&85hn8HTTn$y z^}*PNH9h?e`-?6s>FqdbE!wQ)eEI4@{F|78^rC0qgE03Of-%sR079LCfvnKEnQJqd zj02ef_h~XJ;yzz%3qpX1G%pVt^{-oi!skm1B`V!g?)&5Z zkzoHbzZN=A`|H^{^W)C+XB*QSsq4i*at{IW`_eEvEQgicD53y;uaWP%@Qd&Ki>Z~T zc6Oh5mml3(>G7{8#R8DY_&3;{>(2BaLEXon&FbH5^)kSQXpbN0LL#NZo<8;PZ`rHBBfG<6QOKl6j% z^mpg&JP`R^XHj^Yo*Kabp^=Vzx@2h>xTgp_DjQDknK<3GviWPj+0F!1P3Y3?wegFE zp$&)zbMP)+4;n#91;lnh7F{>+G}8DYoFeWyBhvxHrUinALTG`~RrE|E2h@!M_1q4|Cv66GH^R6o^Gn^e?^( z-zkYV&-S)`cgu_#*V&{V2WPR$hXrbd1*^*|Ut+GlI}fc8c+TS*^{-P{fBhlEmr)B}g^%t@ma; z0hS&?D@+0IA6}hRUl&A*s!|cN4al$8_m9xbp?u0B{tS6JaL};-LU7=1LJ9xZPfh~$ z9iTJp15+7}gB$Qlyk}eyhL?-=h)q|O5#ya@f4(y5lq(Jb-7&i`GOz^4fPwetQS zWeJ4_jE*MjdxQMk?U)8q3`mNrFvF-VeU@VWU^wj98}Gb6N1cR?BipQX;+wR0HVMwg zmOhq`5r+Yna9t6|7Yp$^7$z1&=MuUulbE(4LWuYsngt9Vj$nDy0caRCM;O%O-X(nT zV|$}p=0L(aSY~jEa=vC8-WxVz0fqsP_JL(txO#$4r z9ET+DfS&BSDS`o$d)l%P*0x}sP5YRit7K~?7RKn=bK>yBTD=bnJ~u(S`eps?A7tP?De`=tS;Lh2N)(_%H}+fK4tBNY?0Lu-%8 zKVMr25}dXF>9>fDRr=7?DSZ&N+SNuJX^R^*rl*Gje-;+z&W%JJSgDE);Nwq+a%`BW z2Fx0uK@gH0i^#xJ7A&pk=ZDALS9(HUGzNO!Fmg%SBL>jwt#KJ~>Ar_hXFd_{ zXP$wg)WhLY&M_`OER@&yg6j*94b84U?2F_=k^xCHD+}YWar5~@@{QtmhENdztw|gH zP=#amQ)SE|N}8!Zb*)5fqvi&zv*Wi3dxJCj*XWGRr#&M437vcNVqxuHYM34EMw~l`#b%goXi?Ybdl8|2UWE3e*8^lc<9B7Uwo%A(S{bDxsimhK*e@% z*sO6tob~g*KvdOsMvQ?&7xXhZBsU{xpwZWB$1lFz8%NDC&TeZj{r?TUUrf&RywVZg zHRbdrPt?Kwu*TB9^hh}ul?8DERM8Qou#LzNsmF=J8|Xelp8CQAB)PXhSM5ra`TPoP zPX>(T2qJBI6sGUe42Gr7X7MTweHelS!2rcZTR3=_RL4V~OXyMN^(MDIsz>s-wt8t4 zH*%VRwB`jcW?ub{Jr4ZUb}q;X@A_~zv-DO~Th`rY2}Bvo!VqV8FnqRD6RL}2s8^eq zv#v(UDGfR}nHm-!hkjQ|!VLJyud6vzs&#B%lFG|32P2bN z?0emm;f?Seom+1o;81F`wuF;u3(X7eJ#Yh99>8n2go2*|7-3asISdTjkIrR^jQ z_@h0c2e7B7)ki0mcDvaupe3U6ZV}oQi8& z*}G1QK(8*1D{6(HM+(qUE3RBaM`TMNGrYbhrjRSjL2)t2z?XT+pK%ehZ8uC6LZDz5 zH1DmY6X2_sH|nFg+e{E4&}Gd6bH0VnWr@u0k+^$>Rm!a6KV)rPqQ>c}fZ4sbKW3k` zlY^x*sE#-EaJ5)^Q5aVUNT1jORT&%Q@FrBrQo}dPhKUYarLs?qiX>Te+!Mq;()hE> z%$SA50l*|nCiXl%4UyG&C6K%K7NlvgIK07{PHdF%rcZN)hb;@v^fn#RyFrzn%jodl zhtongRom4#g4_F%yOjmaD1)0&3Xd^^hkvFRjaR$~*fJintEGE`W3$%-|07boQ84Nb zOIG{JpdO)^CqV5^WLtw57s0mk$R_YM>kE0WN(LcGm_$v@0dz9b7C%&ki)nf1!iTE~ zJ2u-mHEJ9`Vf#2Eu4T>6agttp`vs`>IK>srgj0}>XIU!46RTP>8wWY2?#-SeQO`cr z?BMPxfp6;ud!1|?PQncUdA|K!8!t!Mpi{;yHTE@*iJmX#%1*3)ZSXyIfp-I$9F&G? zq)1S%#$cR*wFKvb$1gu zxFv&cveQvz@FG*Bp0L$e?MqYQa6JR{z*(^b>8!@gH7V|X&W~ZJu3hjRCdc0Njs&f~ zDhx}z{zP4UgM)5i{^cuEqtMp|XbuaKQMJ=g>>3lTx;MWOHXl_P0Z@73Ee?z4T+klsup z^Dd}<2|yJ@!IS}Q^eFDPdg1oQx!qf?*c4I)&e%lhhR?3Gwd2)VQEeg&z<5MW$p!e}D#UtM_^q*^0N}?Z&SK4RlkA? zG&5LD2XjEMolzW#F1YHM0!f_OkSyLdU~m1~LedW)J~%}p;_}ZnrY&RSz}*ye5L;FTQRh<2;1r%1Lr8x#~QiZtw^tMH#*l zkUG$^)Knu<$?Ukl(5EG4^#X@88-3+t)?=+ z7!#wEg!3NGib0bv$7_NB?ca_vwh!dKxVU|tNGvGj9HfThxcvO(V zMC2Fp@)40bh$9Gt6x`Z>fqzAF6$;)-%*d1=604>84-pHhcR3S0;SJvP`=;GMyOk8Mul0)8&e-u2Q1^kHgwr#kWWaH}tB%k} zLX>MAVC1@v906_7G+_Kd~E`Is;b(QRRQ`IPY zD0p+L9L%-$LB<*E$VFGaLwF9`4 zxcg}6^6Wa~eY(J205@zWsBjN;jdtVr=5>ra<-9s(BbR>e`<2QBy6PMzm@~LM>ba;U zz&-(+`7_tD?O=DN;%QRHTc&kAPxeSUP8&*5&Us+hz!{~kbP8nAh{+{~AOHw315po3 z8F&CjyJJA=QULhe6PT7Fx7%r05p%teP)PY5%b37-93h$fE%&d1KCkhl<0hZ7u{ad zc0ch&+|u5!U*$$b8$^5_iu5}Wk36?pB{j6T5rV;Gno@=aMf&2{Kj41U430U)z(o;+ z@wl_6_2TfGhJ_b0(JJk4Bcys;$B^0fsB_th(jV17+>C?ufL!7G!Sw<4?4;GKz=INr zDe;fRD-Q{~b5(*_D4WD-oj}Z+G2@$d-Bx?t_f;!DYTB~J@IyUzO4kP(lsA-q4ixTp zj);T@DK}PO5wLk7Be$>hCdOZ`T%yZVfi;=3!ENn41rZholRgJQH|^BoEKgRP@Ql`k zVjh_V0yRx!c(>WKtSd(o@6S@XzvvY-*yxayqd9mFt#w`Ff&T_=nMkdRQ74$boGNVJ z0v~{xMOJAh*1w3I*$1IFFFtS5&rNeFIA@jfgYDzw;MBnSW}@0+==uOvSAzz}3Io+j z)rfr`a2P*Qf>O`s;V_esevjSjVpVQqYsuO z%)UTASbfJK%GY3B0>K=FmAyp~qKJ$L;YI8;)MZsT*Aa z*K^Vhpj!Yz|9|eGM*e3HRRZ~lVOm^WC0-8|P^2(J&u3U1&KW$GS@elAydDQ_3L$aO zOQ}BdR!j73ZHOBFZ7vHmQb86vHKPV7y{i^`jUQ$2VSts;L0TDD`{O0LU9%-Jb$UyCBI6H}FRLgBIaLZa9|le#8AWYfYzY`zju znHLlNbGQ6A*kp#>eB(N_&fLaN0$SF`x!@RtLX^vBkh>{hhKf-o9b7TeP)B$YCXBF+ zmGmNuyD!y3F=3Cc!LqNf-?d|h;+ppb;ucy@J@DI56UwUqa&suAGn(!_f@zRP4U>Sx zZ#{t3&?8e7M+d}#I*05G$_h%@yR{^|HOxZfCroUuym$OWnqi&#j5pA=oJOze5K}pO z0&r}gK%=$0dqFBE+2)J)AxZt*j6K_&&bQvVefc^cU?2NLjL5659rzA%jQ>lN6Z+r4 zoZLllf}cRO6cot3xMJH!((-29hsZGm4cLHnV?Z@4xhZ|~HC{<0iYQjxpcG}I;lqyt zvadubsuAVL^H=Y=RWL{)Hgw??yYL4`S~!M z^M<<%(hR>wuYXsTfHG*=);PXQxVQ_m&v0l?9n>;+?U33$L@^y(M}XYvQz2M_E>JK=VQ~k+Yq&1LEG-uIXA@XrK!e z(+AwxmSRP-7TdcAC>q8GpxOe`27yK^*AW5k_9b>5@H5(jQ(b|nWr;)4eNc9{;5_|= znVjDK;zp?%$)_%HaT=R1QS98FiF5$b)MT#gAV(dkAC&HA=YfpB0VRRI3|BVj5R6&8 z&cx~5xrSqo0Tm5zKgAo#h(KgPUHgB!ea1WZ#ge{ z>Ew<$_y8Ia#Bq*-z;h0Ao#o@I@Y1>VL%c1ZfUY@+&_9o{a&!E=#lW25l~nm6Sx3i& z%WY}zU%h8w+{y6%?)QX!@Dqkev@7(QG}8_Q9DlE5o$Ysqqw5DnW^;keMO(_eQY>9I z-$fK~et)A<*OmrRfqn$C(UPMEK2*o>%1gX^SCtt96G0N!{V*111ILUQ++MPw?%Z&0 z<{|WAK44yHw}thN<|s~T6d%zuTg5v5v7I{7Il{im`btn|DctuB9*()Xv7j_^;XA&$ z;7T0N3E;X(MT9vA`pcE1CoZoXnq6M@Qk8CinGNX|{GZ}rHUDYF2YOUN#b10CSmK@c zk|JH+V2#Y~JzJ&cYMk<{ueSp!R=xC!BFx>(6bK!g=N=q(^mGSo z?%!yK&5B=(RT*&{0$kZQX=pW3Ux3zUX`APOTqoDeoh|QsJZc=XJfaJ(joE<{fWDg*0a03=;H^d& zqE++#gjNZta66-XW|lcPvY#Yb2lW-tE#bVbnlpO*B1@VJ3SMbO^2QB&83`6jau@7y zTy0wI;EL!pG~0eXzO23fP7B?+D?|}q`s9WzHbTR z&m;1;nnA$ZM+}zf0RY6qTGq{Z4ZO!S#BcZ;`jkvq5kvOfLCs81_V7O2n5k|9j}Lcz z5^w2hobznp++n2n+?CjT*t>Q>j#*G1Km1LNPRFdc2z%J}ZU|6BHhD4i%sXkOybQl+ zAQ2hWc)yxn7USpR?YH~4D-m?6)~+R@RDtR&90W}RJ1}j*ag}wg5!1r$4W!L@{t-dY zMG%GU=;PMQGdjA-#P^N6R;_`EX*&i1iJMgmLQ@3+@2&!S2KW>Q29X^OVpi-Z3m2}V z{sg_*t<%ygtK)h7Si7GFX-c_+TO7UQV|N0>N7!b9CJEe`rp&hc$y|Tpl0~P2@dm1# z57a8<#u={-g0;P$6`Rz4unHdEAW>NcH@N83Ra#*R+ z+lnqfl<=UX(zc+$hxJMUTu=Rq>fj+DTT0q?KIEMfvmmC8G*5SPdvOAsYG4$H*Sr6R zc^rn^Ilxd51rlc?h|@QcL37dy;2ZHC)e~HCJ+?w@^H?{cb>10Ro`#nfSN+9u@h`r? zRvTv@pdPdc3hsNsD9*gCJy!s>a8>f{hZU%8(a7UZ(}zldn5D52JjD>kF`CH3lQ;9N zY~8ZDG_+1iid2`h#I`wp+rFJ(ntY;EWMXK$Ig`9 z`rW>M^sqpp+*zehfvmvoU2AcOLL6tCV{JJWe&_EBzK3SPb-en^Kw$QR?@rr7_1yqU zL#=4p0Oz4)!a`#SDHXQTNG