(The full encoding is pasted at the bottom.) The input has 5 bits, and the output has a left metal and a right metal. The encoding works like this: Start with Tin-Tin. This is the all-salts output. If the right-most bit is fire, then the right metal starts as Lead instead. If the next bit is fire, then the left metal starts as Lead instead. If the middle bit is fire, then we will do two projections. Normally, we project the left metal once and the right metal once. The exception is if we currently have Lead-Lead - in this case, we "hiccup" and have both projections go on the left metal. This prevents "**🜂🜂🜂" from mapping to the same output as "**🜔🜔🜔". If the leftmost bit is fire, then the left metal gets 3 projections. If the next bit is fire, then the right metal gets 3 projections. And that's it! Here's another way to put it: If 🜔🜔🜔🜔🜔 represents 22, then the bits from left to right represent: ( +30 )( +3 )( SPECIAL )( -10 )( -1 ) Where SPECIAL is normally +11, but equal to +20 on the hiccup. Fun fact: the unused outputs are Lead-Iron, Copper-Iron, Lead-Gold, and Copper-Gold ============ = ENCODING = ============ 0. 🜔🜔🜔🜔🜔 => Tin-Tin 1. 🜔🜔🜔🜔🜂 => Tin-Lead 2. 🜔🜔🜔🜂🜔 => Lead-Tin 3. 🜔🜔🜔🜂🜂 => Lead-Lead 4. 🜔🜔🜂🜔🜔 => Iron-Iron 5. 🜔🜔🜂🜔🜂 => Iron-Tin 6. 🜔🜔🜂🜂🜔 => Tin-Iron 7. 🜔🜔🜂🜂🜂 => Iron-Lead 8. 🜔🜂🜔🜔🜔 => Tin-Silver 9. 🜔🜂🜔🜔🜂 => Tin-Copper 10. 🜔🜂🜔🜂🜔 => Lead-Silver 11. 🜔🜂🜔🜂🜂 => Lead-Copper 12. 🜔🜂🜂🜔🜔 => Iron-Gold 13. 🜔🜂🜂🜔🜂 => Iron-Silver 14. 🜔🜂🜂🜂🜔 => Tin-Gold 15. 🜔🜂🜂🜂🜂 => Iron-Copper 16. 🜂🜔🜔🜔🜔 => Silver-Tin 17. 🜂🜔🜔🜔🜂 => Silver-Lead 18. 🜂🜔🜔🜂🜔 => Copper-Tin 19. 🜂🜔🜔🜂🜂 => Copper-Lead 20. 🜂🜔🜂🜔🜔 => Gold-Iron 21. 🜂🜔🜂🜔🜂 => Gold-Tin 22. 🜂🜔🜂🜂🜔 => Silver-Iron 23. 🜂🜔🜂🜂🜂 => Gold-Lead 24. 🜂🜂🜔🜔🜔 => Silver-Silver 25. 🜂🜂🜔🜔🜂 => Silver-Copper 26. 🜂🜂🜔🜂🜔 => Copper-Silver 27. 🜂🜂🜔🜂🜂 => Copper-Copper 28. 🜂🜂🜂🜔🜔 => Gold-Gold 29. 🜂🜂🜂🜔🜂 => Gold-Silver 30. 🜂🜂🜂🜂🜔 => Silver-Gold 31. 🜂🜂🜂🜂🜂 => Gold-Copper