diff options
author | TCWG BuildSlave <tcwg-buildslave@linaro.org> | 2023-10-28 13:27:29 +0000 |
---|---|---|
committer | TCWG BuildSlave <tcwg-buildslave@linaro.org> | 2023-10-28 13:27:29 +0000 |
commit | 07e6f2efe94a639a5db04053e0d4831ace433498 (patch) | |
tree | 0c887efd1558cac83bf43b158a6ddbcb001fd578 | |
parent | e446428b0a2982116fefb4c99919f05f73592526 (diff) |
force: #507: 1: [TCWG CI] https://ci.linaro.org/job/tcwg_aosp-code_size-dex2oat--oriole-master-build/507/
Results :
| # reset_artifacts:
| -10
| # build_aosp_toolchain:
| -3
| # build_shadow_llvm:
| -2
| # build_aosp:
| -1
| # shadow build has no errors
| 0
| # shadow.size present
| 1
check_regression status : 0
-rw-r--r-- | 01-reset_artifacts/console.log.xz | bin | 2256 -> 2248 bytes | |||
-rw-r--r-- | 02-build_aosp_toolchain/console.log.xz | bin | 273348 -> 274736 bytes | |||
-rw-r--r-- | 03-build_shadow_llvm/console.log.xz | bin | 210596 -> 209756 bytes | |||
-rw-r--r-- | 04-build_aosp/console.log.xz | bin | 43128 -> 41516 bytes | |||
-rw-r--r-- | 05-process_shadow_data/console.log.xz | bin | 268 -> 268 bytes | |||
-rw-r--r-- | 06-check_regression/binary.improvements | 4 | ||||
-rw-r--r-- | 06-check_regression/console.log.xz | bin | 3260 -> 3148 bytes | |||
-rw-r--r-- | git/llvm_rev | 2 | ||||
-rw-r--r-- | jenkins/build-name | 2 | ||||
-rw-r--r-- | jenkins/notify-full.log | 6157 | ||||
-rw-r--r-- | jenkins/notify-init.log | 171 | ||||
-rw-r--r-- | jenkins/rewrite.log | 22 | ||||
-rw-r--r-- | jenkins/run-build.env | 12 | ||||
-rw-r--r-- | manifest.sh | 10 | ||||
-rw-r--r-- | notify/jira/comment-template.txt | 2 | ||||
-rw-r--r-- | notify/mail-body.txt | 24 | ||||
-rw-r--r-- | notify/mail-recipients.txt | 2 | ||||
-rw-r--r-- | notify/mail-subject.txt | 2 | ||||
-rw-r--r-- | results-vs-first/results.csv | 30 | ||||
-rw-r--r-- | results-vs-prev/results.csv | 36 | ||||
-rw-r--r-- | size.csv | 34 |
21 files changed, 6124 insertions, 386 deletions
diff --git a/01-reset_artifacts/console.log.xz b/01-reset_artifacts/console.log.xz Binary files differindex cc374b7..ce5cd35 100644 --- a/01-reset_artifacts/console.log.xz +++ b/01-reset_artifacts/console.log.xz diff --git a/02-build_aosp_toolchain/console.log.xz b/02-build_aosp_toolchain/console.log.xz Binary files differindex d5505d1..db87c4b 100644 --- a/02-build_aosp_toolchain/console.log.xz +++ b/02-build_aosp_toolchain/console.log.xz diff --git a/03-build_shadow_llvm/console.log.xz b/03-build_shadow_llvm/console.log.xz Binary files differindex c773481..a751e0d 100644 --- a/03-build_shadow_llvm/console.log.xz +++ b/03-build_shadow_llvm/console.log.xz diff --git a/04-build_aosp/console.log.xz b/04-build_aosp/console.log.xz Binary files differindex 33c9395..eef1242 100644 --- a/04-build_aosp/console.log.xz +++ b/04-build_aosp/console.log.xz diff --git a/05-process_shadow_data/console.log.xz b/05-process_shadow_data/console.log.xz Binary files differindex acfe491..935db2d 100644 --- a/05-process_shadow_data/console.log.xz +++ b/05-process_shadow_data/console.log.xz diff --git a/06-check_regression/binary.improvements b/06-check_regression/binary.improvements index 7d41987..3aefa32 100644 --- a/06-check_regression/binary.improvements +++ b/06-check_regression/binary.improvements @@ -1,3 +1 @@ --1,out/soong/.intermediates/system/libbase/libbase/android_arm64_armv8-2a_cortex-a55_shared_apex31/unstripped/libbase.so now builds successfully --1,out/soong/.intermediates/external/libcxx/libc++/android_arm64_armv8-2a_cortex-a55_shared_apex31/unstripped/libc++.so now builds successfully --1,out/soong/.intermediates/external/boringssl/libcrypto/android_arm64_armv8-2a_cortex-a55_shared_apex31/unhashed/libcrypto.so now builds successfully +-1,out/soong/.intermediates/art/sigchainlib/libsigchain/android_arm64_armv8-2a_cortex-a55_shared_apex31/e4694d05f1cb76fefd10c9c37c092ec4/unstripped/libsigchain.so reduced in size by -1% from 21580 to 21464 diff --git a/06-check_regression/console.log.xz b/06-check_regression/console.log.xz Binary files differindex bc550b9..4707a9b 100644 --- a/06-check_regression/console.log.xz +++ b/06-check_regression/console.log.xz diff --git a/git/llvm_rev b/git/llvm_rev index 0c7943b..d05e08f 100644 --- a/git/llvm_rev +++ b/git/llvm_rev @@ -1 +1 @@ -3f4bf998e897274758006f8423f2bdcd68cb2d55 +c249e2778602207f1e770c57123d14bdf078308f diff --git a/jenkins/build-name b/jenkins/build-name index 6d0072c..70ec796 100644 --- a/jenkins/build-name +++ b/jenkins/build-name @@ -1 +1 @@ -#505-aosp_superproject-toolchain_superproject-R1 +#507-llvm-R1-force diff --git a/jenkins/notify-full.log b/jenkins/notify-full.log index 4a7cade..7e3758c 100644 --- a/jenkins/notify-full.log +++ b/jenkins/notify-full.log @@ -1,25 +1,25 @@ ++ pwd ++ cat -+ remote_exec build-08.tcwglab::/home/tcwg-buildslave/workspace/tcwg_aosp_0:-p50075: ./jenkins-scripts/round-robin-notify.sh '@@rr[top_artifacts]' artifacts __TCWG_JIRA_TOKEN ijQW9spm0p7HwZnUtLFx7CCA __stage full __verbose true __build_script tcwg_aosp-build.sh ++ remote_exec build-05.tcwglab::/home/tcwg-buildslave/workspace/tcwg_aosp_1:-p52224: ./jenkins-scripts/round-robin-notify.sh '@@rr[top_artifacts]' artifacts __TCWG_JIRA_TOKEN ijQW9spm0p7HwZnUtLFx7CCA __stage full __verbose true __build_script tcwg_aosp-build.sh + set -euf -o pipefail + local host +++ echo build-05.tcwglab::/home/tcwg-buildslave/workspace/tcwg_aosp_1:-p52224: ++ cut -d: -f 1 -++ echo build-08.tcwglab::/home/tcwg-buildslave/workspace/tcwg_aosp_0:-p50075: -+ host=build-08.tcwglab ++ host=build-05.tcwglab + local port -++ echo build-08.tcwglab::/home/tcwg-buildslave/workspace/tcwg_aosp_0:-p50075: +++ echo build-05.tcwglab::/home/tcwg-buildslave/workspace/tcwg_aosp_1:-p52224: ++ cut -s -d: -f 2 + port= + local dir -++ echo build-08.tcwglab::/home/tcwg-buildslave/workspace/tcwg_aosp_0:-p50075: +++ echo build-05.tcwglab::/home/tcwg-buildslave/workspace/tcwg_aosp_1:-p52224: ++ cut -s -d: -f 3 -+ dir=/home/tcwg-buildslave/workspace/tcwg_aosp_0 ++ dir=/home/tcwg-buildslave/workspace/tcwg_aosp_1 + local opts -++ echo build-08.tcwglab::/home/tcwg-buildslave/workspace/tcwg_aosp_0:-p50075: +++ echo build-05.tcwglab::/home/tcwg-buildslave/workspace/tcwg_aosp_1:-p52224: ++ cut -s -d: -f 4 -+ opts=-p50075 ++ opts=-p52224 + local env_vars -++ echo build-08.tcwglab::/home/tcwg-buildslave/workspace/tcwg_aosp_0:-p50075: +++ echo build-05.tcwglab::/home/tcwg-buildslave/workspace/tcwg_aosp_1:-p52224: ++ cut -s -d: -f 5 + env_vars= + shift @@ -58,10 +58,10 @@ + for i in "$@" + cmd+=("$(printf '%q' "$i")") ++ printf %q tcwg_aosp-build.sh -++ printf %q /home/tcwg-buildslave/workspace/tcwg_aosp_0 -+ ssh -p50075 build-08.tcwglab 'cd /home/tcwg-buildslave/workspace/tcwg_aosp_0 && exec ./jenkins-scripts/round-robin-notify.sh @@rr\[top_artifacts\] artifacts __TCWG_JIRA_TOKEN ijQW9spm0p7HwZnUtLFx7CCA __stage full __verbose true __build_script tcwg_aosp-build.sh' +++ printf %q /home/tcwg-buildslave/workspace/tcwg_aosp_1 ++ ssh -p52224 build-05.tcwglab 'cd /home/tcwg-buildslave/workspace/tcwg_aosp_1 && exec ./jenkins-scripts/round-robin-notify.sh @@rr\[top_artifacts\] artifacts __TCWG_JIRA_TOKEN ijQW9spm0p7HwZnUtLFx7CCA __stage full __verbose true __build_script tcwg_aosp-build.sh' -/home/tcwg-buildslave/workspace/tcwg_aosp_0/jenkins-scripts/round-robin-notify.sh @@rr[top_artifacts] artifacts __TCWG_JIRA_TOKEN ijQW9spm0p7HwZnUtLFx7CCA __stage full __verbose true __build_script tcwg_aosp-build.sh +/home/tcwg-buildslave/workspace/tcwg_aosp_1/jenkins-scripts/round-robin-notify.sh @@rr[top_artifacts] artifacts __TCWG_JIRA_TOKEN ijQW9spm0p7HwZnUtLFx7CCA __stage full __verbose true __build_script tcwg_aosp-build.sh + false + dryrun= @@ -87,17 +87,17 @@ ++ get_baseline_manifest BUILD_URL ++ get_manifest base-artifacts/manifest.sh BUILD_URL false ++ set +x -# Baseline : https://ci.linaro.org/job/tcwg_aosp-code_size-dex2oat--oriole-master-build/502/ +# Baseline : https://ci.linaro.org/job/tcwg_aosp-code_size-dex2oat--oriole-master-build/505/ # Using dir : base-artifacts -+ echo '# Baseline : https://ci.linaro.org/job/tcwg_aosp-code_size-dex2oat--oriole-master-build/502/' ++ echo '# Baseline : https://ci.linaro.org/job/tcwg_aosp-code_size-dex2oat--oriole-master-build/505/' + echo '# Using dir : base-artifacts' ++ get_current_manifest BUILD_URL ++ get_manifest artifacts/manifest.sh BUILD_URL ++ set +x -# Artifacts : https://ci.linaro.org/job/tcwg_aosp-code_size-dex2oat--oriole-master-build/505/ +# Artifacts : https://ci.linaro.org/job/tcwg_aosp-code_size-dex2oat--oriole-master-build/507/ # Using dir : artifacts -+ echo '# Artifacts : https://ci.linaro.org/job/tcwg_aosp-code_size-dex2oat--oriole-master-build/505/' ++ echo '# Artifacts : https://ci.linaro.org/job/tcwg_aosp-code_size-dex2oat--oriole-master-build/507/' + echo '# Using dir : artifacts' + echo '' + mkdir -p artifacts/notify @@ -111,7 +111,7 @@ ++ get_current_manifest '{rr[update_baseline]}' ++ get_manifest artifacts/manifest.sh '{rr[update_baseline]}' ++ set +x -+ '[' onsuccess '!=' init ']' ++ '[' force '!=' init ']' + IFS=' ' + read -r -a changed_components ++ print_changed_components @@ -121,93 +121,98 @@ +++ set -euf -o pipefail +++ local c delim= +++ for c in ${rr[components]} -+++ '[' xhttps://android.googlesource.com/platform/superproject/main.git#main '!=' xbaseline ']' -+++ echo -ne aosp_superproject -+++ delim=' ' -+++ for c in ${rr[components]} +++ '[' xbaseline '!=' xbaseline ']' +++ for c in ${rr[components]} -+++ '[' xhttps://android.googlesource.com/platform/superproject#llvm-toolchain '!=' xbaseline ']' -+++ echo -ne ' toolchain_superproject' ++++ '[' xhttps://github.com/llvm/llvm-project.git#c249e2778602207f1e770c57123d14bdf078308f '!=' xbaseline ']' ++++ echo -ne llvm +++ delim=' ' ++++ for c in ${rr[components]} ++++ '[' xbaseline '!=' xbaseline ']' +++ echo ++ for c in $(print_updated_components) -+++ get_current_git aosp_superproject_rev -+++ set -euf -o pipefail -+++ assert_with_msg 'ERROR: No aosp_superproject_rev in current git' '[' -f artifacts/git/aosp_superproject_rev ']' -+++ set -euf -o pipefail +x -+++ cat artifacts/git/aosp_superproject_rev -+++ get_baseline_git aosp_superproject_rev -+++ set -euf -o pipefail -+++ local base_artifacts=base-artifacts -+++ assert_with_msg 'ERROR: No aosp_superproject_rev in baseline git' '[' -f base-artifacts/git/aosp_superproject_rev ']' -+++ set -euf -o pipefail +x -+++ cat base-artifacts/git/aosp_superproject_rev -++ '[' x6cf5486b8925224e179123015e7b72d494fa53bd '!=' xb556fc4dba3748c57d6a77b44ab9f5d75d099356 ']' -++ echo -ne aosp_superproject -++ delim=' ' -++ for c in $(print_updated_components) -+++ get_current_git toolchain_superproject_rev ++++ get_current_git llvm_rev +++ set -euf -o pipefail -+++ assert_with_msg 'ERROR: No toolchain_superproject_rev in current git' '[' -f artifacts/git/toolchain_superproject_rev ']' ++++ assert_with_msg 'ERROR: No llvm_rev in current git' '[' -f artifacts/git/llvm_rev ']' +++ set -euf -o pipefail +x -+++ cat artifacts/git/toolchain_superproject_rev -+++ get_baseline_git toolchain_superproject_rev ++++ cat artifacts/git/llvm_rev ++++ get_baseline_git llvm_rev +++ set -euf -o pipefail +++ local base_artifacts=base-artifacts -+++ assert_with_msg 'ERROR: No toolchain_superproject_rev in baseline git' '[' -f base-artifacts/git/toolchain_superproject_rev ']' ++++ assert_with_msg 'ERROR: No llvm_rev in baseline git' '[' -f base-artifacts/git/llvm_rev ']' +++ set -euf -o pipefail +x -+++ cat base-artifacts/git/toolchain_superproject_rev -++ '[' xd35df4f57e24bb369f7da08bccb9ca02542bb785 '!=' x9098f4a1f73318d21def20b564aeac2059806a00 ']' -++ echo -ne ' toolchain_superproject' ++++ cat base-artifacts/git/llvm_rev +++ '[' xc249e2778602207f1e770c57123d14bdf078308f '!=' x3f4bf998e897274758006f8423f2bdcd68cb2d55 ']' +++ echo -ne llvm ++ delim=' ' ++ echo -# Debug traces : -# change_kind=multiple_components : aosp_superproject toolchain_superproject + local c base_rev cur_rev c_commits -+ '[' 2 = 0 ']' -+ '[' 2 = 1 ']' -+ change_kind=multiple_components -+ changed_single_component= -+ echo '# Debug traces :' -+ echo '# change_kind=multiple_components : aosp_superproject toolchain_superproject' -+ for c in "${changed_components[@]}" -++ get_baseline_git aosp_superproject_rev ++ '[' 1 = 0 ']' ++ '[' 1 = 1 ']' ++ changed_single_component=llvm +++ get_current_git llvm_rev +++ set -euf -o pipefail +++ assert_with_msg 'ERROR: No llvm_rev in current git' '[' -f artifacts/git/llvm_rev ']' +++ set -euf -o pipefail +x +++ cat artifacts/git/llvm_rev ++ first_bad=c249e2778602207f1e770c57123d14bdf078308f +++ get_baseline_git llvm_rev +++ set -euf -o pipefail +++ local base_artifacts=base-artifacts +++ assert_with_msg 'ERROR: No llvm_rev in baseline git' '[' -f base-artifacts/git/llvm_rev ']' +++ set -euf -o pipefail +x +++ cat base-artifacts/git/llvm_rev ++ last_good=3f4bf998e897274758006f8423f2bdcd68cb2d55 ++ local res ++ res=0 ++ wait 19872 ++ git -C llvm rev-parse --verify HEAD ++ assert_with_msg 'Cannot parse HEAD in repo llvm' '[' 0 = 0 ']' ++ set -euf -o pipefail +x ++ single_commit_p llvm ++ set -euf -o pipefail ++ local c=llvm ++ local base_rev cur_rev sha1 +++ get_baseline_git llvm_rev ++ set -euf -o pipefail ++ local base_artifacts=base-artifacts -++ assert_with_msg 'ERROR: No aosp_superproject_rev in baseline git' '[' -f base-artifacts/git/aosp_superproject_rev ']' +++ assert_with_msg 'ERROR: No llvm_rev in baseline git' '[' -f base-artifacts/git/llvm_rev ']' ++ set -euf -o pipefail +x -++ cat base-artifacts/git/aosp_superproject_rev -+ base_rev=b556fc4dba3748c57d6a77b44ab9f5d75d099356 -++ get_current_git aosp_superproject_rev +++ cat base-artifacts/git/llvm_rev ++ base_rev=3f4bf998e897274758006f8423f2bdcd68cb2d55 +++ get_current_git llvm_rev ++ set -euf -o pipefail -++ assert_with_msg 'ERROR: No aosp_superproject_rev in current git' '[' -f artifacts/git/aosp_superproject_rev ']' +++ assert_with_msg 'ERROR: No llvm_rev in current git' '[' -f artifacts/git/llvm_rev ']' ++ set -euf -o pipefail +x -++ cat artifacts/git/aosp_superproject_rev -+ cur_rev=6cf5486b8925224e179123015e7b72d494fa53bd -++ git -C aosp_superproject rev-list --count b556fc4dba3748c57d6a77b44ab9f5d75d099356..6cf5486b8925224e179123015e7b72d494fa53bd -# rev for aosp_superproject : b556fc4dba3748c57d6a77b44ab9f5d75d099356..6cf5486b8925224e179123015e7b72d494fa53bd (185 commits) -+ c_commits=185 -+ echo '# rev for aosp_superproject : b556fc4dba3748c57d6a77b44ab9f5d75d099356..6cf5486b8925224e179123015e7b72d494fa53bd (185 commits)' +++ cat artifacts/git/llvm_rev ++ cur_rev=c249e2778602207f1e770c57123d14bdf078308f +++ git -C llvm rev-parse 'c249e2778602207f1e770c57123d14bdf078308f^@' ++ for sha1 in $(git -C "$c" rev-parse "$cur_rev^@") ++ '[' 7e8eccd990d37d2771ca5ad7a84f54c3cfc4a5e1 = 3f4bf998e897274758006f8423f2bdcd68cb2d55 ']' ++ return 1 +# Debug traces : +# change_kind=single_component : llvm ++ change_kind=single_component ++ echo '# Debug traces :' ++ echo '# change_kind=single_component : llvm' + for c in "${changed_components[@]}" -++ get_baseline_git toolchain_superproject_rev +++ get_baseline_git llvm_rev ++ set -euf -o pipefail ++ local base_artifacts=base-artifacts -++ assert_with_msg 'ERROR: No toolchain_superproject_rev in baseline git' '[' -f base-artifacts/git/toolchain_superproject_rev ']' +++ assert_with_msg 'ERROR: No llvm_rev in baseline git' '[' -f base-artifacts/git/llvm_rev ']' ++ set -euf -o pipefail +x -++ cat base-artifacts/git/toolchain_superproject_rev -+ base_rev=9098f4a1f73318d21def20b564aeac2059806a00 -++ get_current_git toolchain_superproject_rev +++ cat base-artifacts/git/llvm_rev ++ base_rev=3f4bf998e897274758006f8423f2bdcd68cb2d55 +++ get_current_git llvm_rev ++ set -euf -o pipefail -++ assert_with_msg 'ERROR: No toolchain_superproject_rev in current git' '[' -f artifacts/git/toolchain_superproject_rev ']' +++ assert_with_msg 'ERROR: No llvm_rev in current git' '[' -f artifacts/git/llvm_rev ']' ++ set -euf -o pipefail +x -++ cat artifacts/git/toolchain_superproject_rev -+ cur_rev=d35df4f57e24bb369f7da08bccb9ca02542bb785 -++ git -C toolchain_superproject rev-list --count 9098f4a1f73318d21def20b564aeac2059806a00..d35df4f57e24bb369f7da08bccb9ca02542bb785 -# rev for toolchain_superproject : 9098f4a1f73318d21def20b564aeac2059806a00..d35df4f57e24bb369f7da08bccb9ca02542bb785 (6 commits) +++ cat artifacts/git/llvm_rev ++ cur_rev=c249e2778602207f1e770c57123d14bdf078308f +++ git -C llvm rev-list --count 3f4bf998e897274758006f8423f2bdcd68cb2d55..c249e2778602207f1e770c57123d14bdf078308f +# rev for llvm : 3f4bf998e897274758006f8423f2bdcd68cb2d55..c249e2778602207f1e770c57123d14bdf078308f (1079 commits) -+ c_commits=6 -+ echo '# rev for toolchain_superproject : 9098f4a1f73318d21def20b564aeac2059806a00..d35df4f57e24bb369f7da08bccb9ca02542bb785 (6 commits)' ++ c_commits=1079 ++ echo '# rev for llvm : 3f4bf998e897274758006f8423f2bdcd68cb2d55..c249e2778602207f1e770c57123d14bdf078308f (1079 commits)' + echo '' + setup_stages_to_run + '[' ignore = onregression ']' @@ -227,11 +232,11 @@ + generate_extra_details_f=generate_extra_details + case "$ci_project" in + post_interesting_commits init +# post_interesting_commits + set -euf -o pipefail + echo '# post_interesting_commits' -# post_interesting_commits + local stage=init -+ '[' multiple_components '!=' single_commit ']' ++ '[' single_component '!=' single_commit ']' + return + '[' full '!=' full ']' + generate_extra_details @@ -239,14 +244,14 @@ + check_if_first_report + declare -g first_icommit_to_report + first_icommit_to_report=false -+ '[' xmultiple_components '!=' xsingle_commit ']' ++ '[' xsingle_component '!=' xsingle_commit ']' + return + post_interesting_commits full # post_interesting_commits + set -euf -o pipefail + echo '# post_interesting_commits' + local stage=full -+ '[' multiple_components '!=' single_commit ']' ++ '[' single_component '!=' single_commit ']' + return + true + generate_jira_dir @@ -257,7 +262,7 @@ ++ set -euf -o pipefail ++ local print_arg=--entry ++ shift 1 -++ '[' xmultiple_components '!=' xsingle_commit ']' +++ '[' xsingle_component '!=' xsingle_commit ']' ++ return 0 + icommit_entry= + '[' '' '!=' '' ']' @@ -280,9 +285,9 @@ +++ get_current_manifest BUILD_URL +++ get_manifest artifacts/manifest.sh BUILD_URL +++ set +x -++ url=https://ci.linaro.org/job/tcwg_aosp-code_size-dex2oat--oriole-master-build/505/artifact/artifacts +++ url=https://ci.linaro.org/job/tcwg_aosp-code_size-dex2oat--oriole-master-build/507/artifact/artifacts ++ '[' '' '!=' '' ']' -++ echo 'https://ci.linaro.org/job/tcwg_aosp-code_size-dex2oat--oriole-master-build/505/artifact/artifacts/notify/mail-body.txt/*view*/' +++ echo 'https://ci.linaro.org/job/tcwg_aosp-code_size-dex2oat--oriole-master-build/507/artifact/artifacts/notify/mail-body.txt/*view*/' # print all notification files + echo '# print all notification files' + true @@ -290,62 +295,5839 @@ + set -euf -o pipefail + print_mail_recipients + set -euf -o pipefail -+ local c= ++ local c=llvm ++ '[' llvm = '' ']' ++ local -A emails ++ emails["tcwg-validation@linaro.org"]=bcc ++ emails["author"]=cc ++ emails["committer"]=to ++ case "$ci_project/$ci_config:$c" in ++ emails["author"]=no ++ emails["committer"]=no ++ emails["antoine.moynault@linaro.org"]=to ++ local c email base_rev cur_rev +++ get_baseline_git llvm_rev +++ set -euf -o pipefail +++ local base_artifacts=base-artifacts +++ assert_with_msg 'ERROR: No llvm_rev in baseline git' '[' -f base-artifacts/git/llvm_rev ']' +++ set -euf -o pipefail +x +++ cat base-artifacts/git/llvm_rev ++ base_rev=3f4bf998e897274758006f8423f2bdcd68cb2d55 +++ get_current_git llvm_rev +++ set -euf -o pipefail +++ assert_with_msg 'ERROR: No llvm_rev in current git' '[' -f artifacts/git/llvm_rev ']' +++ set -euf -o pipefail +x +++ cat artifacts/git/llvm_rev ++ cur_rev=c249e2778602207f1e770c57123d14bdf078308f ++ read -r email +++ git -C llvm log --pretty=%ae 3f4bf998e897274758006f8423f2bdcd68cb2d55..c249e2778602207f1e770c57123d14bdf078308f ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ local precommit_postcommit=postcommit + '[' '' = '' ']' -+ echo bcc:tcwg-validation@linaro.org -+ return 0 +++ get_baseline_git llvm_rev +++ set -euf -o pipefail +++ local base_artifacts=base-artifacts +++ assert_with_msg 'ERROR: No llvm_rev in baseline git' '[' -f base-artifacts/git/llvm_rev ']' +++ set -euf -o pipefail +x +++ cat base-artifacts/git/llvm_rev ++ base_rev=3f4bf998e897274758006f8423f2bdcd68cb2d55 +++ get_current_git llvm_rev +++ set -euf -o pipefail +++ assert_with_msg 'ERROR: No llvm_rev in current git' '[' -f artifacts/git/llvm_rev ']' +++ set -euf -o pipefail +x +++ cat artifacts/git/llvm_rev ++ cur_rev=c249e2778602207f1e770c57123d14bdf078308f ++ read -r email +++ git -C llvm log --pretty=%ce 3f4bf998e897274758006f8423f2bdcd68cb2d55..c249e2778602207f1e770c57123d14bdf078308f ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ unset 'emails[author]' 'emails[committer]' ++ local type ++ recipients=() ++ local -a recipients ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=bcc ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ recipients+=("$type:$email") ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=to ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ recipients+=("$email") ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ IFS=, ++ echo bcc:tcwg-validation@linaro.org,antoine.moynault@linaro.org ++ print_commits --oneline ++ set -euf -o pipefail ++ false ++ local print_arg=--oneline -++ '[' multiple_components = no_change ']' +++ '[' single_component = no_change ']' ++ local more_lines -++ '[' multiple_components = single_commit ']' -++ '[' multiple_components = single_component ']' -++ '[' multiple_components = multiple_components ']' +++ '[' single_component = single_commit ']' +++ '[' single_component = single_component ']' ++ local new_commits c base_rev cur_rev c_commits components ++ local commits_or_patches ++ '[' '' '!=' '' ']' ++ commits_or_patches=commits ++ new_commits=0 ++ for c in "${changed_components[@]}" -+++ get_baseline_git aosp_superproject_rev -+++ set -euf -o pipefail -+++ local base_artifacts=base-artifacts -+++ assert_with_msg 'ERROR: No aosp_superproject_rev in baseline git' '[' -f base-artifacts/git/aosp_superproject_rev ']' -+++ set -euf -o pipefail +x -+++ cat base-artifacts/git/aosp_superproject_rev -++ base_rev=b556fc4dba3748c57d6a77b44ab9f5d75d099356 -+++ get_current_git aosp_superproject_rev -+++ set -euf -o pipefail -+++ assert_with_msg 'ERROR: No aosp_superproject_rev in current git' '[' -f artifacts/git/aosp_superproject_rev ']' -+++ set -euf -o pipefail +x -+++ cat artifacts/git/aosp_superproject_rev -++ cur_rev=6cf5486b8925224e179123015e7b72d494fa53bd -+++ git -C aosp_superproject rev-list --count b556fc4dba3748c57d6a77b44ab9f5d75d099356..6cf5486b8925224e179123015e7b72d494fa53bd -++ c_commits=185 -++ new_commits=185 -++ for c in "${changed_components[@]}" -+++ get_baseline_git toolchain_superproject_rev ++++ get_baseline_git llvm_rev +++ set -euf -o pipefail +++ local base_artifacts=base-artifacts -+++ assert_with_msg 'ERROR: No toolchain_superproject_rev in baseline git' '[' -f base-artifacts/git/toolchain_superproject_rev ']' ++++ assert_with_msg 'ERROR: No llvm_rev in baseline git' '[' -f base-artifacts/git/llvm_rev ']' +++ set -euf -o pipefail +x -+++ cat base-artifacts/git/toolchain_superproject_rev -++ base_rev=9098f4a1f73318d21def20b564aeac2059806a00 -+++ get_current_git toolchain_superproject_rev ++++ cat base-artifacts/git/llvm_rev +++ base_rev=3f4bf998e897274758006f8423f2bdcd68cb2d55 ++++ get_current_git llvm_rev +++ set -euf -o pipefail -+++ assert_with_msg 'ERROR: No toolchain_superproject_rev in current git' '[' -f artifacts/git/toolchain_superproject_rev ']' ++++ assert_with_msg 'ERROR: No llvm_rev in current git' '[' -f artifacts/git/llvm_rev ']' +++ set -euf -o pipefail +x -+++ cat artifacts/git/toolchain_superproject_rev -++ cur_rev=d35df4f57e24bb369f7da08bccb9ca02542bb785 -+++ git -C toolchain_superproject rev-list --count 9098f4a1f73318d21def20b564aeac2059806a00..d35df4f57e24bb369f7da08bccb9ca02542bb785 -++ c_commits=6 -++ new_commits=191 -+++ echo aosp_superproject toolchain_superproject ++++ cat artifacts/git/llvm_rev +++ cur_rev=c249e2778602207f1e770c57123d14bdf078308f ++++ git -C llvm rev-list --count 3f4bf998e897274758006f8423f2bdcd68cb2d55..c249e2778602207f1e770c57123d14bdf078308f +++ c_commits=1079 +++ new_commits=1079 ++++ echo llvm +++ tr ' ' , -++ components=aosp_superproject,toolchain_superproject -++ echo '191 commits in aosp_superproject,toolchain_superproject' +++ components=llvm +++ echo '1079 commits in llvm' ++ '[' --oneline = --oneline ']' ++ return 0 ++ print_result --oneline @@ -360,17 +6142,17 @@ ++ case "$print_arg" in ++ case "$ci_config" in ++ echo oriole-master -+ echo '[Linaro-TCWG-CI]' '191 commits in aosp_superproject,toolchain_superproject: Success on oriole-master' ++ echo '[Linaro-TCWG-CI]' '1079 commits in llvm: Success on oriole-master' + print_mail_body + local bad_artifacts_url good_artifacts_url ++ get_current_manifest BUILD_URL ++ get_manifest artifacts/manifest.sh BUILD_URL ++ set +x -+ bad_artifacts_url=https://ci.linaro.org/job/tcwg_aosp-code_size-dex2oat--oriole-master-build/505/artifact/artifacts ++ bad_artifacts_url=https://ci.linaro.org/job/tcwg_aosp-code_size-dex2oat--oriole-master-build/507/artifact/artifacts ++ get_baseline_manifest BUILD_URL ++ get_manifest base-artifacts/manifest.sh BUILD_URL false ++ set +x -+ good_artifacts_url=https://ci.linaro.org/job/tcwg_aosp-code_size-dex2oat--oriole-master-build/502/artifact/artifacts ++ good_artifacts_url=https://ci.linaro.org/job/tcwg_aosp-code_size-dex2oat--oriole-master-build/505/artifact/artifacts + cat ++ print_config --short ++ false @@ -382,96 +6164,57 @@ ++ set -euf -o pipefail ++ false ++ local print_arg=--short -++ '[' multiple_components = no_change ']' +++ '[' single_component = no_change ']' ++ local more_lines -++ '[' multiple_components = single_commit ']' -++ '[' multiple_components = single_component ']' -++ '[' multiple_components = multiple_components ']' +++ '[' single_component = single_commit ']' +++ '[' single_component = single_component ']' ++ local new_commits c base_rev cur_rev c_commits components ++ local commits_or_patches ++ '[' '' '!=' '' ']' ++ commits_or_patches=commits ++ new_commits=0 ++ for c in "${changed_components[@]}" -+++ get_baseline_git aosp_superproject_rev -+++ set -euf -o pipefail -+++ local base_artifacts=base-artifacts -+++ assert_with_msg 'ERROR: No aosp_superproject_rev in baseline git' '[' -f base-artifacts/git/aosp_superproject_rev ']' -+++ set -euf -o pipefail +x -+++ cat base-artifacts/git/aosp_superproject_rev -++ base_rev=b556fc4dba3748c57d6a77b44ab9f5d75d099356 -+++ get_current_git aosp_superproject_rev -+++ set -euf -o pipefail -+++ assert_with_msg 'ERROR: No aosp_superproject_rev in current git' '[' -f artifacts/git/aosp_superproject_rev ']' -+++ set -euf -o pipefail +x -+++ cat artifacts/git/aosp_superproject_rev -++ cur_rev=6cf5486b8925224e179123015e7b72d494fa53bd -+++ git -C aosp_superproject rev-list --count b556fc4dba3748c57d6a77b44ab9f5d75d099356..6cf5486b8925224e179123015e7b72d494fa53bd -++ c_commits=185 -++ new_commits=185 -++ for c in "${changed_components[@]}" -+++ get_baseline_git toolchain_superproject_rev ++++ get_baseline_git llvm_rev +++ set -euf -o pipefail +++ local base_artifacts=base-artifacts -+++ assert_with_msg 'ERROR: No toolchain_superproject_rev in baseline git' '[' -f base-artifacts/git/toolchain_superproject_rev ']' ++++ assert_with_msg 'ERROR: No llvm_rev in baseline git' '[' -f base-artifacts/git/llvm_rev ']' +++ set -euf -o pipefail +x -+++ cat base-artifacts/git/toolchain_superproject_rev -++ base_rev=9098f4a1f73318d21def20b564aeac2059806a00 -+++ get_current_git toolchain_superproject_rev ++++ cat base-artifacts/git/llvm_rev +++ base_rev=3f4bf998e897274758006f8423f2bdcd68cb2d55 ++++ get_current_git llvm_rev +++ set -euf -o pipefail -+++ assert_with_msg 'ERROR: No toolchain_superproject_rev in current git' '[' -f artifacts/git/toolchain_superproject_rev ']' ++++ assert_with_msg 'ERROR: No llvm_rev in current git' '[' -f artifacts/git/llvm_rev ']' +++ set -euf -o pipefail +x -+++ cat artifacts/git/toolchain_superproject_rev -++ cur_rev=d35df4f57e24bb369f7da08bccb9ca02542bb785 -+++ git -C toolchain_superproject rev-list --count 9098f4a1f73318d21def20b564aeac2059806a00..d35df4f57e24bb369f7da08bccb9ca02542bb785 -++ c_commits=6 -++ new_commits=191 -+++ echo aosp_superproject toolchain_superproject ++++ cat artifacts/git/llvm_rev +++ cur_rev=c249e2778602207f1e770c57123d14bdf078308f ++++ git -C llvm rev-list --count 3f4bf998e897274758006f8423f2bdcd68cb2d55..c249e2778602207f1e770c57123d14bdf078308f +++ c_commits=1079 +++ new_commits=1079 ++++ echo llvm +++ tr ' ' , -++ components=aosp_superproject,toolchain_superproject -++ echo '191 commits in aosp_superproject,toolchain_superproject' +++ components=llvm +++ echo '1079 commits in llvm' ++ '[' --short = --oneline ']' ++ for c in "${changed_components[@]}" -+++ get_baseline_git aosp_superproject_rev -+++ set -euf -o pipefail -+++ local base_artifacts=base-artifacts -+++ assert_with_msg 'ERROR: No aosp_superproject_rev in baseline git' '[' -f base-artifacts/git/aosp_superproject_rev ']' -+++ set -euf -o pipefail +x -+++ cat base-artifacts/git/aosp_superproject_rev -++ base_rev=b556fc4dba3748c57d6a77b44ab9f5d75d099356 -+++ get_current_git aosp_superproject_rev -+++ set -euf -o pipefail -+++ assert_with_msg 'ERROR: No aosp_superproject_rev in current git' '[' -f artifacts/git/aosp_superproject_rev ']' -+++ set -euf -o pipefail +x -+++ cat artifacts/git/aosp_superproject_rev -++ cur_rev=6cf5486b8925224e179123015e7b72d494fa53bd -+++ git -C aosp_superproject rev-list --count b556fc4dba3748c57d6a77b44ab9f5d75d099356..6cf5486b8925224e179123015e7b72d494fa53bd -++ c_commits=185 -++ '[' '' '!=' '' ']' -++ git -C aosp_superproject log -n 5 --oneline b556fc4dba3748c57d6a77b44ab9f5d75d099356..6cf5486b8925224e179123015e7b72d494fa53bd -++ '[' 185 -gt 5 ']' -++ echo '... and 180 more commits in aosp_superproject' -++ '[' '' '!=' '' ']' -++ for c in "${changed_components[@]}" -+++ get_baseline_git toolchain_superproject_rev ++++ get_baseline_git llvm_rev +++ set -euf -o pipefail +++ local base_artifacts=base-artifacts -+++ assert_with_msg 'ERROR: No toolchain_superproject_rev in baseline git' '[' -f base-artifacts/git/toolchain_superproject_rev ']' ++++ assert_with_msg 'ERROR: No llvm_rev in baseline git' '[' -f base-artifacts/git/llvm_rev ']' +++ set -euf -o pipefail +x -+++ cat base-artifacts/git/toolchain_superproject_rev -++ base_rev=9098f4a1f73318d21def20b564aeac2059806a00 -+++ get_current_git toolchain_superproject_rev ++++ cat base-artifacts/git/llvm_rev +++ base_rev=3f4bf998e897274758006f8423f2bdcd68cb2d55 ++++ get_current_git llvm_rev +++ set -euf -o pipefail -+++ assert_with_msg 'ERROR: No toolchain_superproject_rev in current git' '[' -f artifacts/git/toolchain_superproject_rev ']' ++++ assert_with_msg 'ERROR: No llvm_rev in current git' '[' -f artifacts/git/llvm_rev ']' +++ set -euf -o pipefail +x -+++ cat artifacts/git/toolchain_superproject_rev -++ cur_rev=d35df4f57e24bb369f7da08bccb9ca02542bb785 -+++ git -C toolchain_superproject rev-list --count 9098f4a1f73318d21def20b564aeac2059806a00..d35df4f57e24bb369f7da08bccb9ca02542bb785 -++ c_commits=6 ++++ cat artifacts/git/llvm_rev +++ cur_rev=c249e2778602207f1e770c57123d14bdf078308f ++++ git -C llvm rev-list --count 3f4bf998e897274758006f8423f2bdcd68cb2d55..c249e2778602207f1e770c57123d14bdf078308f +++ c_commits=1079 ++ '[' '' '!=' '' ']' -++ git -C toolchain_superproject log -n 5 --oneline 9098f4a1f73318d21def20b564aeac2059806a00..d35df4f57e24bb369f7da08bccb9ca02542bb785 -++ '[' 6 -gt 5 ']' -++ echo '... and 1 more commits in toolchain_superproject' +++ git -C llvm log -n 5 --oneline 3f4bf998e897274758006f8423f2bdcd68cb2d55..c249e2778602207f1e770c57123d14bdf078308f +++ '[' 1079 -gt 5 ']' +++ echo '... and 1074 more commits in llvm' ++ '[' '' '!=' '' ']' ++ return 0 ++ print_result --short @@ -495,6 +6238,15 @@ ++ echo '' ++ echo From +++ cat base-artifacts/results +# generate dashboard +# generate_dashboard_squad +... Skipping +# post_dashboard_squad +... Skipping +# generate_lnt_report +... Skipping +# post_to_jira +Full stage ran successfully. ++ echo '# reset_artifacts: -10 # build_aosp_toolchain: @@ -512,13 +6264,8 @@ ++ local print_arg=--long ++ case "$print_arg" in ++ echo 'CI config tcwg_aosp-code_size-dex2oat/oriole-master' -+ '[' multiple_components '!=' single_commit ']' ++ '[' single_component '!=' single_commit ']' + return -# generate dashboard -# generate_dashboard_squad -... Skipping -# post_dashboard_squad -... Skipping + echo '# generate dashboard' + generate_dashboard_squad + local results_date @@ -532,10 +6279,8 @@ + echo '... Skipping' + return + generate_lnt_report -+ wait 666268 ++ wait 20004 + set -euf -o pipefail -# generate_lnt_report -... Skipping + echo '# generate_lnt_report' + true + case "$ci_project" in @@ -543,7 +6288,6 @@ + return + false + post_to_jira -# post_to_jira + set -euf -o pipefail + echo '# post_to_jira' + local post_card_comment=false @@ -551,5 +6295,4 @@ + false + false + false -Full stage ran successfully. + echo 'Full stage ran successfully.' diff --git a/jenkins/notify-init.log b/jenkins/notify-init.log index 086757f..8cde9f2 100644 --- a/jenkins/notify-init.log +++ b/jenkins/notify-init.log @@ -1,25 +1,25 @@ ++ pwd ++ cat -+ remote_exec build-08.tcwglab::/home/tcwg-buildslave/workspace/tcwg_aosp_0:-p50075: ./jenkins-scripts/round-robin-notify.sh '@@rr[top_artifacts]' artifacts --notify ignore __stage init __verbose true __build_script tcwg_aosp-build.sh ++ remote_exec build-05.tcwglab::/home/tcwg-buildslave/workspace/tcwg_aosp_1:-p52224: ./jenkins-scripts/round-robin-notify.sh '@@rr[top_artifacts]' artifacts --notify ignore __stage init __verbose true __build_script tcwg_aosp-build.sh + set -euf -o pipefail + local host -++ echo build-08.tcwglab::/home/tcwg-buildslave/workspace/tcwg_aosp_0:-p50075: +++ echo build-05.tcwglab::/home/tcwg-buildslave/workspace/tcwg_aosp_1:-p52224: ++ cut -d: -f 1 -+ host=build-08.tcwglab ++ host=build-05.tcwglab + local port -++ echo build-08.tcwglab::/home/tcwg-buildslave/workspace/tcwg_aosp_0:-p50075: +++ echo build-05.tcwglab::/home/tcwg-buildslave/workspace/tcwg_aosp_1:-p52224: ++ cut -s -d: -f 2 + port= + local dir -++ echo build-08.tcwglab::/home/tcwg-buildslave/workspace/tcwg_aosp_0:-p50075: +++ echo build-05.tcwglab::/home/tcwg-buildslave/workspace/tcwg_aosp_1:-p52224: ++ cut -s -d: -f 3 -+ dir=/home/tcwg-buildslave/workspace/tcwg_aosp_0 ++ dir=/home/tcwg-buildslave/workspace/tcwg_aosp_1 + local opts -++ echo build-08.tcwglab::/home/tcwg-buildslave/workspace/tcwg_aosp_0:-p50075: +++ echo build-05.tcwglab::/home/tcwg-buildslave/workspace/tcwg_aosp_1:-p52224: ++ cut -s -d: -f 4 -+ opts=-p50075 ++ opts=-p52224 + local env_vars -++ echo build-08.tcwglab::/home/tcwg-buildslave/workspace/tcwg_aosp_0:-p50075: +++ echo build-05.tcwglab::/home/tcwg-buildslave/workspace/tcwg_aosp_1:-p52224: ++ cut -s -d: -f 5 + env_vars= + shift @@ -58,10 +58,10 @@ + for i in "$@" + cmd+=("$(printf '%q' "$i")") ++ printf %q tcwg_aosp-build.sh -++ printf %q /home/tcwg-buildslave/workspace/tcwg_aosp_0 -+ ssh -p50075 build-08.tcwglab 'cd /home/tcwg-buildslave/workspace/tcwg_aosp_0 && exec ./jenkins-scripts/round-robin-notify.sh @@rr\[top_artifacts\] artifacts --notify ignore __stage init __verbose true __build_script tcwg_aosp-build.sh' +++ printf %q /home/tcwg-buildslave/workspace/tcwg_aosp_1 ++ ssh -p52224 build-05.tcwglab 'cd /home/tcwg-buildslave/workspace/tcwg_aosp_1 && exec ./jenkins-scripts/round-robin-notify.sh @@rr\[top_artifacts\] artifacts --notify ignore __stage init __verbose true __build_script tcwg_aosp-build.sh' -/home/tcwg-buildslave/workspace/tcwg_aosp_0/jenkins-scripts/round-robin-notify.sh @@rr[top_artifacts] artifacts --notify ignore __stage init __verbose true __build_script tcwg_aosp-build.sh +/home/tcwg-buildslave/workspace/tcwg_aosp_1/jenkins-scripts/round-robin-notify.sh @@rr[top_artifacts] artifacts --notify ignore __stage init __verbose true __build_script tcwg_aosp-build.sh + false + dryrun= @@ -75,35 +75,35 @@ + echo '# setup_notify_environment' + top_artifacts=artifacts ++ get_current_manifest '{rr[ci_project]}' -# Debug traces : ++ get_manifest artifacts/manifest.sh '{rr[ci_project]}' ++ set +x + ci_project=tcwg_aosp-code_size-dex2oat ++ get_current_manifest '{rr[ci_config]}' ++ get_manifest artifacts/manifest.sh '{rr[ci_config]}' ++ set +x +# Debug traces : + ci_config=oriole-master + echo '# Debug traces :' ++ get_baseline_manifest BUILD_URL ++ get_manifest base-artifacts/manifest.sh BUILD_URL false ++ set +x -# Baseline : https://ci.linaro.org/job/tcwg_aosp-code_size-dex2oat--oriole-master-build/502/ +# Baseline : https://ci.linaro.org/job/tcwg_aosp-code_size-dex2oat--oriole-master-build/505/ # Using dir : base-artifacts -+ echo '# Baseline : https://ci.linaro.org/job/tcwg_aosp-code_size-dex2oat--oriole-master-build/502/' ++ echo '# Baseline : https://ci.linaro.org/job/tcwg_aosp-code_size-dex2oat--oriole-master-build/505/' + echo '# Using dir : base-artifacts' ++ get_current_manifest BUILD_URL ++ get_manifest artifacts/manifest.sh BUILD_URL ++ set +x -# Artifacts : https://ci.linaro.org/job/tcwg_aosp-code_size-dex2oat--oriole-master-build/505/ +# Artifacts : https://ci.linaro.org/job/tcwg_aosp-code_size-dex2oat--oriole-master-build/507/ # Using dir : artifacts -+ echo '# Artifacts : https://ci.linaro.org/job/tcwg_aosp-code_size-dex2oat--oriole-master-build/505/' ++ echo '# Artifacts : https://ci.linaro.org/job/tcwg_aosp-code_size-dex2oat--oriole-master-build/507/' + echo '# Using dir : artifacts' + echo '' + mkdir -p artifacts/notify + '[' -f /home/tcwg-buildslave/.jipdate.yml ']' -# check_source_changes + set +x +# check_source_changes + declare -Ag pw + '[' ignore = precommit ']' + check_source_changes @@ -111,7 +111,7 @@ ++ get_current_manifest '{rr[update_baseline]}' ++ get_manifest artifacts/manifest.sh '{rr[update_baseline]}' ++ set +x -+ '[' onsuccess '!=' init ']' ++ '[' force '!=' init ']' + IFS=' ' + read -r -a changed_components ++ print_changed_components @@ -121,94 +121,98 @@ +++ set -euf -o pipefail +++ local c delim= +++ for c in ${rr[components]} -+++ '[' xhttps://android.googlesource.com/platform/superproject/main.git#main '!=' xbaseline ']' -+++ echo -ne aosp_superproject -+++ delim=' ' -+++ for c in ${rr[components]} +++ '[' xbaseline '!=' xbaseline ']' +++ for c in ${rr[components]} -+++ '[' xhttps://android.googlesource.com/platform/superproject#llvm-toolchain '!=' xbaseline ']' -+++ echo -ne ' toolchain_superproject' ++++ '[' xhttps://github.com/llvm/llvm-project.git#c249e2778602207f1e770c57123d14bdf078308f '!=' xbaseline ']' ++++ echo -ne llvm +++ delim=' ' ++++ for c in ${rr[components]} ++++ '[' xbaseline '!=' xbaseline ']' +++ echo ++ for c in $(print_updated_components) -+++ get_current_git aosp_superproject_rev -+++ set -euf -o pipefail -+++ assert_with_msg 'ERROR: No aosp_superproject_rev in current git' '[' -f artifacts/git/aosp_superproject_rev ']' -+++ set -euf -o pipefail +x -+++ cat artifacts/git/aosp_superproject_rev -+++ get_baseline_git aosp_superproject_rev -+++ set -euf -o pipefail -+++ local base_artifacts=base-artifacts -+++ assert_with_msg 'ERROR: No aosp_superproject_rev in baseline git' '[' -f base-artifacts/git/aosp_superproject_rev ']' -+++ set -euf -o pipefail +x -+++ cat base-artifacts/git/aosp_superproject_rev -++ '[' x6cf5486b8925224e179123015e7b72d494fa53bd '!=' xb556fc4dba3748c57d6a77b44ab9f5d75d099356 ']' -++ echo -ne aosp_superproject -# Debug traces : -# change_kind=multiple_components : aosp_superproject toolchain_superproject -++ delim=' ' -++ for c in $(print_updated_components) -+++ get_current_git toolchain_superproject_rev ++++ get_current_git llvm_rev +++ set -euf -o pipefail -+++ assert_with_msg 'ERROR: No toolchain_superproject_rev in current git' '[' -f artifacts/git/toolchain_superproject_rev ']' ++++ assert_with_msg 'ERROR: No llvm_rev in current git' '[' -f artifacts/git/llvm_rev ']' +++ set -euf -o pipefail +x -+++ cat artifacts/git/toolchain_superproject_rev -+++ get_baseline_git toolchain_superproject_rev ++++ cat artifacts/git/llvm_rev ++++ get_baseline_git llvm_rev +++ set -euf -o pipefail +++ local base_artifacts=base-artifacts -+++ assert_with_msg 'ERROR: No toolchain_superproject_rev in baseline git' '[' -f base-artifacts/git/toolchain_superproject_rev ']' ++++ assert_with_msg 'ERROR: No llvm_rev in baseline git' '[' -f base-artifacts/git/llvm_rev ']' +++ set -euf -o pipefail +x -+++ cat base-artifacts/git/toolchain_superproject_rev -++ '[' xd35df4f57e24bb369f7da08bccb9ca02542bb785 '!=' x9098f4a1f73318d21def20b564aeac2059806a00 ']' -++ echo -ne ' toolchain_superproject' ++++ cat base-artifacts/git/llvm_rev +++ '[' xc249e2778602207f1e770c57123d14bdf078308f '!=' x3f4bf998e897274758006f8423f2bdcd68cb2d55 ']' +++ echo -ne llvm ++ delim=' ' ++ echo + local c base_rev cur_rev c_commits -+ '[' 2 = 0 ']' -+ '[' 2 = 1 ']' -+ change_kind=multiple_components -+ changed_single_component= -+ echo '# Debug traces :' -+ echo '# change_kind=multiple_components : aosp_superproject toolchain_superproject' -+ for c in "${changed_components[@]}" -++ get_baseline_git aosp_superproject_rev ++ '[' 1 = 0 ']' ++ '[' 1 = 1 ']' ++ changed_single_component=llvm +++ get_current_git llvm_rev +++ set -euf -o pipefail +++ assert_with_msg 'ERROR: No llvm_rev in current git' '[' -f artifacts/git/llvm_rev ']' +++ set -euf -o pipefail +x +++ cat artifacts/git/llvm_rev ++ first_bad=c249e2778602207f1e770c57123d14bdf078308f +++ get_baseline_git llvm_rev +++ set -euf -o pipefail +++ local base_artifacts=base-artifacts +++ assert_with_msg 'ERROR: No llvm_rev in baseline git' '[' -f base-artifacts/git/llvm_rev ']' +++ set -euf -o pipefail +x +++ cat base-artifacts/git/llvm_rev ++ last_good=3f4bf998e897274758006f8423f2bdcd68cb2d55 ++ local res ++ res=0 ++ wait 19759 ++ git -C llvm rev-parse --verify HEAD ++ assert_with_msg 'Cannot parse HEAD in repo llvm' '[' 0 = 0 ']' ++ set -euf -o pipefail +x ++ single_commit_p llvm ++ set -euf -o pipefail ++ local c=llvm ++ local base_rev cur_rev sha1 +++ get_baseline_git llvm_rev ++ set -euf -o pipefail ++ local base_artifacts=base-artifacts -++ assert_with_msg 'ERROR: No aosp_superproject_rev in baseline git' '[' -f base-artifacts/git/aosp_superproject_rev ']' +++ assert_with_msg 'ERROR: No llvm_rev in baseline git' '[' -f base-artifacts/git/llvm_rev ']' ++ set -euf -o pipefail +x -++ cat base-artifacts/git/aosp_superproject_rev -+ base_rev=b556fc4dba3748c57d6a77b44ab9f5d75d099356 -++ get_current_git aosp_superproject_rev +++ cat base-artifacts/git/llvm_rev ++ base_rev=3f4bf998e897274758006f8423f2bdcd68cb2d55 +++ get_current_git llvm_rev ++ set -euf -o pipefail -++ assert_with_msg 'ERROR: No aosp_superproject_rev in current git' '[' -f artifacts/git/aosp_superproject_rev ']' +++ assert_with_msg 'ERROR: No llvm_rev in current git' '[' -f artifacts/git/llvm_rev ']' ++ set -euf -o pipefail +x -++ cat artifacts/git/aosp_superproject_rev -+ cur_rev=6cf5486b8925224e179123015e7b72d494fa53bd -++ git -C aosp_superproject rev-list --count b556fc4dba3748c57d6a77b44ab9f5d75d099356..6cf5486b8925224e179123015e7b72d494fa53bd -# rev for aosp_superproject : b556fc4dba3748c57d6a77b44ab9f5d75d099356..6cf5486b8925224e179123015e7b72d494fa53bd (185 commits) -+ c_commits=185 -+ echo '# rev for aosp_superproject : b556fc4dba3748c57d6a77b44ab9f5d75d099356..6cf5486b8925224e179123015e7b72d494fa53bd (185 commits)' +++ cat artifacts/git/llvm_rev ++ cur_rev=c249e2778602207f1e770c57123d14bdf078308f +++ git -C llvm rev-parse 'c249e2778602207f1e770c57123d14bdf078308f^@' ++ for sha1 in $(git -C "$c" rev-parse "$cur_rev^@") ++ '[' 7e8eccd990d37d2771ca5ad7a84f54c3cfc4a5e1 = 3f4bf998e897274758006f8423f2bdcd68cb2d55 ']' ++ return 1 +# Debug traces : +# change_kind=single_component : llvm ++ change_kind=single_component ++ echo '# Debug traces :' ++ echo '# change_kind=single_component : llvm' + for c in "${changed_components[@]}" -++ get_baseline_git toolchain_superproject_rev +++ get_baseline_git llvm_rev ++ set -euf -o pipefail ++ local base_artifacts=base-artifacts -++ assert_with_msg 'ERROR: No toolchain_superproject_rev in baseline git' '[' -f base-artifacts/git/toolchain_superproject_rev ']' +++ assert_with_msg 'ERROR: No llvm_rev in baseline git' '[' -f base-artifacts/git/llvm_rev ']' ++ set -euf -o pipefail +x -++ cat base-artifacts/git/toolchain_superproject_rev -+ base_rev=9098f4a1f73318d21def20b564aeac2059806a00 -++ get_current_git toolchain_superproject_rev +++ cat base-artifacts/git/llvm_rev ++ base_rev=3f4bf998e897274758006f8423f2bdcd68cb2d55 +++ get_current_git llvm_rev ++ set -euf -o pipefail -++ assert_with_msg 'ERROR: No toolchain_superproject_rev in current git' '[' -f artifacts/git/toolchain_superproject_rev ']' +++ assert_with_msg 'ERROR: No llvm_rev in current git' '[' -f artifacts/git/llvm_rev ']' ++ set -euf -o pipefail +x -++ cat artifacts/git/toolchain_superproject_rev -+ cur_rev=d35df4f57e24bb369f7da08bccb9ca02542bb785 -++ git -C toolchain_superproject rev-list --count 9098f4a1f73318d21def20b564aeac2059806a00..d35df4f57e24bb369f7da08bccb9ca02542bb785 -# rev for toolchain_superproject : 9098f4a1f73318d21def20b564aeac2059806a00..d35df4f57e24bb369f7da08bccb9ca02542bb785 (6 commits) +++ cat artifacts/git/llvm_rev ++ cur_rev=c249e2778602207f1e770c57123d14bdf078308f +++ git -C llvm rev-list --count 3f4bf998e897274758006f8423f2bdcd68cb2d55..c249e2778602207f1e770c57123d14bdf078308f +# rev for llvm : 3f4bf998e897274758006f8423f2bdcd68cb2d55..c249e2778602207f1e770c57123d14bdf078308f (1079 commits) -# post_interesting_commits -+ c_commits=6 -+ echo '# rev for toolchain_superproject : 9098f4a1f73318d21def20b564aeac2059806a00..d35df4f57e24bb369f7da08bccb9ca02542bb785 (6 commits)' ++ c_commits=1079 ++ echo '# rev for llvm : 3f4bf998e897274758006f8423f2bdcd68cb2d55..c249e2778602207f1e770c57123d14bdf078308f (1079 commits)' + echo '' + setup_stages_to_run + '[' ignore = onregression ']' @@ -228,10 +232,11 @@ + generate_extra_details_f=generate_extra_details + case "$ci_project" in + post_interesting_commits init +# post_interesting_commits + set -euf -o pipefail + echo '# post_interesting_commits' + local stage=init -+ '[' multiple_components '!=' single_commit ']' ++ '[' single_component '!=' single_commit ']' + return Init stage ran successfully. + '[' init '!=' full ']' diff --git a/jenkins/rewrite.log b/jenkins/rewrite.log index 4177ef5..c1108b3 100644 --- a/jenkins/rewrite.log +++ b/jenkins/rewrite.log @@ -1,25 +1,25 @@ ++ pwd ++ cat -+ remote_exec build-08.tcwglab::/home/tcwg-buildslave/workspace/tcwg_aosp_0:-p50075: ./jenkins-scripts/round-robin-baseline.sh '@@rr[top_artifacts]' artifacts __build_script tcwg_aosp-build.sh __push_base_artifacts true __rewrite_base_artifacts true __rewrite_num 100 ++ remote_exec build-05.tcwglab::/home/tcwg-buildslave/workspace/tcwg_aosp_1:-p52224: ./jenkins-scripts/round-robin-baseline.sh '@@rr[top_artifacts]' artifacts __build_script tcwg_aosp-build.sh __push_base_artifacts true __rewrite_base_artifacts true __rewrite_num 100 + set -euf -o pipefail + local host -++ echo build-08.tcwglab::/home/tcwg-buildslave/workspace/tcwg_aosp_0:-p50075: +++ echo build-05.tcwglab::/home/tcwg-buildslave/workspace/tcwg_aosp_1:-p52224: ++ cut -d: -f 1 -+ host=build-08.tcwglab ++ host=build-05.tcwglab + local port -++ echo build-08.tcwglab::/home/tcwg-buildslave/workspace/tcwg_aosp_0:-p50075: +++ echo build-05.tcwglab::/home/tcwg-buildslave/workspace/tcwg_aosp_1:-p52224: ++ cut -s -d: -f 2 + port= + local dir -++ echo build-08.tcwglab::/home/tcwg-buildslave/workspace/tcwg_aosp_0:-p50075: +++ echo build-05.tcwglab::/home/tcwg-buildslave/workspace/tcwg_aosp_1:-p52224: ++ cut -s -d: -f 3 -+ dir=/home/tcwg-buildslave/workspace/tcwg_aosp_0 ++ dir=/home/tcwg-buildslave/workspace/tcwg_aosp_1 + local opts -++ echo build-08.tcwglab::/home/tcwg-buildslave/workspace/tcwg_aosp_0:-p50075: +++ echo build-05.tcwglab::/home/tcwg-buildslave/workspace/tcwg_aosp_1:-p52224: ++ cut -s -d: -f 4 -+ opts=-p50075 ++ opts=-p52224 + local env_vars -++ echo build-08.tcwglab::/home/tcwg-buildslave/workspace/tcwg_aosp_0:-p50075: +++ echo build-05.tcwglab::/home/tcwg-buildslave/workspace/tcwg_aosp_1:-p52224: ++ cut -s -d: -f 5 + env_vars= + shift @@ -58,8 +58,8 @@ + for i in "$@" + cmd+=("$(printf '%q' "$i")") ++ printf %q 100 -++ printf %q /home/tcwg-buildslave/workspace/tcwg_aosp_0 -+ ssh -p50075 build-08.tcwglab 'cd /home/tcwg-buildslave/workspace/tcwg_aosp_0 && exec ./jenkins-scripts/round-robin-baseline.sh @@rr\[top_artifacts\] artifacts __build_script tcwg_aosp-build.sh __push_base_artifacts true __rewrite_base_artifacts true __rewrite_num 100' +++ printf %q /home/tcwg-buildslave/workspace/tcwg_aosp_1 ++ ssh -p52224 build-05.tcwglab 'cd /home/tcwg-buildslave/workspace/tcwg_aosp_1 && exec ./jenkins-scripts/round-robin-baseline.sh @@rr\[top_artifacts\] artifacts __build_script tcwg_aosp-build.sh __push_base_artifacts true __rewrite_base_artifacts true __rewrite_num 100' + declare -g rewrite_base_artifacts_first=true + true + update_baseline diff --git a/jenkins/run-build.env b/jenkins/run-build.env index 6fa92fa..791ff54 100644 --- a/jenkins/run-build.env +++ b/jenkins/run-build.env @@ -1,11 +1,9 @@ -build_name="#505" +build_name="#507" docker_opts=(--distro default ) source build_container.sh trap "cleanup_all_containers" EXIT -build_name="#505-aosp_superproject-toolchain_superproject" -branch_opt=(==rr\[aosp_superproject_git\] -https://android.googlesource.com/platform/superproject/main.git#main -==rr\[toolchain_superproject_git\] -https://android.googlesource.com/platform/superproject#llvm-toolchain ) -build_name="#505-aosp_superproject-toolchain_superproject-R1" +build_name="#507-llvm" +branch_opt=(==rr\[llvm_git\] +https://github.com/llvm/llvm-project.git#c249e2778602207f1e770c57123d14bdf078308f ) +build_name="#507-llvm-R1-force" diff --git a/manifest.sh b/manifest.sh index ed64dcb..d43f8ce 100644 --- a/manifest.sh +++ b/manifest.sh @@ -6,21 +6,21 @@ rr[ci_config]="oriole-master" declare -g "bmk_branch=master" declare -g "scripts_branch=master" rr[mode]="build" -rr[update_baseline]="onsuccess" -declare -g "BUILD_URL=https://ci.linaro.org/job/tcwg_aosp-code_size-dex2oat--oriole-master-build/505/" +rr[update_baseline]="force" +declare -g "BUILD_URL=https://ci.linaro.org/job/tcwg_aosp-code_size-dex2oat--oriole-master-build/507/" declare -g "SQUAD_GRP=tcwg" -rr[aosp_superproject_git]="https://android.googlesource.com/platform/superproject/main.git#main" -rr[toolchain_superproject_git]="https://android.googlesource.com/platform/superproject#llvm-toolchain" +rr[llvm_git]="https://github.com/llvm/llvm-project.git#c249e2778602207f1e770c57123d14bdf078308f" # Saving rr[] in the manifest rr[abe_branch]="master" rr[abe_repo]="https://git-us.linaro.org/toolchain/abe.git" +rr[aosp_superproject_git]="baseline" rr[baseline_branch]="linaro-local/ci/tcwg_aosp-code_size-dex2oat/oriole-master" rr[breakup_changed_components]="breakup_changed_components llvm" rr[components]="aosp_superproject llvm toolchain_superproject" rr[host_c++]="/usr/bin/g++" rr[host_cc]="/usr/bin/gcc" -rr[llvm_git]="baseline" rr[no_regression_p]="no_regression_p" rr[no_regression_result]="0" rr[old_format_baseline_branch]="linaro-local/ci/tcwg_aosp-code_size-dex2oat/oriole-master" +rr[toolchain_superproject_git]="baseline" declare -g "notify=ignore" diff --git a/notify/jira/comment-template.txt b/notify/jira/comment-template.txt index afe592c..480161d 100644 --- a/notify/jira/comment-template.txt +++ b/notify/jira/comment-template.txt @@ -1,3 +1,3 @@ [GNU-692] Success -Details: https://ci.linaro.org/job/tcwg_aosp-code_size-dex2oat--oriole-master-build/505/artifact/artifacts/notify/mail-body.txt/*view*/ +Details: https://ci.linaro.org/job/tcwg_aosp-code_size-dex2oat--oriole-master-build/507/artifact/artifacts/notify/mail-body.txt/*view*/ diff --git a/notify/mail-body.txt b/notify/mail-body.txt index 77a2791..1ee495b 100644 --- a/notify/mail-body.txt +++ b/notify/mail-body.txt @@ -2,19 +2,13 @@ Dear contributor, our automatic CI has detected problems related to your patch(e In CI config tcwg_aosp-code_size-dex2oat/oriole-master after: - | 191 commits in aosp_superproject,toolchain_superproject - | 6cf5486b892 Relocating proto enums to stats_log_enums.proto - | e773a286a26 Add operation progress check to runTimed(). - | c02a08dfeb9 Merge "bt_trace: Delete ScopedIndent" into main - | 6d841cb3718 Fix logic for device image change - | 105b4cf16dd [Thread] rename attach to join and detach to leave - | ... and 180 more commits in aosp_superproject - | d35df4f57e2 Merge "Fix riscv64 stpcpy()." into main - | bc3f7a2d0f0 Merge "Invoke check_call when creating/extracting tars" into main - | f4ea116650a Merge "Sort lines in clang_source_info.md" into main - | 1cf79a800eb Merge "Explain why system(3)'s argument is marked _Nonnull." into main - | 17c267d731e Merge "Build musl libc++ for MuslHostRuntimeBuilder's sake" into main - | ... and 1 more commits in toolchain_superproject + | 1079 commits in llvm + | c249e2778602 [RISCV] Add missing break in switch-case in convertToThreeAddress function. NFC. + | 7e8eccd990d3 [AArch64] Move SLS later in pass pipeline + | 419c6da3d763 [mlir][LLVM] Verify too many indices in GEP verifier (#70174) + | 2399c77c8593 [Clang][DebugInfo] Clang generates an extra spurious unnamed 'dbg.declare' (#69681) + | c912f88c2177 [InstCombine] Remove false commutativity from processUMulZExtIdiom() (NFCI) + | ... and 1074 more commits in llvm Results changed to # reset_artifacts: @@ -50,6 +44,6 @@ CI config tcwg_aosp-code_size-dex2oat/oriole-master -----------------8<--------------------------8<--------------------------8<-------------------------- The information below can be used to reproduce a debug environment: -Current build : https://ci.linaro.org/job/tcwg_aosp-code_size-dex2oat--oriole-master-build/505/artifact/artifacts -Reference build : https://ci.linaro.org/job/tcwg_aosp-code_size-dex2oat--oriole-master-build/502/artifact/artifacts +Current build : https://ci.linaro.org/job/tcwg_aosp-code_size-dex2oat--oriole-master-build/507/artifact/artifacts +Reference build : https://ci.linaro.org/job/tcwg_aosp-code_size-dex2oat--oriole-master-build/505/artifact/artifacts diff --git a/notify/mail-recipients.txt b/notify/mail-recipients.txt index aa219ef..ba925c1 100644 --- a/notify/mail-recipients.txt +++ b/notify/mail-recipients.txt @@ -1 +1 @@ -bcc:tcwg-validation@linaro.org +bcc:tcwg-validation@linaro.org,antoine.moynault@linaro.org diff --git a/notify/mail-subject.txt b/notify/mail-subject.txt index b5561b3..6f5b89b 100644 --- a/notify/mail-subject.txt +++ b/notify/mail-subject.txt @@ -1 +1 @@ -[Linaro-TCWG-CI] 191 commits in aosp_superproject,toolchain_superproject: Success on oriole-master +[Linaro-TCWG-CI] 1079 commits in llvm: Success on oriole-master diff --git a/results-vs-first/results.csv b/results-vs-first/results.csv index 361ead7..fab2b21 100644 --- a/results-vs-first/results.csv +++ b/results-vs-first/results.csv @@ -6,20 +6,20 @@ out/soong/.intermediates/packages/modules/StatsD/lib/libstatssocket/libstatssock out/soong/.intermediates/bionic/libm/libm/android_arm64_armv8-2a_cortex-a55_shared_current/libm.so,binary,100,24046,24046 out/soong/.intermediates/external/zlib/libz/android_arm64_armv8-2a_cortex-a55_shared_current/libz.so,binary,100,9027,9027 out/soong/.intermediates/bionic/libc/libc/android_arm64_armv8-2a_cortex-a55_shared_current/libc.so,binary,101,126883,128193 -out/soong/.intermediates/external/lzma/C/liblzma/android_arm64_armv8-2a_cortex-a55_shared_apex31/unstripped/liblzma.so,binary,99,175487,173243 -out/soong/.intermediates/external/lz4/lib/liblz4/android_arm64_armv8-2a_cortex-a55_shared_apex31/unstripped/liblz4.so,binary,101,160379,162651 -out/soong/.intermediates/external/boringssl/libcrypto/android_arm64_armv8-2a_cortex-a55_shared_apex31/unhashed/libcrypto.so,binary,n/a,-1,1357637 -out/soong/.intermediates/external/libcxx/libc++/android_arm64_armv8-2a_cortex-a55_shared_apex31/unstripped/libc++.so,binary,n/a,-1,698050 +out/soong/.intermediates/external/lzma/C/liblzma/android_arm64_armv8-2a_cortex-a55_shared_apex31/unstripped/liblzma.so,binary,99,175487,173919 +out/soong/.intermediates/external/lz4/lib/liblz4/android_arm64_armv8-2a_cortex-a55_shared_apex31/unstripped/liblz4.so,binary,101,160379,162415 +out/soong/.intermediates/external/boringssl/libcrypto/android_arm64_armv8-2a_cortex-a55_shared_apex31/unhashed/libcrypto.so,binary,n/a,-1,1357933 +out/soong/.intermediates/external/libcxx/libc++/android_arm64_armv8-2a_cortex-a55_shared_apex31/unstripped/libc++.so,binary,n/a,-1,697778 out/soong/.intermediates/art/libartpalette/libartpalette/android_arm64_armv8-2a_cortex-a55_shared_apex31/e4694d05f1cb76fefd10c9c37c092ec4/unstripped/libartpalette.so,binary,n/a,-1,7541 -out/soong/.intermediates/art/libnativebridge/libnativebridge/android_arm64_armv8-2a_cortex-a55_shared_apex31/e4694d05f1cb76fefd10c9c37c092ec4/unstripped/libnativebridge.so,binary,n/a,-1,13181 -out/soong/.intermediates/system/libbase/libbase/android_arm64_armv8-2a_cortex-a55_shared_apex31/unstripped/libbase.so,binary,n/a,-1,267096 -out/soong/.intermediates/art/libartbase/libartbase/android_arm64_armv8-2a_cortex-a55_shared_apex31/e4694d05f1cb76fefd10c9c37c092ec4/unstripped/libartbase.so,binary,n/a,-1,332794 -out/soong/.intermediates/art/libnativeloader/libnativeloader/android_arm64_armv8-2a_cortex-a55_shared_apex31/e4694d05f1cb76fefd10c9c37c092ec4/unstripped/libnativeloader.so,binary,n/a,-1,124128 -out/soong/.intermediates/art/libdexfile/libdexfile/android_arm64_armv8-2a_cortex-a55_shared_apex31/e4694d05f1cb76fefd10c9c37c092ec4/unstripped/libdexfile.so,binary,n/a,-1,214568 -out/soong/.intermediates/art/libprofile/libprofile/android_arm64_armv8-2a_cortex-a55_shared_apex31/e4694d05f1cb76fefd10c9c37c092ec4/unstripped/libprofile.so,binary,n/a,-1,130948 +out/soong/.intermediates/system/libbase/libbase/android_arm64_armv8-2a_cortex-a55_shared_apex31/unstripped/libbase.so,binary,n/a,-1,266720 +out/soong/.intermediates/art/libartbase/libartbase/android_arm64_armv8-2a_cortex-a55_shared_apex31/e4694d05f1cb76fefd10c9c37c092ec4/unstripped/libartbase.so,binary,n/a,-1,332686 +out/soong/.intermediates/art/libnativebridge/libnativebridge/android_arm64_armv8-2a_cortex-a55_shared_apex31/e4694d05f1cb76fefd10c9c37c092ec4/unstripped/libnativebridge.so,binary,n/a,-1,13197 +out/soong/.intermediates/art/libdexfile/libdexfile/android_arm64_armv8-2a_cortex-a55_shared_apex31/e4694d05f1cb76fefd10c9c37c092ec4/unstripped/libdexfile.so,binary,n/a,-1,214460 +out/soong/.intermediates/art/libnativeloader/libnativeloader/android_arm64_armv8-2a_cortex-a55_shared_apex31/e4694d05f1cb76fefd10c9c37c092ec4/unstripped/libnativeloader.so,binary,n/a,-1,124152 +out/soong/.intermediates/art/libprofile/libprofile/android_arm64_armv8-2a_cortex-a55_shared_apex31/e4694d05f1cb76fefd10c9c37c092ec4/unstripped/libprofile.so,binary,n/a,-1,130916 out/soong/.intermediates/external/perfetto/heapprofd_client_api/android_arm64_armv8-2a_cortex-a55_shared_current/e4694d05f1cb76fefd10c9c37c092ec4/heapprofd_client_api.so,binary,n/a,-1,1048 -out/soong/.intermediates/art/sigchainlib/libsigchain/android_arm64_armv8-2a_cortex-a55_shared_apex31/e4694d05f1cb76fefd10c9c37c092ec4/unstripped/libsigchain.so,binary,n/a,-1,21580 -out/soong/.intermediates/system/unwinding/libunwindstack/libunwindstack/android_arm64_armv8-2a_cortex-a55_shared_apex31/e4694d05f1cb76fefd10c9c37c092ec4/unstripped/libunwindstack.so,binary,n/a,-1,721015 -out/soong/.intermediates/art/dexlayout/libart-dexlayout/android_arm64_armv8-2a_cortex-a55_shared_apex31/e4694d05f1cb76fefd10c9c37c092ec4/unstripped/libart-dexlayout.so,binary,n/a,-1,320778 -out/soong/.intermediates/art/runtime/libart/android_arm64_armv8-2a_cortex-a55_shared_apex31/85eaf79f2cdb3360398d24cccc67f3ae/unstripped/libart.so,binary,n/a,-1,11078050 -out/soong/.intermediates/art/dex2oat/dex2oat/android_arm64_armv8-2a_cortex-a55_apex31/85eaf79f2cdb3360398d24cccc67f3ae/unstripped/dex2oat64,binary,n/a,-1,1037926 +out/soong/.intermediates/art/sigchainlib/libsigchain/android_arm64_armv8-2a_cortex-a55_shared_apex31/e4694d05f1cb76fefd10c9c37c092ec4/unstripped/libsigchain.so,binary,n/a,-1,21464 +out/soong/.intermediates/system/unwinding/libunwindstack/libunwindstack/android_arm64_armv8-2a_cortex-a55_shared_apex31/e4694d05f1cb76fefd10c9c37c092ec4/unstripped/libunwindstack.so,binary,n/a,-1,721175 +out/soong/.intermediates/art/dexlayout/libart-dexlayout/android_arm64_armv8-2a_cortex-a55_shared_apex31/e4694d05f1cb76fefd10c9c37c092ec4/unstripped/libart-dexlayout.so,binary,n/a,-1,320682 +out/soong/.intermediates/art/runtime/libart/android_arm64_armv8-2a_cortex-a55_shared_apex31/85eaf79f2cdb3360398d24cccc67f3ae/unstripped/libart.so,binary,n/a,-1,11084470 +out/soong/.intermediates/art/dex2oat/dex2oat/android_arm64_armv8-2a_cortex-a55_apex31/85eaf79f2cdb3360398d24cccc67f3ae/unstripped/dex2oat64,binary,n/a,-1,1035502 diff --git a/results-vs-prev/results.csv b/results-vs-prev/results.csv index 4e94c67..db17530 100644 --- a/results-vs-prev/results.csv +++ b/results-vs-prev/results.csv @@ -1,25 +1,25 @@ benchmark,symbol,rel_size,size_x,size_y -out/soong/.intermediates/bionic/libdl/libdl/android_arm64_armv8-2a_cortex-a55_shared_current/libdl.so,binary,100,1352,1352 out/soong/.intermediates/bionic/libm/libm/android_arm64_armv8-2a_cortex-a55_shared_current/libm.so,binary,100,24046,24046 -out/soong/.intermediates/system/logging/liblog/liblog/android_arm64_armv8-2a_cortex-a55_shared_current/liblog.so,binary,100,4867,4867 +out/soong/.intermediates/bionic/libdl/libdl/android_arm64_armv8-2a_cortex-a55_shared_current/libdl.so,binary,100,1352,1352 out/soong/.intermediates/bionic/libc/libc/android_arm64_armv8-2a_cortex-a55_shared_current/libc.so,binary,100,128193,128193 +out/soong/.intermediates/system/logging/liblog/liblog/android_arm64_armv8-2a_cortex-a55_shared_current/liblog.so,binary,100,4867,4867 +out/soong/.intermediates/external/boringssl/libcrypto/android_arm64_armv8-2a_cortex-a55_shared_apex31/unhashed/libcrypto.so,binary,100,1357637,1357933 +out/soong/.intermediates/external/libcxx/libc++/android_arm64_armv8-2a_cortex-a55_shared_apex31/unstripped/libc++.so,binary,100,698050,697778 +out/soong/.intermediates/art/libartpalette/libartpalette/android_arm64_armv8-2a_cortex-a55_shared_apex31/e4694d05f1cb76fefd10c9c37c092ec4/unstripped/libartpalette.so,binary,100,7541,7541 out/soong/.intermediates/external/zlib/libz/android_arm64_armv8-2a_cortex-a55_shared_current/libz.so,binary,100,9027,9027 out/soong/.intermediates/bionic/libdl/libdl_android/android_arm64_armv8-2a_cortex-a55_shared_current/libdl_android.so,binary,100,926,926 -out/soong/.intermediates/art/libartpalette/libartpalette/android_arm64_armv8-2a_cortex-a55_shared_apex31/e4694d05f1cb76fefd10c9c37c092ec4/unstripped/libartpalette.so,binary,100,7541,7541 -out/soong/.intermediates/art/libnativebridge/libnativebridge/android_arm64_armv8-2a_cortex-a55_shared_apex31/e4694d05f1cb76fefd10c9c37c092ec4/unstripped/libnativebridge.so,binary,100,13181,13181 -out/soong/.intermediates/art/libartbase/libartbase/android_arm64_armv8-2a_cortex-a55_shared_apex31/e4694d05f1cb76fefd10c9c37c092ec4/unstripped/libartbase.so,binary,100,332794,332794 -out/soong/.intermediates/art/libdexfile/libdexfile/android_arm64_armv8-2a_cortex-a55_shared_apex31/e4694d05f1cb76fefd10c9c37c092ec4/unstripped/libdexfile.so,binary,100,214532,214568 -out/soong/.intermediates/art/libnativeloader/libnativeloader/android_arm64_armv8-2a_cortex-a55_shared_apex31/e4694d05f1cb76fefd10c9c37c092ec4/unstripped/libnativeloader.so,binary,100,124128,124128 -out/soong/.intermediates/art/libprofile/libprofile/android_arm64_armv8-2a_cortex-a55_shared_apex31/e4694d05f1cb76fefd10c9c37c092ec4/unstripped/libprofile.so,binary,100,130948,130948 -out/soong/.intermediates/external/lzma/C/liblzma/android_arm64_armv8-2a_cortex-a55_shared_apex31/unstripped/liblzma.so,binary,100,173243,173243 +out/soong/.intermediates/art/libnativebridge/libnativebridge/android_arm64_armv8-2a_cortex-a55_shared_apex31/e4694d05f1cb76fefd10c9c37c092ec4/unstripped/libnativebridge.so,binary,100,13181,13197 +out/soong/.intermediates/system/libbase/libbase/android_arm64_armv8-2a_cortex-a55_shared_apex31/unstripped/libbase.so,binary,100,267096,266720 +out/soong/.intermediates/art/libartbase/libartbase/android_arm64_armv8-2a_cortex-a55_shared_apex31/e4694d05f1cb76fefd10c9c37c092ec4/unstripped/libartbase.so,binary,100,332794,332686 +out/soong/.intermediates/art/libnativeloader/libnativeloader/android_arm64_armv8-2a_cortex-a55_shared_apex31/e4694d05f1cb76fefd10c9c37c092ec4/unstripped/libnativeloader.so,binary,100,124128,124152 +out/soong/.intermediates/art/libdexfile/libdexfile/android_arm64_armv8-2a_cortex-a55_shared_apex31/e4694d05f1cb76fefd10c9c37c092ec4/unstripped/libdexfile.so,binary,100,214568,214460 +out/soong/.intermediates/art/libprofile/libprofile/android_arm64_armv8-2a_cortex-a55_shared_apex31/e4694d05f1cb76fefd10c9c37c092ec4/unstripped/libprofile.so,binary,100,130948,130916 +out/soong/.intermediates/external/lzma/C/liblzma/android_arm64_armv8-2a_cortex-a55_shared_apex31/unstripped/liblzma.so,binary,100,173243,173919 out/soong/.intermediates/external/perfetto/heapprofd_client_api/android_arm64_armv8-2a_cortex-a55_shared_current/e4694d05f1cb76fefd10c9c37c092ec4/heapprofd_client_api.so,binary,100,1048,1048 out/soong/.intermediates/packages/modules/StatsD/lib/libstatssocket/libstatssocket/android_arm64_armv8-2a_cortex-a55_shared_current/libstatssocket.so,binary,100,2217,2217 -out/soong/.intermediates/art/sigchainlib/libsigchain/android_arm64_armv8-2a_cortex-a55_shared_apex31/e4694d05f1cb76fefd10c9c37c092ec4/unstripped/libsigchain.so,binary,100,21580,21580 -out/soong/.intermediates/external/lz4/lib/liblz4/android_arm64_armv8-2a_cortex-a55_shared_apex31/unstripped/liblz4.so,binary,100,162651,162651 -out/soong/.intermediates/system/unwinding/libunwindstack/libunwindstack/android_arm64_armv8-2a_cortex-a55_shared_apex31/e4694d05f1cb76fefd10c9c37c092ec4/unstripped/libunwindstack.so,binary,100,721015,721015 -out/soong/.intermediates/art/dexlayout/libart-dexlayout/android_arm64_armv8-2a_cortex-a55_shared_apex31/e4694d05f1cb76fefd10c9c37c092ec4/unstripped/libart-dexlayout.so,binary,100,320778,320778 -out/soong/.intermediates/art/runtime/libart/android_arm64_armv8-2a_cortex-a55_shared_apex31/85eaf79f2cdb3360398d24cccc67f3ae/unstripped/libart.so,binary,100,11076962,11078050 -out/soong/.intermediates/art/dex2oat/dex2oat/android_arm64_armv8-2a_cortex-a55_apex31/85eaf79f2cdb3360398d24cccc67f3ae/unstripped/dex2oat64,binary,100,1037926,1037926 -out/soong/.intermediates/external/boringssl/libcrypto/android_arm64_armv8-2a_cortex-a55_shared_apex31/unhashed/libcrypto.so,binary,n/a,-1,1357637 -out/soong/.intermediates/external/libcxx/libc++/android_arm64_armv8-2a_cortex-a55_shared_apex31/unstripped/libc++.so,binary,n/a,-1,698050 -out/soong/.intermediates/system/libbase/libbase/android_arm64_armv8-2a_cortex-a55_shared_apex31/unstripped/libbase.so,binary,n/a,-1,267096 +out/soong/.intermediates/art/sigchainlib/libsigchain/android_arm64_armv8-2a_cortex-a55_shared_apex31/e4694d05f1cb76fefd10c9c37c092ec4/unstripped/libsigchain.so,binary,99,21580,21464 +out/soong/.intermediates/system/unwinding/libunwindstack/libunwindstack/android_arm64_armv8-2a_cortex-a55_shared_apex31/e4694d05f1cb76fefd10c9c37c092ec4/unstripped/libunwindstack.so,binary,100,721015,721175 +out/soong/.intermediates/external/lz4/lib/liblz4/android_arm64_armv8-2a_cortex-a55_shared_apex31/unstripped/liblz4.so,binary,100,162651,162415 +out/soong/.intermediates/art/dexlayout/libart-dexlayout/android_arm64_armv8-2a_cortex-a55_shared_apex31/e4694d05f1cb76fefd10c9c37c092ec4/unstripped/libart-dexlayout.so,binary,100,320778,320682 +out/soong/.intermediates/art/runtime/libart/android_arm64_armv8-2a_cortex-a55_shared_apex31/85eaf79f2cdb3360398d24cccc67f3ae/unstripped/libart.so,binary,100,11078050,11084470 +out/soong/.intermediates/art/dex2oat/dex2oat/android_arm64_armv8-2a_cortex-a55_apex31/85eaf79f2cdb3360398d24cccc67f3ae/unstripped/dex2oat64,binary,100,1037926,1035502 @@ -1,25 +1,25 @@ benchmark,symbol,size -out/soong/.intermediates/bionic/libm/libm/android_arm64_armv8-2a_cortex-a55_shared_current/libm.so,binary,24046 -out/soong/.intermediates/bionic/libdl/libdl/android_arm64_armv8-2a_cortex-a55_shared_current/libdl.so,binary,1352 out/soong/.intermediates/bionic/libc/libc/android_arm64_armv8-2a_cortex-a55_shared_current/libc.so,binary,128193 +out/soong/.intermediates/bionic/libdl/libdl/android_arm64_armv8-2a_cortex-a55_shared_current/libdl.so,binary,1352 +out/soong/.intermediates/bionic/libm/libm/android_arm64_armv8-2a_cortex-a55_shared_current/libm.so,binary,24046 +out/soong/.intermediates/external/boringssl/libcrypto/android_arm64_armv8-2a_cortex-a55_shared_apex31/unhashed/libcrypto.so,binary,1357933 out/soong/.intermediates/system/logging/liblog/liblog/android_arm64_armv8-2a_cortex-a55_shared_current/liblog.so,binary,4867 -out/soong/.intermediates/external/boringssl/libcrypto/android_arm64_armv8-2a_cortex-a55_shared_apex31/unhashed/libcrypto.so,binary,1357637 -out/soong/.intermediates/external/libcxx/libc++/android_arm64_armv8-2a_cortex-a55_shared_apex31/unstripped/libc++.so,binary,698050 +out/soong/.intermediates/external/libcxx/libc++/android_arm64_armv8-2a_cortex-a55_shared_apex31/unstripped/libc++.so,binary,697778 out/soong/.intermediates/art/libartpalette/libartpalette/android_arm64_armv8-2a_cortex-a55_shared_apex31/e4694d05f1cb76fefd10c9c37c092ec4/unstripped/libartpalette.so,binary,7541 out/soong/.intermediates/external/zlib/libz/android_arm64_armv8-2a_cortex-a55_shared_current/libz.so,binary,9027 +out/soong/.intermediates/system/libbase/libbase/android_arm64_armv8-2a_cortex-a55_shared_apex31/unstripped/libbase.so,binary,266720 +out/soong/.intermediates/art/libartbase/libartbase/android_arm64_armv8-2a_cortex-a55_shared_apex31/e4694d05f1cb76fefd10c9c37c092ec4/unstripped/libartbase.so,binary,332686 out/soong/.intermediates/bionic/libdl/libdl_android/android_arm64_armv8-2a_cortex-a55_shared_current/libdl_android.so,binary,926 -out/soong/.intermediates/art/libnativebridge/libnativebridge/android_arm64_armv8-2a_cortex-a55_shared_apex31/e4694d05f1cb76fefd10c9c37c092ec4/unstripped/libnativebridge.so,binary,13181 -out/soong/.intermediates/system/libbase/libbase/android_arm64_armv8-2a_cortex-a55_shared_apex31/unstripped/libbase.so,binary,267096 -out/soong/.intermediates/art/libartbase/libartbase/android_arm64_armv8-2a_cortex-a55_shared_apex31/e4694d05f1cb76fefd10c9c37c092ec4/unstripped/libartbase.so,binary,332794 -out/soong/.intermediates/art/libnativeloader/libnativeloader/android_arm64_armv8-2a_cortex-a55_shared_apex31/e4694d05f1cb76fefd10c9c37c092ec4/unstripped/libnativeloader.so,binary,124128 -out/soong/.intermediates/art/libdexfile/libdexfile/android_arm64_armv8-2a_cortex-a55_shared_apex31/e4694d05f1cb76fefd10c9c37c092ec4/unstripped/libdexfile.so,binary,214568 -out/soong/.intermediates/art/libprofile/libprofile/android_arm64_armv8-2a_cortex-a55_shared_apex31/e4694d05f1cb76fefd10c9c37c092ec4/unstripped/libprofile.so,binary,130948 -out/soong/.intermediates/external/lzma/C/liblzma/android_arm64_armv8-2a_cortex-a55_shared_apex31/unstripped/liblzma.so,binary,173243 +out/soong/.intermediates/art/libnativebridge/libnativebridge/android_arm64_armv8-2a_cortex-a55_shared_apex31/e4694d05f1cb76fefd10c9c37c092ec4/unstripped/libnativebridge.so,binary,13197 +out/soong/.intermediates/art/libdexfile/libdexfile/android_arm64_armv8-2a_cortex-a55_shared_apex31/e4694d05f1cb76fefd10c9c37c092ec4/unstripped/libdexfile.so,binary,214460 +out/soong/.intermediates/art/libnativeloader/libnativeloader/android_arm64_armv8-2a_cortex-a55_shared_apex31/e4694d05f1cb76fefd10c9c37c092ec4/unstripped/libnativeloader.so,binary,124152 +out/soong/.intermediates/art/libprofile/libprofile/android_arm64_armv8-2a_cortex-a55_shared_apex31/e4694d05f1cb76fefd10c9c37c092ec4/unstripped/libprofile.so,binary,130916 +out/soong/.intermediates/external/lzma/C/liblzma/android_arm64_armv8-2a_cortex-a55_shared_apex31/unstripped/liblzma.so,binary,173919 out/soong/.intermediates/external/perfetto/heapprofd_client_api/android_arm64_armv8-2a_cortex-a55_shared_current/e4694d05f1cb76fefd10c9c37c092ec4/heapprofd_client_api.so,binary,1048 +out/soong/.intermediates/art/sigchainlib/libsigchain/android_arm64_armv8-2a_cortex-a55_shared_apex31/e4694d05f1cb76fefd10c9c37c092ec4/unstripped/libsigchain.so,binary,21464 out/soong/.intermediates/packages/modules/StatsD/lib/libstatssocket/libstatssocket/android_arm64_armv8-2a_cortex-a55_shared_current/libstatssocket.so,binary,2217 -out/soong/.intermediates/art/sigchainlib/libsigchain/android_arm64_armv8-2a_cortex-a55_shared_apex31/e4694d05f1cb76fefd10c9c37c092ec4/unstripped/libsigchain.so,binary,21580 -out/soong/.intermediates/system/unwinding/libunwindstack/libunwindstack/android_arm64_armv8-2a_cortex-a55_shared_apex31/e4694d05f1cb76fefd10c9c37c092ec4/unstripped/libunwindstack.so,binary,721015 -out/soong/.intermediates/external/lz4/lib/liblz4/android_arm64_armv8-2a_cortex-a55_shared_apex31/unstripped/liblz4.so,binary,162651 -out/soong/.intermediates/art/dexlayout/libart-dexlayout/android_arm64_armv8-2a_cortex-a55_shared_apex31/e4694d05f1cb76fefd10c9c37c092ec4/unstripped/libart-dexlayout.so,binary,320778 -out/soong/.intermediates/art/runtime/libart/android_arm64_armv8-2a_cortex-a55_shared_apex31/85eaf79f2cdb3360398d24cccc67f3ae/unstripped/libart.so,binary,11078050 -out/soong/.intermediates/art/dex2oat/dex2oat/android_arm64_armv8-2a_cortex-a55_apex31/85eaf79f2cdb3360398d24cccc67f3ae/unstripped/dex2oat64,binary,1037926 +out/soong/.intermediates/system/unwinding/libunwindstack/libunwindstack/android_arm64_armv8-2a_cortex-a55_shared_apex31/e4694d05f1cb76fefd10c9c37c092ec4/unstripped/libunwindstack.so,binary,721175 +out/soong/.intermediates/external/lz4/lib/liblz4/android_arm64_armv8-2a_cortex-a55_shared_apex31/unstripped/liblz4.so,binary,162415 +out/soong/.intermediates/art/dexlayout/libart-dexlayout/android_arm64_armv8-2a_cortex-a55_shared_apex31/e4694d05f1cb76fefd10c9c37c092ec4/unstripped/libart-dexlayout.so,binary,320682 +out/soong/.intermediates/art/runtime/libart/android_arm64_armv8-2a_cortex-a55_shared_apex31/85eaf79f2cdb3360398d24cccc67f3ae/unstripped/libart.so,binary,11084470 +out/soong/.intermediates/art/dex2oat/dex2oat/android_arm64_armv8-2a_cortex-a55_apex31/85eaf79f2cdb3360398d24cccc67f3ae/unstripped/dex2oat64,binary,1035502 |