@@ -62,6 +62,7 @@ pub fn generate_jets() -> Jets {
6262 (161636738411171172446435323238280743696, WELP),
6363 (90634096513747887582230817128332929026, ZING),
6464 (59352245691598674621226842217946522940, BEX),
65+ (102718716366123785010912772034318125155, END),
6566 ])
6667}
6768
@@ -553,4 +554,15 @@ static ZING: Jet = |_ctx, n| {
553554 )
554555};
555556
556−static BEX: Jet = |ctx, n| Rc::new(Noun::Atom(ctx.big_uints.one.clone() << n.as_u32().unwrap()));
557+static BEX: Jet = |ctx, n| Rc::new(Noun::Atom(&ctx.big_uints.one << n.as_u32().unwrap()));
558+
559+static END: Jet = |ctx, n| {
560+ let (a, b) = n.as_cell().unwrap();
561+ let bite = a.as_bite().unwrap();
562+
563+ let bits = 2u32.pow(bite.bloq) * bite.step;
564+
565+ let mask = (&ctx.big_uints.one << bits) - &ctx.big_uints.one;
566+
567+ Rc::new(Noun::Atom(mask & b.as_atom().unwrap()))
568+};