code: func newArmorDecoderStream(r io.Reader, params armorParams, headerChecker HeaderChecker, frameChecker FrameChecker) (io.Reader, Frame, error) {
  	fds := &framedDecoderStream{r: newPunctuatedReader(r, params.Punctuation), params: params, headerChecker: headerChecker, frameChecker: frameChecker, frameLim: 8192}
  	ret := basex.NewDecoder(params.Encoding, fds)
  	return ret, fds, nil
  }
docs: // newArmorDecoderStream is used to decode armored encoding. It returns a stream you
  // can read from, and also a Frame you can query to see what the open/close
  // frame markers were. Note that the footer of the Frame can be accessed only after the
  // reader has been exhausted.