E3DD265TSU5HFAAUYOIYFK5D3GYSPIJSWDVSQX5Q226WPCH43EFQC PRH6LZFXNLAEM3FYRVETYY3AEHTB6JYUQNKZPMBIILRANIBLWUXQC Y2Y4OOIECVVLL5KIUVHIWJTGPADACCZZHUFGHTLSWHXS5UJ5FD4QC PIQCNEEBNHZDYOU2O7667XBB6D3V2MUALRRVJX6VO5BGYR7LTYRQC I52XSRUH5RVHQBFWVMAQPTUSPAJ4KNVID2RMI3UGCVKFLYUO6WZAC SXEYMYF7P4RZMZ46WPL4IZUTSQ2ATBWYZX7QNVMS3SGOYXYOHAGQC L4JXJHWXYNCL4QGJXNKKTOKKTAXKKXBJUUY7HFZGEUZ5A2V5H34QC AEPEFS7O3YT7CRRFYQVJWUXUUSRGJ6K6XZQVK62B6N74UXOIFWYAC 4H2XTVJ2BNXDNHQ3RQTMOG3I4NRGZT7JDLC2GRINS56TIYTYTO4QC EUZFFJSOWV4PXDFFPDAFBHFUUMOFEU6ST7JH57YYRRR2SEOXLN6QC 5OGOE4VWS5AIG4U2UYLLIGA3HY6UB7SNQOSESHNXBLET3VQXFBZAC CCLLB7OIFNFYJZTG3UCI7536TOCWSCSXR67VELSB466R24WLJSDAC let cur = txn.current_channel().unwrap_or(libpijul::DEFAULT_CHANNEL).to_string();let channel_name = if let Some(ref c) = self.channel {c
let mut fork = if let Some(ref channel_name) = self.channel {if let Some(channel) = txn.load_channel(channel_name)? {txn.fork(&channel, &self.to)?} else {anyhow::bail!("Channel not found: {:?}", channel_name);}
if let Some(channel) = txn.load_channel(&channel_name)? {txn.fork(&channel, &self.to)?;} else {anyhow::bail!("Channel not found: {:?}", channel_name);
if let Some(ref state) = self.state {if let Some(state) = libpijul::Merkle::from_base32(state.as_bytes()) {let ch = fork.write();if let Some(n) = txn.channel_has_state(&ch.states, &state.into())? {let n: u64 = n.into();let mut v = Vec::new();for l in txn.reverse_log(&ch, None)? {let (n_, h) = l?;if n_ > n {v.push(h.0.into())} else {break;}}std::mem::drop(ch);for h in v {txn.unrecord(&repo.changes, &mut fork, &h, 0)?;}}}