The sum of the first half adder is added with the cinby the second half adder
The sum output of the second Half Adder is the final sum at that position when there is a carry in bitcin besides the 2 bits of the binary string we need to sum
For the carry out bitcout, we need to have an OR to pipe out the final cout to handle situation where the first Half Adder’s cout is 1 while the cin is 0 & sum of the first Half Adder is 0