Multiplexing STS-1 multiple data streams, called tributaries, plays an important role in SONET. A $3: 1$ multiplexer multiplexes three input STS-1 tributaries onto one output STS-3 stream. This multiplexing is done byte for byte. That is, the first three output bytes are the first bytes of tributaries 1,2, and 3 , respectively. The next three output bytes are the second bytes of tributaries 1,2 , and 3 , respectively, and so on. Write a program that simulates this $3: 1$ multiplexer. Your program should consist of five processes. The main process creates four processes, one each for the three STS-1 tributaries and one for the multiplexer. Each tributary process reads in an STS-1 frame from an input file as a sequence of 810 bytes. They send their frames (byte by byte) to the multiplexer process. The multiplexer process receives these bytes and outputs an STS-3 frame (byte by byte) by writing it to standard output. Use pipes for communication among processes.