H7WRJQNUNHHRDIN7AF6F4AXM2T3UXGG5HWNQE7PTPUQOE5MGGWMQC G2WWGRN2DSO7GGNMKYOGGMDYG42OQQPI76J45RFH27FMBOXUQL2AC MKDWLE4VR5MFRUNUKCWACK7OHCVHRPZLSW7TWXFJ65CYRZ7QD7FAC SXEYMYF7P4RZMZ46WPL4IZUTSQ2ATBWYZX7QNVMS3SGOYXYOHAGQC RUBBHYZ7MCLKJIHZ3EWEC3JR3FSKOU4T2NH7KRBG7ECAU4JF3LUAC DDEUZMXQRYVBGTJWKZY6W4UFSDCLB6JV7VX32AOTY3ZPD7OS6P6QC VGBH3ED6NZPQFNXHS4R3J2QIPN5WP4SUMCYQLBER3CV3AGCVHJJQC FAOGX7G362OSLMKTQLQ3S3XMGKACNRAIV2VRURS5QJRHDF577BHQC EUZFFJSOWV4PXDFFPDAFBHFUUMOFEU6ST7JH57YYRRR2SEOXLN6QC 5SLOJYHGPMZVCOE3IS7ICNMJJYX3RBT6CDG5MAV6T4CJIOW7YZ6QC I52XSRUH5RVHQBFWVMAQPTUSPAJ4KNVID2RMI3UGCVKFLYUO6WZAC HWH4WWN3XZ4GWP225GVTW4IYZIEFMQLKZZOMMEGZVSRGWYUE6MMAC NEJOYVJB4VXJJPFBWD2YK7PK6KKHQGRHIJHLEJ53HLQ3ZQRE5EPQC RP7YRM5QOINW7FB5BGNZEXVQN7TXB7LLLHXZPPAI6DGFGRP7JPFQC UC5C5REV3W3KPY45FFZWSZYLP7BCGK54Z5N74RSF26ZTC3HAC2QQC GUL4M5FIE7JYXJHR7MCTQS3543HIQXGPLBWZKASBAWWEA4SZ75CAC KUUVOJUPIC3VHT5XNM6CKYAU5Z2JUGKDFDCSP573VG5QWD3TJJFQC let email = signature.email().unwrap().to_string();let identity = if email.is_empty() {None} else {all_identities.iter().find(|i| i.config.author.email == email)};if let Some(identity) = identity {author.insert("key".to_string(), identity.public_key.key.clone());};author.insert("email".to_string(), email);
.save_change(&mut change, |_, _| Ok::<_, anyhow::Error>(()))
.save_change(&mut change, |change, hash| {if let Some(identity) = identity {let secret = identity.decrypt().unwrap().0;change.unhashed = Some(serde_json::json!({"signature": secret.sign_raw(&hash.to_bytes()).unwrap(),}));}Ok::<_, anyhow::Error>(())})