code: def main(self, din, reload):
          
          if reload:
              lfsr = self.INIT_GALOIS
          else:
              lfsr = self.lfsr
          out = lfsr & 0x8000
          next = ((lfsr << 1) | din) & 0xFFFF
          if out != 0:
              next = next ^ self.XOR
          self.lfsr = next
          return self.lfsr
docs: :param din: bit in
          :param reload: when True, reloads the initial value to LFSR
          :return: current LFSR value (integer), CRC is correct if this is 0. Once it gets to 0 it STAYS 0, reset needed.